var FadeMenu=new Class({initialize:function fadeMenu(elem,options){this.parentElem=$(elem);if($type(this.parentElem)!='element'){throw new Error('invalid element or id passed as first argument');}this.options=new Abstract({fadeRecursive:true,fadeInSpeed:50,fadeOutSpeed:300,fadeOutDelay:200,ignoreClass:false});if($type(options)=='object'){this.options.extend(options);}this.menuItems=this.parentElem.getChildren().filterByTag('li');for(var i=0;i<this.menuItems.length;i++){var subMenu=this.menuItems[i].getElement('ul');if($type(subMenu)=='element'&&!($defined(this.ignoreClass)&&subMenu.className!=this.ignoreClass)){this.menuItems[i].subMenu=subMenu;this.setupSubMenu(subMenu);subMenu.create(this.options);}}},setupSubMenu:function(subMenu){if($type(subMenu)=='element'){new Abstract(subMenu).extend({create:function(options){this.options=options;this.parentElem=this.getParent();this.menuItems().setOpacity(0);this.setOpacity(0);this.addEvent('fadein',this.showMenu);this.addEvent('fadeout',this.hideMenu);var thisMenu=this;this.parentElem.addEvent('mouseenter',function(evt){thisMenu.latestEvent='mouseenter';thisMenu.fireEvent('fadein',evt)});this.parentElem.addEvent('mouseleave',function(evt){thisMenu.latestEvent='mouseleave';thisMenu.fireEvent('fadeout',evt,thisMenu.options.fadeOutDelay)});if(this.options.fadeRecursive){new FadeMenu(this,this.options)};},showMenu:function(evt){if(this.latestEvent=='mouseleave'){return false;}this.fadeInQueue=this.menuItems();this.setOpacity(1);this.fadeInItems();},hideMenu:function(evt){if(this.latestEvent=='mouseenter'){return false;}this.fadeOutQueue=this.menuItems();this.fadeOutItems();},fadeInItems:function(){var thisMenu;if(this.element){thisMenu=this.element.getParent();}else{thisMenu=this;}if(thisMenu.fadeInQueue.length>0&&thisMenu.latestEvent=='mouseenter'){thisItem=thisMenu.fadeInQueue.shift();if($defined(thisItem.fadeout)){thisItem.fadeout.stop();}if(thisItem.getStyle('opacity')<1){thisItem.fadein=new Fx.Style(thisItem,'opacity',{duration:thisMenu.options.fadeInSpeed}).start(thisItem.getStyle('opacity'),0.9999).chain(thisMenu.fadeInItems);}else{thisMenu.fadeInItems();}}else{return false;}},fadeOutItems:function(){var thisMenu;if(this.element){thisMenu=this.element.getParent();}else{thisMenu=this;}if(thisMenu.fadeOutQueue.length>0){if(thisMenu.latestEvent=='mouseleave'){thisItem=thisMenu.fadeOutQueue.pop();if($defined(thisItem.fadein)){thisItem.fadein.stop();}if(thisItem.getStyle('opacity')>0){thisItem.fadeout=new Fx.Style(thisItem,'opacity',{duration:thisMenu.options.fadeOutSpeed}).start(thisItem.getStyle('opacity'),0).chain(thisMenu.fadeOutItems);}else{thisMenu.fadeOutItems();}}else{return false;}}else{if(thisMenu.latestEvent=='mouseleave'){thisMenu.setOpacity(0);}}},menuItems:function(){return this.getChildren().filterByTag('li')}});}}});var MyTips=Tips.extend({initialize:function(options){if(!options)options={};options.fixed=true;options.hideDelay=1000;options.onShow=function(toolTip){this.fx.start(1);};options.onHide=function(toolTip){this.fx.start(0);};this.parent($$('.Tips2'),options);this.fx=new Fx.Style(this.toolTip,'opacity',{duration:200,wait:false}).set(0);}});var MyAccordion=Accordion.extend({initialize:function(options){if(!options)options={};options.opacity=true;options.alwaysHide=false;this.parent('h3.atStart','div.atStart',options,$('accordion'));}});window.addEvent('domready',function(){new FadeMenu('dropmenu');new MyTips();new MyAccordion();document.getElementById('menu').style.display='';});function getElementsByClassName(oElm,strTagName,oClassNames){var arrElements=(strTagName=="*"&&oElm.all)?oElm.all:oElm.getElementsByTagName(strTagName);var arrReturnElements=new Array();var arrRegExpClassNames=new Array();if(typeof oClassNames=="object"){for(var i=0;i<oClassNames.length;i++){arrRegExpClassNames.push(new RegExp("(^|\\s)"+oClassNames[i].replace(/\-/g,"\\-")+"(\\s|$)"));}}
else{arrRegExpClassNames.push(new RegExp("(^|\\s)"+oClassNames.replace(/\-/g,"\\-")+"(\\s|$)"));}
var oElement;var bMatchesAll;for(var j=0;j<arrElements.length;j++){oElement=arrElements[j];bMatchesAll=true;for(var k=0;k<arrRegExpClassNames.length;k++){if(!arrRegExpClassNames[k].test(oElement.className)){bMatchesAll=false;break;}}
if(bMatchesAll){arrReturnElements.push(oElement);}}
return(arrReturnElements)}