{{terminalErrorHeading}}

An error has occurred

{{terminalError}}

var _content = { header: `Prøv Weekendavisen digitalt i 1 md. for 1 kr.`, paragraph: 'Verden har aldrig været sværere at forstå. Men nogen skal jo gøre forsøget.', buttonLabel: 'Få adgang nu', footer: 'Tilbuddet gælder til 28.02.2026' }; var _styling = { paywall: { bgColor: '', borderColor: '', }, header: { textColor: '', fontSize: '30px', lineHeight: '', }, button: { textColor: '#000000', bgColor: '#f0aeb2', }, }; var trackingOnLoadButton = document.getElementById('trackingOnLoadButton'); if(trackingOnLoadButton){ trackingOnLoadButton.click(); } init(_content, _styling); function init(content, styling, retryNo = 1) { var paywall = document.getElementById('paywall'); if (!paywall) { if(retryNo > 10) { return console.error('Offer not found!'); } return setTimeout(function() { init(content, styling, ++retryNo)}, retryNo * 500); } if (!validateContent(content)) { return throwError(paywall, 'contentValidation'); } if (!validateStyling(styling)) { return throwError(paywall, 'stylingValidation'); } setGeneralStyling(paywall, content, styling); injectHTMLToElement(paywall, 'header', content.header, { style: { fontSize: styling.header.fontSize, lineHeight: styling.header.lineHeight, color: styling.header.textColor }, }); injectHTMLToElement(paywall, 'paragraph', content.paragraph, undefined); injectHTMLToElement(paywall, 'link', content.buttonLabel, { style: { color: styling.button.textColor, backgroundColor: styling.button.bgColor }, }); injectHTMLToElement(paywall, 'footer', content.footer); } // helpers function throwError(paywall, type) { var text; switch (type) { case 'contentValidation': text = 'Content variables validation error!'; break; case 'stylingValidation': text = 'Styling variables validation error!'; break; default: text = type; break; } console.error(text); paywall.innerHTML = '' + text + ''; } function isString(value) { return typeof value === 'string'; } function isBoolean(value) { return typeof value === 'boolean'; } // validation function validateContent(obj) { var headerValidation = isString(obj.header); var paragraphValidation = isString(obj.paragraph); var buttonValidation = isString(obj.buttonLabel); var footerValidation = isString(obj.footer); return ( headerValidation && paragraphValidation && buttonValidation && footerValidation ); } function validateStyling(obj) { var paywallValidation = !!obj.paywall && isString(obj.paywall.bgColor) && isString(obj.paywall.borderColor); var headerValidation = !!obj.header && isString(obj.header.fontSize) && isString(obj.header.lineHeight); var buttonValidation = !!obj.button && isString(obj.button.textColor) && isString(obj.button.bgColor); return paywallValidation && headerValidation && buttonValidation; } // DOM manipulation function setGeneralStyling(paywall, content, styling) { var wrapper = document.getElementById('wrapper'); if (!wrapper) { return throwError(paywall, 'Wrapper not found!'); } paywall.style.backgroundColor = styling.paywall.bgColor; paywall.style.borderColor = styling.paywall.borderColor; } function injectHTMLToElement(parent, id, content, attributes) { var el = parent.querySelector('#' + id); var isImg = el.tagName === 'IMG'; if (!content && !isImg) { el.style.display = 'none'; return; } if (content) { el.innerHTML = content; } if (attributes) { Object.keys(attributes).forEach(function (key) { if (key === 'style') { var style = attributes[key]; if (!style) { return; } Object.keys(style).forEach(function (styleKey) { el.style[styleKey] = style[styleKey]; }); return; } el.setAttribute(key, attributes[key]); }); } }