﻿$(function () {
    function removeOptionsExceptPrompt(dropDownListId, promptItemIndex) {
        var optionsCount = $(dropDownListId)[0].options.length;
        for (var i = optionsCount - 1; i >= 0; i--) {
            if (i == promptItemIndex) {
                continue;
            }
            $(dropDownListId)[0].options.remove(i);
        }
    }

    function getFacilityObjectsForSelectedFacility(facilityObjectsDropDownId, actionPath) {
        $.post(actionPath, function (data) {
            for (var i = 0; i < data.length; i++) {
                var elem = data[i];
                $(facilityObjectsDropDownId).append('<option value="' + elem.Value + '">' + elem.Text + '</option>');
            }
        });
    }

    function getAvailableDatesForSelectedFacility(dateFrom, dateTo, timeFrom, timeTo, actionPath) {
        $.post(actionPath, function (data) {
            $(dateFrom).val(data.FromDate);
            $(dateTo).val(data.ToDate);
            $(timeFrom).val(data.FromTime);
            $(timeTo).val(data.ToTime);
        });
    }

    $("#FacilityId").change(function () {
        var facilityVal = $("#FacilityId").val();

        if ($("#FacilityId")[0].selectedIndex != 0) {         
            var facilityActivityUrl = $(this).data('get-facility-activity-url') + "?facilityId=" + facilityVal;
            var facilityDistrictUrl = $(this).data('get-facility-district-url') + "?facilityId=" + facilityVal;            

            removeOptionsExceptPrompt("#ActivityTypeId", 0);
            removeOptionsExceptPrompt("#DistrictId", 0);
            getFacilityObjectsForSelectedFacility("#ActivityTypeId", facilityActivityUrl);
            getFacilityObjectsForSelectedFacility("#DistrictId", facilityDistrictUrl);
        }

        var facilityAvailableDatesUrl = $(this).data('get-available-dates-url') + "?facilityId=" + facilityVal;
        getAvailableDatesForSelectedFacility("#FromDate", "#ToDate", "#FromTime", "#ToTime", facilityAvailableDatesUrl);        
    });
});