var subnav = new Array(); Element.extend( { doActive: function () { this.className+='hover'; }, doDeactive: function () { this.className=this.className.replace(new RegExp("hover\\b"), ""); }, hide: function(timeout) { this.status = 'hide'; clearTimeout (this.timeout); if (timeout) { this.timeout = setTimeout (this.animation.bind(this), timeout); }else{ this.animation(); } }, show: function(timeout) { this.status = 'show'; clearTimeout (this.timeout); if (timeout) { this.timeout = setTimeout (this.animation.bind(this), timeout); }else{ this.animation(); } }, animation: function() { if ((this.status == 'hide' && this.style.left != 'auto') || (this.status == 'show' && this.style.left == 'auto' && !this.hidding)) return; this.setStyle('overflow', 'hidden'); if (this.status == 'show') { this.hidding = 0; this.hideAll(); } if (this.status == 'hide') { this.hidding = 1; this.myFx2.stop(); if (this.parent._id) this.myFx2.start(this.offsetWidth,0); else this.myFx2.start(this.offsetHeight,0); } else { this.setStyle('left', 'auto'); this.myFx2.stop(); if (this.parent._id) this.myFx2.start(0,this.menuwidth); else this.myFx2.start(0,this.menuheight); } }, init: function() { this.menuwidth = this.clientWidth; this.menuheight = this.clientHeight; if (this.parent._id) { this.myFx2 = new Fx.Style(this, 'width', {duration: 350}); this.myFx2.set(0); }else{ this.myFx2 = new Fx.Style(this, 'height', {duration: 350}); this.myFx2.set(0); } this.setStyle('left', '-999em'); animationComplete = function(){ if (this.status == 'hide') { this.setStyle('left', '-999em'); this.hidding = 0; } this.setStyle('overflow', ''); } this.myFx2.addEvent ('onComplete', animationComplete.bind(this)); }, hideAll: function() { for(var i=0;i