// version 2.0.0.0

if(typeof(menuCtx)=="undefined")
{
	var menuCtx = new Object();
}

menuCtx.mainMenu = new Array();

function tryLoadPage(href)
{
	if(menuCtx.loadTries==0)
	{
		menuCtx.loadTries = null;
		return;
	}
	if((window.frames["main"]==null) || (window.frames["main"].frames["main"]==null))
	{
		if(menuCtx.loadTries==null)
		{
			menuCtx.loadTries = 20;
		}
		menuCtx.loadTries --;
		window.setTimeout("tryLoadPage(\"" + href.replace(/\\/g, "\\\\").replace(/\"/g, "\\\"") + "\")", 100);
		return;
	}
	window.frames["main"].frames["main"].location.href = href;
}

function openPage(elt, href)
{
	tryLoadPage(href);
	ternMenuItem(elt);
	doBlurMainMenu();
}

function handleMenuClick(elt, eltId)
{
	if(menuCtx.srcElement!=null)
	{
		menuCtx.srcElement.focus();
	}
	menuCtx.srcElement = null;
	clearTimers();
	doShowSubMenu(elt.id, eltId);
}

function showMenu(elt, id)
{
	clearTimers();
	var div=document.getElementById(id);
	if(div==null)
	{
		return;
	}
	var x = 0;
	var y = 0;
	var parent = elt;
	while(parent!=null)
	{
		x += parent.offsetLeft;
		y += parent.offsetTop;
		parent = parent.offsetParent;
	}
	div.style.left = x;
	div.style.top = y + elt.offsetHeight + 1;
	div.style.visibility = "visible";
	menuCtx.visibleMenus[0] = id;
	elt.className = "mainMenuItemHover";
}

function blurMainMenu()
{
	clearTimers();
	menuCtx.srcElement = window.event.srcElement;
	menuCtx.menuTimers.push(window.setTimeout("doBlurMainMenu()", 400));
}

function doBlurMainMenu()
{
	if(menuCtx.srcElement==null)
	{
		return;
	}
	clearTimers();
	if(menuCtx.visibleMenus.length>0)
	{
		document.getElementById("_" + menuCtx.visibleMenus[0]).className="mainMenuItem";
		hideOpenedMenus(0);
	}
	menuCtx.isMainMenuActive = false;
	menuCtx.srcElement.blur();
	menuCtx.srcElement = null;
}

function hideOpenedMenus(level)
{
	var divName, div;
	while(menuCtx.visibleMenus.length>level)
	{
		divName = menuCtx.visibleMenus.pop();
		div = document.getElementById(divName);
		div.style.visibility = "hidden";
	}
}

function highlight(elt)
{
	if(!menuCtx.isMainMenuActive)
	{
		menuCtx.isMainMenuActive = true;
		showMenu(elt, elt.id.substring(1));
	}
	if(menuCtx.isMainMenuActive)
	{
		hideOpenedMenus(0);
		menuCtx.isMainMenuActive = true;
		showMenu(elt, elt.id.substr(1, elt.id.length-1));
	}
	if(menuCtx.oldMainMenuItem!=null)
	{
		tern(menuCtx.oldMainMenuItem);
	}
	for(var i=0; i<menuCtx.oldMenuItems.length; i++)
	{
		ternMenuItem(menuCtx.oldMenuItems[i]);
	}
	menuCtx.oldMainMenuItem = elt;
	elt.className = "mainMenuItemHover";
}

function tryTern(elt)
{
	if(menuCtx.visibleMenus.length==0)
	{
		tern(elt);
	}
	menuCtx.srcElement = elt;
	menuCtx.menuTimers.push(window.setTimeout("doBlurMainMenu()", 400));
}

function tern(elt)
{
	elt.className = "mainMenuItem";
}

function highlightMenuItem(elt)
{
	if(menuCtx.oldMenuItems.length>=parseInt(elt.parentNode.parentNode.parentNode.attributes['depth'].value))
	{
		menuCtx.oldMenuItems.pop().childNodes[0].childNodes[0].className = "menuItemTd";		
	}
	elt.childNodes[0].childNodes[0].className = "menuItemTdHover";
	clearTimers();
}

function tryTernMenuItem(elt)
{
	var parentDiv = elt.parentNode.parentNode.parentNode.parentNode.parentNode;
	if(menuCtx.visibleMenus.length>=parentDiv.attributes['depth'].value)
	{
		ternMenuItem(elt);
	}
	menuCtx.srcElement = elt;
	menuCtx.menuTimers.push(window.setTimeout("doBlurMainMenu()", 400));
}

function tryTernSubMenuItem(elt)
{
	var parentDiv = elt.parentNode.parentNode.parentNode.parentNode.parentNode;
	if(menuCtx.visibleMenus.length<=parentDiv.attributes['depth'].value)
	{
		ternMenuItem(elt);
	}
	menuCtx.srcElement = elt;
	menuCtx.menuTimers.push(window.setTimeout("doBlurMainMenu()", 400));
}

function ternMenuItem(elt)
{
	if(elt==null)
	{
		return;
	}
	elt.className = "menuItemTd";
	clearTimers();
	var parentDiv = elt.parentNode.parentNode.parentNode.parentNode.parentNode;
	menuCtx.menuTimers.push(window.setTimeout("hideOpenedMenus(" + (parseInt(parentDiv.attributes['depth'].value) - 0) + ")", 500));
}



function showSubMenu(elt, id)
{
	clearTimers();
	var parentDiv = elt.parentNode.parentNode.parentNode.parentNode.parentNode;
	doHideSubMenu(elt.id, id);
	var depth = parseInt(parentDiv.attributes['depth'].value)-1;
	if(menuCtx.oldMenuItems.length>depth)
	{
		ternMenuItem(menuCtx.oldMenuItems[parseInt(depth)]);
	}
	//elt.childNodes[0].childNodes[0].className = "mainMenuItemHover";
	elt.className = "mainMenuItemHover";
	menuCtx.oldMenuItems[depth] = elt;
	menuCtx.menuTimers.push(window.setTimeout("doShowSubMenu(\"" + elt.id + "\", \"" + id + "\")", 500));
}

function doShowSubMenu(eltId, id)
{
	clearTimers();
	var div = document.getElementById(id);
	if(div==null)
	{
		return;
	}
	var elt = document.getElementById(eltId);
	var parentDiv = elt.parentNode.parentNode.parentNode.parentNode.parentNode;
	hideOpenedMenus(parentDiv.attributes['depth'].value);

	var x = 0;
	var y = 0;
	var parent = elt;
	while(parent!=null)
	{
		x += parent.offsetLeft;
		y += parent.offsetTop;
		parent = parent.offsetParent;
	}

	div.style.left = x + parseInt(elt.offsetWidth) + 4;
	div.style.top = y + parseInt(elt.offsetTop) - 1;
	div.style.zIndex = parentDiv.attributes['depth'].value + 1;
	div.style.visibility = "visible";
	menuCtx.visibleMenus.push(id);
}

function doHideSubMenu(eltId)
{
	var elt = document.getElementById(eltId);
	elt.className = "mainMenuItem";
	//elt.childNodes[0].childNodes[0].className = "mainMenuItem";
}

function menuInit(offsetTop)
{
	// draw main menu
	var offsetLeft=0;
	var div;
	for(var i=0; i<menuCtx.mainMenu.length; i++)
	{
		div = document.getElementById(menuCtx.mainMenu[i]);
		div.style.left = offsetLeft + "px";
		div.style.top = offsetTop + "px";
		div.style.visibility = "visible";
		offsetLeft += div.offsetWidth;
	}
	
	menuCtx.isMainMenuActive = false;
	menuCtx.visibleMenus = new Array();
	menuCtx.menuTimers = new Array();
	menuCtx.oldMainMenuItem = null;
	menuCtx.oldMenuItems = new Array();
	menuCtx.activeSub = "";
	menuCtx.srcElement = null;
	
	menuCtx.outdoor = new Object();
}

function clearTimers()
{
	while(menuCtx.menuTimers.length)
	{
		window.clearTimeout(menuCtx.menuTimers.pop());
	}
}


