//
// Erweiterte Behaviour-Funktionalität für navMain.
//
// Initialisierung:
// - Finden der id des li-Eintrages in ul.navMain mit class="selected"
// - Setzen des Events onmouseover auf alle ul.navMain>li
// - Setzen des Events onmouseout auf ul.navMain
//
function navFindTopSelected() {
  var navMain = document.getElementById('navMain');
  var id = 0;
  for (var i = 0; i < navMain.childNodes.length; i++) {
    var li = navMain.childNodes[i];
    if (li.nodeName== 'LI') {
      if (li.className == 'selected') {
        id = li.id;
      }
      if (li.addEventListener) {
        // Firefox & Co.
        li.addEventListener('mouseover', navSetSelected, false);
      } else if (li.attachEvent) {
        // IE
        li.attachEvent("onmouseover", navSetSelected);
      }
    }
  }
  if (li.addEventListener) {
    // Firefox & Co.
    navMain.addEventListener('mouseout', navResetSelected, false);
  } else if (li.attachEvent) {
    // IE
    navMain.attachEvent("onmouseout", navResetSelected);
  }
  return id;
}
//
// Initialisierung ausführen:
//
var navTopSelected = navFindTopSelected();
//
// Code für: ul.navMain > li:onmouseover
//
// Setzen von class auf alle LI-Kinder von ul.navMain:
// - class="selected" wenn lfdId gleich id aus evt,
// - class="open" wenn id ungleich id aus evt
//                aber id gleich navTopSelected
// - class="" sonst
//
function navSetSelected(evt) {
  //
  // Suchen des obersten LI-Objektes anhand des event-
  // auslösenden Objektes aus evt-Array:
  // - "target" for Mozilla, Netscape, Firefox et al.
  // - "srcElement" for IE
  //
  var obj = evt[evt['target'] ? 'target' : 'srcElement'];
  while (obj.parentNode.id != 'navMain') {
    obj = obj.parentNode;
  }
  var evtId = obj.id;
  var navMain = document.getElementById('navMain');
  for (var i = 0; i < navMain.childNodes.length; i++) {
    var li = navMain.childNodes[i];
    if (li.nodeName == 'LI') {
      var newClass = '';
      var display = '';
      if (li.id == evtId) {
        newClass = 'selected';
        display = 'block';
      } else if (li.id == navTopSelected) {
        newClass = 'open';
      }
      li.className = newClass;
      //
      // li.childNodes['UL'].style['display'].value = display;
      //
      for (var j = 0; j < li.childNodes.length; j++) {
        if (li.childNodes[j].nodeName == 'UL') {
          li.childNodes[j].style.display.value = display;
        }
      }
    }
  }
}
//
// Code für: ul.navMain:onmouseout
//
// Rücksetzen von class="selected" auf navTopSelected, auf
// class="" bei allen anderen
//
function navResetSelected() {
  var navMain = document.getElementById('navMain');
  for (var i = 0; i < navMain.childNodes.length; i++) {
    var li = navMain.childNodes[i];
    if (li.nodeName == 'LI') {
      var newClass = '';
      if (li.id == navTopSelected) {
        newClass = 'selected';
      }
      li.className = newClass;
    }
  }
}
