
var prevActiveMenu = null;

var bgLinkColor   = '#ffffff';
var bgLinkHover   = '#ffffff';
var bgLinkActive  = '#000000';
var linkColor     = '#000000';
var linkHover     = '#000000';
var linkActive    = '#ffffff';

var isIE = null;

if (navigator.appName.indexOf('Microsoft Internet Explorer') != -1) isIE=1;

function alertEvent (e)
{
  var msg = "type          = " + e.type + "\n" +
            "target        = " + e.target + "\n" +
            "currentTarget = " + e.currentTarget + "\n" +
            "eventPhase    = " + e.eventPhase    + "\n" +
            "timeStamp     = " + e.timeStamp     + "\n" +
            "bubbles       = " + e.bubbles       + "\n" +
            "cancelable    = " + e.cancelable;

  alert (msg);
}

function handleClickOnDocument (e)
{
  var target;

  if (e)
  {
    target = e.target;
  }
  else
  {
    e = window.event;
    target = e.srcElement;
  }

  var targetTag = target.tagName;
  var targetId  = target.id;

  var isNavClick = targetId.search(/^navMenu/);

  if (isNavClick != 0)
    deactivateActiveMenu();
}

function initDropMenu (navMenus, dropMenus)
{
  var menuName;
  var objDropMenu;
  var navName;
  var objNavMenu;

  document.onclick = handleClickOnDocument;

  for (i=0; i<dropMenus.length; i++)
  {
    menuName = dropMenus[i];

    objDropMenu = document.getElementById(menuName);
    objDropMenu.style.visibility = 'hidden';
    objDropMenu.onclick = null;
  }

  for (i=0; i<navMenus.length; i++)
  {
    navName = navMenus[i];
    objNavMenu = document.getElementById(navName);

    objNavMenu.onmouseover = activateMenu;
    objNavMenu.onmouseout = null;
    objNavMenu.onclick = null;
  }
  prevActiveMenu = null;

  return;
}


function activateMenu(e)
{
  var objNavMenu;

  objNavMenu = document.getElementById(this.id);

  if (objNavMenu.className == "menuLinkHeader")
  {
    menuHover (this.id);
  }
  else
  {
    showDropMenu (this.id);
  }

  if ((prevActiveMenu != null) && (prevActiveMenu.id != this.id))
  {
    prevId = prevActiveMenu.id;

    if (prevActiveMenu.className == "menuLinkHeader")
    {
       menuOut (prevId);
    }
    else
    {
       hideDropMenu (prevId);
    }
  }

  prevActiveMenu = objNavMenu;

  return false;
}

function deactivateActiveMenu(e)
{
  if (prevActiveMenu != null)
  {
    prevId = prevActiveMenu.id;

    if (prevActiveMenu.className == "menuLinkHeader")
    {
       menuOut (prevActiveMenu.id);
    }
    else
    {
       hideDropMenu (prevActiveMenu.id);
    }
  }

  prevActiveMenu = null;  
}

function menuHover(menuId)
{
  var hoverObjNavMenu;

  hoverObjNavMenu = document.getElementById(menuId);

  hoverObjNavMenu.style.color = linkHover;
  hoverObjNavMenu.style.backgroundColor = bgLinkHover;
}

function menuOut (menuId)
{
  var outObjNavMenu;

  outObjNavMenu = document.getElementById(menuId);

  outObjNavMenu.style.color = linkColor;
  outObjNavMenu.style.backgroundColor = bgLinkColor;
}

function showDropMenu(menuId)
{
  var menuName;
  var objDropMenu;
  var objNavMenu;

  menuName = 'drop' + menuId.substring(3, menuId.length);
  objDropMenu = document.getElementById(menuName);

  objNavMenu = document.getElementById(menuId);

  objNavMenu.style.color = linkActive;
  objNavMenu.style.backgroundColor = bgLinkActive;

  xPos=objNavMenu.offsetParent.offsetLeft + objNavMenu.offsetLeft;
  yPos=objNavMenu.offsetParent.offsetTop + objNavMenu.offsetParent.offsetHeight;

  if (isIE)
  {
    yPos -= 1;
    xPos -= 6;
  }
  objDropMenu.style.left = xPos + 'px';
  objDropMenu.style.top = yPos + 'px';
  objDropMenu.style.visibility = 'visible';
}

function hideDropMenu(menuId)
{
  var menuName;
  var objDropMenu;

  menuName = 'drop' + menuId.substring(3, menuId.length);
  objDropMenu = document.getElementById(menuName);

  objNavMenu = document.getElementById(menuId);

  objDropMenu.style.visibility = 'hidden';
  objDropMenu = null;
  objNavMenu.style.color = linkColor;
  objNavMenu.style.backgroundColor = bgLinkColor;
}


function setVisibility (inObjectId, inState)
{
  var object = document.getElementById(inObjectId);
  object.style.visibility = inState;
}


function setDisplay (inObjectId, inState)
{
  var object = document.getElementById(inObjectId);
  object.style.visibility = inState;
}


