// form; check for mandatory fields
function checkMandatories(formName) {

    var theForm = document[formName];
    var m = theForm.mgnlMandatory;
    var i = 0;
    var focusField = null;
    var ok = true;
    if (m) {
        if (!m[0]) {
            var tmp = m;
            m = new Object();
            m[0] = tmp;
        }

        while (m[i]) {
            var isEmail = false;
            var isEmptyEmail = false;

            var name = m[i].value;
            var type;
            var mgnlField;
            if (document.all) {
                mgnlField = theForm(name);
            } else {
                mgnlField = theForm[name];
            }


            if (name.indexOf("_email") >= 0) {
                isEmail = true;

                if (name.indexOf("_emailempty")) {
                    isEmptyEmail = true;
                }
            }
            
            if (mgnlField.type) {
                type = mgnlField.type;
            } else if (mgnlField[0] && mgnlField[0].type) {
                type = mgnlField[0].type
            }

            switch (type) {
                case "select-one":
                    if (mgnlField.selectedIndex == 0) {
                        ok = false;
                        //document.getElementById(obj[0].name).className = "error";
                        document.getElementById(name).className = "error";
                    } else {
                        document.getElementById(name).className = "";
                    }
                    break;
                case "checkbox":
                    var obj = new Object();
                    if (!mgnlField[0]) {
                        obj[0] = mgnlField;
                    } else {
                        obj = mgnlField;
                    }
                    var okSmall = false;
                    var ii = 0;

                    while (obj[ii]) {
                        if (obj[ii].checked)
                        {
                            okSmall = true;
                            break;
                        }
                        ii++;
                    }
                    if (!okSmall) {
                        ok = false;
                        if (document.getElementById(mgnlField.name) != null) {
                            document.getElementById(mgnlField.name).className = "error";
                        }
                        if (focusField == null) {
                            focusField = mgnlField;
                        }
                    } else {
                        document.getElementById(mgnlField.name).className = "";
                    }
                    break;
                case "radio":

                    var obj = new Object();
                    if (!mgnlField[0]) {
                        obj[0] = mgnlField;
                    } else {
                        obj = mgnlField;
                    }
                    var okSmall = false;
                    var ii = 0;
                    while (obj[ii]) {
                        if (obj[ii].checked) {
                            okSmall = true;
                            break;
                        }
                        ii++;
                    }

                    if (!okSmall) {
                        ok = false;

                        document.getElementById(obj[0].name).className = "error";
                        if (focusField == null) {
                            focusField = mgnlField;
                        }
                    } else {
                        document.getElementById(obj[ii].name).className = "";
                    }

                    break;
                default:

                    if (isEmail) {
                        // kein Pflicht: field_emailempty
                        // Pflicht: field_email
                        if (theForm.field_email!=undefined && theForm.field_email!="undefined") {
                            if (!validateEmail(theForm.field_email.value)) {
                                document.getElementById(mgnlField.name).className = "error";
                                ok = false;
                            } else {
                                document.getElementById(mgnlField.name).className = "";
                            }

                        } else if (theForm.field_emailempty!=undefined && theForm.field_emailempty!="undefined") {
                            if (!validateEmail(theForm.field_emailempty.value) && theForm.field_emailempty.value.length>0) {
                                document.getElementById(mgnlField.name).className = "error";
                                ok = false;
                            } else {
                                document.getElementById(mgnlField.name).className = "";
                            }
                        }
                    } else {
                        if (checkTextField(theForm, mgnlField.name)) {
                            document.getElementById(mgnlField.name).className = "error";
                            ok = false;
                        } else {
                            document.getElementById(mgnlField.name).className = "";
                        }
                    }
                  /*
                    if (isEmail && (theForm.field_email!=undefined && theForm.field_email!="undefined")){
                        ok = false;
                        document.getElementById(mgnlField.name).className = "error";
                        if (focusField == null) {
                            focusField = mgnlField;
                        }
                        document.getElementById(mgnlField.name).style.color = "#f00";
                    } else {
                        document.getElementById(mgnlField.name).className = "";
                    }
                    if ((!mgnlField.value ) || (isEmail && !validateEmail(mgnlField.value)) || isEmptyEmail) {
                        if (isEmptyEmail) {
                            if (mgnlField.value && !validateEmail(mgnlField.value)) {

                                ok = false;
                                document.getElementById(mgnlField.name).className = "error";
                                if (focusField == null) {
                                    focusField = mgnlField;
                                }
                            } else if (!isEmptyEmail) { 
                                document.getElementById(mgnlField.name).className = "";
                            }
                        } else {

                            ok = false;
                            document.getElementById(mgnlField.name).className = "error";
                            if (focusField == null) {
                                focusField = mgnlField;
                            }
                        }
                    } else {
                        document.getElementById(mgnlField.name).className = "";
                    }
                */
            }
            if (!ok) {
                if (!mgnlField[0]) {
                    mgnlField.focus();
                }
//                return false;
            }
            i++;
        }
    }
    if (ok) {
        //        return true;
        theForm.submit();
    }
}


    function validateEmail(email) {
        var emailChar = /^([0-9a-zA-ZöäüÖÄÜ]+[-._])*[0-9a-zA-ZöäüÖÄÜ]+@([-0-9a-zA-ZöäüÖÄÜ]+[.])+[a-zA-Z]{2,6}$/i;
        if (emailChar.test(email)) { return true; } else { return false; }
    }

    function checkTextField(theForm, name) {
        var nameArray = new Array();
        nameArray = eval("theForm." + name);
        if (nameArray != undefined && nameArray != "undefined") {
            if (nameArray.value != undefined && nameArray.value != "undefined" && nameArray.value.length > 0) {
                return false;
            }
        }
        return true;
    }

/*function formfillEmail(formName,email){
    var theForm = document[formName];
    var m = theForm.mgnlMandatory;
    var i = 0;
    //var next = true;

    if (m) {
        if (!m[0]) {
            var tmp = m;
            m = new Object();
            m[0] = tmp;
        }

     while(m[i]){
           var name = m[i].value;
           if(name.indexOf("field_email_")>=0){
               // mgnlField.value = email;
              document.getElementById('inputEmail').value = email;
              break;
            }
           i++;
         }



    }
}*/


function validateZip(s) {
    var expression = /^\d{5}$/;
    return expression.test(s);
}

function checkDate(s) {
    if (s != "") {
        return validateDate(s);
    } else {
        return true;
    }
}

function validateDate(s) {
    //dd.MM.yyyy
    var sArr = s.split(".");

    if (sArr.length != 3) {
        return false;
    } else {
        var day = sArr[0];
        var month = sArr[1];
        var year = sArr[2];
    }

    month = month - 1;
    if (year.length != 4) {
        return false;
    }

    var regDate = new Date(year, month, day);

    if (year != regDate.getFullYear()) {
        return false;
    }

    if (month != regDate.getMonth())
    {
        return false;
    }

    if (day != regDate.getDate()) {
        return false;
    }

    return true;
}
