// $Id: chk_form.js 22 2007-08-07 15:18:50Z hweber $

/*
 * 
 * JavaScript zum Überprüfen von Formularfeldern
 * Array mit den zu Prüfenden Formularfeldern definieren
 * chk_field[nummer]	= [ '[formularname]', '[feldname]', '[text|email]', '[Fehlertext]' ];
 * 
 */

function submit_form() {
	// Schleife für jedes Element in dem Array chk_field
	for ( i=0; i<chk_field.length; i++ ) {
		// Variable für Formularfeld definieren
		var field = eval( "document.getElementById(\"" + chk_field[i][0] + "\")." + chk_field[i][1] );

		// Nächstes Element, wenn dieses nicht vorhanden ist
		if ( !field ) {continue};

		// Prüfen ob ein Textfeld ausgefüllt wurde
		if ( chk_field[i][2] == 'text' ) {
			if ( field.value == "" ) {
	            alert(chk_field[i][3]);
	            field.focus();
	            return false;
			}
		}

		// Prüfen ob ein Zahlenfeld ausgefüllt wurde
		if ( chk_field[i][2] == 'number' ) {
			if ( isNaN(field.value) == true || field.value == "" ) {
	            alert(chk_field[i][3]);
	            field.focus();
	            return false;
			}
		}

		// Prüfen ob ein Datum-Feld ausgefüllt wurde
		if ( chk_field[i][2] == 'date' ) {
			date = field.value.replace(/\/|\.|-| /g,"");
			if ( isNaN(date) == true || date == "" ) {
	            alert(chk_field[i][3]);
	            field.focus();
	            return false;
			}
		}

		// Prüfen ob ein Uhrzeit-Feld ausgefüllt wurde
		if ( chk_field[i][2] == 'time' ) {
			time = field.value.replace(/\:|\.|-| /g,"");
			if ( isNaN(time) == true || time == "" ) {
	            alert(chk_field[i][3]);
	            field.focus();
	            return false;
			}
		}

		// Prüfen ob ein Telefon-Feld ausgefüllt wurde
		if ( chk_field[i][2] == 'phone' ) {
			phone = field.value.replace(/\/|\(|\)|\+|\.|-| /g,"");
			if ( isNaN(phone) == true || phone == "" ) {
	            alert(chk_field[i][3]);
	            field.focus();
	            return false;
			}
		}

		// Prüfen ob eine E-Mail-Adresse korrekt ausgefüllt wurde
		if ( chk_field[i][2] == 'email' && field.value != "" ) {
			// Zeichenkette der E-Mail-Adresse analysieren
			email			= field.value;								// E-Mail-Adresse im Eingabefeld in Variable abspeichern
			lastIndexPoint	= email.length - email.lastIndexOf(".");	// Die Position des letzten Punktes ermitteln
			IndexOfPoint	= email.indexOf(".");						// Die Position des ersten Punktes ermitteln
			lastIndexAt		= email.length - email.lastIndexOf("@");	// Die Position des letzten @-Zeichens ermitteln
			IndexOfAt		= email.indexOf("@");						// Die Position des ersten @-Zeichens ermitteln
			diffAtToPoint	= lastIndexAt - lastIndexPoint;				// Abstand zwischen letzten @-Zeichen und letzten Punkt ermitteln

			// E-Mail-Adresse auf Richtigkeit prüfen
			if ( lastIndexPoint <= 2 || lastIndexAt <= 5 || IndexOfAt <=0 || IndexOfPoint <=0 || diffAtToPoint <=2) {
				alert("Die E-Mail-Adresse \"" + email + "\" wird nicht akzeptiert!");
				field.focus();
				return false;
			}
		}

		// Prüfen ob ein Kontrollkästchen angewählt wurde
		if ( chk_field[i][2] == 'checkbox' ) {
			if ( field.checked == false ) {
	            alert(chk_field[i][3]);
	            field.focus();
	            return false;
			}
		}
    }
	// Wenn alle Prüfungen als i.O. abgeschlossen sind, dann "true" zurückgeben
	return true;
}