

var autoComplete=(function(){function a(q){if(!document.querySelector){return}function h(k,i){return k.classList?k.classList.contains(i):new RegExp("\\b"+i+"\\b").test(k.className)}function f(o,k,i){if(o.attachEvent){o.attachEvent("on"+k,i)}else{o.addEventListener(k,i)}}function p(o,k,i){if(o.detachEvent){o.detachEvent("on"+k,i)}else{o.removeEventListener(k,i)}}function d(r,o,i,k){f(k||document,o,function(u){var t,s=u.target||u.srcElement;while(s&&!(t=h(s,r))){s=s.parentElement}if(t){i.call(s,u)}})}var c={selector:0,source:0,minChars:3,delay:150,offsetLeft:0,offsetTop:1,cache:0,cityInput:0,sourcing_cached:0,kwId:0,menuClass:"",renderItem:function(o,i,r){i=i.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");var k=new RegExp("("+i.split(" ").join("|")+")","gi");if(q.cityInput){var s="";s=r.city_id+","+r.city+","+r.state+","+r.country_name+","+r.country_code;return'<div id="div_'+r.city_id+'" class="autocomplete-suggestion" data-val="'+o+'" data-fields="'+s+'">'+o.replace(k,"<b>$1</b>")+"</div>"}else{if(q.kwId){var s="";s=r.id+","+r.text+","+r.cat_id;return'<div id="div_'+r.id+'" class="autocomplete-suggestion" data-val="'+o+'" data-fields="'+s+'">'+o.replace(k,"<b>$1</b>")+"</div>"}else{return'<div class="autocomplete-suggestion" data-val="'+o+'">'+o.replace(k,"<b>$1</b>")+"</div>"}}},onSelect:function(v,r,s){var k=jQuery(q.selector).closest("form");if(jQuery(k).attr("name")=="global_search_form"){jQuery(k).submit()}if(q.cityInput){var i=s.getAttribute("data-fields");var o=i.split(",");var t="";if(q.sourcing_cached){t=q.sourcing_cached}jQuery("#"+t+"cityId").val(o[0]);jQuery("#"+t+"city").val(o[1]);jQuery("#"+t+"state").val(o[2]);jQuery("#"+t+"country_name").val(o[3]);jQuery("#"+t+"country_code").val(o[4])}else{if(q.kwId){var i=s.getAttribute("data-fields");var u=i.split(",");jQuery("#business_kw_id").val(u[0]);jQuery("#keyword").val(u[1]);jQuery("#category_id").val(u[2])}}}};for(var e in q){if(q.hasOwnProperty(e)){c[e]=q[e]}}if(q.cityInput){var l="";if(q.sourcing_cached){l=q.sourcing_cached}var n=jQuery(q.selector).closest("form");jQuery(n).append('<input type="hidden" name="'+l+'cityId" id="'+l+'cityId" />');jQuery(n).append('<input type="hidden" name="'+l+'city" id="'+l+'city" />');jQuery(n).append('<input type="hidden" name="'+l+'state" id="'+l+'state" />');jQuery(n).append('<input type="hidden" name="'+l+'country_name" id="'+l+'country_name" />');jQuery(n).append('<input type="hidden" name="'+l+'country_code" id="'+l+'country_code" />')}else{if(q.kwId){var n=jQuery(q.selector).closest("form");jQuery(n).append('<input type="hidden" name="business_kw_id" id="business_kw_id" />');jQuery(n).append('<input type="hidden" name="keyword" id="keyword" />');jQuery(n).append('<input type="hidden" name="category_id" id="category_id" />')}}var b=typeof c.selector=="object"?[c.selector]:document.querySelectorAll(c.selector);for(var g=0;g<b.length;g++){var m=b[g];m.sc=document.createElement("div");m.sc.className="autocomplete-suggestions "+c.menuClass;m.autocompleteAttr=m.getAttribute("autocomplete");m.setAttribute("autocomplete","off");m.cache={};m.last_val="";m.updateSC=function(k,o){var r=m.getBoundingClientRect();m.sc.style.left=Math.round(r.left+(window.pageXOffset||document.documentElement.scrollLeft)+c.offsetLeft)+"px";m.sc.style.top=Math.round(r.bottom+(window.pageYOffset||document.documentElement.scrollTop)+c.offsetTop)+"px";m.sc.style.width=Math.round(r.right-r.left)+"px";if(!k){m.sc.style.display="block";if(!m.sc.maxHeight){m.sc.maxHeight=parseInt((window.getComputedStyle?getComputedStyle(m.sc,null):m.sc.currentStyle).maxHeight)}if(!m.sc.suggestionHeight){m.sc.suggestionHeight=m.sc.querySelector(".autocomplete-suggestion").offsetHeight}if(m.sc.suggestionHeight){if(!o){m.sc.scrollTop=0}else{var i=m.sc.scrollTop,s=o.getBoundingClientRect().top-m.sc.getBoundingClientRect().top;if(s+m.sc.suggestionHeight-m.sc.maxHeight>0){m.sc.scrollTop=s+m.sc.suggestionHeight+i-m.sc.maxHeight}else{if(s<0){m.sc.scrollTop=s+i}}}}}};f(window,"resize",m.updateSC);document.body.appendChild(m.sc);d("autocomplete-suggestion","mouseover",function(k){var i=m.sc.querySelector(".autocomplete-suggestion.selected");if(i){i.className=i.className.replace("selected","")}this.className+=" selected"},m.sc);d("autocomplete-suggestion","mousedown",function(k){if(h(this,"autocomplete-suggestion")){var i=this.getAttribute("data-val");m.value=i;c.onSelect(k,i,this);m.sc.style.display="none"}},m.sc);m.blurHandler=function(){try{var i=document.querySelector(".autocomplete-suggestions:hover")}catch(k){var i=0}if(!i){m.last_val=m.value;m.sc.style.display="none";setTimeout(function(){m.sc.style.display="none"},350)}else{if(m!==document.activeElement){setTimeout(function(){m.focus()},20)}}};f(m,"blur",m.blurHandler);var j=function(t){var u=m.value;m.cache[u]=t;if(t.length&&u.length>=c.minChars){var o="";for(var k=0;k<t.length;k++){if(q.cityInput){o+=c.renderItem(t[k].optionLabel,u,t[k])}else{if(q.kwId){o+=c.renderItem(t[k].text,u,t[k])}else{o+=c.renderItem(t[k],u)}}}m.sc.innerHTML=o;m.updateSC(0)}else{if(q.cityInput){m.sc.style.display="block";m.sc.innerHTML='<div class="autocomplete-suggestion">No Matches found</div>';if(q.sourcing_cached){var r=q.sourcing_cached;jQuery("#"+r+"cityId").val("");jQuery("#"+r+"city").val("");jQuery("#"+r+"state").val("");jQuery("#"+r+"country_name").val("");jQuery("#"+r+"country_code").val("")}else{jQuery("#cityId, #city, #state, #country_name, #country_code,").val("")}}else{if(q.kwId){m.sc.style.display="block";m.sc.innerHTML='<div class="autocomplete-suggestion">No Matches found</div>'}else{m.sc.style.display="none"}}}};m.keydownHandler=function(r){var i=window.event?r.keyCode:r.which;if((i==40||i==38)&&m.sc.innerHTML){var k,o=m.sc.querySelector(".autocomplete-suggestion.selected");if(!o){k=(i==40)?m.sc.querySelector(".autocomplete-suggestion"):m.sc.childNodes[m.sc.childNodes.length-1];k.className+=" selected";m.value=k.getAttribute("data-val")}else{k=(i==40)?o.nextSibling:o.previousSibling;if(k){o.className=o.className.replace("selected","");k.className+=" selected";m.value=k.getAttribute("data-val")}else{o.className=o.className.replace("selected","");m.value=m.last_val;k=0}}m.updateSC(0,k);return false}else{if(i==27){m.value=m.last_val;m.sc.style.display="none"}else{if(i==13||i==9){var o=m.sc.querySelector(".autocomplete-suggestion.selected");if(o&&m.sc.style.display!="none"){c.onSelect(r,o.getAttribute("data-val"),o);setTimeout(function(){m.sc.style.display="none"},20)}}}}};f(m,"keydown",m.keydownHandler);m.keyupHandler=function(s){var r=window.event?s.keyCode:s.which;if(!r||(r<35||r>40)&&r!=13&&r!=27){var t=m.value;if(t.length>=c.minChars){if(t!=m.last_val){m.last_val=t;clearTimeout(m.timer);if(c.cache){if(t in m.cache){j(m.cache[t]);return}for(var o=1;o<t.length-c.minChars;o++){var k=t.slice(0,t.length-o);if(k in m.cache&&!m.cache[k].length){j([]);return}}}m.timer=setTimeout(function(){c.source(t,j)},c.delay)}}else{m.last_val=t;m.sc.style.display="none"}}};f(m,"keyup",m.keyupHandler);m.focusHandler=function(i){m.last_val="\n";m.keyupHandler(i)};if(!c.minChars){f(m,"focus",m.focusHandler)}}this.destroy=function(){for(var k=0;k<b.length;k++){var o=b[k];p(window,"resize",o.updateSC);p(o,"blur",o.blurHandler);p(o,"focus",o.focusHandler);p(o,"keydown",o.keydownHandler);p(o,"keyup",o.keyupHandler);if(o.autocompleteAttr){o.setAttribute("autocomplete",o.autocompleteAttr)}else{o.removeAttribute("autocomplete")}document.body.removeChild(o.sc);o=null}}}return a})();(function(){if(typeof define==="function"&&define.amd){define("autoComplete",function(){return autoComplete})}else{if(typeof module!=="undefined"&&module.exports){module.exports=autoComplete}else{window.autoComplete=autoComplete}}})();

}

