function checkDates()
{
  // Anfangs- und Endedatum dürfen nicht leer sein
  if (document.rechner.elements['tx_pricecalculator_pi1[urlaubsbeginn]'].value == '')
  {
  	alert("Bitte geben Sie ein gültiges Datum für Ihren Urlaubsbeginn ein.");
  	document.rechner.elements['tx_pricecalculator_pi1[urlaubsbeginn]'].focus();
  	return false;
  }
  else if (document.rechner.elements['tx_pricecalculator_pi1[urlaubsende]'].value == '')
  {
  	alert("Bitte geben Sie ein gültiges Datum für Ihr Urlaubsende ein.");
  	document.rechner.elements['tx_pricecalculator_pi1[urlaubsende]'].focus();
  	return false;
  }

  // testen, ob der Urlaubsbeginn in der Zukunft liegt und das Urlaubsende mindestens
  // einen Tag später liegt, als der Urlaubsanfang. Sonst macht eine Berechnung keinen Sinn.
  var now = new Date();
  now = now.getTime();  
  
  var beginnJahr = parseInt(document.rechner.elements['tx_pricecalculator_pi1[urlaubsbeginn]'].value.substring(6,10));
  var beginnMonat = parseInt(document.rechner.elements['tx_pricecalculator_pi1[urlaubsbeginn]'].value.substring(3,5).replace(/^0/,'')) -1;
  var beginnTag = parseInt(document.rechner.elements['tx_pricecalculator_pi1[urlaubsbeginn]'].value.substring(0,2).replace(/^0/,''));
  
  var urlaubsbeginnDate = new Date(beginnJahr,beginnMonat,beginnTag);
  var checkUrlaubsbeginn = urlaubsbeginnDate.getTime();  
  
  var endeJahr = parseInt(document.rechner.elements['tx_pricecalculator_pi1[urlaubsende]'].value.substring(6,10));
  var endeMonat = parseInt(document.rechner.elements['tx_pricecalculator_pi1[urlaubsende]'].value.substring(3,5).replace(/^0/,'')) -1;
  var endeTag = parseInt(document.rechner.elements['tx_pricecalculator_pi1[urlaubsende]'].value.substring(0,2).replace(/^0/,''));
  var urlaubsendeDate = new Date(endeJahr,endeMonat,endeTag);
  var checkUrlaubsende = urlaubsendeDate.getTime();
  
  var konfigAnfangJahr = parseInt(document.rechner.elements["tx_pricecalculator_pi1[konfigurationsanfang]"].value.substring(6,10));
  var konfigAnfangMonat = parseInt(document.rechner.elements["tx_pricecalculator_pi1[konfigurationsanfang]"].value.substring(3,5).replace(/^0/,'')) -1;
  var konfigAnfangTag = parseInt(document.rechner.elements["tx_pricecalculator_pi1[konfigurationsanfang]"].value.substring(0,2).replace(/^0/,''));
  var konfigurationsAnfangDate = new Date(konfigAnfangJahr,konfigAnfangMonat,konfigAnfangTag);
  var checkKonfigurationsanfang = konfigurationsAnfangDate.getTime();
  
  var konfigJahr = parseInt(document.rechner.elements["tx_pricecalculator_pi1[konfigurationsende]"].value.substring(6,10));
  var konfigMonat = parseInt(document.rechner.elements["tx_pricecalculator_pi1[konfigurationsende]"].value.substring(3,5).replace(/^0/,'')) -1;
  var konfigTag = parseInt(document.rechner.elements["tx_pricecalculator_pi1[konfigurationsende]"].value.substring(0,2).replace(/^0/,''));
  var konfigurationsendeDate = new Date(konfigJahr,konfigMonat,konfigTag);
  var checkKonfigurationsende = konfigurationsendeDate.getTime();
  
  // Urlaubsbeginn in der Zukunft?!
  // (86399 * 1000) Milliksekunden werden addiert, da "checkUrlaubsbeginn" immer bei einer Uhrzeit von 00:00:00 beginnt
  // "now" aber die aktuelle Uhrzeit, z. B. 19:23:35 nimmt. Daher "checkUrlaubsbeginn" immer auf eine Uhrzeit von 23:59:59 Uhr setzen
  var urlaubsbeginnInFuture = (now <= checkUrlaubsbeginn + (86399 * 1000));
  
  // Urlaubsende nach dem Urlaubsbeginn?!
  var urlaubsendeGreaterBeginn = (checkUrlaubsbeginn < checkUrlaubsende);
  
  // Gucken, ob nachvollziehbare Angaben für die Urlaubslänge gemacht wurden. Eine Zeitspanne von
  // 30 Tagen sollte für jeden normalen Urlauber ausreichen. Dann ist es nachher auch leichter, den Preis
  // korrekt zu berechnen.
  var difference = checkUrlaubsende - checkUrlaubsbeginn;  
  var daysDifference = Math.floor(difference/1000/60/60/24);
  
  if (!urlaubsbeginnInFuture)
  {
	alert("Das Datum für Ihren Urlaubsanfang liegt in der Vergangenheit. \nBitte geben Sie ein gültiges Datum ein.");
  	return false;
  }
  else if (!urlaubsendeGreaterBeginn)
  {
	alert("Das Datum für Ihr Urlaubsende liegt vor Ihrem Urlaubsanfang. \nBitte geben Sie ein gültiges Datum ein.");
  	return false;  
  }
  else if (checkUrlaubsende > checkKonfigurationsende)
  {
	alert("Der Kalkulator ist bis zum Saisonende am " + document.rechner.elements['tx_pricecalculator_pi1[konfigurationsende]'].value + " konfiguriert. \nBitte kontaktieren Sie uns, wenn Sie einen späteren Urlaubszeitraum planen.");
  	return false;    
  }
  else if (checkUrlaubsbeginn < checkKonfigurationsanfang)
  {
  	alert("Der Kalkulator startet mit dem Saisonanfang am " + document.rechner.elements['tx_pricecalculator_pi1[konfigurationsanfang]'].value + ". \nBitte wählen Sie einen Urlaubszeitraum ab diesem Datum.");
  	return false; 
  }
  else if (daysDifference > 30)
  {
	alert("Dieser Kalkulator ist für einen Urlaubszeitraum von 30 Tagen ausgelegt. \nBitte kontaktieren Sie uns, wenn Sie einen längeren Urlaubszeitraum planen.");
  	return false;    
  }
  
  if(document.rechner.elements["tx_pricecalculator_pi1[familienzimmer]"].checked == true && document.rechner.elements["tx_pricecalculator_pi1[appartement]"].checked == true)
  {
  	alert("Bitte wählen Sie entweder Familienzimmer oder Appartement aus. Beides gleichzeitig ist nicht sinnvoll.");
  	return false;
  }
  
  // nur wenn alle Bedingungen erfüllt sind, darf das Formular abgeschickt werden
  return true;

}

