PageSourceSearch

https://www.rendigs.com/wp-content/themes/paperstreet/js/headerSearch.js?ver=3.670

js rendigs.com collected 2026-10-05 02:36:51 UTC 2,755 bytes, 90 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	//Search toggle condition on keypress
17	$(document).keyup(function(e) {
18		if ((e.key === "Escape") && (isDesktopScreen())) { //Escape key maps to keycode 27
19			toggleHeaderSearch();
20		}
21	});
22
23	//Open and close header search panel
24	function toggleHeaderSearch() {
25		$("#header-search").toggleClass("active");
26		$('#header-search-results').removeActive();
27
28		if ($("body").hasClass("search-open") == false) {
29			//OPEN top search
30			$("#header-search-input").focus(); //Force focus to the search
31			$("body").addClass("search-open");
32
33			//Ensure keyboard focus on search features
34			$('#header-search input, #header-search button').attr('tabindex','0');
35		}
36		else {
37			//CLOSE top search
38			$("body").removeClass("search-open");
39
40			//Do not want a closed header search to be keyboard focusable
41			$('#header-search input, #header-search button').attr('tabindex','-1');
42		}
43	}
44
45	//Attach event listener for input on header search so AJAX can fire
46	function prepareHeaderSearch() {
47		$('#header-search-input').one('input', headerSearchTrigger);
48	}
49
50	//Triggers an AJAX search request or prepares listener again
51	var headerSearchTrigger = function() {
52		//If at least x characters entered in search bar, launch AJAX search; if not, reattach event listener
53		if ($('#header-search-input').val().length >= minCharactersPredictiveSearch)
54		{
55			requestSearchResponse();
56		}
57		else
58		{
59			prepareHeaderSearch();
60			$('#header-search-results').removeActive();
61		}
62	}
63
64	//Fires AJAX request that is handled in PHP, result returned via JSON
65	function requestSearchResponse() {
66		jQuery.ajax({
67			type: 'get',
68			url: $('#header-search-input').attr('data-ajax-action'), //Points to file handling AJAX request
69			data: {
70				action: 'header_search_change', //PHP hears this action and responds
71				keyword: $('#header-search-input').val() //Value sent with GET so PHP can use it
72			},
73			success: function(response) {
74				$('#header-search-results').html(response);
75				$('#header-search-results').addActive();
76
77				//If the term searched no longer matches what's in the search input, re-run search
78				if ($('#header-search .search-results-container').attr('data-keyword-searched') != $('#header-search-input').val())
79				{
80					requestSearchResponse();
81				}
82				else
83				{
84					//Allow header search to happen again
85					prepareHeaderSearch();
86				}
87			}
88		});
89	}
90})(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.