User:Greenpickle/monobook.js: Difference between revisions

From Pikipedia, the Pikmin wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
document.write('<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEdDiff.js&action=raw&ctype=text/javascript&"></script>\n<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript"></script>');
/*
var RCNSTStartHidden = ['User', 'User talk', 'User creation log'];


include = false;
document.write('<script type="text/javascript" src="https://pikminwiki.com/index.php?title=User:Greenpickle/rcnst.js&action=raw&ctype=text/javascript"><\/script>');
RCNSTList = ['User', 'User talk', 'User blog', 'User blog talk', 'User blog comment', 'User blog comment talk', 'User avatar log', 'User creation log'];
*/
RCNSTPageListInclude = [];
RCNSTPageListExclude = [];
RCNSTbeforecheckboxes = '<span id="rcnst"><hr />\n';
RCNSTaftercheckboxes = '</span>';
RCNSTbeforecheckbox = '';
RCNSTaftercheckbox = '\n';
document.write('<script type="text/javascript" src="http://pikminwiki.com/index.php?title=User:Greenpickle/rcnst.js&action=raw&ctype=text/javascript"></script>');


var switchableAnchorPrefix = '';
var patrol = $('.patrollink');
 
if (patrol && patrol.length) patrol[0].children[0].setAttribute('accesskey', 'g');
function initialiseSwitchable () {
    // get the elements we care about
    switchable = getElementsByClassName(document, '*', 'switchable');
 
    // some functions
    switchable.createTab = function (label, isAnchor, i, j) {
        var tab = document.createElement('li');
        var child;
        if (isAnchor) {
            child = document.createElement('a');
            child.setAttribute('href',
                    'javascript:switchable.setVisible(' + i + ', ' + j + ');');
        } else child = document.createElement('strong');
        child.appendChild(document.createTextNode(label));
        tab.appendChild(child);
        return tab;
    }
 
    switchable.getVisible = function (i) {
        var visible = this[i].getAttribute('visiblesection');
        if (visible) visible = parseInt(visible);
        if (visible === null || isNaN(visible)) {
            visible = 0;
            this[i].setAttribute('visiblesection', visible.toString());
        }
        return Math.max(0, Math.min(visible, this[i].sections.length - 1));
    }
 
    switchable.updateVisible = function (i) {
        if (isNaN(parseInt(i))) {
            // update all switchables if no valid number given
            for (var i = 0; i < this.length; i++)
                this.updateVisible(i);
        } else {
            var visible = this.getVisible(i);
            var sections = this[i].sections;
            var tc = this[i].tabContainer;
            var currentTab;
            for (var j = 0; j < sections.length; j++) {
                if (j == visible) {
                    // change 'show' link
                    currentTab = this.createTab(sections[j].sectionName,
                                                    false);
                    currentTab.j = j;
                    tc.replaceChild(currentTab, tc.tabs[j]);
                    // show section if hidden
                    if (sections.hidden[j] !== undefined) {
                        this[i].appendChild(sections[j]);
                        sections.hidden[j] = undefined;
                    }
                } else {
                    // change 'show' link
                    if (tc.currentTab !== undefined && tc.currentTab.j == j)
                        tc.replaceChild(tc.tabs[j], tc.currentTab);
                    // hide section if visible
                    if (sections.hidden[j] === undefined)
                        sections.hidden[j] = this[i].removeChild(sections[j]);
                }
            }
            if (currentTab !== undefined) tc.currentTab = currentTab;
        }
    }
 
    switchable.setVisible = function (i, j) {
        this[i].setAttribute('visiblesection', j);
        this.updateVisible(i);
    }
 
    // initialise
    for (var i = 0; i < switchable.length; i++) {
        var sections = getElementsByClassName(switchable[i], '*', 'switch');
        sections.hidden = Array(sections.length);
        switchable[i].sections = sections;
        // create show/hide anchors
        var tabContainer = document.createElement('ul');
        switchable[i].appendChild(tabContainer);
        switchable[i].tabContainer = tabContainer;
        tabContainer.tabs = [];
        for (var j = 0; j < sections.length; j++) {
            // re-append section to place it after links
            switchable[i].appendChild(sections[j]);
            // use section's name if it has one
            var sectionName = sections[j].getAttribute('sectionname');
            if (!sectionName) sectionName = j.toString();
            sections[j].sectionName = sectionName;
            // create anchor
            var tab = switchable.createTab(
                            switchableAnchorPrefix + sectionName, true, i, j);
            tabContainer.appendChild(tab);
            tabContainer.tabs.push(tab);
        }
    }
    this.switchable = switchable;
    // initial show/hide
    switchable.updateVisible();
}
 
// initialise on page load
if (window.addEventListener !== undefined)
    addEventListener('load', initialiseSwitchable, false);
else if (window.attachEvent !== undefined)
    attachEvent('onload', initialiseSwitchable);
else onload = initialiseSwitchable;

Latest revision as of 16:21, August 13, 2018

/*
var RCNSTStartHidden = ['User', 'User talk', 'User creation log'];

document.write('<script type="text/javascript" src="https://pikminwiki.com/index.php?title=User:Greenpickle/rcnst.js&action=raw&ctype=text/javascript"><\/script>');
*/

var patrol = $('.patrollink');
if (patrol && patrol.length) patrol[0].children[0].setAttribute('accesskey', 'g');