{{terminalErrorHeading}}

An error has occurred

{{terminalError}}

window.onmessage = function(e) { const payload = JSON.parse(e.data); if(payload.customVariables && payload.customVariables.hasDarkMode) { document.getElementById('piano-checkout').classList.add('darkmode'); document.getElementById('piano-already-has-access').classList.add('darkmode'); document.getElementById('piano-shared-subscription-modal').classList.add('darkmode'); document.getElementById('piano-gift').classList.add('darkmode'); document.getElementById('piano-redemption').classList.add('darkmode'); setTimeout(() => { document.getElementById('view-receipt').classList.add('darkmode'); document.getElementById('view-offer').classList.add('darkmode'); }, 1000) } } window.parent.postMessage(JSON.stringify({event: "templateReady"}), "*");
user{{user | json}}
app{{app | json}}
params{{params | json}}
custom{{custom | json}}
terms{{terms | json}}
75% Rabatt

Tg.
Std.
Min.
Sek.

Das werbefreie Digital-Abo zum Spezialpreis

6 Monate für 114.00 29.00

Bleiben Sie auch nach den Wahlen und Abstimmungen bestens informiert.

// set timeout otherwise the timer is not working in mobile devices! setTimeout(() => { const deadline = new Date(2024, 3 - 1, 08); let timerId = null; let $days = document.querySelector('#day'); let $hours = document.querySelector('#hours'); let $minutes = document.querySelector('#minutes'); let $seconds = document.querySelector('#seconds'); function countdownTimer() { const diff = parseInt(deadline - new Date()); if (diff <= 0) { clearInterval(timerId); } const days = diff > 0 ? Math.floor(diff / 1000 / 60 / 60 / 24) : 0; const hours = diff > 0 ? Math.floor(diff / 1000 / 60 / 60) % 24 : 0; const minutes = diff > 0 ? Math.floor(diff / 1000 / 60) % 60 : 0; const seconds = diff > 0 ? Math.floor(diff / 1000) % 60 : 0; $days.textContent = days < 10 ? `${days} : ` : `${days} :`; $hours.textContent = hours < 10 ? ` 0${hours} :` : `${hours} :`; $minutes.textContent = minutes < 10 ? ` 0${minutes} :` : `${minutes} :`; $seconds.textContent = seconds < 10 ? `0${seconds}` : `${seconds}`; } countdownTimer(); timerId = setInterval(countdownTimer, 1000); }, 800); // function to redirect to the entering page function redirToUrl(elm) { var scope = angular.element(".pn-article").scope(); var currentUrl = scope.params.url; var hrefUrl = elm.getAttribute("href"); if (hrefUrl && hrefUrl.startsWith("/")) { event.preventDefault(); hrefUrl = scope.app.businessUrl.replace(/\/$/, "") + hrefUrl; } if (hrefUrl && hrefUrl.indexOf("[[currentUrl]]") !== -1) { event.preventDefault(); var configUrl = elm.getAttribute("data-url"); var toUrl = configUrl.replace("[[currentUrl]]", currentUrl); elm.setAttribute("href", toUrl); if (elm.getAttribute("target") === "_parent") { window.parent.location = toUrl; } else { if (!window.open(toUrl, "_blank")) { window.parent.location.replace(toUrl); } } } } // replace currentUrl in urls // as sporadically the url doesn't seem to work we need to fallback with redirToUrl var scope = angular.element(".pn-article").scope(); setTimeout(() => { var currentUrl = scope.params.url; var elms = document.querySelectorAll(".pn-article a"); for (var i = 0; i < elms.length; i++) { var elm = elms[i]; var newUrl = elm.getAttribute("data-url"); if (newUrl && newUrl.startsWith("/")) { newUrl = scope.app.businessUrl.replace(/\/$/, "") + newUrl; } if (newUrl && newUrl.indexOf("[[currentUrl]]") !== -1) { elm.setAttribute("href", newUrl.replace("[[currentUrl]]", currentUrl)); } } }, 800);

You're all set

A confirmation has been sent to {{user.email}}