var timeout = 500;
var closetimer = null;
var opentimer = null;
var ddmenuitem = null;

function menuOff(hid) {
  var p = document.getElementById(hid);
  var f = document.getElementById("ddiframe");
  if (p.style.visibility!='hidden') {
    p.style.visibility='hidden';
    f.style.width = '0';
    f.style.height = '0';
    f.style.zIndex = '0';
    f.style.display='none';
  }
  return;
}
function menuOn(g,hid,dx,dy) {
  var p = document.getElementById(hid);
  var f = document.getElementById("ddiframe");
  if (p&&p.style.visibility!='visible') {
    if (g!=null) {
      p.style.left=findPosX(g)+dx;
      p.style.top=findPosY(g)+dy;
      p.style.visibility='visible';
      f.style.left=findPosX(g)+dx;
      f.style.top=findPosY(g)+dy;
      f.style.width = p.offsetWidth;
      f.style.height = p.offsetHeight;
      f.style.zIndex = '99999';
      f.style.display='block';
    }
  }
  return;
}

// open hidden layer
function mopen(thiz,id) { 
  // cancel close timer
  mcancelclosetime();
  // close old layer
  mclose();
  // get new layer and show it
  ddmenuitem = id;
  menuOn(thiz,id,-2,36);
}
// close showed layer
function mclose() {
  if(ddmenuitem) menuOff(ddmenuitem);
}
// 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; 


