/****************************************************************
* (c) 2005n@work Internet Informationssysteme, http://www.work.de
*
* Funktionen um An-/Abreise und Aufenthaltsdauer
* konsitent zu halten und An-/Abreisedatum
* auf Gueltigkeit zu ueberpreufen
*****************************************************************/

function updateAbreise() {
// Aktualisiert das Abreisedatum bei Veraenderungen der Aufenthaltsdauer oder des Anreisedatums:

// Falls es keine Formularfeld fuer Anzahl der Uebernachtungen gibt, Funktion abbrechen:
if (typeof(document.suche.Uebernachtungen)=="undefined") return true;

var AnreiseTag=document.suche.AnreiseTag.value;
var AnreiseMonatJahr=document.suche.AnreiseMonatJahr.value;
var Uebernachtungen=document.suche.Uebernachtungen.value;

// Anreise-Monat und -Jahr feststellen:
var AnreiseMonat=AnreiseMonatJahr.substring(0,AnreiseMonatJahr.length-4);
var AnreiseJahr=AnreiseMonatJahr.substring(AnreiseMonatJahr.length-4,AnreiseMonatJahr.length);


// Pruefen, ob AnreiseTag ein gueltiges Datum ist und ggf. korrigieren auf naechst moeglichen niedrigeren Tag:
if (!isValidDate(AnreiseTag,AnreiseMonat-1,AnreiseJahr)) {
	// Pruefen ob Tag-1 ein gueltiges Datum ist:
	if (isValidDate(AnreiseTag-1,AnreiseMonat-1,AnreiseJahr)) {
		AnreiseTag=AnreiseTag-1;
		document.suche.AnreiseTag.selectedIndex=document.suche.AnreiseTag.selectedIndex-1;
	} else if (isValidDate(AnreiseTag-2,AnreiseMonat-1,AnreiseJahr)) {
		// Pruefen ob Tag-2 ein gueltiges Datum ist:
		AnreiseTag=AnreiseTag-2;
		document.suche.AnreiseTag.selectedIndex=document.suche.AnreiseTag.selectedIndex-2;
	} else if (isValidDate(AnreiseTag-3,AnreiseMonat-1,AnreiseJahr)) {
		// Pruefen ob Tag-3 ein gueltiges Datum ist:
		AnreiseTag=AnreiseTag-3;
		document.suche.AnreiseTag.selectedIndex=document.suche.AnreiseTag.selectedIndex-3;
	}
}

// Date-Objekt fuer Anreise anlegen:
var Anreise=new Date(AnreiseJahr,AnreiseMonat-1,AnreiseTag)

// Date-Objekt fuer Abreise anlegen und die Anzahl der Uebernachtungen hinzu addieren:
// WICHTIG! Es wird mit 24.5 multipliziert zum Ausgleich von Sommer- und Winterzeit
var Abreise=new Date(Anreise.getTime() + Uebernachtungen*24.5*60*60*1000);

// Tag, Monat und Jahr der Abreise aus dem Date Objekt Abreise herausziehen:
var AbreiseTag=Abreise.getDate();
var AbreiseMonat=Abreise.getMonth()+1;
var AbreiseJahr=Abreise.getFullYear();

// Abreise-Tag im Formular setzen:
document.suche.AbreiseTag.selectedIndex=AbreiseTag-1;

// Abreise-Monat/Jahr im Formular setzen:

// Int2String:
AbreiseMonat = "" + AbreiseMonat;
AbreiseJahr = "" + AbreiseJahr;

var myyyy = AbreiseMonat + AbreiseJahr;

for (i=0; i<document.suche.AbreiseMonatJahr.length; i++) {
	if (document.suche.AbreiseMonatJahr[i].value == myyyy) {
		document.suche.AbreiseMonatJahr.selectedIndex=i;
	}
}

// Ueberpruefen, ob mehr als 14 Naechste bei "Uebernachtungen" ausgewaehlt ist:
check14Naechte();

}


function updateUebernachtungen() {
// Aktualisiert die Anzahl der Uebernachtungen, wenn das Abreisedatum neu ausgewaehlt wurde:

// Falls es keine Formularfeld fuer Anzahl der Uebernachtungen gibt, Funktion abbrechen:
if (typeof(document.suche.Uebernachtungen)=="undefined") return (true);

// Anreise aus dem Formular uebernehmen:
var AnreiseTag=document.suche.AnreiseTag.value;
var AnreiseMonatJahr=document.suche.AnreiseMonatJahr.value;

// Anreise-Monat und -Jahr feststellen:
var AnreiseMonat=AnreiseMonatJahr.substring(0,AnreiseMonatJahr.length-4);
var AnreiseJahr=AnreiseMonatJahr.substring(AnreiseMonatJahr.length-4,AnreiseMonatJahr.length);

// Date-Objekt fuer Anreise anlegen:
var Anreise=new Date(AnreiseJahr,AnreiseMonat-1,AnreiseTag)

// Abreise aus dem Formular uebernehmen:
var AbreiseTag=document.suche.AbreiseTag.value;
var AbreiseMonatJahr=document.suche.AbreiseMonatJahr.value;

// Abreise-Monat und -Jahr feststellen:
var AbreiseMonat=AbreiseMonatJahr.substring(0,AbreiseMonatJahr.length-4);
var AbreiseJahr=AbreiseMonatJahr.substring(AbreiseMonatJahr.length-4,AbreiseMonatJahr.length);

// Pruefen, ob AbreiseTag ein gueltiges Datum ist und ggf. korrigieren auf naechst moeglichen niedrigeren Tag:
if (!isValidDate(AbreiseTag,AbreiseMonat-1,AbreiseJahr)) {
	// Pruefen ob Tag-1 ein gueltiges Datum ist:
	if (isValidDate(AbreiseTag-1,AbreiseMonat-1,AbreiseJahr)) {
		AbreiseTag=AbreiseTag-1;
		document.suche.AbreiseTag.selectedIndex=document.suche.AbreiseTag.selectedIndex-1;
	} else if (isValidDate(AbreiseTag-2,AbreiseMonat-1,AbreiseJahr)) {
		// Pruefen ob Tag-2 ein gueltiges Datum ist:
		AbreiseTag=AbreiseTag-2;
		document.suche.AbreiseTag.selectedIndex=document.suche.AbreiseTag.selectedIndex-2;
	} else if (isValidDate(AbreiseTag-3,AbreiseMonat-1,AbreiseJahr)) {
		// Pruefen ob Tag-3 ein gueltiges Datum ist:
		AbreiseTag=AbreiseTag-3;
		document.suche.AbreiseTag.selectedIndex=document.suche.AbreiseTag.selectedIndex-3;
	}
}

// Date-Objekt fuer Anreise anlegen:
var Abreise=new Date(AbreiseJahr,AbreiseMonat-1,AbreiseTag)

// Differenz in Tagen zwischen An- und Abreise feststellen:
// var Differenz = Abreise.getTime() - Anreise.getTime();
// var Uebernachtungen = Math.floor(Differenz/1000/60/60/24);

// WICHTIG! Es wird mit 24.5 multipliziert zum Ausgleich von Sommer- und Winterzeit
var Uebernachtungen=Math.ceil( (Abreise.getTime()-Anreise.getTime())/(1000*60*60*24.5) );

// Uebernachtungen im Formular neu setzen, falls die Zahl zwischen 1 und 14 liegt:
if (Uebernachtungen>=1 && Uebernachtungen<=14) {
	document.suche.Uebernachtungen.selectedIndex=Uebernachtungen-1;
}
if (Uebernachtungen>14) {
	// Falls Uebernachten >14 das Select-Feld auf ">14" setzen:
	document.suche.Uebernachtungen.selectedIndex=14;
}

// Ueberpruefen, ob mehr als 14 Naechste bei "Uebernachtungen" ausgewaehlt ist:
check14Naechte();

}

function isValidDate(day,month,year){
// Ueberprueft, ob ein Datum gueltig ist:

var testDate=new Date(year,month,day);
return ((day==testDate.getDate()) && (month==testDate.getMonth()) && (year==testDate.getFullYear()));
}

function check14Naechte() {
// Prueft, ob Uebernachtungen groesser als 14 Naechte und blendet
// in diesem Fall Hinweisfeld ein oder aus.

if (typeof(document.suche.Uebernachtungen)!="undefined") {
	if (document.suche.Uebernachtungen.selectedIndex==14) {
 	 showcontent ('Hinweis14Tage');
 	} else {
		hidecontent ('Hinweis14Tage');
	}
}

}


function getDateString(Tag,MonatJahr) {
// Gibt als Ergebnis "YYY-MM-DD" zurueck.
// Die Werte entsprechen der jeweiligen An- oder Abreiseauswahl
// Dient als Parameter zum Aufruf des Kalenders, so dass der
// aktiverte Tag im Kalender dem Auswahlmenue im Formular entspricht

	var y = document.suche[MonatJahr].value.substring(document.suche[MonatJahr].value.length-4,document.suche[MonatJahr].value.length);
	var m = document.suche[MonatJahr].value.substring(0,document.suche[MonatJahr].value.length-4);
	var d = document.suche[Tag].value;
	if (y=="" || m=="") { return null; }
	if (d=="") { d=1; }
	return str= y+'-'+m+'-'+d;
	}

function check14Naechte() {
// Prueft, ob Uebernachtungen groesser als 14 Naechte und blendet
// in diesem Fall Hinweisfeld ein oder aus.

if (typeof(document.suche.Uebernachtungen)!="undefined") {
	if(document.suche.Uebernachtungen.selectedIndex==14)
  {
 	 showcontent ('Hinweis14Tage');
	 hidecontent ('searchButton');
 	}
  else
  {
	 hidecontent ('Hinweis14Tage');
 	 showcontent ('searchButton');
	}
}

}
