/* globals _GDPR */ var CE_GDPR = { optInButtonDisabled: true, basePath: "https://app.crazyegg.com", issueCallbacks: function() { if (typeof(_GDPR) !== 'undefined') { _GDPR.forEach(function (element) { if (typeof(element) === 'string') { CE_GDPR._createScriptTag(element); } else if (typeof(element) === 'function') { element(); } else if (typeof(element) === 'object') { var script = CE_GDPR._createScriptTag(element.src); script.onload = function() { element.callback(); }; } }); } }, _createScriptTag(src) { var sc = document.createElement('script'); sc.setAttribute('type', 'text/javascript'); sc.setAttribute('src', src); sc.async = true; var t = document.getElementsByTagName('script')[0]; t.parentNode.insertBefore(sc, t); return sc; }, showModal: function() { /* https://app.shortcut.com/crazyegg/story/24467/gdpr-banner */ if (window.location.hostname === 'app.crazyegg.com') { return; } var ifrm = document.createElement('iframe'); var iframeStyle = ifrm.style; ifrm.setAttribute('src', `${CE_GDPR.basePath}/gdpr/modal`); ifrm.style.width = '100%'; ifrm.style.height = '100%'; ifrm.style.position = 'fixed'; ifrm.style.zIndex = '999999999'; ifrm.style.top = '0'; ifrm.style.left = '0'; ifrm.style.border = 'none'; // Append iframe containing modal to page document.body.appendChild(ifrm); this._setReloadPageListener(); }, canTrack: function() { /* https://app.shortcut.com/crazyegg/story/24467/gdpr-banner */ if (window.location.hostname === 'app.crazyegg.com') { return true; } return true; }, userPresent: function() { return false; }, check: function () { if (CE_GDPR.canTrack()) { CE_GDPR.issueCallbacks(); } else { CE_GDPR.showModal(); } }, _setReloadPageListener() { // IE + others compatible event handler var eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent'; var eventer = window[eventMethod]; var messageEvent = eventMethod == 'attachEvent' ? 'onmessage' : 'message'; // Listen to reload_page message from child eventer(messageEvent, function (e) { if (e.data === 'reload_page') { if (CE_GDPR.userPresent()) { CE_GDPR._updateConsent(); } else { window.location.reload(); } } }, false); }, _updateConsent() { var url = `${CE_GDPR.basePath}/gdpr/accepted_consent`; var xhr = new XMLHttpRequest(); xhr.open('POST', url); xhr.onreadystatechange = function() { if (this.readyState == 4) { window.location.reload(); } }; xhr.send(); } }; if (window.top !== window) { CE_GDPR.issueCallbacks(); } else { CE_GDPR.check(); }