var timeout = 500;
var closetimer = 0;
var ddmenuitem = 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';
   }
}

// 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;
