var ie_version = 0, ns_version = 0, version = 3, script = 0;

if(navigator.appVersion.substring(0,1) > 3 && navigator.userAgent.indexOf("WebTV") == -1)
  script = 1;

if(navigator.appName == "Netscape") {
  if(navigator.appVersion.substring(0,1) > 3)
    ns_version = 4;
  if(navigator.appVersion.substring(0,1) > 4)
    ns_version = 5;
}
if(navigator.userAgent.indexOf("MSIE") != -1) {
  if(navigator.appVersion.substring(0,1) > 3)
    ie_version = 4;
  if(navigator.userAgent.substr(navigator.userAgent.lastIndexOf("MSIE") + 5, 1) > 4)
    ie_version = 5;
}
if(navigator.userAgent.indexOf("Opera") != -1) {
  ns_version = 0;
  ie_version = 0;
  version = 3;
}
if(ns_version == 4)
  version = 1;
if(ie_version == 4)
  version = 2;
if(ns_version > 4 || ie_version > 4)
  version = 3;

function objekt_setzen(objekt, objekt_x, objekt_y) {
  switch(version) {
  case 1:
    window.document.layers[objekt].pageX = objekt_x;
    window.document.layers[objekt].pageY = objekt_y;
    break;
  case 2:
    window.document.all[objekt].style.left = objekt_x;
    window.document.all[objekt].style.top = objekt_y;
    break;
  case 3:
    window.document.getElementById(objekt).style.left = objekt_x;
    window.document.getElementById(objekt).style.top = objekt_y;
    break;
  }
}

function objekt_anaus(objekt, zustand) {
  switch(version) {
  case 1:
    if(zustand == 0)
      document.layers[objekt].visibility = "hide";
    else
      document.layers[objekt].visibility = "show";
    break;
  case 2:
    if(zustand == 0)
      document.all[objekt].style.visibility = "hidden";
    else
      document.all[objekt].style.visibility = "visible";
    break;
  case 3:
    if(zustand == 0)
      document.getElementById(objekt).style.visibility = "hidden";
    else
      document.getElementById(objekt).style.visibility = "visible";
    break;
  }
}

function objekt_ausschnitt(objekt, oben, rechts, unten, links) {
  switch(version) {
  case 1:
    document.layers[objekt].clip.top = oben;
    document.layers[objekt].clip.left = links;
    document.layers[objekt].clip.bottom = unten;
    document.layers[objekt].clip.right = rechts;
    break;
  case 2:
    document.all[objekt].style.clip = "rect("+oben+" "+rechts+" "+unten+" "+links+")";
    break;
  case 3:
    document.getElementById(objekt).style.clip = "rect("+oben+" "+rechts+" "+unten+" "+links+")";
    break;
  }
}

function getMaus(e) {
  switch(version) {
  case 1:
    maus_x = e.pageX;
    maus_y = e.pageY;
    break;
  case 2:
    maus_x = window.event.clientX;
    maus_y = window.event.clientY;
    break;
  case 3:
    if(ie_version != 0) {
      maus_x = window.event.clientX;
      maus_y = window.event.clientY;
    }
    if(ns_version != 0) {
      maus_x = e.pageX;
      maus_y = e.pageY;
    }
    if(ie_version == 0 && ns_version == 0) {
      maus_x = window.event.clientX;
      maus_y = window.event.clientY;
    }
  }
}

function objekt_daten(objekt, pos) {
  // pos muss "oben, unten, rechts, links, breite, hoehe" sein fuer Objektdaten
  // bzw. "aoben, aunten, arechts, alinks" fuer Objektausschnittdaten
  // Vorsicht: - Bei NS beziehen sich breite und hoehe nach setzen eines Auschschnitts
  //             nur noch auf diesen.
  //           - Bei IE beziehen sich breite und hoehe aufs window, wenn diese nicht
  //             explizit gesetzt f&uuml;r das Objekt definiert werden
  //           - Ausschnittangaben funktionieren erst nach erstmaligen setzen eines
  //             solchen

  var wert = 0;

  if(version > 1) {
    var clip = new Array();
    if(version == 2)
      str = document.all[objekt].style.clip;
    else
      str = document.getElementById(objekt).style.clip;

    str_pos = str.indexOf("(");
    clip[0] = parseInt(str.substring(str_pos + 1, str.length));
    str_pos = str.indexOf(" ", str_pos + 1);
    clip[1] = parseInt(str.substring(str_pos + 1, str.length));
    str_pos = str.indexOf(" ", str_pos + 1);
    clip[2] = parseInt(str.substring(str_pos + 1, str.length));
    str_pos = str.indexOf(" ", str_pos + 1);
    clip[3] = parseInt(str.substring(str_pos + 1, str.length));
  }

  switch(pos) {
  case "oben":
    switch(version) {
    case 1:
      wert = document.layers[objekt].pageY;
      break;
    case 2:
      wert = parseInt(document.all[objekt].style.top);
      break;
    case 3:
      wert = document.getElementById(objekt).offsetTop;
      break;
    }
    break;

  case "unten":
    wert = (objekt_daten(objekt, "oben") + objekt_daten(objekt, "hoehe"));
    break;

  case "links":
    switch(version) {
    case 1:
      wert = document.layers[objekt].pageX;
      break;
    case 2:
      wert = parseInt(document.all[objekt].style.left);
      break;
    case 3:
      wert = document.getElementById(objekt).offsetLeft;
      break;
    }
    break;

  case "rechts":
    wert = (objekt_daten(objekt, "links") + objekt_daten(objekt, "breite"));
    break;

  case "breite":
    switch(version) {    case 1:
      wert = document.layers[objekt].clip.width;
      break;
    case 2:
      wert = document.all[objekt].clientWidth;
      break;
    case 3:
      return document.getElementById(objekt).offsetWidth;
      break;
    }
    break;

  case "hoehe":
    switch(version) {
    case 1:
      wert = document.layers[objekt].clip.height;
      break;
    case 2:
      wert = document.all[objekt].clientHeight;
      break;
    case 3:
      wert = document.getElementById(objekt).offsetHeight;
      break;
    }
    break;

  case "aoben":
    switch(version) {
    case 1:
      wert = document.layers[objekt].clip.top;
      break;
    case 2:
      wert = clip[0];
      break;
    case 3:
      wert = clip[0];
      break;
    }
    break;

  case "aunten":
    switch(version) {
    case 1:
      wert = document.layers[objekt].clip.bottom;
      break;
    case 2:
      wert = clip[2];
      break;
    case 3:
      wert = clip[2];
      break;
    }
    break;

  case "alinks":
    switch(version) {
    case 1:
      wert = document.layers[objekt].clip.left;
      break;
    case 2:
      wert = clip[3];
      break;
    case 3:
      wert = clip[3];
      break;
    }
    break;

  case "arechts":
    switch(version) {
    case 1:
      wert = document.layers[objekt].clip.right;
      break;
    case 2:
      wert = clip[1];
      break;
    case 3:
      wert = clip[1];
      break;
    }
    break;

  case "abreite":
    wert = (objekt_daten(objekt, "arechts") - objekt_daten(objekt, "alinks"));
    break;

  case "ahoehe":
    wert = (objekt_daten(objekt, "aunten") - objekt_daten(objekt, "aoben"));
    break;
  }
  return wert;
}

function layer_scroll(objekt, geschw_x, geschw_y) {
  layer_links = objekt_daten(objekt, "links") + geschw_x;
  layer_oben = objekt_daten(objekt, "oben") + geschw_y;
  ausschnitt_oben = objekt_daten(objekt, "aoben") - geschw_y;
  ausschnitt_rechts = objekt_daten(objekt, "arechts") - geschw_x;
  ausschnitt_unten = objekt_daten(objekt, "aunten") - geschw_y;
  ausschnitt_links = objekt_daten(objekt, "alinks") - geschw_x;

  objekt_setzen(objekt, layer_links, layer_oben);
  objekt_ausschnitt(objekt, ausschnitt_oben, ausschnitt_rechts, ausschnitt_unten, ausschnitt_links);
}


// Testvariable um Fehlermeldung zu vermeiden
fertig_geladen = false;

function InitScroller() {
  // Testvariable um Fehlermeldung zu vermeiden
  fertig_geladen = true;

  // Scroll-Timer initialisieren um Fehlermeldung zu vermeiden
  timerScroll = window.setTimeout("scroll('scroller', 0, 0)",5000 );


  // Breite und Hoehe des sichtbaren Ausschnitts des Scroll-Layers
  ausschnitt_breite = 350;
  ausschnitt_hoehe = 120;

  // Scrollgeschwindigkeit in Pixeln
  auto_scroll_geschw = -1;
  schnell_scroll_geschw = 2;

  // Millisekunden der Wartezeit zwischen den Scroll-Aufrufen
  // Beim Schnellscrollen automatisch halbe Zeit
  scroll_intervall = 60;

  // Einige Informationen die zum scrollen benötigt werden
  ausschnitt_oben = 0;
  ausschnitt_rechts = ausschnitt_breite;
  ausschnitt_unten = ausschnitt_hoehe;
  ausschnitt_links = 0;

  // Position des Scrollayers bestimmen
  layer_left = 250;
  layer_top = 450;

  // Test-Variablen für Layergrenze
  scroll_pos_x = 0;
  scroll_pos_y = 0;

  // Breite und Höhe des gesamten Scrollayers feststellen, bevor
  // der Ausschnitt gesetzt wird, dann ist das unter Netscape nicht
  // mehr möglich
  erstinit = 0;
  if(erstinit == 0) {
    erstinit = 1;
    layer_breite = objekt_daten("scroller", "breite");
    layer_hoehe = objekt_daten("scroller", "hoehe");
  }

  // Layer platzieren und Scrollausschnitt festlegen
  objekt_setzen("scroller", layer_left, layer_top);
  objekt_ausschnitt("scroller", 0, ausschnitt_breite, ausschnitt_hoehe, 0);

  // Scroller aktivieren und Starten
  objekt_anaus("scroller", 1);
  autoScroll();
}
function autoScroll() {
  if(fertig_geladen) {
    clearTimeout(timerScroll);
    timerScroll = window.setTimeout("scroll('scroller', 0, " + auto_scroll_geschw + ", " + scroll_intervall + ")", 2000);
  }
}
function schnellScroll(geschw) {
  if(fertig_geladen) {
    clearTimeout(timerScroll);
    if(geschw < 0)
      schnell_scroll_geschw = -Math.abs(schnell_scroll_geschw);
    else
      schnell_scroll_geschw = Math.abs(schnell_scroll_geschw);
    scroll('scroller', 0, schnell_scroll_geschw, scroll_intervall / 2);
  }
}
function scroll(objekt, geschw_x, geschw_y, intervall) {
  scroll_pos_x += geschw_x;
  if(scroll_pos_x > 0 || scroll_pos_x < -layer_breite / 2) {
    scroll_pos_x -= geschw_x;
    geschw_x = 0;
  }

  scroll_pos_y += geschw_y;
  if(scroll_pos_y < -(layer_hoehe - ausschnitt_hoehe)) {
    layer_scroll(objekt, geschw_x, -scroll_pos_y);
    scroll_pos_y = 0;
  }

  if(scroll_pos_y > 0) {
    scroll_pos_y = -(layer_hoehe - ausschnitt_hoehe);
    layer_scroll(objekt, geschw_x, scroll_pos_y);
  }

  layer_scroll(objekt, geschw_x, geschw_y);
  timerScroll = window.setTimeout("scroll('scroller', " + geschw_x + ", " + geschw_y + ", " + intervall + ")", intervall);
}


  timerID = 0;
  timerID2 = 0;
  ns_timerID = 0;
  maus_x = 0;
  maus_y = 0;
  fenster = 0;
  pfad = "";

  function InitMenu() {
    if(ns_version == 4) {
      document.captureEvents(Event.MOUSEMOVE);
      document.onmousemove = getMaus;
    }
  };