/*******************************************************************************
*  NAME
*  chk_form.js
*
*  VERSION
*  V1.1
*
*  DESCRIPTION
*  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++ ) {
		// Ein Objekt für das Formularfeld erzeugen
		var field = eval( "document." + chk_field[i][0] + "." + chk_field[i][1] );

		// Nächstes Element, wenn dieses nicht vorhanden ist
		if ( !field ) {continue};

		// 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;
			}
		}

		// 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 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' ) {
			// 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 <= 6 || IndexOfAt <= 0 || IndexOfPoint <= 0 || diffAtToPoint <= 3 ) {
				alert(chk_field[i][3]);
				field.focus();
				return false;
			}
		}
    }
	// Wenn alle Prüfungen als i.O. abgeschlossen sind, dann "true" zurückgeben
	return true;
}

function check_username( formular, username_field ) {
	// Ein Objekt für das Formularfeld erzeugen
	var field = eval( "document." + formular + "." + username_field );

	// Überprüfen, ob der Benutzername größergleich 3 und kleinergleich 20 Zeichen ist
	if ( ( field.value.length < 3 ) || ( field.value.length > 20 ) ) {
		alert('Hinweis:\n\nDer Benutzername muss mindestens 3 Zeichen und darf maximal 20 Zeichen lang sein.');
		field.value = '';
		field.focus();
		return false; 
	}

	// Wenn alle Prüfungen als i.O. abgeschlossen sind, dann "true" zurückgeben
	return true;
}

function check_password( formular, password_field1, password_field2 ) {
	// Ein Objekt für das Formularfeld erzeugen
	var password1 = eval( "document." + formular + "." + password_field1 );
	var password2 = eval( "document." + formular + "." + password_field2 );

	// Überprüfen, ob das neue Kennwort größergleich 6 und kleinergleich 16 Zeichen ist
	if ( ( password1.value.length != 0 ) && ( password1.value.length < 6 ) || ( password1.value.length > 16 ) ) {
		alert('Hinweis:\n\nIhr persönliches Kennwort muss mindestens 6 Zeichen und darf maximal 16 Zeichen lang sein.');
		password1.value = '';
		password2.value = '';
		password1.focus();
		return false; 
	}
	
	// Überprüfen, ob das neue Kennwort mit der Kennwort-Wiederholung übereinstimmt
	if ( password1.value != password2.value ) {
		alert('Hinweis:\n\nIhr neues persönliche Kennwort stimmt nicht mit der Wiederholung überein.\nBitte Wiederholen Sie Ihre Eingabe.');
		password1.value = '';
		password2.value = '';
		password1.focus();
		return false; 
	}

	// Wenn alle Prüfungen als i.O. abgeschlossen sind, dann "true" zurückgeben
	return true;
}

/*******************************************************************************
*  AUTHOR
*  Helmut Weber <helmut.weber@bitbetrieb.de>
*  
*  COPYRIGHT AND LICENSE
*  Copyright (c) 2004 bitbetrieb. All rights reserved.
*
*  This program is free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by the
*  Free Software Foundation (http://www.gnu.org/); either version 2 of the License,
*  or (at your option) any later version.
*  
*  This program is distributed in the hope that it will be useful, but
*  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
*  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*  
*  You should have received a copy of the GNU General Public License along with
*  this program; if not, write to the
*  Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
*  LAST CHANGES
*  Dienstag, 09.November 2004
*******************************************************************************/
