var gMenus = new Array();
var gCurrentMenu = null;
var gLeaveTimer;
function showSubmenuRoot(menuId, sender, bLast)
{
	var menu = document.getElementById(menuId);
	if (menu != null)
	{
		// Offset
		var parent = sender.offsetParent;
		var offsetTop = sender.offsetTop - sender.scrollTop;
		var offsetLeft = 0;//sender.offsetLeft;
		while (parent != null)
		{
			offsetTop += parent.offsetTop - parent.scrollTop;
			offsetLeft += parent.offsetLeft - parent.scrollLeft;
			parent = parent.offsetParent;
		}
		offsetTop += sender.offsetHeight;
		menu.style.top = offsetTop;
		menu.style.left = offsetLeft - sender.scrollLeft;
		if (bLast)
			menu.style.width = sender.offsetParent.offsetWidth;
		else
			menu.style.width = sender.offsetParent.offsetWidth + sender.offsetLeft - sender.offsetParent.offsetLeft;	// add border thickness of nonexistant border
	}
	showSubmenu_DONTUSEDIRECT(menuId, sender); 
}
function ssf(menuId, sender)//showSubmenuFloat(ssf)
{
	var menu = document.getElementById(menuId);
//	if (sender.className != 'P_M')
		sender.className = 'P_M';
	if (menu != null)
	{
		var offsetTop = sender.offsetParent.offsetTop + sender.offsetTop;
		var offsetLeft = sender.offsetParent.offsetLeft + sender.offsetLeft + sender.offsetWidth;
		var clientHeight;
		if (document.documentElement.clientHeight > 0)
			clientHeight = document.documentElement.clientHeight;
		else
			clientHeight = document.documentElement.offsetHeight;
		clientHeight -= 25;
		if (clientHeight < 0)
			clientHeight = 0;
		if (offsetTop + menu.offsetHeight > clientHeight)
			offsetTop += clientHeight - (offsetTop + menu.offsetHeight);
		menu.style.top = offsetTop;
		menu.style.left = offsetLeft;
		menu.style.visibility = 'visible';
	}
	showSubmenu_DONTUSEDIRECT(menuId, sender);
}
function showSubmenu_DONTUSEDIRECT(menuId, sender)
{
	var menu = document.getElementById(menuId);
	if (menu != null)
	{
		menu.style.visibility = 'visible';
		var senderHeaders = sender.headers.split(' ');
		var menuHeaders = menu.summary.split(' ');
		menu.summary = senderHeaders[1] + ' ' + menuHeaders[1] + ' ';
		sender.headers = senderHeaders[0] + ' ' + senderHeaders[1] + ' ' + menuHeaders[1];
		var bFound = false;
		var counter = 0;
		for(counter = 0; counter < gMenus.length; counter++)
			if (gMenus[counter] == menu.id)
			{
				bFound = true;
				break;
			}
		if (!bFound)
			gMenus[gMenus.length] = menu.id;
	}
	// Close all unneeded menus
	var startMenu;
	if (menu == null)
	{
		var senderHeaders = sender.headers.split(' ');
		startMenu = document.getElementById(senderHeaders[1]);
	}
	else
		startMenu = menu;
	hideUnneededSubmenus(startMenu);
}
function mom(sender)//mouseOverMenuItem(mom)
{
	var senderHeaders = sender.headers.split(' ');
	hideUnneededSubmenus(document.getElementById(senderHeaders[1]));
}
function hideAllSubmenus()
{
	gCurrentMenu = null;
	hideSubmenus(new Array());
}
function hideUnneededSubmenus(menu)
{
	var newMenus = new Array();
	var curMenu;
	curMenu = menu;
	while (curMenu != null)
	{
		newMenus.push(curMenu.id);
		var curMenuHeaders = curMenu.summary.split(' ');
		curMenu = document.getElementById(curMenuHeaders[0])
	}
	hideSubmenus(newMenus);
}
function resetClassNames(sender)	//clickTableData
{
	if(sender.tagName == 'TD')
		sender.className = '';
	else
		for (var i=0; i < sender.childNodes.length; i++)
			resetClassNames(sender.childNodes[i]);
}
function hideSubmenus(arrMenusKeep)
{
	bInOpenChain = false;		// reuse bFound
	for(counter = 0; counter < gMenus.length; counter++)
	{
		var counter2 = 0;
		var bKeep = false;
		for (counter2 = 0; counter2 < arrMenusKeep.length; counter2++)
		{
			if (gMenus[counter] == arrMenusKeep[counter2])
			{
				bKeep = true;
				break;
			}
		}//for
		var menu = document.getElementById(gMenus[counter]);
		if (!bKeep && menu.tagName == 'TABLE' && menu.id.substr(0,2) == 'MR')
		{
			resetClassNames(menu);
			menu.style.visibility = 'hidden';
		}
	}//for
	gMenus = arrMenusKeep;
}
function esm(sender)//enterSubmenu(esm)
{
	gCurrentMenu = sender;
}
function lsm(sender)//leaveSubmenu(lsm)
{
	gCurrentMenu = null;
	gLeaveTimer = window.setTimeout('onTimer_leaveSubmenu()',50);
}
function onTimer_leaveSubmenu()
{
	window.clearTimeout(gLeaveTimer);
	gLeaveTimer = null;
	if (gCurrentMenu == null)
		hideSubmenus(new Array());	// hide all
}
var Mouse = { 
   x : 0, 
   y : 0, 
   e : null, 
   toString : function() { 
     var buf=[0], p, v; 
     for(p in this) { 
       switch(typeof this[p]) { 
         case "function": 
           v=p+" => function"; 
           break; 
         case "object": 
           if(typeof this[p].nodeName!="undefined") { 
             v=p+" => "+this[p].nodeName; 
             break; 
           } 
         default: 
           v=p+" => "+this[p]; 
           break; 
        } 
        buf[buf.length]=v; 
      } 
     return buf.join("\n"); 
   } 
}; 
document.onmousemove = function(evt)
{ 
	window.status = self.location.href;
//	if (parent == null)
//		return;
   evt=evt||window.event; 
   if(evt) { 
     Mouse.x=evt.clientX||evt.pageX||0; 
     Mouse.y=evt.clientY||evt.pageY||0; 
     Mouse.e=evt.target||evt.srcElement; 
   } 
}
function ctd(sender)	//clickTableData
{
	for (var i=0; i < sender.childNodes.length; i++)
	{
		if(sender.childNodes[i].tagName == 'A')
		{
			sender.childNodes[i].click();
			break;
		}
	}
}
function menuClick(anchor, newUrl)
{
	lsm(gCurrentMenu);
	var finalUrl = new String();
	finalUrl = 'http://' + location.hostname + newUrl;
	finalUrl = finalUrl.replace('{', '%7b');
	finalUrl = finalUrl.replace('}','%7d');
	MAINFORM.location.href = finalUrl;
}


