(function () { 'use strict'; var adtoniqMsgAlertData = !!window.adtoniqAlertData ? window.adtoniqAlertData : null; var $alert = createAlertBar(); var transDelay = null; var showMessage = true; var adtoniqCookie = getCookie('adtoniq_choice'); var makeAnchor = function(href) { var a = document.createElement("a"); a.href = href; return a; }; function isRedirect() { var u = getProtectionUrl(); return adtoniqMsgAlertData.protectionStatus != 'none' && u && makeAnchor(u).pathname == location.pathname; } window.addEventListener('DOMContentLoaded', function () { if (!window.adtoniq) { console.error('Cannot run messenger bar module -- adtoniq global is not found'); return false; } if (!adtoniqMsgAlertData) { console.error('Cannot run messenger bar module -- no data found'); return false; } if ( (adtoniqMsgAlertData.targetedUsers === 'all' && ! adtoniqCookie) || isRedirect()) { showAlertBar(); } else { if (adtoniqMsgAlertData.targetedUsers === 'adsplus') adtoniq.onAnalyticsBlocked(analyticsAlertBar); if (adtoniqMsgAlertData.targetedUsers === 'adsonly') adtoniq.onBlocked(adsAlertBar); } }, false); function getProtectionUrl() { var url = adtoniqMsgAlertData.protectionUrl; if (url.length == 0) return ""; if (url.substr(0, 1) != '/') url = '/' + url; if (url.substr(url.length -1, 1) != '/') url = url + '/'; return url; } function protect(adtoniqCookie) { var ret = false, url = getProtectionUrl(); if (url.length > 0) { switch (adtoniqMsgAlertData.protectionStatus) { case 'none': break; case 'allButHome': ret = location.pathname != "/" && location.pathname != url; if (ret && (!adtoniqCookie || adtoniqCookie != 'track')) location.href = url; else document.body.style.display = 'block !important'; break; case 'all': ret = location.pathname != url; if (ret && (!adtoniqCookie || adtoniqCookie != 'track')) location.href = url; else document.body.style.display = 'block !important'; break; case 'css': break; } } return ret; } function analyticsAlertBar (isAnalyticsBlocked, adtoniqCookie) { if (isAnalyticsBlocked && !adtoniqCookie) { showAlertBar(); } } function adsAlertBar (adtoniqCookie) { if (!adtoniqCookie) { showAlertBar(); } } function showAlertBar() { protect(adtoniqCookie); document.body.appendChild($alert); transDelay = setTimeout(function () { $alert.classList.add('reveal-alert'); $alert.addEventListener('click', onAlertChoice, false); }, 50); } function onAlertChoice (e) { if (e.target.id === 'adtoniq-msg-track-btn' || e.target.id === 'adtoniq-msg-no-track-btn') { if (typeof adtoniq.optIn === 'function') { if (e.target.name == 'track') adtoniq.optIn(); else adtoniq.optOut(); showNextMessage(e.target.name); $alert.removeEventListener('click', onAlertChoice, false); clearTimeout(transDelay); } } } function createAlertBar () { var $alertBar = document.createElement('div'); $alertBar.id = 'adtoniq-msg-bar'; $alertBar.innerHTML = renderAlertBar(); return $alertBar; } function renderAlertBar (state) { var confirmBtn = adtoniqMsgAlertData.confirmBtnText.length > 0 ? '' : ''; var rejectBtn = adtoniqMsgAlertData.rejectBtnText.length > 0 ? '' : ''; var closeBtn = ''; var alertBarHTML = !state ? adtoniqMsgAlertData.greetingMsg : state === 'confirm' ? adtoniqMsgAlertData.confirmMsg : adtoniqMsgAlertData.rejectMsg; alertBarHTML += !state ? confirmBtn + rejectBtn : closeBtn; return alertBarHTML; } function showNextMessage (msg) { $alert.innerHTML = renderAlertBar(msg === 'track' ? 'confirm' : 'reject'); $alert.addEventListener('click', hideBar, false); } function hideBar () { $alert.classList.remove('reveal-alert'); $alert.addEventListener('click', hideBar, false); $alert.addEventListener('transitionend', removeBar, false); } function removeBar () { document.body.removeChild($alert); $alert.removeEventListener('transitionend', removeBar, false); } function getCookie (name) { var value = '; ' + document.cookie; var parts = value.split('; ' + name + '='); if (parts.length === 2) { return parts.pop().split(';').shift(); } return null; } }());