function check_form(form){
	var output = document.getElementById("form_output");
	
	var output_html = "";
	
	var flag_ok = true;
	
	for(i = 0; i < form.length; i++){
		var value = form[i].value;
		var name = form[i].name;
	
		switch(name){
			case "spam_feld":
				output_html += "- <b>Sicherheitscheck: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(value != '500'){
					output_html += "<span class='red'>Lösung ist nicht korrekt!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "name":
			case "name2":
				output_html += "- <b>Name: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "vorname":
			case "vorname2":
				output_html += "- <b>Vorname: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "title":
				output_html += "- <b>Titel: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "adresse":
			case "adresse2":
				output_html += "- <b>Adresse: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "plz_ort":
			case "plz_ort2":
				output_html += "- <b>PLZ / Ort: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "land":
			case "land2":
				output_html += "- <b>Land: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "heimatort":
			case "heimatort2":
				output_html += "- <b>Heimatort: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "steuerdomizil":
				output_html += "- <b>Steuerdomizil: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "titel":
				output_html += "- <b>Titel: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "reihenfolge":
				output_html += "- <b>Reihenfolge: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_number(value)){
					output_html += "<span class='red'>Muss eine Zahl sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "beschreibung":
				output_html += "- <b>Beschreibung: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "funktion":
				output_html += "- <b>Funktion: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "telefon":
				output_html += "- <b>Telefon: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_number(value)){
					output_html += "<span class='red'>Muss eine Nummer sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "mail":
				output_html += "- <b>Mail: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_mail(value)){
					output_html += "<span class='red'>Muss eine Mail-Adresse sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "mail_no_must":
				output_html += "- <b>Mail: </b>";
				if(value == ""){
					output_html += "<span class='green'>OK!</span><br />";
					flag_ok = true;
				}else if(!is_mail(value)){
					output_html += "<span class='red'>Muss eine Mail-Adresse sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "text":
				output_html += "- <b>Text: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "anfrage":
				output_html += "- <b>Anfrage: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "lage":
				output_html += "- <b>Lage: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "zimmer":
				output_html += "- <b>Zimmer: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_number(value)){
					output_html += "<span class='red'>Muss eine Zahl sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "flaeche":
				output_html += "- <b>Fläche: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_number(value)){
					output_html += "<span class='red'>Muss eine Zahl sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "preis":
				output_html += "- <b>Preis: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_number(value)){
					output_html += "<span class='red'>Muss eine Zahl sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "verfuegbar":
				output_html += "- <b>Verf¸gbar ab: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_date(value)){
					output_html += "<span class='red'>Muss ein Datum sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "geburtsdatum":
			case "geburtsdatum2":
				output_html += "- <b>Geburtsdatum: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_date(value)){
					output_html += "<span class='red'>Muss ein Datum sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "date":
				output_html += "- <b>Datum: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_date(value)){
					output_html += "<span class='red'>Muss ein Datum sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "link":
				output_html += "- <b>Link: </b>";
				if(value == ""){
					output_html += "<span class='red'>Muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else if(!is_url(value)){
					output_html += "<span class='red'>Muss eine URL sein!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "bild":
				output_html += "- <b>Bild: </b>";
				if(form[i+1].value == ""){
					if(value == ""){
						output_html += "<span class='red'>Muss ausgewählt werden!</span><br />";
						flag_ok = false;
					}else if(!is_image(value)){
						output_html += "<span class='red'>Die ausgewählte Datei ist kein Bild!</span><br />";
						flag_ok = false;
					}else{
						output_html += "<span class='green'>OK!</span><br />";
					}
				}else{
					if(value != "" && !is_image(value)){
						output_html += "<span class='red'>Die ausgewählte Datei ist kein Bild!</span><br />";
						flag_ok = false;
					}else{
						output_html += "<span class='green'>OK!</span><br />";
					}
				}
				break;
			case "bild1":
				output_html += "- <b>Bild 1: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='orange'>Kein Bild ausgewählt!</span><br />";
				}else if(value != "" && !is_image(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Bild!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "bild2":
				output_html += "- <b>Bild 2: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='orange'>Kein Bild ausgewählt!</span><br />";
				}else if(value != "" && !is_image(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Bild!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "bild3":
				output_html += "- <b>Bild 3: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='orange'>Kein Bild ausgewählt!</span><br />";
				}else if(value != "" && !is_image(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Bild!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "bild4":
				output_html += "- <b>Bild 4: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='orange'>Kein Bild ausgewählt!</span><br />";
				}else if(value != "" && !is_image(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Bild!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "bild5":
				output_html += "- <b>Bild 5: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='orange'>Kein Bild ausgewählt!</span><br />";
				}else if(value != "" && !is_image(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Bild!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "bild6":
				output_html += "- <b>Bild 6: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='orange'>Kein Bild ausgewählt!</span><br />";
				}else if(value != "" && !is_image(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Bild!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "doc":
				output_html += "- <b>Dokument: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='red'>Kein Dokument ausgewählt!</span><br />";
					flag_ok = false;
				}else if(value != "" && !is_doc(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Dokument!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "doc1":
				output_html += "- <b>Dokument 1: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='orange'>Kein Dokument ausgewählt!</span><br />";
				}else if(value != "" && !is_doc(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Dokument!</span><br />";
					flag_ok = false;
				}else if(form[i+2].value == ""){
					output_html += "<span class='red'>Der Dateiname muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "doc2":
				output_html += "- <b>Dokument 2: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='orange'>Kein Dokument ausgewählt!</span><br />";
				}else if(value != "" && !is_doc(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Dokument!</span><br />";
					flag_ok = false;
				}else if(form[i+2].value == ""){
					output_html += "<span class='red'>Der Dateiname muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "doc3":
				output_html += "- <b>Dokument 3: </b>";
				if(value == "" && form[i+1].value == ""){
					output_html += "<span class='orange'>Kein Dokument ausgewählt!</span><br />";
				}else if(value != "" && !is_doc(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein Dokument!</span><br />";
					flag_ok = false;
				}else if(form[i+2].value == ""){
					output_html += "<span class='red'>Der Dateiname muss eingegeben werden!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "betreibung_pdf":
				output_html += "- <b>Betreibungsauskunft: </b>";
				if(value == ""){
					output_html += "<span class='orange'>Kein Dokument ausgewählt!</span><br />";
				}else if(value != "" && !is_doc1(value)){
					output_html += "<span class='red'>Die ausgewählte Datei ist kein PDF!</span><br />";
					flag_ok = false;
				}else{
					output_html += "<span class='green'>OK!</span><br />";
				}
				break;
			case "versteckt":
//				alert(form[i].checked);
				if(form[i].checked == false && !flag_ok){
					flag_ok = false;
				}else{
					flag_ok = true;
				}
				break;
		}
		
		// submitbutton
		if(form[i].type == "submit"){
			if(flag_ok){
				form[i].style.borderColor = "green";
				form[i].style.display = "inline";
				form[i].disabled = false;
				form[i].onsubmit = "";
				form.action = ""; 
				output_html = "<div class='titel'>Alle Eingaben sind korrekt!</div>"+output_html;
			}else{
				form[i].style.borderColor = "red";
				form[i].style.display = "none";
				form[i].disabled = true;
				form.action = "error.html"; // todo
				output_html = "<div class='titel'>Sie können das Formular noch nicht abschicken:</div>"+output_html;
			}	
		}
		
	}
	
	output.innerHTML = output_html;
}

function is_number(s){
	var result = false;

	if(s.match(/^[0-9,.\ ]+$/)){
		result = true;
	}
	
	return result;
}

/*mail funktion (http://www.drweb.de/javascript/email_check.shtml)*/
function is_mail(s) {
	var a = false;
	var res = false;
	
	if(typeof(RegExp) == 'function') {
		var b = new RegExp('abc');
 		if(b.test('abc') == true) {
 			a = true;
 		}
 	}

	if(a == true){
		reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
							'(\\@)([a-zA-Z0-9\\-\\.]+)'+
							'(\\.)([a-zA-Z]{2,4})$');
 		res = (reg.test(s));
	}else {
  		res = (s.search('@') >= 1 && s.lastIndexOf('.') > s.search('@') && s.lastIndexOf('.') >= s.length-5)
  	}
	
	return res ;
}

function is_image(s){
	var result = false;
	
	if(s.match(/.jpg$/) || s.match(/.jpeg$/) || s.match(/.JPG$/) || s.match(/.png$/) || s.match(/.PNG$/) || s.match(/.gif$/) || s.match(/.GIF$/)){
		result = true;
	}
	
	return result;
}

function is_date(datum){
    //(Schritt 1) Fehlerbehandlung
	datum = datum.toString();

    //(Schritt 2) Aufspaltung des Datums
	datum = datum.split(".");
	if (datum.length != 3) return false;

    //(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats
	datum[0]=parseInt(datum[0],10);
	datum[1]=parseInt(datum[1],10)-1;

    //(Schritt 4) Behandlung Jahr nur zweistellig
//	if (datum[2].length == 2) datum[2] = "20" + datum[2];
	if (datum[2].length != 4) return false;

    //(Schritt 5) Erzeugung eines neuen Dateobjektes
	var kontrolldatum = new Date(datum[2], datum[1], datum[0]);

    //(Schritt 6) Vergleich, ob das eingegebene Datum gleich dem JS-Datum ist
	if (kontrolldatum.getDate() == datum[0] && kontrolldatum.getMonth() == datum[1] && kontrolldatum.getFullYear() == datum[2])
     return true; else return false;
}

function is_doc(s){
	var result = false;
	
	if(s.match(/.pdf$/) || s.match(/.PDF$/) || s.match(/.doc$/) || s.match(/.xls$/)){
		result = true;
	}
	
	return result;
}

function is_doc1(s){
	var result = false;
	
	if(s.match(/.pdf$/) || s.match(/.PDF$/) || s.match(/.jpg$/) || s.match(/.JPG$/) || s.match(/.jpeg$/) || s.match(/.jpeg$/)){
		result = true;
	}
	
	return result;
}

function is_url(s){
	var result = false;
	
	if(s.match(/^http:/)){
		result = true;
	}
	
	return result;
}

