var startCal;
var endCal;

String.prototype.left = function(length) {
	return this.substring(0,length);
}

String.prototype.right = function(length) {
	return this.substring(this.length - length,this.length);
}

function CalendarLoad() {
	if (typeof Calendar == "function") {
		var start = new Date();
		var end = start.valueOf() + (Calendar.OneDay * 365);
		
		var config = new Calendar.Config();
		config.startDate = start;
		config.endDate = new Date(end);
		config.className = 'calendar';
		config.width = 180;
	
		config.selectDate = new Date();
		
		config.autoHide = false;
		config.closeOnSelect = true;
		config.callBack = function (iDay,iMonth,iYear) {
							selectStartDate(iDay,iMonth,iYear);
						};
		
		startCal = new Calendar('startCal',config);
		
		var endconfig = new Calendar.Config();
		endconfig.startDate = new Date(start.valueOf()+Calendar.OneDay);
		endconfig.endDate = new Date(end+Calendar.OneDay);
		endconfig.className = 'calendar';
		endconfig.width = 180;
	
		endconfig.selectDate = endconfig.startDate;
		
		endconfig.autoHide = false;
		endconfig.closeOnSelect = true;
		endconfig.callBack = function (iDay,iMonth,iYear) {
							selectEndDate(iDay,iMonth,iYear);
						};
		
		endCal = new Calendar('endCal',endconfig);
	}
}

function selectStartDate(iDay,iMonth,iYear) {
    document.frmBook.cmbCheckInDay.options[iDay - 1].selected = true;
	++iMonth;
	for (var i = 0;i < document.frmBook.cmbCheckInMonth.options.length;i++) {
		//alert(parseInt(document.frmBook.cmbYear.options[i].value) + 2000);
		var selectMonthYear = ('00' + iMonth).right(2) + '/' + iYear;

	    if (document.frmBook.cmbCheckInMonth.options[i].value == selectMonthYear) {
			document.frmBook.cmbCheckInMonth.options[i].selected = true;
		}
	}
}

function selectEndDate(iDay,iMonth,iYear) {
    document.frmBook.cmbCheckOutDay.options[iDay - 1].selected = true;
	++iMonth;
	for (var i = 0;i < document.frmBook.cmbCheckOutMonth.options.length;i++) {
		//alert(parseInt(document.frmBook.cmbYear.options[i].value) + 2000);
		var selectMonthYear = ('00' + iMonth).right(2) + '/' + iYear;

	    if (document.frmBook.cmbCheckOutMonth.options[i].value == selectMonthYear) {
			document.frmBook.cmbCheckOutMonth.options[i].selected = true;
		}
	}
}

Calendar.addEvent(window,"load",CalendarLoad);

function isValidDate(val) {
	var strExp;
	return (val.search(/^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/gi) != -1)
}
/*
Validate two Date is valid range
1: date1 > date2
2: date1 < date 2
3: date1 = date2
*/
function dateCompare(iDay1,iMonth1,iYear1,iDay2,iMonth2,iYear2) {
	iDay1 = parseInt(iDay1,10);
	iMonth1 = parseInt(iMonth1,10);
	iYear1 = parseInt(iYear1,10);
	
	iDay2 = parseInt(iDay2,10);
	iMonth2 = parseInt(iMonth2,10);
	iYear2 = parseInt(iYear2,10);
	
	var result = 0;
	if (iYear1 > iYear2) {
		result = 1;
	}else if (iYear1 < iYear2) {
		result = 2;
	}else {
		if (iMonth1 > iMonth2) {
			result = 1;
		}else if (iMonth1 < iMonth2) {
			result = 2;
		}else {
			if (iDay1 > iDay2) {
				result = 1;
			}else if (iDay1 < iDay2){
				result =  2;
			}else {
				result = 3;
			}
		}
	}
	return result;
}

function bookingMask(frm)
{
	if (frm.cmbHotel) {
		if (frm.cmbHotel.selectedIndex > 0) {
			if (frm.cmbHotel.options[frm.cmbHotel.selectedIndex].value.substr(0,7).toLowerCase() == "http://") {
				frm.action = frm.cmbHotel.options[frm.cmbHotel.selectedIndex].value;
				frm.target = "_self";
			} else {
				frm.action = "https://booking.ihotelier.com/istay/istay.jsp";
				frm.target = "_blank";
				frm.method = "get";
				frm.hotelid.value = frm.cmbHotel.options[frm.cmbHotel.selectedIndex].value;
			}
		} else {
			$('#cmbHotel').css('border-color', '#CC1D1A');
			return false;
		}
	}
	
	var arrival,departure;
	var arrStartMY = frm.cmbCheckInMonth.value.split('/');
	var startDay = (frm.cmbCheckInDay.options[frm.cmbCheckInDay.selectedIndex].value);
	var startMonth = (arrStartMY[0]);
	var startYear = (arrStartMY[1]);
	
	if (isValidDate(startDay + '/' + startMonth + '/' + startYear)) {		
		frm.dateIn.value = startMonth + '/' + startDay + '/' + startYear;
	}else {
		$('#txtCheckIn').css('color', '#CC1D1A');
		return false;
	}
	
	var arrEndMY = frm.cmbCheckOutMonth.value.split('/');
	var endDay = (frm.cmbCheckInDay.options[frm.cmbCheckOutDay.selectedIndex].value);
	var endMonth = (arrEndMY[0]);
	var endYear = (arrEndMY[1]);
	
	if (isValidDate(endDay + '/' + endMonth + '/' + endYear)) {		
		frm.dateOut.value = endMonth + '/' + endDay + '/' + endYear;
	}else {
		$('#txtCheckOut').css('color', '#CC1D1A');
		return false;
	}
	
	if (dateCompare(startDay,startMonth,startYear,endDay,endMonth,endYear) != 2) {
		$('#txtCheckIn').css('color', '#CC1D1A');
		$('#txtCheckOut').css('color', '#CC1D1A');
		return false;
	}

	try {
		if (pageTracker != null)
			pageTracker._trackPageview('/outgoing/reservation/');
	} catch(err) {}
	
	return (true);
}