(function(b){var a=0;b.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var d=this,c=this.element[0].ownerDocument,e;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(h){if(!(d.options.disabled||d.element.attr("readonly"))){e=false;var g=b.ui.keyCode;switch(h.keyCode){case g.PAGE_UP:d._move("previousPage",h);break;case g.PAGE_DOWN:d._move("nextPage",h);break;case g.UP:d._move("previous",h);h.preventDefault();break;case g.DOWN:d._move("next",h);h.preventDefault();break;case g.ENTER:case g.NUMPAD_ENTER:if(d.menu.active){e=true;h.preventDefault()}case g.TAB:if(!d.menu.active){return}d.menu.select(h);break;case g.ESCAPE:d.element.val(d.term);d.close(h);break;default:clearTimeout(d.searching);d.searching=setTimeout(function(){if(d.term!=d.element.val()){d.selectedItem=null;d.search(null,h)}},d.options.delay);break}}}).bind("keypress.autocomplete",function(f){if(e){e=false;f.preventDefault()}}).bind("focus.autocomplete",function(){if(!d.options.disabled){d.selectedItem=null;d.previous=d.element.val()}}).bind("blur.autocomplete",function(f){if(!d.options.disabled){clearTimeout(d.searching);d.closing=setTimeout(function(){d.close(f);d._change(f)},150)}});this._initSource();this.response=function(){return d._response.apply(d,arguments)};this.menu=b("<ul></ul>").addClass("ui-autocomplete").appendTo(b(this.options.appendTo||"body",c)[0]).mousedown(function(h){var g=d.menu.element[0];b(h.target).closest(".ui-menu-item").length||setTimeout(function(){b(document).one("mousedown",function(f){f.target!==d.element[0]&&f.target!==g&&!b.ui.contains(g,f.target)&&d.close()})},1);setTimeout(function(){clearTimeout(d.closing)},13)}).menu({focus:function(h,g){g=g.item.data("item.autocomplete");false!==d._trigger("focus",h,{item:g})&&/^key/.test(h.originalEvent.type)&&d.element.val(g.value)},selected:function(l,k){var j=k.item.data("item.autocomplete"),g=d.previous;if(d.element[0]!==c.activeElement){d.element.focus();d.previous=g;setTimeout(function(){d.previous=g;d.selectedItem=j},1)}false!==d._trigger("select",l,{item:j})&&d.element.val(j.value);d.term=d.element.val();d.close(l);d.selectedItem=j},blur:function(){d.menu.element.is(":visible")&&d.element.val()!==d.term&&d.element.val(d.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");b.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();b.Widget.prototype.destroy.call(this)},_setOption:function(d,c){b.Widget.prototype._setOption.apply(this,arguments);d==="source"&&this._initSource();if(d==="appendTo"){this.menu.element.appendTo(b(c||"body",this.element[0].ownerDocument)[0])}d==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var d=this,c,e;if(b.isArray(this.options.source)){c=this.options.source;this.source=function(h,g){g(b.ui.autocomplete.filter(c,h.term))}}else{if(typeof this.options.source==="string"){e=this.options.source;this.source=function(h,g){d.xhr&&d.xhr.abort();d.xhr=b.ajax({url:e,data:h,dataType:"json",autocompleteRequest:++a,success:function(f){this.autocompleteRequest===a&&g(f)},error:function(){this.autocompleteRequest===a&&g([])}})}}else{this.source=this.options.source}}},search:function(d,c){d=d!=null?d:this.element.val();this.term=this.element.val();if(d.length<this.options.minLength){return this.close(c)}clearTimeout(this.closing);if(this._trigger("search",c)!==false){return this._search(d)}},_search:function(c){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:c},this.response)},_response:function(c){if(!this.options.disabled&&c&&c.length){c=this._normalize(c);this._suggest(c);this._trigger("open")}else{this.close()}this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(c){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",c)}},_change:function(c){this.previous!==this.element.val()&&this._trigger("change",c,{item:this.selectedItem})},_normalize:function(c){if(c.length&&c[0].label&&c[0].value){return c}return b.map(c,function(d){if(typeof d==="string"){return{label:d,value:d}}return b.extend({label:d.label||d.value,value:d.value||d.label},d)})},_suggest:function(d){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(c,d);this.menu.deactivate();this.menu.refresh();c.show();this._resizeMenu();c.position(b.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new b.Event("mouseover"))},_resizeMenu:function(){var c=this.menu.element;c.outerWidth(Math.max(c.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(d,c){var e=this;b.each(c,function(h,g){e._renderItem(d,g)})},_renderItem:function(d,c){return b("<li></li>").data("item.autocomplete",c).append(b("<a></a>").text(c.label)).appendTo(d)},_move:function(d,c){if(this.menu.element.is(":visible")){if(this.menu.first()&&/^previous/.test(d)||this.menu.last()&&/^next/.test(d)){this.element.val(this.term);this.menu.deactivate()}else{this.menu[d](c)}}else{this.search(null,c)}},widget:function(){return this.menu.element}});b.extend(b.ui.autocomplete,{escapeRegex:function(c){return c.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(d,c){var e=new RegExp(b.ui.autocomplete.escapeRegex(c),"i");return b.grep(d,function(f){return e.test(f.label||f.value||f)})}})})(jQuery);(function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(a(c.target).closest(".ui-menu-item a").length){c.preventDefault();b.select(c)}});this.refresh()},refresh:function(){var b=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(i,f){this.deactivate();if(this.hasScroll()){var d=f.offset().top-this.element.offset().top,h=this.element.attr("scrollTop"),j=this.element.height();if(d<0){this.element.attr("scrollTop",h+d)}else{d>=j&&this.element.attr("scrollTop",h+d-j+f.height())}}this.active=f.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",i,{item:f})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(b){this.move("next",".ui-menu-item:first",b)},previous:function(b){this.move("prev",".ui-menu-item:last",b)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(f,d,c){if(this.active){f=this.active[f+"All"](".ui-menu-item").eq(0);f.length?this.activate(c,f):this.activate(c,this.element.children(d))}else{this.activate(c,this.element.children(d))}},nextPage:function(h){if(this.hasScroll()){if(!this.active||this.last()){this.activate(h,this.element.children(".ui-menu-item:first"))}else{var d=this.active.offset().top,c=this.element.height(),f=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-d-c+a(this).height();return b<10&&b>-10});f.length||(f=this.element.children(".ui-menu-item:last"));this.activate(h,f)}}else{this.activate(h,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))}},previousPage:function(f){if(this.hasScroll()){if(!this.active||this.first()){this.activate(f,this.element.children(".ui-menu-item:last"))}else{var d=this.active.offset().top,c=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-d+c-a(this).height();return b<10&&b>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(f,result)}}else{this.activate(f,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))}},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(b){this._trigger("selected",b,{item:this.active})}})})(jQuery);
