var MenuMatic=new Class({Implements:Options,options:{id:"nav",subMenusContainerId:"subMenusContainer",effect:"slide & fade",duration:600,physics:Fx.Transitions.Pow.easeOut,hideDelay:1e3,stretchMainMenu:false,matchWidthMode:false,orientation:"horizontal",direction:{x:"right",y:"down"},tweakInitial:{x:0,y:0},tweakSubsequent:{x:0,y:0},center:false,opacity:95,mmbFocusedClassName:null,mmbClassName:null,killDivider:null,fixHasLayoutBug:false,onHideAllSubMenusNow_begin:function(){},onHideAllSubMenusNow_complete:function(){},onInit_begin:function(){},onInit_complete:function(){}},hideAllMenusTimeout:null,allSubMenus:[],subMenuZindex:1,initialize:function(options){this.setOptions(options);this.options.onInit_begin();if(this.options.opacity>99){this.options.opacity=99.9}this.options.opacity=this.options.opacity/100;Element.implement({getId:function(){if(!this.id){var uniqueId=this.get("tag")+"-"+$time();while($(uniqueId)){uniqueId=this.get("tag")+"-"+$time()}this.id=uniqueId}return this.id}});this.options.direction.x=this.options.direction.x.toLowerCase();this.options.direction.y=this.options.direction.y.toLowerCase();if(this.options.direction.x==="right"){this.options.direction.xInverse="left"}else if(this.options.direction.x==="left"){this.options.direction.xInverse="right"}if(this.options.direction.y==="up"){this.options.direction.yInverse="down"}else if(this.options.direction.y==="down"){this.options.direction.yInverse="up"}var links=$(this.options.id).getElements("a.iceMenuTitle");links.each(function(item,index){item.store("parentLinks",item.getParent().getParents("li").getFirst("a"));if(String(item.getParent().getParent("div").get("class"))=="iceCols"){item.store("parentLinks",item.getParent().getParent("div").getParent().getParents("li").getFirst().erase(item.getParent().getParent("div").getParent().getParents("li").getFirst().getFirst("a")))}item.store("childMenu",item.getNext("ul.icesubMenu")||item.getNext("ol.icesubMenu"));theSubMenuType="subsequent";if($(item.getParent("ul")||item.getParent("ol")).id===this.options.id){theSubMenuType="initial"}item.store("subMenuType",theSubMenuType);if(theSubMenuType==="initial"&&$(item.getNext("ul.icesubMenu")||item.getNext("ol.icesubMenu"))){item.addClass("mainMenuParentBtn")}else if($(item.getNext("ul.icesubMenu")||item.getNext("ol.icesubMenu"))){item.addClass("subMenuParentBtn")}}.bind(this));var subMenusContainer=new Element("div",{id:this.options.subMenusContainerId}).inject($(document.body),"bottom");$(this.options.id).getElements("ul.icesubMenu, ol.icesubMenu").each(function(item,index){new Element("div",{class:"smOW"}).inject(subMenusContainer).grab(item).addEvents({mouseenter:function(e){}.bind(this)})}.bind(this));subMenusContainer.getElements("a").set("tabindex","-1");links.each(function(item,index){if(!item.retrieve("childMenu")){return}item.store("childMenu",item.retrieve("childMenu").getParent("div"));this.allSubMenus.include(item.retrieve("childMenu"));item.store("parentSubMenus",item.retrieve("parentLinks").retrieve("childMenu"));var aSubMenu=new MenuMaticSubMenu(this.options,this,item)}.bind(this));var nonParentBtns=$(this.options.id).getElements("a").filter(function(item,index){return!item.retrieve("childMenu")});nonParentBtns.each(function(item,index){item.addEvents({mouseenter:function(e){this.hideAllSubMenusNow();if(this.options.mmbClassName&&this.options.mmbFocusedClassName){$(item).retrieve("btnMorph",new Fx.Morph(item,{duration:this.options.duration/2,transition:this.options.physics,link:"cancel"})).start(this.options.mmbFocusedClassName)}$(item).getParent("li").addClass("current")}.bind(this),focus:function(e){this.hideAllSubMenusNow();if(this.options.mmbClassName&&this.options.mmbFocusedClassName){$(item).retrieve("btnMorph",new Fx.Morph(item,{duration:this.options.duration/2,transition:this.options.physics,link:"cancel"})).start(this.options.mmbFocusedClassName)}}.bind(this),mouseleave:function(e){if(this.options.mmbClassName&&this.options.mmbFocusedClassName){$(item).retrieve("btnMorph",new Fx.Morph(item,{duration:this.options.duration*5,transition:this.options.physics,link:"cancel"})).start(this.options.mmbClassName)}$(item).getParent("li").removeClass("current")}.bind(this),blur:function(e){if(this.options.mmbClassName&&this.options.mmbFocusedClassName){$(item).retrieve("btnMorph",new Fx.Morph(item,{duration:this.options.duration*5,transition:this.options.physics,link:"cancel"})).start(this.options.mmbClassName)}}.bind(this),keydown:function(e){var event=new Event(e);if(e.key==="up"||e.key==="down"||e.key==="left"||e.key==="right"){e.stop()}if(e.key==="left"&&this.options.orientation==="horizontal"||e.key==="up"&&this.options.orientation==="vertical"){if(item.getParent("li").getPrevious("li")){item.getParent("li").getPrevious("li").getFirst("a").focus()}else{item.getParent("li").getParent().getLast("li").getFirst("a").focus()}}else if(e.key==="right"&&this.options.orientation==="horizontal"||e.key==="down"&&this.options.orientation==="vertical"){if(item.getParent("li").getNext("li")){item.getParent("li").getNext("li").getFirst("a").focus()}else{item.getParent("li").getParent().getFirst("li").getFirst("a").focus()}}}.bind(this)})},this);this.stretch();this.killDivider();this.center();this.fixHasLayoutBug();this.options.onInit_complete()},fixHasLayoutBug:function(){if(Browser.Engine.trident&&this.options.fixHasLayoutBug){$(this.options.id).getParents().setStyle("zoom",1);$(this.options.id).setStyle("zoom",1);$(this.options.id).getChildren().setStyle("zoom",1);$(this.options.subMenusContainerId).setStyle("zoom",1);$(this.options.subMenusContainerId).getChildren().setStyle("zoom",1)}},center:function(){if(!this.options.center){return}$(this.options.id).setStyles({left:"50%","margin-left":-($(this.options.id).getSize().x/2)})},stretch:function(){if(this.options.stretchMainMenu&&this.options.orientation==="horizontal"){var targetWidth=parseFloat($(this.options.id).getCoordinates().width);var totalBtnWidth=0;var mainBtns=$(this.options.id).getElements("a");mainBtns.setStyles({"padding-left":0,"padding-right":0});mainBtns.each(function(item,index){totalBtnWidth+=item.getSize().x}.bind(this));if(targetWidthitem.getCoordinates().width){item.setStyle("width",parentWidth-offset);item.setStyle("margin-right",-borderWidth)}}.bind(this));this.width=this.childMenu.getFirst().getCoordinates().width;this.widthMatched=true;this.options.onMatchWidth_complete(this)},hideSubMenu:function(){if(this.childMenu.retrieve("status")==="closed"){return}this.options.onHideSubMenu_begin(this);if(this.subMenuType=="initial"){if(this.options.mmbClassName&&this.options.mmbFocusedClassName){$(this.btn).retrieve("btnMorph",new Fx.Morph($(this.btn),{duration:this.options.duration,transition:this.options.physics,link:"cancel"})).start(this.options.mmbClassName).chain(function(){$(this.btn).removeClass("mainMenuParentBtnFocused");$(this.btn).addClass("mainMenuParentBtn");$(this.btn).getParent("li").removeClass("current")}.bind(this))}else{$(this.btn).removeClass("mainMenuParentBtnFocused");$(this.btn).addClass("mainMenuParentBtn");$(this.btn).getParent("li").removeClass("current")}}else{$(this.btn).removeClass("subMenuParentBtnFocused");$(this.btn).addClass("subMenuParentBtn");$(this.btn).getParent("li").removeClass("current")}this.childMenu.setStyle("z-index",1);if(this.options.effect&&this.options.effect.toLowerCase()==="slide"){if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"&&this.options.direction.y==="down"){this.myEffect.start({"margin-top":-this.height}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"&&this.options.direction.y==="up"){this.myEffect.start({"margin-top":this.height}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else if(this.options.direction.x==="right"){this.myEffect.start({"margin-left":-this.width}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else if(this.options.direction.x==="left"){this.myEffect.start({"margin-left":this.width}).chain(function(){this.childMenu.style.display="none"}.bind(this))}}else if(this.options.effect=="fade"){this.myEffect.start({opacity:0}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else if(this.options.effect=="slide & fade"){if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"&&this.options.direction.y==="down"){this.myEffect.start({"margin-top":-this.height}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"&&this.options.direction.y==="up"){this.myEffect.start({"margin-top":this.height}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else if(this.options.direction.x==="right"){this.myEffect.start({"margin-left":-this.width}).chain(function(){this.childMenu.style.display="none"}.bind(this))}else if(this.options.direction.x==="left"){this.myEffect.start({"margin-left":this.width}).chain(function(){this.childMenu.style.display="none"}.bind(this))}}else{this.childMenu.style.display="none"}this.childMenu.store("status","closed");this.options.onHideSubMenu_complete(this)},hideOtherSubMenus:function(){this.options.onHideOtherSubMenus_begin(this);if(!this.btn.retrieve("otherSubMenus")){this.btn.store("otherSubMenus",$$(this.root.allSubMenus.filter(function(item){return!this.btn.retrieve("parentSubMenus").contains(item)&&item!=this.childMenu}.bind(this))))}this.parentSubMenus.fireEvent("show");this.btn.retrieve("otherSubMenus").fireEvent("hide");this.options.onHideOtherSubMenus_complete(this)},hideAllSubMenus:function(){this.options.onHideAllSubMenus_begin(this);$clear(this.root.hideAllMenusTimeout);this.root.hideAllMenusTimeout=function(){$clear(this.hideAllMenusTimeout);$$(this.root.allSubMenus).fireEvent("hide")}.bind(this).delay(this.options.hideDelay);this.options.onHideAllSubMenus_complete(this)},cancellHideAllSubMenus:function(){$clear(this.root.hideAllMenusTimeout)},showSubMenu:function(now){this.options.onShowSubMenu_begin(this);if(this.subMenuType=="initial"){$(this.btn).removeClass("mainMenuParentBtn");$(this.btn).addClass("mainMenuParentBtnFocused");$(this.btn).getParent("li").addClass("current")}else{$(this.btn).removeClass("subMenuParentBtn");$(this.btn).addClass("subMenuParentBtnFocused");$(this.btn).getParent("li").addClass("current")}this.root.subMenuZindex++;this.childMenu.setStyles({display:"block",visibility:"hidden","z-index":1e3});if(!this.width||!this.height){this.width=this.childMenu.getFirst().getCoordinates().width;this.height=this.childMenu.getFirst().getCoordinates().height;this.childMenu.setStyle("height",this.height,"border");if(this.options.effect==="slide"||this.options.effect==="slide & fade"){if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"){this.childMenu.getFirst().setStyle("margin-top","0");if(this.options.direction.y==="down"){this.myEffect.set({"margin-top":-this.height})}else if(this.options.direction.y==="up"){this.myEffect.set({"margin-top":this.height})}}else{if(this.options.direction.x==="left"){this.myEffect.set({"margin-left":this.width})}else{this.myEffect.set({"margin-left":-this.width})}}}}this.matchWidth();this.positionSubMenu();if(this.options.effect==="slide"){this.childMenu.setStyles({display:"block",visibility:"visible"});if(this.subMenuType==="initial"&&this.options.orientation==="horizontal"){if(now){this.myEffect.set({"margin-top":0}).chain(function(){this.showSubMenuComplete()}.bind(this))}else{this.myEffect.start({"margin-top":0}).chain(function(){this.showSubMenuComplete()}.bind(this))}}else{if(now){this.myEffect.set({"margin-left":0}).chain(function(){this.showSubMenuComplete()}.bind(this))}else{this.myEffect.start({"margin-left":0}).chain(function(){this.showSubMenuComplete()}.bind(this))}}}else if(this.options.effect==="fade"){if(now){this.myEffect.set({opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}else{this.myEffect.start({opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}}else if(this.options.effect=="slide & fade"){this.childMenu.setStyles({display:"block",visibility:"visible"});this.childMenu.getFirst().setStyles({left:0});if(this.subMenuType==="initial"&&this.options.orientation==="horizontal"){if(now){this.myEffect.set({"margin-top":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}else{this.myEffect.start({"margin-top":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}}else{if(now){if(this.options.direction.x==="right"){this.myEffect.set({"margin-left":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}else if(this.options.direction.x==="left"){this.myEffect.set({"margin-left":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}}else{if(this.options.direction.x==="right"){this.myEffect.set({"margin-left":-this.width,opacity:this.options.opacity});this.myEffect.start({"margin-left":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}else if(this.options.direction.x==="left"){this.myEffect.start({"margin-left":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}}}}else{this.childMenu.setStyles({display:"block",visibility:"visible"}).chain(function(){this.showSubMenuComplete(this)}.bind(this))}this.childMenu.store("status","open")},showSubMenu:function(now){this.options.onShowSubMenu_begin(this);if(this.subMenuType=="initial"){$(this.btn).removeClass("mainMenuParentBtn");$(this.btn).addClass("mainMenuParentBtnFocused");$(this.btn).getParent("li").addClass("current")}else{$(this.btn).removeClass("subMenuParentBtn");$(this.btn).addClass("subMenuParentBtnFocused");$(this.btn).removeClass("mainMenuParentBtn");$(this.btn).addClass("mainMenuParentBtnFocused");$(this.btn).getParent("li").removeClass("current")}this.root.subMenuZindex++;this.childMenu.setStyles({display:"block",visibility:"hidden","z-index":1e3});if(!this.width||!this.height){this.width=this.childMenu.getFirst().getCoordinates().width;this.height=this.childMenu.getFirst().getCoordinates().height;this.childMenu.setStyle("height",this.height,"border");if(this.options.effect==="slide"||this.options.effect==="slide & fade"){if(this.subMenuType=="initial"&&this.options.orientation==="horizontal"){this.childMenu.getFirst().setStyle("margin-top","0");if(this.options.direction.y==="down"){this.myEffect.set({"margin-top":-this.height})}else if(this.options.direction.y==="up"){this.myEffect.set({"margin-top":this.height})}}else{if(this.options.direction.x==="left"){this.myEffect.set({"margin-left":this.width})}else{this.myEffect.set({"margin-left":-this.width})}}}}this.matchWidth();this.positionSubMenu();if(this.options.effect==="slide"){this.childMenu.setStyles({display:"block",visibility:"visible"});if(this.subMenuType==="initial"&&this.options.orientation==="horizontal"){if(now){this.myEffect.set({"margin-top":0}).chain(function(){this.showSubMenuComplete()}.bind(this))}else{this.myEffect.start({"margin-top":0}).chain(function(){this.showSubMenuComplete()}.bind(this))}}else{if(now){this.myEffect.set({"margin-left":0}).chain(function(){this.showSubMenuComplete()}.bind(this))}else{this.myEffect.start({"margin-left":0}).chain(function(){this.showSubMenuComplete()}.bind(this))}}}else if(this.options.effect==="fade"){if(now){this.myEffect.set({opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}else{this.myEffect.start({opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}}else if(this.options.effect=="slide & fade"){this.childMenu.setStyles({display:"block",visibility:"visible"});this.childMenu.getFirst().setStyles({left:0});if(this.subMenuType==="initial"&&this.options.orientation==="horizontal"){if(now){this.myEffect.set({"margin-top":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}else{this.myEffect.start({"margin-top":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}}else{if(now){if(this.options.direction.x==="right"){this.myEffect.set({"margin-left":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}else if(this.options.direction.x==="left"){this.myEffect.set({"margin-left":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}}else{if(this.options.direction.x==="right"){this.myEffect.start({"margin-left":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}else if(this.options.direction.x==="left"){this.myEffect.start({"margin-left":0,opacity:this.options.opacity}).chain(function(){this.showSubMenuComplete()}.bind(this))}}}}else{this.childMenu.setStyles({display:"block",visibility:"visible"}).chain(function(){this.showSubMenuComplete(this)}.bind(this))}this.childMenu.store("status","open")},showSubMenuComplete:function(){this.options.onShowSubMenu_complete(this)},positionSubMenu:function(){this.options.onPositionSubMenu_begin(this);this.childMenu.setStyle("width",this.width);this.childMenu.getFirst().setStyle("width",this.width);if(this.subMenuType==="subsequent"){if(this.parentSubMenu&&this.options.direction.x!=this.parentSubMenu.options.direction.x){if(this.parentSubMenu.options.direction.x==="left"&&this.options.effect&&this.options.effect.contains("slide")){this.myEffect.set({"margin-left":this.width})}}this.options.direction.x=this.parentSubMenu.options.direction.x;this.options.direction.xInverse=this.parentSubMenu.options.direction.xInverse;this.options.direction.y=this.parentSubMenu.options.direction.y;this.options.direction.yInverse=this.parentSubMenu.options.direction.yInverse}var top;var overlap;if(this.subMenuType=="initial"){if(this.options.direction.y==="up"){if(this.options.orientation==="vertical"){top=this.btn.getCoordinates().bottom-this.height+this.options.tweakInitial.y}else{top=this.btn.getCoordinates().top-this.height+this.options.tweakInitial.y}this.childMenu.style.top=top+"px"}else if(this.options.orientation=="horizontal"){this.childMenu.style.top=this.btn.getCoordinates().bottom+this.options.tweakInitial.y+"px"}else if(this.options.orientation=="vertical"){top=this.btn.getPosition().y+this.options.tweakInitial.y;if(top+this.childMenu.getSize().y>=$(document.body).getScrollSize().y){overlap=top+this.childMenu.getSize().y-$(document.body).getScrollSize().y;top=top-overlap-20}this.childMenu.style.top=top+"px"}if(this.options.orientation=="horizontal"){if($(document.body).getScrollSize().x>this.btn.getPosition().x+this.childMenu.getCoordinates().width)this.childMenu.style.left=this.btn.getPosition().x+this.options.tweakInitial.x+"px";else this.childMenu.style.left=this.btn.getCoordinates().right-this.childMenu.getCoordinates().width+"px"}else if(this.options.direction.x=="left"){this.childMenu.style.left=this.btn.getPosition().x-this.childMenu.getCoordinates().width+this.options.tweakInitial.x+"px"}else if(this.options.direction.x=="right"){this.childMenu.style.left=this.btn.getCoordinates().right+this.options.tweakInitial.x+"px"}}else if(this.subMenuType=="subsequent"){if(this.options.direction.y==="down"){if(this.btn.getCoordinates().top+this.options.tweakSubsequent.y+this.childMenu.getSize().y>=$(document.body).getScrollSize().y){overlap=this.btn.getCoordinates().top+this.options.tweakSubsequent.y+this.childMenu.getSize().y-$(document.body).getScrollSize().y;this.childMenu.style.top=this.btn.getCoordinates().top+this.options.tweakSubsequent.y-overlap-20+"px"}else{this.childMenu.style.top=this.btn.getCoordinates().top+this.options.tweakSubsequent.y+"px"}}else if(this.options.direction.y==="up"){if(this.btn.getCoordinates().bottom-this.height+this.options.tweakSubsequent.y<1){this.options.direction.y="down";this.options.direction.yInverse="up";this.childMenu.style.top=this.btn.getCoordinates().top+this.options.tweakSubsequent.y+"px"}else{this.childMenu.style.top=this.btn.getCoordinates().bottom-this.height+this.options.tweakSubsequent.y+"px"}}if(this.options.direction.x=="left"){this.childMenu.style.left=this.btn.getCoordinates().left-this.childMenu.getCoordinates().width+this.options.tweakSubsequent.x+"px";if(this.childMenu.getPosition().x<0){this.options.direction.x="right";this.options.direction.xInverse="left";this.childMenu.style.left=this.btn.getPosition().x+this.btn.getCoordinates().width+this.options.tweakSubsequent.x+"px";if(this.options.effect==="slide"||this.options.effect==="slide & fade"){this.myEffect.set({"margin-left":-this.width,opacity:this.options.opacity})}}}else if(this.options.direction.x=="right"){this.childMenu.style.left=this.btn.getCoordinates().right+this.options.tweakSubsequent.x+"px";var smRight=this.childMenu.getCoordinates().right;var viewportRightEdge=document.getCoordinates().width+window.getScroll().x;if(smRight>viewportRightEdge){this.options.direction.x="left";this.options.direction.xInverse="right";this.childMenu.style.left=this.btn.getCoordinates().left-this.childMenu.getCoordinates().width+this.options.tweakSubsequent.x+"px";if(this.options.effect==="slide"||this.options.effect==="slide & fade"){this.myEffect.set({"margin-left":this.width,opacity:this.options.opacity})}}}}this.options.onPositionSubMenu_complete(this)}});window.addEvent("load",function(){$$("div#subMenusContainer li").each(function(li,i){li.addEvent("mouseleave",function(){li.removeClass("current")});li.addEvent("mouseenter",function(){li.addClass("current")})})});