var a; //BEHAVIOUR(IsIABEnabled == true) !function(t){var r={};function o(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.m=t,o.c=r,o.d=function(e,n,t){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:t})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="",o(o.s=4)}([function(e,n,t){"use strict";var p=Object.assign||function(e){for(var n=1;nn&&(n=e.id)}),n}e.exports={convertVendorsToRanges:m,encodeConsentString:function(e){var n=e.maxVendorId,t=e.vendorList,r=void 0===t?{}:t,o=e.allowedPurposeIds,i=e.allowedVendorIds,s=r.vendors,a=void 0===s?[]:s,d=r.purposes,u=void 0===d?[]:d;n=n||y(a);var c=g(p({},e,{maxVendorId:n,purposeIdBitString:h(u,o),isRange:!1,vendorIdBitString:v(n,i)})),l=m(a,i),f=g(p({},e,{maxVendorId:n,purposeIdBitString:h(u,o),isRange:!0,defaultConsent:!1,numEntries:l.length,vendorRangeList:l}));return c.length=t.length&&(t=c(t,n-t.length)),t.length>n&&(t=t.substring(0,n)),t}function p(e){return f(!0===e?1:0,1)}function g(e,n){return e instanceof Date?f(e.getTime()/100,n):f(e,n)}function i(e,n){return f(e.toUpperCase().charCodeAt(0)-65,n)}function v(e){var n=1>18&63)+c.charAt(o>>12&63)+c.charAt(o>>6&63)+c.charAt(63&o);return 2==i?(n=e.charCodeAt(a)<<8,t=e.charCodeAt(++a),s+=c.charAt((o=n+t)>>10)+c.charAt(o>>4&63)+c.charAt(o<<2&63)+"="):1==i&&(o=e.charCodeAt(a),s+=c.charAt(o>>2)+c.charAt(o<<4&63)+"=="),s},decode:function(e){var n=(e=String(e).replace(a,"")).length;n%4==0&&(n=(e=e.replace(/==?$/,"")).length),n%4!=1&&!/[^+a-zA-Z0-9/]/.test(e)||u("Invalid character: the string to be decoded is not correctly encoded.");for(var t,r,o=0,i="",s=-1;++s>(-2*o&6)));return i},version:"0.1.0"};void 0===(s=function(){return r}.call(d,l,d,o))||(o.exports=s)}()}).call(d,l(8)(e),l(9))},function(e,n){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(og,pg){var qg;qg=function(){return this}();try{qg=qg||Function("return this")()||eval("this")}catch(e){"object"==typeof window&&(qg=window)}og.exports=qg}]),"undefined"==typeof __cmp&&(__cmp={}),function(r){r.__cmp=function(){var o=!1,i=[];!function(){if(__cmp.a)for(var e=0;e<__cmp.a.length;e++){var n={},t=__cmp.a[e];n.commandmethod=t[0],n.parameter=t[1],n.callback=t[2],i.push(n)}}(),function e(){if(!r.frames.__cmpLocator)if(document.body){var n=document.body,t=document.createElement("iframe");t.setAttribute("style","display:none"),t.name="__cmpLocator",n.appendChild(t)}else setTimeout(e,5)}(),(r.attachEvent||r.addEventListener)("message",function(e){r.__cmp.receiveMessage(e)},!1);function a(e,n,t){if(t)switch(e){case"ping":Optanon.getPingRequest(t);break;case"getVendorConsents":if(o)(n=function(e){var n=[];{if(!e)return;if(Array.isArray(e))e.forEach(function(e){isNaN(e)||n.push(e)});else{if(isNaN(e))return;n.push(e)}}return n}(n))&&Array.isArray(n)&&0 this.length) { return false; } else { return this.indexOf(search, start) !== -1; } }; } // ***************** LEGACY SCRIPT ***************** var optanonVersion = '6.26.0', optanonCookieName = 'OptanonConsent', optanonCookieDomain = '[[OptanonCookieDomain]]', optanonAlertBoxClosedCookieName = 'OptanonAlertBoxClosed', useLatestJquey =[[UseLatestJqueryVersion]], optanonGeolocationExecuteAllScripts = false, optanonDoNotTrackEnabled = navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1', doNotTrackText = 'do not track', optanonIsOptInMode = getIsOptInMode(), optanonIsSoftOptInMode = getIsSoftOptInMode(), optanonEnsureCookieDataCompatibilityComplete = false, optanonHtmlGroupData, //Stores pending html Optanon Group Id changes before writing to cookie optanonWrapperScriptExecutedGroups = [], //Stores Optanon Group Ids for which wrapper InsertScript has already been executed for optanonWrapperHtmlExecutedGroups = [], //Stores Optanon Group Ids for which wrapper InsertHtml has already been executed for optanonWrapperScriptExecutedGroupsTemp = [], optanonWrapperHtmlExecutedGroupsTemp = [], optanonGroupIdPerformanceCookies = [[OptanonGroupIdPerformanceCookies]], optanonGroupIdFunctionalityCookies = [[OptanonGroupIdFunctionalityCookies]], optanonGroupIdTargetingCookies = [[OptanonGroupIdTargetingCookies]], optanonGroupIdSocialCookies = [[OptanonGroupIdSocialCookies]], optanonAboutCookiesGroupName = optanonData().AboutCookiesText, optanonNotLandingPageName = 'NotLandingPage', optanonAwaitingReconsentName = 'AwaitingReconsent', consentChangedEventMap = {}, optanonShowSubGroupCookies = [[ShowSubGroupCookies]], optanonShowSubGroupDescription = [[ShowSubGroupDescription]], onetrustClientScriptUrl = null, isWebsiteContainFixedHeader = false, isRTL = false, isClassic = false, isCenterTile = [[IsCenterTile]], //BEHAVIOUR(IsIABEnabled == true) oneTrustIABConsent = { purpose: [], vendors: [], vendorList: null }, oneTrustIABCookieName = 'eupubconsent', oneTrustIAB3rdPartyCookie = 'euconsent', oneTrustIABgdprAppliesGlobally = true, IABCookieValue = "", otIABData, //BEHAVIOUR_END //BEHAVIOUR(IsConsentIntegration == true) onetrustConsentParamName = "consentId", //BEHAVIOUR_END optanonJsonData, isInEU = false, useGeoLocationService = true, oneTrustIsIABCrossConsentEnableParam = 'isIABGlobal', geolocationCookiesParam = 'geolocation', constant = { KEEPCENTERTILEBANNEROPEN: "keepBannerOpen", IMPLIEDCONSENT: 'implied consent', FIRSTPAGEVIEW: 'firstPageView', IGNOREGA: 'data-ignore-ga' }, ignoreGoogleAnlyticsCall = false , $Opt ; function isTouchDevice() { return 'ontouchstart' in window || !!(navigator.msMaxTouchPoints); } function isImpliedConsent() { var json = optanonData(); return json.ConsentModel && json.ConsentModel.Name.toLowerCase() === constant.IMPLIEDCONSENT; } function updateGtmMacros(allowAll) { var gtmOptanonActiveGroups = [], i; for (i = 0; i < optanonHtmlGroupData.length; i++) { if (endsWith(optanonHtmlGroupData[i], ':1') && canSoftOptInInsertForGroup(optanonHtmlGroupData[i].replace(':1', ''))) { gtmOptanonActiveGroups.push(optanonHtmlGroupData[i].replace(':1', '')); } } // Setting "optanon-active-groups" global variable for Google Tag Manager macro var serializeArrayString = ',' + serialiseArrayToString(gtmOptanonActiveGroups) + ','; window.OnetrustActiveGroups = serializeArrayString; window.OptanonActiveGroups = serializeArrayString; // Setting "optanon-active-groups" data layer field for Google Tag Manager macro if (typeof dataLayer != 'undefined') { if (dataLayer.constructor === Array) { dataLayer.push({ 'OnetrustActiveGroups': serializeArrayString }); dataLayer.push({ 'OptanonActiveGroups': serializeArrayString }); } } else { window.dataLayer = [{ 'event': 'OneTrustLoaded', 'OnetrustActiveGroups': serializeArrayString }, { 'event': 'OptanonLoaded', 'OptanonActiveGroups': serializeArrayString }]; } // Trigger consent changed event setTimeout(function () { var event = new CustomEvent('consent.onetrust', { detail: gtmOptanonActiveGroups }); window.dispatchEvent(event); }); } function initialiseCssReferences() { insertCssReference(updateCorrectUrl('[[CssFilePathUrl]]')); var links = document.querySelectorAll('link'); for (var i = 0; i < links.length; i++) { if (links[i].href.includes('onetrust-rtl.css')) { isRTL = true; } if (links[i].href.includes('default_responsive')) { isClassic = true; } } // Figure out foreground colour for buttons var color = hexToRgb("[[OptanonSecondaryColor]]"); var textColor = color ? (((color.r * 0.299 + color.g * 0.587 + color.b * 0.114) > 186) ? "#000000" : "#ffffff") : ""; // Insert custom skin css var style = document.createElement("style") style.innerHTML = "#optanon ul#optanon-menu li { background-color: [[OptanonMenuColor]] !important }" + "#optanon ul#optanon-menu li.menu-item-selected { background-color: [[OptanonMenuHighlightColor]] !important }" + "#optanon #optanon-popup-wrapper .optanon-white-button-middle { background-color: [[OptanonSecondaryColor]] !important }" + ".optanon-alert-box-wrapper .optanon-alert-box-button-middle { background-color: [[OptanonSecondaryColor]] !important; border-color: [[OptanonSecondaryColor]] !important; }" + "#optanon #optanon-popup-wrapper .optanon-white-button-middle button { color: " + textColor + " !important }" + ".optanon-alert-box-wrapper .optanon-alert-box-button-middle button { color: " + textColor + " !important }" + "#optanon #optanon-popup-bottom { background-color: [[OptanonPrimaryColor]] !important }" + "#optanon.modern #optanon-popup-top, #optanon.modern #optanon-popup-body-left-shading { background-color: [[OptanonPrimaryColor]] !important }" + ".optanon-alert-box-wrapper { background-color:[[OnetrustBannerBackgroundColor]] !important }" + ".optanon-alert-box-wrapper .optanon-alert-box-bg p { color:[[OnetrustBannerTextColor]] !important }" + "[[OptanonCustomCSS]]"; if (isCenterTile) { style.innerHTML += ".optanon-alert-box-button-container .optanon-alert-box-accept-button { background-color: [[OptanonSecondaryColor]] !important }" + ".optanon-alert-box-wrapper .optanon-alert-box-notice, .optanon-banner-title, .optanon-alert-box-footer, #optanon-popup-bottom-content { color:[[OnetrustBannerTextColor]] !important }"; } document.getElementsByTagName('head')[0].appendChild(style); } function initialiseLandingPath() { // landing page viewed - ensure the parameter is updated but don't hide the alert box if (isLandingPage()) { setLandingPathParam(location.href); return; } var awaitingReconsent = readCookieParam(optanonCookieName, optanonAwaitingReconsentName) === 'true'; var json = optanonData(), cookie = getCookie(optanonAlertBoxClosedCookieName), reconsentDate = json.LastReconsentDate; var needsReconsent = cookie && reconsentDate && new Date(reconsentDate) > new Date(cookie); if (needsReconsent && !awaitingReconsent) { // we need the reconsent so we're updating the landing page parameter and setting the reconsent flag setLandingPathParam(location.href); writeCookieParam(optanonCookieName, optanonAwaitingReconsentName, true); return; } // make sure the initial landing page isn't treated as such after navigating away setLandingPathParam(optanonNotLandingPageName); writeCookieParam(optanonCookieName, optanonAwaitingReconsentName, false); if (optanonIsSoftOptInMode) { Optanon.SetAlertBoxClosed(true); } } function setLandingPathParam(value) { writeCookieParam(optanonCookieName, 'landingPath', value); } function hexToRgb(hex) { var result = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex); return result ? { r: parseInt(result[1], 16), g: parseInt(result[2], 16), b: parseInt(result[3], 16) } : null; } function insertCssReference(url) { var link = document.createElement('link'); link.type = 'text/css'; link.href = url; link.rel = 'stylesheet'; document.getElementsByTagName('head')[0].appendChild(link); } function injectConsentNotice() { var json = optanonData(); $Opt = jQuery.noConflict(true); //Set up default banner trigger $Opt(window).on('load', Optanon.LoadBanner); window.jsonFeed = function (data) { //BEHAVIOUR(IsIABEnabled == true) assignIABGlobalScope(data.displayPopup); //BEHAVIOUR_END if (data.displayPopup == true || data.displayPopup == 'true' || isInEU == 'true' || isInEU == true) { Optanon.loadDefaultBannerGroup(data); } else { if (!json.euOnly) { Optanon.loadDefaultBannerGroup(); } else { canImpliedConsentLandingPage(); if (!Optanon.IsAlertBoxClosedAndValid()) { optanonGeolocationExecuteAllScripts = true; } $Opt(window).one('otloadbanner', function () { substitutePlainTextScriptTags(); var showCookieSettingsLink = false; if ($Opt('.optanon-show-settings').length > 0) { if ($Opt('.optanon-show-settings').attr('data-ignore-geolocation')) { if ($Opt('.optanon-show-settings').attr('data-ignore-geolocation').toLowerCase() === "true") { showCookieSettingsLink = true; } } } if ($Opt('.optanon-toggle-display').length > 0) { if ($Opt('.optanon-toggle-display').attr('data-ignore-geolocation')) { if ($Opt('.optanon-toggle-display').attr('data-ignore-geolocation').toLowerCase() === "true") { showCookieSettingsLink = true; } } } if (showCookieSettingsLink) { //Insert Optanon main consent notice component if (!checkIscenterTile()) { insertConsentNoticeHtml(); } else { insertCenterTileConsentNoticeHtml() } //common initialiseConsentNoticeHandlers(); //Insert Optanon Show Settings component if ($Opt('.optanon-show-settings').length > 0) { insertShowSettingsButtonsHtml(); initialiseShowSettingsButtonsHandlers(); } //BEHAVIOUR(IsIABEnabled == true) if (json.IsIABEnabled) { InitializeVendorList(); } //BEHAVIOUR_END if (!getCookie(optanonAlertBoxClosedCookieName) || reconsentRequired()) { Optanon.AllowAll(true); } } else { //Remove Optanon Show Settings component $Opt('.optanon-show-settings').remove(); //Remove Optanon consent notice handlers $Opt('.optanon-close-consent').remove(); $Opt('.optanon-close-ui').remove(); $Opt('.optanon-toggle-display').remove(); $Opt('.optanon-allow-all').remove(); //When cookie groups are disabled(opt-in) set all groups to enable as banner not available. if (!getCookie(optanonAlertBoxClosedCookieName) || reconsentRequired()) { Optanon.AllowAll(true); } } //Insert Optanon Cookie Policy component if ($Opt('#optanon-cookie-policy').length > 0) { insertCookiePolicyHtml(); } // Setting focus on appropriate button setBannerFocus(); }); } } }; if (Optanon.useGeoLocationService) { getGeoLocation(); } //BEHAVIOUR(IsIABEnabled == true) if (!oneTrustIABConsent.vendorList) { if (IABCookieValue) { populateVendorList(); } else { populateVendorList(true); } } //BEHAVIOUR_END } function reconsentRequired() { var json = optanonData(), awaitingReconsent = readCookieParam(optanonCookieName, optanonAwaitingReconsentName) === 'true', cookie = getCookie(optanonAlertBoxClosedCookieName), reconsentDate = json.LastReconsentDate, needsReconsent = cookie && reconsentDate && new Date(reconsentDate) > new Date(cookie); return (getCookie(optanonAlertBoxClosedCookieName) && needsReconsent && awaitingReconsent); } this.loadDefaultBannerGroup = function (data) { var json = optanonData(); canImpliedConsentLandingPage(); $Opt(window).one('otloadbanner', function () { substitutePlainTextScriptTags(); //Insert Optanon main consent notice component if (!checkIscenterTile()) { insertConsentNoticeHtml(); } else { insertCenterTileConsentNoticeHtml() } initialiseConsentNoticeHandlers(); //Insert Optanon alert component //BEHAVIOUR(ShowAlert == true) if (!checkIscenterTile()) { insertAlertHtml(); initialiseAlertHandlers(); } //Insert Optanon Center Tilealert component //BEHAVIOUR(CenterTile == true) if (checkIscenterTile()) { insertCenterTileAlertHTML(); initialiseAlertHandlers(); } //BEHAVIOUR_END //BEHAVIOUR_END //BEHAVIOUR(IsIABEnabled == true) if (json.IsIABEnabled) { InitializeVendorList(); } //BEHAVIOUR_END //Insert Optanon Show Settings component if ($Opt('.optanon-show-settings').length > 0) { insertShowSettingsButtonsHtml(); } //Insert Optanon Cookie Policy component if ($Opt('#optanon-cookie-policy').length > 0) { insertCookiePolicyHtml(); } executeOptanonWrapper(); //Always set cookie if not set yet if (!readCookieParam(optanonCookieName, 'groups')) { writeCookieGroupsParam(optanonCookieName); } // Setting focus on appropriate button //BEHAVIOUR(ShowAlert == true) setBannerFocus(); //BEHAVIOUR_END }); } function canImpliedConsentLandingPage() { if (isImpliedConsent() && !isLandingPage()) { if (readCookieParam(optanonCookieName, optanonAwaitingReconsentName) === 'true') { checkForRefreshCloseImplied(); } } } //BEHAVIOUR(ShowAlert == true) function setBannerFocus() { if ($Opt('.banner-policy-link').length > 0) { $Opt('.banner-policy-link').focus(); } else { setButtonFocus(); } var firstItem = void 0, lastItem = void 0, focusable = void 0, buttonPolicyLink = $Opt('.banner-policy-link'), buttonGroup = !isCenterTile ? $Opt('.banner-close-button, .optanon-alert-box-button-container button:not([class="optanon-alert-box-close"])') : $Opt('.optanon-alert-box-button-container button:not([class="optanon-alert-box-close"])'); focusable = $Opt('.optanon-alert-box-wrapper [href], .optanon-alert-box-wrapper input, .optanon-alert-box-wrapper select, .optanon-alert-box-wrapper textarea, .optanon-alert-box-wrapper button:not([class="optanon-alert-box-close"])'); var buttonPolicyLinkExist = buttonPolicyLink.length > 0; if (buttonPolicyLinkExist) { firstItem = $Opt(buttonPolicyLink); } else { firstItem = $Opt(focusable[focusable.length - 1]); } lastItem = $Opt(focusable[0]); if (firstItem) { firstItem.on('keydown', function (e) { return resetFocus(e, buttonPolicyLinkExist, lastItem); }); } if (lastItem) { lastItem.on('keydown', function (e) { return resetFocusReverse(e, firstItem); }); } if (buttonGroup.length > 0) { if (isCenterTile) { $Opt(buttonGroup[0]).on('keydown', resetFocusReverseToLink); } else { $Opt(buttonGroup[buttonGroup.length - 1]).on('keydown', resetFocusReverseToLink); } } } function resetFocus(e, bannerPolicyExist, lastItem) { if (bannerPolicyExist) { if (e.keyCode === 9 && !e.shiftKey) { e.preventDefault(); setButtonFocus(); } if (e.keyCode === 9 && e.shiftKey) { e.preventDefault(); lastItem.focus(); } } else { if (e.keyCode === 9 && e.shiftKey) { e.preventDefault(); setButtonFocusReverse(); } if (isCenterTile) { if (e.keyCode === 9 && !e.shiftKey) { e.preventDefault(); setButtonFocus(); } } } } function resetFocusReverse(e, firstItem) { if (e.keyCode === 9 && !e.shiftKey) { e.preventDefault(); firstItem.focus(); } } function resetFocusReverseToLink(e) { if (e.keyCode === 9 && e.shiftKey) { e.preventDefault(); setButtonFocusReverse(); } } function setButtonFocus() { var setttinsBtn = $Opt('.optanon-alert-box-button-container .cookie-settings-button'), acceptCookiesBtn = $Opt('.optanon-alert-box-button-container .accept-cookies-button'), closeBannerBtn = $Opt('.banner-close-button'), bannerPolicyLink = $Opt('.banner-policy-link'); if (isCenterTile) { if (acceptCookiesBtn.el[0] === document.activeElement) { if (setttinsBtn.length > 0) { setttinsBtn.focus(); } else if (closeBannerBtn.length > 0) { closeBannerBtn.focus(); } } else if (closeBannerBtn.el[0] === document.activeElement) { if (acceptCookiesBtn.length > 0) { acceptCookiesBtn.focus(); } else if (setttinsBtn.length > 0) { setttinsBtn.focus(); } } else { if (bannerPolicyLink.length > 0) { if (acceptCookiesBtn.length > 0) { acceptCookiesBtn.focus(); } else if (setttinsBtn.length > 0) { setttinsBtn.focus(); } else if (closeBannerBtn.length > 0) { closeBannerBtn.focus(); } } else { if (closeBannerBtn.length > 0) { closeBannerBtn.focus(); } else if (bannerPolicyLink.length > 0) { bannerPolicyLink.focus(); } else if (acceptCookiesBtn.length > 0) { acceptCookiesBtn.focus(); } else if (setttinsBtn.length > 0) { setttinsBtn.focus(); } else if (closeBannerBtn.length > 0) { closeBannerBtn.focus(); } } } } else { if (setttinsBtn.length > 0) { setttinsBtn.focus(); } else if (acceptCookiesBtn.length > 0) { acceptCookiesBtn.focus(); } else if (closeBannerBtn.length > 0) { closeBannerBtn.focus(); } } } function setButtonFocusReverse() { var setttinsBtn = $Opt('.optanon-alert-box-button-container .cookie-settings-button'), acceptCookiesBtn = $Opt('.optanon-alert-box-button-container .accept-cookies-button'), closeBannerBtn = $Opt('.banner-close-button'), bannerPolicyLink = $Opt('.banner-policy-link'); if (isCenterTile) { if (acceptCookiesBtn.el[0] === document.activeElement) { if (bannerPolicyLink.length > 0) { bannerPolicyLink.focus(); } else if (closeBannerBtn.length > 0) { closeBannerBtn.focus(); } else if (setttinsBtn.length > 0) { setttinsBtn.focus(); } } else { if (bannerPolicyLink.length > 0) { bannerPolicyLink.focus(); } else if (acceptCookiesBtn.length > 0) { acceptCookiesBtn.focus(); } else if (bannerPolicyLink.length > 0) { bannerPolicyLink.focus(); } else if (closeBannerBtn.length > 0) { closeBannerBtn.focus(); } } } else { if (bannerPolicyLink.length > 0) { bannerPolicyLink.focus(); } else if (closeBannerBtn.length > 0) { closeBannerBtn.focus(); } else if (acceptCookiesBtn.length > 0) { acceptCookiesBtn.focus(); } else if (setttinsBtn.length > 0) { setttinsBtn.focus(); } } } //BEHAVIOUR_END //Substitute text/plain script type attributes with text/javascript function substitutePlainTextScriptTags() { $Opt('script').filter(function () { return $Opt(this).attr('type') && $Opt(this).attr('type').toLowerCase() == 'text/plain' && $Opt(this).attr('class') && $Opt(this).attr('class').toLowerCase().match(/optanon-category(-[a-zA-Z0-9]+)+($|s)/); }).each(function () { var groupIds = $Opt(this).attr('class').split(/optanon-category-/i)[1].split('-'); var isInsertGroup = true; if (groupIds && groupIds.length > 0) { for (var i = 0; i < groupIds.length; i++) { if (!canInsertForGroup(groupIds[i], optanonGeolocationExecuteAllScripts)) { isInsertGroup = false; break; } } if (isInsertGroup) { $Opt(this).replaceWith($Opt(this).attr('type', 'text/javascript')[0].outerHTML); } } }); } function insertConsentNoticeHtml() { var group, json = optanonData(), groupIsAboutCookies, groupIsActive, menuItem, moreInfo, i; jsonAddAboutCookies(json); $Opt('body').prepend(''); var preferenceCenterDataHTML = '' + '' + ''; if (json.ShowPreferenceCenterCloseButton) { if (!json.CloseText) { json.CloseText = "Close"; } preferenceCenterDataHTML = preferenceCenterDataHTML + '' + '' + ''; } var logoUrl = "'" + updateCorrectUrl('[[OptanonLogo]]') + "'"; preferenceCenterDataHTML = preferenceCenterDataHTML + '' + '' + '' + '' + '' + ''; $Opt('#optanon').html(preferenceCenterDataHTML); if (json.Language && json.Language.Culture) { $Opt("#optanon-popup-wrapper").attr("lang", json.Language.Culture); } for (i = 0; i < json.Groups.length; i += 1) { group = json.Groups[i]; if (safeGroupName(group) == optanonAboutCookiesGroupName || (isTopLevelGroup(group) && isValidConsentNoticeGroup(group))) { groupIsAboutCookies = safeGroupName(group) == optanonAboutCookiesGroupName; groupIsActive = $Opt.inArray((getGroupIdForCookie(group) + ':1'), optanonHtmlGroupData) != -1; menuItem = $Opt('' + '' + '' + json.AboutText + '' + ''); $Opt('#optanon #optanon-menu').append(moreInfo); $Opt('#optanon #optanon-popup-body').append('' + '' + json.MainText + '' + '' + '' + '' + '' + getGroupToggle(json, "chkMain") + getGroupAlwaysActive(json) + '' + '' + '' + '' + (json.IsIABEnabled && json.VendorLevelOptOut ? '' + 'View Vendor Consent' : '') + '' + ''); $Opt('#optanon #optanon-popup-wrapper').append(' ' + '' + '' + '' + '' + '' + json.AllowAllText + '' + '' + '' + '' + '' + json.ConfirmText + '' + ''); setAllowAllButton(); } function getGroupToggle(json, toggleId) { var p = isRTL ? '' : isClassic && !json.ShowPreferenceCenterCloseButton ? '' : '', span = (isRTL) ? '' : ''; return '' + '' + '' + p + span + '' + '' + (isRTL ? '' : json.ActiveText) + '' + '' + '' + '' + ''; } function getSubgroupToggle(json, group) { //BEHAVIOUR(ShowSubgroupToggles == true) var p = isRTL ? '' : ''; var toggleId = 'chk' + getGroupIdForCookie(group); var $toggle = $Opt('' + p + '' + '' + (isRTL ? '' : json.ActiveText) + ''); $toggle.find("input").data('group', group); $toggle.find("input").data('optanonGroupId', getGroupIdForCookie(group)); return $toggle; //BEHAVIOUR_END //BEHAVIOUR(ShowSubgroupToggles == false) return null; //BEHAVIOUR_END } function getGroupAlwaysActive(json) { var p = isClassic && !json.ShowPreferenceCenterCloseButton ? '' : ''; return '' + p + json.AlwaysActiveText + '' + ''; } function consentNoticeMenuItemClick() { var json = optanonData(), group = $Opt(this).data('group'), subGroups = getGroupSubGroups(group), groupCookiesHtml, groupCookiesHtml, ariaLabel = this.childNodes[0].children[0].id, id = ariaLabel.split('-')[0] + '-description'; jsonAddAboutCookies(json); var groupName = safeGroupName(group); $Opt("#optanon #optanon-menu li").removeClass('menu-item-selected'); $Opt(this).addClass('menu-item-selected'); $Opt('#optanon p.header-3').text(groupName); document.querySelector("#optanon-popup-body-right").children[2].setAttribute('id', id); document.querySelector("#optanon-popup-body-right").children[2].setAttribute('aria-labelledby', ariaLabel); document.querySelector('#optanon #' + id).innerHTML = safeFormattedGroupDescription(group); var menuItem = document.querySelectorAll('.preference-menu-item button'); for (var i = 0; i < menuItem.length; i++) { if (menuItem[i].attributes[1].value === 'true') { menuItem[i].setAttribute('aria-selected', false); } if (menuItem[i].parentElement.parentElement.classList.contains('menu-item-selected')) { menuItem[i].setAttribute('aria-selected', true); } } //Show cookie data table if (group && !json.HideToolbarCookieList) { groupCookiesHtml = getGroupCookiesHtml(group); $Opt('#optanon .optanon-main-info-text').append(groupCookiesHtml); } setGroupStatus(group, json); if (subGroups && subGroups.length > 0) { for (var j = 0; j < subGroups.length; j += 1) { setGroupStatus(subGroups[j], json); } } var headerCheckbox = document.querySelector('#optanon .optanon-status-checkbox'), subgroupCheckbox = document.querySelectorAll('#optanon .optanon-subgroup-checkbox'), headerSpan = document.createElement('span'); headerSpan.classList.add('sr-only'); headerSpan.innerText = groupName; headerCheckbox.nextSibling.insertBefore(headerSpan, headerCheckbox.firstChild); if (subgroupCheckbox.length > 0) { subGroups.forEach(function (subgroup, idx) { var subgroupSpan = document.createElement('span'); subgroupSpan.classList.add('sr-only'); subgroupSpan.innerText = safeGroupName(subgroup); subgroupCheckbox[idx].nextSibling.insertBefore(subgroupSpan, subgroupCheckbox.firstChild); }) } if (groupName == optanonAboutCookiesGroupName) { $Opt('#optanon #optanon-popup-more-info-bar').hide(); } else { $Opt('#optanon #optanon-popup-more-info-bar').show(); } if (json.IsIABEnabled && json.VendorLevelOptOut) { getVendorText(); } return false; } function setGroupStatus(group, json) { if (safeGroupDefaultStatus(group).toLowerCase() == 'always active' || safeGroupDefaultStatus(group.Parent).toLowerCase() == 'always active') { $Opt('#optanon .optanon-status-always-active').show(); $Opt('#optanon .optanon-status-editable').hide(); } else { $Opt('#optanon .optanon-status-editable').show(); $Opt('#optanon .optanon-status-always-active').hide(); // Updating group toggle id to unique value $Opt('#optanon .optanon-status-editable .optanon-status-checkbox').prop('id', 'chk' + group.GroupId); $Opt('#optanon .optanon-status-editable label').attr('for', 'chk' + group.GroupId); var isGroupActive = $Opt.inArray((getGroupIdForCookie(group) + ':1'), optanonHtmlGroupData) != -1; var groupCheckbox = $Opt(isTopLevelGroup(group) ? "#chk" + group.GroupId : '#optanon #chk' + getGroupIdForCookie(group)), option = (isRTL ? groupCheckbox.prev('.toggleChk') : groupCheckbox.next('label')); if (isGroupActive) { groupCheckbox.prop('checked', true); groupCheckbox.parent().addClass('optanon-status-on'); option.text(json.ActiveText); } else { groupCheckbox.prop('checked', false); groupCheckbox.parent().removeClass('optanon-status-on'); if (json.InactiveText) option.text(json.InactiveText); } } } //BEHAVIOUR(IsIABEnabled == true) function InitializeVendorList() { var json = optanonData(), vendors = IABData(), i; vendors = vendors ? vendors.activeVendors : null; if (checkIscenterTile()) { $Opt('#optanon-popup-body').append('Back'); $Opt('#optanon-popup-body').append('' + '' + ''); } else { $Opt('#optanon-popup-body-left').append('Back'); $Opt('#optanon-popup-body-right').append(''); } if (vendors && vendors.length > 0) { for (i = 0; i < vendors.length; i++) { vendors[i].policyUrl = getValidUrl(vendors[i].policyUrl); $Opt("#optanon-vendor-consent-list").append('' + '' + '' + vendors[i].vendorName + '' + '' + vendors[i].policyUrl + '' + '' + '' + getVendorToggle(json, vendors[i].vendorId) + '' + ''); } } if (checkIscenterTile()) { $Opt('#optanon-popup-body .optanon-vendor-center-tile').prepend('Vendor Consent ' + '' + getVenderListAllowAllToggle() + ''); $Opt('#optanon-popup-body .optanon-vendor-center-tile').hide(); $Opt('#optanon-popup-body #optanon-vendor-consent-back').hide(); } else { $Opt('#optanon #optanon-popup-body-right .vendor-header-container').append('' + getVenderListAllowAllToggle() + ''); $Opt('#optanon-popup-body-right #optanon-vendor-consent-list').hide(); $Opt('#optanon-popup-body-left #optanon-vendor-consent-back').hide(); $Opt('#optanon-popup-body-right .optanon-vendor-list-allow-all').hide(); } setVendorStatus(); } function getValidUrl(url) { if (!url) return; var urlWithHttpRegex = /^(http)s?:///i; // http(s)://domain.com var protocolRelativeUrlRegex = /^:///; // ://domain.com if (url.match(protocolRelativeUrlRegex)) { return "http" + url; } else if (!url.match(urlWithHttpRegex)) { return "http://" + url; } else { return url; } } function DisplayVendorList() { if (checkIscenterTile()) { $Opt("#optanon-popup-body #optanon-popup-body-content").hide(); $Opt("#optanon-popup-body #optanon-vendor-consent-text").hide(); $Opt('#optanon-popup-body #optanon-vendor-consent-back').show(); $Opt('#optanon-popup-body .optanon-vendor-center-tile').show(); } else { $Opt("#optanon-popup-body-left #optanon-menu").hide(); $Opt("#optanon-popup-body-right .optanon-main-info-text").hide(); $Opt("#optanon-popup-body-right #optanon-vendor-consent-text").hide(); $Opt('#optanon-popup-body-left #optanon-vendor-consent-back').show(); $Opt('#optanon-popup-body-right #optanon-vendor-consent-list').show(); $Opt('#optanon-popup-body-right .optanon-vendor-list-allow-all').show(); } } function setVendorStatus() { var json = optanonData(); var vendorCheckBoxList = $Opt(".optanon-vendor-status-editable .optanon-vendor-status"); if (oneTrustIABConsent.vendors && vendorCheckBoxList && vendorCheckBoxList.length > 0) { for (var i = 0; i < vendorCheckBoxList.length; i++) { var vendorId = vendorCheckBoxList[i].id.replace('IAB', ''); var isVendorActive = $Opt.inArray((vendorId + ':true'), oneTrustIABConsent.vendors) != -1; var venodrToggleLabelId = "#lblVendorToggle_" + vendorId; var venodrToggleLabel = $Opt(venodrToggleLabelId), option = (isRTL ? venodrToggleLabel.parent().siblings()[0].innerText : venodrToggleLabel.innerText); if (isVendorActive) { vendorCheckBoxList[i].checked = true; option = json.ActiveText; } else { vendorCheckBoxList[i].checked = false; option = json.InactiveText; } } } var totalVendor = $Opt(".optanon-vendor-status-editable .optanon-vendor-status"); var selectedVendor = $Opt(".optanon-vendor-status-editable .optanon-vendor-status:checked"); if (totalVendor && selectedVendor) { if (selectedVendor.length >= (totalVendor.length / 2)) { $Opt("#chkVendorListAllowAll").prop("checked", true); } else { $Opt("#chkVendorListAllowAll").prop("checked", false); } } } function saveVendorStatus() { var enableVendors = []; var vendorCheckBoxList = $Opt(".optanon-vendor-status-editable .optanon-vendor-status:checked"); if (vendorCheckBoxList) { for (var i = 0; i < vendorCheckBoxList.length; i++) { enableVendors.push(vendorCheckBoxList[i].id.replace('IAB', '') + ':true'); } } oneTrustIABConsent.vendors = enableVendors; } function getVenderListAllowAllToggle() { return '' + '' + '' + '' + 'Allow All' + '' + '' + ''; } function getVendorText() { var json = optanonData(); if ($Opt('.menu-item-about').hasClass('menu-item-selected') && (json.IsIABEnabled && json.VendorLevelOptOut)) { if ($Opt("#optanon-vendor-consent-list").css('display') === 'none') { $Opt('#optanon-vendor-consent-text').show(); } else { DisplayVendorList(); $Opt('#optanon-vendor-consent-text').hide(); } } else { $Opt('#optanon-vendor-consent-text').hide(); } } function getVendorToggle(json, vendorId) { var venodrToggleLabelId = "lblVendorToggle_" + vendorId; var span = (isRTL ? '' + json.ActiveText + '' : '') return '' + '' + span + '' + '' + '' + (isRTL ? '' : json.ActiveText) + '' + '' + '' + ''; } //BEHAVIOUR_END function initialiseConsentNoticeHandlers() { var json = optanonData(); //adding click events to page elements //.optanon-close-consent: set cookie and close consent notice //.optanon-close-ui: only hide consent notice //.optanon-toggle-display: show/close consent notice (set cookie if close) //.optanon-allow-all: activate all groups, set cookie and close consent notice //.optanon-status: toggle for center tile layout //.optanon-banner-tile: close and go back to banner tile $Opt(document).on('click', '.optanon-close-consent', function () { closeOptanonAlertBox(true, true); Optanon.Close(); return false; }); $Opt(document).on('click', '.optanon-close-ui', function () { //BEHAVIOUR(ShowAlert == true) hideConsentNotice(constant.KEEPCENTERTILEBANNEROPEN); //BEHAVIOUR_END //BEHAVIOUR(ShowAlert == false) hideConsentNotice(); //BEHAVIOUR_END return false; }); $Opt(document).on('click', '.optanon-toggle-display', function () { Optanon.ToggleInfoDisplay(); return false; }); $Opt(document).on('click', '.optanon-allow-all', function () { closeOptanonAlertBox(true, true); Optanon.AllowAll(); return false; }); $Opt(document).on('keydown', '#optanon', function (e) { if (e.keyCode == 27) { hideConsentNotice(constant.KEEPCENTERTILEBANNEROPEN); } }); //BEHAVIOUR(IsIABEnabled == true) $Opt(document).on('click', '#optanon-vendor-consent-text', function () { DisplayVendorList(json); return false; }); $Opt(document).on('change', '.vendor-group-status', function () { if ($Opt(this).is(':checked')) { if (isRTL) { if (this.classList.contains('optanon-vendor-status')) { $Opt(this).parent().siblings()[0].innerText = json.ActiveText; } else { $Opt(this).prev('.toggleChk').text(json.ActiveText); } } else { $Opt(this).next('label').text(json.ActiveText); } } else { if (isRTL) { if (this.classList.contains('optanon-vendor-status')) { $Opt(this).parent().siblings()[0].innerText = json.InactiveText; } else { $Opt(this).prev('.toggleChk').text(json.InactiveText); } } else { $Opt(this).next('label').text(json.InactiveText); } } }); $Opt(document).on('change', '.optanon-vendor-allow-all-editable #chkVendorListAllowAll', function () { if ($Opt(this).is(':checked')) { $Opt(".optanon-vendor-status-editable .optanon-vendor-status").prop('checked', true); $Opt(".optanon-vendor-status-editable " + (isRTL ? '.toggleChk' : '.vendor-status-label')).text(json.ActiveText); } else { $Opt(".optanon-vendor-status-editable .optanon-vendor-status:checked").prop('checked', false); $Opt(".optanon-vendor-status-editable " + (isRTL ? '.toggleChk' : '.vendor-status-label')).text(json.InactiveText); } }); $Opt(document).on('click', '#optanon-vendor-consent-back', function () { $Opt("#optanon-popup-body-left #optanon-menu").show(); $Opt("#optanon-popup-body-right .optanon-main-info-text").show(); $Opt("#optanon-popup-body-right #optanon-vendor-consent-text").show(); $Opt("#optanon-popup-body-right #optanon-popup-more-info-bar").hide(); $Opt('#optanon-popup-body-right #optanon-vendor-consent-list').hide(); $Opt('#optanon-popup-body-left #optanon-vendor-consent-back').hide(); $Opt('#optanon-popup-body-right .optanon-vendor-list-allow-all').hide(); if (checkIscenterTile()) { $Opt("#optanon-popup-body #optanon-popup-body-content").show(); $Opt("#optanon-popup-body #optanon-vendor-consent-text").show(); $Opt('#optanon-popup-body #optanon-vendor-consent-back').hide(); $Opt('#optanon-popup-body .optanon-vendor-center-tile').hide(); } return false; }); //BEHAVIOUR_END $Opt('#optanon').on('change', ".optanon-status-checkbox", function () { var group = $Opt(this).data('group') || $Opt('#optanon #optanon-menu li.menu-item-selected').data('group'); if ($Opt(this).is(':checked')) { toggleGroupStatusOn(json, group, this); //BEHAVIOUR(ShowSubgroupToggles == true) if (isTopLevelGroup(group)) { toggleAllSubGroupStatusOn(json); } //BEHAVIOUR_END } else { toggleGroupStatusOff(json, group, this); //BEHAVIOUR(ShowSubgroupToggles == true) if (isTopLevelGroup(group)) { toggleAllSubGroupStatusOff(json); } //BEHAVIOUR_END } setAllowAllButton(); }); //BEHAVIOUR(CenterTile == true) $Opt('#optanon').on('change', ".optanon-status", function () { var group = $Opt(this).parent('#optanon-popup-body-content').data('group'); if ($Opt(this).is(':checked')) { toggleCheckBoxesForCenterTile(json, group, "1"); if (json.IsIABEnabled) { setIABConsent(group, "true", true); } } else { toggleCheckBoxesForCenterTile(json, group, "0"); if (json.IsIABEnabled) { setIABConsent(group, "false", true); } } setAllowAllButton(); }); $Opt(document).on('click', '.optanon-banner-tile', function () { hideConsentNotice(constant.KEEPCENTERTILEBANNEROPEN); return false; }); //BEHAVIOUR_END } //BEHAVIOUR(ShowSubgroupToggles == true) function toggleAllSubGroupStatusOn(json) { $Opt(".optanon-status-checkbox").each(function () { if (!$Opt(this).is(':checked')) { $Opt(this).prop('checked', true); var subGroup = $Opt(this).data('group'); toggleGroupStatusOn(json, subGroup, this); } }); } function toggleAllSubGroupStatusOff(json) { $Opt(".optanon-status-checkbox").each(function () { if ($Opt(this).is(':checked')) { $Opt(this).prop('checked', false); var subGroup = $Opt(this).data('group'); toggleGroupStatusOff(json, subGroup, this); } }); } //BEHAVIOUR_END function getGroupIdForCookie(group) { if (group.CustomGroupId) { return group.CustomGroupId; } else if (group.OptanonGroupId == 0) { return '0_' + group.GroupId; } else { return group.OptanonGroupId; } } function toggleGroupStatusOn(json, group, checkbox) { var groupName = safeGroupName(group); //Google Analytics event tracking Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Preferences Toggle On', groupName); //updating selected menu item icon colour $Opt('#optanon #optanon-menu li.menu-item-selected').removeClass('menu-item-off'); $Opt('#optanon #optanon-menu li.menu-item-selected').addClass('menu-item-on'); //updating checkbox label colour $Opt(checkbox).parent().addClass('optanon-status-on'); //updating optanonHtmlGroupData with new group status var index = indexOf(optanonHtmlGroupData, (getGroupIdForCookie(group) + ':0')); if (index != -1) { optanonHtmlGroupData[index] = getGroupIdForCookie(group) + ':1'; //BEHAVIOUR(IsIABEnabled == true) if (json.IsIABEnabled) { setIABConsent(group, "true", true); } //BEHAVIOUR_END } var option = (isRTL ? $Opt(checkbox).prev('.toggleChk') : $Opt(checkbox).next('label')); option.text(json.ActiveText); } function toggleGroupStatusOff(json, group, checkbox) { var groupName = safeGroupName(group); //Google Analytics event tracking Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Preferences Toggle Off', groupName); //updating selected menu item icon colour $Opt('#optanon #optanon-menu li.menu-item-selected ').removeClass('menu-item-on'); $Opt('#optanon #optanon-menu li.menu-item-selected').addClass('menu-item-off'); //updating checkbox label colour $Opt(checkbox).parent().removeClass('optanon-status-on'); //updating optanonHtmlGroupData with new group status var index = indexOf(optanonHtmlGroupData, (getGroupIdForCookie(group) + ':1')); if (index != -1) { optanonHtmlGroupData[index] = getGroupIdForCookie(group) + ':0'; //BEHAVIOUR(IsIABEnabled == true) if (json.IsIABEnabled) { setIABConsent(group, "false", true); } //BEHAVIOUR_END } var option = (isRTL ? $Opt(checkbox).prev('.toggleChk') : $Opt(checkbox).next('label')); if (json.InactiveText) option.text(json.InactiveText); } /**** Center Tile Start */ function checkIscenterTile() { return isCenterTile; } //BEHAVIOUR(CenterTile == true) function insertCenterTileConsentNoticeHtml() { var group, json = optanonData(), groupIsAboutCookies, groupIsActive, groupMenuItem, moreGroupInfo, i; jsonAddAboutCookies(json); $Opt('body').prepend(''); var preferenceCenterDataHTML = '' + '' + ''; if (json.ShowPreferenceCenterCloseButton) { if (!json.CloseText) { json.CloseText = "Close"; } preferenceCenterDataHTML = preferenceCenterDataHTML + '' + '' + ''; } preferenceCenterDataHTML = preferenceCenterDataHTML + '' + json.MainText + '' + '' + '' + (json.IsIABEnabled && json.VendorLevelOptOut ? '' + 'View Vendor Consent' : '') + ''; $Opt('#optanon').html(preferenceCenterDataHTML); if (json.Language && json.Language.Culture) { $Opt("#optanon-popup-wrapper").attr("lang", json.Language.Culture); } var preferenceTabIndex = 1; for (i = 0; i < json.Groups.length; i += 1) { group = json.Groups[i]; var groupName = safeGroupName(group); if (groupName == optanonAboutCookiesGroupName || (isTopLevelGroup(group) && isValidConsentNoticeGroup(group))) { groupIsAboutCookies = groupName == optanonAboutCookiesGroupName; groupIsActive = $Opt.inArray((getGroupIdForCookie(group) + ':1'), optanonHtmlGroupData) != -1; var checkBoxHTML = ""; if (groupName == optanonAboutCookiesGroupName) { checkBoxHTML = ""; } else { ++preferenceTabIndex; checkBoxHTML = getCheckBox(preferenceTabIndex, groupName, group.GroupId); } groupMenuItem = $Opt('' + checkBoxHTML + '' + groupName + '' + '' + safeFormattedGroupDescription(group) + ''); setGroupChkBoxStatus(group, groupMenuItem, groupIsActive, group.GroupId); groupMenuItem.data('group', group); groupMenuItem.data('optanonGroupId', getGroupIdForCookie(group)); $Opt('#optanon #optanon-popup-body').append(groupMenuItem); } } moreGroupInfo = '' + ' ' + json.AboutText + ''; // $Opt('#optanon #optanon-popup-body').append(moreGroupInfo); $Opt('#optanon #optanon-popup-wrapper').append('' + '' + moreGroupInfo + '' + '' + '' + '' + json.AllowAllText + '' + '' + '' + '' + json.ConfirmText + '' + '' + '' + json.FooterDescriptionText + '' + ''); // updating tabindex of the modal close button if (json.ShowPreferenceCenterCloseButton) { $Opt('.center-tile-preference-close-button').attr('tabindex', ++preferenceTabIndex); } setAllowAllButton(); } function getCheckBox(tabindex, groupName, toggleId) { return '' } function setGroupChkBoxStatus(group, groupMenuItem, groupStatus, elementId) { var chkBox = groupMenuItem.find("#" + elementId); var groupDefaultStatus = safeGroupDefaultStatus(group).toLowerCase(); if (groupDefaultStatus == 'always active' || safeGroupDefaultStatus(group.Parent).toLowerCase() == 'always active') { chkBox.prop('checked', true); chkBox.prop('disabled', true); } else { chkBox.prop('checked', groupStatus); } } // Toggle function for center tile function toggleCheckBoxesForCenterTile(json, group, newStatus) { var groupName = safeGroupName(group); //Google Analytics event tracking var activeStatus; if (newStatus === "1") { activeStatus = "0"; Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Preferences Toggle On', groupName); } else { activeStatus = "1"; Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Preferences Toggle Off', groupName); } //updating optanonHtmlGroupData with new group status var index = indexOf(optanonHtmlGroupData, (getGroupIdForCookie(group) + ':' + activeStatus)); if (index != -1) { optanonHtmlGroupData[index] = getGroupIdForCookie(group) + ':' + newStatus; } } function insertCenterTileAlertHTML() { var json = optanonData(); var bannerHtml = '' + ''; if (json.showBannerCloseButton) { if (!json.BannerCloseButtonText) { json.BannerCloseButtonText = "Close"; } bannerHtml = bannerHtml + '' + ''; } bannerHtml = bannerHtml + '' + '' + '' + ''; if (json.BannerTitle) { bannerHtml = bannerHtml + '' + '' + json.BannerTitle + '' + ''; } bannerHtml = bannerHtml + '' + json.AlertNoticeText + getShowVendorLink() + '' + ''; // Accept all cookies button if (bannerHtml.indexOf("hide-accept-button") <= 0) { bannerHtml = bannerHtml + '' + '' + '' + json.AlertAllowCookiesText + '' + ''; } // Cookie setting button if (bannerHtml.indexOf("hide-cookie-setting-button") <= 0) { bannerHtml = bannerHtml + '' + '' + json.AlertMoreInfoText + ''; } bannerHtml = bannerHtml + '' + '' + '' + '' + '' + json.FooterDescriptionText + '' + '' + '' + ''; $Opt('#optanon').before(bannerHtml); setBannerTabIndex(); } function setBannerPositionForCenterTile() { $Opt('.optanon-alert-box-wrapper').show().animate({ 'bottom': '0px' }, 1000); return; $Opt('.optanon-alert-box-wrapper').show().animate({ 'top': '50%' }, 1000); return; } /**** Center Tile End */ //BEHAVIOUR_END function insertShowSettingsButtonsHtml() { $Opt('.optanon-show-settings').wrap('').wrap('').wrap(''); $Opt('.optanon-show-settings-middle').before(''); $Opt('.optanon-show-settings-middle').after(''); $Opt('.optanon-show-settings-button').addClass('optanon-toggle-display'); } function initialiseShowSettingsButtonsHandlers() { $Opt('.optanon-show-settings-button').click( function () { Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Privacy Settings Click'); } ); } this.setShowVendorLinkText = function (showVendorText) { var bannerLink = document.getElementById('ot-show-vendorlist-link'); var preferenceCenterLink = document.querySelector('#optanon-vendor-consent-text .vendor-consent-link'); if (bannerLink) { bannerLink.innerText = showVendorText; } if (preferenceCenterLink) { preferenceCenterLink.innerText = showVendorText; } } function getShowVendorLink() { var json = optanonData(); var iabBannerDescription = json.IsIABEnabled && json.VendorLevelOptOut ? 'Show Vendorsn ' : ""; return iabBannerDescription; } //BEHAVIOUR(ShowAlert == true) function insertAlertHtml() { var json = optanonData(); var bannerHtml = '' + ''; if (json.showBannerCloseButton) { if (!json.BannerCloseButtonText) { json.BannerCloseButtonText = "Close"; } bannerHtml = bannerHtml + '' + ''; } bannerHtml = bannerHtml + '' + '' + ' ' + ''; bannerHtml = bannerHtml + '' + (json.BannerTitle ? json.BannerTitle : 'Cookie Notice') + ''; bannerHtml = bannerHtml + '' + json.AlertNoticeText + getShowVendorLink() + '' + '' + '' + '' + '' + json.AlertCloseText + ''; // Accept all cookies button if (bannerHtml.indexOf("hide-accept-button") <= 0) { bannerHtml = bannerHtml + '' + '' + json.AlertAllowCookiesText + ''; } // Cookie setting button if (bannerHtml.indexOf("hide-cookie-setting-button") <= 0) { bannerHtml = bannerHtml + '' + '' + json.AlertMoreInfoText + ''; } bannerHtml = bannerHtml + ''; $Opt('#optanon').before(bannerHtml); setBannerTabIndex(); } function setBannerPosition() { //BEHAVIOUR(AlertLayout == 'bottom') $Opt('.optanon-alert-box-wrapper').show().animate({ 'bottom': '0px' }, 1000); return; //BEHAVIOUR_END //BEHAVIOUR(BannerPushesDown == true) if (checkBrowserSupportPushPageDown()) { pushPageDown(); $Opt(window).resize(function () { if ($Opt(".optanon-alert-box-wrapper").is(":visible")) { pushPageDown(); } }); return; } //BEHAVIOUR_END $Opt('.optanon-alert-box-wrapper').show().animate({ 'top': '0px' }, 1000); return; } //BEHAVIOUR(BannerPushesDown == true) function pushPageDown() { var bannerHeightPx = $Opt(".optanon-alert-box-wrapper").height() + "px"; var bannerTransform = "translateY(" + bannerHeightPx + ")"; $Opt(".optanon-alert-box-wrapper").stop().show().css("top", "-" + bannerHeightPx); $Opt(".optanon-alert-box-wrapper").css("-ms-transform", bannerTransform); $Opt("body").css("-ms-transform", bannerTransform); $Opt("body").css("transform", bannerTransform); } function pushPageUp() { $Opt("body").css("-ms-transform", "translateY(0px)") $Opt("body").css("transform", "translateY(0px)") } //BEHAVIOUR_END function checkForRefreshCloseImplied() { var json = optanonData(); $Opt("#optanon-popup-bg").hide(); closeOptanonAlertBox(true, true); Optanon.Close(true); return false; } function closeBannerHandler() { var json = optanonData(); $Opt("#optanon-popup-bg").hide(); closeOptanonAlertBox(true, true); if (json.CloseShouldAcceptAllCookies == true) { Optanon.AllowAll(); } else { Optanon.Close(false); } return false; } function initialiseAlertHandlers() { if (!Optanon.IsAlertBoxClosedAndValid()) { var json = optanonData(); if (checkIscenterTile()) { setBannerPositionForCenterTile(); } else { setBannerPosition(); } if (json.ForceConsent) { if (!isCookiePolicyPage(json.AlertNoticeText)) { if ($Opt("#optanon-popup-bg")) { $Opt("#optanon-popup-bg").css({ 'z-index': '7000' }).show(); } } } //Click handler for close buttons $Opt('.optanon-alert-box-close').click(function () { closeBannerHandler(); }); //BEHAVIOUR(ScrollingAcceptsCookies == true) if (!optanonIsOptInMode || optanonIsSoftOptInMode) { $Opt(window).scroll(function () { var overflowHeight = $Opt(document).height() - $Opt(window).height(); if (overflowHeight === 0) { // when doctype is not specified, document height equals window height overflowHeight = $Opt(window).height(); } var scrollPercent = 100 * $Opt(window).scrollTop() / overflowHeight; if (scrollPercent > 25 && !Optanon.IsAlertBoxClosedAndValid()) { Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Banner Auto Close'); closeOptanonAlertBox(true, true); Optanon.Close(); } }); } //BEHAVIOUR_END // On Click Accepts All if (json.OnClickAcceptAllCookies && !isCenterTile) { var body = document.querySelector('body').children; for (var i = 0; i < body.length; i++) { // Listen for clicks anywhere on the DOM execept Cookie banner && Optanon Id if (!body[i].classList.contains('optanon-alert-box-wrapper') && !body[i].classList.contains('optanon-show-settings') && !body[i].classList.contains('optanon-toggle-display') && body[i].id !== 'optanon' ) { body[i].addEventListener('click', clickAcceptsAllEvent); } } document.querySelector('.optanon-alert-box-close').addEventListener('click', bannerClosed); document.querySelector('.optanon-allow-all-button').addEventListener('click', bannerClosed); document.querySelector('.optanon-save-settings-button').addEventListener('click', bannerClosed); if (document.querySelector('.optanon-button-allow')) { document.querySelector('.optanon-button-allow').addEventListener('click', bannerClosed); } } // On Click Accepts All END // On Scroll Accepts All if (json.ScrollAcceptsAllCookiesAndClosesBanner && !isCenterTile) { window.addEventListener('scroll', scrollAcceptsAllEvent); document.querySelector('.optanon-alert-box-close').addEventListener('click', rmScrollEventListener); document.querySelector('.optanon-allow-all-button').addEventListener('click', rmScrollEventListener); document.querySelector('.optanon-save-settings-button').addEventListener('click', rmScrollEventListener); if (document.querySelector('.optanon-button-allow')) { document.querySelector('.optanon-button-allow').addEventListener('click', rmScrollEventListener); } } // On Scroll Accepts All END } } //BEHAVIOUR_END function clickAcceptsAllEvent(e) { var body = document.querySelector('body').children; Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Banner Auto Close'); closeOptanonAlertBox(true, true); Optanon.AllowAll(); for (var y = 0; y < body.length; y++) { rmClickEventListener(body[y]); } e.stopPropagation(); } function scrollAcceptsAllEvent() { var scroll = this.pageYOffset; var alertBox = document.getElementById('optanon-popup-wrapper'); var alertBoxOpen = !!(alertBox.offsetWidth && alertBox.offsetHeight); if (scroll > 200 && !alertBoxOpen) { Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Banner Auto Close'); closeOptanonAlertBox(true, true); Optanon.AllowAll(); rmScrollEventListener(); } } function rmScrollEventListener() { window.removeEventListener('scroll', scrollAcceptsAllEvent); } // User Closed Banner, Click Accepts All function bannerClosed() { var body = document.querySelector('body').children; for (var y = 0; y < body.length; y++) { rmClickEventListener(body[y]); } rmScrollEventListener(); } // Remove Event Listener function rmClickEventListener(el) { el.removeEventListener('click', clickAcceptsAllEvent); } function insertCookiePolicyHtml() { var group, cookie, i, j, k, l, subGroupCookie, json = optanonData(), groupHtml, subGroups, subgroupTableHtml, subgroupHtml; for (i = 0; i < json.Groups.length; i += 1) { group = json.Groups[i]; if (isTopLevelGroup(group) && isValidConsentNoticeGroup(group)) { //Insert group html groupHtml = $Opt(''); groupHtml.append('' + safeGroupName(group) + ''); groupHtml.append('' + safeFormattedGroupDescription(group) + ''); if (group.Cookies.length > 0) { //Insert group cookies html groupHtml.append('' + json.CookiesUsedText + ''); groupHtml.append(''); for (k = 0; k < group.Cookies.length; k += 1) { cookie = group.Cookies[k]; var cookiepediaLabel = getCookieLabel(cookie); groupHtml.find('.optanon-cookie-policy-group-cookies-list').append('' + ((isRTL) ? '' : '') + cookiepediaLabel + ''); } } subGroups = getGroupSubGroups(group); if (subGroups.length > 0) { if (!json.CookiesText) { json.CookiesText = "Cookies"; } if (!json.CategoriesText) { json.CategoriesText = "Categories"; } if (!json.LifespanText) { json.LifespanText = "Lifespan"; } if (!json.LifespanTypeText) { json.LifespanTypeText = "Session"; } if (!json.LifespanDurationText) { json.LifespanDurationText = "days"; } //Insert sub group html subgroupTableHtml = $Opt(''); subgroupTableHtml.append(''); var lifespanHtml = ''; if (json.IsLifespanEnabled) { lifespanHtml = ' (' + json.LifespanText + ')'; } subgroupTableHtml.find('tr').append( '' + json.CategoriesText + '' ); subgroupTableHtml.find('tr').append( '' + json.CookiesText + lifespanHtml + ''); for (j = 0; j < subGroups.length; j += 1) { subgroupHtml = $Opt(''); subgroupHtml.append(''); var groupLabel = getSubGroupLabel(subGroups[j]); subgroupHtml.find('.optanon-cookie-policy-left').append('' + groupLabel + ''); subgroupHtml.find('.optanon-cookie-policy-left').append('' + safeFormattedGroupDescription(subGroups[j]) + ''); subgroupHtml.append(''); subgroupHtml.find('.optanon-cookie-policy-right').append(''); if (json.IsLifespanEnabled) { for (l = 0; l < subGroups[j].Cookies.length; l += 1) { subGroupCookie = subGroups[j].Cookies[l]; var lifespan = ''; if (subGroupCookie.IsSession) { lifespan = json.LifespanTypeText; } else if (subGroupCookie.Length === 0) { lifespan = '< 1 ' + json.LifespanDurationText; } else { lifespan = subGroupCookie.Length + ' ' + json.LifespanDurationText; } //Insert sub group cookies html subgroupHtml.find('.optanon-cookie-policy-subgroup-cookies-list').append( ((isRTL) ? '' : '') + subGroupCookie.Name + ' (' + lifespan + ')' ); } } else { for (l = 0; l < subGroups[j].Cookies.length; l += 1) { subGroupCookie = subGroups[j].Cookies[l]; //Insert sub group cookies html subgroupHtml.find('.optanon-cookie-policy-subgroup-cookies-list').append( ((isRTL) ? '' : '') + subGroupCookie.Name + '' ); } } subgroupTableHtml.append(subgroupHtml); } groupHtml.append(subgroupTableHtml); } $Opt('#optanon-cookie-policy').append(groupHtml); //Setting subgroup columns to be same height for vertical border to extend all the way down setCookiePolicyHtmlSubGroupHeights(); } } //Resetting cookie policy subgroup columns to be the same height on window resize $Opt(window).resize(function () { setCookiePolicyHtmlSubGroupHeights(); }); } function getGroupCookiesHtml(group) { var json = optanonData(), groupHtml = $Opt(''), j, k, l, subGroups = getGroupSubGroups(group), cookie, subGroupCookie, $group, $subgroup; if ((group.Cookies && group.Cookies.length > 0) || (subGroups && subGroups.length > 0)) { groupHtml.append('' + json.CookiesUsedText + ''); } if (group.Cookies && group.Cookies.length > 0) { //Insert group cookies html $group = $Opt(''); for (k = 0; k < group.Cookies.length; k += 1) { cookie = group.Cookies[k]; var cookiepediaLabel = getCookieLabel(cookie); $group.append(cookiepediaLabel + (k < (group.Cookies.length - 1) ? ', ' : '')); } groupHtml.append($group); } if (subGroups && subGroups.length > 0) { for (j = 0; j < subGroups.length; j += 1) { $subgroup = $Opt(''); var groupLabel = getSubGroupLabel(subGroups[j]); var description = safeFormattedGroupDescription(subGroups[j]); var headerSeparator = optanonShowSubGroupCookies || (optanonShowSubGroupDescription && description) ? ":" : ""; $subgroup.append('' + groupLabel + headerSeparator + ' '); //BEHAVIOUR(ShowSubgroupToggles == true) if (safeGroupDefaultStatus(subGroups[j].Parent).toLowerCase() != 'always active') { var subgroupToggle = getSubgroupToggle(json, subGroups[j]); $subgroup.append(subgroupToggle); } //BEHAVIOUR_END var $subgroupCookies = $Opt(''); if (optanonShowSubGroupCookies) { for (l = 0; l < subGroups[j].Cookies.length; l += 1) { subGroupCookie = subGroups[j].Cookies[l]; $subgroupCookies.append(subGroupCookie.Name + (l < (subGroups[j].Cookies.length - 1) ? ', ' : '')); } } $subgroup.append($subgroupCookies); if (optanonShowSubGroupDescription && description) { $subgroup.append('' + description + ''); } groupHtml.append($subgroup); } } return groupHtml; } function safeFormattedGroupDescription(group) { if (!group || !group.GroupLanguagePropertiesSets || !group.GroupLanguagePropertiesSets[0] || !group.GroupLanguagePropertiesSets[0].GroupDescription || !group.GroupLanguagePropertiesSets[0].GroupDescription.Text) { return ""; } return group.GroupLanguagePropertiesSets[0].GroupDescription.Text.replace(/rn/g, ''); } function safeGroupName(group) { var hasName = group && group.GroupLanguagePropertiesSets && group.GroupLanguagePropertiesSets[0] && group.GroupLanguagePropertiesSets[0].GroupName; if (!hasName) { return ""; } return group.GroupLanguagePropertiesSets[0].GroupName.Text; } function safeGroupDefaultStatus(group) { var json = optanonData(); var hasDefaultStatus = group && group.GroupLanguagePropertiesSets && group.GroupLanguagePropertiesSets[0] && group.GroupLanguagePropertiesSets[0].DefaultStatus; if (!hasDefaultStatus) { return ""; } if (optanonDoNotTrackEnabled && json.IsDntEnabled && group.GroupLanguagePropertiesSets[0].IsDntEnabled) { return doNotTrackText; } return group.GroupLanguagePropertiesSets[0].DefaultStatus.Text; } function getSubGroupLabel(group) { if (!group) return ""; var groupLabel = safeGroupName(group); //BEHAVIOUR(AddLinksToCookiepedia == true) var cookie = group.Cookies[0]; if (!cookie) return groupLabel; // third party cookie linked by host of the first cookie groupLabel = '' + groupLabel + ''; //BEHAVIOUR_END return groupLabel; } function getCookieLabel(cookie) { if (!cookie) return ""; var cookieLabel = cookie.Name; //BEHAVIOUR(AddLinksToCookiepedia == true) // first party cookie linked by name cookieLabel = '' + cookie.Name + ''; //BEHAVIOUR_END return cookieLabel; } //Setting cookie policy subgroup columns to be the same height function setCookiePolicyHtmlSubGroupHeights() { $Opt('#optanon-cookie-policy .optanon-cookie-policy-subgroup').each(function () { $Opt(this).find('.optanon-cookie-policy-left').height('auto'); $Opt(this).find('.optanon-cookie-policy-right').height('auto'); if ($Opt(this).find('.optanon-cookie-policy-left').height() >= $Opt(this).find('.optanon-cookie-policy-right').height()) { $Opt(this).find('.optanon-cookie-policy-right').height($Opt(this).find('.optanon-cookie-policy-left').height()); } else { $Opt(this).find('.optanon-cookie-policy-left').height($Opt(this).find('.optanon-cookie-policy-right').height()); } }); } function showConsentNotice() { if (checkIscenterTile()) { // hiding banner modal $Opt('.optanon-alert-box-wrapper').hide(); } $Opt("#optanon #optanon-menu li").removeClass('menu-item-selected'); $Opt("#optanon #optanon-menu li").each(function () { if ($Opt(this).text() == optanonAboutCookiesGroupName) { $Opt(this).click(); } }); setAllowAllButton(); // Center consent notice on screen var $notice = $Opt('#optanon-popup-wrapper'), width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; $notice.css("margin-top", "10px"); if (width < 720) { $notice.css("top", "10px"); } else if ($notice.outerHeight() > height) { $notice.css("top", Math.max(0, ((height - $notice.outerHeight()) / 2) + $Opt(window).scrollTop()) + "px"); } else { $notice.css("top", Math.max(0, ((height - $notice.outerHeight()) / 2)) + "px"); } // Select pop up elements and attach animation class var bg = document.querySelector('#optanon #optanon-popup-bg'); var wrapper = document.querySelector('#optanon #optanon-popup-wrapper'); bg.classList.add('fade-in'); wrapper.classList.add('fade-in'); // Toggle element display attribute to replace jQuery.hide() bg.style.display = 'block'; wrapper.style.display = 'block'; $notice.focus(); } function hideConsentNotice(caller) { if (checkIscenterTile()) { // showing banner modal $Opt('.optanon-alert-box-wrapper').show(); if (caller === constant.KEEPCENTERTILEBANNEROPEN) { $Opt('#optanon #optanon-popup-wrapper').fadeOut(400); } else { $Opt('#optanon #optanon-popup-bg, #optanon #optanon-popup-wrapper').fadeOut(400); } } else { var json = optanonData(); if (json.ForceConsent) { if (!isCookiePolicyPage(json.AlertNoticeText) && !Optanon.IsAlertBoxClosedAndValid()) { $Opt("#optanon-popup-bg").css({ 'z-index': '7000' }); $Opt('#optanon #optanon-popup-wrapper').fadeOut(400); } else { $Opt('#optanon #optanon-popup-bg, #optanon #optanon-popup-wrapper').fadeOut(400); } } else { $Opt('#optanon #optanon-popup-bg, #optanon #optanon-popup-wrapper').fadeOut(400); } } } function checkIsActiveByDefault(group) { if (!safeGroupDefaultStatus(group)) { return true; } else { var groupStatus = safeGroupDefaultStatus(group).toLowerCase(); if (group.Parent) { groupStatus = safeGroupDefaultStatus(group.Parent).toLowerCase(); } return groupStatus == 'always active' || groupStatus == 'inactive landingpage' || groupStatus == 'active' || (groupStatus == doNotTrackText && !optanonDoNotTrackEnabled); } } function getIABCrossConsentflagData() { return readCookieParam(optanonCookieName, oneTrustIsIABCrossConsentEnableParam); } function isIABCrossConsentEnabled() { return getIABCrossConsentflagData() === 'true'; } function ensureHtmlGroupDataInitialised() { var group, json = optanonData(), i; if (!readCookieParam(optanonCookieName, 'groups')) { //Populate optanonHtmlGroupData from json optanonHtmlGroupData = []; for (i = 0; i < json.Groups.length; i += 1) { group = json.Groups[i]; if (isValidConsentNoticeGroup(group)) { //Group should show in popup if (checkIsActiveByDefault(group)) { //Group is active optanonHtmlGroupData.push(getGroupIdForCookie(group) + ':1'); } else { //Group is inactive optanonHtmlGroupData.push(getGroupIdForCookie(group) + ':0'); } } } optanonEnsureCookieDataCompatibilityComplete = true; } else { //Populate optanonHtmlGroupData from cookie ensureCookieDataCompatibility(); synchroniseCookieGroupData(); optanonHtmlGroupData = deserialiseStringToArray(readCookieParam(optanonCookieName, 'groups')); } //BEHAVIOUR(IsIABEnabled == true) if (!isIABCrossConsentEnabled()) { initializeIABData(); } else { setIAB3rdPartyCookie(oneTrustIAB3rdPartyCookie, "", 0, true); } //BEHAVIOUR_END } //setting 3rdparty consent flag in cookie for stub to make judgement on calling 3rd party consent or not function setOrUpdate3rdPartyIABConsentFlag() { var json = optanonData(); var iabCrossConsentFlag = readCookieParam(optanonCookieName, oneTrustIsIABCrossConsentEnableParam); if (json.IsIABEnabled) { if (!iabCrossConsentFlag || reconsentRequired()) { writeCookieParam(optanonCookieName, oneTrustIsIABCrossConsentEnableParam, json.IsIabThirdPartyCookieEnabled); } } else { if (!iabCrossConsentFlag || reconsentRequired()) { writeCookieParam(optanonCookieName, oneTrustIsIABCrossConsentEnableParam, false); } else if (iabCrossConsentFlag !== 'false') { writeCookieParam(optanonCookieName, oneTrustIsIABCrossConsentEnableParam, false); } } } function setGeolocationInCookies() { var userGeolocation = readCookieParam(optanonCookieName, geolocationCookiesParam); if (userGeolocation === "" && Optanon.IsAlertBoxClosedAndValid()) { writeCookieParam( optanonCookieName, geolocationCookiesParam, isInEU); } else if (reconsentRequired() && userGeolocation !== "") { writeCookieParam( optanonCookieName, geolocationCookiesParam, ""); } } //BEHAVIOUR(IsConsentIntegration == true) function ensureConsentId() { if (!readCookieParam(optanonCookieName, onetrustConsentParamName)) { writeCookieParam(optanonCookieName, onetrustConsentParamName, generateUUID()); } return readCookieParam(optanonCookieName, onetrustConsentParamName); } function createConsentTransaction() { var consentId = ensureConsentId(); var json = populateConsentData(); var domainData = optanonData(); if (json && json.consentApi && consentId) { json.consentPayload.identifier = consentId; json.consentPayload.customPayload = { "activeGroup": serialiseArrayToString(optanonHtmlGroupData), "Date": new Date(), "language": domainData.Language.Culture }; if (json.consentPayload.purposes[0].id) { json.consentPayload.purposes[0].Id = json.consentPayload.purposes[0].id; delete json.consentPayload.purposes[0].id; } OTajax({ url: json.consentApi, type: 'post', dataType: 'json', contentType: 'application/json', success: function (data) { }, error: function (error) { console.log('ERROR', error); }, data: JSON.stringify(json.consentPayload) }); } } //BEHAVIOUR_END function getGroupById(groupId) { var json = optanonData(), i; for (i = 0; i < json.Groups.length; i += 1) { if (getGroupIdForCookie(json.Groups[i]) == groupId) { return json.Groups[i]; } } } //BEHAVIOUR(IsIABEnabled == true) function populateVendorList(initializeVendor) { if (isIABCrossConsentEnabled()) { if ($Opt) { globalVendorList(initializeVendor); } } else { getAndSetDefaultVendorList(); window.__cmp.proccessQueue(); } } function globalVendorList(initializeVendor) { var iabData = IABData(); var vendorlistUrl = iabData.globalVendorListUrl || updateCorrectUrl(iabData.globalVendorListUrl); $Opt.getJSON(vendorlistUrl, function (response) { if (response) { oneTrustIABConsent.vendorList = response; assignIABDataWithGlobalVendorList(oneTrustIABConsent.vendorList); if (initializeVendor) { setIABVendor(); assignIABConsentFromHtmlGroupData(); setVendorStatus(); } } else { getAndSetDefaultVendorList(); } window.__cmp.proccessQueue(); }); } function assignIABDataWithGlobalVendorList(vendorList) { if (otIABData) { otIABData.activeVendors = vendorList.vendors.map(function (vendor) { vendor.vendorId = vendor.id; vendor.vendorName = vendor.name; return vendor; }); otIABData.vendorListVersion = vendorList.vendorListVersion; } } function getAndSetDefaultVendorList() { var json = IABData(); if (json.iabVendorJson && !oneTrustIABConsent.vendorList) { oneTrustIABConsent.vendorList = JSON.parse(json.iabVendorJson); } return oneTrustIABConsent.vendorList; } function assignIABConsentFromHtmlGroupData() { var group = {}; for (var index = 0; index < optanonHtmlGroupData.length; index++) { if (optanonHtmlGroupData[index].indexOf('_') === -1) { var groupData = optanonHtmlGroupData[index].split(':'); group = getGroupById(groupData[0]); if (groupData[1] == "1" && canSoftOptInInsertForGroup(groupData[0])) { setIABConsent(group, "true"); } else { setIABConsent(group, "false"); } } } } function setIABConsent(group, isActive, replace) { if (isTopLevelGroup(group)) { if (group.Purposes && group.Purposes.length > 0) { for (var index = 0; index < group.Purposes.length; index++) { if (replace) { var isExist = indexOf(oneTrustIABConsent.purpose, (group.Purposes[index].purposes.purposeId + ":" + !(isActive == "true"))); if (isExist != -1) { oneTrustIABConsent.purpose[isExist] = group.Purposes[index].purposes.purposeId + ":" + isActive; } } else { var isExist = indexOf(oneTrustIABConsent.purpose, (group.Purposes[index].purposes.purposeId + ":" + isActive)); if (isExist == -1) { oneTrustIABConsent.purpose.push(group.Purposes[index].purposes.purposeId + ":" + isActive); } } } } } } function setIABVendor() { var i, jsonIABData = IABData(); if (jsonIABData && jsonIABData.activeVendors && jsonIABData.activeVendors.length > 0) { for (i = 0; i < jsonIABData.activeVendors.length; i++) { oneTrustIABConsent.vendors.push(jsonIABData.activeVendors[i].vendorId.toString() + ":true"); } } } //BEHAVIOUR_END //If cookie exists, ensures to add any new groups and remove any redundant groups to data function synchroniseCookieGroupData() { var toUpdateCookie = false, cookieGroupData = deserialiseStringToArray(readCookieParam(optanonCookieName, 'groups')), cookieGroupDataStripped = deserialiseStringToArray(readCookieParam(optanonCookieName, 'groups').replace(/:0/g, '').replace(/:1/g, '')), json = optanonData(), group, i, j, index, foundMatchingJsonGroup; if (readCookieParam(optanonCookieName, 'groups')) { //Adding missing groups to cookie for (i = 0; i < json.Groups.length; i += 1) { group = json.Groups[i]; if (isValidConsentNoticeGroup(group)) { //Group should show in popup index = indexOf(cookieGroupDataStripped, getGroupIdForCookie(group)); if (index == -1) { //Json group does not exist in cookie toUpdateCookie = true; if (checkIsActiveByDefault(group)) { //Group is active cookieGroupData.push(getGroupIdForCookie(group) + ':1'); } else { //Group is inactive cookieGroupData.push(getGroupIdForCookie(group) + ':0'); } } } } //Removing redundant groups from cookie for (i = cookieGroupData.length - 1; i >= 0; i -= 1) { foundMatchingJsonGroup = false; for (j = 0; j < json.Groups.length; j += 1) { group = json.Groups[j]; if (isValidConsentNoticeGroup(group)) { if (getGroupIdForCookie(group) == cookieGroupData[i].replace(/:0/g, '').replace(/:1/g, '')) { foundMatchingJsonGroup = true; break; } } } if (!foundMatchingJsonGroup) { //Cookie group does not exist in json toUpdateCookie = true; cookieGroupData.splice(i, 1); } } //Writing updated cookie if (toUpdateCookie) { writeCookieGroupsParam(optanonCookieName, cookieGroupData); } } } // Returns true if all json default group statuses are set to inactive (excluding 'always active' groups) function getIsOptInMode() { var isOptIn = true, group, json = optanonData(), i; for (i = 0; i < json.Groups.length; i += 1) { group = json.Groups[i]; if (isValidConsentNoticeGroup(group)) { //TODO: confirm if should consider DNT here if (!safeGroupDefaultStatus(group) || (safeGroupDefaultStatus(group) && (safeGroupDefaultStatus(group).toLowerCase() == 'active' || safeGroupDefaultStatus(group).toLowerCase() == 'inactive landingpage' || safeGroupDefaultStatus(group).toLowerCase() == doNotTrackText))) { isOptIn = false; break; } } } return isOptIn; } // Returns true if all json default group statuses are set to inactive landingpage (excluding 'always active' groups) function getIsSoftOptInMode() { var isSoftOptIn = true, group, json = optanonData(), i; for (i = 0; i < json.Groups.length; i += 1) { group = json.Groups[i]; if (!isValidConsentNoticeGroup(group)) continue; var statusText = safeGroupDefaultStatus(group).toLowerCase(); if (statusText !== 'inactive landingpage' && statusText !== 'always active') { isSoftOptIn = false; break; } } return isSoftOptIn; } // Ensure cookie data is compatible with latest version function ensureCookieDataCompatibility() { var toUpdateCookie = false; if (readCookieParam(optanonCookieName, 'groups') && !optanonEnsureCookieDataCompatibilityComplete) { //Add functionality here to update cookie data //Writing updated cookie if (toUpdateCookie) { writeCookieGroupsParam(optanonCookieName, cookieGroupData); } optanonEnsureCookieDataCompatibilityComplete = true; } } function writeCookieGroupsParam(cookieName, groupData) { var json = optanonData(); if (groupData) { writeCookieParam(cookieName, 'groups', serialiseArrayToString(groupData)); } else { writeCookieParam(cookieName, 'groups', serialiseArrayToString(optanonHtmlGroupData)); } //BEHAVIOUR(IsIABEnabled == true) if (json.IsIABEnabled && !reconsentRequired() && getCookie(optanonAlertBoxClosedCookieName)) { if (oneTrustIABConsent && oneTrustIABConsent.purpose && oneTrustIABConsent.vendors && oneTrustIABConsent.vendorList) { IABCookieValue = getIABConsentData(); if (isIABCrossConsentEnabled()) { setIAB3rdPartyCookie(oneTrustIAB3rdPartyCookie, IABCookieValue, 390, false); } else { setCookie(oneTrustIABCookieName, IABCookieValue, 390); } } } //BEHAVIOUR_END } function writeCookieParam(cookieName, paramName, paramValue) { var data = {}, cookie = getCookie(cookieName), i, values, pair, value, json = optanonData(); if (cookie) { values = cookie.split('&'); for (i = 0; i < values.length; i += 1) { pair = values[i].split('='); data[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]).replace(/+/g, ' '); } } data[paramName] = paramValue; data.datestamp = new Date().toString(); data.version = optanonVersion; value = param(data); setCookie(cookieName, value, 365); } function readCookieParam(cookieName, paramName) { var cookie = getCookie(cookieName), i, data, values, pair; if (cookie) { data = {}; values = cookie.split('&'); for (i = 0; i < values.length; i += 1) { pair = values[i].split('='); data[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]).replace(/+/g, ' '); } if (paramName && data[paramName]) { //Found cookie value for valid param return data[paramName]; } if (paramName && !data[paramName]) { //Found no cookie value for valid param return ""; } //Invalid param, returns entire cookie return data; } return ""; } function setCookie(name, value, days) { var expires, date; if (days) { date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = '; expires=' + date.toGMTString(); } else { expires = ''; } var domainAndPath = optanonCookieDomain.split('/'); if (domainAndPath.length <= 1) { domainAndPath[1] = ''; } document.cookie = name + '=' + value + expires + '; path=/' + domainAndPath[1] + '; domain=.' + domainAndPath[0] + '; Samesite=Lax'; } function getCookie(name) { var nameEq = name + '=', ca = document.cookie.split(';'), i, c; for (i = 0; i < ca.length; i += 1) { c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1, c.length); } if (c.indexOf(nameEq) == 0) { return c.substring(nameEq.length, c.length); } } return null; } function setIAB3rdPartyCookie(name, value, days, isFirstRequest) { var IABUrl = "[[IabThirdPartyCookieUrl]]"; if (IABData) { var url = window.location.protocol + "//" + IABUrl + "/?name=" + name + "&value=" + value + "&expire=" + days + "&isFirstRequest=" + isFirstRequest; if (document.getElementById('onetrustIabCookie')) { document.getElementById('onetrustIabCookie').contentWindow.location.replace(url); } else { var i = document.createElement('iframe'); i.style.display = 'none'; i.id = "onetrustIabCookie"; i.src = url; if (document.body) { document.body.appendChild(i); } else { setTimeout(function () { document.body.appendChild(i); }, 100); } } } } function canInsertForGroup(groupId, ignoreGroupCheck) { var validGroup = groupId != null && typeof groupId != 'undefined', isExistingActiveGroup, isNonExistingGroup; if (!ignoreGroupCheck) { ensureHtmlGroupDataInitialised(); isExistingActiveGroup = contains(optanonHtmlGroupData, (groupId + ':1')); isNonExistingGroup = !doesGroupExist(groupId); if (validGroup && (isExistingActiveGroup && canSoftOptInInsertForGroup(groupId) || isNonExistingGroup)) { return true; } return false; } return true; } // Returns true if group is not soft opt-in or if group is soft opt-in and landing page was left (i.e. after user interaction) function canSoftOptInInsertForGroup(groupId) { var group = getGroupById(groupId), isSoftOptInGroup, parentGroup; parentGroup = isTopLevelGroup(group) ? group : group.Parent; isSoftOptInGroup = safeGroupDefaultStatus(parentGroup).toLowerCase() == 'inactive landingpage'; if (!isSoftOptInGroup) { return true; } if (isLandingPage()) { return false; } return true; } function isLandingPage() { var landingPath = readCookieParam(optanonCookieName, 'landingPath'); if (!landingPath || landingPath === location.href) { return true; } return false; } // Returns true if group id exist in json function doesGroupExist(groupId) { var json = optanonData(), i; for (i = 0; i < json.Groups.length; i += 1) { if (json.Groups[i].CustomGroupId) { if (json.Groups[i].CustomGroupId == groupId) { return true; } } else if (json.Groups[i].OptanonGroupId == groupId) { return true; } } return false; } //Returns comma delimited string from array function serialiseArrayToString(cookieGroupsArray) { return cookieGroupsArray.toString().toLowerCase(); } //Returns array from comma delimited string function deserialiseStringToArray(cookieGroupsString) { if (!cookieGroupsString) return []; return cookieGroupsString.toLowerCase().split(','); } function executeCustomScript() { var json = optanonData(); if (json.CustomJs) { (new Function(json.CustomJs))(); } } function executeOptanonWrapper() { var i; executeCustomScript(); if (typeof OptanonWrapper == 'function') { if (OptanonWrapper != 'undefined') { OptanonWrapper(); //Adding Optanon Group Id to optanonWrapperScriptExecutedGroups for (i = 0; i < optanonWrapperScriptExecutedGroupsTemp.length; i += 1) { if (!contains(optanonWrapperScriptExecutedGroups, optanonWrapperScriptExecutedGroupsTemp[i])) { optanonWrapperScriptExecutedGroups.push(optanonWrapperScriptExecutedGroupsTemp[i]); } } optanonWrapperScriptExecutedGroupsTemp = []; //Adding Optanon Group Id to optanonWrapperHtmlExecutedGroups for (i = 0; i < optanonWrapperHtmlExecutedGroupsTemp.length; i += 1) { if (!contains(optanonWrapperHtmlExecutedGroups, optanonWrapperHtmlExecutedGroupsTemp[i])) { optanonWrapperHtmlExecutedGroups.push(optanonWrapperHtmlExecutedGroupsTemp[i]); } } optanonWrapperHtmlExecutedGroupsTemp = []; } } } function jsonAddAboutCookies(json) { json.Groups.unshift( { 'GroupLanguagePropertiesSets': [{ 'GroupName': { 'Text': optanonAboutCookiesGroupName }, 'GroupDescription': { 'Text': json.MainInfoText } }] } ); } /* JS Helper functions start*/ function empty(id) { var elem = document.getElementById(id); if (elem) { while (elem.hasChildNodes()) { elem.removeChild(elem.lastChild); } } } function show(id) { var elem = document.getElementById(id); if (elem) { elem.style.display = 'block'; } } function remove(id) { var elem = document.getElementById(id); if (elem) { elem.parentNode.removeChild(elem); } } function appendTo(id, element) { var elem = document.getElementById(id), div; if (elem) { div = document.createElement('div'); div.innerHTML = element; elem.appendChild(div); } } function contains(array, item) { var i; for (i = 0; i < array.length; i += 1) { if (array[i].toString().toLowerCase() == item.toString().toLowerCase()) { return true; } } return false; } function indexOf(array, item) { var i; for (i = 0; i < array.length; i += 1) { if (array[i] == item) { return i; } } return -1; } function endsWith(str, suffix) { return str.indexOf(suffix, str.length - suffix.length) != -1; } function param(obj) { var str = '', key; for (key in obj) { if (obj.hasOwnProperty(key)) { if (str != '') { str += '&'; } str += key + '=' + encodeURIComponent(obj[key]).replace(/%20/g, '+'); } } return str; } function generateUUID() { var d = new Date().getTime(); if (typeof performance !== 'undefined' && typeof performance.now === 'function') { d += performance.now(); //use high-precision timer if available } return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = (d + Math.random() * 16) % 16 | 0; d = Math.floor(d / 16); return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); } function convertIABVendorPurposeArrayToObject(IabData) { var result = {}; IabData.map(function (item) { var data = item.split(':'); result[parseInt(data[0])] = data[1] === "true"; }); return result; } function getActiveIdArray(arrayData) { return arrayData.filter(function (item) { return item.split(':')[1] === "true"; }).map(function (item1) { return parseInt(item1.split(":")[0]); }); } function distinctArray(arrayData) { var result = []; arrayData.forEach(function (item) { if (result.indexOf(item) < 0) { result.push(item); } }); return result; } function getIdArray(keyValueArray) { return keyValueArray.map(function (item) { return parseInt(item.split(":")[0]); }); } /* JS Helper functions end*/ function setAllowAllButton() { var deactiveCount = 0, group, json = optanonData(), i; for (i = 0; i < json.Groups.length; i += 1) { group = json.Groups[i]; if (isValidConsentNoticeGroup(group)) { if (contains(optanonHtmlGroupData, (getGroupIdForCookie(group) + ':0'))) { deactiveCount += 1; if (deactiveCount >= 1) { $Opt('#optanon .optanon-allow-all-button').show(); return true; } } } } $Opt('#optanon .optanon-allow-all-button').hide(); return false; } //Closing Optanon alert box with predefined class = optanon-alert-box-wrapper function closeOptanonAlertBox(setOptanonAlertBoxCookie, isOptanonAlertBoxCookiePersistent) { $Opt('.optanon-alert-box-wrapper').fadeOut(400); $Opt('#optanon-vendor-consent-back').click(); if (setOptanonAlertBoxCookie && (optanonIsOptInMode || (!optanonIsOptInMode && !Optanon.IsAlertBoxClosedAndValid()))) { Optanon.SetAlertBoxClosed(isOptanonAlertBoxCookiePersistent); } } function isValidConsentNoticeGroup(group) { //does current group have visible sub groups with cookies or is a subgroup with cookies var group2, json = optanonData(), hasValidSubGroupsWithCookies = false, isIABData = false, i; var isMainGroupCookieNotEmpty = (group.Cookies != null && group.Cookies.length > 0); if (isTopLevelGroup(group)) { isIABData = (group.Purposes && group.Purposes.length > 0) && json.IsIABEnabled; for (i = 0; i < json.Groups.length; i += 1) { group2 = json.Groups[i]; var isSubGroupCookieNotEmpty = (group2.Cookies != null && group2.Cookies.length > 0); if (group2.Parent != null && safeGroupName(group) && safeGroupName(group2.Parent) == safeGroupName(group) && group2.ShowInPopup && isSubGroupCookieNotEmpty) { hasValidSubGroupsWithCookies = true; break; } } return group.ShowInPopup && (isMainGroupCookieNotEmpty || hasValidSubGroupsWithCookies || isIABData); } return group.ShowInPopup && isMainGroupCookieNotEmpty; } function isTopLevelGroup(group) { return group && group.Parent == null; } function getGroupSubGroups(group) { var group2, json = optanonData(), subGroups = [], i; for (i = 0; i < json.Groups.length; i += 1) { group2 = json.Groups[i]; var isSubGroupCookieNotEmpty = (group2.Cookies != null && group2.Cookies.length > 0); if (group2.Parent != null && safeGroupName(group2.Parent) == safeGroupName(group) && group2.ShowInPopup && isSubGroupCookieNotEmpty) { subGroups.push(group2); } } return subGroups; } function optanonData() { if (!optanonJsonData) { var json = [[OptanonDataJSON]]; //BEHAVIOUR(CenterTile == true) json.ForceConsent = true; //BEHAVIOUR_END optanonJsonData = json; if (optanonJsonData.Groups instanceof Array) { optanonJsonData.Groups.forEach(function (group) { if (typeof group.CustomGroupId == "string") { group.CustomGroupId = group.CustomGroupId.toLowerCase(); } if (group.Parent && typeof group.Parent.CustomGroupId == "string") { group.Parent.CustomGroupId = group.Parent.CustomGroupId.toLowerCase(); } }) } return optanonJsonData; } else { return optanonJsonData; } } //BEHAVIOUR(IsConsentIntegration == true) function populateConsentData() { var consentData = {}; consentData.consentPayload = [[consentPayload]]; consentData.consentApi = "[[consentApi]]"; return consentData; } //BEHAVIOUR_END //BEHAVIOUR(IsIABEnabled == true) function IABData() { if (!otIABData) { var json = [[IABDataJSON]]; otIABData = json; } return otIABData; } //BEHAVIOUR_END this.useGeoLocationService = useGeoLocationService; this.LoadBanner = function () { $Opt(window).trigger("otloadbanner"); }; this.Init = function () { initObjectAssignPolyfill(); initArrayFillPolyfill(); updateScriptAndCssUrl(); setOrUpdate3rdPartyIABConsentFlag(); //Populates optanonHtmlGroupData from cookie or default statuses ensureHtmlGroupDataInitialised(); // CustomEvent polyfill // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill (function () { if (typeof window.CustomEvent === "function") return false; //If CustomEvent supported return function CustomEvent(event, params) { params = params || { bubbles: false, cancelable: false, detail: undefined }; var evt = document.createEvent('CustomEvent'); evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); return evt; } CustomEvent.prototype = window.Event.prototype; window.CustomEvent = CustomEvent; })(); //Populates Google Tag Manager macro global Optanon variable updateGtmMacros(false); //Inserts reguired css references initialiseCssReferences(); //Save landing page url initialiseLandingPath(); //Inserts required jquery reference injectJquery(); //BEHAVIOUR(IsIABEnabled == true) if (!isIABCrossConsentEnabled()) { window.__cmp.proccessQueue(); } //BEHAVIOUR_END }; function updateScriptAndCssUrl() { var json = optanonData(); var scripts = document.getElementsByTagName('script'); for (var i = 0; i < scripts.length; ++i) { if (isOptanonFile(scripts[i], json.cctId)) { var OptanonScript = scripts[i].src; if (scripts[i].hasAttribute(constant.IGNOREGA)) { ignoreGoogleAnlyticsCall = scripts[i].getAttribute(constant.IGNOREGA) == 'true'; } onetrustClientScriptUrl = getURL(OptanonScript); break; } } } function updateCorrectUrl(sourceUrl) { var sourceUrI = getURL(sourceUrl); if (onetrustClientScriptUrl && sourceUrI && onetrustClientScriptUrl.hostname !== sourceUrI.hostname) { sourceUrl = sourceUrl.replace(sourceUrI.hostname, onetrustClientScriptUrl.hostname); } return sourceUrl; } function isOptanonFile(scriptElem, filePathPart) { if (scriptElem.getAttribute('src')) { return scriptElem.getAttribute('src').indexOf(filePathPart) !== -1; } return false; } function getURL(href) { var l = document.createElement("a"); l.href = href; return l; }; // Inserts a script tag into page at specified location // // url: script tag reference url // selector: container element of script tag (possible values: 'head', 'body', '') // callback: callback method after script tag has been inserted // options: contains behaviors once the script is inserted // options.deleteSelectorContent (boolean): set to true to delete all selector content before inserting script // options.makeSelectorVisible (boolean): set to true to show selector after inserting script // options.makeElementsVisible (array[string]): set the id's of arbitrary elements to show after inserting script // options.deleteElements (array[string]): set the id's of arbitrary elements to delete after inserting script // groupId: if implied consent, the Optanon Group Id for which the script tag should be inserted this.InsertScript = function (url, selector, callback, options, groupId, async) { var validOptions = options != null && typeof options != 'undefined', ignoreGroupCheck = ((validOptions && typeof options.ignoreGroupCheck != 'undefined' && options.ignoreGroupCheck == true) || optanonGeolocationExecuteAllScripts), i, j, script, done; if (canInsertForGroup(groupId, ignoreGroupCheck) && !contains(optanonWrapperScriptExecutedGroups, groupId)) { //Delay adding group to optanonWrapperScriptExecutedGroups optanonWrapperScriptExecutedGroupsTemp.push(groupId); if (validOptions && typeof options.deleteSelectorContent != 'undefined' && options.deleteSelectorContent == true) { empty(selector); } script = document.createElement('script'); if (callback != null && typeof callback != 'undefined') { done = false; script.onload = script.onreadystatechange = function () { if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { done = true; callback(); } }; } script.type = 'text/javascript'; script.src = url; if (async) { script.async = async; } switch (selector) { case 'head': document.getElementsByTagName('head')[0].appendChild(script); break; case 'body': document.getElementsByTagName('body')[0].appendChild(script); break; default: if (document.getElementById(selector)) { document.getElementById(selector).appendChild(script); if (validOptions && typeof options.makeSelectorVisible != 'undefined' && options.makeSelectorVisible == true) { show(selector); } } break; } if (validOptions && typeof options.makeElementsVisible != 'undefined') { for (i = 0; i < options.makeElementsVisible.length; i += 1) { show(options.makeElementsVisible[i]); } } if (validOptions && typeof options.deleteElements != 'undefined') { for (j = 0; j < options.deleteElements.length; j += 1) { remove(options.deleteElements[j]); } } } }; // Inserts an arbitrary html tag into page at specified location // // element: html element // selector: container element of html element (possible values: '') // callback: callback method after html element has been inserted // options: contains behaviors once the html is inserted // options.deleteSelectorContent (boolean): set to true to delete all selector content before inserting html // options.makeSelectorVisible (boolean): set to true to show selector after inserting html // options.makeElementsVisible (array[string]): set the id's of arbitrary elements to show after inserting html // options.deleteElements (array[string]): set the id's of arbitrary elements to delete after inserting html // groupId: if implied consent, the Optanon Group Id for which the html element should be inserted this.InsertHtml = function (element, selector, callback, options, groupId) { var validOptions = options != null && typeof options != 'undefined', ignoreGroupCheck = ((validOptions && typeof options.ignoreGroupCheck != 'undefined' && options.ignoreGroupCheck == true) || optanonGeolocationExecuteAllScripts), i, j; if (canInsertForGroup(groupId, ignoreGroupCheck) && !contains(optanonWrapperHtmlExecutedGroups, groupId)) { //Delay adding group to optanonWrapperHtmlExecutedGroups optanonWrapperHtmlExecutedGroupsTemp.push(groupId); if (validOptions && typeof options.deleteSelectorContent != 'undefined' && options.deleteSelectorContent == true) { empty(selector); } appendTo(selector, element); if (validOptions && typeof options.makeSelectorVisible != 'undefined' && options.makeSelectorVisible == true) { show(selector); } if (validOptions && typeof options.makeElementsVisible != 'undefined') { for (i = 0; i < options.makeElementsVisible.length; i += 1) { show(options.makeElementsVisible[i]); } } if (validOptions && typeof options.deleteElements != 'undefined') { for (j = 0; j < options.deleteElements.length; j += 1) { remove(options.deleteElements[j]); } } if (callback != null && typeof callback != 'undefined') { callback(); } } }; // Close consent notice and writes cookie this.Close = function (closeFromCookie) { // Update Toggled On Group var json = optanonData(); // Implied Consent if (!closeFromCookie && isImpliedConsent()) { if (isCenterTile) { Array.prototype.forEach.call(document.querySelectorAll('.optanon-popup-body-content'), function (domEl, idx) { if ($Opt(domEl).data('group') && domEl.querySelector('input')) { var group = $Opt(domEl).data('group'), groupName = safeGroupName(group); if (domEl.querySelector('input').checked) { //Google Analytics event tracking Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Preferences Toggle On', groupName); //updating optanonHtmlGroupData with new group status var index = indexOf(optanonHtmlGroupData, getGroupIdForCookie(group) + ':0'); if (index != -1) { optanonHtmlGroupData[index] = getGroupIdForCookie(group) + ':1'; if (json.IsIABEnabled) { setIABConsent(group, "true", true); } } } else { //Google Analytics event tracking Optanon.TriggerGoogleAnalyticsEvent('OneTrust Cookie Consent', 'Preferences Toggle Off', groupName); //updating optanonHtmlGroupData with new group status var index = indexOf(optanonHtmlGroupData, getGroupIdForCookie(group) + ':1'); if (index != -1) { optanonHtmlGroupData[index] = getGroupIdForCookie(group) + ':0'; if (json.IsIABEnabled) { setIABConsent(group, "false", false); } } } } }); } } hideConsentNotice(); updateConsentData(closeFromCookie); //BEHAVIOUR(IsConsentIntegration == true) createConsentTransaction(); //BEHAVIOUR_END executeOptanonWrapper(); }; function updateConsentData(closeFromCookie) { setLandingPathParam(optanonNotLandingPageName); //BEHAVIOUR(IsIABEnabled == true) assignIABConsentFromHtmlGroupData(optanonHtmlGroupData); if (!closeFromCookie) { saveVendorStatus(); } //BEHAVIOUR_END writeCookieGroupsParam(optanonCookieName); substitutePlainTextScriptTags(); updateGtmMacros(false); } // Close consent notice, writes cookies and executes wrapper function this.AllowAll = function (consentIgnoreForGeoLookup) { var group, json = optanonData(), i; //set landing page 1st setLandingPathParam(optanonNotLandingPageName); optanonHtmlGroupData = []; for (i = 0; i < json.Groups.length; i += 1) { group = json.Groups[i]; if (isValidConsentNoticeGroup(group)) { optanonHtmlGroupData.push(getGroupIdForCookie(group) + ':1'); } } //BEHAVIOUR(IsIABEnabled == true) oneTrustIABConsent.purpose = []; assignIABConsentFromHtmlGroupData(optanonHtmlGroupData); setIABVendor(); setVendorStatus(); //BEHAVIOUR_END $Opt('#optanon #optanon-menu li').removeClass('menu-item-off'); $Opt('#optanon #optanon-menu li').addClass('menu-item-on'); hideConsentNotice(); writeCookieGroupsParam(optanonCookieName); substitutePlainTextScriptTags(); updateGtmMacros(true); //BEHAVIOUR(IsConsentIntegration == true) if (!consentIgnoreForGeoLookup) { createConsentTransaction(); } //BEHAVIOUR_END executeOptanonWrapper(); }; // Toggles consent notice visible state this.ToggleInfoDisplay = function () { var json = optanonData(); if (json.ForceConsent) { if (!isCookiePolicyPage(json.AlertNoticeText)) { $Opt("#optanon-popup-bg").css({ 'z-index': '2147483645' }); } } if ($Opt('#optanon #optanon-popup-bg, #optanon #optanon-popup-wrapper').is(':hidden')) { showConsentNotice(); if (!isCenterTile) { var venderConsentLink = document.querySelector('#optanon-vendor-consent-text'), popUpHeader = document.querySelector('#optanon-popup-top').children, popUpBottom = document.querySelector('#optanon-popup-bottom').children, sideNav = document.querySelector('#optanon-menu').children, closeLink = document.querySelector('.optanon-close-ui'), optanon = document.querySelector('#optanon'), headerItems = [], footerItems = []; for (var i = 0; i < popUpHeader.length; i++) { if (popUpHeader[i].style.display !== 'none') { headerItems.push(popUpHeader[i]); } } for (var i = 0; i < popUpBottom.length; i++) { if (popUpBottom[i].style.display !== 'none') { footerItems.push(popUpBottom[i]); } } if (headerItems.length > 0) { popUpHeader[0].addEventListener('keydown', popUpHeaderHandler); } else { sideNav[0].addEventListener('keydown', popUpHeaderHandler); } if (footerItems.length > 0) { var allowAllBtn = document.querySelector('.optanon-button-wrapper.optanon-allow-all-button.optanon-allow-all'); if (allowAllBtn.style.display === 'block') { footerItems[footerItems.length - 1].addEventListener('keydown', footerItemsHandler); } else { footerItems[footerItems.length - 2].addEventListener('keydown', footerItemsHandler); } } sideNav[sideNav.length - 1].addEventListener('keydown', sideNavHandler); optanon.addEventListener('keyup', optanonHandler); if (venderConsentLink) venderConsentLink.addEventListener('keyup', venderConsentHandler); if (closeLink) { closeLink.addEventListener('keydown', closeLinkHandler); } } } else { hideConsentNotice(); writeCookieGroupsParam(optanonCookieName); substitutePlainTextScriptTags(); updateGtmMacros(false); executeOptanonWrapper(); } }; function venderConsentHandler(event) { var popUpWrapper = document.querySelector('#optanon-popup-wrapper'); if (event.keyCode === 13) { popUpWrapper.focus(); } } function optanonHandler(event) { var cookieSettingsBtn = document.querySelector('.optanon-toggle-display.cookie-settings-button'); if (event.keyCode === 27) { cookieSettingsBtn.focus(); closeLinkHandler(event); } } function closeLinkHandler(event) { var closeLink = document.querySelector('.optanon-close-ui'), popUpHeader = document.querySelector('#optanon-popup-top').children[0], popUpBottom = document.querySelector('#optanon-popup-bottom').children, sideNav = document.querySelector('#optanon-menu').children, venderConsentLink = document.querySelector('#optanon-vendor-consent-text'), optanon = document.querySelector('#optanon'); if (event.keyCode === 13 || event.keyCode === 27) { if (event.keyCode === 27) { hideConsentNotice(constant.KEEPCENTERTILEBANNEROPEN); } else { hideConsentNotice(); } document.querySelector('.optanon-toggle-display.cookie-settings-button').focus(); if (popUpHeader) { popUpHeader.removeEventListener('keydown', popUpHeaderHandler); } else { sideNav[0].removeEventListener('keydown', popUpHeaderHandler); } if (popUpBottom.length > 0) { var allowAllBtn = document.querySelector('.optanon-button-wrapper.optanon-allow-all-button.optanon-allow-all'); if (allowAllBtn.style.display === 'block') { popUpBottom[popUpBottom.length - 1].removeEventListener('keydown', footerItemsHandler); } else { popUpBottom[popUpBottom.length - 2].removeEventListener('keydown', footerItemsHandler); } } sideNav[sideNav.length - 1].removeEventListener('keydown', sideNavHandler); optanon.removeEventListener('keyup', venderConsentHandler); if (venderConsentLink) { venderConsentLink.removeEventListener('keyup', venderConsentHandler); } if (closeLink) { closeLink.removeEventListener('keydown', closeLinkHandler); } } } function sideNavHandler(event) { if (event.keyCode === 9 && !event.shiftKey) { document.querySelector('.optanon-white-button-middle > button').removeAttribute('tabindex'); document.querySelector('.optanon-allow-all > .optanon-white-button-middle > button').removeAttribute('tabindex'); } } function footerItemsHandler(event) { var popUpWrapper = document.querySelector('#optanon-popup-wrapper'), allowAllBtn = allowAllBtn = document.querySelector('.optanon-allow-all > .optanon-white-button-middle > button'); if (event.keyCode === 9) { popUpWrapper.focus(); } if (event.keyCode === 9 && !event.shiftKey) { document.querySelector('.optanon-white-button-middle > button').removeAttribute('tabindex'); allowAllBtn.removeAttribute('tabindex'); } if (event.keyCode === 9 && event.shiftKey) { document.querySelector('#optanon-popup-bottom > a').focus(); } } function popUpHeaderHandler(event) { var allowAllBtn = document.querySelector('.optanon-allow-all > .optanon-white-button-middle > button'), saveSettingsBtn = document.querySelector('.optanon-white-button-middle > button'); if (event.keyCode === 9 && event.shiftKey) { saveSettingsBtn.setAttribute('tabindex', 5); allowAllBtn.setAttribute('tabindex', 4); } if (event.keyCode === 9 && !event.shiftKey) { saveSettingsBtn.removeAttribute('tabindex'); allowAllBtn.removeAttribute('tabindex'); } } // Selectively blocks Google Analytics tracking functionality when consent has not been given this.BlockGoogleAnalytics = function (gaId, groupId) { window['ga-disable-' + gaId] = !canInsertForGroup(groupId); }; // Optanon UI Google Analytics event tracking this.TriggerGoogleAnalyticsEvent = function (category, action, label, value) { if (!ignoreGoogleAnlyticsCall) { //Google Analytics (w/o Google Tag Manager) if (typeof _gaq != 'undefined') { _gaq.push(['_trackEvent', category, action, label, value]); } //Universal Analytics (w/o Google Tag Manager) if (typeof ga != 'undefined') { ga('send', 'event', category, action, label, value); } } //Google Tag Manager if (typeof dataLayer != 'undefined' && dataLayer.constructor === Array) { dataLayer.push({ 'event': 'trackOptanonEvent', 'optanonCategory': category, 'optanonAction': action, 'optanonLabel': label, 'optanonValue': value }); } }; // Returns if alert box has been closed by checking if setOptanonAlertBoxCookie exists this.IsAlertBoxClosedAndValid = function () { var json = optanonData(), cookie = getCookie(optanonAlertBoxClosedCookieName), reconsentDate = json.LastReconsentDate; if (cookie === null) return false; if (!reconsentDate) return true; var needsReconsent = new Date(reconsentDate) > new Date(cookie); if (needsReconsent) { Optanon.ReconsentGroups(); } return !needsReconsent; }; // Alias for old function name this.IsAlertBoxClosed = this.IsAlertBoxClosedAndValid; // if Re-consent is needed, update groups according to their default status this.ReconsentGroups = function () { var toUpdateCookie = false, cookieGroupData = deserialiseStringToArray(readCookieParam(optanonCookieName, 'groups')), cookieGroupDataStripped = deserialiseStringToArray(readCookieParam(optanonCookieName, 'groups').replace(/:0/g, '').replace(/:1/g, '')), json = optanonData(); if (readCookieParam(optanonCookieName, 'groups')) { for (var i = 0; i < json.Groups.length; i += 1) { var group = json.Groups[i]; if (!isValidConsentNoticeGroup(group)) continue; //Group should show in popup var index = indexOf(cookieGroupDataStripped, getGroupIdForCookie(group)); if (index == -1) continue; var statusText = safeGroupDefaultStatus(group).toLowerCase(); var reconsentStatuses = ["inactive", "inactive landingpage", "do not track"]; if (reconsentStatuses.indexOf(statusText) > -1) { toUpdateCookie = true; var groupValue = statusText === "inactive landingpage" ? ':1' : ':0'; cookieGroupData[index] = getGroupIdForCookie(group) + groupValue; } } //Writing updated cookie if (toUpdateCookie) { writeCookieGroupsParam(optanonCookieName, cookieGroupData); } } }; // Sets setOptanonAlertBoxCookie cookie indicating alert box has been closed this.SetAlertBoxClosed = function (isOptanonAlertBoxCookiePersistent) { var consentDate = new Date().toISOString(); if (isOptanonAlertBoxCookiePersistent) { setCookie(optanonAlertBoxClosedCookieName, consentDate, 365); } else { setCookie(optanonAlertBoxClosedCookieName, consentDate); } //BEHAVIOUR(BannerPushesDown == true) if (checkBrowserSupportPushPageUp()) { pushPageUp(); } //BEHAVIOUR_END }; // Client facing wrapper around optanonData, returns groups, cookies and other domain data this.GetDomainData = function () { var domainData = optanonData(); return domainData; }; // Add listener to be called when consent is available this.OnConsentChanged = function (f) { var key = f.toString(); if (!consentChangedEventMap[key]) { consentChangedEventMap[key] = true; window.addEventListener("consent.onetrust", f); } } //BEHAVIOUR(IsIABEnabled == true) this.getPingRequest = function (callback) { if (callback) { var domainJson = optanonData(); if (domainJson.IsIABEnabled) { var pingData = { gdprAppliesGlobally: oneTrustIABgdprAppliesGlobally, cmpLoaded: oneTrustIABConsent.vendorList && !(oneTrustIABgdprAppliesGlobally == null) }; callback(pingData, true); } else { callback({}, false); } } } this.getVendorConsentsRequest = function (callback, param) { if (callback) { var domainJson = optanonData(); if (domainJson.IsIABEnabled) { var IABJsonData = IABData(); var vendorsArray = distinctArray(oneTrustIABConsent.vendors); if (param && Array.isArray(param)) { vendorsArray = getFilteredVenderList(vendorsArray, param); } if (IABJsonData) { var consentData = new consentString.ConsentString(IABCookieValue); var venderConsentData = { metadata: IABCookieValue || getIABConsentData(), gdprApplies: oneTrustIABgdprAppliesGlobally, hasGlobalScope: isIABCrossConsentEnabled(), created: consentData.created || IABJsonData.createdTime, lastUpdated: consentData.lastUpdated || IABJsonData.updatedTime, cmpId: consentData.getCmpId() || IABJsonData.cmpId, cmpVersion: consentData.getCmpVersion() || IABJsonData.cmpVersion, consentLanguage: consentData.getConsentLanguage() || IABJsonData.consentLanguage, consentScreen: consentData.getConsentScreen() || IABJsonData.consentScreen, vendorListVersion: consentData.getVendorListVersion() || IABJsonData.vendorListVersion, maxVendorId: IABJsonData.maxVendorId, purposeConsents: Optanon.IsAlertBoxClosedAndValid() ? convertIABVendorPurposeArrayToObject(oneTrustIABConsent.purpose) : {}, vendorConsents: Optanon.IsAlertBoxClosedAndValid() ? convertIABVendorPurposeArrayToObject(vendorsArray) : {} }; callback(venderConsentData, true); } else { callback({}, false); } } else { callback({}, false); } } } function getFilteredVenderList(vendors, param) { vendors = vendors.filter(function (vendor) { var res = parseInt(vendor.split(":")[0]); return this.indexOf(res) > -1; }, param); var vendorsWithNoConsent = param.filter(function (vendor) { var res = vendor + ":true"; return this.indexOf(res) <= -1; }, vendors); vendorsWithNoConsent.forEach(function (vendor) { vendors.push(vendor + ":false"); }) return vendors; } this.getConsentDataRequest = function (callback) { if (callback) { var domainJson = optanonData(); if (domainJson.IsIABEnabled) { var consentData = { gdprApplies: oneTrustIABgdprAppliesGlobally, hasGlobalScope: isIABCrossConsentEnabled(), consentData: IABCookieValue || getIABConsentData() }; callback(consentData, true); } else { callback({}, false); } } } function getIABConsentData(allowedPurposes, allowedVendors) { var consentData; if (IABCookieValue && !reconsentRequired()) { consentData = new consentString.ConsentString(IABCookieValue); } else { var IABJsonData = IABData(); consentData = new consentString.ConsentString(); consentData.setCmpId(parseInt(IABJsonData.cmpId)); consentData.setCmpVersion(parseInt(IABJsonData.cmpVersion)); consentData.setConsentLanguage(IABJsonData.consentLanguage.toLocaleLowerCase()); consentData.setConsentScreen(parseInt(IABJsonData.consentScreen)); } consentData.setPurposesAllowed( Optanon.IsAlertBoxClosedAndValid() ? allowedPurposes || getActiveIdArray(oneTrustIABConsent.purpose) : [] ); consentData.setVendorsAllowed( Optanon.IsAlertBoxClosedAndValid() ? allowedVendors || getActiveIdArray(distinctArray(oneTrustIABConsent.vendors)) : []); consentData.setGlobalVendorList(oneTrustIABConsent.vendorList || {}); return consentData.getConsentString(); } function initializeIABData() { IABCookieValue = getCookie(oneTrustIABCookieName); if (IABCookieValue) { var consentData = new consentString.ConsentString(IABCookieValue); if (consentData) { consentData.getPurposesAllowed().forEach(function (purpose) { oneTrustIABConsent.purpose.push(purpose.toString() + ':true'); }); consentData.getVendorsAllowed().forEach(function (vendor) { oneTrustIABConsent.vendors.push(vendor.toString() + ':true'); }); } } else { setIABVendor(); assignIABConsentFromHtmlGroupData(); } populateVendorList(); } function assignIABGlobalScope(displayPopup) { if (displayPopup == true || displayPopup == 'true') { oneTrustIABgdprAppliesGlobally = true; } else { oneTrustIABgdprAppliesGlobally = false; } } //BEHAVIOUR_END //BEHAVIOUR(BannerPushesDown == true) function checkBrowserSupportPushPageDown() { if (checkIsBrowserIE11OrBelow()) { //removed this logic as it is navigaating to all tags which create performance issue //return !checkPositionFixed(document.body.children); return false; } return true; } function checkBrowserSupportPushPageUp() { if (checkIsBrowserIE11OrBelow()) { return !isWebsiteContainFixedHeader; } return true; } function checkIsBrowserIE11OrBelow() { var ua = window.navigator.userAgent; return (ua.indexOf('MSIE ') > 0 || ua.indexOf('Trident/') > 0) } function checkPositionFixed(tags) { var i; for (i = 0; i < tags.length; i++) { var currentElement = tags[i]; if ($Opt(currentElement).css('position') == 'fixed') { if (tags[i].className.indexOf('optanon') == -1 && tags[i].id.indexOf('optanon') == -1) { isWebsiteContainFixedHeader = true; break; } } else { var childElements = currentElement.getElementsByTagName("*"); if (childElements.length > 0) { checkPositionFixed(childElements); } } } return isWebsiteContainFixedHeader; } //BEHAVIOUR_END function isCookiePolicyPage(bannerText) { var isMatching = false; var currentURL = removeURLPrefixes(window.location.href); var el = $Opt(''); el.html(bannerText); var hrefElements = $Opt('a', el) var i; for (i = 0; i < hrefElements.length; i++) { if (removeURLPrefixes(hrefElements[i].href) == currentURL) { isMatching = true; break; } } return isMatching; } function removeURLPrefixes(url) { return url.toLowerCase().replace(/(^w+:|^)///, '').replace('www.', ''); } function initObjectAssignPolyfill() { if (typeof Object.assign != 'function') { // Must be writable: true, enumerable: false, configurable: true Object.defineProperty(Object, "assign", { value: function assign(target, varArgs) { // .length of function is 2 'use strict'; if (target == null) { // TypeError if undefined or null throw new TypeError('Cannot convert undefined or null to object'); } var to = Object(target); for (var index = 1; index < arguments.length; index++) { var nextSource = arguments[index]; if (nextSource != null) { // Skip over if undefined or null for (var nextKey in nextSource) { // Avoid bugs when hasOwnProperty is shadowed if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { to[nextKey] = nextSource[nextKey]; } } } } return to; }, writable: true, configurable: true }); } } function initArrayFillPolyfill() { if (!Array.prototype.fill) { Object.defineProperty(Array.prototype, 'fill', { value: function (value) { // Steps 1-2. if (this == null) { throw new TypeError('this is null or not defined'); } var O = Object(this); // Steps 3-5. var len = O.length >>> 0; // Steps 6-7. var start = arguments[1]; var relativeStart = start >> 0; // Step 8. var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len); // Steps 9-10. var end = arguments[2]; var relativeEnd = end === undefined ? len : end >> 0; // Step 11. var finalVal = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len); // Step 12. while (k < finalVal) { O[k] = value; k++; } // Step 13. return O; } }); } } function setBannerTabIndex() { var bannerTabIndex = 0; // policy link if ($Opt('.banner-content a').length) { $Opt('.banner-content a').each(function (index, element) { $Opt(element).addClass('banner-policy-link'); $Opt(element).attr('tabindex', ++bannerTabIndex); $Opt(element).attr('aria-label', $Opt(element).text()); }); } if (checkIscenterTile()) { if ($Opt(".accept-cookies-button").length) { $Opt(".accept-cookies-button").attr('tabindex', ++bannerTabIndex); } if ($Opt(".cookie-settings-button").length) { $Opt(".cookie-settings-button").attr('tabindex', ++bannerTabIndex); } } else { if ($Opt(".cookie-settings-button").length) { $Opt(".cookie-settings-button").attr('tabindex', ++bannerTabIndex); } if ($Opt(".accept-cookies-button").length) { $Opt(".accept-cookies-button").attr('tabindex', ++bannerTabIndex); } } if ($Opt(".banner-close-button").length) { $Opt(".banner-close-button").attr('tabindex', ++bannerTabIndex); } } //BEHAVIOUR(IsIABEnabled == true) this.updateConsentFromCookies = function (OnetrustIABCookies) { var allowedGroup = [], isExist; if (isInitIABCookieData(OnetrustIABCookies)) { populateVendorList(true); return; } if (OnetrustIABCookies && !isInitIABCookieData(OnetrustIABCookies)) { IABCookieValue = OnetrustIABCookies; var globalConsentData = new consentString.ConsentString(OnetrustIABCookies); oneTrustIABConsent.purpose = []; oneTrustIABConsent.vendors = []; globalConsentData.getVendorsAllowed().forEach(function (vendor) { oneTrustIABConsent.vendors.push(vendor.toString() + ':true'); }); globalConsentData.getPurposesAllowed().forEach(function (purpose) { oneTrustIABConsent.purpose.push(purpose.toString() + ':true'); var group = getGroupByPurposeId(purpose[0]) if (group && group.GroupId && (indexOf(allowedGroup, group) == -1)) { allowedGroup.push(group); //BEHAVIOUR(ShowSubgroupToggles == true) getGroupSubGroups(group).forEach(function (subGroup) { allowedGroup.push(subGroup); }); //BEHAVIOUR_END } }); for (var index = 0; index < allowedGroup.length; index++) { var element = allowedGroup[index]; isExist = indexOf(optanonHtmlGroupData, (getGroupIdForCookie(element) + ':0')); if (isExist != -1) { optanonHtmlGroupData[isExist] = getGroupIdForCookie(element) + ':1'; } } populateVendorList(); setCookie(oneTrustIABCookieName, '', -1); } else if (!OnetrustIABCookies) { writeCookieParam( optanonCookieName, oneTrustIsIABCrossConsentEnableParam, false); initializeIABData(); } } function isInitIABCookieData(OnetrustIABCookies) { return OnetrustIABCookies === "init" ? true : false; } function getGroupByPurposeId(purposeId) { var json = optanonData(), group; if (json && json.Groups) { for (var i = 0; i < json.Groups.length; i++) { group = json.Groups[i]; if (isTopLevelGroup(group) && group.Purposes && group.Purposes.length > 0) { for (var index = 0; index < group.Purposes.length; index++) { if (group.Purposes[index].purposes.purposeId == purposeId) { return group; } } } } } } //BEHAVIOUR_END // ONETRUST FUNCTIONS (jQuery Overhaul) function OTfadeOut(el, ms) { var domEl = document.querySelector(el); var fadeEffect = setInterval(function () { if (!domEl.style.opacity) { domEl.style.opacity = 1; } if (domEl.style.opacity > 0) { domEl.style.opacity -= 0.1; } else { domEl.style.display = "none"; clearInterval(fadeEffect); } }, ms); } function OTajax(options) { var type = void 0, url = void 0, success = void 0, error = void 0, data = null, dataType = void 0, contentType = void 0, request = new XMLHttpRequest(); type = options.type; url = options.url; success = options.success; error = options.error; data = options.data; dataType = options.dataType; contentType = options.contentType; request.open(type, url, true); request.setRequestHeader('Content-Type', contentType); request.onload = function () { if (this.status >= 200 && this.status < 400) { // Success! var response = JSON.parse(this.response); success(response); } else { // We reached our target server, but it returned an error error({ message: 'Error Loading Data', statusCode: this.status }); } }; request.onerror = function (err) { // There was a connection error of some sort error(err); }; type.toLowerCase() === 'post' || type.toLowerCase() === 'put' ? request.send(data) : request.send(); } this.setGeoLocation = function (response) { isInEU = response; setGeolocationInCookies(); } function getGeoLocation() { var userGeolocation = readCookieParam(optanonCookieName, geolocationCookiesParam); var json = optanonData(); if (userGeolocation === "" && (json.IsIABEnabled || json.euOnly)) { $Opt.ajax({ type: 'GET', crossDomain: true, dataType: 'json', url: '[[OptanonIsIpAllowedForCountryUrl]]' }) .fail(function (response) { if (response.status !== 200) { window.jsonFeed({ displayPopup: true }); } }); } else { window.jsonFeed({ displayPopup: userGeolocation }); } } function injectJquery() { var script1 = document.createElement('script'); var script2 = document.createElement('script'); script1.type = 'text/javascript'; script1.src = 'https://code.jquery.com/jquery-3.3.1.min.js'; script1.integrity = 'sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8='; script1.crossOrigin = 'anonymous'; script2.type = 'text/javascript'; script2.src = 'https://code.jquery.com/jquery-1.11.2.min.js'; script2.integrity = 'sha256-Ls0pXSlb7AYs7evhd+VLnWsZ/AqEHcXBeMZUycz/CcA='; script2.crossOrigin = 'anonymous'; if (useLatestJquey) { document.getElementsByTagName('head')[0].appendChild(script1); script1.onload = script1.onreadystatechange = function () { if (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') { injectConsentNotice(); } }; } else { document.getElementsByTagName('head')[0].appendChild(script2); script2.onload = script2.onreadystatechange = function () { if (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') { injectConsentNotice(); } }; } } }).call(Optanon); if (typeof window.jsonFeed !== 'function') { var jsonFeed = function (options) { Optanon.setGeoLocation(options.displayPopup) } } Optanon.Init();