﻿
$(function() {

});

function InitHotels() {
    $.post('/PortalModules/DirectoryModule/TripSelectorServices/AccommodationService.svc/GetRegions', null, BuildRegionDropdown, "json");

    $('#AccommodationTypes').checkboxlist({
        data: 'Hotel,2;Boutique Hotel/Manor,1;Bush/Game Lodge,16;Bed & Breakfast,4;Guest House,32;Apartment/Self Catering,8'
    });

    $('#ShowAvailableOnly')
        .click(
    function() {
        $('.hidden').toggle();
    });

    SetCheckinDateRange();
    SetCheckoutDateRange();
}

function BuildRegionDropdown(result) {
    $('#RegionSelect').autocomplete(result.d);
}

function SetCheckinDateRange() {
    //Set up the datepicker plugins with the correct dates and bounds.
    $('#checkindate').datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy/mm/dd',
        //minDate: DateAdd('d', 1, d),
        minDate: d,
        showOn: 'both',
        buttonImage: '/Content/dev-mtbeds/Skins/Default/Img/calendar_blank.gif',
        buttonImageOnly: true,
        onClose: function(selectedDate) {
            if (selectedDate != '') {
                var dt = new Date(selectedDate);
                $('#checkoutdate').datepicker('option', 'minDate', DateAdd('d', 1, dt));
                $('#CheckAvailabilityDatesClear').show();
            }
        },
        defaultDate: d
    });
}

function ClearDates() {
    $('#checkoutdate').datepicker('destroy').val('');
    $('#checkindate').datepicker('destroy').val('');
    SetCheckinDateRange();
    SetCheckoutDateRange();
    $('#CheckAvailabilityDatesClear').hide();
}


function SetCheckoutDateRange() {
    $('#checkoutdate').datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy/mm/dd',
        minDate: DateAdd('d', 1, d),
        showOn: 'both',
        buttonImage: '/Content/dev-mtbeds/Skins/Default/Img/calendar_blank.gif',
        buttonImageOnly: true,
        onClose: function(selectedDate) {
            if (selectedDate != '') {
                var dt = new Date(selectedDate);
                $('#checkindate').datepicker('option', 'maxDate', DateAdd('d', -1, dt));
                $('#CheckAvailabilityDatesClear').show();
            }
        },
        defaultDate: DateAdd('d', 1, d)
    });
}

function GetCheckinDate() {
    return $('#checkindate').datepicker('getDate');
}

function GetCheckoutDate() {
    return $('#checkoutdate').datepicker('getDate');
}

function SubmitAccommodationData() {
    var region = UrlEncode($('#RegionSelect').val());
    var keywords = UrlEncode($('#KeywordInput').val());
    var checkindate = $('#checkindate').val();
    var checkoutdate = $('#checkoutdate').val();
    var roomcount = $('#RoomCount').find('option:selected').val();
    var adultcount = $('#AdultCount').find('option:selected').val();
    var childcount = $('#ChildCount').find('option:selected').val();
    var accommodationtypes = 63;
    if ($('#AccommodationTypes').checkboxlist('getValue') > 0) {
        accommodationtypes = $('#AccommodationTypes').checkboxlist('getValue');
    }
    var url = "/page/SearchResults?region=" + region + "&keywords=" + keywords + "&adultcount=" + adultcount + "&childcount=" + childcount + "&roomcount=" + roomcount + "&accommodationtypes=" + accommodationtypes;
    if (checkindate != "" && checkoutdate != "") {
        url = url + "&checkindate=" + checkindate + "&checkoutdate=" + checkoutdate
    }
    if (ValidateInputs()) {
        window.location.replace(url);
    }
}

function ValidateInputs() {
    if ($('#RegionSelect').val() == "") {
        $('#RegionSelect').after($('#ValidationMessage').html("<p>* Please select a region</p>").fadeIn().animate({ opacity: 1.0 }, 10000).fadeOut());
        return false;
    }
    return true;
}

function UrlEncode(s) {
    return s.replace(/&/gi, '%26').replace(/ /gi, '%20');
}