PageSourceSearch

https://www.nationalfuel.com/wp-content/themes/nationalfuel/assets/js/news-filter.js?ver=1790606481

js nationalfuel.com collected 2026-10-03 20:48:55 UTC 7,278 bytes, 196 lines download raw bytes

1jQuery(document).ready(function($){
2	//lazyload_init();
3	var pageTitle = document.title;
4	var clickedFilters = [];
5	var usedNewsSearch = false;
6	/*check to see if any checkboxes were checked from the querystring
7	if so, add active class to show green dot. */
8	$('.filter').each(function(i,item){
9		if($(item).is(':checked')){
10			$(this).parents('.tab-content').slideToggle(200).siblings('.accordion-tab').addClass('accordion-tab-active');
11		}
12	});
13
14	$(document).on('click','#show-filters',function(){
15		$('#news-filters').toggleClass('visible');
16	});
17
18	$(document).on('click','.pseudo-checkbox-enabled',function(){
19		$('#search-term').val('');
20		//send analytics if it's the first time the user clicked the filter
21		var clickedItem = $(this).text();
22		if($.inArray(clickedItem, clickedFilters) == -1) {
23		   dataLayer.push({event:'newsFilter', 'eventCategory': 'News Filter', 'eventLabel': clickedItem});
24			clickedFilters.push(clickedItem);
25		}
26
27		var accordion = $(this).parents('.tab-content').siblings('.accordion-tab');
28
29		if($(this).children('span').hasClass('i_checkbox_empty')) {
30			if(!$(accordion).hasClass('accordion-tab-active')){
31				$(accordion).addClass('accordion-tab-active');
32			}
33
34			$(this).siblings('.filter').prop('checked',true);
35			$(this).children('span').addClass('i_checkbox_checked').removeClass('i_checkbox_empty');
36		}else{
37			$(this).siblings('.filter').prop('checked',false);
38			$(this).children('span').addClass('i_checkbox_empty').removeClass('i_checkbox_checked');
39
40			var groupFilters = $(this).siblings('.filter').parent().parent().find('.filter');
41			var groupStillChecked = false;
42			$.each(groupFilters,function(i,item){
43				if($(item).is(':checked')){
44					groupStillChecked = true;
45				}else{
46					//nothing
47				}
48			});
49
50			if(groupStillChecked == false) {
51				$(accordion).removeClass('accordion-tab-active');
52			}
53		}
54		load_filters_news(true);
55	});
56
57	$(document).on('click','#clear-filters',function(){
58		clear_filters();
59	});
60
61	function load_filters_news(load_news){
62		$('#news-list').removeClass('news-shown');
63		//$('.loading').addClass('gif-shown');
64		var checked_filters = [];
65		var filter_list = [];
66		//get all that are checked
67		$('.filter:checked').each(function () {
68			var newsname = $(this).attr('name').slice(0,-2);
69			var term_id = $(this).val();
70			var term_info = [newsname, term_id];
71			checked_filters.push(term_info);
72		});
73		$('.filter').each(function () {
74			var term_id = $(this).val();
75			filter_list.push(term_id);
76		});
77		$.ajax({
78			type: 'POST',
79			url: frontendajax.url,
80			data: { action: 'filter_news','filters':checked_filters, 'load_news':load_news, 'filter_list':filter_list, 'nonce':frontendajax.nonce },
81		    dataType: 'json',
82		}).done(function(response){
83		   	//update filters
84			var filter_string = '';
85			var filters_checked = {};
86			for(key in response.selected_filters) {
87				var html = '';
88				const filterContainer = document.getElementById('filter'+key);
89				filterContainer.innerHTML = '';
90				$.each(response.selected_filters[key]['filters'], function(i,item){
91					if (item.disabled){
92						disabled = ' disabled';
93						pseudo_state = ' pseudo-checkbox-disabled'
94					} else{
95						disabled = '';
96						pseudo_state = ' pseudo-checkbox-enabled';
97					}
98					if(item.checked) {
99		   				checked_icon = 'i_checkbox_checked';
100		   				input_checked = ' checked="checked"';
101		   				
102		   				if(typeof filters_checked[item.tax] === 'undefined') {
103						    filters_checked[item.tax] = new Array(item.slug);
104						}else {
105						    filters_checked[item.tax].push(item.slug);
106						}
107		   			}else{
108		   				checked_icon = 'i_checkbox_empty';
109		   				input_checked = '';
110		   			}
111					html = `<label class="filter-item"><input type="checkbox" class="filter" name="${item.tax}[]" value="${item.id}"${input_checked}${disabled} /><a data-emacategory="newsFilter" data-emalabel="${item.name}" class="checkbox-item pseudo-checkbox ${pseudo_state}"><span class="${checked_icon}"></span>${item.name}</a></label>`;
112					filterContainer.insertAdjacentHTML('beforeend', html);
113		   			
114		   		});
115
116		   		
117		   	}
118		   	querystrings = [];   	
119		   	$.each(filters_checked, function(key, value){
120		   		querystrings.push(key+'='+value.join('|'));
121		   	});
122		   	if(querystrings.length != 0) {
123			   	document.title = pageTitle;
124			}else{
125			}
126			const tableContainer = document.getElementById('newsBody');
127			tableContainer.innerHTML = '';
128		   	//update news
129		   	var newsHtml = '';	
130			$.each(response.news, function(i,item){
131				newsHtml = `<div class="column-container"><a href="${item.permalink}" data-emacategory="In-Page Navigation" data-emalabel="${item.title}"><div class="feature-image-container">${item.image}</div><h3>${item.title}</h3><p class="article-date">${item.date}</p><div class="col-content wysiwyg-content">${item.excerp}</div><p class="blue-link">Go to Page</p></a></div>`;
132				tableContainer.insertAdjacentHTML('beforeend', newsHtml);
133	   		});
134	   		$('#news-list').addClass('news-shown');
135	   		
136	   		
137		});
138	}
139
140	$('#news-search').submit(function(e){
141		e.preventDefault();
142		var searchTerm = $('#search-term').val();
143		//if(usedNewsSearch == false) {
144			dataLayer.push({event:'newsSearch', 'eventCategory': 'News Search', 'eventLabel': 'Search '+searchTerm});
145		//	usedNewsSearch = true;
146		//}
147		$('#news-list').removeClass('news-shown');
148		$('.loading').addClass('gif-shown');
149		$('.filter').prop('checked',false);
150		$('.pseudo-checkbox').children('span').addClass('i_checkbox_empty').removeClass('i_checkbox_checked');
151		$('.accordion-tab').removeClass('accordion-tab-active');
152
153		
154		if(searchTerm == '') {
155			clear_filters();
156			return false;
157		}
158		nonce = $('#newsNonce').val();
159		var filter_list = [];
160		$('.filter').each(function () {
161			var term_id = $(this).val();
162			filter_list.push(term_id);
163		});
164		$.ajax({
165		    type: 'POST',
166		    url: frontendajax.url,
167			data: { action: 'search_news','s':searchTerm, 'filter_list': filter_list, 'newsNonce': nonce},
168		    dataType: 'json',
169		}).done(function( response ) {
170			const tableContainer = document.getElementById('newsBody');
171			tableContainer.innerHTML = '';
172		   	//update news
173		   	var newsHtml = '';	
174			$.each(response.news, function(i,item){
175				newsHtml = `<div class="column-container"><a href="${item.permalink}" data-emacategory="In-Page Navigation" data-emalabel="${item.title}"><div class="feature-image-container">${item.image}</div><h3>${item.title}</h3><p class="article-date">${item.date}</p><div class="col-content wysiwyg-content">${item.excerp}</div><p class="blue-link">Go to Page</p></a></div>`;
176				tableContainer.insertAdjacentHTML('beforeend', newsHtml);
177	   		});
178	   		$('#news-list').addClass('news-shown');
179
180	   		document.title = pageTitle;
181	   		
182		});
183	});
184
185	function clear_filters() {
186		$('#search-term').val('');
187		$('.pseudo-checkbox-enabled').siblings('.filter').prop('checked',false);
188		$('.pseudo-checkbox-enabled').children('span').addClass('i_checkbox_empty').removeClass('i_checkbox_checked');
189		$('.accordion-tab-active').removeClass('accordion-tab-active');
190		document.title = pageTitle;
191		//newURL = window.location.protocol+'//'+window.location.host+window.location.pathname;
192		//History.replaceState({}, pageTitle, newURL);
193		load_filters_news(true);
194		
195	}
196});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.