{"version":3,"file":"redesign-search.min.js","sources":["Feature/RedesignSearch/website/Contents/jQuery/redesign-search.js"],"sourcesContent":["var searchRedesign = {\r\n ui: {\r\n event: {\r\n pageGlobalSearch: function () {\r\n var windowSize = 0;\r\n var selector = {\r\n mainContainer: '.js-search-container',\r\n eventsContainer: '.js-events',\r\n toggleSearchFields: '.js-toggle-search-fields',\r\n toggleAccordionIcon: \"c-toggle-accordion-icon\",\r\n resetContainer: \".c-es__reset-container\",\r\n extendedSearchContainer: \".c-es__container\",\r\n inputText: \"input:text\",\r\n selectField: \".js-location-input\",\r\n selectLocationField: \".js-position-input\",\r\n selectOptions: \".js-location-input option\",\r\n selectOptionsList: \".c-select select + .stylish-select > ul li\",\r\n selectDefaultOption: \".c-select .js-location-input + .stylish-select > ul li:nth-child(1)\",\r\n selectLocationDefaultOption: \".c-select .js-position-input + .stylish-select > ul li:nth-child(1)\",\r\n selectStylishElement: \".c-select .js-location-input + .stylish-select .stylish-select-left .stylish-select-right\",\r\n selectLocationStylishElement: \".c-select .js-position-input + .stylish-select .stylish-select-left .stylish-select-right\",\r\n alphaSearchOptionsList: \"#divAlphabets .owl-stage .owl-item.active .alphabet\",\r\n alphaSearchActiveOption: \"#divAlphabets .owl-stage .owl-item.active .alphabet.selected\",\r\n toggleAccordion: \".js-toggle-accordion\",\r\n banPeople: \".ban-people\",\r\n expandSearchBottom: \".c-es__bottom\",\r\n expandSearchTop: \".c-es__top\",\r\n span: \"span\",\r\n input: \"input\",\r\n expandSearchBottomFields: \".c-es__service, .c-es__location, .c-es__end-date\",\r\n expandSearchBottomFieldsAtTopContainer: \".c-es__top .c-es__service, .c-es__top .c-es__location, .c-es__top .c-es__end-date\",\r\n expandSearchBottomFieldsAtBottomContainer: \".c-es__bottom .c-es__service, .c-es__bottom .c-es__location, .c-es__bottom .c-es__end-date\",\r\n globalSearch: '.global',\r\n heroBanner: '.hero-ban',\r\n contentWrapper: '.content-wrapper',\r\n mainHeading: '.main-heading',\r\n clearAllFilterBtn: '.c-filter__clearAll-btn',\r\n alphaSelected: '.alphabet[data-alpha-selected=\"true\"]',\r\n SSRInput: '.js-ssr-input',\r\n SSRIndexId: 'filter-indexid',\r\n SSRIndexName: 'filter-indexname',\r\n date: {\r\n start: \".js-start-date\",\r\n end: \".js-end-date\",\r\n startInput: \".js-start-input\",\r\n endInput: \".js-end-input\"\r\n },\r\n cssClass: {\r\n toggleIcons: \"toggle_plus toggle_minus\",\r\n heroBanner: \"hero-ban hero-ban-expand\",\r\n expand: \"expand\",\r\n startDateinvalid: \"c-es__start-date-input-invalid\",\r\n endDateinvalid: \"c-es__end-date-input-invalid\",\r\n globalSearchHeroBanner: \"c-gs__hero-banner\",\r\n globalMainHeading: \"c-gs__main-heading\",\r\n },\r\n element: {\r\n body: 'body',\r\n },\r\n page: {\r\n events: '.js-events',\r\n },\r\n data: {\r\n alphaSelected: 'data-alpha-selected',\r\n },\r\n }\r\n\r\n function init() {\r\n initStartDate();\r\n initEndDate();\r\n resetInputFields();\r\n toggleMobileViewFiltersLayout();\r\n toggleMobileViewFiltersLayoutOnResize();\r\n insertGlobalSearchSpecificClasses();\r\n }\r\n\r\n function initStartDate() {\r\n var elmDateInput = jQuery(selector.date.startInput);\r\n var defaultDate = getDefaultDate(elmDateInput, true);\r\n elmDateInput.datepicker({\r\n onClose: function (selectedDate, instanceOfDatepicker) {\r\n jQuery(selector.date.endInput).datepicker(\"option\", \"minDate\", selectedDate);\r\n },\r\n changeMonth: true\r\n }).datepicker(\"setDate\", defaultDate);\r\n\r\n jQuery(selector.date.start).click(function () {\r\n elmDateInput.datepicker(\"show\");\r\n });\r\n }\r\n\r\n function initEndDate() {\r\n var elmDateInput = jQuery(selector.date.endInput);\r\n var defaultDate = getDefaultDate(elmDateInput, false);\r\n elmDateInput.datepicker({\r\n changeMonth: true\r\n }).datepicker(\"setDate\", defaultDate);\r\n\r\n jQuery(selector.date.end).click(function () {\r\n elmDateInput.datepicker(\"show\");\r\n });\r\n }\r\n\r\n function getDefaultDate(innerElm, isStart) {\r\n var date = new Date();\r\n var isEvents = innerElm.closest(selector.mainContainer).find(selector.eventsContainer).length > 0;\r\n\r\n if (isStart) {\r\n if (isEvents) {\r\n return date;\r\n }\r\n else { // publications or news\r\n date.setMonth(date.getMonth() - 3);\r\n return date;\r\n }\r\n }\r\n else { // end date\r\n if (isEvents) {\r\n return '';\r\n }\r\n else { // publications or news\r\n return date;\r\n }\r\n }\r\n }\r\n\r\n function resetInputFields() {\r\n jQuery(selector.resetContainer).click(function () {\r\n resetHandler(this);\r\n });\r\n jQuery(selector.resetContainer).keypress(function (e) {\r\n if (e.keyCode == 32 || e.keyCode == 13) {\r\n resetHandler(this);\r\n }\r\n });\r\n }\r\n function resetHandler() {\r\n jQuery(selector.extendedSearchContainer).find(selector.inputText).val(\"\");\r\n\r\n //IT, 02/23: because i can't find a way in the api to clear the current results, I'm just blowing away the DOM elements for them.\r\n jQuery('.ui-autocomplete').empty();\r\n\r\n //Reset invalid Date CSS and Placeholder\r\n jQuery(selector.extendedSearchContainer).find(selector.date.startInput).removeClass(selector.cssClass.startDateinvalid);\r\n jQuery(selector.extendedSearchContainer).find(selector.date.startInput).attr(\"placeholder\", jQuery(selector.extendedSearchContainer).find(selector.date.startInput).data(\"placeholder\"));\r\n\r\n jQuery(selector.extendedSearchContainer).find(selector.date.endInput).removeClass(selector.cssClass.endDateinvalid);\r\n jQuery(selector.extendedSearchContainer).find(selector.date.endInput).attr(\"placeholder\", jQuery(selector.extendedSearchContainer).find(selector.date.endInput).data(\"placeholder\"));\r\n\r\n // Reset Location Filter\r\n jQuery(selector.extendedSearchContainer).find(selector.selectOptionsList).removeClass('selected');\r\n jQuery(selector.extendedSearchContainer).find(selector.selectDefaultOption).addClass('selected');\r\n jQuery(selector.extendedSearchContainer).find(selector.selectOptions).removeAttr('selected');\r\n jQuery(selector.extendedSearchContainer).find(selector.selectField).prop(\"selectedIndex\", 0);\r\n\r\n // Reset Position Filter\r\n jQuery(selector.extendedSearchContainer).find(selector.selectLocationDefaultOption).addClass('selected');\r\n jQuery(selector.extendedSearchContainer).find(selector.selectLocationField).prop(\"selectedIndex\", 0);\r\n\r\n var locationDefault = jQuery(selector.extendedSearchContainer).find(selector.selectDefaultOption).text();\r\n jQuery(selector.extendedSearchContainer).find(selector.selectStylishElement).text(locationDefault);\r\n jQuery(selector.extendedSearchContainer).find(selector.selectStylishElement).removeClass('black');\r\n\r\n var positionDefault = jQuery(selector.extendedSearchContainer).find(selector.selectLocationDefaultOption).text();\r\n jQuery(selector.extendedSearchContainer).find(selector.selectLocationStylishElement).text(positionDefault);\r\n jQuery(selector.extendedSearchContainer).find(selector.selectLocationStylishElement).removeClass('black');\r\n\r\n // Reset Last Name Alphabet Search\r\n jQuery(selector.extendedSearchContainer).find(selector.alphaSearchActiveOption).removeAttr('selected');\r\n jQuery(selector.extendedSearchContainer).find(selector.alphaSearchOptionsList).removeClass('selected');\r\n\r\n //Reset SSR\r\n jQuery(selector.SSRInput).removeAttr(selector.SSRIndexId);\r\n jQuery(selector.SSRInput).removeAttr(selector.SSRIndexName);\r\n\r\n if (jQuery(selector.element.body).find(selector.page.events).length == 1) {\r\n searchRedesign.ui.event.filterCheckboxManipulation().clearAllFilters(true);\r\n }\r\n else {\r\n searchRedesign.ui.event.filterCheckboxManipulation().clearAllFilters();\r\n }\r\n\r\n jQuery(selector.extendedSearchContainer).find(selector.alphaSelected).removeAttr(selector.data.alphaSelected);\r\n\r\n searchRedesign.ui.event.resultsList().refresh(false, true);\r\n }\r\n\r\n function toggleMobileViewFiltersLayout() {\r\n //Desktop\r\n if (jQuery(window).width() >= 501) {\r\n //Append Fields: Service, Sector or Region , Location , End Date to .c-es__bottom container from being detached in mobile\r\n jQuery(selector.expandSearchBottomFields).appendTo(selector.expandSearchBottom);\r\n\r\n //Detach/Remove Fields: Service, Sector or Region , Location , End Date at .c-es__top container from being appended in mobile\r\n jQuery(selector.expandSearchBottomFieldsAtTopContainer).detach();\r\n } else {\r\n //Mobile\r\n if (windowSize !== jQuery(window).width()) {\r\n //Append Fields: Service, Sector or Region , Location , End Date to .c-es__top container from being detached in desktop\r\n jQuery(selector.expandSearchBottomFields).appendTo(selector.expandSearchTop);\r\n\r\n //Detach/Remove Fields: Service, Sector or Region , Location , End Date to .c-es__bottom container from being appended in desktop\r\n jQuery(selector.expandSearchBottomFieldsAtBottomContainer).detach();\r\n windowSize = jQuery(window).width();\r\n }\r\n }\r\n };\r\n\r\n function toggleMobileViewFiltersLayoutOnResize() {\r\n jQuery(window).on(\"resize\", function () {\r\n toggleMobileViewFiltersLayout();\r\n });\r\n };\r\n\r\n function isGlobalSearch() {\r\n if (jQuery(selector.element.body).find(selector.globalSearch).length > 0) {\r\n return true;\r\n }\r\n };\r\n\r\n function insertGlobalSearchSpecificClasses() {\r\n if (isGlobalSearch()) {\r\n jQuery(selector.globalSearch).closest(selector.contentWrapper).find(selector.heroBanner).addClass(selector.cssClass.globalSearchHeroBanner);\r\n jQuery(selector.mainHeading).addClass(selector.cssClass.globalMainHeading);\r\n }\r\n };\r\n\r\n return {\r\n isGlobalSearch: isGlobalSearch,\r\n init: init\r\n }\r\n },\r\n\r\n eventsTabs: function () {\r\n var selector = {\r\n author: '.js-author-input',\r\n tabs: '.js-events-tabs',\r\n tabListItem: '.c-tabs__list-item',\r\n upcomingTab: '.js-events-upcoming',\r\n pastTab: '.js-events-past',\r\n upcomingTabId: \"a[href='#upcoming-tab']\",\r\n pastTabId: \"a[href='#past-tab']\",\r\n sortByUpcomingSection: '.js-events .c-results__sort:not(.past)',\r\n sortByPastSection: '.js-events .c-results__sort.past',\r\n resultsPerPageDesktop: '.js-results__pp',\r\n resultsPerPageMobile: '.js-results__pp-mob',\r\n clonedresultsPerPageMobile: '.c-cloned__resultspp .js-results__pp-mob',\r\n sidePanelSelectedFilters: '.js-events .c-srb__right .c-selected-filter__container:not(.past)',\r\n sidePanelSelectedFiltersPast: '.js-events .c-srb__right .c-selected-filter__container.past',\r\n appliedFilterDesktopContainer: '.c-selected-filter__container',\r\n sidePanelSortByUpcoming: '.js-events .c-srb__right .c-results__sort:not(.past)',\r\n sidePanelSortByPast: '.js-events .c-srb__right .c-results__sort.past',\r\n sidePanelFiltersUpcoming: '.c-filter__container:not(.past)',\r\n sidePanelFiltersPast: '.c-filter__container.past',\r\n activeTab: '#eventsTab .ui-state-active',\r\n checkboxSelectedFilter: '.c-selected-filter__detach-container:not(.past)',\r\n checkboxSelectedFilterPast: '.c-selected-filter__detach-container.past',\r\n cssClass: {\r\n disabled: \"ui-state-disabled\"\r\n }\r\n }\r\n\r\n function init() {\r\n eventTabsToggle();\r\n sortByTabToggle();\r\n toggleResultsPerPageVisibility();\r\n toggleResultsPerPageVisibilityOnResize();\r\n toggleSortBySidePanelVisibilityOnResize();\r\n };\r\n\r\n function eventTabsToggle() {\r\n jQuery(selector.tabs).tabs();\r\n };\r\n\r\n function sortByTabToggle() {\r\n jQuery(selector.sidePanelSortByPast).insertAfter(jQuery(selector.sidePanelSortByUpcoming));\r\n jQuery(selector.sidePanelFiltersPast).insertAfter(jQuery(selector.sidePanelFiltersUpcoming));\r\n\r\n jQuery(selector.upcomingTabId).click(function () {\r\n if (jQuery(this).closest(selector.tabListItem).hasClass(selector.cssClass.disabled)) {\r\n return; // tab is disabled\r\n }\r\n searchRedesign.ui.event.toggleDescriptionSwitchControl().toggleDescription('upcomingInput');\r\n\r\n //Desktop\r\n if (jQuery(window).width() >= 501) {\r\n jQuery(selector.sidePanelSelectedFilters).show();\r\n jQuery(selector.sidePanelSelectedFiltersPast).hide();\r\n\r\n jQuery(selector.sidePanelSortByUpcoming).show();\r\n jQuery(selector.sidePanelSortByPast).hide();\r\n\r\n jQuery(selector.sidePanelFiltersUpcoming).show();\r\n jQuery(selector.sidePanelFiltersPast).hide();\r\n } else {\r\n jQuery(selector.sidePanelSelectedFilters).hide();\r\n\r\n jQuery(selector.sidePanelSortByUpcoming).hide();\r\n\r\n jQuery(selector.sidePanelFiltersUpcoming).show();\r\n jQuery(selector.sidePanelFiltersPast).hide();\r\n jQuery(selector.sidePanelSelectedFiltersPast).hide();\r\n }\r\n });\r\n\r\n jQuery(selector.pastTabId).click(function () {\r\n if (jQuery(this).closest(selector.tabListItem).hasClass(selector.cssClass.disabled)) {\r\n return; // tab is disabled\r\n }\r\n searchRedesign.ui.event.toggleDescriptionSwitchControl().toggleDescription('pastInput');\r\n\r\n //Desktop\r\n if (jQuery(window).width() >= 501) {\r\n jQuery(selector.sidePanelSortByPast).show();\r\n jQuery(selector.sidePanelFiltersPast).show();\r\n jQuery(selector.sidePanelSelectedFiltersPast).show();\r\n\r\n jQuery(selector.sidePanelSelectedFilters).show();\r\n jQuery(selector.sidePanelFiltersUpcoming).hide();\r\n jQuery(selector.sidePanelSortByUpcoming).hide();\r\n } else {\r\n jQuery(selector.sidePanelSelectedFilters).hide();\r\n jQuery(selector.sidePanelSortByPast).hide();\r\n\r\n jQuery(selector.sidePanelSortByUpcoming).hide();\r\n\r\n jQuery(selector.sidePanelFiltersPast).show();\r\n jQuery(selector.sidePanelSelectedFiltersPast).hide();\r\n }\r\n });\r\n };\r\n\r\n function toggleResultsPerPageVisibility() {\r\n if (jQuery(window).width() >= 501) {\r\n jQuery(selector.resultsPerPageDesktop).show();\r\n jQuery(selector.clonedresultsPerPageMobile).hide();\r\n jQuery(selector.resultsPerPageMobile).hide();\r\n } else {\r\n jQuery(selector.clonedresultsPerPageMobile).show();\r\n jQuery(selector.resultsPerPageDesktop).hide();\r\n }\r\n };\r\n\r\n function toggleResultsPerPageVisibilityOnResize() {\r\n jQuery(window).on(\"resize\", function () {\r\n toggleResultsPerPageVisibility();\r\n });\r\n };\r\n\r\n function toggleSortBySidePanelVisibilityOnResize() {\r\n //Toggle visibilty of sort by in events tab on window resize\r\n jQuery(window).on(\"resize\", function () {\r\n //Upcoming\r\n if (jQuery(selector.activeTab).find(selector.upcomingTabId).length == 1) {\r\n toggleVisibilityOnResize(window, selector.sidePanelSortByPast, selector.sidePanelSortByUpcoming);\r\n } //Past\r\n else {\r\n toggleVisibilityOnResize(window, selector.sidePanelSortByUpcoming, selector.sidePanelSortByPast);\r\n }\r\n });\r\n };\r\n\r\n function toggleVisibilityOnResize(window, elemToHide, elemToShow) {\r\n //Desktop\r\n if (jQuery(window).width() >= 501) {\r\n jQuery(elemToHide).hide();\r\n jQuery(elemToShow).show();\r\n jQuery(selector.appliedFilterDesktopContainer).show();\r\n //Mobile\r\n } else {\r\n jQuery(elemToHide).hide();\r\n jQuery(elemToHide).hide();\r\n }\r\n };\r\n\r\n function getActiveTab() {\r\n var activeTab = jQuery(selector.activeTab).attr('aria-controls');\r\n return activeTab;\r\n };\r\n\r\n return {\r\n init: init,\r\n getActiveTab: getActiveTab\r\n }\r\n },\r\n\r\n toggleDescriptionSwitchControl: function () {\r\n var selector = {\r\n switchInput: '.switch input',\r\n resultsDescription: '.c-results__details',\r\n eventUpcomingSwitchInput: '.js-events-upcoming .c-left__switch input',\r\n eventPastSwitchInput: '.js-events-past .c-left__switch input',\r\n newsSwitchInput: '.newsToggle input',\r\n pubstSwitchInput: '.pubsToggle input'\r\n }\r\n\r\n function init() {\r\n isInputChecked();\r\n descriptionSwitchVisibility();\r\n };\r\n\r\n function isInputChecked(tabName) {\r\n if (typeof (tabName) === 'undefined') {\r\n if (jQuery(selector.switchInput).is(':checked')) {\r\n return true;\r\n }\r\n }\r\n\r\n if (tabName == 'upcomingInput') {\r\n return jQuery(selector.eventUpcomingSwitchInput).is(':checked');\r\n }\r\n\r\n if (tabName == 'pastInput') {\r\n return jQuery(selector.eventPastSwitchInput).is(':checked');\r\n }\r\n };\r\n\r\n function descriptionSwitchVisibility() {\r\n jQuery(selector.switchInput).change(function () {\r\n toggleDescription();\r\n });\r\n\r\n jQuery(selector.eventUpcomingSwitchInput).change(function () {\r\n toggleDescription('upcomingInput');\r\n });\r\n\r\n jQuery(selector.eventPastSwitchInput).change(function () {\r\n toggleDescription('pastInput');\r\n });\r\n };\r\n\r\n function toggleDescription(tabName) {\r\n if (isInputChecked(tabName)) {\r\n jQuery(selector.resultsDescription).show();\r\n } else {\r\n jQuery(selector.resultsDescription).hide();\r\n }\r\n }\r\n\r\n return {\r\n init: init,\r\n toggleDescription: toggleDescription\r\n }\r\n },\r\n\r\n resultsList: function () {\r\n var selector = {\r\n mainContainer: '.js-search-container',\r\n bodyContainer: ' .js-global, .js-events, .js-news, .js-publications, .js-people',\r\n eventHeaderFilter: '.events',\r\n pubHeaderFilter: '.publications',\r\n rightPanel: '.c-srb__right',\r\n inputFields: {\r\n keyword: '.js-keyword-input',\r\n location: '.js-location-input',\r\n ssr: '.js-ssr-input',\r\n fromDate: '.js-start-input',\r\n toDate: '.js-end-input',\r\n author: '.js-author-input',\r\n sortBy: '.c-select:visible .js-sortBy-input',\r\n sortByEventsUpcoming: '.js-events .c-results__sort:not(.past) .c-select:visible .js-sortBy-input',\r\n sortByEventsPast: '.js-events .c-results__sort.past .c-select:visible .js-sortBy-input',\r\n numPerPage: '.c-select:visible .js-numPerPage-input',\r\n filterType: '.js-filterType-input',\r\n filterContainer: '.c-filter__container',\r\n filterTypeList: '.c-filter__type-list',\r\n searchButton: '.js-button-search',\r\n switchToggle: '.switch input',\r\n not: {\r\n pastFilterType: '.js-filterType-input:not(.past .js-filterType-input):not(.sub-category)',\r\n pastFilter: ':not(.past .js-filterType-input)',\r\n },\r\n filterSubtype: '.js-filterType-input.sub-category',\r\n position: '.js-position-input',\r\n judge: '.js-judge-input',\r\n court: '.js-court-input',\r\n school: '.js-school-input',\r\n },\r\n data: {\r\n id: 'id',\r\n currentValue: 'current-value',\r\n labelTotal: 'label-total',\r\n labelContacts: 'label-contacts',\r\n titleFilterType: 'title',\r\n numPagesPerSection: 'numpages-section',\r\n pageNum: 'pagenum',\r\n total: 'total',\r\n labelNoResult: 'label-no-result',\r\n jsonResult: 'json',\r\n jsonResultSubcategory: 'json-subcategory',\r\n subcategoriesLimit: \"subcategories-limit\",\r\n alphaSelected: 'data-alpha-selected'\r\n },\r\n attr: {\r\n ssrIndexName: 'filter-indexname',\r\n ssrIndexValue: 'filter-indexid',\r\n disabled: 'disabled',\r\n selectedCategories: 'selected-categories',\r\n checked: 'checked',\r\n origTotal: 'orig-total',\r\n selectedBefore: 'selected-before'\r\n },\r\n gaVariable: {\r\n send: \"send\",\r\n event: \"event\",\r\n pubcategory: \"Publications\",\r\n eventcategory: \"Event\",\r\n eventaction: \"Click\",\r\n eventsAction: \"Search\"\r\n },\r\n element: {\r\n body: 'body',\r\n },\r\n page: {\r\n events: '.js-events',\r\n news: '.js-news'\r\n },\r\n queryString: {\r\n name: {\r\n relatedResource: \"source\",\r\n category: \"category\",\r\n tag: \"content_tag_id\",\r\n cutoff: \"cutoff\",\r\n peopleMegaMenu: \"source\",\r\n careersAlumni: \"param_sitecontentcategory\",\r\n eventType: \"event_type_s\"\r\n },\r\n value: {\r\n relatedResource: \"relatedresources\",\r\n peopleMegaMenuVal: \"peoplemenusearch\",\r\n careersAlumniVal: \"OUR PEOPLE\"\r\n }\r\n },\r\n listContainerGlobal: '.js-global .js-list-container',\r\n listContainerEventsUpcomingTab: '.js-events .js-results-tabs .js-events-upcoming',\r\n listContainerEventsPastTab: '.js-events .js-results-tabs .js-events-past',\r\n listContainerNews: '.js-news .js-list-container',\r\n listContainerPublications: '.js-publications .js-list-container',\r\n listContainerPerson: '.js-people .js-list-container',\r\n tabs: '.js-events-tabs',\r\n tabsTitle: '.c-tabs',\r\n switchDescription: '.c-left__switch',\r\n resultsList: '.js-results-list',\r\n facets: '.js-facets',\r\n dataContainer: '.js-data-container',\r\n loadingIcon: '.js-loading-icon',\r\n totalLabel: '.c-results__total',\r\n contactsLabel: '.js-label-contacts',\r\n resultType: '.js-result-type',\r\n paginationContainer: '.c-pagination',\r\n pageLink: '.js-pagination-link',\r\n noResultFound: '.js-no-result',\r\n eventsActiveTab: '.ui-state-active',\r\n eventsTabID: '#eventsTab',\r\n eventsSortByUpcoming: '.js-events .c-results__sort:not(.past) select.js-sortBy-input', //DROPDOWN\r\n eventsSortByPast: '.js-events .c-results__sort.past select.js-sortBy-input',//DROPDOWN\r\n eventsResultsPerPage: '.js-results__pp-mob .c-select select.js-numPerPage-input',\r\n eventsActiveLink: 'li.ui-tabs-active a',\r\n past: '.past',\r\n disabled: 'c-filter__type-disabled',\r\n filterType: '.c-filter__type',\r\n filterContainer: '.c-results__filter',\r\n groupedSubtype: '.c-filter__grouped-subtype',\r\n groupedSubtypeItem: '.c-filter__grouped-subtype-item',\r\n toggleAccordion: '.js-toggle-accordion',\r\n alphaSelected: '.alphabet[selected=\"selected\"]',\r\n headerPeople: '.c-es__header-people',\r\n alphaSearchAlphabet: \".people .c-alpha-search .alphabet\",\r\n alphaSearchAlphabet: \".people .c-alpha-search .alphabet\",\r\n selectedFilterSectionLabel: '.c-selected-filter__section-label',\r\n not: {\r\n past: ':not(.past)',\r\n },\r\n categories: {\r\n category: \".c-filter__checkbox .js-filterType-input\",\r\n selectedFilter: 'c-selected-filter',\r\n containerSubcategories: 'c-filter__subcategory-container',\r\n filterSubcategory: 'c-filter__subcategory',\r\n filterCheckboxContainer: 'c-filter__checkbox-container',\r\n filterCheckbox: 'c-filter__checkbox',\r\n filterCheckboxLabel: 'c-filter__checkbox-label',\r\n fromGrouped: 'from-grouped', // subcategories from grouped (for OUR PEOPLE subcategories)\r\n subcategory: 'sub-category',\r\n filterContainerSubtypes: '.c-filter__subcategory-container',\r\n },\r\n cssClass: {\r\n toggleMinus: 'toggle_minus',\r\n togglePlus: 'toggle_plus'\r\n }\r\n };\r\n\r\n var names = {\r\n enforceLanguage: \"enforce_language\",\r\n languageToEnforce: \"language_to_enforce\",\r\n };\r\n\r\n // GLOBAL VARIABLES\r\n var stayOnTheTopPage = false;\r\n var hasResultsUpcomingEvent = false;\r\n var hasResultsPastEvent = false;\r\n var hasCategoryQS = false;\r\n var isEventsPast = false;\r\n var isEventsCurrent = false;\r\n\r\n // I.T. I don't think this is necessary anymore.\r\n var partialFacetRefresh = { // refresh for grouped subcategory i.e., Our People's office, sector, service & region\r\n isActive: false,\r\n idCategory: [],\r\n idGroup: []\r\n };\r\n\r\n // I.T. I don't think this is necessary anymore.\r\n function setPartialFacetRefresh(isActive, idCategory, idGroup) {\r\n partialFacetRefresh = {\r\n isActive: isActive,\r\n idCategory: idCategory,\r\n idGroup: idGroup\r\n };\r\n }\r\n\r\n // I.T. I don't think this is necessary anymore.\r\n function isFullFacetRefresh() {\r\n return partialFacetRefresh.isActive == false;\r\n }\r\n\r\n // determine if the checkbox is a category with groups i.e., \"Our People\"\r\n function isCategoryWithGroups(elmCheckbox) {\r\n // if the checkbox is a category (not a subcategory)\r\n if (!elmCheckbox.hasClass(selector.categories.subcategory)) {\r\n // if contains group/s\r\n if (elmCheckbox.closest(selector.filterType).find(selector.groupedSubtypeItem).length > 0) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // check if the category (i.e., \"Our People\") contains the active group\r\n // if so, the siblings of this active group will be the one to refresh, not the active group itself\r\n // also if so, this category facet will be refreshed as well\r\n function isCategoryWithActiveGroup(elmCategory) {\r\n return (partialFacetRefresh.isActive == true && elmCategory.data(selector.data.id) == partialFacetRefresh.idCategory);\r\n }\r\n\r\n // determine whether there are other categories ticked other than the given category checkbox\r\n function isThereOtherCategoriesTicked(elmCategoryCheckbox) {\r\n var elmSiblings = elmCategoryCheckbox.closest(selector.filterType).siblings();\r\n var isThere = false;\r\n\r\n elmSiblings.each(function () {\r\n // check if there is a ticked siblings\r\n if (jQuery(this).find(selector.inputFields.filterType).prop(selector.attr.checked) == true) {\r\n isThere = true;\r\n }\r\n });\r\n\r\n return isThere;\r\n }\r\n\r\n // determines whether the given group is an active one\r\n function isActiveGroup(idGroup) {\r\n return (partialFacetRefresh.isActive == true && partialFacetRefresh.idGroup == idGroup);\r\n }\r\n\r\n // determines if the given group is to be refreshed\r\n function isGroupToRefresh(idCategory, idGroup) {\r\n return (partialFacetRefresh.isActive == true && partialFacetRefresh.idCategory == idCategory && partialFacetRefresh.idGroup != idGroup);\r\n }\r\n\r\n function getInputs(elmContainer, isPagination, isPast) {\r\n var elmMainContainer = elmContainer.closest(selector.mainContainer);\r\n var filterType = selector.inputFields.not.pastFilterType;\r\n\r\n if (isPast) {\r\n filterType = selector.past + ' ' + selector.inputFields.filterType;\r\n }\r\n\r\n //get all selected type filters\r\n var elmFilterTypeList = elmMainContainer.find(filterType).closest(selector.inputFields.filterTypeList);\r\n var typeFilters = searchRedesign.ui.event.filterCheckboxManipulation().getCategorySubcategoryFilters(elmFilterTypeList);\r\n\r\n // pagination\r\n var pageNum = 1;\r\n if (isPagination) {\r\n pageNum = elmMainContainer.find(selector.pageLink + '.selected').data(selector.data.pageNum);\r\n }\r\n\r\n // number per page\r\n var elmNumberPerPage = elmMainContainer.find(selector.inputFields.numPerPage);\r\n var numberPerPage = elmNumberPerPage.val();\r\n if (!numberPerPage) {\r\n numberPerPage = elmNumberPerPage.find(\"option:first\").val();\r\n if (!numberPerPage) {\r\n numberPerPage = 25;\r\n }\r\n }\r\n\r\n var enforceLanguage = searchRedesign.ui.event.queryString().get(names.enforceLanguage);\r\n if (enforceLanguage && enforceLanguage.length > 0) {\r\n enforceLanguage = enforceLanguage.trim();\r\n }\r\n\r\n // check languagetoenforce\r\n var languageToEnforce = searchRedesign.ui.event.queryString().get(names.languageToEnforce);\r\n if (!!!languageToEnforce && !!document.getElementById('hdnLanguageName')) {\r\n languageToEnforce = document.getElementById('hdnLanguageName').value;\r\n }\r\n if (languageToEnforce && languageToEnforce.length > 0) {\r\n languageToEnforce = languageToEnforce.trim();\r\n }\r\n\r\n var data = {\r\n keyword: encodeURIComponent(elmMainContainer.find(selector.inputFields.keyword).val()),\r\n category: typeFilters.join(';'), // both category and subcategory\r\n sortBy: elmMainContainer.find(selector.inputFields.sortBy).val(),\r\n pageNum: pageNum ? pageNum : 1,\r\n numberPerPage: numberPerPage,\r\n numberPerSection: elmMainContainer.find(selector.dataContainer).data(selector.data.numPagesPerSection),\r\n enforceLanguage: enforceLanguage,\r\n languageToEnforce: languageToEnforce,\r\n additionalFilter: []\r\n };\r\n\r\n return data;\r\n }\r\n\r\n function getInputsForPubsEventsNews(elmContainer, isPagination, isPast) {\r\n var data = getInputs(elmContainer, isPagination, isPast);\r\n var elmMainContainer = elmContainer.closest(selector.mainContainer);\r\n\r\n // sector, service & region (ssr)\r\n var elmSSR = elmMainContainer.find(selector.inputFields.ssr);\r\n var ssr = elmSSR.val();\r\n var ssrIndexName = elmSSR.attr(selector.attr.ssrIndexName);\r\n var ssrIndexValue = elmSSR.attr(selector.attr.ssrIndexValue);\r\n\r\n // content tag\r\n var tag = searchRedesign.ui.event.queryString().get(selector.queryString.name.tag);\r\n\r\n //cutoff\r\n var isdateolderthancutoff = searchRedesign.ui.event.queryString().get(selector.queryString.name.cutoff);\r\n\r\n data.location = elmMainContainer.find(selector.inputFields.location).val();\r\n data.ssr = (ssr) ? ssr : [];\r\n data.ssrIndexName = (ssrIndexName) ? ssrIndexName : [];\r\n data.ssrIndexValue = (ssrIndexValue) ? ssrIndexValue : [];\r\n data.fromDate = elmMainContainer.find(selector.inputFields.fromDate).val();\r\n data.toDate = elmMainContainer.find(selector.inputFields.toDate).val();\r\n data.author = elmMainContainer.find(selector.inputFields.author).val();\r\n data.tag = (tag) ? tag : []\r\n data.cutoff = (isdateolderthancutoff) ? isdateolderthancutoff : true;\r\n\r\n return data;\r\n }\r\n\r\n function getInputsForPerson(elmContainer, isPagination, isPast) {\r\n var data = getInputs(elmContainer, isPagination, isPast);\r\n var elmMainContainer = elmContainer.closest(selector.mainContainer);\r\n\r\n // sector, service & region (ssr)\r\n var elmSSR = elmMainContainer.find(selector.inputFields.ssr);\r\n var ssr = elmSSR.val();\r\n var ssrIndexName = elmSSR.attr(selector.attr.ssrIndexName);\r\n var ssrIndexValue = elmSSR.attr(selector.attr.ssrIndexValue);\r\n\r\n data.ssr = (ssr) ? ssr : [];\r\n data.ssrIndexName = (ssrIndexName) ? ssrIndexName : [];\r\n data.ssrIndexValue = (ssrIndexValue) ? ssrIndexValue : [];\r\n data.school = elmMainContainer.find(selector.inputFields.school).val();\r\n data.position = elmMainContainer.find(selector.inputFields.position).val();\r\n data.location = elmMainContainer.find(selector.inputFields.location).val();\r\n data.court = elmMainContainer.find(selector.inputFields.court).val();\r\n data.judge = elmMainContainer.find(selector.inputFields.judge).val();\r\n data.alphaSearch = elmMainContainer.find(selector.alphaSelected).attr(\"id\")\r\n if (data.alphaSearch != undefined) {\r\n data.alphaSearch = data.alphaSearch[data.alphaSearch.length - 1];\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function render(ajaxUrl, inputData, elmListContainer, isFacetRefresh, isPastEvent) {\r\n if (!elmListContainer || elmListContainer.length < 1) {\r\n return;\r\n }\r\n\r\n // reset list/values\r\n elmListContainer.find(selector.totalLabel).html(\"\");\r\n elmListContainer.find(selector.resultsList).remove();\r\n elmListContainer.find(selector.loadingIcon).show();\r\n elmListContainer.find(selector.switchDescription).hide();\r\n\r\n //disable all elements inside filter container\r\n jQuery(selector.inputFields.filterContainer).find(\"*\").attr(selector.attr.disabled, true);\r\n\r\n // Scroll Behavior\r\n var scrollInMobile = false;\r\n var initialQuery;\r\n var eventCat;\r\n if (stayOnTheTopPage) {\r\n initialQuery = stayOnTheTopPage;\r\n eventCat = searchRedesign.ui.event.queryString().get(selector.queryString.name.eventType).replace(\" \", \"\").toLowerCase();\r\n if (eventCat) {\r\n hasCategoryQS = true;\r\n inputData.category = eventCat;\r\n }\r\n }\r\n if (!stayOnTheTopPage) {\r\n if (jQuery(window).width() >= 501) {\r\n jQuery('html, body').animate({\r\n scrollTop: elmListContainer.closest(selector.mainContainer).offset().top - 60\r\n });\r\n } else {\r\n var overlayDisplay = jQuery(selector.filterContainer).css(\"display\");\r\n if (overlayDisplay != \"block\") {\r\n jQuery('html, body').animate({\r\n scrollTop: elmListContainer.closest(selector.bodyContainer).offset().top - 60\r\n }, 1000);\r\n }\r\n }\r\n\r\n // exclude category qs when not initial load\r\n hasCategoryQS = false;\r\n }\r\n\r\n if ((isEventsCurrent == true && isEventsPast == true) || (isEventsCurrent == false && isEventsPast == false)) {\r\n stayOnTheTopPage = false; // not initial page load anymore\r\n }\r\n\r\n jQuery.ajax({\r\n url: ajaxUrl,\r\n data: inputData,\r\n type: \"GET\",\r\n success: function (data) {\r\n if (data && data.trim().length > 0) {\r\n var elmMainContainer = elmListContainer.closest(selector.mainContainer);\r\n\r\n // hide loading icon\r\n elmListContainer.find(selector.loadingIcon).hide();\r\n\r\n //show/hide results description depending on the switch slider value set upon clicking search\r\n if (elmMainContainer.find(selector.eventsTabID).length == 0) {\r\n if (elmMainContainer.find(selector.inputFields.switchToggle).is(':checked') == false) {\r\n data = data.replace(/class\\=\\\"c-results__details\\\"/g, 'class=\"c-results__details\" style=\"display:none\" ');\r\n }\r\n } else {\r\n if (jQuery(elmMainContainer.find(selector.eventsActiveTab).find('a').attr('href')).find(selector.inputFields.switchToggle).is(':checked') == false) {\r\n data = data.replace(/class\\=\\\"c-results__details\\\"/g, 'class=\"c-results__details\" style=\"display:none\" ');\r\n }\r\n }\r\n\r\n // append result listing data\r\n elmListContainer.append(data);\r\n\r\n // get elm data container\r\n var elmLabelData = elmListContainer.find(selector.dataContainer);\r\n\r\n // display total number of result\r\n var totalNum = jQuery(data).data(selector.data.total);\r\n\r\n if (totalNum > 0) {\r\n var labelTotal = elmLabelData.data(selector.data.labelTotal).replace(\"{0}\", totalNum);\r\n elmListContainer.find(selector.totalLabel).html(\"\" + labelTotal + \"\");\r\n elmListContainer.find(selector.switchDescription).show();\r\n //Mobile\r\n if (jQuery(window).width() <= 500) {\r\n elmListContainer.find(selector.switchDescription).css('display', 'flex');\r\n }\r\n }\r\n else { // no result found\r\n var msg = elmLabelData.data(selector.data.labelNoResult);\r\n elmListContainer.find(selector.noResultFound).html(msg);\r\n }\r\n\r\n jQuery(window).resize(function () {\r\n if (totalNum > 0) {\r\n //Desktop\r\n if (jQuery(window).width() >= 501) {\r\n elmListContainer.find(selector.switchDescription).css('display', 'block');\r\n } else {\r\n //Mobile\r\n elmListContainer.find(selector.switchDescription).css('display', 'flex');\r\n }\r\n }\r\n });\r\n\r\n // refresh tabs for events\r\n refreshEventsTabs(elmListContainer, totalNum);\r\n\r\n // set filter type\r\n elmListContainer.find(selector.resultType).each(function (i) {\r\n var elm = jQuery(this);\r\n var idType = elm.text().toLowerCase();\r\n var title = elmMainContainer.find(selector.inputFields.filterType + \"[value='\" + idType + \"']\").data(selector.data.titleFilterType);\r\n if (title && title.length > 0) {\r\n elm.text(title);\r\n }\r\n\r\n elm.show();\r\n });\r\n\r\n // set label for contacts/authors\r\n var labelContacts = elmLabelData.data(selector.data.labelContacts);\r\n elmListContainer.find(selector.contactsLabel).html(\"\" + labelContacts + \"\");\r\n\r\n // refresh categories and subcategories\r\n refreshCategoriesSubcategories(elmListContainer, isFacetRefresh, isPastEvent);\r\n\r\n // event listener for keyboard tabbing on filter subcategories on people search page\r\n jQuery(\".c-filter__subcategory\").on(\"keypress\", function (e) {\r\n var keycode = e.keyCode ? e.keyCode : e.which;\r\n if (keycode == 13 || keycode == 32) {\r\n e.stopPropagation();\r\n var selected = jQuery(this).find(\".js-filterType-input\");\r\n selected.click();\r\n }\r\n });\r\n\r\n attachEventHandlerForPagination(elmListContainer);\r\n\r\n //enable all elements inside filter container\r\n jQuery(selector.inputFields.filterContainer).find(\"*\").attr(selector.attr.disabled, false);\r\n\r\n //this fixes the back button not populating the checkboxes and rectangle filter label.. Only on publication page\r\n if (inputData.category.length > 0 && jQuery(\"div:has('\" + selector.page.news + \"')\").length > 0) {\r\n var filterTypes = jQuery(selector.filterType);\r\n var checkedCats;\r\n if (inputData.category.indexOf(';') > 0) {\r\n checkedCats = jQuery(inputData.category.split(';'));\r\n } else {\r\n checkedCats = jQuery(inputData.category.split(','));\r\n }\r\n if ((filterTypes.length) != (checkedCats.length)) {\r\n searchRedesign.ui.event.filterCheckboxManipulation().isInputChecked().checkCategories(checkedCats);\r\n }\r\n }\r\n else if (inputData.category.length > 0 && jQuery(\"div:has('\" + selector.pubHeaderFilter + \"')\").length > 0) {\r\n var checkedCats = jQuery(inputData.category.split(';'));\r\n searchRedesign.ui.event.filterCheckboxManipulation().isInputChecked().checkCategories(checkedCats);\r\n }\r\n //select category based from the page QS\r\n if (hasCategoryQS) {\r\n checkQueryStringForFilterType(isPastEvent, eventCat)\r\n renderCategoryQS(selector.mainContainer);\r\n }\r\n\r\n }\r\n else {\r\n callbackOnFail(\"Empty return data.\", elmListContainer);\r\n }\r\n },\r\n error: function (msg) {\r\n callbackOnFail(msg, elmListContainer);\r\n }\r\n });\r\n }\r\n\r\n function callbackOnFail(msg, elmListContainer) {\r\n console.log(msg);\r\n elmListContainer.find(selector.loadingIcon).hide();\r\n }\r\n\r\n // refresh categories and subcategories\r\n function refreshCategoriesSubcategories(elmListContainer, isFacetRefresh, isPastEvent) {\r\n var filterContainer = selector.inputFields.filterType + selector.inputFields.not.pastFilter;\r\n\r\n if (isPastEvent) {\r\n filterContainer = selector.past + ' ' + selector.inputFields.filterType;\r\n }\r\n\r\n if (isFacetRefresh) {\r\n var facetJson = elmListContainer.find(selector.facets).data(selector.data.jsonResult);\r\n\r\n // for each categories\r\n jQuery(filterContainer).each(function () {\r\n if (jQuery(this).hasClass(selector.categories.subcategory)) { // except subcategory\r\n return;\r\n }\r\n\r\n var elmCategory = jQuery(this).closest(selector.filterType);\r\n\r\n if (isFullFacetRefresh() || isCategoryWithActiveGroup(elmCategory)) {\r\n var filterId = this.value;\r\n var filterType = jQuery(this).data(selector.data.titleFilterType);\r\n var zeroFacet = jQuery(this).parent().next().text(filterType);// + ' ' + '(0)');\r\n if (facetJson != null) {\r\n var obj = jQuery.grep(facetJson, function (obj) { return obj.Name === filterId; })[0];\r\n\r\n if (obj != null) {\r\n jQuery(this).parent().parent().removeClass(selector.disabled);\r\n jQuery(this).parent().next().text(filterType);// + ' ' + '(' + obj.AggregateCount + ')');\r\n \r\n if (jQuery(this).closest(\".c-filter__type-list\")[0].classList.contains(\"single-category\")) {\r\n jQuery(this).closest(\".c-filter__type\").attr(\"tabindex\", \"-1\");\r\n } else {\r\n jQuery(this).parent().parent().attr(\"tabindex\", \"0\");\r\n }\r\n\r\n // store orig total if is full facet refresh and the category contains group i.e., \"Our People\"\r\n if (isFullFacetRefresh() && isCategoryWithGroups(jQuery(this))) {\r\n jQuery(this).attr(selector.attr.origTotal, obj.AggregateCount);\r\n }\r\n }\r\n else {\r\n jQuery(this).parent().parent().addClass(selector.disabled);\r\n jQuery(this).parent().parent().attr(\"tabindex\", \"-1\");\r\n zeroFacet;\r\n }\r\n }\r\n else {\r\n if (!jQuery(this).find('js-filterType-input')) {\r\n jQuery(this).parent().parent().addClass(selector.disabled);\r\n jQuery(this).parent().parent().attr(\"tabindex\", \"-1\");\r\n zeroFacet;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // render subcategories\r\n renderFilterSubcategories(elmListContainer);\r\n\r\n // render show more for subcategories\r\n searchRedesign.ui.event.filterCheckboxManipulation().includeShowMoreSubcategories(partialFacetRefresh.idGroup);\r\n\r\n // reset refresh facet global variable\r\n setPartialFacetRefresh(false, [], []);\r\n }\r\n\r\n // set currently selected categories/subcategories as prop\r\n var elmFilterTypeList = jQuery(filterContainer).closest(selector.inputFields.filterTypeList);\r\n var typeFilters = searchRedesign.ui.event.filterCheckboxManipulation().getCategorySubcategoryFilters(elmFilterTypeList);\r\n elmFilterTypeList.attr(selector.attr.selectedCategories, typeFilters.join()); // set current selected checkboxes to data\r\n\r\n // sync rectangle filters\r\n searchRedesign.ui.event.filterCheckboxManipulation().syncRectangleFilters(); // sync recctangular filters with the selected checkboxes\r\n }\r\n\r\n function renderGlobal(isPagination, isFacetRefresh) {\r\n var ajaxUrl = \"/api/custom/globalsearch/search\";\r\n var elmListContainer = jQuery(selector.listContainerGlobal);\r\n\r\n if (!elmListContainer || elmListContainer.length < 1) {\r\n return;\r\n }\r\n\r\n var data = getInputs(elmListContainer, isPagination);\r\n if (!!dataLayer) {\r\n dataLayer.push({\r\n 'keyword': data.keyword,\r\n 'pageNumber': data.pageNum,\r\n 'event': 'globalsearch'\r\n });\r\n }\r\n var arrQNamesToRemove = [];\r\n var autoSuggestGlobal = searchRedesign.ui.event.queryString().get(\"source\");\r\n if (autoSuggestGlobal) {\r\n autoSuggestGlobal = autoSuggestGlobal.trim();\r\n if (autoSuggestGlobal.length > 0 && autoSuggestGlobal == \"globalautosuggest\") {\r\n stayOnTheTopPage = false;\r\n arrQNamesToRemove.push(\"source\");\r\n }\r\n }\r\n\r\n if (stayOnTheTopPage) {\r\n var category = searchRedesign.ui.event.queryString().get(selector.queryString.name.category);\r\n if (category) {\r\n category = category.trim();\r\n if (category.length > 0 && category != '*') {\r\n hasCategoryQS = true;\r\n }\r\n }\r\n }\r\n\r\n searchRedesign.ui.event.queryString().setUrlRemovedQSParameters(arrQNamesToRemove);\r\n render(ajaxUrl, data, elmListContainer, isFacetRefresh);\r\n }\r\n\r\n function renderEventsUpcoming(isPagination, isFacetRefresh) {\r\n var ajaxUrl = \"/api/custom/eventsearch/search\";\r\n var elmListContainer = jQuery(selector.listContainerEventsUpcomingTab);\r\n\r\n if (!elmListContainer || elmListContainer.length < 1) {\r\n return;\r\n }\r\n\r\n var data = getInputsForPubsEventsNews(elmListContainer, isPagination, false);\r\n data.isUpcoming = true;\r\n\r\n var elmMainContainer = elmListContainer.closest(selector.mainContainer);\r\n data.sortBy = elmMainContainer.find(selector.inputFields.sortByEventsUpcoming).val();\r\n\r\n if (data.category.length == 0) {\r\n data.category = initAllFilterTypes(elmMainContainer);\r\n }\r\n\r\n if (isPagination) {\r\n var pageNum = elmListContainer.find(selector.pageLink + '.selected').data(selector.data.pageNum);\r\n data.pageNum = pageNum ? pageNum : 1;\r\n }\r\n\r\n isEventsCurrent = true;\r\n render(ajaxUrl, data, elmListContainer, isFacetRefresh);\r\n }\r\n\r\n function renderEventsPast(isPagination, isFacetRefresh) {\r\n var ajaxUrl = \"/api/custom/eventsearch/search\";\r\n var elmListContainer = jQuery(selector.listContainerEventsPastTab);\r\n\r\n if (!elmListContainer || elmListContainer.length < 1) {\r\n return;\r\n }\r\n\r\n var data = getInputsForPubsEventsNews(elmListContainer, isPagination, true);\r\n data.isUpcoming = false;\r\n\r\n var elmMainContainer = elmListContainer.closest(selector.mainContainer);\r\n data.sortBy = elmMainContainer.find(selector.inputFields.sortByEventsPast).val();\r\n\r\n if (data.category.length == 0) {\r\n data.category = initAllFilterTypes(elmMainContainer, true);\r\n }\r\n\r\n if (isPagination) {\r\n var pageNum = elmListContainer.find(selector.pageLink + '.selected').data(selector.data.pageNum);\r\n data.pageNum = pageNum ? pageNum : 1;\r\n }\r\n\r\n isEventsPast = true;\r\n render(ajaxUrl, data, elmListContainer, isFacetRefresh, true);\r\n }\r\n\r\n function renderNews(isPagination, isFacetRefresh) {\r\n var ajaxUrl = \"/api/custom/newssearch/search\";\r\n var elmListContainer = jQuery(selector.listContainerNews);\r\n\r\n if (!elmListContainer || elmListContainer.length < 1) {\r\n return;\r\n }\r\n\r\n var data = getInputsForPubsEventsNews(elmListContainer, isPagination, false);\r\n var elmMainContainer = elmListContainer.closest(selector.mainContainer);\r\n\r\n if (data.category.length == 0) {\r\n data.category = initAllFilterTypes(elmMainContainer);\r\n }\r\n\r\n render(ajaxUrl, data, elmListContainer, isFacetRefresh);\r\n }\r\n\r\n function renderPublications(isPagination, isFacetRefresh) {\r\n var ajaxUrl = \"/api/custom/publicationsearch/search\";\r\n var elmListContainer = jQuery(selector.listContainerPublications);\r\n\r\n if (!elmListContainer || elmListContainer.length < 1) {\r\n return;\r\n }\r\n\r\n var data = getInputsForPubsEventsNews(elmListContainer, isPagination, false);\r\n render(ajaxUrl, data, elmListContainer, isFacetRefresh);\r\n }\r\n\r\n function renderPerson(isPagination, isFacetRefresh) {\r\n var ajaxUrl = \"/api/custom/peoplesearch/search\";\r\n var elmListContainer = jQuery(selector.listContainerPerson);\r\n\r\n if (!elmListContainer || elmListContainer.length < 1) {\r\n return;\r\n }\r\n\r\n // check if search request comes from People Navigation Menu or Careers Alumni Search\r\n var qsPeopleNavigationSearch = searchRedesign.ui.event.queryString().get(selector.queryString.name.peopleMegaMenu);\r\n var qsCareersAlumniSearch = searchRedesign.ui.event.queryString().get(selector.queryString.name.careersAlumni);\r\n if (qsPeopleNavigationSearch == selector.queryString.value.peopleMegaMenuVal || qsCareersAlumniSearch == selector.queryString.value.careersAlumniVal) {\r\n stayOnTheTopPage = false;\r\n }\r\n\r\n var data = getInputsForPerson(elmListContainer, isPagination, false);\r\n render(ajaxUrl, data, elmListContainer, isFacetRefresh);\r\n }\r\n\r\n function renderFilterSubcategories(elmContainer) {\r\n var filterSubcategoriesFacet = elmContainer.find(selector.facets).data(selector.data.jsonResultSubcategory);\r\n if (filterSubcategoriesFacet == null) {\r\n return;\r\n }\r\n\r\n // removal of subcategory containers\r\n if (isFullFacetRefresh()) { // usual search or initial search load\r\n jQuery(selector.categories.filterContainerSubtypes).remove(); // remove existing subcategory group\r\n }\r\n else {\r\n jQuery(selector.categories.filterContainerSubtypes).each(function () {\r\n var elmContainerSubtypes = jQuery(this);\r\n\r\n // check if facet refresh should be for specific group only for i.e., Our People\r\n if (isCategoryWithActiveGroup(elmContainerSubtypes.closest(selector.filterType))) {\r\n // those group outside the selected subtype only\r\n var idGroup = elmContainerSubtypes.closest(selector.groupedSubtypeItem).data(selector.data.id);\r\n if (!isActiveGroup(idGroup)) {\r\n elmContainerSubtypes.remove();\r\n }\r\n }\r\n });\r\n }\r\n\r\n // reconstruct subcategory checkboxes\r\n jQuery.each(filterSubcategoriesFacet, function (index) {\r\n var name = (filterSubcategoriesFacet[index].Name);\r\n var nameSplit = name.split(':');\r\n var categoryId = nameSplit[0]; // category id\r\n var aggregateCount = (filterSubcategoriesFacet[index].AggregateCount);\r\n\r\n if (nameSplit.length > 2) { // should be 3 or more\r\n var elmCategory = jQuery(selector.filterType + \"[data-\" + selector.data.id + \"='\" + categoryId + \"']\");\r\n\r\n if (isFullFacetRefresh() || isGroupToRefresh(categoryId, nameSplit[1])) {\r\n if (nameSplit.length > 3) { // OUR PEOPLE\r\n var groupedSubcategoriesId = nameSplit[1];\r\n var subcategoryTitle = nameSplit[2];\r\n var subcategoryId = nameSplit[3];\r\n\r\n if (isSubcategoryIncludedInLimit(elmCategory, subcategoryId)) {\r\n var elmGroupedSubcategories = elmCategory.find(selector.groupedSubtypeItem + \"[data-\" + selector.data.id + \"='\" + groupedSubcategoriesId + \"']\");\r\n var elmSubcategory = getElmSubcategory(subcategoryId, subcategoryTitle, aggregateCount, elmCategory).addClass(selector.categories.fromGrouped);\r\n elmGroupedSubcategories.append(elmSubcategory);\r\n }\r\n }\r\n else { // OUR PRACTICE, PUBLICATIONS, EVENTS, NEWS\r\n var subcategoryTitle = nameSplit[1];\r\n var subcategoryId = nameSplit[2];\r\n\r\n if (isSubcategoryIncludedInLimit(elmCategory, subcategoryId)) {\r\n var elmSubcategory = getElmSubcategory(subcategoryId, subcategoryTitle, aggregateCount, elmCategory);\r\n elmCategory.find(selector.groupedSubtype).append(elmSubcategory);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n function isSubcategoryIncludedInLimit(elmCategory, subcategoryId) {\r\n var limit = elmCategory.data(selector.data.subcategoriesLimit);\r\n\r\n if (limit && limit.length > 0) {\r\n if (limit.indexOf(subcategoryId) > -1) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n function getElmSubcategory(subcategoryId, subcategoryTitle, aggregateCount, elmCategory) {\r\n var filterSubcategory = jQuery(\"
\").addClass(selector.categories.filterSubcategory);\r\n var filterCheckbox = jQuery(\"
\").addClass(selector.categories.filterCheckbox);\r\n $(\".c-filter__subcategory\").attr(\"tabindex\", \"0\");\r\n var label = jQuery(\"