// Dieses Javascript ist geistiges Eigentum von Bernd Jahnke
// und darf weder ganz noch teilweise ohne meine Erlaubnis
// kopiert werden.

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 massnehmen(wert) {
  var max_breite = 0, max_hoehe = 0;

  switch(version) {
  case 1:
    max_breite = window.innerWidth;
    max_hoehe = window.innerHeight;
    break;
  case 2:
    max_breite = document.body.clientWidth;
    max_hoehe = document.body.clientHeight;
    break;
  case 3:
    if(ie_version != 0) {
      max_breite = document.body.clientWidth;
      max_hoehe = document.body.clientHeight;
    }
    if(ns_version != 0) {
      max_breite = window.innerWidth;
      max_hoehe = window.innerHeight;
    }
    if(ie_version == 0 && ns_version == 0) {
      max_breite = window.innerWidth;
      max_hoehe = window.innerHeight;
    }
    break;
  }
  if(wert == "breite")
    return max_breite;
  else
    return max_hoehe;
}
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 inhalt_aendern(objekt, text_inhalt) {
  switch(version) {
  case 1:
    document[objekt].document.open();
    document[objekt].document.write(text_inhalt);
    document[objekt].document.close();
    break;
  case 2:
    document.all[objekt].innerHTML = text_inhalt;
    break;
  case 3:
    document.getElementById(objekt).innerHTML = text_inhalt;
    break;
  }
}
function objekt_schicht(objekt, schicht) {
  switch(version) {
  case 1:
    document[objekt].zIndex = schicht;
    break;
  case 2:
    document.all[objekt].style.zIndex = schicht;
    break;
  case 3:
    document.getElementById(objekt).style.zIndex = schicht;
    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 border_scroll() {
  var scroll_y = 0;
  switch(version) {
  case 1:
    scroll_y = window.pageYOffset;
    break;
  case 2:
    scroll_y = document.body.scrollTop;
    break;
  case 3:
    if(ie_version != 0)
      scroll_y = document.body.scrollTop;
    if(ns_version != 0)
      scroll_y = window.pageYOffset;
    if(ie_version == 0 && ns_version == 0)
      scroll_y = window.pageYOffset;
    break;
  }
  return scroll_y;
}
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);
}