﻿// JScript File

function ValidateCheckInDate(ddlDay, ddlMon, ddlYear, errorMsg)
{
    var checkInDay   = ddlDay.value;
    var checkInMon   = ddlMon.value;
    var checkInYear  = ddlYear.value;
      
    var checkInDate = checkInMon+"/"+checkInDay+"/"+checkInYear;
    
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/; 
    var matchArray = checkInDate.match(datePat);

    var currDate       = new Date();
   
    var currDay        = currDate.getDate();
    var currMon        = currDate.getMonth()+1;
    var currYear       = currDate.getFullYear();
    var currdateStr    = currMon+"/"+currDay+"/"+currYear;
    
    var currdatePat    = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
    var obj;

    if (matchArray == null)
    { 
        alert(errorMsg[0]); ;
        return false; 
    } 

    month = matchArray[1];
    day = matchArray[3]; 
    year = matchArray[4]; 

    if ((month==4 || month==6 || month==9 || month==11) && day==31)
    {
        if (month == 4)
        {
            alert(errorMsg[2].replace("[monthName]", "April"));
            ddlDay.value = 30;
            ddlDay.focus;
            return false;
        }
        if (month == 6)
        {
            alert(errorMsg[2].replace("[monthName]", "June"));
            ddlDay.value = 30;
            ddlDay.focus;
            return false;
        }

	    if (month == 9)
        {
            alert(errorMsg[2].replace("[monthName]", "September"));
            ddlDay.value = 30;
            ddlDay.focus;
            return false;
        }

        if (month == 11)
        {
            alert(errorMsg[2].replace("[monthName]", "November"));
            ddlDay.value = 30;
            ddlDay.focus;
            return false;
        }
    } 

    if (month == 2)
    {
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 
        
        if (day>29 || (day==29 && !isleap))
        { 
            var strErrMsgFeb = errorMsg[3];
            strErrMsgFeb = strErrMsgFeb.replace("[year]", year);
            strErrMsgFeb = strErrMsgFeb.replace("[day]", day);
            alert(strErrMsgFeb);
            
            if (isleap) ddlDay.value = 29;
            else ddlDay.value = 28;
            ddlDay.focus;
            return false; 
        } 
    } 	
    
    if (Date.parse(currdateStr) > Date.parse(checkInDate))
    {
        alert(errorMsg[1]); 
        
        ddlDay.value = currDay;
        ddlMon.value = currMon;
        ddlYear.value = currYear;
        ddlDay.focus;
        return false;
    }  
    return true;
}

function ValidateCID(ddlDay, ddlMonYear, errorMsg)
{
    var checkInDay      = ddlDay.value;
    var checkInMonYear  = ddlMonYear.value;
    
    var array = checkInMonYear.split(" ");
    
    var checkInMon  = GetMonthNumber(array[0]);
    var checkInYear = array[1];
    
    var checkInDate = checkInMon+"/"+checkInDay+"/"+checkInYear;
    
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/; 
    var matchArray = checkInDate.match(datePat);

    var currDate       = new Date();
   
    var currDay        = currDate.getDate();
    var currMon        = currDate.getMonth()+1;
    var currYear       = currDate.getFullYear();
    var currdateStr    = currMon+"/"+currDay+"/"+currYear;
    
    var currdatePat    = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
    var obj;
    
    if (matchArray == null)
    { 
        alert(errorMsg[0]); 
        return false; 
    } 

    month = matchArray[1];
    day = matchArray[3]; 
    year = matchArray[4]; 

    if ((month==4 || month==6 || month==9 || month==11) && day==31)
    {
        if (month == 4)
        {
            alert(errorMsg[2].replace("[monthName]", "April"));
            ddlDay.value = 30;
            ddlDay.focus;
            return false;
        }
        if (month == 6)
        {
            alert(errorMsg[2].replace("[monthName]", "June"));
            ddlDay.value = 30;
            ddlDay.focus;
            return false;
        }

	    if (month == 9)
        {
            alert(errorMsg[2].replace("[monthName]", "September"));
            ddlDay.value = 30;
            ddlDay.focus;
            return false;
        }

        if (month == 11)
        {
            alert(errorMsg[2].replace("[monthName]", "November"));
            ddlDay.value = 30;
            ddlDay.focus;
            return false;
        }
    } 

    if (month == 2)
    {
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 

        if (day>29 || (day==29 && !isleap))
        { 
            var strErrMsgFeb = errorMsg[3];
            strErrMsgFeb = strErrMsgFeb.replace("[year]", year);
            strErrMsgFeb = strErrMsgFeb.replace("[day]", day);
            alert(strErrMsgFeb);
            
            if (isleap) ddlDay.value = 29;
            else ddlDay.value = 28;
            ddlDay.focus;
            return false; 
        } 
    } 	
    
    if (Date.parse(currdateStr) > Date.parse(checkInDate))
    {
        //alert("Invalid Check In Date."); 
        alert(errorMsg[1]); 
                
        ddlDay.value = currDay;
        ddlDay.focus;
        return false;
    }
    return true;
}

function GetMonthNumber(monthName)
{
    switch(monthName)
    {
        case "Jan" :
            return 1;
        case "Feb":
            return 2;
        case "Mar" :
            return 3;
        case "Apr":
            return 4;     
        case "May":
            return 5;           
        case "Jun":
            return 6;     
        case "Jul":
            return 7;           
        case "Aug":
            return 8;     
        case "Sep":
            return 9;           
        case "Oct":
            return 10;     
        case "Nov":
            return 11;
        case "Dec":
            return 12;              
    } 
}

function ResetFilter()
{
    document.getElementById("WUCHotelFilters_chkAllRange").checked = true;
	document.getElementById("WUCHotelFilters_chkInstant").checked = false;
	//document.getElementById("WUCHotelFilters_chkStarRatingAll").checked = false;
	//document.getElementById("WUCHotelFilters_chkStarRatingStar").checked = false;
	//document.getElementById("WUCHotelFilters_chkStarRatingBoutique").checked = false;
	//document.getElementById("WUCHotelFilters_chkStarRatingBudget").checked = false;
	document.getElementById("WUCHotelFilters_ddlLocation").value = "All";
	document.getElementById("WUCHotelFilters_txtHotelName").value = "";
	document.getElementById("WUCHotelFilters_hdnSliderFlag").value = "0";
	document.getElementById("hSliderX1").value = "0";
	document.getElementById("hSliderX2").value = "184";
}
		

function ValidateQuickSearch()
{
    var ddlDay  = document.getElementById("WUCQuickSearch2_ddlDay");
    var ddlMon  = document.getElementById("WUCQuickSearch2_ddlMon");
    var ddlYear  = document.getElementById("WUCQuickSearch2_ddlYear");
    if (ValidateCheckInDate(ddlDay, ddlMon, ddlYear, ErrorMsgCheckInDate) == true)
    {
        ResetFilter();
        return true;
    }
    return false;
}

function DisableCity()
{
    var objCity  = document.getElementById("WUCQuickSearch2_city");
    var objCityLoading  = document.getElementById("cityLoading");

    objCity.style.display = "none";
    objCityLoading.style.display = "";
} 

function initPreloader()
{
    var objQSPreloader = document.getElementById("qs_preloader");
    var objHFPreloader = document.getElementById("hf_preloader");
    var objHLPreloader = document.getElementById("hl_preloader");
    var left = (f_clientWidth() - 520) / 2;
    var top = (f_clientHeight() / 2)+ 150;
    objQSPreloader.style.left = left;
    objQSPreloader.style.top = top;
    objHFPreloader.style.left = left;
    objHFPreloader.style.top = top;
    objHLPreloader.style.left = left;
    objHLPreloader.style.top = top;
} 

