////////////////////////////////////////////////////////////////////
//                           Hilfe-Handling
////////////////////////////////////////////////////////////////////
// URL des Doppelpfeils
var urlDoppelpfeil = "/Allgemein/Bilder/Pfeil_hilfetext.gif";

// Hilfe-Container, für jedes Hilfe-Format eins, dies ist genau der bläuliche Kasten, wo dann die Hilfe drin steht
var HI = [];
HI[1] = '<table cellpadding=0 cellspacing=0 border=0><tr><td class=hi1 width=12 valign=top style="padding-left:3px"><img src="' + urlDoppelpfeil + '" width=12 height=13></td><td class=hi1 width=883 style="padding-right:3px" id=hier_kommt_spaeter_die_zweite_id_hin></td></tr><tr><td class=hi1></td><td class=hi1 align=right id=hier_kommt_spaeter_die_dritte_id_hin style="padding-right:3px"><a href="javascript:hideHelp(\'hier_kommt_spaeter_die_erste_id_hin\')" class=hi1>Ausblenden</a></td></tr><tr><td colspan=2 class=hi1_abstand_unten></td></tr></table>';
HI[2] = '<table cellpadding=0 cellspacing=0 border=0><tr><td class=hi2 width=12 valign=top style="padding-left:3px"><img src="' + urlDoppelpfeil + '" width=12 height=13></td><td class=hi2 width=679 style="padding-right:3px" id=hier_kommt_spaeter_die_zweite_id_hin></td></tr><tr><td class=hi2></td><td class=hi2 align=right id=hier_kommt_spaeter_die_dritte_id_hin style="padding-right:3px"><a href="javascript:hideHelp(\'hier_kommt_spaeter_die_erste_id_hin\')" class=hi1>Ausblenden</a></td></tr><tr><td colspan=2 class=hi2_abstand_unten></td></tr></table>';
HI[3] = '<table cellpadding=0 cellspacing=0 border=0><tr><td class=hi3 width=12 valign=top style="padding-left:3px"><img src="' + urlDoppelpfeil + '" width=12 height=13></td><td class=hi3 width=425 style="padding-right:3px" id=hier_kommt_spaeter_die_zweite_id_hin></td></tr><tr><td class=hi3></td><td class=hi3 align=right id=hier_kommt_spaeter_die_dritte_id_hin style="padding-right:3px"><a href="javascript:hideHelp(\'hier_kommt_spaeter_die_erste_id_hin\')" class=hi1>Ausblenden</a></td></tr><tr><td colspan=2 class=hi3_abstand_unten></td></tr></table>';
HI[4] = '<table cellpadding=0 cellspacing=0 border=0><tr><td class=hi4 width=12 valign=top style="padding-left:3px"><img src="' + urlDoppelpfeil + '" width=12 height=13></td><td class=hi4 width=425 style="padding-right:3px" id=hier_kommt_spaeter_die_zweite_id_hin></td></tr><tr><td class=hi4></td><td class=hi4 align=right id=hier_kommt_spaeter_die_dritte_id_hin style="padding-right:3px"><a href="javascript:hideHelp(\'hier_kommt_spaeter_die_erste_id_hin\')" class=hi1>Ausblenden</a></td></tr><tr><td colspan=2 class=hi4_abstand_unten></td></tr></table>';
HI[5] = '<table cellpadding=0 cellspacing=0 border=0><tr><td class=hi5 width=12 valign=top style="padding-left:3px"><img src="' + urlDoppelpfeil + '" width=12 height=13></td><td class=hi4 width="100%" style="padding-right:3px" id=hier_kommt_spaeter_die_zweite_id_hin></td></tr><tr><td class=hi4></td><td class=hi4 align=right id=hier_kommt_spaeter_die_dritte_id_hin style="padding-right:3px"><a href="javascript:hideHelp(\'hier_kommt_spaeter_die_erste_id_hin\')" class=hi1>Ausblenden</a></td></tr><tr><td colspan=2 class=hi4_abstand_unten></td></tr></table>';
// HI10 Fonds
HI[10] = '<table cellpadding=0 cellspacing=0 border=0><tr><td class=text width=610 style="padding-right:3px" id=hier_kommt_spaeter_die_zweite_id_hin></td></tr><tr><td class=hi4 align=right id=hier_kommt_spaeter_die_dritte_id_hin style="padding-right:3px"><a href="javascript:hideHelp(\'hier_kommt_spaeter_die_erste_id_hin\')" class=text>Ausblenden</a></td></tr><tr><td colspan=2 class=hi4_abstand_unten></td></tr></table>';
// HI99 wird in Tarifweiche verwendet
HI[99] = '<table cellpadding=0 cellspacing=0 border=0><tr><td class=hi1 width=12 valign=top style="padding-left:3px"><img src="../../../' + urlDoppelpfeil + '" width=12 height=13></td><td class=hi1 width=883 style="padding-right:3px" id=hier_kommt_spaeter_die_zweite_id_hin></td></tr><tr><td class=hi1></td><td class=hi1 align=right id=hier_kommt_spaeter_die_dritte_id_hin style="padding-right:3px"><a href="javascript:hideHelp(\'hier_kommt_spaeter_die_erste_id_hin\')" class=hi1>Ausblenden</a></td></tr><tr><td colspan=2 class=hi1_abstand_unten></td></tr></table>';

function showHelp(id, zeilenFormat, kurzlang) {
    // ** Hilfe einblenden **
    // Parameter id           : Die ID aus dem entsprechenden "Hilfe-Zeile", z.B. hilfeblock_1, alle ID's auf der ganzen Seite müssen eindeutig sein, also fortlaufend numeriert
    //           zeilenFormat : HI1, HI2, HI3 oder HI4
    //           kurzlang     : "lang" wenn die lange Hilfe angefordert wird, irgendetwas (null) wenn die kurze Hilfe gewünscht ist
    // Die wievielte Hilfe auf der Seite ist es: hilfeblock_1 --> 1, hilfeblock_2 --> 2 usw.
    var index = id.substr(11);

    if (document.getElementById) {
        // Moderner Browser -> Hilfe innerhalb der Seite dynamisch einblenden
        // Wenn die Hilfe bereits eingeblendet ist, wird sie bei erneutem Klick auf den Hilfe-Link wieder ausgeblendet (nicht wenn die "lange Hilfe" angefordert wird)
        if (document.getElementById(id).style.display === "" && kurzlang != "lang") {
            hideHelp(id);
            return;
        }

        // Den richtigen "Hilfe-Container" nehmen
        var formatNr = zeilenFormat.substr(2); // 1 bei HI1, 2 bei HI2 usw.
        if ((formatNr < 1 || formatNr > 5) && formatNr != 99 && formatNr != 10) {
            return;
        } // Fehler im Aufruf, dann nichts tun (es sind derzeit nur HI1, HI2, HI3 und HI4, HI99, HI10 definiert, wenn nötig anpassen)
        // Die richtigen ID's einsetzen
        html_txt = HI[formatNr];
        html_txt = html_txt.replace(/hier_kommt_spaeter_die_erste_id_hin/, id);
        html_txt = html_txt.replace(/hier_kommt_spaeter_die_zweite_id_hin/, id + "_text");
        html_txt = html_txt.replace(/hier_kommt_spaeter_die_dritte_id_hin/, id + "_link");

        // Den gewünschten Hilfetext aussuchen
        if (kurzlang == "lang") {
            // Es wird die "lange Hilfe" angefordert
            hilfe_txt = hilfelang[index];
        } else {
            // Es wird die "kurze Hilfe" angefordert
            hilfe_txt = hilfe[index];
        }

        // childNodes[1] liefert den 2. Knoten (-> das 2. <td>) des Hilfeblocks, dorthin mit innerHTML oben definierte Tabelle einfügen
        // Bei H1 und H2 und HI99 steht der Hilfetext im 2. <td>, bei H3 und H4 im 1. <td>
        if (formatNr <= 2 || formatNr == 99) {
            knoten = 2;
        } else {
            knoten = 1;
        }

        document.getElementById(id).childNodes[knoten - 1].innerHTML = html_txt;

        // An der richtigen Stelle wird der angeforderte Hilfetext als solcher eingefügt
        document.getElementById(id + "_text").innerHTML = hilfe_txt;

        // Wenn die "kurze Hilfe" angefordert wird und die zugehörige lange Hilfe vorhanden ist, dann Link dorthin hinzufügen
        // Die Datei für die lange Hilfe ist physikalisch immer vorhanden, wenn der Inhalt aber nicht angezeigt werden soll, besteht sie aus dem String "<nicht vorhanden>" (zur Sicherheit auch null und Leerstring abfragen)
        if (kurzlang != "lang" && hilfelang[index] != "<nicht vorhanden> " && hilfelang[index] !== null && hilfelang[index] !== "") {
            document.getElementById(id + "_link").innerHTML = "<a href=\"javascript:showHelp('" + id + "', '" + zeilenFormat + "', 'lang')\" class='hi" + formatNr + " help'>Mehr Information</a> &nbsp; <a href=\"javascript:hideHelp('" + id + "')\" class=hi" + formatNr + ">Ausblenden</a>";
        }

        // Hilfeblock jetzt auch anzeigen
        document.getElementById(id).style.display = '';
    } else { // noch nicht mit HUK24 abgestimmt, vielleicht ist das gar nicht gewollt
        // Veralteter Browser -> Hilfe zumindest als Popup anbieten
        hilfe_txt = hilfe[index];
        if (hilfelang[index] !== null) {
            hilfe_txt += "<p><b>Mehr Info:</b><br>" + hilfelang[index];
        }

        var txt1 = '<html><head><link rel="stylesheet" href="/theme/master.css" type="text/css"><title>HUK24 - Hilfe</title><body><p class=z1>Leider unterstützt Ihr Browser die aktuellste Javascript-Version nicht vollständig. Daher zeigen wir Ihnen den Hilfetext in einem Extra-Fenster an:</p><p>';
        var txt2 = '</p><p class=z1><a href="javascript:self.close()" class=z1>Fenster schließen</a></p></body></html>';

        hilfefenster = window.open("", "HilfeFenster", "width=500,height=500,left=0,top=0,scrollbars,resizable");
        hilfefenster.document.open();
        hilfefenster.document.write(txt1 + hilfe_txt + txt2);
        hilfefenster.document.close();
        hilfefenster.focus();
    }
}

function hideHelp(id) {
    // ** Hilfe wieder ausblenden **
    document.getElementById(id).style.display = 'none';
}


////////////////////////////////////////////////////////////////////
//                         MouseOver - Effekte
////////////////////////////////////////////////////////////////////
// Um MouseOver-Effekte zu erzielen, sind zwei Bedingungen zu beachten:
// 1) Für das Bild, das einen MouseOver-Effekt haben soll, muss das Attribut "name" gesetzt sein. Der Name muss dateiweit eindeutig sein und mit "mouseover_" beginnen, ist
//    aber ansonsten frei wählbar.
//    Weiterhin muss bei onMouseover und onMouseout die Funktion "changeImage" wie im Beispiel aufgerufen werden (immer gleich für jedes Bild).
//        Beispiel: <img src="kfz.gif" ... name="mouseover_kfz" onMouseover="changeImage(this); return true;" onMouseout="changeImage(this); return true;">
// 2) Im selben Verzeichnis, wo das Original-Bild steht, muss auch das zugehörige MouseOver-Bild vorhanden sein. Im Dateinamen muss am Ende ein "_mouseover" angehängt sein.
//        Beispiel: Original-Bild:  "irgendein_verzeichnis/kfz.gif"
//                  MouseOver-Bild: "irgendein_verzeichnis/kfz_mouseover.gif"

function newImage(path) {
    img = new Image();
    img.src = path;
    return img;
}

function changeImage(obj) {
    if (!preloadComplete) { return; }

    var src = obj.src;
    var pos = src.lastIndexOf(".");
    var src_neu;

    if (obj.src.indexOf("_mouseover.") > -1) {
        src_neu = src.substring(0, pos - 10) + src.substring(pos); // Mouseover wechselt zu Normal
    } else {
        src_neu = src.substring(0, pos) + "_mouseover" + src.substring(pos); // Normal wechselt zu Mouseover
    }
    obj.src = src_neu;
}

function preloadImages() {
    // Durchlaufe alle Bilder im Dokument. Wenn das Attribut Name vergegeben wurde und der Name mit "mouseover_" beginnt, wird das zugehörige Mouseover-Bild (nach
    // folgender Syntax) schon einmal vorgeladen. Wenn die Source des Original-Bildes ".../kfz.gif" lautet, muss das Mouseover-Bild im selben Verzeichnis stehen und
    // ein "_mouseover" angehängt haben: ".../kfz_mouseover.gif"
    for (var i = 0; i < document.images.length; i++) {
        if (document.images[i].name.indexOf("mouseover_") !== 0) {
            continue;
        }

        // Ein Bild gefunden, dessen Name mit "mouseover_" beginnt
        var src_normal = document.images[i].src;
        var pos = src_normal.lastIndexOf(".");
        var src_mouseover = src_normal.substring(0, pos) + "_mouseover." + src_normal.substring(pos + 1);

        img = newImage(src_mouseover);
    }

    preloadComplete = true;
}

var preloadComplete = false;



////////////////////////////////////////////////////////////////////
//                         Sonstige Funktionen
////////////////////////////////////////////////////////////////////
// hier können weitere Funktionen oder auch Variablen definiert werden
function rahmenweg(obj) {
    if (obj.blur) {
        obj.blur();
    }
}

// Begrenzt den Inhalt eines Textfeldes auf die angegebene Anzahl Zeichen
function limit(obj, size) {
    if (obj.value && obj.value.length > size) {
        obj.value = obj.value.substring(0, size);
    }
}

// neu Laden des Angebots  (KFZ-Tarifrechner)
function refreshAngebot() {
    var action = document.forms[0].action;
    document.forms[0].action = action + "?aktion=refreshAngebot";
    document.forms[0].submit();
}
