var UvumiDropdown=new Class({Implements:Options,options:{clickToOpen:false,openDelay:150,closeDelay:500,duration:250,link:"cancel",transition:Fx.Transitions.linear,mode:"horizontal"},initialize:function(d,c){this.menu=d;this.setOptions(c);if(this.options.mode!="horizontal"&&this.options.mode!="vertical"){this.options.mode="horizontal"}if(Browser.Engine.webkit){window.addEvent("domready",this.domReady.delay(200,this))}else{window.addEvent("domready",this.domReady.bind(this))}},domReady:function(){this.menu=$(this.menu);if(!$defined(this.menu)){return false}if(this.menu.get("tag")!="ul"){this.menu=this.menu.getElement("ul");if(!$defined(this.menu)){return false}}if(this.menu.getStyle("direction")=="rtl"||$(document.body).getStyle("direction")=="rtl"){this.rtl=true;if(Browser.Engine.trident&&$(document.body).getStyle("direction")=="rtl"){this.menu.getParent().setStyle("direction","ltr");this.menu.setStyle("direction","rtl")}}this.menu.setStyles({visibility:"hidden",display:"block",overflow:"hidden",height:0,marginLeft:(Browser.Engine.trident?1:-1)});this.createSubmenu(this.menu);if(this.options.mode=="horizontal"){this.menu.getChildren("li").setStyles({"float":(this.rtl?"right":"left"),display:"block",top:0});var b=new Element("li",{html:"&nbsp;",styles:{clear:(this.rtl?"right":"left"),display:(Browser.Engine.trident?"inline":"block"),position:"relative",top:0,height:0,width:0,fontSize:0,lineHeight:0,margin:0,padding:0}}).inject(this.menu)}else{this.menu.getChildren("li").setStyles({display:"block",top:0})}this.menu.setStyles({height:"auto",overflow:"visible",visibility:"visible"});this.menu.getElements("a").setStyle("display",(Browser.Engine.trident?"inline-block":"block"))},createSubmenu:function(e){var b=e.getChildren("li");var a=0;b.each(function(f){f.setStyles({position:"relative",display:"block",top:-a,zIndex:1});a+=f.getSize().y;var d=f.getFirst("ul");if($defined(d)){e.getElements("ul").setStyle("display","none");if(e==this.menu&&this.options.mode=="horizontal"){f.addClass("submenu-down");var c=0;var g=f.getSize().y;this.options.link="cancel";f.store("animation",new Fx.Elements($$(d,d.getChildren("li")).setStyle("opacity",0),this.options))}else{f.addClass("submenu-left");var c=f.getSize().x-(this.rtl&&!Browser.Engine.trident?2:1)*f.getStyle("border-left-width").toInt();var g=-f.getStyle("border-bottom-width").toInt();this.options.link="chain";f.store("animation",new Fx.Elements($$(d,d.getChildren("li")).setStyle("opacity",0),this.options));a=f.getSize().y+f.getPosition(this.menu).y}d.setStyles({position:"absolute",top:g,opacity:0});e.getElements("ul").setStyle("display","block");if(this.rtl){d.setStyles({right:c,marginRight:-c})}else{d.setStyles({left:c,marginLeft:-c})}this.createSubmenu(d);if(this.options.clickToOpen){f.addEvent("mouseenter",function(){$clear(f.retrieve("closeDelay"))}.bind(this));f.getFirst("a").addEvent("click",function(h){h.stop();$clear(f.retrieve("closeDelay"));this.showChildList(f)}.bind(this))}else{f.addEvent("mouseenter",function(){$clear(f.retrieve("closeDelay"));f.store("openDelay",this.showChildList.delay(this.options.openDelay,this,f))}.bind(this))}f.addEvent("mouseleave",function(){$clear(f.retrieve("openDelay"));f.store("closeDelay",this.hideChildList.delay(this.options.closeDelay,this,f))}.bind(this))}},this)},showChildList:function(a){var l=a.getFirst("ul");var k=$$(l.getChildren("li"));var j=a.retrieve("animation");if(a.getParent("ul")!=this.menu||this.options.mode=="vertical"){j.cancel();var i={0:{opacity:1},1:{opacity:1}};if(this.rtl){i[0]["marginRight"]=0}else{i[0]["marginLeft"]=0}j.start(i);var h={}}else{var h={0:{opacity:1}}}k.each(function(b,c){h[c+1]={top:0,opacity:1}});a.setStyle("z-index",99);j.start(h)},hideChildList:function(a){var n=a.retrieve("animation");var m=a.getFirst("ul");var l=$$(m.getChildren("li"));var k=0;var j={};l.each(function(b,c){j[c+1]={top:-k,opacity:0};k+=b.getSize().y});a.setStyle("z-index",1);if(a.getParent("ul")!=this.menu||this.options.mode=="vertical"){j[1]=null;n.cancel();n.start(j);var i={0:{opacity:0},1:{opacity:0}};if(this.rtl){i[0]["marginRight"]=-m.getSize().x}else{i[0]["marginLeft"]=-m.getSize().x}n.start(i)}else{j[0]={opacity:0};n.start(j)}}});
