var timeout	= 500;
var closetimer = 0;
var ddmenuitem = 0;

// open hidden sub-layer
function mopen(id)
{	
  // cancel close timer
  mcancelclosetime();

  // hide visible sub-layer
  if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

  // determine requested sub-layer and show it
  ddmenuitem = document.getElementById(id);
  ddmenuitem.style.visibility = 'visible';
}

// hide visible sub-layer
function mclose()
{
  if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

// stop timer for sub-layer close (when pointer is elsewhere)
function mclosetime()
{
  closetimer = window.setTimeout(mclose, timeout);
}

// cancel above timer (if back on a sub-layer)
function mcancelclosetime()
{
  if(closetimer)
  {
    window.clearTimeout(closetimer);
    closetimer = null;
  }
}

// close sub-layer when clicked somewhere else
document.onclick = mclose; 

