
var Menu=Class.create();
Menu.prototype={
	initialize:function(){
		this.subs=[];
		var sub;
		var menuItems=$$('.item');
		var subMenus=$$('.submenu');
		if(subMenus.length>0){
			for(var i=0;i<subMenus.length;i+=1){
				sub=new Menu.Submenu(this,menuItems[i],subMenus[i],i);
				this.subs.push(sub);
			}
		}
	
	},
	closeButThis:function(smenu){
		for(var i=0,len=this.subs.length;i<len;i+=1){
			if(this.subs[i]!==smenu){
			this.subs[i].closeForSure();}
		}
	}
};
Menu.Submenu=Class.create();
Menu.Submenu.prototype={
	initialize:function(mur,mItem,sMenu,i){
		this.menu=mur;
		this.lbl=mItem;
		this.holder=sMenu;
		this.number=i;
		this.stLblOver=false;
		this.stHldOver=false;
		Event.observe(this.lbl,'mouseover',this.overLbl.bindAsEventListener(this));
		Event.observe(this.holder,'mouseover',this.overHld.bindAsEventListener(this));
		Event.observe(this.lbl,'mouseout',this.outLbl.bindAsEventListener(this));
		Event.observe(this.holder,'mouseout',this.outHld.bindAsEventListener(this));
	},

	isLblOver:function(){
		return this.stLblOver;
	},
	isHldOver:function(){
		return this.stHldOver;
	},
	isOpen:function(){
		if(this.holder.style.display=='none'){
		return false;}
		else{return true;}
	},
	overLbl:function(){
		this.stLblOver=true;
		this.open();
		this.menu.closeButThis(this);
	},
	outLbl:function(){
		this.stLblOver=false;
		this.close();
	},
	overHld:function(){
		this.stHldOver=true;
		this.open();
		this.menu.closeButThis(this);
	},
	outHld:function(){
		this.stHldOver=false;
		this.close();
	},
	open:function(){
		if(!this.isOpen()){
		this.holder.show();
		}
	},
	close:function(){
		window.setTimeout(this.closeDelayed.bind(this),600);
	},
	closeDelayed:function(){
		if((!this.isLblOver())&&(!this.isHldOver())){
			this.holder.hide();
		}
	},
	closeForSure:function(){
		this.holder.hide();
		}
	};
	
function initMenu(){
		window.menu=new Menu();
}

Event.observe(window,'load',initMenu,false);
