
// Überprüfung von Formulardaten
function teste(Routine,Handle) {
	
	bool = '';
	end = 0;
	
	// Dynamische Routinen
	if(Handle.value == '') {
		bool = -1;
		end = 1
	}
	
	// dynamische Routinen
	muster = /^([a-z]+)\|(.+)$/;
	Ergebnis = Routine.match(muster);
	if(end == 0 && Ergebnis) {
		switch(Ergebnis[1]) {
			// Maximale Anzahl von Zeichen
			case 'max' :
				if(Handle.value.length > Ergebnis[2]) {
					Handle.value = Handle.value.substr(0,Ergebnis[2]);				
				}
				break;
			case 'min' :
				if(Handle.value.length < Ergebnis[2]) {
					bool = -1;
				}
				break;
		
		
		
		}	
	}
	
	// Statische Routinen
	if(end == 0) {
		switch(Routine) {
			// Alphanumerische Zeichen zulassem
			case 'alphanum' :
				pattern = /^.*$/;
				bool = Handle.value.search(pattern);
				break;
			// Nur Zahlen durchlassen (Form: 123,23 || 156 || 159.1, aber nicht 153,)
			case 'int' :
				pattern = /^[0-9]*((,|\.)[0-9]+)?$/;
				bool = Handle.value.search(pattern);
				break;
			// Überprüft, ob Checkboxen markiert sind
			case 'checked' :
				if(Handle.checked == false) {
					bool = -1;
				}
				break;
			// Überprüft, ob eine gültige EMail-Adresse eingegeben wurde
			case 'email' :
				pattern = /^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$/;
				bool = Handle.value.search(pattern);
				break;
         case 'date' :
            pattern = /^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$/;
            bool = Handle.value.search(pattern);
            break;
         case 'time' :
            pattern = /^([0-9]{2}):([0-9]{2})$/;
            bool = Handle.value.search(pattern);  
            break;
		}
	}
	
	if(bool == -1) {
		setzeFarben(false,Handle);
		return true;
	}
	
	setzeFarben(true,Handle);
	return true;
}


// Setzen von Felddaten
function setzeWert(Handle,Wert,Routine) {
	Handle.value = Wert;
	if(Routine != '') {
		teste(Routine,Handle);
	}
}

// Setzen von Bilddaten und Forularfarben
function setzeFarben(Bool,Handle) {
	// auf i.O. setzen
	document.forms[formular].elements["Int[Erfolg]"].value = document.forms[formular].elements["Int[Erfolg]"].value + String(Bool);
	
	if(Bool == true && Handle.style.backgroundColor != '#ffffff') {
		Handle.style.backgroundColor = '#ffffff';
		document.images[Handle.name].src = bild_valid;
	}
	// Fehler ausgeben
	else if(Bool == false && Handle.style.backgroundColor != '#ff6666') {
		Handle.style.backgroundColor = '#ff6666';
		document.images[Handle.name].src = bild_invalid;	
	}
	return true;
}

// Vor dem verschicken alle Daten noch einmal checken
function chk(handle) {
	handle.elements["Int[Erfolg]"].value = '';
	for(a=0;a<handle.elements.length;a++) {
		if(handle.elements[a].type != 'hidden' && handle.elements[a].disabled != true) {
			handle.elements[a].focus();
		}
	}
}

// Versende das Formular
function abschicken(handle) {
	
	if(navigator.appName == "Microsoft Internet Explorer") {
		alert("Ihre Eingaben werden geprüft...");
	}

	if(handle.elements["Int[Erfolg]"].value.search(/false/) != -1) {
		alert("Bei der Überprüfung Ihrer Daten wurden Fehler entdeckt und diese rot unterlegt.\nBitte korrigieren Sie diese und wiederholen Sie den Vorgang.\n");
		return false;
	}
	
	handle.elements["Int[Sende]"].value = 'Daten werden übertragen...';
	handle.elements["Int[Sende]"].disabled = 'disabled';	
	return true;
}
