
function reset(theForm) {

	form = getForm(theForm);
	form.reset();

	for (i=0; i< form.elements.length; i++ ) {
		theName = form.elements[i].name;
		if (theName.substr(1,1) == "V") {
		resetField(theName);		
		}			
	}	
}

function submitForm(theForm) {

	form = getForm(theForm);

	lastName = "";
	found = false;
	radiofields = new Array();
	for (i=0; i< form.elements.length; i++ ) {

		theName = form.elements[i].name;
		type = form.elements[i].type;
		value = form.elements[i].value;
		if (theName.substr(1,1) == "V") {
			if (type == "radio") {
				if(theName != lastName){
					resetField(theName);
					radio = form.elements[i];
					count = eval('form.'+theName+'.length');
					checked = false;
					for (k=0; k<count; k++){
						if (eval('form.'+theName+'['+k+'].checked==true')){
							checked = true;
							break;
						}
					}
					if (checked == false) {
						showField(theName);					
						found = true;
					}
				}
				lastName = theName;
				continue;
			} else if (type == "select-one") {
				resetField(theName);					
				elementvalue = form.elements[i].options[form.elements[i].selectedIndex].value;
				elementvalue = elementvalue.toUpperCase();
				if (elementvalue == "X"){
					showField(theName);			
					found = true;
				}		
				lastName = theName;
				continue;
			} else {
				lastName = theName;
			}


			switch (theName.substr(2,1)) {
				case "S":	//String
					resetField(theName);
					if (value.length == 0) {
						showField(theName);			
						found = true;
					}				
					break;
				case "M":	//Memo
					resetField(theName);
					if (value.length == 0) {
						showField(theName);			
						found = true;
					}				
					break;
				case "N":	//Numerisch
					resetField(theName);
					if (value.length == 0) {
						showField(theName);			
						found = true;
					}				
					break;
				case "I": 	//Image
					resetField(theName);
					extension=value.slice(value.length - 3, value.length);
					extension=extension.toLowerCase();
					if (value.length == 0) {
						showField(theName);			
						found = true;
					} else if (extension != "jpg" && extension != "bmp"){
						showField(theName);			
			   	    	alert( "Nur Bilder im Format JPEG oder BMP möglich!" );
						found = true;
				  	}
					break;
				case "D":	//Datum
					resetField(theName);
	 				valid = /^\d{1,2}\.\d{1,2}\.\d{2,4}$/;
					if (value.length == 0 || value.search(valid) == -1) {
						showField(theName);			
						found = true;
					}
					break;						
				case "E":	// E-Mail 
					resetField(theName);
					var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
					var check=/@[\w\-]+\./;
					var checkend=/\.[a-zA-Z]{2,3}$/;
					if (value.length == 0 || value.search(exclude) != -1 || value.search(check) == -1 || value.search(checkend) == -1) {
						showField(theName);			
						found = true;
					}
					break;						
				case "U":	// UsertheName
					resetField(theName);
	 				valid = /^[a-zA-Z0-9]+$/;
					if (value.length == 0 || value.search(valid) == -1) {
						showField(theName);			
						found = true;
						}
					break;
				case "P":	// Passwort
					resetField(theName);
	 				valid = /^[a-zA-Z0-9]+$/;
					if (value.length == 0 || value.search(valid) == -1) {
						showField(theName);			
						found = true;
					}
					break;				
			}
		} else {
			if (theName.substr(1,1) == "I" && value.length > 0) {
				extension=value.slice(value.length - 3, value.length);
				extension=extension.toLowerCase();
				if (extension != "jpg" && extension != "bmp"){
				   	alert( "Nur Bilder im Format JPEG oder BMP möglich!" );
					found = true;
				}

			}
		}
	}


	if (found == false) {
		form.submit();
	}

}


function getForm(formIndex) {

	switch (typeof(formIndex)) {
		case "undefined":
			formIndex = 0
			return eval("document.forms["+formIndex+"]");
			break;		
		case "number":
			return eval("document.forms["+formIndex+"]");
			break;
		case "string":
			return eval("document."+formIndex);		
			break;
		case "object":
			return formIndex;		
			break;
	}
	
}


function showField(theName) {
	pos = theName.indexOf("_",1);
	shortName= theName.substr(pos+1, theName.length - pos);
	if (typeof(eval('document.'+theName)) == "object") {
		eval('document.' + theName + '.src="../images/field_error.gif"');	
	} else if (typeof(eval('document.'+shortName)) == "object") {
		eval('document.' + shortName+ '.src="../images/field_error.gif"');	
	}
}

function resetField(theName) {
	pos = theName.indexOf("_",1);
	shortName= theName.substr(pos+1, theName.length - pos);
	if (typeof(eval('document.'+theName)) == "object") {
		eval('document.' + theName + '.src="../images/spacer.gif"');	
	} else if (typeof(eval('document.'+shortName)) == "object") {
		eval('document.' + shortName+ '.src="../images/spacer.gif"');	
	}
}

