function InitScroller() {
  // Scroll-Timer initialisieren um Fehlermeldung zu vermeiden
  timerScroll = window.setTimeout("scroll('scroller', 0, 0)", 10000);

  // Breite und Hoehe des sichtbaren Ausschnitts des Scroll-Layers geniþlik ve yükseklik buradan
  ausschnitt_breite = 400;
  ausschnitt_hoehe = 245;

  // 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 = 15;

  // 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 = 0;
  layer_top = 0;

  // 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
  layer_breite = objekt_daten("scroller", "breite");
  layer_hoehe = objekt_daten("scroller", "hoehe");

  // Layer platzieren und Scrollausschnitt festlegen
  if(version != 1)
    objekt_setzen("scroller", layer_left, layer_top);

  // Scroller aktivieren und Starten sol ve üst köþe buradan
  objekt_setzen('scrollerdummy', 360, 375);
  objekt_anaus("scrollerdummy", 1);
  objekt_anaus("scroller", 1);
  autoScroll();
}
function autoScroll() {
  if(fertig_geladen) {
    clearTimeout(timerScroll);
    timerScroll = window.setTimeout("scroll('scroller', 0, " + auto_scroll_geschw + ", " + scroll_intervall + ")", 150);
  }
}
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);
}

// leicht geänderte Funktionen der Standard-Bibliothek
// nötig für Netscape 4.xx (also version=1), da layer in layer

function objekt_setzen(objekt, objekt_x, objekt_y) {
  if(version == 1) {
    nsobj = eval('window');
    if(objekt == "scroller")
      nsobj = eval("document.layers['scrollerdummy']");
  }

  switch(version) {
  case 1:
    nsobj.document.layers[objekt].pageX = objekt_x;
    nsobj.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_daten(objekt, pos) {
  if(version == 1) {
    nsobj = eval('window');
    if(objekt == "scroller")
      nsobj = eval("document.layers['scrollerdummy']");
  }

  // 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 = nsobj.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 = nsobj.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 = nsobj.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 = nsobj.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 = nsobj.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 = nsobj.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 = nsobj.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 = nsobj.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 objekt_ausschnitt(objekt, oben, rechts, unten, links) {
  if(version == 1) {
    nsobj = eval('window');
    if(objekt == "scroller")
      nsobj = eval("document.layers['scrollerdummy']");
  }
  switch(version) {
  case 1:
    nsobj.document.layers[objekt].clip.top = oben;
    nsobj.document.layers[objekt].clip.left = links;
    nsobj.document.layers[objekt].clip.bottom = unten;
    nsobj.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 objekt_anaus(objekt, zustand) {
  if(version == 1) {
    nsobj = eval('window');
    if(objekt == "scroller")
      nsobj = eval("document.layers['scrollerdummy']");
  }
  switch(version) {
  case 1:
    if(zustand == 0)
      nsobj.document.layers[objekt].visibility = "hide";
    else
      nsobj.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 layer_scroll(objekt, geschw_x, geschw_y) {
  layer_links = objekt_daten(objekt, "links") + geschw_x;
  layer_oben = objekt_daten(objekt, "oben") + geschw_y;
  objekt_setzen(objekt, layer_links, layer_oben);
}