User:Zmrzlina/monobook.js

From Battlestar Wiki, the free, open content Battlestar Galactica encyclopedia and episode guide

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
//'''Instructions for installation'''
//*EITHER: If you have a [[Special:Mypage/monobook.js|monobook]] already, go to it, click "edit this page", and paste in this string underneath your existing script:
//:<code><nowiki>importScript('User:Lightmouse/monobook.js/script.js');</nowiki></code>
//*OR: If you don't have a monobook.js page, create one using this title:
//:<code><nowiki>[[User:[your username]/monobook.js]]</nowiki></code>
//:Then click on "edit this page" and paste in at the top the "importScript" string you see three lines above here.
//*Hit "Save page".
//*Refresh your cache (instructions at top of monobook). 
//*You're ready to start.

//'''Applying the script—it's very simple'''
//*Go to an article and determine whether US or international format is used. (For this purpose, it's best to have selected "no preferences" for dates in your user preferences, which will display the raw date formats that our readers see. Otherwise, you'll need to check in edit mode.) Occasionally, you'll see that the wrong format is used (check [[Wikipedia:Mosnum#Full_date_formatting|MOSNUM's guidance on this]] carefully). 
//*Click on "edit this page". You'll see the list of script commands under "what links here". Click on either "delink all dates to mdy" (US format) or "delink all dates to mdy" (international format).
//*The diff will automatically appear. Check through the changes you're making before saving them. If there are problems, fix them manually before saving, or cancel.
//*Leave a note at the article talk page if editors need to negotiate which format to use, or need to be alerted to any other date-related issues.
//*Click on "Save page": it's done.

function make_dates_bold(){
 var txt=document.editform.wpTextbox1;

//process date ranges containing a hyphen
 txt.value=txt.value.replace(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?[-–]\s?(?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?)\s?:\s?/gi, '* \'\'\'$1:\'\'\' ');

//process date ranges containing a hyphen
 txt.value=txt.value.replace(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?[-–]\s?\d\d?)\s?:\s?/gi, '* \'\'\'$1:\'\'\' ');


//protect date ranges containing a hyphen
 txt.value=txt.value.replace(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)[-–](\s?(?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?)\s?:\s?/gi, '$1xx$2');
 txt.value=txt.value.replace(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)[-–](\s?\d\d?)\s?:\s?/gi, '$1xx$2');


//process dates containing a hyphen
 txt.value=txt.value.replace(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)[-–]\s?/gi, '* \'\'\'$1:\'\'\' ');

//unprotect date ranges containing a hyphen
 txt.value=txt.value.replace(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)xx(\s?(?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?)\s?:\s?/gi, '$1–$2');
 txt.value=txt.value.replace(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)xx(\s?\d\d?)\s?:\s?/gi, '$1–$2');

//process other dates
 txt.value=txt.value.replace(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?)\s?:\s?/gi, '* \'\'\'$1:\'\'\' ');


 edit_summary();
}

function fix_common_errors() {
 var txt=document.editform.wpTextbox1;
//first add template
//if (txt.value.search(/{{template}}/gi) == -1)
//{
//txt.value='{{template}}\r\n'+txt.value;
//}

//month+day piped
 txt.value=txt.value.replace(/\[\[\d{1,2}(?:th|st|nd|rd|)\s(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\|([^\]]{1,30})\]\]/gi, '$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{1,2}(?:th|st|nd|rd|)\|([^\]]{1,30})\]\]/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');
 txt.value=txt.value.replace(/(\[\[[^\]\|]*)\s(\]\])/gi, '$1$2');
 txt.value=txt.value.replace(/(\[\[[^\]]*\s)\s+([^\]]\]\])/gi, '$1$2');
 txt.value=txt.value.replace(/(\[\[[^\]]*\d),(\]\])/gi, '$1$2');
}

function part_dates() {
 var txt=document.editform.wpTextbox1;

fix_common_errors();

//remove leading zeros from dts templates
 txt.value=txt.value.replace(/({{dts\d?\|[^}]*\|)0([^}]*}})/gi, '$1$2');

//delink ISO dates
 txt.value=txt.value.replace(/\[\[(\d{4}-\d\d-\d\d)\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[(\d\d-\d\d)\]\]/gi, '$1-$2');
 txt.value=txt.value.replace(/(\d{4})-\[\[(\d\d-\d\d)\]\]/gi, '$1-$2');
 txt.value=txt.value.replace(/\[\[(\d{4})\]\]-(\d\d-\d\d)/gi, '$1-$2');

//remove templates that links launch year, baseball year etc
// txt.value=txt.value.replace(/{{(?:avyear|by|fy|ly|scy|sdy)\|(\d{1,4})}}/gi, '$1');

//remove dts1 template that links ISO dates
 txt.value=txt.value.replace(/{{dts1\|(\d{4}-\d\d-\d\d)}}/gi, '$1');

// century
// txt.value=txt.value.replace(/\[\[((?:first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|eleventh|twelfth|thirteenth|fourteenth|fifteenth|sixteenth|seventeenth|eighteenth|nineteenth|twentieth|twenty(?:\s|-)first)(?:\s|-))(century|centuries)\]\]/gi, '$1$2');
// txt.value=txt.value.replace(/\[\[(?:first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|eleventh|twelfth|thirteenth|fourteenth|fifteenth|sixteenth|seventeenth|eighteenth|nineteenth|twentieth|twenty(?:\s|-)first(?:\s|-))(?:century|centuries)\|([^\]]{1,30})\]\]/gi, '$1');

 txt.value=txt.value.replace(/\[\[((?:first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|eleventh|twelfth|thirteenth|fourteenth|fifteenth|sixteenth|seventeenth|eighteenth|nineteenth|twentieth|twenty(?:\s|-)first)(?:\s|-))(century|centuries)(\sAD|\sBC|\sCE|\sBCE|)\]\]/gi, '$1$2$3');
 txt.value=txt.value.replace(/\[\[(?:first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|eleventh|twelfth|thirteenth|fourteenth|fifteenth|sixteenth|seventeenth|eighteenth|nineteenth|twentieth|twenty(?:\s|-)first)(?:\s|-)(?:century|centuries)(?:\sAD|\sBC|\sCE|\sBCE|)\|([^\]]{1,30})\]\]/gi, '$1');

 txt.value=txt.value.replace(/\[\[(\d{1,2}(?:st|nd|rd|th)(?:\s|-))(century|centuries)(\sAD|\sBC|\sCE|\sBCE|)\]\]/gi, '$1$2$3');
 txt.value=txt.value.replace(/\[\[\d{1,2}(?:st|nd|rd|th)(?:\s|-)(?:century|centuries)(?:\sAD|\sBC|\sCE|\sBCE|)\|([^\]]{1,30})\]\]/gi, '$1');

// decades and years
 txt.value=txt.value.replace(/\[\[(\d{1,3}0)\'?s\]\]/g, '$1s');
 txt.value=txt.value.replace(/\[\[\d{1,3}0\'?s?\|([^\]]{1,30})\]\]/g, '$1');
 txt.value=txt.value.replace(/\[\[(\d{1,3}0)\'?(s)?\s(AD|BC|CE|BCE)\]\]/gi, '$1$2 $3');
 txt.value=txt.value.replace(/\[\[\d{1,3}0\'?s?\s(?:AD|BC|CE|BCE)\|([^\]]{1,30})\]\]/gi, '$1');

//month+year
//Identify surprise or 'Easter egg' diversions linking month+years to year articles. Turn them into month+year links to be dealt with below
 txt.value=txt.value.replace(/\[\[\d{1,4}#[^\|\]]+\|((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{3,4})\]\]/gi, '[[$1]]');
 txt.value=txt.value.replace(/\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{3,4})\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{3,4}\|([^\]]{1,30})\]\]/gi, '$1');

//removed piped years when in full date
 txt.value=txt.value.replace(/(\[\[\d{1,2}\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\],?\s?\[\[)[^\|\]]{1,32}\|(\d{1,4}\]\])/gi, '$1$2');
 txt.value=txt.value.replace(/(\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}\]\],?\s?\[\[)[^\|\]]{1,32}\|(\d{1,4}\]\])/gi, '$1$2');

//remove 'xx' left by other code
 txt.value=txt.value.replace(/(in)xx((?:aviation|baseball|film|literature|comics|ireland))/gi, '$1 $2');

//'present'
 txt.value=txt.value.replace(/\[\[Present\s\(time\)\|([^\]]{1,30})\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[(Present)\]\]/gi, '$1');

//Season
 txt.value=txt.value.replace(/\[\[(spring\s\(season\)|summer|winter|autumn)\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[spring\s\(season\)\|([^\]]{1,30})\]\]/gi, '$1');

//Identify surprise or 'Easter egg' diversions linking months to year articles.
 txt.value=txt.value.replace(/\[\[\d{1,4}#[^\|\]]+\|(January|February|March|April|May|June|July|August|September|October|November|December)\]\]/gi, '$1');

// months
 txt.value=txt.value.replace(/\[\[(January|February|March|April|May|June|July|August|September|October|November|December)\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\|([^\]]{1,30})\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[(Jan\.?|Feb\.?|Mar\.?|Apr\.?|May\.?|Jun\.?|Jul\.?|Aug\.?|Sep\.?|Oct\.?|Nov\.?|Dec\.?)\]\]/g, '$1');
//Treat 'Sept' (i.e. month abbreviation) differently from 'sept' (i.e. family)
 txt.value=txt.value.replace(/\[\[(Sept)\]\]/g, '$1');

//Month+day_number "March 7th" -> "March 7"
 txt.value=txt.value.replace(/\[\[(January|February|March|April|May|June|July|August|September|October|November|December)\s(\d?\d)(?:th|st|nd|rd)\]\]/gi, '[[$1 $2]]');
 txt.value=txt.value.replace(/\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d?\d)\]\](?:th|st|nd|rd)/gi, '[[$1]]');
 txt.value=txt.value.replace(/\[\[(\d?\d)(?:th|st|nd|rd)\s(January|February|March|April|May|June|July|August|September|October|November|December)\]\]/gi, '[[$1 $2]]');



//Sequence containing month+day_number piped into number. Preferences do not work. They don't work in sequence because digits in the two dates must be adjacent
 txt.value=txt.value.replace(/([^\[]{4})\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d?\d)\]\](\s?\-?\s?)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}(?:th|st|nd|rd)\|(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');
//same again but with ndash or mdash instead of hyphen
 txt.value=txt.value.replace(/([^\[]{4})\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d?\d)\]\](\s?&[nm]dash;\s?)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}(?:th|st|nd|rd)\|(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');
//same again but with slash instead of hyphen
 txt.value=txt.value.replace(/([^\[]{4})\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d?\d)\]\](\/)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}(?:th|st|nd|rd)\|(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');

 txt.value=txt.value.replace(/([^\[]{4})\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d?\d)\]\](\s?\-?\s?)\[\[(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');
//same again but with ndash instead of hyphen
 txt.value=txt.value.replace(/([^\[]{4})\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d?\d)\]\](\s?&[nm]dash;\s?)\[\[(\d{1,2})\]\]/gi, '$1$2$3$4');
//same again but with slash instead of hyphen
 txt.value=txt.value.replace(/([^\[]{4})\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d?\d)\]\](\/)\[\[(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');

 txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d)\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\s?\-?\s?)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}(?:th|st|nd|rd)\|(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');
//same again but with ndash instead of hyphen
 txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d)\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\s?&[nm]dash;\s?)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}(?:th|st|nd|rd)\|(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');
//same again but with slash instead of hyphen
 txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d)\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\/)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}(?:th|st|nd|rd)\|(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');

 txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d)\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\s?\-?\s?)\[\[(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');
//same again but with ndash instead of hyphen
 txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d)\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\s?&[nm]dash;\s?)\[\[(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');
//same again but with slash instead of hyphen
 txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d)\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\/)\[\[(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1$2$3$4');

// month and day piped
 txt.value=txt.value.replace(/\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}(?:th|st|nd|rd)\|([^\]]{1,30})\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[\d{1,2}(?:th|st|nd|rd)\s(?:January|February|March|April|May|June|July|August|September|October|November|December)\|([^\]]{1,30})\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[(\d{1,2}(?:st|nd|rd|th))\]\]/gi, '$1');


//4 digit years piped
 txt.value=txt.value.replace(/\[\[\d{1,4}\|([^\]]{1,30})\]\]/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(?:[0123][\d]|[\d])\]\]),\s\[\[(\d{1,4})\sin\s[^\]]{1,32}\]\]/gi, '$1 $2');
 txt.value=txt.value.replace(/(\[\[(?:[0123][\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(/(\[\[(?:[0123][\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(?:[0123][\d]|[\d])\]\]),\s{{(?:avyear|by|fy|ly|scy|sdy)\|(\d{1,4})}}/gi, '$1 [[$2]]');

}

function formatgeneral() {
 var txt=document.editform.wpTextbox1;

//remove flagicons from birth and death
 txt.value=txt.value.replace(/(birth\s?=\s?)\{\{flagicon\|[^\}]+\}\}/gi, '$1');
 txt.value=txt.value.replace(/(death\s?=\s?)\{\{flagicon\|[^\}]+\}\}/gi, '$1');
 txt.value=txt.value.replace(/(birth_?place\s?=\s?)\{\{flagicon\|[^\}]+\}\}/gi, '$1');
 txt.value=txt.value.replace(/(death_?place\s?=\s?)\{\{flagicon\|[^\}]+\}\}/gi, '$1');

//symbol for 'times'
 txt.value=txt.value.replace(/&times;/gi, '×');

//turn letter 'x' into symbol '×'
 txt.value=txt.value.replace(/(\d)\sx\s(\d{1,3})\sin\s\(/gi, '$1 × $2 in (');
 txt.value=txt.value.replace(/(\d)\sx\s(\d{1,3})\sinch\s/gi, '$1 × $2 inch ');

// Convert degree symbols into ° symbol, ensure preceding space
 txt.value=txt.value.replace(/&deg;/g, '°');
 txt.value=txt.value.replace(/º/g, '°');

//remove commas from numerical values in convert template
 txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');
 txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');
 txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');
 txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');
 txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');

//remove leading zeros from convert template
 txt.value=txt.value.replace(/({convert\|)0(\d)/g, '$1$2');
 txt.value=txt.value.replace(/({convert\|)0(\d)/g, '$1$2');
 txt.value=txt.value.replace(/({convert\|)0(\d)/g, '$1$2');

//Remove surprise or 'Easter egg' diversions linking unit name to orders of magnitude articles
 txt.value=txt.value.replace(/\[\[1\s?_?E\s?[\-\+]?\d{1,2}\s?..?\|([^\]]{1,50})\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[Orders\sof\smagnitude\s\([^\)]+\)\|([^\]]{1,50})\]\]/gi, '$1');

}

function run_formatgeneral() {
 var txt=document.editform.wpTextbox1;
    formatgeneral();
 edit_summary();
}


function delink_ISO() {
    var txt = document.editform.wpTextbox1;
//    delink_ISO();
txt.value=txt.value.replace(/\[\[(\d{4}-\d\d-\d\d)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-\[\[(\d\d-\d\d)\]\]/gi, '$1-$2');
txt.value=txt.value.replace(/(\d{4})-\[\[(\d\d-\d\d)\]\]/gi, '$1-$2');
txt.value=txt.value.replace(/\[\[(\d{4})\]\]-(\d\d-\d\d)/gi, '$1-$2');
 
// Add a tag to the summary box
    var txt = document.editform.wpSummary;
    var summary = "convert from [[ISO 8601|ISO date formats]], [[w: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_delink_ISO()', 'delink ISO', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
    }
});
 
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 = "convert from [[ISO 8601|ISO date formats]], [[w: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 = "convert from [[ISO 8601|ISO date formats]], [[w: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_year_in_X(){
 var txt=document.editform.wpTextbox1;

 txt.value=txt.value.replace(/{{(?:avyear|by|fy|ly|mlby|mlb\syear|scy|sdy)\|(\d{1,4})}}/gi, '$1');
 txt.value=txt.value.replace(/\[\[\d{1,4}\sin\s\w+\|(\d{1,4})\]\]/gi, "[[$1]]");

 edit_summary();
}


var linkmap=[];
function protect_dates(){
 var txt=document.editform.wpTextbox1;
 txt.value=txt.value.replace(/Image:[^|]+/gi, function(img){
        linkmap.push(img);
        return "\x02"+(linkmap.length-1)+"\x03";
    });
//protect certain dates
 txt.value=txt.value.replace(/([^\d]7)\s(july)/gi, '$1xx$2');
 txt.value=txt.value.replace(/(\[\[May)\s(1968\]\])/gi, '$1xx$2');
 txt.value=txt.value.replace(/(\[\[(?:2300|2000))\s(AD\]\])/gi, '$1xx$2');
 txt.value=txt.value.replace(/(\[\[(?:112|911|999))(\]\])/gi, '$1xx$2');
}

function unprotect_dates(){
 var txt=document.editform.wpTextbox1;

//unprotect certain dates
 txt.value=txt.value.replace(/(7)xx(july)/gi, '$1 $2');
 txt.value=txt.value.replace(/(\[\[May)xx(1968\]\])/gi, '$1 $2');
 txt.value=txt.value.replace(/(\[\[(?:2300|2000))xx(AD]\])/gi, '$1 $2');
 txt.value=txt.value.replace(/(\[\[(?:112|911|999))xx(\]\])/gi, '$1$2');

 txt.value=txt.value.replace(/\x02([0-9]+)\x03/g, function(x, n){
        return linkmap[n];
    });
}

function remove_leading_zeros_from_linked_dates () {
 var txt=document.editform.wpTextbox1;
//remove leading zero from linked date
 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)?)\s0(\d)(?:th|st|nd|rd|)\]\]/gi, '[[$1 $2]]');
 txt.value=txt.value.replace(/\[\[0(\d)(?:th|st|nd|rd|)\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]]');

}

function remove_leading_zeros_from_nonlinked_dates () {
 var txt=document.editform.wpTextbox1;
//remove leading zero from nonlinked date
 txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s0(\d)(?:th|st|nd|rd|)(,?\s\d{4})([^\w\d][^\d])/gi, '$1$2 $3$4$5');
 txt.value=txt.value.replace(/([^\d][^\w\d])0(\d)(?:th|st|nd|rd|)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(\s\d{4})([^\w\d][^\d])/gi, '$1$2 $3$4$5');

 txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s0(\d)(?:th|st|nd|rd|)([^\w\d][^\d])/gi, '$1$2 $3$4');
 txt.value=txt.value.replace(/([^\d][^\w\d])0(\d)(?:th|st|nd|rd|)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)([^\w\d][^\d])/gi, '$1$2 $3$4');

}


function code_delink_dates_to_dmy () {
 var txt=document.editform.wpTextbox1;
 protect_dates();
 part_dates();
 remove_leading_zeros_from_linked_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)(?:th|st|nd|rd|)\]\],?\s?\[\[(\d{1,4})\]\]/gi, '$2 $1 $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)(?:th|st|nd|rd|)\]\],?\s?(\d{1,4})([^\w\d])/gi, '$2 $1 $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)(?:th|st|nd|rd|)\]\]/gi, '$2 $1');

 txt.value=txt.value.replace(/\[\[(\d?\d)(?:th|st|nd|rd|)\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)(?:th|st|nd|rd|)\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)(?:th|st|nd|rd|)\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
 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();

}

function code_delink_dates_to_mdy() {
 var txt=document.editform.wpTextbox1;
 protect_dates();
 part_dates();
 remove_leading_zeros_from_linked_dates ();

 txt.value=txt.value.replace(/\[\[(\d?\d)(?:th|st|nd|rd|)\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)(?:th|st|nd|rd|)\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)(?:th|st|nd|rd|)\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)(?:th|st|nd|rd|)\]\],?\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)(?:th|st|nd|rd|)\]\],?\s(\d{1,4})([^\w\d])/gi, '$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)(?:th|st|nd|rd|)\]\]/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
 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();

}

function button_delink_dates_to_dmy() {
 code_delink_dates_to_dmy();
 edit_summary();
}


function button_delink_dates_to_mdy() {
 code_delink_dates_to_mdy();
 edit_summary();
}


function all_dates_to_dmy(){
 var txt=document.editform.wpTextbox1;
 protect_dates();
 part_dates();
 code_delink_dates_to_dmy();
 remove_leading_zeros_from_nonlinked_dates ();
//repeat protect dates because 'unprotect dates' function is within 'delink dates' function
 protect_dates();

 txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0123]?\d)(?:th|st|nd|rd|),?\s(\d{1,4})([^\w\d][^\d])/gi, '$1$3 $2 $4$5');
 txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0123]?\d)(?:th|st|nd|rd|)([^\w\d][^\d])/gi, '$1$3 $2$4');

//repeat previous two bits of code to capture some date ranges that were missed first time round
 txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0123]?\d)(?:th|st|nd|rd|),?\s(\d{1,4})([^\w\d][^\d])/gi, '$1$3 $2 $4$5');
 txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0123]?\d)(?:th|st|nd|rd|)([^\w\d][^\d])/gi, '$1$3 $2$4');

//Month+day_number "March 7th" -> "March 7"
 txt.value=txt.value.replace(/([^\d][^\w\d])([0123]?\d)(?:th|st|nd|rd|)\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][^\d])/gi, '$1$2 $3 $4$5');
 txt.value=txt.value.replace(/([^\d][^\w\d])([0123]?\d)(?:th|st|nd|rd|)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)([^\w\d][^\d])/gi, '$1$2 $3$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]]');

 unprotect_dates();

// edit_summary();
}

function all_dates_to_mdy(){
 var txt=document.editform.wpTextbox1;
 protect_dates();
 part_dates();
 code_delink_dates_to_mdy();
 remove_leading_zeros_from_nonlinked_dates ();
//repeat protect dates because 'unprotect dates' function is within 'delink dates' function
 protect_dates();

 txt.value=txt.value.replace(/([^\d][^\w\d])([0123]?\d)(?:th|st|nd|rd|)\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][^\d])/gi, '$1$3 $2, $4$5');
 txt.value=txt.value.replace(/([^\d][^\w\d])([0123]?\d)(?:th|st|nd|rd|)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)([^\w\d][^\d])/gi, '$1$3 $2$4');

//repeat previous two bits of code to capture some date ranges that were missed first time round
 txt.value=txt.value.replace(/([^\d][^\w\d])([0123]?\d)(?:th|st|nd|rd|)\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][^\d])/gi, '$1$3 $2, $4$5');
 txt.value=txt.value.replace(/([^\d][^\w\d])([0123]?\d)(?:th|st|nd|rd|)\s(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)([^\w\d][^\d])/gi, '$1$3 $2$4');

//Month+day_number "March 7th" -> "March 7"
 txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0123]?\d)(?:th|st|nd|rd|)(,?\s)(\d{1,4})([^\w\d][^\d])/gi, '$1$2 $3$4$5$6');
 txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0123]?\d)(?:th|st|nd|rd|)([^\w\d][^\d])/gi, '$1$2 $3$4');

//add comma when missing
 txt.value=txt.value.replace(/([^\d][^\w\d])(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s([0123]?\d)(?:th|st|nd|rd|)(\s)(\d{1,4})([^\w\d][^\d])/gi, '$1$2 $3,$4$5$6');


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

 unprotect_dates();

// edit_summary();
}

function edit_summary(){
// Add a tag to the summary box
 var txt=document.editform.wpSummary;
    var summary = "unified date formats per [[w:WP:MOSNUM|WP:MOSNUM]], rem [[w: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 all_dates_to_dmy_and_common_terms() {
  delink_ISO_to_dmy();
  all_dates_to_dmy();
  CommonTerms();
//  edit_summary();
}

function all_dates_to_mdy_and_common_terms() {
  delink_ISO_to_mdy();
  all_dates_to_mdy();
  CommonTerms();
//  edit_summary();
}

function ISO_to_dmy() {
  delink_ISO_to_dmy();
  edit_summary();
}

function ISO_to_mdy() {
  delink_ISO_to_mdy();
  edit_summary();
}

function align_to_dmy() {
  all_dates_to_dmy();
  edit_summary();
}

function align_to_mdy() {
  all_dates_to_mdy();
  edit_summary();
}

function CommonTerms(){
 var txt=document.editform.wpTextbox1;

 txt.value=txt.value.replace(/\[\[(African?|Alaskan?|American?|Antarctican?|Arctic\sOcean|Asian?|Atlantic\sOcean|Australian?|Austrian?|Beijing|Belgian|Belgium|Berlin|British|British\sIsles|Canada|Canadian|Central\sAmerican?|Chicago|China|Chinese|Korean?|Paris|People's\sRepublic\sof\sChina|Phillipines|Czech\sRepublic|Danish|Denmark|England|English|Europe|European|France|French|Finland|Finnish|Germany?|Great\sBritain|Greece|Greek|Hawaiin?|Hungary|Hungarian|Hong\sKong|Indian?|Indian\sOcean|Ireland|Irish|Italy|Italian|Japan|Japanese|London|Los\sAngeles|Mexican|Mexico|Mexico\sCity|Middle\sEast|Middle\sEastern|Moscow|the\sNetherlands|Netherlands|New\sDelhi|New\sYork|New\sYork\sCity|New\sZealand|New\sZealander|North\sAmerican?|Norway|Norwegian|Pacific|Pacific\sOcean|Poland|Polish|Portugal|Portuguese|Queensland|Rome|Russian?|Scandinavian?|Scotland|Scottish|Shanghai|South\sAfrican?|Arctic\sOcean|South\sAmerican?|South\sKorean?|Spain|Spanish|Sweden|Swedish|Switzerland|Sydney|Tokyo|Toronto|United\sKingdom|U\.K\.|UK|United\sStates|United\sStates\sof\sAmerica|US|U\.S\.|USA|U\.S\.A\.|Vancouver|Wales|Welsh|Western\sAustralian?|West\sGermany?)\]\]/gi, '$1');

 txt.value=txt.value.replace(/\[\[(?:African?|Alaskan?|American?|Antarctican?|Arctic\sOcean|Asian?|Atlantic\sOcean|Australian?|Austrian?|Beijing|Belgian|Belgium|Berlin|British|British\sIsles|Canada|Canadian|Central\sAmerican?|Chicago|China|Chinese|Korean?|Paris|People's\sRepublic\sof\sChina|Phillipines|Czech\sRepublic|Danish|Denmark|England|English|Europe|European|France|French|Finland|Finnish|Germany?|Great\sBritain|Greece|Greek|Hawaiin?|Hungary|Hungarian|Hong\sKong|Indian?|Indian\sOcean|Ireland|Irish|Italy|Italian|Japan|Japanese|London|Los\sAngeles|Mexican|Mexico|Mexico\sCity|Middle\sEast|Middle\sEastern|Moscow|the\sNetherlands|Netherlands|New\sDelhi|New\sYork|New\sYork\sCity|New\sZealand|New\sZealander|North\sAmerican?|Norway|Norwegian|Pacific|Pacific\sOcean|Poland|Polish|Portugal|Portuguese|Queensland|Rome|Russian?|Scandinavian?|Scotland|Scottish|Shanghai|South\sAfrican?|Arctic\sOcean|South\sAmerican?|South\sKorean?|Spain|Spanish|Sweden|Swedish|Switzerland|Sydney|Tokyo|Toronto|United\sKingdom|U\.K\.|UK|United\sStates|United\sStates\sof\sAmerica|US|U\.S\.|USA|U\.S\.A\.|Vancouver|Wales|Welsh|Western\sAustralian?|West\sGermany?)\|(African?|Alaskan?|American?|Antarctican?|Arctic\sOcean|Asian?|Atlantic\sOcean|Australian?|Austrian?|Beijing|Belgian|Belgium|Berlin|British|British\sIsles|Canada|Canadian|Central\sAmerican?|Chicago|China|Chinese|Korean?|Paris|People's\sRepublic\sof\sChina|Phillipines|Czech\sRepublic|Danish|Denmark|England|English|Europe|European|France|French|Finland|Finnish|Germany?|Great\sBritain|Greece|Greek|Hawaiin?|Hungary|Hungarian|Hong\sKong|Indian?|Indian\sOcean|Ireland|Irish|Italy|Italian|Japan|Japanese|London|Los\sAngeles|Mexican|Mexico|Mexico\sCity|Middle\sEast|Middle\sEastern|Moscow|the\sNetherlands|Netherlands|New\sDelhi|New\sYork|New\sYork\sCity|New\sZealand|New\sZealander|North\sAmerican?|Norway|Norwegian|Pacific|Pacific\sOcean|Poland|Polish|Portugal|Portuguese|Queensland|Rome|Russian?|Scandinavian?|Scotland|Scottish|Shanghai|South\sAfrican?|Arctic\sOcean|South\sAmerican?|South\sKorean?|Spain|Spanish|Sweden|Swedish|Switzerland|Sydney|Tokyo|Toronto|United\sKingdom|U\.K\.|UK|United\sStates|United\sStates\sof\sAmerica|US|U\.S\.|USA|U\.S\.A\.|Vancouver|Wales|Welsh|Western\sAustralian?|West\sGermany?)\]\]/gi, '$1');

 txt.value=txt.value.replace(/\[\[(?:African?|Alaskan?|American?|Antarctican?|Arctic\sOcean|Asian?|Atlantic\sOcean|Australian?|Austrian?|Beijing|Belgian|Belgium|Berlin|British|British\sIsles|Canada|Canadian|Central\sAmerican?|Chicago|China|Chinese|Korean?|Paris|People's\sRepublic\sof\sChina|Phillipines|Czech\sRepublic|Danish|Denmark|England|English|Europe|European|France|French|Finland|Finnish|Germany?|Great\sBritain|Greece|Greek|Hawaiin?|Hungary|Hungarian|Hong\sKong|Indian?|Indian\sOcean|Ireland|Irish|Italy|Italian|Japan|Japanese|London|Los\sAngeles|Mexican|Mexico|Mexico\sCity|Middle\sEast|Middle\sEastern|Moscow|the\sNetherlands|Netherlands|New\sDelhi|New\sYork|New\sYork\sCity|New\sZealand|New\sZealander|North\sAmerican?|Norway|Norwegian|Pacific|Pacific\sOcean|Poland|Polish|Portugal|Portuguese|Queensland|Rome|Russian?|Scandinavian?|Scotland|Scottish|Shanghai|South\sAfrican?|Arctic\sOcean|South\sAmerican?|South\sKorean?|Spain|Spanish|Sweden|Swedish|Switzerland|Sydney|Tokyo|Toronto|United\sKingdom|U\.K\.|UK|United\sStates|United\sStates\sof\sAmerica|US|U\.S\.|USA|U\.S\.A\.|Vancouver|Wales|Welsh|Western\sAustralian?|West\sGermany?)\s\(?language\)?\|(African?|Alaskan?|American?|Antarctican?|Arctic\sOcean|Asian?|Atlantic\sOcean|Australian?|Austrian?|Beijing|Belgian|Belgium|Berlin|British|British\sIsles|Canada|Canadian|Central\sAmerican?|Chicago|China|Chinese|Korean?|Paris|People's\sRepublic\sof\sChina|Phillipines|Czech\sRepublic|Danish|Denmark|England|English|Europe|European|France|French|Finland|Finnish|Germany?|Great\sBritain|Greece|Greek|Hawaiin?|Hungary|Hungarian|Hong\sKong|Indian?|Indian\sOcean|Ireland|Irish|Italy|Italian|Japan|Japanese|London|Los\sAngeles|Mexican|Mexico|Mexico\sCity|Middle\sEast|Middle\sEastern|Moscow|the\sNetherlands|Netherlands|New\sDelhi|New\sYork|New\sYork\sCity|New\sZealand|New\sZealander|North\sAmerican?|Norway|Norwegian|Pacific|Pacific\sOcean|Poland|Polish|Portugal|Portuguese|Queensland|Rome|Russian?|Scandinavian?|Scotland|Scottish|Shanghai|South\sAfrican?|Arctic\sOcean|South\sAmerican?|South\sKorean?|Spain|Spanish|Sweden|Swedish|Switzerland|Sydney|Tokyo|Toronto|United\sKingdom|U\.K\.|UK|United\sStates|United\sStates\sof\sAmerica|US|U\.S\.|USA|U\.S\.A\.|Vancouver|Wales|Welsh|Western\sAustralian?|West\sGermany?)\]\]/gi, '$1');

 txt.value=txt.value.replace(/\[\[(actor|author|dancer|model|novelist|playwright|poet|politican|record producer|singer|songwriter|writer)\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[(actress)\]\]/gi, '$1');
 txt.value=txt.value.replace(/\[\[(dance)\]\](r)/gi, '$1$2');
 txt.value=txt.value.replace(/\[\[model\s\(person\)\|(model)\]\]/gi, '$1');

 edit_summary();
}

addOnloadHook(function () {
 if(document.forms.editform) {
  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:button_delink_dates_to_dmy()', 'Delink dates to dmy', 't-dmy', 'day month', '', '');
//  addPortletLink('p-tb', 'javascript:button_delink_dates_to_mdy()', 'Delink dates to mdy', 't-mdy', 'month day', '', '');

  addPortletLink('p-tb', 'javascript:ISO_to_dmy()', 'ISO dates to dmy', 't-dmy', 'day month', '', '');
  addPortletLink('p-tb', 'javascript:ISO_to_mdy()', 'ISO dates to mdy', 't-mdy', 'month day', '', '');

  addPortletLink('p-tb', 'javascript:align_to_dmy()', 'Align to dmy', 't-dmy', 'day month', '', '');
  addPortletLink('p-tb', 'javascript:align_to_mdy()', 'Align to mdy', 't-mdy', 'month day', '', '');
  addPortletLink('p-tb', 'javascript:delink_year_in_X()'  , 'Delink year-in-X dates', 't-yearinX',  'Regexp yearinX', '', '');
  addPortletLink('p-tb', 'javascript:all_dates_to_dmy_and_common_terms()', 'All dates to dmy+common terms', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
  addPortletLink('p-tb', 'javascript:all_dates_to_mdy_and_common_terms()', 'All dates to mdy+common terms', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
  addPortletLink('p-tb', 'javascript:make_dates_bold()', 'Make dates bold', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
  }
});