1// jQuery(document).ready(function () { 2// $('a[href^="#"]').on("click", function (e) { 3// var target = this.hash, 4// $target = $(target); 5 6// $("html, body") 7// .stop() 8// .animate( 9// { 10// scrollTop: $target.offset().top - 110, 11// }, 12// 900, 13// "swing", 14// function () { 15// window.location.hash = target; 16// } 17// ); 18// }); 19// }); 20 21(function () { 22 var newsletterForm = document.querySelector('.footer-newsletter[data-gravity-form-id="1"]'); 23 24 if (!newsletterForm) { 25 return; 26 } 27 28 var emailInput = newsletterForm.querySelector('input[type="email"]'); 29 var submitButton = newsletterForm.querySelector('button[type="submit"]'); 30 var errorMessage = newsletterForm.querySelector('.footer-newsletter__error'); 31 var statusMessage = newsletterForm.querySelector('.footer-newsletter__status'); 32 33 function setError(message) { 34 errorMessage.textContent = message || ''; 35 emailInput.setAttribute('aria-invalid', message ? 'true' : 'false'); 36 } 37 38 newsletterForm.addEventListener('submit', function (event) { 39 event.preventDefault(); 40 41 setError(''); 42 statusMessage.textContent = ''; 43 44 if (!emailInput.value.trim() || !emailInput.validity.valid) { 45 setError('Vul een geldig e-mailadres in.'); 46 emailInput.focus(); 47 return; 48 } 49 50 submitButton.disabled = true; 51 52 fetch('/newsletter-submit.php', { 53 method: 'POST', 54 headers: { 55 'Content-Type': 'application/json', 56 'Accept': 'application/json' 57 }, 58 body: JSON.stringify({ email: emailInput.value.trim() }) 59 }) 60 .then(function (response) { 61 return response.json().catch(function () { 62 return { 63 is_valid: false, 64 message: 'Aanmelden is niet gelukt. Probeer het opnieuw.' 65 }; 66 }); 67 }) 68 .then(function (result) { 69 if (!result.is_valid) { 70 setError(result.message || 'Aanmelden is niet gelukt. Probeer het opnieuw.'); 71 emailInput.focus(); 72 return; 73 } 74 75 statusMessage.textContent = 'Bedankt voor je aanmelding.'; 76 emailInput.select(); 77 }) 78 .catch(function () { 79 setError('Aanmelden is niet gelukt. Probeer het opnieuw.'); 80 }) 81 .then(function () { 82 submitButton.disabled = false; 83 }); 84 }); 85 86 emailInput.addEventListener('input', function () { 87 if (errorMessage.textContent) { 88 setError(''); 89 } 90 }); 91}());
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.