/*
 * Ext Core Library Examples 3.0
 * http://extjs.com/
 * Copyright(c) 2006-2009, Ext JS, LLC.
 * 
 * The MIT License
 * 
 */


Ext.ns("Ext.ux");Ext.ux.Menu=Ext.extend(Ext.util.Observable,{direction:"horizontal",delay:0.2,autoWidth:true,transitionType:"fade",transitionDuration:0.3,animate:true,currentClass:"current",constructor:function(b,a){a=a||{};Ext.apply(this,a);Ext.ux.Menu.superclass.constructor.call(this,a);this.addEvents("show","hide","click");this.el=Ext.get(b);this.initMarkup();this.initEvents();this.setCurrent()},initMarkup:function(){this.container=this.el.wrap({cls:"ux-menu-container",style:"z-index: "+ --Ext.ux.Menu.zSeed});this.items=this.el.select("li");this.el.addClass("ux-menu ux-menu-"+this.direction);this.el.select(">li").addClass("ux-menu-item-main");this.el.select("li:has(>ul)").addClass("ux-menu-item-parent").each(function(b){b.down("a").addClass("ux-menu-link-parent").createChild({tag:"span",cls:"ux-menu-arrow"})});this.el.select("li:first-child>a").addClass("ux-menu-link-first");this.el.select("li:last-child>a").addClass("ux-menu-link-last");this.container.addClass("ux-menu-clearfix");if(this.autoWidth){this.doAutoWidth()}var a=this.el.select("ul");a.addClass("ux-menu-sub");if(Ext.isBorderBox||Ext.isIE7){a.each(function(b){b.parent().createChild({tag:"iframe",cls:"ux-menu-ie-iframe"}).setWidth(b.getWidth()).setHeight(b.getHeight())})}a.addClass("ux-menu-hidden")},initEvents:function(){this.showTask=new Ext.util.DelayedTask(this.showMenu,this);this.hideTask=new Ext.util.DelayedTask(function(){this.showTask.cancel();this.hideAll();this.fireEvent("hide")},this);this.el.hover(function(){this.hideTask.cancel()},function(){this.hideTask.delay(this.delay*1000)},this);this.el.select("li.ux-menu-item-parent").on("mouseenter",this.onParentEnter,false,{me:this,delay:5});this.el.on("mouseover",function(b,a){this.manageSiblings(a);if(!Ext.fly(a).hasClass("ux-menu-item-parent")){this.showTask.cancel()}},this,{delegate:"li"});this.el.on("click",function(b,a){return this.fireEvent("click",b,a,this)},this,{delegate:"a"})},onParentEnter:function(d,c,e){var b=Ext.get(this),a=e.me;if(!b.hasClass("ux-menu-item-main")&&b.parent("ul").hasActiveFx()){b.parent("ul").stopFx(true)}if(!b.child("ul").hasClass("ux-menu-hidden")){return}a.showTask.delay(a.delay*1000,false,false,[b])},showMenu:function(b){var c=b.child("ul"),a=y=0;b.select(">a").addClass("ux-menu-link-hover");if(this.direction=="horizontal"&&b.hasClass("ux-menu-item-main")){y=b.getHeight()+1}else{a=b.getWidth()+1}if(Ext.isIE){c.select("ul").addClass("ux-menu-hidden");if(Ext.isBorderBox||Ext.isIE7){b.down("iframe").setStyle({left:a+"px",top:y+"px",display:"block"})}}c.setStyle({left:a+"px",top:y+"px"}).removeClass("ux-menu-hidden");if(this.animate){switch(this.transitionType){case"slide":if(this.direction=="horizontal"&&b.hasClass("ux-menu-item-main")){c.slideIn("t",{duration:this.transitionDuration})}else{c.slideIn("l",{duration:this.transitionDuration})}break;default:c.setOpacity(0.001).fadeIn({duration:this.transitionDuration});break}}this.fireEvent("show",b,c,this)},manageSiblings:function(a){var a=Ext.get(a);a.parent().select("li.ux-menu-item-parent").each(function(b){if(b.dom.id!==a.dom.id){b.select(">a").removeClass("ux-menu-link-hover");b.select("ul").stopFx(false).addClass("ux-menu-hidden");if(Ext.isBorderBox||Ext.isIE7){b.select("iframe").setStyle("display","none")}}})},hideAll:function(){this.manageSiblings(this.el)},setCurrent:function(){var a=this.el.query("."+this.currentClass);if(!a.length){return}var b=Ext.get(a[a.length-1]).removeClass(this.currentClass).findParent("li",null,true);while(b&&b.parent(".ux-menu")){b.down("a").addClass(this.currentClass);b=b.parent("li")}},doAutoWidth:function(){var a=function(c){var d=0;var b=c.select(">li");c.setStyle({width:3000+"px"});b.each(function(e){d=Math.max(d,e.getWidth())});d=Ext.isIE?d+1:d;b.setWidth(d+"px");c.setWidth(d+"px")};if(this.direction=="vertical"){this.container.select("ul").each(a)}else{this.el.select("ul").each(a)}}});Ext.ux.Menu.zSeed=10000;