// --- Übersicht der zusätzlichen Funktionen ab Zeile 155 ---------------------------------------
// --- Zusätzliche Funktionen ab Zeile 220 ------------------------------------------------------

// --- Kernfunktionen: --------------------------------------------------------------------------
var IE = 0;
var NN = 0;
var OP = 0;
var AB = 0;

if(navigator.appName.indexOf('Netscape') != -1)
{
 NN = 1;
}
else
{
 if(navigator.appName.indexOf('Internet Explorer') != -1)
 {
  IE = 1;
 }
 else
 {
  if(navigator.appName.indexOf('Opera') != -1)
  {
   OP = 1;
  }
  else
  {
   AB = 1;
  }
 }
}

var browserVersion = 0;

if(navigator.appVersion.indexOf('MSIE 5') != -1)
{
 browserVersion = 5;
}
else
{
 browserVersion = parseInt(navigator.appVersion);
}

var idDOM = 0; //ID DOM?
var allDOM = 0; //All DOM?
var layDOM = 0; //Layer DOM?
var DHTML = 0; //DHTML-fähig?

if (document.getElementById)
{
 idDOM = 1; DHTML = 1;
}
else
{
 if (document.all)
 {
  allDOM = 1; DHTML = 1;
 }
 else
 {
  if ((NN) && (browserVersion == 4))
  {
   layDOM = 1; DHTML = 1;
  }
 }
}

function crossDOM(Stil,ObjID)
{
 if (idDOM)
 {
  if(Stil == 1)
  {
   return (document.getElementById(ObjID).style);
  }
  else
  {
   return (document.getElementById(ObjID));
  }
 }
 if (allDOM)
 {
  if(Stil == 1)
  {
   return (document.all[ObjID].style);
  }
  else
  {
   return (document.all[ObjID]);
  }
 }
 else
 {
  if (layDOM)
  {
   return (document.layers[ObjID]);
  }
 }
}

function kind(Stil,ObjID1,ObjID2)
{
 if (idDOM)
 {
  if(Stil == 1)
  {
   if (ObjID2)
   {
    return (document.getElementById(ObjID2).style);
   }
   else
   {
    return (document.getElementById(ObjID1).style);
   }
  }
  else
  {
   if (ObjID2)
   {
    return (document.getElementById(ObjID2));
   }
   else
   {
    return (document.getElementById(ObjID1));
   }
  }
 }
 if (allDOM)
 {
  if(Stil == 1)
  {
   if (ObjID2)
   {
    return (document.all[ObjID2].style);
   }
   else
   {
    return (document.all[ObjID1].style);
   }
  }
  else
  {
   if (ObjID2)
   {
    return (document.all[ObjID2]);
   }
   else
   {
    return (document.all[ObjID1]);
   }
  }
 }
 else
 {
  if (layDOM)
  {
   if (ObjID2)
   {
    return (document.layers[ObjID1].layers[ObjID2]);
   }
   else
   {
    return (document.layers[ObjID1]);
   }
  }
 }
}

function frameDOM(Stil,ObjID,Rahmen)
{
 if (idDOM)
 {
  if(Stil == 1)
  {
   return (parent[Rahmen].document.getElementById(ObjID).style);
  }
  else
  {
   return (parent[Rahmen].document.getElementById(ObjID));
  }
 }
 if (allDOM)
 {
  if(Stil == 1)
  {
   return (parent[Rahmen].document.all[ObjID].style);
  }
  else
  {
   return (parent[Rahmen].document.all[ObjID]);
  }
 }
 else
 {
  if (layDOM)
  {
   return (parent[Rahmen].document.layers[ObjID]);
  }
 }
}
// --- Ende der Funktion frameDOM ----------------------------------------------
// --- Ende der Kern-Funktionen ------------------------------------------------

// --- Allgemeine Funktionen ---------------------------------------------------

/* --- Übersicht der Funktionen:

f1: Höhe eines Objekts feststellen Zu übergebende Parameter: ObjektID

f2: Breite eines Objekts feststellen Zu übergebende Parameter: ObjektID

f3: Position top auslesen
Zu übergebende Parameter: ObjektID

f4: Position left auslesen
Zu übergebende Parameter: ObjektID

f5: Position unten auslesen, die Werte werden aus den Funktionen f1 und f3 ausgelesen. Zu übergebende Parameter: ObjektID

f6: Position rechts auslesen, die Werte werden aus den Funktionen f2 und f4 ausgelesen. Zu übergebende Parameter: ObjektID

f7: Sichtbarkeitsstatus dynamisch auf visible oder hidden setzen. Zu übergebende Parameter: ObjektID und der Status

f8: Nur Sichtbarkeit visible setzen (fest vordefiniert). Zu übergebende Parameter: ObjektID

f9: Nur Sichtbarkeit hidden setzen (fest vordefiniert). Zu übergebende Parameter: ObjektID

f10: Den Sichtbarkeitsstatus auslesen. Zu übergebender Parameter: ObjektID

f11: Für Objekte den z-index dynamisch setzen. Zu übergebende Parameter: ObjektID und gewünschte Stapelreihenfolge

f12: Den z-index auslesen. Zu übergebender Parameter: ObjektID

f13: Farbtiefe auslesen. Zu übergebende Parameter: BildName (name im <img>-Tag), res1 (z.B. urlaub_n.jpg, Bilddatei für Browser mit 4 oder 8 Bit), res2 (z.B. urlaub.jpg, Originale Bilddatei für Browser mit mehr als 8 Bit)

f14: Höhe der Anzeigefläche, keine Parameter erforderlich

f15: Breite der Anzeigefläche, keine Parameter erforderlich

f16: Resize-Bug in Netscape4 abfangen, keine Parameter erforderlich

e1: Objekte um einen bestimmten Wert verschieben. Erforderliche Parameter: Die ObjektID, Wert für die horizontale Verschiebung, Wert für die vertikale Verschiebung

e2: Objekt in den Vordergrund holen und vorher ausgewähltes Objekt wieder an die ursprüngliche Stapelreihenfolge setzen. Erforderlicher Parameter: ObjektID

e3: Bilder vorausladen. Als Parameter werden die Grafikdatei übergeben

e4: Bilder austauschen. Als Parameter werden der Name der Grafik im img-Tag und die Rollover-Grafik angegeben.

e5: Ein neues Browserfenster öffnen. Als Parameter werden die URL, der Fenstername und das Aussehen des Fensters übergeben.

e6: Ein Fenster um einen bestimmten Wert verschieben. Als Parameter werden die
Verschiebungswerte x und y übergeben.

e6Kind: Ein Kind-Fenster um einen bestimmten Wert verschieben. Parameter wie bei e6.

e7: Ein Fenster zu einem bestimmten Punkt verschieben. Als Parameter werden Zielpositionen x und y angegeben.

e7Kind: Ein Kind-Fenster zu einem bestimmten Punkt verschieben. Parameter wie bei e7.

e8: Ein Fenster schließen

e8Kind: Ein Kind-Fenster schließen

Ende der Übersicht */

// --- Zusätzliche Funktionen: -------------------------------------------------

// --- Höhe eines Objekts: -----------------------------------------------------
function f1(ObjID)
{
 // style ist nicht erforderlich
 dom = crossDOM(0,ObjID)
 if (dom.offsetHeight)
 {
  return dom.offsetHeight;
 }
 if (layDOM)
 {
  return dom.clip.height;
 }
 else
 {
  return (0);
 }
}

// --- Breite eines Objekts: ---------------------------------------------------
function f2(ObjID)
{
 // style ist nicht erforderlich
 dom = crossDOM(0,ObjID)
 if (dom.offsetWidth)
 {
  return dom.offsetWidth;
 }
 if (layDOM)
 {
  return dom.clip.width;
 }
 else
 {
  return (0);
 }
}

// --- Position top: -----------------------------------------------------------
function f3(ObjID)
{
 /* 2 Variablen erforderlich: mit und ohne style */
 dom = crossDOM(0,ObjID)
 domStil = crossDOM(1,ObjID)
 if (dom.offsetTop)
 {
  return dom.offsetTop;
 }
 if (domStil.top)
 {
  return domStil.top;
 }
 if (domStil.pixelTop)
 {
  return domStil.pixelTop;
 }
 else
 {
  return (0);
 }
}

// --- Position left: ----------------------------------------------------------
function f4(ObjID) {
/* 2 Variablen erforderlich: mit und ohne style */
dom = crossDOM(0,ObjID)
domStil = crossDOM(1,ObjID)
if (dom.offsetLeft) {
return dom.offsetLeft; }
if (domStil.left) {
return domStil.left; }
if (domStil.pixelLeft) {
return domStil.pixelLeft; }
else { return (0); }
}

// --- Position unten: ---------------------------------------------------------
/* Höhe aus Funktion f1 und top aus Funktion f3 */
function f5(ObjID)
{
 hoehe = f1(ObjID);
 oben = f3(ObjID);
 return (hoehe + oben);
}

// Position rechts: ------------------------------------------------------------
/* Breite aus Funktion f2 und left aus f4 */
function f6(ObjID)
{
 breite = f2(ObjID);
 links = f4(ObjID);
 return (breite + links);
}

/* Für Objekte den Status visible oder hidden setzen. */
function f7(ObjID,sichtbar)
{
 dom = crossDOM(1,ObjID)
 dom.visibility = sichtbar;
}

/* Für Objekte ohne den Status visible setzen */
function f8(ObjID)
{
 domStil = crossDOM(1,ObjID)
 domStil.visibility = 'visible';
}

/* Für Objekte den Status hidden setzen */
function f9(ObjID)
{
 domStil = crossDOM(1,ObjID)
 domStil.visibility = 'hidden';
}

/* Den Sichtbarkeitsstatus auslesen */
function f10(ObjID)
{
 var domStil = crossDOM(1,ObjID);
 if ((domStil.visibility == 'visible') || (domStil.visibility == 'show'))
 {
  return 'visible';
 }
 if ((domStil.visibility == 'hidden') || (domStil.visibility == 'hide'))
 {
  return 'hidden';
 }
 else
 {
  return 'ohne';
 }
}

/* Für Objekte den z-index dynamisch setzen. */
function f11(ObjID,Stapel)
{
 dom = crossDOM(1,ObjID)
 dom.zIndex = Stapel;
}

/* Den z-index auslesen */
function f12(ObjID)
{
 dom = crossDOM(1,ObjID)
 if (dom.zIndex != null)
 {
  return dom.zIndex;
 }
 else
 {
  return (null);
 }
}

/* Farbtiefe auslesen */
function f13(BildName,res1,res2)
{
 dom = document.images[BildName]
 if(screen.colorDepth > 8 )
 {
  return (dom.src = res2);
 }
 else
 {
  return (dom.src = res1);
 }
}

/* Höhe der Anzeigefläche */
function f14()
{
 if(window.innerHeight != null)
 {
  return (window.innerHeight);
 }
 if(document.body.clientHeight != null)
 {
  return (document.body.clientHeight);
 }
 else
 {
  return (null);
 }
}

/* Breite der Anzeigefläche */
function f15()
{
 if(window.innerWidth != null)
 {
  return (window.innerWidth);
 }
 if(document.body.clientWidth != null)
 {
  return (document.body.clientWidth);
 }
 else
 {
  return (null);
 }
}

/*Resize-Bug in N4 abfangen*/
if (document.layers)
{
 LadeBreite = innerWidth;
 LadeHoehe = innerHeight;
}

function f16()
{
 if (innerWidth != LadeBreite || innerHeight != LadeHoehe)
 location.reload();
}
if(document.layers) onResize = f16;


// --- Objekte um bestimmte Werte verschieben ----------------------------------
function e1(ObjID,umH,umV)
{
 /* 2 Variablen erforderlich: mit und ohne style */
 var dom = crossDOM(0,ObjID);
 var domStil = crossDOM(1,ObjID);

 if (domStil.pixelTop)
 {
  domStil.pixelTop += umV;
  domStil.pixelLeft += umH;
 }
 else
 {
  if (dom.offsetTop)
  {
   var oben = dom.offsetTop;
   var links = dom.offsetLeft;
   domStil.top = umV + oben;
   domStil.left = umH + links;
  }
  else dom.moveBy(umH,umV);
  }
 }
 
/*Objekt im Vordergrund*/
var ObjektVorher = null;
var StapelVorher = 0;

function e2(ObjID)
{
 if(ObjektVorher != null)
 f11(ObjektVorher,StapelVorher);
 StapelVorher = f12(ObjID);
 ObjektVorher = ObjID;
 f11(ObjID,1000);
}

/*Bilder vorausladen*/
var grafikLaden = new Array();

function e3() {
if(document.images) {
var Bild = e3.arguments;
for (var i=0; i <
e3.arguments.length; i++) {
    grafikLaden[i] = new Image;
    grafikLaden[i].src = Bild[i];
    }
}
}

/* Rollover-Effekt*/
function e4() {
if (document.images) {
document[e4.arguments[0]].src=
e4.arguments[1];
}
}

/* Ein neues Browserfenster öffnen*/
function e5(Datei,FName,Aussehen) {
NeuesFenster = window.open(Datei,FName,Aussehen);
}

/* Fenster um einen bestimmten Wert verschieben*/
function e6(x,y) {
window.moveBy(x,y);
}

/* Kind-Fenster um einen bestimmten Wert verschieben*/
function e6Kind(x,y) {
NeuesFenster.moveBy(x,y);
NeuesFenster.focus()
}

/* Fenster zu einem bestimmten Punkt verschieben */
function e7(x,y) {
window.moveTo(x,y);
}

/* Kind-Fenster zu einem bestimmten Punkt verschieben */
function e7Kind(x,y) {
NeuesFenster.moveTo(x,y);
NeuesFenster.focus()
}

/* Ein Fenster schließen */
function e8() {
window.close()
}

/* Ein Kind-Fenster schließen */
function e8Kind() {
NeuesFenster.close();
}
/* --- UB - SCRIPTE --- -------------------------------------------------------------- */
/* Wechselt den Inhalt zweier Frames gleichzeitig */
function zweiframes(frame1, url1, frame2, url2)
{
  frame1.location.href = url1
  frame2.location.href = url2
}
/* Funktion für den Bildwechsel  */
var a, Bild;

function tauschen (a, Bild)
{
  window.document.images[a].src=Bild.src;
}
