User:Sasquatch/monobook.js
Jump to navigation
Jump to search
Script error: No such module "Message box".
Template:Script doc autoNote: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the Script error: No such module "key". key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//<nowiki>
//Note: Nothing on this page is made by me, it is stolen from various monobook.js scripts of random users =)
//That being said, it would be a honour
//if you stole from me.
//Tabs key:
//l d = last diff
//p = purge
//cp = copyright problem
//vfd = Articles for deletion
//t# = {{test#}}
//s# = {{spam#}}
//From User:Malathion
///////////////////////////////////////////////////////////////////
// AutoCopyvio - Created by bmicomp from modified autovfd
//////////////////////////////////////////////////////////////////
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 copyvio()
{
document.editform.wpTextbox1.value = '{' + '{' + 'copyvio|url=}}';
document.editform.wpSummary.value = 'copyvio';
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 = months[date.getUTCMonth()] + '_' + date.getUTCDate();
var pagename = strip_namespace(target);
window.open('/w/index.php?title=Wikipedia:Copyright_problems&action=edit&fakeaction=copyviolist&faketarget=' + pagename,
'status,toolbar,location,menubar,directories,resizeable,scrollbars');
}
function autocopyvio()
{
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 == 'copyviolist')
{
var index = document.editform.wpTextbox1.value.lastIndexOf("\n==Footer==");
if (index == -1)
{
window.alert("Couldn't find footer\n\n");
}
else
{
var firsthalf = document.editform.wpTextbox1.value.substr(0,index);
var secondhalf = document.editform.wpTextbox1.value.substr(index);
document.editform.wpTextbox1.value = firsthalf + '*' + '[[' + target + ']]' + ' from [' + '] ~' + '~~' + '~\n' + secondhalf;
// document.editform.wpTextbox1.SelectionStart = document.editform.wpTextbox1.Text.Length;
// document.editform.wpTextbox1.SelectionLength = 0;
// document.editform.wpTextbox1.ScrollToCaret();
document.editform.wpSummary.value = 'Copyvio ' + '[[' + target + ']]';
}
}
else
add_link2('javascript:copyvio()', 'cp');
}
}
if (window.addEventListener)
window.addEventListener('load', autocopyvio, false);
else if (window.attachEvent)
window.attachEvent('onload', autocopyvio);
//From somewhere
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 addlilink(tabs, url, name){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.appendChild(na);
tabs.appendChild(li);
return li;
}
//Hybirdization of ABCD vfd closer
function closevfd(bold, notbold){
var form = document.editform;
var txt = form.wpTextbox1;
txt.value = "{{subst:vt}} '''" + bold + "'''" + notbold + ". – ~~~~\n" + txt.value + "\n{{subst:vb}}\n";
form.wpSummary.value = "close discussion: " + bold + notbold;
form.wpWatchthis.checked = false;
}
function vfdresult(){
var res = prompt("Result?");
if(!res) return;
var form = document.editform;
form.wpSummary.value = 'VFD result';
var txt = form.wpTextbox1;
txt.value += '{{oldvfdfull|date=[[DAY MONTH]] [[2005]]|result=' + res + '|votepage={{subst:PAGENAME}}}}';
txt.focus();
}
function vfddelete(){
document.forms.deleteconfirm.wpReason.value = '[[Wikipedia:Articles for deletion/' + unescape(window.location.href.replace(/^.*\?title=([^&]+)&action=delete.*$/, '$1').replace(/_/g, ' ')).replace(/^(Talk|Wikipedia( talk)?):/, '') + ']]';
}
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 vfdresult(){
var res = prompt("Result?");
if(!res) return;
var form = document.editform;
form.wpSummary.value = 'VFD result';
var txt = form.wpTextbox1;
txt.value += '{{oldvfdfull|date=[[DAY MONTH]] [[2005]]|result=' + res + '|votepage={{subst:PAGENAME}}}}';
txt.focus();
}
//////////////////////////////////////////
// Tabs by Korath
// returns <li><a href="url">name</a></li>
/////////////////////////////////////////
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;
}
// 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;
f.wpWatchthis.checked = watch;
}
// 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:" somewhere in the title
if (document.title.indexOf("Editing User talk:") != -1)
{
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:anon}} ~" + "~" + "~" + "~", "{{" + "anon}}", false, 0)',"Anon"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:welcome}} ~" + "~" + "~" + "~", "{{" + "welcome}}", false, 0)',"Welc"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test1}} ~" + "~" + "~" + "~", "{{" + "Test1}}", true, 1)',"T1"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test2}} ~" + "~" + "~" + "~", "{{" + "Test2}}", true, 1)',"T2"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test3}} ~" + "~" + "~" + "~", "{{" + "Test3}}", true, 1)',"T3"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:test4}} ~" + "~" + "~" + "~", "{{" + "test4}}", true, 1)',"T4"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:test5}} ~" + "~" + "~" + "~", "{{" + "test5}}", true, 1)',"T5"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Vanity}}~" + "~" + "~" + "~", "{{" + "Vanity}}", true, 1)',"Vain"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:spam1}} ~" + "~" + "~" + "~", "{{" + "spam1}}", true, 1)',"S1"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:spam2}} ~" + "~" + "~" + "~", "{{" + "spam2}}", true, 1)',"S2"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:rvfd}} ~" + "~" + "~" + "~", "{{" + "rvfd}}", true, 1)',"RVFD"));
tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:blanking}} ~" + "~" + "~" + "~", "{{" + "blanking}}", true, 1)',"Blank"));
}
if (document.title.indexOf("Editing Wikipedia:Articles for deletion") != -1)
{
tabs.appendChild(addlilink('javascript:closevfd("keep", "")', 'K', ''));
tabs.appendChild(addlilink('javascript:closevfd("merge and redirect", " to [[" + prompt("Merge and redirect to?") + "]]")', 'M&R', ''));
tabs.appendChild(addlilink('javascript:closevfd("redirect", " to [[" + prompt("Redirect to?") + "]]")', 'R', ''));
tabs.appendChild(addlilink('javascript:closevfd("transwiki", " to " + prompt("Transwiki to?"))', 'T', ''));
tabs.appendChild(addlilink('javascript:closevfd("transwiki", " to Wiktionary")', 'WIKT', ''));
tabs.appendChild(addlilink('javascript:closevfd("speedy delete", "")', 'SD', ''));
tabs.appendChild(addlilink('javascript:closevfd("delete", "")', 'D', ''));
tabs.appendChild(addlilink('javascript:closevfd(prompt("Result?"), "")', 'Oth', ''));
tabs.appendChild(addlilink('javascript:hidevfd()', 'H'));
tabs.appendChild(addlilink('javascript:showvfd()', 'S'));
}
if (document.title.indexOf("Editing Wikipedia:Pages for deletion") != -1)
{
tabs.appendChild(addlilink('javascript:closevfd("keep", "")', 'K', ''));
tabs.appendChild(addlilink('javascript:closevfd("merge and redirect", " to [[" + prompt("Merge and redirect to?") + "]]")', 'M&R', ''));
tabs.appendChild(addlilink('javascript:closevfd("redirect", " to [[" + prompt("Redirect to?") + "]]")', 'R', ''));
tabs.appendChild(addlilink('javascript:closevfd("transwiki", " to " + prompt("Transwiki to?"))', 'T', ''));
tabs.appendChild(addlilink('javascript:closevfd("transwiki", " to Wiktionary")', 'WIKT', ''));
tabs.appendChild(addlilink('javascript:closevfd("speedy delete", "")', 'SD', ''));
tabs.appendChild(addlilink('javascript:closevfd("delete", "")', 'D', ''));
tabs.appendChild(addlilink('javascript:closevfd(prompt("Result?"), "")', 'Oth', ''));
}
if (document.title.indexOf("Editing Wikipedia:Votes for deletion") != -1)
{
tabs.appendChild(addlilink('javascript:closevfd("keep", "")', 'K', ''));
tabs.appendChild(addlilink('javascript:closevfd("merge and redirect", " to [[" + prompt("Merge and redirect to?") + "]]")', 'M&R', ''));
tabs.appendChild(addlilink('javascript:closevfd("redirect", " to [[" + prompt("Redirect to?") + "]]")', 'R', ''));
tabs.appendChild(addlilink('javascript:closevfd("transwiki", " to " + prompt("Transwiki to?"))', 'T', ''));
tabs.appendChild(addlilink('javascript:closevfd("transwiki", " to Wiktionary")', 'WIKT', ''));
tabs.appendChild(addlilink('javascript:closevfd("speedy delete", "")', 'SD', ''));
tabs.appendChild(addlilink('javascript:closevfd("delete", "")', 'D', ''));
tabs.appendChild(addlilink('javascript:closevfd(prompt("Result?"), "")', 'Oth', ''));
}
if(document.title.indexOf("Confirm delete - Delete") != -1)
{
tabs.appendChild(addlilink('javascript:vfddelete()', 'VFD', ''));
}
if(document.title.indexOf("Editing ") != -1){
tabs.appendChild(addlilink('javascript:replace()', 'Replace', ''));
}
if(document.title.indexOf("Editing Talk:") != -1){
tabs.appendChild(addlilink('javascript:vfdresult()', 'VFDr', ''));
}
}
if (window.addEventListener)
window.addEventListener("load", add_tabs, false);
else if (window.attachEvent)
window.attachEvent("onload", add_tabs);
///////////////////////////////////////////////////////////////////
// AutoVFD 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 vfd()
{
document.editform.wpTextbox1.value = '{' + '{' + 'subst:vfd}}\n' + document.editform.wpTextbox1.value;
document.editform.wpSummary.value = 'vfd';
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=vfdsub&faketarget=' + target,
'Vfd ' + unescape(target),
'status,toolbar,location,menubar,directories,resizeable,scrollbars');
window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/Log/' + date + '&action=edit&fakeaction=vfdlist&faketarget=' + pagename,
'VfdLog ' + unescape(target),
'status,toolbar,location,menubar,directories,resizeable,scrollbars');
}
function autovfd()
{
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 == 'vfdlist')
{
document.editform.wpTextbox1.value += '{{' + 'subst:vfd3|pg=' + target + '}}\n';
document.editform.wpSummary.value = '[[Wikipedia:Articles for deletion/' + target + ']]';
}
else if (action == 'vfdsub')
{
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 vfd at the default location already.\n\n" +
'Please either move it out of the way (and update existing links to it), or file the Vfd by hand in another location (such as [[' + target + ' (2)]]).');
}
else
document.editform.wpTextbox1.value += '{' + '{' + 'subst:vfd2|pg=' + target + '|text=' + '}' + '}' +
'-- ~' + '~' + '~' + '~\n' +
'\n*\'\'\' \'\'\'\n*\'\'\' \'\'\'\n*\'\'\' \'\'\'\n';
}
else
add_link2('javascript:vfd()', 'Vfd');
}
}
if (window.addEventListener)
window.addEventListener('load', autovfd, false);
else if (window.attachEvent)
window.attachEvent('onload', autovfd);
// Returns <li><a href="url">name</a></li>
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/' + 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 "unblock" tab
tabs.appendChild(addlilink('/w/index.php?title=Special:Ipblocklist&action=unblock&ip=' + editlk, 'unb'));
//add "contributions" tab
tabs.appendChild(addlilink('/w/wiki.phtml?title=Special:Contributions/' + 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();
}
//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
//
// 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/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-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' );
UserMenu.insertBefore( 'pt-logs' , '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', 'l d',
PageMenu.getHref( 'ca-history' ).replace( /action=history/, 'diff=0' ) );
PageMenu.append( 'ca-purge', 'p',
PageMenu.getHref( 'ca-history' ).replace( /action=history/, 'action=purge' ) );
PageMenu.setText( 'ca-edit' , 'edit' );
PageMenu.setText( 'ca-history' , 'his' );
PageMenu.setText( 'ca-delete' , 'del' );
}
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 "<h5>Views</h5>", 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 );
}
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 );
//Lupin's Popups
// [[User:Lupin/popups.js]] - please include this line
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
//Twinkle?
importScript('User:AzaToth/twinkle.js');
//</nowiki>