/************************************************************

Die gesamte Script-Datei zur Produktauswahl und -praesentation

*************************************************************/

/*
Konstanten
*/
        var produktseitenOrdner = "&nbsp;"; /* Gibt an, in welchem Ordner (relativ zur Position von produkt.js) sich die Produktseiten befinden */

        var kalkschutz = 1;
        var korrosionsschutz = 2;
        var rostwasser = 4;
        var vitalisierung = 8;
        var absichtArray = new Array(12);

        absichtArray[kalkschutz] = "Kalkschutz";
        absichtArray[korrosionsschutz] = "Korrosionsschutz";
        absichtArray[rostwasser] = "Rostwasser";
        absichtArray[vitalisierung] = "Vitalisierung";
        absichtArray[kalkschutz + korrosionsschutz] = "Kalk- und Korrosionsschutz";
        absichtArray[kalkschutz + vitalisierung] = "Kalkschutz und Vitalisierung";
        absichtArray[korrosionsschutz + vitalisierung] = "Korrosionsschutz und Vitalisierung";
        absichtArray[kalkschutz + korrosionsschutz + vitalisierung] = "Kalk- und Korrosionsschutz mit Vitalisierung";

        /* Konstanten fuer die getroffene Wahl. */
        var zeige_fehler = -1;
        var zeige_primus = 0;
        var zeige_primus_vital = 1;
        var zeige_vital = 2;
        var zeige_aktiv = 3;
        var zeige_aktiv_sanus = 4;
        var zeige_systemaktiv = 5;
        var zeige_systemaktiv_sanus = 6;
        var zeige_rostwasserpaket = 7;
        var zeige_rostwasserpaket_sanus = 8;
        var zeige_rostwasserpaket_filter = 9;

        /* Konstanten fuer den Zugriffs auf produktArray */
        var prodName = 0;
        var prodSchema = 1;
        var prodAnzahl = 2;
        var prodHilightBildErste = 3;
        var prodHilightBildZweite = 4;
        var prodHilightBildDritte = 5;
        var prodHilightBildVierte = 6;
        var prodHilightBildFuenfte = 7;
        var prodErste = 8;
        var prodZweite = 9;
        var prodDritte = 10;
        var prodVierte = 11;
        var prodFuenfte = 12
        var kompName = 0;
        var kompKleinesBild = 1;
        var kompSeite = 2;

        /* Konstantenarrays fuer die einzelnen Komponenten. */
        kompArrayNull = new Array("", "http://www.perma-trade.de/pf/bilder/kl_null.jpg", "#");
        kompArrayPrimus = new Array("permasolvent primus", "http://www.perma-trade.de/pf/bilder/kl_primus.jpg", "http://www.perma-trade.de/pf/komp/primus.html");
        kompArrayAktiv = new Array("permasolvent aktiv", "http://www.perma-trade.de/pf/bilder/kl_aktiv.jpg", "http://www.perma-trade.de/pf/komp/aktiv.html");
        kompArrayFilter = new Array("permaster filter", "http://www.perma-trade.de/pf/bilder/kl_filter.jpg", "http://www.perma-trade.de/pf/komp/filter.html");
        kompArrayVital = new Array("Vital Premium", "http://www.perma-trade.de/pf/bilder/kl_vital.jpg", "http://www.perma-trade.de/pf/komp/vital.html");
        kompArrayPermasolvent = new Array("permasolvent", "http://www.perma-trade.de/pf/bilder/kl_permasolvent.jpg", "http://www.perma-trade.de/pf/komp/permasolvent.html");
        kompArrayRwfilter = new Array("Rostwasserfilter", "http://www.perma-trade.de/pf/bilder/kl_rwfilter.jpg", "http://www.perma-trade.de/pf/komp/rwfilter.html");

        /* Konstantenarray, der saemtliche Informationen wie Bilder, Namen und Komponenten fuer die Produkte enthaelt. */
        var produktArray = new Array(10);
        produktArray[zeige_primus] = new Array(
                "permasolvent primus", "http://www.perma-trade.de/pf/bilder/schema_primus.jpg", 3,
                "http://www.perma-trade.de/pf/bilder/schema_primusHi1.jpg", "http://www.perma-trade.de/pf/bilder/schema_primus.jpg", "http://www.perma-trade.de/pf/bilder/schema_primusHi2.jpg", "", "",
                kompArrayPrimus, kompArrayNull, kompArrayFilter, 0, 0);
        produktArray[zeige_primus_vital] = new Array(
                "Vital Premium mit permasolvent primus", "http://www.perma-trade.de/pf/bilder/schema_primus.jpg", 4,
                "http://www.perma-trade.de/pf/bilder/schema_primusHi1.jpg", "http://www.perma-trade.de/pf/bilder/schema_primus.jpg", "http://www.perma-trade.de/pf/bilder/schema_primusHi2.jpg", "http://www.perma-trade.de/pf/bilder/schema_primus.jpg", "",
                kompArrayPrimus, kompArrayNull, kompArrayFilter, kompArrayVital, 0);
        produktArray[zeige_vital] = new Array(
                "Vital Premium", "http://www.perma-trade.de/pf/bilder/schema_vital.jpg", 1,
                "http://www.perma-trade.de/pf/bilder/schema_vitalHi1.jpg", "", "", "", "",
                kompArrayVital, 0, 0, 0, 0);
        produktArray[zeige_aktiv] = new Array(
                "permasolvent aktiv", "http://www.perma-trade.de/pf/bilder/schema_aktiv.jpg", 3,
                "http://www.perma-trade.de/pf/bilder/schema_aktivHi1.jpg", "http://www.perma-trade.de/pf/bilder/schema_aktiv.jpg", "http://www.perma-trade.de/pf/bilder/schema_aktivHi2.jpg", "", "",
                kompArrayAktiv, kompArrayNull, kompArrayFilter, 0, 0);
        produktArray[zeige_aktiv_sanus] = new Array(
                "permasolvent aktiv mit Vital Premium", "http://www.perma-trade.de/pf/bilder/schema_aktiv.jpg", 3,
                "http://www.perma-trade.de/pf/bilder/schema_aktivHi1.jpg", "http://www.perma-trade.de/pf/bilder/schema_aktiv.jpg", "http://www.perma-trade.de/pf/bilder/schema_aktivHi2.jpg", "", "",
                kompArrayAktiv, kompArrayVital, kompArrayFilter, 0, 0);
        produktArray[zeige_systemaktiv] = new Array(
                "System Aktiv Plus", "http://www.perma-trade.de/pf/bilder/schema_systemaktiv.jpg", 3,
                "http://www.perma-trade.de/pf/bilder/schema_systemaktivHi1.jpg", "http://www.perma-trade.de/pf/bilder/schema_systemaktivHi2.jpg", "http://www.perma-trade.de/pf/bilder/schema_systemaktivHi3.jpg", "", "",
                kompArrayAktiv, kompArrayPrimus, kompArrayFilter, 0, 0);
        produktArray[zeige_systemaktiv_sanus] = new Array(
                "System Aktiv Plus mit Vital Premium", "http://www.perma-trade.de/pf/bilder/schema_systemaktiv_sanus.jpg", 4,
                "http://www.perma-trade.de/pf/bilder/schema_systemaktiv_sanusHi1.jpg", "http://www.perma-trade.de/pf/bilder/schema_systemaktiv_sanusHi2.jpg", "http://www.perma-trade.de/pf/bilder/schema_systemaktiv_sanusHi3.jpg", "http://www.perma-trade.de/pf/bilder/schema_systemaktiv_sanus.jpg", "",
                kompArrayPrimus, kompArrayAktiv, kompArrayFilter, kompArrayVital, 0);
        produktArray[zeige_rostwasserpaket] = new Array(
                "Rostwasserpaket", "http://www.perma-trade.de/pf/bilder/schema_rostwasser.jpg", 4,
                "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi1.jpg", "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi5.jpg", "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi2.jpg", "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi3.jpg", "",
                kompArrayAktiv, kompArrayPermasolvent, kompArrayFilter, kompArrayRwfilter, 0);
        produktArray[zeige_rostwasserpaket_sanus] = new Array(
                "Rostwasserpaket mit Vital Premium", "http://www.perma-trade.de/pf/bilder/schema_rostwasser.jpg", 5,
                "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi1.jpg", "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi5.jpg", "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi2.jpg", "http://www.perma-trade.de/pf/bilder/schema_rostwasser.jpg", "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi3.jpg",
                kompArrayAktiv, kompArrayPermasolvent, kompArrayFilter, kompArrayVital, kompArrayRwfilter);
        produktArray[zeige_rostwasserpaket_filter] = new Array(
                "Rostwasserpaket mit Rostwasserfilter", "http://www.perma-trade.de/pf/bilder/schema_rostwasser.jpg", 3,
                "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi1.jpg", "http://www.perma-trade.de/pf/bilder/schema_rostwasser.jpg", "http://www.perma-trade.de/pf/bilder/schema_rostwasserHi2.jpg", "", "",
                kompArrayAktiv, kompArrayNull, kompArrayFilter, 0, 0);

/*
Variablen
*/
        var wasserhaerte = -1;
        var rohrleitungen = -1;
        var zirkulationsleitung_wasserbereitung = -1; // Werte: 0 = ohne Zirkulation, 1 = mit Zirkulation, 2 = mit therm. Solaranlage, 3 = mit Plattenwaermetauscher, 4 = mit dezentraler WW-Ber.
        var absicht = -1;

        var produkt; // Die Zuordnungstabelle

/*
Jetzt folgt die Realisierung der Zuordnungstabelle
*/

        var dimension1 = 4; //Erste Dimension des Arrays sind die vier unterschiedlichen Materialien
        var dimension2 = 5; //Zweite Dimension des Arrays sind die fuenf verschiedenen Zusatzoptionen
        var dimension3 = 12; //Dritte Dimension des Arrays sind die acht verschiedenen Absichten, die wie in permatrade_logik.doc beschrieben wird mit Integer Werten verbunden werden

        produkt = new Array(dimension1);
        for (var i = 0 ; i < dimension1 ; i++)
        {
                produkt[i] = new Array(dimension2);
                for(var j = 0 ; j < dimension2 ; j++)
                {
                        produkt[i][j] = new Array(dimension3);
                }
        }

        // Jetzt folgt die eigentliche Zuordnung, anstatt jedem Feld einzeln ein Produkt zuzuordnen wird nach uebereinstimmungen gesucht um Tipparbeit zu sparen
        // Es wird nicht der Produktname, sondern der Verweis auf eine .html Datei, die das Produkt naeher beschreibt.

        // Kalkschutz: Fuer Kalkschutz ist das Produkt der Wahl stets "primus"
        for ( var i = 0 ; i < dimension1 ; i++)
        {
                for ( var j = 0 ; j < dimension2 ; j++ )
                {
                        produkt[i][j][kalkschutz] = zeige_primus;
                }
        }
        // Korrosionsschutz: Der Korrosionsschutz ist bei jeder Materialgruppe gleich, ausser bei der letzten Materialgruppe, dort ist er nicht verfuegbar
        for ( var i = 0 ; i < (dimension1-1) ; i++)
        {
                if (rohrleitungen == 2) {
                        produkt[i][0][korrosionsschutz] = zeige_aktiv;
                }
                else {
                        produkt[i][0][korrosionsschutz] = zeige_rostwasserpaket;
                }
                produkt[i][1][korrosionsschutz] = zeige_rostwasserpaket;
                produkt[i][2][korrosionsschutz] = zeige_rostwasserpaket;
                produkt[i][3][korrosionsschutz] = zeige_rostwasserpaket;
                produkt[i][4][korrosionsschutz] = zeige_aktiv;
        }
        produkt[3][0][korrosionsschutz] = zeige_fehler; //Korrosionsschutz not Available
        produkt[3][1][korrosionsschutz] = zeige_fehler;
        produkt[3][2][korrosionsschutz] = zeige_fehler;
        produkt[3][3][korrosionsschutz] = zeige_fehler;
        produkt[3][4][korrosionsschutz] = zeige_fehler;

        // Rostwasser
        produkt[0][0][rostwasser] = zeige_rostwasserpaket;
        produkt[0][1][rostwasser] = zeige_rostwasserpaket_filter;
        produkt[0][2][rostwasser] = zeige_rostwasserpaket_filter;
        produkt[0][3][rostwasser] = zeige_rostwasserpaket_filter;
        produkt[0][4][rostwasser] = zeige_aktiv;

        produkt[1][0][rostwasser] = zeige_rostwasserpaket;
        produkt[1][1][rostwasser] = zeige_rostwasserpaket;
        produkt[1][2][rostwasser] = zeige_rostwasserpaket;
        produkt[1][3][rostwasser] = zeige_rostwasserpaket;
        produkt[1][4][rostwasser] = zeige_aktiv;

        produkt[2][0][rostwasser] = zeige_fehler; //Rostwasser not Available
        produkt[2][1][rostwasser] = zeige_fehler;
        produkt[2][2][rostwasser] = zeige_fehler;
        produkt[2][3][rostwasser] = zeige_fehler;
        produkt[2][4][rostwasser] = zeige_fehler;

        produkt[3][0][rostwasser] = zeige_fehler;
        produkt[3][1][rostwasser] = zeige_fehler;
        produkt[3][2][rostwasser] = zeige_fehler;
        produkt[3][3][rostwasser] = zeige_fehler;
        produkt[3][4][rostwasser] = zeige_fehler;

        // Vitalisierung: Fuer Vitalisierung ist das Produkt der Wahl fuer jede Materialgruppe ohne Edelstahl das gleiche
        for ( var i = 0 ; i < (dimension1 - 1) ; i++)
        {
                produkt[i][0][vitalisierung] = zeige_vital;
                produkt[i][1][vitalisierung] = zeige_vital;
                produkt[i][2][vitalisierung] = zeige_vital;
                produkt[i][3][vitalisierung] = zeige_vital;
                produkt[i][4][vitalisierung] = zeige_vital;
        }
        // Vitualisierung fuer Edelstahl
        produkt[3][0][vitalisierung] = zeige_aktiv_sanus;
        produkt[3][1][vitalisierung] = zeige_aktiv_sanus;
        produkt[3][2][vitalisierung] = zeige_aktiv_sanus;
        produkt[3][3][vitalisierung] = zeige_aktiv_sanus;
        produkt[3][4][vitalisierung] = zeige_aktiv_sanus;

        // Kalk- und Korrosionsschutz: Das Produkt der Wahl ist bei jeder Materialgruppe gleich, ausser bei der letzten Materialgruppe, dort ist Korrosionsschutz nicht verfuegbar
        for ( var i = 0 ; i < (dimension1-1) ; i++)
        {
                produkt[i][0][kalkschutz + korrosionsschutz] = zeige_systemaktiv;
                produkt[i][1][kalkschutz + korrosionsschutz] = zeige_systemaktiv;
                produkt[i][2][kalkschutz + korrosionsschutz] = zeige_systemaktiv;
                produkt[i][3][kalkschutz + korrosionsschutz] = zeige_systemaktiv;
                produkt[i][4][kalkschutz + korrosionsschutz] = zeige_systemaktiv;
        }
        produkt[3][0][kalkschutz + korrosionsschutz] = zeige_primus; //Korrosion not Available
        produkt[3][1][kalkschutz + korrosionsschutz] = zeige_primus;
        produkt[3][2][kalkschutz + korrosionsschutz] = zeige_primus;
        produkt[3][3][kalkschutz + korrosionsschutz] = zeige_primus;
        produkt[3][4][kalkschutz + korrosionsschutz] = zeige_primus;

        // Kalkschutz und Vitalisierung: Das Produkt der Wahl ist Material unabhaengig
        for ( var i = 0 ; i < dimension1 ; i++)
        {
                produkt[i][0][kalkschutz + vitalisierung] = zeige_primus_vital;
                produkt[i][1][kalkschutz + vitalisierung] = zeige_primus_vital;
                produkt[i][2][kalkschutz + vitalisierung] = zeige_primus_vital;
                produkt[i][3][kalkschutz + vitalisierung] = zeige_primus_vital;
                produkt[i][4][kalkschutz + vitalisierung] = zeige_primus_vital;
        }

        // Korrosionsschutz und Vitalisierung: Das Produkt der Wahl ist Material unabhaengig, in der letzten Materialkategorie gibt es allerdings keinen Korrosiosnschutz
        for ( var i = 0 ; i < (dimension1-1) ; i++)
        {
                if (rohrleitungen == 0)
                        produkt[i][0][korrosionsschutz + vitalisierung] = zeige_aktiv_sanus;
                else
                        produkt[i][0][korrosionsschutz + vitalisierung] = zeige_rostwasserpaket_sanus;
                produkt[i][1][korrosionsschutz + vitalisierung] = zeige_rostwasserpaket_sanus;
                produkt[i][2][korrosionsschutz + vitalisierung] = zeige_rostwasserpaket_sanus;
                produkt[i][3][korrosionsschutz + vitalisierung] = zeige_rostwasserpaket_sanus;
                produkt[i][4][korrosionsschutz + vitalisierung] = zeige_aktiv_sanus;
        }

        produkt[3][0][korrosionsschutz + vitalisierung] = zeige_vital;
        produkt[3][1][korrosionsschutz + vitalisierung] = zeige_vital;
        produkt[3][2][korrosionsschutz + vitalisierung] = zeige_vital;
        produkt[3][3][korrosionsschutz + vitalisierung] = zeige_vital;
        produkt[3][4][korrosionsschutz + vitalisierung] = zeige_vital;

        // Kalk- und Korrosiosnschutz und Vitalisierung: Das Produkt der Wahl ist Materialunabhaengig, in der letzten Materialkategorie gibt es allerdings keinen Korrosionsschutz
        for ( var i = 0 ; i < (dimension1-1) ; i++)
        {
                produkt[i][0][kalkschutz + korrosionsschutz + vitalisierung] = zeige_systemaktiv_sanus;
                produkt[i][1][kalkschutz + korrosionsschutz + vitalisierung] = zeige_systemaktiv_sanus;
                produkt[i][2][kalkschutz + korrosionsschutz + vitalisierung] = zeige_systemaktiv_sanus;
                produkt[i][3][kalkschutz + korrosionsschutz + vitalisierung] = zeige_systemaktiv_sanus;
                produkt[i][4][kalkschutz + korrosionsschutz + vitalisierung] = zeige_systemaktiv_sanus;
        }

        produkt[3][0][kalkschutz + korrosionsschutz + vitalisierung] = zeige_primus_vital;
        produkt[3][1][kalkschutz + korrosionsschutz + vitalisierung] = zeige_primus_vital;
        produkt[3][2][kalkschutz + korrosionsschutz + vitalisierung] = zeige_primus_vital;
        produkt[3][3][kalkschutz + korrosionsschutz + vitalisierung] = zeige_primus_vital;
        produkt[3][4][kalkschutz + korrosionsschutz + vitalisierung] = zeige_primus_vital;
/*
 * Diese Funktion wird aufgerufen, sobald die Auswahl der Absicht im Formular veraendert wurde.
 * Die Funktion uebernimmt den neuen Wert und ueberprueft, ob irgendwelche Zusatzbedingungen im Konflikt mit der aktuellen Auswahl stehen
 */
function setAbsicht(wert)
{
        if ( wert == -1 )
                return;
        else
                absicht = parseInt(wert);

        checkAll();
}

/*
 * Diese Funktion wird aufgerufen, sobald die Auswahl der Wasserhaerte im Formular veraendert wurde.
 * Die Funktion uebernimmt den neuen Wert und ueberprueft, ob irgendwelche Zusatzbedingungen im Konflikt mit der aktuellen Auswahl stehen
 */
function setWasserhaerte(wert)
{
        if ( wert == -1 )
                return;
        else
                wasserhaerte = parseInt(wert);

        checkAll();
}

/*
 * Diese Funktion wird aufgerufen, sobald die Auswahl der Art der Rohrleitung im Formular veraendert wurde.
 * Die Funktion uebernimmt den neuen Wert und ueberprueft, ob irgendwelche Zusatzbedingungen im Konflikt mit der aktuellen Auswahl stehen
 */
function setRohrleitung(wert)
{
        if ( wert == -1)
                return
        else
                rohrleitungen = parseInt(wert);

        checkAll();
}

/*
 * Diese Funktion wird aufgerufen, sobald die Auswahl der Wasserbereitung im Formular veraendert wurde.
 * Die Funktion uebernimmt den neuen Wert und ueberprueft, ob irgendwelche Zusatzbedingungen im Konflikt mit der aktuellen Auswahl stehen
 */
function setWasserbereitung(wert)
{
        if ( wert == -1 )
                return
        else
                zirkulationsleitung_wasserbereitung = parseInt(wert);

        checkAll();
}

/*
 *Diese Funktion sucht das passende Produkt und praesentiert es
 */
function zeigeProdukt()
{
        var zielProdukt;

        //Ist die Auswahl unvollstaendig wird der Benutzer gebeten seine Angabe zu vervollstaendigen
        if ( wasserhaerte == -1 || rohrleitungen == -1 || zirkulationsleitung_wasserbereitung == -1 || absicht == -1)  {
                document.getElementById("meldung").innerHTML = "Bitte treffen Sie Ihre Auswahl und versuchen es dann erneut.";
                document.getElementById("meldung").style.display = "block";
                return;
        }

        zielProdukt = produkt[rohrleitungen][zirkulationsleitung_wasserbereitung][absicht]; // Das passende Produkt aus dem 3 dimensionalen Array raussuchen.

        if(zielProdukt == zeige_fehler) {
                document.getElementById("meldung").innerHTML = "Ein interner Fehler wurde nicht abgefangen! Versuchen Sie es erneut.";
                document.getElementById("meldung").style.display = "block";
        }
        else {
                document.getElementById("ausgabe").style.display = "block";


                // Darstellung der Ergebnisse
                document.getElementById("produktname").innerHTML = produktArray[zielProdukt][prodName];
                einbauschema.src = produktArray[zielProdukt][prodSchema];


                // Komponente 1
                if (produktArray[zielProdukt][prodAnzahl] >= 1) {
                        document.getElementById("komponente1").innerHTML =
                                "<a href=\"\" onClick=\"window.open('" + produktArray[zielProdukt][prodErste][kompSeite] +
                                "','','toolbar=no,status=no,menubar=no,scrollbars=yes,width=750,height=500,top=50,left=50');return false;\" " +
                                "onMouseOver=\"bildwechselOver(" + zielProdukt + ", 1)\" onMouseOut=\"bildwechselOut(" + zielProdukt + ")\">" +
                                "<img src=\"" + produktArray[zielProdukt][prodErste][kompKleinesBild] + "\" alt=\"" +
                                produktArray[zielProdukt][prodErste][kompName] + "\" border=\"0\" style=\"VERTICAL-ALIGN: middle\"> " +
                                produktArray[zielProdukt][prodErste][kompName] + " </a>";
                }
                else {
                        document.getElementById("komponente1").innerHTML = "";
                }
                // Komponente 2
                if (produktArray[zielProdukt][prodAnzahl] >= 2) {
                        document.getElementById("komponente2").innerHTML =
                                "<a href=\"\" onClick=\"window.open('" + produktArray[zielProdukt][prodZweite][kompSeite] +
                                "','','toolbar=no,status=no,menubar=no,scrollbars=yes,width=750,height=500,top=50,left=50');return false;\" " +
                                "onMouseOver=\"bildwechselOver(" + zielProdukt + ", 2)\" onMouseOut=\"bildwechselOut(" + zielProdukt + ")\">" +
                                "<img src=\"" + produktArray[zielProdukt][prodZweite][kompKleinesBild] + "\" alt=\"" +
                                produktArray[zielProdukt][prodZweite][kompName] + "\" border=\"0\" style=\"VERTICAL-ALIGN: middle\"> " +
                                produktArray[zielProdukt][prodZweite][kompName] + " </a>";
                }
                else {
                        document.getElementById("komponente2").innerHTML = "";
                }
                // Komponente 3, nur fuer optionale Vital Premium oder (Rostwasser)Filter
                if (produktArray[zielProdukt][prodAnzahl] >= 3) {
                        document.getElementById("komponente3").innerHTML =
                                "<b>Zus&auml;tzlich empfehlen wir:</b><br>" +
                                "<a href=\"\" onClick=\"window.open('" + produktArray[zielProdukt][prodDritte][kompSeite] +
                                "','','toolbar=no,status=no,menubar=no,scrollbars=yes,width=750,height=500,top=50,left=50');return false;\" " +
                                "onMouseOver=\"bildwechselOver(" + zielProdukt + ", 3)\" onMouseOut=\"bildwechselOut(" + zielProdukt + ")\">" +
                                "<img src=\"" + produktArray[zielProdukt][prodDritte][kompKleinesBild] + "\" alt=\"" +
                                produktArray[zielProdukt][prodDritte][kompName] + "\" border=\"0\" style=\"VERTICAL-ALIGN: middle\"> " +
                                produktArray[zielProdukt][prodDritte][kompName] + " </a>";
                }
                else {
                        document.getElementById("komponente3").innerHTML = "";
                }
                // Komponente 4, nur fuer optionale Vital Premium oder (Rostwasser)Filter
                if (produktArray[zielProdukt][prodAnzahl] >= 4) {
                        document.getElementById("komponente4").innerHTML =
                                "<br><a href=\"\" onClick=\"window.open('" + produktArray[zielProdukt][prodVierte][kompSeite] +
                                "','','toolbar=no,status=no,menubar=no,scrollbars=yes,width=750,height=500,top=50,left=50');return false;\" " +
                                "onMouseOver=\"bildwechselOver(" + zielProdukt + ", 4)\" onMouseOut=\"bildwechselOut(" + zielProdukt + ")\">" +
                                "<img src=\"" + produktArray[zielProdukt][prodVierte][kompKleinesBild] + "\" alt=\"" +
                                produktArray[zielProdukt][prodVierte][kompName] + "\" border=\"0\" style=\"VERTICAL-ALIGN: middle\"> " +
                                produktArray[zielProdukt][prodVierte][kompName] + " </a>";
                }
                else {
                        document.getElementById("komponente4").innerHTML = "";
                }
                // Komponente 5, nur fuer optionale Vital Premium oder (Rostwasser)Filter
                if (produktArray[zielProdukt][prodAnzahl] >= 5) {
                        document.getElementById("komponente5").innerHTML =
                                "<a href=\"\" onClick=\"window.open('" + produktArray[zielProdukt][prodFuenfte][kompSeite] +
                                "','','toolbar=no,status=no,menubar=no,scrollbars=yes,width=750,height=500,top=50,left=50');return false;\" " +
                                "onMouseOver=\"bildwechselOver(" + zielProdukt + ", 5)\" onMouseOut=\"bildwechselOut(" + zielProdukt + ")\">" +
                                "<img src=\"" + produktArray[zielProdukt][prodFuenfte][kompKleinesBild] + "\" alt=\"" +
                                produktArray[zielProdukt][prodFuenfte][kompName] + "\" border=\"0\" style=\"VERTICAL-ALIGN: middle\"> " +
                                produktArray[zielProdukt][prodFuenfte][kompName] + " </a>";
                }
                else {
                        document.getElementById("komponente5").innerHTML = "";
                }
        }
}

/*
 *Diese Funktion ueberprueft, ob bei einer ausgewaehlten Absicht das Material eine Rolle spielt.
 */
function materialUnabhaengig(absicht)
{
        var temp = new Array(5);
        temp[0] = produkt[0][0][absicht];
        temp[1] = produkt[0][1][absicht];
        temp[2] = produkt[0][2][absicht];
        temp[3] = produkt[0][3][absicht];
        temp[4] = produkt[0][4][absicht];

        for ( var i = 1 ; i < dimension1 ; i++)
        {
                for ( var j = 0 ; j < dimension2 ; j++)
                {
                        if ( produkt[i][j][absicht] != temp[j] )
                                return false;
                }
        }

        return true;
}
/*
 * Diese Funktion ueberprueft, ob bei einer ausgewaehlten Absicht die weitere Auswahl eine Rolle spielt.
 */
function weitereAuswahlUnabhaengig(absicht, rohrleitungen)
{
        var temp;
        temp = rohrleitungen

        if (produkt[temp][0][absicht] == produkt[temp][1][absicht] && produkt[temp][0][absicht] == produkt[temp][2][absicht] && produkt[temp][0][absicht] == produkt[temp][3][absicht] && produkt[temp][0][absicht] == produkt[temp][4][absicht])
                return true;
        else
                return false;
}

/*
 * Diese Funktion ueberprueft, ob alle Bedingungen erfuellt sind.
 */
function checkAll()
{
        // Alle Zusatzbedingungen setzen eine bestimmte Absicht vorraus, ist keine Absicht ausgewaehlt, muessen sie auch nicht ueberprueft werden.
        if (absicht == -1) {
                return;
        }

        document.getElementById("meldung").style.display = "none";
        document.getElementById("ausgabe").style.display = "none";

        var needKorr;
        needKorr = needKorrosionsschutz();
        // Korrosionsschutz aufgrund der Wasserhaerte nicht notwendig
        if ( needKorr == 0 )
        {
                absicht = absicht - korrosionsschutz;
                if ( absicht != 0 )
                {
                        // nur Hinweis geben
                        document.getElementById("meldung").innerHTML = "F&uuml;r weiches Wasser ist kein Korrosionsschutz notwendig!";
                        document.getElementById("meldung").style.display = "block";
                        selectAbsicht(absicht);
                }
                else
                {
                        // Auswahl aufheben, wenn ausschliesslich Korrosionsschutz gewaehlt wurde
                        document.getElementById("meldung").innerHTML = "F&uuml;r weiches Wasser ist kein Korrosionsschutz notwendig!";
                        document.getElementById("meldung").style.display = "block";
                        absicht = -1;
                        selectAbsicht(absicht);
                        return; // Ist die absicht wieder zurueckgesetzt, sollen keine weiteren Pruefungen gemacht werden
                }
        }
        // Korrosionsschutz aufgrund des Leitungsmaterials nicht notwendig
        else if ( needKorr == 1 )
        {
                absicht = absicht - korrosionsschutz;
                if ( absicht != 0 )
                {
                        // Nur Hinweis ausgeben
                        document.getElementById("meldung").innerHTML = "F&uuml;r Edelstahl oder Kunststoffrohre ist kein Korrosionsschutz notwendig!";
                        document.getElementById("meldung").style.display = "block";
                        selectAbsicht(absicht);
                }
                else
                {
                        // Auswahl aufheben, wenn ausschliesslich Korrosionsschutz gewaehlt wurde
                        document.getElementById("meldung").innerHTML = "F&uuml;r Edelstahl oder Kunststoffrohre ist kein Korrosionsschutz notwendig!";
                        document.getElementById("meldung").style.display = "block";
                        absicht = -1;
                        selectAbsicht(absicht);
                        return; // Ist die absicht wieder zurueckgesetzt, sollen keine weiteren Pruefungen gemacht werden
                }
        }

        var needKalk;
        needKalk = needKalkschutz();

        if ( needKalk == 0 )
        {
                document.getElementById("meldung").innerHTML = "Bei hartem Wasser ist Kalkschutz unbedingt zu empfehlen. " +
                        "<a href=\"javascript:absicht=" + (absicht + kalkschutz) + ";selectAbsicht(" + (absicht + kalkschutz) + ");checkAll()\">Kalkschutz hinzuf&uuml;gen</a>";
                document.getElementById("meldung").style.display = "block";
        }
        else if ( needKalk == 1 )
        {
                document.getElementById("meldung").innerHTML = "Um einen effizienten Betrieb der thermischen Solaranlage ab mittlhartem Wasser zu gew&auml;hrleisten, ist Kalkschutz unbedingt zu empfehlen. " +
                        "<a href=\"javascript:absicht=" + (absicht + kalkschutz) + ";selectAbsicht(" + (absicht + kalkschutz) + ");checkAll()\">Kalkschutz hinzuf&uuml;gen</a>";
                document.getElementById("meldung").style.display = "block";
        }
        else if ( needKalk == 2 )
        {
                document.getElementById("meldung").innerHTML = "Um einen effizienten Betrieb des Plattenw&auml;rmetauschers ab mittelhartem Wasser zu gew&auml;hrleisten, ist Kalkschutz unbedingt zu empfehlen. " +
                        "<a href=\"javascript:absicht=" + (absicht + kalkschutz) + ";selectAbsicht(" + (absicht + kalkschutz) + ");checkAll()\">Kalkschutz hinzuf&uuml;gen</a>";
                document.getElementById("meldung").style.display = "block";
        }

        var needRost;
        needRost = needRostwasser();
        if ( needRost == 0 )
        {
                document.getElementById("meldung").innerHTML = "F&uuml;r Kupfer-, Edelstahl- oder Kunststoffrohre ist kein Rostwasserschutz notwendig!";
                document.getElementById("meldung").style.display = "block";
                absicht = -1;
                selectAbsicht(absicht);
                return; // Ist die absicht wieder zurueckgesetzt, sollen keine weiteren Pruefungen gemacht werden
        }
}

/*
 * Diese Funktion ueberprueft, ob bei gegebenem Haertegrad Kalkschutz notwendig ist.
 * Gibt -1 zurueck, wenn nicht.
 * Gibt 0 zurueck, wenn ja, wenn die wasserhaerte zu hoch ist.
 * Gibt 1 zurueck, wenn ja, wenn die wasserhaerte zu hoch fuer eine therm. Solaranlage ist.
 * Gibt 1 zurueck, wenn ja, wenn die wasserhaerte zu hoch fuer einen Plattenwaermetauscher ist.
 */
function needKalkschutz()
{
        if ( absicht == kalkschutz || absicht == kalkschutz + korrosionsschutz || absicht == kalkschutz + vitalisierung || absicht == kalkschutz + korrosionsschutz + vitalisierung )
                return -1; // Ist Kalkschutz bereits mitausgewaehlt, wird dieser nicht zusaetlicher benoetigt
        else if ( wasserhaerte >= 2 )
                return 0; // Ab Haertebereich 3 wird Kalkschutz empfohlen
        else if ( wasserhaerte >= 1 )
        {
                if ( zirkulationsleitung_wasserbereitung == 2 )
                        return 1;
                if ( zirkulationsleitung_wasserbereitung == 3 )
                        return 2;
        }

        return -1;
}
/*
 * Diese Funktion ueberprueft, ob Korrosionsschutz ueberhaupt notwendig ist.
 * Korrosionschutz ist nicht notwendig, wenn der Haertegrad des Wassers 1 ist und wenn Kunststoff oder Edelstahl Rohre
 * verwendet werden.
 * Gibt -1 zurueck, wenn gar kein Korrosionsschutz ausgewaehlt wurde.
 * Gibt 0 zurueck, wenn auf Grund der Wasserhaerte kein Korrosionsschutz noetig ist.
 * Gibt 1 zurueck, wenn auf Grund der Leitungsart kein Korrosionsschutz noetig ist.
 */
function needKorrosionsschutz()
{
        if ( !(absicht == korrosionsschutz || absicht == kalkschutz + korrosionsschutz || absicht == korrosionsschutz + vitalisierung || absicht == kalkschutz + korrosionsschutz + vitalisierung) || absicht == -1)
                return -1;
        else if ( wasserhaerte == 0 )
                return 0;
        else if ( rohrleitungen == 3)
                return 1;
}

/*
 * Diese Funktion ueberprueft, ob Rostwasser notwendig ist.
 * Rostwasser ist nicht notwendig, wenn die Leitungsart Kupfer, Stahl oder Kunststoff ist.
 * Gibt -1 zurueck, wenn kein Rostwasserschutz ausgewaehlt wurde
 * Gibt 0 zurueck, wenn auf Grund der Leitungsart keine Rostwasserschutz moeglich ist.
 * Gibt ansonsten 1 zurueck.
 */
function needRostwasser()
{
        if (rohrleitungen == -1 || absicht == -1) {
                return 1;
        }
        if (absicht != rostwasser) {
                return -1;
        }
        if (rohrleitungen >= 2) {
                return 0;
        }
}

/*
 * Diese Funktion selektiert zur angegebenen Absicht die richtige Option in der Dropdownliste der html Seite
 */
function selectAbsicht()//absicht)
{
        if ( absicht == -1 )
                document.produktForm.Absicht.options[8].selected = true;
        if ( absicht == kalkschutz)
                document.produktForm.Absicht.options[0].selected = true;
        if ( absicht == korrosionsschutz)
                document.produktForm.Absicht.options[1].selected = true;
        if ( absicht == rostwasser)
                document.produktForm.Absicht.options[2].selected = true;
        if ( absicht == vitalisierung)
                document.produktForm.Absicht.options[3].selected = true;
        if ( absicht == kalkschutz + korrosionsschutz)
                document.produktForm.Absicht.options[4].selected = true;
        if ( absicht == kalkschutz + vitalisierung)
                document.produktForm.Absicht.options[5].selected = true;
        if ( absicht == korrosionsschutz + vitalisierung)
                document.produktForm.Absicht.options[6].selected = true;
        if ( absicht == kalkschutz + korrosionsschutz + vitalisierung)
                document.produktForm.Absicht.options[7].selected = true;
}
/*
 * Diese Funktion wird vom Reset Knopf des Formulares aufgerufen um die Werte zurueckzusetzen
 */
function resetValues()
{
        wasserhaerte = -1;
        rohrleitungen = -1;
        zirkulationsleitung_wasserbereitung = -1;
        absicht = -1;

        document.produktForm.reset();
}

/*
 * Fuer den onMouseOver-Effekt bei den Schemabildern
 */
function bildwechselOver(zielProdukt, komponente) {
        einbauschema.src = produktArray[zielProdukt][prodHilightBildErste + komponente - 1];
        return true;
}

/*
 * Fuer den onMouseOut-Effekt bei den Schemabildern
 */
function bildwechselOut(zielProdukt) {
        einbauschema.src = produktArray[zielProdukt][prodSchema];
        return true;
}