function DayOrNight() {
	var dayOrNight = document.editForm.NIGHTS.options[0].text;
	var dayOrNightTable = dayOrNight.split(' ');
	//alert (dayOrNightTable[1].charAt(0));
	return dayOrNightTable[1].charAt(0);
}

function setArrivalCalendarValues(year, month, day) {
	var arrivalSelectedKey;
	document.getElementById("ARR_DAY").value=day;
	document.getElementById("ARR_MONTH").value=month-1;
	document.getElementById("ARR_YEAR").value=year;
	if((month - 1) < 10) {
		arrivalSelectedKey = '0';
	} else {
		arrivalSelectedKey = '';
	}
	arrivalSelectedKey = arrivalSelectedKey.concat(month-1);
	arrivalSelectedKey = arrivalSelectedKey.concat('_');
	arrivalSelectedKey = arrivalSelectedKey.concat(year);
	document.getElementById('arr_month_year').value=arrivalSelectedKey;

	if (DayOrNight() == 'T') {
		onChangedArrivalDataForDays();
	} else {
		onChangedArrivalData();
	}
}

function setDepCalendarValues(year, month, day) {
	var departureSelectedKey;
	document.getElementById("dep_day").value=day;
	if((month - 1) < 10) {
		departureSelectedKey = '0';
	} else {
		departureSelectedKey = '';
	}
	departureSelectedKey = departureSelectedKey.concat(month-1);
	departureSelectedKey = departureSelectedKey.concat('_');
	departureSelectedKey = departureSelectedKey.concat(year);
	document.getElementById('dep_month_year').value=departureSelectedKey;

	if (DayOrNight() == 'T') {
		onChangedDepartureDataForDays();
	} else {
		onChangedDepartureData();
	}
}

function checkArrivalDate() {
	var fieldMonthYear = document.getElementById('arr_month_year');
	var day = document.getElementById('ARR_DAY').value;
	var arrivalSelectedKey = fieldMonthYear.value;
	var month = arrivalSelectedKey.substring(0,2);
	var year = arrivalSelectedKey.substring(3,7);

	document.getElementById('ARR_DAY').value 	= day;
	document.getElementById('ARR_MONTH').value 	= month;
	document.getElementById('ARR_YEAR').value	= year;

	var today = new Date();
	var dayToday = today.getDate();
	var monthToday = today.getMonth();
	var yearToday = today.getFullYear();

	var selectedDay = day;
	var selectedMonth = month;
	var selectedYear = year;

	if (selectedMonth == '08') selectedMonth = '8'; if(selectedMonth== '09') selectedMonth = '9';  // Die Methode parseInt von Javascript arbeitet nicht richtig mit 08 und 09
	if (monthToday == '08') monthToday = '8'; if(monthToday== '09') monthToday = '9';
	if((parseInt(selectedYear) == parseInt(yearToday)) && (parseInt(selectedMonth) == parseInt(monthToday)) && (parseInt(selectedDay) < parseInt(dayToday))) {			

		if (parseInt(selectedMonth) == 11) {  // Diese If-Abfrage muss noch getestet werden...
			// Jahr hochzaehlen und Monat auf 0 sezten
			var selectedYearAfter = parseInt(selectedYear) + 1;
			var selectedMonthAfter = 00;
			var monthYear = selectedMonthAfter.toString().concat('_').concat(selectedYear);
		} else {
			// Monat hochzaehlen
			var selectedMonthAfter = parseInt(selectedMonth) + 1;
			if (selectedMonthAfter < 10) {
				selectedMonthAfter = '0'.concat(selectedMonthAfter);
			}
			var monthYear = selectedMonthAfter.toString().concat('_').concat(selectedYear);
		}

		for (var i=0; i < fieldMonthYear.length; i++) {
			if (fieldMonthYear.options[i].value == monthYear) {
				fieldMonthYear.options[i].selected = true;
				break;
			}
		}		
	}

	if (DayOrNight() == 'T') {		
		onChangedArrivalDataForDays();
	} else {
		onChangedArrivalData();
	}
}

function checkDepartureDate() {
	var fieldMonthYear = document.getElementById('dep_month_year');
	var fieldDay = document.getElementById('dep_day');

	var dep_day = fieldDay.value;
	var departureSelectedKey = fieldMonthYear.value;
	var dep_month = departureSelectedKey.substring(0,2);
	var dep_year = departureSelectedKey.substring(3,7);		

	var arr_day = document.getElementById('ARR_DAY').value;
	var arrivalSelectedKey = document.getElementById('arr_month_year').value;
	var arr_month = arrivalSelectedKey.substring(0,2);
	var arr_year = arrivalSelectedKey.substring(3,7);

	//alert('selectedArr : '+arr_day+'.'+arr_month+'.'+arr_year);
	//alert('selectedDep : '+dep_day+'.'+dep_month+'.'+dep_year); 

	if (dep_month == '09') dep_month = '9'; if (dep_month == '08') dep_month = '8';
	if (arr_month == '09') arr_month = '9'; if (arr_month == '08') arr_month = '8';

	if(parseInt(dep_year) == parseInt(arr_year) && parseInt(dep_month) == parseInt(arr_month) && parseInt(dep_day) < parseInt(arr_day)) {

		var departureMonthSelectedKey;
		var departureDate = addOneNight(arr_day, arr_month, arr_year, 1);
		dep_day = departureDate.getDate();
		dep_month = departureDate.getMonth();
		dep_year = departureDate.getFullYear();

		if(dep_month < 10) {
			departureMonthSelectedKey = '0';
		} else {
			departureMonthSelectedKey = '';
		}

		departureMonthSelectedKey = departureMonthSelectedKey.concat(dep_month).concat('_').concat(dep_year);
		document.getElementById('dep_month_year').value = departureMonthSelectedKey;
		document.getElementById('dep_day').value = dep_day;

	}/*else if ((parseInt(dep_year) == parseInt(arr_year) && parseInt(dep_month) < parseInt(arr_month))) { // || (parseInt(dep_year) < parseInt(arr_year))) {
			var monthYear = arr_month.concat('_').concat(arr_year);
			alert(monthYear);
			document.getElementById('dep_month_year').value = monthYear;			
			checkDepartureDate(); // rekursive aufruf, denn der ausgewählte Monat im departure könnte gleich mit dem aus Arrival, und der ArrTag aber kleiner als DepTag
		}*/

	if (DayOrNight() == 'T') {
		onChangedDepartureDataForDays();
	} else {
		onChangedDepartureData();
	}
}

function addOneNight(arr_day, arr_month, arr_year, night) {
	var arrivalDate = new Date();
	arrivalDate.setDate(1);
	arrivalDate.setMonth(arr_month);
	arrivalDate.setYear(arr_year);
	arrivalDate.setDate(arr_day);
	var arrivalMilliSeconds = arrivalDate.getTime();
	var departureMilliSeconds = arrivalMilliSeconds + 1000*60*60*24*night;

	var departureDate = new Date();
	departureDate.setTime(departureMilliSeconds);

	return departureDate;
}

function onChangedArrivalDataForDays() {
	var arrivalSelectedKey;
	var arrivalDate;
	var day;
	var month;
	var year;
	var arrivalMilliSeconds;
	var departureMilliSeconds;
	var nights;
	var departureDate;
	var departureSelectedKey;

	arrivalDate = new Date();

	day = document.getElementById('ARR_DAY').value;
	arrivalSelectedKey = document.getElementById('arr_month_year').value;
	month = arrivalSelectedKey.substring(0,2);
	year = arrivalSelectedKey.substring(3,7);
	document.getElementById('ARR_MONTH').value=month;
	document.getElementById('ARR_YEAR').value=year;

	arrivalDate.setDate(1);
	arrivalDate.setMonth(month);
	arrivalDate.setYear(year);
	arrivalDate.setDate(day);
	arrivalMilliSeconds = arrivalDate.getTime();

	nights = document.getElementById('NIGHTS').value;
	departureMilliSeconds = arrivalMilliSeconds + 1000*60*60*24*(nights-1);
	departureDate = new Date();
	departureDate.setTime(departureMilliSeconds);
	document.getElementById('dep_day').value=departureDate.getDate();

	if(departureDate.getMonth() < 10) {
		departureSelectedKey = '0';
	} else {
		departureSelectedKey = '';
	}

	departureSelectedKey = departureSelectedKey.concat(departureDate.getMonth());
	departureSelectedKey = departureSelectedKey.concat('_');
	departureSelectedKey = departureSelectedKey.concat(departureDate.getFullYear());
	document.getElementById('dep_month_year').value=departureSelectedKey;
	
	if (month == '08') month = '8'; if(month== '09') month = '9';  
	document.getElementById('arrivalDateFieldToHide').value = day + '.' + (parseInt(month) + 1) + '.' + year;
	document.getElementById('departureDateFieldToHide').value = departureDate.getDate() + '.' + (departureDate.getMonth() + 1) + '.' + departureDate.getFullYear();

	setArrivalWeekDay();
	setDepartureWeekDay();
}

function onChangedArrivalData() {
	var arrivalSelectedKey;
	var arrivalDate;
	var day;
	var month;
	var year;
	var arrivalMilliSeconds;
	var departureMilliSeconds;
	var nights;
	var departureDate;
	var departureSelectedKey;

	arrivalDate = new Date();

	day = document.getElementById('ARR_DAY').value;
	arrivalSelectedKey = document.getElementById('arr_month_year').value;
	month = arrivalSelectedKey.substring(0,2);
	year = arrivalSelectedKey.substring(3,7);
	document.getElementById('ARR_MONTH').value=month;
	document.getElementById('ARR_YEAR').value=year;

	arrivalDate.setDate(1);
	arrivalDate.setMonth(month);
	arrivalDate.setYear(year);
	arrivalDate.setDate(day);
	arrivalMilliSeconds = arrivalDate.getTime();

	nights = document.getElementById('NIGHTS').value;
	departureMilliSeconds = arrivalMilliSeconds + 1000*60*60*24*nights;
	departureDate = new Date();
	departureDate.setTime(departureMilliSeconds);	
	document.getElementById('dep_day').value=departureDate.getDate();

	if(departureDate.getMonth() < 10) {
		departureSelectedKey = '0';
	} else {
		departureSelectedKey = '';
	}

	departureSelectedKey = departureSelectedKey.concat(departureDate.getMonth());
	departureSelectedKey = departureSelectedKey.concat('_');
	departureSelectedKey = departureSelectedKey.concat(departureDate.getFullYear());
	document.getElementById('dep_month_year').value=departureSelectedKey;

	if (month == '08') month = '8'; if(month== '09') month = '9';  // Die Methode parseInt von Javascript arbeitet nicht richtig mit 08 und 09		
	document.getElementById('arrivalDateFieldToHide').value = day + '.' + (parseInt(month) + 1) + '.' + year;
	document.getElementById('departureDateFieldToHide').value = departureDate.getDate() + '.' + (departureDate.getMonth() + 1) + '.' + departureDate.getFullYear();

	setArrivalWeekDay();
	setDepartureWeekDay();
}

function onChangedDepartureDataForDays() {
	var arrivalSelectedKey;
	var arrivalDate;
	var arrivalDay;
	var arrivalMonth;
	var arrivalYear;
	var arrivalMilliSeconds;
	var departureMilliSeconds;
	var nights;
	var departureDate;
	var departureDay;
	var departureMonth;
	var departureYear;
	var departureSelectedKey;
	var timeSpanMilliSeconds;
	var nights;

	departureDay = document.getElementById('dep_day').value;
	departureSelectedKey = document.getElementById('dep_month_year').value;
	departureMonth = departureSelectedKey.substring(0,2);
	departureYear = departureSelectedKey.substring(3,7);

	departureDate = new Date();
	departureDate.setDate(1);
	departureDate.setMonth(departureMonth);
	departureDate.setYear(departureYear);
	departureDate.setDate(departureDay);
	departureMilliSeconds = departureDate.getTime();

	arrivalDay = document.getElementById('ARR_DAY').value;
	arrivalSelectedKey = document.getElementById('arr_month_year').value;
	arrivalMonth = arrivalSelectedKey.substring(0,2);
	arrivalYear = arrivalSelectedKey.substring(3,7);

	arrivalDate = new Date();
	arrivalDate.setDate(1);
	arrivalDate.setMonth(arrivalMonth);
	arrivalDate.setYear(arrivalYear);
	arrivalDate.setDate(arrivalDay);

	arrivalMilliSeconds = arrivalDate.getTime();
	timeSpanMilliSeconds = departureMilliSeconds - arrivalMilliSeconds;

	nights = Math.round(timeSpanMilliSeconds / 1000 / 60 / 60 / 24) + 1;
	document.getElementById('NIGHTS').value=nights;
	
	if (departureMonth == '09') departureMonth='9'; if (departureMonth == '08') departureMonth='8'; 
	document.getElementById('departureDateFieldToHide').value = departureDay + '.' + (parseInt(departureMonth) + 1) + '.' + departureYear;

	setArrivalWeekDay();
	setDepartureWeekDay();
}

function onChangedDepartureData() {
	var arrivalSelectedKey;
	var arrivalDate;
	var arrivalDay;
	var arrivalMonth;
	var arrivalYear;
	var arrivalMilliSeconds;
	var departureMilliSeconds;
	var nights;
	var departureDate;
	var departureDay;
	var departureMonth;
	var departureYear;
	var departureSelectedKey;
	var timeSpanMilliSeconds;
	var nights;

	departureDay = document.getElementById('dep_day').value;
	departureSelectedKey = document.getElementById('dep_month_year').value;
	departureMonth = departureSelectedKey.substring(0,2);
	departureYear = departureSelectedKey.substring(3,7);
	departureDate = new Date();
	departureDate.setDate(1);
	departureDate.setMonth(departureMonth);
	departureDate.setYear(departureYear);
	departureDate.setDate(departureDay);
	departureMilliSeconds = departureDate.getTime();

	arrivalDay = document.getElementById('ARR_DAY').value;
	arrivalSelectedKey = document.getElementById('arr_month_year').value;
	arrivalMonth = arrivalSelectedKey.substring(0,2);
	arrivalYear = arrivalSelectedKey.substring(3,7);

	arrivalDate = new Date();
	arrivalDate.setDate(1);
	arrivalDate.setMonth(arrivalMonth);
	arrivalDate.setYear(arrivalYear);
	arrivalDate.setDate(arrivalDay);

	arrivalMilliSeconds = arrivalDate.getTime();
	timeSpanMilliSeconds = departureMilliSeconds - arrivalMilliSeconds;

	nights = Math.round(timeSpanMilliSeconds / 1000 / 60 / 60 / 24);
	document.getElementById('NIGHTS').value=nights;

	if (departureMonth == '09') departureMonth='9'; if (departureMonth == '08') departureMonth='8'; // Die Methode parseInt von Javascript arbeitet nicht richtig mit 08 und 09
	document.getElementById('departureDateFieldToHide').value = departureDay + '.' + (parseInt(departureMonth) + 1) + '.' + departureYear;

	setArrivalWeekDay();
	setDepartureWeekDay();
}

function hideMyInputFields() {
	var arrFieldToHide = document.getElementById('arrivalDateFieldToHide');
	var depFieldToHide = document.getElementById('departureDateFieldToHide');
	arrFieldToHide.style.display = 'none';
	depFieldToHide.style.display = 'none';

	if (DayOrNight() == 'T') {
		onChangedArrivalDataForDays();
	} else {
		onChangedArrivalData();
	}
//	onChangedArrivalDataForDays();
//	onChangedArrivalData();

}


function setArrivalWeekDay()
{
	if(document.getElementById('ARR_WEEKDAY') == null)
	{
		return;
	}
	fieldDay = document.getElementById('ARR_DAY');
	fieldMonth = document.getElementById('ARR_MONTH');
	fieldYear = document.getElementById('ARR_YEAR');
	var selectedDay = fieldDay.value;
	var selectedMonth = fieldMonth.value;
	var selectedYear = fieldYear.value;
	var selectedDate = new Date();
	selectedDate.setDate(1);
	selectedDate.setMonth(fieldMonth.value);
	selectedDate.setFullYear(fieldYear.value);
	selectedDate.setDate(fieldDay.value);
	document.getElementById('ARR_WEEKDAY').value=WeekDayArray[selectedDate.getDay()];
}

function setDepartureWeekDay()
{
	if(document.getElementById('DEP_WEEKDAY') == null)
	{
		return;
	}
	departureDay = document.getElementById('dep_day').value;
	departureSelectedKey = document.getElementById('dep_month_year').value;
	departureMonth = departureSelectedKey.substring(0,2);
	departureYear = departureSelectedKey.substring(3,7);
	var selectedDate = new Date();
	selectedDate.setDate(1);
	selectedDate.setMonth(departureMonth);
	selectedDate.setFullYear(departureYear);
	selectedDate.setDate(departureDay);
	document.getElementById('DEP_WEEKDAY').value=WeekDayArray[selectedDate.getDay()];
}
