var googletag     = googletag || {};
    googletag.cmd = googletag.cmd || [];

var PB        = PB || {};
    PB.gptAds = PB.gptAds || {};
    PB.PBJS   = PB.PBJS || {};

var footer = "<!-- Begin comScore Tag --><script>var _comscore = _comscore || [];_comscore.push({ c1: \"2\", c2: \"6036161\" });(function() {var s = document.createElement(\"script\"), el = document.getElementsByTagName(\"script\")[0]; s.async = true;s.src = (document.location.protocol == \"https:\" ? \"https:\/\/sb\" : \"http:\/\/b\") + \".scorecardresearch.com\/beacon.js\";el.parentNode.insertBefore(s, el);})();<\/script><noscript><img src=\"http:\/\/b.scorecardresearch.com\/p?c1=2&c2=6036161&cv=2.0&cj=1\" \/><\/noscript><!-- End comScore Tag -->";

/*
  ====================================================================================
  Init: before DOM is loaded
  ====================================================================================
*/
(function(callable, hasPrebid) {

    // Load GPT library
    (function(){
        var gads = document.createElement('script');
        gads.async = true;
        gads.type = 'text/javascript';
        var useSSL = 'https:' == document.location.protocol;
        gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js';
        var node = document.getElementsByTagName('script')[0];
        node.parentNode.insertBefore(gads, node);
    })();

    // Disable initial load
    
    // Define Ad slots
                                                (function(){
            googletag.cmd.push(function() {
                /*Initialization for slot: ROS - ATF - 728x90*/
                                        adSlot = googletag.defineSlot('/4403/cr/dvdreview/ros', [[728, 90]], 'ros_7827').addService(googletag.pubads()).setTargeting("pos", "a").setTargeting("site", "cr/dvdreview").setTargeting("sect", "ros");

                    scriptObj = document.getElementById('evolveUniversal');
                    if (scriptObj) {
                        var customTargets = Array.prototype.filter.call(scriptObj.attributes, function(at) { return /^data-targeting-/.test(at.name); });
                        for (i = 0; i < customTargets.length; i++) {
                            adSlot.setTargeting(customTargets[i].name.substr("data-targeting-".length), customTargets[i].value);
                        }

                        var sizemap = scriptObj.attributes.getNamedItem('data-sizemap-7827');
                        if (sizemap) {
                            var mapping = googletag.sizeMapping();
                            var sizemaps = sizemap.value.split('|')
                            for (i = 0; i < sizemaps.length; i++) {
                                eval("mapping.addSize(" + sizemaps[i] + ");");
                            }
                            mapping = mapping.build();
                            adSlot.defineSizeMapping(mapping);
                        }
                    }

                    PB.gptAds['ros_7827'] = adSlot;

                    googletag.pubads().enableSingleRequest();
                    googletag.pubads().disableInitialLoad();
                    googletag.pubads().collapseEmptyDivs(true);
                    googletag.enableServices();
            });
        })();
                                                    (function(){
            googletag.cmd.push(function() {
                /*Initialization for slot: ROS - ATF - 300x250*/
                                        adSlot = googletag.defineSlot('/4403/cr/dvdreview/ros', [[300, 250]], 'ros_7829').addService(googletag.pubads()).setTargeting("pos", "a").setTargeting("site", "cr/dvdreview").setTargeting("sect", "ros");

                    scriptObj = document.getElementById('evolveUniversal');
                    if (scriptObj) {
                        var customTargets = Array.prototype.filter.call(scriptObj.attributes, function(at) { return /^data-targeting-/.test(at.name); });
                        for (i = 0; i < customTargets.length; i++) {
                            adSlot.setTargeting(customTargets[i].name.substr("data-targeting-".length), customTargets[i].value);
                        }

                        var sizemap = scriptObj.attributes.getNamedItem('data-sizemap-7829');
                        if (sizemap) {
                            var mapping = googletag.sizeMapping();
                            var sizemaps = sizemap.value.split('|')
                            for (i = 0; i < sizemaps.length; i++) {
                                eval("mapping.addSize(" + sizemaps[i] + ");");
                            }
                            mapping = mapping.build();
                            adSlot.defineSizeMapping(mapping);
                        }
                    }

                    PB.gptAds['ros_7829'] = adSlot;

                    googletag.pubads().enableSingleRequest();
                    googletag.pubads().disableInitialLoad();
                    googletag.pubads().collapseEmptyDivs(true);
                    googletag.enableServices();
            });
        })();
                                                    (function(){
            googletag.cmd.push(function() {
                /*Initialization for slot: ROS - BTF - 300x250 */
                                        adSlot = googletag.defineSlot('/4403/cr/dvdreview/ros', [[300, 250]], 'ros_7831').addService(googletag.pubads()).setTargeting("pos", "b").setTargeting("site", "cr/dvdreview").setTargeting("sect", "ros");

                    scriptObj = document.getElementById('evolveUniversal');
                    if (scriptObj) {
                        var customTargets = Array.prototype.filter.call(scriptObj.attributes, function(at) { return /^data-targeting-/.test(at.name); });
                        for (i = 0; i < customTargets.length; i++) {
                            adSlot.setTargeting(customTargets[i].name.substr("data-targeting-".length), customTargets[i].value);
                        }

                        var sizemap = scriptObj.attributes.getNamedItem('data-sizemap-7831');
                        if (sizemap) {
                            var mapping = googletag.sizeMapping();
                            var sizemaps = sizemap.value.split('|')
                            for (i = 0; i < sizemaps.length; i++) {
                                eval("mapping.addSize(" + sizemaps[i] + ");");
                            }
                            mapping = mapping.build();
                            adSlot.defineSizeMapping(mapping);
                        }
                    }

                    PB.gptAds['ros_7831'] = adSlot;

                    googletag.pubads().enableSingleRequest();
                    googletag.pubads().disableInitialLoad();
                    googletag.pubads().collapseEmptyDivs(true);
                    googletag.enableServices();
            });
        })();
                                                    (function(){
                googletag.cmd.push(function() {
                    /*Initialization for ros out of page slot*/
                                        adSlot = googletag.defineOutOfPageSlot('/4403/cr/dvdreview/ros', 'ros_adoop').addService(googletag.pubads()).setTargeting("site", "cr/dvdreview").setTargeting("sect", "ros");
                    scriptObj = document.getElementById('evolveUniversal');
                    if (scriptObj) {
                        var customTargets = Array.prototype.filter.call(scriptObj.attributes, function(at) { return /^data-targeting-/.test(at.name); });
                        for (i = 0; i < customTargets.length; i++) {
                            adSlot.setTargeting(customTargets[i].name.substr("data-targeting-".length), customTargets[i].value);
                        }

                        var sizemap = scriptObj.attributes.getNamedItem('data-sizemap-7825');
                        if (sizemap) {
                            var mapping = googletag.sizeMapping();
                            var sizemaps = sizemap.value.split('|')
                            for (i = 0; i < sizemaps.length; i++) {
                                eval("mapping.addSize(" + sizemaps[i] + ");");
                            }
                            mapping = mapping.build();
                            adSlot.defineSizeMapping(mapping);
                        }
                    }

                    PB.gptAds['ros_adoop'] = adSlot;

                    googletag.pubads().enableSingleRequest();
                    googletag.pubads().disableInitialLoad();
                    googletag.pubads().collapseEmptyDivs(true);
                    googletag.enableServices();
                });
        })();
                                        
    // DOM preload function
    (function checkDOMStatus(callable, hasPrebid){
        if (hasPrebid()) {
            if (PB.PBJS.Done && document.readyState == 'complete') {
                callable.call();
            } else {
                setTimeout(function() {
                    checkDOMStatus(callable, hasPrebid);
                }, 100);
            }
        } else {
            if (document.readyState == 'complete') {
                callable.call();
            } else {
                setTimeout(function() {
                    checkDOMStatus(callable, hasPrebid);
                }, 100);
            }
        }
    })(callable, hasPrebid);


    /*
      ====================================================================================
      Trigger: after DOM is loaded
      ====================================================================================
    */
    })(function() {
        // Load Ad slots
        var adsPresent = [];
        for (key in PB.gptAds) {
            if (document.getElementById(key)) {
                // this line is needed for the refresh method to work correctly
                googletag.cmd.push(function() { googletag.display(key); });
                adsPresent.push(PB.gptAds[key]);
            }
        };

        // loading the ads in one single request
        googletag.pubads().refresh(adsPresent);
        evolveFooter = document.getElementById('evolve_footer');
        if (evolveFooter) {
            evolveFooter.innerHTML = footer;
            evolveFooterScripts = evolveFooter.getElementsByTagName('script');
            for (i = 0; i < evolveFooterScripts.length; i++) {
                eval(evolveFooterScripts[i].innerHTML);
            }
        }

        // all set
        PB.PBJS.AdsRequested = true;
    }, function() {
        if (typeof PB.PBJS === 'object' && typeof PB.PBJS.Done === 'boolean') {
            return true;
        }

        return false;
    });

