function fnGetElemPosition(elem)
{
	var iLeft = 0;
	var iTop = 0;

	while (elem.offsetParent)
	{
		iLeft += elem.offsetLeft;
		iTop += elem.offsetTop;
		iTop -= elem.scrollTop;
		elem = elem.offsetParent;
	}

	iLeft += elem.offsetLeft;
	iTop += elem.offsetTop;

	return {x: iLeft, y: iTop};
}

var oSubOpened = null;

function fnCloseSub()
{
	var eSrc = event.toElement;

	if (oSubOpened && !oSubOpened.contains(eSrc) && !s_menu_0.contains(eSrc)) 
	{
		oSubOpened.style.visibility = 'hidden';
		oSubOpened = null;
	}
}

function fnOpenSub(sStMenuID)
{
	var oStMenu = document.getElementById(sStMenuID);
	var oDyMenu = document.getElementById(sStMenuID.replace(/^s_/, 'd_'));
	var oPosSt  = fnGetElemPosition(oStMenu);

	if (oSubOpened || !oStMenu)
	{
		oSubOpened.style.visibility = 'hidden';
		oSubOpened = null;
	}
	
	if (oDyMenu)
	{
		oDyMenu.style.left = oPosSt.x + oStMenu.offsetWidth - oDyMenu.offsetWidth + 1;
		oDyMenu.style.top = oPosSt.y + oStMenu.offsetHeight;
		oSubOpened = oDyMenu;
		oDyMenu.style.visibility = 'visible';
	}
}
