			function checkMailForm() {
	var ok = true;
	var lang = getLang();
	var error = '';
	theform = document.forms['mailform'];
	for(var i = 0; i < theform.length; i++) {
		var item = theform.elements[i];
		var itemname = item.name;
		var obligatorisch = false;
		var type = '';
		var field = '';
		var checkIt = true;
		var tmp = itemname.split("_");
		if(tmp.length == 3) {
			obligatorisch = (tmp[0].toLowerCase() == 'o') ? true : false;
			type = tmp[1].toLowerCase();
			field = tmp[2];
		} else {
			checkIt = false;
		}
		if (itemname == 'formsend' || item.type == 'submit' || ! checkIt) {
			continue;
		}
		// Checks für Felder
		if(obligatorisch && item.value.match(/^\s*$/)) {
			error += field + ": " + getErrorMsg('empty', lang) + "\n";
		} else if(! checkElem(item.value, type, lang)) {
			error += field + ": " + getErrorMsg(type, lang) + "\n";
		}
	} 
	if(error != '') {
		error = getErrorMsg('info', lang) + ":\n" + error;
		alert(error);
		ok = false;
	}
	return ok;
}
function checkElem(val, type, lang) {
	var ok = true;
	if(val == '') return ok;
	switch (type) {
		case "name":
			if (! val.match(/^[\w-\.&,ßüäöÖÄÜ]*$/i)) ok = false;
			break;
		case "number":
			if (isNaN(val)) ok = false;
			break;
		case "email":
			if (val.indexOf("@") == -1) ok = false;
			break;
		case "ganzzahl":
			if (isNaN(val)) ok = false;
			break;
		case "datum":
			if(lang == 'en') {
				if(! (checkDate(val) || checkDateEN(val))) ok = false;
			} else {
				if(! checkDate(val)) ok = false;
			}
			break;
	}
	return ok;
}
function getErrorMsg(type, lang) {
	var msg = '';
	if(lang == 'de') {
		switch(type) {
			case "empty": 
				msg = 'Feld darf nicht leer sein.';	
				break;
			case "info": 
				msg = 'Folgende Fehler sind aufgetreten';
				break;
			case "name": 
				msg = 'kein gültiger Name.';
				break;
			case "number": 
				msg = 'keine gültige Nummer.';
				break;
			case "email": 
				msg = 'keine gültige Emailadresse.';	
				break;
			case "ganzzahl":
				msg = 'keine Zahl.';
				break;
			case "datum":
				msg = 'kein gültiges Datum. Bitte in der Form: TT.MM.JJJJ angeben.';
				break;
			default: 
				msg = 'falscher Inhalt';						
				break;
		}
	} else {
		switch(type) {
			case "empty": 
				msg = 'Please enter a value.';
				break;
			case "info": 
				msg = 'Following errors occured';		
				break;
			case "name": 
				msg = 'not a valid name.';	
				break;
			case "number": 
				msg = 'not a number.';
				break;
			case "email": 
				msg = 'not a valid email address.';
				break;
			case "ganzzahl":
				msg = 'not a number.';
				break;
			case "datum":
				msg = 'not a valid date. required format: dd.mm.yyyy or yyyy-mm-dd';
				break;
			default: 
				msg = 'invalid value';
				break;
		}
	}
	return msg;						
}
function getLang() {
	lang = 'en';
	if(document.URL.match(/\/DE\//)) {
		lang = 'de';
	}
	return lang;
}
function checkDate(val) {
	var tmp = val.split('.');
	if(tmp.length != 3) return false;
	datum = new Date(tmp[2], tmp[1]-1, tmp[0]);
	var tag = datum.getDate();
	var monat = datum.getMonth();
	var jahr = datum.getFullYear();
	if(tag == tmp[0] && monat == (tmp[1]-1) && jahr == tmp[2]) return true; else return false;
}
function checkDateEN(val) {
	var tmp = val.split('-');
	if(tmp.length != 3) return false;
	datum = new Date(tmp[0], tmp[1]-1, tmp[2]);
	var tag = datum.getDate();
	var monat = datum.getMonth();
	var jahr = datum.getFullYear();
	if(tag == tmp[2] && monat == (tmp[1]-1) && jahr == tmp[0]) return true; else return false;
}		

