User:Playlikeastar/monobook.js

/*

Note: After saving, you have to bypass your browser's cache to see the changes.

To do this in Firefox/Mozilla/Safari: hold down Shift while clicking Reload,

or press Ctrl-Shift-R).

If you use Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.

AzaToth's reversion tools
*/

// importScript('User:AzaToth/twinkle.js');

/*

WikEd, replaces Firefox's text edit window
*/

// install User:Cacycle/wikEd in-browser text editor

document.write(' ');

/*

Lupin's anti-vandal tools
*/

// Script from User:Lupin/recent2.js

document.write('');

/*

Popups
*/

/* User:Lupin/popups.js */

document.write(' ');

/**/

/*

Watchlist sorter
Sorts your watchlist by namespace, and also adds spaces for readability.



addOnloadHook(function {

if (location.href.indexOf('Special:Watchlist') == -1) return; //Are we on a watchlist?

//days = document.getElementById('bodyContent').getElementsByTagName('ul');

days = document.evaluate( //Hell knows how it works - found in "Dive into Greasemonkey"

"//ul[@class='special']",

document,

null,

XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,

null);

for (d = 0; d < days.snapshotLength; d++) { //For each day

day = days.snapshotItem(d);

newday = document.createElement('ul'); //This will replace the old listing

while ((diffs = day.getElementsByTagName('li')).length > 0) { //Are there any diffs left?

//Try to extract the namespace

As = diffs[0].getElementsByTagName('a');

if (As[0].innerHTML == 'diff')

pagename = As[2].innerHTML;

else

pagename = As[1].innerHTML;

if (pagename.indexOf(':') == -1)

namespace = 'Main';

else

namespace = pagename.split(':')[0]; //This will fail for articles which contain ":" in name

hdrs = newday.getElementsByTagName('h5'); //Get the list of namespace headers

hdr = null;

for (j=0; j<hdrs.length; j++) //Find the header

if (hdrs[j].innerHTML==namespace) {

hdr = hdrs[j]; break;

}

if (hdr==null) { //Not found? Make a new one!

hdr = document.createElement('h5');

hdr.innerHTML = namespace;

newday.appendChild(hdr);

namespacesub = document.createElement('ul');

newday.appendChild(namespacesub);

}

hdr.nextSibling.appendChild(diffs[0]); //Move the diff

}

newday.appendChild(document.createElement('hr')); //For readablility

day.parentNode.replaceChild(newday,day);

}

});