var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
var regex_mail = new RegExp("^"+usr+"\@"+domain+"$");
var regex_name = /^[^<>]{1,39}$/;
var regex_subject = /^[^<>]{5,60}$/;
var regex_letter = /^[^<>]{10,}$/;

var fchk = new Array();
fchk[0] = new Array('subject',1,regex_subject);
fchk[1] = new Array('letter',1,regex_letter);
fchk[2] = new Array('firstname',1,regex_name);
fchk[3] = new Array('surname',1,regex_name);
fchk[4] = new Array('town',0,regex_name);
fchk[5] = new Array('email',1,regex_mail);
fchk[6] = new Array('recaptcha_response_field',1,regex_name);

function validate (sender,myarray) {

	var error = false;
	var err_msg = new Array(err_intro+"\r\n");

	for (i=0; i<myarray.length; i++) {

		field = document.forms[sender.name].elements[myarray[i][0]];

		if (!field.value) { // check if needed fields are empty
			if (myarray[i][1] == 1) {
				error = true;
				var superempty = empty.replace("XXX", nam[i]);
				err_msg.push(superempty);
        // err_msg.push(nam[i]+empty);
			}
		} else {
			var regexp = myarray[i][2];
			if (!regexp.test(field.value)) { // überprüft Wert anhand der regulären Audrücke auf bestimmte Muster
				error = true;
				var superinvalid = invalid.replace("XXX", nam[i]);
				if (i==5 && wrongemail!="normal") err_msg.push(wrongemail); else err_msg.push(superinvalid);
       // err_msg.push(nam[i]+': "'+field.value+'" '+invalid);
			}
		}
	}
	// im Fehlerfall werden hier die gesammelten Fehlermeldungen verarbeitet und angezeigt. Wenn das Formular ohne Beanstandung ist, wird es übertragen
	if (error) {
		feedback = err_msg.join("\r\n");
		alert(feedback);
		return false;
	} else {
		return true;
	}
}

