var TimeoutId;
var MenuObjects = new Array();
var TimeoutIds = new Array();

function show_menu(o, m, dir, level)
{
	var o1 = this;
	var yl = o.offsetHeight;
	var xl = o.offsetWidth;
	var x = o.offsetLeft, y = o.offsetTop;
	while (o = o.offsetParent)
	{
		x += o.offsetLeft;
		y += o.offsetTop;
	}
	if(dir == 'h')
	{
		m.style.left=x + xl;
		m.style.top=y;
	}
	if(dir == 'v')
	{
		m.style.left=x;
		m.style.top=y + yl;
	}
	m.style.display="block";
	if(MenuObjects[level] == m) 	clearTimeout(TimeoutIds[level]);
	else
	{
	 	for (var i = level; i < MenuObjects.length; i++)
		{
			 hide(MenuObjects[i]);
			clearTimeout(TimeoutIds[i]);
		}

	}
	MenuObjects[level]=m;
}

function hide_menu(level)
{
	for (var i = level; i >= 0; i--)
	{
		TimeoutIds[i] = window.setTimeout("direct_hide("+ MenuObjects[i].id + ")", 500);
	}
}

function nothide_menu(level)
{
	for (var i = level; i >= 0; i--)
	{
		clearTimeout(TimeoutIds[i]);
		MenuObjects[i].style.display = "block";	// Вдруг не успели отменить таймаут
	}
}
function hide_submenu(level)
{
	TimeoutIds[level] = window.setTimeout("direct_hide("+ MenuObjects[level].id + ")", 500);
}

function direct_hide(m)
{
	var o = eval(m);
	o.style.display="none";
}
function hide(obj)
{
	obj.style.display="none";
}