User:Grondin/monobook.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
The accompanying .css page for this skin can be added at User:Grondin/monobook.css. |
//<pre><nowiki>
function stopRedlinksEditing(){
var len=document.links.length;
for(var i=0; i<len; ++i) {
var l=document.links[i];
if (l.className=='new') {
l.href=l.href.replace('&action=edit','')
.replace('Special:Upload&wpDestFile=', 'Image:');
}
}
}
$(stopRedlinksEditing);
function listRedLinks() {
var len=document.links.length;
var output=document.createElement('div');
output.innerHTML='<h2>Red links</h2>';
var gotSome=false;
for (var i=0; i<len; ++i) {
if (document.links[i].className=='new') {
gotSome=true;
var l=document.links[i].cloneNode(true);
output.appendChild(l);
output.appendChild(document.createElement('br'));
}
}
if (gotSome){
output.appendChild(document.createElement('hr'));
var h1=document.getElementsByTagName('h1')[0];
h1.parentNode.insertBefore(output, h1.nextSibling);
}
}
$(function(){addToolboxLink('javascript:listRedLinks()', 'List red links');});
document.write('<!--[if IE]><link rel="stylesheet" type="text/css" href="' +
'http://localhost:8080/js/ie.css"><![endif]-->');
window.annoy={ freq: 1000*60*15, duration: 1000*60,
target: 'http://wiki.riteme.site/wiki/Wikipedia:Recovering_from_Wikipediholism' };
loadJS('[[User:Lupin/watchlistfilter.js]]');
//loadJS('[[User:Lupin/annoy.js]]');
loadJS('[[User:Lupin/listsince.js]]');
// Filter changes live
loadJS('[[User:Lupin/recent2.js]]');
// Show diffs on recent changes, history pages and so on
loadJS('[[User:Lupin/recentdiffs.js]]');
var isIE=((self.navigator.appName).indexOf("Microsoft")!=-1);
if (!isIE) loadJS('[[User:Zocky/PicturePopups.js]]');
//loadJS('[[User:Zocky/CategoryBrowser.js]]');
window.localCSS=true;
//loadJS('[[User:Lupin/popupsdev.js]]');
tmpJS('popupsdev.js');
popupAdminLinks=true; popupShortcutKeys=true; popupFixDabs=true;
popupPreviewKillTemplates=false; popupPreviewFirstParOnly=false;
popupOnlyArticleLinks=false;
popupEditCounterTool='interiot';
popupExtraUserMenu='<menurow><<monobook|shortcut=M>>|<<editMonobook|edit>></menurow>';
popupFixRedirs=true;
popupRedlinkRemoval=true;
popupStructure='menus';
//removeTitles=false;
extraPopupFilters=[
function(data) { if (/[{]{2}[Ff]eatured article[}]{2}/.test(data) )
return '<img src="http://upload.wikimedia.org/wikipedia/en/thumb/c/cf/Cscr-featured.png/7px-Cscr-featured.png">';
else return ''; }
];
//popupLiveOptions=true;
// loadJS('[[User:Lupin/editblind.js]]');
loadJS('[[User:Lupin/sectionkeys.js]]');
$(function(){window.popupShortcutKeys=true;}); // for testing
if (location.href == "http://wiki.riteme.site/wiki/User:Jitse_Niesen/Client-side_preferences") loadJS('[[User:Jitse_Niesen/Client-side_preferences/Main.js]]');
/////////////////////////
// messy stuff
/////////////////////////
$(function(){if (/Special(%3[Aa]|:)(Newpages|Recentchanges)/.test("Not Your Business!")) document.getElementsByTagName('h1')[0].innerHTML += ' - <a href="http://www.google.com/search?q=' + document.title.split(' - ')[0].split(' ').join('+') + '">FGI</a>';});
function addRefsLinks(btn) {
var pageTitle=document.getElementsByTagName('h1')[0].innerHTML;
var lks=document.links;
var refReq=refsContent(pageTitle);
for (var i=0; i<lks.length; ++i) {
var article=articleFromURL(lks[i].href);
if(!article) continue;
var talk=null;
if (!userName(article)) continue;
talk=talkPage(article);
if(!talk) continue;
var a=document.createElement('a');
a.href=titlebase + talk +
'&action=edit&autoedit=s#$#\n' + refReq + ' ~~~~#&autoclick=' +
btn +
'&autosummary=References for [['+
pageTitle+
']]';
var tt=document.createTextNode(' . . ');
a.innerHTML='request references';
lks[i].parentNode.appendChild(tt);
lks[i].parentNode.appendChild(a);
}
}
function refsContent(pageTitle) {
var refRequests=['\\n\\n{{subst:unref-talk|%s}}',
'\\n\\n==Missing refs==\\n\\nHi! I noticed that [[%s]] doesn\'t seem to have any refs, and you\'ve written a fair bit of it. Please could you add some when you get a chance? Thanks!',
'\\n\\n==Refs?==\\n\\nHello, any chance of adding refs to [[%s]]? Cheers,',
'\\n\\n==References for [[%s]]==\\n\\nHowdy. Do you remember the references you used when you wrote [[%s]]? If you could add them in, it\'d improve the article. Thanks in advance,',
'\\n\\n==References needed==\\n\\nHello, I\'d like to verify [[%s]] but have no references. Please could you add the sources you used to write the article? Cheers,',
'\\n\\n==References==\\n\\nHello! I noticed that [[%s]] doesn\'t have any references or sources. Although the contents of that article do seem like "common knowledge", it would still be helpful if you could mention your sources. Many thanks,',
'\\n\\n==[[%s]]==\\n\\n...is unsourced. Please fix. Thanks,',
'\\n\\n==References for [[%s]]==\\n\\nHi! I realise that it\'s been some time since you edited [[%s]], but it would be great if you could remember the references you used and add them to the page. Thanks!'
];
var promptText='Select reference request:';
for (var i=0; i<refRequests.length; ++i) { promptText += '\n\n'+i+': '+ refRequests[i];}
var response=parseInt(prompt(promptText));
if(!response || isNaN(response) || response >= refRequests.length || response < 0) response=0;
return refRequests[response].split('%s').join(pageTitle);
}
var refs=addRefsLinks;
//ta['search'] = ['/','Search this wiki'];
//addOnloadFunction(function(){document.getElementById('searchInput').accessKey='/';});
function removeAccessKeys(keylist) {
var t=document.getElementsByTagName('A'), u=document.getElementsByTagName('input');
for (var i=0; i<t.length+u.length; ++i) {
var s=((i<t.length) ? t[i] : u[i-t.length]);
for (var j=0; j<keylist.length; ++j) if (s.accessKey==keylist[j]) s.accessKey='';
}
};
function removeAnnoyingKeys() {removeAccessKeys(['d','f']);}
addOnloadFunction(removeAnnoyingKeys);
function fixWatchlistLink () {
for (var i=0; i<document.links.length; ++i) {
if (document.links[i].href.indexOf('Special:Watchlist')>0) {
document.links[i].href+='?hideOwn=1';
break;
}
}
};
if (!isIE)
{
addOnloadFunction(fixWatchlistLink);
}
// summary nag
function perhapsSave(ev)
{
var sum = document.getElementsByName('wpSummary');
var submit = true;
if (sum.length > 0) {
sum = sum[0];
if (isBadSummary(sum.value)) {
if (!document.getElementById('jn-fillIn')) {
var div = document.createElement('p');
div.appendChild(document.createTextNode('Fill in the summary!'));
div.setAttribute('style', 'color: #f00; font-size: 150%;');
div.id = 'jn-fillIn';
sum.parentNode.insertBefore(div, sum.nextSibling);
}
sum.focus();
submit = false;
}
}
if (submit) {
var btn = document.getElementById('wpSave');
btn.onclick = null;
btn.setAttribute('type', 'submit');
btn.click();
}
}
function isBadSummary(str) {
var sumRe=RegExp('^ *$|^/[*].*?[*]/ *$');
return (sumRe.test(str));
}
function modifySaveButton()
{
// action=edit for edit pages, action=submit for previews
var loc=window.location.href;
if ((loc.indexOf('&action=edit') != -1 ||
loc.indexOf('&action=submit') != -1
) && loc.indexOf(':Lupin') == -1 ) {
var btn = document.getElementById('wpSave');
if (btn) {
btn.setAttribute('type', 'button');
btn.onclick = perhapsSave;
}
}
}
if(!isIE) addOnloadFunction(modifySaveButton);
////////////////////////////////////////////////////////////////
// Evaluator
// Source: http://krolik.net/js-eval.shtml
var evaluatorHTML='<FORM ID="Tester" NAME="Tester" onsubmit="return TesterExecute();" >' +
'<TEXTAREA NAME="MyCommand" COLS=60 ROWS=25 WRAP="off"></TEXTAREA>' +
'<TEXTAREA NAME="MyResult" COLS=40 ROWS=25 WRAP="off"></TEXTAREA>' +
'<BR>' +
'<INPUT TYPE=BUTTON value="Show Object" onclick="ObjectDumpClicked();" >' +
'<INPUT TYPE=BUTTON value="Execute" onclick="TesterExecute();">' +
'</FORM>';
function ObjectDump(strObject)
{
var strOutput;
var vTemp;
var vAnotherTemp;
var vElement;
vElement = eval(strObject);
strOutput = "typeof = " + typeof(vElement) + "\n\n";
AppendOutput(strOutput);
for (var x in vElement )
{
vTemp = strObject + "." + x.toString() ;
vAnotherTemp = strObject + "[" + x + "]" ;
strOutput = strOutput + vTemp + " = " + eval(vTemp) + "\n";
AppendOutput(vTemp + " = " + eval(vTemp) + "\n");
}
return strOutput ;
}
function AppendOutput(strText)
{
document.Tester.MyResult.value = document.Tester.MyResult.value + strText;
}
function Output(strText)
{
document.Tester.MyResult.value = strText;
}
function ObjectDumpClicked()
{
document.Tester.MyResult.value="";
ObjectDump(document.Tester.MyCommand.value);
return false;
}
function TesterExecute()
{
document.Tester.MyResult.value="";
document.Tester.MyResult.value=eval(document.Tester.MyCommand.value);
return false;
}
function addEvaluator() {
try {
var evalNode=document.createElement('div');
evalNode.id='evalNode';
evalNode.innerHTML=evaluatorHTML;
document.body.appendChild(evalNode);
document.Tester=document.getElementById('Tester');
}
catch(err){};
}
if(!isIE || true) addOnloadFunction(addEvaluator);
//
// end evaluator
////////////////////////////////////////////////////////////////
// testing
// Useful stuff from [[Wikipedia:WikiProject_User_scripts]]
function addToolboxLink(url, name, id){
var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
addlilink(tb, url, name, id);
}
function addlilink(tabs, url, name, id, title, key){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
if(id) li.id = id;
li.appendChild(na);
tabs.appendChild(li);
if(id) {
if(key && title) ta[id] = [key, title];
else if(key) ta[id] = [key, ''];
else if(title) ta[id] = ['', title];
}
// re-render the title and accesskeys from existing code in wikibits.js
akeytt();
return li;
}
function addTab(url, name, id, title, key){
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
addlilink(tabs, url, name, id, title, key);
}
function addPurge(){
ta['ca-purge'] = ['g', 'Purge the internal cache for this page'];
var x = document.getElementById('ca-history');
if(!x) return;
if(x.children) x = x.children[0].href;
else x = x.childNodes[0].href;
addTab(x.replace(/=history/, "=purge"), 'purge', 'ca-purge');
akeytt();
}
// culled from [[User:Lupin/popups.js]]
function nichalp_articleFromURL(h) {
if (typeof h != 'String') h=String(h);
h=decodeURI(h);
var m=RegExp('[^:]*://en\\.wikipedia\\.org/(wiki/|w/index\\.php\\?title=)([^&?]*)').exec(h);
if(m===null) return null;
return m[2];
}
function nichalp_isIpUser(user) {
return RegExp('(User:)?' +
'((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}' +
'(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])')
.test(user);
}
function nichalp_removeAnchor(article) {
// is there a #? if not, we're done
var i=article.indexOf('#');
if (i == -1) return article;
return article.substring(0,i);
}
function nichalp_userName(article) {
var i=article.indexOf('User');
var j=article.indexOf(':');
if (i != 0 || j == -1) return null;
var k=article.indexOf('/');
if (k==-1) return article.substring(j+1);
else return article.substring(j+1,k);
}
// do it
function nichalp_customLinks() {
addPurge();
var article=nichalp_articleFromURL(document.location.href);
if (!article) return;
var user=nichalp_userName(article);
if(!user) return;
user=nichalp_removeAnchor(user);
if (!nichalp_isIpUser(user)) {
addToolboxLink('http://kohl.wikimedia.org/~kate/cgi-bin/count_edits?dbname=enwiki&user='+user, user+"'s edit count", 'toolbox_katestool');
}
var special='http://wiki.riteme.site/w/index.php?title=Special:';
addToolboxLink(special + 'Log&user='+user, user+"'s log", 'toolbox_userlog');
addToolboxLink(special + 'Blockip&ip='+user, 'Block '+user, 'toolbox_blockuser');
addToolboxLink(special + 'Special:Ipblocklist&action=unblock&ip='+user, 'Unblock '+user, 'toolbox_unblockuser');
}
// make it all happen on page load
if (window.addEventListener) window.addEventListener("load",nichalp_customLinks,false);
else if (window.attachEvent) window.attachEvent("onload",nichalp_customLinks);
else {
window._old_nichalp_onload = window.onload;
window.onload = function() { window._old_nichalp_onload(); nichalp_customLinks(); }
}
function addOnloadFunction (f) {
if (window.addEventListener) window.addEventListener("load",f,false);
else if (window.attachEvent) window.attachEvent("onload",f);
};
window.focusTextBox=function(exclusions) {
var editBox=document.getElementById('wpTextbox1');
if (editBox) { editBox.focus(); return; }
var inputs=document.getElementsByTagName('input');
if(!exclusions) exclusions=[];
for (var i=0; i<inputs.length; ++i) {
if(inputs[i].type=='text' && inputs[i].name) {
var ignore=false;
for (var j=0; j<exclusions.length; ++j) {
if (inputs[i].name==exclusions[j]) {ignore=true; break;}
}
if(!ignore) {inputs[i].focus(); return;}
}
}
}
//addOnloadFunction(function() { if (document.title.indexOf('Preview') == -1) //focusTextBox(['wpSummary', 'search']);});
loadJS('User:Zocky/SearchBox.js');
function tmpJS(name) {
document.write('<script type="text/javascript" src="' +
'http://localhost:8080/js/' + name + '"></script>');
}
function loadJS(page){
page=page.replace(/^\[\[(.*)\]\]$/, '$1');
document.write('<script type="text/javascript" src="' +
'http://wiki.riteme.site/w/index.php?title=' + page +
'&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
loadJS('User:Bigorneau.DeluxeBar.js')
function DeluxBar(name) {
function DeluxeBar(page){
page=page.replace(/^\[\[(.*)\]\]$/, '$1');
document.write('<script type="text/javascript" src="' +
'http://wiki.riteme.site/w/index.php?title=' + page +
'&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
/*
</nowiki></pre>
*/
//Interiot's javascript edit counter
if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) {
mw.loader.load('https://wiki.riteme.site/w/index.php?title=User:Interiot/Tool2/code.js&action=raw&ctype=text/javascript'); }