﻿    function popReserveOnline(useLocalSearch)
    {
        var propertyID;
        var sourceID;
        var date;
        var checkOutDate;
        var checkOutString;
        var nights;
        var rooms;
        var url;
        var hotelID;
        var validData;
        var controlPreFix;
        var i;
        var j;
        var k;
        
        validData = true;
        
        i = 0;
        j = 0;
        k = 0;
        while (eval('document.aspnetForm.ctl00_ctl' + i + j + '_' + 'ddlNights') == null && k < 100)
        {
            j = j + 1;
            
            if (j == 10)
            {
                j = 0;
                i = i + 1;
            }

            k = k + 1;
        }
        
        controlPreFix = 'ctl00_ctl' + i + j + '_';
        
        if (eval('document.aspnetForm.' + controlPreFix + 'ddlProperty') == null)
        {
            //Get property id from the hidden text field
            propertyID = eval('document.aspnetForm.' + controlPreFix + 'txtPropertyID.value');
        }
        else
        {
            //Get property id from the property drop down
            propertyID = eval('document.aspnetForm.' + controlPreFix + 'ddlProperty[document.aspnetForm.' + controlPreFix + 'ddlProperty.selectedIndex].value');
        }
        
        date = eval('document.aspnetForm.' + controlPreFix + 'txtCheckIn_txtDate.value');
        nights = eval('document.aspnetForm.' + controlPreFix + 'ddlNights[document.aspnetForm.' + controlPreFix + 'ddlNights.selectedIndex].value');
        rooms = eval('document.aspnetForm.' + controlPreFix + 'ddlRooms[document.aspnetForm.' + controlPreFix + 'ddlRooms.selectedIndex].value');

	    validData = isDate(date);
        
        if (validData && propertyID != "")
        {
            checkOutDate = new Date(date);
            checkOutDate.setDate(checkOutDate.getDate() + parseInt(nights))
            checkOutString = checkOutDate.getMonth() + 1 + "/" + checkOutDate.getDate() + "/" + checkOutDate.getFullYear();

            if (useLocalSearch)
            {
                url = "http://reservations.ihotelier.com/areasearch/default.cfm?portalsymbol=phr&languageid=1&rooms=" + rooms + "&length=" + nights + "&dateIn=" + date + "&hotelid=";
            }
            else
            {
                //url = "https://reservations.ihotelier.com/onescreen.cfm?languageid=1&rooms=" + rooms + "&length=" + nights + "&dateIn=" + date + "&hotelid=";
                url = "https://booking.ihotelier.com/istay/istay.jsp?languageid=1&rooms=" + rooms + "&length=" + nights + "&dateIn=" + date + "&hotelid=";
            }

            if (propertyID == "13")
            {
                //OBC
                hotelID = "6470";
            }
            else if (propertyID == "2")
            {
                //Dolphin Inn
                hotelID = "6816";
            }
            else if (propertyID == "1")
            {
                //Boardwalk
                hotelID = "6818";
            }
            else if (propertyID == "7")
            {
                //Turtle Cay
                hotelID = "6817";
            }
            else if (propertyID == "3")
            {
                //Nags Head
                //url = "https://www.travelodge.com/Travelodge/control/Booking/modify_dates?sid=&p_brand=TL&p_pid=00951&client_account2=700003&checkInDate=" + date + "&checkOutDate=" + checkOutString + "&numberRooms=" + rooms;
                hotelID = "14711";
            }
            else if (propertyID == "6")
            {
                //Ramada
                //checkOutDate.setDate(date + nights);
                //url = "https://www.ramada.com/Ramada/control/Booking/modify_dates?p_brand=RA&p_pid=04942&checkInDate=" + date + "&checkOutDate=" + checkOutString + "&numberRooms=" + rooms;
                hotelID = "14713";
            }
            else if (propertyID == "4")
            {
                //Clarion
                hotelID = "14712";
            }
            else if (propertyID == "10")
            {
                //Clarion
                hotelID = "14809";
            }
            
            url = url + hotelID;
            
            window.open(url);
        }
    }

    //Date Variables
    var dtCh= "/";
    var minYear=1900;
    var maxYear=2100;

    function isInteger(s){
	    var i;
        for (i = 0; i < s.length; i++){   
            // Check that current character is number.
            var c = s.charAt(i);
            if (((c < "0") || (c > "9"))) return false;
        }
        // All characters are numbers.
        return true;
    }

    function stripCharsInBag(s, bag){
	    var i;
        var returnString = "";
        // Search through string's characters one by one.
        // If character is not in bag, append to returnString.
        for (i = 0; i < s.length; i++){   
            var c = s.charAt(i);
            if (bag.indexOf(c) == -1) returnString += c;
        }
        return returnString;
    }

    function daysInFebruary (year){
	    // February has 29 days in any year evenly divisible by four,
        // EXCEPT for centurial years which are not also divisible by 400.
        return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
    }
    function DaysArray(n) {
	    for (var i = 1; i <= n; i++) {
		    this[i] = 31
		    if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		    if (i==2) {this[i] = 29}
       } 
       return this
    }

    function isDate(dtStr){
	    var daysInMonth = DaysArray(12)
	    var pos1=dtStr.indexOf(dtCh)
	    var pos2=dtStr.indexOf(dtCh,pos1+1)
	    var strMonth=dtStr.substring(0,pos1)
	    var strDay=dtStr.substring(pos1+1,pos2)
	    var strYear=dtStr.substring(pos2+1)
	    strYr=strYear
	    if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	    if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	    for (var i = 1; i <= 3; i++) {
		    if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	    }
	    month=parseInt(strMonth)
	    day=parseInt(strDay)
	    year=parseInt(strYr)
	    if (pos1==-1 || pos2==-1){
		    alert("The date format should be : mm/dd/yyyy")
		    return false
	    }
	    if (strMonth.length<1 || month<1 || month>12){
		    alert("Please enter a valid month")
		    return false
	    }
	    if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		    alert("Please enter a valid day")
		    return false
	    }
	    if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		    alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		    return false
	    }
	    if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		    alert("Please enter a valid date")
		    return false
	    }
    return true
    }