(function(a){a.widget("ui.autocomplete",{options:{minLength:1,delay:300},_create:function(){var b=this,c=this.element[0].ownerDocument;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(d){var c=a.ui.keyCode;switch(d.keyCode){case c.PAGE_UP:b._move("previousPage",d);break;case c.PAGE_DOWN:b._move("nextPage",d);break;case c.UP:b._move("previous",d);d.preventDefault();break;case c.DOWN:b._move("next",d);d.preventDefault();break;case c.ENTER:case c.NUMPAD_ENTER:b.menu.active&&d.preventDefault();case c.TAB:if(!b.menu.active)return;b.menu.select(d);break;case c.ESCAPE:b.element.val(b.term);b.close(d);break;case c.LEFT:case c.RIGHT:case c.SHIFT:case c.CONTROL:case c.ALT:case c.COMMAND:case c.COMMAND_RIGHT:case c.INSERT:case c.CAPS_LOCK:case c.END:case c.HOME:break;default:clearTimeout(b.searching);b.searching=setTimeout(function(){b.search(null,d)},b.options.delay)}}).bind("focus.autocomplete",function(){b.selectedItem=null;b.previous=b.element.val()}).bind("blur.autocomplete",function(a){clearTimeout(b.searching);b.closing=setTimeout(function(){b.close(a);b._change(a)},150)});this._initSource();this.response=function(){return b._response.apply(b,arguments)};this.menu=a("<ul></ul>").addClass("ui-autocomplete").appendTo("body",c).mousedown(function(){setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(c,d){var a=d.item.data("item.autocomplete");if(false!==b._trigger("focus",null,{item:a}))/^key/.test(c.originalEvent.type)&&b.element.val(a.value)},selected:function(d,f){var a=f.item.data("item.autocomplete");false!==b._trigger("select",d,{item:a})&&b.element.val(a.value);b.close(d);var e=b.previous;if(b.element[0]!==c.activeElement){b.element.focus();b.previous=e}b.selectedItem=a},blur:function(){b.menu.element.is(":visible")&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");a.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();a.Widget.prototype.destroy.call(this)},_setOption:function(b){a.Widget.prototype._setOption.apply(this,arguments);b==="source"&&this._initSource()},_initSource:function(){var b,c;if(a.isArray(this.options.source)){b=this.options.source;this.source=function(d,c){c(a.ui.autocomplete.filter(b,d.term))}}else if(typeof this.options.source==="string"){c=this.options.source;this.source=function(d,b){a.getJSON(c,d,b)}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);return this._trigger("search")===false?void 0:this._search(a)},_search:function(a){this.term=this.element.addClass("ui-autocomplete-loading").val();this.source({term:a},this.response)},_response:function(a){if(a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this._trigger("close",a);this.menu.element.hide();this.menu.deactivate()}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return typeof b==="string"?{label:b,value:b}:a.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(d){var a=this.menu.element.empty().zIndex(this.element.zIndex()+1),b,c;this._renderMenu(a,d);this.menu.deactivate();this.menu.refresh();this.menu.element.show().position({my:"left top",at:"left bottom",of:this.element,collision:"none"});b=a.width("").width();c=this.element.width();a.width(Math.max(b,c))},_renderMenu:function(d,b){var c=this;a.each(b,function(b,a){c._renderItem(d,a)})},_renderItem:function(c,b){return a("<li></li>").data("item.autocomplete",b).append("<a>"+b.label+"</a>").appendTo(c)},_move:function(a,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element}});a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")},filter:function(c,d){var b=new RegExp(a.ui.autocomplete.escapeRegex(d),"i");return a.grep(c,function(a){return b.test(a.label||a.value||a)})}})})(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 b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(e,b){this.deactivate();if(this.hasScroll()){var a=b.offset().top-this.element.offset().top,d=this.element.attr("scrollTop"),c=this.element.height();if(a<0)this.element.attr("scrollTop",d+a);else a>c&&this.element.attr("scrollTop",d+a-c+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:b})},deactivate:function(){if(!this.active)return;this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prev().length},last:function(){return this.active&&!this.active.next().length},move:function(d,b,a){if(!this.active){this.activate(a,this.element.children(b));return}var c=this.active[d+"All"](".ui-menu-item").eq(0);if(c.length)this.activate(a,c);else this.activate(a,this.element.children(b))},nextPage:function(c){if(this.hasScroll()){if(!this.active||this.last()){this.activate(c,this.element.children(":first"));return}var e=this.active.offset().top,d=this.element.height(),b=this.element.children("li").filter(function(){var b=a(this).offset().top-e-d+a(this).height();return b<10&&b>-10});if(!b.length)b=this.element.children(":last");this.activate(c,b)}else this.activate(c,this.element.children(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(":last"));return}var d=this.active.offset().top,c=this.element.height();result=this.element.children("li").filter(function(){var b=a(this).offset().top-d+c-a(this).height();return b<10&&b>-10});if(!result.length)result=this.element.children(":first");this.activate(b,result)}else this.activate(b,this.element.children(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery);
