|
|
(29 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>'); | |
|
| |
|
| function getElementsByClassName (cls, node) {
| | var patrol = $('.patrollink'); |
| if (node === undefined) node = document;
| | if (patrol && patrol.length) patrol[0].children[0].setAttribute('accesskey', 'g'); |
| var result = [];
| |
| var pool = node.getElementsByTagName("*");
| |
| var re = new RegExp('\\b' + cls + '\\b');
| |
| for (var i = 0; i < pool.length; i++)
| |
| if (re.test(pool[i].className)) result.push(pool[i]);
| |
| return result;
| |
| }
| |
| | |
| // get the elements we care about
| |
| switchable = getElementsByClassName('switchable');
| |
| for (var i = 0; i < switchable.length; i++) {
| |
| var sections = getElementsByClassName('switch', switchable[i]);
| |
| sections.hidden = Array(sections.length);
| |
| switchable[i].sections = sections;
| |
| // create show/hide anchors
| |
| var p = document.createElement('p');
| |
| switchable[i].appendChild(p);
| |
| switchable[i].anchorContainer = p;
| |
| p.anchors = [];
| |
| 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 a = document.createElement('a');
| |
| a.appendChild(document.createTextNode('show ' + sectionName));
| |
| a.setAttribute('href', '#');
| |
| a.setAttribute('onclick',
| |
| 'switchable.setVisible(' + i + ', ' + j + ');');
| |
| p.appendChild(a);
| |
| p.anchors.push(a);
| |
| if (j < sections.length - 1)
| |
| p.appendChild(document.createTextNode(' '));
| |
| }
| |
| }
| |
| | |
| // some functions
| |
| switchable.getVisible = function (i) {
| |
| var visible = this[i].getAttribute('visiblesection');
| |
| if (visible) visible = parseInt(visible);
| |
| if (visible === null || isNaN(visible)) {
| |
| visible = 0;
| |
| switchable[i].setAttribute('visiblesection', visible.toString());
| |
| }
| |
| return visible;
| |
| }
| |
| | |
| switchable.updateVisible = function (i) {
| |
| if (isNaN(parseInt(i))) {
| |
| // update all switchables if no valid number given
| |
| for (var i = 0; i < switchable.length; i++)
| |
| switchable.updateVisible(i);
| |
| } else {
| |
| var visible = switchable.getVisible(i);
| |
| var sections = switchable[i].sections;
| |
| var anchors = switchable[i].anchorContainer.anchors;
| |
| for (var j = 0; j < sections.length; j++) {
| |
| var a = anchors[j];
| |
| if (j == visible) {
| |
| // change 'show' link
| |
| a.removeAttribute('href');
| |
| var t = document.createTextNode(sections[j].sectionName)
| |
| a.replaceChild(t, a.childNodes[0]);
| |
| // show section if hidden
| |
| if (sections.hidden[j] !== undefined) {
| |
| switchable[i].appendChild(sections[j]);
| |
| sections.hidden[j] = undefined;
| |
| }
| |
| } else {
| |
| // change 'show' link
| |
| a.setAttribute('href', '#');
| |
| var t = document.createTextNode('show ' + sections[j].sectionName);
| |
| a.replaceChild(t, a.childNodes[0]);
| |
| // hide section if visible
| |
| if (sections.hidden[j] === undefined)
| |
| sections.hidden[j] = switchable[i].removeChild(sections[j]);
| |
| }
| |
| }
| |
| }
| |
| }
| |
| | |
| switchable.setVisible = function (i, j) {
| |
| switchable[i].setAttribute('visiblesection', j);
| |
| switchable.updateVisible(i);
| |
| }
| |
| | |
| // initial show/hide
| |
| if (window.addEventListener !== undefined)
| |
| window.addEventListener('load', switchable.updateVisible, false);
| |
| else if (window.attachEvent !== undefined)
| |
| window.attachEvent('onload', switchable.updateVisible);
| |
| else window.onload = switchable.updateVisible;
| |