protected void RateGridDate_Click(object sender, DateTime dtRateGridDate)
    {
        RateGridEventArgs objRateGridEventArgs = new RateGridEventArgs();
        objRateGridEventArgs.NewStartDate = dtRateGridDate;
        objRateGridEventArgs.Operation = RateGridOperation.DateSelected;

        RateGridDateSelected(this, objRateGridEventArgs);
        return;
    }
    protected void btnRateGridPrevious_Click(object sender, EventArgs e)
    {
        DateTime dtNewStartDate = this._GridStartDate.AddDays(this._GridNumberDays * -1);

        if (dtNewStartDate.Date < _GridTodayDate.Date)
            dtNewStartDate = _GridTodayDate.Date;

        RateGridEventArgs objRateGridEventArgs = new RateGridEventArgs();
        objRateGridEventArgs.NewStartDate = dtNewStartDate;
        objRateGridEventArgs.Operation = RateGridOperation.MovePrevious;

        RateGridDateSelected(this, objRateGridEventArgs);
        return;
    }
    protected void btnRateGridNext_Click(object sender, EventArgs e)
    {
        RateGridEventArgs objRateGridEventArgs = new RateGridEventArgs();
        objRateGridEventArgs.NewStartDate = this._GridStartDate.AddDays(this._GridNumberDays);
        objRateGridEventArgs.Operation = RateGridOperation.MoveNext;

        RateGridDateSelected(this, objRateGridEventArgs);
        return;
    }
    protected void RateGridDateSelected(object sender, RateGridEventArgs objRateGridEventArgs)
    {
        Session["RateGridStartDate"] = objRateGridEventArgs.NewStartDate.Date;

        if (objRateGridEventArgs.Operation == RateGridOperation.DateSelected)
        {
            WbsUiHelper.SyncStayDatesToRateGrid(objRateGridEventArgs.NewStartDate);

            WbsUiHelper.InitRoomRateSelections();
            WbsUiHelper.InitAddOnPackageSelections();
            WbsUiHelper.InitGuestDetailsEntryInfo();

            if (this.IsGuestDetailsTestPrefill)
                WbsUiHelper.PrefillGuestDetailsEntryInfoForTesting();

            bAsyncGetHotelAvailInfo = true;
        }

        else if (objRateGridEventArgs.Operation == RateGridOperation.MovePrevious || objRateGridEventArgs.Operation == RateGridOperation.MoveNext)
        {
            string strSelectedRoom = (string)Session["SelectedRoom"];
            HotelAvailabilityRS objHotelAvailabilityRS = (HotelAvailabilityRS)Session["HotelAvailabilityRS"];

            AvailabilityCalendar objAvailabilityCalendar = new AvailabilityCalendar();

            for (int i = 0; i < objHotelAvailabilityRS.HotelRoomAvailInfos.Length; i++)
            {
                if (objHotelAvailabilityRS.HotelRoomAvailInfos[i].SegmentRefID == strSelectedRoom)
                {
                    objAvailabilityCalendar = objHotelAvailabilityRS.HotelRoomAvailInfos[i].AvailabilityCalendar;
                    break;
                }

            }

            if (!WbsUiHelper.IsRateGridDataCached(objAvailabilityCalendar, objRateGridEventArgs.NewStartDate, this.NumberDaysInRateGrid))
            {
                bAsyncGetHotelAvailInfo = true;
            }

        }

        return;
    }
    protected void RateGridDateSelected(object sender, RateGridEventArgs objRateGridEventArgs)
    {
        Session["SearchRateGridStartDate"] = objRateGridEventArgs.NewStartDate.Date;

        if (objRateGridEventArgs.Operation == RateGridOperation.DateSelected)
        {
            WbsUiHelper.SyncStayDatesToRateGrid(objRateGridEventArgs.NewStartDate);

            bAsyncGetSearchHotelAvailCalendarInfo = true;
        }

        else if (objRateGridEventArgs.Operation == RateGridOperation.MovePrevious || objRateGridEventArgs.Operation == RateGridOperation.MoveNext)
        {
            bAsyncGetSearchHotelAvailCalendarInfo = true;
        }

        return;
    }
 protected void NewRateGridDateSelected(object sender, RateGridEventArgs objRateGridEventArgs)
 {
     RateGridDateSelected(this, objRateGridEventArgs);
     return;
 }