var autoComplete=function(){return function(g){function q(a,b){return a.classList?a.classList.contains(b):(new RegExp("\\b"+b+"\\b")).test(a.className)}function h(a,b,d){a.attachEvent?a.attachEvent("on"+b,d):a.addEventListener(b,d)}function k(a,b,d){a.detachEvent?a.detachEvent("on"+b,d):a.removeEventListener(b,d)}function n(a,b,d,e){h(e||document,b,function(b){for(var c,e=b.target||b.srcElement;e&&!(c=q(e,a));)e=e.parentElement;c&&d.call(e,b)})}if(document.querySelector){var e={selector:0,source:0, minChars:3,delay:150,offsetLeft:0,offsetTop:1,cache:1,menuClass:"",renderItem:function(a,b){b=b.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$\x26");b=new RegExp("("+b.split(" ").join("|")+")","gi");return'\x3cdiv class\x3d"autocomplete-suggestion" data-val\x3d"'+a+'"\x3e'+a.replace(b,"\x3cb\x3e$1\x3c/b\x3e")+"\x3c/div\x3e"},onSelect:function(){}},l;for(l in g)g.hasOwnProperty(l)&&(e[l]=g[l]);var m="object"==typeof e.selector?[e.selector]:document.querySelectorAll(e.selector);for(g=0;gb&&(a.sc.scrollTop=b+c)):a.sc.scrollTop=0};h(window,"resize",a.updateSC);document.body.appendChild(a.sc);n("autocomplete-suggestion","mouseleave",function(){var c=a.sc.querySelector(".autocomplete-suggestion.selected");c&&setTimeout(function(){c.className=c.className.replace("selected","")},20)},a.sc);n("autocomplete-suggestion","mouseover",function(){var c=a.sc.querySelector(".autocomplete-suggestion.selected");c&&(c.className=c.className.replace("selected",""));this.className+=" selected"},a.sc); n("autocomplete-suggestion","mousedown",function(c){if(q(this,"autocomplete-suggestion")){var b=this.getAttribute("data-val");a.value=b;e.onSelect(c,b,this);a.sc.style.display="none"}},a.sc);a.blurHandler=function(){try{var c=document.querySelector(".autocomplete-suggestions:hover")}catch(b){c=0}c?a!==document.activeElement&&setTimeout(function(){a.focus()},20):(a.last_val=a.value,a.sc.style.display="none",setTimeout(function(){a.sc.style.display="none"},350))};h(a,"blur",a.blurHandler);var p=function(c){var b= a.value;if(a.cache[b]=c,c.length&&b.length>=e.minChars){for(var d="",f=0;fc||40=e.minChars){if(b!=a.last_val){if(a.last_val=b,clearTimeout(a.timer),e.cache){if(b in a.cache)return void p(a.cache[b]);for(c=1;c