
//ver1.2

var curDate = new Date();
var dateBefore = false;
var dateValid = true;
var dateEleven1 = 0;
var dateEleven2 = 0;

function checkDeparture() {

	var s_AbflugT = parseInt((document.Search.s_AbflugT.value), 10);
	var s_AbflugM = parseInt((document.Search.s_AbflugM.value), 10);
	var s_AbflugJ = parseInt((document.Search.s_AbflugJ.value), 10);
	
	var returnDay = parseInt((document.Search.returnDay.value), 10);
	var returnMonth = parseInt((document.Search.returnMonth.value), 10);
	var returnYear = parseInt((document.Search.returnYear.value), 10);
	
	monthDayArray = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
	lastMonthDays = parseInt(monthDayArray[returnMonth]);

	startDay = curDate.getUTCDate() + 5;
	startMonth = curDate.getMonth();
	startMonthDays = monthDayArray[startMonth];
	
	if (startDay > startMonthDays) {
		startDay = (startDay - startMonthDays);
		startMonth++;
	}
	
	startYear = curDate.getUTCFullYear();
	
	if (s_AbflugJ > returnYear) {
	document.Search.returnYear.selectedIndex = document.Search.s_AbflugJ.selectedIndex ;
		if (s_AbflugM >= returnMonth) {
			document.Search.returnMonth.selectedIndex = s_AbflugM -1;
			
			if (s_AbflugT >= returnDay) {
			
				if (s_AbflugM == 12) {
					document.Search.returnMonth.selectedIndex = 0;
					document.Search.returnYear.selectedIndex = document.Search.s_AbflugJ.selectedIndex + 1;
					document.Search.returnDay.selectedIndex = 0;
				} else {
					if (document.Search.returnMonth.selectedIndex != 11) {
						document.Search.returnMonth.selectedIndex = document.Search.returnMonth.selectedIndex + 1;
					}
					document.Search.returnDay.selectedIndex = 0;
				}
			}
		}
	
	} else if (s_AbflugJ == returnYear) {
		if (s_AbflugM >= returnMonth) {
			document.Search.returnMonth.selectedIndex = s_AbflugM -1;
			if (s_AbflugT >= returnDay) {
				if (s_AbflugM == 12) {
					document.Search.returnMonth.selectedIndex = 0;
					document.Search.returnYear.selectedIndex = document.Search.returnYear.selectedIndex + 1;
					document.Search.returnDay.selectedIndex = 0;
				} else {
					if (document.Search.returnMonth.selectedIndex != 11) {
						document.Search.returnMonth.selectedIndex = document.Search.returnMonth.selectedIndex + 1;
					}
					document.Search.returnDay.selectedIndex = 0;
				}		
			}
		}	
	} else { //(s_AbflugJ < returnYear)

	}

	s_AbflugT = parseInt((document.Search.s_AbflugT.value), 10);
	s_AbflugM = parseInt((document.Search.s_AbflugM.value), 10);
	s_AbflugJ = parseInt((document.Search.s_AbflugJ.value), 10);
	
	returnDay = parseInt((document.Search.returnDay.value), 10);
	returnMonth = parseInt((document.Search.returnMonth.value), 10);
	returnYear = parseInt((document.Search.returnYear.value), 10);
	
	if (s_AbflugJ < startYear) {
			dateBefore = true;
	} else if (s_AbflugJ == startYear) {
			if (s_AbflugJ > returnYear) {
					dateBefore = true;
			} else if (s_AbflugJ == returnYear) {
					dateBefore = true;
					if ((s_AbflugM - 1) < startMonth) {
							dateBefore = true;
					} else if ((s_AbflugM - 1) == startMonth) {
							if ((s_AbflugT) < startDay) {
									dateBefore = true;
							} else {
									dateBefore = false;
							}
					} else {
							dateBefore = false;
					}
			} else { //(s_AbflugJ > returnYear) 
					dateBefore = false;
			}
	} else {
			dateBefore = false;
	}

	if ((s_AbflugJ >= returnYear) && ((s_AbflugM - 1) > returnMonth)) {
		dateValid = false;
	}
	else if ((s_AbflugJ >= returnYear) && ((s_AbflugM - 1) == returnMonth) && (s_AbflugT > returnDay)) {
		dateValid = false;
	}
	else {
		dateValid = true;
	}
}

function checkReturn(type) {

	var s_AbflugT = (document.Search.s_AbflugT.value);
	var s_AbflugM = (document.Search.s_AbflugM.value);
	
	var returnDay = (document.Search.returnDay.value);
	var returnMonth = (document.Search.returnMonth.value);
	
	var s_AbflugJ = parseInt(document.Search.s_AbflugJ.value);
	var returnYear = parseInt(document.Search.returnYear.value);

	if(returnYear < s_AbflugJ) {
		if (type == 1) {
			alert("please make sure that you select a return date that is on the same day or after your departure date.");
		}
		dateValid = false;
		
	} else if(returnYear == s_AbflugJ) {

		if (s_AbflugM > returnMonth) {
			if (type == 1) {
				alert("please make sure that you select a return date that is on the same day or after your departure date.");
			}
			dateValid = false;
		}
		else dateValid = true;
		if (s_AbflugM == returnMonth) {
			if (parseInt(s_AbflugT) > parseInt(returnDay)) {
				if (type == 1) {
					alert("please make sure that you select a return date that is on the same day or after your departure date.");
				}
				dateValid = false;
			}
			else dateValid = true;
		}
		
	} 
	
}

function checkEleven(type) {

	if (type == 1) {
		Day = parseInt((document.Search.s_AbflugT.value), 10);
		Month = parseInt((document.Search.s_AbflugM.value), 10);
		Year = parseInt((document.Search.s_AbflugJ.value), 10);
	} else {
		Day = parseInt((document.Search.returnDay.value), 10);
		Month = parseInt((document.Search.returnMonth.value), 10);
		Year = parseInt((document.Search.returnYear.value), 10);
	}

	startDay = curDate.getUTCDate();
	startMonth = curDate.getMonth();
	startYear = curDate.getUTCFullYear();
	
	if (Year == startYear) {
		if (Month - 12 > startMonth) {
			dateElevenSet1(type);
		} else if (Month - 12 == startMonth){
			if (Day >= startDay) {
				dateElevenSet1(type);
			} else {
				dateElevenSet0(type);
			}
		} else {
			dateElevenSet0(type);
		}
	} else if (Year > startYear) {
		if (Month > startMonth) {
			dateElevenSet1(type);
		} else if (Month == startMonth) {
			if (Day >= startDay) {
				dateElevenSet1(type);
			} else {
				dateElevenSet0(type);
			}
		} else {
			dateElevenSet0(type);
		}	
	} else {
		dateElevenSet0(type);
	}
}

function dateElevenSet1(type) {
	if (type == 1) {
		dateEleven1 = true;
	} else if (type == 2) {
		dateEleven2 = true;
	}
}

function dateElevenSet0(type) {
	if (type == 1) {
		dateEleven1 = false;
	} else if (type == 2) {
		dateEleven2 = false;
	}
}



//makeMonth function for filling selects with correct amount of days

function makeMonth(month,daySelect,year) {
	
	//depending on month fill the day drop down with the right amount of days
	monthDayArray = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
	//create dayArray
	monthDaySelect = new Select();

	monthDaysThis = monthDayArray[month];
	monthDaysLast = monthDayArray[month -1];
	
	//for all days in month: do
	for (var i = 1; i <= monthDayArray[month]; i++) {
		//if current month
		if (month == curDate.getMonth() && year == curDate.getUTCFullYear()) {
			if (i < curDate.getUTCDate()) {
				//don't add day to SELECT box
				monthDaySelect.addOption(i,i,"#cccccc",false);	
			}
			else if (i - 5 < curDate.getUTCDate()) {
				monthDaySelect.addOption(i,i,"#cc0000",false);	
			}
			else if (i - 5 == curDate.getUTCDate()) {
				monthDaySelect.addOption(i,i,"#009900",true);
				monthDaySelect.selectedIndex = monthDaySelect.options.length -1;
			}
			else {
				monthDaySelect.addOption(i,i,"#000000",false);	
			}
		} else if (month == (curDate.getMonth() + 1) && year == curDate.getUTCFullYear()) {
			remainderDays = (monthDaysLast - curDate.getUTCDate()) + 1;
			remainderDays = 6 - remainderDays;
			if (i < remainderDays) {
				//don't add day to SELECT box
				monthDaySelect.addOption(i,i,"#cc0000",false);	
			}
			else if (i == remainderDays) {
				monthDaySelect.addOption(i,i,"#009900",true);
				monthDaySelect.selectedIndex = monthDaySelect.options.length -1;
			}
			else {
				monthDaySelect.addOption(i,i,"#000000",false);	
			}
		}
		else {
			monthDaySelect.addOption(i,i,"#000000",false);	
		}
	}
	daySelected = daySelect.selectedIndex;
	Select.copy(monthDaySelect,daySelect);
	daySelect.selectedIndex = daySelected;
}

function setDate() {

	var checkTimeout;
	var dateBefore = false;

	startYear = 0;
	returnYear = 0;

	startMonth = curDate.getMonth();
	returnMonth = curDate.getMonth();
	startDay = curDate.getUTCDate() + 5;
	returnDay = curDate.getUTCDate() + 12;

	monthDayArray = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
	lastMonthDays = parseInt(monthDayArray[returnMonth]);

	if (startDay > parseInt(monthDayArray[startMonth])) {
	
		if (startMonth == 11) {
			startMonth = 0;
			startYear++;
		} else {
			startMonth++;
		}
	
		startDay = startDay - lastMonthDays;
	} 

	if (returnDay > parseInt(monthDayArray[returnMonth])) {
	
		if (returnMonth == 11) {
			returnMonth = 0;
			returnYear++;
		} else {
			returnMonth++;
		}
	
		returnDay = returnDay - lastMonthDays;
	} 

	
	
	if (document.Search.returnMonth.selectedIndex == 0) {
		document.Search.returnMonth.selectedIndex = returnMonth;
		makeMonth(returnMonth,document.Search.returnDay,parseInt(document.Search.returnYear.value,10));
	
		document.Search.s_AbflugM.selectedIndex = startMonth;
		makeMonth(startMonth,document.Search.s_AbflugT,parseInt(document.Search.s_AbflugJ.value, 10));
		document.Search.s_AbflugT.selectedIndex = startDay - 1;
		document.Search.returnDay.selectedIndex = returnDay - 1;
		document.Search.s_AbflugJ.selectedIndex = startYear;
		document.Search.returnYear.selectedIndex = returnYear;
	}
}

function resetDate(){

	var checkTimeout;
	var dateBefore = false;

	startYear = 0;
	returnYear = 0;

	curDate = new Date()
	startMonth = curDate.getMonth();
	returnMonth = curDate.getMonth();
	startDay = curDate.getUTCDate() + 5;
	returnDay = curDate.getUTCDate() + 12;

	monthDayArray = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
	lastMonthDays = parseInt(monthDayArray[returnMonth]);

	if (startDay > parseInt(monthDayArray[startMonth])) {
	
		if (startMonth == 11) {
			startMonth = 0;
			startYear++;
		} else {
			startMonth++;
		}
	
		startDay = startDay - lastMonthDays;
	} 

	if (returnDay > parseInt(monthDayArray[returnMonth])) {
	
		if (returnMonth == 11) {
			returnMonth = 0;
			returnYear++;
		} else {
			returnMonth++;
		}
	
		returnDay = returnDay - lastMonthDays;
	} 

	if (document.Search.returnMonth.selectedIndex == 0) {
		document.Search.returnMonth.selectedIndex = returnMonth;
		makeMonth(returnMonth,document.Search.returnDay,document.Search.returnYear.value);
	
		document.Search.s_AbflugM.selectedIndex = startMonth;
		makeMonth(startMonth,document.Search.s_AbflugT,document.Search.s_AbflugJ.value);
		document.Search.s_AbflugT.selectedIndex = startDay - 1;
		document.Search.returnDay.selectedIndex = returnDay - 1;
		document.Search.s_AbflugJ.selectedIndex = startYear;
		document.Search.returnYear.selectedIndex = returnYear;
	}

}

dateValid = true;

//End