function FlyMenu(list){
	var This = this;
	this.menus = null;
	this.list = new Element(list);
	//alert(this.list);	
	this.build = function(){	
		this.menus = new Array();
		this.nodes = this.list.getChildren('li');	
		for(var i=0; i < this.nodes.length; i++){
			var kids = this.nodes[i].getElementsByTagName('ul');				
			if(kids.length > 0){			
				var sm = new Menu(this.nodes[i], this);
				this.menus.push(sm);											
			}			
		}		
	}
	this.openMenu = false;
	this.changeMenu = function(obj){
		if(This.openMenu && This.openMenu!=obj){
			This.openMenu.menu.isOver = false;
			This.openMenu.menu.close();
			This.openMenu = obj;
		}else{
			This.openMenu = obj;
		}
	}	
	this.build();	
}

function Menu(list, parent){
	var This = this;
	this.isOver = false;
	if(parent)
		this._super = parent;
		
	this.open = function(e){
		var ei = new EventInfo(e, true);
		window.clearTimeout(this.timer);
		This.isOver = true;		
		This.tag.className='over';
		//This._super.changeMenu(this);		
		This.menu.element.show('block');	
		This.menu.effect({ alpha:97, duration:0.1});
	}	
	
	this.close = function(e){	
		window.clearTimeout(this.timer);
		if(!This.isOver){
			This.tag.className = This.tagClass;				
			This.menu.effect({ alpha:0.1, duration:0.1}, This.hide);
		}
	}
	this.hide = function(){
		if(!This.isOver){
			This.tag.className = This.tagClass;
			This.menu.element.hide('none');
		}
	}
	this.off = function(e){		
		var ei = new EventInfo(e, true);
		This.isOver = false;
		This.timer = window.setTimeout(This.close, 500);		
	}
	this.over = function(e){
		
		var ei = new EventInfo(e, true);
		This.isOver = true;
			window.clearTimeout(this.timer);
	}
	this.timer = null;
	this.tag = list.getElementsByTagName('a')[0];
	this.tagClass = this.tag.className;
	this.tag.onmouseover = this.open;
	list.onmouseout = this.off;
	list.onmouseover = this.open;
	this.kids = list.getElementsByTagName('ul');
	this.items = list.getElementsByTagName('li');
	for(var i=0; i < this.items.length; i++){
		//alert(this.items[i].offsetHeight);
		this.items[i].onmouseover = this.open;
		this.items[i].onmouseout = this.off;
		this.items[i].firstChild.onmouseover = this.open;
		this.items[i].firstChild.onmouseout = this.off;		
	}
	this.menu = new Animation(this.kids[0], { alpha:0.1 });
	this.close();
}
