234 lines
9.8 KiB
JavaScript
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);
|