var sidemenu_timers = Array();
var mousex;
var mousey;

//track the mouse
Event.observe(document, 'mousemove', function(event){mousex = Event.pointerX(event); mousey = Event.pointerY(event);});

//t = trigger, e = element to show, c = class to hide
function toggleMenu(t, e, c)
{
	//$$('.'+c).each(Element.hide);	
	if($(e).style.display=='none')		
		new Effect.BlindDown(e, {duration:.5});
		
	sidemenu_timers[e] = setTimeout("stickElement('"+t+"', '"+e+"')", 500);
}

function stickElement(t, e)
{
	$(e).show();
	$(e).style.height="auto";
	checkForOpenMenuItems(t,e);
}

function checkForOpenMenuItems(t, e)
{
	if(!isUnderMouse(t) && !isUnderMouse(e) && $(e).style.display != 'none')
	{
		new Effect.BlindUp(e, {duration:.5});
		isUnderMouse(t, true);
		isUnderMouse(e, true);
	}
	else
		sidemenu_timers[e] = setTimeout("checkForOpenMenuItems('"+t+"', '"+e+"')", 500);
}

function isUnderMouse(e, echo)
{
	ep = $(e).cumulativeOffset();
	ex = ep[0];
	ey = ep[1];
	eh = $(e).getHeight();
	ew = $(e).getWidth();
	
	/*
	if(echo)
		alert(mousex + " >= " + ex + " && " + mousex + " <= " + "(" + ex + " + " + ew + ") && " + mousey + " >= " + ey + " && " + mousey+ " <= " + "(" + ey + " + " + eh + ")");
	*/
	
	if(mousex >= ex && mousex <= (ex + ew) && mousey >= ey && mousey <= (ey + eh))
		return true;
	else
		return false;
}