function updateLiveblogAdPlaceholders()

in ArticleTemplates/assets/js/modules/ads.js [53:92]


function updateLiveblogAdPlaceholders(reset) {
    let i;
    let advertSlots;
    let mpu;
    let block;
    // The selector here is taking all .block elements within article body
    // which are not siblings of contributions-epic__container
    const blocks = document.querySelectorAll('.article__body > .block:first-child, .article__body > div:not(.contributions-epic__container) + .block');

    if (reset) {
        advertSlots = document.getElementsByClassName('advert-slot--mpu');

        while(advertSlots.length > 0){
            advertSlots[0].parentNode.removeChild(advertSlots[0]);
        }

        numberOfMpus = 0;
    }

    for (i = 0; i < blocks.length; i++) {
        block = blocks[i];
        if (i === 2 || i === 7) {
            numberOfMpus++;
            mpu = createMpu(numberOfMpus);
            if (block.nextSibling) {
                block.parentNode.insertBefore(mpu, block);
            } else {
                block.parentNode.appendChild(mpu);
            }
        }
    }

    if (reset) {
        if (GU.opts.platform === 'android') {
            updateAndroidPosition();
        } else {
            signalDevice('ad_moved');
        }
    }
}