today          = new Date();
var isDateSet = false;

function isLeapYear(yrStr)
{
	var leapYear=false;
	var year = parseInt(yrStr, 10);
	// every fourth year is a leap year
	if (year%4 == 0)
		{
		leapYear=true;
		// unless it's a multiple of 100
		if (year%100 == 0)
			{
			leapYear=false;
			// unless it's a multiple of 400
			if (year%400 == 0)
				{
				leapYear=true;
				}
			}
		}
	return leapYear;
}


function getDaysInMonth(mthIdx, YrStr)
{
	// all the rest have 31
	var maxDays=31;
	// expect Feb. (of course)
	if (mthIdx==2)
		{
		if (isLeapYear(YrStr))
			{
			maxDays=29;
			}
		else
			{
			maxDays=28;
			}
		}
	// thirty days hath...
	if (mthIdx==4 || mthIdx==6 || mthIdx==9 || mthIdx==11)
		{
		maxDays=30;
		}
	return maxDays;
}

function acheckIn(date, month, year) {
	document.getElementById('checkIn_Day').value = date;
	if(month<10) document.getElementById('checkIn_MonthYear').value = year+"-0"+month;
	else document.getElementById('checkIn_MonthYear').value = year+"-"+month;
	checkOutAfterCheckIn("checkIn", false);
	buildCookie();
}

function updatecheckIn(date, monthyear, setToToday) {
	if(monthyear.value.substring(5,6)=="0") month = parseInt(monthyear.value.substring(6));
	else month = parseInt(monthyear.value.substring(5));
	year = parseInt(monthyear.value.substring(0,4));
	if (date.value > getDaysInMonth(month, year)){
		document.getElementById('checkIn_Day').value = getDaysInMonth(month, year);
	}
	calcheckIn.setCurrentMonth(month - 1);
	calcheckIn.setCurrentYear(year);
	if (document.getElementById('checkOut_Day')!= null) checkOutAfterCheckIn("checkIn", setToToday);
	buildCookie();
}

function checkOutAfterCheckIn(dateType, setToToday){
	checkInDate = parseInt(document.getElementById('checkIn_Day').value);
	if(document.getElementById('checkIn_MonthYear').value.substring(5,6)=="0") checkInMonth = parseInt(document.getElementById('checkIn_MonthYear').value.substring(6));
	else checkInMonth = parseInt(document.getElementById('checkIn_MonthYear').value.substring(5));
	checkInYear = parseInt(document.getElementById('checkIn_MonthYear').value.substring(0,4));
	if(document.getElementById('checkOut_MonthYear')!=null){
		checkOutDate = parseInt(document.getElementById('checkOut_Day').value);
		if(document.getElementById('checkOut_MonthYear').value.substring(5,6)=="0") checkOutMonth = parseInt(document.getElementById('checkOut_MonthYear').value.substring(6));
		else checkOutMonth = parseInt(document.getElementById('checkOut_MonthYear').value.substring(5));
		checkOutYear = parseInt(document.getElementById('checkOut_MonthYear').value.substring(0,4));

		checkInAfterToday(checkInDate, checkInMonth, checkInYear, setToToday);

		if (checkOutYear > checkInYear) return;
		if (checkOutMonth > checkInMonth && checkOutYear>=checkInYear) return;
		if (checkOutDate > checkInDate && checkOutMonth>=checkInMonth && checkOutYear>=checkInYear) return;
		if(dateType=="checkIn"){
			dateToUse = parseInt(checkInDate) + 1;
			if (getDaysInMonth(checkInMonth, checkInYear)<dateToUse)
			{
				dateToUse = "1";
				checkInMonth = parseInt(checkInMonth) + 1;
				if (checkInMonth>12){
					checkInMonth = 1;
					checkInYear = checkInYear + 1;
				}
			}
			document.getElementById('checkOut_Day').value = dateToUse;
			if(checkInMonth<10) document.getElementById('checkOut_MonthYear').value = checkInYear+"-0"+checkInMonth;
			else document.getElementById('checkOut_MonthYear').value = checkInYear+"-"+checkInMonth;
			calcheckOut.setCurrentMonth(checkInMonth - 1);
			calcheckOut.setCurrentYear(checkInYear);
		}
		else {
			dateToUse = parseInt(checkOutDate) -1;
			if (dateToUse<1)
			{
				dateToUse = getDaysInMonth((checkOutMonth-1), checkOutYear);
				checkOutMonth = parseInt(checkOutMonth) - 1;
				if (checkOutMonth<1){
					checkOutMonth = 12;
					checkOutYear = checkOutYear - 1;
				}
			}

			document.getElementById('checkIn_Day').value = dateToUse;
			if(checkOutMonth<10) document.getElementById('checkIn_MonthYear').value = checkOutYear+"-0"+checkOutMonth;
			else document.getElementById('checkIn_MonthYear').value = checkOutYear+"-"+checkOutMonth;
			calcheckIn.setCurrentMonth(checkOutMonth - 1);
			calcheckIn.setCurrentYear(checkOutYear);
			checkInAfterToday(dateToUse, checkOutMonth, checkOutYear, setToToday);
		}
	}
}

function checkInAfterToday(checkInDate, checkInMonth, checkInYear, setToToday){
	date           = today.getDate();
	month          = today.getMonth()+1;
	year           = today.getFullYear();
	if (checkInYear > year) return;
	if (checkInMonth > month && checkInYear >= year) return;
	if (checkInDate >= date && checkInMonth >= month && checkInYear >= year) return;
	if (setToToday) document.getElementById('checkIn_Day').value = date;
	if(month<10) document.getElementById('checkIn_MonthYear').value = year+"-0"+month;
	else document.getElementById('checkIn_MonthYear').value = year+"-"+month;
	if (setToToday) calcheckIn.setCurrentMonth(month - 1);
	else {
		if (month<12) calcheckIn.setCurrentMonth(month);
		else{
			calcheckIn.setCurrentMonth(0);
			year = year + 1;
		}
		month = month+1;
		if(month<10) document.getElementById('checkIn_MonthYear').value = year+"-0"+month;
		else document.getElementById('checkIn_MonthYear').value = year+"-"+month;
	}
	calcheckIn.setCurrentYear(year);
	checkOutAfterCheckIn("checkIn", setToToday);
}

function acheckOut(date, month, year) {
	document.getElementById('checkOut_Day').value = date;
	if(month<10) document.getElementById('checkOut_MonthYear').value = year+"-0"+month;
	else document.getElementById('checkOut_MonthYear').value = year+"-"+month;
	checkOutAfterCheckIn("checkOut", false);
	buildCookie();
}

function updatecheckOut(date, monthyear, setToToday) {
	if(monthyear.value.substring(5,6)=="0") month = parseInt(monthyear.value.substring(6));
	else month = parseInt(monthyear.value.substring(5));
	year = parseInt(monthyear.value.substring(0,4));
	if (date.value > getDaysInMonth(month, year)){
		document.getElementById('checkOut_Day').value = getDaysInMonth(month, year);
	}
	calcheckOut.setCurrentMonth(month - 1);
	calcheckOut.setCurrentYear(year);
	if (document.getElementById('checkIn_Day')!= null) checkOutAfterCheckIn("checkOut", setToToday);
	buildCookie();
}

function updateDateCheckin(){
	var checkIn_Day = readCookie("checkIn_Day");
	var checkIn_MonthYear = readCookie("checkIn_MonthYear");
	var checkOut_Day = readCookie("checkOut_Day");
	var checkOut_MonthYear = readCookie("checkOut_MonthYear");
	if (checkIn_MonthYear!=null && checkIn_Day!=null && checkOut_MonthYear!=null && checkOut_Day!=null && document.getElementById('checkIn_Day')!=null && document.getElementById('checkIn_MonthYear')!=null && document.getElementById('checkOut_Day')!=null && document.getElementById('checkOut_MonthYear')!=null){
		dateSelected();
		document.getElementById('checkIn_Day').value = checkIn_Day;
		document.getElementById('checkIn_MonthYear').value = checkIn_MonthYear;
		document.getElementById('checkOut_Day').value = checkOut_Day;
		document.getElementById('checkOut_MonthYear').value = checkOut_MonthYear;
		updatecheckIn(document.getElementById('checkIn_Day'), document.getElementById('checkIn_MonthYear'));
		updatecheckOut(document.getElementById('checkOut_Day'), document.getElementById('checkOut_MonthYear'));
	}
	else if (document.getElementById('checkIn_Day')!=null && document.getElementById('checkIn_MonthYear')!=null){
		checkInDate = parseInt(document.getElementById('checkIn_Day').value);
		if(document.getElementById('checkIn_MonthYear').value.substring(5,6)=="0") checkInMonth = parseInt(document.getElementById('checkIn_MonthYear').value.substring(6));
		else checkInMonth = parseInt(document.getElementById('checkIn_MonthYear').value.substring(5));
		checkInYear = parseInt(document.getElementById('checkIn_MonthYear').value.substring(0,4));
		checkInAfterToday(checkInDate, checkInMonth, checkInYear, true);
	}
	if (document.getElementById('numberOfNights')!=null)
	{
		var numberOfNights = readCookie("numberOfNights");
		if (numberOfNights!=null) document.getElementById("numberOfNights").value = numberOfNights;
	}

	if (document.getElementById('numberOfPeople')!=null)
	{
		var numberOfPeople = readCookie("numberOfPeople");
		if (numberOfPeople!=null) document.getElementById("numberOfPeople").value = numberOfPeople;
	}
}

function buildCookie(){
	if (document.getElementById('checkIn_Day')!=null && document.getElementById('checkIn_MonthYear')!=null && document.getElementById('checkOut_Day')!=null && document.getElementById('checkOut_MonthYear')!=null)
	{
		createCookie("checkIn_Day",document.getElementById('checkIn_Day').value,0);
		createCookie("checkIn_MonthYear",document.getElementById('checkIn_MonthYear').value,0);
		createCookie("checkOut_Day",document.getElementById('checkOut_Day').value,0);
		createCookie("checkOut_MonthYear",document.getElementById('checkOut_MonthYear').value,0);
	}
}

function dateSelected(){
	isDateSet = true;
	$("#checkinDates").removeClass("notSelected");
	$("#availabilitycheck").attr("checked", "");
	buildCookie();
}

function dateNotSelected(){
	isDateSet = false;
	$("#checkinDates").addClass("notSelected");
	$("#availabilitycheck").attr("checked", "checked");
	eraseCookie("checkIn_Day");
	eraseCookie("checkIn_MonthYear");
	eraseCookie("checkOut_Day");
	eraseCookie("checkOut_MonthYear");
}

function toggleDateSelected(){
	if (isDateSet) dateNotSelected();
	else dateSelected();
}