User:Thetester/monobook.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
![]() | The accompanying .css page for this skin can be added at User:Thetester/monobook.css. |
//<nowiki>
// [[User:Lupin/popups.js]]
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
popusStructure = 'fancy2';
popupDelay = 2;
popupFixRedirs = true;
popupFixDabs = true;
if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) {
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
function addLink(where, url, name, id, title, key, after){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
if(id) li.id = id;
li.appendChild(na);
var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
if (after) {
tabs.insertBefore(li,document.getElementById(after));
} else {
tabs.appendChild(li);
}
if(id) {
if(key && title) { ta[id] = [key, title]; }
else if(key) { ta[id] = [key, '']; }
else if(title) { ta[id] = ['', title];}
}
// re-render the title and accesskeys from existing code in wikibits.js
akeytt();
return li;
}
function addlilink(tabs, url, name, id, title, key){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
if(id) li.id = id;
li.appendChild(na);
tabs.appendChild(li);
if(id) {
if(key && title) {
ta[id] = [key, title];
} else if(key) {
ta[id] = [key, ''];
} else if(title) {
ta[id] = ['', title];
}
}
// re-render the title and accesskeys from existing code in wikibits.js
akeytt();
return li;
}
function addTab(url, name, id, title, key){
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
return addlilink(tabs, url, name, id, title, key);
}
function addlimenu(tabs, name, id) {
var na = document.createElement('a');
na.href = '#';
var mn = document.createElement('ul');
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.style.width = "80px";
li.id = id;
li.className = 'tabmenu';
li.appendChild(na);
li.appendChild(mn);
tabs.appendChild(li);
return li;
}
// PURGE BUTTON
addOnloadHook( function () {
var x = document.getElementById('ca-history');
if(!x) return;
if(x.children) x = x.children[0].href;
else x = x.childNodes[0].href;
addLink("p-cactions", x.replace(/=history/, "=purge"), 'purge', 'ca-purge', 'Purge the internal cache for this page', 0);
});
//ADD MY OWN INTERIOT COUNTER
addOnloadHook( function () {
var user = document.getElementById( 'pt-userpage' ).firstChild.firstChild.data;
var li = document.createElement( 'li' );
li.id = 'pt-interiot';
var a = document.createElement( 'a' );
a.appendChild( document.createTextNode( 'Interiot' ) ); // eh, the css makes the text lowercase
a.href = 'http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?dbname=enwiki_p&user=' + user;
li.appendChild( a );
var before = document.getElementById( 'pt-mycontris' );
before.appendChild( li, before );
});
//GOOGLE AND YAHOO SEARCHES
addOnloadHook(function () {
var title;
if (!(title = document.getElementById('t-whatlinkshere') )) return;
if (!(title = title.getElementsByTagName('a')[0] )) return;
if (!(title = title.href )) return;
if (!(title = title.replace(/^.*title=Special:Whatlinkshere&target=/, '') )) return;
if (!(title = title.replace(/^(Talk|User|Wikipedia|Image|MediaWiki|Template|Help|Category|Portal)(_talk)?:/, '') )) return;
if (!(title = title.replace(/("|%22)/g, '') )) return;
if (!(title = title.replace(/_/g, '%20') )) return;
addLink('p-tb', 'http://www.google.com/search?q=%22'+title+'%22%20-Wikipedia&ie=utf-8&oe=utf-8',
'Google search', 't-googlesearch', 'Search Google for "'+decodeURIComponent(title)+'"', 'G', null);
addLink('p-tb', 'http://search.yahoo.com/search?p=%22'+title+'%22%20-Wikipedia&ei=UTF-8',
'Yahoo! search', 't-yahoosearch', 'Search Yahoo! for "'+decodeURIComponent(title)+'"', 'Y', null);
});
//TOOLBOX LINKS
addOnloadHook(function () {
// get page title
var pagetitleRe=/[^:]*:\/\/en\.wikipedia\.org\/(wiki\/|w\/index\.php\?title=)([^&?#]*)/;
ptitle = pagetitleRe.exec(decodeURI(location.href))[2].split('_').join(' ');
user_logs_url = "";
interiot_url = "";
// if this is a user, show the logs for the user rather than the page
if( (window.location.href.indexOf("User:") != -1) || (window.location.href.indexOf("User_talk:") != -1) ) {
regDropSubpages = /[User|User_talk][:|%3A]([^&?\/]*)[\/]?.*/;
user = regDropSubpages.exec(ptitle)[1];
user_logs_url = "http://en.wikipedia.org/w/index.php?title=Special%3ALog&user=" + user;
interiot_url = ("http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?dbname=enwiki_p&user=" + user).replace(" ","_");
interiot_url2 = ("http://en.wikipedia.org/wiki/User:Interiot/Tool2/code.js?username=" + user).replace(" ","_");
}
tabs = document.getElementById('p-tb').getElementsByTagName('ul')[0];
if (interiot_url != "") {
addlilink(tabs, interiot_url, "Interiot counter", "pt-interiot");
addlilink(tabs, interiot_url2, "Interiot counter 2", "pt-interiot2");
}
if (user_logs_url != "") {
addlilink(tabs, user_logs_url, "User logs", "pt-logs");
}
addlilink(tabs, '/w/index.php?title=Special:Log&page=' + ptitle, 'Page logs', 'pt-pagelogs');
addlilink(tabs, '/wiki/User:Misza13/Desk', 'Desk', '');
addlilink(tabs, '/wiki/User:Misza13/Sandbox', 'Sandbox', '');
addlilink(tabs, '/wiki/User:Misza13/Scripts', 'Scripts', '');
addlilink(tabs, '/wiki/User:MiszaBot', 'MiszaBot', '');
addlilink(tabs, '/wiki/Wikipedia:Esperanza', 'Esperanza', '');
addlilink(tabs, '/w/index.php?title=Template:Wdefcon&action=edit', 'Edit WikiDefcon', '');
addlilink(tabs, '/wiki/User:Misza13/monobook.js', 'Monobook.js', '');
addlilink(tabs, '/wiki/User:Misza13/monobook.css', 'Monobook.css', '');
addlilink(tabs, 'http://pl.wikipedia.org/wiki/Wikipedysta:Misza13', 'pl:Misza13', '');
});
// -----------------------------------------------------------------------------
// God-like Monobook skin
// (c) 2005 Sam Hocevar <[email protected]>
// $Id: godmode-light.js 1029 2006-01-09 11:05:19Z sam $
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// Language support, taken from phase3/languages/ *
// -----------------------------------------------------------------------------
var rollbacklink = 'rollback';
var cantrollback = 'Cannot revert edit; last contributor is only author of this page.';
var alreadyrolled = 'Cannot rollback last edit of [[$1]] by [[User:$2|$2]] ([[User talk:$2|Talk]]); someone else has edited or rolled back the page already. Last edit was by [[User:$3|$3]] ([[User talk:$3|Talk]]). ';
var revertpage = 'Reverted edits by [[Special:Contributions/$2|$2]] to last version by $1 using [[WP:JS|godmode-light.js]].';
// -----------------------------------------------------------------------------
// XMLHttpRequest support
// -----------------------------------------------------------------------------
if (document.implementation.createDocument) {
var gml_xmlparser = new DOMParser();
}
function gml_XMLParse(string) {
if (document.implementation.createDocument) {
return gml_xmlparser.parseFromString(string, "text/xml");
} else if (window.ActiveXObject) {
var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM");
gml_xmldoc.async = "false";
ret = gml_xmldoc.loadXML(string);
if (!ret)
return null;
return gml_xmldoc.documentElement;
}
return null;
}
var gml_xmlhttp;
function HTTPClient() {
var gml_http;
if(window.XMLHttpRequest) {
gml_http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
gml_http = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
gml_http = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
gml_http = false;
}
}
}
return gml_http;
}
// -----------------------------------------------------------------------------
// MD5 hash calculator
// -----------------------------------------------------------------------------
// Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
// Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
// Distributed under the BSD License
// See http://pajhome.org.uk/crypt/md5 for more info.
// -----------------------------------------------------------------------------
var hexcase = 0;
var b64pad = "";
var chrsz = 8;
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function core_md5(x, len)
{
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); c = md5_ff(c, d, a, b, x[i+10], 17, -42063); b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);
}
function md5_cmn(q, a, b, x, s, t) { return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); }
function md5_ff(a, b, c, d, x, s, t) { return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); }
function md5_gg(a, b, c, d, x, s, t) { return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); }
function md5_hh(a, b, c, d, x, s, t) { return md5_cmn(b ^ c ^ d, a, b, x, s, t); }
function md5_ii(a, b, c, d, x, s, t) { return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); }
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}
function str2binl(str)
{
var bin = Array();
var mask = (1 << chrsz) - 1;
for(var i = 0; i < str.length * chrsz; i += chrsz)
bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
return bin;
}
function binl2hex(binarray)
{
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i < binarray.length * 4; i++)
{
str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
}
return str;
}
// -----------------------------------------------------------------------------
// Our nice Revert functions
// -----------------------------------------------------------------------------
var gml_vandal, gml_editor, gml_url;
function PerformRevert() {
var l, token = '', revert = false;
// Look for '&fakeaction=rollback' in URL
gml_url = location.pathname;
l = location.search.substring(1).split('&');
for (i = 0; i < l.length; i++) {
var n = l[i].indexOf('=');
var name = l[i].substring(0, n);
if (name == 'fakeaction') {
if (l[i].substring(n + 1) == 'rollback')
revert = true;
} else if (name == 'vandal') {
gml_vandal = unescape(l[i].substring(n + 1));
} else if (name == 'token') {
token = unescape(l[i].substring(n + 1));
} else if (name == 'title') {
gml_url += '?' + l[i];
}
}
if (!revert)
return;
document.getElementById('bodyContent').innerHTML = 'Please wait, reverting edits by ' + gml_vandal + '...';
// Avoid XSS kiddies by using a special token
if (token == '' || token != hex_md5(gml_url + gml_vandal + document.cookie)) {
document.getElementById('bodyContent').innerHTML += '<br />Bad authentication token!';
return;
}
gml_xmlhttp = HTTPClient();
if (!gml_xmlhttp)
return;
history_url = gml_url + '&action=history&limit=50';
document.getElementById('bodyContent').innerHTML += '<br />Getting article history (' + history_url + ')...';
gml_xmlhttp.open("GET", history_url, true);
gml_xmlhttp.onreadystatechange = RevertStepTwo;
gml_xmlhttp.send(null);
}
function RevertStepTwo() {
if (gml_xmlhttp.readyState != 4)
return;
var l;
var oldid;
// Get the vandal and new editor names
gml_vandal = gml_vandal.replace(/_/g, ' ');
gml_editor = '';
// Hack for a MediaWiki bug
xml = gml_xmlhttp.responseText.replace(/<body.*"ns-4">/, '<body class="ns-4">');
doc = gml_XMLParse(xml);
if (!doc || !doc.getElementById('pagehistory')) {
document.getElementById('bodyContent').innerHTML += '<br />Failed to parse XML data returned by the server.';
document.getElementById('bodyContent').innerHTML += '<br /><b>Hint: try to disable both "Enable section editing by right-clicking on section titles (JavaScript)" and "Edit pages on double click (JavaScript)" in your editing preferences until a proper fix is found</b>.';
document.getElementById('bodyContent').innerHTML += '<br />Dump of the unparseable page : <br />' + xml.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
return;
}
l = doc.getElementById('pagehistory').getElementsByTagName('li');
//l = doc.selectSingleNode('//*[@id="pagehistory"]').getElementsByTagName('li');
for (i = 0; i < l.length; i++) {
var name = l[i].getElementsByTagName('span')[0].getElementsByTagName('a')[0].innerHTML.replace(/_/g, ' ');
if (i == 0 && name != gml_vandal) {
document.getElementById('bodyContent').innerHTML += '<br />Error: Last editor is ' + name + ', not ' + gml_vandal + '!';
return;
} else if (i > 0 && name != gml_vandal) {
oldid = l[i].getElementsByTagName('input')[0].value;
gml_editor = name;
break;
}
}
if (gml_editor == '') {
document.getElementById('bodyContent').innerHTML += '<br />Error: ' + gml_vandal + ' is the only editor!';
return;
}
gml_xmlhttp = HTTPClient();
if (!gml_xmlhttp)
return;
document.getElementById('bodyContent').innerHTML += '<br />Getting article edit form (GET' + gml_url + '&action=edit&oldid=' + oldid + ')...';
gml_xmlhttp.open('GET', gml_url + '&action=edit&oldid=' + oldid, true);
gml_xmlhttp.onreadystatechange = RevertStepThree;
gml_xmlhttp.send(null);
}
function RevertStepThree() {
if (gml_xmlhttp.readyState != 4)
return
var form, newform, l;
// Insert the downloaded form in our current page, using
// only hidden form inputs.
doc = gml_XMLParse(gml_xmlhttp.responseText);
form = doc.getElementById('editform');
newform = document.createElement('form');
l = form.getElementsByTagName('textarea');
for (i = l.length; i--; ) {
var t = document.createElement('input');
t.type = 'hidden';
t.name = l[i].name;
t.value = l[i].value;
newform.appendChild(t);
}
l = form.getElementsByTagName('input');
for (i = l.length; i--; ) {
if (l[i].name == 'wpSummary') {
l[i].value = revertpage.replace(/\$1/g, gml_editor).replace(/\$2/g, gml_vandal);
} else if (l[i].name == 'wpMinoredit') {
l[i].value = '1';
} else if (l[i].name == 'wpWatchthis') {
if (!l[i].checked)
continue; // Don�t touch the "watch" status
l[i].value = "on";
} else if (l[i].name == 'wpPreview') {
continue;
} else if (l[i].name == 'wpDiff') {
continue;
}
l[i].type = 'hidden';
newform.appendChild(l[i]);
}
newform.name = form.name;
newform.method = form.method;
newform.id = form.id;
newform.action = form.action;
document.getElementById('bodyContent').innerHTML += '<br />Submitting form...';
document.getElementById('bodyContent').appendChild(newform);
// Submit the form
newform.submit();
}
// -----------------------------------------------------------------------------
// Add revert buttons to the page
// -----------------------------------------------------------------------------
function AddRevertButtons() {
var l, article = '', vandal;
// Add 'revert' links to a diff page
l = document.getElementById('bodyContent').getElementsByTagName('td');
for (i = 0; i < l.length; i++) {
if (l[i].className == 'diff-otitle') {
article = l[i].getElementsByTagName('a')[0].href.split('&')[0].replace(/[^\/]*\/\/[^\/]*/, '');
} else if (l[i].className == 'diff-ntitle') {
var toplink = l[i].getElementsByTagName('a')[0].href;
vandal = l[i].getElementsByTagName('a')[1].innerHTML;
var t = l[i].innerHTML
n = t.indexOf('</a>) <br') + t.indexOf('</A>) <BR') + 1; // XXX: WOW HACK!!!!
if (n >= 0 && article != '' && toplink.indexOf('oldid=') == -1) {
l[i].innerHTML = t.substring(0, n + 5) + ' <strong>[<a href="' + article + '&fakeaction=rollback&vandal=' + vandal + '&token=' + hex_md5(article + vandal + document.cookie) + '">' + rollbacklink + '</a>]</strong> ' + t.substring(n + 5, t.length);
}
}
}
// Add 'revert' links to a contributions page
if (location.href.indexOf(':Contributions') != -1) {
var c = document.getElementById('contentSub');
var a = c.getElementsByTagName('a');
//if (a.length == 2) {
// vandal = a[0].innerHTML;
//} else {
// vandal = c.innerHTML.replace(/ \(.*/, '').replace(/.* /, '');
//}
vandal = a[a.length-3].href.split(':')[2].split('&')[0];
l = document.getElementById('bodyContent').getElementsByTagName('li');
for (i = 0; i < l.length; i++) {
var t = l[i].innerHTML
// If we are already a sysop on this wiki, abort
if (t.indexOf('>' + rollbacklink + '</a>]') != -1)
break;
//if (t.indexOf('&diff=0') != -1) {
if (t.indexOf('<strong> (') != -1) {
article = l[i].getElementsByTagName('a')[0].href.split('&')[0].replace(/[^\/]*\/\/[^\/]*/, '');
l[i].innerHTML += ' [<a href="' + article + '&fakeaction=rollback&vandal=' + vandal + '&token=' + hex_md5(article + vandal + document.cookie) + '">' + rollbacklink + '</a>]';
}
}
}
// Add 'revert' links to a history page
if (location.href.indexOf('action=history') != -1) {
var hist = document.getElementById('pagehistory');
var li = hist.getElementsByTagName('li')[0];
article = li.getElementsByTagName('a')[0].href.split('&')[0].replace(/[^\/]*\/\/[^\/]*/, '');
vandal = li.getElementsByTagName('span')[0].getElementsByTagName('a')[0].innerHTML;
li.innerHTML += ' [<a href="' + article + '&fakeaction=rollback&vandal=' + vandal + '&token=' + hex_md5(article + vandal + document.cookie) + '">' + rollbacklink + '</a>]';
}
}
// -----------------------------------------------------------------------------
// Modify the page once it is loaded
// -----------------------------------------------------------------------------
if (window.addEventListener) {
window.addEventListener("load", PerformRevert, false);
window.addEventListener("load", AddRevertButtons, false);
} else if (window.attachEvent) {
window.attachEvent("onload", PerformRevert);
window.attachEvent("onload", AddRevertButtons);
}
// WATCHLIST SORTER
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);
}
});
// STATUS CHANGER
addOnloadHook(function (){
var user = document.getElementById( 'pt-userpage' ).firstChild.firstChild.data;
var subpage = "/Status";
var scheme = "/StatusTemplate";
var linkprefix = "http://en.wikipedia.org/w/index.php?title=User:";
var contribs = document.getElementById( 'pt-mycontris' );
//Add the links
addlilink(contribs, linkprefix+user+subpage+"&action=edit&newstatus=in", "In", "pt-status-in", "I'm in!", "");
addlilink(contribs, linkprefix+user+subpage+"&action=edit&newstatus=busy", "Busy", "pt-status-busy", "I'm busy!", "");
addlilink(contribs, linkprefix+user+subpage+"&action=edit&newstatus=out", "Out", "pt-status-out", "I'm out!", "");
if (location.href.indexOf("User:"+user+subpage+"&action=edit&newstatus=") == -1) return; //Are we here to auto-edit the status?
//Get new status
status = location.href.split("=");
status = status[status.length-1];
//Modify the form
document.getElementById('wpTextbox1').value = "{{User:"+user+scheme+"|"+status+"}}";
document.getElementById('wpSummary').value = "Status: "+status;
document.getElementById('wpMinoredit').checked = 'checked';
//Submit it!
document.getElementById('editform').submit();
});
addOnloadHook(function () {
var currentdate = new Date();
// YYYY, MM, DD, HH, MM, SS
var enforced_break_end = new Date(2006, 03, 15, 9, 00, 00);
// *** IMPORTANT: Subtract 1 from month, i.e. january = 0 ***
if (currentdate > enforced_break_end) {
// alert ("Welcome back from your enforced wikibreak!");
} else {
alert ("Enforced wikibreak until " + enforced_break_end.toLocaleString() + " (currently " + currentdate.toLocaleString() + "). Bye!");
window.location = "http://en.wikipedia.org/w/index.php?title=Special:Userlogout&returnto=Main_page";
}
});
// VIEW SOURCE
addOnloadHook(function () {
if (location.href.indexOf('viewsource=1') != -1) {
sl = document.getElementById('wpSummaryLabel'); sl.parentNode.removeChild(sl);
ed = document.getElementById('wpSummary').parentNode; ed.parentNode.removeChild(ed);
return;
}
editbutton = document.getElementById('ca-edit');
if (editbutton && location.href.indexOf('action=edit')==-1) {
editlink = editbutton.getElementsByTagName('a')[0].href + '&viewsource=1';
tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
na = document.createElement('a');
na.href = editlink; na.appendChild(document.createTextNode('view source'));
li = document.createElement('li'); li.id = 'ca-viewsource'; li.appendChild(na);
tabs.insertBefore(li,editbutton);
}
});
function easytag (content,summary,sig,atbottom) {
for (i=1; i<10; i++) {
if (content.indexOf("@@"+i)==-1 && summary.indexOf("@@"+i)==-1) break;
filler = prompt("Parameter #"+i);
content=content.replace("@@"+i,filler);
summary=summary.replace("@@"+i,filler);
}
if (summary=="") summary = content;
if (sig==1) { ttext += " ~~" + "~~"; }
if (atbottom) {
autoedit = "s/$/\\n"+content+"\\n/";
} else {
autoedit = "s/^/\\n"+content+"\\n/";
}
document.location = document.URL + "?action=edit&autoedit=" + autoedit + "&autosummary=" + summary + "&autoclick=wpSave";
}
//ONE-CLICK TEMPLATE ADDING SHORTCUTS
addOnloadHook( function() {
var c1 = document.getElementById('column-one');
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
if (document.title.indexOf("User talk:") != -1) {
var UTPmenu1 = addlimenu(tabs, 'User talk:', 'UTPmenu1').getElementsByTagName('ul')[0];
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:welcome}}","Welcome to Wikipedia!",1,1)', "welcome");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:welcomeip}}","Welcome to Wikipedia!",1,1)', "welcomeIP");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:EA-welcome|~~"+"~~}}","Welcome to [[WP:EA|Esperanza]]!",0,1)', "EA-welcome");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:test1}}","test1",1,1)', "test1");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:test1a}}","test1a",1,1)', "test1a");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:blank}}","blank",1,1)', "blank1");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:test2}}","test2",1,1)', "test2");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:test2a}}","test2a",1,1)', "test2a");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:blank2}}","blank2",1,1)', "blank2");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:test3}}","test3",1,1)', "test3");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:blank3}}","blank3",1,1)', "blank3");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:test4}}","test4",1,1)', "test4");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:blank4}}","blank4",1,1)', "blank4");
addlilink(UTPmenu1,'javascript:easytag("{{"+"subst:bv}}","Blantant vandalism",1,1)', "bv");
var UTPmenu2 = addlimenu(tabs, 'User talk(-n):', 'UTPmenu2').getElementsByTagName('ul')[0];
addlilink(UTPmenu2,'javascript:easytag("{{"+"subst:test1-n|@@1}}","test1 on page [[@@1]]",1,1)', "test1");
addlilink(UTPmenu2,'javascript:easytag("{{"+"subst:test1a-n|@@1}}","test1a on page [[@@1]]",1,1)', "test1a");
addlilink(UTPmenu2,'javascript:easytag("{{"+"subst:test2-n|@@1}}","test2 on page [[@@1]]",1,1)', "test2");
addlilink(UTPmenu2,'javascript:easytag("{{"+"subst:test2a-n|@@1}}","test2a on page [[@@1]]",1,1)', "test2a");
addlilink(UTPmenu2,'javascript:easytag("{{"+"subst:blank2-n|@@1}}","blank2 on page [[@@1]]",1,1)', "blank2");
addlilink(UTPmenu2,'javascript:easytag("{{"+"subst:test3-n|@@1}}","test3 on page [[@@1]]",1,1)', "test3");
addlilink(UTPmenu2,'javascript:easytag("{{"+"subst:test4-n|@@1}}","test4 on page [[@@1]]",1,1)', "test4");
addlilink(UTPmenu2,'javascript:easytag("{{"+"subst:bv-n|@@1}}","Blantant vandalism on page [[@@1]]",1,1)', "bv");
} else if (document.title.indexOf("Wikipedia:Administrator intervention against vandalism") != -1) {
addlilink(tabs,'javascript:easytag("{{"+"vandal|@@1}} @@2","+[[User talk:@@1|"+"]]",1,1,"* ")', "vandal");
} else if (document.title.indexOf(":")==-1 && document.title.indexOf("My watchlist")==-1 && document.title.indexOf("Logs")==-1 && document.title.indexOf("User contributions")==-1 ) {
var Amenu = addlimenu(tabs, 'Article:', 'Amenu').getElementsByTagName('ul')[0];
addlilink(Amenu,'javascript:easytag("{{"+"wikify}}","Tagging for wikification",0,0)', "wikify");
addlilink(Amenu,'javascript:easytag("{{"+"cleanup-date|{{"+"subst:CURRENTMONTHNAME}} {{"+"subst:CURRENTYEAR}}","Tagging for cleanup",0,0)', "cleanup");
addlilink(Amenu,'javascript:easytag("{{"+"Expandarticle}}","Tagging for expansion",0,0)', "expand");
addlilink(Amenu,'javascript:easytag("{{"+"subst:AfD}}","AfD",0,0)', "AfD");
addlilink(Amenu,'javascript:easytag("{{"+"subst:prod|@@1}}","prod",0,0)', "prod");
addlilink(Amenu,'javascript:easytag("{{"+"delete}}","{{"+"d}}",0,0)', "delete");
addlilink(Amenu,'javascript:easytag("{{"+"db|@@1}}","",0,0)', "db");
addlilink(Amenu,'javascript:easytag("{{"+"db-test}}","",0,0)', "db-test");
addlilink(Amenu,'javascript:easytag("{{"+"db-vand}}","",0,0)', "db-vand");
addlilink(Amenu,'javascript:easytag("{{"+"db-empty}}","",0,0)', "db-empty");
addlilink(Amenu,'javascript:easytag("{{"+"db-blanked}}","",0,0)', "db-blanked");
addlilink(Amenu,'javascript:easytag("{{"+"db-nocontent}}","",0,0)', "db-nocontent");
addlilink(Amenu,'javascript:easytag("{{"+"db-nonsense}}","",0,0)', "db-nonsense");
addlilink(Amenu,'javascript:easytag("{{"+"db-repost}}","",0,0)', "db-repost");
addlilink(Amenu,'javascript:easytag("{{"+"db-bio}}","",0,0)', "db-bio");
addlilink(Amenu,'javascript:easytag("{{"+"db-band}}","",0,0)', "db-band");
addlilink(Amenu,'javascript:easytag("{{"+"db-club}}","",0,0)', "db-club");
addlilink(Amenu,'javascript:easytag("{{"+"db-group}}","",0,0)', "db-group");
addlilink(Amenu,'javascript:easytag("{{"+"db-attack}}","",0,0)', "db-attack");
addlilink(Amenu,'javascript:easytag("{{"+"db-copyvio|url=@@1}}","Copyvio from @@1",0,0)', "db-copyvio");
}
});
// Add date and time to your monobook "personal menu" list at the very top of the page.
// Created by [[User:Mathwiz2020]]
// Indicate where you would like the time to appear:
// 1 is first (before username), 2 is second (before talk link), ... 7 is last (after log out link)
insertBeforeNum = 7;
// Do NOT edit below this line unless you are experiened in javascript
insertBeforeArr = new Array("","pt-userpage","pt-mytalk","pt-preferences","pt-watchlist","pt-mycontris","pt-logout","");
insertBefore = insertBeforeArr[insertBeforeNum];
function makeTime()
{
var li = document.createElement( 'li' );
li.id = 'pt-time';
var mySpan = document.createElement( 'span' );
mySpan.appendChild( document.createTextNode( 'date and time' ) );
li.appendChild( mySpan );
if ( insertBefore )
{
var before = document.getElementById( insertBefore );
before.appendChild( li, before );
}
else // append to end (right) of list
{
document.getElementById( 'pt-logout' ).parentNode.appendChild( li );
}
getTime();
}
if ( window.addEventListener ) window.addEventListener ( 'load', makeTime, false );
else if ( window.attachEvent ) window.attachEvent ( 'onload', makeTime );
function getTime()
{
var time = new Date();
var date = time.getUTCDate();
var months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' ');
month = months[time.getUTCMonth()];
var year = time.getUTCFullYear();
var hours = '0' + time.getUTCHours();
hours = hours.substr(hours.length-2, hours.length);
var minutes = '0' + time.getUTCMinutes();
minutes = minutes.substr(minutes.length-2, minutes.length);
var seconds = '0' + time.getUTCSeconds();
seconds = seconds.substr(seconds.length-2, seconds.length);
var curTime = hours + ":" + minutes + ":" + seconds + ", " + date + " " + month + " " + year + " (UTC)";
datePlace = document.getElementById('pt-time').childNodes[0].childNodes[0];
datePlace.replaceData(0, datePlace.length, curTime);
doTime = window.setTimeout("getTime()", 1000);
}
//QUICK KEEP DELETED
addOnloadHook( function() {
if (document.title.indexOf("Wikipedia:Deletion review/Userbox debates") == -1) return;
editsections = document.evaluate( //Hell knows how it works - found in "Dive into Greasemonkey"
"//div[@class='editsection']",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
for (es = 0; es < editsections.snapshotLength; es++) {
button = editsections.snapshotItem(es);
hdr = button.nextSibling;
link = button.getElementsByTagName('a')[0];
newhref = link.href + "&autoedit=s/$/\\n* '''Keep deleted.''' ~~"+"~~/";
newlink = document.createElement('a');
newlink.href = newhref;
newlink.appendChild(document.createTextNode('KD'));
button.appendChild(document.createTextNode(' ['));
button.appendChild(newlink);
button.appendChild(document.createTextNode(']'));
}
});
//</nowiki>