
var Leerstring = " ist leer. Bitte geben Sie hier einen Wert ein.";

function FormularCheck(form) {
	return 	(PruefeAnzahl(form.ANZAHL) &&
				 PruefeDatumTag(form.ANTAG) &&
				 PruefeDatumMonat(form.ANMONAT) &&
				 PruefeDatumTag(form.ABTAG) &&
				 PruefeDatumMonat(form.ABMONAT) &&
				 PruefeEingabeName(form.NAME, "Name") &&
				 PruefeEingabeName(form.STRASSE, "Strasse") &&
				 PruefeEingabe(form.NUMMER, "Hausnummer") &&
				 PruefePLZ(form.PLZ) &&
				 PruefeEingabe(form.ORT, "Ort") &&
				 PruefeEingabeNummer(form.TELEFON, "Telefonnummer")
				)
}

// Pruefung auf Eingabe
function KontrolleNull(eingabe) {
	if ( eingabe.length == 0 ) 
   	return false;
	else 
 	return NurLeer(eingabe);
}

// Pruefung auf Leerzeichen (Eingabe ohne Inhalt)
function NurLeer(eingabe) {
	for ( var i=0; i<eingabe.length; i++ ) {
   	if ( eingabe.charAt(i) != " " ) {
	   	return true;
		}
	}
	return false;
}

// Pruefung auf  Ziffer
function IstZiffer(zeichen) {
	if( (zeichen >= "0") && (zeichen <= "9") )
		return true;
	else
		return false;
}

// Pruefung auf Ziffernfolge
function IstZiffernfolge(eingabe){
for ( var i=0; i<eingabe.length; i++ ) {
	aktzeichen = eingabe.charAt(i)
	if ( aktzeichen >= "0" && aktzeichen <= "9" )
			return true;
	else
			return false;
  }
}

// Pruefung auf Buchstabe
function IstBuchstabe(zeichen) {
		if ( (zeichen >= "a" && zeichen <= "z") || (zeichen >= "A" && zeichen <= "Z") || (zeichen == "ä") || (zeichen == "ö") || (zeichen == "ü")  || (zeichen == "ß") || (zeichen == "Ä") || (zeichen == "Ö") || (zeichen == "Ü") ) 
			    return true;
		else
				return false;
}

// Pruefung auf Buchstabenfolge
function IstBuchstabenfolge(eingabe) {
	for ( var i=0; i<eingabe.length; i++ ) {
		aktzeichen = eingabe.charAt(i)
		if ( (aktzeichen >= "a" && aktzeichen<= "z") || (aktzeichen >= "A" && aktzeichen <="Z") || (aktzeichen == "ä") || (aktzeichen == "ö") || (aktzeichen == "ü")  || (aktzeichen == "ß") || (aktzeichen == "Ä") || (aktzeichen == "Ö") || (aktzeichen == "Ü")  ) 
			    return true;
		else
				return false;
	}
}

// Pruefung auf enthaltene Zeichen in einer Zeichenfolge
function IstZeichenIn(str1, str2) {
	for( i=0; i<str2.length;i++){
		var zeichen = str2.charAt(i);
		if(str1.indexOf(zeichen) == -1) return false;
	}
	return true;
}

// Kontrolle auf geforderte Zeichenanzahl
function ZaehleZeichen(eingabe, anz) {
	if ( eingabe.length == anz )
		return true;
	else
		return false;  
}

// Pruefung auf Gueltigkeitsbereich
function ZahlinBereich(eingabe, unten, oben) {
	var zahl = parseInt(eingabe);
	return ( (zahl >= unten) && (zahl <= oben) );
}

// Pruefung der Feldeingaben unter Angabe der Feldbezeichnung fuer die Generierung einer Fehlermeldung
function PruefeEingabe(eingabe, str) {
	if ( KontrolleNull(eingabe.value) && NurLeer(eingabe.value) ) {
		return true;
	}	
	else {
		eingabe.focus();
		alert("Das Feld " + str + Leerstring);
		return false;
	}
}

// Pruefung der Namen unter Angabe der Feldbezeichnung fuer die Generierung einer Fehlermeldung
function PruefeEingabeName(eingabe, str) {
	if ( KontrolleNull(eingabe.value) && NurLeer(eingabe.value) ) {
		var name = eingabe.value;
		if(name.length < 3) {
			eingabe.focus();
			alert("Bitte überprüfen Sie Ihre Eingabe");
			return false;
		}
		for(i=0; i<name.length; i++){
			if ( IstBuchstabe(name.charAt(i)) || name.charAt(i) == "-" || name.charAt(i) == "." || name.charAt(i) == " ")
			ergebnis = true;
			else {
			eingabe.focus();
			alert("Bitte überprüfen Sie Ihre Eingabe");
			return false;
			}
		}		
		return true;	
	}
	else {
		eingabe.focus();
		alert("Das Feld " + str + Leerstring);
		return false;
	}
}

// Pruefung der Telefonnr unter Angabe der Feldbezeichnung fuer die Generierung einer Fehlermeldung
function PruefeEingabeNummer(eingabe, str) {
	if ( KontrolleNull(eingabe.value) && NurLeer(eingabe.value) ) {
		var nummer = eingabe.value;
		if(nummer.length < 3) {
			eingabe.focus();
			alert("Bitte überprüfen Sie Ihre Eingabe");
			return false;
		}
		for(i=0; i<nummer.length; i++){
	
			if ( IstZiffer(nummer.charAt(i)) || nummer.charAt(i) == "-"  || nummer.charAt(i) == " "  || nummer.charAt(i) == "/"  || nummer.charAt(i) == "("  || nummer.charAt(i) == ")")
			ergebnis = true;
			else {
			eingabe.focus();
			alert("Bitte überprüfen Sie Ihre Eingabe");
			return false;
			}
		}		
		return true;	
	}
	else {
		eingabe.focus();
		alert("Das Feld " + str + Leerstring);
		return false;
	}
}

// Pruefung auf Richtigkeit der PLZ
function PruefePLZ(eingabe) {
	if ( IstZiffernfolge(eingabe.value) && (((ZaehleZeichen(eingabe.value, 5)) && (ZahlinBereich(eingabe.value, 01000, 99999)) ||  ((ZaehleZeichen(eingabe.value, 4)) && (ZahlinBereich(eingabe.value, 0100, 9999)))))   ) {
		return true;
	}	
	else {
		eingabe.focus();
		alert("Ungültige PLZ - bitte überprüfen Sie Ihre Eingabe");
		return false;
	}
}

// Pruefung auf Datumseingabe
function PruefeDatumTag(eingabe) {
	if ( IstZiffernfolge(eingabe.value) && ((ZaehleZeichen(eingabe.value, 1)) || (ZaehleZeichen(eingabe.value, 2))) && ZahlinBereich(eingabe.value, 1,31) ) {
		return true;
	}	
	else {
		eingabe.focus();
		alert("Bitte geben Sie ein gültiges Datum ein!");
		return false;
	}
}

// Pruefung auf Datumseingabe
function PruefeDatumMonat(eingabe) {
	if ( IstZiffernfolge(eingabe.value) && ((ZaehleZeichen(eingabe.value, 1)) || (ZaehleZeichen(eingabe.value, 2))) && ZahlinBereich(eingabe.value, 1,12) ) {
		return true;
	}	
	else {
		eingabe.focus();
		alert("Bitte geben Sie ein gültiges Datum ein!");
		return false;
	}
}

// Pruefung auf Eingabe der Anzahl
function PruefeAnzahl(eingabe) {
	if ( IstZiffernfolge(eingabe.value) && (ZaehleZeichen(eingabe.value, 1) || ZaehleZeichen(eingabe.value, 2)) && ZahlinBereich(eingabe.value, 1,99) ) {
		return true;
	}	
	else {
		eingabe.focus();
		alert("Bitte geben Sie die Anzahl der Gäste ein!");
		return false;
	}
}