/*
	JavaScript for the LLMenu control
	(c)2010 Lost Luggage Studios, LLC
*/

var LLMenu_strInMenu;
var LLMenu_menuTimeout = 500;
var LLMenu_objOldMenu;
var LLMenu_horizontal = true;
var LLMenu_offsetTop = 0;
var LLMenu_offsetLeft = 0;

var LLMenu_strInSubMenu;
var LLMenu_objOldSubMenu;

// Shows the menu when mousing over the category title. Also invoked if you move mouse to popup and back.
//
function LLMenu_showCategory(objParent, strName)
{
	var objDiv = document.getElementById("LLMenu_"+ strName);
	if (!objDiv) //it doesn't exist, quit out
		return;

	if (objDiv == LLMenu_objOldMenu) //we're already showing this, don't hide it
	{
		LLMenu_doMenuOver();
		return;
	}

	LLMenu_doMenuSubOver();
	LLMenu_handleOut();
	LLMenu_handleSubOut();

	if (LLMenu_horizontal) //menu items are a horizontal list
	{
		objDiv.style.top = LLMenu_offsetTop + objParent.offsetTop + objParent.offsetHeight - 1;
		objDiv.style.left = LLMenu_offsetLeft + objParent.offsetLeft;
	}
	else // menu items are a vertical list
	{
		objDiv.style.top = LLMenu_offsetTop + objParent.offsetTop + 5;
		objDiv.style.left = LLMenu_offsetLeft + objParent.offsetLeft + objParent.offsetWidth - 1;
	}

	objDiv.style.visibility = "visible";
	LLMenu_objOldMenu = objDiv;
}


function LLMenu_doOverSubParent(objParent, strName)
{
	var objDiv = document.getElementById("LLMenu_"+ strName);
	if (!objDiv)
		return;

	if (objDiv == LLMenu_objOldSubMenu) //we're already showing this submenu and went over same parent, keep it there
	{
		LLMenu_doMenuSubOver();
		return;
	}

	LLMenu_handleSubOut();
	LLMenu_doMenuSubOver();

	//submenus always open to the right of the parent
	objDiv.style.top = LLMenu_offsetTop + objParent.offsetTop + 1;
	objDiv.style.left = objParent.offsetLeft + objParent.offsetWidth - 1;

	objDiv.style.visibility = "visible";
	LLMenu_objOldSubMenu = objDiv;
}


function LLMenu_doMenuOver()
{
	clearTimeout(LLMenu_strInMenu);
}

function LLMenu_doMenuSubOver()
{
	clearTimeout(LLMenu_strInMenu);
	clearTimeout(LLMenu_strInSubMenu);
}

function LLMenu_doMenuOut()
{
	clearTimeout(LLMenu_strInMenu);
	LLMenu_strInMenu = setTimeout("LLMenu_handleOut()", LLMenu_menuTimeout);
	LLMenu_doMenuSubOut();
}

function LLMenu_doMenuSubOut()
{
	clearTimeout(LLMenu_strInSubMenu);
	LLMenu_strInSubMenu = setTimeout("LLMenu_handleSubOut()", LLMenu_menuTimeout);
}

function LLMenu_handleSubOut()
{
	if (LLMenu_objOldSubMenu != null)
	{
		LLMenu_objOldSubMenu.style.visibility = "hidden";
		LLMenu_objOldSubMenu = null;
	}
}

function LLMenu_handleOut()
{
	if (LLMenu_objOldMenu != null)
	{
		LLMenu_objOldMenu.style.visibility = "hidden";
		LLMenu_objOldMenu = null;
	}
}


