var d = document;
var ForMenu = Array();
var ParentMenu = Array();

// функция для получения объекта по ID, чтобы не набирать постоянно document.getElementById
// id - идентификатор объекта
function gid(id)
{
	return d.getElementById(id);
}

// получаем данные о верхнем и левом отступе у объекта
// obj - объект для которого необходимо определеить отступы
function GetLeftTop(obj)
{
	var left = 0;
	var top = 0;
	while (obj)
	{
		left += obj.offsetLeft;
		top += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return { "x": left, "y": top };
}


function ShowMenu(obj)
{
	var oid = obj.id;
	if (ForMenu[oid])
	{
		ForMenu[oid].style.display = "block";
	}
	else
	{
		var id = obj.id + "_menu";
		if (gid(id))
		{
			var pos = GetLeftTop(obj);
			var h = obj.offsetHeight;
			var w = obj.offsetWidth;
			ForMenu[oid] = gid(id);
			ForMenu[oid].style.left = pos.x;
			ForMenu[oid].style.top = pos.y + h - 2;
			ForMenu[oid].style.width = w + "px";
			ForMenu[oid].style.display = "block";
			ParentMenu[id] = gid(oid);
		}
	}
}


function HideMenu(obj)
{
	ForMenu[obj.id].style.display = "none";
}


function HideShowSubmenu(obj)
{
	var id = "sub" + obj.id;
	var ismenu = gid(id);
	if (gid(id))
	{
		if (ismenu.style.display == "none")
		{
			ismenu.style.display = "block";
		}
		else
		{
			ismenu.style.display = "none";
		}
	}
}