// functions for sliding tray menu

AddLoadEvent(LoadInit);
function fnctimer()
{
	this.timer;
	this.expanded;
}
var timer_A=new fnctimer(),timer_B=new fnctimer(),timer_C=new fnctimer(),timer_D=new fnctimer(),timer_E=new fnctimer(),expanded=false;
var allTimers=[timer_A,timer_B,timer_C,timer_D,timer_E];
function anyExpanded()
{
	var r = false;
	for(var i=0;i<allTimers.length;i++)
	{
		if(allTimers[i].expanded)
		{
			r=true;
			break;
		}
	}
	return r;
}
function LoadInit(){
	findDescendants($('menuA'),timer_A);
	findDescendants($('menuB'),timer_B);
	findDescendants($('menuC'),timer_C);
	findDescendants($('menuD'),timer_D);
	findDescendants($('menuE'),timer_E);
}
function findDescendants(parent, timer){
	var children = parent.descendants();
	for(var i=0;i<children.length;i++)
	{
		$(children[i]).observe('mouseover', function(e) {clearTimeout(timer.timer);});
	}

}
function menuMouseOver(source,timer,y){
	timer.expanded = true;
	clearTimeout(timer.timer);
	menuMove(source,-480,y);
}
function menuMouseOut(source,timer,y){
	clearTimeout(timer.timer);
	timer.timer = setTimeout(function() { timer.expanded = false;menuMove(source,0,y,timer) }, 250);
}
function menuMove(source,x,y,timer){
	if(timer){
			// fade the menu out
			new Effect.Move($(source), {x: x, y: y, mode: "absolute", afterFinish:function(){ 
			} });
	} else  {
			// fade the menu in
			new Effect.Move($(source), {x: x, y: y, mode: "absolute" , afterFinish:function(){ 

			} });
	}
}