User:Will Pittenger/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 is at User:Will Pittenger/monobook.css. |
/* By manually purging this page, you will be able to see the divisions I have set up for easy navigation. Please purge manually as using the [[Wikipedia:WikiProject User scripts/Scripts/Add purge to tabs|purge tab]] will have no effect.
== Tools by [[User:Lupin]] ==
== [[Wikipedia:User:Lupin/popups.js]] ==
<pre><nowiki>*/
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s'); // </nowiki></pre> End of popup code
// </nowiki></pre> end of popup code
/*
==== Options for Popups ====
<pre><nowiki>*/
//popupFixDabs=true;
//popupRevertSummaryPrompt=true;// </nowiki></pre>
/*
=== [[User:Lupin/Anti-vandal tool|Filter Recent Changes]] ===
<pre><nowiki>*/
// Script from [[User:Lupin/recent2.js]]
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></s'+'cript>');
// </nowiki></pre>
/*
== [[User:Kbh3rd/whackamole.js]] ==
<pre style="overflow:auto"><nowiki> */
//
// Edit tools for the vandal whack-a-mole game
// [[User:Kbh3rd/whackamole.js]] - please include this line
//
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Kbh3rd/whackamole.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');// </nowiki></pre> end of whack vandal code
/*
== [[User:Cacycle/wikEd|wikEd]] by [[User:Cacycle]] ==
=== wikEd helpers ===
==== [[User:Cacycle/diff]] text diff code ====
<pre style="overflow:auto"><nowiki>*/
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/diff.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
// </nowiki></pre> end of text diff code
/*
==== [[User:Mboverload/RegExTypoFix|RegExTypoFix]] common typo fixer ====
<pre><nowiki>*/
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/RegExTypoFix.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></'+'script>');// </nowiki></pre>
/*
=== Options ===
<pre style="overflow:auto"><nowiki>*/
wikEdLoadRegExTypoFix = true;
wikEdFollowHighlightedLinks = true;//</nowiki></pre>
/*
=== Custom Buttons ===
See the instructions and sample at [[User:Cacycle/wikEd#Custom buttons]]
<pre style="overflow:auto"><nowiki>*/
//define custom buttons (id, class, popup title, image src, width, height, alt text, onClick and parameters)
var wikEdButton = [];// </nowiki></pre>
/*
==== Declare the buttons ====
===== <div> tags =====
<pre style="overflow:auto"><nowiki>*/
wikEdButton[100] = ['wikEdDiv', 'wikEdButton', 'Make the selection a html DIV element', 'http://upload.wikimedia.org/wikipedia/commons/e/eb/WikEd_button_DivTag.PNG', '16', '16', 'DIV', 'javascript:WikEdEditButton(this, this.id, null, CreateDivBtnHandler);' ];
// define the function which is called upon clicking the custom button
function CreateDivBtnHandler(obj) {
// select the appropriate text change target (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine)
WikEdGetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
obj.changed = obj.cursor;
}
// make the changes to the plain target text
if ( /<div>(.*?)<\/div>/i.test(obj.changed.plain) ) {
obj.changed.plain = obj.changed.plain.replace(/<div>(.*?)<\/div>/gi, '$1');
}
else {
obj.changed.plain = '<div>' + obj.changed.plain + '</div>';
obj.changed.plain = obj.changed.plain.replace(/(<div>)( *)(.*?)( *)(<\/div>)/, '$2$1$3$5$4');
}
// keep the changed text selected, needed to remove the formatting with a second click
obj.changed.keepSel = true;
return;
}// </nowiki></pre>
/*
===== [[User:Will Pittenger/SumCO]] insertion =====
<pre style="overflow:auto"><nowiki>*/
wikEdButton[101] = ['wikEdSumCoInsertion', 'wikEdButton', 'Inserts SumCO', 'http://upload.wikimedia.org/wikipedia/commons/a/a3/WikEd_button_WLP_SumCO.PNG', '16', '16', 'SumCO', 'javascript:WikEdEditButton(this, this.id, null, InsertSumCoBtnHandler);' ];
// define the function which is called upon clicking the custom button
function InsertSumCoBtnHandler(obj) {
// select the appropriate text change target (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine)
WikEdGetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
return;
}
// make the changes to the plain target text
obj.changed.plain = '{{subst:User:Will Pittenger/SumCO}}';
// keep the changed text selected, needed to remove the formatting with a second click
obj.changed.keepSel = true;
return;
}// </nowiki></pre>
/*
===== <code> tags =====
<pre style="overflow:auto"><nowiki>*/
wikEdButton[102] = ['wikEdCode', 'wikEdButton', 'Make the selection a html CODE element', 'http://upload.wikimedia.org/wikipedia/commons/b/be/Wiked_button_CodeTag.PNG', '16', '16', 'CODE', 'javascript:WikEdEditButton(this, this.id, null, CreateCodeTagBtnHandler);' ];
// define the function which is called upon clicking the custom button
function CreateCodeTagBtnHandler(obj) {
// select the appropriate text change target (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine)
WikEdGetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
obj.changed = obj.cursor;
}
// make the changes to the plain target text
if ( /<code>(.*?)<\/code>/i.test(obj.changed.plain) ) {
obj.changed.plain = obj.changed.plain.replace(/<code>(.*?)<\/code>/gi, '$1');
}
else {
obj.changed.plain = '<code>' + obj.changed.plain + '</code>';
obj.changed.plain = obj.changed.plain.replace(/(<code>)( *)(.*?)( *)(<\/code>)/, '$2$1$3$5$4');
}
// keep the changed text selected, needed to remove the formatting with a second click
obj.changed.keepSel = true;
return;
}// </nowiki></pre>
/*
===== [[User:Will Pittenger/PlusTab]] insertion =====
<pre style="overflow:auto"><nowiki>*/
wikEdButton[103] = ['wikEdPlusTabInsertion', 'wikEdButton', 'Inserts PlusTab', 'http://upload.wikimedia.org/wikipedia/commons/3/30/WikEd_button_WLP_PlusTab.PNG', '16', '16', 'PlusTab', 'javascript:WikEdEditButton(this, this.id, null, InsertPlusTabBtnHandler);' ];
// define the function which is called upon clicking the custom button
function InsertPlusTabBtnHandler(obj) {
// select the appropriate text change target (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine)
WikEdGetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
return;
}
// make the changes to the plain target text
obj.changed.plain = '{{subst:User:Will Pittenger/PlusTab}}';
// keep the changed text selected, needed to remove the formatting with a second click
obj.changed.keepSel = true;
return;
}// </nowiki></pre>
/*
===== [[User:Will Pittenger/FairUse]] insertion =====
<pre style="overflow:auto"><nowiki>*/
wikEdButton[104] = ['wikEdSumCoInsertion', 'wikEdButton', 'Inserts FairUse', 'http://upload.wikimedia.org/wikipedia/commons/7/7d/WikEd_Button_FairUse.PNG', '16', '16', 'FairUse', 'javascript:WikEdEditButton(this, this.id, null, InsertFairUseBtnHandler);' ];
// define the function which is called upon clicking the custom button
function InsertFairUseBtnHandler(obj) {
// select the appropriate text change target (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine)
WikEdGetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
return;
}
// make the changes to the plain target text
obj.changed.plain = '{{subst:User:Will Pittenger/FairUse|Put the list here}}';
// keep the changed text selected, needed to remove the formatting with a second click
obj.changed.keepSel = true;
return;
}// </nowiki></pre>
/*
===== <pre> tags =====
<pre style="overflow:auto"><nowiki>*/
wikEdButton[105] = ['wikEdCode', 'wikEdButton', 'Make the selection a html PRE element', 'http://upload.wikimedia.org/wikipedia/commons/f/ff/WikEd_Button_PreTag.PNG', '16', '16', 'PRE', 'javascript:WikEdEditButton(this, this.id, null, CreatePreTagBtnHandler);' ];
// define the function which is called upon clicking the custom button
function CreatePreTagBtnHandler(obj) {
// select the appropriate text change target (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine)
WikEdGetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
obj.changed = obj.cursor;
}
// make the changes to the plain target text
if ( /<pre>(.*?)<\/pre>/i.test(obj.changed.plain) ) {
obj.changed.plain = obj.changed.plain.replace(/<pre>(.*?)<\/pre>/gi, '$1');
}
else {
obj.changed.plain = '<pre>' + obj.changed.plain + '</pre>';
obj.changed.plain = obj.changed.plain.replace(/(<pre>)( *)(.*?)( *)(<\/pre>)/, '$2$1$3$5$4');
}
// keep the changed text selected, needed to remove the formatting with a second click
obj.changed.keepSel = true;
return;
}// </nowiki></pre>
/*
===== [[User:Will Pittenger/WhereIHaveBeen]] insertion =====
<pre style="overflow:auto"><nowiki>*/
wikEdButton[106] = ['wikEdPlusTabInsertion', 'wikEdButton', 'Inserts WhereIHaveBeenTools', 'http://upload.wikimedia.org/wikipedia/commons/2/29/WikEd_Button_WhereIHaveBeenTools.PNG', '16', '16', 'WhereIHaveBeenTools', 'javascript:WikEdEditButton(this, this.id, null, InsertWhereIHaveBeenToolsBtnHandler);' ];
// define the function which is called upon clicking the custom button
function InsertWhereIHaveBeenToolsBtnHandler(obj) {
// select the appropriate text change target (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine)
WikEdGetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
return;
}
// make the changes to the plain target text
obj.changed.plain = '{{subst:User:Will Pittenger/WhereIHaveBeen}}';
// keep the changed text selected, needed to remove the formatting with a second click
obj.changed.keepSel = true;
return;
}// </nowiki></pre>
/*
==== Actually display the custom buttons ====
<pre><nowiki>*/
// define custom button bars (id, class, button numbers)
var wikEdButtonBar = [];
wikEdButtonBar['custom1'] = ['wikEdButtonBarCustom1', 'wikEdButtonBarCustom1', 'wikEdButtonsCustom1', 'wikEdButtonsCustom1', 44, 'My custom buttons', [100, 102, 104, 106, 'br', 101, 103, 105] ];// </nowiki></pre>
/*
=== wikEd core ===
[[User:Cacycle/wikEd]]
<pre style="overflow:auto"><nowiki>*/
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');//</nowiki></pre>
/*
== Takes the wikipage "page" and includes its raw text as javascript. ==
<pre style="overflow:auto"><nowiki>*/
function import_module(page)
{
if(document.createElement && document.childNodes)
{
var url = 'http://en.wikipedia.org/w/index.php?title=' + page.replace(/ /g, "_") +
'&action=raw&ctype=text/javascript&dontcountme=s';
var scriptElem = document.createElement('script');
scriptElem.setAttribute('src',url);
scriptElem.setAttribute('type','text/javascript');
document.getElementsByTagName('head')[0].appendChild(scriptElem);
}
}
// </nowiki></pre> end of Import Module code
/*
== [[Wikipedia:WikiProject User scripts/Scripts/Add purge to tabs]] ==
<pre style="overflow:auto"><nowiki>*/
import_module("Wikipedia:WikiProject User scripts/Scripts/addLink");
import_module("Wikipedia:WikiProject User scripts/Scripts/Add purge to tabs");
// </nowiki></pre>
/*
== [[Wikipedia:WikiProject User scripts/Scripts/Watchlist since]] ==
<pre style="overflow:auto"><nowiki>*/
import_module('Wikipedia:WikiProject User scripts/Scripts/Watchlist since');
// </nowiki></pre>
/*
== add user tabs [[Wikipedia:WikiProject User scripts/Scripts/User tabs]] ==
<pre style="overflow:auto"><nowiki>*/
import_module('Wikipedia:WikiProject User scripts/Scripts/Add LI link');
import_module('Wikipedia:WikiProject User scripts/Scripts/Add tab');
/*
== [[Wikipedia:WikiProject User scripts/Scripts/Quick wikify]] ==
<pre style="overflow:auto"><nowiki>*/
import_module('Wikipedia:WikiProject User scripts/Scripts/Quick wikify');
// </nowiki></pre>
/*
===[[user:Where/usertabs]] Actual code ===
<pre><nowiki>*/
addOnloadHook(function() {
if (document.title.search("/") != -1 || document.title.search("- History -") != -1) { //no subpages or history
return;
}
if (document.title.indexOf("User:") == 0 || document.title.indexOf("User talk:") == 0) {
username_a = document.URL.match(/:.*:(.*)/);
username=username_a[1];
addTab("http://en.wikipedia.org/wiki/Special:Contributions/" + username, "contrib", "ca-contrib", "contribs", "");
addTab("http://en.wikipedia.org/w/index.php?title=Special%3ALog&type=move&user=" + username, "page moves", "ca-pagemoves", "page moves", "");
addTab("http://en.wikipedia.org/w/index.php?title=Special%3ALog&type=block&user=" + username, "block log", "ca-blog", "blog", "");
addTab("http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?dbname=enwiki_p&user=" + username, "edit count", "ca-kate", "kate", "");
}
}); // </nowiki></pre>
/*
==[[Wikipedia:WikiProject User scripts/Scripts/test-enhanced]] ==
<pre style="overflow:auto"><nowiki>*/
import_module("Wikipedia:WikiProject User scripts/Scripts/test-enhanced");// </nowiki></pre>
/*
==[[Wikipedia:WikiProject User scripts/Scripts/Talk page section tabs]]==
<pre style="overflow:auto"><nowiki>*/
//import_module("Wikipedia:WikiProject User scripts/Scripts/Talk page section tabs");// </nowiki></pre>
/*
==[[Wikipedia:WikiProject User scripts/Scripts/CleanupTab.js]] ==
<pre style="overflow:auto"><nowiki>*/
import_module("Wikipedia:WikiProject User scripts/Scripts/CleanupTab.js");// </nowiki></pre>
/*
== [[Wikipedia:WikiProject User scripts/Scripts/Unwatch]]==
<pre style="overflow:auto"><nowiki>*/
addOnloadHook(function () {
//var query_prefix = "title=Special:Watchlist&action=submit&remove=1&id[]=";
var query_prefix = "action=unwatch&title=";
if (window.location.href.indexOf("Special:Watchlist") < 0) return;
if (window.location.href.indexOf("Special:Watchlist/edit") >= 0) return;
var links = document.getElementById('content').getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
if (links[i].href.substring(links[i].href.length-15) != '&action=history')
continue;
var unwatch = document.createElement('a');
unwatch.href = "/w/index.php?" + query_prefix + encodeURIComponent(links[i].title);
unwatch.title = "Unwatch "+links[i].title;
unwatch.appendChild(document.createTextNode("unwatch"));
links[i].parentNode.insertBefore(unwatch, links[i].nextSibling);
// kluge to handle case where "diff" is unlinked:
var delim = links[i].previousSibling;
delim = (delim.nodeType == 3 ? delim.nodeValue : "");
links[i].parentNode.insertBefore(document.createTextNode(delim.replace(/^.*diff/, "")), unwatch);
}
});// </nowiki></pre> end of [[Wikipedia:WikiProject User scripts/Scripts/Unwatch]]
/*
==sigContract code from [[User:Where/sigcontract.js]]==
<pre style="overflow:auto"><nowiki>*/
////Conflicts with force edit summary script!
//var scIndex = 0;
//var scKeys = new Array();
//var scValues = new Array();
//function scFormSubmit() {
// var i=0
// var textArea = document.getElementById("wpTextbox1");
// var text = textArea.value;
// while (i<scIndex) {
// text = text.replace(scKeys[i], scValues[i]);
// ++i;
// }
// textArea.value = text;
//}
//addOnloadHook(function() {
// if (document.title.indexOf("Editing ") != 0) {return;}
// document.getElementById("wpSave").onclick = scFormSubmit;
// document.getElementById("wpPreview").onclick = scFormSubmit;
// document.getElementById("wpDiff").onclick = scFormSubmit;
// //TODO: make it work with previews too!
//});
//addOnloadHook(function() {
// if (document.title.indexOf("Editing ") != 0) {return;}
// var textArea = document.getElementById("wpTextbox1");
// var text = textArea.value;
// var re = /<!--\[\[User:Where\/sigContract\]\];(.*)-->.*<!--ESC:(.*)-->/g;
// var lastIndex = 0;
///* while (1) {
// var textSubstr = text.substr(lastIndex);
// alert(lastIndex);
// alert(textSubstr); //TODO: remove
// var newIndex = textSubstr.search(re);
// alert("newindex:" + newIndex);
// if (newIndex == -1) {
// break;
// }
// lastIndex += newIndex+1;*/
// text = text.replace(re,
// function(str, p1, p2, offset, s) {
//// alert("In replacement function");
// if (p1 == p2) {
// var newString = "-[[User:" + p1 + "|" + p1 + "]]";
// scKeys[scIndex] = newString;
// scValues[scIndex] = str;
// ++scIndex;
// return newString;
// }
// else {
// return str;
// }
// });
// //}
// textArea.value = text;
//});// </nowiki></pre> End of sigContract code
/*
==Localized time/date script by [[User:Where/commentLocalize]] ==
<pre style="overflow:auto"><nowiki>*/
function numToMonth(num) {
if (num==0) {return "Janurary";}
else if (num==1) {return "February";}
else if (num==2) {return "March";}
else if (num==3) {return "April";}
else if (num==4) {return "May";}
else if (num==5) {return "June";}
else if (num==6) {return "July";}
else if (num==7) {return "August";}
else if (num==8) {return "September";}
else if (num==9) {return "October";}
else if (num==10) {return "November";}
else if (num==11) {return "December";}
}
function monthToNum(month) {
var tmp = new Date(month + " 1, 2006");
return tmp.getMonth();
}
function adjustTime(str, hour, minute, day, month, year, offset, s) {
var time = new Date();
time.setUTCHours(hour);
time.setUTCMinutes(minute);
time.setUTCDate(day);
time.setUTCMonth(monthToNum(month));
time.setUTCFullYear(year);
var timeStr = "";
if (time.getHours()<10) {timeStr += "0";}
timeStr += parseInt(time.getHours()) + ":";
if (time.getMinutes()<10) {timeStr += "0";}
timeStr += parseInt(time.getMinutes());
timeStr += ", ";
timeStr += time.getDate();
timeStr += " ";
timeStr += numToMonth(time.getMonth());
timeStr += " ";
timeStr += time.getFullYear();
timeStr += " (UTC";
var offset = -1*time.getTimezoneOffset()/60;
if (offset >= 0) {timeStr += "+";}
timeStr += offset + ")";
return timeStr;
}
function adjustTime2(str, hour, minute, month, day, year, offset, s) {
return adjustTime(str, hour, minute, day, month, year, offset, s);
}
addOnloadHook(function() {
if (document.title.indexOf("Editing ") == 0) {
return;
}
if (document.location.href.indexOf("action=history") != -1) {
return;
}
if (document.title.indexOf("Talk:") == 0 || document.title.indexOf("talk:") != -1 || document.title.indexOf("Wikipedia:") == 0) {
var newDoc = document.getElementById("column-content").innerHTML.replace(/(\d\d):(\d\d), (\d{1,2}) ([A-Z][a-z]+) (\d{4}) \(UTC\)/g, adjustTime);
document.getElementById("column-content").innerHTML = newDoc;
}
/* if (document.location.href.indexOf("&action=history") != -1) {
var newDoc = document.getElementById("bodyContent").innerHTML.replace(/(\d\d):(\d\d), ([A-Z][a-z]+) (\d{1,2}), (\d{4})/g, adjustTime2);
document.getElementById("bodyContent").innerHTML = newDoc;
}*/
}); // </nowiki></pre> End of commentLocalize code
/*
== [[User:GeorgeMoney|George Money's]] [[User:GeorgeMoney/UserScripts|scripts]] ==
/*
===Helpers===
*/
//////
// [[User:GeorgeMoney/UserScripts/helpers/all|Helpers]] for George Money's scripts
//*****************
/*
==== [[User:GeorgeMoney/UserScripts/helpers/all#Vars|Var]] ====
<pre style="overflow:auto"><nowiki>*/
var myname=mw.config.get('wgUserName').replace(' ', '_'); //use underscores instead of spaces
var mypage="User:"+myname;
var mytalk="User_talk:"+myname;
var mycontribs="Special:Contributions/"+myname;
var serverurl="http://en.wikipedia.org";
var wikiurl=serverurl+"/wiki/";
var pathurl=serverurl+"/w/";
var phpurl=pathurl+"index.php?title=";
var editcounturl="http://tools.wikimedia.de/~essjay/edit_count/Count.php";
var editcount=editcounturl+"?username="; // </nowiki></pre> end of vars code
/*
==== [[User:GeorgeMoney/UserScripts/helpers/all#Cookies|Cookies]] ====
<pre style="overflow:auto"><nowiki>*/
//COOKIE FUNCTIONS
function readCookie(name)
{
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0; i < ca.length; i++)
{
var c = ca[i];
while(c.charAt(0) == ' ')
c = c.substring(1, c.length);
if(c.indexOf(nameEQ) == 0)
return c.substring(nameEQ.length, c.length);
}
return null;
}
function createCookie(name, value, days)
{
if(days)
{
var date = new Date();
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
var expires = "; expires=" + date.toGMTString();
}
else
var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function eraseCookie(name)
{
createCookie(name, "", -1);
} // </nowiki></pre> end of Cookies code
/*
==== [[User:GeorgeMoney/UserScripts/helpers/all#Links|Links]] ====
<pre style="overflow:auto"><nowiki>*/
// --- ADD VARIOUS LINKS ----
function addToolboxLink(url, name, id)
{
var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
addlilink(tb, url, name, id);
}
function addTopLink(url, name, id)
{
var personal = document.getElementById('p-personal').getElementsByTagName('ul')[0];
addlilink(personal, url, name, id);
}
function addNavLink(url, name, id)
{
var navigation = document.getElementById('p-navigation').getElementsByTagName('ul')[0];
addlilink(navigation, url, name, id);
}
function addTab(url, name, id, title, key)
{
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
return addlilink(tabs, url, name, id, title, key);
}
// ------ MORE MAJOR LINKAGE -----
function addLink(where, url, name, id, title, key, after)
{
//* where is the id of the toolbar where the button should be added;
// i.e. one of "p-cactions", "p-personal", "p-navigation", or "p-tb".
//
//* url is the URL which will be called when the button is clicked.
// javascript: urls can be used to do more complex things.
//
//* name is what will appear as the name of the button.
//
//* id is the id of the button; it's best to define one.
// Use a prefix to make sure its unique. Optional.
//
//* title is the tooltip title that gives a longer description
// of the button; if you define a accesskey, mention it here. Optional.
//
//* key is the char you want for the accesskey. Optional.
//
//* after is the id of the button you want to follow this one. Optional.
//
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);
var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
if(after)
{
tabs.insertBefore(li,document.getElementById(after));
}
else
{
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;
}
//
// ------------- LINKAGE ----------------
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;
} // </nowiki></pre> End of links
/*
==== [[User:GeorgeMoney/UserScripts/helpers/all#Include|Include]] ====
<pre style="overflow:auto"><nowiki>*/
function loadJS(s)
{
s = s.replace(/^\[\[/, '').replace(/\]\]$/, '').replace(" ", "_");
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=' + s
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
function loadJSext(s)
{
document.write('<script type="text/javascript" src="'+ s + '"></script>');
}
function loadCSS(page)
{
page=page.replace(" ", "_");
document.write('<style type="text/css">@import "'+phpurl+page+'&action=raw&ctype=text/css";</style>');
}
function loadCSSext(page)
{
document.write('<style type="text/css">@import "'+page+'";</style>');
} // </nowiki></pre> End of Include
//******************
// End of Helpers for George Money's scripts
//////
/*
=== [[User:GeorgeMoney/UserScripts/newmessages]] ===
<pre style="overflow:auto"><nowiki>*/
loadJS("User:GeorgeMoney/UserScripts/newmessages"); // </nowiki></pre>
/*
=== [[User:GeorgeMoney/UserScripts/archive|George Money's Archive Manager]] ===
<pre><nowiki>*/
/AUTO ARCHIVE
//Written by GeorgeMoney
//The header to put on top of all archives (if the archive is in 'w' mode (modes explained below))
var archiveheader = '';
//Your talk page header for to use when archiving. Remember to keep the <noinclude> tags or else your archive will have your talk page header along with it.
var talkheader = '<noinclude>{{User:Will Pittenger/Archive Indexer}}</noinclude>';
//Your talk page archive page. Insert "NUMBER" where the number of archive you are on goes. (Dont put a real number!! just put the text "NUMBER")
var archiveurl = "User_talk:Will Pittenger/Archive NUMBER";
//The mode to archive your talk page. Making this value 'a' will make the script add your archive to the bottom of the current archive.
//Making it 'w' will totally erase the contents of the current archive (usually you should set the current archive value to a new archive to avoid erasing old archives,
//where as in append mode (a), you should set it to your current archive to append the contents)
var archivemode = 'w';
//do not edit below this line
var mtyalk = ("User talk:"+mw.config.get('wgUserName')).replace(/ /g, '_');
var wikiurl = mw.config.get('wgServer')+mw.config.get('wgArticlePath').replace('$1', '');
if(readCookie('archive1') == 'yes' && window.location.href.indexOf('archivestep') == -1) { (window.location.href) = document.getElementById('ca-edit').firstChild.href+'&archivestep=2'; }
function changearccontents() {
document.title = "Archival Script Manager";
document.getElementById('bodyContent').innerHTML =
'<div class="dontshow" style="display: none !important;"></div>\n' +
'<h1 class="firstHeading" style="display:block;">Archive Script Manager</h1>\n' +
'Current archive number (the one that you haven\'t done yet (like if I want to archive to archive 2 then that is the next one not done)): <br> <input type="text" id="archnuminput" value="' + readCookie('archivenum') + '" size="1" maxlength="4" /> <input type="button" value="save number" onclick="createCookie(\'archivenum\', document.getElementById(\'archnuminput\').value); document.getElementById(\'arclink\').href = wikiurl+archiveurl.replace(\'NUMBER\',readCookie(\'archivenum\'))+\'?action=edit&archivestep=1\';" /><br><br>\n'+
'<a href="'+wikiurl+archiveurl.replace('NUMBER',readCookie('archivenum'))+'?action=edit&archivestep=1" id="arclink" style="font-size: 2em; font-weight: bold;">Click here to begin the archive</a><br>\n' +
'';
document.write('<style type="text/css">.firstHeading, .editsection {display:none;} .dontshow { display: none !important; } #content {background: honeydew !important; border: 3px solid green;} #p-cactions {display: none;}</style>');
}
if(window.location.href.indexOf('archivemanage') != -1||window.location.href.indexOf('Archivemanage') != -1) {
addOnloadHook(function(){ changearccontents(); });
}
if (window.location.href.indexOf('archivestep=1') != -1 && window.location.href.indexOf('action=edit') != -1) {
addOnloadHook(function (){
if(!readCookie('archivenum') != 'yes') { (window.location.href) = wikiurl+'User:GeorgeMoney/archivemanage' }
if(archivemode == 'a') {
document.getElementById('wpTextbox1').value += "\n{{sub"+"st:"+mytalk+"}}";
} else {
document.getElementById('wpTextbox1').value = archiveheader+"\n{{sub"+"st:"+mytalk+"}}";
}
document.getElementById('wpSummary').value = "JS: Copying talkpage to archive";
createCookie('archive1', 'yes');
document.getElementById('editform').submit();
});
}
if (window.location.href.indexOf('archivestep=2') != -1 && window.location.href.indexOf('action=edit') != -1) {
addOnloadHook(function (){
if(readCookie('archive1') != 'yes') { alert("You shouldn't be at \"&archivestep=2\" because you haven't completed &archivestep=1. Please read the instructions on this archiving script. Redirecting to archive manager. "); (window.location.href) = wikiurl+'User:GeorgeMoney/archivemanage'; return; }
createCookie('archive1', 'no');
document.getElementById('wpTextbox1').value = talkheader;
document.getElementById('wpSummary').value = "JS: Archiving talk page";
document.getElementById('editform').submit();
});
}
//-------
//
// </nowiki></pre> end of archive code by [[User:GeorgeMoney/UserScripts/archive]]
/*
==== Code to add Archive to the sidebar toolbox ====
<pre><nowiki>*/
if(mw.config.get('wgPageName') == 'User_talk:Will_Pittenger')
{
addOnloadHook(
function()
{
var nav = document.getElementById('p-navigation').getElementsByTagName('ul')[0];
addlilink(nav, "http://en.wikipedia.org/wiki/Archivemanage", "archive", 'p-archive');
});
}
//</nowiki></pre>
/*
=== [[User:GeorgeMoney/UserScripts/autowelcome]] ===
==== Options ====
<pre><nowiki>*/
if(welcome == undefined)
{
var welcome={};
welcome.edit={};
welcome.link={};
welcome.link.tab={};
welcome.link.newUserLog={};
welcome.link.redLinkTalk={};
welcome.options={};
//config
welcome.edit.summary = "Welcome to Wikipedia!";
welcome.edit.text = "{{sub" + "st:User:Will Pittenger/templates/Welcome}}";
welcome.edit.textAnon = "{{sub" + "st:User:Will Pittenger/templates/Welcome IP}}";
welcome.edit.button = 'wpSave';
welcome.link.newUserLog.defaultColor = "blue";
welcome.link.newUserLog.clickedColor = "green";
welcome.link.newUserLog.text = "[welcome]";
welcome.link.redLinkTalk.defaultColor = "blue";
welcome.link.redLinkTalk.clickedColor = "green";
welcome.link.redLinkTalk.text = "[welcome]";
welcome.link.redLinkTalk.blink = false;
welcome.link.tab.text = "Welcome!";
welcome.link.tab.accessKey = '';
welcome.options.newUserLogaddReloadButton = true;
welcome.options.newUserLogEnabled = true;
welcome.options.redLinkTalkEnabled = true;
welcome.options.addTab = true;
welcome.options.askIfPageIsNotBlank = true;
welcome.options.maxLinks = 6000;
welcome.options.warnIfOverMaxLinks = true;
//end config
}//</nowiki></pre>
/*
==== Actual Import of AutoWelcome code ====
<pre><nowiki>*/
import_module("User:GeorgeMoney/UserScripts/autowelcome"); //</nowiki></pre>
/*
==[[user:Where/easy db]] ==
<pre><nowiki>*/
addOnloadHook(function()
{
//check if called from deletion request
if (document.title.indexOf("Editing ") != -1)
{
if (document.URL.lastIndexOf("&fakeaction=huff") == -1)
return;
if (document.URL.lastIndexOf("&reason=off") != -1)
{
var type = prompt("Enter criteria for speedy deletion, e.g. A1, G3");
var f = document.editform, t = f.wpTextbox1;
t.value = "{{db-" + type.toLowerCase() + "}}\n" + t.value;
f.wpSummary.value = "JS: Requesting speedy deletion ([[WP:CSD#" + type + "|CSD " + type + "]])";
f.wpSave.click();
return;
}
else if (document.URL.lastIndexOf("&reason=on") != -1)
{
var type = prompt("Enter reason for speedy deletion");
var f = document.editform, t = f.wpTextbox1;
t.value = "{{db|" + type + "}}\n" + t.value;
f.wpSummary.value = "JS: Requesting speedy deletion";
f.wpSave.click();
return;
}
}
if (window.location.href.indexOf("Special:") != -1)
return;
addTab("javascript:easyDb(0)", "db (csd)", "ca-db0", "Request speedy deletion according to WP:CSD", "");
addTab("javascript:easyDb(1)", "db (reason)", "ca-db0", "Request speedy deletion with reason", "");
});
function easyDb(n)
{
if (n == 0)
{
//edit page
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
location.assign("/w/index.php?title=" + title + "&action=edit&fakeaction=huff&reason=off");
}
if (n == 1)
{
//edit page
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
location.assign("/w/index.php?title=" + title + "&action=edit&fakeaction=huff&reason=on");
}
}
//</nowiki></pre>
///////////////////////////////
// Must be after all other tabs
/*
== [[Wikipedia:WikiProject User scripts/Scripts/Duplicate tabs at bottom]] ==
<pre style="overflow:auto"><nowiki>*/
addOnloadHook(function () {
var tabs = document.getElementById('p-cactions').cloneNode(true);
tabs.id = 'mytabs';
var listitems = tabs.getElementsByTagName('LI');
for (i=0;i<listitems.length;i++) {
if(listitems[i].id) listitems[i].id = 'mytabs-' + listitems[i].id;
}
content = document.getElementById("content"); // Find the content div
content.parentNode.insertBefore(tabs, content.nextSibling); // Place tab list right after content div
});// </nowiki></pre> end of [[Wikipedia:WikiProject User scripts/Scripts/Duplicate tabs at bottom]] code
/*
== See also ==
*[[User:Will Pittenger/monobook.css]]
*[[Wikipedia:WikiProject User scripts/Scripts]] -- List of available scripts*/