// allgemeine Variablen 
var now = new Date();

// Datum auf Fehler prüfen und ggf. Fehlerart zurückliefern
function datecheck(dt, field){
	if(dt != ""){
		var check = 0;
		var parts = dt.split(".");
		var maxYearFromToday = 100; // (Maximaljahr vom aktuellen Datum aus gerechnet)
		var minYearFromToday = 100; // (Minimaljahr vom aktuellen Datum aus gerechnet)
		if(parts.length != 3) check =  1; // Datum besteht nicht aus 3 Teilen (Tag, Monat, Jahr)
		if(parts[0].length != 2) check =  2; // 1. Teil ist nicht zweistellig (Tag)
		if(parts[1].length != 2) check =  3; // 2. Teil ist nicht zweistellig (Monat)
		if(parts[2].length != 4) check =  4; // 3. Teil ist nicht vierstellig (Jahr)
		if(parts[0] / 1 > 31 || parts[0] / 1 < 1) check =  5; // Tag ist nicht zwischen 1 und 31 
		if(parts[1] / 1 > 12 || parts[1] / 1 < 1) check =  6; // Monat ist nicht zwischen 1 und 12
		if(parts[2] / 1 > now.getFullYear() + maxYearFromToday || parts[2] / 1 < now.getFullYear() - minYearFromToday ) check =  7; // Jahr ist kleiner Mindestjahr oder größer Maximaljahr (Angaben in Bezug auf aktuellem Datum)
		if(parts[0] / 1 == 31 && (parts[1] / 1 == 2 || parts[1] / 1 == 4 || parts[1] / 1 == 6 || parts[1] / 1 == 9 || parts[1] / 1 == 11)) check =  8; // Tag ist 31 im Februar, April, Juni, September oder November
		if(parts[0] / 1 == 30 && parts[1] / 1 == 2) check =  9; // Tag ist 30 im Februar
		if(parts[0] / 1 == 29 && parts[1] / 1 == 2 && ((parts[2] / 1) % 4 != 0) || (parts[2] / 1) % 400 == 0) check =  10; // Tag ist 29 im Februar eines Nicht-Schaltjahres
		if(check != 0){
			alert("Fehlerhaftes Datum. Bitte im Format: 01.12.2001 eingeben");
			document.forms[0].elements[field].focus();
			return false;
		}
		return true;
	}	
}

function testVar(p_var,msg,statement){
	if(p_var){
		alert(msg);
	} else {
		eval(statement);
	}
}

function trim(str){
	var newstr = str.replace(/^ +/g,"");
	newstr = newstr.replace(/ +$/g,"");
	return newstr;
}

function trimR(str){
	var newstr = str.replace(/ +$/g,"");
	return newstr;
}	
	
function checkFieldEmpty(form,Field){
	var p_form = document.forms[form];
	var empty = p_form[Field].value.match(/^ *$/);
	return empty;
}

function checkEmail(form,mailField){
	var p_form = document.forms[form];
	var eMail = p_form[mailField].value;
	if(eMail.lastIndexOf(".") > eMail.length - 3){
		return false;
	}
	if(eMail.lastIndexOf(".") < eMail.length - 5){
		return false;
	}
	if(eMail.indexOf("@") < 2){
		return false;
	}
	if(eMail.lastIndexOf(".") < eMail.indexOf("@") + 3){
		return false;
	}
	anzAt = eMail.split("@");
	if(anzAt.length > 2) return false;
	return true;
}

function checkOnSubmit(form,fieldsToCheck,EmailToCheck){
	var errStr = "";
	var a_fields = fieldsToCheck.split(",");
	for(i=0;i<a_fields.length;i++){
		if(checkFieldEmpty(form,a_fields[i])){
			errStr += (errStr==""?"":",") + a_fields[i];
		}
	}
	if(errStr != ""){
		alert("Bitte füllen Sie die folgenden Felder aus:\n\n" + errStr);
		return false;
	} else {
		if(trim(EmailToCheck) != ""){
			if(!checkEmail(form,EmailToCheck)){
				alert("Sie haben keine gültige Email-Adresse eingegeben!");
				return false;
			} else {
				return true;
			}
		} else {
			return true;
		}
	}
}

/* Beispiel HTML-Code für das Formular: 

<form name="Form" action="" method="post" onsubmit="return checkOnSubmit('Feldname1,Feldname2,Feldname3,...','EmailFeldname')">
*/

