PageSourceSearch

https://bergermontague.com/wp-content/themes/paperstreet/js/headerSearch.js?ver=3.9777

js bergermontague.com collected 2026-10-02 06:53:49 UTC 2,563 bytes, 83 lines download raw bytes

1//Header search with AJAX script
2(function($) {
3	//Global variables
4	var minCharactersPredictiveSearch = 4; //Minimum number of characters in header search to activate lazy search
5
6	//Document ready - search setup
7	$(function() {
8		prepareHeaderSearch();
9	});
10
11	//Search toggle condition on button click
12	$(".header-search-toggle").on("click", function(e) {
13		toggleHeaderSearch();
14	});
15
16	//Open and close header search panel
17	function toggleHeaderSearch() {
18		$("#header-search").toggleClass("active");
19		$('#header-search-results').removeActive();
20
21		if ($("body").hasClass("search-open") == false) {
22			//OPEN top search
23			$("#header-search-input").focus(); //Force focus to the search
24			$("body").addClass("search-open");
25
26			//Ensure keyboard focus on search features
27			$('#header-search input, #header-search button').attr('tabindex','0');
28		}
29		else {
30			//CLOSE top search
31			$("body").removeClass("search-open");
32
33			//Do not want a closed header search to be keyboard focusable
34			$('#header-search input, #header-search button').attr('tabindex','-1');
35		}
36	}
37
38	//Attach event listener for input on header search so AJAX can fire
39	function prepareHeaderSearch() {
40		$('#header-search-input').one('input', headerSearchTrigger);
41	}
42
43	//Triggers an AJAX search request or prepares listener again
44	var headerSearchTrigger = function() {
45		//If at least x characters entered in search bar, launch AJAX search; if not, reattach event listener
46		if ($('#header-search-input').val().length >= minCharactersPredictiveSearch)
47		{
48			requestSearchResponse();
49		}
50		else
51		{
52			prepareHeaderSearch();
53			$('#header-search-results').removeActive();
54		}
55	}
56
57	//Fires AJAX request that is handled in PHP, result returned via JSON
58	function requestSearchResponse() {
59		jQuery.ajax({
60			type: 'get',
61			url: $('#header-search-input').attr('data-ajax-action'), //Points to file handling AJAX request
62			data: {
63				action: 'header_search_change', //PHP hears this action and responds
64				keyword: $('#header-search-input').val() //Value sent with GET so PHP can use it
65			},
66			success: function(response) {
67				$('#header-search-results').html(response);
68				$('#header-search-results').addActive();
69
70				//If the term searched no longer matches what's in the search input, re-run search
71				if ($('#header-search .search-results-container').attr('data-keyword-searched') != $('#header-search-input').val())
72				{
73					requestSearchResponse();
74				}
75				else
76				{
77					//Allow header search to happen again
78					prepareHeaderSearch();
79				}
80			}
81		});
82	}
83})(jQuery);

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.