// Steps in rollover menus
// 1. Swap images (if required)
// 2. If other menu was visible, hide it and swap images
// 3. Generate sub nave menu (if it exists)
//		3.1. set the left position property.
//		3.2. set the visibility to visible
// 4. Set a 3 second time out to hide the sub nav menu

// This will hold the elementId of the current visible sub menu.
var visibleMenuId = "";
var timeToHide;
var navImgBg = "/images/nav_item_bg.png";



// Browser detect position correction...
if (navigator.appName == "Netscape")
{
}


function showNav (menuId) {
	var subNav;
	var navItm = document.getElementById(menuId);
	
	// If there is a currently visible menu, 
	// and it isn't the one moused over
	if (visibleMenuId != "" && visibleMenuId != menuId) {
		hideNav();		
	}
	// If the current moused-over nav is already visible, return
	if (visibleMenuId == menuId) {
		navItm.style.backgroundImage = 'none';
		return;
	}

	subNav = document.getElementById(menuId + "_sub");
	if (subNav) {
		subNav.style.left = findPosX(menuId);
		subNav.style.visibility = "visible";
	}

	visibleMenuId = menuId;
	navItm.style.backgroundImage = 'none';
}

function hideNav () {
	var subNav;
	var navItm;
	
	if (visibleMenuId != "") {
		navItm = document.getElementById(visibleMenuId);

		subNav = document.getElementById(visibleMenuId + "_sub");
		if (subNav) {
			subNav.style.visibility = "hidden";
			//subNav.style.display = "none";
		}
		navItm.style.backgroundImage = "url(" + navImgBg + ")";
		visibleMenuId = "";
	}
}


function findPosX(elementId) {
	var obj = document.getElementById(elementId);
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x) {
		curleft += obj.x;
	}

	return curleft;
}

function findPosY(elementId)
{
	var obj = document.getElementById(elementId);
	var curleft = 0;
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y) {
		curleft += obj.y;
	}

	return curtop - 1;
}


var visible = new Array();

//function showSideNav(objID, parentID, rootID, posInList, width, height)
function showSideNav(objID, parentID, rootID, posInList)
{
	var s = document.getElementById(objID);
	var p = document.getElementById(parentID);
	var found = false;
	var width = p.offsetWidth;
	var height = p.offsetHeight;

	for (var i = 0; i < visible.length; i++)
	{
		if (visible[i].id == objID)
		{
			found = true;
		}
	}
	if (!found) { visible.push(s); }

	if (parentID == rootID)
	{
		s.style.top = findPosY(parentID);
		s.style.left = findPosX(parentID) + width;
	}
	else
	{
		//alert(p.style.top + ", " + s.style.left);
		s.style.left = p.style.left + width;
		s.style.top = p.style.top + (posInList * height); //findPosY(rootID);
	}
	s.style.display = "block";

}


//function showTopSideNav(objID, parentID, pos, width, height)
function showTopSideNav(objID, parentID)
{
	var s = document.getElementById(objID);
	var p = document.getElementById(parentID);
	var found = false;

	for (var i = 0; i < visible.length; i++)
	{
		if (visible[i].id == objID)
		{
			found = true;
		}
	}
	if (!found) { visible.push(s); }
	
	s.style.top = findPosY(p.id) + 5;
	s.style.left = findPosX(p.id) + p.offsetWidth - 20;
	s.style.display = "block";
}



function hideSideNav(objID)
{
	var s = document.getElementById(objID);
	s.style.display = "none";
}

function hideAll()
{
	//alert(visible.length);
	for (var i=0; i < visible.length; i++)
	{
		visible[i].style.display = "none";
	}
}



