//<script>
    (function(global) {
        "use strict";

        if (window.disableITGS === true) {
            console.log("(Kiosked) Loading cancelled.");
            return;
        }

        global.ITGS = global.ITGS || {loadedMedias:{}};

        var options = {"siteId":9313,"publisherId":9229,"domainName":"widgets.kiosked.com","resDomainName":"http:\/\/resources.kiosked.com","loader":"http:\/\/resources.kiosked.com\/scripts\/kiosked-endpoint-2.0.4.js","loaderWithDiag":"http:\/\/resources.kiosked.com\/scripts\/kiosked-endpoint-diagnostics-2.0.4.js","scriptUrl":"\/\/widgets.kiosked.com\/ssp\/placement-identifier\/?pub=9229\u0026site=9313\u0026env=production\u0026ref=http%3A%2F%2Fwww.ibtimes.co.uk%2Fgameover-slavik-cybercrime-kingpin-behind-zeus-malware-1451095","environment":"production","ipAddress":"140.247.201.10","endPoint":"widgets.kiosked.com\/ssp\/zone-data","maxKioskedImages":0,"countryCode":"US","sampleRate":0.1,"libraryVersion":"2.0.4","settingsData":{"settings":[{"key":"ui.sniff.disableKiosksInElements","value":".side-contents img","target":null,"targetDeviceFamily":"0","lastUpdate":"0","meta":{"origin":"override"}},{"key":"ui.media.overridePlugins","value":"BannerSlot","target":null,"targetDeviceFamily":"0","lastUpdate":"1415800334","meta":{"origin":"override"}},{"key":"ui.media.Banner.horizontalZoneId","value":"269","target":null,"targetDeviceFamily":"0","lastUpdate":"1446139342","meta":{"origin":"override"}},{"key":"ui.sniff.minMediaWidth","value":"400","target":null,"targetDeviceFamily":"0","lastUpdate":"1428493486","meta":{"origin":"override"}},{"key":"ui.sniff.maxBanners","value":"10","target":null,"targetDeviceFamily":"0","lastUpdate":"1411042841","meta":{"origin":"override"}},{"key":"ui.media.Banner.minMediaSize.horizontalWidth","value":"400","target":null,"targetDeviceFamily":"1","lastUpdate":"1440171460","meta":{"origin":"override"}},{"key":"ui.media.Banner.provider","value":"iow","target":null,"targetDeviceFamily":"0","lastUpdate":"1446139329","meta":{"origin":"override"}},{"key":"ui.media.Banner.mobileZoneId","value":"270","target":null,"targetDeviceFamily":"2","lastUpdate":"1446139351","meta":{"origin":"override"}},{"key":"ui.sniff.disableOnPagesWithElement","value":"a[href=\"\/topics\/isis\" class=\"tag\"]","target":null,"targetDeviceFamily":"0","lastUpdate":"1432670596","meta":{"origin":"override"}},{"key":"ui.media.maxPlugins.BannerSlot","value":"3","target":null,"targetDeviceFamily":"0","lastUpdate":"1441382586","meta":{"origin":"override"}},{"key":"ui.sniff.sendZoneDataRequests","value":"true","target":null,"targetDeviceFamily":"0","lastUpdate":"1427467223","meta":{"origin":"override"}},{"key":"ui.media.cutSizeFromParents","value":"auto","target":null,"targetDeviceFamily":"0","lastUpdate":"0","meta":{"origin":"default"}},{"key":"ui.media.zIndex","value":"auto","target":null,"targetDeviceFamily":"0","lastUpdate":"0","meta":{"origin":"default"}},{"key":"ui.sniff.minMediaHeight","value":"200","target":null,"targetDeviceFamily":"0","lastUpdate":"0","meta":{"origin":"default"}},{"key":"ui.media.Banner.minMediaSize.horizontalWidth","value":"300","target":null,"targetDeviceFamily":"0","lastUpdate":"0","meta":{"origin":"default"}},{"key":"ui.media.overlays.Disclaimer.containerWidth","value":"264","target":null,"targetDeviceFamily":"0","lastUpdate":"0","meta":{"origin":"default"}},{"key":"ui.media.overlays.Disclaimer.disclaimerText","value":"Advertisement","target":null,"targetDeviceFamily":"0","lastUpdate":"0","meta":{"origin":"default"}},{"key":"ui.media.Banner.showDisclaimer","value":"true","target":null,"targetDeviceFamily":"0","lastUpdate":"0","meta":{"origin":"default"}},{"key":"ui.sniff.disableIndexPageAnalysis","value":"true","target":null,"targetDeviceFamily":"0","lastUpdate":"1409222197","meta":{"origin":"default"}},{"key":"ui.media.overlays.Disclaimer.disclaimerLink","value":"http:\/\/page.kiosked.com\/who-served-this-ad","target":null,"targetDeviceFamily":"0","lastUpdate":"1412848290","meta":{"origin":"default"}},{"key":"ui.sniff.quantcastEnabled","value":"true","target":null,"targetDeviceFamily":"0","lastUpdate":"1423226192","meta":{"origin":"default"}},{"key":"ui.media.Banner.waterfallAnalyticsEnabled","value":"true","target":null,"targetDeviceFamily":"0","lastUpdate":"1441089555","meta":{"origin":"default"}},{"key":"ui.libraryVersion","value":"2.0.4","target":null,"targetDeviceFamily":"0","lastUpdate":"1446205201","meta":{"origin":"default"}}],"meta":{"appliedAbTest":null,"appliedAbTestStatus":0}},"trackingUser":{"c":"11f5883daad1ebf30195b196530bee9f2ee95853","a":{"f":"","d":"","g":""},"l":""}};
        if (!options || (typeof options !== "object")) {
            throw new Error("Options is empty or null - cannot load!");
        }
        options.cachedZoneResponse = [];
        var scriptLoadInterval = null;

        function fixCache(scriptURL) {
            var qString = scriptURL.replace(/^.+?(\/\?|\.js\?)/, ""),
                targetURL = "https://resources.kiosked.com/res/cache_clear.html?" + qString;
            var iframe = document.createElement("iframe"),
                shouldRefresh = true;
            iframe.src = targetURL;
            iframe.style.display = "none";
            iframe.onload = function() {
                if (shouldRefresh) {
                    iframe.contentWindow.postMessage("kskdRefresh", '*');
                }
                shouldRefresh = false;
            };
            document.body.appendChild(iframe);
        }

        function initialise() {
            var namespace = global.ITGS;
            if (namespace.mediaJsLoading === "done") {
                clearInterval(scriptLoadInterval);
                var libLoadTime = namespace.tools.environment.getCurrentTimestamp();
                namespace.messaging.prepareTimingController().then(function(timingController) {
                    timingController.registerEvent("libLoad",{},libLoadTime);
                });
                namespace.tools.environment.setContext(options.environment);
                namespace.tools.environment.setDomainName(options.domainName);
                namespace.tools.environment.setIPAddress(options.ipAddress);
                namespace.tools.environment.setPublisherID(options.publisherId);


                var pageUri = namespace.tools.environment.getPageUrl();

                var usingKCDN = 0,
                    flattenedByUrl = [];
                if (usingKCDN){
                    //To be done, check what data we get from backend (task on progress in platform)
                    flattenedByUrl = namespace.settingsFlattenerByUri(options.settingsData.settings, pageUri);
                } else {
                    flattenedByUrl = options.settingsData.settings;
                }

                var deviceFilter = new namespace.SettingsDeviceFilter(flattenedByUrl);
                options.settingsData.settings = deviceFilter.getMergedSettingsForCurrentDevice();

                overrideFunctions();
                namespace.messaging.libraryInit();

                var sla = new namespace.Sniffing.SettingsLayoutAdapter(
                    namespace.tools.deepClone(options.settingsData.settings)
                );
                options.settingsData.settings = sla.getSettingsInNewLayout();


                namespace.snifferController = new namespace.Sniffing.SnifferController(options);
                namespace.snifferController.setAdZoneTemplates(
                    ITGS.AdZoneTemplate.extractFromData(options.adZoneTemplate || [])
                );
                namespace.snifferController.start();

                // Cache Diff
                var bakedVersion = namespace.Bootstrap._bakedVersion,
                    settingsVersion = options.libraryVersion;

                var cacheNeedsFix = false;
                if (bakedVersion === "2.0.1" || bakedVersion === "2.0.2") {
                    console.log("-> Fixing cache");
                    cacheNeedsFix = true;
                    fixCache(ITGS.loadedScript);
                }

                // Send the event
                var pageData = namespace.tools.environment.getAnalyticsPageData();
                pageData[namespace.Config.ANALYTICS_EVENT_NAME_PROPERTY] = "oldCache";
                pageData["debug.baked_version"] = bakedVersion;
                pageData["debug.settings_version"] = settingsVersion;
                pageData["debug.old_cache"] = cacheNeedsFix;
                namespace.messaging.dispatch(namespace.Config.ANALYTICS_EVENT_NAME, pageData);
            }
        }

        function overrideFunctions() {
            ITGS.overrideFunctions = {};
            ITGS.overrideFunctions['SnifferUtilities.processPageURL'] = function(url) {return ITGS.Facades.URLProcessing.getURLPathOnly(url);};
        }

        // Functionality for diagnostics switching
        var targetLoader = options.loader;
        if ((window.ITGS_load_diagnostics === true) &&
            (options.loaderWithDiag && (options.loaderWithDiag.length > 0))) {
            targetLoader = options.loaderWithDiag;
        }

        var bakeCallback = function(loadScript) {
            if (loadScript) {
                // Cache invalid, load from remote
                (function (scriptSrc) {
                    if (typeof global.ITGS.mediaJsLoading !== "string") {
                        global.ITGS.mediaJsLoading = "loading";
                        var s = document.createElement('script');
                        s.setAttribute('src', scriptSrc);
                        s.setAttribute('async', 'async');
                        s.setAttribute('type', 'text/javascript');
                        document.getElementsByTagName('head')[0].appendChild(s);
                    }
                })(targetLoader);
            }
        };
        global.ITGS.Bootstrap.setBakeCompletedCallback(function(usedBake) {
            (bakeCallback)(!usedBake);
        });

        scriptLoadInterval = setInterval(initialise, 100);

        if (window.ITGS_load_diagnostics === true) {
            (bakeCallback)(true);
        } else {
            (function (scriptURL) {
                var matches = scriptURL.match(/(kiosked-endpoint-|get-kiosk-script\?)(\d{1,}\.\d{1,}\.\d{1,})(\.js)?/),
                    setVersion = false,
                    version;
                if (matches !== null){
                    version = matches[2];
                } else {
                    console.warn("(Kiosked) Library version unset");
                }
                try {
                    global.ITGS.Bootstrap.loadHandler.setCachedLibraryVersion(version);
                    setVersion = true;
                } catch (e) {
                    console.warn("(Kiosked) Failed storing version: ", e.message);
                } finally {
                    if (setVersion === true) {
                        ITGS.Bootstrap.processBake();
                    } else {
                        // failed to set the version, so load the main library from remote
                        console.log("(Kiosked) Loading library from remote");
                        (bakeCallback)(true);
                    }
                }
            })(options.loader);
        }

    })(window);