function displayMenu(triggerID, divID) {
  if(document.getElementById(divID)) {
    var el = document.getElementById(divID);
    el.style.left = cumulativeOffset(triggerID)[0]+"px";
    el.style.top = cumulativeOffset(triggerID)[1]+"px";
    el.style.display="block";
    menuOver = true;
    CurrentMenu=divID;
  }
}

function hideMenu(divID) {
  if(document.getElementById(divID)) {
    menuOver=false;
    setTimeout("hideMenuNow('"+divID+"')",500);
  }
}

function hideMenuNow(divID) {
  if(document.getElementById(divID)) {
    if(menuOver && divID==CurrentMenu)
      setTimeout("hideMenuNow('"+divID+"')",500);
    else
      document.getElementById(divID).style.display="none";
  }
}

function cumulativeOffset(element) {
  var valueT = element.offsetHeight, valueL = 0;
  do {
    valueT += element.offsetTop  || 0;
    valueL += element.offsetLeft || 0;
    element = element.offsetParent;
  } while (element);
  return [valueL, valueT];
};
