(function(b){var t=null,E="aria-activedescendant",i=".",D=".ui-state-active",C="ui-corner-all",B="aria-hidden",r="-open",q="aria-disabled",A="-state-disabled",z="-disabled",y="disabled",x="li:not(.",p="ui-corner-top",w="li:first",m="a:eq(0)",n="ui-state-active",h="optionClasses",g="index",e="",v=" ui-state-active",k="dropdown",l="mouseup",a=false,o="click",u="label[for=",j="popup",s="selectelement",d=true,f="id";b.widget("ui.selectmenu",{_init:function(){var G="-hasIcon",t="-item-focus ui-state-hover",F="mouseout blur",B="-focus ui-state-hover",E="mouseover focus",A='<span class="',D="tabindex",c=this,i=c,q=c.options;c.ids=[c.element.attr(f)+"-button",c.element.attr(f)+"-menu"];c._safemouseup=d;c.newelement=b('<a class="'+c.widgetBaseClass+' ui-widget ui-state-default ui-corner-all" id="'+c.ids[0]+'" role="button" href="#" aria-haspopup="true" aria-owns="'+c.ids[1]+'"></a>').insertAfter(c.element);var K=c.element.attr(D);K&&c.newelement.attr(D,K);c.newelement.data(s,c.element);c.selectmenuIcon=b(A+c.widgetBaseClass+'-icon ui-icon"></span>').prependTo(c.newelement).addClass(q.style==j?"ui-icon-triangle-2-n-s":"ui-icon-triangle-1-s");b(u+c.element.attr(f)+"]").attr("for",c.ids[0]).bind(o,function(){i.newelement[0].focus();return a});c.newelement.bind("mousedown",function(b){i._toggle(b);if(q.style==j){i._safemouseup=a;setTimeout(function(){i._safemouseup=d},300)}return a}).bind(o,function(){return a}).keydown(function(e){var c=d;switch(e.keyCode){case b.ui.keyCode.ENTER:c=d;break;case b.ui.keyCode.SPACE:c=a;i._toggle(e);break;case b.ui.keyCode.UP:case b.ui.keyCode.LEFT:c=a;i._moveSelection(-1);break;case b.ui.keyCode.DOWN:case b.ui.keyCode.RIGHT:c=a;i._moveSelection(1);break;case b.ui.keyCode.TAB:c=d;break;default:c=a;i._typeAhead(e.keyCode,l)}return c}).bind(E,function(){b(this).addClass(i.widgetBaseClass+B)}).bind(F,function(){b(this).removeClass(i.widgetBaseClass+B)});b(document).mousedown(function(a){i.close(a)});c.element.click(function(){this._refreshValue()}).focus(function(){this.newelement[0].focus()});var N=q.style==k?" ui-corner-bottom":" ui-corner-all";c.list=b('<ul class="'+i.widgetBaseClass+"-menu ui-widget ui-widget-content"+N+'" aria-hidden="true" role="listbox" aria-labelledby="'+c.ids[0]+'" id="'+c.ids[1]+'"></ul>').appendTo("body");var r=[];c.element.find("option").each(function(){var a=this;r.push({value:b(a).attr("value"),text:i._formatText(jQuery(a).text()),selected:b(a).attr("selected"),classes:b(a).attr("class"),parentOptGroup:b(a).parent("optgroup").attr("label")})});var J=i.options.style==j?v:e;for(var z in r){var C=b('<li role="presentation"><a href="#" tabindex="-1" role="option" aria-selected="false">'+r[z].text+"</a></li>").data(g,z).addClass(r[z].classes).data(h,r[z].classes||e).mouseup(function(c){if(i._safemouseup){var e=b(this).data(g)!=i._selectedIndex();i.value(b(this).data(g));i.select(c);e&&i.change(c);i.close(c,d)}return a}).click(function(){return a}).bind(E,function(){i._selectedOptionLi().addClass(J);i._focusedOptionLi().removeClass(i.widgetBaseClass+t);b(this).removeClass(n).addClass(i.widgetBaseClass+t)}).bind(F,function(){b(this).is(i._selectedOptionLi())&&b(this).addClass(J);b(this).removeClass(i.widgetBaseClass+t)});if(r[z].parentOptGroup){var H=i.widgetBaseClass+"-group-"+r[z].parentOptGroup;if(c.list.find("li."+H).size())c.list.find("li."+H+":last ul").append(C);else b('<li role="presentation" class="'+i.widgetBaseClass+"-group "+H+'"><span class="'+i.widgetBaseClass+'-group-label">'+r[z].parentOptGroup+"</span><ul></ul></li>").appendTo(c.list).find("ul").append(C)}else C.appendTo(c.list);c.list.bind("mousedown mouseup",function(){return a});if(q.icons)for(var L in q.icons)if(C.is(q.icons[L].find)){C.data(h,r[z].classes+" "+i.widgetBaseClass+G).addClass(i.widgetBaseClass+G);var O=q.icons[L].icon||e;C.find(m).prepend(A+i.widgetBaseClass+"-item-icon ui-icon "+O+'"></span>')}}c.list.find("li:last").addClass("ui-corner-bottom");q.style==j&&c.list.find(w).addClass(p);if(q.transferClasses){var M=c.element.attr("class")||e;c.newelement.add(c.list).addClass(M)}var I=c.element.width();c.newelement.width(q.width?q.width:I);if(q.style==k)c.list.width(q.menuWidth?q.menuWidth:q.width?q.width:I);else c.list.width(q.menuWidth?q.menuWidth:q.width?q.width-q.handleWidth:I-q.handleWidth);q.maxHeight&&q.maxHeight<c.list.height()&&c.list.height(q.maxHeight);c._optionLis=c.list.find(x+i.widgetBaseClass+"-group)");c.list.keydown(function(e){var c=d;switch(e.keyCode){case b.ui.keyCode.UP:case b.ui.keyCode.LEFT:c=a;i._moveFocus(-1);break;case b.ui.keyCode.DOWN:case b.ui.keyCode.RIGHT:c=a;i._moveFocus(1);break;case b.ui.keyCode.HOME:c=a;i._moveFocus(":first");break;case b.ui.keyCode.PAGE_UP:c=a;i._scrollPage("up");break;case b.ui.keyCode.PAGE_DOWN:c=a;i._scrollPage("down");break;case b.ui.keyCode.END:c=a;i._moveFocus(":last");break;case b.ui.keyCode.ENTER:case b.ui.keyCode.SPACE:c=a;i.close(e,d);b(e.target).parents("li:eq(0)").trigger(l);break;case b.ui.keyCode.TAB:c=d;i.close(e,d);break;case b.ui.keyCode.ESCAPE:c=a;i.close(e,d);break;default:c=a;i._typeAhead(e.keyCode,"focus")}return c});if(q.style==k){c.newelement.addClass(i.widgetBaseClass+"-dropdown");c.list.addClass(i.widgetBaseClass+"-menu-dropdown")}else{c.newelement.addClass(i.widgetBaseClass+"-popup");c.list.addClass(i.widgetBaseClass+"-menu-popup")}c.newelement.prepend(A+i.widgetBaseClass+'-status">'+r[c._selectedIndex()].text+"</span>");c.element.hide();c.element.attr(y)==d&&c.disable();c.value(c._selectedIndex())},destroy:function(){var a=this;a.element.removeData(a.widgetName).removeClass(a.widgetBaseClass+z+" "+a.namespace+A).removeAttr(q);b(u+a.newelement.attr(f)+"]").attr("for",a.element.attr(f)).unbind(o);a.newelement.remove();a.list.remove();a.element.show()},_typeAhead:function(k,j){var f=this;if(!f._prevChar)f._prevChar=[e,0];var g=String.fromCharCode(k);c=g.toLowerCase();var h=a;function i(a,c){h=d;b(a).trigger(j);f._prevChar[1]=c}this.list.find("li a").each(function(a){if(!h){var d=b(this).text();if(d.indexOf(g)==0||d.indexOf(c)==0)if(f._prevChar[0]==g)f._prevChar[1]<a&&i(this,a);else i(this,a)}});this._prevChar[0]=g},_uiHash:function(){return{value:this.value()}},open:function(c){var b=this,d=b,e=b.newelement.attr(q);if(e!="true"){b._refreshPosition();b._closeOthers(c);b.newelement.addClass(n);b.list.appendTo("body").addClass(d.widgetBaseClass+r).attr(B,a).find(x+d.widgetBaseClass+"-group):eq("+b._selectedIndex()+") a")[0].focus();b.options.style==k&&b.newelement.removeClass(C).addClass(p);b._refreshPosition();b._trigger("open",c,b._uiHash())}},close:function(c,b){var a=this;if(a.newelement.is(D)){a.newelement.removeClass(n);a.list.attr(B,d).removeClass(a.widgetBaseClass+r);a.options.style==k&&a.newelement.removeClass(p).addClass(C);b&&a.newelement[0].focus();a._trigger("close",c,a._uiHash())}},change:function(a){this.element.trigger("change");this._trigger("change",a,this._uiHash())},select:function(a){this._trigger("select",a,this._uiHash())},_closeOthers:function(a){b(i+this.widgetBaseClass+D).not(this.newelement).each(function(){b(this).data(s).selectmenu("close",a)});b(i+this.widgetBaseClass+".ui-state-hover").trigger("mouseout")},_toggle:function(b,c){var a=this;if(a.list.is(i+a.widgetBaseClass+r))a.close(b,c);else a.open(b)},_formatText:function(a){return this.options.format?this.options.format(a):a},_selectedIndex:function(){return this.element[0].selectedIndex},_selectedOptionLi:function(){return this._optionLis.eq(this._selectedIndex())},_focusedOptionLi:function(){return this.list.find(i+this.widgetBaseClass+"-item-focus")},_moveSelection:function(c){var a=parseInt(this._selectedOptionLi().data(g),10),b=a+c;return this._optionLis.eq(b).trigger(l)},_moveFocus:function(c){var a=this;if(!isNaN(c))var h=parseInt(a._focusedOptionLi().data(g),10),b=h+c;else var b=parseInt(a._optionLis.filter(c).data(g),10);if(b<0)b=0;if(b>a._optionLis.size()-1)b=a._optionLis.size()-1;var d=a.widgetBaseClass+"-item-"+Math.round(Math.random()*1e3);a._focusedOptionLi().find(m).attr(f,e);a._optionLis.eq(b).find(m).attr(f,d)[0].focus();a.list.attr(E,d)},_scrollPage:function(b){var a=Math.floor(this.list.outerHeight()/this.list.find(w).outerHeight());a=b=="up"?-a:a;this._moveFocus(a)},_setData:function(c,b){var a=this;a.options[c]=b;if(c==y){a.close();a.element.add(a.newelement).add(a.list)[b?"addClass":"removeClass"](a.widgetBaseClass+z+" "+a.namespace+A).attr(q,b)}},value:function(b){var a=this;if(arguments.length){a.element[0].selectedIndex=b;a._refreshValue();a._refreshPosition()}return a.element[0].selectedIndex},_refreshValue:function(){var c="aria-selected",b="-item-selected",a=this,g=a.options.style==j?v:e,k=a.widgetBaseClass+"-item-"+Math.round(Math.random()*1e3);a.list.find(i+a.widgetBaseClass+b).removeClass(a.widgetBaseClass+b+g).find("a").attr(c,"false").attr(f,e);a._selectedOptionLi().addClass(a.widgetBaseClass+b+g).find("a").attr(c,"true").attr(f,k);var l=a.newelement.data(h)?a.newelement.data(h):e,d=a._selectedOptionLi().data(h)?a._selectedOptionLi().data(h):e;a.newelement.removeClass(l).data(h,d).addClass(d).find(i+a.widgetBaseClass+"-status").html(a._selectedOptionLi().find(m).html());a.list.attr(E,k)},_refreshPosition:function(){var a=this;a.list.css("left",a.newelement.offset().left);var c=a.newelement.offset().top,d=a.list[0].scrollTop;a.list.find("li:lt("+a._selectedIndex()+")").each(function(){d-=b(this).outerHeight()});if(a.newelement.is(i+a.widgetBaseClass+"-popup")){c+=d;a.list.css("top",c)}else{c+=a.newelement.height();a.list.css("top",c)}}});b.extend(b.ui.selectmenu,{getter:"value",version:"@VERSION",eventPrefix:"selectmenu",defaults:{transferClasses:d,style:j,width:t,menuWidth:t,handleWidth:26,maxHeight:t,icons:t,format:t}})})(jQuery);
