function formularchecker() {
 document.buchung.senden.value = "Moment bitte!";
 document.buchung.senden.disabled = true;
 

 if(document.buchung.f_vol.checked == false) {
   alert("Bitte akzeptieren Sie die Zivildienstvereinbarung!");
   document.buchung.f_vol.focus();
   
   subaktivi();
   return false;
 }
   if(document.buchung.f_an.value == "") {
   alert("Bitte wählen Sie den gewünschten Tätigkeitszeitraum!");
   document.buchung.f_an.focus();
   
   subaktivi();
   return false;
  }
  else if(!isDate(document.buchung.f_an.value)){
		alert("Bitte wählen Sie den gültigen Tätigkeitszeitraum!");
		document.buchung.f_an.focus();
   
	   subaktivi();
	   return false;
  } 
  if(document.buchung.f_ab.value == "") {
   alert("Bitte wählen Sie den gewünschten Tätigkeitszeitraum!");
   document.buchung.f_ab.focus();
   
   subaktivi();
   return false;
  }
  else if(!isDate(document.buchung.f_ab.value)){
		alert("Bitte wählen Sie den gültigen Tätigkeitszeitraum!");
		document.buchung.f_ab.focus();
   
	   subaktivi();
	   return false;
  } 
 else if(document.buchung.f_vn.value == "")  {
   alert("Bitte einen Vornamen eingeben!");
   document.buchung.f_vn.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_nn.value == "")  {
   alert("Bitte einen Nachnamen eingeben!");
   document.buchung.f_nn.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_ort.value == "") {
   alert("Bitte einen Geburtsort eingeben!");
   document.buchung.f_ort.focus();
   
   subaktivi();
   return false;
  }
  if(document.buchung.f_geb.value == "") {
   alert("Bitte eine Geburtsdatum eingeben!");
   document.buchung.f_geb.focus();
   
   subaktivi();
   return false;
  }
  else if(!isDate(document.buchung.f_geb.value)){
		alert("Bitte eine gültiges Geburtsdatum eingeben!");
		document.buchung.f_geb.focus();
   
	   subaktivi();
	   return false;
  }
  else if(document.buchung.f_pers.value == "") {
   alert("Bitte eine Nationalität eingeben!");
   document.buchung.f_pers.focus();
   
   subaktivi();
   return false;
  }
  if(document.buchung.f_adr.value == "") {
   alert("Bitte eine Strasse eingeben!");
   document.buchung.f_adr.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_plz.value == "") {
   alert("Bitte eine PLZ und einen Ort eingeben!");
   document.buchung.f_plz.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_tel.value == "") {
   alert("Bitte eine Telefonnummer eingeben!");
   document.buchung.f_tel.focus();
   
   subaktivi();
   return false;
  }
 else if(document.buchung.f_email.value == "") {
   alert("Bitte eine E-Mail Adresse eingeben!");
   document.buchung.f_email.focus();
   
   subaktivi();
   return false;
  }
  else{
    var email = document.buchung.f_email.value
	var datePat = /^[A-z0-9][\w.-]*@[A-z0-9-\.]+\.[A-z0-9]{2,6}$/;
	if(email.search(datePat)){
	   alert("Bitte eine gültige E-Mail Adresse eingeben!");
	   document.buchung.f_email.focus();
	   
	   subaktivi();
	   return false;
	}
  }
  if(document.buchung.f_pass.value == "") {
   alert("Bitte eine gültige Reisepaßnummer eingeben!");
   document.buchung.f_pass.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_passland.value == "") {
   alert("Bitte ein Paßland eingeben!");
   document.buchung.f_passland.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_passort.value == "") {
   alert("Bitte einen Ausstellungsort Ihres Reisepasses eingeben!");
   document.buchung.f_passort.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_passdatum.value == "") {
   alert("Bitte ein Ausstellungsdatum Ihres Reisepasses eingeben!");
   document.buchung.f_passdatum.focus();
   
   subaktivi();
   return false;
  }
  else if(!isDate(document.buchung.f_passdatum.value)){
		alert("Bitte ein gültiges Ausstellungsdatum Ihres Reisepasses eingeben!");
		document.buchung.f_passdatum.focus();
   
	   subaktivi();
	   return false;
  } 
  else if(document.buchung.f_passgultig.value == "") {
   alert("Bitte das Gültigkeitsdatum Ihres Reisepasses eingeben!");
   document.buchung.f_passgultig.focus();
   
   subaktivi();
   return false;
  }
  else if(!isDate(document.buchung.f_passgultig.value)){
		alert("Bitte das Gültigkeitsdatum Ihres Reisepasses eingeben!");
		document.buchung.f_passgultig.focus();
   
	   subaktivi();
	   return false;
  }
  else if(document.buchung.f_beruf.value == "") {
   alert("Bitte einen Beruf eingeben!");
   document.buchung.f_beruf.focus();
   
   subaktivi();
   return false;
  }
}

function subaktivi(){
   document.buchung.senden.value = "Absenden!";
   document.buchung.senden.disabled = false;
}
//******************************************************************
// This function accepts a string variable and verifies if it is a
// proper date or not. It validates format matching either
// mm-dd-yyyy or mm/dd/yyyy. Then it checks to make sure the month
// has the proper number of days, based on which month it is.

// The function returns true if a valid date, false if not.
// ******************************************************************
function isDate(dateStr) {
		
	var datePat = /^(\d{1,2})(\/|-|\.)(\d{1,2})(\/|-|\.)(\d{4})$/;
	var dat = dateStr;
	var matchArray = dat.match(datePat);
	

	if (matchArray == null) {
		return false;
	}

	day = matchArray[1]; // p@rse date into variables
	month  = matchArray[3];
	year = matchArray[5];

	if (month < 1 || month > 12) { // check month range
		return false;
	}

	if (day < 1 || day > 31) {
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		return false;
	}

	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
			return false;
		}
	}
	return true; // date is valid
}
