// Explain: Initializes interactive components like catalog filters and enquiry forms. document.addEventListener('DOMContentLoaded', function () { function initCatalogFilter() { var chips = document.querySelectorAll('[data-cat]'); var cards = document.querySelectorAll('[data-card-cat]'); if (!chips.length || !cards.length) { return; } var searchInput = document.getElementById('catalogSearch'); var countEl = document.getElementById('catalogCount'); var emptyEl = document.getElementById('catalogEmpty'); var emptyTextEl = document.getElementById('catalogEmptyText'); var activeCat = 'all'; var query = ''; function apply() { var term = query.trim().toLowerCase(); var shown = 0; cards.forEach(function (card) { var catOk = activeCat === 'all' || card.getAttribute('data-card-cat') === activeCat; var haystack = (card.textContent || '').toLowerCase(); var searchOk = term === '' || haystack.indexOf(term) !== -1; var matches = catOk && searchOk; card.classList.toggle('hidden', !matches); if (matches) { shown += 1; } }); if (countEl) { countEl.textContent = 'Showing ' + shown + (shown === 1 ? ' product' : ' products'); } if (emptyEl) { var isEmpty = shown === 0; emptyEl.classList.toggle('hidden', !isEmpty); if (isEmpty && emptyTextEl) { emptyTextEl.textContent = term !== '' ? 'No products match "' + query.trim() + '". Try another name, category or health concern.' : 'Nothing in this category just yet \u2014 call us and we will source it for you.'; } } } chips.forEach(function (chip) { chip.addEventListener('click', function () { chips.forEach(function (other) { other.classList.remove('ay-chip-active'); }); chip.classList.add('ay-chip-active'); activeCat = chip.getAttribute('data-cat'); apply(); }); }); if (searchInput) { searchInput.addEventListener('input', function () { query = searchInput.value; apply(); }); } apply(); } function initEnquiryForm() { var form = document.getElementById('enquiryForm'); if (!form || !window.MessagesSystem) { return; } var statusEl = document.getElementById('enquiryStatus'); function setStatus(text, isError) { if (!statusEl) { return; } statusEl.textContent = text; statusEl.className = isError ? 'text-sm font-medium text-red-600' : 'text-sm font-medium text-[var(--primary-color)]'; } form.addEventListener('submit', function (event) { event.preventDefault(); var email = form.email.value.trim(); var phone = form.phone.value.trim(); if (form.fullName.value.trim().length < 2) { setStatus('Please tell us your name.', true); return; } if (email.indexOf('@') === -1 || email.length < 5) { setStatus('Please enter a valid email address.', true); return; } if (phone.length < 6) { setStatus('Please enter a phone number so we can call you back.', true); return; } var submitBtn = form.querySelector('[type="submit"]'); var original = submitBtn.innerHTML; submitBtn.disabled = true; submitBtn.innerHTML = ' Sending'; window.MessagesSystem.submit([ { label: 'Full Name', value: form.fullName.value.trim(), type: 'text' }, { label: 'Email', value: email, type: 'email' }, { label: 'Phone', value: phone, type: 'tel' }, { label: 'Main Wellness Goal', value: form.goal.value, type: 'select' }, { label: 'Details', value: form.message.value.trim(), type: 'textarea' } ], form).then(function (res) { submitBtn.disabled = false; submitBtn.innerHTML = original; if (res && res.success) { setStatus('Thank you! An Ayurvedic advisor will call you within one working day.', false); form.reset(); } else { setStatus((res && res.error) ? res.error : 'We could not send your request.', true); } }).catch(function () { submitBtn.disabled = false; submitBtn.innerHTML = original; setStatus('Network problem. Please try again or call 93916 22849.', true); }); }); } initCatalogFilter(); initEnquiryForm(); });