/*Ueberpruefen der Anzahl der Tage eines Monats*/
/*Ausgehend von Monatsname und Pruefung eines Schaltjahres*/
/*Anzahl der Tage als Rueckgabewert*/
 function monatstage(tag, monat, jahr) {
  var anzahlTage;
  if ((monat == 4) || (monat == 6) || (monat == 9) || (monat == 11)) {
   anzahlTage = 30;
  }
/*Februar*/
  else if (monat == 2) {
/*Schaltjahr?*/
   if (((jahr % 4 == 0) && (jahr % 100 != 0)) || (jahr % 400 == 0)) {
    anzahlTage = 29;
   }
   else {
    anzahlTage = 28;
   }
  }
  else {
   anzahlTage = 31;
  }
  if (tag < anzahlTage) anzahlTage = tag;
  return anzahlTage;
 } /* ENDE function monatsTage */

/*Zuordnung der Wochentagszahlen zu den Namen als String*/
/*Zur Uebergabe an Textfeld mit Wochentag*/
 function wochentag() {
  if(document.buchung.sprache) var sprache = document.buchung.sprache.value;
  else var sprache = "deutsch";

  if (sprache == 'deutsch') var wochentage = new Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
  else var wochentage = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

  var anreiseMonat = document.buchung.Ankunftsmonat.value - 1;
  var anreiseJahr = document.buchung.Ankunftsjahr.value;
  var anreiseTag = document.buchung.Ankunftstag.value;
  var anreise = new Date(anreiseJahr, anreiseMonat, anreiseTag);
  var antagIndex = anreise.getDay();
  var antagName = wochentage[antagIndex];
  document.buchung.Ankunftswochentag.value = antagName;

  if(document.buchung.Abreisetag) {
   var abreiseMonat = document.buchung.Abreisemonat.value - 1;
   var abreiseJahr = document.buchung.Abreisejahr.value;
   var abreiseTag = document.buchung.Abreisetag.value;
   var abreise = new Date(abreiseJahr, abreiseMonat, abreiseTag);
   var abtagIndex = abreise.getDay();
   var abtagName = wochentage[abtagIndex];
   document.buchung.Abreisewochentag.value = abtagName;
  }
 } /* ENDE function wochentag */

 function feldUebernachtungen () {
  if (document.buchung.Abreisetag) {
   var anreiseMonat = document.buchung.Ankunftsmonat.value - 1;
   var anreiseJahr = document.buchung.Ankunftsjahr.value;
   var anreiseTag = document.buchung.Ankunftstag.value;
   var uebernachtungen = document.buchung.Uebernachtungen.value;
   if (uebernachtungen == '>31') {
    uebernachtungen = 31;
    document.buchung.Uebernachtungen.options[30].selected = true;
   }
   var anreise = new Date(anreiseJahr, anreiseMonat, anreiseTag);
   var anreiseZeit = anreise.getTime();
   var uebernachtungenSekunden = uebernachtungen * 86400000;
   var abreiseZeit = anreiseZeit + uebernachtungenSekunden;
   var abreise = new Date(abreiseZeit);
   var abreiseTag = abreise.getDate();
   var abreiseMonat = abreise.getMonth() + 1;
   var abreiseJahr = abreise.getYear() + 1900;

   document.buchung.Abreisetag.options[abreiseTag - 1].selected = true;
   document.buchung.Abreisemonat.options[abreiseMonat - 1].selected = true;
   for (i = 0; i <= 2; i++) {
    if(document.buchung.Abreisejahr.options[i].text == abreiseJahr) document.buchung.Abreisejahr.options[i].selected = true;
   }
  }
  if (document.buchung.Uebernachtungen.value == '>31') document.buchung.Uebernachtungen.options[30].selected = true;
  wochentag("deutsch");
 }

 function anreise() {
  var anreiseMonat = document.buchung.Ankunftsmonat.value - 1;
  var anreiseJahr = document.buchung.Ankunftsjahr.value;
  var anreiseTag = document.buchung.Ankunftstag.value;

/*Falls Auswahl der Tage groeßer als 28 wird auf Anzahl der korrekten Tage geprueft*/
/*und ggf. auf den letzten moeglichen Tag umgeschaltet*/
  if (anreiseTag >= 28) {
   anreiseTag = monatstage(anreiseTag, anreiseMonat+1, anreiseJahr);
   document.buchung.Ankunftstag.options[anreiseTag-1].selected = true;
  }
  var anreise = new Date(anreiseJahr, anreiseMonat, anreiseTag);
  var anreiseZeit = anreise.getTime();

  var heute = new Date();
  var heuteZeit = heute.getTime();
  var heuteTag = heute.getDate() - 1;
  var heuteMonat = heute.getMonth();
  var heuteJahr = heute.getYear() + 1900;

  if (heuteZeit > anreiseZeit) {
   document.buchung.Ankunftstag.options[heuteTag].selected = true;
   document.buchung.Ankunftsmonat.options[heuteMonat].selected = true;
   for (i = 0; i <= 1; i++) {
    if(document.buchung.Ankunftsjahr.options[i].text == heuteJahr) {
     document.buchung.Ankunftsjahr.options[i].selected = true;
    }
   }
   anreiseTag = heuteTag;
   anreiseMonat = heuteMonat;
   anreiseJahr = heuteJahr;
   anreise = new Date(anreiseJahr, anreiseMonat, anreiseTag);
   anreiseZeit = anreise.getTime();
  }

  if (document.buchung.Abreisetag) {
   var abreiseMonat = document.buchung.Abreisemonat.value - 1;
   var abreiseJahr = document.buchung.Abreisejahr.value;
   var abreiseTag = document.buchung.Abreisetag.value;

   var abreise = new Date(abreiseJahr, abreiseMonat, abreiseTag);
   var abreiseZeit = abreise.getTime();

   if (anreiseZeit >= abreiseZeit) {
    if (document.buchung.Uebernachtungen) {
     var uebernachtungen = document.buchung.Uebernachtungen.value;
     if (uebernachtungen <= 31) {
      uebernachtungenZeit = uebernachtungen * 86400000;
      abreiseZeit = anreiseZeit + uebernachtungenZeit;
     }
     else abreiseZeit = anreiseZeit + (31 * 864000000);
    }
    else abreiseZeit = anreiseZeit + 86400000;
    abreise = new Date(abreiseZeit);
    abreiseTag = abreise.getDate();
    abreiseMonat = abreise.getMonth();
    abreiseJahr = abreise.getYear() + 1900;
   }

   document.buchung.Abreisetag.options[abreiseTag - 1].selected = true;
   document.buchung.Abreisemonat.options[abreiseMonat].selected = true;
   for (i = 0; i <= 1; i++) {
    if(document.buchung.Abreisejahr.options[i].text == abreiseJahr) {
     document.buchung.Abreisejahr.options[i].selected = true;
    }
   }
  }

  if(document.buchung.Uebernachtungen) {
   var differenz = (abreiseZeit - anreiseZeit) / 86400000;
   if (differenz > 31) document.buchung.Uebernachtungen.options[31].selected = true;
   else document.buchung.Uebernachtungen.options[differenz-1].selected = true;
  }

  wochentag("deutsch");
 }

 function abreise() {
  var anreiseMonat = document.buchung.Ankunftsmonat.value - 1;
  var anreiseJahr = document.buchung.Ankunftsjahr.value;
  var anreiseTag = document.buchung.Ankunftstag.value;
  var anreise = new Date(anreiseJahr, anreiseMonat, anreiseTag);
  var anreiseZeit = anreise.getTime();

  var abreiseMonat = document.buchung.Abreisemonat.value - 1;
  var abreiseJahr = document.buchung.Abreisejahr.value;
  var abreiseTag = document.buchung.Abreisetag.value;

  if ((anreiseTag >= abreiseTag) && (anreiseMonat == abreiseMonat)) {
   if (anreiseMonat == 11 && anreiseTag <= 31) {
    abreiseMonat = anreiseMonat;
    abreiseTag = anreiseTag + 1;
    abreiseJahr = anreiseJahr;
   }
   // q'n'd ausgeschnitten für Buchungproblem 11.Sept.09 - Andreas
   // else abreiseMonat = anreiseMonat + 1;
  }

  if ((abreiseJahr < anreiseJahr)) {
   abreiseJahr = anreise.getYear()+1900;
   abreiseMonat = anreise.getMonth();
   abreiseTag = anreise.getDay();
  }

/*Falls Auswahl der Tage groeßer als 28 wird auf Anzahl der korrekten Tage geprueft*/
/*und ggf. auf den letzten moeglichen Tag umgeschaltet*/
  if (abreiseTag >= 28) {
   abreiseTag = monatstage(abreiseTag, abreiseMonat+1, abreiseJahr);
   document.buchung.Abreisetag.options[abreiseTag-1].selected = true;
  }
  var abreise = new Date(abreiseJahr, abreiseMonat, abreiseTag);
  var abreiseZeit = abreise.getTime();

  if (anreiseZeit >= abreiseZeit) {
   abreiseZeit = anreiseZeit + 86400000;
   abreise = new Date(abreiseZeit);
  }

  abreiseTag = abreise.getDate();
  abreiseMonat = abreise.getMonth() + 1;
  abreiseJahr = abreise.getYear() + 1900;

  document.buchung.Abreisetag.options[abreiseTag - 1].selected = true;
  document.buchung.Abreisemonat.options[abreiseMonat - 1].selected = true;
  for (i = 0; i <= 2; i++) {
   if(document.buchung.Abreisejahr.options[i].text == abreiseJahr) {
    document.buchung.Abreisejahr.options[i].selected = true;
   }
  }

  if(document.buchung.Uebernachtungen) {
   var differenz = (abreiseZeit - anreiseZeit) / 86400000;
   if (differenz > 31) document.buchung.Uebernachtungen.options[31].selected = true;
   else document.buchung.Uebernachtungen.options[differenz-1].selected = true;
  }

  wochentag("deutsch");
 }

 function pruefeDaten () {
  if(document.buchung.sprache) var sprache = document.buchung.sprache.value;
  else var sprache = "deutsch";
  var fehler = "";
  var anreiseMonat = document.buchung.Ankunftsmonat.value - 1;
  var anreiseJahr = document.buchung.Ankunftsjahr.value;
  var anreiseTag = document.buchung.Ankunftstag.value;
  var anreise = new Date(anreiseJahr, anreiseMonat, anreiseTag);
  var anreiseZeit = anreise.getTime();

  var abreiseMonat = document.buchung.Abreisemonat.value - 1;
  var abreiseJahr = document.buchung.Abreisejahr.value;
  var abreiseTag = document.buchung.Abreisetag.value;
  var abreise = new Date(abreiseJahr, abreiseMonat, abreiseTag);
  var abreiseZeit = abreise.getTime();

  var uebernachtungen = document.buchung.Uebernachtungen.value;

  var differenz = (abreiseZeit - anreiseZeit) / 86400000;

  if (uebernachtungen == '>31' || differenz > 31) {
   if (sprache == 'deutsch') fehler = "Eingabefehler: Bitte wählen Sie einen Buchungszeitraum von maximal 31 Tagen.";
   else fehler = "Invalid input: Please choose a maximum of 31 days for the length of your stay";
   alert (fehler);
  }
  if (anreiseZeit >= abreiseZeit) {
   if (sprache == 'deutsch') fehler = "Eingabefehler: Das Abreisedatum liegt vor der Anreise. Bitte wählen Sie ein gültiges Datum für die Abreise.";
   else fehler = "Invalid input: Your date of depart is in advance of your arrival. Please choose a valid date for your depart.";
   alert (fehler);
  }
  if (fehler != "") {
   document.buchung.reset();
  }
  else document.buchung.submit();
 }