var SearchSidebarBinders = function ($) { $.ajaxSetup({ cache: false }) var searchSidebarBinders = this; var ResourcesSidebar = $.parseJSON($('#Resources_Home_Sidebar').val()); searchSidebarBinders.justClosed = ''; var idBeingDeleted; searchSidebarBinders.bindControl = function (id, whatToDo, returnFalse, passControl) { $(id).unbind('keypress').bind('keypress', function () { $(this).click(); }); $(id).unbind('click').bind('click', function () { if (passControl) { whatToDo($(this)); } else { whatToDo(); } if (returnFalse) { return false; } }); }; searchSidebarBinders.showHideDropDown = function (id, chkClass, pID) { // Automatically set the z-index of all sidebar drop-downs to zero, to account for the case when // when a user has a drop-down open, but clicks directly on another dropdown. If this code is not // here, the drop-down that is initially opened does not get its z-index reset to 0. $('.searchSidebarDropdownContainer').css('z-index', '0'); if ($(id).is(':visible')) { $(id).hide(); searchSidebarBinders.changeOptionsSelectedCount(chkClass, pID); } else { $('#megaFacilityTypes').hide(); $('#megaFeatures').hide(); $('#megaDays').hide(); $(id + 'Container').css('z-index', '101'); $(id).show(); } }; searchSidebarBinders.bindSelectAllCheckbox = function (id, chkClass) { if ($(id).is(':checked')) { $(chkClass).attr("checked", true); } else { $(chkClass).removeAttr("checked"); } }; searchSidebarBinders.bindAllOtherCheckboxes = function (id, chkClass) { var l = $('input' + chkClass + ':not(:checked)').length; if (l == 0) { attrOrProps($(id), "checked", true); } else { $(id).removeAttr('checked'); } }; searchSidebarBinders.savedSearch = function(button) { $.ajax({ url: '/Facilities/Facility/SavedSearch?id=' + $(button).attr('id'), dataType: 'html', success: function (response) { searchSidebarBinders.handleSavedSearchResponse(response); }, beforeSend: function () { ajaxPostBackStart('Loading'); }, complete: function () { ajaxPostBackEnd(); }, error: function (xhr, textStatus, exception) { alert('Error: ' + xhr.statusText + '\nStatus: ' + xhr.status); } }); }; searchSidebarBinders.handleSavedSearchResponse = function(response) { $('#sidebarContentContainer').html(response); }; searchSidebarBinders.checkLoggedInForDeleteSavedSearch = function (button) { idBeingDeleted = $(button).attr('id'); FacilitiesCommon.AJAX('/Facilities/Facility/IsLoggedIn', 'GET', {}, searchSidebarBinders.processCheckLoggedInResponseForDelete); }; searchSidebarBinders.processCheckLoggedInResponseForDelete = function (loggedInResponse) { if (loggedInResponse.loggedIn == true) { searchSidebarBinders.deleteSavedSearch(); } else { searchSidebarBinders.routeToMyAccountForDeleteSearch(); } }; searchSidebarBinders.checkIfASavedSearchNeedsToBeDeleted = function () { var idVal = $.cookie('deleteSavedSearch'); if (idVal != null && idVal != undefined) { $.cookie('deleteSavedSearch', null); idBeingDeleted = parseInt(idVal); searchSidebarBinders.deleteSavedSearch(); }; }; searchSidebarBinders.routeToMyAccountForDeleteSearch = function () { $.cookie('deleteSavedSearch', idBeingDeleted); window.location.href = '/MyAccount?from=url&url=/Facilities?clear=false'; }; searchSidebarBinders.deleteSavedSearch = function() { if (searchSidebarBinders.deleteConfirm()) { FacilitiesCommon.AJAX('/Facilities/Facility/DeleteSavedSearch', 'POST', { id: idBeingDeleted }, searchSidebarBinders.handleSavedSearchesSectionResponse, false); } }; searchSidebarBinders.deleteConfirm = function () { return confirm(ResourcesSidebar.DeleteSavedSearchConfirm); }; searchSidebarBinders.handleSavedSearchesSectionResponse = function (response) { $('#savedSearchesSection').html(response); }; searchSidebarBinders.changeOptionsSelectedCount = function (chkClass, pID) { $(pID).html( ($('input' + chkClass + ':checked').length == $('input' + chkClass).length ? ResourcesSidebar.All : $('input' + chkClass + ':checked').length) + ' ' + ResourcesSidebar.OptionsSelected); }; searchSidebarBinders.bindActions = function () { searchSidebarBinders.bindControl('#FeaturesButton', searchSidebarBinders.showHideFeatures, true, false); searchSidebarBinders.bindControl('#FacilityTypesButton', searchSidebarBinders.showHideFacilityTypes, true, false); searchSidebarBinders.bindControl('#DaysButton', searchSidebarBinders.showHideDays, true, false); searchSidebarBinders.bindControl('#FeaturesClose', searchSidebarBinders.showHideFeatures, true, false); searchSidebarBinders.bindControl('#FacilityTypesClose', searchSidebarBinders.showHideFacilityTypes, true, false); searchSidebarBinders.bindControl('#DaysClose', searchSidebarBinders.showHideDays, true, false); searchSidebarBinders.bindControl('#CheckAllFeatures', searchSidebarBinders.bindFeaturesSelectAllCheckbox, false, false); searchSidebarBinders.bindControl('#CheckAllFacilityTypes', searchSidebarBinders.bindFacilityTypesSelectAllCheckbox, false, false); searchSidebarBinders.bindControl('#CheckAllDays', searchSidebarBinders.bindDaysSelectAllCheckbox, false, false); searchSidebarBinders.bindControl('.chkSidebarFeatures', searchSidebarBinders.bindFeaturesOtherCheckboxes, false, false); searchSidebarBinders.bindControl('.chkSidebarFacilityTypes', searchSidebarBinders.bindFacilityTypesOtherCheckboxes, false, false); searchSidebarBinders.bindControl('.chkSidebarDays', searchSidebarBinders.bindDaysOtherCheckboxes, false, false); searchSidebarBinders.bindControl('#chkIsReservable', searchSidebarBinders.bindIsReservableCheckbox, false, false); searchSidebarBinders.bindControl('#tabAll', searchSidebarBinders.bindTabAll, true, false); searchSidebarBinders.bindControl('#tabReservable', searchSidebarBinders.bindTabReservable, true, false); }; searchSidebarBinders.initSavedSearchesSection = function () { searchSidebarBinders.hideShowSavedSearchesSection(); searchSidebarBinders.bindControl('a[name=savedSearchButton]', searchSidebarBinders.savedSearch, true, true); searchSidebarBinders.bindControl('a[name=deleteSavedSearchButton]', searchSidebarBinders.checkLoggedInForDeleteSavedSearch, true, true); searchSidebarBinders.checkIfASavedSearchNeedsToBeDeleted(); }; searchSidebarBinders.hideShowSavedSearchesSection = function () { if ($('a[name=savedSearchButton]').length > 0) { $('#savedSearchesSection').show(); } else { $('#savedSearchesSection').hide(); } }; searchSidebarBinders.bindTabAll = function () { if (!$('#tabAllLi').hasClass('active')) { $('#tabReservableLi').removeClass('active'); $('#tabAllLi').addClass('active'); SearchSidebarReservableFlippers.flipReservable(false); } }; searchSidebarBinders.bindTabReservable = function () { if (!$('#tabReservableLi').hasClass('active')) { $('#tabAllLi').removeClass('active'); $('#tabReservableLi').addClass('active'); SearchSidebarReservableFlippers.flipReservable(true); } }; searchSidebarBinders.bindIsReservableCheckbox = function () { if ($('#chkIsReservable').is(':checked')) { SearchSidebarReservableFlippers.flipReservable(true); } else { SearchSidebarReservableFlippers.flipReservable(false); } }; searchSidebarBinders.bindFeaturesSelectAllCheckbox = function () { searchSidebarBinders.bindSelectAllCheckbox('#CheckAllFeatures', '.chkSidebarFeatures'); }; searchSidebarBinders.bindFeaturesOtherCheckboxes = function () { searchSidebarBinders.bindAllOtherCheckboxes('#CheckAllFeatures', '.chkSidebarFeatures'); }; searchSidebarBinders.bindFacilityTypesSelectAllCheckbox = function () { searchSidebarBinders.bindSelectAllCheckbox('#CheckAllFacilityTypes', '.chkSidebarFacilityTypes'); }; searchSidebarBinders.bindFacilityTypesOtherCheckboxes = function () { searchSidebarBinders.bindAllOtherCheckboxes('#CheckAllFacilityTypes', '.chkSidebarFacilityTypes'); }; searchSidebarBinders.bindDaysSelectAllCheckbox = function () { searchSidebarBinders.bindSelectAllCheckbox('#CheckAllDays', '.chkSidebarDays'); }; searchSidebarBinders.bindDaysOtherCheckboxes = function () { searchSidebarBinders.bindAllOtherCheckboxes('#CheckAllDays', '.chkSidebarDays'); }; searchSidebarBinders.showHideFeatures = function () { searchSidebarBinders.showHideDropDown('#megaFeatures', '.chkSidebarFeatures', '#optionsSelectedFeatures'); }; searchSidebarBinders.showHideFacilityTypes = function () { searchSidebarBinders.showHideDropDown('#megaFacilityTypes', '.chkSidebarFacilityTypes', '#optionsSelectedFacilityTypes'); }; searchSidebarBinders.showHideDays = function () { searchSidebarBinders.showHideDropDown('#megaDays', '.chkSidebarDays', '#optionsSelectedDays'); }; return this; } (jQuery);