var ProtoFish=Class.create({initialize:function(d,b,a,c){this.id=d;this.timeout=(b==undefined)?"400":b;this.cssClass=(a==undefined)?"hover":a;this.remActive=(c==undefined)?false:c;this.queue=[];this.activeTimeout="";if($(d)&&$(d).down()){this.listItems=$(d).select("li");this.activeItems=$(d).select("li.active");this.initObservers()}},initObservers:function(){this.listItems.each(function(a){a.observe("mouseover",function(c,b){this.enterMenu(b);b.addClassName(this.cssClass)}.bindAsEventListener(this,a));a.observe("mouseleave",function(c,b){this.queue.push([this.leaveMenu.delay(this.timeout/1000,this),b])}.bindAsEventListener(this,a));a.down().observe("focus",function(c,b){b.addClassName(this.cssClass)}.bindAsEventListener(this,a));a.down().observe("blur",function(c,b){if(!b.down("li")){b.removeClassName(this.cssClass);while(b.up("li")&&!b.next("li")){b.up("li").removeClassName(this.cssClass);b=b.up("li")}}}.bindAsEventListener(this,a))}.bind(this))},enterMenu:function(){while(this.queue.length){clearTimeout(this.queue[0][0]);this.leaveMenu(this)}if(this.remActive==true){if(typeof this.activeTimeout=="number"){clearTimeout(this.activeTimeout);delete this.activeTimeout}this.activeItems.invoke("removeClassName","active")}},leaveMenu:function(b){if(b.queue.length){var a=b.queue.shift()[1];a.removeClassName(b.cssClass)}if(b.remActive==true){b.activeItems.invoke("addClassName","active")}}});