"+y(a(b).data("settings").searchingText)+""),L())}function N(){a(b).data("settings").hintText&&(v.html(""+y(a(b).data("settings").hintText)+"
"),L())}function P(a){return a.replace(O,"\\$&")}function Q(a,b){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+P(b)+")(?![^<>]*>)(?![^&;]+;)","gi"),function(a,b){return""+y(b)+""})}function R(a,b,c){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+P(b)+")(?![^<>]*>)(?![^&;]+;)","g"),Q(b,c))}function S(c){if(a(b).data("settings").excludeCurrent){var d=a(b).data("tokenInputObject").getTokens(),e=[];d.length&&(a.each(c,function(c,f){var g=!0;a.each(d,function(c,d){return f[a(b).data("settings").propertyToSearch]==d[a(b).data("settings").propertyToSearch]?(g=!1,!1):void 0}),g&&e.push(f)}),c=e)}return c}function T(c,d){if(d=S(d),d&&d.length){v.empty();var e=a("").appendTo(v).mouseover(function(b){U(a(b.target).closest("li"))}).mousedown(function(b){return E(a(b.target).closest("li").data("tokeninput")),p.change(),!1}).hide();a(b).data("settings").resultsLimit&&d.length>a(b).data("settings").resultsLimit&&(d=d.slice(0,a(b).data("settings").resultsLimit)),a.each(d,function(d,f){var g=a(b).data("settings").resultsFormatter(f);g=R(g,f[a(b).data("settings").propertyToSearch],c),g=a(g).appendTo(e),g.addClass(d%2?a(b).data("settings").classes.dropdownItem:a(b).data("settings").classes.dropdownItem2),0===d&&a(b).data("settings").autoSelectFirstResult&&U(g),a.data(g.get(0),"tokeninput",f)}),L(),a(b).data("settings").animateDropdown?e.slideDown("fast"):e.show()}else a(b).data("settings").noResultsText&&(v.html(""+y(a(b).data("settings").noResultsText)+"
"),L())}function U(c){c&&(s&&V(a(s)),c.addClass(a(b).data("settings").classes.selectedDropdownItem),s=c.get(0))}function V(c){c.removeClass(a(b).data("settings").classes.selectedDropdownItem),s=null}function W(){var c=o.val();c&&c.length&&(q&&G(a(q),d.AFTER),c.length>=a(b).data("settings").minChars?(M(),clearTimeout(m),m=setTimeout(function(){X(c)},a(b).data("settings").searchDelay)):K())}function X(c){var d=c+Y(),e=l.get(d);if(e)a.isFunction(a(b).data("settings").onCachedResult)&&(e=a(b).data("settings").onCachedResult.call(p,e)),T(c,e);else if(a(b).data("settings").url){var f=Y(),h={};if(h.data={},f.indexOf("?")>-1){var i=f.split("?");h.url=i[0];var j=i[1].split("&");a.each(j,function(a,b){var c=b.split("=");h.data[c[0]]=c[1]})}else h.url=f;if(h.data[a(b).data("settings").queryParam]=c,h.type=a(b).data("settings").method,h.dataType=a(b).data("settings").contentType,a(b).data("settings").crossDomain&&(h.dataType="jsonp"),a(b).data("settings").excludeCurrent){var k=a(b).data("tokenInputObject").getTokens(),m=a.map(k,function(c){return"function"==typeof a(b).data("settings").tokenValue?a(b).data("settings").tokenValue.call(this,c):c[a(b).data("settings").tokenValue]});h.data[a(b).data("settings").excludeCurrentParameter]=m.join(a(b).data("settings").tokenDelimiter)}h.success=function(e){l.add(d,a(b).data("settings").jsonContainer?e[a(b).data("settings").jsonContainer]:e),a.isFunction(a(b).data("settings").onResult)&&(e=a(b).data("settings").onResult.call(p,e)),o.val()===c&&T(c,a(b).data("settings").jsonContainer?e[a(b).data("settings").jsonContainer]:e)},g.onSend&&g.onSend(h),a.ajax(h)}else if(a(b).data("settings").local_data){var n=a.grep(a(b).data("settings").local_data,function(d){return d[a(b).data("settings").propertyToSearch].toLowerCase().indexOf(c.toLowerCase())>-1});l.add(d,n),a.isFunction(a(b).data("settings").onResult)&&(n=a(b).data("settings").onResult.call(p,n)),T(c,n)}}function Y(){var c=a(b).data("settings");return"function"==typeof c.url?c.url.call(c):c.url}function Z(a){setTimeout(function(){a.focus()},50)}if("string"===typeof f||"function"===typeof f){a(b).data("settings").url=f;var h=Y();void 0===a(b).data("settings").crossDomain&&"string"===typeof h&&(a(b).data("settings").crossDomain=-1===h.indexOf("://")?!1:location.href.split(/\/+/g)[1]!==h.split(/\/+/g)[1])}else"object"===typeof f&&(a(b).data("settings").local_data=f);a(b).data("settings").classes?a(b).data("settings").classes=a.extend({},c,a(b).data("settings").classes):a(b).data("settings").theme?(a(b).data("settings").classes={},a.each(c,function(c,d){a(b).data("settings").classes[c]=d+"-"+a(b).data("settings").theme})):a(b).data("settings").classes=c;var m,n,j=[],k=0,l=new a.TokenList.Cache,o=a('').css({outline:"none"}).attr("id",a(b).data("settings").idPrefix+b.id).focus(function(){return a(b).data("settings").disabled?!1:((null===a(b).data("settings").tokenLimit||a(b).data("settings").tokenLimit!==k)&&N(),void t.addClass(a(b).data("settings").classes.focused))}).blur(function(){K(),a(b).data("settings").allowFreeTagging&&C(),a(this).val(""),t.removeClass(a(b).data("settings").classes.focused)}).bind("keyup keydown blur update",B).keydown(function(c){var f,g;switch(c.keyCode){case e.LEFT:case e.RIGHT:case e.UP:case e.DOWN:if(0===this.value.length)f=u.prev(),g=u.next(),f.length&&f.get(0)===q||g.length&&g.get(0)===q?c.keyCode===e.LEFT||c.keyCode===e.UP?G(a(q),d.BEFORE):G(a(q),d.AFTER):c.keyCode!==e.LEFT&&c.keyCode!==e.UP||!f.length?c.keyCode!==e.RIGHT&&c.keyCode!==e.DOWN||!g.length||F(a(g.get(0))):F(a(f.get(0)));else{var h=null;c.keyCode===e.DOWN||c.keyCode===e.RIGHT?(h=a(v).find("li").first(),s&&(h=a(s).next())):(h=a(v).find("li").last(),s&&(h=a(s).prev())),U(h)}break;case e.BACKSPACE:if(f=u.prev(),0===this.value.length)return q?(I(a(q)),p.change()):f.length&&F(a(f.get(0))),!1;1===a(this).val().length?K():setTimeout(function(){W()},5);break;case e.TAB:case e.ENTER:case e.NUMPAD_ENTER:case e.COMMA:if(s)E(a(s).data("tokeninput")),p.change();else{if(a(b).data("settings").allowFreeTagging){if(a(b).data("settings").allowTabOut&&""===a(this).val())return!0;C()}else if(a(this).val(""),a(b).data("settings").allowTabOut)return!0;c.stopPropagation(),c.preventDefault()}return!1;case e.ESCAPE:return K(),!0;default:String.fromCharCode(c.which)&&setTimeout(function(){W()},5)}});g.placeholder&&o.attr("placeholder",g.placeholder);var p=a(b).hide().val("").focus(function(){Z(o)}).blur(function(){return o.blur(),p}),q=null,r=0,s=null,t=a("").addClass(a(b).data("settings").classes.tokenList).click(function(b){var c=a(b.target).closest("li");c&&c.get(0)&&a.data(c.get(0),"tokeninput")?H(c):(q&&G(a(q),d.END),Z(o))}).mouseover(function(c){var d=a(c.target).closest("li");d&&q!==this&&d.addClass(a(b).data("settings").classes.highlightedToken)}).mouseout(function(c){var d=a(c.target).closest("li");d&&q!==this&&d.removeClass(a(b).data("settings").classes.highlightedToken)}).insertBefore(p),u=a("").addClass(a(b).data("settings").classes.inputToken).appendTo(t).append(o),v=a("").addClass(a(b).data("settings").classes.dropdown).appendTo("body").hide(),w=a("").insertAfter(o).css({position:"absolute",top:-9999,left:-9999,width:"auto",fontSize:o.css("fontSize"),fontFamily:o.css("fontFamily"),fontWeight:o.css("fontWeight"),letterSpacing:o.css("letterSpacing"),whiteSpace:"nowrap"});p.val("");var x=a(b).data("settings").prePopulate||p.data("pre");a(b).data("settings").processPrePopulate&&a.isFunction(a(b).data("settings").onResult)&&(x=a(b).data("settings").onResult.call(p,x)),x&&x.length&&a.each(x,function(a,b){D(b),A(),o.attr("placeholder",null)}),a(b).data("settings").disabled&&z(!0),"function"===typeof a(b).data("settings").onReady&&a(b).data("settings").onReady.call(),this.clear=function(){t.children("li").each(function(){0===a(this).children("input").length&&I(a(this))})},this.add=function(a){E(a)},this.remove=function(b){t.children("li").each(function(){if(0===a(this).children("input").length){var c=a(this).data("tokeninput"),d=!0;for(var e in b)if(b[e]!==c[e]){d=!1;break}d&&I(a(this))}})},this.getTokens=function(){return j},this.toggleDisabled=function(a){z(a)},B();var O=new RegExp("[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]","g")},a.TokenList.Cache=function(b){var c,f,d={},e=0;c=a.extend({max_size:500},b),f=function(){d={},e=0},this.add=function(a,b){e>c.max_size&&f(),d[a]||(e+=1),d[a]=b},this.get=function(a){return d[a]}}}(jQuery);