  var bIsIE = (navigator.userAgent.indexOf('MSIE') != -1) ? true: false;
  var iTimeout	  = 500;
  var iTimeoutID	= 0;
  var objMenuItem	= 0;

  // Open sub menu of selected menu item
  function openMenu(e)
  {	
    var evt = (!e) ? window.event : e;
    if (bIsIE)
    {
      obj = evt.srcElement;
    }
    else
    {
      obj = evt.target;
    }

    var id;
    try
    {
      id = obj.parentNode.getElementsByTagName("DIV")[0].id;
    }
    catch(ex)
    {
      id = null;
      cancelCloseTimeout();
      closeLastOpenMenu();
      return false;
    }

    // cancel close timer
    cancelCloseTimeout();

    // close old layer
    closeLastOpenMenu();

    // get new layer and show it
    objMenuItem = document.getElementById(id);
    if (objMenuItem)
    {
      objMenuItem.style.visibility = 'visible';
    }

  }

  // Close menu
  function closeLastOpenMenu()
  {
    if(objMenuItem)
    {
      objMenuItem.style.visibility = 'hidden';
    }
  }

  // Set timeout for auto close of menu
  function closeLastOpenMenuTimeout()
  {
    iTimeoutID = window.setTimeout(closeLastOpenMenu, iTimeout);
  }

  // Cancel close timer
  function cancelCloseTimeout()
  {
    if(iTimeoutID)
    {
      window.clearTimeout(iTimeoutID);
      iTimeoutID = null;
    }
  }

  function initMenus()
  {
    var objNavigation = document.getElementById('navigation');
    
    if (objNavigation)
    {
      // Add event listeners to sub menu items
      var collDivs = objNavigation.getElementsByTagName("DIV");
      for (var i=0; i<collDivs.length; i++)
      {
        if (collDivs[i].id.indexOf('mnu') == 0)
        {
          if (bIsIE)
          {
            collDivs[i].onmouseover = function() {cancelCloseTimeout();};
            collDivs[i].onmouseout = function() {closeLastOpenMenuTimeout();};
          }
          else
          {
            collDivs[i].addEventListener("mouseover", cancelCloseTimeout, false);
            collDivs[i].addEventListener("mouseout", closeLastOpenMenuTimeout, false);
          }
        }
      }
      
      // Add event listeners to top level menu items
      var collTLI = objNavigation.getElementsByTagName("A");
      for (i=0; i<collTLI.length; i++)
      {
        if (collTLI[i].id.indexOf('tlm') == 0)
        {
          if (bIsIE)
          {
            collTLI[i].onmouseover = function(e) {openMenu(e);};
            collTLI[i].onmouseout = function() {closeLastOpenMenuTimeout();};
          }
          else
          {
            collTLI[i].addEventListener("mouseover", openMenu, false);
            collTLI[i].addEventListener("mouseout", closeLastOpenMenuTimeout, false);
          }
        }
      }
    }
  }

  // Auto close menu when clicking on page
  document.onclick = closeLastOpenMenu; 
