var currentMainMenu = "";
var currentSubMenu = "";
var openMenuCount = new Array();
var doAll = document.all;
var doLayers = false;
var doNone = false;
var visibleStr = "visible";
var hiddenStr = "hidden";

if(document.layers)
{
  visibleStr = 'show';
  hiddenStr = 'hide';
  doLayers = true;
}
doNone = (!doAll && !doLayers)

function getObject(id)
{
  if(doAll) return(document.all[id]);
  else if(doLayers) return(document.layers[id]);
}

function getStyleObject(id)
{
  var obj = getObject(id);

  if(doAll) return(obj.style);
  else if(doLayers) return(obj);
}

function setMenuVisible(id, value)
{
  var obj = getStyleObject(id);
  if (value)
  {
    obj.visibility = visibleStr;
  }
  else
  {
    obj.visibility = hiddenStr;
  }
}

function isMenuVisible(id)
{
  var obj = getStyleObject(id);
  return (obj.visibility == visibleStr);
}

function setTopLeft(id, top, left)
{
  var obj = getStyleObject(id);
  if(doAll)
  {
    obj.pixelLeft = left;
    obj.pixelTop = top;
  }
  else if(doLayers)
  {
    obj.left = left;
    obj.top = top;
  }
}

function DynGetBottom(id)
{
  var obj = getObject(id);
  if(doAll)
  {
    var total = obj.offsetTop;
    var pointer = obj;
    while(pointer.offsetParent)
    {
      pointer = pointer.offsetParent;
      total += pointer.offsetTop;
    }
    return (total + obj.offsetHeight);
  }
  else if(doLayers) return(obj.document.height + obj.pageY);
}

function showMenu(menuname, myTop, myLeft)
{
  if (currentMainMenu != menuname)
  {
    while (currentMainMenu != "")
    {
      hideMenu(currentMainMenu);
    }
    while (currentSubMenu != "")
    {
      hideSubMenu(currentSubMenu);
    }
  }

  if(!isMenuVisible(menuname + "_id"))
  {
    openMenuCount[menuname] = 0;
  }
  openMenuCount[menuname]++;

  setTopLeft(menuname + "_id", myTop, myLeft);
  setMenuVisible(menuname + "_id", true);
  currentMainMenu = menuname;
}

function hideMenu(menuname)
{
  openMenuCount[menuname]--;

  if(openMenuCount[menuname] <= 0)
  {
    openMenuCount[menuname] = 0;
    setMenuVisible(menuname + "_id", false);
    setTopLeft(menuname + "_id", 0, 0);
    if(currentMainMenu == menuname)
    {
      currentMainMenu = "";
    }
  }
}

function showSubMenu(menuname, myTop, myLeft)
{
  if (currentSubMenu != menuname)
  {
    while (currentSubMenu != "")
    {
      hideSubMenu(currentSubMenu);
    }
  }

  if(!isMenuVisible(menuname + "_id"))
  {
    openMenuCount[menuname] = 0;
  }
  openMenuCount[menuname]++;

  setTopLeft(menuname + "_id", myTop, myLeft);
  setMenuVisible(menuname + "_id", true);
  currentSubMenu = menuname;
}

function hideSubMenu(menuname)
{
  openMenuCount[menuname]--;

  if(openMenuCount[menuname] <= 0)
  {
    openMenuCount[menuname] = 0;
    setMenuVisible(menuname + "_id", false);
    setTopLeft(menuname + "_id", 0, 0);
    if(currentSubMenu == menuname)
    {
      currentSubMenu = "";
    }
  }
}

function mouseOverHandler(menuname, top, left)
{
  if ((navigator.appName.indexOf("Netscape") != -1) && (left > 200))
  {
    showMenu(menuname, top - 5, left);
  }
  else
  {
    showMenu(menuname, top, left);
  }
}

function mouseOutHandler(menuname)
{
  setTimeout('hideMenu("' + menuname + '")', 500);
}

function mouseOverSubHandler(menuname, top, left, parent, p_top, p_left)
{
  if ((navigator.appName.indexOf("Netscape") != -1) && (p_left > 200))
  {
    showMenu(parent, p_top - 5, p_left);
    showSubMenu(menuname, top - 5, left);
  }
  else
  {
    showMenu(parent, p_top, p_left);
    showSubMenu(menuname, top, left);
  }
}

function mouseOutSubHandler(menuname, parent)
{
  setTimeout('hideSubMenu("' + menuname + '")', 300);
  setTimeout('hideMenu("' + parent + '")', 500);
}

