var selectedSubmenu = 0;
var hideTimeout = 0;
var hideTimer = null;

function closeSubmenu() {
  if(selectedSubmenu&&(document.getElementById('menu'+selectedSubmenu)!=null)&&(document.getElementById('submenu'+selectedSubmenu)!=null)) {
    var menuDiv = document.getElementById('menu'+selectedSubmenu);
    var submenuDiv = document.getElementById('submenu'+selectedSubmenu);
    menuDiv.style.color='#FFFFFF';
    submenuDiv.style.visibility='hidden';
    selectedSubmenu = 0;
  }
}

function openSubmenu(id) {
  //stop auto-hiding
  stopHide();
  //close other open submenu
  if(selectedSubmenu&&(selectedSubmenu!=id)) {
    closeSubmenu();
  }
  //check if menu and submenu div exists
  if(id&&(document.getElementById('menu'+id)!=null)&&(document.getElementById('submenu'+id)!=null)) {
    if(id==selectedSubmenu) {
      //closeSubmenu();
    } else {
      var menuDiv = document.getElementById('menu'+id);
      var submenuDiv = document.getElementById('submenu'+id);
      menuDiv.style.color='#000000';
      submenuDiv.style.visibility='visible';
      submenuDiv.style.left=(findPosX('menu'+id)-findPosX('container'))+'px';
      submenuDiv.style.top=(findPosY('menu'+id)-findPosY('container')+25)+'px';
      selectedSubmenu = id;
    }
  }
}

function setHide() {
  hideTimeout = 1;
  setTimeout("hide()",1000);
}

function stopHide() {
  if (hideTimeout) {
    clearTimeout(hideTimer);
    hideTimeout = 0;
  }
}

function hide() {
  if(hideTimeout>0)
    closeSubmenu();
}

//get x-pos
function findPosX(id) {
  var obj = document.getElementById(id);
  var curleft = 0;
  if(obj.offsetParent) {
    while(1) {
      curleft += obj.offsetLeft;
      if(!obj.offsetParent) {
        break;
      }
      obj = obj.offsetParent;
    }
  }
  else if(obj.x) {
    curleft += obj.x;
  }
  return curleft;
}

//get y-pos
function findPosY(id) {
  var obj = document.getElementById(id);
  var curtop = 0;
  if(obj.offsetParent) {
    while(1) {
      curtop += obj.offsetTop;
      if(!obj.offsetParent) {
        break;
      }
      obj = obj.offsetParent;
    }
  }
  else if(obj.y) {
    curtop += obj.y;
  }
  return curtop;
}
