1document.addEventListener('DOMContentLoaded', function () { 2 var getNLFromUri = new URLSearchParams(window.location.search); 3 4 if (getNLFromUri.has('nl')) { 5 var preselectedNl = document.getElementById(getNLFromUri.get('nl')); 6 if (preselectedNl) { 7 preselectedNl.checked = true; 8 var preselectedForm = preselectedNl.closest('.bundle_newsletter_form'); 9 setTimeout(function () { 10 if (preselectedForm) { 11 preselectedForm.scrollIntoView({ block: 'start', behavior: 'smooth' }); 12 } 13 }, 250); 14 } 15 } 16 17 document.querySelectorAll('.jump-to-nl').forEach(function (btn) { 18 btn.addEventListener('click', function (btnClickEv) { 19 btnClickEv.preventDefault(); 20 var targetNlInput = document.getElementById(btn.dataset.nl); 21 if (targetNlInput) { 22 targetNlInput.checked = true; 23 } 24 var targetNlForm = targetNlInput ? targetNlInput.closest('.bundle_newsletter_form') : null; 25 26 setTimeout(function () { 27 if (targetNlForm) { 28 targetNlForm.scrollIntoView({ block: 'start', behavior: 'smooth' }); 29 } 30 }, 250); 31 }); 32 }); 33 34 var bundleNewsletter = document.querySelectorAll('.bundle-newsletter'); 35 36 bundleNewsletter.forEach(function (newsletter) { 37 var nlForm = newsletter.querySelector('.bundle_newsletter_form'); 38 var werbeerlaubnisForm = newsletter.querySelector('.werbeerlaubnis-form'); 39 var advancedDataField = newsletter.querySelector('[name="nl_info"]'); 40 41 if (!nlForm) { 42 return; 43 } 44 45 if (advancedDataField && werbeerlaubnisForm) { 46 advancedDataField.addEventListener('change', function () { 47 werbeerlaubnisForm.style.display = advancedDataField.checked ? '' : 'none'; 48 if (advancedDataField.checked) { 49 werbeerlaubnisForm.classList.add('grid'); 50 } else { 51 werbeerlaubnisForm.classList.remove('grid'); 52 } 53 werbeerlaubnisForm.querySelectorAll('input, select').forEach(function (input) { 54 input.disabled = !advancedDataField.checked; 55 }); 56 newsletter.classList.toggle('nl-bg-open', advancedDataField.checked); 57 }); 58 59 werbeerlaubnisForm.querySelectorAll('input, select').forEach(function (input) { 60 input.disabled = true; 61 }); 62 } 63 64 var confirmAddressBtn = newsletter.querySelector('#confirmAddress'); 65 if (confirmAddressBtn) { 66 confirmAddressBtn.addEventListener('click', function () { 67 nlForm.classList.add('was-validated'); 68 }); 69 } 70 71 newsletter.querySelectorAll('[name="newsletter_type"]').forEach(function (chk) { 72 chk.addEventListener('change', function () { 73 chk.setCustomValidity(''); 74 }); 75 }); 76 77 nlForm.addEventListener('submit', function (e) { 78 e.preventDefault(); 79 80 var form = e.target; 81 var checkedNlTypes = form.querySelectorAll('[name="newsletter_type"]:checked, input[type="hidden"][name="newsletter_type"]'); 82 83 if (checkedNlTypes.length === 0) { 84 var newsletterRequiredField = form.querySelector('[name="newsletter_type"]'); 85 if (newsletterRequiredField) { 86 newsletterRequiredField.setCustomValidity('Bitte wählen Sie mindestens einen Newsletter'); 87 } 88 form.reportValidity(); 89 return; 90 } 91 92 if (window.datafactory) { 93 window.datafactory.validate().then(function (result) { 94 if (advancedDataField && advancedDataField.checked && !result) { 95 var addressModal = form.querySelector('.datafactory-modal'); 96 if (!addressModal) { 97 sendFormForCheckedNewsletters(checkedNlTypes, form); 98 return; 99 } 100 101 addressModal.innerHTML = String.raw` 102 <div class="datafactory-modal-content"> 103 <div class="card-header mb-4"> 104 <div class="h2 mb-1" id="addressModalLabel">Adresse überprüfen</div> 105 <p>Die eingegebene Adresse ist falsch. Möchten Sie fortfahren oder die Adresse anpassen?</p> 106 </div> 107 <div class="modal-flex-newsletter"> 108 <button type="button" class="nlformsubmitbtn btn btn-primary">Adresse bestätigen</button> 109 <button type="button" class="nleditaddress btn btn-secondary" data-dismiss="modal">Adresse anpassen</button> 110 </div> 111 </div>`; 112 113 addressModal.querySelector('.nlformsubmitbtn').addEventListener('click', function () { 114 sendFormForCheckedNewsletters(checkedNlTypes, form); 115 addressModal.classList.remove('datafactory-show-modal'); 116 addressModal.innerHTML = ''; 117 }); 118 119 addressModal.querySelector('.nleditaddress').addEventListener('click', function () { 120 addressModal.classList.remove('datafactory-show-modal'); 121 addressModal.innerHTML = ''; 122 }); 123 124 addressModal.classList.add('datafactory-show-modal'); 125 } else { 126 sendFormForCheckedNewsletters(checkedNlTypes, form); 127 } 128 }); 129 } else { 130 sendFormForCheckedNewsletters(checkedNlTypes, form); 131 } 132 133 window.dataLayer = window.dataLayer || []; 134 window.dataLayer.push({ 135 'event': 'newsletter', 136 'formLocation': location.href, 137 }); 138 }); 139 140 function sendFormForCheckedNewsletters(checkedNlTypes, form) {
141 checkedNlTypes.forEach(function (chk) { 142 sendForm(chk.value, form); 143 }); 144 145 nlForm.innerHTML = String.raw` 146 <div> 147 <h2 class="h1 mt-2 text-white">Fast geschafft!</h2> 148 <p class="text-white font-bold">Bitte bestätigen Sie im letzten Schritt Ihre Anmeldung:</p> 149 <p class="text-white">Klicken Sie dazu bitte auf den Link in der E-Mail, die wir Ihnen soeben zugesendet haben. <br> Schauen Sie auch in Ihrem Spamordner nach.</p> 150 <p class="mt-4 text-white">Viel Spaà beim Lesen wünscht <br>Ihr Forstpraxis-Team</p> 151 <div class="w-full text-center"> 152 <a href="/" class="btn btn-primary mt-4 w-full mx-auto cursor-pointer">Zur Startseite</a> 153 </div> 154 </div>`; 155 156 setTimeout(function () { 157 nlForm.scrollIntoView({ block: 'start', behavior: 'smooth' }); 158 }, 250); 159 160 document.querySelectorAll('.jump-to-nl').forEach(function (el) { 161 el.style.display = 'none'; 162 }); 163 } 164 165 function sendForm(nl, form) { 166 var formData = new FormData(); 167 var accountDetails = { 168 '2': { accountId: '31233', accountCode: 'wN3d9', optinsetupId: '2', optinsetupCode: 'gkM6B' }, 169 '10': { accountId: '31233', accountCode: 'wN3d9', optinsetupId: '10', optinsetupCode: 'gkM6B' }, 170 }; 171 var details = accountDetails[nl] || accountDetails['2']; 172 173 formData.set('account_id', details.accountId); 174 formData.set('account_code', details.accountCode); 175 formData.set('optinsetup_id', details.optinsetupId); 176 formData.set('optinsetup_code', details.optinsetupCode); 177 formData.set('ic', 272); 178 formData.set('fields[1]', form.querySelector('[name="email"]').value); 179 formData.set('optinsetups[0][]', nl); 180 181 if (advancedDataField && advancedDataField.checked) { 182 formData.set('fields[22][]', 'on'); 183 formData.set('fields[2]', form.querySelector('[name="nl-sal"]').value); 184 formData.set('fields[3]', form.querySelector('[name="firstname"]').value); 185 formData.set('fields[4]', form.querySelector('[name="lastname"]').value); 186 formData.set('fields[7]', form.querySelector('[name="title"]').value); 187 formData.set('fields[8]', form.querySelector('[name="street-address"]').value); 188 formData.set('fields[10]', form.querySelector('[name="street-number"]').value); 189 formData.set('fields[12]', form.querySelector('[name="plz"]').value); 190 formData.set('fields[14]', form.querySelector('[name="city"]').value); 191 formData.set('fields[16]', form.querySelector('[name="country"]').value); 192 formData.set('fields[20]', form.querySelector('[name="tel"]').value); 193 } 194 195 fetch('https://newsletter.dlv.de/optin/optin/execute', { 196 method: 'POST', 197 body: formData, 198 mode: 'no-cors', 199 }); 200 } 201 }); 202}); 203 204function handleNewsletterSubscription() { 205 return true; 206} 207 208function handleNewsletterSubscriptionException() { 209 return true; 210}
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.