function checkContact(){
	foundError = true;
	firstWrong = 0;
	text = "Leider sind Ihre Eingaben nicht vollständig.\nBitte tragen Sie noch folgende Daten ein: ";
	ungueltig = "Folgende Angaben sind ungültig: ";
	ungueltigtxt = ungueltig;
	//Make sure the Surname field is not blank
	if(document.contactSend.Surname.value==""){
		if(foundError == false){
			text = text +",";
		}
		text = text + " den Vornamen";
		foundError = false;
		if(firstWrong == 0)
			firstWrong = 'FN';
	}
	//Make sure the Lastname field is not blank
	if(document.contactSend.Lastname.value==""){
		if(foundError == false){
			text = text +",";
		}
		text = text + " den Nachnamen";
		foundError = false;
		if(firstWrong == 0)
			firstWrong = 'LN';
	}

	//Make sure the Email field is not blank and ok
	email = document.contactSend.Email.value.toLowerCase();
	emailok = true;
	var checkTLD = 1;
	var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=email.match(emailPat);
	if(matchArray!=null){
		if(email.indexOf("www.") == 0){
			emailok = false;
			ungueltig = ungueltig + " E-Mail-Adresse";
			if(firstWrong==0)
				firstWrong='EMAIL';
		}
		if(matchArray==null){
			emailok = false;
			ungueltig = ungueltig + " E-Mail-Adresse";
			if(firstWrong==0)
				firstWrong='EMAIL';
		}
		var user = matchArray[1];
		var domain = matchArray[2];
		for(i=0; i < user.length; i++){
			if(user.charCodeAt(i)>127){
				emailok = false;
				ungueltig = ungueltig + " E-Mail-Adresse";
				if(firstWrong==0)
					firstWrong='EMAIL';
			}
		}
		for(i = 0; i < domain.length; i++){
			if(domain.charCodeAt(i) > 127){
				emailok = false;
				ungueltig = ungueltig + " E-Mail-Adresse";
				if(firstWrong == 0)
					firstWrong = 'EMAIL';
			}
		}
		if(user.match(userPat) == null){
			emailok = false;
			ungueltig = ungueltig + " E-Mail-Adresse";
			if(firstWrong == 0)
				firstWrong = 'EMAIL';
		}
		var IPArray = domain.match(ipDomainPat);
		if(IPArray != null){
			for(var i = 1;i <= 4;i++){
				if(IPArray[i] > 255){
					emailok = false;
					ungueltig = ungueltig + " E-Mail-Adresse";
					if(firstWrong == 0)
						firstWrong = 'EMAIL';
				}
			}
			return true;
		}
		var atomPat = new RegExp("^" + atom + "$");
		var domArr = domain.split(".");
		var len = domArr.length;
		for(i = 0;i < len;i++){
			if(domArr[i].search(atomPat) == -1){
				emailok = false;
				ungueltig = ungueltig + " E-Mail-Adresse";
				if(firstWrong == 0)
					firstWrong = 'EMAIL';
			}
		}
		if(checkTLD && domArr[domArr.length-1].length != 2 && domArr[domArr.length-1].search(knownDomsPat) == -1){
			emailok = false;
			ungueltig = ungueltig + " E-Mail-Adresse";
			if(firstWrong == 0)
				firstWrong = 'EMAIL';
		}
	}else{
		emailok = false;
		ungueltig = ungueltig + " E-Mail-Adresse,";
		if(firstWrong == 0)
			firstWrong = 'EMAIL';
	}
	//Make sure the contactSubject field is not blank
	if(document.contactSend.contactSubject.value==""){
		if(foundError == false){
			text = text +",";
		}
		text = text + " den Betreff";
		foundError = false;
		if(firstWrong == 0)
			firstWrong = 'BE';
	}
	//Make sure the contactComment field is not blank
	if(document.contactSend.contactComment.value==""){
		if(foundError == false){
			text = text +",";
		}
		text = text + " Ihre Nachricht";
		foundError = false;
		if(firstWrong == 0)
			firstWrong = 'RT';
	}
	if(foundError == false || ungueltig != ungueltigtxt){
		if(text == "Leider sind Ihre Eingaben nicht vollständig.\nBitte tragen Sie noch folgende Daten ein: ")
			text = "";
		else
			text = text + ".\n\n";
		if(ungueltig != ungueltigtxt)
			alert(text + ungueltig);
		else
			alert(text);
		switch(firstWrong){
			case "EMAIL": document.contactSend.Email.value=''; document.contactSend.Email.focus(); break;
			case "BE": document.contactSend.contactSubject.value=''; document.contactSend.contactSubject.focus(); break;
			case "RT": document.contactSend.contactComment.value=''; document.contactSend.contactComment.focus(); break;
			case "FN": document.contactSend.Surname.value=''; document.contactSend.Surname.focus(); break;
			case "LN": document.contactSend.Lastname.value=''; document.contactSend.Lastname.focus(); break;
			default: break;
		}
	}
	firstWrong = 0;
	if(ungueltig != ungueltigtxt)
		foundError = false;
	return (foundError);
}
