//*Refresh your cache (instructions at top of monobook).
//*You're ready to start.
//'''Applying the script—it's very simple'''
function fix_common_errors() {
var txt = document.editform.wpTextbox1;
//remove leading zeros in linked dates
//txt.value=txt.value.replace(/\[\[(January|February|March|April|May|June|July|August|September|October|November|December)\s0(\d)\]\]/gi, '[[$1 $2]]');
//remove leading zeros from linked dates
//txt.value=txt.value.replace(/\[\[0(\d)\s(January|February|March|April|May|June|July|August|September|October|November|December)\s0(\d)\]\]/gi, '[[$1 $2]]');
txt.value=txt.value.replace(/\[\[0(\d)\s(January|February|March|April|May|June|July|August|September|October|November|December)\]\]/gi, '[[$1 $2]]');
//add space or comma to full dates with no space
//txt.value=txt.value.replace(/\[\[(January|February|March|April|May|June|July|August|September|October|November|December)\s([0-3][\d]|[\d])\]\],?\s?\[\[(\d{1,4})\]\]/gi, '[[$1 $2]], [[$3]]');
//txt.value=txt.value.replace(/(\[\[(?:[0-3][\d]|[\d])\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\])\[\[(\d{1,4})\]\]/gi, '[[$1]] [[$2]]');
//txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s+(\d+)\]\]/gi, '[[$1 $2]]');
//txt.value=txt.value.replace(/\[\[(\d+)\s+(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\]/gi, '[[$1 $2]]');
//month+day piped to month+day
txt.value=txt.value.replace(/\[\[(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s\d{1,2}\|(\d{1,4})\]\]/gi, '[[$1]]');
//fix 'bda' template redirect
txt.value=txt.value.replace(/{{bda\|([^}]+)}}/gi, '{{birth date and age|$1}}');
txt.value=txt.value.replace(/(\[\[)\s([^\]]*\]\])/gi, '$1$2');
}
});
function delink_ISO_to_dmy() {
var txt = document.editform.wpTextbox1;
//protect accessdate etc
//txt.value=txt.value.replace(/(date\s{0,30}=\s{0,30}\[\[)(\d{4}-\d\d-\d\d\]\])/gi, '$1zz$2');
txt.value=txt.value.replace(/\[\[(\d{4})-01-0(\d)\]\]/gi, '$2 January $1');
txt.value=txt.value.replace(/\[\[(\d{4})-02-0(\d)\]\]/gi, '$2 February $1');
txt.value=txt.value.replace(/\[\[(\d{4})-03-0(\d)\]\]/gi, '$2 March $1');
txt.value=txt.value.replace(/\[\[(\d{4})-04-0(\d)\]\]/gi, '$2 April $1');
txt.value=txt.value.replace(/\[\[(\d{4})-05-0(\d)\]\]/gi, '$2 May $1');
txt.value=txt.value.replace(/\[\[(\d{4})-06-0(\d)\]\]/gi, '$2 June $1');
txt.value=txt.value.replace(/\[\[(\d{4})-07-0(\d)\]\]/gi, '$2 July $1');
txt.value=txt.value.replace(/\[\[(\d{4})-08-0(\d)\]\]/gi, '$2 August $1');
txt.value=txt.value.replace(/\[\[(\d{4})-09-0(\d)\]\]/gi, '$2 September $1');
txt.value=txt.value.replace(/\[\[(\d{4})-10-0(\d)\]\]/gi, '$2 October $1');
txt.value=txt.value.replace(/\[\[(\d{4})-11-0(\d)\]\]/gi, '$2 November $1');
txt.value=txt.value.replace(/\[\[(\d{4})-12-0(\d)\]\]/gi, '$2 December $1');
txt.value=txt.value.replace(/\[\[(\d{4})-01-([1-3]\d)\]\]/gi, '$2 January $1');
txt.value=txt.value.replace(/\[\[(\d{4})-02-([1-3]\d)\]\]/gi, '$2 February $1');
txt.value=txt.value.replace(/\[\[(\d{4})-03-([1-3]\d)\]\]/gi, '$2 March $1');
txt.value=txt.value.replace(/\[\[(\d{4})-04-([1-3]\d)\]\]/gi, '$2 April $1');
txt.value=txt.value.replace(/\[\[(\d{4})-05-([1-3]\d)\]\]/gi, '$2 May $1');
txt.value=txt.value.replace(/\[\[(\d{4})-06-([1-3]\d)\]\]/gi, '$2 June $1');
txt.value=txt.value.replace(/\[\[(\d{4})-07-([1-3]\d)\]\]/gi, '$2 July $1');
txt.value=txt.value.replace(/\[\[(\d{4})-08-([1-3]\d)\]\]/gi, '$2 August $1');
txt.value=txt.value.replace(/\[\[(\d{4})-09-([1-3]\d)\]\]/gi, '$2 September $1');
txt.value=txt.value.replace(/\[\[(\d{4})-10-([1-3]\d)\]\]/gi, '$2 October $1');
txt.value=txt.value.replace(/\[\[(\d{4})-11-([1-3]\d)\]\]/gi, '$2 November $1');
txt.value=txt.value.replace(/\[\[(\d{4})-12-([1-3]\d)\]\]/gi, '$2 December $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[01-0(\d)\]\]/gi, '$2 January $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[02-0(\d)\]\]/gi, '$2 February $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[03-0(\d)\]\]/gi, '$2 March $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[04-0(\d)\]\]/gi, '$2 April $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[05-0(\d)\]\]/gi, '$2 May $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[06-0(\d)\]\]/gi, '$2 June $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[07-0(\d)\]\]/gi, '$2 July $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[08-0(\d)\]\]/gi, '$2 August $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[09-0(\d)\]\]/gi, '$2 September $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[10-0(\d)\]\]/gi, '$2 October $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[11-0(\d)\]\]/gi, '$2 November $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[12-0(\d)\]\]/gi, '$2 December $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[01-([1-3]\d)\]\]/gi, '$2 January $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[02-([1-3]\d)\]\]/gi, '$2 February $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[03-([1-3]\d)\]\]/gi, '$2 March $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[04-([1-3]\d)\]\]/gi, '$2 April $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[05-([1-3]\d)\]\]/gi, '$2 May $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[06-([1-3]\d)\]\]/gi, '$2 June $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[07-([1-3]\d)\]\]/gi, '$2 July $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[08-([1-3]\d)\]\]/gi, '$2 August $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[09-([1-3]\d)\]\]/gi, '$2 September $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[10-([1-3]\d)\]\]/gi, '$2 October $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[11-([1-3]\d)\]\]/gi, '$2 November $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[12-([1-3]\d)\]\]/gi, '$2 December $1');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-01-0(\d)([^\d\w])/gi, '$1$3 January $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-02-0(\d)([^\d\w])/gi, '$1$3 February $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-03-0(\d)([^\d\w])/gi, '$1$3 March $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-04-0(\d)([^\d\w])/gi, '$1$3 April $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-05-0(\d)([^\d\w])/gi, '$1$3 May $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-06-0(\d)([^\d\w])/gi, '$1$3 June $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-07-0(\d)([^\d\w])/gi, '$1$3 July $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-08-0(\d)([^\d\w])/gi, '$1$3 August $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-09-0(\d)([^\d\w])/gi, '$1$3 September $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-10-0(\d)([^\d\w])/gi, '$1$3 October $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-11-0(\d)([^\d\w])/gi, '$1$3 November $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-12-0(\d)([^\d\w])/gi, '$1$3 December $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-01-([1-3]\d)([^\d\w])/gi, '$1$3 January $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-02-([1-3]\d)([^\d\w])/gi, '$1$3 February $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-03-([1-3]\d)([^\d\w])/gi, '$1$3 March $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-04-([1-3]\d)([^\d\w])/gi, '$1$3 April $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-05-([1-3]\d)([^\d\w])/gi, '$1$3 May $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-06-([1-3]\d)([^\d\w])/gi, '$1$3 June $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-07-([1-3]\d)([^\d\w])/gi, '$1$3 July $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-08-([1-3]\d)([^\d\w])/gi, '$1$3 August $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-09-([1-3]\d)([^\d\w])/gi, '$1$3 September $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-10-([1-3]\d)([^\d\w])/gi, '$1$3 October $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-11-([1-3]\d)([^\d\w])/gi, '$1$3 November $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-12-([1-3]\d)([^\d\w])/gi, '$1$3 December $2$4');
//unprotect access date etc
txt.value=txt.value.replace(/(date\s{0,30}=\s{0,30}\[\[)zz(\d{4}-\d\d-\d\d\]\])/gi, '$1$2');
var txt = document.editform.wpSummary;
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
document.editform.wpDiff.click();
}
function delink_ISO_to_mdy() {
var txt = document.editform.wpTextbox1;
//protect accessdate etc
//txt.value=txt.value.replace(/(date\s{0,30}=\s{0,30}\[\[)(\d{4}-\d\d-\d\d\]\])/gi, '$1zz$2');
txt.value=txt.value.replace(/\[\[(\d{4})-01-0(\d)\]\]/gi, 'January $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-02-0(\d)\]\]/gi, 'February $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-03-0(\d)\]\]/gi, 'March $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-04-0(\d)\]\]/gi, 'April $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-05-0(\d)\]\]/gi, 'May $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-06-0(\d)\]\]/gi, 'June $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-07-0(\d)\]\]/gi, 'July $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-08-0(\d)\]\]/gi, 'August $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-09-0(\d)\]\]/gi, 'September $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-10-0(\d)\]\]/gi, 'October $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-11-0(\d)\]\]/gi, 'November $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-12-0(\d)\]\]/gi, 'December $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-01-([1-3]\d)\]\]/gi, 'January $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-02-([1-3]\d)\]\]/gi, 'February $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-03-([1-3]\d)\]\]/gi, 'March $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-04-([1-3]\d)\]\]/gi, 'April $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-05-([1-3]\d)\]\]/gi, 'May $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-06-([1-3]\d)\]\]/gi, 'June $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-07-([1-3]\d)\]\]/gi, 'July $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-08-([1-3]\d)\]\]/gi, 'August $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-09-([1-3]\d)\]\]/gi, 'September $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-10-([1-3]\d)\]\]/gi, 'October $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-11-([1-3]\d)\]\]/gi, 'November $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})-12-([1-3]\d)\]\]/gi, 'December $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[01-0(\d)\]\]/gi, 'January $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[02-0(\d)\]\]/gi, 'February $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[03-0(\d)\]\]/gi, 'March $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[04-0(\d)\]\]/gi, 'April $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[05-0(\d)\]\]/gi, 'May $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[06-0(\d)\]\]/gi, 'June $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[07-0(\d)\]\]/gi, 'July $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[08-0(\d)\]\]/gi, 'August $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[09-0(\d)\]\]/gi, 'September $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[10-0(\d)\]\]/gi, 'October $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[11-0(\d)\]\]/gi, 'November $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[12-0(\d)\]\]/gi, 'December $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[01-([1-3]\d)\]\]/gi, 'January $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[02-([1-3]\d)\]\]/gi, 'February $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[03-([1-3]\d)\]\]/gi, 'March $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[04-([1-3]\d)\]\]/gi, 'April $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[05-([1-3]\d)\]\]/gi, 'May $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[06-([1-3]\d)\]\]/gi, 'June $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[07-([1-3]\d)\]\]/gi, 'July $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[08-([1-3]\d)\]\]/gi, 'August $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[09-([1-3]\d)\]\]/gi, 'September $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[10-([1-3]\d)\]\]/gi, 'October $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[11-([1-3]\d)\]\]/gi, 'November $2, $1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[12-([1-3]\d)\]\]/gi, 'December $2, $1');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-01-0(\d)([^\d\w])/gi, '$1January $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-02-0(\d)([^\d\w])/gi, '$1February $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-03-0(\d)([^\d\w])/gi, '$1March $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-04-0(\d)([^\d\w])/gi, '$1April $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-05-0(\d)([^\d\w])/gi, '$1May $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-06-0(\d)([^\d\w])/gi, '$1June $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-07-0(\d)([^\d\w])/gi, '$1July $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-08-0(\d)([^\d\w])/gi, '$1August $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-09-0(\d)([^\d\w])/gi, '$1September $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-10-0(\d)([^\d\w])/gi, '$1October $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-11-0(\d)([^\d\w])/gi, '$1November $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-12-0(\d)([^\d\w])/gi, '$1December $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-01-([1-3]\d)([^\d\w])/gi, '$1January $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-02-([1-3]\d)([^\d\w])/gi, '$1February $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-03-([1-3]\d)([^\d\w])/gi, '$1March $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-04-([1-3]\d)([^\d\w])/gi, '$1April $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-05-([1-3]\d)([^\d\w])/gi, '$1May $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-06-([1-3]\d)([^\d\w])/gi, '$1June $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-07-([1-3]\d)([^\d\w])/gi, '$1July $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-08-([1-3]\d)([^\d\w])/gi, '$1August $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-09-([1-3]\d)([^\d\w])/gi, '$1September $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-10-([1-3]\d)([^\d\w])/gi, '$1October $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-11-([1-3]\d)([^\d\w])/gi, '$1November $3, $2$4');
txt.value=txt.value.replace(/([^\d\w])(\d{4})-12-([1-3]\d)([^\d\w])/gi, '$1December $3, $2$4');
//unprotect access date etc
txt.value=txt.value.replace(/(date\s{0,30}=\s{0,30}\[\[)zz(\d{4}-\d\d-\d\d\]\])/gi, '$1$2');
var txt = document.editform.wpSummary;
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
document.editform.wpDiff.click();
}
function year_in_blah() {
var txt = document.editform.wpTextbox1;
txt.value=txt.value.replace(/\[\[\d{1,4}s?\sin\s[^\|\]]+\|(\d{1,4}s?)\]\]/gi, '\[\[$1\]\]');
txt.value=txt.value.replace(/\{\{..\|(d{4})\}\}/gi, '$1');
}
function part_dates() {
//Unprotect 2000 AD etc
txt.value=txt.value.replace(/(\[\[(?:2300|2000))xx(AD]\])/gi, '$1 $2');
//month+year
//year: temporary change to protect accessyear. Undone below at #1
//txt.value=txt.value.replace(/(accessyear\s?=\s?)\[\[(\d{1,4})\]\]/gi, '$1xx$2xx');
//Year: temporary change to protext preference dates - y?y?y?. Needed to handle 'year in' piped links
//txt.value=txt.value.replace(/(\[\[\d\d?\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\],?\s?\s?)\[\[(\d{1,4})\]\]y?y?y?/gi,'$1xx$2xx');
//txt.value=txt.value.replace(/\[\[(\d{1,4})\]\]y?y?y?(,?\s?\-?\s?\[\[\d\d?\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\])/gi,'xx$1xx$2');
//txt.value=txt.value.replace(/\[\[(\d{1,4})\]\]y?y?y?(,?\s?\-?\s?\[\[\d\d\-\d\d\]\]y?y?y?)/gi,'xx$1xx$2');
//year: now remove unprotected linked years
//txt.value=txt.value.replace(/\[\[(\d{1,4})\]\]/gi, '$1');
//year: #1. Undo temporary change to protect accessyear and date preference dates
//txt.value=txt.value.replace(/xx(\d{1,4})xx/gi, '\[\[$1\]\]');
//'present'
//4 digit years piped into 2
txt.value=txt.value.replace(/\[\[\d{1,4}\|(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1');
//full dates with incorrect 'year in'
txt.value=txt.value.replace(/(\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s(?:[0-3][\d]|[\d])\]\]),\s\[\[(\d{1,4})\sin\s[^\]]{1,32}\]\]/gi, '$1 $2');
txt.value=txt.value.replace(/(\[\[(?:[0-3][\d]|[\d])\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\])\s\[\[(\d{1,4})\sin\s[^\]]{1,32}\]\]/gi, '$1 $2');
txt.value=txt.value.replace(/(\[\[(?:[0-3][\d]|[\d])\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\])\s{{(?:avyear|by|fy|ly|scy|sdy)\|(\d{1,4})}}/gi, '$1 [[$2]]');
txt.value=txt.value.replace(/(\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s(?:[0-3][\d]|[\d])\]\]),\s{{(?:avyear|by|fy|ly|scy|sdy)\|(\d{1,4})}}/gi, '$1 [[$2]]');
}
function formatgeneral() {
txt.value=txt.value.replace(/({convert\|\d(?:\.\d+|)\|acre)}/g, '$1|m2}');
txt.value=txt.value.replace(/({convert\|[^\}]*(?:km2|sqmi)[^\}]*)\|lk=(?:on|in|out)/g, '$1');
//kilometre per second
//square foot: plural
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(\d[\d,\.]*)(?:\s|-| |)(?:square\sfeet|\[\[square\sfeet\]\])([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1{{convert|$2|sqft|m2}}$3');
//feet per second
//knot - abbreviation
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(\d[\d,\.]*)(?:\s|-| |)(?:kts?|\[\[knot\s\(speed\)\|(?:kt|kn)\]\])([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1{{convert|$2|kn|km/h|abbr=on}}$3');
//mile - delink this common unit
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(\d[\d,\.]*)(?:\s|-| |)\[\[acre(?:\s|-| |)foot\|acre(?:\s|-| |)ft\]\]([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1{{convert|$2|acre ft|abbr=on}}$3');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(\d[\d,\.]*)(?:\s|-| |)\[\[acre(?:\s|-| |)ft\]\]([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1{{convert|$2|acre ft|abbr=on}}$3');
//acre
}
function all_dates() {
var txt = document.editform.wpTextbox1;
part_dates();
//Remove full US format dates, ensure that comma is present
txt.value=txt.value.replace(/\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d\d?)\]\],?\s?\s?\[\[(\d{1,4})\]\]/gi,'$1, $2');
//Remove month+day and day+month formats
txt.value=txt.value.replace(/\[\[(\d\d?\s(?:January|February|March|April|May|June|July|August|September|October|November|December))\]\]/gi,'$1');
txt.value=txt.value.replace(/\[\[(\d\d?\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\]\]/g,'$1');
txt.value=txt.value.replace(/\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d\d?)\]\]/gi,'$1');
txt.value=txt.value.replace(/\[\[((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d\d?)\]\]/g,'$1');
//year: temporary change to protect split linked ISO dates. Undone below
//txt.value=txt.value.replace(/(\[\[\d{1,4}\]\]-\[\[\d\d-\d\d\]\])/gi, 'qq$1');
//year: now remove unprotected linked years
txt.value=txt.value.replace(/([^q])\[\[(\d{1,4})\]\]/gi, '$1$2');
//year: Undo temporary change to protect part linked ISO dates
//txt.value=txt.value.replace(/qq(\[\[)/gi, '$1');
}
function run_part_dates() {
var txt = document.editform.wpTextbox1;
part_dates();
var txt = document.editform.wpSummary;
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
document.editform.wpDiff.click()
}
addOnloadHook(function () {
if(document.forms.editform) {
// addPortletLink('p-cactions', 'javascript:run_part_dates()', 'part dates', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
}
});
function run_all_dates() {
var txt = document.editform.wpTextbox1;
all_dates();
// Add a tag to the summary box
var txt = document.editform.wpSummary;
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
// Press the diff button to check it
document.editform.wpDiff.click()
}
addOnloadHook(function () {
if(document.forms.editform) {
// addPortletLink('p-cactions', 'javascript:run_all_dates()', 'all dates', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
}
});
function run_year_in_blah() {
var txt = document.editform.wpTextbox1;
year_in_blah();
// Add a tag to the summary box
var txt = document.editform.wpSummary;
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
// Press the diff button to check it
document.editform.wpDiff.click()
}
addOnloadHook(function () {
if(document.forms.editform) {
// addPortletLink('p-cactions', 'javascript:run_year_in_blah()', 'year in blah', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
}
});
function run_formatgeneral() {
var txt = document.editform.wpTextbox1;
formatgeneral();
// Add a tag to the summary box
var txt = document.editform.wpSummary;
}
});
function combined() {
var txt = document.editform.wpTextbox1;
formatgeneral();
part_dates();
// Add a tag to the summary box
var txt = document.editform.wpSummary;
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
// Press the diff button to check it
document.editform.wpDiff.click()
}
addOnloadHook(function () {
if(document.forms.editform) {
// addPortletLink('p-cactions', 'javascript:combined()', 'dates+units', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
// addPortletLink('p-cactions', '', 'Note to users: script commands now in toolbox at bottom left beneath: What links here', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
// addPortletLink('p-cactions', '', 'B', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
}
});
//
function LMmosdate() {
var txt = document.editform.wpTextbox1;
txt.value = txt.value
//MOSDATE remove th in dates followed by -th, others
//.replace(/([^\[])(January|February|March|April|May|June|July|August|September|October|November|December)\s(\d\d?)(th|st|nd|rd)/gi, '$1[[$2 $3]]')
.replace(/(January|February|March|April|May|June|July|August|September|October|November|December)\s(\d\d?)(th|st|nd|rd)/gi, '$1 $2')
.replace(/\[\[(January|February|March|April|May|June|July|August|September|October|November|December)\s(\d\d?)\]\](<sup>)?(th|st|nd|rd)(<\/sup>)?/gi, '[[$1 $2]]')
.replace(/(\D\d\d?)(<sup>)?(th|st|nd|rd)(<\/sup>)?\s(January|February|March|April|May|June|July|August|September|October|November|December)/gi, '$1 $5')
.replace(/\s(\d{3}0)'s(\W)/gi, ' $1s$2');
}
txt.value += summary;
}
// Press the diff button to check it
document.editform.wpDiff.click()
}
function LMdayMonthdelink_dates_to_dmy (option) {
var daymonth = new RegExp("\\[\\[0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|) (Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\\]\\],? *\\[\\[([0-9][0-9][0-9][0-9])\\]\\]", "g");
var monthday = new RegExp("\\[\\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?) 0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|)\\]\\](?:st|nd|rd|th|),? *\\[\\[([0-9][0-9][0-9][0-9])\\]\\]", "g");
var daymonth2 = new RegExp("\\[\\[0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|) (Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\\]\\]", "g");
var monthday2 = new RegExp("\\[\\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?) 0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|)\\]\\](?:st|nd|rd|th|)", "g");
var txt = document.editform.wpTextbox1;
protect_dates();
part_dates();
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d?\d)\]\],?\s?\[\[(\d{1,4})\]\]/gi, '$2 $1 $3');
//fix 'bda' template redirect
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d?\d)\]\],?\s?(\d{1,4})([\w\d])/gi, '$2 $1 $3$4');
txt.value=txt.value.replace(/{{bda\|([^}]+)}}/gi, '{{birth date and age|$1}}');
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d?\d)\]\]/gi, '$2 $1');
txt.value=txt.value.replace(/\[\[(\d?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\],?\s?\[\[(\d{1,4})\]\]/gi, '$1 $2 $3');
txt.value=txt.value.replace(/\[\[(\d?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\],?\s?(\d{1,4})([\w\d])/gi, '$1 $2 $3$4');
txt.value=txt.value.replace(/\[\[(\d?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\]/gi, '$1 $2');
//year: temporary change to protect accessyear. Undone below at #1
if (option == 1) {
txt.value=txt.value.replace(/(accessyear\s?=\s?)\[\[(\d{1,4})\]\]/gi, '$1xx$2xx');
//year: now remove unprotected linked years
//change to dmy
txt.value=txt.value.replace(/\[\[(\d{1,4})\]\]/gi, '$1');
// dd Month
//year: #1. Undo temporary change to protect accessyear and date preference dates
txt.value = txt.value.replace(monthday , "[[$2 $1]] [[$3]]");
txt.value = txt.value.replace(daymonth /xx(\d{1,4})xx/gi, "'\[\[$1 $2]] [[$3\]\]"');
txt.value = txt.value.replace(monthday2, "[[$2 $1]]");
txt.value = txt.value.replace(daymonth2, "[[$1 $2]]");
txt.value=txt.value.replace(/\[\[([0-3][\d]|[\d])(?:st|nd|rd|th|)(?:-|–|\s)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d{1,4})\]\]/gi, '$1 $2 $3');
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:-|–|\s)([0-3][\d]|[\d])(?:st|nd|rd|th|),?\s(\d{1,4})\]\]/gi, '$2 $1 $3');
//remove dts-simple template that links dates
txt.value=txt.value.replace(/{{dts-simple\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\|\s?(\d\d?)\|(\d{1,4})}}/gi, '$2 $1 $3');
//remove dts3 template that links dates
txt.value=txt.value.replace(/{{dts3\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\|(\d\d?)\|(\d{1,4})}}/gi, '$2 $1 $3');
//change deprecated dts2 template
txt.value=txt.value.replace(/({{dts\|)link=off\|([^}]*link=off)/gi, '$1$2');
txt.value=txt.value.replace(/({{dts\|)format=dmy\|([^}]*format=dmy)/gi, '$1$2');
//Attempt to fix date range errors
//txt.value=txt.value.replace(/ ([0-3][\d]|[\d])(?:st|nd|rd|th|) (January|February|March|April|May|June|July|August|September|October|November|December)(?:-|–)([0-3][\d]|[\d])(?:st|nd|rd|th|),? /gi, ' $1-$3 $2 ');
//txt.value=txt.value.replace(/ (January|February|March|April|May|June|July|August|September|October|November|December),? ([0-3][\d]|[\d])(?:-|–)([0-3][\d]|[\d])(?:st|nd|rd|th|),? /gi, ' $2-$3 $1 ');
//change deprecated birth and death templates
txt.value=txt.value.replace(/({{(?:Birth|Death|release)[^|]*\|)df=ye?s?\|([^}]*df=ye?s?)/gi, '$1$2');
unprotect_dates();
//delink ISO
//delink_ISO_to_dmy();
//Preview page and add edit summary
} else {
var txt = document.editform.wpSummary;
//change to mdy
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
document.editform.wpDiff.click();
}
function delink_dates_to_mdy() {
// Month dd
var txt = document.editform.wpTextbox1;
txt.value = txt.value.replace(monthday , "[[$1 $2]], [[$3]]");
protect_dates();
txt.value = txt.value.replace(daymonth , "[[$2 $1]], [[$3]]");
part_dates();
txt.value = txt.value.replace(monthday2, "[[$1 $2]]");
txt.value = txt.value.replace(daymonth2, "[[$2 $1]]");
txt.value=txt.value.replace(/\[\[([0-3][\d]|[?\d])(?:st|nd|rd|th|)(?:-|–|\s)(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\],?\s?\[\[(\d{1,4})\]\]/gi, '$2 $1, $3');
txt.value=txt.value.replace(/\[\[(\d?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:-|–|\s)([0-3][\d]|[\d])(?:st|nd|rd|th|),?\s?(\d{1,4})([\]w\d])/gi, '$12 $21, $3$4');
txt.value=txt.value.replace(/\[\[(\d?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\]/gi, '$2 $1');
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d?\d)\]\],?\s?\[\[(\d{1,4})\]\]/gi, '$1 $2, $3');
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d?\d)\]\],?\s(\d{1,4})/gi, '$1 $2, $3');
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d?\d)\]\]/gi, '$1 $2');
//year: temporary change to protect accessyear. Undone below at #1
txt.value=txt.value.replace(/(accessyear\s?=\s?)\[\[(\d{1,4})\]\]/gi, '$1xx$2xx');
//year: now remove unprotected linked years
txt.value=txt.value.replace(/\[\[(\d{1,4})\]\]/gi, '$1');
//year: #1. Undo temporary change to protect accessyear and date preference dates
txt.value=txt.value.replace(/xx(\d{1,4})xx/gi, '\[\[$1\]\]');
//remove dts-simple template that links dates
//remove dts3 template that links dates
txt.value=txt.value.replace(/{{dts3\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\|(\d\d?)\|(\d{1,4})}}/gi, '$1 $2, $3');
//change deprecated dts2 template
txt.value=txt.value.replace(/({{(?:Birth|Death|release)[^|]*\|)mf=ye?s?\|([^}]*mf=ye?s?)/gi, '$1$2');
unprotect_dates();
//Attempt to fix date range errors
//txt.value=txt.value.replace(/ ([0-3][\d]|[\d])(?:st|nd|rd|th|)(?:-|–)(January|February|March|April|May|June|July|August|September|October|November|December) ([0-3][\d]|[\d])(?:st|nd|rd|th|),? /gi, ' $2 $1-$3 ');
//txt.value=txt.value.replace(/ ([0-3][\d]|[\d])(?:st|nd|rd|th|)(?:-|–)([0-3][\d]|[\d])(?:st|nd|rd|th|) (January|February|March|April|May|June|July|August|September|October|November|December),? /gi, ' $3 $1-$2 ');
//Preview page and add edit summary
//delink ISO
var txt = document.editform.wpSummary;
//delink_ISO_to_mdy();
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
if (txt.value.indexOf(summary) == -1) {
}
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
//Attempt to fix date range errors
txt.value += " | ";
txt.value=txt.value.replace(/(\d January) January (\d)/gi, '$1 $2');
}
txt.value=txt.value.replace(/(\d February) February (\d)/gi, '$1 $2');
txt.value += summary;
txt.value=txt.value.replace(/(\d March) March (\d)/gi, '$1 $2');
}
txt.value=txt.value.replace(/(\d April) April (\d)/gi, '$1 $2');
document.editform.wpDiff.click();
txt.value=txt.value.replace(/(\d May) May (\d)/gi, '$1 $2');
txt.value=txt.value.replace(/(\d June) June (\d)/gi, '$1 $2');
txt.value=txt.value.replace(/(\d July) July (\d)/gi, '$1 $2');
txt.value=txt.value.replace(/(\d August) August (\d)/gi, '$1 $2');
txt.value=txt.value.replace(/(\d September) September (\d)/gi, '$1 $2');
txt.value=txt.value.replace(/(\d October) October (\d)/gi, '$1 $2');
txt.value=txt.value.replace(/(\d November) November (\d)/gi, '$1 $2');
txt.value=txt.value.replace(/(\d December) December (\d)/gi, '$1 $2');
}
function LMaddDLinksall_dates_to_dmy() {
var daymonth = new RegExp("0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|) (January|February|March|April|May|June|July|August|September|October|November|December),? *([0-9][0-9][0-9][0-9])", "g");
var monthday = new RegExp("(January|February|March|April|May|June|July|August|September|October|November|December) 0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|),? *([0-9][0-9][0-9][0-9])", "g");
var daymonth2 = new RegExp("\\[\\[0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|) (January|February|March|April|May|June|July|August|September|October|November|December)\\]\\],? *([0-9][0-9][0-9][0-9])", "g");
var monthday2 = new RegExp("\\[\\[(January|February|March|April|May|June|July|August|September|October|November|December) 0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|)\\]\\],? *([0-9][0-9][0-9][0-9])", "g");
var daymonth3 = new RegExp("([^0-9\[])0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|) (January|February|March|April|May|June|July|August|September|October|November|December)([^0-9\\]])", "g");
var monthday3 = new RegExp("([^0-9\[])(January|February|March|April|May|June|July|August|September|October|November|December) 0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|)([^0-9\\]])", "g");
var txt = document.editform.wpTextbox1;
protect_dates();
txt.value = txt.value.replace(monthday, "[[$1 $2]], [[$3]]");
part_dates();
txt.value = txt.value.replace(daymonth, "[[$1 $2]] [[$3]]");
txt.value = txt.value.replace(monthday2, "[[$1 $2]], [[$3]]");
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d?\d)\]\],?\s?\[\[(\d{1,4})\]\]/gi, '$2 $1 $3');
txt.value = txt.value.replace(daymonth2, "[[$1 $2]] [[$3]]");
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d?\d)\]\],?\s?(\d{1,4})([\w\d])/gi, '$2 $1 $3$4');
txt.value = txt.value.replace(monthday3, "$1[[$2 $3]]$4");
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d?\d)\]\]/gi, '$2 $1');
txt.value = txt.value.replace(daymonth3, "$1[[$2 $3]]$4");
txt.value=txt.value.replace(/\[\[(\d?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\],?\s?\[\[(\d{1,4})\]\]/gi, '$1 $2 $3');
txt.value=txt.value.replace(/\[\[(\d?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\],?\s?(\d{1,4})([\w\d])/gi, '$1 $2 $3$4');
txt.value=txt.value.replace(/\[\[(\d?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\]/gi, '$1 $2');
txt.value=txt.value.replace(/([^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0-3]?\d),?\s(\d{1,4})([^\w\d])/gi, '$1$3 $2 $4$5');
txt.value=txt.value.replace(/([^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0-3]?\d)([^\w\d])/gi, '$1$3 $2$4');
//year: temporary change to protect accessyear. Undone below at #1
txt.value=txt.value.replace(/(accessyear\s?=\s?)\[\[(\d{1,4})\]\]/gi, '$1xx$2xx');
//year: now remove unprotected linked years
txt.value=txt.value.replace(/\[\[(\d{1,4})\]\]/gi, '$1');
//year: #1. Undo temporary change to protect accessyear and date preference dates
txt.value=txt.value.replace(/xx(\d{1,4})xx/gi, '\[\[$1\]\]');
//remove dts-simple template that links dates
txt.value=txt.value.replace(/{{dts-simple\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\|\s?(\d\d?)\|(\d{1,4})}}/gi, '$2 $1 $3');
//remove dts3 template that links dates
txt.value=txt.value.replace(/{{dts3\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\|(\d\d?)\|(\d{1,4})}}/gi, '$2 $1 $3');
//change deprecated dts2 template
txt.value=txt.value.replace(/{{dts2\|(.*?)\|(.*?)\|(.*?)}}/gi, '{{dts|link=off|format=dmy|$3|$2|$1}}');
//fix dts template
txt.value=txt.value.replace(/({{dts\|)/gi, '$1link=off|format=dmy|');
txt.value=txt.value.replace(/({{dts\|)link=off\|([^}]*link=off)/gi, '$1$2');
txt.value=txt.value.replace(/({{dts\|)format=dmy\|([^}]*format=dmy)/gi, '$1$2');
//change deprecated birth and death templates
txt.value=txt.value.replace(/({{(?:Birth|Death|release)[^}]*)\|mf=ye?s?/gi, '$1');
txt.value=txt.value.replace(/({{(?:Birth|Death|release)[^|]*\|)/gi, '$1df=yes|');
txt.value=txt.value.replace(/({{(?:Birth|Death|release)[^|]*\|)df=ye?s?\|([^}]*df=ye?s?)/gi, '$1$2');
unprotect_dates();
//Preview page and add edit summary
var txt = document.editform.wpSummary;
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
document.editform.wpDiff.click();
}
function LMremDLinksall_dates_to_mdy() {
var daymonth = new RegExp("\\[\\[0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|) (January|February|March|April|May|June|July|August|September|October|November|December)\\]\\],? *\\[\\[([0-9][0-9][0-9][0-9])\\]\\]", "g");
var monthday = new RegExp("\\[\\[(January|February|March|April|May|June|July|August|September|October|November|December) 0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|)\\]\\](?:st|nd|rd|th|),? *\\[\\[([0-9][0-9][0-9][0-9])\\]\\]", "g");
var daymonth3 = new RegExp("\\[\\[0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|) (January|February|March|April|May|June|July|August|September|October|November|December)\\]\\]", "g");
var monthday3 = new RegExp("\\[\\[(January|February|March|April|May|June|July|August|September|October|November|December) 0?([1-3][0-9]|[0-9])(?:st|nd|rd|th|)\\]\\](?:st|nd|rd|th|)", "g");
var txt = document.editform.wpTextbox1;
protect_dates();
txt.value = txt.value.replace(monthday, "$1 $2, $3");
part_dates();
txt.value = txt.value.replace(daymonth, "$1 $2 $3");
txt.value = txt.value.replace(monthday3, "$1 $2");
txt.value = txt.value.replace(daymonth3, "$1 $2");
}
txt.value=txt.value.replace(/\[\[([0-3]?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\],?\s?\[\[(\d{1,4})\]\]/gi, '$2 $1, $3');
txt.value=txt.value.replace(/\[\[([0-3]?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\],?\s?(\d{1,4})([\w\d])/gi, '$2 $1, $3$4');
txt.value=txt.value.replace(/\[\[(\d?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\]\]/gi, '$2 $1');
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0-3]?\d)\]\],?\s?\[\[(\d{1,4})\]\]/gi, '$1 $2, $3');
function delink_dates_to_dmy_or_mdy(option) {
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0-3]?\d)\]\],?\s?(\d{1,4})([\w\d])/gi, '$1 $2, $3$4');
protect_dates();
txt.value=txt.value.replace(/\[\[(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0-3]?\d)\]\]/gi, '$1 $2');
//run part_dates first because of 'year in blah' code
part_dates();
txt.value=txt.value.replace(/([^\w\d])([0-3]?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s(\d{1,4})([^\w\d])/gi, '$1$3 $2, $4$5');
LMdayMonth(option);
txt.value=txt.value.replace(/([^\w\d])([0-3]?\d)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)([^\w\d])/gi, '$1$3 $2$4');
all_dates();
//run function again because it contains a date range bit
//year: temporary change to protect accessyear. Undone below at #1
LMdayMonth(option);
txt.value=txt.value.replace(/(accessyear\s?=\s?)\[\[(\d{1,4})\]\]/gi, '$1xx$2xx');
unprotect_dates();
//year: now remove unprotected linked years
// Add a tag to the summary box
txt.value=txt.value.replace(/\[\[(\d{1,4})\]\]/gi, '$1');
//year: #1. Undo temporary change to protect accessyear and date preference dates
txt.value=txt.value.replace(/xx(\d{1,4})xx/gi, '\[\[$1\]\]');
//remove dts-simple template that links dates
txt.value=txt.value.replace(/{{dts-simple\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\|\s?(\d\d?)\|(\d{1,4})}}/gi, '$1 $2, $3');
//remove dts3 template that links dates
txt.value=txt.value.replace(/{{dts3\|(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\|(\d\d?)\|(\d{1,4})}}/gi, '$1 $2, $3');
//change deprecated dts2 template
txt.value=txt.value.replace(/{{dts2\|(.*?)\|(.*?)\|(.*?)}}/gi, '{{dts|link=off|$3|$2|$1}}');
//fix dts template
txt.value=txt.value.replace(/({{dts\|)/gi, '$1link=off|');
txt.value=txt.value.replace(/({{dts\|)link=off\|([^}]*link=off)/gi, '$1$2');
//change deprecated birth and death templates
txt.value=txt.value.replace(/({{(?:Birth|Death|release)[^}]*)\|df=ye?s?/gi, '$1');
txt.value=txt.value.replace(/({{(?:Birth|Death|release)[^|]*\|)/gi, '$1mf=yes|');
txt.value=txt.value.replace(/({{(?:Birth|Death|release)[^|]*\|)mf=ye?s?\|([^}]*mf=ye?s?)/gi, '$1$2');
unprotect_dates();
//Preview page and add edit summary
var txt = document.editform.wpSummary;
var summary = "[[User:Lightmouse/monobook.js/script.js|script]]-assisted date/terms audit; see [[Wikipedia:MOSNUM#Date_autoformatting|mosnum]], [[wp:overlink]]";
}
function delink_dates_to_dmy_and_common_terms() {
function delink_dates_to_dmy_or_mdy_and_year_in_X_and_common_terms(option) {
protect_datesdelink_dates_to_dmy();
//run part_dates first because of 'year in blah' code
part_dates();
// LMyearinX();
LMdayMonth(option);
all_dates();
//run function again because it contains a date range bit
LMdayMonth(option);
unprotect_dates();
CommonTerms();
// Add a tag to the summary box
}
function delink_dates_to_mdy_and_common_terms() {
delink_dates_to_mdy();
function all_dates_to_dmy_or_mdy(option) {
protect_datesCommonTerms();
//run part_dates first because of 'year in blah' code
part_dates();
// LMyearinX();
LMaddDLinks();
LMdayMonth(option);
LMremDLinks();
all_dates();
//run function again because it contains a date range bit
LMdayMonth(option);
unprotect_dates();
// Add a tag to the summary box
var txt = document.editform.wpSummary;
addPortletLink('p-tb', 'javascript:CommonTerms()', 'Delink common terms', 't-dmy', 'Regexp common terms', '', '');
addPortletLink('p-tb', 'javascript:run_formatgeneral()', 'Add metric units', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
// addPortletLink('p-tb', 'javascript:Deprecated()', 'General changes', 't-dmy', 'Regexp general changes', '', '');
addPortletLink('p-tb', 'javascript:run_all_dates()', 'Delink dates', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
addPortletLink('p-tb', 'javascript:delink_dates_to_dmy_or_mdydelink_dates_to_dmy(1)', 'Delink dates to dmy', 't-dmy', 'day month', '', '');
addPortletLink('p-tb', 'javascript:delink_dates_to_dmy_or_mdydelink_dates_to_mdy(2)', 'Delink dates to mdy', 't-mdy', 'month day', '', '');
addPortletLink('p-tb', 'javascript:all_dates_to_dmy_or_mdyall_dates_to_dmy(1)', 'All dates to dmy', 't-dmy', 'day month', '', '');
addPortletLink('p-tb', 'javascript:all_dates_to_dmy_or_mdyall_dates_to_mdy(2)', 'All dates to mdy', 't-mdy', 'month day', '', '');
addPortletLink('p-tb', 'javascript:LMyearinX()' , 'Delink year-in-X dates', 't-yearinX', 'Regexp yearinX', '', '');
// addPortletLink('p-tb', 'javascript:delink_ISOdelink_dates_to_dmy_and_common_terms()', 'Delink ISO dates to dmy+common terms', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
addPortletLink('p-tb', 'javascript:delink_dates_to_dmy_or_mdy_and_year_in_X_and_common_termsdelink_dates_to_mdy_and_common_terms(1)', 'Delink dates to dmymdy+common terms', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
addPortletLink('p-tb', 'javascript:delink_dates_to_dmy_or_mdy_and_year_in_X_and_common_terms(2)', 'Delink dates to mdy+common terms', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
// addPortletLink('p-tb', 'javascript:delink_ISO_to_dmy()', 'delink ISO to dmy', 't-mdy', 'month day', '', '');
// addPortletLink('p-tb', 'javascript:delink_ISO_to_mdy()', 'delink ISO to mdy', 't-mdy', 'month day', '', '');
}
|