/* Copyright  2007 - 2010 YOOtheme GmbH, YOOtheme Proprietary Use License (http://www.yootheme.com/license) */

Warp.Menu=new Class({Implements:[Events,Options],initialize:function(d,b){this.setOptions({mode:"default",itemSelector:"li",firstLevelSelector:"li.level1",dropdownSelector:"ul",duration:600,remainTime:800,remainClass:"remain",transition:Fx.Transitions.linear,wait:false},b);var a=this;this.menu=document.id(d);this.hovered=this.timer=null;this.dropdowns=[];this.remain=[];if(this.menu){this.firstLevelItems=this.menu.getElements(this.options.firstLevelSelector);this.menu.addEvents({mouseenter:function(){a.remain=
[];a.removeRemain(10,true)},mouseleave:function(){a.remain.each(function(c){c.addClass(a.options.remainClass)});a.removeRemain(a.options.remainTime);a.menu.getElement("li."+a.options.remainClass)||a.fireMenuEvent("menu:leave")}});this.firstLevelItems.addEvent("mouseenter",function(){a.fireMenuEvent("menu:leave");a.fireMenuEvent("menu:enter",this)});this.menu.getElements(this.options.itemSelector).each(function(c){var e=c.getElement(this.options.dropdownSelector);if(e){this.dropdowns.include(c);this.options.mode==
"slide"?this.attachSlideFx(c,e):this.attachDefaultFx(c,e);c.addEvents({mouseenter:function(){c._dropdownhover=true;a.remain=[];c.hasClass(a.options.remainClass)||c.fireEvent("fx:dropdown")},mouseleave:function(f){c._dropdownhover=false;a.menu!=f.relatedTarget&&!a.menu.hasChild(f.relatedTarget)&&a.remain.include(c)}})}}.bind(this));this.options.fancy&&Warp.FancyMenu&&new Warp.FancyMenu(this.menu,$extend({hoverClass:a.options.hoverClass},a.options.fancy))}},fireMenuEvent:function(d,b){if(d=="menu:leave"){if(!this.hovered)return;
b=this.hovered}else this.hovered=b;for(var a=0,c=0;c<this.firstLevelItems.length;c++)if(b==this.firstLevelItems[c]){a=c;break}this.menu.fireEvent(d,[b,a])},attachDefaultFx:function(d,b){var a=b.getStyles("width","height","opacity"),c={width:0,height:0};(new Element("div")).adopt(b.getChildren()).injectInside(b).setStyle("width",a.width.toInt());var e=new Fx.Morph(b,this.options);switch(this.options.mode){case "width":c={width:0};break;case "height":c={height:0};break}d.addEvent("fx:dropdown",function(){e.element.setStyles($extend(c,
window.ie?{overflow:"hidden"}:{opacity:0,overflow:"hidden"}));e.start(a).chain(function(){e.element.setStyles(a)})})},attachSlideFx:function(d,b){var a=b.getStyles("width","height","opacity"),c=(new Element("div")).adopt(b.getChildren()).injectInside(b),e=new Fx.Morph(b,this.options),f=new Fx.Morph(c,this.options);d.addEvent("fx:dropdown",function(){e.element.setStyles({height:0,overflow:"hidden"});e.start(a).chain(function(){e.element.setStyles(a)});f.element.setStyles({"margin-top":-a.height.toInt()});
f.start({"margin-top":0})})},removeRemain:function(d,b){$clear(this.timer);this.timer=function(){this.dropdowns.each(function(a){if(a.hasClass(this.options.remainClass)&&!a._dropdownhover)b||this.fireMenuEvent("menu:leave");a.removeClass(this.options.remainClass)}.bind(this))}.delay(d,this)},matchHeight:function(){this.menu&&this.menu.getElements("li.level2 div.sub").each(function(d){var b=d.getParent().getElement("div.hover-box4"),a=Math.max(d.getSize().y,b.getSize().y);[d,b].each(function(c){c.setStyle("height",
a)})})},matchUlHeight:function(){this.menu&&this.menu.getElements("div.dropdown-3").each(function(d){d=d.getChildren();var b=0;d.each(function(a){b=Math.max(a.getSize().y,b)});d.each(function(a){a.setStyle("height",b)})})}}); 

