User:Celestianpower/monobook.js

////////////////////////////////////////////////////////////////////////////

// User:Celestianpower's monobook.

// Most of it copied from some place or other and where it is, I've tried to give a source.

// If you want to copy any of it, I'd be flattered.

////////////////////////////////////////////////////////////////////////////

//Interiot's javascript edit counter

if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) {

mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js&action=raw&ctype=text/javascript'); }

// History tools

mw.loader.load(

'https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/History/monobook.js'

+ '&action=raw&ctype=text/javascript&dontcountme=s');

//{{PAGENAME}}

// Filter changes live

// User:Lupin/recent2.js - please include this line

mw.loader.load(

'https://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js'

+ '&action=raw&ctype=text/javascript&dontcountme=s');

// User:Lupin/popupsdev.js - please include this line

document.write('');

popupShortcutKeys=true; // optional: enable keyboard shortcuts

popupAdminLinks=true; // optional: enable admin links

popupStructure='menus'; // new feature: lovely CSS dropdown menus

popupFixRedits = true;

popupFixDabs = true;

//

//From ABCD

function hideafd(){

var divs = document.getElementsByTagName("div");

for(var x = 0; x < divs.length; ++x)

if(divs[x].className.indexOf("vfd") != -1 || divs[x].className.indexOf("afd") != -1)

divs[x].style.display = "none";

document.getElementById('footer').style.display = 'none';

}

function showafd(){

var divs = document.getElementsByTagName("div");

for(var x = 0; x < divs.length; ++x)

if(divs[x].className.indexOf("vfd") != -1 || divs[x].className.indexOf("afd") != -1)

divs[x].style.display = "";

document.getElementById('footer').style.display = '';

}

function addlilink(tabs, url, name, id){

var na = document.createElement('a');

na.href = url;

na.id = id;

na.appendChild(document.createTextNode(name));

var li = document.createElement('li');

li.appendChild(na);

tabs.appendChild(li);

return li;

}

//Hybirdization of ABCD afd closer

function closeafd(bold, notbold){

var form = document.editform;

var txt = form.wpTextbox1;

txt.value = "{{subst:at}} " + bold + "" + notbold + ". ~~~~\n" + txt.value + "\n{{subst:ab}}\n";

form.wpSummary.value = "close discussion: " + bold + notbold;

form.wpWatchthis.checked = false;

}

function afdresult(){

var res = prompt("Result?");

if(!res) return;

var form = document.editform;

form.wpSummary.value = 'AFD result';

var txt = form.wpTextbox1;

txt.value += '{{oldafdfull|date=DAY MONTH 2005|result=' + res + '|votepage={{subst:PAGENAME}}}}';

txt.focus();

}

function afddelete(){

document.forms.deleteconfirm.wpReason.value = 'Wikipedia( talk)?):/, '') + '';

}

function fairusedelete(){

document.forms.deleteconfirm.wpReason.value = 'Orphanned fair use image (' + '' + 'WP:CSD' + '' + ' I5)';

}

function replace(){

var s = prompt("Search regexp?");

if(s){

var r = prompt("Replace regexp?");

if(!r && r != '') return;

var txt = document.editform.wpTextbox1;

txt.value = txt.value.replace(new RegExp(s, "g"), r);

}

}

function afdresult(){

var res = prompt("Result?");

var day = prompt("On which day was it nominated?");

if(!res) return;

var form = document.editform;

form.wpSummary.value = 'AFD result';

var txt = form.wpTextbox1;

txt.value += '{{oldafdfull|date=' + day + ' 2005|result=' + res + '|votepage={{subst:PAGENAME}}}}';

txt.focus();

}

// appends msg to the currently-editted page, sets the summary to summ,

// and marks or unmarks the Watch this page checkbox according to watch.

function edit_summary_watch(msg, summ, watch)

{

var f = document.editform, t = f.wpTextbox1;

if (t.value.length > 0)

t.value += '\n';

t.value += msg;

f.wpSummary.value = summ;

}

function testn(number)

{

var page = prompt("Vandalism to which article?")

var f = document.editform, t = f.wpTextbox1;

if (t.value.length > 0)

t.value += '\n';

t.value += "{{subst:" + "test" + number + "-n|" + page + "}} ~" + "~" + "~" + "~";

f.wpSummary.value = "Vandalism to " + page + " - warning " + number;

}

function test5()

{

var howlong = prompt("How long have they been blocked for?")

var f = document.editform, t = f.wpTextbox1;

if (t.value.length > 0)

t.value += '\n';

t.value += "{{subst:vbc-t|" + howlong + " hours}} ~~" + "~~";

f.wpSummary.value = "Blocked for " + howlong + " hours for vandalising!";

}

function interwiki(wiki)

{

var f = document.editform, t = f.wpTextbox1;

t.value += '\n';

t.value += "[[";

t.value += wiki;

t.value += ":{{subst:PAGENAME";

t.value += "}}]]";

f.wpSummary.value = "Adding interwiki to " + wiki + "-wiki";

}

// adds various tabs to call the above

function add_tabs()

{

var c1 = document.getElementById('column-one');

var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];

// Only add for pages with "Editing User talk:" at the start of the title

if (document.title.indexOf("Editing User talk:") == 0)

{

addlilink(tabs, 'javascript:edit_summary_watch("{{subst:anon}} ~~~~", "{{anon}}", false, 0)',"IP");

addlilink(tabs, 'javascript:edit_summary_watch("{{subst:User:Celestianpower/welcome}} ~~~~", "Welcome!", false, 0)',"Welcome!");

addlilink(tabs, 'javascript:edit_summary_watch("{{subst:EA-welcome}} ~~~~

", "Welcome to Esperanza!", false, 0)',"EA!");

addlilink(tabs, 'javascript:testn(1)',"t1");

addlilink(tabs, 'javascript:testn(2)',"t2");

addlilink(tabs, 'javascript:testn(3)',"t3");

addlilink(tabs, 'javascript:testn(4)',"t4");

addlilink(tabs, 'javascript:test5()',"Blocked!");

}

if (document.title.indexOf("Editing Wikipedia:Articles for deletion") == 0)

{

addlilink(tabs, 'javascript:closeafd("keep", "")', 'Keep');

addlilink(tabs, 'javascript:closeafd("delete", "")', 'Delete');

addlilink(tabs, 'javascript:closeafd(prompt("Result?"), "")', 'Other');

}

if (document.title.indexOf("Wikipedia:Articles for deletion/Log/") != -1)

{

addlilink(tabs, 'javascript:hideafd()', 'Hide', 'ca-hide');

addlilink(tabs, 'javascript:showafd()', 'Show', 'ca-show');

}

if (document.title.indexOf("My watchlist") == 0)

{

addlilink(tabs, 'http://en.wikipedia.org/wiki/User:Celestianpower/status?action=edit&autoedit=s_Image:in_Image:out_&autosummary=I%20am%20out!&autominor=true&autoclick=wpSave', "Out");

addlilink(tabs, 'http://en.wikipedia.org/wiki/User:Celestianpower/status?action=edit&autoedit=s_Image:out_Image:in_&autosummary=I%20am%20in!&autominor=true&autoclick=wpSave', "In");

}

if(document.title.indexOf("Confirm delete") == 0)

{

addlilink(tabs, 'javascript:afddelete()', 'AFD');

addlilink(tabs, 'javascript:fairusedelete()', 'Fair use');

}

if(document.title.indexOf("Editing ") == 0){

addlilink(tabs, 'javascript:replace()', 'Replace');

addlilink(tabs, 'javascript:interwiki("es")', 'es');

addlilink(tabs, 'javascript:interwiki(prompt("Which other Wikipedia has an article on this subject?"))', 'i-wiki');

}

if(document.title.indexOf("Editing Talk:") == 0){

addlilink(tabs, 'javascript:afdresult()', 'AFDr');

addlilink(tabs, 'javascript:interwiki(es)', 'es');

addlilink(tabs, 'javascript:interwiki(prompt("Which Wikipedia has an article on the same subject?"))', 'i-wiki');

}

}

if (window.addEventListener)

window.addEventListener("load", add_tabs, false);

else if (window.attachEvent)

window.attachEvent("onload", add_tabs);

function addtab(tabs, url, name, id){

var na = document.createElement('a');

na.href = url;

na.id = id;

na.appendChild(document.createTextNode(name));

var li = document.createElement('li');

li.appendChild(na);

tabs.appendChild(li);

return li;

}

///////////////////////////////////////////////////////////////////

// AutoAFD by Korath

// This needs to change depending on skin used.

//////////////////////////////////////////////////////////////////

function add_link2(url, name)

{

var na = document.createElement('a');

na.setAttribute('href', url);

na.appendChild(document.createTextNode(name));

var li = document.createElement('li');

li.appendChild(na);

var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];

tabs.appendChild(li);

}

function strip_namespace(target)

{

var colon = target.indexOf(':');

if (colon != -1)

{

var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category');

var ns = target.substring(0, colon);

if (ns == '' || ns == 'Talk')

return target.substring(colon + 1);

else

for (var i = 0; i < spaces.length; ++i)

{

if (ns == spaces[i]

|| ns == spaces[i] + '_talk')

return target.substring(colon + 1);

}

}

return target;

}

function afd()

{

document.editform.wpTextbox1.value = '{' + '{' + 'subst:afd}}\n' + document.editform.wpTextbox1.value;

document.editform.wpSummary.value = 'afd';

var target = document.editform.action;

target = target.substring(target.indexOf('title=') + 6,

target.lastIndexOf('&action=submit'));

var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

var date = new Date();

date = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();

var pagename = strip_namespace(target);

window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/' + pagename + '&action=edit&fakeaction=afdsub&faketarget=' + target,

'Afd ' + unescape(target),

'status,toolbar,location,menubar,directories,resizeable,scrollbars');

window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/Log/' + date + '&action=edit&fakeaction=afdlist&faketarget=' + pagename,

'AfdLog ' + unescape(target),

'status,toolbar,location,menubar,directories,resizeable,scrollbars');

}

function autoafd()

{

if (document.title.indexOf('Editing ') == 0)

{

var action = '';

var target = '';

if (location.search)

{

var l = location.search.substring(1).split('&');

for (var i = 0; i < l.length; ++i)

{

var eq = l[i].indexOf('=');

var name = l[i].substring(0, eq);

if (name == 'fakeaction')

action = l[i].substring(eq + 1);

else if (name == 'faketarget')

target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' ');

}

}

if (action == 'afdlist')

{

document.editform.wpTextbox1.value += '{{' + 'subst:afd3|pg=' + target + '}}\n';

document.editform.wpSummary.value = 'Wikipedia:Articles for deletion/' + target + '';

}

else if (action == 'afdsub')

{

if (document.editform.wpTextbox1.value.length > 0)

{

target = document.editform.action;

target = unescape(target.substring(target.indexOf('title=') + 6, target.lastIndexOf('&action=submit'))).replace(/_/g, ' ');

window.alert("There's an old afd at the default location already.\n\n" +

'Please either move it out of the way (and update existing links to it), or file the Afd by hand in another location (such as ' + target + ' (2)).');

}

else

document.editform.wpTextbox1.value += '{' + '{' + 'subst:afd2|pg=' + target + '|text=' + '}' + '}' +

'-- ~' + '~' + '~' + '~\n' +

'\n*\'\'\' \'\'\'\n*\'\'\' \'\'\'\n*\'\'\' \'\'\'\n';

}

else

add_link2('javascript:afd()', 'Afd');

}

}

if (window.addEventListener)

window.addEventListener('load', autoafd, false);

else if (window.attachEvent)

window.attachEvent('onload', autoafd);

// Adds a "blocklog" tab and fills in the username field on Special:Blockip, if a "&faketarget=username" is present.

function do_blockip_stuff()

{

// focus on Reason field

document.getElementsByName('wpBlockReason')[0].focus();

// 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];

addlilink(tabs, '/wiki/Special:Log/block?page=User:' + target, 'blocklog');

}

// Opens the block log in the current window, and Special:Blockip in a popup.

// Width, height, top, and left are chosen for a 1600x1200 display.

//function blockpage_and_log(target)

//{

// window.open('Special_Blockip.html?foo=blarg&faketarget=' + target, 'Block', 'width=1600,height=600,top=600,left=0');

// document.location.href = 'http://en.wikipedia.org/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + target;

//}

// 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

addlilink(tabs, '/wiki/Special:Blockip/' + editlk, 'block');

// To open the block page and block log simultaneously, replace the above line with:

// addlilink(tabs, 'javascript:blockpage_and_log("' + editlk + '")', 'Block');

// and uncomment the blockpage_and_log() function above.

// add "blocklog" tab

addlilink(tabs, '/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + editlk, 'blocklog');

}

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();

}

//From User:Func

if (window.addEventListener)

window.addEventListener("load", do_onload, false);

else if (window.attachEvent)

window.attachEvent("onload", do_onload);

if ( document.createElement && window.addEventListener )

{

function SoFixItInit() // pre-load, (don't want to slow down loading of article's content, though)

{

}

function SoFixItLoad() // post-load

{

UserMenu = new PortletMenu( 'p-personal' );

PageMenu = new PortletMenu( 'p-cactions' );

NavMenu = new PortletMenu( 'p-navigation' );

//ToolMenu = new PortletMenu( 'p-tb' );

// This is inefficient and not particularly robust.

// This comes first, I want this link to come up as

// fast as possible.

//

function GetByClass( sElem, sClass )

{ var i, a2 = [], a = document.getElementsByTagName( sElem );

for ( i = 0; i < a.length; i++ )

if ( a[ i ].className == sClass )

a2.push( a[ i ] );

return a2;

}

var a, td = GetByClass( 'td', 'diff-otitle' );

if ( ( td = td[ 0 ] ) && ( a = td.getElementsByTagName( 'a' )[ 0 ] ) )

a.href = a.href + '&action=edit'; // need to change text, later

var userName = UserMenu.getText( 'pt-userpage' );

// personal (top-most) menu

//

// Celestianpower Háblame Prefs Watchlist Contribs Kate VAN ESP Log out

//

UserMenu.setText( 'pt-mytalk' , 'Háblame' );

UserMenu.setText( 'pt-preferences', 'Prefs' );

UserMenu.setText( 'pt-watchlist' , 'Watchlist' );

UserMenu.setText( 'pt-mycontris' , 'Contribs' );

UserMenu.setText( 'pt-logout' , 'Log out' );

//

UserMenu.setHref( 'pt-mycontris',

'http://en.wikipedia.org/w/index.php?title=Special:Contributions&target=' +

userName + '&offset=0&limit=500' );

//

//

// it seems there is a stylesheet that makes them lowercase

//

// ok, the lowercased menu items are starting to really bug me:

//

document.getElementById( 'p-personal' ).getElementsByTagName( 'ul' )[0].style.textTransform = 'none';

//

UserMenu.insertBefore( 'pt-stat', 'pt-esp', 'ESP', 'irc://irc.freenode.net/wikipedia-esperanza' );

UserMenu.insertBefore( 'pt-esp', 'pt-vandal', 'VAN', 'irc://irc.freenode.net/wikipedia-en-vandalism' );

UserMenu.insertBefore( 'pt-utc', 'pt-kate', 'Kate',

'javascript:void InlineKate( "' + userName + '" )' );

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

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

// so I always know what time it is in UTC land:

//

UserMenu.append( 'pt-utc', UTCTime(), 'javascript:void UserMenu.setText("pt-utc",UTCTime())' );

// article-actions menu, (the "tabs")

//

if ( PageMenu[ 'ca-history' ] ) // theory: if it has a history tab, then it's purgable

{

PageMenu.insertBefore( 'ca-history', 'ca-lastdiff', 'Last diff',

PageMenu.getHref( 'ca-history' ).replace( /action=history/, 'diff=0' ) );

PageMenu.append( 'ca-purge', 'Purge',

PageMenu.getHref( 'ca-history' ).replace( /action=history/, 'action=purge' ) );

PageMenu.setText( 'ca-edit' , 'Edit' );

PageMenu.setText( 'ca-history' , 'History' );

PageMenu.setText( 'ca-delete' , 'Delete' );

}

var x = 1;

NavMenu.append( 'n-' + x++, 'monobook.js', 'http://en.wikipedia.org/w/index.php?title=User:' + userName + '/monobook.js&action=edit' );

NavMenu.append( 'n-' + x++, 'Vandalism Fighter', 'http://www.csclub.uwaterloo.ca/~dawill03/cdvf/vf.jar' );

NavMenu.append( 'n-' + x++, 'Wiktionary', 'http://en.wiktionary.org/wiki/Special:Watchlist');

NavMenu.append( 'n-' + x++, 'Snicket WikiCity', 'http://snicket.wikicities.com/wiki/Special:Recentchanges' );

NavMenu.append( 'n-' + x++, 'AfDs to be closed', 'http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Old' );

}

function PortletMenu( id ) // constructor

{

this.menu = document.getElementById( id );

this.list = this.menu.getElementsByTagName( 'ul' )[ 0 ]; // bypass "

Views
", etc.

// sigh...as far as I can figure, there is empty whitespace being treated

// as TextNodes....

//

var LIs = this.list.getElementsByTagName( 'li' );

for ( var i = 0; i < LIs.length; i++ )

{

this[ LIs[ i ].id ] = LIs[ i ];

}

this.newItem = function( id, txt, url )

{ var li = document.createElement( 'li' ); li.id = id;

var a = document.createElement( 'a' ); a.href = url;

a.appendChild( document.createTextNode( txt ) );

li.appendChild( a );

this[ id ] = li; // watch this!!!

return li;

}

this.append = function( id, txt, url )

{ this.list.appendChild( this.newItem( id, txt, url ) );

}

this.insertBefore = function( old, id, txt, url )

{ this.list.insertBefore( this.newItem( id, txt, url ), this[ old ] );

}

// the ByTagName here is a bit annoying, but in Safari, I was picking

// up TextNodes by using this[ id ].firstChild.firstChild

//

this.getText = function( id ) { return this[ id ].getElementsByTagName( 'a' )[ 0 ].firstChild.data }

this.setText = function( id, txt ) { this[ id ].getElementsByTagName( 'a' )[ 0 ].firstChild.data = txt }

this.getHref = function( id ) { return this[ id ].getElementsByTagName( 'a' )[ 0 ].href }

this.setHref = function( id, url ) { this[ id ].getElementsByTagName( 'a' )[ 0 ].href = url }

// I add em as I need em....

}

function InlineKate( user )

{

var kate =

'http://tools.wikimedia.de/~kate/cgi-bin/count_edits?user=' + user + '&dbname=enwiki';

var div = document.createElement( 'div' );

div.id = 'inlineKateDiv';

div.style.position = 'absolute';

div.style.zIndex = 1000;

div.style.left = '20px';

div.style.top = '20px';

div.style.backgroundColor = '#FFFFFF';

div.style.borderStyle = 'solid';

div.style.borderWidth = ' medium';

div.style.borderColor = '#000000';

var top = document.createElement( 'div' );

top.id = 'inlineKateTop';

top.style.textAlign = 'right';

top.style.margin = '8px';

top.style.backgroundColor = '#DDDDDD';

var a = document.createElement( 'a' );

a.appendChild( document.createTextNode( "Go to Kate's" ) );

a.href = kate;

a.target = '_parent';

a.style.margin = '8px';

top.appendChild( a );

a = document.createElement( 'a' );

a.appendChild( document.createTextNode( 'Close' ) );

a.href = "javascript:void RemoveNode('inlineKateDiv')";

a.style.margin = '8px';

top.appendChild( a );

div.appendChild( top );

var iframe = document.createElement( 'iframe' );

iframe.id = 'inlineKateBot';

iframe.style.width = '300px';

iframe.style.height = '400px';

iframe.style.margin = '8px';

iframe.style.borderStyle = 'solid';

iframe.style.borderWidth = 'thin';

iframe.style.borderColor = '#000000';

iframe.src = kate;

div.appendChild( iframe );

document.body.appendChild( div );

}

function RemoveNode( id )

{ var node = document.getElementById( id )

node.parentNode.removeChild( node );

}

function UTCTime()

{

// Get a date stamp for the time in UTC-land.

//

// for the future: a format arg

//

var s = '',

d = new Date(),

a = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' ');

return d.getUTCDate() + ' ' +

a[ d.getUTCMonth() ] + ' ' +

d.getUTCFullYear() + ' ' +

( '0' + d.getUTCHours() ).substr( -2 ) + ':' +

( '0' + d.getUTCMinutes() ).substr( -2 ) + ' ' + 'UTC';

}

SoFixItInit();

window.addEventListener( 'load', SoFixItLoad, false );

}

function NUPatrol()

{

if ( ( window.location.href.indexOf( 'Special%3ALog&type=newusers' ) == -1 ) &&

( window.location.href.indexOf( 'Special:Log/newusers' ) == -1 ) )

return; // make more robust???

var items, item, i, links, user, name, talk, contribs, insertLoc, link;

items = document.getElementById( 'bodyContent' ).getElementsByTagName( 'ul' )[ 0 ].getElementsByTagName( 'li' );

function NewLink( txt, url, plainlinks, linkColor )

{ var a = document.createElement( 'a' );

a.appendChild( document.createTextNode( txt ) );

a.href = url;

if ( plainlinks ) a.className = 'plainlinks';

if ( linkColor )

{ if ( typeof linkColor == "string" )

a.style.color = linkColor;

else a.style.color = '#FF0000'; // old default behavior

}

return a;

}

for ( i = 0; i < items.length; i++ )

{

item = items[ i ];

links = item.getElementsByTagName( 'a' );

user = links[ 0 ]; name = user.firstChild.nodeValue;

talk = links[ 2 ]; talk.firstChild.nodeValue = 'talk'; // lowercase 'Talk' for consistency

contribs = links[ 3 ];

insertLoc = user.nextSibling; // ' newusers '

item.insertBefore( document.createTextNode( ' ( ' ), insertLoc );

item.insertBefore( talk, insertLoc );

item.insertBefore( document.createTextNode( ', ' ), insertLoc );

item.insertBefore( contribs, insertLoc );

item.insertBefore( document.createTextNode( ', ' ), insertLoc );

item.insertBefore( NewLink( 'actions', '/w/index.php?title=Special%3ALog&user=' + name, true, '#000088' ), insertLoc );

item.insertBefore( document.createTextNode( ', ' ), insertLoc );

item.insertBefore( NewLink( 'blocks', '/w/index.php?title=Special%3ALog&type=block&page=User%3A' + name, true, '#008800' ), insertLoc );

item.insertBefore( document.createTextNode( ', ' ), insertLoc );

item.insertBefore( NewLink( 'is blocked?', '/wiki/Special:Ipblocklist?action=search&ip=' + name, true, '#888800' ), insertLoc );

item.insertBefore( document.createTextNode( ', ' ), insertLoc );

item.insertBefore( NewLink( 'do block!', '/w/index.php?title=Special:Blockip&ip=' + name, true, '#880000' ), insertLoc );

item.insertBefore( document.createTextNode( ' )' ), insertLoc );

item.removeChild( insertLoc.nextSibling ); // should remove the span

item.removeChild( insertLoc ); // should remove ' newusers ' text

}

}

if ( window.addEventListener ) window.addEventListener( 'load', NUPatrol, false );

else if ( window.attachEvent ) window.attachEvent( 'onload', NUPatrol );

//