//### INCLUDE WHITE.JS

/*#############################################################################
# Show submenu
#############################################################################*/
function ShowSubMenu(){
  var oElement     = this;
  var oMenu        = oElement.menu;

  var sMarginIE    = "0px";  //Move sub and subsub menu for InternetExplorer
  var sMarginNS    = "0px";  //Move sub and subsub menu for FireFox

  var bSubWidth    = false;  //Same width of submenu as mainbutton
  var iButtonWidth = 152;    //Default button width (oChildElement.offsetWidth)

  var bOpensDown   = true;   //Submenu opens down
  var iMarginTop   = 0;      //Height of mainbutton, used for opens up

  if (WHITE_HasClassName(oElement.menu, "listup"))
  {
    bOpensDown = false;
  }

  if ('object' == typeof oElement)
  {
    for(var iTel = 0; iTel < oElement.childNodes.length; iTel++)
    {
      oChildElement = oElement.childNodes.item(iTel);

      if ('object' == typeof oChildElement)
      {
        //# Add classnames for menuitem over and set up margins
        if(oChildElement.nodeName == "A")
        {
          //# Set margins on submenu
          if (WHITE_HasClassName(oChildElement, "mainitem"))
          {
            WHITE_AddClassName(oChildElement, 'mainitem_on');
            if (WHITE_HasClassName(oElement.menu, "mainmenu"))
            {
              sMarginIE = "-31px 0px 0px 189px";
              sMarginNS = "-26px 0px 0px 189px";
            }
            iMarginTop = oElement.offsetHeight;
          }
          //# Set margins on subsubmenu
          if (WHITE_HasClassName(oChildElement, "subitem"))
          {
            WHITE_AddClassName(oChildElement, 'subitem_on');
            if (WHITE_HasClassName(oElement.menu, "mainmenu"))
            {
              sMarginIE = "-28px 0px 0px 255px";
              sMarginNS = "-28px 0px 0px 255px";
            }
            iMarginTop = oElement.offsetHeight;
          }
        }
  
        //# Use marginsettings on sub and subsub menu
        if(oChildElement.nodeName == "UL")
        {
          //### Position element in IE
          if ('Microsoft Internet Explorer' == navigator.appName) {
            oChildElement.style.margin = sMarginIE;
            oChildElement.style.left = "auto";
          }
          //### Position element in NS/FF/e.d.
          if ('Netscape' == navigator.appName) {
            oChildElement.style.margin = sMarginNS;
          }

          //# Submenu opens to top of mainitem
          if (!bOpensDown)
          {
            oChildElement.style.marginTop = '-' + (oChildElement.offsetHeight+iMarginTop) + 'px';
          }

          //### Change width of submenu to fit mainitem buttonwidth
          if (bSubWidth && iButtonWidth > oChildElement.offsetWidth)
          {
            oChildElement.style.width = iButtonWidth + 'px';
          }
        }
      }
    }
  }
}

/*#############################################################################
# Hide submenu
#############################################################################*/
function HideSubMenu()
{
  var oElement = this;

  //# Position sub and subsub menu out of sight and remove added classnames
  if ('object' == typeof oElement)
  {
    for(var iTel = 0; iTel < oElement.childNodes.length; iTel++)
    {
      oChildElement = oElement.childNodes.item(iTel);

      if ('object' == typeof oChildElement)
      {
        if('UL' == oChildElement.nodeName)
        {
          if ('Microsoft Internet Explorer' == navigator.appName) {
            oChildElement.style.left = "-9999px";
          }
        }
    
        if('A' == oChildElement.nodeName)
        {
          if (WHITE_HasClassName(oChildElement, 'mainitem_on'))
          {
            WHITE_RemoveClassName(oChildElement, 'mainitem_on');
          }
          if (WHITE_HasClassName(oChildElement, 'subitem_on'))
          {
            WHITE_RemoveClassName(oChildElement, 'subitem_on');
          }
        }
      }
    }
  }  
}

/*#############################################################################
# Initialize submenu
#############################################################################*/
function InitialiseMenu()
{
  var oMainMenu = WHITE_GetElementsByClass(document, 'listmenu');
  for(var iTelX = 0; iTelX < oMainMenu.length; iTelX++)
  {
    var oListItems = oMainMenu[iTelX].getElementsByTagName("LI");
    for(var iTelY = 0; iTelY < oListItems.length; iTelY++)
    {
      var oListItem = oListItems[iTelY];
      for(var iTelZ = 0; iTelZ  < oListItem.childNodes.length; iTelZ++)
      {
        if('UL' == oListItem.childNodes.item(iTelZ).nodeName)
        {
          oListItem.menu = oMainMenu[iTelX];
          WHITE_AddEventToElement(oListItem, 'mouseover', ShowSubMenu);
          WHITE_AddEventToElement(oListItem, 'mouseout', HideSubMenu);
        }
      }
    }
  }
}

/*#############################################################################
# Start initializing on onload of body
#############################################################################*/
if ('function' == typeof WHITE_AddLoadEvent)
{
  if ('function' == typeof InitialiseMenu)
  {
    WHITE_AddLoadEvent(InitialiseMenu);
  }
}