diff --git a/js/ext/typeahead.min.js b/js/ext/typeahead.min.js
index c085f8a82..51c61f077 100644
--- a/js/ext/typeahead.min.js
+++ b/js/ext/typeahead.min.js
@@ -1,7 +1 @@
-/*!
- * typeahead.js 0.9.3
- * https://github.com/twitter/typeahead
- * Copyright 2013 Twitter, Inc. and other contributors; Licensed MIT
- */
-
-!function(a){var b="0.9.3",c={isMsie:function(){var a=/(msie) ([\w.]+)/i.exec(navigator.userAgent);return a?parseInt(a[2],10):!1},isBlankString:function(a){return!a||/^\s*$/.test(a)},escapeRegExChars:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(a){return"string"==typeof a},isNumber:function(a){return"number"==typeof a},isArray:a.isArray,isFunction:a.isFunction,isObject:a.isPlainObject,isUndefined:function(a){return"undefined"==typeof a},bind:a.proxy,bindAll:function(b){var c;for(var d in b)a.isFunction(c=b[d])&&(b[d]=a.proxy(c,b))},indexOf:function(a,b){for(var c=0;c=j?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},tokenizeQuery:function(b){return a.trim(b).toLowerCase().split(/[\s]+/)},tokenizeText:function(b){return a.trim(b).toLowerCase().split(/[\s\-_]+/)},getProtocol:function(){return location.protocol},noop:function(){}},d=function(){var a=/\s+/;return{on:function(b,c){var d;if(!c)return this;for(this._callbacks=this._callbacks||{},b=b.split(a);d=b.shift();)this._callbacks[d]=this._callbacks[d]||[],this._callbacks[d].push(c);return this},trigger:function(b,c){var d,e;if(!this._callbacks)return this;for(b=b.split(a);d=b.shift();)if(e=this._callbacks[d])for(var f=0;fa;a++)(b=f.key(a)).match(this.keyMatcher)&&c.push(b.replace(this.keyMatcher,""));for(a=c.length;a--;)this.remove(c[a]);return this},isExpired:function(a){var d=e(f.getItem(this._ttlKey(a)));return c.isNumber(d)&&b()>d?!0:!1}}:{get:c.noop,set:c.noop,remove:c.noop,clear:c.noop,isExpired:c.noop},c.mixin(a.prototype,g),a}(),g=function(){function a(a){c.bindAll(this),a=a||{},this.sizeLimit=a.sizeLimit||10,this.cache={},this.cachedKeysByAge=[]}return c.mixin(a.prototype,{get:function(a){return this.cache[a]},set:function(a,b){var c;this.cachedKeysByAge.length===this.sizeLimit&&(c=this.cachedKeysByAge.shift(),delete this.cache[c]),this.cache[a]=b,this.cachedKeysByAge.push(a)}}),a}(),h=function(){function b(a){c.bindAll(this),a=c.isString(a)?{url:a}:a,i=i||new g,h=c.isNumber(a.maxParallelRequests)?a.maxParallelRequests:h||6,this.url=a.url,this.wildcard=a.wildcard||"%QUERY",this.filter=a.filter,this.replace=a.replace,this.ajaxSettings={type:"get",cache:a.cache,timeout:a.timeout,dataType:a.dataType||"json",beforeSend:a.beforeSend},this._get=(/^throttle$/i.test(a.rateLimitFn)?c.throttle:c.debounce)(this._get,a.rateLimitWait||300)}function d(){j++}function e(){j--}function f(){return h>j}var h,i,j=0,k={};return c.mixin(b.prototype,{_get:function(a,b){function c(c){var e=d.filter?d.filter(c):c;b&&b(e),i.set(a,c)}var d=this;f()?this._sendRequest(a).done(c):this.onDeckRequestArgs=[].slice.call(arguments,0)},_sendRequest:function(b){function c(){e(),k[b]=null,f.onDeckRequestArgs&&(f._get.apply(f,f.onDeckRequestArgs),f.onDeckRequestArgs=null)}var f=this,g=k[b];return g||(d(),g=k[b]=a.ajax(b,this.ajaxSettings).always(c)),g},get:function(a,b){var d,e,f=this,g=encodeURIComponent(a||"");return b=b||c.noop,d=this.replace?this.replace(this.url,g):this.url.replace(this.wildcard,g),(e=i.get(d))?c.defer(function(){b(f.filter?f.filter(e):e)}):this._get(d,b),!!e}}),b}(),i=function(){function d(b){c.bindAll(this),c.isString(b.template)&&!b.engine&&a.error("no template engine specified"),b.local||b.prefetch||b.remote||a.error("one of local, prefetch, or remote is required"),this.name=b.name||c.getUniqueId(),this.limit=b.limit||5,this.minLength=b.minLength||1,this.header=b.header,this.footer=b.footer,this.valueKey=b.valueKey||"value",this.template=e(b.template,b.engine,this.valueKey),this.local=b.local,this.prefetch=b.prefetch,this.remote=b.remote,this.itemHash={},this.adjacencyList={},this.storage=b.name?new f(b.name):null}function e(a,b,d){var e,f;return c.isFunction(a)?e=a:c.isString(a)?(f=b.compile(a),e=c.bind(f.render,f)):e=function(a){return""+a[d]+"
"},e}var g={thumbprint:"thumbprint",protocol:"protocol",itemHash:"itemHash",adjacencyList:"adjacencyList"};return c.mixin(d.prototype,{_processLocalData:function(a){this._mergeProcessedData(this._processData(a))},_loadPrefetchData:function(d){function e(a){var b=d.filter?d.filter(a):a,e=m._processData(b),f=e.itemHash,h=e.adjacencyList;m.storage&&(m.storage.set(g.itemHash,f,d.ttl),m.storage.set(g.adjacencyList,h,d.ttl),m.storage.set(g.thumbprint,n,d.ttl),m.storage.set(g.protocol,c.getProtocol(),d.ttl)),m._mergeProcessedData(e)}var f,h,i,j,k,l,m=this,n=b+(d.thumbprint||"");return this.storage&&(f=this.storage.get(g.thumbprint),h=this.storage.get(g.protocol),i=this.storage.get(g.itemHash),j=this.storage.get(g.adjacencyList)),k=f!==n||h!==c.getProtocol(),d=c.isString(d)?{url:d}:d,d.ttl=c.isNumber(d.ttl)?d.ttl:864e5,i&&j&&!k?(this._mergeProcessedData({itemHash:i,adjacencyList:j}),l=a.Deferred().resolve()):l=a.getJSON(d.url).done(e),l},_transformDatum:function(a){var b=c.isString(a)?a:a[this.valueKey],d=a.tokens||c.tokenizeText(b),e={value:b,tokens:d};return c.isString(a)?(e.datum={},e.datum[this.valueKey]=a):e.datum=a,e.tokens=c.filter(e.tokens,function(a){return!c.isBlankString(a)}),e.tokens=c.map(e.tokens,function(a){return a.toLowerCase()}),e},_processData:function(a){var b=this,d={},e={};return c.each(a,function(a,f){var g=b._transformDatum(f),h=c.getUniqueId(g.value);d[h]=g,c.each(g.tokens,function(a,b){var d=b.charAt(0),f=e[d]||(e[d]=[h]);!~c.indexOf(f,h)&&f.push(h)})}),{itemHash:d,adjacencyList:e}},_mergeProcessedData:function(a){var b=this;c.mixin(this.itemHash,a.itemHash),c.each(a.adjacencyList,function(a,c){var d=b.adjacencyList[a];b.adjacencyList[a]=d?d.concat(c):c})},_getLocalSuggestions:function(a){var b,d=this,e=[],f=[],g=[];return c.each(a,function(a,b){var d=b.charAt(0);!~c.indexOf(e,d)&&e.push(d)}),c.each(e,function(a,c){var e=d.adjacencyList[c];return e?(f.push(e),(!b||e.length").css({position:"absolute",left:"-9999px",visibility:"hidden",whiteSpace:"nowrap",fontFamily:b.css("font-family"),fontSize:b.css("font-size"),fontStyle:b.css("font-style"),fontVariant:b.css("font-variant"),fontWeight:b.css("font-weight"),wordSpacing:b.css("word-spacing"),letterSpacing:b.css("letter-spacing"),textIndent:b.css("text-indent"),textRendering:b.css("text-rendering"),textTransform:b.css("text-transform")}).insertAfter(b)}function f(a,b){return a=(a||"").replace(/^\s*/g,"").replace(/\s{2,}/g," "),b=(b||"").replace(/^\s*/g,"").replace(/\s{2,}/g," "),a===b}return c.mixin(b.prototype,d,{_handleFocus:function(){this.trigger("focused")},_handleBlur:function(){this.trigger("blured")},_handleSpecialKeyEvent:function(a){var b=this.specialKeyCodeMap[a.which||a.keyCode];b&&this.trigger(b+"Keyed",a)},_compareQueryToInputValue:function(){var a=this.getInputValue(),b=f(this.query,a),c=b?this.query.length!==a.length:!1;c?this.trigger("whitespaceChanged",{value:this.query}):b||this.trigger("queryChanged",{value:this.query=a})},destroy:function(){this.$hint.off(".tt"),this.$input.off(".tt"),this.$hint=this.$input=this.$overflowHelper=null},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(a){this.query=a},getInputValue:function(){return this.$input.val()},setInputValue:function(a,b){this.$input.val(a),!b&&this._compareQueryToInputValue()},getHintValue:function(){return this.$hint.val()},setHintValue:function(a){this.$hint.val(a)},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},isOverflow:function(){return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>this.$input.width()},isCursorAtEnd:function(){var a,b=this.$input.val().length,d=this.$input[0].selectionStart;return c.isNumber(d)?d===b:document.selection?(a=document.selection.createRange(),a.moveStart("character",-b),b===a.text.length):!0}}),b}(),k=function(){function b(b){c.bindAll(this),this.isOpen=!1,this.isEmpty=!0,this.isMouseOverDropdown=!1,this.$menu=a(b.menu).on("mouseenter.tt",this._handleMouseenter).on("mouseleave.tt",this._handleMouseleave).on("click.tt",".tt-suggestion",this._handleSelection).on("mouseover.tt",".tt-suggestion",this._handleMouseover)}function e(a){return a.data("suggestion")}var f={suggestionsList:''},g={suggestionsList:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"}};return c.mixin(b.prototype,d,{_handleMouseenter:function(){this.isMouseOverDropdown=!0},_handleMouseleave:function(){this.isMouseOverDropdown=!1},_handleMouseover:function(b){var c=a(b.currentTarget);this._getSuggestions().removeClass("tt-is-under-cursor"),c.addClass("tt-is-under-cursor")},_handleSelection:function(b){var c=a(b.currentTarget);this.trigger("suggestionSelected",e(c))},_show:function(){this.$menu.css("display","block")},_hide:function(){this.$menu.hide()},_moveCursor:function(a){var b,c,d,f;if(this.isVisible()){if(b=this._getSuggestions(),c=b.filter(".tt-is-under-cursor"),c.removeClass("tt-is-under-cursor"),d=b.index(c)+a,d=(d+1)%(b.length+1)-1,-1===d)return this.trigger("cursorRemoved"),void 0;-1>d&&(d=b.length-1),f=b.eq(d).addClass("tt-is-under-cursor"),this._ensureVisibility(f),this.trigger("cursorMoved",e(f))}},_getSuggestions:function(){return this.$menu.find(".tt-suggestions > .tt-suggestion")},_ensureVisibility:function(a){var b=this.$menu.height()+parseInt(this.$menu.css("paddingTop"),10)+parseInt(this.$menu.css("paddingBottom"),10),c=this.$menu.scrollTop(),d=a.position().top,e=d+a.outerHeight(!0);0>d?this.$menu.scrollTop(c+d):e>b&&this.$menu.scrollTop(c+(e-b))},destroy:function(){this.$menu.off(".tt"),this.$menu=null},isVisible:function(){return this.isOpen&&!this.isEmpty},closeUnlessMouseIsOverDropdown:function(){this.isMouseOverDropdown||this.close()},close:function(){this.isOpen&&(this.isOpen=!1,this.isMouseOverDropdown=!1,this._hide(),this.$menu.find(".tt-suggestions > .tt-suggestion").removeClass("tt-is-under-cursor"),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,!this.isEmpty&&this._show(),this.trigger("opened"))},setLanguageDirection:function(a){var b={left:"0",right:"auto"},c={left:"auto",right:" 0"};"ltr"===a?this.$menu.css(b):this.$menu.css(c)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getSuggestionUnderCursor:function(){var a=this._getSuggestions().filter(".tt-is-under-cursor").first();return a.length>0?e(a):null},getFirstSuggestion:function(){var a=this._getSuggestions().first();return a.length>0?e(a):null},renderSuggestions:function(b,d){var e,h,i,j,k,l="tt-dataset-"+b.name,m='%body
',n=this.$menu.find("."+l);0===n.length&&(h=a(f.suggestionsList).css(g.suggestionsList),n=a("").addClass(l).append(b.header).append(h).append(b.footer).appendTo(this.$menu)),d.length>0?(this.isEmpty=!1,this.isOpen&&this._show(),i=document.createElement("div"),j=document.createDocumentFragment(),c.each(d,function(c,d){d.dataset=b.name,e=b.template(d.datum),i.innerHTML=m.replace("%body",e),k=a(i.firstChild).css(g.suggestion).data("suggestion",d),k.children().each(function(){a(this).css(g.suggestionChild)}),j.appendChild(k[0])}),n.show().find(".tt-suggestions").html(j)):this.clearSuggestions(b.name),this.trigger("suggestionsRendered")},clearSuggestions:function(a){var b=a?this.$menu.find(".tt-dataset-"+a):this.$menu.find('[class^="tt-dataset-"]'),c=b.find(".tt-suggestions");b.hide(),c.empty(),0===this._getSuggestions().length&&(this.isEmpty=!0,this._hide())}}),b}(),l=function(){function b(a){var b,d,f;c.bindAll(this),this.$node=e(a.input),this.datasets=a.datasets,this.dir=null,this.eventBus=a.eventBus,b=this.$node.find(".tt-dropdown-menu"),d=this.$node.find(".tt-query"),f=this.$node.find(".tt-hint"),this.dropdownView=new k({menu:b}).on("suggestionSelected",this._handleSelection).on("cursorMoved",this._clearHint).on("cursorMoved",this._setInputValueToSuggestionUnderCursor).on("cursorRemoved",this._setInputValueToQuery).on("cursorRemoved",this._updateHint).on("suggestionsRendered",this._updateHint).on("opened",this._updateHint).on("closed",this._clearHint).on("opened closed",this._propagateEvent),this.inputView=new j({input:d,hint:f}).on("focused",this._openDropdown).on("blured",this._closeDropdown).on("blured",this._setInputValueToQuery).on("enterKeyed tabKeyed",this._handleSelection).on("queryChanged",this._clearHint).on("queryChanged",this._clearSuggestions).on("queryChanged",this._getSuggestions).on("whitespaceChanged",this._updateHint).on("queryChanged whitespaceChanged",this._openDropdown).on("queryChanged whitespaceChanged",this._setLanguageDirection).on("escKeyed",this._closeDropdown).on("escKeyed",this._setInputValueToQuery).on("tabKeyed upKeyed downKeyed",this._managePreventDefault).on("upKeyed downKeyed",this._moveDropdownCursor).on("upKeyed downKeyed",this._openDropdown).on("tabKeyed leftKeyed rightKeyed",this._autocomplete)}function e(b){var c=a(g.wrapper),d=a(g.dropdown),e=a(b),f=a(g.hint);c=c.css(h.wrapper),d=d.css(h.dropdown),f.css(h.hint).css({backgroundAttachment:e.css("background-attachment"),backgroundClip:e.css("background-clip"),backgroundColor:e.css("background-color"),backgroundImage:e.css("background-image"),backgroundOrigin:e.css("background-origin"),backgroundPosition:e.css("background-position"),backgroundRepeat:e.css("background-repeat"),backgroundSize:e.css("background-size")}),e.data("ttAttrs",{dir:e.attr("dir"),autocomplete:e.attr("autocomplete"),spellcheck:e.attr("spellcheck"),style:e.attr("style")}),e.addClass("tt-query").attr({autocomplete:"off",spellcheck:!1}).css(h.query);try{!e.attr("dir")&&e.attr("dir","auto")}catch(i){}return e.wrap(c).parent().prepend(f).append(d)}function f(a){var b=a.find(".tt-query");c.each(b.data("ttAttrs"),function(a,d){c.isUndefined(d)?b.removeAttr(a):b.attr(a,d)}),b.detach().removeData("ttAttrs").removeClass("tt-query").insertAfter(a),a.remove()}var g={wrapper:'',hint:'',dropdown:''},h={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none"},query:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"}};return c.isMsie()&&c.mixin(h.query,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),c.isMsie()&&c.isMsie()<=7&&(c.mixin(h.wrapper,{display:"inline",zoom:"1"}),c.mixin(h.query,{marginTop:"-1px"})),c.mixin(b.prototype,d,{_managePreventDefault:function(a){var b,c,d=a.data,e=!1;switch(a.type){case"tabKeyed":b=this.inputView.getHintValue(),c=this.inputView.getInputValue(),e=b&&b!==c;break;case"upKeyed":case"downKeyed":e=!d.shiftKey&&!d.ctrlKey&&!d.metaKey}e&&d.preventDefault()},_setLanguageDirection:function(){var a=this.inputView.getLanguageDirection();a!==this.dir&&(this.dir=a,this.$node.css("direction",a),this.dropdownView.setLanguageDirection(a))},_updateHint:function(){var a,b,d,e,f,g=this.dropdownView.getFirstSuggestion(),h=g?g.value:null,i=this.dropdownView.isVisible(),j=this.inputView.isOverflow();h&&i&&!j&&(a=this.inputView.getInputValue(),b=a.replace(/\s{2,}/g," ").replace(/^\s+/g,""),d=c.escapeRegExChars(b),e=new RegExp("^(?:"+d+")(.*$)","i"),f=e.exec(h),this.inputView.setHintValue(a+(f?f[1]:"")))},_clearHint:function(){this.inputView.setHintValue("")},_clearSuggestions:function(){this.dropdownView.clearSuggestions()},_setInputValueToQuery:function(){this.inputView.setInputValue(this.inputView.getQuery())},_setInputValueToSuggestionUnderCursor:function(a){var b=a.data;this.inputView.setInputValue(b.value,!0)},_openDropdown:function(){this.dropdownView.open()},_closeDropdown:function(a){this.dropdownView["blured"===a.type?"closeUnlessMouseIsOverDropdown":"close"]()},_moveDropdownCursor:function(a){var b=a.data;b.shiftKey||b.ctrlKey||b.metaKey||this.dropdownView["upKeyed"===a.type?"moveCursorUp":"moveCursorDown"]()},_handleSelection:function(a){var b="suggestionSelected"===a.type,d=b?a.data:this.dropdownView.getSuggestionUnderCursor();d&&(this.inputView.setInputValue(d.value),b?this.inputView.focus():a.data.preventDefault(),b&&c.isMsie()?c.defer(this.dropdownView.close):this.dropdownView.close(),this.eventBus.trigger("selected",d.datum,d.dataset))},_getSuggestions:function(){var a=this,b=this.inputView.getQuery();c.isBlankString(b)||c.each(this.datasets,function(c,d){d.getSuggestions(b,function(c){b===a.inputView.getQuery()&&a.dropdownView.renderSuggestions(d,c)})})},_autocomplete:function(a){var b,c,d,e,f;("rightKeyed"!==a.type&&"leftKeyed"!==a.type||(b=this.inputView.isCursorAtEnd(),c="ltr"===this.inputView.getLanguageDirection()?"leftKeyed"===a.type:"rightKeyed"===a.type,b&&!c))&&(d=this.inputView.getQuery(),e=this.inputView.getHintValue(),""!==e&&d!==e&&(f=this.dropdownView.getFirstSuggestion(),this.inputView.setInputValue(f.value),this.eventBus.trigger("autocompleted",f.datum,f.dataset)))},_propagateEvent:function(a){this.eventBus.trigger(a.type)},destroy:function(){this.inputView.destroy(),this.dropdownView.destroy(),f(this.$node),this.$node=null},setQuery:function(a){this.inputView.setQuery(a),this.inputView.setInputValue(a),this._clearHint(),this._clearSuggestions(),this._getSuggestions()}}),b}();!function(){var b,d={},f="ttView";b={initialize:function(b){function g(){var b,d=a(this),g=new e({el:d});b=c.map(h,function(a){return a.initialize()}),d.data(f,new l({input:d,eventBus:g=new e({el:d}),datasets:h})),a.when.apply(a,b).always(function(){c.defer(function(){g.trigger("initialized")})})}var h;return b=c.isArray(b)?b:[b],0===b.length&&a.error("no datasets provided"),h=c.map(b,function(a){var b=d[a.name]?d[a.name]:new i(a);return a.name&&(d[a.name]=b),b}),this.each(g)},destroy:function(){function b(){var b=a(this),c=b.data(f);c&&(c.destroy(),b.removeData(f))}return this.each(b)},setQuery:function(b){function c(){var c=a(this).data(f);c&&c.setQuery(b)}return this.each(c)}},jQuery.fn.typeahead=function(a){return b[a]?b[a].apply(this,[].slice.call(arguments,1)):b.initialize.apply(this,arguments)}}()}(window.jQuery);
\ No newline at end of file
+(function(c){var l="0.9.3";var j={isMsie:function(){var m=/(msie) ([\w.]+)/i.exec(navigator.userAgent);return m?parseInt(m[2],10):false},isBlankString:function(m){return !m||/^\s*$/.test(m)},escapeRegExChars:function(m){return m.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(m){return typeof m==="string"},isNumber:function(m){return typeof m==="number"},isArray:c.isArray,isFunction:c.isFunction,isObject:c.isPlainObject,isUndefined:function(m){return typeof m==="undefined"},bind:c.proxy,bindAll:function(n){var o;for(var m in n){c.isFunction(o=n[m])&&(n[m]=c.proxy(o,n))}},indexOf:function(n,o){for(var m=0;mt?true:false}}}else{n={get:j.noop,set:j.noop,remove:j.noop,clear:j.noop,isExpired:j.noop}}j.mixin(p.prototype,n);return p;function o(){return new Date().getTime()}function q(t){return JSON.stringify(j.isUndefined(t)?null:t)}function s(t){return JSON.parse(t)}}();var i=function(){function m(n){j.bindAll(this);n=n||{};this.sizeLimit=n.sizeLimit||10;this.cache={};this.cachedKeysByAge=[]}j.mixin(m.prototype,{get:function(n){return this.cache[n]},set:function(o,p){var n;if(this.cachedKeysByAge.length===this.sizeLimit){n=this.cachedKeysByAge.shift();delete this.cache[n]}this.cache[o]=p;this.cachedKeysByAge.push(o)}});return m}();var d=function(){var n=0,q={},m,s;function t(u){j.bindAll(this);u=j.isString(u)?{url:u}:u;s=s||new i();m=j.isNumber(u.maxParallelRequests)?u.maxParallelRequests:m||6;this.url=u.url;this.wildcard=u.wildcard||"%QUERY";this.filter=u.filter;this.replace=u.replace;this.ajaxSettings={type:"get",cache:u.cache,timeout:u.timeout,dataType:u.dataType||"json",beforeSend:u.beforeSend};this._get=(/^throttle$/i.test(u.rateLimitFn)?j.throttle:j.debounce)(this._get,u.rateLimitWait||300)}j.mixin(t.prototype,{_get:function(w,u){var x=this;if(p()){this._sendRequest(w).done(v)}else{this.onDeckRequestArgs=[].slice.call(arguments,0)}function v(z){var y=x.filter?x.filter(z):z;u&&u(y);s.set(w,z)}},_sendRequest:function(v){var x=this,w=q[v];if(!w){o();w=q[v]=c.ajax(v,this.ajaxSettings).always(u)}return w;function u(){r();q[v]=null;if(x.onDeckRequestArgs){x._get.apply(x,x.onDeckRequestArgs);x.onDeckRequestArgs=null}}},get:function(y,u){var x=this,w=encodeURIComponent(y||""),v,z;u=u||j.noop;v=this.replace?this.replace(this.url,w):this.url.replace(this.wildcard,w);if(z=s.get(v)){j.defer(function(){u(x.filter?x.filter(z):z)})}else{this._get(v,u)}return !!z}});return t;function o(){n++}function r(){n--}function p(){return n"+u[t]+"
"}}}return q}}();var b=function(){function n(q){var p=this;j.bindAll(this);this.specialKeyCodeMap={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};this.$hint=c(q.hint);this.$input=c(q.input).on("blur.tt",this._handleBlur).on("focus.tt",this._handleFocus).on("keydown.tt",this._handleSpecialKeyEvent);if(!j.isMsie()){this.$input.on("input.tt",this._compareQueryToInputValue)}else{this.$input.on("keydown.tt keypress.tt cut.tt paste.tt",function(r){if(p.specialKeyCodeMap[r.which||r.keyCode]){return}j.defer(p._compareQueryToInputValue)})}this.query=this.$input.val();this.$overflowHelper=o(this.$input)}j.mixin(n.prototype,k,{_handleFocus:function(){this.trigger("focused")},_handleBlur:function(){this.trigger("blured")},_handleSpecialKeyEvent:function(p){var q=this.specialKeyCodeMap[p.which||p.keyCode];q&&this.trigger(q+"Keyed",p)},_compareQueryToInputValue:function(){var p=this.getInputValue(),r=m(this.query,p),q=r?this.query.length!==p.length:false;if(q){this.trigger("whitespaceChanged",{value:this.query})}else{if(!r){this.trigger("queryChanged",{value:this.query=p})}}},destroy:function(){this.$hint.off(".tt");this.$input.off(".tt");this.$hint=this.$input=this.$overflowHelper=null},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(p){this.query=p},getInputValue:function(){return this.$input.val()},setInputValue:function(q,p){this.$input.val(q);!p&&this._compareQueryToInputValue()},getHintValue:function(){return this.$hint.val()},setHintValue:function(p){this.$hint.val(p)},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},isOverflow:function(){this.$overflowHelper.text(this.getInputValue());return this.$overflowHelper.width()>this.$input.width()},isCursorAtEnd:function(){var q=this.$input.val().length,r=this.$input[0].selectionStart,p;if(j.isNumber(r)){return r===q}else{if(document.selection){p=document.selection.createRange();p.moveStart("character",-q);return q===p.text.length}}return true}});return n;function o(p){return c("").css({position:"absolute",left:"-9999px",visibility:"hidden",whiteSpace:"nowrap",fontFamily:p.css("font-family"),fontSize:p.css("font-size"),fontStyle:p.css("font-style"),fontVariant:p.css("font-variant"),fontWeight:p.css("font-weight"),wordSpacing:p.css("word-spacing"),letterSpacing:p.css("letter-spacing"),textIndent:p.css("text-indent"),textRendering:p.css("text-rendering"),textTransform:p.css("text-transform")}).insertAfter(p)}function m(q,p){q=(q||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ");p=(p||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ");return q===p}}();var f=function(){var o={suggestionsList:''},n={suggestionsList:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"}};function p(q){j.bindAll(this);this.isOpen=false;this.isEmpty=true;this.isMouseOverDropdown=false;this.$menu=c(q.menu).on("mouseenter.tt",this._handleMouseenter).on("mouseleave.tt",this._handleMouseleave).on("click.tt",".tt-suggestion",this._handleSelection).on("mouseover.tt",".tt-suggestion",this._handleMouseover)}j.mixin(p.prototype,k,{_handleMouseenter:function(){this.isMouseOverDropdown=true},_handleMouseleave:function(){this.isMouseOverDropdown=false},_handleMouseover:function(r){var q=c(r.currentTarget);this._getSuggestions().removeClass("tt-is-under-cursor");q.addClass("tt-is-under-cursor")},_handleSelection:function(r){var q=c(r.currentTarget);this.trigger("suggestionSelected",m(q))},_show:function(){this.$menu.css("display","block")},_hide:function(){this.$menu.hide()},_moveCursor:function(s){var u,r,q,t;if(!this.isVisible()){return}u=this._getSuggestions();r=u.filter(".tt-is-under-cursor");r.removeClass("tt-is-under-cursor");q=u.index(r)+s;q=(q+1)%(u.length+1)-1;if(q===-1){this.trigger("cursorRemoved");return}else{if(q<-1){q=u.length-1}}t=u.eq(q).addClass("tt-is-under-cursor");this._ensureVisibility(t);this.trigger("cursorMoved",m(t))},_getSuggestions:function(){return this.$menu.find(".tt-suggestions > .tt-suggestion")},_ensureVisibility:function(t){var u=this.$menu.height()+parseInt(this.$menu.css("paddingTop"),10)+parseInt(this.$menu.css("paddingBottom"),10),r=this.$menu.scrollTop(),q=t.position().top,s=q+t.outerHeight(true);if(q<0){this.$menu.scrollTop(r+q)}else{if(u .tt-suggestion").removeClass("tt-is-under-cursor");this.trigger("closed")}},open:function(){if(!this.isOpen){this.isOpen=true;!this.isEmpty&&this._show();this.trigger("opened")}},setLanguageDirection:function(q){var r={left:"0",right:"auto"},s={left:"auto",right:" 0"};q==="ltr"?this.$menu.css(r):this.$menu.css(s)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(+1)},getSuggestionUnderCursor:function(){var q=this._getSuggestions().filter(".tt-is-under-cursor").first();return q.length>0?m(q):null},getFirstSuggestion:function(){var q=this._getSuggestions().first();return q.length>0?m(q):null},renderSuggestions:function(t,u){var q="tt-dataset-"+t.name,r='%body
',x,w,y=this.$menu.find("."+q),s,v,z;if(y.length===0){w=c(o.suggestionsList).css(n.suggestionsList);y=c("").addClass(q).append(t.header).append(w).append(t.footer).appendTo(this.$menu)}if(u.length>0){this.isEmpty=false;this.isOpen&&this._show();s=document.createElement("div");v=document.createDocumentFragment();j.each(u,function(B,A){A.dataset=t.name;x=t.template(A.datum);s.innerHTML=r.replace("%body",x);z=c(s.firstChild).css(n.suggestion).data("suggestion",A);z.children().each(function(){c(this).css(n.suggestionChild)});v.appendChild(z[0])});y.show().find(".tt-suggestions").html(v)}else{this.clearSuggestions(t.name)}this.trigger("suggestionsRendered")},clearSuggestions:function(s){var q=s?this.$menu.find(".tt-dataset-"+s):this.$menu.find('[class^="tt-dataset-"]'),r=q.find(".tt-suggestions");q.hide();r.empty();if(this._getSuggestions().length===0){this.isEmpty=true;this._hide()}}});return p;function m(q){return q.data("suggestion")}}();var h=function(){var q={wrapper:'',hint:'',dropdown:''},p={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none"},query:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"}};if(j.isMsie()){j.mixin(p.query,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"})}if(j.isMsie()&&j.isMsie()<=7){j.mixin(p.wrapper,{display:"inline",zoom:"1"});j.mixin(p.query,{marginTop:"-1px"})}function n(t){var s,u,r;j.bindAll(this);this.$node=m(t.input);this.datasets=t.datasets;this.dir=null;this.eventBus=t.eventBus;s=this.$node.find(".tt-dropdown-menu");u=this.$node.find(".tt-query");r=this.$node.find(".tt-hint");this.dropdownView=new f({menu:s}).on("suggestionSelected",this._handleSelection).on("cursorMoved",this._clearHint).on("cursorMoved",this._setInputValueToSuggestionUnderCursor).on("cursorRemoved",this._setInputValueToQuery).on("cursorRemoved",this._updateHint).on("suggestionsRendered",this._updateHint).on("opened",this._updateHint).on("closed",this._clearHint).on("opened closed",this._propagateEvent);this.inputView=new b({input:u,hint:r}).on("focused",this._openDropdown).on("blured",this._closeDropdown).on("blured",this._setInputValueToQuery).on("enterKeyed tabKeyed",this._handleSelection).on("queryChanged",this._clearHint).on("queryChanged",this._clearSuggestions).on("queryChanged",this._getSuggestions).on("whitespaceChanged",this._updateHint).on("queryChanged whitespaceChanged",this._openDropdown).on("queryChanged whitespaceChanged",this._setLanguageDirection).on("escKeyed",this._closeDropdown).on("escKeyed",this._setInputValueToQuery).on("tabKeyed upKeyed downKeyed",this._managePreventDefault).on("upKeyed downKeyed",this._moveDropdownCursor).on("upKeyed downKeyed",this._openDropdown).on("tabKeyed leftKeyed rightKeyed",this._autocomplete)}j.mixin(n.prototype,k,{_managePreventDefault:function(u){var t=u.data,v,r,s=false;switch(u.type){case"tabKeyed":v=this.inputView.getHintValue();r=this.inputView.getInputValue();s=v&&v!==r;break;case"upKeyed":case"downKeyed":s=!t.shiftKey&&!t.ctrlKey&&!t.metaKey;break}s&&t.preventDefault()},_setLanguageDirection:function(){var r=this.inputView.getLanguageDirection();if(r!==this.dir){this.dir=r;this.$node.css("direction",r);this.dropdownView.setLanguageDirection(r)}},_updateHint:function(){var u=this.dropdownView.getFirstSuggestion(),t=u?u.value:null,x=this.dropdownView.isVisible(),w=this.inputView.isOverflow(),s,y,z,r,v;if(t&&x&&!w){s=this.inputView.getInputValue();y=s.replace(/\s{2,}/g," ").replace(/^\s+/g,"");z=j.escapeRegExChars(y);r=new RegExp("^(?:"+z+")(.*$)","i");v=r.exec(t);this.inputView.setHintValue(s+(v?v[1]:""))}},_clearHint:function(){this.inputView.setHintValue("")},_clearSuggestions:function(){this.dropdownView.clearSuggestions()},_setInputValueToQuery:function(){this.inputView.setInputValue(this.inputView.getQuery())},_setInputValueToSuggestionUnderCursor:function(s){var r=s.data;this.inputView.setInputValue(r.value,true)},_openDropdown:function(){this.dropdownView.open()},_closeDropdown:function(r){this.dropdownView[r.type==="blured"?"closeUnlessMouseIsOverDropdown":"close"]()},_moveDropdownCursor:function(s){var r=s.data;if(!r.shiftKey&&!r.ctrlKey&&!r.metaKey){this.dropdownView[s.type==="upKeyed"?"moveCursorUp":"moveCursorDown"]()}},_handleSelection:function(t){var s=t.type==="suggestionSelected",r=s?t.data:this.dropdownView.getSuggestionUnderCursor();if(r){this.inputView.setInputValue(r.value);s?this.inputView.focus():t.data.preventDefault();s&&j.isMsie()?j.defer(this.dropdownView.close):this.dropdownView.close();this.eventBus.trigger("selected",r.datum,r.dataset)}},_getSuggestions:function(){var r=this,s=this.inputView.getQuery();if(j.isBlankString(s)){return}j.each(this.datasets,function(t,u){u.getSuggestions(s,function(v){if(s===r.inputView.getQuery()){r.dropdownView.renderSuggestions(u,v)}})})},_autocomplete:function(v){var s,r,u,w,t;if(v.type==="rightKeyed"||v.type==="leftKeyed"){s=this.inputView.isCursorAtEnd();r=this.inputView.getLanguageDirection()==="ltr"?v.type==="leftKeyed":v.type==="rightKeyed";if(!s||r){return}}u=this.inputView.getQuery();w=this.inputView.getHintValue();if(w!==""&&u!==w){t=this.dropdownView.getFirstSuggestion();this.inputView.setInputValue(t.value);this.eventBus.trigger("autocompleted",t.datum,t.dataset)}},_propagateEvent:function(r){this.eventBus.trigger(r.type)},destroy:function(){this.inputView.destroy();this.dropdownView.destroy();o(this.$node);this.$node=null},setQuery:function(r){this.inputView.setQuery(r);this.inputView.setInputValue(r);this._clearHint();this._clearSuggestions();this._getSuggestions()}});return n;function m(r){var t=c(q.wrapper),v=c(q.dropdown),w=c(r),s=c(q.hint);t=t.css(p.wrapper);v=v.css(p.dropdown);s.css(p.hint).css({backgroundAttachment:w.css("background-attachment"),backgroundClip:w.css("background-clip"),backgroundColor:w.css("background-color"),backgroundImage:w.css("background-image"),backgroundOrigin:w.css("background-origin"),backgroundPosition:w.css("background-position"),backgroundRepeat:w.css("background-repeat"),backgroundSize:w.css("background-size")});w.data("ttAttrs",{dir:w.attr("dir"),autocomplete:w.attr("autocomplete"),spellcheck:w.attr("spellcheck"),style:w.attr("style")});w.addClass("tt-query").attr({autocomplete:"off",spellcheck:false}).css(p.query);try{!w.attr("dir")&&w.attr("dir","auto")}catch(u){}return w.wrap(t).parent().prepend(s).append(v)}function o(r){var s=r.find(".tt-query");j.each(s.data("ttAttrs"),function(t,u){j.isUndefined(u)?s.removeAttr(t):s.attr(t,u)});s.detach().removeData("ttAttrs").removeClass("tt-query").insertAfter(r);r.remove()}}();(function(){var n={},o="ttView",m;m={initialize:function(r){var q;r=j.isArray(r)?r:[r];if(r.length===0){c.error("no datasets provided")}q=j.map(r,function(t){var s=n[t.name]?n[t.name]:new a(t);if(t.name){n[t.name]=s}return s});return this.each(p);function p(){var u=c(this),t,s=new e({el:u});t=j.map(q,function(v){return v.initialize()});u.data(o,new h({input:u,eventBus:s=new e({el:u}),datasets:q}));c.when.apply(c,t).always(function(){j.defer(function(){s.trigger("initialized")})})}},destroy:function(){return this.each(p);function p(){var r=c(this),q=r.data(o);if(q){q.destroy();r.removeData(o)}}},setQuery:function(p){return this.each(q);function q(){var r=c(this).data(o);r&&r.setQuery(p)}}};jQuery.fn.typeahead=function(p){if(m[p]){return m[p].apply(this,[].slice.call(arguments,1))}else{return m.initialize.apply(this,arguments)}}})()})(window.jQuery);