﻿// JScript File
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)
}

var bookingCal = null;
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) {
							selectDate(iDay,iMonth,iYear);
						};
		
		bookingCal = new Calendar('bookingCal',config);
		
		var lnkBookingCal = document.getElementById("lnkBookingCal");
		
		if (lnkBookingCal) {
		    Calendar.addEvent(lnkBookingCal,"click",function (e) {
                e = e?e:window.event;
                
                e.cancelBubble = true;
                if (e.preventDefault) e.preventDefault();
                if (e.stopPropagation) e.stopPropagation();
                
                bookingCal.display(document.frmBook.cmbDay);
                return false;
            });
		}
	}
}

Calendar.addEvent(window,"load",CalendarLoad);

function selectDate(iDay,iMonth,iYear) {
    document.frmBook.cmbDay.options[iDay - 1].selected = true;
	++iMonth;
	for (var i = 0;i < document.frmBook.cmbMonthYear.options.length;i++) {
		//alert(parseInt(document.frmBook.cmbYear.options[i].value) + 2000);
		var selectMonthYear = iMonth + '/' + iYear;

	    if (document.frmBook.cmbMonthYear.options[i].value == selectMonthYear) {
			document.frmBook.cmbMonthYear.options[i].selected = true;
		}
	}
}

function ValidateBooking(frm) {
    var intError = 0;
	var focus_field = null;
	
    if (!frm.cmbResort.selectedIndex) {
        frm.cmbResort.className = "resort error";
	
		intError = 1;
		if (focus_field == null) focus_field = frm.cmbResort;
    }else {
        frm.cmbResort.className = "resort";
    }
    
    if (!isValidDate(frm.cmbDay.options[frm.cmbDay.selectedIndex].value + '/' + frm.cmbMonthYear.options[frm.cmbMonthYear.selectedIndex].value)) {
        frm.cmbDay.className = "day error";
	
		intError = 1;
		if (focus_field == null) focus_field = frm.cmbDay;
    }else {
        frm.cmbDay.className = "day";
    }
    
    if (focus_field != null)
	    focus_field.focus();
	    
	if(intError == 0)
	    submitBooking(frm);
	return false;
}

function submitBooking(frm) {
    if (bookingUrl != null) {
        var url = bookingUrl[frm.cmbResort.selectedIndex];
        if(url != '') {
            var frmBooking = document.getElementById("frmBooking");
            var arrUrl = url.split("?");
            frmBooking.action = arrUrl[0];
            arrUrl = arrUrl[1].split("&");
            var iQry = null;
            for (var i=0;i<arrUrl.length;i++) {
                Qry = arrUrl[i].split("=");
                iQry = $("txtInput").clone().injectBefore('txtInput');
                iQry.set('name', Qry[0]);
                iQry.set('value', Qry[1]);
            }
            var arrMY = frm.cmbMonthYear.options[frm.cmbMonthYear.selectedIndex].value.split("/");
            var arrD = frm.cmbDay.options[frm.cmbDay.selectedIndex].value;
            if(url.indexOf("ihotelier.com") > 0) {
                var arrDate = arrMY[0]+"/"+arrD+"/"+arrMY[1];
                
                $("txtInput").set('name', 'DateIn');
                $("txtInput").set('value', arrDate);
            } else if(url.indexOf("trustinternational.com") > 0) {
                iQry = $("txtInput").clone().injectBefore('txtInput');
                iQry.set('name', 'in_day');
                iQry.set('value', arrD);
                iQry = $("txtInput").clone().injectBefore('txtInput');
                iQry.set('name', 'in_month');
                iQry.set('value', arrMY[0]+'-'+arrMY[1]);
                iQry = $("txtInput").clone().injectBefore('txtInput');
                iQry.set('name', 'out_day');
                arrD++;
                if(!isValidDate(arrD+"/"+arrMY[0]+"/"+arrMY[1])) {
                    arrD = 1;
                    arrMY[0]++;
                    if (arrMY[0]>12) {
                        arrMY[0] = 1;
                        arrMY[1]++;
                    }
                }
                iQry.set('value', arrD);
                $("txtInput").set('name', 'out_month');
                $("txtInput").set('value', arrMY[0]+'-'+arrMY[1]);
            }
            frmBooking.submit();
            
            var iQ = frmBooking.getElements('input');
            iQ.each(function(item, index){
                if(item.get('id') == "txtInput") {
                    item.set('name', '');
                    item.set('value', '');
                } else {
                    item.dispose();
                }
            });
        }
    }
}