function check_form(form) {
	var result = true;
	var error_txt = "Bitte überprüfen Sie folgende Angaben:\n";
	
	var reg_telefon = /^[\d\(\)\/\s-]{4,17}$/;
	var reg_name = /^([a-zA-ZäöüßÄÖÜ_-]+[ ]?)+$/;
	var reg_plz = /^\d{5}$/;
	var reg_email = /([a-zA-Z0-9-._]+)(\@)([a-zA-Z0-9-.]+)(\.)([a-zA-Z]{2,4})/;
	var reg_strasse = /([a-zA-ZäöüßÄÖÜ_-]+([ ]?|[.]?))+[0-9]*[ ]?[a-zA-Z]*/;

	if(!reg_name.test(form.vorname.value)) {
		error_txt = error_txt.concat("- Vorname\n");
		result = false;
	}
	
	if(!reg_name.test(form.name.value)) {
		error_txt = error_txt.concat("- Name\n");
		result = false;
	}
	
	if( !(reg_strasse.test(form.strasse.value) || form.strasse.value == "") ) {
		error_txt = error_txt.concat("- Straße\n");
		result = false;
	}
	
	if(!reg_telefon.test(form.telefon.value)) {
		error_txt = error_txt.concat("- Telefonnummer\n");
		result = false;
	}
	
	if( !(reg_telefon.test(form.fax.value) || form.fax.value == "") ) {
		error_txt = error_txt.concat("- Faxnummer\n");
		result = false;
	}
	
	if(!reg_email.test(form.email.value)) {
		error_txt = error_txt.concat("- E-Mailadresse\n");
		result = false;
	}
	
	if(!reg_name.test(form.abflugsort.value)) {
		error_txt = error_txt.concat("- Abflugsort\n");
		result = false;
	}
		
	if(!reg_name.test(form.ankunftsort.value)) {
		error_txt = error_txt.concat("- Ankunftsort\n");
		result = false;
	}

	if(form.gabelflug.checked) {
		var rueckflugsort = document.getElementById("rueckflugsort").value;
		if (!reg_name.test(rueckflugsort)) {
			error_txt = error_txt.concat("- Rückflugsort\n");
			result = false;
		}
	}
	
	for (var i=1; i<=form.adult.selectedIndex+1; i++) {
		var adult = document.getElementById("adult"+i).value;
		if(adult.length < 8) {
			error_txt = error_txt.concat("- Reiseteilnehmer (Erwachsene)\n");
			result = false;
		}
	}
	
	for (var i=1; i<=form.child.selectedIndex; i++) {
		var child = document.getElementById("child"+i).value;
		if(child.length < 8) {
			error_txt = error_txt.concat("- Reiseteilnehmer (Kinder)\n");
			result = false;
		}
	}
	
	for (var i=1; i<=form.infant.selectedIndex; i++) {
		var infant = document.getElementById("infant"+i).value;
		if(infant.length < 8) {
			error_txt = error_txt.concat("- Reiseteilnehmer (Kleinkinder)\n");
			result = false;
		}
	}

	if (!result) {
		alert(error_txt);
		return false;
	}
	else return true;
}


function add_form_names(type) {
  /* Falls bereits Einträge vorhanden sind, Einträge löschen, Type ist entweder adult, child oder infant */
   while (document.getElementById(type+"_field").hasChildNodes()) {
      var node = document.getElementById(type+"_field").firstChild;
  	  document.getElementById(type+"_field").removeChild(node);
   }

   if (type == "adult") {var n = document.getElementsByName(type)[0].selectedIndex+1; } // Laufvariable der Inputs erzeugen
   if (type == "child") {var n =document.getElementsByName(type)[0].selectedIndex; }
   if (type == "infant") {var n =document.getElementsByName(type)[0].selectedIndex; }
  
   /* Funktion wurde zum ersten Mal aufgerufen oder Einträge bereits gelöscht => Eingabefelder und ggf. Textnachricht erzeugen */
  
   /* Textnachricht erstellen, der angezeigt wird */
   if(n >=1) {
  // var tr = document.createElement("tr");
  // var tdMessage1 = document.createElement("td");
  // var tdMessage2 = document.createElement("td");
  // tdMessage2.colSpan = 2;
   var div = document.createElement("div");
   var message = document.createElement("i"); // Knoten (italic-Schrift) erstellen für Textnachricht
      if (type == "adult") var string_msg = document.createTextNode("Bitte geben Sie die Namen der Reiseteilnehmer ein:");
      else var string_msg = document.createTextNode("Bitte geben Sie die Namen der Reiseteilnehmer mit Geburtsdaten ein:"); // Nachricht erstellen
   message.appendChild(string_msg); // Textnachricht an den den Nachrichtenknoten hinzufügen
  // tdMessage2.appendChild(message);
   div.appendChild(message);
 //  tr.appendChild(tdMessage1);
 // tr.appendChild(tdMessage2);
   document.getElementById(type+"_field").appendChild(div); // Nachricht dem Feld hinzufügen
   

   /* Zeilen für die Inputs erzeugen */
     for (var i = 1; i <= n;i++) {
		var divField = document.createElement("div");
		var zaehler = document.createTextNode(i+". ");
		var input = document.createElement("input");
     	input.setAttribute("type","text");
        input.setAttribute("name",type+i);
		input.setAttribute("id",type+i);
	    input.setAttribute("size",31);
		
		divField.appendChild(zaehler);
        divField.appendChild(input);
		
        document.getElementById(type+"_field").appendChild(divField);
      } 
   }
}


function open_window(url) {
fenster = window.open(url, "Fenster", "width=500,height=300,location=0,scrollbars=yes,statusbar=no");
fenster.focus();
}


/* globale Variablen für Hin- und Rueckflug */
var datum_parent;
var datum;
var datum_sibling;

function check_flug() {
   
   if (!(document.getElementById("hin_rueckflug").checked)) {
      datum_parent = document.getElementsByName("tag_ankunft")[0].parentNode.parentNode.parentNode;
      datum = document.getElementsByName("tag_ankunft")[0].parentNode.parentNode;
	  datum_sibling = datum.nextSibling;
      datum_parent.removeChild(datum);
   }
   else {
   datum_parent.insertBefore(datum, datum_sibling);
   }
 
}


function check_gabelflug() {
	var tr_rueckflug_child;
	if(document.getElementById("rueckflugsort") != null) tr_rueckflug_child = document.getElementById("rueckflugsort").parentNode.parentNode; // TR Knoten von Rueckflug-Input

   /* Wenn die Checkbox angeklickt wurde, erzeuge Rückflugsortsfeld und setze Hin- und Rückflug auf true & disbaled */
   if (document.getElementById("gabelflug").checked) {
	  if(document.getElementById("rueckflugsort") != null) {
		 tr_rueckflug_child.parentNode.removeChild(tr_rueckflug_child);	// Tr-Knoten ist bereits vorhanden (durch PHP bereits erstellt), nun löschen
	  }
      var tr = document.createElement("tr");
	  var td1 = document.createElement("td");
	  var td2 = document.createElement("td");
	  var text = document.createTextNode("Rückflugsort *");
	  var input = document.createElement("input");
	  input.setAttribute("type","text");
      input.setAttribute("name","rueckflugsort");
	  input.setAttribute("id","rueckflugsort");
	  input.setAttribute("size",15);
	  td1.appendChild(text);
	  td2.appendChild(input);
	  tr.appendChild(td1);
	  tr.appendChild(td2);
	  if (datum_sibling == null) datum_sibling = document.getElementsByName("tag_ankunft")[0].parentNode.parentNode.nextSibling;
	  if (datum_parent == null) datum_parent = document.getElementsByName("tag_ankunft")[0].parentNode.parentNode.parentNode;
	  if (datum == null) datum = document.getElementsByName("tag_ankunft")[0].parentNode.parentNode;
	  datum_parent.insertBefore(datum, datum_sibling); // Falls Rückflugsdatum davor bereits gelöscht wurde, wieder hinzufügen
	  datum_parent.insertBefore(tr, datum_sibling);
	  document.getElementById("hin_rueckflug").checked = true; // Hin- und Rückflug auf checked setzen
	  document.getElementById("hin_rueckflug").disabled = true; // Hin- und Rückflug auf disabled setzen
   }
   /* Wenn Checkbox nicht gesetzt wurde, dann Rückflug input entfernen und Hin- und Rückflug auf enabled setzen */
   else {
	  document.getElementById("hin_rueckflug").disabled = false;
	  tr_rueckflug_child.parentNode.removeChild(tr_rueckflug_child);	// Tr-Knoten ist vorhanden, nun löschen

   }
}