var timeout = 500;
var closetimer  = 0; // tells the menu how long to wait after mouseout to close submenu
var ddmenuitem  = 0;

// open hidden layer
function menuTriggerOpen(id)
{
  // cancel close timer
  mcancelclosetime();

  // close old layer
  if(ddmenuitem) ddmenuitem.style.display = 'None';

  // get new layer and show it
  ddmenuitem = document.getElementById(id);
  ddmenuitem.style.display = 'Block';

}
// close showed layer
function menuClose()
{
  if(ddmenuitem) ddmenuitem.style.display = 'None';
}

// go close timer
function menuTriggerClose()
{
  closetimer = window.setTimeout(menuClose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
  if(closetimer)
  {
    window.clearTimeout(closetimer);
    closetimer = null;
  }
}

// close layer when click-out
document.onclick = menuClose;