User:Ferix/monobook.js

// Name: Wikipedia user menu

// Version: 0.4

// Description: Adds personalised version of Template:Userinfo to all wikipedia user pages

// removes the template from pages that already have it

$(function() {

if (document.getElementById('TemplateUserinfo')) {

var templateuserinfo=document.getElementById('TemplateUserinfo');

var removetemplate=document.getElementById('bodyContent').removeChild(templateuserinfo);

}

// var regex=/^User:([^\/]+)$/;

// var title=document.getElementsByTagName('h1')[0].firstChild.nodeValue;

var regex=/^User:([^\/]+) - Wikipedia, the free encyclopedia$/;

var title=document.title;

if (title.match(regex)) {

var rawusername=title.match(regex);

var username=rawusername[1].replace(/ /, '_');

function addUserMenu() {

var body, menu, menulinkcontribs, menuspacercontribs, menulinkinteriot, menuspacerinteriot, menulinkimages, menuspacerimages, menulinkesu;

body=document.getElementById('bodyContent');

menu=document.createElement('div');

menulinkcontribs=document.createElement('a');

menulinkinteriot=document.createElement('a');

menulinkimages=document.createElement('a');

menulinkesu=document.createElement('a');

menu.id='TemplateUserinfo';

menu.setAttribute('class', 'plainlinks');

menu.setAttribute('style', 'position: absolute; right: 1.15em; top: 1.3em; font-size: 90%;');

menulinkcontribs.setAttribute('href', '/wiki/Special:Contributions/' + username + '');

menulinkcontribs.setAttribute('class', 'external text');

menulinkcontribs.setAttribute('title', '' + username + '\'s contributions');

menulinkcontribstext=document.createTextNode('contributions');

menulinkinteriot.setAttribute('href', 'http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user=' + username + '&dbname=enwiki_p');

menulinkinteriot.setAttribute('class', 'external text');

menulinkinteriot.setAttribute('title', '' + username + '\'s edit count');

menulinkinteriottext=document.createTextNode('edit count (interiot)');

menulinkimages.setAttribute('href', 'http://tools.wikimedia.de/~daniel/WikiSense/Gallery.php?wikilang=en&wikifam=.wikipedia.org&img_user_text=' + username + '&order=-img_timestamp&order=-img_timestamp&format=html');

menulinkimages.setAttribute('class', 'external text');

menulinkimages.setAttribute('title', '' + username + '\'s uploaded images');

menulinkimagestext=document.createTextNode('images');

menulinkesu.setAttribute('href', 'http://www.math.ucla.edu/~aoleg/wp/rfa/edit_summary.cgi?user=' + username + '');

menulinkesu.setAttribute('class', 'external text');

menulinkesu.setAttribute('title', '' + username + '\'s edit summary usage');

menulinkesutext=document.createTextNode('edit summary usage');

menulinkcontribs.appendChild(menulinkcontribstext);

menulinkinteriot.appendChild(menulinkinteriottext);

menulinkimages.appendChild(menulinkimagestext);

menulinkesu.appendChild(menulinkesutext);

menuspacercontribs=document.createTextNode(' | ');

menuspacerinteriot=document.createTextNode(' | ');

menuspacerimages=document.createTextNode(' | ');

menu.appendChild(menulinkcontribs);

menu.appendChild(menuspacercontribs);

menu.appendChild(menulinkinteriot);

menu.appendChild(menuspacerinteriot);

menu.appendChild(menulinkimages);

menu.appendChild(menuspacerimages);

menu.appendChild(menulinkesu);

body.appendChild(menu);

}

addOnloadHook(addUserMenu);

}

});

// Description: change the names of personal tools links and tabs

// stolen from User:Trilobite/monobook.js

function changelinks() {

if(!document.getElementById) { return; }

if (document.createTextNode) {

var mytalk, preferences, watchlist, mycontris, logout;

mytalk=document.getElementById('pt-mytalk').firstChild.firstChild;

mytalk.nodeValue='Talk';

preferences=document.getElementById('pt-preferences').firstChild.firstChild;

preferences.nodeValue='Preferences';

watchlist=document.getElementById('pt-watchlist').firstChild.firstChild;

watchlist.nodeValue='Watchlist';

mycontris=document.getElementById('pt-mycontris').firstChild.firstChild;

mycontris.nodeValue='Contributions';

logout=document.getElementById('pt-logout').firstChild.firstChild;

logout.nodeValue='Log out';

if(document.getElementById('ca-nstab-user')) {

var nstabuser=document.getElementById('ca-nstab-user').firstChild.firstChild;

nstabuser.nodeValue='User';

}

if(document.getElementById('ca-talk')) {

var talk=document.getElementById('ca-talk').firstChild.firstChild;

talk.nodeValue='Talk';

}

if(document.getElementById('ca-edit')) {

var edit=document.getElementById('ca-edit').firstChild.firstChild;

edit.nodeValue='Edit';

}

if(document.getElementById('ca-viewsource')) {

var viewsource=document.getElementById('ca-viewsource').firstChild.firstChild;

viewsource.nodeValue='Source';

}

if(document.getElementById('ca-watch')) {

var watch=document.getElementById('ca-watch').firstChild.firstChild;

watch.nodeValue='Guard';

}

if(document.getElementById('ca-unwatch')) {

var unwatch=document.getElementById('ca-unwatch').firstChild.firstChild;

unwatch.nodeValue='Ignore';

}

}

else {

document.getElementById('pt-mytalk').firstChild.innerHTML = 'Talk';

document.getElementById('pt-preferences').firstChild.innerHTML = 'Preferences';

document.getElementById('pt-watchlist').firstChild.innerHTML = 'Watchlist';

document.getElementById('pt-mycontris').firstChild.innerHTML = 'Contributions';

document.getElementById('pt-logout').firstChild.innerHTML = 'Log out';

if(document.getElementById('ca-nstab-user')) {

document.getElementById('ca-nstab-user').firstChild.innerHTML = 'User';

}

if(document.getElementById('ca-talk')) {

document.getElementById('ca-talk').firstChild.innerHTML = 'Talk';

}

if(document.getElementById('ca-edit')) {

document.getElementById('ca-edit').firstChild.innerHTML = 'Edit';

}

if(document.getElementById('ca-viewsource')) {

document.getElementById('ca-viewsource').firstChild.innerHTML = 'Source';

}

if(document.getElementById('ca-watch')) {

document.getElementById('ca-watch').firstChild.innerHTML = 'Guard';

}

if(document.getElementById('ca-unwatch')) {

document.getElementById('ca-unwatch').firstChild.innerHTML = 'Ignore';

}

}

}

$(changelinks);

// Name: Wikipedia Purge Tab

// Description: Adds purge tab to Wikipedia pages

// stolen from User:BesigedB/monobook.js

function addPurgeButton() {

var href = document.location.href;

if ( href.search( /[^:]*:\/\/en\.wikipedia\.org\/(wiki\/|w\/index\.php\?title=)([^&?]*)/ ) === 0 && document.getElementById('ca-history')) {

var historyHref = document.getElementById( "ca-history" ).firstChild.href;

var div = document.getElementById( "p-cactions" );

var ul = div.getElementsByTagName( "ul" )[0];

var newLi = document.createElement( "li" );

var newA = document.createElement( "a" );

newA.setAttribute( "href" , historyHref.replace( "=history" , "=purge" ) );

if (document.createTextNode) {

var text = document.createTextNode( "Purge" );

newA.appendChild( text );

}

else {

newA.innerHTML='Purge';

}

newLi.appendChild( newA );

ul.appendChild( newLi );

}

}

$(addPurgeButton);