//
// (c) 2006 Stefan Ruettinger
// http://www.homepage-erfolg.de/
//
var agt      = navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_ie   = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie5  = (is_ie && (is_major == 5) && (agt.indexOf("msie 5")!=-1) );

var div_se, div_it, div_ifm, div_ifl, div_ifr, div_ik1, div_ik2, div_mop, div_mlp, div_ml, div_mle, div_mllo, div_mllu, div_fo;
var aSX, zielSX, startSX;
var aIX, zielIX, startIY;
var aMY, zielMY, startMY;
var aNY;
var gS, gI, gM, gN, gP;
var sS, sI, sM, sN, sP;
var rN, rP;
var inSAni = false;        // S = Seiten, I = Icons, M = Menu, N = Nav.links
var inIAni = false;
var inMAni = false;
var inNAni = false;
var inPAni = false;
var inLoad = false;
var aIcon, aMenu, aPage, alPage;
var nIcon, nMenu, nPage;
var fX, fY, fW;
var fText = "";
var fToShow  = -1;
var fToClear = -1;



if (document.all && !document.getElementById) {
  document.getElementById = function( id) {
    return document.all[id];
  }
}

function init( icon, menu, page, allPages) {
  aIcon = icon; nIcon = icon;
  aMenu = menu; nMenu = menu;
  aPage = page; nPage = page;
  alPage = allPages;

  // Konstanten
  gS = 30; gI = 30; gM = 30; gN = 25; gP = 25;
  sS =  1; sI =  1; sM =  1; sN =  8; sP =  2;
  
  // Bereiche merken
  div_it   = document.getElementById('itext');
  div_ik1  = document.getElementById('ikopfh1');
  div_ik2  = document.getElementById('ikopfh2');
  div_ifm  = document.getElementById('ifussm');
  div_ifl  = document.getElementById('ifussl');
  div_ifr  = document.getElementById('ifussr');
  div_mop  = document.getElementById('mopfeil');
  div_mlp  = document.getElementById('mlpfeil');
  div_ml   = document.getElementById('menulinks');
  div_mle  = document.getElementById('mleintraege');
  div_mllo = document.getElementById('ilinkslo');
  div_mllu = document.getElementById('ilinkslu');
  div_fo   = document.getElementById('Flyover');

  // Versteckten Bereich für Berechung der Seitenzahlen anlegen
  var t_se = document.createElement( "div");
  t_se.setAttribute( "id", "seiten");
  document.getElementsByTagName("body")[0].appendChild( t_se);
  if (is_ie5) { div_se = document.all.seiten; } else { div_se = document.getElementById('seiten'); }

  // Position im linken Rand des Inhalts festlegen
  setTop( div_mllu, 167+div_mle.offsetHeight);
  
  // Position der Seitenzahlen festlegen
  aSX = setPageContent( page, allPages);
  setLeft( div_ifm, aSX);

  // Positionen der Pfeile für Icons und Menü
  aIX = getLeft( div_mop);
  aMY = getTop( div_mlp);
}

function link( icon, menu, page) {
  nIcon = icon;
  nMenu = menu;
  nPage = page;

  if (nIcon != aIcon) {
    icon( nIcon, 1);
  }
  else if (nMenu != aMenu) {
    menu( nMenu, 1);
  }
  else if (nPage != aPage) {
    page( nPage);
  }
}

function icon( name, fromLink) {
  // Nichts tun wenn schon noch eine Animation läuft
  if (inSAni || inIAni || inMAni || inNAni || inPAni || inLoad) {
    return;
  }

  // Neues Icon und neuen Eintrag in linker Navigation setzen
  if (!fromLink) {
    nIcon = name;
    if (nIcon == "homepage")  { nMenu = "startseite"; }
    if (nIcon == "hardware")  { nMenu = "fernseher"; }
    if (nIcon == "software")  { nMenu = "betriebssystem"; }
    if (nIcon == "tvcentral") { nMenu = "setup"; }
    if (nIcon == "impressum") { nMenu = "impressum"; }
    nPage = 1;
  }

  var icons = document.getElementById('moicons');
  var i = 0;
  var j = 0;

  // Alle Icons (Navigation oben) durchgehen
  var icon = icons.firstChild;
  while (icon) {
    if (icon.className == "moicon" || icon.className == "moiconsel") {
      // Text des Icons bestimmen
      var eintrag = icon.innerHTML;
      var sh      = eintrag.toLowerCase();
      var of = 4;

      // <br> kommt direkt vor dem Text
      var p1 = sh.indexOf( "<br>");

      // Opera 9 wandelt <br> nach <br/>
      if (p1 == -1) { p1 = sh.indexOf( "<br/>"); of = 5; }

      // Erstes Tag nach dem Text ist ein "</a>" oder "<br>"
      var p2 = sh.indexOf( "</a>", p1+1);
      if (p2 == -1) {
        p2 = sh.indexOf( "<br>", p1+1);
      }
      if (p2 == -1) {
        p2 = sh.indexOf( "<br/>", p1+1);
      }

      var text = eintrag.substring( p1+of, p2);
      var img  = sh.substring( p1+of, p2);

      // Markierung für unterstrichenes Zeichen entfernen
      img = img.replace( /\<u\>/, "");
      img = img.replace( /\<\/u\>/, "");

      // Links und Accesskeys definieren
      var link, ak;
      if (img == "homepage")  { link = "homepage-startseite-1.html"; text = "Home<u>p</u>age"; ak = "p"; }
      if (img == "hardware")  { link = "hardware-fernseher-1.html"; text = "<u>H</u>ardware"; ak = "h"; }
      if (img == "software")  { link = "software-betriebssystem-1.html"; text = "<u>S</u>oftware"; ak = "s"; }
      if (img == "tvcentral") { link = "tvcentral-setup-1.html"; text = "<u>T</u>VCentral"; ak = "t"; }
      if (img == "impressum") { link = "impressum-impressum-1.html"; text = "<u>I</u>mpressum"; ak = "i"; }

      // Selektiertes Icon finden
      if (img == name) {
        icon.innerHTML = '<img src="'+img+'.gif" alt="" width="50" height="50" hspace="6" vspace="3"><br>'+text+'<br>';
        icon.className = 'moiconsel'; 
        j = i;
      }
      else {
        icon.innerHTML = '<a href="'+link+'" onClick="icon(\''+img+'\', 0); return false;" accesskey="'+ak+'" tabindex="'+i+'"><img src="'+img+'.gif" alt="" width="50" height="50" border="0" hspace="6" vspace="3"><br>'+text+'</a>';
        icon.className = 'moicon';
      }
      i++;
    }
    icon = icon.nextSibling;
  }

  // Definitionen für Animation des Pfeils unter den Icons
  inIAni = true;
  startIX = aIX;
  zielIX  = 262 + (j*72);

  // "loading" anzeigen, Überschriften löschen
  div_it.innerHTML = '<div id="space" style="height: 230px; display: block;">&nbsp;</div><p><center><img src="hourglass.gif" alt="Bitte warten..." width=44 height=46><br>Seite wird geladen...<br>Bitte haben Sie einen kleinen Augenblick Geduld!</center></p>';
  div_ik1.innerHTML = "";
  div_ik2.innerHTML = "";

  // Menu und Fusszeile entfernen
  aNY = 10; rN = 1; inNAni = true;
  aPY =  0; rP = 1; inPAni = true;
  setTimeout( "moveMenu()", gN);
  setTimeout( "moveFuss()", gP);
  setVisibility( div_mlp, "hidden");
  setVisibility( div_ifl, "hidden");
  setVisibility( div_ifr, "hidden");

  var toLoad = "content-" + nIcon.toLowerCase() + "-" + nMenu.toLowerCase() + "-" + nPage + ".html";
  load( toLoad);
}

function menu( name, fromLink) {
  // Nichts tun wenn schon noch eine Animation läuft
  if (inSAni || inIAni || inMAni || inNAni || inPAni || inLoad) {
    return;
  }

  // neue Werte für Icon, Menu, Seite setzen
  if (!fromLink) {
    nIcon = aIcon;
    nMenu = name;
    nPage = 1;
  }

  // Position des selektierten Eintrags im Menu bestimmen
  var j = setMenuPosition( name);

  // Definitionen für Animation des Pfeils im linken Menu
  inMAni = true;
  startMY = aMY;
  zielMY  = 174 + (j*36);

  // "loading" anzeigen, Überschriften löschen
  div_it.innerHTML = '<div id="space" style="height: 230px; display: block;">&nbsp;</div><p><center><img src="hourglass.gif" alt="Bitte warten..." width=44 height=46><br>Seite wird geladen...<br>Bitte haben Sie einen kleinen Augenblick Geduld!</center></p>';
  div_ik1.innerHTML = "";
  div_ik2.innerHTML = "";

  // Fusszeile entfernen
  aPY = 0; rP = 1; inPAni = true;
  setTimeout( "moveFuss()", gP);
  setVisibility( div_ifl, "hidden");
  setVisibility( div_ifr, "hidden");

  var toLoad = "content-" + nIcon.toLowerCase() + "-" + nMenu.toLowerCase() + "-" + nPage + ".html";
  load( toLoad);
}

function createMenu( str) {
  var i = 0;
  var p1 = p2 = p3 = p4 = p5 = 0;
  var p2 = 0;
  var p3 = 0;
  var tab = 0;
  var cls  = "";
  var html = "";

  // Menueintrag und Level finden
  p2 = str.indexOf( ",", p1);
  while (p2 > 0) {
    p3 = str.indexOf( ";", p1);
    var t = str.substring( p1, p2);
    var l = str.substring( p2+1, p3);

    // Accesskey holen
    p4 = t.indexOf( "<u>");
    p5 = t.indexOf( "</u>");
    var ak = t.substring( p4+3, p5);

    // Markierung für unterstrichenes Zeichen entfernen
    var m = t.replace( /\<u\>/, "");
        m = m.replace( /\<\/u\>/, "");
        m = m.toLowerCase();

    // Eintrag setzen
    if (m == nMenu) {
      cls = "mleintragsel"+l;
      html = html + '<div class="'+cls+'">'+t+'</div>';
    }
    else {
      cls = "mleintrag"+l;
      tab = i+10;

      html = html + '<div class="'+cls+'"><a href="'+nIcon+'-'+m+'-'+nPage+'.html" onClick="menu(\''+m+'\', 0); return false;" accesskey="'+ak+'" tabindex="'+tab+'">'+t+'</a></div>';
    }

    // Nächster Eintrag
    p1 = p3+1;
    p2 = str.indexOf( ",", p1);
  }

  return html;
}

function setMenuPosition( name) {
  var i = 0;
  var j = 0;
  var t = "";
  var l = 1;
  var tab = 11;     // tabindex
  var items = document.getElementById('mleintraege');
  var item  = items.firstChild;

  // Allen Einträge im Menu durchgehen
  while (item) {
    if (item.className == "mleintrag1" || item.className == "mleintrag2" || item.className == "mleintragsel1" || item.className == "mleintragsel2") {
      if (item.className == "mleintrag2" || item.className == "mleintragsel2") {
        l = 2;
      }

      var eintrag = item.innerHTML;

      // Text finden (steht zwischen ">" und nächstem "<"
      var p1 = eintrag.indexOf( ">");
      var p2 = eintrag.indexOf( "</a>", p1+1);

      // Selektiertes Item hat kein ">" -> Text ist alles
      if (p2 == -1) {
        t = eintrag;
      }
      else {
        t = eintrag.substring( p1+1, p2);
      }

      var m = t.toLowerCase();

      // Accesskey holen
      var p3 = m.indexOf( "<u>");
      var p4 = m.indexOf( "</u>");
      var ak = m.substring( p3+3, p4);

      // Markierung für unterstrichenes Zeichen entfernen
      m = m.replace( /\<u\>/, "");
      m = m.replace( /\<\/u\>/, "");

      // Eintrag setzen
      if (m == name) {
        item.innerHTML = t;
        item.className = 'mleintragsel'+l; 
        j = i;
      }
      else {
        tab = i+10;
        item.innerHTML = '<a href="'+nIcon+'-'+m+'-'+nPage+'.html" onClick="menu(\''+m+'\', 0); return false;" accesskey="'+ak+'" tabindex="'+tab+'">'+t+'</a>';
        item.className = 'mleintrag'+l;
      }
      i++;
    }
    item = item.nextSibling;
  }

  return j;
}

function page( a) {
  // Nichts tun wenn schon noch eine Animation läuft
  if (inSAni || inIAni || inMAni || inNAni || inPAni || inLoad) {
    return;
  }

  // neue Werte für Icon, Menu, Seite setzen
  nIcon = aIcon;
  nMenu = aMenu;
  nPage = a;

  // Neue x-Position der Seitenzahlen bestimmen
  zielSX = setPageContent( a, alPage);

  // Definitionen für Animation der Seitenzahlen
  inSAni  = true;
  startSX = aSX;

  // "loading" anzeigen, Überschriften löschen
  div_it.innerHTML = '<div id="space" style="height: 230px; display: block;">&nbsp;</div><p><center><img src="hourglass.gif" alt="Bitte warten..." width=44 height=46><br>Seite wird geladen...<br>Bitte haben Sie einen kleinen Augenblick Geduld!</center></p>';
  div_ik1.innerHTML = "";
  div_ik2.innerHTML = "";

  // Seitenzahlen verschieben
  setTimeout( "movePages()", gS);

  var toLoad = "content-" + nIcon.toLowerCase() + "-" + nMenu.toLowerCase() + "-" + nPage + ".html";
  load( toLoad);
}

function setPageContent( a, n) {
  var i = 1;     // Seitenzahl
  var tab = 91;  // tabindex
  var s1 = "";   // Bereich links der ausgewählten Seite
  var s2 = "";   // Bereich rechts der ausgewählten Seite
  var x = 0;     // x-Position der Seitenzahlen

  while (i < a) {
    // Bereich links der ausgewählten Seite
    tab = i+90;
    s1 = s1 + '<a href="'+nIcon+'-'+nMenu+'-'+i+'.html" onClick="page('+i+'); return false;" accesskey="'+i+'" tabindex="'+tab+'">'+i+'</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;';
    i++;
  }
  i++;
  while (i <= n) {
    // Bereich rechts der ausgewählten Seite
    tab = i+90;
    s2 = s2 + '&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a href="'+nIcon+'-'+nMenu+'-'+i+'.html" onClick="page('+i+'); return false;" accesskey="'+i+'" tabindex="'+tab+'">'+i+'</a>';
    i++;
  }

  // Breitenberechnung für Seitenzahlen (Fusszeile)
  div_se.innerHTML = s1;
  w1 = div_se.offsetWidth;
  div_se.innerHTML = '<b><u>'+a+'</u></b>';
  w2 = div_se.offsetWidth;

  // Neue Position der Seitenzahlen in der Fusszeile
  x = 382 - w1 - (w2/2);
  aPage = a;

  // Inhalt der Fusszeile (Seiten) setzen
  div_ifm.innerHTML = s1 + '<b><u>'+a+'</u></b>' + s2;

  // Pfeile rechts / links sichtbar?
  if (aPage == 1) {
    setVisibility( div_ifl, "hidden");
  }
  else {
    var pPage = aPage-1;
    div_ifl.innerHTML = '<a href="'+nIcon+'-'+nMenu+'-'+pPage+'.html" onClick="page('+pPage+'); return false;"><b>&lt;</b></a>';
    setVisibility( div_ifl, "visible");
  }
  if (aPage == n) {
    setVisibility( div_ifr, "hidden");
  }
  else {
    var fPage = aPage+1;
    div_ifr.innerHTML = '<a href="'+nIcon+'-'+nMenu+'-'+fPage+'.html" onClick="page('+fPage+'); return false;"><b>&gt;</b></a>';
    setVisibility( div_ifr, "visible");
  }

  return x;
}

// Seitenzahlen verschieben
function movePages() {
  if (inSAni) {
    // Abstand vom Start- und Zielpunkt
    var d1 = aSX - zielSX;
    var d2 = aSX - startSX;

    // Geschwindigkeit der Animation bestimmen und setzen
    var cs = calculateSpeed( d1, d2);
    sS = cs[0];
    gS = cs[1];

    // Animation "nach links"
    if (aSX > zielSX) {
      aSX -= sS;
      if (aSX < zielSX) {
        aSX = zielSX;
      }
    }
    // Animation "nach rechts"
    else {
      aSX += sS;
      if (aSX > zielSX) {
        aSX = zielSX;
      }
    }

    // Neue Position setzen
    setLeft( div_ifm, aSX);

    // am Ziel?
    if (aSX == zielSX) {
      inSAni = false;
    }
    else {
      setTimeout( "movePages()", gS);
    }
  }
}

// Menu "ein- und ausfahren"
function moveMenu() {
  if (inNAni) {
    // Neue Position bestimmen und setzen
    // rN enthält die Richtung (1, -1)
    aNY += (sN * rN);
    setLeft( div_ml, aNY);

    // Animation "nach rechts"
    if (rN == 1) {
      // Menu-Rand zeigen
      if (aNY == 178) {
        setVisibility( div_mllo, "hidden");
        setVisibility( div_mllu, "hidden");
      }
      // am Ende?
      if (aNY <= 200) {
        setTimeout( "moveMenu()", gN);
      }
      else {
        inNAni = false;
        if (inIAni) {
          setTimeout( "moveIconArrow()", gI);
        }
      }
    }

    // Animation "nach links"
    if (rN == -1) {
      // Menu-Rand zeigen
      if (aNY == 178) {
        setVisibility( div_mllo, "visible");
        setVisibility( div_mllu, "visible");
      }
      // am Ende?
      if (aNY > 10) {
        setTimeout( "moveMenu()", gN);
      }
      else {
        // Pfeil wieder anzeigen
        setVisibility( div_mlp, "visible");
        inNAni = false;
      }
    }
  }
}

// Fusszeile nach oben/unten bewegen
function moveFuss() {
  if (inPAni) {
    // Neue Position bestimmen und setzen
    // rP enthält die Richtung (1, -1)
    aPY += (sP * rP);
    setTop( div_ifm, aPY);

    // fertig?
    if (rP == 1) {
      if (aPY <= 20) {
        setTimeout( "moveFuss()", gP);
      }
      else {
        inPAni = false;
        if (inMAni && !inIAni) {
          setTimeout( "moveMenuArrow()", gI);
        }
      }
    }

    if (rP == -1) {
      if (aPY > 0) {
        setTimeout( "moveFuss()", gP);
      }
      else {
        // Pfeile sichtbar machen wenn notwendig
        if (aPage > 1) {
          setVisibility( div_ifl, "visible");
        }
        if (aPage < alPage) {
          setVisibility( div_ifr, "visible");
        }
        inPAni = false;
      }
    }
  }
}

function moveMenuArrow() {
  if (inMAni) {
    // Abstand von Start- und Zielposition
    var d1 = aMY - zielMY;
    var d2 = aMY - startMY;

    // Geschwindigkeit der Animation
    var cs = calculateSpeed( d1, d2);
    sM = cs[0];
    gM = cs[1];

    // Pfeil nach oben bewegen
    if (aMY > zielMY) {
      aMY -= sM;
      if (aMY < zielMY) {
        aMY = zielMY;
      }
    }
    // Pfeil nach unten bewegen
    else {
      aMY += sM;
      if (aMY > zielMY) {
        aMY = zielMY;
      }
    }

    // Neue Position setzen
    setTop( div_mlp, aMY);

    // fertig?
    if (aMY == zielMY) {
      inMAni = false;
    }
    else {
      setTimeout( "moveMenuArrow()", gM);
    }
  }
}

function moveIconArrow() {
  if (inIAni) {
    // Abstand von Start- und Zielposition
    var d1 = aIX - zielIX;
    var d2 = aIX - startIX;

    // Geschwindigkeit der Animation
    var cs = calculateSpeed( d1, d2);
    sI = cs[0];
    gI = cs[1];

    // Pfeil nach links bewegen
    if (aIX > zielIX) {
      aIX -= sI;
      if (aIX < zielIX) {
        aIX = zielIX;
      }
    }
    // Pfeil nach rechts bewegen
    else {
      aIX += sI;
      if (aIX > zielIX) {
        aIX = zielIX;
      }
    }

    // Neue Position setzen
    setLeft( div_mop, aIX);

    // fertig?
    if (aIX == zielIX) {
      inIAni = false;
    }
    else {
      setTimeout( "moveIconArrow()", gI);
    }
  }
}

function calculateSpeed( d1, d2) {
  var s, g;

  // Abstand vom Start und zum Ziel
  if (d1 < 0) {
    d1 = -d1;
  }
  if (d2 < 0) {
    d2 = -d2;

  }

  // Je näher vom Start oder zum Ziel, desto langsamer bewegen
  // Dazwischen Geschwindigkeit steigern (größere Schritte "s")
  if (d1 < 6 || d2 < 6) {
    s = 1;
    g = 30;
  }
  else if (d1 < 16 || d2 < 16) {
    s = 2;
    g = 30;
  }
  else if (d1 < 36 || d2 < 36) {
    s = 3;
    g = 30;
  }
  else if (d1 < 66 || d2 < 66) {
    s = 4;
    g = 30;
  }
  else {
    s = 5;
    g = 25;
  }

  return new Array( s, g);
}

function getLeft( div) {
  var x;

  if (is_ie5) { x = div.style.pixelLeft; }
  else        { x = parseInt( div.style.left); }

  return x;
}

function setLeft( div, x) {
  if (is_ie5) { div.style.pixelLeft = x; }
  else        { div.style.left = x + "px"; }
}

function getTop( div) {
  var y;

  if (is_ie5) { y = div.style.pixelTop; }
  else        { y = parseInt( div.style.top); }

  return y;
}

function setTop( div, y) {
  if (is_ie5) { div.style.pixelTop = y; }
  else        { div.style.top = y + "px"; }
}

function getHeight( div) {
  var h;

  if (is_ie5) { h = div.style.pixelHeight; }
  else        { h = parseInt( div.style.height); }

  return h;
}

function setHeight( div, h) {
  if (is_ie5) { div.style.pixelHeight = h; }
  else        { div.style.height = h + "px"; }
}

function getVisibility( div) {
  return div.style.visibility;
}

function setVisibility( div, v) {
  div.style.visibility = v;
}

function setDisplay( div, d) {
  div.style.display = d;
}

// URL laden
function load( url) {
  inLoad = true;

  xmlHttp = getXmlHttp();
  xmlHttp.open( "GET", url);
  xmlHttp.onreadystatechange = function() {
    try {
      if (xmlHttp.readyState == 4) {
        inLoa = false;

        // 200 = Seite geladen ohne Fehler
        if (xmlHttp.status == 200) {
          loaded();
        }
      }
    }
    catch (ex) {
    }
  }

  xmlHttp.send( null);
}

function loaded() {
  if (inSAni || inIAni || inMAni || inNAni || inPAni) {
    setTimeout( "loaded()", 250);
  }
  else {
    setTimeout( "showContent()", 500);
  }
}

function showContent() {
  inLoad = false;

  // parse response
  var str = xmlHttp.responseText;
  var p1  = 0;
  var p2  = str.indexOf( "|");
  var pPage, pAPages, pTitle1, pTitle2, pMenu, pContent;

  if (p2 != -1) {
    pPage = str.substring( p1, p2);
    p1    = p2+1;
    p2    = str.indexOf( "|", p1);
    if (p2 != -1) {
      pAPages = str.substring( p1, p2);
      p1      = p2+1;
      p2      = str.indexOf( "|", p1);
      if (p2 != -1) {
        pTitle1 = str.substring( p1, p2);
        p1      = p2+1;
        p2      = str.indexOf( "|", p1);
        if (p2 != -1) {
          pTitle2 = str.substring( p1, p2);
          p1      = p2+1;
          p2      = str.indexOf( "|", p1);
          if (p2 != -1) {
            pMenu    = str.substring( p1, p2);
            pContent = str.substring( p2+1);
          }
        }
      }
    }
  }

  // Überschriften, Text, linkes Menu, Fusszeile setzen
  div_ik1.innerHTML = pTitle1;
  div_ik2.innerHTML = pTitle2+" ("+nPage+")";
  div_it.innerHTML = pContent;
  aSX = setPageContent( nPage, pAPages);
  setLeft( div_ifm, aSX);

  // Neues Icon?
  if (aIcon != nIcon) {
    // Neues Menu setzen
    div_mle.innerHTML = createMenu( pMenu);
    var pos = setMenuPosition( nMenu);
    setTop( div_mlp, 174+(pos*36));
    setTop( div_mllu, 167+div_mle.offsetHeight);

    // Menu und Fusszeile wieder anzeigen
    rN = -1; rP = -1;
    inNAni = true;
    inPAni = true;
    setTimeout( "moveMenu()", gN+500);
    setTimeout( "moveFuss()", gP);

    // Neue aktuelle Werte setzen
    aMY   = 174+(pos*36);
    aIcon = nIcon;
    aMenu = nMenu;
    aPage = nPage;
    alPage = pAPages;
  }
  else {
    // Neues Menu, gleiches Icon?
    if (aMenu != nMenu) {
      // Fusszeile wieder anzeigen
      rP = -1;
      inPAni = true;
      setTimeout( "moveFuss()", gP+500);

      // Neue aktuelle Werte setzen
      aMenu = nMenu;
      aPage = nPage;
      alPage = pAPages;
    }
    else {
      // Neue Seite
      if (aPage != nPage) {
        aPage = nPage;
      }
    }
  }
}

function getXmlHttp() {
  try {
    if (window.XMLHttpRequest) {
      return req = new XMLHttpRequest();
    }
    if (window.ActiveXObject) {
      return new ActiveXObject( getControlPrefix() + ".XmlHttp");
    }
  }
  catch (ex) {}
}

function getControlPrefix() {
  if (getControlPrefix.pr)
    return getControlPrefix.pr;

  var ps = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
  var o;
  for (var i = 0; i < ps.length; i++) {
    try {
      o = new ActiveXObject( ps[i] + ".XmlHttp");
      return getControlPrefix.pr = ps[i];
    }
    catch (ex) {}
  }
}

function showFlyover()
{
  if (fToClear != -1) {
    window.clearTimeout( fToClear);
  }

  div_fo.innerHTML = fText;
  setVisibility( div_fo, "visible");
  setDisplay( div_fo, "");
  setLeft( div_fo, fX);
  setTop( div_fo, fY - div_fo.offsetHeight);

  fToClear = setTimeout( "removeFlyover()", 8000);
  fToShow  = -1;
}

function removeFlyover()
{
  if (fToClear != -1) {
    window.clearTimeout( fToClear);
  }
  if (fToShow  != -1) {
    window.clearTimeout( fToShow);
  }

  fToClear = -1;
  fToShow  = -1;

  setVisibility( div_fo, "hidden");
  setDisplay( div_fo, "none");
}

function Flyover( current, text)
{
  fText = text;

  fX = current.offsetWidth  - 18;
  fY = current.offsetHeight - 18;

  var i = 1;
  while (current.tagName.toLowerCase() != "body") {
    if (is_ie5 || i != 2) {
      fX += current.offsetLeft;
      fY += current.offsetTop;
    }
    i++;

    if (current.parentNode) {
      current = current.parentNode;
    }
    else {
      current = current.parentElement;
    }
  }

  if (fToShow != -1) {
    window.clearTimeout( fToShow);
  }
  fToShow = setTimeout( "showFlyover()", 500);
}

