// validates that the field value string has one or more characters in it
function isNotEmpty(elem) {
	var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        alert("Bitte fuellen Sie die mit einem '*' gekennzeichneten Felder aus.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
//validates that the entry is a positive or negative number
function isNumber(elem) {
	var str = elem.value;
    var re = /^[-]?\d*\.?\d*$/;
    str = str.toString();
    if (!str.match(re)) {
        alert("Bitte nutzen Sie in dem Feld nur Ziffern.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    }
    return true;
}
// validates that the entry is 16 characters long
function isLen16(elem) {
	var str = elem.value;
    var re = /\b.{16}\b/;
    if (!str.match(re)) {
        alert("Das Feld darf nicht mehr als 16 Zeichen lang sein.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validates that the entry is formatted as an e-mail address
function isEMailAddr(elem) {
	var str = elem.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) {
        alert("Bitte prfen Sie nocheinmal Ihre E-Mail-Adresse.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validate that the user made a selection other than default
function isChosen(select) {
    if (select.selectedIndex == 0) {
        alert("Bitte waehlen Sie einen Eintrag aus der Liste.");
        return false;
    } else {
        return true;
    }
}

// validate that the user has checked one of the radio buttons
function isValidRadio(radio) {
    var valid = false;
    for (var i = 0; i < radio.length; i++) {
        if (radio[i].checked) {
            return true;
        }
    }
    alert("Bitte waehlen Sie etwas aus.");
    return false;
}

// validate that the user has checked the required checkbox
function isValidCheckbox(cbox) {
        if (cbox.checked) {
            return true;
        }
    alert("Sie haben unseren AGB nicht zugestimmt. \n\nOhne Ihre Zustimmung ist eine Bearbeitung leider nicht moeglich.");
    return false;
}

function focusElement(formName, elemName) {
    var elem = document.forms[formName].elements[elemName];
    elem.focus();
    elem.select();
}

// batch validation router
function validateForm(form) {
    if (isNotEmpty(form.required_name)) {
        if (isNotEmpty(form.required_vorname)) {
            if (isNotEmpty(form.required_strasse)) {
                if (isNotEmpty(form.required_plz)) {
                    if (isNotEmpty(form.required_ort)) {
    	 	        if (isNotEmpty(form.required_telefon)) {
                            if (isEMailAddr(form.required_email)) {
			        if (isNotEmpty(form.required_konto)) {
				    if (isNotEmpty(form.required_blz)) {
				    	if (isNumber(form.required_blz)) {
				            if (isValidCheckbox(form.required_agb)) {
                      	                    	return true;
				            }
				    	}
				    }
  			        }
			    }
                        }
                    }
                }
	    }
        }
    }
    return false;
}
