<!-- ---------------------------------------------------- -->
<!-- Menu Bar Demo                                        -->
<!--                                                      -->
<!-- Copyright 2000 by Mike Hall                          -->
<!-- Please see http://www.brainjar.com for terms of use. -->
<!-- ---------------------------------------------------- -->
// Determine browser and version.

function Browser() {

  var ua, s, i;

  this.isIE    = false;  // Internet Explorer
  this.isNS    = false;  // Netscape
  this.isMO    = false;  // Mozilla

  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Mozilla";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isMO = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }


  // Treat any other "Gecko" browser as NS 6.1.
  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new Browser();

// currently active button.
var activeButton = null;


if (browser.isIE)
  document.onmousedown = pageMousedown;
if (browser.isNS)
  document.addEventListener("mousedown", pageMousedown, true);

function pageMousedown(event) {

  var el;

  // If there is no active menu, exit.
  if (!activeButton)
    return;

  // Find the element that was clicked on.
  if (browser.isIE)
    el = window.event.srcElement;
  if (browser.isNS)
    el = (event.target.className ? event.target : event.target.parentNode);

  // If the active button was clicked on, exit.
  if (el == activeButton)
    return;

  // If the element clicked on was not a menu button or item, close the
  // active menu.
 if (el.className != "menuButton"  && el.className != "menuItem" &&
      el.className != "menuItemSep" && el.className != "menu")
  resetButton(activeButton);
}

function buttonClick(button, menuName) {

  // Blur focus from the link to remove that annoying outline.
  button.blur();

  // Associate the named menu to this button if not already done.
  if (!button.menu){
    button.menu = document.getElementById(menuName);
  }



  // Reset the currently active button, if any.
  if (activeButton && activeButton != button)
    resetButton(activeButton);

  // Toggle the button's state.
  if (button.isDepressed)
    resetButton(button);
  else
    depressButton(button);

  return false;
}

//3.ebene
function buttonClick2(button, menuName) {

//alle anderen deaktivieren

//var el;

//Find the element that was clicked on.
//if (browser.isIE)
//   el = window.event.srcElement;
//if (browser.isNS)
//   el = (event.target.className ? event.target : event.target.parentNode);

//if ( el.className == "menuItem")
//resetButton(activeButton);

  // Blur focus from the link to remove that annoying outline.
 button.blur();

  // Associate the named menu to this button if not already done.
  if (!button.menu)
    button.menu = document.getElementById(menuName);

  // Toggle the button's state.
  depressButton2(button);

  return false;
}




function buttonMouseover(button, menuName) {

  // If any other button menu is active, deactivate it and activate this one.
  // Note: if this button has no menu, leave the active menu alone.
  if (activeButton && activeButton != button) {
    resetButton(activeButton);
    if (menuName)
      buttonClick(button, menuName);
  }
}

//BI- 3.Ebene
function buttonMouseover2(button, menuName) {

  // If any other button menu is active, deactivate it and activate this one.
  // Note: if this button has no menu, leave the active menu alone.

  if (activeButton && activeButton != button) {
    //resetButton(activeButton);
    if (menuName)
      buttonClick2(button, menuName);
  }
}

function depressButton(button) {

      var oItem = document.getElementsByTagName("div");
      if (oItem!=null) {
          for (i=0; i<oItem.length; i++){
            if(document.getElementsByTagName("div")[i].className =="menu"){

                 //document.getElementsByTagName("div")[i].style.display="none";
                   document.getElementsByTagName("div")[i].style.visibility="hidden";


            }
          }
      }


  var w, dw, x, y;

  // Change the button's style class to make it look like it's depressed.

  //button.className = "menuButtonActive";
  
  // For IE, set an explicit width on the first menu item. This will
  // cause link hovers to work on all the menu's items even when the
  // cursor is not over the link's text.

  if (browser.isIE && !button.menu.firstChild.style.width) {
    w = button.menu.firstChild.offsetWidth;
    button.menu.firstChild.style.width = w + "px";
    dw = button.menu.firstChild.offsetWidth - w;
    w -= dw;
    button.menu.firstChild.style.width = w + "px";
  }

  // Position the associated drop down menu under the button and
  // show it. Note that the position must be adjusted according to
  // browser, styling and positioning.

  x = getPageOffsetLeft(button); 
  y = getPageOffsetTop(button) + button.offsetHeight;
  //Positionierung des Aufklappmenues der 2.Ebene
  if (browser.isIE) {
    //x += 2;
    //y += 2;
    x += -1;
    y += 2;
  }else if (browser.isNS && browser.version < 6.1){
    y--;
  }else{
    x += -1;
    y += +5;
  }

  // Position and show the menu.

  //BI
  if (button.menu){
     button.menu.style.left = x + "px";
     button.menu.style.top  = y + "px";
     button.menu.style.visibility = "visible";
  
     // Set button state and let the world know which button is
     // active.
     button.isDepressed = true;
     }
  activeButton = button;
}

//BI: Hinzufuegen 3.Ebene
function depressButton2(button) {

  //Alle bisher aufgeklappten Untermenues ausblenden
  var oItem = document.getElementsByTagName("div");
  
  if (oItem!=null) {
     for (i=0; i<oItem.length; i++){
            if(document.getElementsByTagName("div")[i].className =="submenu"){
                   document.getElementsByTagName("div")[i].style.visibility="hidden";
            }
      }//Ende for
  }//Ende if

  var w, dw, x, y;

  // Change the button's style class to make it look like it's depressed.

  //button.className = "menuButtonActive";

  // For IE, set an explicit width on the first menu item. This will
  // cause link hovers to work on all the menu's items even when the
  // cursor is not over the link's text.

  if (browser.isIE && !button.menu.firstChild.style.width) {
    w = button.menu.firstChild.offsetWidth;
    button.menu.firstChild.style.width = w + "px";
    dw = button.menu.firstChild.offsetWidth - w;
    w -= dw;
    button.menu.firstChild.style.width = w + "px";
  }

  // Position the associated drop down menu under the button and
  // show it. Note that the position must be adjusted according to
  // browser, styling and positioning.

  x = getPageOffsetLeft(button);
  y = getPageOffsetTop(button) + button.offsetHeight;
  if (browser.isIE) {
    //x += -1;
    //y += 1;

    x += +133;
    y += -19;
  }else if (browser.isNS && browser.version < 6.1){
    y--;
  }else{
    x += +131;
    y += -19;
  }


  // Position and show the menu.

  button.menu.style.left = x + "px";
  button.menu.style.top  = y + "px";
  button.menu.style.visibility = "visible";

  // Set button state and let the world know which button is
  // active.

  button.isDepressed = true;
  activeButton = button;
}


function resetButton(button) {

  // Restore the button's style class.
 //button.className = "menuButton";
 

  // Hide the button's menu.
  if (button.menu)
    button.menu.style.visibility = "hidden";
    
  // Set button state and clear active menu global.
  button.isDepressed = false;
  activeButton = null;
}



function getPageOffsetLeft(el) {

  // Return the true x coordinate of an element relative to the page.
  return el.offsetLeft + (el.offsetParent ? getPageOffsetLeft(el.offsetParent) : 0);
}

function getPageOffsetTop(el) {

  // Return the true y coordinate of an element relative to the page.
  return el.offsetTop + (el.offsetParent ? getPageOffsetTop(el.offsetParent) : 0);
}
