  BrowserTyp = window.navigator.userAgent;
  BrowserVers = parseInt(BrowserTyp.charAt(BrowserTyp.indexOf("/")+1),10);
  IsMSIE = BrowserTyp.indexOf("MSIE") > 0;
  IsW3C = ((document.getElementById) && !(IsMSIE&&BrowserVers<6)) ? true : false;

  // Zusammenfassung mehrerer Ebenen
  var aEbenenGruppen = new Array();
  // ausgewählte Ebene+Aktion global, damit MouseEvent darauf zugreifen kann
  var globalEbene;
  var globalAktion;
  // globale variable für Timeout bei MouseOut
  var aktiv;
  
  // MouseOver Funktion für Ebene 2 gebuendelt
  function MausOver(ebeneID)
  {
    // MouseMove Event zulassen
    SetMouseEvent(1);

    // alle Ebenen unsichtbar
    ShowHideAll('eAlle', '0');
    
    // Ebene X einblenden
    ebene = "e" + ebeneID;
    ShowHide(ebene, "1");
    
    // Farbigkeit der Tabellentags aendern
    change_to('#E4ECEB', ebeneID);
  }

  // MouseOut Funktion für Ebene 2 gebuendelt
  function MausOut(ebeneID)
  {
    // MouseMove Event zulassen
    SetMouseEvent(0);

    // Ebene X nach Timeout ausblenden
    ebene = "e" + ebeneID;
    Hide(ebene);
    
    // Farbigkeit der Tabellentags aendern
    change_to('#FDFBF2', ebeneID);
  }

  // Blendet eine Ebene aus(aktion = 0) bzw. ein (aktion = 1)
  function ShowHide(ebene, aktion)
  {
    // Ebene global merken, damit sie mit MouseMove verschoben werden kann
    globalEbene = ebene;

    // timeOut zum unsichtbar machen der Ebene loeschen
    if (aktion == "1")
      window.clearTimeout(aktiv);
    
    if (IsW3C)
    {
      document.getElementById(ebene).style.visibility=(aktion==0)?"hidden":"visible";
      document.getElementById(ebene).style.left = tmpX-30;
    }
    else if(IsMSIE)
    {
      if (document.all.tags("div")[ebene])
      {
        document.all.tags("div")[ebene].style.visibility=(aktion==0)?"hidden":"visible";
        document.all.tags("div")[ebene].style.left = tmpX-30;
      }
    }
    else
    {
      document[ebene].visibility=(aktion==0)?'hide':'show';
      document[ebene].left = tmpX-30;
    }
  }

  // Ausblenden der Ebene über Timeout  
  function Hide(ebene)
  {
    aktiv = window.setTimeout("ShowHide('" + ebene + "', '0')",250);
  }

  // Blendet alle Ebene einer Gruppe ein (aktion=1) bzw. aus (aktion=0)
  function ShowHideAll(gruppe, aktion)
  {
    for(i = 0; i < aEbenenGruppen[gruppe].length; i++)
    {
      ShowHide(aEbenenGruppen[gruppe][i], aktion);
    }
  }

  // Zusammenfassung der max. 5 Menueebenen zu einer Gruppe
  aEbenenGruppen["eAlle"] = new Array( 'e1', 'e2', 'e3', 'e4', 'e5');
 
   //Skript für Mouse-over der Tabellen-Zellen
  function change_to(color, ebeneID)
  {
    if (IsW3C)
    {
      TDID = "over_m" + ebeneID;
      document.getElementById(TDID).style.backgroundColor = color;
    }
    else if(IsMSIE)
    {
      id = eval("over_m" + ebeneID);
      id.style.backgroundColor = color;
    }
    else
    {
      TDID = "over_m" + ebeneID;
      document[TDID].backgroundColor = color;
    }
  }
  
  // Falls es sich um Netscape handelt
  // den MouseMove Event Capturern für Verschiebung der Ebenen
  if (!IsMSIE) document.captureEvents(Event.MOUSEMOVE);
  
  // In welcher Funktion sollen Mausbewegungen
  // behandelt werden?
   document.onmousemove = MausXY;
  
  // Anfangswerte für X und Y definieren
  var tmpX = 0;
  var tmpY = 0;
  
  function SetMouseEvent(aktion)
  {
    globalAktion = aktion;
  }

  function MausXY(e)
  {
    if (IsMSIE)
    {
      // Die Mausposition beim Internet Explorer auslesen
      tmpX = event.clientX + document.body.scrollLeft;
      tmpY = event.clientY + document.body.scrollTop;
    }
    else
    {
      // oder bei Netscape
      tmpX = e.pageX;
      tmpY = e.pageY;
    }  
    
    // Sollte der Netscape negative Werte zurückliefern
    // werden X oder Y auf 0 gesetzt
    if (tmpX < 0){tmpX = 0};
    if (tmpY < 0){tmpY = 0};  
    
    // Die Mausposition in der Statuszeile anzeigen
    if (globalAktion == 1)
    {
      ShowHide(globalEbene, 1);
      // window.status = "X = " + tmpX + " Y = " + tmpY;
    }
    return true;
  }

