} // Also trigger any other Algolia initialization functions if (typeof window.algoliaSearchInit === 'function') { window.algoliaSearchInit(); } // Trigger any other common Algolia initialization patterns if (typeof window.initSearch === 'function') { window.initSearch(); } // Dispatch a custom event for other scripts to listen to window.dispatchEvent(new CustomEvent('algolia:init')); } // Initialize on any search input interaction searchInputs.forEach(function(input) { // Initialize on focus input.addEventListener('focus', initializeAlgolia, { once: true }); // Initialize on click input.addEventListener('click', initializeAlgolia, { once: true }); // Initialize on keydown input.addEventListener('keydown', initializeAlgolia, { once: true }); // Initialize on input (for real-time search) input.addEventListener('input', initializeAlgolia, { once: true }); }); // Also initialize on search page or if search parameter is present if (window.location.search.includes('s=') || window.location.pathname.includes('/search')) { initializeAlgolia(); } // Initialize on any search-related button clicks const searchButtons = document.querySelectorAll('.search-button, .search-submit, [data-search], .algolia-search-button'); searchButtons.forEach(function(button) { button.addEventListener('click', initializeAlgolia, { once: true }); }); // Initialize on any search form submissions const searchForms = document.querySelectorAll('form[role="search"], .search-form, .algolia-search-form'); searchForms.forEach(function(form) { form.addEventListener('submit', initializeAlgolia, { once: true }); }); } // Initialize when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAlgoliaLazyLoading); } else { initAlgoliaLazyLoading(); } })();