var errorCount;

function submitForm() {
    errorCount = 0;
    /*
    checkValueForbidden("client.salut", "Bitte wählen");
    checkRequiredField("client.firstname");
    checkRequiredField("client.lastname");
    if (checkRequiredField("client.mail") == true) {
        checkEmail("client.mail");
    }

    if (checkRequiredField("client.phone") == true) {
        checkNumeric("client.phone", 4);
    }
    */

    /*
    var hasContactPerson = document.getElementsByName("contactPerson").length != 0;
    if (hasContactPerson) {
        if (checkRequiredField("contactPerson") == false) {
            errorCount += 1;
        }
    }
    */

    /*
    var hasEmail = document.getElementsByName("emailaddress").length != 0;
    if (hasEmail) {
        if (checkRequiredField("client.mail") == false) {
            errorCount += 1;
        }
    }
    */

    if (errorCount == 0) {
        courseBookForm.submit();
    }
}

function checkValueForbidden(fieldName, forbiddenValue) {
    element = document.getElementsByName(fieldName)[0];
    if (element.value == forbiddenValue) {
        markError(fieldName);
        return false;
    } else {
        demarkError(fieldName);
        return true;
    }
}

function checkRequiredField(fieldName) {
    element = document.getElementsByName(fieldName)[0];
    if (element.value.length == 0) {
        markError(fieldName);
        return false;
    } else {
        demarkError(fieldName);
        return true;
    }
}

function checkEmail(fieldName) {
    element = document.getElementsByName(fieldName)[0];
    if (element != null && element.value.length > 0)  {
        if (!isValidEmail(element.value)) {
            markError(fieldName);
            return false;
        } else {
            demarkError(fieldName);
            return true;
        }
    }
}

function checkNumeric(fieldName, minLength) {
    element = document.getElementsByName(fieldName)[0];
    if (element != null && element.value.length > 0)  {
        if (!isNumeric(element.value, minLength)) {
            markError(fieldName);
            return false;
        } else {
            demarkError(fieldName);
            return true;
        }
    }
}

function markError(fieldName) {
    errorCount++;
    element = document.getElementsByName(fieldName)[0];
    element.className = "errorBg";
}

function demarkError(fieldName) {
    element = document.getElementsByName(fieldName)[0];
    element.className = "clearBg";
}

function isNumeric(s, minLength) {
    var a = false;
    var res = false;

    if (typeof(RegExp) == 'function') {
        var b = new RegExp('abc');
        if (b.test('abc') == true) {
            a = true;
        }
    }

    if (a == true) {
        var exp = '^([0-9])$';
        if (minLength != null) {
            exp = '^([0-9]{' + minLength + ',})$';
        }
        reg = new RegExp(exp);
        return reg.test(s);
    }

    return true;
}

function isValidEmail(s) {
    var a = false;
    var res = false;

    if (typeof(RegExp) == 'function') {
        var b = new RegExp('abc');
        if (b.test('abc') == true) {
            a = true;
        }
    }

    if (a == true) {
        reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                       '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                       '(\\.)([a-zA-Z]{2,4})$');
        res = (reg.test(s));
    } else {
        res = (s.search('@') >= 1 &&
            s.lastIndexOf('.') > s.search('@') &&
            s.lastIndexOf('.') >= s.length-5)
    }

    return(res);
}
