/* Function: check_form() */
function check_form (form) {
    
    // Regular expressions
    // Note: All changes must also be applied to /cgi-bin/anfrage.cgi
    var contains_letters = /[A-Za-z]/;
    var contains_numbers = /[0-9]/;
    var looks_like_email = /^[^@]+@[0-9A-Za-z]+(?:[-.][0-9A-Za-z]+)*$/; // Simple check
    
    // Checking required fields
    var is_error = { };
    is_error["first-name"] = !contains_letters.test(form["first-name"].value);
    is_error["last-name"]  = !contains_letters.test(form["last-name"].value);
    is_error["phone"]      = !contains_numbers.test(form["phone"].value);
    is_error["email"]      = !looks_like_email.test(form["email"].value);
    is_error["message"]    = !contains_letters.test(form["message"].value) || form["message"].value == form["message"].defaultValue;
    
    // Handling errors
    var submit_form = true;
    for(var field in is_error) {
        
        // Field contains errors
        if(is_error[field]) {
            submit_form = false;
            document.getElementById(field).className = "error";
            document.getElementById("label-" + field).className = "error";
        }
        
        // Field does not contain errors
        else {
            document.getElementById(field).className = "";
            document.getElementById("label-" + field).className = "required";
        }
    }
    if(!submit_form && document.getElementById("form-error").childNodes.length == 0) {
        
        // Displaying error message
        var text = document.createTextNode("Bitte überprüfen Sie Ihre Eingaben.");
        document.getElementById("form-error").appendChild(text);
        document.getElementById("form-error").style.display = "block";
    }
    return submit_form;
}
