var currentMenuContainer = new Array();
var currentMenuRow = null;
var currentMenuFlag = false;
var globalEvent;
var ie = document.all;

function offsetTopx(obj)
{
	var top = 0;

	for (; obj; obj=obj.offsetParent)
		top = top + obj.offsetTop;
	return top;
}

function offsetLeftx(obj)
{
	var left = 0;

	for (; obj && obj != document.body; obj=obj.offsetParent)
		left = left + obj.offsetLeft;
	return left;
}

function loadMenu(parentMenu)
{
	var menuContainer = document.getElementById("menuContainer" + parentMenu.id.substr(7));

	if (parentMenu.getAttribute("bgcolorOver"))
		parentMenu.style.backgroundColor = parentMenu.getAttribute("bgcolorOver");
	if (parentMenu.getAttribute("colorOver"))
		parentMenu.style.color = parentMenu.getAttribute("colorOver");

	if (currentMenuContainer.length)
		menuContainerOut(currentMenuContainer[currentMenuContainer.length-1]);

	if (menuContainer)
	{
		menuContainer.style.width = parentMenu.offsetWidth;
		menuContainer.style.top = offsetTopx(parentMenu) + parentMenu.offsetHeight ;
		if (offsetLeftx(parentMenu) + menuContainer.offsetWidth > document.body.offsetWidth - 20)
			menuContainer.style.left = document.body.offsetWidth - menuContainer.offsetWidth - 30;
		else
			menuContainer.style.left = offsetLeftx(parentMenu);
		menuContainer.firstChild.style.width = "100%";
		menuContainer.style.width = menuContainer.firstChild.offsetWidth;
		
		
		if (navigator.appName!="Netscape")
		{
		menuContainer.style.filter="revealTrans(duration=0.4)" ;    
		menuContainer.filters[0].Apply();
		menuContainer.filters.revealTrans.transition=5; 
		menuContainer.filters[0].Play();
		menuContainer.style.visibility = "visible";		
		currentMenuContainer[currentMenuContainer.length] = menuContainer;
		}
		else
		{
		menuContainer.style.visibility = "visible";
		currentMenuContainer[currentMenuContainer.length] = menuContainer;
		}
	}
}

function loadSubMenu(parentMenuRow)
{
	var menuContainer = document.getElementById("menuContainer" + parentMenuRow.getAttribute("id").substr(7));
	var parentMenuContainer = document.getElementById("menuContainer" + parentMenuRow.getAttribute("parentID"));

	menuContainer.style.visibility = "visible";
	menuContainer.style.top = parentMenuRow.offsetTop + parentMenuContainer.offsetTop;
	if (parentMenuContainer.offsetLeft - menuContainer.offsetWidth + 1 < 0)
		menuContainer.style.left = parentMenuContainer.offsetLeft + parentMenuContainer.offsetWidth - 4;
	else
	{
		if (parentMenuContainer.offsetLeft + parentMenuContainer.offsetWidth - 10 + menuContainer.offsetWidth > document.body.offsetWidth - 25)
			menuContainer.style.left = parentMenuContainer.offsetLeft - menuContainer.offsetWidth + 1;
		else
			menuContainer.style.left = parentMenuContainer.offsetLeft + parentMenuContainer.offsetWidth - 1;
	}
	currentMenuContainer[currentMenuContainer.length] = menuContainer;
	
	
		
}
function contains(a, b) 
{
	while (b.parentNode)
		if ((b = b.parentNode) == a)
			return true;
	return false;
}

function menuContainerOutNet(menuContainer)
{
	var toHide = true;

	if (menuContainer)
	{
		if (menuContainer == currentMenuContainer[currentMenuContainer.length-1])
		{			
			
				if (globalEvent && contains(menuContainer,globalEvent.relatedTarget))
					toHide = false;
				else
					if (globalEvent && contains(currentMenuContainer[currentMenuContainer.length-1],globalEvent.relatedTarget))
						toHide = false;		

			if (toHide)
			{
				menuContainer.style.visibility = "hidden";
				currentMenuContainer.length--;
				if (currentMenuContainer.length)
					menuContainerOut(currentMenuContainer[currentMenuContainer.length-1]);
			}
		}
		else
		{
			menuContainerOut(currentMenuContainer[currentMenuContainer.length-1]);
		}
	}
}

function menuContainerOut(menuContainer)
{
if (navigator.appName=="Netscape")
{

menuContainerOutNet(menuContainer);
return;
}
	var toHide = true;

	if (menuContainer)
	{
		if (menuContainer == currentMenuContainer[currentMenuContainer.length-1])
		{			
			if(ie)
			{
				if (event && menuContainer.contains(event.toElement))
					toHide = false;
				else
				{
					if (event && currentMenuContainer[currentMenuContainer.length-1].contains(event.toElement))
						toHide = false;
				}
			}
			else
			{
				if (globalEvent && contains(menuContainer,globalEvent.relatedTarget))
					toHide = false;
				else
					if (globalEvent && contains(currentMenuContainer[currentMenuContainer.length-1],globalEvent.relatedTarget))
						toHide = false;
			}			

			if (toHide)
			{
			
				currentMenuContainer.length--;
				if (currentMenuContainer.length)
					menuContainerOut(currentMenuContainer[currentMenuContainer.length-1]);
					if (menuContainer.filters.blendTrans)
				{
					
					menuContainer.filters.blendTrans.apply();
					menuContainer.style.visibility = "hidden";
					menuContainer.filters.blendTrans.play();
				}
				else
				{
					menuContainer.style.visibility = "hidden";
				}
					
			}
		}
		else
		{
			menuContainerOut(currentMenuContainer[currentMenuContainer.length-1]);
		}
	}
}

function menuRowOver(menuRow)
{		
	var menuContainer = document.getElementById("menuContainer" + menuRow.getAttribute("parentID"));

	if (!menuContainer)
		menuContainer = menuRow;
	if (menuContainer.getAttribute("bgcolorOver"))
		menuRow.style.backgroundColor = menuContainer.getAttribute("bgcolorOver");
	if (menuContainer.getAttribute("colorOver"))
		menuRow.style.color = menuContainer.getAttribute("colorOver");
	currentMenuRow = menuRow;
	
	if (menuRow != menuContainer)
		if (document.getElementById("menuContainer" + menuRow.getAttribute("id").substr(7)))
			loadSubMenu(menuRow);
	if (menuContainer.getAttribute("parentStatic"))	
	{
	    var menuContainer2 = document.getElementById("menuRow" + menuContainer.getAttribute("parentStatic"));    
	    
	    if (menuContainer2 && navigator.appName!="Netscape")
	    {
	        
	    if (menuContainer2.getAttribute("bgcolorOver"))
		    menuContainer2.style.backgroundColor = menuContainer2.getAttribute("bgcolorOver");
		    isTop=false;
		 }
	}

	currentMenuFlag = false;
}

function checkMenuRowOut(menuRow)
{
	if(ie)
	{
		if (!menuRow.contains(event.toElement)) 
			menuRowOut(menuRow);
	}
	else
	{
		if (contains(menuRow, globalEvent.relatedTarget) == false) 
			menuRowOut(menuRow);	
	}	
}

function menuRowOut(menuRow, isTop)
{
	var menuContainer = document.getElementById("menuContainer" + menuRow.parentID);

	if (!menuContainer)
		menuContainer = menuRow;
	if (menuContainer.getAttribute("bgcolorOver"))
		menuRow.style.backgroundColor = "";
	if (menuContainer.getAttribute("colorOver"))
		menuRow.style.color = "";
		
	if (isTop)
	{
		currentMenuFlag = true;
		setTimeout("clearMenu();", 500);
	}
	if (menuContainer.getAttribute("parentStatic"))	
	{
	    var menuContainer2 = document.getElementById("menuRow" + menuContainer.getAttribute("parentStatic"));    
	    
	    if (menuContainer2)
	    {	        	   
		    menuContainer2.style.backgroundColor ="";
		    isTop=true;
		 }
	}	
}

function clearMenu()
{
	if (currentMenuFlag == false)
		return;
	if (currentMenuContainer.length)
		menuContainerOut(currentMenuContainer[currentMenuContainer.length-1]);
}
