//Ü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();
}
