var intPageDefaultMenu = 0;
var intCurrentSelectedMenu = 0;
var intMenuLagTime = 700;
var iMenuTimeOut


function InitMenu()
{
	//alert('InitMenu');
	if (intPageDefaultMenu > 0)
		{
		ShowMenu(intPageDefaultMenu);
		}
}

function ResizeMenu()
{
	//alert('ResizeMenu');
	ShowMenu(intCurrentSelectedMenu);
}



function ShowMenu(intMenuToShow)
{
	//alert('ShowMenu('+intMenuToShow+')');
	if (intMenuToShow != 0)
	{
		var eMenuToShow = document.getElementById("dd" + intMenuToShow);
		var eMenuToShowParentTd = document.getElementById("tm" + intMenuToShow);


		var intTopMenuRight = GetElementRight(document.getElementById("topmenu"))
		var intTDLeft = GetElementLeft(eMenuToShowParentTd)

		if((intTDLeft + eMenuToShow.offsetWidth) > intTopMenuRight)
		{
			eMenuToShow.style.left = intTopMenuRight - eMenuToShow.offsetWidth;
		}
		else
		{
			eMenuToShow.style.left = intTDLeft;
		}

		eMenuToShow.style.visibility = "visible";
	}
}

function HideMenu(intMenuToHide){
	//alert('hidemenu(' +intMenuToHide+ ')');
	if (intMenuToHide != 0)
	{
		var eMenuToHide = document.getElementById("dd" + intMenuToHide);
		eMenuToHide.style.visibility = "hidden";
	}
}


function ShowDefaultMenu()
{
	//alert('ShowDefaultMenu');
	if (intCurrentSelectedMenu != 0)
	{
		HideMenu(intCurrentSelectedMenu);
		ShowMenu(intPageDefaultMenu);
		intCurrentSelectedMenu = intPageDefaultMenu;
	}
}

function tmout(intMouseOutMenu)
{
	//alert('tmout');
	iMenuTimeOut = window.setTimeout('ShowDefaultMenu()', intMenuLagTime);
}

function tmover(intMenuToShow)
{
	//alert('tmover('+intMenuToShow+')');
	window.clearTimeout(iMenuTimeOut);
	if(intCurrentSelectedMenu != intMenuToShow){
		HideMenu(intCurrentSelectedMenu);
		intCurrentSelectedMenu = intMenuToShow;
	}
	ShowMenu(intMenuToShow);
}


function ddover(intMouseOutMenu){
	//alert('ddover');
	window.clearTimeout(iMenuTimeOut)
}

function ddout(intMouseOutMenu,e){
	//alert('ddout');
	var eMouseOutMenu = document.getElementById("dd" + intMouseOutMenu);
	var relTarg;

	if (!e) var e = window.event;
	if (e.relatedTarget) relTarg = e.relatedTarget;
	else if (e.toElement) relTarg = e.toElement;

	if(eMouseOutMenu!=relTarg){
		if(!ContainsNode(eMouseOutMenu,relTarg)){
			iMenuTimeOut = window.setTimeout('ShowDefaultMenu()', intMenuLagTime);

		}
	} else {
		iMenuTimeOut = window.setTimeout('ShowDefaultMenu()', intMenuLagTime);
	}

}

function ContainsNode(objParent,node){
	//alert('ContainsNode');
var i = 0
var boolReturn = false;
	while(i<objParent.childNodes.length){
		if(objParent.childNodes[i] == node)
		{
			boolReturn = true;
			break;
		}
		else
		{
			if(ContainsNode(objParent.childNodes[i],node) == true)
			{
				boolReturn = true;
				break;
			}
			i++;
		}
	}
	return boolReturn;
}
	
function GetElementLeft(eElement)
{
	//alert('GetElementLeft');
    var nLeftPos = eElement.offsetLeft;          // initialize var to store calculations
    var eParElement = eElement.offsetParent;     // identify first offset parent element  
    while (eParElement != null)
    {                                            // move up through element hierarchy
        nLeftPos += eParElement.offsetLeft;      // appending left offset of each parent
        eParElement = eParElement.offsetParent;  // until no more offset parents exist
    }
 
    return nLeftPos;                             // return the number calculated
}

function GetElementRight(eElement)
{
	//alert('GetElementRight');
    var nRightPos = GetElementLeft(eElement);
	nRightPos = nRightPos + eElement.offsetWidth
    return nRightPos;
}
