﻿function NetRateSearch(url, baseParams, checkinID, checkoutID, guestsID, divErrorID) {
    this.url = url;
    this.baseParams = baseParams;
    this.checkInID = checkinID+'_date';
    this.checkOutID = checkoutID+'_date';
    this.NumGuestsID = guestsID;
    this.errorDivID = divErrorID;
}

NetRateSearch.prototype.GotoRoomSelection = function()
{
    $('#divError').html("");
    $('#divError').hide();
    var ci = "";
    var co = "";

    var err = "";
    try {
        ci = $('#'+ this.checkInID).val();
        if (ci.length == 0)
            err = "Invalid check-in date";
        else
            ci = GetDateFromString(ci);
    }
    catch (cie) {
        err = "Invalid check-in date";
    }
    try {
        co = $('#' + this.checkOutID).val();
        if (co.length == 0) {
            err = "Invalid check-out date";
        }
        else {
            co = GetDateFromString(co);
        }
    }
    catch (coe) {
        err = "Invalid check-out date";
    }

    if (err.length == 0 && ci > co) {
        err = "Check-out date must be after check-in date";
    }
    if (err.length == 0) {
        document.location = this.buildNetRateURL();
    }
    else {

        $('#' + this.errorDivID).html(err);
        $('#' + this.errorDivID).show();
    }
}

NetRateSearch.prototype.buildNetRateURL = function() {
return this.url + "?" + this.baseParams + "&cid=" + this.calcDateVal($('#' + this.checkInID).val()) + "&cod=" + this.calcDateVal($('#' + this.checkOutID).val()) + "&nor=1&nog=" + $('#' + this.NumGuestsID).val();
}

NetRateSearch.prototype.calcDateVal = function(DateToVal) {
    var sDate = new Date("11/12/1974");
    var eDate = new Date();
    eDate.setHours(0,0,0,0);
    this.SetStringToDate(DateToVal, eDate);
    return this.days_between(eDate, sDate);
}

NetRateSearch.prototype.days_between = function(date1, date2) {

    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms);

    // Convert back to days and return
    return Math.round(difference_ms / ONE_DAY);
}


NetRateSearch.prototype.SetStringToDate = function(stringVal, dateObj) {
    var dateParts = stringVal.split('/');

    var year = eval(dateParts[2]);
    if (year < 2000)
        year = 2000 + year;

    dateObj.setFullYear(year,
                                eval(dateParts[0]) - 1,
                                eval(dateParts[1]));

}
