var timeout         = 200;
var closetimer		= 0;
var ddmenuitem      = 0;
var ddsubmenuitem	= 0;
var submenuopen 	= 0;

// open hidden layer
function mopen(id)
{	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	if(ddsubmenuitem) {
		ddsubmenuitem.style.visibility = 'hidden';
		submenuopoen = 0;
	}

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';
}

// open submenu
function mopensub(menu, id)
{
	// close old submenu
	if(ddsubmenuitem) ddsubmenuitem.style.visibility = 'hidden';
	
	// open new submenu
	ddsubmenuitem = document.getElementById(id)
	ddsubmenuitem.style.top = menu.offsetTop + 'px';
	ddsubmenuitem.style.left = (menu.offsetLeft + menu.offsetWidth) + 'px';
	ddsubmenuitem.style.visibility = 'visible';
}

// close showed layer
function mclose()
{
	if(ddmenuitem && !submenuopen) {
		mclosesub();
		ddmenuitem.style.visibility = 'hidden';
	}
}

// close submenu
function mclosesub()
{
	if(ddsubmenuitem) {
		ddsubmenuitem.style.visibility = 'hidden';
		ddsubmenuitem = 0;
		mmarkclosed();
	}
}

//mark sub as opened()
function mmarkopened()
{
	submenuopen = 1;
}

//mark sub as closed()
function mmarkclosed()
{
	submenuopen = 0;
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose;
