/*
 * jQuery UI Menu 1.9m6
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Menu
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 */
(function(d){var h=0;d.widget("ui.menu",{version:"1.9m6",defaultElement:"<ul>",delay:150,options:{position:{my:"left top",at:"right top"}},_create:function(){this.activeMenu=this.element;this.menuId=this.element.attr("id")||"ui-menu-"+h++;this.element.find(".ui-icon").length&&this.element.addClass("ui-menu-icons");this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({id:this.menuId,role:"menu"}).bind("click.menu",d.proxy(function(a){this.options.disabled&&a.preventDefault()},
this));this._bind({"click .ui-menu-item:has(a)":function(a){a.stopImmediatePropagation();var b=d(a.currentTarget);if(!this.active||this.active[0]!==b[0])this.focus(a,b);this.select(a)},"mouseover .ui-menu-item":function(a){a.stopImmediatePropagation();var b=d(a.currentTarget);b.siblings().children(".ui-state-active").removeClass("ui-state-active");this.focus(a,b)},mouseleave:"_mouseleave","mouseleave .ui-menu":"_mouseleave","mouseout .ui-menu-item":"blur",focus:function(a){this.focus(a,d(a.target).children(".ui-menu-item:first"))},
blur:"collapseAll"});this.refresh();this.element.attr("tabIndex",0);this._bind({keydown:function(a){switch(a.keyCode){case d.ui.keyCode.PAGE_UP:this.previousPage(a);a.preventDefault();a.stopImmediatePropagation();break;case d.ui.keyCode.PAGE_DOWN:this.nextPage(a);a.preventDefault();a.stopImmediatePropagation();break;case d.ui.keyCode.HOME:this._move("first","first",a);a.preventDefault();a.stopImmediatePropagation();break;case d.ui.keyCode.END:this._move("last","last",a);a.preventDefault();a.stopImmediatePropagation();
break;case d.ui.keyCode.UP:this.previous(a);a.preventDefault();a.stopImmediatePropagation();break;case d.ui.keyCode.DOWN:this.next(a);a.preventDefault();a.stopImmediatePropagation();break;case d.ui.keyCode.LEFT:this.collapse(a)&&a.stopImmediatePropagation();a.preventDefault();break;case d.ui.keyCode.RIGHT:this.expand(a)&&a.stopImmediatePropagation();a.preventDefault();break;case d.ui.keyCode.ENTER:if(this.active.children("a[aria-haspopup='true']").length)this.expand(a)&&a.stopImmediatePropagation();
else{this.select(a);a.stopImmediatePropagation()}a.preventDefault();break;case d.ui.keyCode.ESCAPE:this.collapse(a)&&a.stopImmediatePropagation();a.preventDefault();break;default:a.stopPropagation();clearTimeout(this.filterTimer);var b;b=this.previousFilter||"";var c=String.fromCharCode(a.keyCode),e=false;if(c==b)e=true;else c=b+c;var f=function(g){return g.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")};b=this.activeMenu.children(".ui-menu-item").filter(function(){return RegExp("^"+f(c),"i").test(d(this).children("a").text())});
b=e&&b.index(this.active.next())!=-1?this.active.nextAll(".ui-menu-item"):b;if(!b.length){c=String.fromCharCode(a.keyCode);b=this.activeMenu.children(".ui-menu-item").filter(function(){return RegExp("^"+f(c),"i").test(d(this).children("a").text())})}if(b.length){this.focus(a,b);if(b.length>1){this.previousFilter=c;this.filterTimer=this._delay(function(){delete this.previousFilter},1E3)}else delete this.previousFilter}else delete this.previousFilter}}});this._bind(document,{click:function(a){d(a.target).closest(".ui-menu").length||
this.collapseAll(a)}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find("ul").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").show();this.element.find(".ui-menu-item").unbind(".menu").removeClass("ui-menu-item").removeAttr("role").children("a").removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").removeAttr("id").children(".ui-icon").remove()},
refresh:function(){var a=this.element.find("ul:not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr("role","menu").hide().attr("aria-hidden","true").attr("aria-expanded","false"),b=this.menuId;a.add(this.element).children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").addClass("ui-corner-all").attr("tabIndex",-1).attr("role","menuitem").attr("id",function(c){return b+"-"+c});a.each(function(){var c=d(this),e=c.prev("a");
e.attr("aria-haspopup","true").prepend('<span class="ui-menu-icon ui-icon ui-icon-carat-1-e"></span>');c.attr("aria-labelledby",e.attr("id"))})},focus:function(a,b){this.blur(a);if(this._hasScroll()){var c=parseFloat(d.curCSS(this.activeMenu[0],"borderTopWidth",true))||0,e=parseFloat(d.curCSS(this.activeMenu[0],"paddingTop",true))||0;c=b.offset().top-this.activeMenu.offset().top-c-e;e=this.activeMenu.scrollTop();var f=this.activeMenu.height(),g=b.height();if(c<0)this.activeMenu.scrollTop(e+c);else c+
g>f&&this.activeMenu.scrollTop(e+c-f+g)}this.active=b.first().children("a").addClass("ui-state-focus").end();this.element.attr("aria-activedescendant",this.active.children("a").attr("id"));this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active");this.timer=this._delay(function(){this._close()},this.delay);c=d(">ul",b);c.length&&/^mouse/.test(a.type)&&this._startOpening(c);this.activeMenu=b.parent();this._trigger("focus",a,{item:b})},blur:function(a){if(this.active){clearTimeout(this.timer);
this.active.children("a").removeClass("ui-state-focus");this.active=null;this._trigger("blur",a,{item:this.active})}},_startOpening:function(a){clearTimeout(this.timer);if(a.attr("aria-hidden")==="true")this.timer=this._delay(function(){this._close();this._open(a)},this.delay)},_open:function(a){clearTimeout(this.timer);this.element.find(".ui-menu").not(a.parents()).hide().attr("aria-hidden","true");var b=d.extend({},{of:this.active},d.type(this.options.position)=="function"?this.options.position(this.active):
this.options.position);a.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(b)},collapseAll:function(a){var b=false;if(a){var c=d(a.target);if(c.is("ui.menu"))b=c;else if(c.closest(".ui-menu").length)b=c.closest(".ui-menu")}this._close(b);if(!b){this.blur(a);this.activeMenu=this.element}},_close:function(a){a||(a=this.active?this.active.parent():this.element);a.find("ul").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},
collapse:function(a){var b=this.active&&this.active.parents("li:not(.ui-menubar-item)").first();if(b&&b.length){this._close();this.focus(a,b);return true}},expand:function(a){var b=this.active&&this.active.children("ul").children("li").first();if(b&&b.length){this._open(b.parent());this._delay(function(){this.focus(a,b)},20);return true}},next:function(a){this._move("next","first",a)},previous:function(a){this._move("prev","last",a)},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(a,b,c){if(this.active){a=a==="first"||a==="last"?this.active[a==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[a+"All"](".ui-menu-item").eq(0);a.length?this.focus(c,a):this.focus(c,this.activeMenu.children(".ui-menu-item")[b]())}else this.focus(c,this.activeMenu.children(".ui-menu-item")[b]())},nextPage:function(a){if(this._hasScroll())if(this.active){if(!this.last()){var b=this.active.offset().top,
c=this.element.height(),e;this.active.nextAll(".ui-menu-item").each(function(){e=d(this);return d(this).offset().top-b-c<0});this.focus(a,e)}}else this.focus(a,this.activeMenu.children(".ui-menu-item").first());else this.focus(a,this.activeMenu.children(".ui-menu-item")[!this.active?"first":"last"]())},previousPage:function(a){if(this._hasScroll())if(this.active){if(!this.first()){var b=this.active.offset().top,c=this.element.height(),e;this.active.prevAll(".ui-menu-item").each(function(){e=d(this);
return d(this).offset().top-b+c>0});this.focus(a,e)}}else this.focus(a,this.activeMenu.children(".ui-menu-item").first());else this.focus(a,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.height()<this.element.prop("scrollHeight")},_mouseleave:function(a){this.collapseAll(a);this.blur()},select:function(a){var b={item:this.active};this.collapseAll(a);this._trigger("select",a,b)}})})(jQuery);

