function formularchecker() {
 document.buchung.senden.value = "Moment please!";
 document.buchung.senden.disabled = true;
 

 if(document.buchung.f_preis.checked == false) {
   alert("Please agree  the price list!");
   document.buchung.f_preis.focus();
   
   subaktivi();
   return false;
 }
 else if(document.buchung.f_vn.value == "")  {
   alert("Please enter your first name!");
   document.buchung.f_vn.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_nn.value == "")  {
   alert("Please enter your family name!");
   document.buchung.f_nn.focus();
   
   subaktivi();
   return false;
  }
 else if(document.buchung.f_adr.value == "") {
   alert("Please enter your Address (road/door)!");
   document.buchung.f_adr.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_plz.value == "") {
   alert("Please enter your Postcode, place of residence!");
   document.buchung.f_plz.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_tel.value == "") {
   alert("Please enter your Telephone!");
   document.buchung.f_tel.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_email.value == "") {
   alert("Please enter your E-mail address!");
   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("Please enter a valid E-mail address!");
	   document.buchung.f_email.focus();
	   
	   subaktivi();
	   return false;
	}
  }
   if(document.buchung.f_an.value == "") {
   alert("Please enter your Date of arrival!");
   document.buchung.f_an.focus();
   
   subaktivi();
   return false;
  }
  else if(!isDate(document.buchung.f_an.value)){
		alert("Please enter a valid Date of departure!");
		document.buchung.f_an.focus();
   
	   subaktivi();
	   return false;
  }
  else if(document.buchung.f_ab.value == "") {
   alert("Please enter your Date of departure!");
   document.buchung.f_ab.focus();
   
   subaktivi();
   return false;
  }
 else if(!isDate(document.buchung.f_ab.value)){
		alert("Please enter a valid Date of departure!");
		document.buchung.f_ab.focus();
   
	   subaktivi();
	   return false;
  }
  else if(document.buchung.f_pers.value == "") {
   alert("Please enter the nationality of your persons!");
   document.buchung.f_pers.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_pass.value == "") {
   alert("Please enter your Passport number!");
   document.buchung.f_pass.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_geb.value == "") {
   alert("Please enter your Date of birth!");
   document.buchung.f_geb.focus();
   
   subaktivi();
   return false;
  }
  else if(!isDate(document.buchung.f_geb.value)){
		alert("Please enter a valid Date of birth!");
		document.buchung.f_geb.focus();
   
	   subaktivi();
	   return false;
  }
  else if(document.buchung.f_ort.value == "") {
   alert("Please enter your Place of birth!");
   document.buchung.f_ort.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_ange.value == "") {
   alert("Please enter Travelled from!");
   document.buchung.f_ange.focus();
   
   subaktivi();
   return false;
  }
  else if(document.buchung.f_abge.value == "") {
   alert("Please enter Departure to!");
   document.buchung.f_abge.focus();
   
   subaktivi();
   return false;
  }
}

function subaktivi(){
   document.buchung.senden.value = "Send!";
   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
}
