User:Grunt/myskin.js

function addlink(name, url) { var na = document.createElement('a'); na.setAttribute('href', '/wiki/' + url); var txt = document.createTextNode(name); na.appendChild(txt); var nli = document.createElement('li'); nli.setAttribute('class', 'p-newlinks'); nli.appendChild(na); return nli; }

// Returns  name function addlilink(url, name) { var na = document.createElement('a'); na.setAttribute('href', url);

var txt = document.createTextNode(name); na.appendChild(txt);

var li = document.createElement('li'); li.appendChild(na); return li; }

// Adds a "blocklog" tab and fills in the username field on Special:Blockip, if a "&faketarget=username" is present. function do_blockip_stuff { // Look for a &faketarget= for the username/ip var l = location.search.substring(1).split('&'); var target = ''; for (var i = 0; i < l.length; ++i) {     var n = l[i].indexOf('='); if (l[i].substring(0, n) == 'faketarget') {	 target = l[i].substring(n + 1); break; }   }

if (target == '') return;

// put account name in "IP Address/username" field var addr = document.getElementsByName('wpBlockAddress')[0]; addr.value = unescape(target);

// add "blocklog" tab var c1 = document.getElementById('column-one'); var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0]; tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + target, 'Block log')); }

// Adds "block" and "blocklog" tabs to User: and User talk: pages. function add_block_tab { var c1 = document.getElementById('column-one'); var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];

// use the "edit this page" tab to get already-tidied url var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href; // cut everything up to "title=" from the start and everything past "&action=edit" from the end editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit')); editlk = editlk.substring(editlk.indexOf(':') + 1); var slloc = editlk.indexOf('/'); if (slloc > 0) editlk = editlk.substring(0, slloc);

// add "block" tab tabs.appendChild(addlilink('/w/index.php?title=Special%3ABlockip&faketarget=' + editlk, 'Block this user')); // add "blocklog" tab tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + editlk, 'Block log')); }

function morelinks { var ndivportlet = document.createElement('div'); var ndivpbody = document.createElement('div'); var colone = document.getElementById('column-one'); ndivportlet.setAttribute('class', 'portlet'); ndivportlet.setAttribute('id', 'p-newlinks'); ndivpbody.setAttribute('class', 'pBody'); var nul = document.createElement('ul'); nul.setAttribute('id', 'p-newlinks'); nul.appendChild(addlink('VIP', 'WP:VIP')); nul.appendChild(addlink('RFC', 'WP:RFC')); nul.appendChild(addlink('RFM', 'WP:RFM')); nul.appendChild(addlink('RFAr', 'WP:RFAr')); nul.appendChild(addlink('MoS', 'WP:MOS')); nul.appendChild(addlink('RFA', 'WP:RFA'));

var title=document.createElement('h5'); title.appendChild(document.createTextNode('Shortcuts')); ndivportlet.appendChild(title); ndivpbody.appendChild(nul); ndivportlet.appendChild(ndivpbody); colone.appendChild(ndivportlet); }

function do_onload { if (document.title.indexOf('User:') == 0     || document.title.indexOf('User talk:') == 0) add_block_tab; else if (document.title.indexOf('Block user') == 0) // could stand to be more robust do_blockip_stuff;

morelinks;

document.getElementById('toolbar').innerHTML = ''; }

if (window.addEventListener) window.addEventListener("load", do_onload, false); else if (window.attachEvent) window.attachEvent("onload", do_onload);