Difference between revisions of "MediaWiki:Common.js"

From DKC Speedruns
Jump to: navigation, search
(Blanked the page)
(Tag: Blanking)
Line 1: Line 1:
var body = document.getElementsByTagName('body')[0];
 
if (window.location.href == 'https://dkcspeedruns.com/Main_Page') {
 
    var donkey, clickbait, krool;
 
    donkey = document.createElement('span');
 
    donkey.className = 'donkey-vine';
 
    body.appendChild(donkey);
 
    donkeyImg = document.createElement('img');
 
    donkeyImg.src = 'https://lh3.googleusercontent.com/UYBai93vGYTw8DVk6J8QHkOVAXmpoCEDRcKvs0pT5iuv74EmQ2eN4krEBpshe86BLOoHa4wXZam9rsLuEw=s0';
 
    donkey.appendChild(donkeyImg);
 
    clickbait = document.createElement('img');
 
    clickbait.src = 'https://lh3.googleusercontent.com/760F0_U8_5oCZWlet9Y9kH-doyQDStZDhz9eVu0nBSn2RIKIMmY-frJWwTVgsADbhffbTuBjr2I1gJtsPQ=s0';
 
    clickbait.id = "clickbait";
 
    document.getElementById('bodyContent').insertBefore(clickbait, document.getElementById('bodyContent').firstChild);
 
    krool = document.createElement('div');
 
    krool.id = 'krool';
 
    krool.className = 'pop-out';
 
    krool.className += ' paused';
 
    body.appendChild(krool);
 
    clickbait.onclick = function() {
 
        krool.classList.remove('paused');
 
    }
 
}
 
  
if (window.location.href == 'https://dkcspeedruns.com/Leaderboards' || window.location.href == 'https://dkcspeedruns.com/Leaderboards/Misc_Categories') {
 
    document.getElementById('firstHeading').style.border = 'none';
 
    var editLinks = document.getElementsByClassName('mw-editsection-visualeditor');
 
    for (var i = 0; i < editLinks.length; i++) {
 
        editLinks[i].style.display = 'none';
 
        var newLink = document.createElement('a');
 
        newLink.href = 'https://dkcspeedruns.com/' + editLinks[i].href.substr(51).split('&')[0] + '?veaction=edit';
 
        newLink.innerHTML = 'edit',
 
            editLinks[i].parentNode.insertBefore(newLink, editLinks[i]);
 
    }
 
    var toc, container, gameTabs, gameTabsContainer, catTabs, games, gamesContainer, cats, catsContainer, currentGame;
 
    toc = document.getElementById('toc');
 
    container = document.getElementById('mw-content-text');
 
    toc.style.display = 'none';
 
    gameTabs = document.getElementById('mw-content-text').getElementsByTagName('h1');
 
    catTabs = document.getElementById('mw-content-text').getElementsByTagName('h2');
 
    currentGame = 0;
 
    $(gameTabs).each(function(i) {
 
        if (i == 0) {
 
            $(this).addClass('game-tab selected');
 
        } else {
 
            $(this).addClass('game-tab');
 
        }
 
        $(this).nextUntil('h1').wrapAll('<div class="game"></div>');
 
    });
 
    $(catTabs).each(function(i) {
 
        if (i == 0) {} else if (i == 1) {
 
            $(this).addClass('cat-tab selected');
 
        } else {
 
            $(this).addClass('cat-tab');
 
        }
 
        $(this).nextUntil('h2').wrapAll('<div class="cat"></div>');
 
    });
 
    games = document.getElementsByClassName('game');
 
    cats = document.getElementsByClassName('cat');
 
    gameTabsContainer = document.createElement('div');
 
    gameTabsContainer.id = 'game-tabs';
 
    body.appendChild(gameTabsContainer);
 
    while (gameTabs.length > 0) {
 
        gameTabsContainer.appendChild(gameTabs[0]);
 
    }
 
    container.insertBefore(gameTabsContainer, container.firstChild);
 
    for (var i = 0; i < games.length; i++) {
 
        var catTabsContainer = document.createElement('div');
 
        catTabsContainer.className = 'cat-tabs';
 
        var tabs = games[i].getElementsByClassName('cat-tab');
 
        while (tabs.length > 0) {
 
            catTabsContainer.appendChild(tabs[0]);
 
        }
 
        games[i].insertBefore(catTabsContainer, games[i].firstChild);
 
    };
 
    for (var i = 0; i < games.length; i++) {
 
        if (i == 0) {
 
            games[i].className += ' dkc-show';
 
        };
 
    }
 
    for (var i = 0; i < cats.length; i++) {
 
        if (i == 0) {
 
            cats[i].className += ' dkc-show';
 
        };
 
    }
 
    for (var i = 0; i < gameTabs.length; i++) {
 
        (function(index) {
 
            gameTabs[i].onclick = function() {
 
                showCurrentGame(index);
 
            }
 
        })(i);
 
    }
 
    var showCurrentGame = function(index) {
 
        if (currentGame != index) {
 
            currentGame = index;
 
            for (var k = 0; k < games.length; k++) {
 
                games[k].classList.remove('dkc-show');
 
                gameTabs[k].className = 'game-tab';
 
                var resetCatTabs = games[k].getElementsByClassName('cat-tab');
 
                for (var p = 0; p < resetCatTabs.length; p++) {
 
                    if (resetCatTabs[p].classList.contains('selected')) {
 
                        resetCatTabs[p].classList.remove('selected');
 
                    }
 
                }
 
                var resetCats = games[k].getElementsByClassName('cat');
 
                for (var p = 0; p < resetCats.length; p++) {
 
                    if (resetCats[p].classList.contains('dkc-show')) {
 
                        resetCats[p].classList.remove('dkc-show');
 
                    }
 
                }
 
            }
 
            gameTabs[index].className += ' selected';
 
            games[index].className += ' dkc-show';
 
            games[index].getElementsByClassName('cat')[0].className += ' dkc-show';
 
            games[index].getElementsByClassName('cat-tab')[0].className = 'cat-tab selected';
 
        } else {
 
            for (var k = 0; k < games.length; k++) {
 
                games[k].classList.remove('dkc-show');
 
            }
 
            games[index].className += ' dkc-show';
 
        }
 
    }
 
    for (var i = 0; i < catTabs.length; i++) {
 
        (function(index) {
 
            catTabs[i].onclick = function() {
 
                showCurrentCat(index - 1);
 
            }
 
        })(i);
 
    }
 
    var showCurrentCat = function(cat) {
 
        for (var k = 0; k < cats.length; k++) {
 
            cats[k].classList.remove('dkc-show');
 
            catTabs[k].className = 'cat-tab';
 
        }
 
        catTabs[cat + 1].className = 'cat-tab selected';
 
        cats[cat].className += ' dkc-show';
 
    }
 
    container.style.marginBottom = '-10px';
 
    container.style.display = 'block';
 
    createModals();
 
}
 
if (window.location.href.indexOf('Leaderboards') > -1) {
 
    body.classList.remove('page-Leaderboards');
 
    body.classList.remove('page-Leaderboards_Misc_Categories');
 
}
 
function createModals() {
 
    var currentGame = document.getElementsByClassName('dkc-show')[0];
 
    var gameTRs = document.getElementsByTagName('tr');
 
    for (var t = 0; t < gameTRs.length; t++) {
 
        if (gameTRs[t].lastChild.innerHTML.length > 1) {
 
            var newHTML = '<div>' + gameTRs[t].lastChild.innerHTML + '</div>';
 
            gameTRs[t].lastChild.innerHTML = newHTML;
 
        }
 
    }
 
    var games = document.getElementsByClassName('game');
 
    for (var g = 0; g < games.length; g++) {
 
        var links = games[g].getElementsByTagName('a');
 
        for (var a = 0; a < links.length; a++) {
 
            if (links[a].href.indexOf('youtu') > -1 || links[a].href.indexOf('twitch') > -1) {
 
                var link = links[a].href;
 
                links[a].setAttribute('data-embed', link);
 
                links[a].removeAttribute('href');
 
                links[a].onclick = function() {
 
                    var link = this.getAttribute('data-embed');
 
                    //document.getElementsByTagName('html')[0].className += ' ve-loading'; visual editor is ded
 
                    document.getElementsByTagName('html')[0].className += ' modalbg';
 
                    var modal = document.createElement('div');
 
                    var close = document.createElement('div');
 
                    close.id = "close";
 
                    close.onclick = function() {
 
                        document.getElementsByTagName('html')[0].className = document.getElementsByTagName('html')[0].className.substr(0, document.getElementsByTagName('html')[0].className.length - 8);
 
                        document.getElementById('modal').outerHTML = '';
 
                    }
 
                    modal.id = "modal";
 
                    if (link.indexOf('twitch') > -1) {
 
                        modal.innerHTML = '<iframe src="https://player.twitch.tv/?video=' + link.substr(link.length - 9) + '" height="100%" width="100%"></iframe>';
 
                        body.appendChild(modal);
 
                        modal.appendChild(close);
 
                    } else if (link.indexOf('youtu') > -1) {
 
                        modal.innerHTML = '<iframe src="https://www.youtube.com/embed/' + link.substr(link.length - 11) + '?autoplay=1" height="100%" width="100%"></iframe>';
 
                        body.appendChild(modal);
 
                        modal.appendChild(close);
 
                    }
 
                }
 
            }
 
        }
 
    }
 
}
 
 
// fixing this later
 
if (window.location.href == 'https://dkcspeedruns.com/Leaderboards/Misc_Categories') {
 
    body.onclick = function() {
 
        var tabs = document.getElementsByClassName('game dkc-show')[0].getElementsByClassName('cat-tabs')[0];
 
        var cat = document.getElementsByClassName('game dkc-show')[0].getElementsByClassName('cat dkc-show')[0];
 
        if (tabs.offsetHeight < cat.offsetHeight) {
 
            document.getElementById('mw-content-text').style.height = cat.offsetHeight + 38 + "px";
 
        } else {
 
            document.getElementById('mw-content-text').style.height = tabs.offsetHeight + 55 + "px";
 
        }
 
    }
 
    var clear = document.getElementsByClassName('mw-parser-output')[0], child = clear.firstChild, nextChild;
 
    while (child) {
 
        nextChild = child.nextSibling;
 
        if (child.nodeType == 3) {
 
            clear.removeChild(child);
 
        }
 
        child = nextChild;
 
    }
 
}
 

Revision as of 09:34, 27 November 2019