//--------------------------------------------------------------------------------
// Datei          : formvalidator.js
// Beschreibung   : Formular-Eingabepruefung in JavaScript
// Copyright      : (c) 2005 by Aberle  Steuerungstechnik GmbH, 74211 Leingarten
// Verantwortlich : David Schiffer
// Erstellt am    : 23.03.2005
//--------------------------------------------------------------------------------

function checkTel(Eingabe) {
     var nur_das ="-/0123456789 "; // zulaessiger Zeichenvorrat
     for (var i = 0; i < Eingabe.length; i++)
         if (nur_das.indexOf(Eingabe.charAt(i))<0 ) return false;
         
     return true;
}

function checkFormular(){
    if(document.getElementById("name").value == ""){
        alert("Bitte geben Sie Ihren Namen an.");
        document.getElementById("name").focus();
        return false;
    }
    if(document.getElementById("email").value == ""){
        alert("Bitte geben Sie Ihren Email-Adresse an.");
        document.getElementById("email").focus();
        return false;
    }    
    if(document.getElementById("telefon").value == "") {
        alert("Bitte geben Sie Ihre Telefonnummer an.");
        document.getElementById("telefon").focus();
        return false;
    }
    else{
        if(!checkTel(document.getElementById("telefon").value)){
            alert("Bitte überprüfen Sie Ihre Eingabe : Die eingegebene Telefonnummer ist keine gueltige Telefonnummer.");
            document.getElementById("telefon").focus();
            return false;
        }

    }
}

// Globale Fehlermeldung
// Pflichtfeldpruefung
var ERROR_PFLICHTFELDER = "Es müssen alle Pflichtfelder ausgefüllt werden! \nFolgende Pflichtfelder sind leer oder falsch ausgefüllt:\n";

    // ---------------------------------------------------------------------------------------------
    // REGEX Elements

    // Validator Object
    var valid = new Object();

        // matches zip codes
        valid.zipCode = /\d{5}(-\d{4})?/;

        // matches 17.23 or 14,281, 545.45 or ...
        valid.Float = /(\d[.,]\d)/;

        // matches $17.23 or $14,281,545.45 or ...
        valid.Currency = /\$\d{1,3}(,\d{3})*\.\d{2}/;

        // matches 5:04 or 12:34 but not 75:83
        valid.Time = /^([1-9]|1[0-2]):[0-5]\d$/;

        //matches email
        valid.emailAddress = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;

        // matches phone ###-###-####
        valid.phoneNumber = /^\(?\d{3}\)?\s|-\d{3}-\d{4}$/;

        // International Phone Number
        valid.phoneNumberInternational = /^\d(\d|-){7,20}/;

        // IP Address
        valid.ipAddress = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;

        // Date xx/xx/xxxx
        valid.Date = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;

        // State Abbreviation
        valid.State = /^(AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NB|NC|ND|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY)$/i;

        // Social Security Number
        valid.SSN = /^\d{3}\-\d{2}\-\d{4}$/;
    // ---------------------------------------------------------------------------------------------

/**
 *Checkes if one of the radiobuttons (in a radiobuttongroup) is selected.
 *
 * Returns true if a radiobutton is selected, false otherwise.
 */
function is_checkedRadiobutton(theButton){
	for (var i = 0; i < theButton.length; i++){
        if (theButton[i].checked == true) {
            return true;
        }
    }
    return false;
}

/**
 * Checkes if the Textfield has a valid content.
 *
 * Returns true if content is valid.
 */
function isValidTextField(theField){
	if (theField.value == null) {
	    return false;
	} else if (theField.value.length < 1) {
	    return false;
	} else if (theField.value == " ") {
	    return false;
	}
	return true;
}

/**
 * Checks if the input data contains  only numbers. 
 * The characters which are allowed are specified 
 * in the "only_this" variable.
 *   
 * Returns true if input data contains  only numbers, false otherwise.
 */
function isValidNumberField(field) {
    var only_this ="0123456789";
    
    if (!isValidTextField(field)) {
        return false;
    }
    
    var fieldinput = field.value;
    
    // Nummernpruefung
    for (var i = 0; i < fieldinput.length; i++){
        if (only_this.indexOf(fieldinput.charAt(i))<0) {
            return false;
        }
    }
    return true;
}

/**
 * Checks if the input data contains  only numbers. 
 * The characters which are allowed are specified 
 * in the "only_this" variable.
 *   
 * Returns true if input data contains  only numbers, false otherwise.
 */
function isValidFloatField(field) {
  
    var thePat = valid.Float; 
    var gotIt = thePat.exec(field.value);
    
    if(! gotIt){
        return false;
    }
    
    return true;
}



/**
 * Prueft ob die Laenge des Felwerte passt
 * return: true = laenge identisch, else false.
 */
function checkLength(field, laenge) {
    if(field.value.length == laenge) {
        return true;
    }
    return false;
}

// ----------------------------------------------------------------------------

 /** 
  * Aufruf dieser Funktion aus dem <input type="submit"> Tag in we_u_te.php
  * mit onClick="return validateWE_U_TE(window.document.forms[0]);"
  * 
  * Return true wenn alle Felder valide sind (und submit des forms), sonst false.
  */
function validateWE_U_TE_Aktualisieren(theForm) {
    var mfempty=false;
    var errormsg="";
    
    // Felder pruefen
    if (!isValidNumberField(theForm.inp_te_barcode)) {
        mfempty=true;
        errormsg="- Barcode\n";
    }
    if (!checkLength(theForm.inp_te_barcode, 5)) {
        mfempty=true;
        errormsg="- Barcode hat falsche Laenge\n";
    }
    
    // Fehler ?
    if (mfempty) {
        alert(ERROR_PFLICHTFELDER + errormsg);
        return false;      
    }
        
    theForm.submit();
    return true;
}

 /** 
  * Aufruf dieser Funktion aus dem <input type="submit"> Tag in we_u_te.php
  * mit onClick="return validateWE_U_TE(window.document.forms[0]);"
  * 
  * Return true wenn alle Felder valide sind (und submit des forms), sonst false.
  */
function validateWE_U_TE_Sonst(theForm) {
    var mfempty=false;
    var errormsg="";
    
    if (!isValidNumberField(theForm.inp_te_barcode)) {
        mfempty=true;
        errormsg="- Barcode\n";
    }
    if (!checkLength(theForm.inp_te_barcode, 5)) {
        mfempty=true;
        errormsg="- Barcode hat falsche Laenge\n";
    }
    if (!isValidNumberField(theForm.inp_gewicht)) {
        mfempty=true;
        errormsg=errormsg+"- Gewicht\n";
    }
    
    // Fehler ?
    if (mfempty) {
        alert(ERROR_PFLICHTFELDER + errormsg);
        return false;      
    }
    theForm.submit();
    return true;
}

 /** 
  * Aufruf dieser Funktion aus dem <input type="submit"> Tag in we_u_teab.php
  * mit onClick="return validateWE_U_TE_AB(window.document.forms[0]);"
  * 
  * Return true wenn alle Felder valide sind (und submit des forms), sonst false.
  */
function validateWE_U_TE_AB(theForm) {
    var mfempty=false;
    var errormsg="";
    
    if (!isValidNumberField(theForm.inp_gewicht)) {
        mfempty=true;
        errormsg="- Gewicht\n";
    }
    
    // Fehler ?
    if (mfempty) {
        alert(ERROR_PFLICHTFELDER + errormsg);
        return false;      
    }
    theForm.submit();
    return true;
}

 /** 
  * WARENEINGANG LE Aktualisieren
  * Aufruf dieser Funktion aus dem <input type="submit"> Tag in we_u_le.php
  * mit onClick="return validateWE_U_LE(window.document.forms[0]);"
  * 
  * Return true wenn alle Felder valide sind (und submit des forms), sonst false.
  */
function validateWE_U_LE_Aktualisieren(theForm) {

    var mfempty=false;
    var errormsg="";
    
    // Felder pruefen
    if (!isValidNumberField(theForm.inp_le_barcode)) {
        mfempty=true;
        errormsg="- Barcode\n";
    }
    if (!checkLength(theForm.inp_le_barcode, 24)) {
        mfempty=true;
        errormsg="- Barcode hat falsche Laenge\n";
    }
    
    // Fehler ?
    if (mfempty) {
        alert(ERROR_PFLICHTFELDER + errormsg);
        return false;      
    }
        
    theForm.submit();
    return true;
}

 /** 
  * WARENEINGANG LE Buchen
  * Aufruf dieser Funktion aus dem <input type="submit"> Tag in we_u_le.php
  * mit onClick="return validateWE_U_LE(window.document.forms[0]);"
  * 
  * Return true wenn alle Felder valide sind (und submit des forms), sonst false.
  */
function validateWE_U_LE_Buchen(theForm) {

    var mfempty=false;
    var errormsg="";
    
    // Felder pruefen
    
    // Barcode
    if (!isValidNumberField(theForm.inp_le_barcode)) {
        mfempty=true;
        errormsg="- Barcode\n";
    }
    if (!checkLength(theForm.inp_le_barcode, 24)) {
        mfempty=true;
        errormsg="- Barcode hat falsche Laenge\n";
    }

    // Charge von
    if (!isValidNumberField(theForm.inp_le_chargevon)) {
        mfempty=true;
        errormsg="- Charge von\n";
    }

    // Charge bis
    if (!isValidNumberField(theForm.inp_le_chargebis)) {
        mfempty=true;
        errormsg="- Charge bis\n";
    }

    // Einlagermenge
    if (!isValidFloatField(theForm.inp_le_einlagermenge) 
        && !isValidNumberField(theForm.inp_le_einlagermenge) ) {
        mfempty=true;
        errormsg="- Einlagermenge\n";
    }
    
    // Fehler ?
    if (mfempty) {
        alert(ERROR_PFLICHTFELDER + errormsg);
        return false;      
    }
        
    theForm.submit();
    return true;
}

 /** 
  * WARENAUSGANG LE Aktualisieren
  * Aufruf dieser Funktion aus dem <input type="submit"> Tag in we_u_le.php
  * mit onClick="return validateWE_U_LE(window.document.forms[0]);"
  * 
  * Return true wenn alle Felder valide sind (und submit des forms), sonst false.
  */
function validateWA_U_LE_Aktualisieren(theForm) {

    var mfempty=false;
    var errormsg="";
    
    // Felder pruefen
    if (!isValidNumberField(theForm.inp_le_barcode)) {
        mfempty=true;
        errormsg="- Barcode\n";
    }
    if (!checkLength(theForm.inp_le_barcode, 24)) {
        mfempty=true;
        errormsg="- Barcode hat falsche Laenge\n";
    }
    
    // Fehler ?
    if (mfempty) {
        alert(ERROR_PFLICHTFELDER + errormsg);
        return false;      
    }
        
    theForm.submit();
    return true;
}

 /** 
  * WARENAUSGANG LE Buchen
  * Aufruf dieser Funktion aus dem <input type="submit"> Tag in we_u_le.php
  * mit onClick="return validateWE_U_LE(window.document.forms[0]);"
  * 
  * Return true wenn alle Felder valide sind (und submit des forms), sonst false.
  */
function validateWA_U_LE_Entnahme(theForm) {

    var mfempty=false;
    var errormsg="";
    
    // Felder pruefen
    if (!isValidNumberField(theForm.inp_le_barcode)) {
        mfempty=true;
        errormsg="- Barcode\n";
    }
    if (!checkLength(theForm.inp_le_barcode, 24)) {
        mfempty=true;
        errormsg="- Barcode hat falsche Laenge\n";
    }

    // Charge von
    if (!isValidNumberField(theForm.inp_le_chargevon)) {
        mfempty=true;
        errormsg="- Charge von\n";
    }

    // Charge bis
    if (!isValidNumberField(theForm.inp_le_chargebis)) {
        mfempty=true;
        errormsg="- Charge bis\n";
    }

    if (!isValidFloatField(theForm.inp_le_auslagermenge) 
        && !isValidNumberField(theForm.inp_le_auslagermenge) ) {
        mfempty=true;
        errormsg="- Auslagermenge\n";
    }
    
    // Fehler ?
    if (mfempty) {
        alert(ERROR_PFLICHTFELDER + errormsg);
        return false;      
    }
        
    theForm.submit();
    return true;
}

