Tagging = function(context) {
  this.site = 'noklapja';
  this.zone = 'nyitooldal';
  this.protocol = window.location.protocol;
  this.autodetect_url = this.protocol + '//cts.p24.hu/service/detect/';
  this.context = context;
  this.positions = {};
  this.positions_weighted = {};

  this.positions['body-end'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<script type=\\"text/javascript\\" src=\\"//stat.p24.hu/CTS/helper-scripts/waterfall_empty/closer.min.js\\"></script>\"}, {\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<script type=\\"text/javascript\\" src=\\"//ad.adverticum.net/g3.js\\"></script>\"}, {\"service_name\": \"Sanoma\", \"weight\": null, \"source\": \"<script>var _ceCTSTool = _ceCTSTool || [];_ceCTSTool[\'_cePopupLayer\'] = {    storageKey: \'_cePopupLayer\',    path: document.location.pathname,    showLayer: false,    layerElement: null,    layerElementID: \'ce_popup_layer\',    layerConf: {        whitelist: [],        blacklist: [],        style: null,        colorStyle: \'#006fb7\',        storeLayerStatus: true,        A42A6Cblck: false,        closable: true,        delay: 0    },    showed: false,    style: \\"div#ce_popup_layer { display: none; position: fixed !important; width: 100% !important; height: 100% !important; background: rgba(69, 71, 77, 0.9215686274509803) !important; z-index: 9999 !important; top: 0px !important; font-family: Arial, Helvetica, sans-serif; } #ce_popup_layer div#popupLayerContainer { display: table-cell; vertical-align: middle; text-align: center; } #ce_popup_layer div#popupLayerContainer #boxContainer { width: 50%; margin: 0 auto; vertical-align: middle; min-height: 300px; background: ##colorStyle##; } #ce_popup_layer div#info { display: inline-block; width: 30%; height: 100%; vertical-align: middle; color: #FFF; min-height: 300px; } #ce_popup_layer div#info p { font-size: 80px; font-family: fantasy; text-align: center; margin-top: 100px; } #ce_popup_layer div#boxContent { display: inline-block; width: 70%; background: white; height: 100%; vertical-align: middle; min-height: 300px; } #ce_popup_layer div#title { font-size: 30px !important; margin: 15px; margin-top: 30px; } #ce_popup_layer #txt { font-size: 20px !important; margin: 30px; margin-top: 35px; text-align: justify; color: #5c5c5c !important; } #ce_popup_layer #txt a { color: ##colorStyle## !important; text-decoration: none; } #ce_popup_layer #yes, #ce_popup_layer #no { margin: 5px !important; padding: 7px 15px !important; font-size: 13px !important; font-weight: bold !important; cursor: pointer !important; display: inline-block !important; width: 200px !important; height: 54px !important; margin-left: initial; margin-right: initial; background: ##colorStyle## !important; color: #fff !important; border: none !important; } #ce_popup_layer .inputs {margin-bottom: 10px;} @media only screen and (max-width: 700px) { #ce_popup_layer div#popupLayerContainer #boxContainer { width: 100%; } } \\",    prepareLayer: function () {        this.layerElement = document.createElement(\\"div\\");        this.layerElement.id = this.layerElementID;        var html = \'<div id=\\"popupLayerContainer\\"><style>\' + this.style + \'</style><div id=\\"boxContainer\\"><div id=\\"info\\"><p>i</p></div>\';        html += \'<div id=\\"boxContent\\"><div id=\\"title\\"><p>\' + this.htmlDecode(this.layerConf.text.title) + \'</p></div>\';        html += \'<p id=\\"txt\\">\' + this.htmlDecode(this.layerConf.text.content) + \'</p>\';        if (this.layerConf.closable == undefined || this.layerConf.closable) {            html += \'<div class=\\"inputs\\"><input type=\\"button\\" id=\\"yes\\" value=\\"\' + this.htmlDecode(this.layerConf.text.btn) + \'\\" onclick=\\"_ceCTSTool._cePopupLayer.hide(event)\\" />\';        }        html += \'</div></div></div></div></div>\';        this.layerElement.innerHTML = html;    },    hide: function (e) {        if (this.layerConf.storeLayerStatus == undefined || (this.layerConf.storeLayerStatus != undefined && this.layerConf.storeLayerStatus)) {            if (localStorage.getItem(this.storageKey) == null) {                localStorage.setItem(this.storageKey, \\"1\\");            }        }        this.layerElement.style.display = \\"none\\";        this.layerElement.remove();        e.preventDefault();        this.showed = false;        return false;    },    show: function () {        this.showed = true;        this.showLayer = true;        if (this.layerConf.storeLayerStatus != undefined && !this.layerConf.storeLayerStatus) {            this.showLayer = true;        } else if (localStorage.getItem(this.storageKey) != null) {            this.showLayer = false;        }        if (this.layerConf.whitelist != undefined && this.layerConf.whitelist != \\"\\") {            for (var i = 0; i < this.layerConf.whitelist.length; i++) {                if (this.path.indexOf(this.layerConf.whitelist[i]) != -1) {                    this.showLayer = true;                    break;                }            }        }        if (this.layerConf.hostName != undefined) {            if (this.layerConf.hostName != document.location.hostname) {                this.showLayer = false;                return false;            }        }        if (this.layerConf.A42A6Cblck != undefined && this.layerConf.A42A6Cblck) {            var adBlockData = JSON.parse(localStorage.getItem(\\"A42A6Cblck\\"));            if (adBlockData.bl == null || adBlockData.bl == 0 || localStorage.getItem(\\"A42A6Cblck\\") == null) {                this.showLayer = false;            }            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData(true).isSubscribed) {                this.showLayer = false;            }        }        if (this.layerConf.blacklist != undefined && this.layerConf.blacklist != \\"\\") {            for (var i = 0; i < this.layerConf.blacklist.length; i++) {                if (this.path.indexOf(this.layerConf.blacklist[i]) != -1) {                    this.showLayer = false;                    break;                }            }        }        if (this.showLayer) {            document.body.appendChild(this.layerElement);            this.layerElement.style.display = \\"table\\";        }    },    htmlDecode: function (input) {        var e = document.createElement(\'textarea\');        e.innerHTML = input;        return e.childNodes.length === 0 ? \\"\\" : e.childNodes[0].nodeValue;    },    init: function (popup_layer_config) {        popup_layer_config = JSON.parse(popup_layer_config);        if (localStorage.getItem(this.storageKey) == null || (popup_layer_config.storeLayerStatus != undefined && !popup_layer_config.storeLayerStatus)) {            if (popup_layer_config != undefined && popup_layer_config != \\"\\") {                if (popup_layer_config.colorStyle != undefined && popup_layer_config.colorStyle != null) {                    this.style = this.style.replace(/##colorStyle##/g, popup_layer_config.colorStyle);                } else {                    this.style = this.style.replace(/##colorStyle##/g, this.layerConf.colorStyle);                }                this.layerConf = popup_layer_config;                if (popup_layer_config.style != undefined && popup_layer_config.style != null) {                    this.style = this.layerConf.style;                }            }            var self = this;            setTimeout(function () {                self.prepareLayer();                self.show();            }, this.layerConf.delay || 0);        }    }};document.addEventListener(\'readystatechange\', () => {    if (document.readyState == \'complete\') {        _ceCTSTool[\'_cePopupLayer\'].init(\'{\\"hostName\\":\\"noklapja2.p24.hu\\",\\"A42A6Cblck\\":true,\\"whitelist\\":[],\\"blacklist\\":[\\"/blacklistTestPage\\"],\\"style\\":null,\\"colorStyle\\":\\"#fdd404\\",\\"text\\":{\\"title\\":\\"Adblock &#xE9;szlelve!\\",\\"content\\":\\"Adblock figyelmeztet&#x151; sz&#xF6;veg\\", \\"btn\\":\\"Bez&#xE1;r\\"}, \\"closable\\":true, \\"storeLayerStatus\\":false, \\"delay\\":0}\');    }});</script>\"}]';
  this.positions_weighted['body-end'] = false;
  
  this.positions['body-end-adv'] = '[]';
  this.positions_weighted['body-end-adv'] = false;
  
  this.positions['body-start'] = '[{\"service_name\": \"Google Tag Manager\", \"weight\": null, \"source\": \"<noscript><iframe src=\\"//www.googletagmanager.com/ns.html?id=GTM-P9C54HF\\"height=\\"0\\" width=\\"0\\" style=\\"display:none;visibility:hidden\\"></iframe></noscript><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({\'gtm.start\':new Date().getTime(),event:\'gtm.js\'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\'dataLayer\'?\'&l=\'+l:\'\';j.async=true;j.src=\'//www.googletagmanager.com/gtm.js?id=\'+i+dl;f.parentNode.insertBefore(j,f);})(window,document,\'script\',\'dataLayer\',\'GTM-P9C54HF\');</script>\"}]';
  this.positions_weighted['body-start'] = false;
  
  this.positions['head'] = '[{\"service_name\": \"CMP\", \"weight\": null, \"source\": \"<!-- Quantcast Choice. Consent Manager Tag v2.0 (for TCF 2.0) --><script type=\\"text/javascript\\" async=true>(function() {  var host = window.location.hostname;  var element = document.createElement(\'script\');  var firstScript = document.getElementsByTagName(\'script\')[0];  var url = \'https://quantcast.mgr.consensu.org\'.concat(\'/choice/\', \'ZWemmHq85Y1fR\', \'/\', host, \'/choice.js\');  var uspTries = 0;  var uspTriesLimit = 3;  element.async = true;  element.type = \'text/javascript\';  element.src = url;  firstScript.parentNode.insertBefore(element, firstScript);  function makeStub() {    var TCF_LOCATOR_NAME = \'__tcfapiLocator\';    var queue = [];    var win = window;    var cmpFrame;    function addFrame() {      var doc = win.document;      var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]);      if (!otherCMP) {        if (doc.body) {          var iframe = doc.createElement(\'iframe\');          iframe.style.cssText = \'display:none\';          iframe.name = TCF_LOCATOR_NAME;          doc.body.appendChild(iframe);        } else {          setTimeout(addFrame, 5);        }      }      return !otherCMP;    }    function tcfAPIHandler() {      var gdprApplies;      var args = arguments;      if (!args.length) {        return queue;      } else if (args[0] === \'setGdprApplies\') {        if (          args.length > 3 &&          args[2] === 2 &&          typeof args[3] === \'boolean\'        ) {          gdprApplies = args[3];          if (typeof args[2] === \'function\') {            args[2](\'set\', true);          }        }      } else if (args[0] === \'ping\') {        var retr = {          gdprApplies: gdprApplies,          cmpLoaded: false,          cmpStatus: \'stub\'        };        if (typeof args[2] === \'function\') {          args[2](retr);        }      } else {        queue.push(args);      }    }    function postMessageEventHandler(event) {      var msgIsString = typeof event.data === \'string\';      var json = {};      try {        if (msgIsString) {          json = JSON.parse(event.data);        } else {          json = event.data;        }      } catch (ignore) {}      var payload = json.__tcfapiCall;      if (payload) {        window.__tcfapi(          payload.command,          payload.version,          function(retValue, success) {            var returnMsg = {              __tcfapiReturn: {                returnValue: retValue,                success: success,                callId: payload.callId              }            };            if (msgIsString) {              returnMsg = JSON.stringify(returnMsg);            }            event.source.postMessage(returnMsg, \'*\');          },          payload.parameter        );      }    }    while (win) {      try {        if (win.frames[TCF_LOCATOR_NAME]) {          cmpFrame = win;          break;        }      } catch (ignore) {}      if (win === window.top) {        break;      }      win = win.parent;    }    if (!cmpFrame) {      addFrame();      win.__tcfapi = tcfAPIHandler;      win.addEventListener(\'message\', postMessageEventHandler, false);    }  };  makeStub();  var uspStubFunction = function() {    var arg = arguments;    if (typeof window.__uspapi !== uspStubFunction) {      setTimeout(function() {        if (typeof window.__uspapi !== \'undefined\') {          window.__uspapi.apply(window.__uspapi, arg);        }      }, 500);    }  };  var checkIfUspIsReady = function() {    uspTries++;    if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) {      console.warn(\'USP is not accessible\');    } else {      clearInterval(uspInterval);    }  };  if (typeof window.__uspapi === \'undefined\') {    window.__uspapi = uspStubFunction;    var uspInterval = setInterval(checkIfUspIsReady, 6000);  }})();</script><!-- End Quantcast Choice. Consent Manager Tag v2.0 (for TCF 2.0) -->\"}, {\"service_name\": \"Sanoma\", \"weight\": null, \"source\": \"<script src=\\"//stat.p24.hu/mobile_detect/mobile_detect.js\\"></script>\"}, {\"service_name\": \"Sanoma/Noklapja\", \"weight\": null, \"source\": \"<script type=\\"text/javascript\\" src=\\"//stat.p24.hu/CTS/measuring-codes/noklapja.main.min.js\\"></script>\"}, {\"service_name\": \"Gemius Traffic\", \"weight\": null, \"source\": \"<script type=\\"text/javascript\\">    var properGemId = (\'${gemius_trackid}\' != \'\' ? \'${gemius_trackid}\' : \'oftFBjOavQif5tWmIo.PVseB.KjYq6SVAGhJR9t.nrv.37\');        if(typeof _ceDeviceDetect.getDeviceType() !== \'undefined\' && _ceDeviceDetect.getDeviceType() != \'desktop\' && \'ogTr4jMnC.5J2JgRIknnlaeirqwIRM7oNn1BFzay8Ff.97\' != \'\') {        properGemId = \'ogTr4jMnC.5J2JgRIknnlaeirqwIRM7oNn1BFzay8Ff.97\';    }       var pp_gemius_identifier = properGemId;    function gemius_pending(i) { window[i] = window[i] || function() {var x = window[i+\'_pdata\'] = window[i+\'_pdata\'] || []; x[x.length]=arguments;};};    gemius_pending(\'gemius_hit\'); gemius_pending(\'gemius_event\'); gemius_pending(\'pp_gemius_hit\'); gemius_pending(\'pp_gemius_event\');    (function(d,t) {try {var gt=d.createElement(t),s=d.getElementsByTagName(t)[0],l=\'http\'+((location.protocol==\'https:\')?\'s\':\'\'); gt.setAttribute(\'async\',\'async\');    gt.setAttribute(\'defer\',\'defer\'); gt.src=l+\'://gahu.hit.gemius.pl/xgemius.js\'; s.parentNode.insertBefore(gt,s);} catch (e) {}})(document,\'script\');</script>\"}, {\"service_name\": \"Sanoma\", \"weight\": null, \"source\": \"<script type=\\"text/javascript\\" src=\\"//ad-blacklist.p24.hu/adx_blacklist.js\\"></script><script type=\\"text/javascript\\" src=\\"//ad-blacklist.p24.hu/rubicon_blacklist.js\\"></script><script type=\\"text/javascript\\">    (function(){        var blacklistsToCheck = [\'ADX\', \'RUBICON\'];        for (var i=0; i<blacklistsToCheck.length; i++) {            var typeName = blacklistsToCheck[i].charAt(0) + blacklistsToCheck[i].substr(1).toLowerCase();            window[\'no\' + blacklistsToCheck[i]] = false;            if (                typeof window[\'blck\' + typeName] != \'undefined\' &&                typeof window[\'blck\' + typeName][window.location.hostname] != \'undefined\' &&                window[\'blck\' + typeName][window.location.hostname].indexOf(location.pathname) >= 0            ) {                window[\'no\' + blacklistsToCheck[i]] = true;            }        }    })();</script>\"}, {\"service_name\": \"Sanoma\", \"weight\": null, \"source\": \"<script type=\\"text/javascript\\" src=\\"//segment.p24.hu/cerment.min.js\\" async></script>\"}, {\"service_name\": \"Google Adverts\", \"weight\": null, \"source\": \"<script>    if (typeof _ceDeviceDetect != \'undefined\' && typeof _ceDeviceDetect.getDeviceType == \'function\') {        var _ceDisplayData = _ceDisplayData || {},            googletag,            loader = function (multipleAds) {                _ceDisplayData.gpt = _ceDisplayData.gpt || { items: [], defContName: \'div-gpt-ad\' };                (function () {                    var scriptInserter = document.createElement(\'script\');                    scriptInserter.src = \'https://www.googletagservices.com/tag/js/gpt.js\';                    scriptInserter.async = true;                    /*document.head.appendChild(scriptInserter);*/                    document.head.insertBefore(scriptInserter, document.head.firstChild);                })();                if (multipleAds) {                    googletag = {};                    googletag.cmd = [];                } else {                    googletag = googletag || {};                    googletag.cmd = googletag.cmd || [];                }                googletag.cmd.push(function () {                    googletag.pubads().enableSingleRequest();                    googletag.pubads().collapseEmptyDivs();                    googletag.enableServices();                });            };        loader();        window.addEventListener(\'_ceDisplayDataLoadHeader\', loader);    }</script>\"}, {\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<script src=\\"//stat.p24.hu/CTS/helper-scripts/ip2isp/ip2isp.min.js\\"></script>\"}, {\"service_name\": \"Sanoma\", \"weight\": null, \"source\": \"<script type=\\"text/javascript\\">window[\'_pONmOJ\'] = {    userdbId: 58,    varName: \'audiences\',    sessionVarName: \'audience_segments\',    initScriptId: \'_btInitScrpt\',    btSegements: {        raw: {},        decoded: {}    },    sessionReady: function(input) {        this.btSegements.raw = input || {};        if (this.btSegements.raw.hasOwnProperty(this.sessionVarName) === true) {            this.btSegements.decoded[this.sessionVarName] = JSON.parse(this.btSegements.raw[this.sessionVarName]);            if (this.btSegements.decoded[this.sessionVarName].length > 0) {                var segmentsToSet = \',\' + this.btSegements.decoded[this.sessionVarName].join() + \',\';                this.addToCustomTarget(segmentsToSet);            }        }    },    addToCustomTarget: function(input) {        if (typeof input != \'undefined\') {            var metaData = {                pointer: document.getElementsByName(\'customtarget\')[document.getElementsByName(\'customtarget\').length - 1],                content: \'\',                parsed: {},                output: \'\'            };            metaData.parsed[this.userdbId] = {};            metaData.parsed[this.userdbId][this.varName] = \'\';            if (typeof metaData.pointer != \'undefined\') {                metaData.content = atob(metaData.pointer.content);                if (metaData.content.length > 0) {                    var metaParts = metaData.content.split(\'&\');                    var currentUserdb = 0;                    for (var i=0; i<metaParts.length; i++) {                        var metaKeyVal = metaParts[i].split(\'=\');                        if (metaKeyVal[0] == \'userdb_id\') {                            currentUserdb = metaKeyVal[1];                            if (typeof metaData.parsed[currentUserdb] == \'undefined\') {                                metaData.parsed[currentUserdb] = {};                            }                        } else {                            metaData.parsed[currentUserdb][metaKeyVal[0]] = metaKeyVal[1];                        }                    }                }            } else {                metaData.pointer = document.createElement(\'meta\');                metaData.pointer.name = \'customtarget\';                document.getElementsByTagName(\'head\')[0].appendChild(metaData.pointer);            }            metaData.parsed[this.userdbId][this.varName] = metaData.parsed[this.userdbId][this.varName] + input;            metaData.parsed[this.userdbId][this.varName] = metaData.parsed[this.userdbId][this.varName].replace(/[,]{2,}/g, \',\');            for (var key in metaData.parsed) {                if (metaData.parsed.hasOwnProperty(key)) {                    metaData.output += \'userdb_id=\' + key + \'&\';                    for (var prop in metaData.parsed[key]) {                        if (metaData.parsed[key].hasOwnProperty(prop)) {                            metaData.output += prop + \'=\' + metaData.parsed[key][prop] + \'&\';                        }                    }                }            }            metaData.output = metaData.output.replace(/\\&$/g, \'\');            metaData.pointer.content = btoa(metaData.output);        }    },    go: function() {        _btq.request(this.sessionVarName, function(input){            _pONmOJ.sessionReady.apply(window[\'_pONmOJ\'], [input]);        });    }};window.addEventListener(\'btLoaded\', function(ev){_pONmOJ.go();});</script>\"}, {\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<script>(function () {    var userdbId = \\"${adveritcum_customtarget_userdbId}\\" || 74,        confObj = {\'uType\':\'uType\'} || {},        replaceAccents = function(str) {            var rExps=[                {re:/\\u00f6/g, ch:\'o\'},                {re:/\\u00fc/g, ch:\'u\'},                {re:/\\u00f3/g, ch:\'o\'},                {re:/\\u0151/g, ch:\'o\'},                {re:/\\u00fa/g, ch:\'u\'},                {re:/\\u00e9/g, ch:\'e\'},                {re:/\\u00e1/g, ch:\'a\'},                {re:/\\u0171/g, ch:\'u\'},                {re:/\\u00ed/g, ch:\'i\'}            ];            for(var i=0, len=rExps.length; i<len; i++)                str=str.replace(rExps[i].re, rExps[i].ch);            return str;        };    if (typeof atob != \'undefined\' && typeof _ceCTSData != \'undefined\' && confObj != {}) {        var origMeta = \'\',            newContent = \'\',            userDbStr = \'userdb_id\',            adverticumMeta;        for (var key in confObj) {            if (confObj.hasOwnProperty(key) && _ceCTSData.hasOwnProperty(key)) {                newContent += confObj[key] + \'=\' + _ceCTSData[key] + \'&\';            }        }        newContent = replaceAccents(newContent);        if (newContent != \\"\\") {            if (document.getElementsByName(\'customtarget\').length != 0) {                adverticumMeta = document.getElementsByName(\'customtarget\')[0];                origMeta = atob(adverticumMeta.content);            } else {                adverticumMeta = document.createElement(\'meta\');                adverticumMeta.name = \'customtarget\';                document.getElementsByTagName(\'head\')[0].appendChild(adverticumMeta);            }            if (origMeta != \\"\\") {                if (origMeta.indexOf(userDbStr + \\"=\\" + userdbId) != -1) {                    var newMeta = userDbStr + \\"=\\" + userdbId + \'&\' + newContent.replace(/&$/g, \'\');                    origMeta = origMeta.replace(userDbStr + \\"=\\" + userdbId, newMeta);                    adverticumMeta.content = btoa(origMeta);                } else {                    adverticumMeta.content = btoa(userDbStr + \'=\' + userdbId + \'&\' + newContent.replace(/&$/g, \'\'));                }            } else {                adverticumMeta.content = btoa(userDbStr + \'=\' + userdbId + \'&\' + newContent.replace(/&$/g, \'\'));            }        }    }})();</script>\"}, {\"service_name\": \"Sanoma\", \"weight\": null, \"source\": \"<script src=\\"//stat.p24.hu/CTS/helper-scripts/subscriptionDetect/subscriptionDetect.min.js\\"></script><script>    var _ceSubscriptionDetect = new subscriptionDetect(\'{\\"cookieKey\\": \\"blaize_jwt\\", \\"subscribedKw\\": [\\"subscriber\\"], \\"hostName\\": \\"noklapja2.p24.hu\\"}\');</script>\"}, {\"service_name\": \"Google Adverts\", \"weight\": null, \"source\": \"<script>    (function () {        if (window.Element && !Element.prototype.closest) {            Element.prototype.closest = function (s) {                var matches = (this.document || this.ownerDocument).querySelectorAll(s),                    i,                    el = this;                do {                    i = matches.length;                    while (--i >= 0 && matches.item(i) !== el) { };                } while ((i < 0) && (el = el.parentElement));                return el;            };        }        window.googletag = window.googletag || { cmd: [] };        googletag.cmd.push(function () {            window.googletag.pubads().addEventListener(\'slotRenderEnded\', function (event) {                if (event.isEmpty) {                    var slotEl = document.getElementById(event.slot.getSlotId().getDomId());                    try {                        var advEl = slotEl.closest(\\".goAdverticum\\");                        if (advEl != undefined && advEl != null && advEl.contains(slotEl)) {                            slotEl = advEl;                        }                    } catch (e) { }                    slotEl.style.display = \'none\';                }            });        });    })();</script>\"}]';
  this.positions_weighted['head'] = false;
  
  this.positions['list-content-top'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'${adv_zone_id_for_desktop}\';                        dataAdsvName = \'${adverticum_name}\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066520\';                        dataAdsvName = \'${adverticum_name_mobile}\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'${adverticum_name}\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['list-content-top'] = false;
  
  this.positions['right010'] = '[]';
  this.positions_weighted['right010'] = false;
  
  this.positions['list-content010'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6066495\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066522\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['list-content010'] = false;
  
  this.positions['list-content020'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6066496\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066523\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['list-content020'] = false;
  
  this.positions['list-content030'] = '[]';
  this.positions_weighted['list-content030'] = false;
  
  this.positions['content-top'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6066481\';                        dataAdsvName = \'top\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066520\';                        dataAdsvName = \'${adverticum_name_mobile}\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'top\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['content-top'] = false;
  
  this.positions['content-right010'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6066504\';                        dataAdsvName = \'box1\';                        break;                    case \'mobile\':                        zoneForDevice = \'${adv_zone_id_for_mobile}\';                        dataAdsvName = \'${adverticum_name_mobile}\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'box1\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['content-right010'] = false;
  
  this.positions['roadblock010'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6066507\';                        dataAdsvName = \'roadblock\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066527\';                        dataAdsvName = \'mobil_waterfall2\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'roadblock\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['roadblock010'] = false;
  
  this.positions['roadblock020'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6066508\';                        dataAdsvName = \'roadblock2\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066528\';                        dataAdsvName = \'mobil_waterfall3\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'roadblock2\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['roadblock020'] = false;
  
  this.positions['roadblock030'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'${adv_zone_id_for_desktop}\';                        dataAdsvName = \'${adverticum_name}\';                        break;                    case \'mobile\':                        zoneForDevice = \'6108544\';                        dataAdsvName = \'mobil_waterfall4\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'${adverticum_name}\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['roadblock030'] = false;
  
  this.positions['content-bottom'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6130745\';                        break;                    case \'mobile\':                        zoneForDevice = \'6130745\';                        break;                    case \'tablet\':                        zoneForDevice = \'6130745\';                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['content-bottom'] = false;
  
  this.positions['list-content040'] = '[]';
  this.positions_weighted['list-content040'] = false;
  
  this.positions['list-content-bottom'] = '[]';
  this.positions_weighted['list-content-bottom'] = false;
  
  this.positions['gallery-content010'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ajaxZoneTemp\\" class=\\"a8a263be\\" data-adsv-name=\\"\\" ctsStyle=\\"${custom_css}\\" style=\\"display: none;\\"></div><script>    (function () {        window.goAdverticum3.onReady(function (goa3) {            var $ = goa3.getjQuery();            var insertedElement = document.getElementById(\'ajaxZoneTemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData() != undefined && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6108350\';                        dataAdsvName = \'${adverticum_name}\';                        break;                    case \'mobile\':                        zoneForDevice = \'${adv_zone_id_for_mobile}\';                        dataAdsvName = \'${adverticum_name_mobile}\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\' || \'6108350\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'${adverticum_name}\';                        }                        break;                }            }            if (!isSubscribed && zoneForDevice == \'\') {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.id = \'ajaxZone\' + zoneForDevice;                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }                $(\\"#ajaxZone\\" + zoneForDevice).goa(zoneForDevice, {                    p: 100, zP: \\"\\", fP: \\"\\", cT: \\"\\"                });            }        });    })();</script>\"}]';
  this.positions_weighted['gallery-content010'] = false;
  
  this.positions['gallery-right010'] = '[]';
  this.positions_weighted['gallery-right010'] = false;
  
  this.positions['content010'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'${adv_zone_id_for_desktop}\';                        dataAdsvName = \'${adverticum_name}\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066526\';                        dataAdsvName = \'mobil_waterfall\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'${adverticum_name}\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['content010'] = false;
  
  this.positions['list-content-top'] = '[]';
  this.positions_weighted['list-content-top'] = false;
  
  this.positions['list-content010'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6066454\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066516\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['list-content010'] = false;
  
  this.positions['list-content030'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6066501\';                        dataAdsvName = \'box2\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066519\';                        dataAdsvName = \'mobil_waterfall4\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'box2\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['list-content030'] = false;
  
  this.positions['list-content040'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6066455\';                        break;                    case \'mobile\':                        zoneForDevice = \'6108463\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['list-content040'] = false;
  
  this.positions['list-content-bottom'] = '[]';
  this.positions_weighted['list-content-bottom'] = false;
  
  this.positions['right010'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6078689\';                        dataAdsvName = \'box1\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066517\';                        dataAdsvName = \'mobil_waterfall2\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'box1\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['right010'] = false;
  
  this.positions['list-content020'] = '[{\"service_name\": \"Adverticum AdServer\", \"weight\": null, \"source\": \"<div id=\\"ctstemp\\" class=\\"goAdverticum a8a263be\\" style=\\"display: none;\\"><script>        (function () {            var insertedElement = document.getElementById(\'ctstemp\');            var zoneForDevice = \'\';            var dataAdsvName = \'\';            var isSubscribed = false;            if (typeof _ceSubscriptionDetect != \'undefined\' && _ceSubscriptionDetect.getSubscriptionData().isSubscribed) {                isSubscribed = true;            }            if (typeof _ceDeviceDetect.getDeviceType() !== \'undefined\') {                switch (_ceDeviceDetect.getDeviceType()) {                    case \'desktop\':                        zoneForDevice = \'6106259\';                        dataAdsvName = \'top\';                        break;                    case \'mobile\':                        zoneForDevice = \'6066518\';                        dataAdsvName = \'mobil_waterfall3\';                        break;                    case \'tablet\':                        zoneForDevice = \'${adv_zone_id_for_tablet}\';                        dataAdsvName = \'${adverticum_name_tablet}\';                        if (dataAdsvName == \\"\\") {                            dataAdsvName = \'top\';                        }                        break;                }            }            if (zoneForDevice == \'\' || isSubscribed) {                insertedElement.parentNode.removeChild(insertedElement);            } else {                insertedElement.setAttribute(\'data-adsv-name\', dataAdsvName);                insertedElement.id = \'zone\' + zoneForDevice;                if (insertedElement.getAttribute(\\"ctsStyle\\") != null) {                    insertedElement.style = insertedElement.getAttribute(\\"ctsStyle\\");                    insertedElement.removeAttribute(\\"ctsStyle\\");                } else {                    insertedElement.removeAttribute(\\"style\\");                }            }        })();    </script></div>\"}]';
  this.positions_weighted['list-content020'] = false;
}

Tagging.prototype.get_json = function(text) {
  return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(text.replace(/"(\\.|[^"\\])*"/g, '')))
         && eval('(' + text + ')');
}

Tagging.prototype.random_tag = function(position) {
  var tags = [];
  var weighted_tags = [];

  for (index in position) {
    tag = position[index];
    tags[index] = tag.source;

    for (var i = 0; i < tag.weight; i++) {
      weighted_tags.push(index);
    }
  }

  // Pick a random tag from array based on weight
  var random_index = weighted_tags[Math.floor((Math.random() * weighted_tags.length))];
  return tags[random_index];
}

Tagging.prototype.all_tags = function(position) {
  var tags = [], index, tag;
  for (index in position) {
    tag = position[index];
    tags[index] = tag.source;
  }
  return tags.join("\n");
}

Tagging.prototype.render = function(slug, context) {
    document.write(this.get_source(slug, context));
}

Tagging.prototype.get_source = function(slug, context) {
  if (typeof this.positions[slug] == 'undefined') {
    // This position doesn't exist, call the autodetect
    this._detect(slug);
  } else {
    var position = this.get_json(this.positions[slug]);
    var tag_source = "";

    if (this.positions_weighted[slug]) {
      tag_source = this.random_tag(position)
    } else {
      tag_source = this.all_tags(position);
    }

    // Replace variables
    var variables = {};
    for (variable in this.context) {
      variables[variable] = this.context[variable];
    }
    for (variable in context) {
      variables[variable] = context[variable];
    }
    tag_source = this._replace_variables(tag_source, variables);

    // Remove unset variables and return result
    return tag_source.replace(/\$\w+/g, "").replace(/\${\w+}/g, "");
  }
  return '';
}

Tagging.prototype.log = function(err) {
  //this._load(error_endpoint);
}

Tagging.prototype._load = function(url) {
  var head = document.getElementsByTagName('head')[0] || document.documentElement,
      script = document.createElement('script');

  script.type = 'text/javascript';
  script.src = url;
  head.appendChild(script);
}

Tagging.prototype._detect = function(position) {
  this._load(this.autodetect_url + this.site +'/'+ this.zone +'/' + position + '/');
}

Tagging.prototype._replace_variables = function(content, variables) {
  var RE_VALID_IDENT = /^[a-zA-Z_]\w*$/;
  for (variable in variables) {
    if (RE_VALID_IDENT.test(variable)) {
      var regexes = [new RegExp('\\$' + variable, 'g'), new RegExp('\\${' + variable + '}', 'g')];

      for (re in regexes) {
        content = content.replace(regexes[re], variables[variable]);
      }
    } else {
      throw "'" + variable + "' is not a valid identifier.";
    }
  }
  return content;
}



