var Menu=Class.create();Menu.prototype={initialize:function(b,c,a){this.name=c;this.type="menu";this.closingMenuItem=this.closeDelayTimer=null;this.config();if(typeof a=="function")this.customConfig=a,this.customConfig();this.rootContainer=new MenuContainer(b,this)},config:function(){this.quickCollapse=this.collapseBorders=!0;this.closeDelayTime=500}};var MenuContainer=Class.create();
MenuContainer.prototype={initialize:function(b,c){this.type="menuContainer";this.menuItems=[];this.init(b,c)},init:function(b,c){this.element=$(b);this.parent=c;this.parentMenu=this.type=="menuContainer"?c?c.parent:null:c;this.root=c instanceof Menu?c:c.root;this.id=this.element.id;this.type=="menuContainer"?(this.menuType=this.element.hasClassName("level1")?"horizontal":this.element.hasClassName("level2")?"dropdown":"flyout",this.menuType=="flyout"||this.menuType=="dropdown"?(this.isOpen=!1,Element.setStyle(this.element,
{position:"absolute",top:"0px",left:"0px",visibility:"hidden"})):this.isOpen=!0):this.isOpen=this.parentMenu.isOpen;var a=this.element.childNodes;if(a!=null)for(var d=0;d<a.length;d++){var e=a[d];if(e.nodeType==1)if(this.type=="menuContainer")e.tagName.toLowerCase()=="li"&&this.menuItems.push(new MenuItem(e,this));else if(e.tagName.toLowerCase()=="ul")this.subMenu=new MenuContainer(e,this)}},getBorders:function(){for(var b=["Left","Top","Right","Bottom"],c={},a=0;a<b.length;++a){var d=this.element.currentStyle?
parseInt(this.element.currentStyle["border"+b[a]+"Width"]):window.getComputedStyle?parseInt(window.getComputedStyle(this.element,"").getPropertyValue("border-"+b[a].toLowerCase()+"-width")):parseInt(this.element.style["border"+b[a]]);c[b[a].toLowerCase()]=isNaN(d)?0:d}return c},open:function(){this.root.closeDelayTimer&&window.clearTimeout(this.root.closeDelayTimer);this.parentMenu.closeAll(this);this.isOpen=!0;if(this.menuType=="dropdown")Element.setStyle(this.element,{left:Position.positionedOffset(this.parent.element)[0]+
"px",top:Position.positionedOffset(this.parent.element)[1]+Element.getHeight(this.parent.element)+"px"});else if(this.menuType=="flyout"){var b=this.parentMenu?this.parentMenu.getBorders():{},c=this.getBorders();Position.positionedOffset(this.parentMenu.element)[0]+this.parentMenu.element.offsetWidth+this.element.offsetWidth+20>(window.innerWidth?window.innerWidth:document.body.offsetWidth)?Element.setStyle(this.element,{left:-this.element.offsetWidth-(this.root.collapseBorders?0:b.left)+"px"}):Element.setStyle(this.element,
{left:this.parentMenu.element.offsetWidth-b.left-(this.root.collapseBorders?Math.min(b.right,c.left):0)+"px"});Element.setStyle(this.element,{top:this.parent.element.offsetTop-b.top-this.menuItems[0].element.offsetTop+"px"})}Element.setStyle(this.element,{visibility:"visible"})},close:function(){Element.setStyle(this.element,{visibility:"hidden"});this.isOpen=!1;this.closeAll()},closeAll:function(b){for(var c=0;c<this.menuItems.length;++c)this.menuItems[c].closeItem(b)}};var MenuItem=Class.create();
Object.extend(Object.extend(MenuItem.prototype,MenuContainer.prototype),{initialize:function(b,c){var a=this;this.type="menuItem";this.init(b,c);if(this.subMenu)this.element.onmouseover=function(){a.subMenu.open()};else if(this.root.quickCollapse)this.element.onmouseover=function(){a.parentMenu.closeAll()};var d=this.element.getElementsByTagName("A")[0];if(d)d.onfocus=this.element.onmouseover,this.link=d,this.text=d.text;if(this.subMenu)this.element.onmouseout=function(){a.root.openDelayTimer&&window.clearTimeout(a.root.openDelayTimer);
a.root.closeDelayTimer&&window.clearTimeout(a.root.closeDelayTimer);eval(a.root.name+".closingMenuItem = a");a.root.closeDelayTimer=window.setTimeout(a.root.name+".closingMenuItem.subMenu.close()",a.root.closeDelayTime)}},openItem:function(){this.isOpen=!0;this.subMenu&&this.subMenu.open()},closeItem:function(b){this.isOpen=!1;this.subMenu&&this.subMenu!=b&&this.subMenu.close()}});var menu;function configMenu(){this.closeDelayTime=300}
function initMenu(){menu=new Menu("root","menu",configMenu)}Event.observe(window,"load",initMenu,!1);

