Search Results

Test Child Page

(function () { function enc(value) { return encodeURIComponent( value == null ? '' : String(value) ); } function makeFacet(type, name, value) { return `${type}:${enc(name)}:${enc(value)}`; } function isFacetKey(key) { return /^searchstax\[facets\]\[\d+\]$/.test(key); } function buildUrl(action, params) { const base = new URL( action || window.location.pathname, window.location.origin ); const queryString = Object.keys(params) .filter(key => params[key] !== undefined && params[key] !== null && String(params[key]).trim() !== '' ) .map(key => { /* * SearchStax requires literal ":" separators in facet values. * The facet components have already been encoded by makeFacet(). */ const value = isFacetKey(key) ? params[key] : enc(params[key]); return `${key}=${value}`; }) .join('&'); base.search = queryString; return base.toString(); } document.addEventListener('submit', function (event) { const form = event.target; if (!form.matches('.search__container form')) return; const queryInput = form.querySelector( 'input[name="searchstax[query]"]' ); if (!queryInput) return; const query = (queryInput.value || '').trim(); if (!query) return; event.preventDefault(); const modelInput = form.querySelector( 'input[name="searchstax[model]"]' ); const model = modelInput ? (modelInput.value || '').trim() : 'Main Profile'; const params = { 'searchstax[query]': query, 'searchstax[page]': '1', 'searchstax[model]': model }; const scopeCheckbox = form.querySelector( '[data-search-this-site]' ); if (scopeCheckbox && scopeCheckbox.checked) { const hostname = window.location.hostname .toLowerCase() .replace(/\.$/, ''); params['searchstax[facets][0]'] = makeFacet('tabs', 'og_type_s', 'website'); params['searchstax[facets][1]'] = makeFacet('and', 'host', hostname); } const target = buildUrl( form.getAttribute('action'), params ); window.location.assign(target); }, true); })();