function GetBalloonIdFromMenuId(MenuItemId)
{
	return MenuItemId + "_balloon";
}

function ShowMenuBln(e, MenuItemId)
{
	ShowBln(GetBalloonIdFromMenuId(MenuItemId), false);
}

function HideMenuBln(e, MenuItemId)
{
	HideBln(GetBalloonIdFromMenuId(MenuItemId));
	CancelPopupPauseTimer();
}

function ShowSubMenu(e, SubMenuId)
{
	var SubMenu = document.getElementById(SubMenuId);

	SubMenu.parentNode.firstChild.firstChild.style.color = "#B1B3BA";
	SubMenu.style.display = "";
}

function HideSubMenu(e, SubMenuId)
{
	var SubMenu = document.getElementById(SubMenuId);

	SubMenu.parentNode.firstChild.firstChild.style.color = "black";
	SubMenu.style.display = kwNone;
}

function RegMenuItemForBln(MenuItemId, Ctnt, bAddGrin, bAddThumbUp, bAddBookReader, bAddPoorGuy)
{
	var MenuItem = document.getElementById(MenuItemId);

	var Balloon = MakeBln(true, Ctnt, MenuItem, bAddGrin, bAddThumbUp, bAddBookReader, bAddPoorGuy);
	Balloon.id = GetBalloonIdFromBtnId(MenuItemId);

	RegisterElementForEvent(MenuItem.parentNode, "mouseover", function(e){return ShowMenuBln(e, MenuItemId);});
	RegisterElementForEvent(MenuItem.parentNode, "mouseout", function(e){return HideMenuBln(e, MenuItemId);});
}

function CreateSubMenu(ParentMenuItemId, SubMenuId)
{
	var ParentMenuItem = document.getElementById(ParentMenuItemId);
	var SubMenu = document.getElementById(SubMenuId);

	if(SubMenu.parentNode != ParentMenuItem.parentNode)
	{
		SubMenu.parentNode.removeChild(SubMenu);
		ParentMenuItem.parentNode.appendChild(SubMenu);
	}

	RegisterElementForEvent(ParentMenuItem.parentNode, "mouseover", function(e){return ShowSubMenu(e, SubMenuId);});
	RegisterElementForEvent(ParentMenuItem.parentNode, "mouseout", function(e){return HideSubMenu(e, SubMenuId);});
}

function HideAndPosAllSubMenus(ParentElementOrMenu, bHideOnly)
{
	for(var CurChild = ParentElementOrMenu.firstChild; CurChild != null; CurChild = CurChild.nextSibling)
	{
		if(CurChild.nodeName.toLowerCase() == tagTbl)
			if(!bHideOnly)
			{
				var ParentRect = CurChild.parentNode.getBoundingClientRect();

				CurChild.style.left = ParentRect.right + "px";
				CurChild.style.top = ParentRect.top - 45.5 + "px";
				CurChild.style.zIndex = "9999999";
			}

		if(CurChild.nodeName.toLowerCase() != tagComment && CurChild.nodeName.toLowerCase() != tagText)
			HideAndPosAllSubMenus(CurChild);

		if(CurChild.nodeName.toLowerCase() == tagTbl)
			CurChild.style.display = kwNone;
	}
}