(function () { function setCookie(name, value) { var cookie = name + "=" + encodeURIComponent(value) + "; path=/;"; if (window.navigator.userAgent.match("Chrom(e|ium)")) { cookie = cookie + " SameSite=None; Secure"; } document.cookie = cookie; } function getCookie(name) { var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(name + "=") == 0) return decodeURIComponent(c.substring((name + "=").length, c.length)); } return null; } function removeCookie(name) { document.cookie = name+'=; Max-Age=-99999999;'; } function unsupportedBrowser() { try { return navigator.userAgent.match(/MSIE [6789]\./) } catch (e) { return true; } } function windowHeight() { return window.innerHeight ? window.innerHeight : document.documentElement.clientHeight; } function windowWidth() { return window.innerWidth ? window.innerWidth : document.documentElement.clientWidth; } function smallScreen() { return (windowWidth() < 540) || !!navigator.userAgent.match(/Android|iPod|iPhone/); } function tinyScreen() { return (windowWidth() < 400) || !!navigator.userAgent.match(/Android|iPod|iPhone/); } function includeCSS() { var css = document.getElementById('c9-styles'); if (!css) { css = document.createElement('style'); css.id = 'c9-styles'; css.type = 'text/css'; var styles = "#c9-button, #c9-button *, #c9-popup, #c9-popup * {\n -webkit-box-sizing: border-box; box-sizing: content-box;\n}\n\n#c9-button {\n right: 10px;\n position: fixed;\n cursor: pointer;\n z-index: 10000;\n text-decoration: none;\n user-select: none;\n transition: top 0.3s, bottom 0.3s, left 0.3s, right 0.3s, background 0.3s, width 0.3s, opacity 0.3s; -moz-transition: top 0.3s, bottom 0.3s, left 0.3s, right 0.3s, background 0.3s, width 0.3s, opacity 0.3s; -webkit-transition: top 0.3s, bottom 0.3s, left 0.3s, right 0.3s, background 0.3s, width 0.3s, opacity 0.3s; -o-transition: top 0.3s, bottom 0.3s, left 0.3s, right 0.3s, background 0.3s, width 0.3s, opacity 0.3s; -ms-transition: top 0.3s, bottom 0.3s, left 0.3s, right 0.3s, background 0.3s, width 0.3s, opacity 0.3s;\n font-family: helvetica, sans-serif;\n}\n\n#c9-remover {\n top: 0;\n right: 0;\n padding: 2px 2px 2px 2px;\n position: absolute;\n line-height: 0.7;\n font-size: 16px;\n height: auto;\n text-shadow: 0 -1px 1px rgba(0,0,0,0.5);\n opacity: 0.6;\n z-index: 10001;\n text-decoration: none;\n}\n\n#c9-popup {\n position: fixed;\n left: 50%;\n width: 540px;\n padding: 5px;\n margin-left: -270px;\n background: #999;\n background: rgba(255,255,255,0.5);\n opacity: 0.1;\n z-index: 150000;\n transition: all 0.3s; -moz-transition: all 0.3s; -webkit-transition: all 0.3s; -o-transition: all 0.3s; -ms-transition: all 0.3s;\n}\n#c9-popup iframe {\n border: none;\n height: 101%;\n width: 540px;\n background: white;\n margin: 0 !important;\n}\n#c9-popup.c9-shown {\n opacity: 1;\n}\n\n#c9-blocker {\n opacity: 0;\n background: black;\n transition: opacity 0.3s; -moz-transition: opacity 0.3s; -webkit-transition: opacity 0.3s; -o-transition: opacity 0.3s; -ms-transition: opacity 0.3s;\n background: -webkit-radial-gradient(50% 50%, ellipse closest-corner, rgba(0,0,0,0.45) 1%, rgba(0,0,0,0.8) 100%);\n background: -moz-radial-gradient(50% 50%, ellipse closest-corner, rgba(0,0,0,0.45) 1%, rgba(0,0,0,0.8) 100%);\n background: -ms-radial-gradient(50% 50%, ellipse closest-corner, rgba(0,0,0,0.45) 1%, rgba(0,0,0,0.8) 100%);\n background: radial-gradient(50% 50%, ellipse closest-corner, rgba(0,0,0,0.45) 1%, rgba(0,0,0,0.8) 100%);\n height: 100%;\n left: 0;\n position: fixed;\n cursor: pointer;\n top: 0;\n width: 100%;\n z-index: 149999;\n display: none;\n}\n\n#c9-close-blocker {\n position: fixed;\n top: 0;\n right: 0;\n height: 28px;\n width: 24px;\n font-size: 26px;\n line-height: 28px;\n color: #999;\n text-decoration: none;\n cursor: pointer;\n}\n\n#c9-close-blocker:hover {\n color: #ddd;\n}\n\n#c9-popup #c9-close-blocker {\n top: 5px;\n right: -7px;\n display: none;\n}\n#c9-popup.c9-shown #c9-close-blocker {\n display: block;\n}\n#c9-blocker.c9-shown {\n opacity: 0.8;\n display: block;\n}\n#c9-button.c9-bottom-left {\n left: 10px;\n right: auto;\n}\n#c9-button.c9-top-right {\n bottom: auto;\n}\n#c9-button.c9-top-left {\n left: 10px;\n right: auto;\n bottom: auto;\n}\n\n#c9-button.c9-center-right {\n top: 50%;\n bottom: auto;\n right: 0;\n}\n#c9-button.c9-center-left {\n top: 50%;\n bottom: auto;\n right: auto;\n left: 0;\n}\n/* Shared text button styles */\n\n#c9-button.c9-center-right.c9-default, #c9-button.c9-center-right.c9-plain {\n transform: rotate(-90deg); -moz-transform: rotate(-90deg); -webkit-transform: rotate(-90deg); -ms-transform: rotate(-90deg);\n transform-origin: right bottom; -webkit-transform-origin: right bottom; -ms-transform-origin: right bottom;\n}\n#c9-button.c9-center-left.c9-default, #c9-button.c9-center-left.c9-plain {\n transform: rotate(90deg); -moz-transform: rotate(90deg); -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg);\n transform-origin: left bottom; -webkit-transform-origin: left bottom; -ms-transform-origin: left bottom;\n}\n\n/* Remover base styles */\n#c9-remover:hover {\n opacity: 0.8;\n}\n\n#c9-button.c9-no-tab {\n display: none !important;\n}\n\n/* default styles */\n#c9-button.c9-default {\n border-top: 6px solid transparent;\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n background: #aaa;\n background: none repeat scroll 0 0 rgba(0, 0, 0, 0.3);\n border-radius: 15px 15px 0 0;\n}\n#c9-button.c9-default.c9-top-left, #c9-button.c9-default.c9-top-right {\n top: -32px;\n bottom: auto;\n}\n#c9-button.c9-default.c9-top-left.c9-shown, #c9-button.c9-default.c9-top-right.c9-shown {\n top: 0;\n}\n#c9-button.c9-default.c9-bottom-left, #c9-button.c9-default.c9-bottom-right {\n bottom: -32px;\n}\n#c9-button.c9-default.c9-bottom-left.c9-shown, #c9-button.c9-default.c9-bottom-right.c9-shown {\n bottom: 0;\n}\n#c9-button.c9-default.c9-center-left {\n left: -32px;\n}\n#c9-button.c9-default.c9-center-left.c9-shown {\n left: 0;\n}\n#c9-button.c9-default.c9-center-right {\n right: -32px;\n}\n#c9-button.c9-default.c9-center-right.c9-shown {\n right: 0;\n}\n\n#c9-button.c9-default #c9-button-content {\n border-radius: 10px 10px 0 0;\n background: #F6F6F6;\n color: #666;\n display: block;\n padding: 6px 12px;\n height: 20px;\n line-height: 22px;\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n}\n\n#c9-button.c9-default:hover {\n background: none repeat scroll 0 0 rgba(0, 0, 0, 0.2);\n}\n#c9-button.c9-top-left.c9-default, #c9-button.c9-top-right.c9-default {\n border-top-width: 0;\n border-bottom: 6px solid transparent;\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-radius: 0 0 15px 15px;\n}\n#c9-button.c9-top-left.c9-default #c9-button-content, #c9-button.c9-top-right.c9-default #c9-button-content {\n border-radius: 0 0 10px 10px;\n}\n\n#c9-button.c9-default #c9-remover {\n width: 0;\n transition: opacity 0.3s, width 0.3s;\n opacity: 0;\n top: 6px;\n position: absolute;\n right: 5px;\n background: #aaa;\n height: 20px;\n text-align: center;\n color: white;\n border-radius: 7px;\n line-height: 20px;\n text-shadow: 0 1px 1px rgba(0,0,0,0.2);\n overflow: hidden;\n padding: 0;\n text-decoration: none;\n}\n#c9-button.c9-default #c9-remover:hover {\n color: white;\n}\n#c9-button.c9-default.c9-removable #c9-button-content {\n padding-left: 18px;\n padding-right: 18px;\n transition: padding 0.3s; -moz-transition: padding 0.3s; -webkit-transition: padding 0.3s; -o-transition: padding 0.3s; -ms-transition: padding 0.3s;\n}\n\n#c9-button.c9-default.c9-removable:hover #c9-button-content {\n padding-left: 6px;\n padding-right: 30px;\n}\n#c9-button.c9-default.c9-removable.c9-hover-lock #c9-button-content {\n padding-left: 6px;\n padding-right: 30px;\n}\n#c9-button.c9-default.c9-removable:hover #c9-remover {\n opacity: 0.5;\n width: 20px;\n}\n#c9-button.c9-default.c9-removable.c9-hover-lock #c9-remover {\n opacity: 0.5;\n width: 20px;\n}\n#c9-button.c9-default.c9-removable #c9-remover:hover {\n opacity: 0.8;\n color: white\n}\n\n/* Plain styles */\n#c9-button.c9-plain {\n background: #cf4647;\n font-weight: bold;\n font-size: 20px;\n text-align: center;\n text-decoration: none;\n color: white;\n display: block;\n height: 50px;\n line-height: 50px;\n bottom: -50px;\n}\n\n#c9-button.c9-plain #c9-button-content {\n height: 50px;\n line-height: 50px;\n display: block;\n padding: 0 10px;\n}\n\n#c9-button.c9-plain.c9-top-left, #c9-button.c9-plain.c9-top-right {\n top: -50px;\n bottom: auto;\n}\n\n#c9-button.c9-plain.c9-top-left.c9-shown, #c9-button.c9-plain.c9-top-right.c9-shown {\n top: 0;\n}\n\n#c9-button.c9-plain.c9-bottom-left.c9-shown, #c9-button.c9-plain.c9-bottom-right.c9-shown{\n bottom: 0;\n}\n\n#c9-button.c9-plain.c9-center-left {\n left: -50px;\n}\n#c9-button.c9-plain.c9-center-left.c9-shown {\n left: 0;\n}\n#c9-button.c9-plain.c9-center-right {\n right: -50px;\n}\n#c9-button.c9-plain.c9-center-right.c9-shown {\n right: 0;\n}\n\n#c9-button.c9-plain:hover {\n opacity: 0.9;\n}\n\n#c9-button.c9-plain.c9-top-right, #c9-button.c9-plain.c9-bottom-right {\n right: 0;\n}\n\n#c9-button.c9-plain.c9-top-left, #c9-button.c9-plain.c9-bottom-left {\n left: 0;\n right: auto;\n}\n\n#c9-button.c9-plain #c9-remover:hover {\n color: white;\n}\n/* Image styles */\n#c9-button.c9-image {\n opacity: 0;\n}\n#c9-button.c9-image img {\n max-width: 100%;\n}\n#c9-button.c9-image.c9-shown {\n opacity: 1;\n}\n#c9-button.c9-image #c9-remover {\n display: none;\n}\n#c9-button.c9-image:hover #c9-remover {\n display: block;\n}\n#c9-button.c9-image.c9-hover-lock #c9-remover {\n display: block;\n}\n\n#c9-button.c9-image.c9-top-right, #c9-button.c9-image.c9-bottom-right {\n right: 0;\n}\n\n#c9-button.c9-image.c9-top-left, #c9-button.c9-image.c9-bottom-left {\n left: 0;\n right: auto;\n}\n\n#c9-button.c9-image.c9-bottom-left, #c9-button.c9-image.c9-bottom-right {\n bottom: 10px;\n}\n#c9-button.c9-image.c9-top-left, #c9-button.c9-image.c9-top-right {\n top: 0;\n}\n#c9-button.c9-image #c9-remover:hover {\n color: white;\n}\n\n/* Floating styles */\n\n#c9-button.c9-floating {\n opacity: 0;\n}\n\n#c9-button.c9-floating.c9-shown {\n opacity: 1;\n}\n#c9-button.c9-floating #c9-button-content {\n padding: 16px 20px 14px;\n font-size: 16px;\n border-radius: 30px;\n font-weight: bold;\n background: #69C2E4;\n color: white;\n display: block;\n transition: padding 0.3s; -moz-transition: padding 0.3s; -webkit-transition: padding 0.3s; -o-transition: padding 0.3s; -ms-transition: padding 0.3s;\n}\n#c9-button.c9-floating.c9-touch-device #c9-button-content {\n padding: 15px 20px 15px;\n}\n#c9-button.c9-floating.c9-removable #c9-button-content {\n padding-left: 25px;\n padding-right: 25px;\n}\n#c9-button.c9-floating.c9-removable:hover #c9-button-content {\n padding-left: 15px;\n padding-right: 35px;\n}\n#c9-button.c9-floating.c9-removable.c9-hover-lock #c9-button-content {\n padding-left: 15px;\n padding-right: 35px;\n}\n#c9-button.c9-floating #c9-remover {\n line-height: 18px;\n width: 10px;\n top: initial;\n bottom: 14px;\n right: 11px;\n font-size: 20px;\n opacity: 0;\n text-shadow: none;\n transition: opacity 0.3s;\n}\n#c9-button.c9-floating:hover {\n opacity: 0.7;\n}\n\n#c9-button.c9-floating:hover #c9-remover {\n display: block;\n opacity: 1;\n}\n#c9-button.c9-floating.c9-hover-lock #c9-remover {\n display: block;\n opacity: 1;\n}\n\n\n#c9-button.c9-floating.c9-top-right, #c9-button.c9-floating.c9-bottom-right, #c9-button.c9-floating.c9-center-right {\n right: 20px;\n}\n\n#c9-button.c9-floating.c9-top-left, #c9-button.c9-floating.c9-bottom-left, #c9-button.c9-floating.c9-center-left {\n left: 20px;\n right: auto;\n}\n\n#c9-button.c9-floating.c9-bottom-left, #c9-button.c9-floating.c9-bottom-right {\n bottom: 10px;\n}\n#c9-button.c9-floating.c9-top-left, #c9-button.c9-floating.c9-top-right {\n top: 10px;\n}\n\n/* Embed button */\nhtml body .w-entry-button {\n outline: none;\n overflow: hidden;\n visibility: visible !important;\n background-image: -webkit-linear-gradient(#28a0e5, #015e94);\n background-image: -moz-linear-gradient(#28a0e5, #015e94);\n background-image: -ms-linear-gradient(#28a0e5, #015e94);\n background-image: -o-linear-gradient(#28a0e5, #015e94);\n background-image: linear-gradient(#28a0e5, #015e94);\n -webkit-font-smoothing: antialiased;\n border: 0;\n padding: 1px;\n text-decoration: none;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n -moz-box-shadow: 0 1px 0 rgba(0,0,0,0.2);\n -webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.2);\n box-shadow: 0 1px 0 rgba(0,0,0,0.2);\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: transparent;\n -moz-user-select: none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n cursor: pointer;\n position: relative;\n margin: 10px auto;\n display: table;\n text-align: center;\n}\nhtml body .w-entry-button::before {\n content: '';\n display: block;\n}\nhtml body .w-entry-button::after {\n content: '';\n display: block;\n}\n\nhtml body .w-entry-button::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\nhtml body .w-entry-button .w-entry-button-inner {\n display: block;\n position: relative;\n padding: 0 16px;\n height: 50px;\n line-height: 48px;\n background: #1275ff;\n background-image: -webkit-linear-gradient(#7dc5ee, #008cdd 70%, #30a2e4);\n background-image: -moz-linear-gradient(#7dc5ee, #008cdd 70%, #30a2e4);\n background-image: -ms-linear-gradient(#7dc5ee, #008cdd 70%, #30a2e4);\n background-image: -o-linear-gradient(#7dc5ee, #008cdd 70%, #30a2e4);\n background-image: linear-gradient(#7dc5ee, #008cdd 70%, #30a2e4);\n font-size: 20px;\n color: #fff;\n font-weight: bold;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n text-shadow: 0 -1px 0 rgba(0,0,0,0.25);\n -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.25);\n -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.25);\n box-shadow: inset 0 1px 0 rgba(255,255,255,0.25);\n -moz-border-radius: 4px;\n -webkit-border-radius: 4px;\n border-radius: 4px;\n left: auto;\n top: auto;\n width: auto;\n}\n\nhtml body .w-entry-button .w-entry-button-inner * { /* mangled span override */\n display: inline;\n left: auto;\n top: auto;\n position: static;\n width: auto;\n height: auto;\n background: none;\n\n}\nhtml body a.w-entry-button:hover {\n background: #005d93;\n}\nhtml body a.w-entry-button:active {\n background: #005d93;\n}\nhtml body a.w-entry-button:active .w-entry-button-inner {\n color: #eee;\n background: #008cdd;\n background-image: -webkit-linear-gradient(#008cdd, #008cdd 70%, #239adf);\n background-image: -moz-linear-gradient(#008cdd, #008cdd 70%, #239adf);\n background-image: -ms-linear-gradient(#008cdd, #008cdd 70%, #239adf);\n background-image: -o-linear-gradient(#008cdd, #008cdd 70%, #239adf);\n background-image: linear-gradient(#008cdd, #008cdd 70%, #239adf);\n -moz-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);\n -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);\n box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);\n}\n"; if (css.styleSheet) { css.styleSheet.cssText = styles; } else { css.innerHTML = styles; } document.body.appendChild(css); } } function withEnterId(url) { try { return withParam(url, 'i', getCookie("GleamId")); } catch (err) { window.console && window.console.warn("Failed to set EnterId:", err) return url; } } function withGleamShareRef(url) { var match = (/gsr=([%a-z0-9\-]+)/ig).exec(''+document.location.search) if(match) { return withParam(url, 'gsr', match[1]) } else { return url; } } var GA_ID = null var GA_PARAMS = {} function setCrossSiteParams(callback) { if (!window.gtag || !GA_ID) { return callback(); } var clientId = null; var clientIdReceived = false; var sessionId = null; var sessionIdReceived = false; var tryToRespond = function() { if (clientIdReceived && sessionIdReceived) { GA_PARAMS = { clientId: clientId, sessionId: sessionId }; callback(); } }; window.gtag('get', GA_ID, 'client_id', function(value) { clientId = value; clientIdReceived = true; tryToRespond(); }); window.gtag('get', GA_ID, 'session_id', function(value) { sessionId = value; sessionIdReceived = true; tryToRespond(); }); } function withXDGA(url, xdgaEnabled) { if (xdgaEnabled && GA_PARAMS.clientId && GA_PARAMS.sessionId) { return withParam(withParam(withParam(url, 'xdga', GA_PARAMS.clientId), 'xdga_referrer', document.referrer.slice(0,1024)), 'sid', GA_PARAMS.sessionId); } else { return url; } } function withLocationAndReferrer(url) { var locationUrl = withParam(url, 'l', window.location.href); return withParam(locationUrl, 'r', window.gleamReferrerOverride || document.referrer.slice(0,1024)); } function withEruda(url, needsEruda) { if (needsEruda) { return withParam(url, 'eruda', 'true'); } else { return url; } } function withParam(url, name, value) { var separator = url.match(/\?/) ? "&" : "?"; if (value !== null) { return url + separator + name + '=' + encodeURIComponent(value); } else { return url; } } var supportedSvgElements = ["svg", "rect", "animate"]; function dom(query, attrs, childs){ var match = query.match(/^([^#.]*)#?([^.$]*).?(\S*)/), type = match[1] || "div", id = match[2], classes = match[3].replace(/\./g, " "), isSVG = (supportedSvgElements.indexOf(type) !== -1), element; if(attrs && attrs.constructor === Array) { childs = attrs; attrs = null; } element = isSVG ? document.createElementNS('http://www.w3.org/2000/svg', type) : document.createElement(type); if(attrs){ if(typeof attrs == 'string' || typeof attrs == "number") { element.innerHTML = attrs; } else { Object.keys(attrs).forEach(function(key){ if(key === "id" || key === "innerHTML" || key === "value" || key === "src" || key === "className" || key === "textContent"){ element[key] = attrs[key]; } else { element.setAttribute(key, attrs[key]); } }) } } id && element.setAttribute("id", id); classes && element.setAttribute("class", classes); childs && childs.forEach(function(child){ element.appendChild(child); }); return element; } function onPageComplete(callback) { if (document.readyState == "complete") { callback.call() } else { document.addEventListener("readystatechange", function () { onPageComplete(callback); }); } } function delayTabDisplay() { return navigator.userAgent.match(/iPad|iPhone|iPod/i) &&navigator.userAgent.match(/AppleWebKit.*Safari/i) && !navigator.userAgent.match(/CriOS|Chrome/i); } function handleCommonMessages(messageData, iframe, widgetName, campaignKey) { var pixelMessageRegex = new RegExp("^" + widgetName + "FirePixel=(.+)$"); var requestTrackingRegex = new RegExp("^" + widgetName + "Tracking" + campaignKey + "$"); var watchTrackingRegex = new RegExp("^" + widgetName + "Watch" + campaignKey + "$"); var resetTrackingRegex = new RegExp("^" + widgetName + "Reset" + campaignKey + "=(.+)$"); var callbackMessageRegex = new RegExp("^" + widgetName + "WidgetCallback=(.*)$"); var pixelMatch = messageData.match(pixelMessageRegex) if(pixelMatch) { handlePixel(pixelMatch[1]); } var requestMatch = messageData.match(requestTrackingRegex) if(requestMatch) { requestTracking(iframe, widgetName, campaignKey); } var watchMatch = messageData.match(watchTrackingRegex) if(watchMatch) { watchTracking(iframe, widgetName, campaignKey); } var resetMatch = messageData.match(resetTrackingRegex) if(resetMatch) { resetTracking(widgetName, campaignKey, resetMatch[1]); } var callbackMatch = messageData.match(callbackMessageRegex) if(callbackMatch) { handleWidgetCallback(callbackMatch[1]); } } function withGA(callback, xdgaWait) { if (xdgaWait && GA_ID) { var callbackInvoked = false; var gaLoaded = function () { if (callbackInvoked) { return } callbackInvoked = true; clearInterval(gaChecker); clearTimeout(gaFallback); callback(); }; var gaChecker = setInterval(function () { if (window.gtag) { clearInterval(gaChecker); setCrossSiteParams(gaLoaded); } }, 100); var gaFallback = setTimeout(function () { window.console && window.console.warn("No Google Analytics after 5 seconds. Loading widget without cross-domain analytics."); gaLoaded(); }, 5000); } else { callback(); } } function handlePixel(url) { i = document.createElement("img"); i.setAttribute("style", "display: none"); i.src = url; document.body.appendChild(i); } var requestTracking = function(frame, widgetName, campaignKey) { if (frame && frame.contentWindow) { var data = window[widgetName].data() var vars = []; for (var i = 0; i < data.length; i++) { var kva = data[i].split('='); var k = decodeURIComponent(kva[0]); if (kva.length > 1) { var v = decodeURIComponent(kva[1]); vars.push([k, v]); } else { vars.push([k]); } } frame.contentWindow.postMessage({ type: widgetName + 'Tracking' + campaignKey, vars: vars }, '*'); } } var watchTracking = function(frame, widgetName, campaignKey) { var tokens = '' setInterval(function() { var actionCookie = JSON.parse(getCookie(widgetName + 'A') || '{}'); var cookieTokens = actionCookie[campaignKey] || ''; if (frame && frame.contentWindow && cookieTokens !== tokens) { tokens = cookieTokens frame.contentWindow.postMessage({ type: widgetName + 'Watch' + campaignKey, tokens: tokens, ref: getCookie(widgetName + 'Id') }, '*'); } }, 1000); } var resetTracking = function(widgetName, campaignKey, token) { var actionCookie = JSON.parse(getCookie(widgetName + 'A') || '{}'); var actions = (actionCookie[campaignKey] || '').split(/,/); var index = actions.indexOf(token); if (index > -1) { actions.splice(index, 1); var actionsStr = actions.join(','); if (actionsStr) { actionCookie[campaignKey] = actionsStr; } else { delete actionCookie[campaignKey]; } if (Object.keys(actionCookie).length) { setCookie(widgetName + 'A', JSON.stringify(actionCookie), { expires: 14 }); } else { removeCookie(widgetName + 'A'); } } } function handleWidgetCallback(messageData) { if(window.onGleamEvent) { var payload = JSON.parse(messageData); window.onGleamEvent(payload); } } if(unsupportedBrowser()) { return; } var disableButton = true; var testImage = "https://js.gleam.io/images/logo.svg"; var wrapperClass = ""; var leaderboardPostfix = ""; var campaignKey = "YoHFy" + leaderboardPostfix; var contentBlockedHeading = "Inhalt blockiert"; var contentBlockedProblem = "Eine Browsereinstellung oder -erweiterung blockiert derzeit diesen Inhalt."; var contentBlockedSolution = "Um diesen Gewinnspiel weiterhin einzugeben, einfach:"; var contentBlockedButton = "Klicken Sie hier, um in einem neuen Fenster einzugeben."; var widgetName = "Gleam"; var crossDomainGa = false; var standAloneUrl = "https://gleam.io/YoHFy/snkrs-gewinnspiel"; var embedUrl = "https://gleam.io/YoHFy/embed"; var buttonText = "Am Gewinnspiel teilnehmen"; var widgetTitle = "Gewinnspiel"; var needsEruda = false; var widgetDesignOptions = {}; var newFrame, oldArea; var appClass = widgetName + 'Embed' + campaignKey, smallScreenButton = !disableButton, loadedMessageRegex = new RegExp("^" + widgetName + "Loaded" + campaignKey + "$"), heightMessageRegex = new RegExp("^" + widgetName + "EmbedHeight" + campaignKey + "=(\\d+\\.?\\d*)$"), loginMessageRegex = new RegExp("^" + widgetName + "Login" + campaignKey + "$"); var loadFunction = function (e) { if(!newFrame.getAttribute('data-loaded-widget')) { if(oldArea.parentNode) { oldArea.parentNode.removeChild(oldArea); } newFrame.style.position = 'relative'; newFrame.style.left = ''; newFrame.setAttribute('data-loaded-widget', 'true'); } } // Only valid for modern and dark themes var PRESET_SPACING_RADIUS_MAP = { 0: { '--glm-widget-radius': '0px', '--glm-widget-header-media-radius': '0px', '--glm-widget-header-media-margin': '0px', '--glm-widget-action-radius': '0px', '--glm-widget-actions-padding': '0px', '--glm-widget-actions-gap': '0px', '--glm-widget-padding': '0px' }, 1: { '--glm-widget-radius': '10px', '--glm-widget-header-media-radius': '0px', '--glm-widget-header-media-margin': '0px', '--glm-widget-action-radius': '0px', '--glm-widget-actions-padding': '0px', '--glm-widget-actions-gap': '0px', '--glm-widget-padding': '0px' }, 2: { '--glm-widget-radius': '10px', '--glm-widget-header-media-radius': '8px', '--glm-widget-header-media-margin': '8px', '--glm-widget-action-radius': '8px', '--glm-widget-actions-padding': '8px', '--glm-widget-actions-gap': '6px', '--glm-widget-padding': '8px' }, 3: { '--glm-widget-radius': '10px', '--glm-widget-header-media-radius': '12px', '--glm-widget-header-media-margin': '12px', '--glm-widget-action-radius': '8px', '--glm-widget-actions-padding': '12px', '--glm-widget-actions-gap': '8px', '--glm-widget-padding': '12px' }, 4: { '--glm-widget-radius': '10px', '--glm-widget-header-media-radius': '12px', '--glm-widget-header-media-margin': '16px', '--glm-widget-action-radius': '8px', '--glm-widget-actions-padding': '16px', '--glm-widget-actions-gap': '10px', '--glm-widget-padding': '16px' } }; function widget() { return window[widgetName]; } function forEmbeds(f) { var elems = Array.prototype.slice.call(document.getElementsByClassName(appClass)); for(var i = 0; i < elems.length; i++) { f.call(elems[i], i); } } function replaceLink() { var link = document.createElement('a'); link.classList.add('w-entry-button'); link.innerHTML = "
"; return link; } function blockingCheckingFallback () { var t = document.createElement("img"); t.src = testImage; t.setAttribute("style", "visibility:hidden;left:-10000px;position:absolute;height:0") t.onerror = function () { var loaders = document.getElementsByClassName("e-widget-preloader"); for(var i = 0; i < loaders.length; i++) { loaders[i].innerHTML = " " loaders[i].getElementsByTagName("h2")[0].textContent = contentBlockedHeading loaders[i].getElementsByTagName("p")[0].textContent = contentBlockedProblem loaders[i].getElementsByTagName("p")[1].textContent = contentBlockedSolution loaders[i].getElementsByTagName("a")[0].textContent = contentBlockedButton } } document.body.appendChild(t); } function handleEmbeds(height) { forEmbeds(function (index) { var standAloneLink; var containerWidth = this.offsetWidth; if((!height && smallScreenButton && (tinyScreen() || (containerWidth != 0 && containerWidth < 400))) || index !== 0) { standAloneLink = replaceLink(); standAloneLink.setAttribute('href', withEruda(withGleamShareRef(withLocationAndReferrer(withEnterId(standAloneUrl)))), needsEruda); if (!navigator.userAgent.match(/FBAN\/FBIOS|Instagram/)) { standAloneLink.setAttribute('target', '_blank'); } this.parentNode.replaceChild(standAloneLink, this); } else { if(this.nodeName.match(/div/i) || this.parentNode === null) { oldArea = this; removeExistingListener(campaignKey); addListener(campaignKey); newFrame = document.createElement('iframe'); newFrame.id = appClass; newFrame.src = withEruda(withXDGA(withGleamShareRef(withLocationAndReferrer(withEnterId(embedUrl))), crossDomainGa), needsEruda); newFrame.setAttribute('allow', 'storage-access *; attribution-reporting *; autoplay *; fullscreen *') // attribution-reporting is for GA events newFrame.setAttribute('title', widgetTitle); newFrame.frameBorder = 0; newFrame.setAttribute('style', ';position:absolute;left:-10000px;z-index:1;visibility:visible'); newFrame.className = this.className.replace(/e-widget-preloader/, '') + " e-embed-frame"; oldArea.style.minWidth = '320px'; if(oldArea.parentNode) { wrapper = document.createElement('div') wrapper.className = "e-widget-wrapper " + wrapperClass; wrapper.appendChild(newFrame); if (wrapperClass == "e-dark" || wrapperClass == "e-modern") { var presetSpacingRadiusMap = PRESET_SPACING_RADIUS_MAP[widgetDesignOptions.preset_spacing_radius || 2] for (var key in presetSpacingRadiusMap) { wrapper.style.setProperty(key, presetSpacingRadiusMap[key]) } } oldArea.parentNode.insertBefore(wrapper, oldArea); } oldArea.className = 'e-widget-preloader ' + wrapperClass; newFrame.style.webkitTransform = 'scale(1)'; // backup function incase the message doesn't get received newFrame.setAttribute('loaded', loadFunction); newFrame.onload = loadFunction; newFrame.addEventListener('load', loadFunction, false); } else if(height) { var frame = this frame.style.height = height+'px'; } } }); } function getOffset(elem) { var offsetTop = 0; var offsetLeft = 0; do { if (!isNaN(elem.offsetTop)) { offsetTop += elem.offsetTop; offsetLeft += elem.offsetLeft; } } while (elem = elem.offsetParent); return { top: offsetTop, left: offsetLeft }; } function handleScrollToView(key, elementTop) { var widget = document.getElementById(widgetName + "Embed" + key) var widgetOffset = getOffset(widget) var viewTop = window.pageYOffset || (document.documentElement || document.body.parentNode || document.body).scrollTop var viewLeft = window.pageXOffset || (document.documentElement || document.body.parentNode || document.body).scrollLeft if(viewTop - 50 > widgetOffset.top + elementTop) { // Scroll to the element's position window.scrollTo(viewLeft, widgetOffset.top + elementTop) } } var trackingData = [] function data() { return trackingData } function generateId() { var id = "", i = 12, chars = "abcdefghijklmnopqrstufwxyzABCDEFGHIJKLMNOPQRSTUFWXYZ1234567890"; while (i--) { id += chars[Math.floor(Math.random() * chars.length)] } return "YoHFy" + id; } function multiLevel(a) { for(var i = 0; i < a.length; a++) { if(typeof(a[i]) === 'object') { return true; } } return false; } function campaignKeys() { var scripts = document.getElementsByTagName('script'); var keys = []; var unique = {}; var src, i, match; for(i = 0; i < scripts.length; i++) { src = scripts[i].getAttribute('src')+""; match = src.match(/\/(.....)\/(embed|ol|trk)\.js/); if(match && !unique[match[1]]) { keys.push(match[1]); unique[match[1]] = true; } } return keys; } function parseVars(vars) { var buf = []; var callback = null; var v, i; if(typeof(vars) !== 'object') { buf.push(vars); } else { if(multiLevel(vars)) { for(i = 0; i < vars.length; i++) { v = vars[i]; if (typeof(v) === 'object' && v.length > 1) { if(v[0] === 'callback' && typeof(v[1]) === 'function') { callback = v[1]; } else { buf.push(encodeURIComponent(v[0]) + '=' + encodeURIComponent(v[1])); } } else { buf.push(encodeURIComponent(v)); } } } else { if(vars.length > 1) { buf.push(encodeURIComponent(vars[0])+'='+encodeURIComponent(vars[1])); } else if (vars.length === 1) { buf.push(encodeURIComponent(vars[0])); } } } return { params: buf, callback: callback }; } function parseSearchXref() { var searchParams = window.location.search.replace(/^\?/, '').split('&').map(function(p) { return p.split('=') }); var xref = searchParams.filter(function(p) { return p[0] === 'xref' })[0]; if (xref && window.history.replaceState) { window.history.replaceState(window.history.state, '', window.location.href.replace(/\??&?xref=[^]*/, '')); } return xref ? xref[1] : null; } function push(vars) { var debug = false; var baseUrl = "https://gleam.io"; if(debug && typeof(console) != 'undefined') { console.log('Sending: ', vars) } var trackingToken = parseSearchXref() || getCookie('GleamId') || generateId(); if(!getCookie('GleamId') || getCookie('GleamId') !== trackingToken) { setCookie('GleamId', trackingToken); } if(getCookie('GleamId')) { var config = parseVars(vars); var tokens = [] for(var p = 0; p < config.params.length; p++) { var token = config.params[p].split('='); tokens.push(token[0]) trackingData.push(config.params[p]) } var keys = campaignKeys(); for(var k = 0; k < keys.length; k++) { var key = keys[k]; var cookieName = 'GleamA'; var actionData = JSON.parse(getCookie(cookieName) || '{}'); actionData[key] = tokens.join(','); setCookie(cookieName, JSON.stringify(actionData)); } var src = baseUrl+'/track.js?i='+encodeURIComponent(getCookie('GleamId'))+ '&k='+campaignKeys().join(',')+ '&v='+encodeURIComponent(config.params.join('&')); var f = document.createElement('script'); f.src = src; f.onload = config.callback; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(f, s); if(window && window.addEventListener) { window.addEventListener('message', function(e) { if(e.data === 'request-prefill') { if(debug && typeof(console) != 'undefined') { console.log('Re-sending: ', vars) } var f2 = document.createElement('script'); f2.src = src; f2.onload = vars.callback; f.parentNode.replaceChild(f2, f); } }, false); } } } function initGleamTracker() { window.Gleam = { push: push, init: true, data: data } } if(typeof(Gleam) === 'undefined') { initGleamTracker(); } else if(typeof(Gleam.init) === 'undefined') { var onLoadTracking = Gleam; initGleamTracker(); Gleam.push(onLoadTracking); } function timedRefresh(iframe) { setTimeout(function () { iframe.setAttribute('src', iframe.src); }, 2000); } function removeExistingListener(key) { if (typeof(widget()['embedListener' + key]) !== 'undefined') { if (window.removeEventListener) { window.removeEventListener("message", widget()['embedListener' + key], false); } else if (window.detachEvent()) { window.detachEvent("onmessage", widget()['embedListener' + key], false); } } } function addListener(key) { widget()['embedListener'+key] = function (e) { if(e && e.data && e.data.match) { if(e.data.match(heightMessageRegex)) { handleEmbeds(e.data.match(heightMessageRegex)[1]) } if(e.data.match(loginMessageRegex)) { match = e.data.match(); if (match) { var iframes = document.getElementsByTagName("iframe"); for (var i = 0; i < iframes.length; i++) { if (iframes[i].className && iframes[i].className.match(new RegExp("^" + widgetName + "Embed")) && !iframes[i].classList.contains(widgetName + "Embed" + key)) { timedRefresh(iframes[i]); } } } } if(e.data.match(loadedMessageRegex)) { loadFunction(e); } handleCommonMessages(e.data, newFrame, widgetName, campaignKey); } }; window.addEventListener("message", widget()['embedListener'+key], false); } includeCSS(); withGA(handleEmbeds, crossDomainGa); blockingCheckingFallback(); })();