/*
File: validator.js
Erstellung: Stefan Osterlitz (osterlitz@p-p.de)
Datum: 19.03.2002

Prüfung von Formulareingaben

- Tests werden als regular expressions formuliert und in Variablen abgelegt.
- testfield(Test,Feldname,Meldung) wendet den Test auf das Feld an und gibt die entsprechende Meldung aus.
- checked(Feldname,Meldung) prüft eine Checkbox / Gruppe von Radiobuttons auf Auswahl
- Der Focus wird auf das erste fehlerhafte Feld gesetzt.
- Gross-/Kleinschreibung bei Feldnamen ist relevant

Der Aufruf in der Webseite funktioniert wie folgt:

im <head>:

<script src="validator.js" language="JavaScript"></script>
<script language="JavaScript">

function validate(){

	// tests anwenden
	if (testfield(nichtleer, "S_Vorname", "Bitte geben Sie Ihren Vornamen ein") == false) return false;
	if (testfield(nichtleer, "Email", "Bitte geben Sie eine Mailadresse ein") == false) return false;
	if (testfield(telefon, "Telefon", "Bitte geben Sie eine Telefonnummer ein") == false) return false;
	if (checked("Zahlung","Bitte wählen Sie eine Zahlungsweise") == false) return false;
	if (selected("Zahlung","Bitte wählen Sie eine Zahlungsweise") == false) return false;
};
</script>


im <form>:

<form name="form1" method="post" action="javascript;" onSubmit="return validate()">

!!! Aufruf siehe toolkit/validator/testform.html !!!

*/

// tests definieren
var nichtleer = /.+/;
var email = /[\w\.]+@[\w-]+\.\w+/;
var telefon = /\(*\d+\)*[\s\/-]\d+/;
var number = /\d+/;

// testet, ob ein Textfeld einer regular expression genügt
function testfield(expression,item,msg){
	result = false;
	if (document.getElementsByName(item)[0]){
		fieldval=document.getElementsByName(item)[0].value;
		result=expression.test(fieldval);
		if (result == false && msg != '') {
			alert(msg);
			document.getElementsByName(item)[0].focus();
		};
	};
	return result;
};

// testet, ob eine Checkbox / Radiogroup ausgewählt ist
function checked(item, msg){
	result = false;
	if (document.getElementsByName(item)){
		for (var i=0; i < document.getElementsByName(item).length;i++){
			if (document.getElementsByName(item)[i].checked==true) result=true;
		};
		if (result == false && msg != '') {
			alert(msg);
		};
	};	
	return result;
};	

// testet, ob ein Dropdownfeld ausgewählt ist
function selected(item, msg){
	result = false;
	if (document.getElementsByName(item)[0]){
		for (var i=0; i < document.getElementsByName(item)[0].length;i++){
			if (document.getElementsByName(item)[0].options[i].selected==true && document.getElementsByName(item)[0].options[i].value.length!=0) result=true;
		};
		if (result == false && msg != '') {
			alert(msg);
			document.getElementsByName(item)[0].focus();
		};
	};	
	return result;
};	
