(function(a){a.widget("ui.autocomplete",{options:{cid:"",minLength:1,num_products:6,num_terms:10,delay:300,termsHeader:'<div class="termsHeader">POPULAR SEARCHES</div>',productsHeader:'<div class="productsHeader">PRODUCT MATCHES</div>',itemOrder:["terms","products"],footer:'<div style="text-align:center;border-top:1px solid black;"><a target="_blank" href="http://www.nextopia.com"><img border="0" src="'+(("https:"==document.location.protocol)?"https:":"http:")+'//vector.nextopiasoftware.com/autocomplete-powered-by-nextopiav1.gif"></a></div>'},_create:function(){var b=this,c=this.element[0].ownerDocument;this.overContainer=false;this.lastSearch="";this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").bind("keydown.autocomplete",function(d){var e=a.ui.keyCode;switch(d.keyCode){case e.UP:b._move("previous",d);d.preventDefault();break;case e.DOWN:b._move("next",d);d.preventDefault();break;case e.ENTER:if(b.menu.active){d.preventDefault()}case e.TAB:if(!b.menu.active){return}b.menu.select();break;case e.ESCAPE:b.element.val(b.term);b.close(d);break;case e.SHIFT:case e.CONTROL:case 18:break;default:clearTimeout(b.searching);b.searching=setTimeout(function(){b.search(null,d)},b.options.delay);break}}).bind("focus.autocomplete",function(){b.previous=b.element.val()}).bind("blur.autocomplete",function(d){if(b.overContainer!==true){clearTimeout(b.searching);b.close(d)}});this.source=function(e,d){a.ajax({url:(("https:"==document.location.protocol)?"https://":"http://")+"vector.nextopiasoftware.com/return_autocomplete_jsonp.php",dataType:"jsonp",data:{q:e.term,cid:b.options.cid,num_products:b.options.num_products,num_terms:b.options.num_terms},success:function(f){d(f)}})};this.response=function(){return b._response.apply(b,arguments)};this.menu=a("<ul></ul>").addClass("ui-autocomplete").bind("mouseover.autocomplete",function(d){b.overContainer=true}).bind("mouseout.autocomplete",function(d){b.overContainer=false}).appendTo("body",c).menu({selected:function(e,f){if(f.item!==undefined&&f.item!==null){var d=f.item.data("item.autocomplete");if(false!==b._trigger("select",e,{item:d})){if(typeof d==="string"){b._handleItemSelect(d)}else{b._handleProductSelect(d)}}b.lastSearch=b.element.val();b.close(e);b.previous=b.element.val();if(b.element[0]!==c.activeElement){b.element.focus()}}}}).unbind("click").bind("click",function(d){b.menu.select()}).zIndex(this._getZIndex()+1).css({top:0,left:0}).hide().data("menu");if(a.fn.bgiframe){this.menu.element.bgiframe()}},destroy:function(){this.element.removeClass("ui-autocomplete-input ui-widget ui-widget-content").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();a.Widget.prototype.destroy.call(this)},_setOption:function(b){a.Widget.prototype._setOption.apply(this,arguments)},search:function(c,b){c=c!=null?c:this.element.val();if(c.length<this.options.minLength){return this.close(b)}clearTimeout(this.closing);if(c==this.lastSearch||this._trigger("search")===false){return}this.lastSearch=c;return this._search(c)},_search:function(b){this.term=this.element.addClass("ui-autocomplete-loading").val();this.source({term:b},this.response)},_response:function(b){if(b!==undefined&&(b.terms!==undefined||b.products!==undefined)){this._suggest(b);this._trigger("open")}else{this.close()}this.element.removeClass("ui-autocomplete-loading")},close:function(b){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this._trigger("close",b);this.menu.element.hide();this.menu.deactivate()}if(this.previous!==this.element.val()){this._trigger("change",b)}},_suggest:function(b){var c=this.menu.element.empty().zIndex(this._getZIndex()+1),d,e;this._renderMenu(c,b);this.menu.deactivate();this.menu.refresh();this.menu.element.show().position({my:"left top",at:"left bottom",of:this.element,collision:"none"});d=c.width("").width();e=this.element.width();c.width(Math.max(d,e))},_renderMenu:function(e,c){var b=this;for(var d in b.options.itemOrder){var f=b.options.itemOrder[d];if(c[f]!==undefined){if(b.options[f+"Header"]!=""){a(b.options[f+"Header"]).appendTo(e)}a.each(c[f],function(g,h){b._renderItem(e,h,f)})}}if(b.options.footer!=""){a(b.options.footer).appendTo(e)}},_renderItem:function(b,e,c){var d="";switch(c){case"terms":d=this._drawTerm(e);break;case"products":d=this._drawProduct(e);break}return a("<li></li>").data("item.autocomplete",e).addClass(c+"Item").append("<a>"+d+"</a>").appendTo(b)},_drawTerm:function(b){return this._encapsulateMatches(b)},_drawProduct:function(b){if("https:"==document.location.protocol&&b.Image.substr(0,6)!="https:"){b.Image="https:"+b.Image.substr(5)}return'<img src="'+b.Image+'"/> '+this._encapsulateMatches(b.Name)},_handleItemSelect:function(b){this.element.val(b);this.element.context.form.submit()},_handleProductSelect:function(b){if(b.Url!=""){window.location=b.Url}else{this.element.val(b.Name)}},_encapsulateMatches:function(d){var b=this.term.split(" ");for(var c in b){d=d.replace(new RegExp("(^|\\b)("+b[c].replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")","i"),"<b>$1$2</b>")}return d},_move:function(c,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}this.menu[c]();if(this.menu.active.data("item.autocomplete")==null){this.menu[c]()}},_getZIndex:function(){var b=parseInt(this.element.context.style.zIndex);if(isNaN(b)){b=0}return b},widget:function(){return this.menu.element}})}(jQuery));
