var tID = null;
var menuBar = null;

function resetTimer()
{
  clearTimeout(tID);
  tID = setTimeout("executeTimer()",2000);
}

function executeTimer()
{
  HideMenu();
}

function getAbsLeft(elm)
{
  if (!elm && this) elm = this;
  var nLeftPos = elm.offsetLeft;
  var pElm = elm.offsetParent;
  while (pElm)
  {                                       
    nLeftPos += pElm.offsetLeft;  
    pElm = pElm.offsetParent;
  }
  return nLeftPos;                           
}

function getAbsTop(elm)
{
  if (!elm && this) elm = this;
  var nTopPos = elm.offsetTop;
  var pElm = elm.offsetParent;
  while (pElm)
  {
    nTopPos += pElm.offsetTop;
    pElm = pElm.offsetParent;
  }
  return nTopPos;
}

function InitMenu()
{
  document.body.onclick = HideMenu;
  menuBar = document.getElementById("menuBar");
  var bar,menu,item,menuItem = null;
  for (var i=0;i<menuBar.childNodes.length;i++)
  {
    bar = menuBar.childNodes[i];
	if (bar.nodeType == 3) continue;
    bar.onmouseout = resetTimer;
    bar.onmouseover = new Function("ShowMenu(\""+bar.id+"\")");
    if (bar.getAttribute("cmd")) bar.onclick = new Function("Do(\""+bar.id+"\")");
    menu = document.getElementById(bar.getAttribute("menu"));
    if (menu)
    {
      menu.onmouseout = resetTimer;
	  menu.style.visibility = "hidden";
      for (var j=0;j<menu.childNodes.length;j++)
      {
        item = menu.childNodes[j];
	    if (item.nodeType == 3) continue;
		menuItem = document.getElementById(item.id);
        if (menuItem.getAttribute("menu")) FindSubMenu(menuItem.getAttribute("menu"));
        if (menuItem.getAttribute("cmd")) menuItem.onclick = new Function("Do(\""+menuItem.id+"\")");
        menuItem.onmouseover = new Function("highlight(\""+item.id+"\")");
      }	
    }
  }
}  	

function FindSubMenu(subMenu)
{
  var item = null;
  var menu = document.getElementById(subMenu);
  if (menu)
  {
    menu.onmouseout = resetTimer;
    menu.style.visibility = "hidden";
    for (var i=0;i<menu.childNodes.length;i++)
    {
	  item = menu.childNodes[i];
      if (item.nodeType == 3) continue;
      if (item.getAttribute("menu")) FindSubMenu(item.getAttribute("menu"));
      if (item.getAttribute("cmd"))  item.onclick = new Function("Do(\""+item.id+"\")");
	  item.onmouseover = new Function("highlight(\""+item.id+"\")");
    }  
  } 
}

function ShowMenu(obj)
{
  clearTimeout(tID);
  HideMenu(menuBar);
  if (obj != null && obj.length){
     obj = document.getElementById(obj);
     if (obj.getAttribute("cmd")) window.status = obj.getAttribute("cmd");
     var menu = document.getElementById(obj.getAttribute("menu"));
     var bar = document.getElementById(obj.id);
     if (bar.getAttribute("cmd"))
       window.status = window.location.protocol + "//" + window.location.host + bar.getAttribute("cmd")
     else	
       window.status = "";
     bar.className="barOver";
     if (menu)
     {
       menu.style.visibility = "visible";
       menu.style.top =  (getAbsTop(obj)-5) + "px";
       menu.style.left = (getAbsLeft(obj) + obj.offsetWidth) + "px";
     }  
  } 
}
   
function highlight(obj)
{
  clearTimeout(tID);
  obj = document.getElementById(obj);
  var PElement = document.getElementById(obj.parentNode.id);
  for (var i=0;i<PElement.childNodes.length;i++)
  {
    var elm = PElement.childNodes[i];
	elm.className = "menuItem";
  }
  obj.className="ItemMouseOver";
  if (obj.getAttribute("cmd"))
    window.status = window.location.protocol + "//" + window.location.host + obj.getAttribute("cmd")
  else	
    window.status = "";
  ShowSubMenu(obj);
}
   
function Do(obj)
{
  var cmd = document.getElementById(obj).getAttribute("cmd");	
  window.location = cmd;
}
   
function HideMenu(obj)
{
  if (!obj || obj.tagName != "DIV") obj = menuBar;
  for (var i=0;i<obj.childNodes.length;i++)
  {
    var child = obj.childNodes[i];
	if (child.nodeType == 3) continue;
    if (child.className == "barOver") document.getElementById(child.id).className = "Bar";
    var childMenu = document.getElementById(child.getAttribute("menu"));
    if (childMenu) 
	{
	  if (childMenu.hasChildNodes())
	  { 
        for (var j=0;j<childMenu.childNodes.length;j++)
		{
          var tElm = childMenu.childNodes[j]; 
          if (tElm.nodeType == 3) continue;
          if (tElm.className == "ItemMouseOver") tElm.className = "menuItem";
		}
        HideMenu(childMenu);
		childMenu.style.visibility = "hidden";
	    window.status = "";
	  }
    }
  }
}

function ShowSubMenu(obj)
{
  var PMenu = obj.parentNode;
  HideMenu(PMenu);
  var menu = document.getElementById(obj.getAttribute("menu"));
  if (menu)
  {
    menu.style.visibility = "visible";
    menu.style.top = (obj.offsetTop + PMenu.offsetTop) + "px";
    menu.style.left = (PMenu.offsetLeft + obj.offsetWidth -1) + "px";
  }
}   

window.onload = InitMenu;