var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;
var closetimer_sub	= 0;
var ddsubmenuitem	= 0;
var prev_ddsubmenuitem	= 0;

// open hidden layer
function mopen(id) {	
	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose() {
	if(ddmenuitem) {
		ddmenuitem.style.visibility = 'hidden';
		submclose();
	}
}

// go close timer
function mclosetime() {
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime() {
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

//open submenu
function submopen(id) {
	// get new layer and show it
	//close first previous sub
	if(prev_ddsubmenuitem){
		prev_ddsubmenuitem.style.visibility = 'hidden';
	}
	
	ddsubmenuitem = document.getElementById(id);

	prev_ddsubmenuitem = ddsubmenuitem;
	
	ddsubmenuitem.style.display = 'block';
	ddsubmenuitem.style.visibility = 'visible';
}
function submclose() {
	if(ddsubmenuitem) {
		ddsubmenuitem.style.visibility = 'hidden';
	}
}
function submclosetime(){
	//close window in 500ms
	if(ddsubmenuitem!=prev_ddsubmenuitem){
		closetimer_sub = window.setTimeout(submclose, timeout);
	}
}
function submcancelclosetime() {
	
	if(closetimer_sub)
	{
		window.clearTimeout(closetimer_sub);
		closetimer_sub = null;
		
	}
}


// close layer when click-out
document.onclick = mclose; 