{"tags":[{"tagId":"9182ea77-1373-4959-a433-a870a2861a88","tagTypeId":"custom_js","name":"Report Recaptcha Error","description":"Reports a reCAPTCHA error by collecting app and device details, appending them as query parameters, and sending them via a GET request to the server.","config":{"code":"window.Playtech.on('recaptcha-error', ({ errorCode, errorMessage }) => {\n    const { casinoName, clientType } = window.Playtech.API.app.getAppConfiguration();\n    const { clientPlatform, deliveryPlatform, deviceId } = window.Playtech.API.device;\n\n    const url = new URL(`https://${window.Playtech.Variables.ssoPasDomain}/dummy.php`);\n\n    url.searchParams.append('casinoname', casinoName);\n    url.searchParams.append('clientType', clientType);\n    url.searchParams.append('clientPlatform', clientPlatform);\n    url.searchParams.append('deliveryPlatform', deliveryPlatform);\n    url.searchParams.append('deviceId', deviceId);\n    url.searchParams.append('errorCode', encodeURIComponent(errorCode));\n    url.searchParams.append('errorMessage', encodeURIComponent(errorMessage));\n\n    fetch(url, {\n        method: 'GET',\n        mode: \"no-cors\"\n    }).catch(console.error);\n});\n"},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"01464f87-881b-4f9e-8376-af6e3f703259","tagTypeId":"custom_js","name":"Registrtion complete","description":"Registrtion complete","config":{"code":"Playtech.on(Playtech.Events.REGISTRATION_COMPLETED, function(data) {\r\n  window.adalyserTracker(\"trackEvent\", \"lce2\", {}, true);\r\n  \r\nwindow.Playtech.API.gtm?.push('registrationComplete');\r\n  \r\n  console.log('reg-worked');\r\n  \r\n  \r\n});"},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"ed2997c5-7a4b-4a89-9643-e3bceea38e30","tagTypeId":"custom_js","name":"First Deposit Track","description":"First Deposit Track","config":{"code":"Playtech.on(Playtech.Events.SAFECHARGE_ANALYTICS, function ([event]) {\r\n        const { action } = event;\r\n\r\n        let eventName = null;\r\n\r\n        switch (action) {\r\n            case 'attempted deposit':\r\n            case 'failed  deposit':\r\n                eventName = 'deposit_fail';\r\n                break;\r\n\r\n            case 'attempted first deposit':\r\n            case 'failed  first deposit':\r\n            \r\n            \r\n                break;\r\n\r\n            case 'made first deposit':\r\n            window.Playtech.API.gtm?.push('first_time_deposit');\r\n             \r\nwindow.adalyserTracker(\"trackEvent\", \"lce3\", {value: 0.00}, true);\r\n                break;\r\n\r\n            case 'made deposit':\r\n              \r\n         window.Playtech.API.gtm?.push('order_success');\r\n                break;\r\n\r\n            default:\r\n                return;\r\n        }\r\n\r\n        const {\r\n            deposit_amount,\r\n            currency,\r\n            label\r\n        } = event;\r\n\r\n        window.gtag?.('event', eventName, {\r\n            category: 'deposit',\r\n            label: label,\r\n            deposit_amount,\r\n            currency\r\n            \r\n        });\r\n    });"},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"5cc08980-a267-4bdc-b96f-955238e678ca","tagTypeId":"custom_tag_type","name":"Promotion Common Tile Layout","description":"Promotion Common Tile Layout","config":{"beforeEndHead":"<style>\n.promo-tile-default-img-btn-container {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n}\n\n.promo-tile-wrap {\n    display: flex;\n    flex-direction: column;\n    height: 100%;\n    padding: 1rem;\n}\n\n.tablet .promo-tile-wrap {\n    padding: 1.14rem;\n}\n\n.mobile .promo-tile-wrap {\n    padding: 1.6rem 1.14rem;\n}\n\n.mobile .promo-tile-default-img-btn-container {\n    display: flex;\n    flex-direction: row;\n    text-align: left;\n}\n\n.cms-promotions-content {\n    margin: 0 var(--portlet-padding-x);\n}\n\n.promo-terms p {\n    padding: 0.1em;\n    font-size: 1.1em;\n}\n\n.tablet .cms-promotion-info-button {\n    margin: 1.14rem auto;\n}\n\n.desktop .cms-promotions-terms-text {\n    min-height: 8rem;\n}\n\n.mobile .cms-promotions-terms-text {\n    font-size: .43rem;\n}\n\n.promotions .fn-portlet-title {    \n    font-size: 2.6rem;\n    font-weight: 600;\n    margin: 2.2rem 0;\n    text-align: center;\n    text-transform: uppercase;\n}\n\n.desktop .promotions .fn-portlet-title {\n    font-size: 4.57rem;\n    margin: 3.4rem 0;\n    color: var(--base-color-gold-sun);\n    font-weight: 600;\n    text-align: center;\n    text-transform: uppercase;\n    line-height: inherit;\n}\n\n.cms-promotion-cta-button {\n    width: var(--new-button-small-width);\n    margin: 1.14rem auto;\n    text-transform: uppercase;\n}\n</style>","beforeEndBody":""},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"89f51472-de19-4021-883e-aec9cb3169d8","tagTypeId":"custom_tag_type","name":"Game Tiles Checker","description":"Game Tiles Checker","config":{"beforeEndHead":"","beforeEndBody":"<script>\r\n    (() => {\r\n        const targetNode = document.body;\r\n        const config = {\r\n            childList: true, // observe direct children\r\n            subtree: true // and all descendants\r\n        };\r\n\r\n        const callback = (mutationsList, observer) => {\r\n            for (const mutation of mutationsList) {\r\n                if (mutation.type === \"childList\") {\r\n                    for (const node of mutation.addedNodes) {\r\n                        // Check if the added node is the one you're looking for\r\n                        if (node.nodeType === 1 && node.matches && node.matches(\".cms-games-grid-game\")) {\r\n                            // Execute your script here\r\n                            initGameTilesChecker();\r\n\r\n                            // Optionally disconnect the observer if you only need it once\r\n                            observer.disconnect();\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        };\r\n\r\n        const observer = new MutationObserver(callback);\r\n        observer.observe(targetNode, config);\r\n\r\n        const initGameTilesChecker = () => {\r\n            const gameElements = document.querySelectorAll(\".cms-games-grid-game [data-game-code]\");\r\n            const gamesElem = document.querySelector(\".games-wrapper\");\r\n            let games = [];\r\n            let gamesResult = \"\";\r\n\r\n            // Get all game codes\r\n            gameElements.forEach((gameElement) => {\r\n                const { gameCode } = gameElement.dataset;\r\n                games.push(gameCode);\r\n            });\r\n\r\n            // Get all the game code data\r\n            games.forEach((gameCode) => {\r\n                if (!Playtech?.Variables?.games[gameCode]) return;\r\n                const { name, defaultGameImage } = Playtech?.Variables?.games[gameCode];\r\n                const { guestMainImage, guestMobileImage, mainImage, mobileImage } =\r\n                    Playtech?.Variables?.games[gameCode]?.gameTileAssetsLandscape?.layout1x1;\r\n\r\n                // Create the HTML for each game\r\n                gamesResult += `\r\n                  <h3>${name}</h3>\r\n                  <p>${defaultGameImage}</p>\r\n                  <div class=\"game-wrapper\">\r\n                      <div class=\"game-layout-image\">\r\n                          <h4>Default Image</h4>\r\n                          <a class=\"fn-launch-game defaultGameImage\" data-game-code=\"${gameCode}\" href=\"#\">\r\n                              <img src=\"${defaultGameImage}\" alt=\"${name}\">\r\n                          </a>\r\n                      </div>\r\n                      <div class=\"game-layout-image\">\r\n                          <h4>Main Image</h4>\r\n                          <a class=\"fn-launch-game mainImage\" data-game-code=\"${gameCode}\" href=\"#\">\r\n                              <img src=\"${mainImage}\" alt=\"${name}\">\r\n                          </a>\r\n                      </div>\r\n                      <div class=\"game-layout-image\">\r\n                          <h4>Mobile Image</h4>\r\n                          <a class=\"fn-launch-game mobileImage\" data-game-code=\"${gameCode}\" href=\"#\">\r\n                              <img src=\"${mobileImage}\" alt=\"${name}\">\r\n                          </a>\r\n                      </div>\r\n                      <div class=\"game-layout-image\">\r\n                          <h4>Guest Main Image</h4>\r\n                          <a class=\"fn-launch-game guestMainImage\" data-game-code=\"${gameCode}\" href=\"#\">\r\n                              <img src=\"${guestMainImage}\" alt=\"${name}\">\r\n                          </a>\r\n                      </div>\r\n                      <div class=\"game-layout-image\">\r\n                          <h4>Guest Mobile Image</h4>\r\n                          <a class=\"fn-launch-game guestMobileImage\" data-game-code=\"${gameCode}\" href=\"#\">\r\n                              <img src=\"${guestMobileImage}\" alt=\"${name}\">\r\n                          </a>\r\n                      </div>\r\n                  </div>\r\n                `;\r\n            });\r\n\r\n            gamesElem.innerHTML = gamesResult;\r\n        };\r\n    })();\r\n</script>\r\n"},"conditionIds":["0e63706e-b50a-4172-a04a-0ee39c9dff4b","c33ddb82-db7f-4ec3-a247-84a335bed342"]},{"tagId":"49d1c87b-71cd-45d2-963c-01ba9125ea42","tagTypeId":"custom_js","name":"Reward code","description":"Reward Code","config":{"code":"(() => {\r\n    const onOptInTag = (event) => {\r\n        if (!(event.target instanceof HTMLButtonElement)) return;\r\n        const rewardElement = event.target?.parentElement?.parentElement;\r\n        let { tagName, tagValue } = event.target.dataset;\r\n        tagName = tagName.toLowerCase();\r\n        tagValue = tagValue.toLowerCase();\r\n\r\n        const tagToSet = {\r\n            name: tagName,\r\n            value: tagValue,\r\n            type: \"text\"\r\n        };\r\n\r\n        setTagOptIn(tagToSet);\r\n        if (tagName.includes(\"claim/optin\")) {\r\n            setRewardStatus(rewardElement, \"inprogress\");\r\n            blockOtherRewards();\r\n        } else {\r\n            // setRewardStatus(rewardElement, 'optout')\r\n        }\r\n        console.log(\"%c Setting tag ✅\", \"color:green;\");\r\n    };\r\n\r\n    const setTagOptIn = (tag) => {\r\n        // Validate that the tag is valid\r\n        const validation = tag.name && tag.value && tag.type;\r\n\r\n        if (!validation) throw new Error(\"Invalid tag\");\r\n\r\n        // Set player tags\r\n        Playtech.API.user.setPlayerTags([tag]);\r\n        console.log(\"%c Tag set successfully ✅\", \"color:green;\");\r\n        return tag;\r\n    };\r\n\r\n    const activateReward = (tags) => {\r\n        if (!Array.isArray(tags)) throw new Error(\"Invalid tags\");\r\n\r\n        rewardContainer.children[0].classList.remove(\"lock\");\r\n        rewardContainer.children[1].classList.remove(\"lock\");\r\n        rewardContainer.children[2].classList.remove(\"lock\");\r\n\r\n        let unlocked = 0;\r\n\r\n        tags.forEach((tag) => {\r\n            if (tag.name.includes(\"claim/optin_completed\")) {\r\n                const formatedTag = tag.name.replace(\"claim/optin_completed\", \"optin\");\r\n                const optInBtn = document.querySelector(`button[data-tag-name=\"claim/${formatedTag}\"]`);\r\n                const rewardElement = optInBtn?.parentElement?.parentElement;\r\n\r\n                setRewardStatus(rewardElement, \"completed\");\r\n                unlocked++;\r\n                return;\r\n            } else if (tag.name.includes(\"claim/optin\")) {\r\n                const formatedTag = tag.name.replace(\"claim/optin\", \"optin\");\r\n                const optInBtn = document.querySelector(`button[data-tag-name=\"claim/${formatedTag}\"]`);\r\n                const rewardElement = optInBtn?.parentElement?.parentElement;\r\n                const optoutBtn = rewardElement?.querySelector(\".cms-fn-add-tag.opt-out\");\r\n\r\n                setRewardStatus(rewardElement, \"inprogress\");\r\n                blockOtherRewards();\r\n            }\r\n        });\r\n\r\n        if (unlocked >= 3) {\r\n            const rewardToUnlock = document.querySelector(\".reward-card.lock\");\r\n            if (rewardToUnlock) unlockRewards(rewardToUnlock);\r\n        }\r\n    };\r\n\r\n    const setRewardStatus = (rewardElement, status) => {\r\n        if (!(status === \"inprogress\" || status === \"completed\" || status === \"optout\"))\r\n            throw new Error(\"Invalid status: Should be inprogress or completed\");\r\n        if (!(rewardElement instanceof HTMLElement)) throw new Error(\"It should be an reward elemenet\");\r\n\r\n        const optInBtn = rewardElement.querySelector(\".cms-fn-add-tag\");\r\n        const optOutBtn = rewardElement.querySelector(\".cms-fn-add-tag.opt-out\");\r\n\r\n        if (status === \"inprogress\") {\r\n            rewardElement.classList.add(\"reward-inprogress\");\r\n            optInBtn.classList.add(\"hidden\");\r\n            optOutBtn.classList.remove(\"hidden\");\r\n        }\r\n        if (status === \"completed\") {\r\n            optInBtn.textContent = \"Reward completed\";\r\n            optInBtn.classList.add(\"reward-block-btn\");\r\n            rewardElement.classList.add(\"reward-completed\");\r\n        }\r\n        if (status === \"optout\") {\r\n            const optInAvailableButtons = document.querySelectorAll(\r\n                \".reward-card:not(.inprogress, .reward-completed, .lock) .reward-block-btn\"\r\n            );\r\n            rewardElement.classList.remove(\"reward-inprogress\");\r\n            optOutBtn.classList.add(\"hidden\");\r\n\r\n            optInAvailableButtons.forEach((btn) => {\r\n                btn.classList.remove(\"hidden\");\r\n                btn.classList.remove(\"reward-block-btn\");\r\n            });\r\n        }\r\n    };\r\n\r\n    const getPlayerTags = async () => {\r\n        try {\r\n            const res = await Playtech.API.user.getPlayerTags();\r\n            let { tags } = await res.data;\r\n\r\n            const isAllowedUser = tags.some((tag) => tag.name.toLowerCase().includes(\"claim/regal_rewards\"));\r\n\r\n            if (!isAllowedUser) return false;\r\n\r\n            tags = tags.filter((tag) => tag.name.includes(\"claim/optin\"));\r\n            return tags;\r\n        } catch (error) {\r\n            console.error(error);\r\n        }\r\n    };\r\n\r\n    const unlockRewards = (rewardToUnlock) => {\r\n        if (!rewardToUnlock) throw new Error(\"No reward to unlock\");\r\n        if (!(rewardToUnlock instanceof HTMLElement))\r\n            throw new Error(\"Invalid reward to unlock, It should be a reward element\");\r\n        rewardToUnlock.classList.remove(\"lock\");\r\n    };\r\n\r\n    const rewardsApp = async () => {\r\n        if (!Playtech.API.user.isLoggedIn()) throw new Error(\"User not logged in\");\r\n        const tags = await getPlayerTags();\r\n\r\n        if (!tags) return false;\r\n        activateReward(tags);\r\n    };\r\n\r\n    const blockOtherRewards = () => {\r\n        const rewards = document.querySelectorAll(\".reward-card:not(.reward-completed)\");\r\n        rewards.forEach((reward) => {\r\n            const optInBtn = reward.querySelector(\".cms-fn-add-tag\");\r\n            optInBtn.classList.add(\"reward-block-btn\");\r\n        });\r\n    };\r\n\r\n    const rewardContainer = document.querySelector(\".rewards-cards\");\r\n\r\n    const addTagButtons = document.querySelectorAll(\".cms-fn-add-tag\");\r\n    addTagButtons.forEach((btn) =>\r\n        btn.addEventListener(\"click\", (e) => {\r\n            if (!Playtech.API.auth.isLoggedIn) {\r\n                Playtech.API.popup.showPopup(\"login\", {\r\n                    onLogin: () => onOptInTag(e)\r\n                });\r\n                return;\r\n            } else {\r\n                onOptInTag(e);\r\n            }\r\n        })\r\n    );\r\n\r\n    if (Playtech.API.user.isLoggedIn()) {\r\n        rewardsApp();\r\n    }\r\n})();\r\n"},"conditionIds":["adea2aa3-de35-4469-bba3-8c7c853b8961","f070dc09-ff6b-4d06-80ac-ee1091ed600a"]},{"tagId":"2ae0dec9-11e2-4a34-9801-2acb27d0dfb2","tagTypeId":"custom_js","name":"Cookies","description":"Cookies","config":{"code":"((e) => {\r\n    function readCookie(name) {\r\n        var nameEQ = name + \"=\";\r\n        var ca = document.cookie.split(\";\");\r\n        for (var i = 0; i < ca.length; i++) {\r\n            var c = ca[i];\r\n            while (c.charAt(0) == \" \") c = c.substring(1, c.length);\r\n            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\r\n        }\r\n        return null;\r\n    }\r\n\r\n    let cookie = readCookie(\"_ga\");\r\n    if (cookie !== null) {\r\n    \r\n(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\r\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\r\nj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\r\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\r\n})(window,document,'script','dataLayer','GTM-MXD8TCJ3');\r\n\r\n  \r\ndataLayer.push(['consent', 'update', {\r\n  ad_storage: 'granted',\r\n  analytics_storage: 'granted',\r\n  ad_user_data: 'granted',\r\n  ad_personalization: 'granted',\r\n  functionality_storage: 'granted',\r\n  personalization_storage: 'granted',\r\n  security_storage: 'granted'\r\n}]);\r\n        \r\n\r\n        console.log(\"dropped\");\r\n        \r\n        \r\n    const loadScriptAfterConsent=()=>{\r\n    const script = document.createElement('script')\r\n    script.src='https://cdn.iconvert.network/code/36018b2c-602f-43e2-85ca-d4f3a9b97b9f.js'\r\n    script.id=\"iconvert\"\r\n    script.type=\"text/javascript\"\r\n    script.async=true \r\n    document.head.appendChild(script)\r\n\r\n\r\n }\r\n \r\n loadScriptAfterConsent();\r\n        \r\n        \r\n        \r\n        \r\n        \r\n        \r\n        \r\n        \r\n        \r\n\r\n        // Adalyser\r\n        (function (clientId) {\r\n            if (window[\"__adal_disable_\" + clientId]) {\r\n                return;\r\n            }\r\n            (function (windowAlias, documentAlias, trackerName) {\r\n                if (!windowAlias[trackerName]) {\r\n                    windowAlias.GlobalAdalyserNamespace = windowAlias.GlobalAdalyserNamespace || [];\r\n                    windowAlias.GlobalAdalyserNamespace.push(trackerName);\r\n                    windowAlias[trackerName] = function () {\r\n                        (windowAlias[trackerName].q = windowAlias[trackerName].q || []).push(arguments);\r\n                    };\r\n                    windowAlias[trackerName].q = windowAlias[trackerName].q || [];\r\n                    var nel = documentAlias.createElement(\"script\"),\r\n                        fel = documentAlias.getElementsByTagName(\"script\")[0];\r\n                    nel.async = 1;\r\n                    nel.src = \"//c5.adalyser.com/adalyser.js?cid=\" + clientId;\r\n                    fel.parentNode.insertBefore(nel, fel);\r\n                }\r\n            })(window, document, \"adalyserTracker\");\r\n            window.adalyserTracker(\"create\", {\r\n                campaignCookieTimeout: 15552000,\r\n                conversionCookieTimeout: 604800,\r\n                clientId: clientId,\r\n                trafficSourceInternalReferrers: [\"^(.*\\\\.)?mrgreen\\\\.co\\\\.uk$\"]\r\n            });\r\n            window.adalyserTracker(\"trackSession\", \"lce1\");\r\n        })(\"mrgreen\");\r\n    }\r\n\r\n    return;\r\n})();\r\n"},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"cc4dd702-8a6b-431b-9f3e-0f1cdf589208","tagTypeId":"custom_js","name":"gtmscript","description":"gtmscript","config":{"code":"Playtech.on(\"cookie-settings-updated\", ({ name, value }) => {\r\n    console.log(\"working\", name, value);\r\n\r\n    if (name === \"statistics\" && value === true) {\r\n    \r\n    \r\n    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\r\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\r\nj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\r\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\r\n})(window,document,'script','dataLayer','GTM-MXD8TCJ3');\r\n    \r\n    \r\n    \r\n dataLayer.push(['consent', 'update', {\r\n  ad_storage: 'granted',\r\n  analytics_storage: 'granted',\r\n  ad_user_data: 'granted',\r\n  ad_personalization: 'granted',\r\n  functionality_storage: 'granted',\r\n  personalization_storage: 'granted',\r\n  security_storage: 'granted'\r\n}]);\r\n        \r\n        \r\n        \r\n        \r\n          const loadScriptAfterConsent=()=>{\r\n    const script = document.createElement('script')\r\n    script.src='https://cdn.iconvert.network/code/36018b2c-602f-43e2-85ca-d4f3a9b97b9f.js'\r\n    script.id=\"iconvert\"\r\n    script.type=\"text/javascript\"\r\n    script.async=true \r\n    document.head.appendChild(script)\r\n\r\n\r\n }\r\n \r\n loadScriptAfterConsent();\r\n        \r\n        \r\n        \r\n        \r\n        \r\n        \r\n\r\n      // Adalyser\r\n      (function (clientId) {\r\n        if (window[\"__adal_disable_\" + clientId]) {\r\n          return\r\n        }\r\n        (function (windowAlias, documentAlias, trackerName) {\r\n          if (!windowAlias[trackerName]) {\r\n            windowAlias.GlobalAdalyserNamespace = windowAlias.GlobalAdalyserNamespace || []\r\n            windowAlias.GlobalAdalyserNamespace.push(trackerName)\r\n            windowAlias[trackerName] = function () {\r\n              (windowAlias[trackerName].q = windowAlias[trackerName].q || []).push(arguments)\r\n            }\r\n            windowAlias[trackerName].q = windowAlias[trackerName].q || []\r\n            var nel = documentAlias.createElement(\"script\"),\r\n              fel = documentAlias.getElementsByTagName(\"script\")[0]\r\n            nel.async = 1\r\n            nel.src = \"//c5.adalyser.com/adalyser.js?cid=\" + clientId\r\n            fel.parentNode.insertBefore(nel, fel)\r\n          }\r\n        })(window, document, \"adalyserTracker\")\r\n        window.adalyserTracker(\"create\", {\r\n          campaignCookieTimeout: 15552000,\r\n          conversionCookieTimeout: 604800,\r\n          clientId: clientId,\r\n          trafficSourceInternalReferrers: [\"^(.*\\\\.)?mrgreen\\\\.co\\\\.uk$\"]\r\n        })\r\n        window.adalyserTracker(\"trackSession\", \"lce1\")\r\n      })(\"mrgreen\");\r\n\r\n    } else {\r\n        return;\r\n    }\r\n});\r\n"},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"0347bbb9-87bc-43ed-ac6f-939b4cd10da8","tagTypeId":"custom_tag_type","name":"On Christmas","description":"On Christmas pages","config":{"beforeEndHead":"<style>\r\n    body::before {\r\n        content: \"\";\r\n        position: fixed;\r\n        inset: 0;\r\n        z-index: 0;\r\n        background: center / cover url(/library/2025/promotions/advent_calendar/mobile-bg.webp) no-repeat;\r\n        filter: blur(0px) brightness(0.5);\r\n    }\r\n\r\n    @media screen and (min-width: 768px) {\r\n        body::before {\r\n            background: center / cover url(\"/library/2025/promotions/advent_calendar/desktop-bg.webp\") no-repeat;\r\n        }\r\n    }\r\n\r\n    /* Footer adjustment */\r\n    .footer-wrapper {\r\n        position: relative;\r\n    }\r\n\r\n    [class*=GamesHeader__categoryTitle] [class*=GamesHeader__categoryName] {\r\n        color: var(--base-color-gold-sun);\r\n    }\r\n</style>\r\n","beforeEndBody":""},"conditionIds":["fb3452e2-ae08-41a6-b887-53dabe4b470a","c33ddb82-db7f-4ec3-a247-84a335bed342"]},{"tagId":"0b1d3cc8-6fcc-4dbb-89fa-b28ca80c0e6e","tagTypeId":"custom_tag_type","name":"Banner (Home) styles","description":"Banner (Home) styles","config":{"beforeEndHead":"<style>\r\n    :root {\r\n        --banner-bottom-panel: 4.8rem !important;\r\n    }\r\n</style>\r\n","beforeEndBody":""},"conditionIds":["23f088bb-0b19-43e7-be75-8a4c97671b85","c33ddb82-db7f-4ec3-a247-84a335bed342"]},{"tagId":"47c2b241-844c-443d-9082-b01832c586a0","tagTypeId":"custom_tag_type","name":"Fix Cashier iFrame Height","description":"Fix Cashier iFrame Height","config":{"beforeEndHead":"<style>\r\n  .cms-cashier-external-iframe-container {\r\n    height: 550px !important;\r\n    overflow-y: hidden;\r\n  }\r\n</style>","beforeEndBody":""},"conditionIds":["c33ddb82-db7f-4ec3-a247-84a335bed342","49ba1105-a199-465d-a416-e08198dd6674"]},{"tagId":"29867fda-01dd-40e9-8ec7-e9f9af713f10","tagTypeId":"custom_tag_type","name":"Halloween Background","description":"Halloween Background","config":{"beforeEndHead":"<style>\n  body {\n    background: url(/library/assets/background/mrgreen-halloween.webp) fixed;\n  }\n</style>","beforeEndBody":""},"conditionIds":["d3240e82-3cf9-4e47-96fe-5f9118c669ef","c33ddb82-db7f-4ec3-a247-84a335bed342"]},{"tagId":"2bd741b5-9544-4e1a-98c9-6107cc8edc17","tagTypeId":"custom_js","name":".fn-play-bingo on content","description":".fn-play-bingo on content","config":{"code":"document.body.addEventListener('click', function handler(event) {\n  const target = event.target;\n  const li = target.closest('.fn-play-bingo');\n  \n  if (!li) {\n    return;\n  }\n\n  event.preventDefault();\n  event.stopPropagation();\n  event.stopImmediatePropagation();\n\n  if (!Playtech.API.auth.isLoggedIn) {\n      Playtech.API.popup.showPopup('login', {\n          onLogin: () => handler(event)\n      });\n      return;\n  }\n\n  const url = li.getAttribute('href');\n  const { username, currency } = Playtech.fetchUserDetails();\n\n  if (Playtech.API.device.isDesktop) {\n    const win = window.open('about:blank', '_blank', 'popup,width=1024,height=768');\n\n    win.location.href = `https://login.mrgreen.co.uk/GameLauncher?gameCodeName=vf10001&casino=mrgreen.uk&clientPlatform=web&language=EN-GB&playMode=1&username=${username}&launcherType=lobby`;\n  } else {\n    location.href = `https://login.mrgreen.co.uk/GameLauncher?gameCodeName=vf10001&casino=mrgreen.uk&clientPlatform=web&language=EN-GB&playMode=1&username=${username}&launcherType=lobby`;\n  }\n});\n"},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"c4228213-a8ac-4187-9c4b-645c509925f8","tagTypeId":"custom_tag_type","name":"Registration Image Marketing page","description":"Registration Image Marketing page","config":{"beforeEndHead":"","beforeEndBody":"<style>\r\n    #layout-column_column-2 {\r\n        display: grid;\r\n        margin-block-start: 12rem;\r\n    }\r\n\r\n    .registration-top-block {\r\n      top: var(--page-header-height);\r\n    }\r\n    .registration-steps {\r\n        max-width: 1200px;\r\n        margin-inline: auto;\r\n    }\r\n\r\n    .reg-img-container {\r\n        text-align: center;\r\n    }\r\n\r\n    .reg-img {\r\n        max-width: 100%;\r\n        margin-block-end: 2rem;\r\n    }\r\n\r\n    @media screen and (min-width: 768px) {\r\n        #layout-column_column-2 {\r\n            margin-block-start: 14rem;\r\n            grid-template-columns: 1fr 1fr;\r\n            grid-template-rows: 450px;\r\n            column-gap: 2rem;\r\n        }\r\n\r\n        .wc-reg-img {\r\n            grid-column: 2/3;\r\n        }\r\n\r\n        .wc-reg-form {\r\n            grid-row: 1/2;\r\n        }\r\n\r\n        .reg-terms {\r\n            grid-column: 2/ 3;\r\n        }\r\n    }\r\n</style>"},"conditionIds":["93d8d81b-a2e7-4538-bada-b34d23fd6dbb","c33ddb82-db7f-4ec3-a247-84a335bed342"]},{"tagId":"6b6b6087-a39b-4508-a9fc-94b695bb63e2","tagTypeId":"custom_tag_type","name":"Promo Check Internal","description":"Promo Check Internal","config":{"beforeEndHead":"","beforeEndBody":"<style>\r\n  .admin .application-root .portlet-wrapper {\r\n    position: unset;\r\n  }\r\n</style>\r\n<script>\r\n  (() => {\r\n    const isAdmin = Playtech.Variables.isAdminNode;\r\n\r\n    if (isAdmin) {\r\n      document.querySelector('html').classList.add('admin');\r\n    }\r\n  })()\r\n</script>"},"conditionIds":["6f1a26e6-81a8-4888-b19b-a3be48f468c2","f070dc09-ff6b-4d06-80ac-ee1091ed600a"]},{"tagId":"8ef43e44-a060-4949-bbb7-f3ca047a2c66","tagTypeId":"custom_tag_type","name":"organisation schema","description":"organisation schema","config":{"beforeEndHead":"<script type=\"application/ld+json\">\r\n{\r\n\"@context\": \"https://schema.org\",\r\n\"@type\": \"Organization\",\r\n\"name\": \"Mr Green\",\r\n\"url\": \"https://www.mrgreen.co.uk\",\r\n\"logo\": \"https://www.mrgreen.co.uk/library/.customization/logo.png\",\r\n\"sameAs\": [\r\n\"https://www.facebook.com/mrgreencasino\"\r\n],\r\n\"contactPoint\": {\r\n\"@type\": \"ContactPoint\",\r\n\"telephone\": \"+44 1765 522017\",\r\n\"contactType\": \"Customer Service\",\r\n\"areaServed\": \"GB\",\r\n\"availableLanguage\": \"English\"\r\n},\r\n\"parentOrganization\": {\r\n\"@type\": \"Organization\",\r\n\"name\": \"Evoke plc\"\r\n}\r\n}\r\n</script>","beforeEndBody":""},"conditionIds":["c33ddb82-db7f-4ec3-a247-84a335bed342"]},{"tagId":"6471598d-b829-40b2-9ae8-e5dc7da5e845","tagTypeId":"custom_tag_type","name":"active cateogory","description":"Home page highlight first icon","config":{"beforeEndHead":"<style>\n  \n ul.game-categories > li.game-category:first-child {\n    \n    color: var(--dark-green-const-color) !important;\n    background-color: var(--gold-const-color);\n    pointer-events: none;\n    \n    \n  }\n  \n</style>","beforeEndBody":""},"conditionIds":["8cae0b54-5622-4404-825b-cebcbf287eac"]},{"tagId":"4ac061dd-250d-4dbf-9e0c-a3593a90ccfd","tagTypeId":"custom_js","name":"seon","description":"Seon","config":{"code":"(() => {\r\nPlaytech.API.common.getScript('https://cdn.seondf.com/js/v6/agent.umd.js', { attrs: { async: true } }).then(async () => {\r\nseon.init();\r\n\r\nconst blackbox = await seon.getSession();\r\n\r\nif (blackbox) {\r\nwindow.io_global_object_name = 'SEON_BLACKBOX';\r\nwindow[window.io_global_object_name] = {\r\ngetBlackbox: () => ({\r\nfinished: true,\r\nblackbox\r\n})\r\n};\r\n} else {\r\nconsole.log('Seon: failed to retrieve session data.');\r\n}\r\n});\r\n})();"},"conditionIds":["9f725f33-4711-45c5-9cf3-1dd993673252","f070dc09-ff6b-4d06-80ac-ee1091ed600a"]},{"tagId":"4ca340a2-ee3e-46ae-aa38-a135bccac222","tagTypeId":"custom_js","name":"ZenDesk","description":"ZenDesk integration ","config":{"code":"(() => {\r\n    const loadingZenDeskScript = (onload, onerror) => {\r\n        if(document.getElementById('ze-snippet')) {\r\n            onload()\r\n            return;\r\n        }\r\n        \r\n        var script = document.createElement('script');\r\n        script.id = 'ze-snippet';\r\n        script.src = 'https://static.zdassets.com/ekr/snippet.js?key=4eb2d90d-280c-4d5e-9bd3-3829f0106924';\r\n        script.type = 'text/javascript';\r\n        script.onload = onload;\r\n        script.onerror = onerror;\r\n        script.async = true;\r\n        script.rel = \"noreferrer noopener\";\r\n        document.body.appendChild(script);\r\n    };\r\n\r\n    const handler = async () => {\r\n        try {\r\n            const response = await Playtech.API.server.getJWTToken();\r\n            const jwtToken = response?.data?.jwtToken;\r\n\r\n            if (!jwtToken) {\r\n                zE('webWidget', 'hide');\r\n\r\n                return;\r\n            }\r\n\r\n            window.zESettings = {\r\n                webWidget: {\r\n                    authenticate: {\r\n                        chat: {\r\n                            jwtFn: (callback) => callback(jwtToken)\r\n                        }\r\n                    },\r\n                    color: {\r\n                        theme: '#015536'\r\n                    },\r\n                }\r\n            };\r\n\r\n            zE('webWidget', 'updateSettings', window.zESettings);\r\n            zE('webWidget', 'chat:reauthenticate');\r\n            zE('webWidget', 'show');\r\n        } catch (error) {\r\n            console.log(error);\r\n        }\r\n    };\r\n\r\n    Playtech.on(Playtech.Events.LOGGED_OUT, () => zE.hide());\r\n    Playtech.on(Playtech.Events.LOGGED_IN, () => loadingZenDeskScript(handler, console.error));\r\n    \r\n    if(Playtech.API.user.isLoggedIn()) {\r\n      loadingZenDeskScript(handler, console.error);\r\n    }\r\n})();\r\n"},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"2234ca5f-1ec3-4aa7-b8e1-257e4805d904","tagTypeId":"custom_tag_type","name":"CMS Promotions Custom Styles","description":"CMS Promotions Custom Styles","config":{"beforeEndHead":"<style>\r\n    /* Promotions Thumbs Adjustments - Nelson*/\r\n    /* Title */\r\n    .desktop .custom-promotions div[class*=Promotion__title] {\r\n        font-size: 1.8rem;\r\n        flex: 1;\r\n        min-height: 8rem;\r\n        display: flex;\r\n        justify-content: center;\r\n        align-items: center;\r\n    }\r\n\r\n    /* Description */\r\n    .desktop .custom-promotions div[class*=Promotion__description] {\r\n        flex: 1;\r\n        font-size: 1.4rem;\r\n        text-wrap: balance;\r\n    }\r\n\r\n    /* Terms */\r\n    .desktop .custom-promotions div[class*=Promotion__terms] {\r\n        min-height: 8rem;\r\n        flex: 1;\r\n        line-height: unset;\r\n    }\r\n</style>","beforeEndBody":""},"conditionIds":["d37f00af-cf92-4245-90bb-1fcfdae68f4b","c33ddb82-db7f-4ec3-a247-84a335bed342"]},{"tagId":"e99dae18-7746-40f7-8918-bf7a1a126a00","tagTypeId":"custom_tag_type","name":"Hide promotions tab ","description":"Hide promotions tab ","config":{"beforeEndHead":"<style>\nli[data-url=\"/promotions\"]{\ndisplay:none;\n}\n</style>\n","beforeEndBody":""},"conditionIds":["c33ddb82-db7f-4ec3-a247-84a335bed342","93d4fbf5-2906-4940-9fb8-a18667b8e199"]},{"tagId":"e5477f1d-286e-4915-8359-e43990778ca4","tagTypeId":"custom_tag_type","name":"CMS Custom Reg Styles","description":"CMS Custom Reg Styles","config":{"beforeEndHead":"<style>\r\n     .cms-custom-reg {\r\n        margin-top: 12rem !important;\r\n    }\r\n\r\n    @media screen and (min-width: 768px) {\r\n        .cms-custom-reg {\r\n            max-width: 50%;\r\n            margin-top: 14rem !important;\r\n            margin-inline: auto;\r\n        }\r\n\r\n        #registration-steps {\r\n            max-width: 1200px;\r\n            margin-inline: auto;\r\n            padding: unset;\r\n        }\r\n    }\r\n</style>","beforeEndBody":""},"conditionIds":["970603d2-09f2-47c4-8f58-4d1bd82ace4d","c33ddb82-db7f-4ec3-a247-84a335bed342"]},{"tagId":"49ef16a1-dda2-4c63-ad31-28eee8091dea","tagTypeId":"player_tags_triggers","name":"Ada Triggers","description":"Ada Triggers","config":{"playerTagsTriggers":[{"playerTagsConfig":{"playerTags":"Ada/RGNeeded","isAllPlayerTagExist":false,"playerTagValues":"","isAllValueExistInPlayerTags":false},"adaCampaignKeys":"RG_needed","htmlContent":""},{"playerTagsConfig":{"playerTags":"Ada/SOFNeeded","isAllPlayerTagExist":false,"playerTagValues":"","isAllValueExistInPlayerTags":false},"adaCampaignKeys":"SOF_needed","htmlContent":""},{"playerTagsConfig":{"playerTags":"Monitoring/WeeklyDLPercentage, Monitoring/MonthlyDLPercentage, Monitoring/WeeklyFLLPercentage, Monitoring/MonthlyFLLPercentage","isAllPlayerTagExist":false,"playerTagValues":"98","isAllValueExistInPlayerTags":false},"adaCampaignKeys":"FLL__DL_Reminder","htmlContent":""},{"playerTagsConfig":{"playerTags":"Monitoring/WeeklyDLPercentage, Monitoring/MonthlyDLPercentage, Monitoring/WeeklyFLLPercentage, Monitoring/MonthlyFLLPercentage","isAllPlayerTagExist":false,"playerTagValues":"95","isAllValueExistInPlayerTags":false},"adaCampaignKeys":"FLL__DL_Reminder","htmlContent":""}]},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"f77345d5-f67a-4723-bb1c-e9b02b7946df","tagTypeId":"custom_tag_type","name":"hide ZenDesk default icon","description":"hide ZenDesk default icon","config":{"beforeEndHead":"<style>\n    iframe#launcher {\n        display: none;\n    }\n</style>","beforeEndBody":""},"conditionIds":["d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]},{"tagId":"a1194fee-ec44-4eab-869d-1e3a3b2b971d","tagTypeId":"custom_tag_type","name":"Hide cookie-settings for native","description":"Hide cookie-settings for native","config":{"beforeEndHead":"<style>\n  html.ios form[class*='CookieSettings__container'] {\n    display: none;\n    \n  }\n</style>","beforeEndBody":""},"conditionIds":["1ae82f5a-7cdd-45d9-a03f-b902d50c8a52","d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955"]}],"conditions":[{"conditionId":"ff2bcee7-bf2c-4cc7-a4b7-118153e18147","conditionTypeId":"page_condition","name":"marketing-preferences","description":"marketing-preferences","config":{"onPageLaunch":"/marketing-preferences"}},{"conditionId":"fb3452e2-ae08-41a6-b887-53dabe4b470a","conditionTypeId":"page_condition","name":"On Christmas","description":"On Christmas page","config":{"onPageLaunch":"/christmas"}},{"conditionId":"23f088bb-0b19-43e7-be75-8a4c97671b85","conditionTypeId":"page_condition","name":"On Home Vertical page","description":"On Home Vertical page","config":{"onPageLaunch":"/home, /home/new, /home/top-rated, /home/live-casino, /home/big-bass, /home/cash-collect, /home/jackpots, /home/slingo, /home/more-slots, /home/trending, /home/cash-drop, /home/summer, /promo-check-internal, /halloween, /bingo"}},{"conditionId":"429afeda-e9ad-4217-920b-0edd40c12b2a","conditionTypeId":"page_condition","name":"Pages has Self exclusion form","description":"MWSSG-6606","config":{"onPageLaunch":"/set-sg-limits, /account-self-exclusion, /responsible-gaming"}},{"conditionId":"d3240e82-3cf9-4e47-96fe-5f9118c669ef","conditionTypeId":"page_condition","name":"On Hallowen","description":"On Hallowen","config":{"onPageLaunch":"/halloween"}},{"conditionId":"78b4d5ef-b7a5-465e-b764-5782460148ac","conditionTypeId":"page_condition","name":"Home Page","description":"Home Page","config":{"onPageLaunch":"/home"}},{"conditionId":"93d8d81b-a2e7-4538-bada-b34d23fd6dbb","conditionTypeId":"page_condition","name":"On Registration Image Marketing page","description":"Registration Image Marketing page","config":{"onPageLaunch":"/register-image-marketing, /register/200-free-spins-digital"}},{"conditionId":"6f1a26e6-81a8-4888-b19b-a3be48f468c2","conditionTypeId":"page_condition","name":"On Promo Check Internal","description":"On Promo Check Internal","config":{"onPageLaunch":"/promo-check-internal"}},{"conditionId":"970603d2-09f2-47c4-8f58-4d1bd82ace4d","conditionTypeId":"page_condition","name":"Registration page","description":"Registration page","config":{"onPageLaunch":"/register, /register/page"}},{"conditionId":"9f725f33-4711-45c5-9cf3-1dd993673252","conditionTypeId":"page_condition","name":"All Registration Pages","description":"All Registration Pages","config":{"onPageLaunch":"/register, /register/200-free-spins-digital"}},{"conditionId":"e3674e04-8ed5-4982-a9a7-5888d0758cfd","conditionTypeId":"page_condition","name":"All verticals except Home","description":"All verticals except Home","config":{"onPageLaunch":"/slots, /slots/new, /slots/our-picks, /slots/megaways, /slots/classic, /slots/fishing, /slots/all-slots, /jackpots, /live-casino, /casino, /slingo, /live-casino/top-rated, /live-casino/game-shows, /live-casino/roulette, /live-casino/blackjack, /live-casino/baccarat-and-more, /jackpots/age-of-the-gods, /jackpots/fire-blaze, /jackpots/jackpot-king, /casino/featured, /casino/roulette-games, /casino/blackjack-games, /casino/more-games, /slingo, /slingo/instant-games"}},{"conditionId":"d37f00af-cf92-4245-90bb-1fcfdae68f4b","conditionTypeId":"page_condition","name":"Promotions Page","description":"Promotions Page","config":{"onPageLaunch":"/promotions, /blog"}},{"conditionId":"8cae0b54-5622-4404-825b-cebcbf287eac","conditionTypeId":"page_condition","name":"Home Page Highlight item","description":"On Home Vertical page","config":{"onPageLaunch":"/home"}},{"conditionId":"a3aa3cac-1c46-4a1a-8366-8a39a5a153d1","conditionTypeId":"page_condition","name":"Marketing preferences page","description":"marketing-preferences page","config":{"onPageLaunch":"/marketing-preferences"}},{"conditionId":"0e63706e-b50a-4172-a04a-0ee39c9dff4b","conditionTypeId":"page_condition","name":"Game Tiles Checker","description":"Game Tiles Checker","config":{"onPageLaunch":"/game-tiles-checker"}},{"conditionId":"aa404532-4beb-4f56-8c5c-161c9f41ee80","conditionTypeId":"page_condition","name":"On SEO Pages","description":"On SEO Pages","config":{"onPageLaunch":"/home, /slots, /jackpots, /live-casino, /casino, /slingo, /promotions, /faqs, /customer-complaints-process, /faqs, /sitemap, /blackjack-games, /baccarat-games, /megaways-games, /trending, /new-games, /safer-gambling-tips, /instant-win, /table-games, /roulette-games, /virtual"}},{"conditionId":"93d4fbf5-2906-4940-9fb8-a18667b8e199","conditionTypeId":"page_condition","name":"Hide promotion tab","description":"Hide promotion tab","config":{"onPageLaunch":"/staying-in-control-logged-out,/staying-in-control,/verifying-my-account-logged-out,/verifying-my-account,/staying-in-control2,/verifying-my-account2,/deposit-limits,/good-betiquette,/loss-limits,/account-cool-off,/reality-check,/account-self-exclusion"}},{"conditionId":"adea2aa3-de35-4469-bba3-8c7c853b8961","conditionTypeId":"page_condition","name":"Reward page","description":"Reward Page","config":{"onPageLaunch":"/rewards"}},{"conditionId":"c33ddb82-db7f-4ec3-a247-84a335bed342","conditionTypeId":"basic_condition","name":"Before Page Rendered","description":"Before Page Rendered","config":{"launch":"beforePageRendered"}},{"conditionId":"49ba1105-a199-465d-a416-e08198dd6674","conditionTypeId":"page_condition","name":"fix iframes height","description":"iframes condition to fix the height","config":{"onPageLaunch":"/payment/deposit, /deposit, /withdraw"}},{"conditionId":"f070dc09-ff6b-4d06-80ac-ee1091ed600a","conditionTypeId":"basic_condition","name":"AfterPageRendered","description":"After Page Rendered","config":{"launch":"afterPageRendered"}},{"conditionId":"1ae82f5a-7cdd-45d9-a03f-b902d50c8a52","conditionTypeId":"native_app_condition","name":"Only For Native","description":"Only For Native","config":{"nativeAppRule":"1"}},{"conditionId":"d5f7f6c0-5c8f-432b-aedb-4a85e2f2a955","conditionTypeId":"basic_condition","name":"On App Init","description":"On App Init","config":{"launch":"onAppInit"}}]}