function addPopupMenu(parentId, popupMenuId)
{
  var element = document.getElementById(popupMenuId);
  var parent = document.getElementById(parentId);
  
  if ((element) && (parent))
  {
    parent.onmouseover = new Function("showElement('" + parentId + "', '" + popupMenuId + "');");
    parent.onmouseout  = new Function("hideElement('" + popupMenuId + "');");
    element.onmouseover = new Function("showElement('" + parentId + "', '" + popupMenuId + "');");
    element.onmouseout  = new Function("hideElement('" + popupMenuId + "');");
  }
}

function showElement(parentId, popupMenuId)
{
  var element = document.getElementById(popupMenuId);
  var parent = document.getElementById(parentId);

  if ((element) && (parent))
  {
    var top  = parent.offsetHeight + 2;
    var left = 0;

    while (parent)
    {
      top  += parent.offsetTop;
      left += parent.offsetLeft;
      parent = parent.offsetParent;
    }
    
    element.style.top        = top + 'px';
    element.style.left       = left + 'px';

    element.style.visibility = 'visible';
    clearTimeout(element["hide_timeout"]);
  }
}

function hideElement(popupMenuId)
{
  if (document.getElementById(popupMenuId))
  {
    var element = document.getElementById(popupMenuId);
    element["hide_timeout"] = setTimeout("document.getElementById('" + element.id + "').style.visibility = 'hidden'", 30);
  }
}
