{"version":3,"sources":["ajaxFacade.js","miListener.js","CookieManager.js","CookiePolicyWidget.js","cookiePopupInit.js"],"names":["CONFUSEDCORE","AJAX","Ajaxfacade","$","error","options","xhr","textStatus","errorThrown","post","url","data","timeoutInterval","async","undefined","dataType","wrappedResponse","ajax","type","timeout","success","response","redirect","hasOwnProperty","toString","indexOf","JSON","parse","e","document","location","Status","requiresAuthentication","Authenticated","window","reload","userIsLoggedIn","Data","complete","postAuthenticated","this","jQuery","MI","MiListener","ajaxFacade","MI_EVENT_URL","MI_PAGEVIEW_URL","MI_NEWSESSION_URL","doPost","miUrl","miObject","callback","errorCallback","protocol","host","postPageView","eventType","eventInfo","EventType","EventInfo","postEvent","pageView","pageName","page","postLogSession","setMI_URL","MI_URL","w","d","Confused","CookieManager","prototype","getItem","sKey","decodeURIComponent","cookie","replace","RegExp","encodeURIComponent","setItem","sValue","vEnd","sPath","sDomain","bSecure","test","sExpires","constructor","Number","Infinity","String","Date","toUTCString","removeItem","hasItem","keys","aKeys","split","nIdx","length","CookieModalFocus","CookiePolicyWidget","cookieManager","gtmContainerID","dataLayer","GTMContainer","cookieName","ConsentCookieName","parent","hostname","miListener","cookiePopupShown","parts","shift","join","hidePopup","cookieValue","eventName","querySelector","classList","remove","updateCookieChoiceRadios","setTimeout","trigger","insertGTMScript","checked","add","updateCookieValue","s","createElement","src","x","getElementsByTagName","parentNode","insertBefore","run","push","getTime","event","init","buttons","querySelectorAll","inputs","Array","forEach","call","button","addEventListener","btn","parents","questionBlock","preventDefault","addClass","selectedRadio","val","hasClass","validateCookieSelection","target","input","radio","toggleClass","wasCookiePopupShown","CookieManagerV2","cookieEvent","CustomEvent","detail","dispatchEvent","closest","value","contains","toggle","pageUrl","href","cookiePolicyWidget","referer","referrer"],"mappings":"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","file":"cookie.min.js","sourcesContent":["var CONFUSEDCORE = CONFUSEDCORE || {};\r\nCONFUSEDCORE.AJAX = CONFUSEDCORE.AJAX || {};\r\n\r\n//@desc: acts as a wrapper to jQuery's ajax call\r\nCONFUSEDCORE.AJAX.Ajaxfacade = (function ($) {\r\n\tfunction userIsLoggedIn(response) {\r\n\t\tif (response && response.Authenticated === false) {\r\n\t\t\t//force page refresh to re-authenticate\r\n\t\t\twindow.location.reload();\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tfunction error(options, xhr, textStatus, errorThrown) {\r\n\t\tif (!options) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (options.error) {\r\n\t\t\toptions.error(xhr, textStatus, errorThrown);\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\t/*\r\n\t\t@desc: posts data to the specified url\r\n\t\t@param options:\r\n\t\t@param options.success: the success callback\r\n\t\t@param options.error: the error callback\r\n\t\t@param options.timeout: the timeout callback\r\n\t\t@param options.requiresAuthentication: if true, checks authentication status and redirects if logged out\r\n\t\t@param options.async: whether to post asynchronously, default: true\r\n @param options.dataType: json, html etc.\r\n @param options.wrappedResponse: whether the response will be wrapped in a JsonResponse or not\r\n\t\t@param data: the data to pass through in the post\r\n\t\t */\r\n\t\tpost: function (url, options, data) {\r\n\t\t\tif (!options.timeoutInterval) {\r\n\t\t\t\t//if it hasn't been specified then set it to 5s\r\n\t\t\t\toptions.timeoutInterval = 5000;\r\n\t\t\t}\r\n\r\n\t\t\tif (options.async === null || options.async === undefined) {\r\n\t\t\t\t//default to true\r\n\t\t\t\toptions.async = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (!options.dataType) {\r\n\t\t\t\toptions.dataType = 'json';\r\n\t\t\t}\r\n\t\t\tif (options.wrappedResponse === undefined) {\r\n\t\t\t\toptions.wrappedResponse = true;\r\n\t\t\t}\r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: 'POST',\r\n\t\t\t\turl: url,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tdataType: options.dataType,\r\n\t\t\t\ttimeout: options.timeoutInterval, // in milliseconds\r\n\t\t\t\tasync: options.async,\r\n\t\t\t\tsuccess: function (response) {\r\n\t\t\t\t\tif (response !== null && response !== undefined) {\r\n\t\t\t\t\t\tlet redirect = null;\r\n\r\n\t\t\t\t\t\tif (response.hasOwnProperty('redirect')) {\r\n\t\t\t\t\t\t\tredirect = response.redirect; //returned from a session timeout in a call expecting JSON, for example\r\n\t\t\t\t\t\t} else if (response.toString().indexOf('redirect') >= 0) {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tredirect = JSON.parse(response).redirect; //returned from a session timeout in a call expecting HTML, for example\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t/* empty */\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (redirect !== null) {\r\n\t\t\t\t\t\t\t//AJAX call returned a redirect. Redirect the window to the redirect location\r\n\t\t\t\t\t\t\tdocument.location = redirect;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (options.wrappedResponse) {\r\n\t\t\t\t\t\tif (!response || response.Status !== 'ok') {\r\n\t\t\t\t\t\t\terror(options);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!options) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (options.requiresAuthentication) {\r\n\t\t\t\t\t\t\tif (!userIsLoggedIn(response)) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (options.success) {\r\n\t\t\t\t\t\t\toptions.success(response.Data);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\toptions.success(response);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror: function (xhr, textStatus, errorThrown) {\r\n\t\t\t\t\tif (textStatus === 'timeout' && options && options.timeout) {\r\n\t\t\t\t\t\toptions.timeout();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\terror(options, xhr, textStatus, errorThrown);\r\n\t\t\t\t},\r\n\t\t\t\tcomplete: function () {\r\n\t\t\t\t\tif (typeof options.complete !== 'undefined') {\r\n\t\t\t\t\t\toptions.complete();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t/*\r\n\t\t@desc: posts data to the specified url. The user must be authenticated\r\n\t\t@param options:\r\n\t\t@param options.success: the success callback\r\n\t\t@param options.error: the error callback\r\n\t\t@param options.async: whether to post asynchronously, default: true\r\n\t\t@param data: the data to pass through in the post\r\n\t\t */\r\n\t\tpostAuthenticated: function (url, options, data) {\r\n\t\t\tif (!options) {\r\n\t\t\t\toptions = {};\r\n\t\t\t}\r\n\r\n\t\t\toptions.requiresAuthentication = true;\r\n\t\t\tthis.post(url, options, data);\r\n\t\t},\r\n\t};\r\n})(window.jQuery);\r\n","/*Version added for use only by CMSv2 */\r\n\r\nvar CONFUSEDCORE = CONFUSEDCORE || {};\r\nCONFUSEDCORE.MI = CONFUSEDCORE.MI || {};\r\n\r\n/*\r\n@desc: a listener for management information events\r\n\t\tthis listener will run itself\r\n */\r\nCONFUSEDCORE.MI.MiListener = (function ($, ajaxFacade) {\r\n\tconst options = {\r\n\t\t//The URL to post the MI event to\r\n\t\tMI_EVENT_URL: 'miv2/event',\r\n\t\tMI_PAGEVIEW_URL: 'miv2/pageview',\r\n\t\tMI_NEWSESSION_URL: 'miv2/newsession',\r\n\t};\r\n\r\n\tfunction doPost(miUrl, miObject, callback, errorCallback) {\r\n\t\tconst url = `${window.location.protocol}//${window.location.host}/${miUrl}`;\r\n\t\tajaxFacade.post(\r\n\t\t\turl,\r\n\t\t\t{\r\n\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\tcallback();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror: function () {\r\n\t\t\t\t\tif (errorCallback) {\r\n\t\t\t\t\t\terrorCallback();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tmiObject\r\n\t\t);\r\n\t}\r\n\r\n\tfunction postEvent(eventType, eventInfo, callback, errorCallback) {\r\n\t\tdoPost(\r\n\t\t\toptions.MI_EVENT_URL,\r\n\t\t\t{\r\n\t\t\t\tEventType: eventType,\r\n\t\t\t\tEventInfo: eventInfo,\r\n\t\t\t},\r\n\t\t\tcallback,\r\n\t\t\terrorCallback\r\n\t\t);\r\n\t}\r\n\r\n\tfunction postPageView(eventType, eventInfo, callback, errorCallback) {\r\n\t\tdoPost(\r\n\t\t\toptions.MI_PAGEVIEW_URL,\r\n\t\t\t{\r\n\t\t\t\tEventType: eventType,\r\n\t\t\t\tEventInfo: eventInfo,\r\n\t\t\t},\r\n\t\t\tcallback,\r\n\t\t\terrorCallback\r\n\t\t);\r\n\t}\r\n\r\n\tfunction pageView(pageName) {\r\n\t\tpostPageView('LogPageView', { page: pageName });\r\n\t}\r\n\r\n\tfunction postLogSession(eventType, eventInfo, callback, errorCallback) {\r\n\t\tdoPost(\r\n\t\t\toptions.MI_NEWSESSION_URL,\r\n\t\t\t{\r\n\t\t\t\tEventType: eventType,\r\n\t\t\t\tEventInfo: eventInfo,\r\n\t\t\t},\r\n\t\t\tcallback,\r\n\t\t\terrorCallback\r\n\t\t);\r\n\t}\r\n\r\n\treturn {\r\n\t\t/*\r\n @desc: post the MI event\r\n @param: eventType: the event type\r\n @param: eventInfo: the event information object\r\n */\r\n\t\tpostEvent: postEvent,\r\n\t\tpostPageView: postPageView,\r\n\t\tpageView: pageView,\r\n\t\tpostLogSession: postLogSession,\r\n\r\n\t\t/*\r\n @desc: override the default MI URL\r\n @param: url: the new url\r\n @default: mi/event\r\n */\r\n\t\tsetMI_URL: function (url) {\r\n\t\t\toptions.MI_URL = url;\r\n\t\t},\r\n\t};\r\n})(window.jQuery, CONFUSEDCORE.AJAX.Ajaxfacade);\r\n","/**\r\n * Adds a Confused.CookieManager class to the Confused namespace.\r\n * Implemented as IIFE so we can pass in references to the global jQuery and document objects.\r\n **/\r\n(function ($, w, d) {\r\n\t'use strict';\r\n\r\n\tw.Confused = w.Confused || {};\r\n\r\n\t/**\r\n\t * Helper for working with cookies. 95% of this code was written by Mozilla.\r\n\t * https://developer.mozilla.org/en-US/docs/Web/API/d.cookie\r\n\t *\r\n\t * @Constructor\r\n\t */\r\n\tw.Confused.CookieManager = function () {};\r\n\r\n\t/**\r\n\t * Gets a cookie item. e.g.\r\n\t * cookieManager.getItem(name)\r\n\t *\r\n\t * @param {string} sKey. The name of the cookie.\r\n\t */\r\n\tw.Confused.CookieManager.prototype.getItem = function (sKey) {\r\n\t\treturn (\r\n\t\t\tdecodeURIComponent(\r\n\t\t\t\td.cookie.replace(\r\n\t\t\t\t\tnew RegExp(\r\n\t\t\t\t\t\t`(?:(?:^|.*;)\\\\s*${encodeURIComponent(sKey).replace(\r\n\t\t\t\t\t\t\t/[\\-\\.\\+\\*]/g,\r\n\t\t\t\t\t\t\t'\\\\$&'\r\n\t\t\t\t\t\t)}\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$`\r\n\t\t\t\t\t),\r\n\t\t\t\t\t'$1'\r\n\t\t\t\t)\r\n\t\t\t) || null\r\n\t\t);\r\n\t};\r\n\r\n\t/**\r\n\t * Sets a cookie item. e.g.\r\n\t * cookieManager.setItem(\"test0\", \"Hello world!\");\r\n\t * cookieManager.setItem(\"test1\", \"Unicode test: \\u00E0\\u00E8\\u00EC\\u00F2\\u00F9\", Infinity);\r\n\t * cookieManager.setItem(\"test2\", \"Hello world!\", new Date(2020, 5, 12));\r\n\t * cookieManager.setItem(\"test3\", \"Hello world!\", new Date(2027, 2, 3), \"/blog\");\r\n\t * cookieManager.setItem(\"test4\", \"Hello world!\", \"Sun, 06 Nov 2022 21:43:15 GMT\");\r\n\t * cookieManager.setItem(\"test5\", \"Hello world!\", \"Tue, 06 Dec 2022 13:11:07 GMT\", \"/home\");\r\n\t * cookieManager.setItem(\"test6\", \"Hello world!\", 150);\r\n\t * cookieManager.setItem(\"test7\", \"Hello world!\", 245, \"/content\");\r\n\t * cookieManager.setItem(\"test8\", \"Hello world!\", null, null, \"example.com\");\r\n\t * cookieManager.setItem(\"test9\", \"Hello world!\", null, null, null, true);\r\n\t * cookieManager.setItem(\"test1;=\", \"Safe character test;=\", Infinity);\r\n\t *\r\n\t * @param {string} sKey. The name of the cookie.\r\n\t * @param {string} sValue. The value of the cookie.\r\n\t * @param {variant} vEnd. The expiry date of the cookie.\r\n\t * @param {string} sPath. The path of the cookie.\r\n\t * @param {string} sDomain. The domain of the cookie.\r\n\t * @param {bool} bSecure. Specifies if the cookie is secure or not.\r\n\t */\r\n\tw.Confused.CookieManager.prototype.setItem = function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\r\n\t\tif (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tlet sExpires = '';\r\n\r\n\t\tif (vEnd) {\r\n\t\t\tswitch (vEnd.constructor) {\r\n\t\t\t\tcase Number:\r\n\t\t\t\t\tsExpires = vEnd === Infinity ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : `; max-age=${vEnd}`;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase String:\r\n\t\t\t\t\tsExpires = `; expires=${vEnd}`;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase Date:\r\n\t\t\t\t\tsExpires = `; expires=${vEnd.toUTCString()}`;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\td.cookie = `${encodeURIComponent(sKey)}=${encodeURIComponent(sValue)}${sExpires}${\r\n\t\t\tsDomain ? `; domain=${sDomain}` : ''\r\n\t\t}${sPath ? `; path=${sPath}` : ''}${bSecure ? '; secure' : ''}`;\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t/**\r\n\t * Removes a cookie item. e.g.\r\n\t * cookieManager.removeItem(name, path, domain)\r\n\t *\r\n\t * @param {string} sKey. The name of the cookie.\r\n\t * @param {string} sPath. The path of the cookie: eg, \"/\" : defaults to path of current d.\r\n\t * @param {string} sDomain. The domain of the cookie - eg, confused.com, .confused.com (all subdomains), www.confused.com\r\n\t */\r\n\tw.Confused.CookieManager.prototype.removeItem = function (sKey, sPath, sDomain) {\r\n\t\tif (!sKey || !this.hasItem(sKey)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\td.cookie = `${encodeURIComponent(sKey)}=; expires=Thu, 01 Jan 1970 00:00:00 GMT${\r\n\t\t\tsDomain ? `; domain=${sDomain}` : ''\r\n\t\t}${sPath ? `; path=${sPath}` : ''}`;\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t/**\r\n\t * Tests if a cookie item exists. e.g.\r\n\t * cookieManager.hasItem(name)\r\n\t *\r\n\t * @param {string} sKey. The name of the cookie.\r\n\t */\r\n\tw.Confused.CookieManager.prototype.hasItem = function (sKey) {\r\n\t\treturn new RegExp(`(?:^|;\\\\s*)${encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&')}\\\\s*\\\\=`).test(\r\n\t\t\td.cookie\r\n\t\t);\r\n\t};\r\n\r\n\t/**\r\n\t * Returns the keys for all cookie items. e.g.\r\n\t * cookieManager.keys(name)\r\n\t */\r\n\tw.Confused.CookieManager.prototype.keys = function () {\r\n\t\tconst aKeys = d.cookie\r\n\t\t\t.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, '')\r\n\t\t\t.split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n\r\n\t\tfor (let nIdx = 0; nIdx < aKeys.length; nIdx++) {\r\n\t\t\taKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);\r\n\t\t}\r\n\r\n\t\treturn aKeys;\r\n\t};\r\n})(window.jQuery, window, document);\r\n","/*\r\n * Adds a CookiePolicyWidget class to the Confused namespace.\r\n * Implemented as IIFE so we can pass in references to the global window and document objects.\r\n * Note: Depends on _partials/Common/v2.0/CookieManager.js being setup at Confused.CookieManagerV2 and _core/mi/v1.1/miListener.js (or above) being supported server-side.\r\n * Adds/ removes '.open' to '.cookie-wall depending on the presence of a CookieConsent cookie, logging the interaction as an MI event and in a cookie\r\n * Triggers the function triggerGTM() which wraps around the GTM script on page to stop it firing and dropping cookies if CookieConsent cookie is not present\r\n * Cookie consent cookie name is retrieved from dataLAyer on page and defaults to CookieConsent is dataLayer doesn't have the entry\r\n */\r\n\r\n(function (w) {\r\n\t'use strict';\r\n\r\n\tw.Confused = w.Confused || {};\r\n\tw.Confused.CookieManagerV2 = w.Confused.CookieManagerV2 || {};\r\n\r\n\tw.Confused.CookiePolicyWidget = (function (cookieManager) {\r\n\t\t// GET COOKIE & GTM ID NAME FROM DATALAYER\r\n\t\tconst gtmContainerID = window.dataLayer[0].GTMContainer;\r\n\t\tconst cookieName = window.dataLayer[0].ConsentCookieName;\r\n\t\tlet parent = location.hostname;\r\n\t\tconst domainRegex =\r\n\t\t\t/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])(\\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9]))*$/i;\r\n\t\tconst miListener = CONFUSEDCORE.MI.MiListener;\r\n\t\tlet cookiePopupShown = false;\r\n\r\n\t\tif (domainRegex.test(parent)) {\r\n\t\t\tconst parts = parent.split('.');\r\n\t\t\tparts.shift();\r\n\t\t\tparent = parts.join('.');\r\n\t\t}\r\n\r\n\t\t/* Show widget */\r\n\t\tfunction showPopup() {\r\n\t\t\tif (document.querySelector('.cnf-cookies_cookie-wall')) {\r\n\t\t\t\tdocument.querySelector('.cnf-cookies_cookie-wall').classList.add('cnf-cookies_open');\r\n\t\t\t\tcookiePopupShown = true;\r\n\t\t\t\t//miListener.postEvent('CookiePopupShown');\r\n\t\t\t\twindow.Confused.CookieModalFocus.init();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// VALIDATE ON BUTTON CLICK THAT THE A CHOICE HAS BEEN MADE\r\n\t\tfunction validateCookieSelection(btn, event) {\r\n\t\t\tif (btn.closest('.cnf-cookies_field-group') !== null) {\r\n\t\t\t\tconst questionBlock = btn.closest('.cnf-cookies_field-group');\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tdocument.querySelectorAll('.cnf-cookies_field-group .cnf-cookies_radio-input:checked').length === 0\r\n\t\t\t\t) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tquestionBlock.classList.add('cnf-cookies_error');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst selectedRadio = document.querySelector(\r\n\t\t\t\t\t\t'.cnf-cookies_field-group .cnf-cookies_radio-input:checked'\r\n\t\t\t\t\t).value;\r\n\t\t\t\t\t// IF WE ARE VALIDATING THE COOKIE WALL POPUP\r\n\t\t\t\t\tif (btn.classList.contains('cnf-cookies_cookie-wall__button')) {\r\n\t\t\t\t\t\tif (selectedRadio === 'yes') {\r\n\t\t\t\t\t\t\thidePopup('true', 'CookiePopupDismissed:ConsentGranted');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (selectedRadio === 'no') {\r\n\t\t\t\t\t\t\thidePopup('false', 'CookiePopupDismissed:ConsentDeclined');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// IF WE ARE VALIDATING THE COOKIE POLICY PAGE\r\n\t\t\t\t\tif (btn.classList.contains('cnf-cookies_cookie-choice__button')) {\r\n\t\t\t\t\t\t// SHOW SUCCESS MESSAGE\r\n\t\t\t\t\t\tdocument.querySelector('.cnf-cookies_save-changess-success').classList.remove('display-none');\r\n\t\t\t\t\t\t// DISABLE BUTTON AS ACTION COMPLETE\r\n\t\t\t\t\t\tbtn.classList.add('cnf-cookies_disabled');\r\n\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tif (selectedRadio === 'yes') {\r\n\t\t\t\t\t\t\t\tupdateCookieValue('true');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (selectedRadio === 'no') {\r\n\t\t\t\t\t\t\t\tupdateCookieValue('false');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tinsertGTMScript();\r\n\t\t\t\t\t\t}, 0);\r\n\r\n\t\t\t\t\t\t// HIDE SUCCESS MESSAGE AFTER 5 SECONDS\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tdocument.querySelector('.cnf-cookies_save-changess-success').classList.add('display-none');\r\n\t\t\t\t\t\t}, 5000);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// IF COOKIE WALL POPUP ACCEPT ALL BUTTON IS PRESSED\r\n\t\t\t} else {\r\n\t\t\t\tif (document.querySelector('.cnf-cookies_cookie-wall')) {\r\n\t\t\t\t\thidePopup('true', 'CookiePopupDismissed:ConsentGranted');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// REMOVES ERROR CLASS ON FIELDSET HIDING ERROR MESSAGE\r\n\t\tfunction removeErrorClass() {\r\n\t\t\tdocument.querySelector('.cnf-cookies_field-group').classList.remove('cnf-cookies_error');\r\n\t\t}\r\n\r\n\t\t// CLOSES MODAL\r\n\t\tfunction closeCookieModal() {\r\n\t\t\tdocument.querySelector('.cnf-cookies_cookie-wall').classList.remove('cnf-cookies_open');\r\n\t\t}\r\n\r\n\t\t/* Hide widget */\r\n\t\tfunction hidePopup(cookieValue, eventName) {\r\n\t\t\tcloseCookieModal();\r\n\t\t\tupdateCookieChoiceRadios();\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tcookieManager.setItem(cookieName, cookieValue, 2147483647, '/', parent);\r\n\t\t\t\tconst cookieEvent = new CustomEvent('CookieConsentSet', { detail: cookieValue });\r\n\t\t\t\tdocument.dispatchEvent(cookieEvent);\r\n\t\t\t\t// INSERT THE GOOGLE TAG MANAGER SCRIPTS TO THE PAGE\r\n\t\t\t\tinsertGTMScript();\r\n\t\t\t\tmiListener.postEvent(eventName);\r\n\t\t\t}, 0);\r\n\t\t}\r\n\r\n\t\t// SET THE VALUE OF THE EDIT COOKIE PREFERENCES RADIOS ON COOKIE POLICY PAGE\r\n\t\t// BASED ON COOKIE VALUE SELECTED IN POPUP\r\n\t\tfunction updateCookieChoiceRadios() {\r\n\t\t\tif (cookieManager.hasItem(cookieName)) {\r\n\t\t\t\tif (document.querySelector('.cnf-cookies_cookie-choice__options')) {\r\n\t\t\t\t\tif (cookieManager.getItem(cookieName) === 'true') {\r\n\t\t\t\t\t\tdocument.querySelector('#cookie-choice__input--yes').checked = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdocument.querySelector('#cookie-choice__input--no').checked = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdocument.querySelector('.cnf-cookies_cookie-choice__button').classList.add('cnf-cookies_disabled');\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// UPDATE THE VALUE OF THE COOKIE FROM THE CHOICE MADE ON COOKIE POLICY PAGE\r\n\t\tfunction updateCookieValue(cookieValue) {\r\n\t\t\tcookieManager.setItem(cookieName, cookieValue, 2147483647, '/', parent);\r\n\t\t}\r\n\r\n\t\t//\r\n\t\tfunction insertGTMScript() {\r\n\t\t\tconst s = document.createElement('script');\r\n\t\t\ts.type = 'text/javascript';\r\n\t\t\ts.async = 'true';\r\n\t\t\t// CHANGEING THE URL FROM GOOGLE TO OUR SERVERSIDE TAG\r\n\t\t\t/*s.src = 'https://www.googletagmanager.com/gtm.js?id=' + gtmContainerID;*/\r\n\t\t\ts.src = `https://sst.confused.com/push?node=${gtmContainerID}`;\r\n\t\t\tconst x = document.getElementsByTagName('script')[0];\r\n\t\t\tx.parentNode.insertBefore(s, x);\r\n\t\t}\r\n\r\n\t\tfunction run() {\r\n\t\t\t// REGISTER GTM WITH DATALAYER ON LOAD\r\n\t\t\t// IDEA FOR PROCESS WAS FROM HERE:\r\n\t\t\t// https://stackoverflow.com/questions/60173853/how-to-set-the-google-analytics-cookie-only-after-another-consent-cookie-is-set/60223798#60223798\r\n\r\n\t\t\twindow.dataLayer = window.dataLayer || [];\r\n\t\t\twindow.dataLayer.push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });\r\n\r\n\t\t\tif (cookieManager.hasItem(cookieName)) {\r\n\t\t\t\t// INSERT THE GOOGLE TAG MANAGER SCRIPTS TO THE PAGE\r\n\t\t\t\tinsertGTMScript();\r\n\r\n\t\t\t\t// IF WE ARE ON COOKIE POLICY PAGE AND COOKIE EXISTS WE NEED TO SET THE RADIOS\r\n\t\t\t\t// TO THE VALUE OF THE COOKIE\r\n\t\t\t\tupdateCookieChoiceRadios();\r\n\t\t\t} else {\r\n\t\t\t\tshowPopup();\r\n\t\t\t}\r\n\r\n\t\t\t// SETUP EVENT HANDLERS ON RADIOS & BUTTONS IN COOKIE WALL MODAL\r\n\t\t\tconst buttons = document.querySelectorAll('.cnf-cookies_save-cookie-prefs');\r\n\t\t\tconst inputs = document.querySelectorAll('.cnf-cookies_cookie-option-holder .cnf-cookies_radio-input');\r\n\r\n\t\t\tArray.prototype.forEach.call(buttons, function (button) {\r\n\t\t\t\t//buttons.forEach(function (button) {\r\n\t\t\t\tbutton.addEventListener('click', function (event) {\r\n\t\t\t\t\tconst btn = event.target;\r\n\t\t\t\t\tvalidateCookieSelection(btn, event);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tArray.prototype.forEach.call(inputs, function (input) {\r\n\t\t\t\t//inputs.forEach(function(input) {\r\n\t\t\t\tinput.addEventListener('change', function (e) {\r\n\t\t\t\t\tremoveErrorClass();\r\n\t\t\t\t\tconst radio = e.target;\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tradio.closest('.cnf-cookies_cookie-choice__input-wrapper') !== null &&\r\n\t\t\t\t\t\tcookieManager.hasItem(cookieName)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tdocument.querySelectorAll('.cnf-cookies_cookie-choice__button').forEach(function (button) {\r\n\t\t\t\t\t\t\tbutton.classList.toggle('cnf-cookies_disabled');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfunction wasCookiePopupShown() {\r\n\t\t\treturn cookiePopupShown;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\trun: run,\r\n\t\t\twasCookiePopupShown: wasCookiePopupShown,\r\n\t\t};\r\n\t})(new w.Confused.CookieManagerV2());\r\n})(window);\r\n","var CONFUSEDCORE = CONFUSEDCORE || {};\r\n\r\n//// THIS IS TO INITIALISE COOKIE POP UP & TRIGGER MI EVENTS IN STANDALONE COOKIE POP UP SCRIPT\r\n//// TO MAINLY BE USED ON STANDALONE PIECES TO BE HOSETED IN CMS\r\n\r\n// This function runs when the page is loaded\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tconst pageUrl = window.location.href;\r\n\r\n\tconst cookiePolicyWidget = window.Confused.CookiePolicyWidget;\r\n\tcookiePolicyWidget.run();\r\n\r\n\t// TRIGGER NEW SESSION CALL IN MI - WAIT FOR CALLBACK FROM SESSION CALL THEN TRIGGER COOKIE POPUP SHOWN EVENT\r\n\tconst miListener = CONFUSEDCORE.MI.MiListener;\r\n\tmiListener.postPageView('LogPageView', { page: pageUrl, referer: document.referrer }, function () {\r\n\t\tif (cookiePolicyWidget.wasCookiePopupShown()) {\r\n\t\t\tmiListener.postEvent('CookiePopupShown');\r\n\t\t}\r\n\t});\r\n});\r\n"]}