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