var timeout         = 100;
var closetimer	    = 0;
var closesubtimer	= 0;
var ddmenuitem      = 0;
var ddsubmenuitem   = 0;

// open hidden layer
function mopen(id, sub_id)
{
	// cancel close timer
	mcancelclosetime();
	
    var item = document.getElementById(id);
    var subItem = document.getElementById(sub_id);
    
    if ( ddmenuitem && ddmenuitem != item )
	    ddmenuitem.style.visibility = 'hidden';

    if ( ddsubmenuitem && ddsubmenuitem != subItem )
	    ddsubmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = item;
	ddsubmenuitem = subItem;
	if ( ddmenuitem )
		ddmenuitem.style.visibility = 'visible';
		
	if ( subItem )
	{
		if ( ddsubmenuitem )
			ddsubmenuitem.style.visibility = 'visible';	
	}
}
// close showed layer
function mclose()
{
    if ( ddsubmenuitem )
    {
        if ( ddsubmenuitem.style.visibility == 'visible' )
        ddsubmenuitem.style.visibility = 'hidden';
    }
    
    if ( ddmenuitem )
		ddmenuitem.style.visibility = 'hidden';
}

// close showed layer
function mclosesub()
{
	if ( ddsubmenuitem )
	    ddsubmenuitem.style.visibility = 'hidden';
}

// go close timer
function mclosetime(id, sub_id)
{
 	closetimer = window.setTimeout(mclose, timeout);
}

function mclosesubtime(id, sub_id)
{
 	closesubtimer = window.setTimeout(mclosesub, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if ( closetimer )
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
	
	if ( closesubtimer )
	{
		window.clearTimeout(closesubtimer);
		closesubtimer = null;
	}
}

// close layer when click-out
document.onclick = mclose;
