PageSourceSearch

https://www.knwu.nl/build/scripts/custom.js?v=1785412907

js knwu.nl collected 2026-09-24 09:30:15 UTC 2,780 bytes, 91 lines download raw bytes

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.