var VMENU_ITEM_TEXT_DECORATION_ON_MS_OVER = "underline";
var VMENU_ITEM_TEXT_DECORATION_ON_MS_OUT = "none";
var VMENU_ITEM_BORDER_COLOR_ON_MS_OVER = "#40688c";
var VMENU_ITEM_BORDER_COLOR_ON_MS_OUT = "#19376a";
var VMENU_ITEM_BG_COLOR_ON_MS_OVER = "#5081ae";
var VMENU_ITEM_BG_COLOR_ON_MS_OUT = "#19376a";

var _menuItemDescriptions = new Array();

function InitVerticalMenu()
{
  var menu = document.getElementById("vMenu");
  var menuItem = null;

  for (var i = 0; i < menu.childNodes.length; i++)
  {
    if (menu.childNodes[i].nodeType == 1 && menu.childNodes[i].hasChildNodes())
    {
      if (menu.childNodes[i].nodeName.toLowerCase() == "a")
      {
        menuItem = menu.childNodes[i];
      }
      else if (menu.childNodes[i].nodeName.toLowerCase() == "div")
      {
        InitVerticalMenuItem(menuItem, menu.childNodes[i].childNodes[0]);
      }
    }
  }
}

function InitVerticalMenuItem(menuItem, description)
{
  menuItem.description = description;

  menuItem.highlight = function() {
    this.style.textDecoration = VMENU_ITEM_TEXT_DECORATION_ON_MS_OVER;
    this.style.borderColor = VMENU_ITEM_BORDER_COLOR_ON_MS_OVER;
    this.style.backgroundColor = VMENU_ITEM_BG_COLOR_ON_MS_OVER;
  }

  menuItem.normalize = function() {
    this.style.textDecoration = VMENU_ITEM_TEXT_DECORATION_ON_MS_OUT;
    this.style.borderColor = VMENU_ITEM_BORDER_COLOR_ON_MS_OUT;
    this.style.backgroundColor = VMENU_ITEM_BG_COLOR_ON_MS_OUT;
  }

  menuItem.onmouseover = function() {
    this.highlight();
    this.description.show();
  }

  menuItem.onmouseout = function() {
    this.normalize();
    this.description.hide();
  }

  InitMenuItemDescription(description, menuItem);
}

function InitMenuItemDescription(description, menuItem)
{
  description.parentMenuItem = menuItem;
  description.url = menuItem.href;
  description.descriptionId = _menuItemDescriptions.length;
  _menuItemDescriptions[description.descriptionId] = description;
  description.timeout = null;
  description.style.top = (-menuItem.offsetHeight - (document.all ? 1 : 0)) + "px";
  description.style.left = (menuItem.offsetLeft + menuItem.offsetWidth + 7) + "px";

  description.show = function() {
    if (this.timeout != null)
    {
      clearTimeout(this.timeout);
      this.timeout = null;
    }

    this.style.visibility = "visible";
  }

  description.hide = function() {
    this.timeout = setTimeout("HideMenuItemDescription(" + this.descriptionId + ")", 50);
  }

  description.onmouseover = function() {
    this.style.cursor = "pointer";
    this.show();
    this.parentMenuItem.highlight();
  }

  description.onmouseout = function() {
    this.hide();
    this.parentMenuItem.normalize();
  }

  description.onclick = function() {
    window.location = this.url;
  }
}

function HideMenuItemDescription(descriptionId)
{
  _menuItemDescriptions[descriptionId].style.visibility = "hidden";
}
