// Script zur Berechnung des nächsten Samstags bzw. des darauf folgenden Samstags
// Funktion zur Berechnung des Anfangswertes der beiden Textfelder
// 1. Feld --> Datum des naechsten Samstags
// 2. Feld --> Datum des uebernaechsten Samstags
function setDate(arrivalName, departureName)
{
	var arrival = document.getElementById(arrivalName);
	var departure = document.getElementById(departureName);
	if (!arrival || !departure) return;
	var time = new Date(); //Datum-Objekt                
	var now = time.getTime();
	var day = time.getDay(); //Aktueller Wochentag (0..6)
	var rest = 6 - day; //restliche Tage bis zum naechsten Samstag
	var samstag = now + (1000*60*60*24*rest);
	var nextsamstag = now + (1000*60*60*24*(rest+7));
	time.setTime(samstag);
	var daynr = ((time.getDate()<10) ? "0" : "") + time.getDate();
	var monthnr = ((time.getMonth()+1<10) ? "0" : "")+ (time.getMonth()+1);
	// Ausgabe des naechsten Samstages im Textfeld            
	if (arrival.value == '') arrival.value = daynr + "/" + (monthnr) + "/" + time.getFullYear();		
	time.setTime(nextsamstag);
	var daynr2 = ((time.getDate() < 10) ? "0" : "") + time.getDate();
	var monthnr2 = ((time.getMonth() + 1 < 10) ? "0" : "") + (time.getMonth()+1);            
	// Ausgabe des uebernaechsten Samstages im Textfeld
	if (departure.value == '') departure.value = daynr2 + "/" + (monthnr2) + "/" + time.getFullYear();
}

//Funktion zur Berechung des zweiten Datumsfeldes
function setLowerDate(arrivalName, departureName)
{
	var arrival = document.getElementById(arrivalName);
	var departure = document.getElementById(departureName);
	if (!arrival || !departure) return;
	//Auslesen des Datums im ersten Textfeld
	if (arrival.value.substr(0,1) == "0")
	{
		var day = parseInt(arrival.value.substr(1, 1));
	} else {
		var day = parseInt(arrival.value.substr(0, 2));
	}
	if (arrival.value.substr(3, 1) == "0")
	{
		var month = (parseInt(arrival.value.substr(4, 1))) - 1;
	} else {
		var month = (parseInt(arrival.value.substr(3, 2))) - 1;
	}
	var year = parseInt(arrival.value.substr(6, 4));
	var datum = new Date(year, month, (day + 7));
	// "neues" Datum
	var newday = ((datum.getDate() < 10) ? "0" : "") + (datum.getDate());
	var newmonth = ((datum.getMonth() + 1 < 10) ? "0" : "") + (datum.getMonth() + 1);
	var newyear = datum.getFullYear();
	departure.value = (newday + "/" + newmonth + "/" + newyear);
}
	
function checkDate(arrivalName, departureName)
{
	var arrival = document.getElementById(arrivalName);
	var departure = document.getElementById(departureName);
	if (!arrival || !departure)
	{
		return;
	}
	//Erforderliche Ueberpruefungen, denn Java interpretiert z.B. den String "04" NICHT als Zahl "4"
	//Vom User eingegebene Wert fuer Tag, Monat und Jahr werden "herausgefiltert" und
	//in Variablen gespeichert. day, month, year    --> erste Feld
	//                          day2, month2, year2 --> zweites Feld
	if (arrival.value.substr(0, 1) == "0")
	{
		var day = parseInt(arrival.value.substr(1,1));
	} else {
		var day = parseInt(arrival.value.substr(0, 2));
	}
	if (arrival.value.substr(3, 1) == "0")
	{
		var month = (parseInt(arrival.value.substr(4, 1))) - 1;
	} else {
		var month = (parseInt(arrival.value.substr(3, 2))) - 1;
	}
	if (departure.value.substr(0, 1) == "0")
	{
		var day2 = parseInt(departure.value.substr(1, 1));
	} else {
		var day2 = parseInt(departure.value.substr(0, 2));
	}
	if (departure.value.substr(3, 1) == "0")
	{
		var month2 = (parseInt(departure.value.substr(4, 1))) - 1;
	} else {
		var month2 = (parseInt(departure.value.substr(3, 2))) - 1;
	}
	var year = (parseInt(arrival.value.substr(6, 4)));
	var year2 = (parseInt(departure.value.substr(6, 4)));
	var date = new Date(year, month, day);
	var date2 = new Date(year2, month2, day2);
	var newday = ((date.getDate() < 10) ? "0" : "") + (date.getDate());
	var newday2 = ((date2.getDate() < 10) ? "0" : "") + (date2.getDate());
	var newmonth = ((date.getMonth() + 1 < 10) ? "0" : "") + (date.getMonth() + 1);
	var newmonth2 = ((date2.getMonth() + 1 < 10) ? "0" : "") + (date2.getMonth() + 1);
	var newyear = date.getFullYear();
	var newyear2 = date2.getFullYear();
	var string = newday + "/" + newmonth + "/" + newyear;
	var string2 = newday2 + "/" + newmonth2 + "/" + newyear2;
	if(string != arrival.value)
	{
		alert("Please insert a valid date in the correct format: dd/mm/yyyy");
		setDate(arrivalName, departureName);
		arrival.select();
		return false;
	}
	if(string2 != departure.value)
	{
		alert("Please insert a valid date in the corcect format: dd/mm/yyyy");
		setDate(arrivalName, departureName);
		departure.select();
		selected = true;
		return false;
	}
	//Ist kein Fehlerfall eingetreten, wird "setLowerDate" aufgerufen.
	setLowerDate(arrivalName, departureName);
}