/* Färbt den Hintergrund von Eingabefeldern weiss
 * inp ist ein Array mit den Objekten der Eingabefelder
 */
function bg_w(inp) {
    for (i=0; i<inp.length; i++) {
        if (typeof inp[i] == 'object') {
            inp[i].style.backgroundColor = "#ffffff";
        }
    }
}

/* Färbt den Hintergrund von Eingabefeldern rot
 * inp ist ein Array mit den Objekten der Eingabefelder
 */
function bg_r(inp) {
    for (i=0; i<inp.length; i++) {
        if (typeof inp[i] == 'object') {
            inp[i].style.backgroundColor = "#ffc6a8";
        }
    }
}


/* Prüft die Fahrzeugnummer auf Korrektheit */
function validateFZNR (FZNR) {
    var regex_fznr = /^[a-zA-Z0-9]{3}-?[a-zA-Z0-9]{4}$/;
    if (regex_fznr.test(FZNR)) { return true; }
    else { return false; }
}


/* Prüft die FIN auf Korrektheit */
function validateFIN (FIN) {
    var regex_fin = /^[a-zA-Z0-9]{17}$/;
    if (regex_fin.test(FIN)) { return true; }
    else { return false; }
}


/* Prüft die Grundfahrzeug-Nr. auf Korrektheit */
function validateGFZNR (GFZNR) {
    var regex_gfznr = /^[a-zA-Z0-9]{8}$/;
    if (regex_gfznr.test(GFZNR)) { return true; }
    else { return false; }
}


/* Prüft die AE-Nr. auf Korrektheit */
function validateAENR (AENR) {
    var regex_aenr = /^[a-zA-Z0-9]{4}\/?[a-zA-Z0-9]{5}$/;
    if (regex_aenr.test(AENR)) { return true; }
    else { return false; }
}


/* Prüft ob Fahrzeugnummer und FIN zusammenpassen */
function validateCombination_FZNR_FIN(FZNR, FIN) {
    var part_fznr = FZNR.substr(0, 3);
    var part_fin  = FIN.substr(3, 3);
    if (part_fznr.toLowerCase() == part_fin.toLowerCase()) { return true; }
    else { return false; }
}

/* prueft, ob Emailadresse korrekt ist */
function validateEmail(email) {
    var regex_mail_1 = /^[^\.]{2,}\./;
    var regex_mail_2 = /\.([^\.]{2,})$/;

    var ar;

    ar = email.split('@');

    // Es darf nur ein einziges @ enthalten sein
    if (ar.length != 2) { return false; }

    // Es muss mindestens ein Zeichen vor dem @ stehen
    if (ar[0].length < 1) { return false; }

    var test_mail_1 = regex_mail_1.test(ar[1]);
    var test_mail_2 = regex_mail_2.test(ar[1]);

    // Es muessen mindestens zwei Zeichen zwischen @ und einem . stehen
    if (! test_mail_1) { return false; }

    // Es muessen mindestens zwei Zeichen nach dem letzten . stehen
    if (! test_mail_2) { return false;}

    return true;
}

/* prueft ob "value" ungueltige Zeichen enthaelt
 * fuer Name, Vorname, Straße, Ort, Land
 */
function validateName(value) {
    var blacklist_name = /[\(\)\[\]\{\}\%\$\§\"!\^°=?\\\/\*\#\~\<\>\|\@\€\&;]/;
    var enthaeltUngueltigeZeichen = blacklist_name.test(value);
    // "value" enthaelt ungueltige Zeichen
    if( enthaeltUngueltigeZeichen ) { return false; }
    return true;
}

/* prueft ob "value" ungueltige Zeichen enthaelt */
function validateFirma(value) {
    var blacklist_firma = /[\[\]\{\}\%\$\§!\^°=?\\\*\#\~\<\>\|\€]/;
    var enthaeltUngueltigeZeichen = blacklist_firma.test(value);
    // "value" enthaelt ungueltige Zeichen
    if( enthaeltUngueltigeZeichen ) { return false; }
    return true;
}

/* prueft ob die Postleitzahl nur aus Zahlen besteht und maximal 10 Stellen hat */
function validatePlz(plz) {
    var regex_plz = /^[\w\- ]{1,10}$/;
    var isOk = regex_plz.test(plz);
    return isOk;
}

/* prueft, ob Telefon- oder Faxnummer ungueltige Zeichen enthaelt */
function validateTelefonFax(nummer) {
    var regex_telefon_fax = /^[\/ \-\(\)+0-9]+$/;
    var isOk = regex_telefon_fax.test(nummer);
    return isOk;
}

/* prüft ob nur Buchstaben, Zahlen oder das °-Zeichen im value eingetragen sind */
function validateLage_Nebenabtrieb(value) {
    var whitelist = /^[\w°]+$/;
    var isOk = whitelist.test(value);
    return isOk;
}

function toggle(div) {
    if (document.getElementById(div)) {
        var obj = document.getElementById(div);
        if (obj.style.display == 'none') {
            obj.style.display = 'block';
        }
        else {
            obj.style.display = 'none';
        }
        return true;
    }
    else {
        return false;
    }
}

/*
function getMaxInputSize(kind) {
    var size = new Object();
    size["AE_NUMMER"] = 15;
    size["ANREDE"]    = 10;
    size["DEBITORENNUMMER"] = 15;
    size["EMAIL"] = 100;
    size["FAX"]   = 60;
    size["FIN"]   = 20;
    size["FIRMA"] = 60;
    size["FZNR"]  = 10;
    size["GFZNR"] = 50;
    size["KUNDE"] = 20;
    size["LAND"]  = 6;
    size["NAME"]  = 60;
    size["ORT"]   = 80;
    size["ORT_KUNDE"] = 120;
    size["PLZ"]       = 20;
    size["STRASSE"]   = 80;
    size["TELEFON"]   = 40;
    size["VORNAME"]   = 50;
    size["ZUSATZ_ANTWORT"] = 10;

    if (typeof(size[kind]) != 'undefined') {
        return size[kind];
    }
    else {
        return 0;
    }
}


function validateInputSize(kind, val) {
    var size = getMaxInputSize(kind);

    if (size > 0) {
        if (val.length <= size) { return true; }
        else { return false; }
    }
    else { return false; }
}
*/


/* Generiert die Fehlermeldung, wenn FIN und FZNR nicht zusammenpassen */
function errmsg_Combination_FZNR_FIN(FZNR, FIN) {
    var text = "";
    var fin_1 = FIN.substr(0,3);
    var fin_2 = FIN.substr(3,3);
    var fin_3 = FIN.substr(6);

    var fznr_1 = FZNR.substr(0,3);
    var fznr_2 = FZNR.substr(3);

    text += WF_TEXTE.ANTRAG_COMBINATION_FZNR_FIN_ERR_1
         +  " ( " + fin_1
         +  " <b>" + fin_2 + "</b> "
         +  fin_3 + " ) "
         +  WF_TEXTE.ANTRAG_COMBINATION_FZNR_FIN_ERR_2
         +  " ( <b>" + fznr_1 + "</b> "
         +  fznr_2 + " ) "
         +  WF_TEXTE.ANTRAG_COMBINATION_FZNR_FIN_ERR_3
         ;

    return text;
}


/* prüft ob die Aufbauart jeweils nur einmal vorkommt
 * hier im Fall, dass nur die beiden Eingabefelder
 * Aufbauart und Aufbauart (detailliert) vorhanden sind
 */
function validateAufbauAufbaudetail() {
    var cnt = document.getElementById('DET_INP_CNT_AUFBAU').value;

    var art_a = new Array();
    var art_h = new Object();
    var tmp_a = new Array();
    var art_text = new Array();

    var err_text = "";

    for (i=0; i<=cnt; i++) {
        if (document.getElementById('DET_INP_AUFBAUART_' + i) &&
            document.getElementById('DET_INP_AUFBAUART_DETAIL_' + i) )
        {
            var sel = document.getElementById('DET_INP_AUFBAUART_' + i);
            var aufbauart = sel.options[sel.selectedIndex].value;
            var aufbauart_text = sel.options[sel.selectedIndex].text;

            if (aufbauart != "") {
                art_a.push(aufbauart);
                art_h[aufbauart] = aufbauart_text;
            }
        }
    }

    for (var tmp in art_h) {
        tmp_a.push(tmp);
    }

    if (art_a.length == tmp_a.length) {
        return err_text;
    }
    else {
        var s = art_a.join(", ") + ", ";
        var tmp = new Array();

        for (i=0; i<tmp_a.length; i++) {
            s = s.replace(tmp_a[i] + ", ", "");
        }

        s = s.replace(/, $/, "");
        tmp = s.split(",");

        for (i=0; i<tmp.length; i++) {
            tmp[i] = art_h[tmp[i]];
        }

        s = tmp.join(", ");

        err_text += WF_TEXTE.AUFBAU_AUFBAUART_ERR_1 + " "
                 +  WF_TEXTE.AUFBAU_AUFBAUART_ERR_2 + ": "
                 +  s + "\n";

        return err_text;
    }
}


/* prüft ob die Aufbauart jeweils nur einmal vorkommt
 * hier im Fall, dass die Eingabefelder für die Maske
 * Sattelvormassberechnung vorhanden sind
 *
 * ata: 15.06.2009 :
 * - Fehlermeldung hinzugefuegt, wenn die Aufbauart leer ist, aber die
 *   Felder typ, abmessung, masse und schwerpunkt gefuellt sind.
 * - Feld-Inhalte in Variablen geschrieben.
 */
function validateAufbauGewichtsbilanz() {
    var cnt = document.getElementById('DET_INP_CNT_AUFBAU').value;

    var art_a = new Array();
    var art_h = new Object();
    var tmp_a = new Array();

    var err_text = "";

    for (i=0; i<=cnt; i++) {
        if (document.getElementById('DET_INP_AUFBAUART_' + i)  &&
            document.getElementById('DET_INP_TYP_' + i) &&
            document.getElementById('DET_INP_ABMESSUNG_' + i) &&
            document.getElementById('DET_INP_MASSE_' + i) &&
            document.getElementById('DET_INP_SCHWERPUNKT_' + i) )
        {
            var sel = document.getElementById('DET_INP_AUFBAUART_' + i);
            var aufbauart = sel.options[sel.selectedIndex].value;
            var aufbauart_text = sel.options[sel.selectedIndex].text;

            var typ         = document.getElementById('DET_INP_TYP_' + i).value;
            var abmessung   = document.getElementById('DET_INP_ABMESSUNG_' + i).value;
            var masse       = document.getElementById('DET_INP_MASSE_' + i).value;
            var schwerpunkt = document.getElementById('DET_INP_SCHWERPUNKT_' + i).value;

            if (aufbauart != "") {
                if (typ == "" || abmessung == "" || masse == "" || schwerpunkt == "") {
                    err_text += aufbauart_text + ": "
                             +  WF_TEXTE.AUFBAU_GEWICHTSBILANZ_ERR_1 + "\n";
                }

                art_a.push(aufbauart);
                art_h[aufbauart] = aufbauart_text;
            }
            else if (aufbauart == "" && ( typ != "" || abmessung != "" || masse != "" || schwerpunkt != "" ))
            {
                err_text += WF_TEXTE.AUFBAU_GEWICHTSBILANZ_ERR_2 + "\n";
            }
        }
    }

    for (var tmp in art_h) {
        tmp_a.push(tmp);
    }

    if (art_a.length == tmp_a.length) {
        return err_text;
    }
    else {
        var s = art_a.join(", ") + ", ";
        var tmp = new Array();

        for (i=0; i<tmp_a.length; i++) {
            s = s.replace(tmp_a[i] + ", ", "");
        }

        s = s.replace(/, $/, "");
        tmp = s.split(",");

        for (i=0; i<tmp.length; i++) {
            tmp[i] = art_h[tmp[i]];
        }

        s = tmp.join(", ");

        err_text += WF_TEXTE.AUFBAU_AUFBAUART_ERR_1 + " "
                 +  WF_TEXTE.AUFBAU_AUFBAUART_ERR_2 + ": "
                 +  s + "\n";

        return err_text;
    }
}


/* Filtert führende und abschließende Leerzeichen aus den eingegebenen Daten heraus*/
function trimInput(inp) {
    inp = inp.replace(/^\s+/, '');
    inp = inp.replace(/\s+$/, '');
    return inp;
}


/* Schreibt die Fehlermeldungen als Liste in die Masken */
function display_errors(err_text) {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    var err_color = "#aa0000";
    var errors = err_text.split("\n");
    var err_innerhtml = "";

    // err_innerhtml += "<ul class=\"wf_errmsg\">";
    err_innerhtml += '<ul class="wf_errmsg simpleUL">';

    for (i=0; i < (errors.length - 1); i++) {
        // err_innerhtml += "<li class=\"wf_errmsg\" style=\"color:" + err_color + "\">";
        err_innerhtml += '<li class="wf_errmsg simpleLI" style="color:' + err_color + '">';
        err_innerhtml += errors[i];
        err_innerhtml += "</li>";
    }
    err_innerhtml += "</ul>";

    err_div.innerHTML = err_innerhtml;
    err_div.style.display = 'block';

    // Nach oben scrollen, wenn eine Nachricht angezeigt wurde
    window.scrollTo(0, 0);
}
/* Schreibt die Fehlermeldungen als Liste in die Masken */
function display_message(message_text) {
    var msg_div = document.getElementById('WF_PORTAL_ERRMSG');
    var msg_color = "#006600";
    var messages = message_text.split("\n");
    var msg_innerhtml = "";

    msg_innerhtml += '<ul class="wf_errmsg">';

    for (i=0; i < (messages.length - 1); i++) {
        msg_innerhtml += '<li class="wf_errmsg" style="color:' + msg_color + '">';
        msg_innerhtml += messages[i];
        msg_innerhtml += "</li>";
    }
    msg_innerhtml += "</ul>";

    if( msg_div ) {
        msg_div.innerHTML = msg_innerhtml;
        msg_div.style.display = 'block';
        msg_div.style.borderColor= msg_color;
    }

    // Nach oben scrollen, wenn eine Nachricht angezeigt wurde
    window.scrollTo(0, 0);
}

/* entfernt Fehlermeldung in WF-Masken */
function clear_errors() {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    if( err_div ) {
        err_div.innerHTML = '';
        err_div.style.display = 'none';
    }
}

/* Validierung Maske Fahrzeugparametrierung - AG Parametrierung */
// Korrektur: Nur Laengenpruefung bei FIN
//            Keine Typschluesselpruefung
function checkValues_para_fahrzeug(checkMotorChecklisten,checkServicedeskVorfall) {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_fznr, inp_fin, inp_bemerkung;
    var FZNR, FIN, BEMERKUNG;
    var chk_fin, chk_fznr, chk_combination;

    chk_fin  = false;
    chk_fznr = false;
    chk_combination = true;

    // Nutzerdaten
    //err_text += checkValues_nutzerdaten();
    err_text += checkValues_zusatzAntwort();
    err_text += checkValues_KopieAn();
	if( checkMotorChecklisten == 1 ) {
		err_text += checkValues_MotorChecklisten();
	}

    if( checkServicedeskVorfall == 1 ) {
		err_text += checkValues_ServicedeskVorfall();
	}


    // Inputfelder holen
    inp_fznr      = document.getElementById("INP_FZNR");
    inp_fin       = document.getElementById("INP_FIN");
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");

    // Werte aus Inputfeldern holen
    FZNR      = inp_fznr.value;
    FIN       = inp_fin.value;
    BEMERKUNG = inp_bemerkung.value;

    // Leerzeichen entfernen
    FZNR      = trimInput(FZNR);
    FIN       = trimInput(FIN);
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_fznr, inp_fin, inp_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);


    // FZNR muss immer ausgefüllt werden
    if( FZNR == "" ) {
        err_text += WF_TEXTE.ANTRAG_FZNR_EINGEBEN + "\n";
        bg_r(new Array(inp_fznr));
    }


    // Sind die Felder ausgefüllt ?
    //  Es muss wenigstens eines gefüllt sein.
    if (FZNR != "" || FIN != "") {

        // Daten pruefen
        if (FZNR != "") { chk_fznr = validateFZNR(FZNR); }
        //if (FIN != "")  { chk_fin  = validateFIN(FIN); }
        if(FIN != "") {
            if (FIN.length <= 30) { chk_fin = true; }
            else { chk_fin = false; }
        }

        // Wenn beide Felder gefüllt sind, muss zusaetzlich geprueft werden,
        // ob die Kombination FZNR und FIN zusammenpasst
        //if (FIN != "" && FZNR != "" && chk_fin && chk_fznr) {
        //    chk_combination = validateCombination_FZNR_FIN(FZNR, FIN);
        //}

        if (FZNR != "" && !chk_fznr) {
            err_text += WF_TEXTE.ANTRAG_FZNR_ERR + "\n";
            bg_r(new Array(inp_fznr));
        }
        if (FIN != "" && !chk_fin) {
            err_text += WF_TEXTE.ANTRAG_PARA_FZG_ERR_2 + "\n";
            bg_r(new Array(inp_fin));
        }
        //if (!chk_combination) {
        //    err_text += errmsg_Combination_FZNR_FIN(FZNR, FIN) + "\n";
        //    bg_r(new Array(inp_fin, inp_fznr));
        //}
    }
    // else {
        // err_text += WF_TEXTE.ANTRAG_PARA_FZG_ERR_1 + "\n";
        // bg_r(new Array(inp_fin, inp_fznr));
    // }

    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


function checkValues_para_kibes_kv() {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_bemerkung;

    // allgemeine Pruefungen
    //err_text += checkValues_nutzerdaten();  // Nutzerdaten
    err_text += checkValues_kunde();        // kunde
    err_text += checkValues_fahrzeugdaten(false);// FZG-Daten

    // Inputfelder holen
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }


    return err_text;
}


function checkValues_para_kibes_bestell() {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_bemerkung;

    // allgemeine Pruefungen
    //err_text += checkValues_nutzerdaten();  // Nutzerdaten
    err_text += checkValues_kunde();        // kunde
    err_text += checkValues_fahrzeugdaten(false);// FZG-Daten

    // Inputfelder holen
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }


    return err_text;
}


function checkValues_tender_rfq() {

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_bemerkung, inp_optionen_lkw, inp_beschreibung_aufbau, inp_optionen_aufbau, inp_transportgut;
    var inp_spezifisches_gewicht, inp_volumen, inp_medium, inp_gueltigkeitsdauer_angebot, inp_vertragsstrafe_verzug;
    var BEMERKUNG, OPTIONEN_LKW, BESCHREIBUNG_AUFBAU, OPTIONEN_AUFBAU, TRANSPORTGUT;
    var SPEZIFISCHES_GEWICHT, VOLUMEN, MEDIUM, GUELTIGKEITSDAUER_ANGEBOT, VERTRAGSSTRAFE_VERZUG;

    //err_text += checkValues_nutzerdaten();    // Nutzerdaten
    //err_text += checkValues_kunde();          // kunde, kunde (ort)
    //err_text += checkValues_fahrzeugdaten();  // FZG-Daten

    // Inputfelder holen
    inp_bemerkung                 = document.getElementById("DET_INP_BEMERKUNG");
    inp_optionen_lkw              = document.getElementById("DET_INP_OPTIONEN_LKW");
    inp_beschreibung_aufbau       = document.getElementById("DET_INP_BESCHREIBUNG_AUFBAU");
    inp_optionen_aufbau           = document.getElementById("DET_INP_OPTIONEN_AUFBAU");
    inp_transportgut              = document.getElementById("DET_INP_TRANSPORTGUT");
    inp_spezifisches_gewicht      = document.getElementById("DET_INP_SPEZIFISCHES_GEWICHT");
    inp_volumen                   = document.getElementById("DET_INP_VOLUMEN");
    inp_medium                    = document.getElementById("DET_INP_MEDIUM");
    inp_gueltigkeitsdauer_angebot = document.getElementById("DET_INP_GUELTIGKEITSDAUER_ANGEBOT");
    inp_vertragsstrafe_verzug     = document.getElementById("DET_INP_VERTRAGSSTRAFE_VERZUG");

    // Werte aus Inputfeldern holen
    BEMERKUNG                 = inp_bemerkung.value;
    OPTIONEN_LKW              = inp_optionen_lkw.value;
    BESCHREIBUNG_AUFBAU       = inp_beschreibung_aufbau.value;
    OPTIONEN_AUFBAU           = inp_optionen_aufbau.value;
    TRANSPORTGUT              = inp_transportgut.value;
    SPEZIFISCHES_GEWICHT      = inp_spezifisches_gewicht.value;
    VOLUMEN                   = inp_volumen.value;
    MEDIUM                    = inp_medium.value;
    GUELTIGKEITSDAUER_ANGEBOT = inp_gueltigkeitsdauer_angebot.value;
    VERTRAGSSTRAFE_VERZUG     = inp_vertragsstrafe_verzug.value;

    // Leerzeichen entfernen
    BEMERKUNG                 = trimInput(BEMERKUNG);
    OPTIONEN_LKW              = trimInput(OPTIONEN_LKW);
    BESCHREIBUNG_AUFBAU       = trimInput(BESCHREIBUNG_AUFBAU);
    OPTIONEN_AUFBAU           = trimInput(OPTIONEN_AUFBAU);
    TRANSPORTGUT              = trimInput(TRANSPORTGUT);
    SPEZIFISCHES_GEWICHT      = trimInput(SPEZIFISCHES_GEWICHT);
    VOLUMEN                   = trimInput(VOLUMEN);
    MEDIUM                    = trimInput(MEDIUM);
    GUELTIGKEITSDAUER_ANGEBOT = trimInput(GUELTIGKEITSDAUER_ANGEBOT);
    VERTRAGSSTRAFE_VERZUG     = trimInput(VERTRAGSSTRAFE_VERZUG);
    

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung));
    bg_w(new Array(inp_optionen_lkw));
    bg_w(new Array(inp_beschreibung_aufbau));
    bg_w(new Array(inp_optionen_aufbau));
    bg_w(new Array(inp_transportgut));
    bg_w(new Array(inp_spezifisches_gewicht));
    bg_w(new Array(inp_volumen));
    bg_w(new Array(inp_medium));
    bg_w(new Array(inp_gueltigkeitsdauer_angebot));
    bg_w(new Array(inp_vertragsstrafe_verzug));

    // Bemerkungsfeld ist kein Pflichtfeld

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);
    err_text += checkValues_bemerkung(inp_optionen_lkw, OPTIONEN_LKW);
    err_text += checkValues_bemerkung(inp_beschreibung_aufbau, BESCHREIBUNG_AUFBAU);
    err_text += checkValues_bemerkung(inp_optionen_aufbau, OPTIONEN_AUFBAU);
    err_text += checkValues_bemerkung(inp_transportgut, TRANSPORTGUT);
    err_text += checkValues_bemerkung(inp_spezifisches_gewicht, SPEZIFISCHES_GEWICHT);
    err_text += checkValues_bemerkung(inp_volumen, VOLUMEN);
    err_text += checkValues_bemerkung(inp_medium, MEDIUM);
    err_text += checkValues_bemerkung(inp_gueltigkeitsdauer_angebot, GUELTIGKEITSDAUER_ANGEBOT);
    err_text += checkValues_bemerkung(inp_vertragsstrafe_verzug, VERTRAGSSTRAFE_VERZUG);


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


/* Validierung Maske Leergewichtermittlung - AG Daten */
function checkValues_daten_leergewicht() {

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_bemerkung;
    var BEMERKUNG;


    //err_text += checkValues_nutzerdaten();  // Nutzerdaten
    err_text += checkValues_kunde();        // kunde, kunde (ort)
    err_text += checkValues_fahrzeugdaten();// FZG-Daten

    // Inputfelder holen
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung));

    // Bemerkungsfeld ist kein Pflichtfeld

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


/* Validierung Maske Massermittlung - AG Daten */
function checkValues_daten_massermittlung() {

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_bemerkung, inp_betreff;
    var BEMERKUNG, BETREFF;

    // allgemeine Pruefungen
    //err_text += checkValues_nutzerdaten();  // Nutzerdaten
    err_text += checkValues_kunde();        // kunde, kunde (ort)
    err_text += checkValues_fahrzeugdaten();// FZG-Daten

    // Inputfelder holen
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");
    inp_betreff   = document.getElementById("DET_INP_BETREFF");

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;
    BETREFF   = inp_betreff.value;

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);
    BETREFF   = trimInput(BETREFF);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung, inp_betreff));

    // sind die Felder ausgefuellt?
    if( BEMERKUNG == '' ) {
        err_text += WF_TEXTE.ANTRAG_BEMERKUNG_ERR + "\n";
        bg_r(new Array(inp_bemerkung));
    }
    if( BETREFF == '' ) {
        err_text += WF_TEXTE.ANTRAG_BETREFF_ERR_1 + "\n";
        bg_r(new Array(inp_betreff));
    }

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);

    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


/* Validierung Maske Zeichnungsanforderung - AG Daten */
function checkValues_daten_zeichnungsanforderung() {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    var err_text = "";
    var err_color = "#ffc6a8";


    var inp_betreff, inp_bemerkung;
    var BETREFF, BEMERKUNG;
    // Zeichnungsart und Detail muessen nicht extra abgefragt werden (da es Radiobuttons sind und da von denen
    // sowieso immer einer selektiert ist!)
    var inp_baureihe, inp_fahrerhaus,inp_radstand, inp_ueberhang;
    var inp_zeichnungsart, inp_detail, inp_format;
    var BAUREIHE, FAHRERHAUS, RADSTAND, UEBERHANG, FORMAT, DETAIL, ZEICHNUNGSART;
    var inp_detail_fahrgestell, inp_detail_aggregat;
    var FAHRGESTELL, AGGREGAT;

    //err_text += checkValues_nutzerdaten();  // Nutzerdaten
    err_text += checkValues_kunde();        // kunde, kunde (ort)
    err_text += checkValues_lieferadresse();// abweichende Lieferadresse
    err_text += checkValues_fahrzeugdaten();// FZG-Daten

    // Inputfelder holen
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");
    inp_betreff   = document.getElementById("DET_INP_BETREFF");

    inp_baureihe  = document.getElementById("DET_INP_BAUREIHE");
    inp_fahrerhaus= document.getElementById("DET_INP_FAHRERHAUS");
    inp_radstand  = document.getElementById("DET_INP_RADSTAND");
    inp_ueberhang = document.getElementById("DET_INP_UEBERHANG");

    // Input Feld das den Value des selektierten Radiobuttons enthaelt
    inp_format   = document.getElementById("DET_INP_FORMAT");
    //inp_detail   = document.getElementsByName('DET_INP_DETAIL');
    inp_detail_fahrgestell= document.getElementsByName('DETAIL_FAHRGESTELL');
    inp_detail_aggregat   = document.getElementsByName('DETAIL_AGGREGAT');
    inp_zeichnungsart = document.getElementsByName('DET_INP_ZEICHNUNGSART');

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;
    BETREFF   = inp_betreff.value;

    BAUREIHE  = inp_baureihe.options[inp_baureihe.selectedIndex].value;
    FAHRERHAUS= inp_fahrerhaus.options[inp_fahrerhaus.selectedIndex].value;
    UEBERHANG = inp_ueberhang.options[inp_ueberhang.selectedIndex].value;
    RADSTAND  = inp_radstand.value;

    FORMAT    = inp_format.value;
    //DETAIL    = getSelectedValues(inp_detail);
    DETAIL = new Array();
    if( inp_detail_fahrgestell[0].checked ) {
        DETAIL.push(inp_detail_fahrgestell[0].value);
    }
    if( inp_detail_aggregat[0].checked ) {
        DETAIL.push(inp_detail_aggregat[0].value);
    }
    ZEICHNUNGSART = getSelectedValues(inp_zeichnungsart);

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);
    BETREFF   = trimInput(BETREFF);

    BAUREIHE  = trimInput(BAUREIHE);
    FAHRERHAUS= trimInput(FAHRERHAUS);
    RADSTAND  = trimInput(RADSTAND);
    UEBERHANG = trimInput(UEBERHANG);

    FORMAT    = trimInput(FORMAT);
    for( var i = 0; i < DETAIL.length; i++ )        { DETAIL[i] = trimInput(DETAIL[i]); }
    for( var i = 0; i < ZEICHNUNGSART.length; i++ ) { ZEICHNUNGSART[i] = trimInput(ZEICHNUNGSART[i]); }


    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung, inp_betreff, inp_format, inp_radstand, inp_ueberhang, inp_fahrerhaus, inp_baureihe));

    // es muessen alle Felder ausgefuellt sein
    if( BAUREIHE == '' ) {
        err_text += WF_TEXTE.ANTRAG_DATEN_BAUREIHE_ERR_1 + "\n";
        bg_r(new Array(inp_baureihe));
    }
    if( FAHRERHAUS == '' ) {
        err_text += WF_TEXTE.ANTRAG_DATEN_FAHRERHAUS_ERR_1 + "\n";
        bg_r(new Array(inp_fahrerhaus));
    }
    if( RADSTAND == '' ) {
        err_text += WF_TEXTE.ANTRAG_DATEN_RADSTAND_ERR_1 + "\n";
        bg_r(new Array(inp_radstand));
    }
    if( UEBERHANG == '' ) {
        err_text += WF_TEXTE.ANTRAG_DATEN_UEBERHANG_ERR_1 + "\n";
        bg_r(new Array(inp_ueberhang));
    }


    // Kein Detail gewaehlt
    if( DETAIL.length == 0 ) {
        err_text += WF_TEXTE.ANTRAG_DATEN_DETAIL_ERR_1 + "\n";
        //inp_detail.style.backgroundColor = err_color;
    }
    // Keine Zeichnungsart gewaehlt
    if( ZEICHNUNGSART.length == 0 ) {
        err_text += WF_TEXTE.ANTRAG_DATEN_ZEICHNUNGSART_ERR_1 + "\n";
        //inp_zeichnungsart.style.backgroundColor = err_color;
    }

    // Format: je nach Zeichnungsart A0-A3(Papier) oder DXF, PDF ... (elektronisch)
    if( FORMAT == '' ) {
        err_text += WF_TEXTE.ANTRAG_DATEN_FORMAT_ERR_1 + "\n";
        //inp_betreff.style.backgroundColor = err_color; // nicht einfaerben, da es ein Radiobutton ist
    }
    if( BEMERKUNG == '' ) {
        err_text += WF_TEXTE.ANTRAG_BEMERKUNG_ERR + "\n";
        bg_r(new Array(inp_bemerkung));
    }
    if( BETREFF == '' ) {
        err_text += WF_TEXTE.ANTRAG_BETREFF_ERR_1 + "\n";
        bg_r(new Array(inp_betreff));
    }

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);

    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


/* Validierung Maske Nebenabtrieb Einbaulage (AG Daten)
*   Parameter:
*   - anzahlNebenabtriebe:
*           - gibt die Anzahl d. einstellbaren Nebenabtriebe an
*           - default: 3
*   Anmerkung:
*   - wenn min. ein Nebenabtriebs-Feld gefuellt ist, dann muessen alle gefuellt sein
*/
function checkValues_daten_nebenabtrieb(anzahlNebenabtriebe) {

    if( typeof anzahlNebenabtriebe == "undefined" ) {
        anzahlNebenabtriebe = 3;
    }

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    var err_text = "";
    var err_color = "#ffc6a8";


    var inp_bemerkung;


    // allgemeine Pruefungen
    //err_text += checkValues_nutzerdaten();  // Nutzerdaten
    err_text += checkValues_kunde();        // kunde, kunde (ort)
    err_text += checkValues_fahrzeugdaten();// FZG-Daten
    err_text += checkValues_nebenabtrieb(anzahlNebenabtriebe); // Pruefung d. Nebenabtriebe

    // Inputfelder holen
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung));

    // sind die Felder ausgefuellt?
    // kein Pflichtfeld
    // if( BEMERKUNG == '' ) {
        // err_text += WF_TEXTE.ANTRAG_LEER_ERR_1 + "\n";
        // bg_r(new Array(inp_bemerkung));
    // }

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }


    return err_text;
}


/* Validierung Maske Aufbauberatung - AG Aufbau */
function checkValues_aufbau_aufbauberatung() {

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_fznr, inp_fin, inp_bemerkung, inp_gfznr, inp_aenr, inp_motorps;
    var FZNR, FIN, BEMERKUNG, GFZNR, AENR, MOTORPS;
    var chk_fin, chk_fznr, chk_combination, chk_gfznr, chk_aenr;

    chk_fin  = false;
    chk_fznr = false;
    chk_combination = true;
    chk_gfznr = false;
    chk_aenr  = false;

    // Nutzerdaten
    //err_text += checkValues_nutzerdaten();

    // Aufbauart
    err_text += validateAufbauAufbaudetail();

    // Inputfelder holen
    inp_fznr      = document.getElementById("INP_FZNR");
    inp_fin       = document.getElementById("INP_FIN");
    inp_gfznr     = document.getElementById("INP_GFZNR");
    inp_aenr      = document.getElementById("INP_AE_NUMMER");
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");
    inp_motorps   = document.getElementById("DET_INP_PS");

    // Werte aus Inputfeldern holen
    FZNR      = inp_fznr.value;
    FIN       = inp_fin.value;
    GFZNR     = inp_gfznr.value;
    AENR      = inp_aenr.value;
    BEMERKUNG = inp_bemerkung.value;
    MOTORPS   = inp_motorps.options[inp_motorps.selectedIndex].value;

    // Leerzeichen entfernen
    FZNR      = trimInput(FZNR);
    FIN       = trimInput(FIN);
    GFZNR     = trimInput(GFZNR);
    AENR      = trimInput(AENR);
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps, inp_bemerkung));

    // Sind die Felder ausgefüllt ?
    // Es muss wenigstens eines gefüllt sein.
    if (FZNR != "" || FIN != "" || GFZNR != "" || AENR != "" || MOTORPS != "") {

        // Daten pruefen
        if (FZNR != "")  { chk_fznr  = validateFZNR(FZNR); }
        if (FIN != "")   { chk_fin   = validateFIN(FIN); }
        if (AENR != "")  { chk_aenr  = validateAENR(AENR); }
        if (GFZNR != "") { chk_gfznr = validateGFZNR(GFZNR); }

        // Entweder FZNR oder FIN oder AENR, wenn das Fahrzeug bereits bestellt
        if (FIN != "" || FZNR != "" || AENR != "") {

            // Wenn FZNR und FIN gefüllt sind, muss zusaetzlich geprueft werden,
            // ob die Kombination FZNR und FIN zusammenpasst
            if (FIN != "" && FZNR != "" && chk_fin && chk_fznr) {
                chk_combination = validateCombination_FZNR_FIN(FZNR, FIN);
            }

            if (FZNR != "" && !chk_fznr) {
                err_text += WF_TEXTE.ANTRAG_FZNR_ERR + "\n";
                bg_r(new Array(inp_fznr));
            }

            if (FIN != "" && !chk_fin) {
                err_text += WF_TEXTE.ANTRAG_FIN_ERR + "\n";
                bg_r(new Array(inp_fin));
            }

            if (!chk_combination) {
                err_text += errmsg_Combination_FZNR_FIN(FZNR, FIN) + "\n";
                bg_r(new Array(inp_fin, inp_fznr));
            }

            if (AENR != "" && !chk_aenr) {
                err_text += WF_TEXTE.ANTRAG_AENR_ERR + "\n";
                bg_r(new Array(inp_aenr));
            }

            if (GFZNR != "" && !chk_gfznr) {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
                bg_r(new Array(inp_gfznr));
            }
        }
        // ... oder GFZNR und MOTOR-Leistung, wenn das Fahrzeug noch nicht bestellt wurde
        else if (GFZNR != "" || MOTORPS != "") {

            if (GFZNR != "" && !chk_gfznr) {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
                bg_r(new Array(inp_gfznr));
            }

            if (GFZNR == "") {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR_2 + "\n";
                bg_r(new Array(inp_gfznr));
            }

            if (MOTORPS == "") {
                err_text += WF_TEXTE.ANTRAG_MOTORPS_ERR + "\n";
                bg_r(new Array(inp_motorps));
            }

        }
        // Fehlende Eingaben
        else {
            err_text += WF_TEXTE.ANTRAG_AUFBAU_BERATUNG_ERR_1 + "\n";
            bg_r(new Array(inp_fin, inp_fznr, inp_gfznr, inp_aenr, inp_motorps));
        }
    }
    else {
        err_text += WF_TEXTE.ANTRAG_AUFBAU_BERATUNG_ERR_1 + "\n";
        bg_r(new Array(inp_fin, inp_fznr, inp_gfznr, inp_aenr, inp_motorps));
    }

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);

    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


function checkValues_aufbau_sattelvormass_daten() {

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_gfznr, inp_aenr, inp_motorps, inp_bemerkung;

    var inp_va_last_gew, inp_ha_last_gew;
    var inp_tank_groesse, inp_tank_menge, inp_va_last_zul, inp_ha_last_zul;
    var inp_gesamtgewicht_zul, inp_radstand, inp_sattelvormass;

    var GFZNR, AENR, MOTORPS, BEMERKUNG;

    var VA_LAST_GEW, HA_LAST_GEW, TANK_GROESSE, TANK_MENGE, VA_LAST_ZUL, HA_LAST_ZUL;
    var GESAMTGEWICHT_ZUL, RADSTAND, SATTELVORMASS;

    // Inputfelder holen
    inp_gfznr     = document.getElementById("INP_GFZNR");
    inp_aenr      = document.getElementById("INP_AE_NUMMER");
    inp_motorps   = document.getElementById("DET_INP_PS");
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");

    inp_va_last_gew       = document.getElementById('DET_INP_VA_LAST_GEWOGEN');
    inp_ha_last_gew       = document.getElementById('DET_INP_HA_LAST_GEWOGEN');
    inp_tank_groesse      = document.getElementById('DET_INP_TANK_GROESSE');
    inp_tank_menge        = document.getElementById('DET_INP_TANK_MENGE');
    inp_va_last_zul       = document.getElementById('DET_INP_VA_LAST_ZULAESSIG');
    inp_ha_last_zul       = document.getElementById('DET_INP_HA_LAST_ZULAESSIG');
    inp_gesamtgewicht_zul = document.getElementById('DET_INP_GESAMTGEWICHT_ZULAESSIG');
    inp_radstand          = document.getElementById('DET_INP_RADSTAND');
    inp_sattelvormass     = document.getElementById('DET_INP_SATTELVORMASS');

    // Werte aus Inputfeldern holen
    GFZNR     = inp_gfznr.value;
    AENR      = inp_aenr.value;
    MOTORPS   = inp_motorps.options[inp_motorps.selectedIndex].value;
    BEMERKUNG = inp_bemerkung.value;

    VA_LAST_GEW       = inp_va_last_gew.value;
    HA_LAST_GEW       = inp_ha_last_gew.value;
    TANK_GROESSE      = inp_tank_groesse.value;
    TANK_MENGE        = inp_tank_menge.value;
    VA_LAST_ZUL       = inp_va_last_zul.value;
    HA_LAST_ZUL       = inp_ha_last_zul.value;
    GESAMTGEWICHT_ZUL = inp_gesamtgewicht_zul.value;
    RADSTAND          = inp_radstand.value;
    SATTELVORMASS     = inp_sattelvormass.value;

    // Leerzeichen entfernen
    GFZNR     = trimInput(GFZNR);
    AENR      = trimInput(AENR);
    BEMERKUNG = trimInput(BEMERKUNG);

    VA_LAST_GEW       = trimInput(VA_LAST_GEW);
    HA_LAST_GEW       = trimInput(HA_LAST_GEW);
    TANK_GROESSE      = trimInput(TANK_GROESSE);
    TANK_MENGE        = trimInput(TANK_MENGE);
    VA_LAST_ZUL       = trimInput(VA_LAST_ZUL);
    HA_LAST_ZUL       = trimInput(HA_LAST_ZUL);
    GESAMTGEWICHT_ZUL = trimInput(GESAMTGEWICHT_ZUL);
    RADSTAND          = trimInput(RADSTAND);
    SATTELVORMASS     = trimInput(SATTELVORMASS);

    // Alle Felder weiß machen
    bg_w(new Array(inp_gfznr, inp_aenr, inp_motorps));
    bg_w(new Array(
        inp_va_last_gew, inp_ha_last_gew, inp_tank_groesse,
        inp_tank_menge, inp_va_last_zul, inp_ha_last_zul,
        inp_gesamtgewicht_zul, inp_radstand, inp_sattelvormass,
        inp_bemerkung
    ));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);


    // Ausschluss von Fall 2 - Kunde besitzt noch kein Fahrzeug
    if (! (GFZNR == "" && AENR == "" && MOTORPS == "")) {
        return "";
    }

    // Wenn in irgendeinem Feld etwas steht, müssen alle Felder ausgefüllt werden.
    // Ansonsten dürfen natürlich auch alle Felder leer sein.
    if (VA_LAST_GEW != "" || HA_LAST_GEW != "" ||
        TANK_GROESSE != "" || TANK_MENGE != "" ||
        VA_LAST_ZUL != "" || HA_LAST_ZUL != "" ||
        GESAMTGEWICHT_ZUL != "" || RADSTAND != "" || SATTELVORMASS != "") {

        if (VA_LAST_GEW == "") {
            err_text += WF_TEXTE.AUFBAU_VA_LAST_GEW_ERR + "\n";
            bg_r(new Array(inp_va_last_gew));
        }
        if (HA_LAST_GEW == "") {
            err_text += WF_TEXTE.AUFBAU_HA_LAST_GEW_ERR + "\n";
            bg_r(new Array(inp_ha_last_gew));
        }
        if (TANK_GROESSE == "") {
            err_text += WF_TEXTE.AUFBAU_TANK_GROESSE_ERR + "\n";
            bg_r(new Array(inp_tank_groesse));
        }
        if (TANK_MENGE == "") {
            err_text += WF_TEXTE.AUFBAU_TANK_MENGE_ERR + "\n";
            bg_r(new Array(inp_tank_menge));
        }
        if (VA_LAST_ZUL == "") {
            err_text += WF_TEXTE.AUFBAU_VA_LAST_ZUL_ERR + "\n";
            bg_r(new Array(inp_va_last_zul));
        }
        if (HA_LAST_ZUL == "") {
            err_text += WF_TEXTE.AUFBAU_HA_LAST_ZUL_ERR + "\n";
            bg_r(new Array(inp_ha_last_zul));
        }
        if (GESAMTGEWICHT_ZUL == "") {
            err_text += WF_TEXTE.AUFBAU_GESAMTGEWICHT_ZUL_ERR + "\n";
            bg_r(new Array(inp_gesamtgewicht_zul));
        }
        if (RADSTAND == "") {
            err_text += WF_TEXTE.AUFBAU_RADSTAND_ERR + "\n";
            bg_r(new Array(inp_radstand));
        }
        if (SATTELVORMASS == "") {
            err_text += WF_TEXTE.AUFBAU_SATTELVORMASS_ERR + "\n";
            bg_r(new Array(inp_sattelvormass));
        }
    }

    return err_text;
}


function checkValues_aufbau_sattelvormass() {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_fznr, inp_fin, inp_bemerkung, inp_gfznr, inp_aenr, inp_motorps;
    var FZNR, FIN, BEMERKUNG, GFZNR, AENR, MOTORPS;
    var chk_fin, chk_fznr, chk_combination, chk_gfznr, chk_aenr;

    chk_fin  = false;
    chk_fznr = false;
    chk_combination = true;
    chk_gfznr = false;
    chk_aenr  = false;

    // Nutzerdaten
    //err_text += checkValues_nutzerdaten();

    // Wiegedaten
    err_text += checkValues_aufbau_sattelvormass_daten();

    // Inputfelder holen
    inp_fznr      = document.getElementById("INP_FZNR");
    inp_fin       = document.getElementById("INP_FIN");
    inp_gfznr     = document.getElementById("INP_GFZNR");
    inp_aenr      = document.getElementById("INP_AE_NUMMER");
    inp_motorps   = document.getElementById("DET_INP_PS");
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");

    // Werte aus Inputfeldern holen
    FZNR      = inp_fznr.value;
    FIN       = inp_fin.value;
    GFZNR     = inp_gfznr.value;
    AENR      = inp_aenr.value;
    MOTORPS   = inp_motorps.options[inp_motorps.selectedIndex].value;
    BEMERKUNG = inp_bemerkung.value;

    // Leerzeichen entfernen
    FZNR      = trimInput(FZNR);
    FIN       = trimInput(FIN);
    GFZNR     = trimInput(GFZNR);
    AENR      = trimInput(AENR);
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps, inp_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);

    // Sind die Felder ausgefüllt ?
    // Es muss wenigstens eines gefüllt sein.
    if (FZNR != "" || FIN != "" || GFZNR != "" || AENR != "" || MOTORPS != "") {

        // Daten pruefen
        if (FZNR != "")  { chk_fznr  = validateFZNR(FZNR); }
        if (FIN != "")   { chk_fin   = validateFIN(FIN); }
        if (AENR != "")  { chk_aenr  = validateAENR(AENR); }
        if (GFZNR != "") { chk_gfznr = validateGFZNR(GFZNR); }

        // Entweder FZNR oder FIN oder AENR, wenn das Fahrzeug bereits bestellt
        if (FIN != "" || FZNR != "" || AENR != "") {

            // Wenn FZNR und FIN gefüllt sind, muss zusaetzlich geprueft werden,
            // ob die Kombination FZNR und FIN zusammenpasst
            if (FIN != "" && FZNR != "" && chk_fin && chk_fznr) {
                chk_combination = validateCombination_FZNR_FIN(FZNR, FIN);
            }

            if (FZNR != "" && !chk_fznr) {
                err_text += WF_TEXTE.ANTRAG_FZNR_ERR + "\n";
                bg_r(new Array(inp_fznr));
            }

            if (FIN != "" && !chk_fin) {
                err_text += WF_TEXTE.ANTRAG_FIN_ERR + "\n";
                bg_r(new Array(inp_fin));
            }

            if (!chk_combination) {
                err_text += errmsg_Combination_FZNR_FIN(FZNR, FIN) + "\n";
                bg_r(new Array(inp_fznr, inp_fin));
            }

            if (AENR != "" && !chk_aenr) {
                err_text += WF_TEXTE.ANTRAG_AENR_ERR + "\n";
                bg_r(new Array(inp_aenr));
            }

            if (GFZNR != "" && !chk_gfznr) {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
                bg_r(new Array(inp_gfznr));
            }
        }
        // ... oder GFZNR und MOTOR-Leistung, wenn das Fahrzeug noch nicht bestellt wurde
        else if (GFZNR != "" || MOTORPS != "") {

            if (GFZNR != "" && !chk_gfznr) {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
                bg_r(new Array(inp_gfznr));
            }

            if (GFZNR == "") {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR_2 + "\n";
                bg_r(new Array(inp_gfznr));
            }

            if (MOTORPS == "") {
                err_text += WF_TEXTE.ANTRAG_MOTORPS_ERR + "\n";
                bg_r(new Array(inp_motorps));
            }

        }
        // Fehlende Eingaben
        else {
            err_text += WF_TEXTE.ANTRAG_AUFBAU_BERATUNG_ERR_1 + "\n";
            bg_r(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps));
        }
    }
    else {
        err_text += WF_TEXTE.ANTRAG_AUFBAU_BERATUNG_ERR_1 + "\n";
        bg_r(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps));
    }

    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


/* Validierung Maske Aufbauprüfung - AG Aufbau */
function checkValues_aufbau_aufbaupruefung() {

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_fznr, inp_fin, inp_bemerkung, inp_gfznr, inp_aenr, inp_motorps;
    var FZNR, FIN, BEMERKUNG, GFZNR, AENR, MOTORPS;
    var chk_fin, chk_fznr, chk_combination, chk_gfznr, chk_aenr;

    chk_fin  = false;
    chk_fznr = false;
    chk_combination = true;
    chk_gfznr = false;
    chk_aenr  = false;

    // Nutzerdaten
    //err_text += checkValues_nutzerdaten();

    // Aufbauart
    err_text += validateAufbauAufbaudetail();

    // Inputfelder holen
    inp_fznr      = document.getElementById("INP_FZNR");
    inp_fin       = document.getElementById("INP_FIN");
    inp_gfznr     = document.getElementById("INP_GFZNR");
    inp_aenr      = document.getElementById("INP_AE_NUMMER");
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");
    inp_motorps   = document.getElementById("DET_INP_PS");

    // Werte aus Inputfeldern holen
    FZNR      = inp_fznr.value;
    FIN       = inp_fin.value;
    GFZNR     = inp_gfznr.value;
    AENR      = inp_aenr.value;
    BEMERKUNG = inp_bemerkung.value;
    MOTORPS   = inp_motorps.options[inp_motorps.selectedIndex].value;

    // Leerzeichen entfernen
    FZNR      = trimInput(FZNR);
    FIN       = trimInput(FIN);
    GFZNR     = trimInput(GFZNR);
    AENR      = trimInput(AENR);
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps, inp_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);

    // Sind die Felder ausgefüllt ?
    // Es muss wenigstens eines gefüllt sein.
    if (FZNR != "" || FIN != "" || GFZNR != "" || AENR != "" || MOTORPS != "") {

        // Daten pruefen
        if (FZNR != "")  { chk_fznr  = validateFZNR(FZNR); }
        if (FIN != "")   { chk_fin   = validateFIN(FIN); }
        if (AENR != "")  { chk_aenr  = validateAENR(AENR); }
        if (GFZNR != "") { chk_gfznr = validateGFZNR(GFZNR); }

        // Entweder FZNR oder FIN oder AENR, wenn das Fahrzeug bereits bestellt
        if (FIN != "" || FZNR != "" || AENR != "") {

            // Wenn FZNR und FIN gefüllt sind, muss zusaetzlich geprueft werden,
            // ob die Kombination FZNR und FIN zusammenpasst
            if (FIN != "" && FZNR != "" && chk_fin && chk_fznr) {
                chk_combination = validateCombination_FZNR_FIN(FZNR, FIN);
            }

            if (FZNR != "" && !chk_fznr) {
                err_text += WF_TEXTE.ANTRAG_FZNR_ERR + "\n";
                bg_r(new Array(inp_fznr));
            }

            if (FIN != "" && !chk_fin) {
                err_text += WF_TEXTE.ANTRAG_FIN_ERR + "\n";
                bg_r(new Array(inp_fin));
            }

            if (!chk_combination) {
                err_text += errmsg_Combination_FZNR_FIN(FZNR, FIN) + "\n";
                bg_r(new Array(inp_fznr, inp_fin));
            }

            if (AENR != "" && !chk_aenr) {
                err_text += WF_TEXTE.ANTRAG_AENR_ERR + "\n";
                bg_r(new Array(inp_aenr));
            }

            if (GFZNR != "" && !chk_gfznr) {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
                bg_r(new Array(inp_gfznr));
            }
        }
        // ... oder GFZNR und MOTOR-Leistung, wenn das Fahrzeug noch nicht bestellt wurde
        else if (GFZNR != "" || MOTORPS != "") {

            if (GFZNR != "" && !chk_gfznr) {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
                bg_r(new Array(inp_gfznr));
            }

            if (GFZNR == "") {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR_2 + "\n";
                bg_r(new Array(inp_gfznr));
            }

            if (MOTORPS == "") {
                err_text += WF_TEXTE.ANTRAG_MOTORPS_ERR + "\n";
                bg_r(new Array(inp_motorps));
            }

        }
        // Fehlende Eingaben
        else {
            err_text += WF_TEXTE.ANTRAG_AUFBAU_BERATUNG_ERR_1 + "\n";
            bg_r(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps));
        }
    }
    else {
        err_text += WF_TEXTE.ANTRAG_AUFBAU_BERATUNG_ERR_1 + "\n";
        bg_r(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps));
    }

    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


/* Validierung Maske Fahrgestellauswahl - AG Aufbau */
function checkValues_aufbau_fahrgestellauswahl() {

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_bemerkung, inp_gfznr, inp_motor, inp_gesamtgewicht, inp_fahrerhaus, inp_aufbauart, inp_aufbauart_detail;
    var BEMERKUNG, GFZNR, MOTOR, GESAMTGEWICHT, FAHRERHAUS, AUFBAUART, AUFBAUART_DETAIL;
    var chk_gfznr;
    var tmp;

    chk_gfznr = false;

    // Nutzerdaten
    //err_text += checkValues_nutzerdaten();

    // Aufbauart
    err_text += validateAufbauAufbaudetail();

    // Es muss mind. 1 x Aufbauart ausgefuellt sein
    var aufbauart_cnt = document.getElementById('DET_INP_CNT_AUFBAU').value;
    var aufbauart_filled = 0;
    for (i=1; i<=aufbauart_cnt; i++) {
        tmp = document.getElementById('DET_INP_AUFBAUART_' + i);
        if (tmp) {
            if (tmp.options[tmp.selectedIndex].value != "") {
                aufbauart_filled++;
            }
        }
    }

    if (aufbauart_filled == 0) {
        err_text +=  WF_TEXTE.AUFBAU_AUFBAUART_ERR_3 + "\n";
        bg_r(new Array(document.getElementById('DET_INP_AUFBAUART_1')));
    }
    else {
        bg_w(new Array(document.getElementById('DET_INP_AUFBAUART_1')));
    }


    // Inputfelder holen
    inp_gfznr            = document.getElementById("INP_GFZNR");
    inp_bemerkung        = document.getElementById("DET_INP_BEMERKUNG");
    inp_motor            = document.getElementById("DET_INP_MOTOR");
    inp_gesamtgewicht    = document.getElementById("DET_INP_GESAMTGEWICHT");
    inp_fahrerhaus       = document.getElementById("DET_INP_FAHRERHAUS");

    // Werte aus Inputfeldern holen
    GFZNR            = inp_gfznr.value;
    BEMERKUNG        = inp_bemerkung.value;
    MOTOR            = inp_motor.options[inp_motor.selectedIndex].value;
    GESAMTGEWICHT    = inp_gesamtgewicht.options[inp_gesamtgewicht.selectedIndex].value;
    FAHRERHAUS       = inp_fahrerhaus.options[inp_fahrerhaus.selectedIndex].value;

    // Leerzeichen entfernen
    GFZNR     = trimInput(GFZNR);
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_gfznr, inp_bemerkung, inp_motor, inp_gesamtgewicht, inp_fahrerhaus));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);

    // Sind die Felder ausgefüllt ?
    if (GFZNR != "" && MOTOR != "" && GESAMTGEWICHT != "" && FAHRERHAUS != "") {

        // Daten pruefen
        if (GFZNR != "") { chk_gfznr = validateGFZNR(GFZNR); }

        if (GFZNR != "" && !chk_gfznr) {
            err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
            bg_r(new Array(inp_gfznr));
        }
    }
    else {
        err_text += WF_TEXTE.ANTRAG_AUFBAU_FAHRGESTELL_ERR_1 + "\n";

        if (GFZNR == "") { bg_r(new Array(inp_gfznr)); }
        if (MOTOR == "") { bg_r(new Array(inp_motor)); }
        if (GESAMTGEWICHT == "") { bg_r(new Array(inp_gesamtgewicht)); }
        if (FAHRERHAUS == "") { bg_r(new Array(inp_fahrerhaus)); }
    }

    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


/* Validierung Maske Gewichtsbilanzanfrage - AG Aufbau */
function checkValues_aufbau_gewichtsbilanz() {

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_fznr, inp_fin, inp_bemerkung, inp_gfznr, inp_aenr, inp_motorps;
    var FZNR, FIN, BEMERKUNG, GFZNR, AENR, MOTORPS;
    var chk_fin, chk_fznr, chk_combination, chk_gfznr, chk_aenr;

    chk_fin  = false;
    chk_fznr = false;
    chk_combination = true;
    chk_gfznr = false;
    chk_aenr  = false;

    // Nutzerdaten
    //err_text += checkValues_nutzerdaten();

    // Aufbaudaten
    err_text += validateAufbauGewichtsbilanz();

    // Inputfelder holen
    inp_fznr      = document.getElementById("INP_FZNR");
    inp_fin       = document.getElementById("INP_FIN");
    inp_gfznr     = document.getElementById("INP_GFZNR");
    inp_aenr      = document.getElementById("INP_AE_NUMMER");
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");
    inp_motorps   = document.getElementById("DET_INP_PS");

    // Werte aus Inputfeldern holen
    FZNR      = inp_fznr.value;
    FIN       = inp_fin.value;
    GFZNR     = inp_gfznr.value;
    AENR      = inp_aenr.value;
    BEMERKUNG = inp_bemerkung.value;
    MOTORPS   = inp_motorps.options[inp_motorps.selectedIndex].value;

    // Leerzeichen entfernen
    FZNR      = trimInput(FZNR);
    FIN       = trimInput(FIN);
    GFZNR     = trimInput(GFZNR);
    AENR      = trimInput(AENR);
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps, inp_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);

    // Sind die Felder ausgefüllt ?
    // Es muss wenigstens eines gefüllt sein.
    if (FZNR != "" || FIN != "" || GFZNR != "" || AENR != "" || MOTORPS != "") {

        // Daten pruefen
        if (FZNR != "")  { chk_fznr  = validateFZNR(FZNR); }
        if (FIN != "")   { chk_fin   = validateFIN(FIN); }
        if (AENR != "")  { chk_aenr  = validateAENR(AENR); }
        if (GFZNR != "") { chk_gfznr = validateGFZNR(GFZNR); }

        // Entweder FZNR oder FIN oder AENR, wenn das Fahrzeug bereits bestellt
        if (FIN != "" || FZNR != "" || AENR != "") {

            // Wenn FZNR und FIN gefüllt sind, muss zusaetzlich geprueft werden,
            // ob die Kombination FZNR und FIN zusammenpasst
            if (FIN != "" && FZNR != "" && chk_fin && chk_fznr) {
                chk_combination = validateCombination_FZNR_FIN(FZNR, FIN);
            }

            if (FZNR != "" && !chk_fznr) {
                err_text += WF_TEXTE.ANTRAG_FZNR_ERR + "\n";
                bg_r(new Array(inp_fznr));
            }

            if (FIN != "" && !chk_fin) {
                err_text += WF_TEXTE.ANTRAG_FIN_ERR + "\n";
                bg_r(new Array(inp_fin));
            }

            if (!chk_combination) {
                err_text += errmsg_Combination_FZNR_FIN(FZNR, FIN) + "\n";
                bg_r(new Array(inp_fznr, inp_fin));
            }

            if (AENR != "" && !chk_aenr) {
                err_text += WF_TEXTE.ANTRAG_AENR_ERR + "\n";
                bg_r(new Array(inp_aenr));
            }

            if (GFZNR != "" && !chk_gfznr) {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
                bg_r(new Array(inp_gfznr));
            }
        }
        // ... oder GFZNR und MOTOR-Leistung, wenn das Fahrzeug noch nicht bestellt wurde
        else if (GFZNR != "" || MOTORPS != "") {

            if (GFZNR != "" && !chk_gfznr) {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
                bg_r(new Array(inp_gfznr));
            }

            if (GFZNR == "") {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR_2 + "\n";
                bg_r(new Array(inp_gfznr));
            }

            if (MOTORPS == "") {
                err_text += WF_TEXTE.ANTRAG_MOTORPS_ERR + "\n";
                bg_r(new Array(inp_motorps));
            }

        }
        // Fehlende Eingaben
        else {
            err_text += WF_TEXTE.ANTRAG_AUFBAU_BERATUNG_ERR_1 + "\n";
            bg_r(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps));
        }
    }
    else {
        err_text += WF_TEXTE.ANTRAG_AUFBAU_BERATUNG_ERR_1 + "\n";
        bg_r(new Array(inp_fznr, inp_fin, inp_gfznr, inp_aenr, inp_motorps));
    }

    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}




function checkValues_aufbau_nebenabtrieb(anzahlNebenabtriebe) {

    if( typeof anzahlNebenabtriebe == "undefined" ) {
        anzahlNebenabtriebe = 3;
    }

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    var err_text = "";
    var err_color = "#ffc6a8";


    var inp_bemerkung;
    var BEMERKUNG;


    // allgemeine Pruefungen
    //err_text += checkValues_nutzerdaten();  // Nutzerdaten
    err_text += checkValues_kunde();        // kunde, kunde (ort)
    err_text += checkValues_fahrzeugdaten();// FZG-Daten
    err_text += checkValues_nebenabtrieb(anzahlNebenabtriebe); // Pruefung d. Nebenabtriebe

    // Inputfelder holen
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung));

    // sind die Felder ausgefuellt?
    // kein Pflichtfeld
    // if( BEMERKUNG == '' ) {
        // err_text += WF_TEXTE.ANTRAG_LEER_ERR_1 + "\n";
        // bg_r(new Array(inp_bemerkung));
    // }

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }


    return err_text;
}


function checkValues_best_Achslast() {
    var err_text = "";
    var detinp = "DET_INP_";
    var regex_achslast = /^[\d\.,]+$/;

    // Für die Achslasten hier Arrays
    var controls = new Object();
    var values = new Object();

    var inp_inkl_umbereifung, inp_inkl_ausstattung;
    var inp_achslast_bemerkung;

    var INKL_UMBEREIFUNG, INKL_AUSSTATTUNG;
    var ACHSLAST_BEMERKUNG;

    // Inputfelder holen
    controls["ACHSLAST_A1"] = document.getElementById(detinp + "ACHSLAST_A1");
    controls["ACHSLAST_A2"] = document.getElementById(detinp + "ACHSLAST_A2");
    controls["ACHSLAST_A3"] = document.getElementById(detinp + "ACHSLAST_A3");
    controls["ACHSLAST_A4"] = document.getElementById(detinp + "ACHSLAST_A4");
    controls["ACHSLAST_A5"] = document.getElementById(detinp + "ACHSLAST_A5");
    controls["ACHSLAST_GESAMTGEWICHT"] = document.getElementById(detinp + "ACHSLAST_GESAMTGEWICHT");

    inp_inkl_umbereifung = document.getElementById(detinp + "INKL_UMBEREIFUNG");
    inp_inkl_ausstattung = document.getElementById(detinp + "INKL_AUSSTATTUNG");
    inp_achslast_bemerkung = document.getElementById(detinp + "ACHSLAST_BEMERKUNG");

    // Werte aus Inputfeldern holen
    INKL_UMBEREIFUNG = inp_inkl_umbereifung.value;
    INKL_AUSSTATTUNG = inp_inkl_ausstattung.value;
    ACHSLAST_BEMERKUNG = inp_achslast_bemerkung.value;


    // Leerzeichen entfernen
    INKL_UMBEREIFUNG = trimInput(INKL_UMBEREIFUNG);
    INKL_AUSSTATTUNG = trimInput(INKL_AUSSTATTUNG);
    ACHSLAST_BEMERKUNG = trimInput(ACHSLAST_BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_inkl_umbereifung, inp_inkl_ausstattung, inp_achslast_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_achslast_bemerkung, ACHSLAST_BEMERKUNG);

    for (var i in controls) {
        // Werte aus Inputfeldern holen
        values[i] = controls[i].value;

        // Leerzeichen entfernen
        values[i] = trimInput(values[i]);

        // Alle Felder weiß machen
        bg_w(new Array(controls[i]));

        // Sind die Felder ausgefuellt ?
        if (values[i] != "") {
            if (regex_achslast.test(values[i]) == false) {
                var tmp = values[i];
                tmp = tmp.replace(/</g, "&lt;");
                tmp = tmp.replace(/>/g, "&gt;");

                err_text += WF_TEXTE.BEST_EINGABE_ERR_1
                         +  " (" + tmp + ") "
                         +  WF_TEXTE.BEST_ZAHL_ERR_1 + "\n";
                bg_r(new Array(controls[i]));
            }
        }
    }

    return err_text;
}

function checkValues_best_Reifenkombination() {
    var err_text = "";
    var detinp = "DET_INP_";
    var regex_reifen = /^[\w\d\., \/\\:-_()"'^°]+$/;

    // Für die Achslasten hier Arrays
    var controls = new Object();
    var values = new Object();

    var inp_umbereifung_bemerkung;
    var UMBEREIFUNG_BEMERKUNG;

    // Inputfelder holen
    controls["REIFEN_1_A1"] = document.getElementById(detinp + "REIFEN_1_A1");
    controls["REIFEN_1_A2"] = document.getElementById(detinp + "REIFEN_1_A2");
    controls["REIFEN_1_A3"] = document.getElementById(detinp + "REIFEN_1_A3");
    controls["REIFEN_1_A4"] = document.getElementById(detinp + "REIFEN_1_A4");
    controls["REIFEN_1_A5"] = document.getElementById(detinp + "REIFEN_1_A5");
    controls["REIFEN_2_A1"] = document.getElementById(detinp + "REIFEN_2_A1");
    controls["REIFEN_2_A2"] = document.getElementById(detinp + "REIFEN_2_A2");
    controls["REIFEN_2_A3"] = document.getElementById(detinp + "REIFEN_2_A3");
    controls["REIFEN_2_A4"] = document.getElementById(detinp + "REIFEN_2_A4");
    controls["REIFEN_2_A5"] = document.getElementById(detinp + "REIFEN_2_A5");
    controls["FELGE_1_A1"] = document.getElementById(detinp + "FELGE_1_A1");
    controls["FELGE_1_A2"] = document.getElementById(detinp + "FELGE_1_A2");
    controls["FELGE_1_A3"] = document.getElementById(detinp + "FELGE_1_A3");
    controls["FELGE_1_A4"] = document.getElementById(detinp + "FELGE_1_A4");
    controls["FELGE_1_A5"] = document.getElementById(detinp + "FELGE_1_A5");
    controls["FELGE_2_A1"] = document.getElementById(detinp + "FELGE_2_A1");
    controls["FELGE_2_A2"] = document.getElementById(detinp + "FELGE_2_A2");
    controls["FELGE_2_A3"] = document.getElementById(detinp + "FELGE_2_A3");
    controls["FELGE_2_A4"] = document.getElementById(detinp + "FELGE_2_A4");
    controls["FELGE_2_A5"] = document.getElementById(detinp + "FELGE_2_A5");

    inp_umbereifung_bemerkung = document.getElementById(detinp + 'UMBEREIFUNG_BEMERKUNG');

    // Werte aus Inputfeldern holen
    UMBEREIFUNG_BEMERKUNG = inp_umbereifung_bemerkung.value;

    // Leerzeichen entfernen
    UMBEREIFUNG_BEMERKUNG = trimInput(UMBEREIFUNG_BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_umbereifung_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_umbereifung_bemerkung, UMBEREIFUNG_BEMERKUNG);

    for (var i in controls) {
        // Werte aus Inputfeldern holen
        values[i] = controls[i].value;

        // Leerzeichen entfernen
        values[i] = trimInput(values[i]);

        // Alle Felder weiß machen
        bg_w(new Array(controls[i]));

        // Sind die Felder ausgefuellt ?
        if (values[i] != "") {
            if (regex_reifen.test(values[i]) == false) {
                var tmp = values[i];
                tmp = tmp.replace(/</g, "&lt;");
                tmp = tmp.replace(/>/g, "&gt;");

                err_text += WF_TEXTE.BEST_EINGABE_ERR_1
                         +  " (" + tmp + ") "
                         +  WF_TEXTE.BEST_ZAHL_LETTER_ERR_1 + "\n";
                bg_r(new Array(controls[i]));
            }
        }
    }

    return err_text;
}

function checkValues_best_Anhaengelast() {
    var err_text = "";
    var detinp = "DET_INP_";
    var regex_anhaengelast = /^[\d\.,]+$/;

    // Für die Achslasten hier Arrays
    var controls = new Object();
    var values = new Object();

    var inp_maul_bezeichnung, inp_maul_bemerkung;
    var inp_kugel_bezeichnung;

    var MAUL_BEZEICHNUNG, MAUL_BEMERKUNG;
    var KUGEL_BEZEICHNUNG;

    // Inputfelder holen
    controls["MAUL_D_AHL_DRUCK"] = document.getElementById(detinp + "MAUL_D_AHL_DRUCK");
    controls["MAUL_D_AHL_AUF"]   = document.getElementById(detinp + "MAUL_D_AHL_AUF");
    controls["MAUL_D_AHL_UN"]    = document.getElementById(detinp + "MAUL_D_AHL_UN");
    controls["MAUL_D_ZUGGESAM"]  = document.getElementById(detinp + "MAUL_D_ZUGGESAMT");
    controls["MAUL_Z_AHL_DRUCK"] = document.getElementById(detinp + "MAUL_Z_AHL_DRUCK");
    controls["MAUL_Z_AHL_AUF"]   = document.getElementById(detinp + "MAUL_Z_AHL_AUF");
    controls["MAUL_Z_AHL_UN"]    = document.getElementById(detinp + "MAUL_Z_AHL_UN");
    controls["MAUL_Z_ZUGGESAM"]  = document.getElementById(detinp + "MAUL_Z_ZUGGESAMT");
    controls["MAUL_STUETZLAST"] = document.getElementById(detinp + "MAUL_Z_AHL_DRUCK");
    // controls["MAUL_Z_AHL_DRUCK"] = document.getElementById(detinp + "MAUL_Z_AHL_DRUCK");
    // controls["MAUL_Z_AHL_AUF"]   = document.getElementById(detinp + "MAUL_Z_AHL_AUF");
    // controls["MAUL_Z_AHL_UN"]    = document.getElementById(detinp + "MAUL_Z_AHL_UN");

    // controls["KUGEL_D_AHL_DRUCK"] = document.getElementById(detinp + "KUGEL_D_AHL_DRUCK");
    controls["KUGEL_D_AHL_AUF"]   = document.getElementById(detinp + "KUGEL_D_AHL_AUF");
    controls["KUGEL_D_AHL_UN"]    = document.getElementById(detinp + "KUGEL_D_AHL_UN");
    // controls["KUGEL_D_ZUGGESAM"]  = document.getElementById(detinp + "KUGEL_D_ZUGGESAMT");
    // controls["KUGEL_Z_AHL_DRUCK"] = document.getElementById(detinp + "KUGEL_Z_AHL_DRUCK");
    controls["KUGEL_Z_AHL_AUF"]   = document.getElementById(detinp + "KUGEL_Z_AHL_AUF");
    controls["KUGEL_Z_AHL_UN"]    = document.getElementById(detinp + "KUGEL_Z_AHL_UN");
    // controls["KUGEL_Z_ZUGGESAM"]  = document.getElementById(detinp + "KUGEL_Z_ZUGGESAMT");

    inp_maul_bezeichnung = document.getElementById(detinp + 'MAUL_BEZEICHNUNG');
    inp_maul_bemerkung   = document.getElementById(detinp + 'MAUL_BEMERKUNG');
    inp_kugel_bezeichnung= document.getElementById(detinp + 'KUGEL_BEZEICHNUNG');

    // Werte aus Inputfeldern holen
    MAUL_BEZEICHNUNG = inp_maul_bezeichnung.value;
    MAUL_BEMERKUNG   = inp_maul_bemerkung.value;
    KUGEL_BEZEICHNUNG= inp_kugel_bezeichnung.value;

    // Leerzeichen entfernen
    MAUL_BEZEICHNUNG = trimInput(MAUL_BEZEICHNUNG);
    MAUL_BEMERKUNG   = trimInput(MAUL_BEMERKUNG);
    KUGEL_BEZEICHNUNG = trimInput(KUGEL_BEZEICHNUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_kugel_bezeichnung, inp_maul_bezeichnung, inp_maul_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_maul_bemerkung, MAUL_BEMERKUNG);

    for (var i in controls) {
        // Werte aus Inputfeldern holen
        values[i] = controls[i].value;

        // Leerzeichen entfernen
        values[i] = trimInput(values[i]);

        // Alle Felder weiß machen
        bg_w(new Array(controls[i]));

        // Sind die Felder ausgefuellt ?
        if (values[i] != "") {
            if (regex_anhaengelast.test(values[i]) == false) {
                var tmp = values[i];
                tmp = tmp.replace(/</g, "&lt;");
                tmp = tmp.replace(/>/g, "&gt;");

                err_text += WF_TEXTE.BEST_EINGABE_ERR_1
                         +  " (" + tmp + ") "
                         +  WF_TEXTE.BEST_ZAHL_ERR_1 + "\n";
                bg_r(new Array(controls[i]));
            }
        }
    }

    return err_text;
}

function checkValues_best_Sattelzuggesamtgewicht() {
    var err_text = "";
    var detinp = "DET_INP_";
    var regex_gewicht = /^[\d\.,]+$/;

    var inp_sattelzuggesamt_gesamtgewicht, inp_sattelzuggesamt_bemerkung;
    var SATTELZUGGESAMT_GESAMTGEWICHT, SATTELZUGGESAMT_BEMERKUNG;

    // Inputfelder holen
    inp_sattelzuggesamt_gesamtgewicht = document.getElementById(detinp + "SATTELZUGGESAMT_GESAMTGEWICHT");
    inp_sattelzuggesamt_bemerkung = document.getElementById(detinp + "SATTELZUGGESAMT_BEMERKUNG");

    // Werte aus Inputfeldern holen
    SATTELZUGGESAMT_GESAMTGEWICHT = inp_sattelzuggesamt_gesamtgewicht.value;
    SATTELZUGGESAMT_BEMERKUNG = inp_sattelzuggesamt_bemerkung.value;

    // Leerzeichen entfernen
    SATTELZUGGESAMT_GESAMTGEWICHT = trimInput(SATTELZUGGESAMT_GESAMTGEWICHT);
    SATTELZUGGESAMT_BEMERKUNG = trimInput(SATTELZUGGESAMT_BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_sattelzuggesamt_gesamtgewicht, inp_sattelzuggesamt_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_sattelzuggesamt_bemerkung, SATTELZUGGESAMT_BEMERKUNG);

    // Sind die Felder ausgefuellt ?
    if (SATTELZUGGESAMT_GESAMTGEWICHT != "") {
        if (regex_gewicht.test(SATTELZUGGESAMT_GESAMTGEWICHT) == false) {
            var tmp = SATTELZUGGESAMT_GESAMTGEWICHT;
                tmp = tmp.replace(/</g, "&lt;");
                tmp = tmp.replace(/>/g, "&gt;");

            err_text += WF_TEXTE.BEST_EINGABE_ERR_1
                     +  " (" + tmp + ") "
                     +  WF_TEXTE.BEST_ZAHL_ERR_1 + "\n";

            bg_r(new Array(inp_sattelzuggesamt_gesamtgewicht));
        }
    }

    return err_text;
}

function checkValues_best_Wechselbetrieb() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_wechselbetrieb_bemerkung;
    var WECHSELBETRIEB_BEMERKUNG;

    // Inputfelder holen
    inp_wechselbetrieb_bemerkung = document.getElementById(detinp + "WECHSELBETRIEB_BEMERKUNG");

    // Werte aus Inputfeldern holen
    WECHSELBETRIEB_BEMERKUNG = inp_wechselbetrieb_bemerkung.value;

    // Leerzeichen entfernen
    WECHSELBETRIEB_BEMERKUNG = trimInput(WECHSELBETRIEB_BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_wechselbetrieb_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_wechselbetrieb_bemerkung, WECHSELBETRIEB_BEMERKUNG);

    return err_text;
}

function checkValues_best_Bremsberechnung() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_bremsberechnung_bemerkung;
    var BREMSBERECHNUNG_BEMERKUNG;

    // Inputfelder holen
    inp_bremsberechnung_bemerkung = document.getElementById(detinp + "BREMSBERECHNUNG_BEMERKUNG");

    // Werte aus Inputfeldern holen
    BREMSBERECHNUNG_BEMERKUNG = inp_bremsberechnung_bemerkung.value;

    // Leerzeichen entfernen
    BREMSBERECHNUNG_BEMERKUNG = trimInput(BREMSBERECHNUNG_BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bremsberechnung_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bremsberechnung_bemerkung, BREMSBERECHNUNG_BEMERKUNG);

    return err_text;
}

function checkValues_best_SchedaTecnica() {
    var err_text = "";
    var detinp = "DET_INP_";
    var regex_zahl = /^[\d\.,]+$/;

    var inp_kennzeichen, inp_sattelvormass, inp_aufsattelhoehe, inp_sattelkupplung, inp_anhaengekupplung;
    var KENNZEICHEN, SATTELVORMASS, AUFSATTELHOEHE, SATTELKUPPPLUNG, ANHAENGEKUPPLUNG;
    var inp_scheda, inp_scheda_sonstiges;
    var SCHEDA, SCHEDA_SONSTIGES;

    // Inputfelder holen
    inp_kennzeichen = document.getElementById(detinp + "KENNZEICHEN");
    inp_sattelvormass = document.getElementById(detinp + "SATTELVORMASS");
    inp_aufsattelhoehe = document.getElementById(detinp + "AUFSATTELHOEHE");
    inp_sattelkupplung = document.getElementById(detinp + "TYP_SATTELKUPPLUNG");
    inp_anhaengekupplung = document.getElementById(detinp + "TYP_ANHAENGEKUPPLUNG");
    inp_scheda = document.getElementsByName(detinp + "SCHEDA");
    inp_scheda_sonstiges = document.getElementById(detinp + "SCHEDA_SONSTIGES");

    // Werte aus Inputfeldern holen
    KENNZEICHEN = inp_kennzeichen.value;
    SATTELVORMASS = inp_sattelvormass.value;
    AUFSATTELHOEHE = inp_aufsattelhoehe.value;
    SATTELKUPPLUNG = inp_sattelkupplung.value;
    ANHAENGEKUPPLUNG = inp_anhaengekupplung.value;
    SCHEDA = getSelectedValues(inp_scheda);         // alle werte der selektierten radiobuttons zurueckgeben lassen
    SCHEDA = SCHEDA.join('');
    SCHEDA_SONSTIGES = inp_scheda_sonstiges.value;

    // Leerzeichen entfernen
    KENNZEICHEN = trimInput(KENNZEICHEN);
    SATTELVORMASS = trimInput(SATTELVORMASS);
    AUFSATTELHOEHE = trimInput(AUFSATTELHOEHE);
    SATTELKUPPLUNG = trimInput(SATTELKUPPLUNG);
    ANHAENGEKUPPLUNG = trimInput(ANHAENGEKUPPLUNG);
    SCHEDA = trimInput(SCHEDA);
    SCHEDA_SONSTIGES = trimInput(SCHEDA_SONSTIGES);

    // Alle Felder weiß machen
    bg_w(new Array(inp_kennzeichen, inp_sattelvormass, inp_aufsattelhoehe,
                   inp_sattelkupplung, inp_anhaengekupplung, inp_scheda_sonstiges));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_scheda_sonstiges, SCHEDA_SONSTIGES);


    // wenn Scheda = 'j' dann muss amtliches Kennzeichen ausgefuellt sein!
    if( SCHEDA == 'j' && KENNZEICHEN == '' ) {
        err_text += WF_TEXTE.BEST_AMTLICHES_KENNZEICHEN_ANGEBEN + "\n";

        bg_r(new Array(inp_kennzeichen));
    }

    // Sind die Felder ausgefuellt ?
    if (SATTELVORMASS != "") {
        if (regex_zahl.test(SATTELVORMASS) == false) {
            var tmp = SATTELVORMASS;
                tmp = tmp.replace(/</g, "&lt;");
                tmp = tmp.replace(/>/g, "&gt;");

            err_text += WF_TEXTE.BEST_EINGABE_ERR_1
                     +  " (" + tmp + ") "
                     +  WF_TEXTE.BEST_ZAHL_ERR_1 + "\n";

            bg_r(new Array(inp_sattelvormass));
        }
    }

    if (AUFSATTELHOEHE != "") {
        if (regex_zahl.test(AUFSATTELHOEHE) == false) {
            var tmp = AUFSATTELHOEHE;
                tmp = tmp.replace(/</g, "&lt;");
                tmp = tmp.replace(/>/g, "&gt;");

            err_text += WF_TEXTE.BEST_EINGABE_ERR_1
                     +  " (" + tmp + ") "
                     +  WF_TEXTE.BEST_ZAHL_ERR_1 + "\n";

            bg_r(new Array(inp_aufsattelhoehe));
        }
    }

    return err_text;
}


function checkValues_best_SZGG_Fabrikschild() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_man_sachnummer, inp_fbs_bemerkung, inp_fbs_modellbez;
    var MAN_SACHNUMMER, FBS_BEMERKUNG, FBS_MODELLBEZ;

    inp_man_sachnummer = document.getElementById(detinp + "SZGG_MAN_SACHNUMMER");
    inp_fbs_bemerkung = document.getElementById(detinp + "SZGG_FBS_BEMERKUNG");
    inp_fbs_modellbez = document.getElementById(detinp + "SZGG_MODELLBEZ");

    // Werte aus Inputfeldern holen
    MAN_SACHNUMMER = inp_man_sachnummer.value;
    FBS_BEMERKUNG = inp_fbs_bemerkung.value;
    FBS_MODELLBEZ = inp_fbs_modellbez.value;

    // Leerzeichen entfernen
    MAN_SACHNUMMER = trimInput(MAN_SACHNUMMER);
    FBS_BEMERKUNG = trimInput(FBS_BEMERKUNG);
    FBS_MODELLBEZ = trimInput(FBS_MODELLBEZ);

    // Alle Felder weiß machen
    bg_w(new Array(inp_man_sachnummer, inp_fbs_bemerkung, inp_fbs_modellbez));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_fbs_bemerkung, FBS_BEMERKUNG);
    err_text += checkValues_bemerkung(inp_fbs_modellbez, FBS_MODELLBEZ);

    return err_text;
}


function checkValues_best_AL_Fabrikschild() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_man_sachnummer, inp_fbs_bemerkung, inp_fbs_modellbez;
    var MAN_SACHNUMMER, FBS_BEMERKUNG, FBS_MODELLBEZ;

    inp_man_sachnummer = document.getElementById(detinp + "AL_MAN_SACHNUMMER");
    inp_fbs_bemerkung = document.getElementById(detinp + "AL_FBS_BEMERKUNG");
    inp_fbs_modellbez = document.getElementById(detinp + "AL_MODELLBEZ");

    // Werte aus Inputfeldern holen
    MAN_SACHNUMMER = inp_man_sachnummer.value;
    FBS_BEMERKUNG = inp_fbs_bemerkung.value;
    FBS_MODELLBEZ = inp_fbs_modellbez.value;

    // Leerzeichen entfernen
    MAN_SACHNUMMER = trimInput(MAN_SACHNUMMER);
    FBS_BEMERKUNG = trimInput(FBS_BEMERKUNG);
    FBS_MODELLBEZ = trimInput(FBS_MODELLBEZ);

    // Alle Felder weiß machen
    bg_w(new Array(inp_man_sachnummer, inp_fbs_bemerkung, inp_fbs_modellbez));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_fbs_bemerkung, FBS_BEMERKUNG);
    err_text += checkValues_bemerkung(inp_fbs_modellbez, FBS_MODELLBEZ);

    return err_text;
}


function checkValues_best_ALGG_Fabrikschild() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_man_sachnummer, inp_fbs_bemerkung, inp_fbs_modellbez;
    var MAN_SACHNUMMER, FBS_BEMERKUNG, FBS_MODELLBEZ;

    inp_man_sachnummer = document.getElementById(detinp + "ALGG_MAN_SACHNUMMER");
    inp_fbs_bemerkung = document.getElementById(detinp + "ALGG_FBS_BEMERKUNG");
    inp_fbs_modellbez = document.getElementById(detinp + "ALGG_MODELLBEZ");

    // Werte aus Inputfeldern holen
    MAN_SACHNUMMER = inp_man_sachnummer.value;
    FBS_BEMERKUNG = inp_fbs_bemerkung.value;
    FBS_MODELLBEZ = inp_fbs_modellbez.value;

    // Leerzeichen entfernen
    MAN_SACHNUMMER = trimInput(MAN_SACHNUMMER);
    FBS_BEMERKUNG = trimInput(FBS_BEMERKUNG);
    FBS_MODELLBEZ = trimInput(FBS_MODELLBEZ);

    // Alle Felder weiß machen
    bg_w(new Array(inp_man_sachnummer, inp_fbs_bemerkung, inp_fbs_modellbez));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_fbs_bemerkung, FBS_BEMERKUNG);
    err_text += checkValues_bemerkung(inp_fbs_modellbez, FBS_MODELLBEZ);

    return err_text;
}


function checkValues_best_qUL_Fabrikschild() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_man_sachnummer, inp_fbs_bemerkung, inp_fbs_modellbez;
    var MAN_SACHNUMMER, FBS_BEMERKUNG, FBS_MODELLBEZ;

    inp_man_sachnummer = document.getElementById(detinp + "QUL_MAN_SACHNUMMER");
    inp_fbs_bemerkung = document.getElementById(detinp + "QUL_FBS_BEMERKUNG");
    inp_fbs_modellbez = document.getElementById(detinp + "QUL_MODELLBEZ");

    // Werte aus Inputfeldern holen
    MAN_SACHNUMMER = inp_man_sachnummer.value;
    FBS_BEMERKUNG = inp_fbs_bemerkung.value;
    FBS_MODELLBEZ = inp_fbs_modellbez.value;

    // Leerzeichen entfernen
    MAN_SACHNUMMER = trimInput(MAN_SACHNUMMER);
    FBS_BEMERKUNG = trimInput(FBS_BEMERKUNG);
    FBS_MODELLBEZ = trimInput(FBS_MODELLBEZ);

    // Alle Felder weiß machen
    bg_w(new Array(inp_man_sachnummer, inp_fbs_bemerkung, inp_fbs_modellbez));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_fbs_bemerkung, FBS_BEMERKUNG);
    err_text += checkValues_bemerkung(inp_fbs_modellbez, FBS_MODELLBEZ);

    return err_text;
}

function checkValues_best_Fabrikschild() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_man_sachnummer, inp_fbs_bemerkung;
    var MAN_SACHNUMMER, FBS_BEMERKUNG;

    inp_man_sachnummer = document.getElementById(detinp + "MAN_SACHNUMMER");
    inp_fbs_bemerkung = document.getElementById(detinp + "FBS_BEMERKUNG");

    // Werte aus Inputfeldern holen
    MAN_SACHNUMMER = inp_man_sachnummer.value;
    FBS_BEMERKUNG = inp_fbs_bemerkung.value;

    // Leerzeichen entfernen
    MAN_SACHNUMMER = trimInput(MAN_SACHNUMMER);
    FBS_BEMERKUNG = trimInput(FBS_BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_man_sachnummer, inp_fbs_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_fbs_bemerkung, FBS_BEMERKUNG);

    return err_text;
}

/* hier nur pruefen, ob Motorumruestung (Motortyp alt/neu) belegt sind wenn
   eins von beiden belegt ist */
function checkValues_best_motorumruestung() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_motortyp_alt, inp_motortyp_neu;
    var inp_motornummer_alt, inp_motornummer_neu;
    var inp_motorschild_bemerkung;
    var MOTORTYP_ALT, MOTORTYP_NEU;
    var MOTORNUMMER_ALT, MOTORNUMMER_NEU;
    var MOTORSCHILD_BEMERKUNG;

    inp_motortyp_alt = document.getElementById(detinp + "MOTORTYP_ALT");
    inp_motortyp_neu = document.getElementById(detinp + "MOTORTYP_NEU");
    inp_motornummer_alt = document.getElementById(detinp + "MOTORNUMMER_ALT");
    inp_motornummer_neu = document.getElementById(detinp + "MOTORNUMMER_NEU");
    inp_motorschild_bemerkung = document.getElementById(detinp + "MOTORSCHILD_BEMERKUNG");

    // Werte aus Inputfeldern holen
    MOTORTYP_ALT = inp_motortyp_alt.value;
    MOTORTYP_NEU = inp_motortyp_neu.value;
    MOTORNUMMER_ALT = inp_motornummer_alt.value;
    MOTORNUMMER_NEU = inp_motornummer_neu.value;
    MOTORSCHILD_BEMERKUNG = inp_motorschild_bemerkung.value;

    // Leerzeichen entfernen
    MOTORTYP_ALT = trimInput(MOTORTYP_ALT);
    MOTORTYP_NEU = trimInput(MOTORTYP_NEU);
    MOTORNUMMER_ALT = trimInput(MOTORNUMMER_ALT);
    MOTORNUMMER_NEU = trimInput(MOTORNUMMER_NEU);
    MOTORSCHILD_BEMERKUNG = trimInput(MOTORSCHILD_BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_motortyp_alt, inp_motortyp_neu, inp_motorschild_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_motorschild_bemerkung, MOTORSCHILD_BEMERKUNG);

    // wenn nur eins von beiden ausgefüllt ist, dann das andere rot markieren
    if( MOTORTYP_NEU != "" || MOTORTYP_ALT != "" ||
        MOTORNUMMER_ALT != "" || MOTORNUMMER_NEU != "" ) {
        if( MOTORTYP_ALT == "" ) {
            err_text += WF_TEXTE.BEST_MOTORTYP_ALT + "\n";
            bg_r(new Array(inp_motortyp_alt));
        }
        if( MOTORTYP_NEU == "" ) {
            err_text += WF_TEXTE.BEST_MOTORTYP_NEU + "\n";
            bg_r(new Array(inp_motortyp_neu));
        }
    }


    return err_text;
}


function checkValues_best_TechnischeBestaetigung() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_sonstiges_chk, inp_sonstiges;
    var SONSTIGES_CHK, SONSTIGES;

    // Inputfelder holen
    inp_sonstiges_chk = document.getElementById(detinp + "SONSTIGES_CHK");
    inp_sonstiges = document.getElementById(detinp + "SONSTIGES");

    // Werte aus Inputfeldern holen
    SONSTIGES = inp_sonstiges.value;

    // Leerzeichen entfernen
    SONSTIGES = trimInput(SONSTIGES);

    // Alle Felder weiß machen
    bg_w(new Array(inp_sonstiges));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_sonstiges, SONSTIGES);

    // Sind die Felder ausgefuellt ?
    if (inp_sonstiges_chk.checked == true) {
        if (SONSTIGES == "") {
            err_text += WF_TEXTE.BEST_ANLIEGEN_ERR_1 + "\n";

            bg_r(new Array(inp_sonstiges));
        }
    }

    return err_text;
}


function get_radiobutton_value(element_array) {
    var i = 0;
    var ret = "";
    
    for (i=0; i<element_array.length; i++) {
        if (element_array[i].checked == true) {
            ret = element_array[i].value;
        }
    }
    
    return ret;
}


function checkValues_best_radstandsaenderung() {
    var err_text = "";
    var detinp = "DET_INP_";
    
    var inp_von, inp_auf;
    var VON, AUF;
    
    // Inputfelder holen
    inp_von = document.getElementById(detinp + "RADST_AENDERUNG_VON");
    inp_auf = document.getElementById(detinp + "RADST_AENDERUNG_AUF");
    
    // Werte holen
    VON = inp_von.value;
    AUF = inp_auf.value;
    
    // Leerzeichen entfernen
    VON = trimInput(VON);
    AUF = trimInput(AUF);
    
    // Alle Felder weiß machen
    bg_w(new Array(inp_von, inp_auf));
    
    // Beide Felder müssen belegt sein
    if (VON == "" || AUF == "") {
        if (VON == "") { bg_r(new Array(inp_von)); }
        if (AUF == "") { bg_r(new Array(inp_auf)); }
        
        err_text += WF_TEXTE.BEST_RADSTANDSAENDERUNG_ERR_1 + "\n";
        return err_text;
    }
    
    // Beide Felder müssen Zahlen enthalten
    if (is_numeric(VON) == 0 || is_numeric(AUF) == 0) { 
        if (is_numeric(VON) == 0) { 
            bg_r(new Array(inp_von)); 
            err_text += WF_TEXTE.BEST_RADSTANDSAENDERUNG_ERR_2 + "\n";
        }
        if (is_numeric(AUF) == 0) { 
            bg_r(new Array(inp_auf)); 
            err_text += WF_TEXTE.BEST_RADSTANDSAENDERUNG_ERR_3 + "\n";
        }
        return err_text;
    }
    
    return err_text;
}


function is_numeric(value) {
    if (isNaN(value) == true) { return 0; }
    else { return 1; }
}


function checkValues_best_Zulassungsdokumente() {
    var err_text = "";
    var detinp = "DET_INP_";
    var cnt = 0;

    var rad_zd_coc_zul_dok_daten_best, rad_zd_internationale_datenbest, rad_zd_db_erstellung_dt_kfz_brief, rad_zd_nat_zld_a, rad_zd_best_laenderhomologation, rad_inkl_zd;
    var rad_zd_hundert_kmh_best_d, rad_zd_hundert_kmh_best_f, rad_zd_best_sitz_stehplatz, rad_zd_best_schadst_geraeusch_kl, rad_zd_best_baujahr, rad_zd_adr_bescheinigung;
    var inp_bemerkung;
    var ZD_COC_ZUL_DOK_DATEN_BEST, ZD_INTERNATIONALE_DATENBEST, ZD_DB_ERSTELLUNG_DT_KFZ_BRIEF, ZD_NAT_ZLD_A, ZD_BEST_LAENDERHOMOLOGATION, INKL_ZD;
    var ZD_HUNDERT_KMH_BEST_D, ZD_HUNDERT_KMH_BEST_F, ZD_BEST_SITZ_STEHPLATZ, ZD_BEST_SCHADST_GERAEUSCH_KL, ZD_BEST_BAUJAHR, ZD_ADR_BESCHEINIGUNG;
    var BEMERKUNG;

    // Inputfelder holen
    inp_bemerkung = document.getElementById(detinp + "ZD_BEMERKUNG");
    
    rad_zd_coc_zul_dok_daten_best = document.getElementsByName(detinp + "ZD_COC_ZUL_DOK_DATEN_BEST");
    rad_zd_internationale_datenbest = document.getElementsByName(detinp + "ZD_INTERNATIONALE_DATENBEST");
    //rad_zd_db_erstellung_dt_kfz_brief = document.getElementsByName(detinp + "ZD_DB_ERSTELLUNG_DT_KFZ_BRIEF");
    rad_zd_nat_zld_a = document.getElementsByName(detinp + "ZD_NAT_ZLD_A");
    rad_zd_best_laenderhomologation = document.getElementsByName(detinp + "ZD_BEST_LAENDERHOMOLOGATION");
    rad_zd_hundert_kmh_best_d = document.getElementsByName(detinp + "ZD_HUNDERT_KMH_BEST_D");
    rad_zd_hundert_kmh_best_f = document.getElementsByName(detinp + "ZD_HUNDERT_KMH_BEST_F");
    rad_zd_best_sitz_stehplatz = document.getElementsByName(detinp + "ZD_BEST_SITZ_STEHPLATZ");
    rad_zd_best_schadst_geraeusch_kl = document.getElementsByName(detinp + "ZD_BEST_SCHADST_GERAEUSCH_KL");
    rad_zd_best_baujahr = document.getElementsByName(detinp + "ZD_BEST_BAUJAHR");
    rad_zd_adr_bescheinigung = document.getElementsByName(detinp + "ZD_ADR_BESCHEINIGUNG");
    rad_inkl_zd = document.getElementsByName(detinp + "INKL_ZD");

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;
    
    ZD_COC_ZUL_DOK_DATEN_BEST = get_radiobutton_value(rad_zd_coc_zul_dok_daten_best);
    ZD_INTERNATIONALE_DATENBEST = get_radiobutton_value(rad_zd_internationale_datenbest);
    //ZD_DB_ERSTELLUNG_DT_KFZ_BRIEF = get_radiobutton_value(rad_zd_db_erstellung_dt_kfz_brief);
    ZD_NAT_ZLD_A = get_radiobutton_value(rad_zd_nat_zld_a);
    ZD_BEST_LAENDERHOMOLOGATION = get_radiobutton_value(rad_zd_best_laenderhomologation);
    ZD_HUNDERT_KMH_BEST_D = get_radiobutton_value(rad_zd_hundert_kmh_best_d);
    ZD_HUNDERT_KMH_BEST_F = get_radiobutton_value(rad_zd_hundert_kmh_best_f);
    ZD_BEST_SITZ_STEHPLATZ = get_radiobutton_value(rad_zd_best_sitz_stehplatz);
    ZD_BEST_SCHADST_GERAEUSCH_KL = get_radiobutton_value(rad_zd_best_schadst_geraeusch_kl);
    ZD_BEST_BAUJAHR = get_radiobutton_value(rad_zd_best_baujahr);
    ZD_ADR_BESCHEINIGUNG = get_radiobutton_value(rad_zd_adr_bescheinigung);
    INKL_ZD = get_radiobutton_value(rad_inkl_zd);

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);

    // Sind die Felder ausgefuellt ?
    if (ZD_COC_ZUL_DOK_DATEN_BEST == 'j') { cnt ++; }
    if (ZD_INTERNATIONALE_DATENBEST == 'j') { cnt ++; }
    //if (ZD_DB_ERSTELLUNG_DT_KFZ_BRIEF == 'j') { cnt ++; }
    if (ZD_NAT_ZLD_A == 'j') { cnt ++; }
    if (ZD_BEST_LAENDERHOMOLOGATION == 'j') { cnt ++; }
    if (ZD_HUNDERT_KMH_BEST_D == 'j') { cnt ++; }
    if (ZD_HUNDERT_KMH_BEST_F == 'j') { cnt ++; }
    if (ZD_BEST_SITZ_STEHPLATZ == 'j') { cnt ++; }
    if (ZD_BEST_SCHADST_GERAEUSCH_KL == 'j') { cnt ++; }
    if (ZD_BEST_BAUJAHR == 'j') { cnt ++; }
    if (ZD_ADR_BESCHEINIGUNG == 'j') { cnt ++; }
    if (BEMERKUNG != '') { cnt ++; }
    
    //if (INKL_ZD == 'n') { return err_text; }
    //if (cnt > 0) { err_text = ""; }
    //else {
    //    err_text += WF_TEXTE.BEST_ZD_BITTE_ANGEBEN_ERR_1 + "\n";
    //}

    return err_text;
}


function checkValues_best_FBD() {
    var err_text = "";
    var detinp = "DET_INP_";
    var cnt = 0;

    var inp_bemerkung;
    var rad_laermarmbescheinigung, rad_cemt_nachweisblaetter, rad_abgasbescheinigung, rad_cop_dokument_lkw, rad_cop_dokument_bus, rad_inkl_fbd;
    var BEMERKUNG;
    var LAERMARMBESCHEINIGUNG, CEMT_NACHWEISBLAETTER, ABGASBESCHEINIGUNG, COP_DOKUMENT_LKW, COP_DOKUMENT_BUS, INKL_FBD;

    // Inputfelder holen
    inp_bemerkung = document.getElementById(detinp + "FBD_BEMERKUNG");
    
    rad_laermarmbescheinigung = document.getElementsByName(detinp + "FBD_LAERMARMBESCHEINIGUNG");
    rad_cemt_nachweisblaetter = document.getElementsByName(detinp + "FBD_CEMT_NACHWEISBLAETTER");
    rad_abgasbescheinigung = document.getElementsByName(detinp + "FBD_ABGASBESCHEINIGUNG");
    rad_cop_dokument_lkw = document.getElementsByName(detinp + "FBD_COP_DOKUMENT_LKW");
    rad_cop_dokument_bus = document.getElementsByName(detinp + "FBD_COP_DOKUMENT_BUS");
    rad_inkl_fbd = document.getElementsByName(detinp + "INKL_FBD");

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;
    
    LAERMARMBESCHEINIGUNG = get_radiobutton_value(rad_laermarmbescheinigung);
    CEMT_NACHWEISBLAETTER = get_radiobutton_value(rad_cemt_nachweisblaetter);
    ABGASBESCHEINIGUNG = get_radiobutton_value(rad_abgasbescheinigung);
    COP_DOKUMENT_LKW = get_radiobutton_value(rad_cop_dokument_lkw);
    COP_DOKUMENT_BUS = get_radiobutton_value(rad_cop_dokument_bus);
    INKL_FBD = get_radiobutton_value(rad_inkl_fbd);

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);

    // Sind die Felder ausgefuellt ?
    if (LAERMARMBESCHEINIGUNG == 'j') { cnt ++; }
    if (CEMT_NACHWEISBLAETTER == 'j') { cnt ++; }
    if (ABGASBESCHEINIGUNG == 'j') { cnt ++; }
    if (COP_DOKUMENT_LKW == 'j') { cnt ++; }
    if (COP_DOKUMENT_BUS == 'j') { cnt ++; }
    if (BEMERKUNG != '') { cnt ++; }
    
    
    //if (INKL_FBD == 'n') { return err_text; }
    //if (cnt > 0) { err_text = ""; }
    //else {
    //    err_text += WF_TEXTE.BEST_FBD_BITTE_ANGEBEN_ERR_1 + "\n";
    //}

    return err_text;
}

function checkValues_best_bestaetigung() {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    var err_text = "";

    var inp_fznr, inp_fin;
    var FZNR, FIN;

    var chk_fznr ,chk_fin, chk_combination;

    // Allg. Pruefungen
    //err_text += checkValues_nutzerdaten();                  // Nutzerdaten
    err_text += checkValues_best_Achslast();                // Achslast
    err_text += checkValues_best_Reifenkombination();       // Reifenkombination
    err_text += checkValues_best_Anhaengelast();            // Anhaengelast
    err_text += checkValues_best_Sattelzuggesamtgewicht();  // Sattelzuggesamtgewicht
    err_text += checkValues_best_Wechselbetrieb();          // Wechselbetrieb
    err_text += checkValues_best_Bremsberechnung();         // Bremsberechnung
    err_text += checkValues_best_SchedaTecnica();           // SchedaTecnica
    err_text += checkValues_best_motorumruestung();         // Motorumrüstung
    err_text += checkValues_best_TechnischeBestaetigung();  // TechnischeBestaetigung
    // Wurde aufgeteilt und existiert jetzt an verschiedenen Stellen im Code
    //err_text += checkValues_best_Fabrikschild();            // Fabrikschild
    
    // QUL-Teil (nur Prüfen, wenn dieser auch in der Maske vorkommt)
    if (document.getElementById("GROUP_QUL")) {
        err_text += checkValues_best_Aenderung_Achslast();  // Aenderung Achslast
        err_text += checkValues_best_Zusatzachse();         // Zusatzachse
        err_text += checkValues_best_qUL_Fabrikschild();    // Fabrikschild
    }
    
    // FBD-Teil (Fahrzeugbegleitende Dokumente)
    err_text += checkValues_best_FBD();                     // Fahrzeugbegleitende Dokumente
    
    // Zusätzliche FBS-Bearbeitung
    err_text += checkValues_best_ALGG_Fabrikschild();       // Fabrikschild (Änderung der zulässigen Achslasten und / oder des Gesamtgewichtes des Fahrzeugs)
    err_text += checkValues_best_AL_Fabrikschild();         // Fabrikschild (Änderung der zulässigen Anhängelast)
    err_text += checkValues_best_SZGG_Fabrikschild();       // Fabrikschild (Änderung des Sattelzuggesamtgewichtes)
    
    // Zulassungsdokumente
    err_text += checkValues_best_Zulassungsdokumente();    

    // Radstandsänderung
    if (document.getElementById("DET_INP_RADST_AENDERUNG_VON").value != "" && 
        document.getElementById("DET_INP_RADST_AENDERUNG_AUF").value != "") 
    {    
        err_text += checkValues_best_radstandsaenderung();
    }
    
    
    // FZNR und FIN pruefen
    // Inputfelder holen
    inp_fznr = document.getElementById("INP_FZNR");
    inp_fin = document.getElementById("INP_FIN");

    // Werte aus Inputfeldern holen
    FZNR = inp_fznr.value;
    FIN = inp_fin.value;

    // Leerzeichen entfernen
    FZNR = trimInput(FZNR);
    FIN = trimInput(FIN);

    // Alle Felder weiß machen
    bg_w(new Array(inp_fznr, inp_fin));

    chk_fznr = true;
    chk_fin = true;
    chk_combination = true;

    // FZNR oder FIN muss gefüllt sein
    if (FZNR != "" || FIN != "") {
        if (FZNR != "") { chk_fznr = validateFZNR(FZNR); }
        if (FIN != "") { chk_fin = validateFIN(FIN); }

        if (FIN != "" && FZNR != "" && chk_fin && chk_fznr) {
            chk_combination = validateCombination_FZNR_FIN(FZNR, FIN);
        }

        if (FZNR != "" && !chk_fznr) {
            err_text += WF_TEXTE.ANTRAG_FZNR_ERR + "\n";
            bg_r(new Array(inp_fznr));
        }
        if (FIN != "" && !chk_fin) {
            err_text += WF_TEXTE.ANTRAG_FIN_ERR + "\n";
            bg_r(new Array(inp_fin));
        }
        if (!chk_combination) {
            err_text += errmsg_Combination_FZNR_FIN(FZNR, FIN) + "\n";
            bg_r(new Array(inp_fznr, inp_fin));
        }

    }
    else {
        err_text += WF_TEXTE.ANTRAG_FZNR_FIN_EINGEBEN + "\n";
        bg_r(new Array(inp_fznr, inp_fin));
    }


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}

function checkValues_best_amtlicheWerte() {
    var err_text = "";
    var detinp = "DET_INP_";

    var inp_man_sachnummer, inp_fbs_bemerkung, inp_fbs_ja_nein;
    var MAN_SACHNUMMER, FBS_BEMERKUNG, FBS_JA_NEIN;

    var inp_spalten;
    var SPALTEN;

    // Inputfelder holen
    inp_fbs_ja_nein = document.getElementsByName(detinp + "FBS");

    FBS_JA_NEIN = getSelectedValues(inp_fbs_ja_nein);
    FBS_JA_NEIN = FBS_JA_NEIN.join('');
    inp_spalten = document.getElementsByName(detinp + "SPALTEN");
    SPALTEN = getSelectedValues(inp_spalten);
    SPALTEN = SPALTEN.join('');

    var controls = new Object();
    controls['AMTLICH_GESAMTGEWICHT']   = document.getElementById(detinp + "AMTLICH_GESAMTGEWICHT");
    controls['AMTLICH_ZUGGESAMTGEWICHT']= document.getElementById(detinp + "AMTLICH_ZUGGESAMTGEWICHT");
    controls['AMTLICH_ACHSE_1']         = document.getElementById(detinp + "AMTLICH_ACHSE_1");
    controls['AMTLICH_ACHSE_2']         = document.getElementById(detinp + "AMTLICH_ACHSE_2");
    controls['AMTLICH_ACHSE_3']         = document.getElementById(detinp + "AMTLICH_ACHSE_3");
    controls['AMTLICH_ACHSE_4']         = document.getElementById(detinp + "AMTLICH_ACHSE_4");
    controls['AMTLICH_ACHSE_5']         = document.getElementById(detinp + "AMTLICH_ACHSE_5");

    var minFilled = 0;
    var count = 0;

    for( var i in controls) {
        // 1. alle Felder weis
        bg_w(new Array(controls[i]));

        // 2. Leerzeichen entfernen
        controls[i].value = trimInput(controls[i].value);

        // 3. gucken ob wieviele Felder ausgefuellt
        if( controls[i].value != "" ) {
            minFilled++;
        }
        count++;
    }

    // wenn 2-spaltiges FBS + FBS = ja, dann min 1 Feld fuer amtliche Werte ausfuellen
    // --> gucken welches und dann rot machen
    if( FBS_JA_NEIN == 'j' && SPALTEN == 2 && minFilled== 0 ) {
        // Feld rot markieren
        for( var i in controls) {
            if( controls[i].value == "" ) { bg_r(new Array(controls[i])); }
        }
        err_text+= WF_TEXTE.BEST_AMTLICHE_WERTE_ANGEBEN + "\n";
    }
}

/* Validierung Maske Motorschild - AG Bestätigung */
function checkValues_best_motor() {

    var err_div = document.getElementById('WF_PORTAL_ERRMSG');

    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_bemerkung;
    var BEMERKUNG;


    //err_text += checkValues_nutzerdaten();  // Nutzerdaten
    err_text += checkValues_motordaten();     // Motordaten (Motornummer/-typ)

    // Inputfelder holen
    inp_bemerkung = document.getElementById("DET_INP_BEMERKUNG");

    // Werte aus Inputfeldern holen
    BEMERKUNG = inp_bemerkung.value;

    // Leerzeichen entfernen
    BEMERKUNG = trimInput(BEMERKUNG);

    // Alle Felder weiß machen
    bg_w(new Array(inp_bemerkung));

    // Bemerkungsfeld ist kein Pflichtfeld

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_bemerkung, BEMERKUNG);


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


function checkValues_best_Aenderung_Radstaende() {
    var err_text = "";
    var detinp = "DET_INP_";
    
    var i = 0;

    var inp_radstaende_uebh;
    var RADSTAENDE_UEBH;

    inp_radstaende_uebh = new Array();
    
    RADSTAENDE_UEBH = new Array();
    
    for (i=1; i<6; i++) {
        inp_radstaende_uebh.push(document.getElementById(detinp + "QUL_RADSTAENDE_UEBH" + "_A" + i));
    }
    
    // Werte aus Inputfeldern holen
    for (i=0; i<5; i++) {
        RADSTAENDE_UEBH.push(inp_radstaende_uebh[i].value);
    }
    
    // Leerzeichen entfernen
    for (i=0; i<5; i++) {
        RADSTAENDE_UEBH[i] = trimInput(RADSTAENDE_UEBH[i]);
    }

    // Alle Felder weiß machen
    bg_w(inp_radstaende_uebh);

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    for (i=0; i<5; i++) {
        err_text += checkValues_bemerkung(inp_radstaende_uebh[i],RADSTAENDE_UEBH[i]);
    }

    return err_text;
}


function checkValues_best_Aenderung_Achslast() {
    var err_text = "";
    var detinp = "DET_INP_";
    
    var i = 0;

    var inp_achslast_gewicht, inp_bereifung, inp_gesamtgewicht;
    var ACHSLAST_GEWICHT, BEREIFUNG, GESAMTGEWICHT;

    inp_achslast_gewicht = new Array();
    inp_bereifung = new Array();
    inp_gesamtgewicht = document.getElementById(detinp + "QUL_ACHSLAST_GESAMTGEWICHT");
    
    ACHSLAST_GEWICHT = new Array();
    BEREIFUNG = new Array();
    GESAMTGEWICHT = "";
    
    for (i=1; i<6; i++) {
        inp_achslast_gewicht.push(document.getElementById(detinp + "QUL_ACHSLAST_GEWICHT" + "_A" + i));
        inp_bereifung.push(document.getElementById(detinp + "QUL_BEREIFUNG" + "_A" + i));
    }
    
    // Werte aus Inputfeldern holen
    for (i=0; i<5; i++) {
        ACHSLAST_GEWICHT.push(inp_achslast_gewicht[i].value);
        BEREIFUNG.push(inp_bereifung[i].value);
    }
    GESAMTGEWICHT = inp_gesamtgewicht.value;
    
    // Leerzeichen entfernen
    for (i=0; i<5; i++) {
        ACHSLAST_GEWICHT[i] = trimInput(ACHSLAST_GEWICHT[i]);
        BEREIFUNG[i] = trimInput(BEREIFUNG[i]);
    }
    GESAMTGEWICHT = trimInput(GESAMTGEWICHT);

    // Alle Felder weiß machen
    bg_w(inp_achslast_gewicht);
    bg_w(inp_bereifung);
    bg_w(inp_gesamtgewicht);

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    for (i=0; i<5; i++) {
        err_text += checkValues_bemerkung(inp_achslast_gewicht[i],ACHSLAST_GEWICHT[i]);
        err_text += checkValues_bemerkung(inp_bereifung[i],BEREIFUNG[i]);
    }
    err_text += checkValues_bemerkung(inp_gesamtgewicht, GESAMTGEWICHT);

    return err_text;
}


function checkValues_best_Zusatzachse() {
    var err_text = "";
    var detinp = "DET_INP_";
    
    var i = 0;

    var inp_typ_zusatzachse, inp_radbremse_zusatzachse, inp_ecas_steuergeraet_nr, inp_radformel, inp_zusatzachse_bemerkung;
    var TYP_ZUSATZACHSE, RADBREMSE_ZUSATZACHSE, ECAS_STEUERGERAET_NR, RADFORMEL, ZUSATZACHSE_BEMERKUNG;

    inp_typ_zusatzachse = document.getElementById(detinp + "QUL_TYP_ZUSATZACHSE");
    inp_radbremse_zusatzachse = document.getElementById(detinp + "QUL_RADBREMSE_ZUSATZACHSE");
    inp_ecas_steuergeraet_nr = document.getElementById(detinp + "QUL_ECAS_STEUERGERAET_NR");
    inp_radformel = document.getElementById(detinp + "QUL_RADFORMEL");
    inp_zusatzachse_bemerkung = document.getElementById(detinp + "QUL_ZUSATZACHSE_BEMERKUNG");
    
    // Werte aus Inputfeldern holen
    TYP_ZUSATZACHSE       = inp_typ_zusatzachse.value;
    RADBREMSE_ZUSATZACHSE = inp_radbremse_zusatzachse.value;
    ECAS_STEUERGERAET_NR  = inp_ecas_steuergeraet_nr.value;
    RADFORMEL             = inp_radformel.value;
    ZUSATZACHSE_BEMERKUNG = inp_zusatzachse_bemerkung.value;
    
    // Leerzeichen entfernen
    TYP_ZUSATZACHSE       = trimInput(TYP_ZUSATZACHSE);
    RADBREMSE_ZUSATZACHSE = trimInput(RADBREMSE_ZUSATZACHSE);
    ECAS_STEUERGERAET_NR  = trimInput(ECAS_STEUERGERAET_NR);
    RADFORMEL             = trimInput(RADFORMEL);
    ZUSATZACHSE_BEMERKUNG = trimInput(ZUSATZACHSE_BEMERKUNG);

    // Alle Felder weiß machen
    //bg_w(new Array(inp_man_sachnummer, inp_fbs_bemerkung));
    bg_w(new Array(inp_typ_zusatzachse,inp_radbremse_zusatzachse,inp_ecas_steuergeraet_nr,inp_radformel,inp_zusatzachse_bemerkung));

    // Bemerkung auf ungueltige Sonderzeichen untersuchen
    err_text += checkValues_bemerkung(inp_typ_zusatzachse,TYP_ZUSATZACHSE);
    err_text += checkValues_bemerkung(inp_radbremse_zusatzachse,RADBREMSE_ZUSATZACHSE);
    err_text += checkValues_bemerkung(inp_ecas_steuergeraet_nr,ECAS_STEUERGERAET_NR);
    err_text += checkValues_bemerkung(inp_radformel,RADFORMEL);
    err_text += checkValues_bemerkung(inp_zusatzachse_bemerkung,ZUSATZACHSE_BEMERKUNG);

    return err_text;
}


function checkValues_best_fbs() {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    var err_text = "";

    var inp_fznr, inp_fin;
    var FZNR, FIN;

    var chk_fznr ,chk_fin, chk_combination;

    // Allg. Pruefungen
    //err_text += checkValues_nutzerdaten();                // Nutzerdaten
    err_text += checkValues_best_Fabrikschild();            // Fabrikschild

    // FZNR und FIN pruefen
    // Inputfelder holen
    inp_fznr = document.getElementById("INP_FZNR");
    inp_fin = document.getElementById("INP_FIN");

    // Werte aus Inputfeldern holen
    FZNR = inp_fznr.value;
    FIN = inp_fin.value;

    // Leerzeichen entfernen
    FZNR = trimInput(FZNR);
    FIN = trimInput(FIN);

    // Alle Felder weiß machen
    bg_w(new Array(inp_fznr, inp_fin));

    chk_fznr = true;
    chk_fin = true;
    chk_combination = true;

    // FZNR oder FIN muss gefüllt sein
    if (FZNR != "" || FIN != "") {
        if (FZNR != "") { chk_fznr = validateFZNR(FZNR); }
        if (FIN != "") { chk_fin = validateFIN(FIN); }

        if (FIN != "" && FZNR != "" && chk_fin && chk_fznr) {
            chk_combination = validateCombination_FZNR_FIN(FZNR, FIN);
        }

        if (FZNR != "" && !chk_fznr) {
            err_text += WF_TEXTE.ANTRAG_FZNR_ERR + "\n";
            bg_r(new Array(inp_fznr));
        }
        if (FIN != "" && !chk_fin) {
            err_text += WF_TEXTE.ANTRAG_FIN_ERR + "\n";
            bg_r(new Array(inp_fin));
        }
        if (!chk_combination) {
            err_text += errmsg_Combination_FZNR_FIN(FZNR, FIN) + "\n";
            bg_r(new Array(inp_fznr, inp_fin));
        }

    }
    else {
        err_text += WF_TEXTE.ANTRAG_FZNR_FIN_EINGEBEN + "\n";
        bg_r(new Array(inp_fznr, inp_fin));
    }


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}


function checkValues_best_qul() {
    var err_div = document.getElementById('WF_PORTAL_ERRMSG');
    var err_text = "";

    var inp_fznr, inp_fin;
    var FZNR, FIN;

    var chk_fznr ,chk_fin, chk_combination;

    // Allg. Pruefungen
    //err_text += checkValues_nutzerdaten();                // Nutzerdaten
    err_text += checkValues_best_Aenderung_Achslast();      // Aenderung Achslast
    err_text += checkValues_best_Aenderung_Radstaende();    // Aenderung Radstaende und Ueberhang
    err_text += checkValues_best_Zusatzachse();             // Zusatzachse
    err_text += checkValues_best_Fabrikschild();            // Fabrikschild

    // FZNR und FIN pruefen
    // Inputfelder holen
    inp_fznr = document.getElementById("INP_FZNR");
    inp_fin = document.getElementById("INP_FIN");

    // Werte aus Inputfeldern holen
    FZNR = inp_fznr.value;
    FIN = inp_fin.value;

    // Leerzeichen entfernen
    FZNR = trimInput(FZNR);
    FIN = trimInput(FIN);

    // Alle Felder weiß machen
    bg_w(new Array(inp_fznr, inp_fin));

    chk_fznr = true;
    chk_fin = true;
    chk_combination = true;

    // FZNR oder FIN muss gefüllt sein
    if (FZNR != "" || FIN != "") {
        if (FZNR != "") { chk_fznr = validateFZNR(FZNR); }
        if (FIN != "") { chk_fin = validateFIN(FIN); }

        if (FIN != "" && FZNR != "" && chk_fin && chk_fznr) {
            chk_combination = validateCombination_FZNR_FIN(FZNR, FIN);
        }

        if (FZNR != "" && !chk_fznr) {
            err_text += WF_TEXTE.ANTRAG_FZNR_ERR + "\n";
            bg_r(new Array(inp_fznr));
        }
        if (FIN != "" && !chk_fin) {
            err_text += WF_TEXTE.ANTRAG_FIN_ERR + "\n";
            bg_r(new Array(inp_fin));
        }
        if (!chk_combination) {
            err_text += errmsg_Combination_FZNR_FIN(FZNR, FIN) + "\n";
            bg_r(new Array(inp_fznr, inp_fin));
        }

    }
    else {
        err_text += WF_TEXTE.ANTRAG_FZNR_FIN_EINGEBEN + "\n";
        bg_r(new Array(inp_fznr, inp_fin));
    }


    if (err_text != "") {
        display_errors(err_text);
        return false;
    }
    else {
        err_div.appendChild(document.createTextNode(""));
        err_div.style.display = 'none';
        return true;
    }
}




/******************************************************************
 * Holt die aktualisierte Tabelle mit hochgeladenen Dokumenten
 * via Ajax-Request in die Maske. (Fuer einen einzelnen Antrag)
 * Parameter:
 *   vid       : ID des Vorgangs (VORGANG_ID)
 *   parentdiv : ID des DIV-Elements, in welches die Ajax-Antwort
 *               eingefuegt wird
 * Rueckgabe:
 *   true bei Erfolg, sonst false
 *
 * Anmerkung:
 * ata 15.06.2009 : Wait-Icon fuer Upload eingefuegt
 ******************************************************************/
function execAjax_getUploadFilesAsTable_simple(vid, parentdiv) {
    if ( ! document.getElementById ) { return false; }

    var now = new Date();
    var session=document.getElementById('session').value;
    var wait = document.getElementById('WAIT_UPLOAD');

    // Callback-Funktion
    var callback=function() {
        var placement=document.getElementById(parentdiv);
        if ( ajax.request.readyState==4 ) {
            if ( placement ) {
                placement.innerHTML=ajax.request.responseText;
            }
            else {
                alert(ajax.request.responseText);
            }

            wait.style.display = 'none';
        }
    };

    wait.style.display = 'inline';

    var query = "ajaxmode=UPLOAD_TABLE_SIMPLE"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&VID="+escape(vid)
              + "&PARENTDIV="+escape(parentdiv)
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}


function uploadFile(ID) {
    // Aufbau: 'caseid;eintragsid'
    var parameter = ID;
    parameter += ";SERVER"; // nur debug

    showHITUpload(parameter,uploadFinished);
}


function uploadFinished(ergebnis,responsetext) {
    // Ergebnislink eintragen:
    if( ergebnis.nachbearbeitung_return != '') {

        var res = ergebnis.GetNachbearbeitungResult();
        //var arr = res.split("\t");  // Aus unerklaerlichen Gruenden
                                      // kann in JS leider nicht an \t getrennt werden
        var arr = res.split("|");
        var typ;
        var wert;
        var tmp;
        var lnk;
        var dokname;
        var vid;// = document.getElementById('INP_VORGANG_ID').value;


        for(i = 0; i < arr.length; i++) {
            if( arr[i].substr(0,5) == 'LINK=' ) {
                lnk = arr[i].substr( 5, arr[i].length - 5 );
            }
            if( arr[i].substr(0,8) == 'DOKNAME=' ) {
                dokname = arr[i].substr( 8, arr[i].length - 8 );
            }
            if( arr[i].substr(0,4) == 'VID=' ) {
                vid = arr[i].substr( 4, arr[i].length - 4 );
            }
        }

        if( lnk != '' ) {
            // Tabelle holen
            execAjax_getUploadFilesAsTable_simple(vid, 'DIV_UPLOADED_FILES');

            //alert(document.getElementById('TAB_UPLOADED_FILES'));
            //var text = "<p><a href='" + lnk + "' target='_blank'>" + dokname + "</a><p> <br>";
            //elem = document.getElementById('Dateien');
            //elem.innerHTML = text;
        }

        elem = document.getElementById('files');
        if( elem ) {
            elem.value += dokname + ";";
        }

        return 0;
    }
}


// Wird von allen anderen checkValues-Funktionen gerufen und muss nicht separat
// gerufen werden. Diese Funktion spielt mit dem eplx wf_portal_nutzerdaten.eplx
// zusammen. Diese Funktion liefert einen Fehlertext zurueck, der von den
// checkValues-Funktionen interpretiert wird. Ist alles OK ist dieser Text leer.
// Fehlerhafte Formularfelder werden rot markiert.
function checkValues_nutzerdaten() {
    var ELEMENTID = "INP_";
    var err_text = "";
    var err_color = "#ffc6a8";

    var formtyp = document.getElementById('INP_FORMTYP').value; // Formulartyp

    var inp_anrede, inp_name, inp_vorname;                  // Verfügbar: Jede Maske
    var inp_strasse, inp_plz, inp_ort, inp_land, inp_firma; // Verfügbar: Jede Maske
    var inp_email, inp_telefon, inp_fax;                    // Verfügbar: Jede Maske


    // Variablen belegen, dabei aber den Formulartyp beachten, da nicht überall
    // alle Felder verfügbar sind
    inp_anrede = document.getElementById(ELEMENTID + "ANREDE");
    inp_firma = document.getElementById(ELEMENTID + "FIRMA");
    inp_name = document.getElementById(ELEMENTID + "NAME");
    inp_strasse = document.getElementById(ELEMENTID + "STRASSE");
    inp_vorname = document.getElementById(ELEMENTID + "VORNAME");
    inp_plz = document.getElementById(ELEMENTID + "PLZ");
    inp_ort = document.getElementById(ELEMENTID + "ORT");
    inp_email = document.getElementById(ELEMENTID + "EMAIL");
    inp_land = document.getElementById(ELEMENTID + "LAND");
    inp_telefon = document.getElementById(ELEMENTID + "TELEFON");
    inp_fax = document.getElementById(ELEMENTID + "FAX");


    // Alles auf weiß setzen
    bg_w(new Array(
        inp_anrede, inp_firma, inp_name, inp_strasse,
        inp_vorname, inp_plz, inp_ort, inp_email, inp_land,
        inp_telefon, inp_fax
    ));


    var ar;


    // Sind alle 'Muss'-Felder gefuellt ?
    if ((inp_anrede.options[0].selected == true) && (inp_firma.value == "") && (inp_name.value == "") &&
        (inp_vorname.value == "") && (inp_plz.value == "") && (inp_ort.value == "") &&
        (inp_email.value == "") && (inp_land.value == "") && (inp_telefon.value == ""))
    {
        err_text += WF_TEXTE.NUTZER_LEER_ERR + "\n";

        bg_r(new Array(
            inp_anrede, inp_firma, inp_name, inp_strasse,
            inp_vorname, inp_plz, inp_ort, inp_email, inp_land,
            inp_telefon
        ));
    }
    else {
        // Hier bereits testen und die Ergebnisse speichern - JS ist ja fuer anderes zu ... naja
        var test_firma = validateFirma(inp_firma.value);
        var test_name = validateName(inp_name.value);
        var test_vorname = validateName(inp_vorname.value);
        var test_strasse = validateName(inp_strasse.value);
        var test_plz = validatePlz(inp_plz.value);
        var test_ort = validateName(inp_ort.value);
        var test_land = validateName(inp_land.value);
        var test_telefon = validateTelefonFax(inp_telefon.value);
        var test_fax = validateTelefonFax(inp_fax.value);


        // Anrede
        if (inp_anrede.options[0].selected == true) {
            err_text += WF_TEXTE.NUTZER_ANREDE_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD + " '" + WF_TEXTE.NUTZER_ANREDE_KURZ + "')\n";
            bg_r(new Array(inp_anrede));
        }

        // Firma
        if (inp_firma.value == "") {
            err_text += WF_TEXTE.NUTZER_FIRMA_ERR_1 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_FIRMA_KURZ + "')\n";
            bg_r(new Array(inp_firma));
        }
        else {
            if (!test_firma) {
                err_text += WF_TEXTE.NUTZER_FIRMA_ERR_2 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_FIRMA_KURZ + "')\n";
                bg_r(new Array(inp_firma));
            }
        }

        // Name
        if (inp_name.value == "") {
            err_text += WF_TEXTE.NUTZER_NAME_ERR_1 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_NAME_KURZ + "')\n";
            bg_r(new Array(inp_name));
        }
        else {
            if (!test_name) {
                err_text += WF_TEXTE.NUTZER_NAME_ERR_2 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_NAME_KURZ + "')\n";
                bg_r(new Array(inp_name));
            }
        }

        // Vorname
        if (inp_vorname.value == "") {
            err_text += WF_TEXTE.NUTZER_VORNAME_ERR_1 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_VORNAME_KURZ + "')\n";
            bg_r(new Array(inp_vorname));
        }
        else {
            if (!test_vorname) {
                err_text += WF_TEXTE.NUTZER_VORNAME_ERR_2 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_VORNAME_KURZ + "')\n";
                bg_r(new Array(inp_vorname));
            }
        }

        // Straße
        if (inp_strasse.value == "") {
            err_text += WF_TEXTE.NUTZER_STRASSE_ERR_1 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_STRASSE_KURZ + " / " + WF_TEXTE.NUTZER_HAUSNUMMER_KURZ + "')\n";
            bg_r(new Array(inp_strasse));
        }
        else {
            if (!test_strasse) {
                err_text += WF_TEXTE.NUTZER_STRASSE_ERR_2 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_STRASSE_KURZ + " / " + WF_TEXTE.NUTZER_HAUSNUMMER_KURZ + "')\n";
                bg_r(new Array(inp_strasse));
            }
        }

        // PLZ
        if (inp_plz.value == "") {
            err_text += WF_TEXTE.NUTZER_PLZ_ERR_1 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_PLZ_KURZ + "')\n";
            bg_r(new Array(inp_plz));
        }
        else {
            if (! test_plz) {
            err_text += WF_TEXTE.NUTZER_PLZ_ERR_2 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_PLZ_KURZ + "')\n";
                bg_r(new Array(inp_plz));
            }
        }

        // Ort
        if (inp_ort.value == "") {
            err_text += WF_TEXTE.NUTZER_ORT_ERR_1 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_ORT_KURZ + "')\n";
            bg_r(new Array(inp_ort));
        }
        else {
            if (!test_ort) {
            err_text += WF_TEXTE.NUTZER_ORT_ERR_2 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_ORT_KURZ + "')\n";
                bg_r(new Array(inp_ort));
            }
        }

        // Land
        if (inp_land.value == "") {
            err_text += WF_TEXTE.NUTZER_LAND_ERR_1 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_LAND_KURZ + "')\n";
            bg_r(new Array(inp_land));
        }
        else {
            if (!test_land) {
                err_text += WF_TEXTE.NUTZER_LAND_ERR_2 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_LAND_KURZ + "')\n";
                bg_r(new Array(inp_land));
            }
        }

        // Email
        // keine Email angegeben
        if (inp_email.value == "") {
            err_text += WF_TEXTE.NUTZER_EMAIL_ERR_1 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_EMAIL_KURZ + "')\n";
            bg_r(new Array(inp_email));
        }
        // ungueltige Email angegeben
        else if( !validateEmail(inp_email.value) ) {
            err_text += WF_TEXTE.NUTZER_EMAIL_ERR_2 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_EMAIL_KURZ + "')\n";
            bg_r(new Array(inp_email));
        }


        // Telefon
        if (inp_telefon.value == "") {
            err_text += WF_TEXTE.NUTZER_TELEFON_ERR_1 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_TELEFON_KURZ + "')\n";
            bg_r(new Array(inp_telefon));
        }
        else {
            if (! test_telefon) {
                err_text += WF_TEXTE.NUTZER_TELEFON_ERR_2 + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_TELEFON_KURZ + "')\n";
                bg_r(new Array(inp_telefon));
            }
        }
        // Fax
        if ((inp_fax.value != "") && (! test_fax)) {
            err_text += WF_TEXTE.NUTZER_FAX_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_FAX_KURZ + "')\n";
            bg_r(new Array(inp_fax));
        }

    }

    return err_text;
}

/*
* Prueft Zusatzantwort auf korrektheit
*/
function checkValues_zusatzAntwort() {
    var ELEMENTID = "INP_";
    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_zusatz_antwort_email, inp_zusatz_antwort_fax;
    var inp_email, inp_fax;

    // checkboxen die angeben, ob der Bescheid an d. Faxnummer oder d. Emailadresse versendet werden soll
    zusatz_antwort_email = document.getElementsByName("ZUSATZ_ANTWORT_EMAIL");
    zusatz_antwort_fax = document.getElementsByName("ZUSATZ_ANTWORT_FAX");

    //inp_email = document.getElementById(ELEMENTID + "EMAIL");
    inp_fax = document.getElementById(ELEMENTID + "FAX");

    // leerzeichen entfernen
    //inp_email.value = trimInput(inp_email.value);
    inp_fax.value = trimInput(inp_fax.value);

    // Felder weis machen
    //bg_w(new Array(inp_email, inp_fax));

    // Zusatz-Antwort
    //if (zusatz_antwort_email[0].checked == true) {
    //    if (inp_email.value == "" && !validateEmail(inp_email.value) ) {
    //        err_text += WF_TEXTE.NUTZER_ZUSATZANTWORT_EMAIL_ERR + "\n";
    //        bg_r(new Array(inp_email));
    //    }
    //}
    //else if (zusatz_antwort_fax[0].checked == true) {
    if (zusatz_antwort_fax[0].checked == true) {
        if (inp_fax.value == "" && !validateTelefonFax(inp_fax.value)) {
            err_text += WF_TEXTE.NUTZER_ZUSATZANTWORT_FAX_ERR + "\n";
            //bg_r(new Array(inp_fax));
        }
    }

    return err_text;
}


/*
* Prueft Feld "Antwort Kopie an" auf Korrektheit
*/
function checkValues_KopieAn() {
    var ELEMENTID = "INP_";
    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_kopie_an;
    inp_kopie_an = document.getElementById(ELEMENTID + "KOPIE_AN");

    // leerzeichen entfernen
    inp_kopie_an.value = trimInput(inp_kopie_an.value);

    if(inp_kopie_an.value != "") {
        // zuerst pruefen auf korrekte Faxnummer
        if(!validateTelefonFax(inp_kopie_an.value)) {
            // dann pruefen auf korrekte Emailadresse
            var regex_leer = / /;
            if (!validateEmail(inp_kopie_an.value) || regex_leer.test(inp_kopie_an.value)) {
                err_text += WF_TEXTE.NUTZER_KOPIE_AN_ERR + "\n";
                bg_r(new Array(inp_kopie_an));
            }
        }
    }

    return err_text;
}


/*
 * Prueft ob auch alles von der Servicedesk-Vorfallsnummer ausgefüllt ist
 */
function checkValues_ServicedeskVorfall() {
    var ELEMENTID = "DET_INP_";
    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_servicedesk;

    inp_servicedesk = document.getElementById(ELEMENTID + "SERVICEDESKVORFALL");
    inp_servicedesk.value = trimInput(inp_servicedesk.value);

    // Felder weis machen
    bg_w(new Array(inp_servicedesk));

    if (inp_servicedesk.value == "") {
        err_text += WF_TEXTE.PARA_FAHRZEUG_SERVICEDESKVORFALL_1 + "\n";
        bg_r(new Array(inp_servicedesk));
    }

    return err_text;
}

/*
* Prueft ob auch alles von der Motorcheckliste ausgefuellt ist
*/
function checkValues_MotorChecklisten() {
	var ELEMENTID = "DET_INP_";
    var err_text = "";
    var err_color = "#ffc6a8";

    //var inp_kenntnis;

    var controls = new Object();
    controls['MOTORTYP']            = document.getElementById(ELEMENTID + "MOTORTYP");
    controls['MOTORNUMMER']         = document.getElementById(ELEMENTID + "MOTORNUMMER");
    controls['EDC_SACHNUMMER']      = document.getElementById(ELEMENTID + "EDC_SACHNUMMER");
    controls['OELDRUCKSENSOR']      = document.getElementById(ELEMENTID + "OELDRUCKSENSOR");
    controls['MOTORFUNKTION_NEU']   = document.getElementById(ELEMENTID + "MOTORFUNKTION_NEU");
    controls['FFR_SACHNUMMER']      = document.getElementById(ELEMENTID + "FFR_SACHNUMMER");
    controls['OELSTANDSSENSIERUNG'] = document.getElementById(ELEMENTID + "OELSTANDSSENSIERUNG");
    controls['MOTORNEIGUNG']        = document.getElementById(ELEMENTID + "MOTORNEIGUNG");
	inp_motor_checkliste = document.getElementById(ELEMENTID + "MOTOR_CHECKLISTE");
    inp_kenntnis= document.getElementById(ELEMENTID + "MOTOR_CHECKLISTE_KENNTNIS");


    // Werte der Eingabefelder holen
    var values = new Object();
    for (var j in controls ) {
        if( controls[j] ) {
            controls[j].value = trimInput(controls[j].value);
            values[j] = controls[j].value;
        }
    }

    var leereElemente = new Array();
    filledCount = 0;
    count = 0;
    // alle Elemente weiss faerben (und gleich gucken, wieviele ausgefuellt wurden)
    for (var j in values ) {
        bg_w(new Array(controls[j]));

        if( values[j] != '' )   { filledCount++; }
        // alle Elemente merken die leer sind, diese muessen dann rot markiert werden,
        else                    { leereElemente.push(j); }

        count++;
    }

    
    // es wurden nicht alle Felder der Motorcheckliste aufgefuellt    
    //if( filledCount != count ) {
    if( filledCount != count ) {
        // leere Steuerelemente rot einfaerben
        var key;
        for( var j = 0; j < leereElemente.length; j++ ) {
            key = leereElemente[j];
            bg_r(new Array(controls[key]));
        }
        // allgem. Fehlermeldung ausgeben
        err_text += WF_TEXTE.PARA_FAHRZEUG_MOTOR_CHECKLISTE_1 + "\n";
    }


    return err_text;
}

/*
* Prueft die Felder Kunde und Kunde (Ort) auf Korrektheit
*/
function checkValues_kunde() {
    var ELEMENTID = "INP_";
    var err_text = "";
    var err_color = "#ffc6a8";
    
    var formtyp = document.getElementById(ELEMENTID + 'FORMTYP').value;

    var inp_kunde, inp_ortkunde;                            // Verfügbar: Leergewichtermittlung, Maßermittlung, Zeichnungsanforderung, Nebenabtrieb

    inp_kunde = document.getElementById(ELEMENTID + "KUNDE");
    if (formtyp != 'PARA_KIBES_KV' && formtyp != 'PARA_KIBES_BESTELL') {
        inp_ortkunde = document.getElementById(ELEMENTID + "ORT_KUNDE");
    }

    // leerzeichen entfernen
    inp_kunde.value = trimInput(inp_kunde.value);
    if (formtyp != 'PARA_KIBES_KV' && formtyp != 'PARA_KIBES_BESTELL') {
        inp_ortkunde.value = trimInput(inp_ortkunde.value);
    }

    // Felder weis machen
    bg_w(new Array(inp_kunde, inp_ortkunde));

    var test_kunde = validateFirma(inp_kunde.value);
    if (formtyp != 'PARA_KIBES_KV' && formtyp != 'PARA_KIBES_BESTELL') {
        var test_ortkunde = validateName(inp_ortkunde.value);
    }

    // Kunde
    if ((inp_kunde.value != "") && (!test_kunde)) {
        err_text += WF_TEXTE.NUTZER_KUNDE_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_KUNDE_KURZ + "')\n";
        bg_r(new Array(inp_kunde));
    }

    // Ort (Kunde)
    if ((formtyp != "PARA_KIBES_KV") && (formtyp != "PARA_KIBES_BESTELL") && (inp_ortkunde.value != "") && (!test_ortkunde)) {
        err_text += WF_TEXTE.NUTZER_ORTKUNDE_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_ORT_KURZ + " (" + WF_TEXTE.NUTZER_KUNDE_KURZ + "'))\n";
        bg_r(new Array(inp_ortkunde));
    }

    return err_text;
}

/* Funktion ueberprueft die Auswahl d. Nebenabtriebe
*   wurde ausgelagert, da sie noch von der Maske Nebenabtrieb Einbaulage (Aufbau) benoetigt wird
* Parameter:
*   - anzahlNebenabtriebe:
*           - gibt die Anzahl d. einstellbaren Nebenabtriebe an
*           - default: 3
*   Anmerkung:
*   - wenn min. ein Nebenabtriebs-Feld gefuellt ist, dann muessen alle gefuellt sein
*/
function checkValues_nebenabtrieb(anzahlNebenabtriebe) {
    if( typeof anzahlNebenabtriebe == "undefined" ) { anzahlNebenabtriebe = 3; }

    var ELEMENTID = "DET_INP_";
    var err_text = "";
    var err_color = "#ffc6a8";

    var inp_nebenabtrieb, inp_getriebe, inp_variante, inp_lage_nebenabtrieb;
    var inp_drehzahlfaktor, inp_anschluss;

    var NEBENABTRIEB, GETRIEBE, VARIANTE, LAGE_NEBENABTRIEB, DREHZAHLFAKTOR, ANSCHLUSS;
    var id = 0;
    var filledCount; // Anzahl der ausgefuellten Inputfelder
    var countGenerallyUnfilled = 0;
    var count;  // Anzahl aller Felder (muss mitgezaehlt werden, da sowas wie 'values.length' bei 'Object' nicht moeglich ist)
    for( var i = 0; i < anzahlNebenabtriebe; i++ ) {
        id = i + 1;

        // laesst sich in einer Schleife besser verarbeiten, deshalb hier nem Array hinzufuegen
        var controls = new Object();
        controls['NEBENABTRIEB']    = document.getElementById(ELEMENTID + "NEBENABTRIEB_" + id);
        controls['GETRIEBE']        = document.getElementById(ELEMENTID + "GETRIEBE_" + id);
        controls['VARIANTE']        = document.getElementById(ELEMENTID + "VARIANTE_" + id);
        controls['LAGE_NEBENABTRIEB']= document.getElementById(ELEMENTID + "LAGE_NEBENABTRIEB_" + id);
        controls['DREHZAHLFAKTOR']  = document.getElementById(ELEMENTID + "DREHZAHLFAKTOR_" + id);
        controls['ANSCHLUSS']       = document.getElementById(ELEMENTID + "ANSCHLUSS_" + id);
        // laesst sich in einer Schleife besser verarbeiten, deshalb hier nem Array hinzufuegen
        var values = new Object();
        //values['NEBENABTRIEB']      = getSelboxValue(controls['NEBENABTRIEB']);
        values['NEBENABTRIEB']      = controls['NEBENABTRIEB'].value;
        //values['GETRIEBE']          = getSelboxValue(controls['GETRIEBE']);
        values['GETRIEBE']          = controls['GETRIEBE'].value;
        values['VARIANTE']          = getSelboxValue(controls['VARIANTE']);
        //values['DREHZAHLFAKTOR']    = getSelboxValue(controls['DREHZAHLFAKTOR']);
        values['DREHZAHLFAKTOR']    = controls['DREHZAHLFAKTOR'].value;
        values['ANSCHLUSS']         = getSelboxValue(controls['ANSCHLUSS']);
        // einziger Wert der eingegeben werden kann --> trimmen
        values['LAGE_NEBENABTRIEB'] = trimInput(controls['LAGE_NEBENABTRIEB'].value);

        var leereElemente = new Array();
        filledCount = 0;
        count = 0;
        // alle Elemente weiss faerben (und gleich gucken, wieviele ausgefuellt wurden)
        for (var j in values ) {

            bg_w(new Array(controls[j]));

            if( values[j] != '' ) {
                filledCount++;
            } else {
                // alle Elemente merken die leer sind, diese muessen dann rot markiert werden,
                // wenn mindestens 1 ausgefuellt wurde
                leereElemente.push(j);
            }

            count++;
        }

        // es wurde mindestens 1 Feld ausgefuellt (aber nicht alle!)
        if( filledCount > 0 && filledCount != count ) {
            // leere Steuerelemente rot einfaerben
            var key;
            for( var j = 0; j < leereElemente.length; j++ ) {
                key = leereElemente[j];
                bg_r(new Array(controls[key]));
            }
            // allgem. Fehlermeldung ausgeben
            err_text += WF_TEXTE.NEBENABTRIEB_EINBAULAGE_ERR_1 + " (" + WF_TEXTE.NEBENABTRIEB_EINBAULAGE_KURZ + " " + id + ")\n";
        }
        // sonstige pruefungen
        if( filledCount > 0 ) {
            // lage nebenabtrieb kann eingegeben werden --> deshalb pruefen
            if( values['LAGE_NEBENABTRIEB'] != "" &&
                !validateLage_Nebenabtrieb(values['LAGE_NEBENABTRIEB']) ) {

                bg_r(new Array(controls['LAGE_NEBENABTRIEB']));
                err_text += WF_TEXTE.NEBENABTRIEB_EINBAULAGE_LAGE_ERR_1 + " (" + id + ")\n";
            }
        }
        else if ( filledCount == 0 ) {
            countGenerallyUnfilled ++;
        }

        delete controls;
        delete values;
        delete leereElemente;

    }

    if (countGenerallyUnfilled == anzahlNebenabtriebe) {
        err_text += WF_TEXTE.NEBENABTRIEB_EINBAULAGE_ERR_2 + "\n";
        bg_r(new Array(
            document.getElementById('DET_INP_NEBENABTRIEB_1'),
            document.getElementById('DET_INP_GETRIEBE_1'),
            document.getElementById('DET_INP_VARIANTE_1'),
            document.getElementById('DET_INP_LAGE_NEBENABTRIEB_1'),
            document.getElementById('DET_INP_DREHZAHLFAKTOR_1'),
            document.getElementById('DET_INP_ANSCHLUSS_1')
        ));
    }


    return err_text;
}

/*
* prueft alle Felder DET_INP_LIEFER_xxx auf korrektheit
*/
function checkValues_lieferadresse() {
    var ELEMENTID = "DET_INP_LIEFER_";
    var err_text = "";
    var err_color = "#ffc6a8";


    var controls = new Object();
    controls['ANSPRECHPARTNER'] = document.getElementById(ELEMENTID + "ANSPRECHPARTNER");
    controls['FIRMA'] = document.getElementById(ELEMENTID + "FIRMA");
    controls['STRASSE'] = document.getElementById(ELEMENTID + "STRASSE");
    controls['PLZ'] = document.getElementById(ELEMENTID + "PLZ");
    controls['ORT'] = document.getElementById(ELEMENTID + "ORT");
    controls['LAND'] = document.getElementById(ELEMENTID + "LAND");

    var minFilled = 0;
    var count = 0;

    for( var i in controls) {
        // 1. alle Felder weis
        bg_w(new Array(controls[i]));

        // 2. Leerzeichen entfernen
        controls[i].value = trimInput(controls[i].value);

        // 3. gucken ob wieviele Felder ausgefuellt
        if( controls[i].value != "" ) {
            minFilled++;
        }
        count++;
    }

    // es wurde mindestens 1 Feld ausgefuelt und es wurden nicht alle Felder ausgefuellt
    // --> gucken welches und dann rot machen
    if( minFilled > 0 && minFilled != count ) {
        // Feld rot markieren
        for( var i in controls) {
            if( controls[i].value == "" ) { bg_r(new Array(controls[i])); }
        }
        err_text+= WF_TEXTE.NUTZER_LIEFER_FEHLT_ERR + "\n";
    }
    // auf falsche Zeichen pruefen
    if( minFilled > 0 ) {

        // Ansprechpartner
        tmp = controls['ANSPRECHPARTNER'].value;
        if( tmp != "" && !validateName(tmp) ) {
            err_text += WF_TEXTE.NUTZER_LIEFER_ANSPRECHPARTNER_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_LIEFER_ANSPRECHPARTNER_KURZ + "')\n";
            bg_r(new Array(controls['ANSPRECHPARTNER']));
        }
        // Firma
        tmp = controls['FIRMA'].value;
        if( tmp != "" && !validateFirma(tmp) ) {
            err_text += WF_TEXTE.NUTZER_LIEFER_FIRMA_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_FIRMA_KURZ + "')\n";
            bg_r(new Array(controls['FIRMA']));
        }
        // Strasse
        tmp = controls['STRASSE'].value;
        if( tmp != "" && !validateName(tmp) ) {
            err_text += WF_TEXTE.NUTZER_LIEFER_STRASSE_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_STRASSE_KURZ + "')\n";
            bg_r(new Array(controls['STRASSE']));
        }
        // PLZ
        tmp = controls['PLZ'].value;
        if( tmp != "" && !validatePlz(tmp) ) {
            err_text += WF_TEXTE.NUTZER_LIEFER_PLZ_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_PLZ_KURZ + "')\n";
            bg_r(new Array(controls['PLZ']));
        }
        // Ort
        tmp = controls['ORT'].value;
        if( tmp != "" && !validateName(tmp) ) {
            err_text += WF_TEXTE.NUTZER_LIEFER_ORT_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_ORT_KURZ + "')\n";
            bg_r(new Array(controls['ORT']));
        }
        // Land
        tmp = controls['LAND'].value;
        if( tmp != "" && !validateName(tmp) ) {
            err_text += WF_TEXTE.NUTZER_LIEFER_LAND_ERR + " (" + WF_TEXTE.NORMALTEXT_FELD +" '" + WF_TEXTE.NUTZER_LAND_KURZ + "')\n";
            bg_r(new Array(controls['LAND']));
        }
    }
    return err_text;
}

/*
* Prueft, ob im Bemerkungsfeld keine unerlaubten Sonderzeichen vorkommen.
* Parameter:
*  1. Inputfeld, das geprueft wird
*  2. Text, der geprueft wird
*/
function checkValues_bemerkung(inp_bemerkung, BEMERKUNG) {
    var err_text  = "";
    var i;
    var dez;

    for (i=0; i<BEMERKUNG.length; i++) {
        dez = BEMERKUNG.charCodeAt(i);
        if ( ( dez > 127 && dez < 160 ) || dez > 252 ||
             dez == 208 || dez == 221 || dez == 222 || dez == 240 ) {
            // verboten sind Zeichen, deren Dezimal-Wert groesser 252 ist
            // sowie Zeichen des Windows-1252-Zeichensatzes und ausgewaehlte
            // Zeichen aus dem ISO-8859-Zeichensatz
            err_text += WF_TEXTE.ANTRAG_BEMERK_SONDERZ_ERR + "\n";
            bg_r(new Array(inp_bemerkung));
            break;
        }
    }

    return err_text;
}


/*
* Prueft Fahrzeugdaten:
* - ob min. 1 Feld ausgefuellt ist
* - ob FIN und FZNR korrekt sind
* Parameter:
* 1. alle:  - wenn true, dann werden FIN, FZNR, GFZNR und AE_NUMMER geprueft
*           - wenn false, dann werden nur FIN und FZNR geprueft
*           - default = true
*/
function checkValues_fahrzeugdaten(alle) {

    if( typeof alle == "undefined" ) {
        alle = true;
    }

    // cbe 17.02.2011 Ordnerstruktur Workflow MTS-4227
    // - wenn Vorlage bearbeitet wird, dann sind FZNR und FIN keine Pflichtfelder
    // --> deshalb keine Validierung der Fahrzeugdaten
    // if( is_vorlage() ) {
        // return "";
    // }

    var ELEMENTID = "INP_";
    var err_text  = "";
    var err_color = "#ffc6a8";

    var inp_fznr, inp_fin, inp_gfznr, inp_aenr;
    var FZNR, FIN, GFZNR, AENR;
    var chk_fin, chk_fznr, chk_combination, chk_gfznr, chk_aenr;

    chk_fin  = true;
    chk_fznr = true;
    chk_gfznr= true;
    chk_aenr = true;
    chk_combination = true;

    inp_fznr = document.getElementById(ELEMENTID + "FZNR");
    inp_fin  = document.getElementById(ELEMENTID + "FIN");

    // Leerzeichen entfernen
    FZNR     = trimInput(inp_fznr.value);
    FIN      = trimInput(inp_fin.value);

    // Felder weiß machen
    bg_w(new Array(inp_fznr, inp_fin));

    if( alle == true ) {
        inp_gfznr= document.getElementById(ELEMENTID + "GFZNR");
        inp_aenr = document.getElementById(ELEMENTID + "AE_NUMMER");

        // Leerzeichen entfernen
        GFZNR    = trimInput(inp_gfznr.value);
        AENR     = trimInput(inp_aenr.value);
        // Felder weiß machen
        bg_w(new Array(inp_gfznr, inp_aenr));
    }


/*
    if (  alle == true && (FZNR != "" || FIN != "" || GFZNR != "" || AENR != "") ||
         (FZNR != "" || FIN != "") ) {
*/
    if ( (FZNR != "" || FIN != "") || (alle == true && (GFZNR != "" || AENR != "")) ) {


        // 1. Fzgdaten pruefen, die auf jeder Maske vorhanden sind
        if (FZNR != "")      { chk_fznr  = validateFZNR(FZNR);  }
        if (FIN != "")       { chk_fin   = validateFIN(FIN);    }

        // Wenn beide Felder gefüllt sind, muss zusaetzlich geprueft werden,
        // ob die Kombination FZNR und FIN zusammenpasst
        if (FIN != "" && FZNR != "" && chk_fin && chk_fznr) {
            chk_combination = validateCombination_FZNR_FIN(FZNR, FIN);
        }

        if (FZNR != "" && !chk_fznr) {
            err_text += WF_TEXTE.ANTRAG_FZNR_ERR + "\n";
            bg_r(new Array(inp_fznr));
        }
        if (FIN != "" && !chk_fin) {
            err_text += WF_TEXTE.ANTRAG_FIN_ERR + "\n";
            bg_r(new Array(inp_fin));
        }
        if (!chk_combination) {
            err_text += errmsg_Combination_FZNR_FIN(FZNR, FIN) + "\n";
            bg_r(new Array(inp_fznr, inp_fin));
        }

        // 2. ggf. GFZNR und AE_NUMMER pruefen
        if( alle == true ) {
            if (AENR != "")  { chk_aenr  = validateAENR(AENR);  }
            if (GFZNR != "") { chk_gfznr = validateGFZNR(GFZNR);}

            if (GFZNR != "" && !chk_gfznr) {
                err_text += WF_TEXTE.ANTRAG_GFZNR_ERR + "\n";
                bg_r(new Array(inp_gfznr));
            }
            if (AENR != "" && !chk_aenr) {
                err_text += WF_TEXTE.ANTRAG_AENR_ERR + "\n";
                bg_r(new Array(inp_aenr));
            }
        }

    }
    else {
        err_text += WF_TEXTE.ANTRAG_LEER_ERR_1 + "\n";
        bg_r(new Array(inp_fznr, inp_fin));
        if( alle == true ) {
            bg_r(new Array(inp_gfznr, inp_aenr));
        }
    }

    return err_text;
}


/*
* Prueft Motordaten:
* - ob alle Felder ausgefuellt sind
* Parameter:
* 1. alle:  - wenn true, dann werden FIN, FZNR, GFZNR und AE_NUMMER geprueft
*           - wenn false, dann werden nur FIN und FZNR geprueft
*           - default = true
*/
function checkValues_motordaten() {

    var ELEMENTID = "DET_INP_";
    var err_text  = "";
    var err_color = "#ffc6a8";

    var inp_motornummer, inp_motortyp;
    var MOTORNUMMER, MOTORTYP;

    inp_motornummer = document.getElementById(ELEMENTID + "MOTORNUMMER");
    inp_motortyp    = document.getElementById(ELEMENTID + "MOTORTYP");

    // Leerzeichen entfernen
    MOTORNUMMER     = trimInput(inp_motornummer.value);
    MOTORTYP        = trimInput(inp_motortyp.value);

    // Felder weiß machen
    bg_w(new Array(inp_motornummer, inp_motortyp));

    if( MOTORNUMMER == "" ) {
        err_text += WF_TEXTE.BEST_MOTORNUMMER_ERR_1 + "\n";
        bg_r(new Array(inp_motornummer));
    }
    if( MOTORTYP == "" ) {
        err_text += WF_TEXTE.BEST_MOTORTYP_ERR_1 + "\n";
        bg_r(new Array(inp_motortyp));
    }

    return err_text;
}


/***************************************************************************
 *
 ***************************************************************************/
 
function execAjax_removeUploadedFile( vid, file_id, parentdiv, lang) {

    if( typeof lang == "undefined" ) { lang = 'de'; }
    
    var text_bestaetigung;
    var title_bestaetitgung;
    if( lang == 'de' ) {
        text_bestaetigung = "Möchten Sie dieses Dokument wirklich löschen?";
        title_bestaetitgung = "Dokument löschen";
    }
    else if( lang == 'us' ) {
        text_bestaetigung = "Do you want to delete this document?";
        title_bestaetitgung = "Delete document";
    }
    
    var options = {
        text:text_bestaetigung,
        title:title_bestaetitgung
    };
    var confirmDlg = createConfirmDlg(options);
    
    
    // was soll passieren, wenn beim Dialog auf "ja" geklickt wird?
    var callbackOptions = {  
        onYes:function() { execAjax_removeUploadedFile_doit(vid, file_id, parentdiv, lang); }
    };
    confirmDlg.setCallback(callbackOptions);
    confirmDlg.open();

}
 
 
function execAjax_removeUploadedFile_doit( vid, file_id, parentdiv, lang) {
    if ( ! document.getElementById ) {
       return false;
    }


    var now = new Date();
    var session=document.getElementById('session').value;
    var wait = document.getElementById('WAIT_UPLOAD');

    // Callback-Funktion
    var callback=function() {
        var xmlResponse;
        //var placement=document.getElementById(parentdiv);
        if ( ajax.request.readyState==4 ) {
            xmlResponse = ajax.request.responseXML;
            if ( xmlResponse ) {
                //alert(xmlResponse.getElementsByTagName('retval')[0].getAttribute('value'));
            }
            wait.style.display = 'none';
            execAjax_getUploadFilesAsTable_simple(vid, parentdiv);
        }
    };

    wait.style.display = 'inline';

    var query = "ajaxmode=REMOVE_UPLOADED_FILE"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&FID="+escape(file_id)
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query, callback );

    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }

}


function loadAufbauartDetail(sel_detail, cnt) {
    if ( ! document.getElementById ) { return false; }

    var formtyp = document.getElementById('INP_FORMTYP').value;

    var wait = document.getElementById('AUFBAUART_DETAIL_WAIT' + "_" + cnt);
    wait.style.display = '';

    var now = new Date();
    var session=document.getElementById('session').value;

    var selbox = document.getElementById('DET_INP_AUFBAUART' + "_" + cnt);
    var tabindex = selbox.tabIndex;
    var option_id = selbox.options[selbox.selectedIndex].id;
    var id = option_id.substr(option_id.lastIndexOf("_")+1);

    var parentdiv = "DIV_AUFBAUART_DETAIL" + "_" + cnt;
    var sel_detail_text = "*";
    var sel_detail_index = '';
    if (document.getElementById('DET_INP_AUFBAUART_DETAIL_' + cnt)) {
        var tmp = document.getElementById('DET_INP_AUFBAUART_DETAIL_' + cnt);
        sel_detail_text = tmp.options[tmp.selectedIndex].text;
    }

    // Callback-Funktion
    var callback=function() {
        var placement=document.getElementById(parentdiv);
        if ( ajax.request.readyState==4 ) {
            if ( placement ) {
                placement.innerHTML=ajax.request.responseText;
                var element = document.getElementById('DET_INP_AUFBAUART_DETAIL_' + cnt);
                if( element && sel_detail_text != '*' ) {
                    for( var i = 0; i < element.options.length; i++ ) {
                        if( element.options[i].text == sel_detail_text ) {
                            element.selectedIndex = i;
                            break;
                        }
                    }
                }
            }
            else {
                alert(ajax.request.responseText);
            }
            wait.style.display = 'none';
        }
    };

    var query = "ajaxmode=GET_AUFBAUART_DETAIL"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&ID="+escape(id)
              + "&CNT="+escape(cnt)
              + "&FORMTYP="+escape(formtyp)
              + "&AUFBAUART_DETAIL=" + escape(sel_detail)
              + "&AUFBAUART_DETAIL_TEXT=" + escape(sel_detail_text)
              + "&TABINDEX=" + escape(tabindex);
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
        ajax.execRequest();
        return true;
    }
    else {
        return false;
    }
}


function insert_aufbau_beschreibung(id) {

    var parentdiv = "AUFBAUBESCHREIBUNG";
    if (!document.getElementById(parentdiv)) { return; }

    var aufbau_det = document.getElementById(id);
    var idx = aufbau_det.selectedIndex;
    var aufbau_det_id = aufbau_det.options[idx].id;
    var aufbauart = aufbau_det.options[idx].value;

    var aufbau_det_id_filtered = aufbau_det_id.substr(aufbau_det_id.lastIndexOf("_")+1);
    var formtyp = document.getElementById('INP_FORMTYP').value;

    var wait = document.getElementById('WAIT_AUFBAU');
    var now = new Date();
    var session=document.getElementById('session').value;

    wait.style.display = 'inline';


    // Callback-Funktion
    var callback=function() {
        var placement=document.getElementById(parentdiv);
        if ( ajax.request.readyState==4 ) {
            if ( placement ) {
                placement.innerHTML = ajax.request.responseText;
            }
            else {
                alert(ajax.request.responseText);
            }

            wait.style.display = 'none';
        }
    };

    var query = "ajaxmode=GET_AUFBAUBESCHREIBUNG"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&ID="+escape(aufbau_det_id_filtered)
              + "&AUFBAUART="+escape(aufbauart)
              + "&FORMTYP="+escape(formtyp);
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
        ajax.execRequest();
        return true;
    }
    else {
        return false;
    }

}


// fügt eine Angebotsnummer zum Onlineantrag hinzu 
// - zur Zeit nur eine Angebotsnummer möglich
//
// Parameter:
// 1. nr            - MANTED-Onlineantragsnummer des genehmigten Kostenvoranschlags
// 2. fznr          - Fahrzeugnummer des KV
// 3. fin           - Fahrzeugnummer des KV
// 4. kibes_values  - sonstige KIBES-Werte (Baujahr, Programmversion) aus dem KV
//
// Rückgabe:
// Erfolg: 1 
// Fehler: 0
function add_angebotsnummer(nr, fznr, fin, kibes_values) {

    //var cnt = get_count_angebotsnummer(); // siehe wf_portal_para_kibes_bestell.epl
    var cnt = document.getElementById('DET_INP_CNT_ANGEBOTSNUMMER').value;
    var cnt_filled = 0;
    var refill = false;

    if (cnt == "") { cnt = 0; }
    else if ( is_numeric(cnt) == 0) { cnt = 0; }
    
    
    var angebotsnummern = new Array();
    var is_in_arr = false;
    
    cnt_filled = get_count_angebotsnummer(); // siehe wf_portal_para_kibes_bestell.epl

    
    // cbe 01.12.2011: KIBES - Anpassung Onlineanträge MTS-4856 
    // - Es gibt nur einen KV pro Bestellung
    if( cnt_filled > 0 ) { 
        var alertDlg = createAlertDlg({});
        alertDlg.setTitle(WF_TEXTE.TITEL_HINWEIS);
        alertDlg.setText(WF_TEXTE.PARA_KIBES_BESTELL_ANGEBOTSNUMMER_VORHANDEN);
        alertDlg.open();
        return 0;
    }
    
    
    cnt = Number(cnt);
    cnt++;
    
    
        
    if (is_in_arr == false) {   
        // FZNR und FIN ausfüllen
        if (cnt_filled == 0) {
            document.getElementById("INP_FZNR").value = fznr;
            document.getElementById("INP_FIN").value = fin;
            
            if( jQuery.inArray('kunde', kibes_values) ) { 
                document.getElementById("INP_KUNDE").value = kibes_values.kunde;
            }
            if( jQuery.inArray('version_kibes', kibes_values) ) { 
                document.getElementById("DET_INP_PROG_VERSION_KIBES").value = kibes_values.version_kibes;
            }
            if( jQuery.inArray('version_modulkombi', kibes_values) ) { 
                document.getElementById("DET_INP_PROG_VERSION_MODULKOMBI").value = kibes_values.version_modulkombi;
            }
            if( jQuery.inArray('baujahr', kibes_values) ) { 
                document.getElementById("DET_INP_BAUJAHR_AUSLIEFERUNG").value = kibes_values.baujahr;
            }
            refill = true;
        }
        
        var parentdiv = document.getElementById("INSERT_ANGEBOTSNUMMER");
        var innerhtml  = "<p id='P_VORGANG_ID_KIBES_KV_" + cnt + "'>";
            innerhtml += "<input type='hidden' name='DET_INP_VORGANG_ID_KIBES_KV_" + cnt + "' id='DET_INP_VORGANG_ID_KIBES_KV_" + cnt + "' value='" + nr + "'>";
            innerhtml += nr;
            innerhtml += " <img src='../graphik/icon_trash.gif' onclick='remove_angebotsnummer(\"P_VORGANG_ID_KIBES_KV_" + cnt + "\")'>";
            innerhtml += "</p>";
        parentdiv.innerHTML += innerhtml;
        document.getElementById('DET_INP_CNT_ANGEBOTSNUMMER').value = cnt;
        
        // Wenn FZNR und FIN ausgefüllt wurden, dann aktuelle 
        // Kostenvoranschläge aktualisieren
        if (refill) {
            document.getElementById('OFFENE_KV').innerHTML = "<img src='../graphik/icon_ajax_wait.gif'>";
            execAjax_alle_offenen_kv();
        }
    }
    
    // cbe 01.12.2011: KIBES - Anpassung Onlineanträge MTS-4856 
    // - Dialog schließen, nachdem eine Angebotsnummer hinzugefügt wurde
    offene_kv_dlg.close();
    return 1;
}


function remove_angebotsnummer(id) {
    var cnt = document.getElementById('DET_INP_CNT_ANGEBOTSNUMMER').value;
    if (cnt == "") { cnt = 0; }
    else if ( is_numeric(cnt) == 0) { cnt = 0; }
    
    
    if (document.getElementById(id)) {
        document.getElementById(id).innerHTML = "";
    }
    
    // Prüfen, ob noch Angebotsnummern eingetragen sind, wenn nicht, dann auch FZNR und FIN löschen
    var cnt_filled = 0;
    
    for (i=1; i<=cnt; i++) {
        if ( document.getElementById('DET_INP_VORGANG_ID_KIBES_KV_'+ i) &&  document.getElementById('DET_INP_VORGANG_ID_KIBES_KV_'+ i) != "") {
            cnt_filled++;
        }
    }
    
    if (cnt_filled == 0) {
        document.getElementById("INP_FZNR").value   = "";
        document.getElementById("INP_FIN").value    = "";
        document.getElementById("INP_KUNDE").value  = "";
        document.getElementById("DET_INP_PROG_VERSION_KIBES").value     = "";
        document.getElementById("DET_INP_PROG_VERSION_MODULKOMBI").value= "";
        document.getElementById("DET_INP_BAUJAHR_AUSLIEFERUNG").value   = "";
    }
}


function insert_angebotsnummer_input(text) {

    var cnt = document.getElementById('DET_INP_CNT_ANGEBOTSNUMMER').value;
    var selindex = new Array();
    var selindexdet = new Array();
    var tabindex = 55;

    if (text != "*") { text = ""; }

    for (i=1; i<=cnt; i++) {
        if ( document.getElementById('DET_INP_VORGANG_ID_KIBES_KV_'+ i) ) {
            var idx = document.getElementById('DET_INP_VORGANG_ID_KIBES_KV_'+ i).selectedIndex;

            selindex.push(idx);
            tabindex = document.getElementById('DET_INP_VORGANG_ID_KIBES_KV_'+ i).tabIndex;
        }
    }

    cnt++;

    var wait = document.getElementById('WAIT_ANGEBOTSNUMMER');
    var now = new Date();
    var session=document.getElementById('session').value;

    wait.style.display = 'inline';

    var parentdiv = "INSERT_ANGEBOTSNUMMER";
    // Callback-Funktion
    var callback=function() {
        var placement=document.getElementById(parentdiv);
        if ( ajax.request.readyState==4 ) {
            if ( placement ) {
                placement.innerHTML += ajax.request.responseText;
                document.getElementById('DET_INP_CNT_ANGEBOTSNUMMER').value = cnt;
            }
            else {
                alert(ajax.request.responseText);
            }

            for (i=1; i<cnt; i++) {
                if (document.getElementById('DET_INP_VORGANG_ID_KIBES_KV_'+ i)) {
                    document.getElementById('DET_INP_VORGANG_ID_KIBES_KV_'+i).selectedIndex = selindex.shift();
                }
            }

            wait.style.display = 'none';
        }
    };

    var query = "ajaxmode=INSERT_ANGEBOTSNUMMER_INPUT"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&CNT="+escape(cnt)
              + "&TEXT="+escape(text)
              + "&TABINDEX="+escape(tabindex);
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
        ajax.execRequest();
        return true;
    }
    else {
        return false;
    }

}


function execAjax_alle_offenen_kv() {

    var now = new Date();
    var session=document.getElementById('session').value;
    var fznr, fin;
    
    //alert(document.getElementById('INP_FZNR').value + "\n" + document.getElementById('INP_FIN').value);
    
    if (document.getElementById('INP_FZNR')) {
        fznr = document.getElementById('INP_FZNR').value;
    } 
    else { fznr = ""; };
    
    if (document.getElementById('INP_FIN')) {
        fin = document.getElementById('INP_FIN').value;
    } 
    else { fin = ""; };

    var parentdiv = "OFFENE_KV";
    
    // Callback-Funktion
    var callback=function() {
        var placement=document.getElementById(parentdiv);
        if ( ajax.request.readyState==4 ) {
            if ( placement ) {
                placement.innerHTML = ajax.request.responseText;
            }
            else {
                alert(ajax.request.responseText);
            }
        }
    };

    
    var query = "ajaxmode=ALLE_OFFENEN_KV"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&FIN="+escape(fin)
              + "&FZNR="+escape(fznr)
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
                              
    if ( ajax.isValidConnection() ) {
        ajax.execRequest();
        return true;
    }
    else {
        return false;
    }

}


function insert_aufbau_inputs(text) {

    var cnt = document.getElementById('DET_INP_CNT_AUFBAU').value;
    var selindex = new Array();
    var selindexdet = new Array();
    var tabindex = 55;

    if (text != "*") { text = ""; }

    for (i=1; i<=cnt; i++) {
        if (document.getElementById('DET_INP_AUFBAUART_'+ i) && document.getElementById('DET_INP_AUFBAUART_DETAIL_'+ i)) {
            var idx = document.getElementById('DET_INP_AUFBAUART_'+ i).selectedIndex;
            var idxdet = document.getElementById('DET_INP_AUFBAUART_DETAIL_'+ i).selectedIndex;

            selindex.push(idx);
            selindexdet.push(idxdet);
            tabindex = document.getElementById('DET_INP_AUFBAUART_DETAIL_'+ i).tabIndex;
        }
    }

    cnt++;

    var wait = document.getElementById('WAIT_AUFBAU');
    var now = new Date();
    var session=document.getElementById('session').value;

    wait.style.display = 'inline';

    var parentdiv = "INSERT_AUFBAU";
    // Callback-Funktion
    var callback=function() {
        var placement=document.getElementById(parentdiv);
        if ( ajax.request.readyState==4 ) {
            if ( placement ) {
                placement.innerHTML += ajax.request.responseText;
                document.getElementById('DET_INP_CNT_AUFBAU').value = cnt;
            }
            else {
                alert(ajax.request.responseText);
            }

            for (i=1; i<cnt; i++) {
                if (document.getElementById('DET_INP_AUFBAUART_'+ i) && document.getElementById('DET_INP_AUFBAUART_DETAIL_'+i)) {
                    document.getElementById('DET_INP_AUFBAUART_'+i).selectedIndex = selindex.shift();
                    document.getElementById('DET_INP_AUFBAUART_DETAIL_'+i).selectedIndex = selindexdet.shift();
                }
            }

            wait.style.display = 'none';
        }
    };

    var query = "ajaxmode=INSERT_AUFBAU_INPUTS"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&CNT="+escape(cnt)
              + "&TEXT="+escape(text)
              + "&TABINDEX="+escape(tabindex);
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
        ajax.execRequest();
        return true;
    }
    else {
        return false;
    }

}


function insert_gewichtsbilanz_inputs() {

    var cnt = document.getElementById('DET_INP_CNT_AUFBAU').value;
    var selindex = new Array();
    var val_typ = new Array();
    var val_abmessung = new Array();
    var val_masse = new Array();
    var val_schwerpunkt = new Array();
    var wait = document.getElementById('WAIT_AUFBAU');
    wait.style.display = 'inline';
    var tabindex = 59;

    for (i=1; i<=cnt; i++) {
        if (document.getElementById('DET_INP_AUFBAUART_'+ i)  &&
            document.getElementById('DET_INP_TYP_' + i)       &&
            document.getElementById('DET_INP_ABMESSUNG_' + i) &&
            document.getElementById('DET_INP_MASSE_' + i)     &&
            document.getElementById('DET_INP_SCHWERPUNKT_' + i) )
        {
            var idx = document.getElementById('DET_INP_AUFBAUART_'+ i).selectedIndex;

            var typ = document.getElementById('DET_INP_TYP_' + i).value;
            var abmessung = document.getElementById('DET_INP_ABMESSUNG_' + i).value;
            var masse = document.getElementById('DET_INP_MASSE_' + i).value;
            var schwerpunkt = document.getElementById('DET_INP_SCHWERPUNKT_' + i).value;

            selindex.push(idx);

            val_typ.push(typ);
            val_abmessung.push(abmessung);
            val_masse.push(masse);
            val_schwerpunkt.push(schwerpunkt);
            tabindex = document.getElementById('DET_INP_SCHWERPUNKT_'+ i).tabIndex;
        }
    }

    cnt++;

    var now = new Date();
    var session=document.getElementById('session').value;

    var parentdiv = "INSERT_AUFBAU";
    // Callback-Funktion
    var callback=function() {
        var placement=document.getElementById(parentdiv);
        if ( ajax.request.readyState==4 ) {
            if ( placement ) {
                placement.innerHTML += ajax.request.responseText;
                document.getElementById('DET_INP_CNT_AUFBAU').value = cnt;
            }
            else {
                alert(ajax.request.responseText);
            }

            for (i=1; i<cnt; i++) {
                if (document.getElementById('DET_INP_AUFBAUART_'+ i)  &&
                    document.getElementById('DET_INP_TYP_' + i)       &&
                    document.getElementById('DET_INP_ABMESSUNG_' + i) &&
                    document.getElementById('DET_INP_MASSE_' + i)     &&
                    document.getElementById('DET_INP_SCHWERPUNKT_' + i) )
                {
                    document.getElementById('DET_INP_AUFBAUART_'+i).selectedIndex = selindex.shift();

                    document.getElementById('DET_INP_TYP_'+i).value         = val_typ.shift();
                    document.getElementById('DET_INP_ABMESSUNG_'+i).value   = val_abmessung.shift();
                    document.getElementById('DET_INP_MASSE_'+i).value       = val_masse.shift();
                    document.getElementById('DET_INP_SCHWERPUNKT_'+i).value = val_schwerpunkt.shift();
                }
            }
            wait.style.display = 'none';
        }
    };

    var query = "ajaxmode=INSERT_GEWICHTSBILANZ_INPUTS"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&CNT="+escape(cnt)
              + "&TABINDEX="+escape(tabindex);
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
        ajax.execRequest();
        return true;
    }
    else {
        return false;
    }

}


function insert_para_fahrzeug_inputs() {

    var cnt = document.getElementById('DET_INP_CNT_AUFBAU').value;
    var selindex = new Array();
    var wait = document.getElementById('WAIT_AUFBAU');
    wait.style.display = 'inline';
    var tabindex = 59;

    for (i=1; i<=cnt; i++) {
        if (document.getElementById('DET_INP_AUFBAUART_'+ i) )
        {
            var idx = document.getElementById('DET_INP_AUFBAUART_'+ i).selectedIndex;
            selindex.push(idx);
        }
    }

    cnt++;

    var now = new Date();
    var session=document.getElementById('session').value;

    var parentdiv = "INSERT_AUFBAU";

    var callback=function() {
        var placement=document.getElementById(parentdiv);
        if ( ajax.request.readyState==4 ) {
            if ( placement ) {
                placement.innerHTML += ajax.request.responseText;
                document.getElementById('DET_INP_CNT_AUFBAU').value = cnt;
            }
            else {
                alert(ajax.request.responseText);
            }

            for (i=1; i<cnt; i++) {
                if (document.getElementById('DET_INP_AUFBAUART_'+ i) )
                {
                    document.getElementById('DET_INP_AUFBAUART_'+i).selectedIndex = selindex.shift();
                }
            }
            wait.style.display = 'none';
        }
    };

    var query = "ajaxmode=INSERT_PARA_FAHRZEUG_INPUTS"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&CNT="+escape(cnt)
              + "&TABINDEX="+escape(tabindex);
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
        ajax.execRequest();
        return true;
    }
    else {
        return false;
    }

}


function execAjax_holeAntraege(anfrageTyp, start, zielElement, ajaxFertig) {

    return execAjax_holeAntraegeAg(anfrageTyp, start, '', zielElement, ajaxFertig);
}

function execAjax_holeAntraegeAg(anfrageTyp, start, ag, zielElement, ajaxFertig) {

    if ( ! document.getElementById ) {
       return false;
    }
    if( typeof ag == "undefined" ) {
        ag = '';
    }

    var now = new Date();
    var session=document.getElementById('session').value;

	var tage='';
	var datum_von='';
	var datum_bis='';
    var elem;

    if( abfrageModus == 'erweitert' ) {
        elem = document.getElementById('INP_DATUM_VON');
        if( elem && elem.value != "" ) { datum_von = elem.value;  }

        elem = document.getElementById('INP_DATUM_BIS');
        if( elem && elem.value != "" ) { datum_bis = elem.value;  }

        // wenn kein Enddatum angegeben, dann Startdatum = Enddatum (Suche auf einen Tag beschränkt)
        if( datum_von != '' && datum_bis == '' ) {
            inp_bis = document.getElementById('INP_DATUM_BIS');
            anzeige_bis = document.getElementById('BIS_DATUM');
            if( inp_bis && anzeige_bis ) {
                // hiddenfeld
                inp_bis.value     = datum_von;
                // Anzeige in d. Maske
                anzeige_bis.value = datum_von;
                datum_bis         = datum_von;
            }
        }

    }
    else {
        elem = document.getElementById('INP_TAGE');
        if( elem ) { tage = elem.options[elem.selectedIndex].value;  }
    }


    enableWait(zielElement);

    var callback=function() {
        var placement=document.getElementById(zielElement);
        if ( ajax.request.readyState==4 ) {
            var xmlparser = createXMLByTextExtend(ajax.request.responseText);

            disableWait(zielElement);

            if( placement ) {
                placement.innerHTML = ajax.request.responseText;;

                if( typeof ajaxFertig == "function" ) {
                    ajaxFertig(zielElement,true); // true = Ajax Erfolgreich
                }
            }
            else {
                //alert(ajax.request.responseText);
                if( typeof ajaxFertig == "function" ) {
                    ajaxFertig(zielElement,false); // true = Ajax fehlgeschlagen
                }
            }

        }
    };

    // Änderungsdatum wird in Ergebnistabelle angezeigt
    // --> also Suche nach Änderungsdatum durchführen
    var query = "ajaxmode="+anfrageTyp
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&INP_TAGE="+escape(tage)
              + "&START="+escape(start)
              + "&AG_NAME="+escape(ag)
              + "&INP_AENDERUNGSDATUM_VON="+escape(datum_von)
              + "&INP_AENDERUNGSDATUM_BIS="+escape(datum_bis)
            ;
              // + "&INP_ERSTELLUNGSDATUM_VON="+escape(datum_von)
              // + "&INP_ERSTELLUNGSDATUM_BIS="+escape(datum_bis)

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}


function execAjax_removeAntrag(vid, ag_name, ajaxFertig) {
    if ( ! document.getElementById ) {
       return false;
    }

    var now = new Date();
    var session=document.getElementById('session').value;

    enableWait();

    var callback=function() {
        if ( ajax.request.readyState==4 ) {

            var xmlparser = createXMLByTextExtend(ajax.request.responseText);

            disableWait();

            if( !xmlparser.isError() ) {
                var xml = xmlparser.getXML();
                var msg = trim(getNodeValue(xml,'message'));

                if( msg == "" ) {
                    ajaxFertig(ag_name,true); // true = Ajax Erfolgreich
                }
                else {
                    ajaxFertig(ag_name,false); // false = Ajax fehlgeschlagen
                    display_errors(msg+"\n");
                }
            }
            else {
                ajaxFertig(ag_name,false); // false = Ajax fehlgeschlagen
            }
        }
    };


    var query = "ajaxmode=REMOVE_ANTRAG"
              + "&session="+escape(session)
              + "&INP_VORGANG_ID="+escape(vid)
              + "&AG_NAME="+escape(ag_name)
              + "&TSTAMP="+escape(now)
            ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}

function execAjax_removeRueckmeldung(vid, zielElement, ajaxFertig) {
    if ( ! document.getElementById ) {
       return false;
    }

    var now = new Date();
    var session=document.getElementById('session').value;

    enableWait(zielElement);

    var callback=function() {
        if ( ajax.request.readyState==4 ) {

            var xmlparser = createXMLByTextExtend(ajax.request.responseText);

            disableWait(zielElement);

            if( !xmlparser.isError() ) {
                var xml = xmlparser.getXML();
                var msg = trim(getNodeValue(xml,'message'));

                if( msg == "" ) {
                    ajaxFertig(zielElement,true); // true = Ajax Erfolgreich
                }
                else {
                    ajaxFertig(zielElement,false); // false = Ajax fehlgeschlagen
                    display_errors(msg+"\n");
                }
            }
            else {
                ajaxFertig(zielElement,false); // false = Ajax fehlgeschlagen
            }
        }
    };


    var query = "ajaxmode=REMOVE_RUECKMELDUNG"
              + "&session="+escape(session)
              + "&INP_VORGANG_ID="+escape(vid)
              + "&TSTAMP="+escape(now)
            ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}

function execAjax_removeKostenvoranschlagGenehmigt(vid, zielElement, callbackFunctions) {
    if ( ! document.getElementById ) {
       return false;
    }

    var now = new Date();
    var session=document.getElementById('session').value;

    callbackFunctions.enableWait(zielElement);

    var callback=function() {
        if ( ajax.request.readyState==4 ) {

            callbackFunctions.disableWait(zielElement);
            if( ajax.request.responseText != "" && !ajax.request.responseText.match(/^\s+$/) ) {
                var xmlparser = createXMLByTextExtend(ajax.request.responseText);


                if( !xmlparser.isError() ) {
                    var xml = xmlparser.getXML();
                    var error  = trim(getNodeValue(xml,'errors'));
                    var retval = getNodeValue(xml,'retval');
                    var message= trim(getNodeValue(xml,'message'));

                    error = Number(error);

                    
                    if( !isNaN(error) && error == 0 ) {
                         callbackFunctions.ajaxSuccess(retval, message, xml); // true = Ajax Erfolgreich
                    }
                    else if( !isNaN(error) && error > 0 ) {
                         callbackFunctions.ajaxFailed(retval, message, xml); // false = Ajax fehlgeschlagen
                    }
                    else {
                         callbackFunctions.ajaxFailed(retval, message, xml); // false = Ajax fehlgeschlagen
                    }
                    // allgemeine Callback-Funktion die angibt, das der Ajax fertig ist
                    callbackFunctions.ajaxFertig(retval, message, xml); 
                }
                else {
                    callbacks.ajaxFertig(zielElement,false); // false = Ajax fehlgeschlagen
                }
            }
        }
    };


    var query = "ajaxmode=REMOVE_KOSTENVORANSCHLAG"
              + "&session="+escape(session)
              + "&INP_VORGANG_ID="+escape(vid)
              + "&TSTAMP="+escape(now)
            ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}

function trim(value) {
    value = value.replace(/^\s+/, '');
    value = value.replace(/\s+$/, '');
    return value;
}

/* gibt ein Array mit den Werten von selektieren Checkboxen und Radiobuttons zurueck
    - gibt "undefined" zurueck, wenn es sich nicht um ein Array von Checkboxen oder Radiobuttons handelt
*/
function getSelectedValues(elements) {
    if( elements && elements.length > 0 ) {
        var val = new Array();
        for( var i = 0; i < elements.length; i++ ) {
            if( elements[i].checked == true ) {
                val.push(elements[i].value);
            }
        }
        return val;
    }
    return;
}

function getSelboxValue(element) {
    if( element && element.type == "select-one" ) {
        return element.options[element.selectedIndex].value;
    }
    return;
}


function execAjax_erzeuge_vorlage_id(vorgang_id,vorlagen_name, zielElement, callbackFunctions, utf8) {

    if ( ! document.getElementById ) { return false; }
    if ( typeof utf8 == "undefined" ){ utf8 = false; }

    var now = new Date();
    var session=document.getElementById('session').value;

    callbackFunctions.enableWait(zielElement);
    
    
    var callback=function() {
       var placement=document.getElementById(zielElement);
       if ( ajax.request.readyState==4 ) {

            var xmlparser = createXMLByTextExtend(ajax.request.responseText);

            callbackFunctions.disableWait(zielElement);

            if( !xmlparser.isError() ) {
                var xml = xmlparser.getXML();


                var errors = trim(getNodeValue(xml,'errors'));
                var retval = trim(getNodeValue(xml,'retval'));
                var msg = trim(getNodeValue(xml,'message'));

                errors = Number(errors);

                if( !isNaN(errors) && errors == 0 ) {
                    callbackFunctions.ajaxFertig(true,'',xml); // true = Ajax Erfolgreich
                }
                else if( !isNaN(errors) && errors > 0 ) {
                    callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }
                else {
                    callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }

            }
            else if( is_development_application() ) {
                callbackFunctions.ajaxFertig(false, xmlparser.getError()+"\n"+ajax.request.responseText,0); // false = Ajax fehlgeschlagen
            }
       }
    };


    var query = "ajaxmode=CREATE_VORLAGE_BY_ID"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&INP_VORGANG_ID="+escape(vorgang_id)
              + "&INP_TITEL="+escape(vorlagen_name)
            ;
           //   + "&INP_TITEL="+encodeURIComponent(vorlagen_name)

    //var ajax = new ajaxRequestUtf8("/manted/epl/wf_portal_ajax.epl?"+query,
    var ajax;

    // if( utf8 ) {
        // ajax = new ajaxRequestUtf8("/manted/epl/wf_portal_ajax.epl?"+query,
                                // callback
        // );
    // }
    // else {
        ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                                callback
        );
    // }


    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}





function execAjax_speichere_antrag_id(vorgang_id,zielElement, callbackFunctions) {

    if ( ! document.getElementById ) { return false; }

    var now = new Date();
    var session=document.getElementById('session').value;

     callbackFunctions.enableWait(zielElement);

    var callback=function() {
       var placement=document.getElementById(zielElement);
       if ( ajax.request.readyState==4 ) {

            var xmlparser = createXMLByTextExtend(ajax.request.responseText);

             callbackFunctions.disableWait(zielElement);

            if( !xmlparser.isError() ) {
                var xml = xmlparser.getXML();


                var errors = trim(getNodeValue(xml,'errors'));
                var retval = trim(getNodeValue(xml,'retval'));
                var msg = trim(getNodeValue(xml,'message'));

                errors = Number(errors);

                if( !isNaN(errors) && errors == 0 ) {
                     callbackFunctions.ajaxFertig(true,'',xml); // true = Ajax Erfolgreich
                }
                else if( !isNaN(errors) && errors > 0 ) {
                     callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }
                else {
                     callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }

            }
            else if( is_development_application() ) {
                 callbackFunctions.ajaxFertig(false, xmlparser.getError()+"\n"+ajax.request.responseText,0); // false = Ajax fehlgeschlagen
            }
       }
    };


    var query = "ajaxmode=SAVE_ANTRAG_BY_ID"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&INP_VORGANG_ID="+escape(vorgang_id)
            ;

    // var ajax = new ajaxRequestUtf8("/manted/epl/wf_portal_ajax.epl?"+query,
                               // callback
                              // );
     var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}


// Laedt die Selectbox für Motorleistung in PS mit neuen Daten
// Auswahlkriterium ist hier die Grundfahrzeug-Nr.
function refresh_motor_ps(val, dest) {

    if ( ! document.getElementById ) { return false; }
    if ( ! document.getElementById(dest) ) { return false; }
    
    var now = new Date();
    var session=document.getElementById('session').value;
    
    var selbox = document.getElementById('DET_INP_PS');
    var selbox_selected_value = selbox.options[selbox.selectedIndex].value;
    
    selbox.disabled = true;

    // Callback-Funktion
    var callback=function() {
        var placement=document.getElementById(dest);
        if ( ajax.request.readyState==4 ) {
            if ( placement ) {
                placement.innerHTML=ajax.request.responseText;
            }
            else {
                alert(ajax.request.responseText);
            }
        }
    };

    var query = "ajaxmode=REFRESH_MOTOR_PS"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&GFZNR="+escape(val)
              + "&SELVAL="+escape(selbox_selected_value)
    ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
                              
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}


function execAjax_set_vorlagen_titel(vorgang_id,vorlagen_name, zielElement, callbackFunctions, utf8) {

    if ( ! document.getElementById ) { return false; }
    if ( typeof utf8 == "undefined" ){ utf8 = false; }

    var now = new Date();
    var session=document.getElementById('session').value;

    callbackFunctions.enableWait(zielElement);


    var callback=function() {
       var placement=document.getElementById(zielElement);
       if ( ajax.request.readyState==4 ) {

            var xmlparser = createXMLByTextExtend(ajax.request.responseText);

            callbackFunctions.disableWait(zielElement);

            if( !xmlparser.isError() ) {
                var xml = xmlparser.getXML();


                var errors = trim(getNodeValue(xml,'errors'));
                var retval = trim(getNodeValue(xml,'retval'));
                var msg = trim(getNodeValue(xml,'message'));

                errors = Number(errors);

                if( !isNaN(errors) && errors == 0 ) {
                    callbackFunctions.ajaxFertig(true,'',xml); // true = Ajax Erfolgreich
                }
                else if( !isNaN(errors) && errors > 0 ) {
                    callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }
                else {
                    callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }

            }
            else if( is_development_application() ) {
                callbackFunctions.ajaxFertig(false, xmlparser.getError()+"\n"+ajax.request.responseText,0); // false = Ajax fehlgeschlagen
            }
       }
    };


    var query = "ajaxmode=SET_VORLAGEN_TITEL"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&INP_VORGANG_ID="+escape(vorgang_id)
              + "&INP_TITEL="+escape(vorlagen_name)
            ;
            //  + "&INP_TITEL="+encodeURIComponent(vorlagen_name)

    //var ajax = new ajaxRequestUtf8("/manted/epl/wf_portal_ajax.epl?"+query,
    // var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               // callback
                              // );
    // var ajax;
    // if( utf8 ) {
        // ajax = new ajaxRequestUtf8("/manted/epl/wf_portal_ajax.epl?"+query,
                                // callback
        // );
    // }
    // else {
        ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                                callback
        );
    // }

    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}


function execAjax_set_sendcopy(vorgang_id,email,fax, zielElement, callbackFunctions) {

    if ( ! document.getElementById ) { return false; }

    var now = new Date();
    var session=document.getElementById('session').value;

    callbackFunctions.enableWait(zielElement);


    var callback=function() {
       if ( ajax.request.readyState==4 ) {

            var xmlparser = createXMLByTextExtend(ajax.request.responseText);

            callbackFunctions.disableWait(zielElement);

            if( !xmlparser.isError() ) {
                var xml = xmlparser.getXML();


                var errors = trim(getNodeValue(xml,'errors'));
                var retval = trim(getNodeValue(xml,'retval'));
                var msg = trim(getNodeValue(xml,'message'));

                errors = Number(errors);

                if( !isNaN(errors) && errors == 0 ) {
                    callbackFunctions.ajaxFertig(true,'',xml); // true = Ajax Erfolgreich
                }
                else if( !isNaN(errors) && errors > 0 ) {
                    callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }
                else {
                    callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }

            }
            else if( is_development_application() ) {
                callbackFunctions.ajaxFertig(false, xmlparser.getError()+"\n"+ajax.request.responseText,0); // false = Ajax fehlgeschlagen
            }
       }
    };


    var query = "ajaxmode=SET_SENDCOPY_TO_ANTRAG"
              + "&session="+escape(session)
              + "&TSTAMP="+escape(now)
              + "&INP_VORGANG_ID="+escape(vorgang_id)
              + "&DET_INP_COPY_MAIL="+encodeURIComponent(email)
              + "&DET_INP_COPY_FAX="+encodeURIComponent(fax)
            ;

    // var ajax = new ajaxSynchronRequestUtf8("/manted/epl/wf_portal_ajax.epl?"+query,
                               // callback
                              // );
      var ajax = new ajaxSynchronRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                                            callback
      );
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}

function get_step() {
    var input_step = document.getElementById('modus');
    if( input_step ) { return input_step.value; }
    return '';
}

function get_formtyp() {
    var input_formtyp = document.getElementById('INP_FORMTYP');
    if( input_formtyp ) { return input_formtyp.value; }
    return '';
}

function get_sendcopy_fax() {
    var input_fax = document.getElementById('DET_INP_COPY_FAX');
    if( input_fax ) { return input_fax.value; }
    return '';
}

function get_sendcopy_email() {
    var input_mail = document.getElementById('DET_INP_COPY_MAIL');
    if( input_mail ) { return input_mail.value; }
    return '';
}

function get_modus() {
    var input_modus = document.getElementById('modus');
    if( input_modus ) { return input_modus.value; }
    return '';
}
function get_vorgang_id() {
    var input_id = document.getElementById('INP_VORGANG_ID');
    if( input_id ) { return input_id.value; }
    return '';
}

function set_submitmodus(modus) {
    var input_modus = document.getElementById('submit_modus');
    if( input_modus ) {
        input_modus.value = modus;
        return true;
    }
    return false;
}

function set_vorlagen_titel(titel) {
    var input_titel = document.getElementById('TITEL');
    if( input_titel ) {
        input_titel.value = titel;
        return true;
    }
    return false;
}

function save_antrag_as_entwurf(id,callbackFunctions) {

    var step = get_step();
    var antragstyp = get_formtyp();
    switch(step) {
        // Schritt 1: in jedem Fall ein Submit, da Nutzer Daten in Maske geändert haben könnte
        case 'STEP_1': submit_speichere_antrag_id(id,callbackFunctions);   break;
        case 'STEP_2': execAjax_speichere_antrag_id(id,'',callbackFunctions); break;
        case 'STEP_3': execAjax_speichere_antrag_id(id,'',callbackFunctions); break;
        // nur Fahrzeugparametrierung mit AuB hier weitere Empfänger speichern
        case 'STEP_4': {
            switch(antragstyp) {
                // Speichern nur für Fahrzeugparametrierung Schritt 4 (wegen Sendcopy-Felder)
                case 'PARA_FAHRZEUG': save_sendcopy(id,callbackFunctions); break;
                default: execAjax_speichere_antrag_id(id,'',callbackFunctions); break;
            }
        }
    }

}


function save_antrag_as_vorlage(id,titel,callbackFunctions,utf8) {
    var step           = get_step();
    var antragstyp     = get_formtyp();
    var emptyCallbacks = ajaxCallbackFunctions();
    
    switch(step) {
        // Schritt 1: in jedem Fall ein Submit, da Nutzer Daten in Maske geändert haben könnte
        case 'STEP_1': submit_erzeuge_vorlage_id(id,titel,callbackFunctions,utf8);   break;
        case 'STEP_2': execAjax_erzeuge_vorlage_id(id,titel,'',callbackFunctions,utf8); break;
        case 'STEP_3': execAjax_erzeuge_vorlage_id(id,titel,'',callbackFunctions,utf8); break;
        case 'STEP_4': {
            // Speichern nur für Fahrzeugparametrierung Schritt 4 (wegen Sendcopy-Felder),
            // bei den anderen Anträgen hat dies keine Auswirkung da nur Schritte 1-3 vorhanden
            switch(antragstyp) {
                case 'PARA_FAHRZEUG':
                    save_sendcopy(id,emptyCallbacks,utf8);
                    execAjax_erzeuge_vorlage_id(id,titel,'',callbackFunctions,utf8);
                    break;
                default: execAjax_erzeuge_vorlage_id(id,titel,'',callbackFunctions,utf8); break;
            }
        } break;
        case 'STEP_5':{
            // Speichern nur für Fahrzeugparametrierung Schritt 4 (wegen Sendcopy-Felder),
            // bei den anderen Anträgen hat dies keine Auswirkung da nur Schritte 1-3 vorhanden
            switch(antragstyp) {
                case 'PARA_FAHRZEUG': execAjax_erzeuge_vorlage_id(id,titel,'',callbackFunctions,utf8); break;
                default: break;
            }
        }  break;
    }
}

// wird gerufen, wenn man beim Bearbeiten der Vorlagen auf der letzten Seite auf
// "Bearbeitung abschließen" klickt
// - speichert Titel (wird durch Dialog eingegeben)
// - speichert ggf. Sendcopy (nur Fahrzeugparametrierung)
// - weiter auf letzte Seite (wird durch Dialog selbst vorgenommen in dem nach der
//   Bearbeitung die callback-Funktion "ajaxCallbackFunctions.ajaxFertig" gerufen wird)
function save_vorlage_and_finish(id,titel,callbackFunctions) {
    var step           = get_step();
    var antragstyp     = get_formtyp();
    var emptyCallbacks = ajaxCallbackFunctions();
    switch(step) {
        case 'STEP_3': {
                    execAjax_set_vorlagen_titel(id,titel,'',callbackFunctions);
                    break;
        }
        case 'STEP_4': {
            switch(antragstyp) {
                case 'PARA_FAHRZEUG':
                    save_sendcopy(id,emptyCallbacks);
                    execAjax_set_vorlagen_titel(id,titel,'',callbackFunctions);
                    break;
                default: break;
            }
        }

    }
}

// speichern von Email+Fax für weitere Empfänger in der Fahrzeugparametrierung
// Ajax ist Synchron
function save_sendcopy(id,callbackFunctions) {
    var email = get_sendcopy_email();
    var fax   = get_sendcopy_fax();
    var vid   = get_vorgang_id();
    execAjax_set_sendcopy(vid,email,fax,'',callbackFunctions);
}


function submit_erzeuge_vorlage_id(id,titel,callbackFunctions) {
    if( set_submitmodus('SAVEAS_VORLAGE_ANTRAG')  &&
        set_vorlagen_titel(titel)                     ) {
        submit();
    }
}


function submit_speichere_antrag_id(id,titel) {
    if( set_submitmodus('SAVE_ANTRAG') ) {
        submit();
    }
}

/*****************************************************************************/
// Klasse zum Speichern von Callback-Funktionen die durch die execAjax-Funktionen
// gerufen werden sollen
// Grund:
// - jeder Dialog (z.B. wf_portal_vorlagen_dlg.eplx) hat eine eigene Funktion die
//   gerufen werden soll, wenn der AjaxRequest fertig ist (z.B. Anzeige eines weiteren
//   Dialogs mit der Erfolgs-/Fehlermeldung)
// - das ganze geht natürlich auch ohne Klasse, aber sobald mal eine weitere Callback-Fkt
//   gerufen wird die grad nicht auf der Maske existiert (in meinem Fall jetzt "enableWait()")
//   dann Krachts
// --> deshalb gibts jetzt diese Klasse, in der man Callbacks speichern kann (aber nicht muss)
//     und wenn sie vorhanden sind, dann werden sie gerufen
/*****************************************************************************/
// Benutzung: siehe AjaxCallbacks.html (/doku/...)
// var ajaxCallbackFunctions = function() {
    // var PublicElements = {
        // enableWait:no_function,
        // disableWait:no_function,
        // ajaxFertig:no_function,

        // Info:'Containerklasse zum Speichern von Ajax-Callbackfunktionen'
    // };

    // // Defaultfunktionen
    // function no_function() {};

    // return PublicElements;
// };


function is_vorlage() {
    var element = document.getElementById('IST_VORLAGE');
    if( element ) {
        if( element.value == "1" ) { return true; }
    }
    return false;
}


function execAjax_cancelAntrag(vid, ajaxFertig) {
    if ( ! document.getElementById ) {
       return false;
    }

    var now = new Date();
    var session=document.getElementById('session').value;

    enableWait();

    var callback=function() {
        if ( ajax.request.readyState==4 ) {

            var xmlparser = createXMLByTextExtend(ajax.request.responseText);

            disableWait();

            if( !xmlparser.isError() ) {
                var xml = xmlparser.getXML();
                var msg = trim(getNodeValue(xml,'message'));

                if( msg == "" ) {
                    ajaxFertig(true); // true = Ajax Erfolgreich
                }
                else {
                    ajaxFertig(false); // false = Ajax fehlgeschlagen
                    display_errors(msg+"\n");
                }
            }
            else {
                ajaxFertig(false); // false = Ajax fehlgeschlagen
            }
        }
    };


    var query = "ajaxmode=CANCEL_ANTRAG"
              + "&session="+escape(session)
              + "&INP_VORGANG_ID="+escape(vid)
              + "&TSTAMP="+escape(now)
            ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}


function execAjax_modifyAndDuplicate(vid, callbackFunctions) {
    if ( ! document.getElementById ) {
       return false;
    }

    var now = new Date();
    var session=document.getElementById('session').value;

    callbackFunctions.enableWait();

    var callback=function() {
        if ( ajax.request.readyState==4 ) {

            var xmlparser = createXMLByTextExtend(ajax.request.responseText);

            callbackFunctions.disableWait();

            if( !xmlparser.isError() ) {
                var xml = xmlparser.getXML();
                var errors = trim(getNodeValue(xml,'errors'));
                var retval = trim(getNodeValue(xml,'result'));
                var msg = trim(getNodeValue(xml,'message'));

                errors = Number(errors);

                if( !isNaN(errors) && errors == 0 ) {
                    callbackFunctions.ajaxFertig(true,'',xml); // true = Ajax Erfolgreich
                }
                else if( !isNaN(errors) && errors > 0 ) {
                    callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }
                else {
                    callbackFunctions.ajaxFertig(false, msg, xml); // false = Ajax fehlgeschlagen
                }
            }
            else {
                callbackFunctions.ajaxFertig(false, xmlparser.getError(), xml); // false = Ajax fehlgeschlagen
            }
        }
    };


    var query = "ajaxmode=DUPLICATE_AND_MODIFY"
              + "&session="+escape(session)
              + "&INP_VORGANG_ID="+escape(vid)
              + "&TSTAMP="+escape(now)
            ;

    var ajax = new ajaxRequest("/manted/epl/wf_portal_ajax.epl?"+query,
                               callback
                              );
    if ( ajax.isValidConnection() ) {
       ajax.execRequest();
       return true;
    }
    else {
       return false;
    }
}


function wf_portal_2011_10_12() { }
function wf_portal_2011_12_14() { }

