User:Dbenbenn/monobook.js

function other_wiki_tab(tabs, title) { tabs.appendChild(addlilink('http://commons.wikimedia.org/wiki/' + title, 'commons')); }

// 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, 'blocklog')); }

// Gets the URL version of the page title. function get_tidy_title { 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'));

return editlk; }

// Adds "block" and "blocklog" tabs to User: and User talk: pages. function add_user_tabs(tabs, title) { username = title.substring(title.indexOf(':') + 1); var slloc = username.indexOf('/'); if (slloc > 0) username = username.substring(0, slloc);

other_wiki_tab(tabs, title); tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&user=' + username, 'log')); tabs.appendChild(addlilink('/w/index.php?title=Special%3ABlockip&wpBlockAddress=' + username, 'block')); tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&type=block&page=User%3A' + username, 'blocklog')); }

function add_default_tabs(tabs, title) { other_wiki_tab(tabs, title); tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&page=' + title, 'log')); }

function add_image_tabs(tabs, imagetitle) { other_wiki_tab(tabs, imagetitle); tabs.appendChild(addlilink('http://tools.wikimedia.de/~daniel/WikiSense/CheckUsage.php?w=_100000&i=' + imagetitle, 'check-usage')); tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&page=' + imagetitle, 'log'));

imagetitle = imagetitle.substring(6);

var i = 0; while (i < imagetitle.length && imagetitle.substring(i, i+1) >= '0' && imagetitle.substring(i, i+1) <= '9') i++; imagetitle = imagetitle.substring(i);

if (i > 0 && imagetitle.substring(0, 3) == 'px-') { imagetitle = imagetitle.substring(3); tabs.appendChild(addlilink('/wiki/Image:' + imagetitle, 'unthumb')); } }

function do_onload { var title = get_tidy_title; var tabs = document.getElementById('column-one').getElementsByTagName('div')[0].getElementsByTagName('ul')[0];

if (title.indexOf('Image:') == 0) add_image_tabs(tabs, title); else if (title.indexOf('User:') == 0     || title.indexOf('User_talk:') == 0) add_user_tabs(tabs, title); else if (title.indexOf('Block_user') == 0) // could stand to be more robust do_blockip_stuff; else add_default_tabs(tabs, title); }

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