function submit_form() {
	if(!document.form.requires) return true;
	if(!document.form.requires.value) return false;

	var errors = new Array();
	var types = document.form.requires.value.split(";");

	for(var t = 0; t < types.length; t++) {
		var split1 = types[t].split(":");
		var type = split1[0];
		var fields = split1[1].split(",");

		for(var f = 0; f < fields.length; f++) {
			if(type=="sel") {
				var requires = fields[f].split("=");
				var field = requires[0];

				if(document.form.elements[field].options[document.form.elements[field].selectedIndex].value.length < 1) {
					errors[errors.length] = field;
				} else {
					for(var r = 1; r < requires.length; r++) {
						var split2 = requires[r].split(">");
						var index = split2[0];

						if(document.form.elements[field].selectedIndex==index && typeof split2[1] != "undefined") {
							var split3 = split2[1].split("-");
							var rtype = split3[0];
							var rfield = split3[1];

							if(rtype=="chk" && !document.form.elements[rfield].checked) errors[errors.length] = rfield;
							else if(rtype=="txt" && (document.form.elements[rfield].value.length < 1 || document.form.elements[rfield].value==document.form.elements[rfield].defaultValue)) errors[errors.length] = rfield;
						}
					}
				}
			} else {
				if(type=="chk" && !document.form.elements[fields[f]].checked) errors[errors.length] = fields[f];
				else if(type=="txt" && (document.form.elements[fields[f]].value.length < 1 || document.form.elements[fields[f]].value==document.form.elements[fields[f]].defaultValue)) errors[errors.length] = fields[f];
			}
		}
	}

	for(var e = 0; e < errors.length; e++) if(document.form.elements[errors[e]]) document.form.elements[errors[e]].className = "error";

	if(errors.length==0) return true;
	alert('Bitte überprüfen Sie Ihre Eingaben!');
	return false;
}