nm3clol-archived-russellcou.../mirror/www.russellcountyva.us/Areas/Facilities/Assets/Scripts/SearchSidebar/SearchSidebarBinders.js

234 lines
9.8 KiB
JavaScript

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);