
var widthMax;
var heightMax;
var xCoor;
var yCoor;
var sWidth;
var sHeight;
var xScroll;
var widthScroll;

var menu = new Array;
var divId = new Array;

function menuItem()
{
  this.item = arguments[0];
  this.hasSubMenu = arguments[1];
  this.level = arguments[2];
  this.subMenuFront = arguments[3];
  this.subMenuBack = arguments[4];
  this.subMenuOffset = arguments[5];
}

function findMenuLevel(parentId)
{
  for (i = 0; i < divId.length; i = i + 2)
    {
      if (divId[i] == (parentId + "Front"))
        {
          return divId[i + 1];
          break;
        }
    }
}

function createMenu(menuId, menuWidth, level)
{
  var frontLayer = document.createElement("DIV");
  with (frontLayer)
    {
      id = menuId + "Front";
      className = "menuFront";
      with (style)
        {
          posWidth = menuWidth;
          posHeight = 3;
          backgroundColor = outBgCr;
          visibility = "hidden";
        }
    }
  document.body.appendChild(frontLayer);
  var backLayer = document.createElement("DIV");
  with (backLayer)
    {
      id = menuId + "Back";
      className = "menuBack";
      with (style)
        {
          posWidth = menuWidth + 2;
          posHeight = 5;
          backgroundColor = outBgCr;          
          visibility = "hidden";
        }        
    }
  document.body.appendChild(backLayer);
  divId[divId.length] = menuId + "Front";
  divId[divId.length] = level;
  divId[divId.length] = menuId + "Back";
  divId[divId.length] = level;
}

function createItem(itemId, displayText, parentId, pageSrc, pageTarget, hasSubMenu)
{
  var menuFront = document.getElementById(parentId + "Front");
  var menuBack = document.getElementById(parentId + "Back");
  var level = findMenuLevel(parentId);
  var subMenuFront = "";
  var subMenuBack = "";
  var subMenuOffset = -1;
  var itemLayer = document.createElement("DIV");  
  with (itemLayer)
    {
      onmouseover = over;
      onmouseout = out;
      onclick = goToLink;
      id = itemId;
      className = "item";
      if (hasSubMenu)
        {
          pageSrc = "";
          innerHTML = displayText;
          var sepLayer = document.createElement("DIV");
          with (sepLayer)
            {
              className = "arrow";
              innerHTML = "4";
              with (style)
                {
                  left = menuFront.style.posWidth - 20;
                }                 
              itemLayer.appendChild(sepLayer);
            }
        }
      else
        {
          innerHTML = displayText;        
        }
      with (style)
        {
          posTop = menuFront.style.posHeight - 3;
          posWidth = menuFront.style.posWidth - 4;
          fontFamily = itemFont;
          color = outCr;
          if (hasSubMenu)
            {
              subMenuOffset =  menuFront.style.posHeight - 3;
            }
        }
    }
  menuFront.appendChild(itemLayer);
  menuFront.style.posHeight += itemLayer.clientHeight;
  menuBack.style.posHeight += itemLayer.clientHeight;
  itemLayer.url = pageSrc;  
  if (pageTarget == "")
    {
      pageTarget = "_self"
    }
  itemLayer.target = pageTarget;
  menu[menu.length] = new menuItem(itemId, hasSubMenu, level, subMenuFront, subMenuBack, subMenuOffset);  
}

function createSep(parentId)
{
  var menuFront = document.getElementById(parentId + "Front");
  var menuBack = document.getElementById(parentId + "Back");
  var sepLayer = document.createElement("DIV");
  with (sepLayer)
    {
      className = "itemSep";
      innerHTML = "<hr size=\"1\" class=\"sep\" align=\"center\">";
      with (style)
        {
          posTop = menuFront.style.posHeight;
          posWidth = menuFront.style.posWidth - 4;
        }
    }
  menuFront.appendChild(sepLayer);
  menuFront.style.posHeight += sepLayer.clientHeight;
  menuBack.style.posHeight += sepLayer.clientHeight;
}

function linkSubMenu(itemId, subMenuId)
{
  for (i = 0; i < menu.length; i++)
    {
      if (menu[i].item == itemId)
        {
          menu[i].subMenuFront = subMenuId + "Front";
          menu[i].subMenuBack = subMenuId + "Back";
          break;
        }
    }
}

function hideMenus(canHide)
{
  var srcClassName = window.event.srcElement.className;
  if (((buttonDown) && (srcClassName != "barItem") && (srcClassName != "barItemOver") && (srcClassName != "barItemClick")) || (canHide))
    {
      if ((srcClassName != "barItem") && (srcClassName != "barItemOver") && (srcClassName != "barItemClick"))
        {
          buttonDown = false;
        }
      for (i = 0; i < divId.length; i = i + 2)
        {
          var menuLayer = document.getElementById(divId[i]);
          menuLayer.style.visibility = "hidden";
        }
    }
}

function popUpSubPos(xCoor, yCoor, subMenuFront, subMenuBack, layerId)
{ 
  var menuFront = document.getElementById(layerId + "Front");
  var menuBack = document.getElementById(layerId + "Back");
  widthMax = document.body.clientWidth;
  heightMax = document.body.clientHeight;
  sWidth = subMenuFront.style.posWidth;
  sHeight = subMenuFront.style.posHeight;
  xScroll = document.body.scrollTop;
  widthScroll = document.body.offsetWidth - document.body.clientWidth;
  xWidth = xCoor + sWidth;
  yHeight = yCoor + sHeight;

  if (subMenuFront.style.visibility == "hidden")
    {
      if ((yHeight - xScroll) < (heightMax - 1))
        {
          subMenuFront.style.posTop = yCoor;
          subMenuBack.style.posTop = yCoor;
        }
      else
        {
          subMenuFront.style.posTop = yCoor - sHeight + 15;
          subMenuBack.style.posTop = yCoor - sHeight + 15;
        }

      if (xWidth < widthMax - 1)
        {
          subMenuFront.style.posLeft = xCoor;
          subMenuBack.style.posLeft = xCoor;
        }
      else
        {
          subMenuFront.style.posLeft = xCoor - menuFront.style.posWidth - subMenuFront.style.posWidth + 5;
          subMenuBack.style.posLeft = xCoor - menuFront.style.posWidth - subMenuFront.style.posWidth + 5;
        }
    }
}

function checkElement(itemId)
{
  if (itemId.className == "arrow")
    {
      return itemId.parentElement;
    }
  else
    {
      return itemId;
    }
 }

function findLayerId(frontId)
{
  index = frontId.indexOf("Front");
  return (frontId.substring(0, index));
}
 
function over()
{
  var itemId = event.srcElement;
  itemId = checkElement(itemId);
  var menuFront = itemId.parentElement;
  var layerId = findLayerId(menuFront.id);
  var xCoor = menuFront.style.posLeft + itemId.style.posWidth;
  var yCoor = menuFront.style.posTop;
  itemId.style.backgroundColor = overBgCr;
  itemId.style.color = overCr;
  for (i = 0; i < menu.length; i++)
    {      
      if (itemId == document.getElementById(menu[i].item))
        {        
          for (j = 0; j < divId.length; j = j + 2)
            {             
              if ((menu[i].level) < divId[j + 1])
                {
                  var subMenu = document.getElementById(divId[j]);
                  subMenu.style.visibility = "hidden";
                }
            }
          if (menu[i].hasSubMenu)
            {
              var subMenuFront = document.getElementById(menu[i].subMenuFront);
              var subMenuBack = document.getElementById(menu[i].subMenuBack);
              subMenuFront.style.zIndex = menu[i].level + 12;
              subMenuBack.style.zIndex = menu[i].level + 11;
              popUpSubPos(xCoor, yCoor + menu[i].subMenuOffset, subMenuFront, subMenuBack, layerId);
              subMenuFront.style.visibility = "visible";
              subMenuBack.style.visibility = "visible";                              
            }
          break;
        }        
    }
}

function out()
{
  var itemId = event.srcElement;
  itemId = checkElement(itemId);  
  itemId.style.backgroundColor = outBgCr;
  itemId.style.color = outCr;
}

function goToLink()
{
  var itemId = event.srcElement;
  var baseObj = document.all.tags("BASE");
  baseObj.target = itemId.target;
  if (itemId.url != "")
    {
      window.open(itemId.url, baseObj.target);
    }
}

var buttonDown = false;
var menuLeft = 5;
var menuTop = 21;
var bar = new Array; 

function barItem()
{
  this.item = arguments[0];
  this.mainMenu = arguments[1];
  this.posLeft = arguments[2];
}

function resizeBar(barId)
{
  var menuBar = document.getElementById(barId);
  menuBar.style.posWidth = document.body.clientWidth;
}  

function showMainMenu(barItemId)
{
  for (i = 0; i < bar.length; i++)
    {
      if (barItemId == bar[i].item)
        {
          var mainMenuId = bar[i].mainMenu;
          var menuFront = document.getElementById(mainMenuId + "Front");
          var menuBack = document.getElementById(mainMenuId + "Back");
          menuFront.style.visibility = "visible";       
          menuBack.style.visibility = "visible";
          break;
        }
    }
}

function barItemOver()
{
  var barItemId = event.srcElement;
  if (buttonDown)
    {
      barItemId.className = "barItemClick";
      hideMenus(true);
      showMainMenu(barItemId.id);
    }
  else
    {
      barItemId.className = "barItemOver";
    }
}

function barItemOut()
{
  var barItemId = event.srcElement;
  barItemId.className = "barItem";
}

function barItemClick()
{
  var barItemId = event.srcElement;
  if (barItemId.className == "barItemOver")
    {
      barItemId.className = "barItemClick";
      showMainMenu(barItemId.id);
    }
  else
    if (barItemId.className == "barItemClick")
      {
        barItemId.className = "barItemOver";
        hideMenus(true);
      }
  buttonDown = !buttonDown;
}

function createBarItem(barItemId, displayText, barId)
{
  var menuBar = document.getElementById(barId);
  var barItemLayer = document.createElement("SPAN");
  with (barItemLayer)
    {
      onmouseover = barItemOver;
      onmouseout = barItemOut;
      onclick = barItemClick;
      id = barItemId;
      className = "barItem";
      with (style)
        {
          innerHTML = displayText;
          posHeight = 0; 
        }
    }
  menuBar.appendChild(barItemLayer);
  bar[bar.length] = new barItem(barItemId, "", menuLeft);
  menuLeft = menuLeft + barItemLayer.clientWidth;
}

function createBar(barId)
{
 var menuBar = document.createElement("DIV");
 widthMax = document.body.clientWidth;
  with (menuBar)
    {
      id = barId;
      className = "menuBar";
      with (style)
        {
          posWidth = widthMax;
          backgroundColor = barBgCr;
          color = barItemCr;
          fontFamily = barItemFont;
          zIndex = 5;
        }
    }
  document.body.appendChild(menuBar);
  window.onresize = function()
                    {
                      resizeBar(barId);
                    }  
}

function linkMainMenu(barItemId, mainMenuId)
{
  for (i = 0; i < bar.length; i++)
    {
      if (barItemId == bar[i].item)
        {
          bar[i].mainMenu = mainMenuId;
          var menuFront = document.getElementById(mainMenuId + "Front");
          var menuBack = document.getElementById(mainMenuId + "Back");
          menuFront.style.posLeft = bar[i].posLeft;
          menuFront.style.posTop = menuTop;       
          menuBack.style.posLeft = bar[i].posLeft;
          menuBack.style.posTop = menuTop;
          break;
        }
    }
}

function correctBrowser()
{
  correctIE = (navigator.appVersion.indexOf("MSIE 5") || navigator.appVersion.indexOf("MSIE 5.5"));
  correctNS = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 5));
  return (correctIE || correctNS)
}

if (correctBrowser())
  {
    document.onclick = hideMenus;
  }
