
	//-------------------------------//
	// Written by Chris Preston 2007 //
	// © Copyright 2007				 //
	//-------------------------------//

	var MenuCount, SubMenuCount;
	
function PageWidth () 
{
	return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}

function PageHeight ()
{
	return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null ? document.body.clientHeight : null;
}

function ShowMenu (MenuObj, MenuTitle)
{
	if (MenuTitle)
	{
		var TestElement = document.getElementById(MenuTitle);
		var TitlePos = new Array ();
		TitlePos = findPos(TestElement);
	
		var ContainerHeight = document.getElementById(MenuTitle).clientHeight;
		var MenuWidth = document.getElementById(MenuObj).clientWidth;

		// Set the lip below the menu title
		TitlePos[1] = TitlePos[1] + ContainerHeight - 1;
		
		// If the left position + width of the menu is greater than screen size, clamp
		if (TitlePos[0] + MenuWidth > PageWidth ())
			TitlePos[0] = PageWidth () - (MenuWidth + 25);
		
		document.getElementById(MenuObj).style.left = TitlePos[0] + 'px';
		document.getElementById(MenuObj).style.top = TitlePos[1] + 'px';
	}

	window.clearTimeout(document.getElementById(MenuObj).timeoutID);
	document.getElementById(MenuObj).style.visibility = 'visible';
}

function ShowSubMenu (SubMenu, MasterMenu)
{
	window.clearTimeout(document.getElementById(SubMenu).timeoutID);
	document.getElementById(SubMenu).style.visibility = 'visible';
	
	var TestElement = document.getElementById (MasterMenu);
	var TitlePos = new Array ();
	TitlePos = findPos(TestElement);

	var ContainerWidth = document.getElementById(MasterMenu).clientWidth;
	
	TitlePos[0] += ContainerWidth - 2;
	
	document.getElementById(SubMenu).style.left = TitlePos[0] + 'px';
	document.getElementById(SubMenu).style.top = TitlePos[1] + 'px';
}

function SubMenuOver (ParentMenu, ParentMenuItem)
{
	// When the cursor moves over a sub menu, ensure the parent menu remains visible
	window.clearTimeout(document.getElementById(ParentMenu).timeoutID);
	document.getElementById (ParentMenu).style.visibility = 'visible';
	document.getElementById (ParentMenuItem).className = 'MenuOver';
}

function HideMenu (MenuObj)
{
	document.getElementById(MenuObj).timeoutID = window.setTimeout (function() { SetMenuHidden(MenuObj); }, 400);
}

function SubMenuHide (SubMenu, ParentMenu, ParentMenuItem)
{
	HideMenu (SubMenu);
	HideMenu (ParentMenu);
	
	document.getElementById (ParentMenuItem).className = '';
}

function SetMenuHidden (MenuObject)
{
	document.getElementById(MenuObject).style.visibility = 'hidden';
}

function findPos(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent)
	{
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	
	return [curleft,curtop];
}

function SetMenuCounts (Menus, SubMenus)
{
	MenuCount = Menus;
	SubMenuCount = SubMenus;
}

function HideAllMenus ()
{
	// Hide menus
	for (N = 1; N <= MenuCount; N++)
		document.getElementById('vlemenu' + N).style.visibility = 'hidden';

	for (N = 1; N <= SubMenuCount; N++)
		document.getElementById('vlesubmenu' + N).style.visibility = 'hidden';	
}
