User:とある白い猫/monobook.js

/*

 Top of Javascript */

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

// Add a "interiot" link to your monobook "personal menu" list at the very

// top of the page.

//

// Indicate where you would like "interiot" to appear:

// pt-userpage, pt-mytalk, pt-preferences,

// pt-watchlist, pt-mycontris, pt-logout

//

gsKateInsertBefore = 'pt-logout'; // leave blank to append after "logout"

function KateLink()

{

var user = document.getElementById( 'pt-userpage').firstChild.firstChild.data;

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

li.id = 'pt-kate';

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

if ( ! gsKateInsertBefore ) // append to end (right) of list

{ document.getElementById( 'pt-logout' ).parentNode.appendChild( li );

}

else

{ var before = document.getElementById( gsKateInsertBefore );

before.appendChild( li, before );

}

}

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

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

/**

* Extra tabs for monobook skin

* Forked from User:ABCD/monobook.js around April 2005

* Dual licensed under the GFDL and GPL

* See also: User:JesseW/monobook.js

*/

/**** Initialise on window load ****/

if (window.addEventListener) window.addEventListener("load",myLoadFuncs,false);

else if (window.attachEvent) window.attachEvent("onload",myLoadFuncs);

else

{

window.previousLoadFunction = window.onload;

window.onload = function()

{

window.previousLoadFunction();

myLoadFuncs();

}

}

/**** Load custom functions ****/

function myLoadFuncs()

{

// &action=purge

addPurge();

// §ion=0

addEditSection0();

// cause the personal menu looks bad

changeLinks();

// because edit summaries are good

addForceSummary();

// if this is VFD, add the show/hide thingies

if(document.title.indexOf("Wikipedia:Votes for deletion") != -1 && document.title.indexOf("Editing ") != 0) vfdlinks();

// now add a million extra tabs

morelinks();

// and some stuff for the sidebar

addToolBoxLinks();

// for admins only...

// if(document.title.indexOf("Confirm delete - Delete") == 0) addVfdLink();

// change the title of the edit link

ta['ca-edit'] = ['e', 'Edit page'];

// re-render the title and accesskeys for stuff

akeytt();

}

/**** Extra tab adding ****/

function addEditSection0()

{

ta['ca-edit-0'] = ['', 'Edit the zeroth section of this page'];

if(!document.getElementById) return;

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

if(!x) return;

var y = document.createElement('LI');

y.id = 'ca-edit-0';

if(x.className == 'selected'){

if(/&action=edit§ion=0$/.test(window.location.href)){

x.className = 'istalk';

y.className = 'selected';

} else {

x.className = 'selected istalk';

}

} else if(x.className == 'selected istalk'){

if(/&action=edit§ion=0$/.test(window.location.href)){

x.className = 'istalk';

y.className = 'selected istalk';

} else {

y.className = 'istalk';

}

} else {

y.className = x.className;

x.className = 'istalk';

}

var z = document.createElement('A');

if(x.children){

z.href = x.children[0].href + '§ion=0';

z.appendChild(document.createTextNode('0'));

y.appendChild(z);

document.getElementById('p-cactions').children[1].insertBefore(y,x.nextSibling);

}else{

z.href = x.childNodes[0].href + '§ion=0';

z.appendChild(document.createTextNode('0'));

y.appendChild(z);

document.getElementById('p-cactions').childNodes[3].insertBefore(y,x.nextSibling);

}

}

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

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

na.href = url;

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

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

li.id = id;

li.appendChild(na);

tabs.appendChild(li);

return li;

}

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.id = id;

li.className = 'tabmenu';

li.appendChild(na);

li.appendChild(mn);

tabs.appendChild(li);

return li;

}

function addPurge()

{

ta['ca-purge'] = ['g', 'Purge the internal cache for this page'];

if(!document.getElementById) return;

var x = document.getElementById('ca-history');

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

if(!x) return;

if(x.children) x = x.children[0];

else x = x.childNodes[0];

addlilink(tabs, x.href.replace(/=history/, "=purge"), 'purge', 'ca-purge');

}

function closevfd(bold, notbold)

{

var txt = document.editform.wpTextbox1;

txt.value = "{{subst:vt}} " + bold + "" + notbold + ". – ~~~~\n" + txt.value + "\n{{subst:vb}}\n";

txt = document.editform.wpSummary;

txt.value = "close discussion: " + bold + notbold;

document.editform.wpWatchthis.checked = false;

}

function editSummary()

{

var txt = document.editform.wpTextbox1;

document.editform.wpSummary.value = 'Edit summary';

if(txt.value.length > 0) txt.value += '\n';

txt.value += '{{subst:edit summary}} ~~~~';

txt.focus();

}

function startThread()

{

var txt = document.editform.wpTextbox1;

var which = prompt("Thread number?");

var now = new Date();

if(which < 10) which = '0' + which;

var timestamp = now.getUTCFullYear() + '';

now.getUTCMonth() < 9 ? timestamp += '0' + (now.getUTCMonth() + 1) : timestamp += (now.getUTCMonth() + 1);

now.getUTCDate() < 10 ? timestamp += '0' + now.getUTCDate() : timestamp += now.getUTCDate();

txt.value += '\n{{User talk:Alphax/' + timestamp + '-' + which + '}}';

document.editform.wpSummary.value = 'new thread';

}

function welcomeMessage()

{

document.editform.wpSummary.value = 'Welcome to Wikipedia!';

var txt = document.editform.wpTextbox1;

if(txt.value.length > 0) txt.value += '\n';

txt.value += '{{subst:User:Alphax/Welcome}} ~~~~';

txt.focus();

}

function anonWelcome()

{

document.editform.wpSummary.value = 'Create an account!';

var txt = document.editform.wpTextbox1;

if(txt.value.length > 0) txt.value += '\n';

txt.value += '{{subst:anon}} Thanks, ~~~~';

txt.focus();

}

function replace()

{

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

if(s){

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

var txt = document.editform.wpTextbox1;

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

}

}

function vfdresult()

{

var res = prompt("Result?");

var vfddate = prompt("Nomination date?");

if(!res) return;

document.editform.wpSummary.value = 'VFD result - ' + res.replace(/'/g, '');

var txt = document.editform.wpTextbox1;

if(txt.value.length > 0) txt.value += '\n';

txt.value += '==VFD==\nOn ' + vfddate + ' {{subst:CURRENTYEAR}}, this article was nominated for deletion. The result was ' + res + '. See Wikipedia:Votes for deletion/{{subst:PAGENAME}} for a record of the discussion. – ~~~~';

txt.focus();

}

function hidevfd()

{

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

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

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

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

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

}

function showvfd()

{

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

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

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

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

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

}

function vfdlinks()

{

if(!document.getElementById) return;

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

addlilink(tabs, 'javascript:hidevfd()', 'hide closed', 'ca-hide');

ta['ca-hide'] = ['', 'Hide closed VFDs'];

addlilink(tabs, 'javascript:showvfd()', 'show closed', 'ca-show');

ta['ca-show'] = ['', 'Show closed VFDs'];

}

function changeLinks()

{

if(!document.getElementById) return;

// remove the "my" bits

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

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

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

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

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

// add a clock

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

addlilink(toplinks, , , 'utcdate');

showtime();

}

function addForceSummary(){

if(!/&action=edit/.test(window.location.href)) return;

if(/§ion=new/.test(window.location.href)) return;

if(!document.forms.editform) return;

document.forms.editform.wpSave.onclick = forceSummary;

}

function forceSummary(){

if(!document.forms.editform.wpSummary.value.replace(/^(?:\/\\*.*\\*\/)? *(.*) *$/,'$1')){

var r = prompt('Are you sure you want to submit without adding a summary?\nTo add a summary, type it in the box below:',document.forms.editform.wpSummary.value);

if(r == null) return false;

document.forms.editform.wpSummary.value = r;

}

return true;

}

function vfddelete(){

var form = document.forms.deleteconfirm;

form.wpReason.value = 'Wikipedia:Votes for deletion/' + unescape(window.location.href.replace(/^.*\?title=([^&]+)&action=delete.*$/, '$1').replace(/_/g, ' ')) + '';

form.wpConfirm.checked = true;

}

function morelinks(){

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

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

{

addlimenu(tabs, 'vfd actions', 'vfda');

var vfda = document.getElementById('vfda').getElementsByTagName('ul')[0];

addlilink(vfda, 'javascript:closevfd("keep", "")', 'keep', '');

addlilink(vfda, 'javascript:closevfd("merge and redirect", " to " + prompt("Merge and redirect to?") + "")', 'merge', '');

addlilink(vfda, 'javascript:closevfd("redirect", " to " + prompt("Redirect to?") + "")', 'redir', '');

addlilink(vfda, 'javascript:closevfd("transwiki", " to " + prompt("Transwiki to?"))', 'trans', '');

addlilink(vfda, 'javascript:closevfd("transwiki", " to Wiktionary")', 'wikt', '');

addlilink(vfda, 'javascript:closevfd("speedy delete", "")', 'speedy', '');

addlilink(vfda, 'javascript:closevfd("delete", "")', 'del', '');

addlilink(vfda, 'javascript:closevfd(prompt("Result?"), "")', 'other', '');

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

}

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

{

addlilink(tabs, 'javascript:vfddelete()', 'vfd', '');

}

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

{

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

addlimenu(tabs, 'talk messages', 'talkm');

var talkm = document.getElementById('talkm').getElementsByTagName('ul')[0];

addlilink(talkm, 'javascript:welcomeMessage()', 'welcome', '');

addlilink(talkm, 'javascript:anonWelcome()', 'anon', '');

addlilink(talkm, 'javascript:startThread()', 'thread', '');

addlilink(talkm, 'javascript:editSummary()', 'summary', '');

}

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

{

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

addlilink(tabs, 'javascript:vfdresult()', 'vfd result', '');

}

}

function addToolBoxLinks()

{

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

addlilink(tb, '/wiki/Special:Newpages', 'New pages', '');

addlilink(tb, '/wiki/Special:Shortpages', 'Short pages', '');

addlilink(tb, '/wiki/Special:Log', 'Logs', '');

addlilink(tb, '/wiki/Template:Deletiontools', 'Deletion tools', '');

addlilink(tb, '/wiki/Wikipedia:Disambiguation_pages_with_links', 'Dab list', '');

addlilink(tb, '/wiki/Wikipedia:Template_messages/User_talk_namespace', 'Talk messages', '');

addlilink(tb, '/wiki/User_talk:Alphax/special', 'Special characters', '');

addlilink(tb, '/wiki/WP:ICT', 'Image Copyright tags', '');

}

function showtime()

{

var timerID;

var now = new Date();

var timeValue = now.toUTCString().replace(/GMT/, "UTC");

document.getElementById('utcdate').firstChild.innerHTML = timeValue;

timerID = setTimeout('showtime()', 100);

}

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

    {

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

    tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + 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

    tabs.appendChild(addlilink('/w/index.php?title=Special%3ABlockip&faketarget=' + editlk, 'block'));

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

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

    // and uncomment the blockpage_and_log() function above.

    // add "blocklog" tab

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

    //add "contributions" tab

    tabs.appendChild(addlilink('/w/wiki.phtml?title=Special:Contributions&target=User%3A' + editlk, 'contributions'));

    }

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

    }

    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

    //

    // Func Talk Prefs Watch List Edits Kate Logs #IRC Out

    //

    UserMenu.setText( 'pt-mytalk' , 'Talk' );

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

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

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

    UserMenu.setText( 'pt-logout' , 'Out' );

    //

    UserMenu.setHref( 'pt-mycontris',

    'http://en.wikipedia.org/wiki/Special:Contributions/' +

    userName );

    //

    //

    // 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-mycontris', 'pt-list', 'List', '/wiki/Special:Watchlist/edit' );

    UserMenu.insertBefore( 'pt-logout' , 'pt-logs', 'Logs',

    '/w/index.php?title=Special%3ALog&user=' + userName );

    UserMenu.insertBefore( 'pt-logout' , 'pt-irc' , '#IRC', 'irc://irc.freenode.net/wikipedia' );

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

    }

    var x = 1;

    NavMenu.append( 'n-' + x++, 'monobook.js', '/wiki/User:' + userName + '/monobook.js' );

    NavMenu.append( 'n-' + x++, 'Cat:Wikipedia', '/wiki/Category:Wikipedia' );

    NavMenu.append( 'n-' + x++, 'Cat:Policies', '/wiki/Category:Wikipedia_policies_and_guidelines' );

    NavMenu.append( 'n-' + x++, 'Cat:Official', '/wiki/Category:Wikipedia_official_policy' );

    NavMenu.append( 'n-' + x++, 'WP:Templates', '/wiki/Wikipedia:Template' );

    NavMenu.append( 'n-' + x++, 'WP:Temp Tags', '/wiki/Wikipedia:Template_messages/Cleanup' );

    }

    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://kohl.wikimedia.org/~kate/cgi-bin/count_edits?dbname=enwiki&user=' + user;

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

    }

    /* */

    /*

     */

    /* Adds "Edit counts" to the toolbox. */

    /* Coded by User:Bookofjude, requested

    by User:Kylu.

    Modified from User:Kylu/userlog.js by Kylu to work with Edit counts.

    */

    $(function () {

    if (document.getElementById('t-contributions')) {

    z=document.getElementById("content").childNodes;

    for (var n=0;n

    if (z[n].className=="firstHeading") var username = z[n].textContent.replace(new RegExp('User(?:[ _]talk)?:([^/]*)', 'g'), '$1');

    };

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

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

    link.href = '/wiki/User:Interiot/Tool2/code.js?username='+username;

    link.appendChild(document.createTextNode('Edit counts'));

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

    li.appendChild(link);

    toolbox.appendChild(li);

    }

    });

    /* Bottom of Javascript

    */