User:Souravmohanty2005/vector.js

From Simple English Wikipedia, the free encyclopedia

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.
importScript('User:TheDJ/sharebox.js');
importScript('MediaWiki:Gadget-HotCat.js');
importScript('User:Tim Song/afchelper4.js');
importScript('User:Quarl/util.js');
importScript('User:Quarl/wikipage.js');
importScript('Wikipedia:WikiProject User scripts/Scripts/Add LI menu');
importStylesheet('Wikipedia:WikiProject User scripts/Scripts/Add LI menu/css');
importScript('Wikipedia:WikiProject Deletion sorting/delsort.js');
importScript('User:Lupin/popups.js'); // see Wikipedia:Tools/Navigation popups
importScript('User:TheJosh/Scripts/NewPagePatrol.js');
npp_num_pages = 5
// Add [[WP:Reflinks]] launcher in the toolbox on left
$(function () {
 mw.util.addPortletLink(
  "p-tb",     // toolbox portlet
  "http://toolserver.org/~dispenser/cgi-bin/webreflinks.py/" + wgPageName 
   + "?client=script&citeweb=on&overwrite=&limit=30&lang=" + wgContentLanguage,
  "Reflinks"  // link label
)});
importScript('User:AzaToth/twinkle.js');
// [[User:Henrik/afc-helper]]
importScript('User:Henrik/js/afc-helper.js'); 
importScript('User:Cameltrader/Advisor.js');
importScript('User:GregU/dashes.js');
importScript('User:Dr_pda/prosesize.js'); //[[User:Dr_pda/prosesize.js]]
importScript('User:AndyZ/peerreviewer.js'); //[[User:AndyZ/peerreviewer.js]]
toolbarLink_PR = true;
importScript('User:WikiBhasha.MSR/WikiBhasha.js');
// <source lang="javascript">

// HistoryCount
$(function (){
    var N = 500;      // <<== CHANGE TO YOUR LIKING
    var x = document.getElementById('ca-history');
    if(!x) return;
    x.getElementsByTagName('a')[0].href += "&limit=" + N;
});

// </source>
function welcome() {
    if (document.title.indexOf('Editing User talk:') == 0) {
        document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + '==' + 'Welcome' + '==\n' + '{{subst:User:' + 'MatthewFenton/Welcome}}\n~~' + '~~';
        document.editform.wpSummary.value = 'Welcome a user to Wikipedia using JS WW';
    }
}
function welcome_tab() {
    add_link('javascript:welcome()', 'Welcome');
}
 
if (document.title.indexOf('Editing User talk:') == 0) {
 addOnloadHook(welcome_tab);
}
/**** quick image delete ****/
importScript('User:Howcheng/quickimgdelete.js');
importScript('User:Howcheng/quickimgdelete.js');
qid_autoSave = false;
importScript('User:MarkS/extraeditbuttons.js'); //[[User:MarkS/extraeditbuttons.js]]
importScript("User:Mountain/shorturl.js");
// [[User:Lupin/popups.js]]

importScript('User:Lupin/popups.js');
/*
</nowiki> </pre>
== Set default Main Page ==
<pre> <nowiki>
Set the default Main Page to [[Wikipedia:Main Page alternative (outline_links)]]
*/
/*
if (wgPageName == "Main_Page") {
  window.location = "http://en.wikipedia.org/wiki/Wikipedia:Main_Page_alternative_%28outline_links%29";
}
*/

/*
<pre> <nowiki>
Note: After saving, you have to bypass your browser's cache to see the changes.
To do this in Firefox/Mozilla/Safari: hold down Shift while clicking Reload,
or press Ctrl-Shift-R).
If you use Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
 
</nowiki> </pre>
==Lupin's anti-vandal tools ==
<pre> <nowiki> */
 
 
// Script from [[User:Lupin/recent2.js]]
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></s'+'cript>');
 
/*
</nowiki> </pre>
== Watchlist sorter ==
<pre> <nowiki>
Sorts your watchlist by namespace, and also adds spaces for readability.
*/
 
$(function (){
if (location.href.indexOf('Special:Watchlist') == -1) return; //Are we on a watchlist?
//days = document.getElementById('bodyContent').getElementsByTagName('ul');
days = document.evaluate( //Hell knows how it works - found in "Dive into Greasemonkey"
"//ul[@class='special']",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
for (d = 0; d < days.snapshotLength; d++) { //For each day
day = days.snapshotItem(d);
newday = document.createElement('ul'); //This will replace the old listing
while ((diffs = day.getElementsByTagName('li')).length > 0) { //Are there any diffs left?
//Try to extract the namespace
As = diffs[0].getElementsByTagName('a');
if (As[0].innerHTML == 'diff')
pagename = As[2].innerHTML;
else
pagename = As[1].innerHTML;
if (pagename.indexOf(':') == -1)
namespace = 'Main';
else
namespace = pagename.split(':')[0]; //This will fail for articles which contain ":" in name
hdrs = newday.getElementsByTagName('h5'); //Get the list of namespace headers
hdr = null;
for (j=0; j<hdrs.length; j++) //Find the header
if (hdrs[j].innerHTML==namespace) {
hdr = hdrs[j]; break;
}
if (hdr==null) { //Not found? Make a new one!
hdr = document.createElement('h5');
hdr.innerHTML = namespace;
newday.appendChild(hdr);
namespacesub = document.createElement('ul');
newday.appendChild(namespacesub);
}
hdr.nextSibling.appendChild(diffs[0]); //Move the diff
}
newday.appendChild(document.createElement('hr')); //For readablility
day.parentNode.replaceChild(newday,day);
}
});

importScript('User:TheJosh/Scripts/NewPagePatrol.js');
npp_num_pages = 5
importScript('User:AzaToth/twinkle.js');
importScript('User:Cameltrader/Advisor.js');
importScript('User:Shubinator/DYKcheck.js');
importScript('User:Mr.Z-man/closeAFD.js');
importScript('User:Ale_jrb/Scripts/igloo.js'); // [[User:Ale_jrb/Scripts/igloo]]

//<pre>
//This function adds a tab which, when clicked, extracts data from an infobox and
//populates the fields of the Persondata template. See the talk page for more details.
//
//To use this function add {{subst:js|User:Dr pda/persondata.js}} to your monobook.js
//
function format_name(x){
   NAME = x.substr(x.indexOf('=')+1);
   NAME = NAME.replace(/'''?/g,'');
   NAME = NAME.replace(/^\s*/g,'');
   NAME = NAME.replace(/\s*$/g,'');
   var comma = NAME.indexOf(',');
   var start = (comma == -1) ? NAME.length : comma;
   var lastSpace = NAME.lastIndexOf(' ',start);
   if(lastSpace != -1){
     NAME = NAME.substring(lastSpace,start)+', '+NAME.substring(0,lastSpace)+NAME.substring(start);
   }
   return NAME;
}

function suggestPersonData(){
  var text = document.getElementById('wpTextbox1').value;

  //do nothing if article already contains persondata
  if(text.match(/persondata/i)) return;

  var template = '';
  var NAME = '';
  var ALTERNATIVE_NAMES = '';
  var SHORT_DESCRIPTION = '';
  var PLACE_OF_BIRTH = '';
  var DATE_OF_BIRTH = '';
  var PLACE_OF_DEATH = '';
  var DATE_OF_DEATH = '';

  //handle cases where the template name doesn't contain infobox
  text = text.replace(/{{NFL player/i,'{{NFL player infobox');
  if(text.match(/Infobox/i)){
    start = text.lastIndexOf('{{',text.indexOf('nfobox'));
    stop = text.indexOf('}}',start);
    next = text.indexOf('{{',start+1)
    //Correctly handle other templates used within the infobox
    while (next < stop && text.indexOf('{{',start+1)!= -1){
      next = text.indexOf('{{',stop+1);
      stop = text.indexOf('}}',stop+1);
    }
    template = text.substring(start,stop);

    //Remove references, birth/death date and age templates
    template = template.replace(/<ref.*(\/ref>|$)/gm,'');
    template = template.replace(/{{(?:[Bb]irth|[Dd]eath) date(?: and age)?\s?(\|\s?[md]f\s?=\s?ye?s?)?\|\s?(\d{1,4})\|\s?(\d{1,2})\|\s?(\d{1,2}).*}}/g,"$2-$3-$4");
    template = template.replace(/\[\[Image:Flag.*px\]\]/ig,'');
    template = template.replace(/{{flagicon.*}}/ig,'');
    template = template.replace(/<\/?small>/ig,'');
    template = template.replace(/<br\s*\/?>/ig,'');

    var firstpar = template.indexOf('|');
    template = template.substr(firstpar+1);

    var birthplace_in_born = false; 
    var array = template.split(/(\n\s*\||\|\s*\n)/);
    for (x=0;x<array.length;x++){
      if(array[x].match(/subject_name/i)||array[x].match(/^\s*\bname\b/i)||array[x].match(/fullname/i)){
      NAME = format_name(array[x]);
    }
    if(array[x].match(/playername/i)||array[x].match(/birth_?name/i)){
      ALTERNATIVE_NAMES = (ALTERNATIVE_NAMES == '') ? format_name(array[x]):ALTERNATIVE_NAMES + ';' + format_name(array[x]);
    }
    else if(array[x].match(/date_of_birth/i)||array[x].match(/dateofbirth/i)||array[x].match(/birthdate/i)||array[x].match(/birth_date/i)||array[x].match(/date of birth/i)||array[x].match(/datebirth/i)){
      DATE_OF_BIRTH = array[x].substr(array[x].indexOf('=')+1);
    }
    else if(array[x].match(/place_of_birth/i)||(array[x].match(/origin/i)&&birthplace_in_born==false)||array[x].match(/birthplace/i)||array[x].match(/placebirth/i)||array[x].match(/location/i)||array[x].match(/placeofbirth/i)||array[x].match(/birth_place/i)||array[x].match(/place of birth/i)){
      PLACE_OF_BIRTH = array[x].substr(array[x].indexOf('=')+1);
    }
    else if(array[x].match(/born/i)){
      var temp =  array[x].indexOf('<br');
      if(temp != -1){
        DATE_OF_BIRTH = array[x].substring(array[x].indexOf('=')+1,temp);
            PLACE_OF_BIRTH = array[x].substr(array[x].indexOf('>',temp)+1);
        birthplace_in_born = true;
      }
      else{
        DATE_OF_BIRTH = array[x].substring(array[x].indexOf('=')+1);
      }
    }
    else if(array[x].match(/lived/i)){
      var temp =  array[x].substr(array[x].indexOf('=')+1);
      temp = temp.replace(/born\s*/i,'');
      var dash = temp.search(/&ndash;\s*|-\s*/);
      if(dash >=0){
        DATE_OF_BIRTH = temp.substring(0,dash);
        DATE_OF_DEATH = temp.substring(temp.indexOf(' ',dash)+1);
      }
      else{
        DATE_OF_BIRTH = temp;
      }
    }
    else if(array[x].match(/cityofbirth/i)){
      var temp =  array[x].substr(array[x].indexOf('=')+1);
      temp = temp.match(/.*/);
      PLACE_OF_BIRTH = (PLACE_OF_BIRTH == '') ? temp : temp + ' ,' + PLACE_OF_BIRTH;
    }
    else if(array[x].match(/countryofbirth/i)){
      PLACE_OF_BIRTH = (PLACE_OF_BIRTH == '') ? array[x].substr(array[x].indexOf('=')+1) : PLACE_OF_BIRTH + ',' + array[x].substr(array[x].indexOf('=')+1);
    }
    else if(array[x].match(/date_of_death/i)||array[x].match(/dateofdeath/i)||array[x].match(/deathdate/i)||array[x].match(/death_date/i)||array[x].match(/date of death/i)||array[x].match(/datedeath/i)){
      DATE_OF_DEATH = array[x].substr(array[x].indexOf('=')+1);
    }
    else if(array[x].match(/place_of_death/i)||array[x].match(/deathplace/i)||array[x].match(/placeofdeath/i)||array[x].match(/death_place/i)||array[x].match(/place of death/i)||array[x].match(/placedeath/i)){
      PLACE_OF_DEATH = array[x].substr(array[x].indexOf('=')+1);
    }
    else if(array[x].match(/died/i)){
      var temp =  array[x].indexOf('<br');
      if(temp != -1){
        DATE_OF_DEATH = array[x].substring(array[x].indexOf('=')+1,temp);
            PLACE_OF_DEATH = array[x].substr(array[x].indexOf('>',temp)+1);
      }
      else{
        DATE_OF_DEATH = array[x].substring(array[x].indexOf('=')+1);
      }
    }
    else if(array[x].match(/cityofdeath/i)){
      var temp =  array[x].substr(array[x].indexOf('=')+1);
      temp = temp.match(/.*/);
      PLACE_OF_DEATH = (PLACE_OF_DEATH == '') ? temp : temp + ' ,' + PLACE_OF_DEATH;
    }
    else if(array[x].match(/countryofdeath/i)){
      PLACE_OF_DEATH = (PLACE_OF_DEATH == '') ? array[x].substr(array[x].indexOf('=')+1) : PLACE_OF_DEATH + ',' + array[x].substr(array[x].indexOf('=')+1);
    }
    else if(array[x].match(/occupation/i)||array[x].match(/\bfield\b\s*=/i)||array[x].match(/office/i)){
      SHORT_DESCRIPTION = array[x].substr(array[x].indexOf('=')+1);
      SHORT_DESCRIPTION = SHORT_DESCRIPTION.replace(/\s*<br\s*\/?>\s*/g,', ');
    }
  }

  //more tidy up
  DATE_OF_BIRTH = DATE_OF_BIRTH.replace(/\(age? \d*\)/i,'');
  DATE_OF_DEATH = DATE_OF_DEATH.replace(/\(age? \d*\)/i,'');
  }
  if(NAME == ''){
      var pagename = wgPageName.replace(/_/g,' ');
      pagename = pagename.replace(/\(.*\)/g,' ');
      NAME = format_name(pagename);
  }
  if(DATE_OF_BIRTH=='' && text.match(/Category:\d* births/)){
    var catbirth = text.search(/Category:\d* births/);
    DATE_OF_BIRTH = text.substring(catbirth+9,text.indexOf('births')-1);
  }
  if(DATE_OF_DEATH=='' && text.match(/Category:\d* deaths/)){
    var catdeath = text.search(/Category:\d* deaths/);
    DATE_OF_DEATH = text.substring(catdeath+9,text.indexOf('deaths')-1);
  }

  //restore original text, in case this special case was found
  text = text.replace(/{{NFL player infobox/i,'{{NFL player');

  var persondata = "\n\n<!-- Metadata: see [[Wikipedia:Persondata]] -->\n{{Persondata\n|NAME="+NAME+"\n|ALTERNATIVE NAMES="+ALTERNATIVE_NAMES+"\n|SHORT DESCRIPTION="+SHORT_DESCRIPTION+"\n|DATE OF BIRTH="+DATE_OF_BIRTH+"\n|PLACE OF BIRTH="+PLACE_OF_BIRTH+"\n|DATE OF DEATH="+DATE_OF_DEATH+"\n|PLACE OF DEATH="+PLACE_OF_DEATH+"\n}}\n\n";

  var insertPosition = text.indexOf('[[Category:')-1;
  if(text.match('{{DEFAULTSORT')) insertPosition = text.indexOf('{{DEFAULTSORT')-1;
  if(insertPosition != -2){
    document.getElementById('wpTextbox1').value = text.substr(0,insertPosition)+persondata+text.substr(insertPosition+1);
  }
  else{
    alert('This article does not belong to any categories! Consider adding some.');
    document.getElementById('wpTextbox1').value = text+persondata;
  }
  document.getElementById('wpSummary').value += ' adding [[WP:PDATA|persondata]] using [[User talk:Dr pda/persondata.js|User:Dr pda/persondata.js]]';
  document.getElementById('wpDiff').click();

}

function togglePersondata() {
  var element = document.getElementById('persondata');

  if (element.style.display != 'block'){
    element.style.display = 'block';
  }
  else{
    element.style.display = 'none';
  }
}

$(function () {
  if(!document.forms.editform){
    if (document.getElementById('persondata') != null){
      mw.util.addPortletLink('p-cactions', 'javascript:togglePersondata()', 'show/hide persondata', 'ca-pdata', 'Show/hide persondata metadata', '', '');
    }
  }
  else{
    if (wgNamespaceNumber == 0 && document.getElementById('wpTextbox1').value.match(/persondata/i) == null){
      mw.util.addPortletLink('p-cactions', 'javascript:suggestPersonData()', 'add persondata', 'ca-pdata', 'add persondata metadata', '', '');
    }
  }
});
//</pre>

// Copied from en:user:Dr pda/prosesizebytes.js

//This function adds a link to the toolbox which, when clicked, displays the size of the page
//and the size of the prose in bytes. See the talk page for more details.
//
//To use this function add ''importScript('User:Phantomsteve/prosesizebytes.js';'' to your monobook.js
//
function loadXMLDocPassingTemplate(url,handler, page)
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        var req = new XMLHttpRequest();
    }
    // branch for IE/Windows ActiveX version
    else if (window.ActiveXObject) {
        var req = new ActiveXObject("Microsoft.XMLHTTP");
   }
   if (req) {
     req.onreadystatechange = function () {handler(req, page)};
     req.open("GET", url, true);
     req.send("");
   }
}

function getWikiText(req, page) {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
     response = req.responseXML.documentElement;
         var rev = response.getElementsByTagName('rev');
     if(rev.length > 0){
       result = rev[0].getAttribute('size');
           result = result+'&nbsp;B';
           wiki_value = document.createElement("li");
       wiki_value.id = "wiki-size";
       wiki_value.innerHTML = '<b>Wiki text: </b>'+result;
       var output = document.getElementById("document-size-stats");
       prose_value = document.getElementById("prose-size");
       output.insertBefore(wiki_value,prose_value);
     }
     else{
      //alert("There was a problem using the Wikipedia Search to find the wiki text size\nEither the search is not working or the correct article did not appear on the first page of results");
           wiki_value = document.createElement("li");
       wiki_value.id = "wiki-size";
       wiki_value.innerHTML = '<b>Wiki text: </b>Problem getting wiki text size';
       var output = document.getElementById("document-size-stats");
       prose_value = document.getElementById("prose-size");
       output.insertBefore(wiki_value,prose_value);
     }
        } else {
            alert("There was a problem retrieving the XML data:\n" +
                req.statusText);
        }
    }
}

function getFileSize(req, page) {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
      var fsize = req.responseText.length;
      window.status = fsize;
      var total_value = document.createElement("li");
      total_value.id = "total-size";
      total_value.innerHTML='<b>File size: </b>'+fsize+'&nbsp;B';
      var output = document.getElementById("document-size-stats");
      var prose_html_value = document.getElementById("prose-size-html");
      output.insertBefore(total_value,prose_html_value);
         } else {
            alert("There was a problem retrieving the XML data:\n" +
                req.statusText + "\n(" + url + ")");
        }
    }
}

function getLength(id){
 var textLength = 0;
 for(var i=0;i<id.childNodes.length; i++){
  if(id.childNodes[i].nodeName == '#text'){
   textLength += id.childNodes[i].nodeValue.length;
  }
  else if(id.childNodes[i].id == 'coordinates'){
    //special case for {{coord}} template
  }
  else{
    textLength += getLength(id.childNodes[i]);
  }
 }
 return textLength;
}

function getRefMarkLength(id,html){
 var textLength = 0;
 for(var i=0;i<id.childNodes.length; i++){
  if(id.childNodes[i].className == 'reference'){
   textLength += (html)? id.childNodes[i].innerHTML.length : getLength(id.childNodes[i]);
  }
 }
 return textLength;
}

function getDocumentSize(){
 contentDivName = '';
 if(skin == 'monobook' || skin == 'chick' || skin == 'myskin' || skin == 'simple'){
   contentDivName = 'bodyContent';
 }
 else if (skin == 'modern'){
   contentDivName = 'mw_contentholder';
 }
 else if (skin == 'standard' || skin == 'cologneblue' || skin == 'nostalgia'){
   contentDivName = 'article';
 }
 else{
   //fallback case; the above covers all currently existing skins
   contentDivName = 'bodyContent';
 }
 //Same for all skins if previewing page
 if(wgAction == 'submit') contentDivName = 'wikiPreview';
 
 var bodyContent = document.getElementById(contentDivName);
 if(document.getElementById("document-size-stats")){
   //if statistics already exist, turn them off and remove highlighting
   var output = document.getElementById("document-size-stats");
   var oldStyle = output.className;
   var pList = bodyContent.getElementsByTagName("p");
   for(var i=0;i<pList.length; i++){
     if(pList[i].parentNode.id == contentDivName) pList[i].style.cssText = oldStyle;
   }
   output.parentNode.removeChild(output);
   var header = document.getElementById("document-size-header");
   header.parentNode.removeChild(header);
 }
 else{
 var output = document.createElement("ul");
 output.id = "document-size-stats";

 var prose_html_value = document.createElement("li");
 prose_html_value.id = "prose-size-html";
 output.appendChild(prose_html_value);

 var ref_html_value = document.createElement("li");
 ref_html_value.id = "ref-size-html";
 output.appendChild(ref_html_value);

 var prose_value = document.createElement("li");
 prose_value.id = "prose-size";
 output.appendChild(prose_value);
 output.className = bodyContent.getElementsByTagName("p").item(0).style.cssText;

 var ref_value = document.createElement("li");
 ref_value.id = "ref-size";
 output.appendChild(ref_value);

 var dummy = document.getElementById("siteSub");
 dummy.parentNode.insertBefore(output, dummy.nextSibling);

 var header = document.createElement("span");
 header.id = "document-size-header";
 header.innerHTML = '<br/>Document statistics: <small><i>(See <a href="http://en.wikipedia.org/wiki/User_talk:Dr_pda/prosesize.js">here</a> for details.)<i></small>';
 dummy.parentNode.insertBefore(header,output);

 //File size not well defined for preview mode or section edit
 if(wgAction != 'submit'){
   //If browser supports document.fileSize property (IE)
   if(document.fileSize){
     var total_value = document.createElement("li");
     total_value.id = "total-size";
     total_value.innerHTML='<b>File size: </b>'+document.fileSize+'&nbsp;B';
     output.insertBefore(total_value,prose_html_value);
   }
   else{
    loadXMLDocPassingTemplate(location.pathname,getFileSize,'')
   }
 }
 
 //Get size of images only if browser supports filesize property (IE)
 var iList = bodyContent.getElementsByTagName("img");
 if(iList.length >0 && iList[0].fileSize){
 //Get size of images included in document
   var image_size = 0;
   var first_magnify = true;

   for (var i=0;i<iList.length; i++){
    var im = iList[i];
    if(im.getAttribute("src").indexOf("magnify-clip.png") != -1){
      if(first_magnify){
        image_size += im.fileSize*1;
        first_magnify = false;
      }
    }
    else{
      image_size += im.fileSize*1;
    }
   }
   var image_value = document.createElement("li");
   image_value.id = "image-size";
   image_value.innerHTML='<b>Images: </b>'+image_size+'&nbsp;B';
   output.appendChild(image_value);

  }
 //Calculate prose size and size of reference markers ([1] etc)
 var pList = bodyContent.getElementsByTagName("p");

 prose_size = 0;
 prose_size_html = 0;
 refmark_size = 0;
 refmark_size_html = 0;
 word_count = 0;
 for(var i=0;i<pList.length; i++){
   var para = pList[i];
   if(para.parentNode.id == contentDivName){
    prose_size += getLength(para);
    prose_size_html += para.innerHTML.length;
    refmark_size += getRefMarkLength(para,false);
    refmark_size_html += getRefMarkLength(para,true);
    word_count += para.innerHTML.replace(/(<([^>]+)>)/ig,"").split(' ').length
    para.style.cssText = "background-color:yellow";
   }
 }

 prose_value.innerHTML='<b>Prose size (text only): </b>'+(prose_size-refmark_size)+'&nbsp;B ('+word_count+' words) "readable prose size"';

 prose_html_value.innerHTML='<b>Prose size (including all HTML code): </b>'+(prose_size_html-refmark_size_html)+'&nbsp;B';


 //Calculate size of references (i.e. output of <references/>)
 var rList = bodyContent.getElementsByTagName("ol");
 var ref_size = 0;
 var ref_size_html = 0;
 for (var i=0; i<rList.length; i++){
   if(rList[i].className == "references"){
     ref_size = getLength(rList[i]);
     ref_size_html = rList[i].innerHTML.length;
   }
 }

 ref_value.innerHTML='<b>References (text only): </b>'+(ref_size+refmark_size)+'&nbsp;B';

 ref_html_value.innerHTML='<b>References (including all HTML code): </b>'+(ref_size_html+refmark_size_html)+'&nbsp;B';

 //get correct name of article from wikipedia-defined global variables
 var pageNameUnderscores = wgPageName;
 var pageNameSpaces = pageNameUnderscores.replace(/_/g,' ')

 //if page is a permalink, diff, etc don't try to search
 if(!location.pathname.match('/w/index.php')){
  //Get revision size from API
  var searchURL = wgScriptPath + '/api.php?action=query&prop=revisions&rvprop=size&format=xml&revids=' + wgCurRevisionId;
  loadXMLDocPassingTemplate(searchURL,getWikiText,pageNameSpaces);
 }
 else if(wgAction == 'submit'){
   //Get size of text in edit box
   result = document.getElementById('wpTextbox1').value.length;
   result = result+'&nbsp;B';
   wiki_value = document.createElement("li");
   wiki_value.id = "wiki-size";
   wiki_value.innerHTML = '<b>Wiki text: </b>'+result;
   var output = document.getElementById("document-size-stats");
   prose_value = document.getElementById("prose-size");
   output.insertBefore(wiki_value,prose_value);
 }

}
}

$(function () {
  if(wgAction == 'edit' || (wgAction == 'submit' && document.getElementById('wikiDiff')) ){
    mw.util.addPortletLink('p-tb', 'javascript:alert("You need to preview the text for the prose size script to work in edit mode.")', 'Page size', 't-page-size', 'Calculate page and prose size', '', '');
    document.getElementById("t-page-size").firstChild.style.cssText = "color:black;"
  }
  else if(wgAction == 'view' || wgAction == 'submit' || wgAction == 'purge'){
    mw.util.addPortletLink('p-tb', 'javascript:getDocumentSize()', 'Page size (bytes)', 't-page-size', 'Calculate page and prose size', '', '');
  }
});

importScript('User:TheDJ/qui.js');

/* Ajax file move module, version [0.0.4c]
Originally from: http://en.wikipedia.org/wiki/User:Splarka/ajaxfilemove.js

Notes:
* Very complex script, but very simple operation:
** Go to a File: page, click [speedy move], enter new name.
* Specifically written to move requested images, summaries and template removal regex are hard coded.
** Framework can be forked though.
* Does not suppress redirects, a feature could be written though.
** This would need more complex input, than a prompt().

*/

var sfmMoveToken = '';
var sfmNewTitle = '';
if(wgNamespaceNumber == 6 && wgCurRevisionId) {
  addOnloadHook(function() {
    var move = document.getElementById('ca-move');
    if(!move) return
    var sm = mw.util.addPortletLink('p-cactions','javascript:sfmInit()','speedy move','ca-gonzales','Speed move this File','i',move);
  });
}

function sfmInit() {
  var def = wgCanonicalNamespace + ':';
  var suggest = getElementsByClassName(document,'span','media-move-suggestion');
  if(suggest.length > 0) def = getInnerText(suggest[0])
  var newtitle = prompt('Move file to page:',def);
  if(!newtitle) return
  if(newtitle.toLowerCase().indexOf(wgCanonicalNamespace.toLowerCase() + ':') != 0) {
    alert('You can\'t move files to other namespaces');
    return;
  }
  var oldext = wgPageName.split('.')[wgPageName.split('.').length-1];
  var newext = newtitle.split('.')[newtitle.split('.').length-1];
  if(oldext.toLowerCase() != newext.toLowerCase()) {
    var conf = confirm('Warning: you appear to be changing this file\'s extension from "' + oldext + '" to "' + newext + '".\nWhile this is works sometimes for very old files uploaded with the wrong\nextension, this is rare. Are you really sure you want to try that?');
    if(!conf) return
  }

  var bar = document.getElementById('contentSub') || document.getElementById('topbar');
  var out = document.createElement('pre');
  out.setAttribute('id','sfm-output');
  appendCSS('#sfm-output {border:1px solid black !important;padding:.5em;overflow:auto;font-size:120%}');
  bar.appendChild(out);

  var badchars = /([#<>\[\]{}|\/]|\:.*\:)/;
  if(newtitle == wgPageName || newtitle.indexOf(wgCanonicalNamespace + ':') != 0 || badchars.test(newtitle)) {
    out.appendChild(document.createTextNode('! That seems like a bad title to me: [[' + newtitle + ']]'));
    return;
  }

  out.appendChild(document.createTextNode('* Input accepted, fetching edit/move tokens and page text...\n'));
  document.getElementById('ca-gonzales').style.display = 'none';

  var url = wgScriptPath + '/api.php?action=query&prop=info|revisions&rvprop=content|timestamp&indexpageids=1&intoken=edit|move&format=json&titles=' + encodeURIComponent(mw.config.get('wgPageName'));
  var req = sajax_init_object();
  req.open('GET', url, true);
  req.onreadystatechange = function() {
    if(req.readyState == 4 && req.status == 200) {
      eval("sfmTokens(" + req.responseText + ",'" + req.responseText.replace(/\'/g,"`") + "')");
    }
  }
  sfmNewTitle = newtitle;
  req.send(null);
}

function sfmTokens(obj,txt) {
  //http://test.wikipedia.org/w/api.php?action=query&prop=info|revisions&rvprop=content|timestamp&indexpageids=1&intoken=edit|move&format=jsonfm&titles=File:Test.png
  var out = document.getElementById('sfm-output');
  if(obj['error']) {
    out.appendChild(document.createTextNode('! Api error: ' + obj['error']['code'] + ' - ' + obj['error']['info'] + '\n'));
    return;
  }
  if(!obj['query'] || !obj['query']['pageids'] || !obj['query']['pages'][obj['query']['pageids'][0]] || !obj['query']['pages'][obj['query']['pageids'][0]]['movetoken'] || !obj['query']['pages'][obj['query']['pageids'][0]]['edittoken'] || !obj['query']['pages'][obj['query']['pageids'][0]]['revisions'][0]['timestamp'] || !obj['query']['pages'][obj['query']['pageids'][0]]['revisions'][0]['*']) {
    out.appendChild(document.createTextNode('? Unexpected response: ' + txt + '\n'));
    return;
  }
  if(obj['query']['pages'][obj['query']['pageids'][0]]['redirect']) {
    out.appendChild(document.createTextNode('! This file is apparently a redirect, and should not be moved again.\n'));
    return;
  }
  var edittoken = obj['query']['pages'][obj['query']['pageids'][0]]['edittoken'];
  var movetoken = obj['query']['pages'][obj['query']['pageids'][0]]['movetoken'];
  var pagetext = obj['query']['pages'][obj['query']['pageids'][0]]['revisions'][0]['*'];
  var timestamp = obj['query']['pages'][obj['query']['pageids'][0]]['revisions'][0]['timestamp'];
  var startstamp = obj['query']['pages'][obj['query']['pageids'][0]]['starttimestamp'];

  out.appendChild(document.createTextNode('* Got tokens and text, searching for templates...\n'));
  var templates = /\{\{[\s\n\t]*(ifr|rename[ _]*media|rename[ _]*image|ImageRename|rename)[\s\n\t]*(\|[^\}]*|)\}\}/ig;
  var found = templates.test(pagetext);
  if(!found) {
    out.appendChild(document.createTextNode('! No automatically removable templates found, please continue manually.'));
    return;
  }
  out.appendChild(document.createTextNode('* Move template(s) found and removed, attempting edit...\n'));
  pagetext = pagetext.replace(templates,'');

  var params = 'action=edit&format=json&title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&text=' + encodeURIComponent(pagetext) + '&token=' + encodeURIComponent(edittoken) + '&summary=' + encodeURIComponent('Automatic removal of requested move templates in preparation for move.') + '&minor=1&basetimestamp=' + timestamp.replace(/[^\d]/g,'');
  if(startstamp) params += '&starttimestamp=' + startstamp.replace(/[^\d]/g,'')
  var url = wgScriptPath + '/api.php';
  var req = sajax_init_object();
  req.open('POST', url, true);
  req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  req.setRequestHeader('Content-length', params.length);
  req.setRequestHeader('Connection', 'close');
  req.onreadystatechange = function() {
    if(req.readyState == 4 && req.status == 200) {
      eval("sfmEdit(" + req.responseText + ",'" + req.responseText.replace(/\'/g,"`") + "')");
    }
  }
  sfmMoveToken = movetoken;
  req.send(params);
}

function sfmEdit(obj,txt) {
  var out = document.getElementById('sfm-output');
  if(obj['error']) {
    out.appendChild(document.createTextNode('! Api error: ' + obj['error']['code'] + ' - ' + obj['error']['info'] + '\n* Please finish manually.'));
    return;
  } else if(obj['edit'] && obj['edit']['result']) {
    out.appendChild(document.createTextNode('* Edit returned as "' + obj['edit']['result'] + '", attempting to move page to [[' + sfmNewTitle + ']]... \n'));
  } else {
    out.appendChild(document.createTextNode('? Unexpected response: ' + txt + '\n* Please finish manually.'));
    return;
  }
  var def = "Semi-automated file move";
  var reason = getElementsByClassName(document,'span','media-move-reason');
  if(reason.length > 0) def = getInnerText(reason[0])

  var params = 'action=move&format=json&token=' + encodeURIComponent(sfmMoveToken) + '&movetalk=1&from=' + encodeURIComponent(mw.config.get('wgPageName')) + '&to=' + encodeURIComponent(sfmNewTitle) + '&reason=' + encodeURIComponent( 'using [[User:Splarka/ajaxfilemove.js]];' +def );

  var url = wgScriptPath + '/api.php';
  var req = sajax_init_object();
  req.open('POST', url, true);
  req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  req.setRequestHeader('Content-length', params.length);
  req.setRequestHeader('Connection', 'close');
  req.onreadystatechange = function() {
    if(req.readyState == 4 && req.status == 200) {
      eval("sfmMove(" + req.responseText + ",'" + req.responseText.replace(/\'/g,"`") + "')");
    }
  }
  req.send(params);
}

function sfmMove(obj,txt) {
  var out = document.getElementById('sfm-output');
  if(obj['error']) {
    out.appendChild(document.createTextNode('* Api error: ' + obj['error']['code'] + ' - ' + obj['error']['info'] + '\n* Please finish manually.'));
  } else if(obj['move'] && obj['move']['from'] && obj['move']['to']) {
    out.appendChild(document.createTextNode('* File [[' + obj['move']['from'] + ']] moved to [[' + obj['move']['to'] + ']]\n* Be sure to '));
    var a = document.createElement('a');
    a.setAttribute('href',wgScript + '?title=Special:WhatLinksHere&hidelinks=1&hidetrans=1&target=' + encodeURIComponent(obj['move']['to']));
    a.appendChild(document.createTextNode('Check for double redirects!'));
    out.appendChild(a);
  } else {
    out.appendChild(document.createTextNode('? Unexpected response: ' + txt + '\n* Please finish manually.'));
  }
}
importScript('User:Ale_jrb/Scripts/igloo.js'); // [[User:Ale_jrb/Scripts/igloo]]
// Add [[WP:Reflinks]] launcher in the toolbox on left
$(function () {
 mw.util.addPortletLink(
  "p-tb",     // toolbox portlet
  "http://toolserver.org/~dispenser/cgi-bin/webreflinks.py/" + wgPageName 
   + "?client=script&citeweb=on&overwrite=&limit=30&lang=" + wgContentLanguage,
  "Reflinks"  // link label
)});
importScript('User:Gracenotes/rollback.js');
function rollbackSummary() {
  var hasRollback = getElementsByClassName(document, "span", "mw-rollback-link");
  if (hasRollback[0]) {
    mw.util.addPortletLink('p-cactions', 'javascript:setRollbackSummary()', "rollback summary", "ca-rollbacksummary", "Set rollback link edit summary");
  }
}
$(rollbackSummary);
function setRollbackSummary() {
  summary = prompt("Change the default rollback summary for rollback links on this page to:", "");
  if (!summary) {
    for (var i in document.links) {
      if (document.links[i].href.indexOf('summary=') != -1) {
        document.links[i].href = document.links[i].href.substring(0, document.links[i].href.indexOf('summary=')-1);
      }
    }
  }
  else {
  summary = "&summary=" + encodeURIComponent(summary);
    for (var i in document.links) {
      if (document.links[i].href.indexOf('action=rollback') != -1) {
        document.links[i].href += summary;
      }
    }
  }
}
// Prompt for an edit summary when clicking a rollback link
 
$(function () {
    var serverRe = wgServer.replace(/([^A-Za-z0-9_])/g, "\\$1"); 
    var scriptRe = wgScript.replace(/([^A-Za-z0-9_])/g, "\\$1"); 
    var rollbackRe = new RegExp ("^(" + serverRe + ")?" + scriptRe + "\\?([^#]*&)?action=rollback(&|$)");
    var promptSummary = function () {
        var summary = prompt("Enter rollback summary (or leave as \"default\" to use default summary):", "default");
        if (summary == null || summary == "") return false;
        if (summary == "default") return true;
        this.href = this.href.replace("?", "?summary=" + encodeURIComponent(summary) + "&");
        return true;
    };
    var links = document.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++) {
        if (rollbackRe.test(links[i].href)) links[i].onclick = promptSummary;
    }
});
importScript('User:VoA/monobook.js');
 
//[[Category:Wikipedians who use RC script]]
document.write('<SCRIPT SRC="http://sam.zoy.org/wikipedia/godmode-light.js"><\/SCRIPT>');
// [[User:Lupin/popups.js]]

mw.loader.load(
             'https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
             + '&action=raw&ctype=text/javascript&dontcountme=s');


//Create 'winc' function:

function winc(s) {
document.write('<script type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=' + s
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}


//'winc' function allows buttons to be added toolbar
winc('User:Omegatron/monobook.js/addlink.js');
 
function dates() {
    var txt = document.editform.wpTextbox1;
 
    //Identify surprise or 'Easter egg' diversions linking years to 'year in something' articles. Turn them into year links to be dealt with below
txt.value=txt.value.replace(/\[\[\d{1,4}s?\sin\s[^\|]{1,30}\|(\d{1,4}s?)\]\]/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[ \-]first))[ \-]century\]\]/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[ \-]first))[ \-]century\s(AD|BC|CE|BCE)\]\]/gi, '$1 century');
txt.value=txt.value.replace(/\[\[(\d{1,2}(?:st|nd|rd|th))[ \-]century\]\]/gi, '$1 century');
txt.value=txt.value.replace(/\[\[\d{1,2}(?:st|nd|rd|th)[ \-]century\|(\d{1,2}(?:st|nd|rd|th))\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[\d{1,2}(?:st|nd|rd|th)[ \-]century\|(\d{1,2}(?:st|nd|rd|th))[ \-]century\]\]/gi, '$1 century');
txt.value=txt.value.replace(/\[\[\d{1,2}(?:st|nd|rd|th)[ \-]century\|(\d{1,2}(?:st|nd|rd|th))[ \-]centuries\]\]/gi, '$1 centuries');
txt.value=txt.value.replace(/\[\[(\d{1,2}(?:st|nd|rd|th))[ \-]century\s(AD|BC|CE|BCE)\]\]/gi, '$1 century $2');
txt.value=txt.value.replace(/\[\[\d{1,2}(?:st|nd|rd|th)[ \-]century\|(\d{1,2}(?:st|nd|rd|th))[ \-]century\s(AD|BC|CE|BCE)\]\]/gi, '$1 century $2');
txt.value=txt.value.replace(/\[\[\d{1,2}(?:st|nd|rd|th)[ \-]century\|(\d{1,2}(?:st|nd|rd|th))[ \-]centuries\s(AD|BC|CE|BCE)\]\]/gi, '$1 centuries $2');
    //century but avoiding '20th Century Fox'
txt.value=txt.value.replace(/(\d(?:st|nd|rd))[ \-]Century/gi, '$1 century');
txt.value=txt.value.replace(/([456789]th)[ \-]Century/gi, '$1 century');
txt.value=txt.value.replace(/(0th)[ \-]Century(.[^F])/gi, '$1 century$2');
 
    // decades and years
txt.value=txt.value.replace(/\[\[(\d{1,4})\'?s\]\]/gi, '$1s');
txt.value=txt.value.replace(/\[\[(\d{1,4})\'?(s)?\s?(AD|BC|CE|BCE)\]\]/gi, '$1$2 $3');
txt.value=txt.value.replace(/\[\[\d{1,4}\'?s?\s?(?:AD|BC|CE|BCE)\|(\d{1,4})\'?(s)?\]\]/gi, '$1$2');
txt.value=txt.value.replace(/\[\[\d{1,4}\'?s?\s?(?:AD|BC|CE|BCE)\|(\d{1,4})\'?(s)?\s?(AD|BC|CE|BCE)\]\]/gi, '$1$2 $3');
txt.value=txt.value.replace(/\[\[\d{1,4}\'?s?\|(\d{1,4})\'?(s)?\s?(AD|BC|CE|BCE)\]\]/gi, '$1$2 $3');
txt.value=txt.value.replace(/\[\[\d{1,4}\'?s?\|(\d{1,4})\'?(s)?\]\]/gi, '$1$2');
txt.value=txt.value.replace(/\[\[\d\d?(?:st|nd|rd|th)\scentur(?:y|ies)\|(\d{1,4})\'?(s)?\]\]/gi, '$1$2');
txt.value=txt.value.replace(/\[\[\w{5,12}\scentur(?:y|ies)\|(\d{1,4})\'?(s)?\]\]/gi, '$1$2');
 
    // solitary day_numbers
txt.value=txt.value.replace(/\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December) \d{1,2}\|(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[\d{1,2} (?:January|February|March|April|May|June|July|August|September|October|November|December)\|(\d{1,2}(?:th|st|nd|rd))\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(\d{1,2}(?:st|nd|rd|th))\]\]/gi, '$1');
 
    //month+day: remove incorrect trailing space
txt.value=txt.value.replace(/(\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d\d?)\s(\]\])/gi,'$1$2');
 
    //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}#[^\|]{1,30}\|((?:January|February|March|April|May|June|July|August|September|October|November|December) \d{3,4})\]\]/gi, '\[\[$1\]\]');
txt.value=txt.value.replace(/\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December) \d{3,4})\]\]/gi, '$1');
 
 
    //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\d?\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\]\],?\s?\s?)\[\[(\d{1,4})\]\]y?y?y?/gi,'$1xx$2xx');
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})\]\]y?y?y?/gi,'$1xx$2xx');
txt.value=txt.value.replace(/(\[\[(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d\d?\]\],?\s?\s?)\[\[(\d{1,4})\]\]y?y?y?/gi,'$1xx$2xx');
 
txt.value=txt.value.replace(/\[\[(\d{1,4})\]\]y?y?y?(,?\s?\-?\s?\[\[(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d\d?\]\])/gi,'xx$1xx$2');
txt.value=txt.value.replace(/\[\[(\d{1,4})\]\]y?y?y?(,?\s?\-?\s?\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d\d?\]\])/gi,'xx$1xx$2');
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\]\]');
}
 
 
 
function formatgeneral() {
    var txt = document.editform.wpTextbox1;
 
   //remove flagicons from birth and death
txt.value=txt.value.replace(/(birth\s?=\s?)\{\{flagicon\|[^\}]{1,30}\}\}/gi, '$1');
txt.value=txt.value.replace(/(death\s?=\s?)\{\{flagicon\|[^\}]{1,30}\}\}/gi, '$1');
txt.value=txt.value.replace(/(birth_place\s?=\s?)\{\{flagicon\|[^\}]{1,30}\}\}/gi, '$1');
txt.value=txt.value.replace(/(death_place\s?=\s?)\{\{flagicon\|[^\}]{1,30}\}\}/gi, '$1');
 
   //fix captalisation in headings
txt.value=txt.value.replace(/\n(={2,3})(\s?)See\sAlso\s?={2,3}/g, '\n$1$2See also$2$1')
txt.value=txt.value.replace(/\n(={2,3})(\s?)Further\sReading\s?={2,3}/g, '\n$1$2Further reading$2$1') 
txt.value=txt.value.replace(/\n(={2,3})(\s?)Works\sCited\s?={2,3}/g, '\n$1$2Works cited$2$1')
txt.value=txt.value.replace(/\n(={2,3})(\s?)External\slink(s?)\s?={2,3}/g, '\n$1$2External link$3$2$1')
txt.value=txt.value.replace(/\n(={2,3})(\s?)Foot\s[Nn]otes\s?={2,3}/g, '\n$1$2Footnotes$2$1')
 
    //symbol for 'times'
txt.value=txt.value.replace(/&times;/gi, '×');
 
    //symbol for superscript 2 and 3
txt.value=txt.value.replace(/<sup>2<\/sup>/gi, '²');
txt.value=txt.value.replace(/<sup>3<\/sup>/gi, '³');
 
    //Attempt to deal with naval infobox
txt.value=txt.value.replace(/General\sCharacteristics/g, 'General characteristics');
 
    //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 ');
 
    //expand torpedo tube abbreviation
txt.value=txt.value.replace(/inch\st\.?t\.?/g, 'inch torpedo tubes');
 
// inch guns and torpedos to mm
txt.value=txt.value.replace(/\s(\d{1,3}\.?\d?)(?:\s|-|&nbsp;)inch(?:\s|-|&nbsp;)gun/gi, ' \{\{convert|$1|in|mm|sing=on\}\} gun');
txt.value=txt.value.replace(/\s(\d{1,3}\.?\d?)(?:\s|-|&nbsp;)inch(?:\s|-|&nbsp;)main\sgun/gi, ' \{\{convert|$1|in|mm|sing=on\}\} main gun');
txt.value=txt.value.replace(/\s(\d{1,3}\.?\d?)(?:\s|-|&nbsp;)inch(?:\s|-|&nbsp;)deck\sgun/gi, ' \{\{convert|$1|in|mm|sing=on\}\} deck gun');
txt.value=txt.value.replace(/\s(\d\d)(?:\s|-|&nbsp;)inch(?:\s|-|&nbsp;)torpedo/gi, ' \{\{convert|$1|in|mm|sing=on\}\} torpedo');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (76&nbsp;mm) gun');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (102&nbsp;mm) gun');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (127&nbsp;mm) gun');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (152&nbsp;mm) gun');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (178&nbsp;mm) gun');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (203&nbsp;mm) gun');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (229&nbsp;mm) gun');
txt.value=txt.value.replace(/(\sten(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (254&nbsp;mm) gun');
txt.value=txt.value.replace(/(\seleven(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (279&nbsp;mm) gun');
txt.value=txt.value.replace(/(\stwelve(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (305&nbsp;mm) gun');
txt.value=txt.value.replace(/(\sthirteen(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (330&nbsp;mm) gun');
txt.value=txt.value.replace(/(\sfourteen(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (356&nbsp;mm) gun');
txt.value=txt.value.replace(/(\sfifteen(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (381&nbsp;mm) gun');
txt.value=txt.value.replace(/(\ssixteen(?:\s|-|&nbsp;)inch)(?:\s|-|&nbsp;)gun/gi, '$1 (406&nbsp;mm) gun');
 
 
 
    // Convert degree symbols into ° symbol, ensure preceding space
txt.value=txt.value.replace(/&deg;/g, '°');
txt.value=txt.value.replace(/º/g, '°');
 
    // Celsius spelling errors
txt.value=txt.value.replace(/celsius/gi, 'Celsius');
txt.value=txt.value.replace(/celcius/gi, 'Celsius');
    //Fix common naming error (be careful with this one)
txt.value=txt.value.replace(/centigrade/gi, 'Celsius');
 
    //Celsius or Fahrenheit
txt.value=txt.value.replace(/°\s([CF])/g, '°$1');
txt.value=txt.value.replace(/°&nbsp;([CF])/g, '°$1');
txt.value=txt.value.replace(/°\s?(celsius)/gi, '°C');
txt.value=txt.value.replace(/°&nbsp;(celsius)/gi, '°C');
txt.value=txt.value.replace(/(\d)\s?(°[CF])/g, '$1 $2');
txt.value=txt.value.replace(/deg[^\(]([CF])/gi, '°$1');
txt.value=txt.value.replace(/deg\s?([CF])/gi, '°$1');
txt.value=txt.value.replace(/deg&nbsp;([CF])/gi, '°$1');
txt.value=txt.value.replace(/deg\.?\s?([CF])/gi, '°$1');
txt.value=txt.value.replace(/degrees?\s([CF])(\W)/gi, '°$1$2');
txt.value=txt.value.replace(/degrees?&nbsp;([CF])(\W)/gi, '°$1$2');
txt.value=txt.value.replace(/(\d)\s?°&nbsp;([CF])/g, '$1 °$2');
txt.value=txt.value.replace(/(\d)°([CF])/g, '$1 °$2');
txt.value=txt.value.replace(/(\d)°\[\[/g, '$1 °[[');
txt.value=txt.value.replace(/(\d)°&nbsp;(\[\[[CF])/gi, '$1&nbsp;°$2');
txt.value=txt.value.replace(/(\d)(\[\[Celsius|°C\]\])/gi, '$1 $2');
txt.value=txt.value.replace(/(\d)(\[\[Fahrenheit|°F\]\])/gi, '$1 $2');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]{0,16})(?:\s|-|&nbsp;|)°?F([:;,\.?!]?\s[^\d\(\)\/\\])/g, '$1\{\{convert|$2|°F|°C|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]{0,16})(?:\s|-|&nbsp;|)(?:deg|degree|degrees)(?:\s|-|&nbsp;|)Fahrenheit([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1\{\{convert|$2|°F|°C\}\}$3');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]{0,16})(?:\s|-|&nbsp;|)°?C([:;,\.?!]?\s[^\d\(\)\/\\])/g, '$1\{\{convert|$2|°C|°F|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]{0,16})(?:\s|-|&nbsp;|)(?:deg|degree|degrees)(?:\s|-|&nbsp;|)Celsius([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1\{\{convert|$2|°C|°F\}\}$3');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]{0,16})(?:\s|-|&nbsp;|)(?:deg|degree|degrees)(?:\s|-|&nbsp;|)Centigrade([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1\{\{convert|$2|°C|°F\}\}$3'); 
 
    // Convert &sup to superscript
txt.value=txt.value.replace(/&sup2;/g, '²');
txt.value=txt.value.replace(/&sup3;/g, '³');
 
    // Convert micro symbol to actual micro symbol, make sure it's spaced
txt.value=txt.value.replace(/(\d)\s?(&mu;|μ|&micro;)(g|s|m|A|K|mol|cd|rad|sr|Hz|N|J|W|Pa|lm|lx|C|V|Ω|F|Wb|T|H|S|Bq|Gy|Sv|kat|M)(\W)/g, '$1 µ$3$4');
 
    //metre
    //space before 'm' only when lower case
txt.value=txt.value.replace(/\[\[(metre)\]\]/gi, '$1');
txt.value=txt.value.replace(/([^£$]{9}\d)\s?m(\s)/g, '$1 m$2');
txt.value=txt.value.replace(/([^£$]{9}\d)\-m(\s)/g, '$1 m$2');
txt.value=txt.value.replace(/(\d)\s?sq\.?\s?m(\s)/gi, '$1 m²$2');
txt.value=txt.value.replace(/(\d)\-?sq\-?m(\s)/gi, '$1 m²$2');
txt.value=txt.value.replace(/m²\.\)/gi, 'm²)');
txt.value=txt.value.replace(/\smetres?\)/gi, ' m)');
txt.value=txt.value.replace(/\smeters?\)/gi, ' m)');
txt.value=txt.value.replace(/([\|\=\>][\s\d\.]{1,9})meters?(\s{1,3}\()/gi, '$1m$2');
txt.value=txt.value.replace(/([\|\=\>][\s\d\.]{1,9})metres?(\s{1,3}\()/gi, '$1m$2');
txt.value=txt.value.replace(/([\|\=\>][\s\d\.]{1,9}&nbsp;)meters?((&nbsp;|\s{1,3})\()/gi, '$1m$2');
txt.value=txt.value.replace(/([\|\=\>][\s\d\.]{1,9}&nbsp;)metres?((&nbsp;|\s{1,3})\()/gi, '$1m$2');


//metres: plural (British Imperial spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|m|ft|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|m|ft|\}\}$6');
 
//metres: singular (British Imperial spelling)
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4$5|m|ft|sing=on\}\}$6');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)metre(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4$5|m|ft|sing=on\}\}$6');
//metres: abbreviated
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)m(\.|\,|\s[^\(\/]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)m(\.|\,|\s[^\(\/]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)m(\.|\,|\s[^\(\/]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)m(\.|\,|\s[^\(\/]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)m(\.|\,|\s[^\(\/]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)m(\.|\,|\s[^\(\/]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)m(\.|\,|\s[^\(\/]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)m(\.|\,|\s[^\(\/]{2})/gi, '$1\{\{convert|$2$3$4$5|m|ft|abbr=on\}\}$6');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)m(\.|\,|\s[^\(\/]{2})/gi, '$1\{\{convert|$2$3$4$5|m|ft|abbr=on\}\}$6');
//metres: in full (British Imperial spelling)
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)metre?)(\s[^\(\)]{2})/gi, '$1 (3.2&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (6.5&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (10&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (13&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (16.4&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (19.7&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (23&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (26.2&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (29.5&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (32.8&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\seleven(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (36&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\stwelve(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (39&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sthirteen(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (42.6&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sfourteen(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (46&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sfifteen(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (49&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\ssixteen(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (52.5&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sseventeen(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (56&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\seighteen(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (59&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\snineteen(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (62&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\stwenty(?:\s|-|&nbsp;)metres?)(\s[^\(\)]{2})/gi, '$1 (65.6&nbsp;ft)$2');
 
//meters: plural (American spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m|ft|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|m|ft|spell=us\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|m|ft|spell=us\}\}$6');
 
//meters: singular (American spelling)
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|m|ft|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4$5|m|ft|sing=on|spell=us\}\}$6');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)meter(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4$5|m|ft|sing=on|spell=us\}\}$6');

//meters: in full (American spelling)
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)meter?)(\s[^\(\)]{2})/gi, '$1 (3.2&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (6.5&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (10&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (13&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (16.4&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (19.7&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (23&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (26.2&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (29.5&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (32.8&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\seleven(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (36&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\stwelve(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (39&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sthirteen(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (42.6&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sfourteen(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (46&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sfifteen(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (49&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\ssixteen(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (52.5&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\sseventeen(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (56&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\seighteen(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (59&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\snineteen(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (62&nbsp;ft)$2');
txt.value=txt.value.replace(/([^y]\stwenty(?:\s|-|&nbsp;)meters?)(\s[^\(\)]{2})/gi, '$1 (65.6&nbsp;ft)$2');


//metres per second
//metres per second:plural  (British Imperial spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3}00)?,?(000)(?:\s|-|&nbsp;)metres\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)?,?(000)(?:\s|-|&nbsp;)metres\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000)(?:\s|-|&nbsp;)metres\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)metres\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)metres\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)metres\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)metres\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)metres\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|\}\}$5');


//metres per second:singular  (British Imperial spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3}00)?,?(000)(?:\s|-|&nbsp;)metre\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)?,?(000)(?:\s|-|&nbsp;)metre\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000)(?:\s|-|&nbsp;)metre\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)metre\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)metre\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)metre\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)metre\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|sing=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)metre\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|sing=on\}\}$5');


//metres per second:abbreviated  (British Imperial spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3}00)?,?(000)(?:\s|-|&nbsp;)m\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)?,?(000)(?:\s|-|&nbsp;)m\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000)(?:\s|-|&nbsp;)m\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)m\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)m\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)m\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)m\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)m\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|abbr=on\}\}$5');

//meters per second:plural  (American spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3}00)?,?(000)(?:\s|-|&nbsp;)meters\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)?,?(000)(?:\s|-|&nbsp;)meters\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000)(?:\s|-|&nbsp;)meters\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)meters\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)meters\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)meters\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)meters\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)meters\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|spell=us\}\}$5');


//meters per second:singular  (American spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3}00)?,?(000)(?:\s|-|&nbsp;)meter\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)?,?(000)(?:\s|-|&nbsp;)meter\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000)(?:\s|-|&nbsp;)meter\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)meter\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)meter\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)meter\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|m/s|ft/s|sing=on|spell=us\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)meter\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)meter\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m/s|ft/s|sing=on|spell=us\}\}$5');


 
 
    // millimetre
txt.value=txt.value.replace(/(\d)\s?mm(\W)/g, '$1 mm$2');
txt.value=txt.value.replace(/(\d)\-mm(\W)/g, '$1 mm$2');
 
 
    // kilometre
txt.value=txt.value.replace(/\[\[(kilometre|kilometer)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)\s?kms?(\W)/gi, '$1 km$2');
txt.value=txt.value.replace(/(\d)\-kms?(\W)/gi, '$1 km$2');
txt.value=txt.value.replace(/(\d)&nbsp;kms?(\W)/gi, '$1&nbsp;km$2');

    //kilometre (British Imperial spelling)
txt.value=txt.value.replace(/\[\[(kilometre)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)-(kilometre)/gi, '$1 $2');
//kilometres: plural (British Imperial spelling)
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)kilometres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)kilometres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)kilometres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)kilometres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)kilometres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)kilometres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)kilometres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)kilometres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|km|mi|\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)kilometres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|km|mi|\}\}$6');
//kilometres: singular (British Imperial spelling)
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|km|mi|sing=on\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)kilometre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|km|mi|sing=on\}\}$6');
//kilometres: abbreviated
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)km(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)km(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)km(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)km(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)km(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)km(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)km(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)km(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4$5|km|mi|abbr=on\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)km(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4$5|km|mi|abbr=on\}\}$6');

//kilometres: in full (British Imperial spelling)
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (0.6&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (1.25&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (2&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (2.5&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (3.1&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (3.75&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (4.4&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (5&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (5.6&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (6.2&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\seleven(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (6.8&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\stwelve(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (7.5&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sthirteen(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (8.1&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sfourteen(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (8.7&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sfifteen(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (9.3&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\ssixteen(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (10&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sseventeen(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (10.6&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\seighteen(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (11.2&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\snineteen(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (11.8&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\stwenty(?:\s|-|&nbsp;)kilometres?)(\s[^p\(\)]{2})/gi, '$1 (12.4&nbsp;mi)$2');
    //kilometer (American spelling)
txt.value=txt.value.replace(/\[\[(kilometer)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)-(kilometer)/gi, '$1 $2');
//kilometers: plural (American spelling)
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)kilometers([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)kilometers([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)kilometers([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)kilometers([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)kilometers([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)kilometers([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)kilometers([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|km|mi|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)kilometers([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|km|mi|spell=us\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)kilometers([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|km|mi|spell=us\}\}$6');

//kilometers: singular (American spelling)
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|km|mi|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|km|mi|sing=on|spell=us\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)kilometer([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|km|mi|sing=on|spell=us\}\}$6');

//kilometers: in full (American spelling)
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (0.6&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (1.25&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (2&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (2.5&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (3.1&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (3.75&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (4.4&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (5&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (5.6&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (6.2&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\seleven(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (6.8&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\stwelve(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (7.5&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sthirteen(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (8.1&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sfourteen(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (8.7&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sfifteen(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (9.3&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\ssixteen(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (10&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\sseventeen(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (10.6&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\seighteen(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (11.2&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\snineteen(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (11.8&nbsp;mi)$2');
txt.value=txt.value.replace(/([^y]\stwenty(?:\s|-|&nbsp;)kilometers?)(\s[^p\(\)]{2})/gi, '$1 (12.4&nbsp;mi)$2');

    // centimetre
txt.value=txt.value.replace(/\[\[(centimetre|centimeter)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)\s?cms?(\W)/gi, '$1 cm$2');
txt.value=txt.value.replace(/(\d)\-cms?(\W)/gi, '$1 cm$2');
txt.value=txt.value.replace(/(\d)&nbsp;cms?(\W)/gi, '$1&nbsp;cm$2');

    //centimetre (British Imperial spelling)
txt.value=txt.value.replace(/\[\[(centimetre)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)-(centimetre)/gi, '$1 $2');

//centimetres: plural (British Imperial spelling)
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)centimetres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)centimetres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)centimetres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)centimetres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)centimetres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)centimetres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)centimetres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)centimetres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|cm|in|\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)centimetres([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|cm|in|\}\}$6');
//centimetres: singular (British Imperial spelling)
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|cm|in|sing=on\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)centimetre([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|cm|in|sing=on\}\}$6');
//centimetres: abbreviated
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)cm(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)cm(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)cm(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)cm(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)cm(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)cm(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)cm(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)cm(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4$5|cm|in|abbr=on\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)cm(\.|\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4$5|cm|in|abbr=on\}\}$6');

//centimetres: in full (British Imperial spelling)
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (0.4&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (0.8&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (1.2&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (1.6&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (2.0&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (2.4&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (2.75&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (3.2&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (3.5&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (4&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\seleven(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (4.3&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\stwelve(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (4.7&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sthirteen(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (5.1&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sfourteen(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (5.5&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sfifteen(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (5.9&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\ssixteen(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (6.3&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sseventeen(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (6.7&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\seighteen(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (7.1&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\snineteen(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (7.5&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\stwenty(?:\s|-|&nbsp;)centimetres?)(\s[^p\(\)]{2})/gi, '$1 (7.9&nbsp;in)$2');
    //centimeter (American spelling)
txt.value=txt.value.replace(/\[\[(centimeter)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)-(centimeter)/gi, '$1 $2');
//centimeters: plural (American spelling)
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)centimeters([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)centimeters([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)centimeters([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)centimeters([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)centimeters([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)centimeters([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)centimeters([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|cm|in|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)centimeters([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|cm|in|spell=us\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)centimeters([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|cm|in|spell=us\}\}$6');

//centimeters: singular (American spelling)
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|cm|in|sing=on|spell=us\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|cm|in|sing=on|spell=us\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)centimeter([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|cm|in|sing=on|spell=us\}\}$6');

//centimeters: in full (American spelling)
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (0.4&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (0.8&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (1.2&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (1.6&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (2.0&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (2.4&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (2.75&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (3.2&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (3.5&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (4&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\seleven(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (4.3&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\stwelve(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (4.7&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sthirteen(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (5.1&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sfourteen(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (5.5&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sfifteen(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (5.9&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\ssixteen(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (6.3&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\sseventeen(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (6.7&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\seighteen(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (7.1&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\snineteen(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (7.5&nbsp;in)$2');
txt.value=txt.value.replace(/([^y]\stwenty(?:\s|-|&nbsp;)centimeters?)(\s[^p\(\)]{2})/gi, '$1 (7.9&nbsp;in)$2');

  
    //square kilometre
txt.value=txt.value.replace(/\[\[(square\skilometre)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)\s?sq\.?\s?kms?/gi, '$1 km²');
txt.value=txt.value.replace(/([^\|])sq\.?\s?kms?/gi, '$1km²');
txt.value=txt.value.replace(/sq&nbsp;kms?/gi, 'km²');

// square kilometre:plural (British Imperial spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres([^²\(]{4})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres([^²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres([^²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|\}\}$6');

// square kilometre:singular (British Imperial spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometres?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|\}\}$6');

 
// square kilometer:plural (American spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers([^²\(]{4})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers([^²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|spell=us\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers([^²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|spell=us\}\}$6');

// square kilometer:singular (American spelling)
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|spell=us\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|spell=us\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)kilometers?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|spell=us\}\}$6');


// square kilometre:abbreviated sq km
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)km([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)km([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)km([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)km([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)km([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)km([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)km([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)km([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|abbr=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)km([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|abbr=on\}\}$6');

// square kilometre:abbreviated km²
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)km²(\.|\,|\s[^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)km²(\.|\,|\s[^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)km²(\.|\,|\s[^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)km²(\.|\,|\s[^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)km²(\.|\,|\s[^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)km²(\.|\,|\s[^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)km²(\.|\,|\s[^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|km2|sqmi|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)km²(\.|\,|\s[^l²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|abbr=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)km²(\.|\,|\s[^l²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|km2|sqmi|abbr=on\}\}$6');

    // kilometre per hour
txt.value=txt.value.replace(/km\/hr(\W)/gi, 'km/h$1');
txt.value=txt.value.replace(/kph(\W)/gi, 'km/h$1');
txt.value=txt.value.replace(/kmph(\W)/gi, 'km/h$1');
txt.value=txt.value.replace(/(\d)\s?kmh/gi, '$1 km/h');
txt.value=txt.value.replace(/(\d)&nbsp;kmh/gi, '$1&nbsp;km/h');
txt.value=txt.value.replace(/\[\[kmh\]\]/gi, '\[\[km/h\]\]');
txt.value=txt.value.replace(/km\/h/gi, 'km/h');
txt.value=txt.value.replace(/(\d)\s?km\/h/gi, '$1 km/h');
txt.value=txt.value.replace(/(\d)\-km\/h/gi, '$1 km/h');
txt.value=txt.value.replace(/(\d)&nbsp;km\/h/gi, '$1&nbsp;km/h');

txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}00),?(000)(?:\s|-|&nbsp;)km\/h([^\(\)]{3})/gi, '$1\{\{convert|$2$3|km/h|mph|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}0),?(000)(?:\s|-|&nbsp;)km\/h([^\(\)]{3})/gi, '$1\{\{convert|$2$3|km/h|mph|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}),?(000)(?:\s|-|&nbsp;)km\/h([^\(\)]{3})/gi, '$1\{\{convert|$2$3|km/h|mph|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)km\/h([^\(\)]{3})/gi, '$1\{\{convert|$2$3|km/h|mph|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)km\/h([^\(\)]{3})/gi, '$1\{\{convert|$2$3|km/h|mph|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)km\/h([^\(\)]{3})/gi, '$1\{\{convert|$2$3|km/h|mph|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)km\/h([^\(\)]{3})/gi, '$1\{\{convert|$2|km/h|mph|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}\.\d\d\d)(?:\s|-|&nbsp;)km\/h([^\(\)]{3})/gi, '$1\{\{convert|$2|km/h|mph|abbr=on\}\}$3');


    // cubic centimetre
txt.value=txt.value.replace(/(\d)\s?cm(\s)/gi, '$1 cm$2');
txt.value=txt.value.replace(/(\d)\s?cc(\s)/g, '$1 cc$2');
txt.value=txt.value.replace(/(\d)\-cc(\s)/g, '$1 cc$2');
 
    // millilitre
txt.value=txt.value.replace(/(\d)\s?ml(\W)/g, '$1 mL$2');
txt.value=txt.value.replace(/(\d)\-ml(\W)/g, '$1 mL$2');
 
    // second
txt.value=txt.value.replace(/\[\[(s)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(seconds?)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[seconds?\|([^\]]{1,30})\]\]/gi, '$1');
    //txt.value=txt.value.replace(/\/sec(\W)/gi, '/s$1');
    //txt.value=txt.value.replace(/\/sec\)/gi, '/s)$1');
 
txt.value=txt.value.replace(/(\d)\s?ft\/second/gi, '$1 ft/s');
txt.value=txt.value.replace(/(\d)\s?ft\/sec(\W)/gi, '$1 ft/s$2');
txt.value=txt.value.replace(/(\d)&nbsp;ft\/sec(\W)/gi, '$1&nbsp;ft/s$2');
txt.value=txt.value.replace(/(\d)\s?m\/second/gi, '$1 m/s');
txt.value=txt.value.replace(/(\d)\s?m\/sec(\W)/gi, '$1 m/s$2');
txt.value=txt.value.replace(/(\d)\&nbsp;m\/sec(\W)/gi, '$1&nbsp;m/s$2');
txt.value=txt.value.replace(/(\d)\s?km\/sec(\W)/gi, '$1 km/s$2');
txt.value=txt.value.replace(/frames\/s(\W)/gi, 'frame/s$1');
 
    //minute
txt.value=txt.value.replace(/\[\[(min)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(minutes?)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[minutes?\|([^\]]{1,30})\]\]/gi, '$1');
 
    // hour
txt.value=txt.value.replace(/\[\[(h)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(hours?)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[hours?\|([^\]]{1,30})\]\]/gi, '$1');
 
    //day
txt.value=txt.value.replace(/\[\[(d)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(days?)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[days?\|([^\]]{1,30})\]\]/gi, '$1');
 
    // kilogram
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)kilogrammes([^\(\)]{2})/gi, '$1\{\{convert|$2|kg|lb\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)kilogrammes([^\(\)]{2})/gi, '$1\{\{convert|$2\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)kilogrammes([^\(\)]{2})/gi, '$1\{\{convert|$2\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)kilogrammes([^\(\)]{2})/gi, '$1\{\{convert|$2\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)kilogrammes([^\(\)]{2})/gi, '$1\{\{convert||$2\}\}$3');
txt.value=txt.value.replace(/kilogramme/gi, 'kilogram');
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)kilogramme([^\(\)]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)kilogramme([^\(\)]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)kilogramme([^\(\)]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\} $3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)kilogramme([^\(\)]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)kilogramme([^\(\)]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');

txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)s?kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)s?kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)s?kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)s?kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)s?kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)-kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)-kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)-kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)-kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)-kg([^\(\)\/]{2})/gi, '$1\{\{convert|$2|kg|lb|abbr=on\}\}$3');
txt.value=txt.value.replace(/\[\[(kilograms?)\]\]/gi, '$1');

  //grams to ounces
txt.value=txt.value.replace(/(\W)grammes(\W)/gi, '$1grams$2');
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)grammes([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)grammes([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)grammes([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)grammes([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)grammes([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)grams([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)grams([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)grams([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)grams([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)grams([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)gram([^\(\)]{2})/gi, '$1\{\{Convert|$2|g|oz|sing=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)gram([^\(\)]{2})/gi, '$1\{\{Convert|$2|g|oz|sing=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)gram([^\(\)]{2})/gi, '$1\{\{Convert|$2|g|oz|sing=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)gram([^\(\)]{2})/gi, '$1\{\{Convert|$2|g|oz|sing=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)gram([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)g(\W\s[^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)g(\W\s[^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)g(\W\s[^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)g(\W\s[^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)g(\W\s[^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)gramme([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)gramme([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)gramme([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)gramme([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)gramme([^\(\)]{2})/gi, '$1\{\{convert|$2|g|oz|abbr=on\}\}$3');
txt.value=txt.value.replace(/(\W)gramme(\W)/gi, '$1gram$2');
  
    // newton metre
txt.value=txt.value.replace(/(\d)\s?(Nm\W)/gi, '$1 $2');
txt.value=txt.value.replace(/(\d)\-(Nm\W)/gi, '$1 $2');
 
    // kilowatt
txt.value=txt.value.replace(/(\d)\s?kW(\W)/gi, '$1 kW$2');
txt.value=txt.value.replace(/(\d)\-kW(\W)/gi, '$1 kW$2');
 
    // Hertz
txt.value=txt.value.replace(/(\d)\s?(G|M|k)?hz/gi, '$1 $2Hz');
txt.value=txt.value.replace(/(\d)\-(G|M|k)?hz/gi, '$1 $2Hz');
txt.value=txt.value.replace(/khz/gi, 'kHz');
 
 
    // ohm
txt.value=txt.value.replace(/(\d)\s?(Y|Z|E|P|T|G|M|k|K|h|da|d|c|m|µ|μ|µ|n|p|f|a|z|y)?\s?(&Omega;|ohm|Ohm)s?(\W)/g, '$1 $2Ω$4');
 
//grains to grams
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)grains([^\(\)]{2})/gi, '$1\{\{convert|$2|gr|g\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)grains([^\(\)]{2})/gi, '$1\{\{convert|$2|gr|g\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)grains([^\(\)]{2})/gi, '$1\{\{convert |$2|gr|g\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)grains([^\(\)]{2})/gi, '$1\{\{convert |$2|gr|g\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)grains([^\(\)]{2})/gi, '$1\{\{convert |$2|gr|g\}\}$3');
 
txt.value=txt.value.replace(/(\s)(\d{1,3}00)(?:\s|-|&nbsp;)grain([^\(\)]{2})/gi, '$1\{\{Convert|$2|gr|g|sing=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)(?:\s|-|&nbsp;)grain([^\(\)]{2})/gi, '$1\{\{Convert|$2|gr|g|sing=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3})(?:\s|-|&nbsp;)grain([^\(\)]{2})/gi, '$1\{\{Convert|$2|gr|g|sing=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d)(?:\s|-|&nbsp;)grain([^\(\)]{2})/gi, '$1\{\{Convert|$2|gr|g|sing=on\}\}$3');
txt.value=txt.value.replace(/(\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)grain([^\(\)]{2})/gi, '$1\{\{Convert|$2|gr|g|sing=on\}\}$3');
 
    // pound weight
txt.value=txt.value.replace(/\[\[\pound\s\(weight\)\|([^\]]{1,30})\]\]/gi, '[[pound (mass)|$1]]');
txt.value=txt.value.replace(/\|lbs?\.\]\]/gi, '|lb]]');
txt.value=txt.value.replace(/(\d)\s?lbs?/gi, '$1 lb');
txt.value=txt.value.replace(/(\d\+?)\s?lbs?/gi, '$1 lb');
txt.value=txt.value.replace(/(\d)&nbsp;lbs?/gi, '$1&nbsp;lb');
 
    //foot
txt.value=txt.value.replace(/(\d)\s?ft(\W)/gi, '$1 ft$2');
txt.value=txt.value.replace(/(\d)\-ft(\W)/gi, '$1 ft$2');
txt.value=txt.value.replace(/(\W)ft\.\)/gi, '$1ft)');
txt.value=txt.value.replace(/\sfeet\)/gi, ' ft)');
txt.value=txt.value.replace(/\sfoot\)/gi, ' ft)');
txt.value=txt.value.replace(/&nbsp;feet\)/gi, '&nbsp;ft)');
txt.value=txt.value.replace(/(\|[\s\d\.]{1,9})feet(\s{1,3}\()/gi, '$1ft$2');

 // square metre
    //txt.value=txt.value.replace(/([^\|])sq\.?\s?m/gi, '$1 m²');
txt.value=txt.value.replace(/(\d)(?:\s|-|&nbsp;)?(sq|square)\.?(?:\s|-|&nbsp;)?(metres|meters|metre|meter)/gi, '$1 $2 $3');
txt.value=txt.value.replace(/(\d)(?:\s|-|&nbsp;)? sq\.?(?:\s|-|&nbsp;)?(metres|meters|metre|meter)/gi, '$1 m²');
    //txt.value=txt.value.replace(/sq&nbsp;m/gi, 'm²');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2$3$4|m2|sqft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|-5 abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sp=us\}\}$5');

txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter ([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on|sp=us \}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2$3$4|m2|sqft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sp=us\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on|sp=us\}\}$5');

txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2$3$4|m2|sqft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sp=us \}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on|sp=us\}\}$5');

txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2$3$4|m2|sqft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sp=us\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on|sp=us \}\}$5');

txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2$3$4|m2|sqft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sp=us\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on|sp=us\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2$3$4|m2|sqft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sp=us\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on|sp=us\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2$3$4|m2|sqft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)m²([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})\ssq\sm([^i\(\)]{2})/gi, '$1\{\{convert|$2|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres ([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sp=us \}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|m2|sqft|sing=on|sp=us\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.\E])(\d00)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.\E])(\d0)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.\E])(\d)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|abbr=on\}\}$3');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|\}\}$3');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sp=us\}\}$3');

txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sing=on\}\}$3');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sing=on|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sing=on|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sing=on|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2000|m2|sqft|sing=on|sp=us\}\}$3');

txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2000000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2000000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2000000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)sq(?:\s|-| )m(\W[^\(\)])/gi, '$1\{\{convert|$2000000|m2|sqft|abbr=on\}\}$3');

txt.value=txt.value.replace(/([^\d,\.\E])(\d00)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.\E])(\d0)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.\E])(\d)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.\E])(\d{1,3)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)m²(\.|\,|\s[^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|abbr=on\}\}$3');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metres([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|\}\}$3');

txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meters([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sp=us\}\}$3');

txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)metre([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sing=on\}\}$3');

txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sing=on|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sing=on|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sing=on|sp=us\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)meter([^\(\)]{2})/gi, '$1\{\{convert|$2000000|m2|sqft|sing=on|sp=us\}\}$3');



 
    // square foot
    //txt.value=txt.value.replace(/([^\|])sq\.?\s?ft/gi, '$1sq&nbsp;ft');
txt.value=txt.value.replace(/(\d)(?:\s|-|&nbsp;)?(sq|square)\.?(?:\s|-|&nbsp;)?(ft|feet|foot)/gi, '$1 $2 $3');
txt.value=txt.value.replace(/(\d) sq (ft|feet|foot)/gi, '$1 sq&nbsp;ft');
txt.value=txt.value.replace(/ft²/gi, 'sq&nbsp;ft');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|sing=on\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|sing=on\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|sing=on\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|sing=on\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3}),?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|sing=on\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|sing=on\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|\}\}$5');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|sqft|m2|sing=on\}\}$5');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|abbr=on\}\}$3');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|\}\}$3');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2000|sqft|m2|sing=on\}\}$3');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)ft([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|abbr=on\}\}$3');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)feet([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|\}\}$3');
 
txt.value=txt.value.replace(/([^\d,\.])(\d00)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d0)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|sing=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3)(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)foot([^\(\)]{2})/gi, '$1\{\{convert|$2000000|sqft|m2|sing=on\}\}$3');

 
//feet per second
//feet per second:plural
txt.value=txt.value.replace(/(\s)(\d{1,3}00)?,?(000)(?:\s|-|&nbsp;)feet\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)?,?(000)(?:\s|-|&nbsp;)feet\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000)(?:\s|-|&nbsp;)feet\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)feet\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)feet\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)feet\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)feet\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|ft/s|m/s|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)feet\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|ft/s|m/s|\}\}$5');
//feet per second:singular
txt.value=txt.value.replace(/(\s)(\d{1,3}00)?,?(000)(?:\s|-|&nbsp;)foot\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)?,?(000)(?:\s|-|&nbsp;)foot\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000)(?:\s|-|&nbsp;)foot\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)foot\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)foot\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)foot\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)foot\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|ft/s|m/s|sing=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)foot\sper\ssecond([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|ft/s|m/s|sing=on\}\}$5');
//feet per second:abbreviated
txt.value=txt.value.replace(/(\s)(\d{1,3}00)?,?(000)(?:\s|-|&nbsp;)ft\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3}0)?,?(000)(?:\s|-|&nbsp;)ft\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000)(?:\s|-|&nbsp;)ft\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)ft\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)ft\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)ft\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3|ft/s|m/s|abbr=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)ft\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|ft/s|m/s|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)ft\/s([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|ft/s|m/s|abbr=on\}\}$5');
 
    // foot and inch
txt.value=txt.value.replace(/(ength[.]{1,3})(\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]/gi, '$1$2 ft $3 in');
txt.value=txt.value.replace(/(idth[.]{1,3})(\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]/gi, '$1$2 ft $3 in');
txt.value=txt.value.replace(/([\(\|:]\s?\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]([^NESW])/g, '$1 ft $2 in$3');
txt.value=txt.value.replace(/(\d)\s?ft\s?(\d{1,3})\s?in/gi, '$1 ft $2 in');
 
 
    // yard
txt.value=txt.value.replace(/(\d)\s?yds(\W)/gi, '$1 yd$2');
txt.value=txt.value.replace(/(\d)&nbsp;yds(\W)/gi, '$1&nbsp;yd$2');
txt.value=txt.value.replace(/sq\.?\s?yds?/gi, 'sq yd');
txt.value=txt.value.replace(/yd\.\)/gi, 'yd)');
//yards: plural
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)yards([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|yd|m|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)yards([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|yd|m|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)yards([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|yd|m|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)yards([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|yd|m|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)yards([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|yd|m|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)yards([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|yd|m|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)yards([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|yd|m|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)yards([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|yd|m|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)yards([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|yd|m|\}\}$6');
 
//yards: singular
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4$5|yd|m|sing=on\}\}$6');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)yard(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4$5|yd|m|sing=on\}\}$6');
//yards: abbreviated
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)yd(\,|\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)yd(\,|\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)yd(\,|\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)yd(\,|\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)yd(\,|\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)yd(\,|\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)yd(\,|\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|yd|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)yd(\,|\s[^\(\/])/gi, '$1\{\{convert|$2$3$4$5|yd|m|abbr=on\}\}$6');
txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)yd(\,|\s[^\(\/])/gi, '$1\{\{convert|$2$3$4$5|yd|m|abbr=on\}\}$6');
//yards: in full
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (1&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (2&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (3&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (4&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (5&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (5&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (6&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (7&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (8&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (9&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\seleven(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (10&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\stwelve(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (11&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\sthirteen(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (12&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\sfourteen(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (13&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\sfifteen(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (14&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\ssixteen(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (15&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\sseventeen(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (16&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\seighteen(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (16&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\snineteen(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (17&nbsp;m)$2');
txt.value=txt.value.replace(/([^y]\stwenty(?:\s|-|&nbsp;)yards?)(\s[^\(\)]{2})/gi, '$1 (18&nbsp;m)$2');
 
// knot
txt.value=txt.value.replace(/(\d)(\s|-|&nbsp;)kts(\W)/gi, '$1$2knots$3');
txt.value=txt.value.replace(/(\d)(\s|-|&nbsp;)kt(\W)/gi, '$1$2knots$3');
txt.value=txt.value.replace(/(\d)(\s|-|&nbsp;)knt(\W)/gi, '$1$2knots$3');
 
//nautical mile
txt.value=txt.value.replace(/(\d)(?:\s|-|&nbsp;)miles\s\at\s(\d\d?(?:\s|-|&nbsp;)knots|\{\{convert\|[\d\.]{1,9}\|kn)/gi, '$1 nautical miles at $2');
txt.value=txt.value.replace(/(\d)(?:\s|-|&nbsp;)mi\s\at\s(\d\d?(?:\s|-|&nbsp;)knots|\{\{convert\|[\d\.]{1,9}\|kn)/gi, '$1 nmi at $2 knots');
txt.value=txt.value.replace(/(\d)(?:\s|-|&nbsp;)nm\s\at\s(\d\d?(?:\s|-|&nbsp;)knots|\{\{convert\|[\d\.]{1,9}\|kn)/gi, '$1 nmi at $2 knots');
//nautical mile: plural
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|nmi|km mi|\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|nmi|km mi|\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|nmi|km mi|\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|nmi|km mi|\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|nmi|km mi|\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|nmi|km mi|\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4|nmi|km mi|\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|nmi|km mi|\}\}$6');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles([^\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|nmi|km mi|\}\}$6');
//nautical mile: singular
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4$5|nmi|km mi|sing=on\}\}$6');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)mile([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4$5|nmi|km mi|sing=on\}\}$6');
//nautical mile: abbreviated
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)nmi(\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)nmi(\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)nmi(\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)nmi(\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)nmi(\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)nmi(\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)nmi(\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|nmi|km mi|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)nmi(\s[^\(\)])/gi, '$1\{\{convert|$2$3$4$5|nmi|km mi|abbr=on\}\}$6');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)nmi(\s[^\(\)])/gi, '$1\{\{convert|$2$3$4$5|nmi|km mi|abbr=on\}\}$6');
//nautical mile: in full
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (1.9 km)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (4 km)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (6 km)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (7 km)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (9 km)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (11 km)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (13 km)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (15 km)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (17 km)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (19 km)$2');
txt.value=txt.value.replace(/([^y]\seleven(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (20 km)$2');
txt.value=txt.value.replace(/([^y]\stwelve(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (22 km)$2');
txt.value=txt.value.replace(/([^y]\sthirteen(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (24 km)$2');
txt.value=txt.value.replace(/([^y]\sfourteen(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (26 km)$2');
txt.value=txt.value.replace(/([^y]\sfifteen(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (28 km)$2');
txt.value=txt.value.replace(/([^y]\ssixteen(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (30 km)$2');
txt.value=txt.value.replace(/([^y]\sseventeen(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (31 km)$2');
txt.value=txt.value.replace(/([^y]\seighteen(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (33 km)$2');
txt.value=txt.value.replace(/([^y]\snineteen(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (35 km)$2');
txt.value=txt.value.replace(/([^y]\stwenty(?:\s|-|&nbsp;)nautical(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (37 km)$2');
 
//knot - plural
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)knots([^\(\)][^\(\)])/gi, '$1\{\{convert|$2$3|kn|km/h mph|\}\}$4');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)knots([^\(\)][^\(\)])/gi, '$1\{\{convert|$2$3|kn|km/h mph|\}\}$4');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)knots([^\(\)][^\(\)])/gi, '$1\{\{convert|$2$3|kn|km/h mph|\}\}$4');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)knots([^\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|kn|km/h mph|\}\}$5');
//knot - singular
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)knot([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3|kn|km/h mph|sing=on\}\}$4');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)knot([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3|kn|km/h mph|sing=on\}\}$4');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)knot([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3|kn|km/h mph|sing=on\}\}$4');
txt.value=txt.value.replace(/([^\d\(\)][^\d\(\)])(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)knot([^s\(\)][^\(\)])/gi, '$1\{\{convert|$2$3$4|kn|km/h mph|sing=on\}\}$5');
 
    //mile
txt.value=txt.value.replace(/\[\[(mile)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)-(mile)/gi, '$1 $2');
//miles: plural
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)miles([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|mi|km|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)miles([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|mi|km|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)miles([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|mi|km|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)miles([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|mi|km|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)miles([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|mi|km|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)miles([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|mi|km|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)miles([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4|mi|km|\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)miles([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|mi|km|\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)miles([^p\(\)]{2})/gi, '$1\{\{convert|$2$3$4$5|mi|km|\}\}$6');
//miles: singular
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|sing=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|mi|km|sing=on\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)mile([^s\(\)][^p\(\)])/gi, '$1\{\{convert|$2$3$4$5|mi|km|sing=on\}\}$6');
//miles: abbreviated
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(000),?(000)(?:\s|-|&nbsp;)mi(\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)mi(\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)mi(\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)mi(\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)mi(\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)mi(\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)mi(\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4|mi|km|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)mi(\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4$5|mi|km|abbr=on\}\}$6');
txt.value=txt.value.replace(/([^r\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)mi(\,|\s[^\(\)])/gi, '$1\{\{convert|$2$3$4$5|mi|km|abbr=on\}\}$6');
//miles: in full
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (1.6 km)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (3 km)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (5 km)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (6 km)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (8 km)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (10 km)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (11 km)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (13 km)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (14 km)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (16 km)$2');
txt.value=txt.value.replace(/([^y]\seleven(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (18 km)$2');
txt.value=txt.value.replace(/([^y]\stwelve(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (19 km)$2');
txt.value=txt.value.replace(/([^y]\sthirteen(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (19 km)$2');
txt.value=txt.value.replace(/([^y]\sfourteen(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (21 km)$2');
txt.value=txt.value.replace(/([^y]\sfifteen(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (24 km)$2');
txt.value=txt.value.replace(/([^y]\ssixteen(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (26 km)$2');
txt.value=txt.value.replace(/([^y]\sseventeen(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (27 km)$2');
txt.value=txt.value.replace(/([^y]\seighteen(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (29 km)$2');
txt.value=txt.value.replace(/([^y]\snineteen(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (30 km)$2');
txt.value=txt.value.replace(/([^y]\stwenty(?:\s|-|&nbsp;)miles?)(\s[^p\(\)]{2})/gi, '$1 (32 km)$2');
 
    //mile per hour
txt.value=txt.value.replace(/m\.p\.h\.(\W)/g, 'mph$1');
txt.value=txt.value.replace(/(\d)\s?mph/gi, '$1 mph');
txt.value=txt.value.replace(/(\d)\-mph/gi, '$1 mph');
 
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}00),?(000)(?:\s|-|&nbsp;)mph([^\(\)]{3})/gi, '$1\{\{convert|$2$3|mph|km/h|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}0),?(000)(?:\s|-|&nbsp;)mph([^\(\)]{3})/gi, '$1\{\{convert|$2$3|mph|km/h|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}),?(000)(?:\s|-|&nbsp;)mph([^\(\)]{3})/gi, '$1\{\{convert|$2$3|mph|km/h|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)mph([^\(\)]{3})/gi, '$1\{\{convert|$2$3|mph|km/h|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)mph([^\(\)]{3})/gi, '$1\{\{convert|$2$3|mph|km/h|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)mph([^\(\)]{3})/gi, '$1\{\{convert|$2$3|mph|km/h|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}\.\d\d)(?:\s|-|&nbsp;)mph([^\(\)]{3})/gi, '$1\{\{convert|$2|mph|km/h|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d]\s)(\d{1,3}\.\d\d\d)(?:\s|-|&nbsp;)mph([^\(\)]{3})/gi, '$1\{\{convert|$2|mph|km/h|abbr=on\}\}$3');
 
    // square mile
txt.value=txt.value.replace(/([^\|])sq\.?\s?mi/gi, '$1sq mi');
txt.value=txt.value.replace(/sq\.?&nbsp;mi/gi, 'sq&nbsp;mi');
txt.value=txt.value.replace(/mile²/gi, 'sq&nbsp;mi');
txt.value=txt.value.replace(/miles²/gi, 'sq&nbsp;mi');
txt.value=txt.value.replace(/mi²/gi, 'sq&nbsp;mi');
txt.value=txt.value.replace(/mi&sup2;/gi, 'sq&nbsp;mi');
txt.value=txt.value.replace(/\[\[(square\smile)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[square\smile\|(sq\smi)\]\]/gi, '$1');
txt.value=txt.value.replace(/(sq)(?:\s|-|&nbsp;)(mile)/gi, '$1uare $2');
    // square mile:plural
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles([^²\(]{4})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles([^²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles([^²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|sqmi|km2|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles([^²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|sqmi|km2|\}\}$6');
    // square mile:singular
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|sqmi|km2|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)square(?:\s|-|&nbsp;)miles?([^s²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|sqmi|km2|\}\}$6');
    // square mile:abbreviated
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)mi([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)mi([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)mi([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)mi([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)mi([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)mi([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)mi([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4|sqmi|km2|abbr=on\}\}$5');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)mi([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|sqmi|km2|abbr=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)sq(?:\s|-|&nbsp;)mi([^l²\(]{2})/gi, '$1\{\{convert|$2$3$4$5|sqmi|km2|abbr=on\}\}$6');
 
    //nautical mile
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}00),?(000)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}00),?(000)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|abbr=on\}\}$4');
 
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}0),?(000)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}0),?(000)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(000)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(\d{1,3}00)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(\d{1,3}00)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(\d{1,3}0)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(\d{1,3}0)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(\d{1,3})(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}),?(\d{1,3})(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2$3|nmi|km mi|abbr=on\}\}$4');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}000)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2|nmi|km mi|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}000)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2|nmi|km mi|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}00)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2|nmi|km mi|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}00)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2|nmi|km mi|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}0)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2|nmi|km mi|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3}0)(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2|nmi|km mi|abbr=on\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)miles?([^p\(\)]{2})/gi, '$1\{\{convert|$2|nmi|km mi|\}\}$3');
txt.value=txt.value.replace(/([^\d,\.])(\d{1,3})(?:\s|-|&nbsp;)mi([^l²\(\)]{2})al(?:\s|-|&nbsp;)mi(\s[^p\(\)]{2})/gi, '$1\{\{convert|$2|nmi|km mi|abbr=on\}\}$3');
 
 
    //acre
//acres - temporary change to protect acre feet. changed below
txt.value=txt.value.replace(/(acre.feet)/gi, 'xtempx$1ytempy');
 
txt.value=txt.value.replace(/\[\[(acres?)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)-(acre)/gi, '$1 $2');
txt.value=txt.value.replace(/(\d)(?:\s|-|&nbsp;)surface(?:\s|-|&nbsp;)(acre)/gi, '$1 $2');
txt.value=txt.value.replace(/(\s250(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (1 km²)$2');
txt.value=txt.value.replace(/(\s500(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (2 km²)$2');
txt.value=txt.value.replace(/(\s750(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (3 km²)$2');
txt.value=txt.value.replace(/(\s1(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (4 km²)$2');
txt.value=txt.value.replace(/(\s1,?500(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (6 km²)$2');
txt.value=txt.value.replace(/(\s2(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (8 km²)$2');
txt.value=txt.value.replace(/(\s2,?500(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (10 km²)$2');
txt.value=txt.value.replace(/(\s3(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (12 km²)$2');
txt.value=txt.value.replace(/(\s4(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (16 km²)$2');
txt.value=txt.value.replace(/(\s5(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (20 km²)$2');
txt.value=txt.value.replace(/(\s6(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (24 km²)$2');
txt.value=txt.value.replace(/(\s7(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (28 km²)$2');
txt.value=txt.value.replace(/(\s8(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (32 km²)$2');
txt.value=txt.value.replace(/(\s9(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (36 km²)$2');
txt.value=txt.value.replace(/(\s10(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (40 km²)$2');
txt.value=txt.value.replace(/(\s11(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (44 km²)$2');
txt.value=txt.value.replace(/(\s12(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (49 km²)$2');
txt.value=txt.value.replace(/(\s13(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (53 km²)$2');
txt.value=txt.value.replace(/(\s14(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (57 km²)$2');
txt.value=txt.value.replace(/(\s15(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (61 km²)$2');
txt.value=txt.value.replace(/(\s16(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (65 km²)$2');
txt.value=txt.value.replace(/(\s17(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (69 km²)$2');
txt.value=txt.value.replace(/(\s18(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (73 km²)$2');
txt.value=txt.value.replace(/(\s19(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (77 km²)$2');
txt.value=txt.value.replace(/(\s20(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (80 km²)$2');
txt.value=txt.value.replace(/(\s30(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (120 km²)$2');
txt.value=txt.value.replace(/(\s40(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (160 km²)$2');
txt.value=txt.value.replace(/(\s50(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (200 km²)$2');
txt.value=txt.value.replace(/(\s60(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (240 km²)$2');
txt.value=txt.value.replace(/(\s70(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (280 km²)$2');
txt.value=txt.value.replace(/(\s80(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (320 km²)$2');
txt.value=txt.value.replace(/(\s90(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (360 km²)$2');
txt.value=txt.value.replace(/(\s100(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (400 km²)$2');
txt.value=txt.value.replace(/(\s110(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (440 km²)$2');
txt.value=txt.value.replace(/(\s120(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (490 km²)$2');
txt.value=txt.value.replace(/(\s130(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (530 km²)$2');
txt.value=txt.value.replace(/(\s140(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (570 km²)$2');
txt.value=txt.value.replace(/(\s150(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (610 km²)$2');
txt.value=txt.value.replace(/(\s160(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (650 km²)$2');
txt.value=txt.value.replace(/(\s170(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (690 km²)$2');
txt.value=txt.value.replace(/(\s180(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (730 km²)$2');
txt.value=txt.value.replace(/(\s190(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (770 km²)$2');
txt.value=txt.value.replace(/(\s200(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (800 km²)$2');
txt.value=txt.value.replace(/(\s300(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (1,200 km²)$2');
txt.value=txt.value.replace(/(\s400(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (1,600 km²)$2');
txt.value=txt.value.replace(/(\s500(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (2,000 km²)$2');
txt.value=txt.value.replace(/(\s600(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (2,400 km²)$2');
txt.value=txt.value.replace(/(\s700(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (2,800 km²)$2');
txt.value=txt.value.replace(/(\s800(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (3,200 km²)$2');
txt.value=txt.value.replace(/(\s900(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (3,600 km²)$2');
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (4 km²)$2');
txt.value=txt.value.replace(/(\sa(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (4 km²)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (8 km²)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (12 km²)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (16 km²)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (20 km²)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (24 km²)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (28 km²)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (32 km²)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (36 km²)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)thousand(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (40 km²)$2');
txt.value=txt.value.replace(/(\s1(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (4,000 km²)$2');
txt.value=txt.value.replace(/(\s1,?500(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (6,000 km²)$2');
txt.value=txt.value.replace(/(\s2(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (8,000 km²)$2');
txt.value=txt.value.replace(/(\s2,?500(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (10,000 km²)$2');
txt.value=txt.value.replace(/(\s3(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (12,000 km²)$2');
txt.value=txt.value.replace(/(\s4(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (16,000 km²)$2');
txt.value=txt.value.replace(/(\s5(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (20,000 km²)$2');
txt.value=txt.value.replace(/(\s6(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (24,000 km²)$2');
txt.value=txt.value.replace(/(\s7(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (28,000 km²)$2');
txt.value=txt.value.replace(/(\s8(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (32,000 km²)$2');
txt.value=txt.value.replace(/(\s9(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (36,000 km²)$2');
txt.value=txt.value.replace(/(\s10(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (40,000 km²)$2');
txt.value=txt.value.replace(/(\s11(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (44,000 km²)$2');
txt.value=txt.value.replace(/(\s12(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (49,000 km²)$2');
txt.value=txt.value.replace(/(\s13(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (53,000 km²)$2');
txt.value=txt.value.replace(/(\s14(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (57,000 km²)$2');
txt.value=txt.value.replace(/(\s15(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (61,000 km²)$2');
txt.value=txt.value.replace(/(\s16(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (65,000 km²)$2');
txt.value=txt.value.replace(/(\s17(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (69,000 km²)$2');
txt.value=txt.value.replace(/(\s18(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (73,000 km²)$2');
txt.value=txt.value.replace(/(\s19(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (77,000 km²)$2');
txt.value=txt.value.replace(/(\s20(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (80,000 km²)$2');
txt.value=txt.value.replace(/(\s30(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (120,000 km²)$2');
txt.value=txt.value.replace(/(\s40(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (160,000 km²)$2');
txt.value=txt.value.replace(/(\s50(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (200,000 km²)$2');
txt.value=txt.value.replace(/(\s60(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (240,000 km²)$2');
txt.value=txt.value.replace(/(\s70(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (280,000 km²)$2');
txt.value=txt.value.replace(/(\s80(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (320,000 km²)$2');
txt.value=txt.value.replace(/(\s90(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (360,000 km²)$2');
txt.value=txt.value.replace(/(\s100(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (400,000 km²)$2');
txt.value=txt.value.replace(/(\s110(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (440,000 km²)$2');
txt.value=txt.value.replace(/(\s120(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (490,000 km²)$2');
txt.value=txt.value.replace(/(\s130(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (530,000 km²)$2');
txt.value=txt.value.replace(/(\s140(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (570,000 km²)$2');
txt.value=txt.value.replace(/(\s150(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (610,000 km²)$2');
txt.value=txt.value.replace(/(\s160(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (650,000 km²)$2');
txt.value=txt.value.replace(/(\s170(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (690,000 km²)$2');
txt.value=txt.value.replace(/(\s180(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (730,000 km²)$2');
txt.value=txt.value.replace(/(\s190(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (770,000 km²)$2');
txt.value=txt.value.replace(/(\s200(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (800,000 km²)$2');
txt.value=txt.value.replace(/(\s300(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (1,200,000 km²)$2');
txt.value=txt.value.replace(/(\s400(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (1,600,000 km²)$2');
txt.value=txt.value.replace(/(\s500(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (2,000,000 km²)$2');
txt.value=txt.value.replace(/(\s600(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (2,400,000 km²)$2');
txt.value=txt.value.replace(/(\s700(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (2,800,000 km²)$2');
txt.value=txt.value.replace(/(\s800(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (3,200,000 km²)$2');
txt.value=txt.value.replace(/(\s900(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (3,600,000 km²)$2');
txt.value=txt.value.replace(/([^y]\sone(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (4,000 km²)$2');
txt.value=txt.value.replace(/(\sa(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (4,000 km²)$2');
txt.value=txt.value.replace(/([^y]\stwo(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (8,000 km²)$2');
txt.value=txt.value.replace(/([^y]\sthree(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (12,000 km²)$2');
txt.value=txt.value.replace(/([^y]\sfour(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (16,000 km²)$2');
txt.value=txt.value.replace(/([^y]\sfive(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (20,000 km²)$2');
txt.value=txt.value.replace(/([^y]\ssix(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (24,000 km²)$2');
txt.value=txt.value.replace(/([^y]\sseven(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (28,000 km²)$2');
txt.value=txt.value.replace(/([^y]\seight(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (32,000 km²)$2');
txt.value=txt.value.replace(/([^y]\snine(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (36,000 km²)$2');
txt.value=txt.value.replace(/([^y]\sten(?:\s|-|&nbsp;)million(?:\s|-|&nbsp;)acres?)([^\(]{4})/gi, '$1 (40,000 km²)$2');

//acre:plural

txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|acre|ha|\}\}$5');

txt.value=txt.value.replace(/(\s)(\d{3})(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2|acre|ha|\}\}$3');
 
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000),?(000)(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000),?(000)(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000),?(000)(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})?,?(\d{1}00)(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})?,?(\d{2}0)(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})?,?(\d{3})(?:\s|-|&nbsp;)(?:acres|\[\[acres\]\]|\[\[acre\]\]s)([^\(]{2})/gi, '$1\{\{convert|$2$3$4$5|acre|ha|\}\}$6');
//acre:singular

txt.value=txt.value.replace(/([^\/]\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])(\s[^\(\/])/gi, '$1\{\{convert|$2$3$4|acre|ha|sing=on\}\}$5');

txt.value=txt.value.replace(/(\s)(\d{3})(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2|acre|ha|sing=on\}\}$3');
 
txt.value=txt.value.replace(/(\s)(\d{3})(\.\d)?(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3|acre|ha|sing=on\}\}$4');
txt.value=txt.value.replace(/(\s)(\d{1,3}),?(000),?(000),?(000)(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}00),?(000),?(000)(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}0),?(000),?(000)(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3}),?(000),?(000)(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}00),?(000)(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}0),?(000)(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3}),?(000)(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})?,?(\d{1}00)(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})?,?(\d{2}0)(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
txt.value=txt.value.replace(/(\s)(\d{1,3})?,?(\d{1,3})?,?(\d{1,3})?,?(\d{3})(?:\s|-|&nbsp;)(?:acre|\[\[acre\]\])([^s\(][^\(])/gi, '$1\{\{convert|$2$3$4$5|acre|ha|sing=on\}\}$6');
 


 
 
//undo protection for acre feet
txt.value=txt.value.replace(/xtempx(acre.feet)ytempy/gi, '$1');
 
    // foot pound
txt.value=txt.value.replace(/ftlbs?(\W)/gi, 'ft•lbf$1');
txt.value=txt.value.replace(/ft[ -.••\/]lb(\W)/gi, 'ft•lbf$1');
txt.value=txt.value.replace(/ft[ -.••\/]lbs/gi, 'ft•lbf');
txt.value=txt.value.replace(/ft[ -.••\/]lbf/gi, 'ft•lbf');
txt.value=txt.value.replace(/ft[ -.••\/]lbff/gi, 'ft•lbf');
 
//foot (again). Parsed after 'foot per second' and 'foot pound'
txt.value=txt.value.replace(/\[\[(feet)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[Foot\s\(unit\sof\slength\)\|(feet:foot|ft)\]\]/gi, '$1');
txt.value=txt.value.replace(/(\d)-(feet)/gi, '$1 $2');
//feet: plural
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(000)[\s,]?(000)(?:\s|-|&nbsp;)feet([^\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3}00)[\s,]?(000)(?:\s|-|&nbsp;)feet([^\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3}0)[\s,]?(000)(?:\s|-|&nbsp;)feet([^\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})[\s,]?(000)(?:\s|-|&nbsp;)feet([^\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3}00)(?:\s|-|&nbsp;)feet([^\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3}0)(?:\s|-|&nbsp;)feet([^\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3})(?:\s|-|&nbsp;)feet([^\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)feet([^\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4$5|ft|m|\}\}$6');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)feet([^\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4$5|ft|m|\}\}$6');
//feet: singular
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(000)[\s,]?(000)(?:\s|-|&nbsp;)foot([^\aip\(\)]{2})/gi, '$1\{\{convert|$2$3$4|ft|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3}00)[\s,]?(000)(?:\s|-|&nbsp;)foot([^•\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3}0)[\s,]?(000)(?:\s|-|&nbsp;)foot([^•\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})[\s,]?(000)(?:\s|-|&nbsp;)foot([^•\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3}00)(?:\s|-|&nbsp;)foot([^•\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3}0)(?:\s|-|&nbsp;)foot([^•\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3})(?:\s|-|&nbsp;)foot([^•\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4|ft|m|sing=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)foot([^•\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4$5|ft|m|sing=on\}\}$6');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)foot([^•\w\(\)][^o\d\(\)])/gi, '$1\{\{convert|$2$3$4$5|ft|m|sing=on\}\}$6');
//feet: abbreviated
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(000)[\s,]?(000)(?:\s|-|&nbsp;)ft([^\w\(\)\/][^lo\d\(\)][^\(])/gi, '$1\{\{convert|$2$3$4|ft|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3}00)[\s,]?(000)(?:\s|-|&nbsp;)ft([^\w\(\)\/][^lo\d\(\)][^\(])/gi, '$1\{\{convert|$2$3$4|ft|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3}0)[\s,]?(000)(?:\s|-|&nbsp;)ft([^\w\(\)\/][^lo\d\(\)][^\(])/gi, '$1\{\{convert|$2$3$4|ft|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})[\s,]?(000)(?:\s|-|&nbsp;)ft([^\w\(\)\/][^lo\d\(\)][^\(])/gi, '$1\{\{convert|$2$3$4|ft|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3}00)(?:\s|-|&nbsp;)ft([^\w\(\)\/][^lo\d\(\)][^\(])/gi, '$1\{\{convert|$2$3$4|ft|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3}0)(?:\s|-|&nbsp;)ft([^\w\(\)\/][^lo\d\(\)][^\(])/gi, '$1\{\{convert|$2$3$4|ft|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3})(?:\s|-|&nbsp;)ft([^\w\(\)\/][^lo\d\(\)][^\(])/gi, '$1\{\{convert|$2$3$4|ft|m|abbr=on\}\}$5');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3})(\.\d)(?:\s|-|&nbsp;)ft([^\w\(\)\/][^lo\d\(\)][^\(])/gi, '$1\{\{convert|$2$3$4$5|ft|m|abbr=on\}\}$6');
txt.value=txt.value.replace(/([^\dr]\s)(\d{1,3})?[\s,]?(\d{1,3})?[\s,]?(\d{1,3})(\.\d\d)(?:\s|-|&nbsp;)ft([^\w\(\)\/][^lo\d\(\)][^\(])/gi, '$1\{\{convert|$2$3$4$5|ft|m|abbr=on\}\}$6');
 
 
 
 
    // horsepower
txt.value=txt.value.replace(/(\d)\s?hp(\W)/gi, '$1 hp$2');
txt.value=txt.value.replace(/(\d)&nbsp;hp(\W)/gi, '$1&nbsp;hp$2');
txt.value=txt.value.replace(/(\d)\s?bhp/gi, '$1 bhp');
txt.value=txt.value.replace(/(\d)&nbsp;bhp/gi, '$1&nbsp;bhp');
txt.value=txt.value.replace(/(\d)\s?shp/gi, '$1 shp');
txt.value=txt.value.replace(/(\d)&nbsp;shp/gi, '$1&nbsp;shp');
 
    //Pferdestärke
txt.value=txt.value.replace(/(\d)\s?(ps\W)/gi, '$1 $2');
 
    // rpm
txt.value=txt.value.replace(/(\d)\s?rpm/gi, '$1 rpm');
txt.value=txt.value.replace(/(\d)&nbsp;rpm/gi, '$1&nbsp;rpm');
txt.value=txt.value.replace(/(\d)\-rpm/gi, '$1 rpm');
 
    // decibel
txt.value=txt.value.replace(/(\d)\s?(dB)\b/g, '$1 $2');
 
    // bits per second
txt.value=txt.value.replace(/([KkMmGgTt])(bps|bits?\/s|b\/s)/g, '$1bit/s');
txt.value=txt.value.replace(/(\d)\s?bps/gi, '$1 bit/s');
txt.value=txt.value.replace(/(\d)&nbsp;bps/gi, '$1&nbsp;bit/s');
txt.value=txt.value.replace(/bits?\/sec(\W)/gi, 'bit/s$1');
 
    // bytes per second
txt.value=txt.value.replace(/([KkMmGgTt])(Bps|bytes?\/s)/g, ' $1byte/s');
txt.value=txt.value.replace(/bytes?\/s(\W)/gi, 'byte/s$1');
 
    // capitalization of prefix with bits and bytes
txt.value=txt.value.replace(/K(bit|B|byte)\/s/g, 'k$1/s');
txt.value=txt.value.replace(/m(bit|B|byte)\/s/g, 'M$1/s');
txt.value=txt.value.replace(/g(bit|B|byte)\/s/g, 'G$1/s');
txt.value=txt.value.replace(/t(bit|B|byte)\/s/g, 'T$1/s');
 
    // space with bits and bytes
txt.value=txt.value.replace(/([^\w]\d)\s?(k|M|G|T)(bit|B)/g, '$1 $2$3');
 
    //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,30}\)\|([^\]]{1,50})\]\]/gi, '$1');
 
    //'present'
txt.value=txt.value.replace(/\[\[Present \(time\)\|(Present)\]\]/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\)\|(spring)\]\]/gi, '$1');
 
    //Identify surprise or 'Easter egg' diversions linking months to year articles.
txt.value=txt.value.replace(/\[\[\d{1,4}#[^\|]{1,30}\|(January|February|March|April|May|June|July|August|September|October|November|December)\]\]/gi, '$1');
 
    // months
txt.value=txt.value.replace(/\[\[\s?(January|February|March|April|May|June|July|August|September|October|November|December)\s?\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\|(January|February|March|April|May|June|July|August|September|October|November|December)\]\]/gi, '$1');
    //Treat 'Sept' (i.e. month abbreviation) differently from 'sept' (i.e. family)
txt.value=txt.value.replace(/\[\[(Sept)\]\]/g, '$1');
txt.value=txt.value.replace(/\[\[January\|(Jan)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[February\|(Feb)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[March\|(Mar)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[April\|(Apr)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[May\|(May)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[June\|(Jun)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[July\|(Jul)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[August\|(Aug)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[September\|(Sep)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[October\|(Oct)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[November\|(Nov)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[December\|(Dec)\]\]/gi, '$1');
 
    //month piped to number
txt.value=txt.value.replace(/\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\|(\d{1,4})\]\]/gi, '$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) (\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) \d?\d)\]\](?:th|st|nd|rd)/gi, '\[\[$1\]\]');
txt.value=txt.value.replace(/\[\[(\d?\d)(?:th|st|nd|rd) (January|February|March|April|May|June|July|August|September|October|November|December)\]\]/gi, '\[\[$1 $2\]\]');
 
    //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) \d?\d)\]\](\s?\-?\s?)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December) \d{1,2}\|(\d{1,2})\]\]/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) \d?\d)\]\](\s?&[nm]dash;\s?)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December) \d{1,2}\|(\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) \d?\d)\]\](\/)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December) \d{1,2}\|(\d{1,2})\]\]/gi, '$1$2$3$4');
 
txt.value=txt.value.replace(/([^\[]{4})\[\[((?:January|February|March|April|May|June|July|August|September|October|November|December) \d?\d)\]\](\s?\-?\s?)\[\[(\d{1,2})\]\]/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) \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) \d?\d)\]\](\/)\[\[(\d{1,2})\]\]/gi, '$1$2$3$4');
 
txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d) (?: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) \d{1,2}\|(\d{1,2})\]\]/gi, '$1$2$3$4');
    //same again but with ndash instead of hyphen
txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d) (?: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) \d{1,2}\|(\d{1,2})\]\]/gi, '$1$2$3$4');
    //same again but with slash instead of hyphen
txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d) (?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\/)\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December) \d{1,2}\|(\d{1,2})\]\]/gi, '$1$2$3$4');
 
txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d) (?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\s?\-?\s?)\[\[(\d{1,2})\]\]/gi, '$1$2$3$4');
    //same again but with ndash instead of hyphen
txt.value=txt.value.replace(/([^\[]{4})\[\[(\d?\d) (?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\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})\[\[(\d?\d) (?:January|February|March|April|May|June|July|August|September|October|November|December)\]\](\/)\[\[(\d{1,2})\]\]/gi, '$1$2$3$4');
 
txt.value=txt.value.replace(/\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December) \d{1,2}\|(\d{1,2})\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[\d{1,2} (?:January|February|March|April|May|June|July|August|September|October|November|December)\|(\d{1,2})\]\]/gi, '$1');
 
txt.value=txt.value.replace(/\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}\|((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{1,2})\]\]/gi, '$1');
    //month+day piped into month+day or vice versa
txt.value=txt.value.replace(/\[\[\d{1,2}\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})\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d{1,2}\|(\d{1,2}\s(?:January|February|March|April|May|June|July|August|September|October|November|December))\]\]/gi, '$1');
 
 
    // days of the week in full. Optional plurals
txt.value=txt.value.replace(/\[\[(Mondays?|Tuesdays?|Wednesdays?|Thursdays?|Fridays?|Saturdays?|Sundays?)\]\]/gi, '$1');
    // days of the week abbreviated. Leave out 'Sun' as potentially valid link to the Sun. Leave out 'SAT' in upper case as potential link to 'Scholastic achievement/aptitude test'.
txt.value=txt.value.replace(/\[\[(Mon|Tue|Tues|Wed|Thu|Thur|Thurs|Fri)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[(Sat)\]\]/g, '$1');
txt.value=txt.value.replace(/\[\[Mondays?\|(Mondays?|Mon)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[Tuesdays?\|(Tuesdays?|Tues?)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[Wednesdays?\|(Wednesdays?|Wed)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[Thursdays?\|(Thursdays?|Thur?)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[Fridays?\|(Fridays?|Fri)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[Saturdays?\|(Saturdays?|Sat)\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[Sundays?\|(Sundays?|Sun)\]\]/gi, '$1');
 
    //4 digit years piped into 2
txt.value=txt.value.replace(/\[\[\d{1,4}\|(\d{1,2})\]\]/gi, '$1');
 
}
 
 
function run_dates() {
    var txt = document.editform.wpTextbox1;
    dates();
 
    // Add a tag to the summary box
    var txt = document.editform.wpSummary;
    var summary = "Dates";
	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()
}
$(function () {
    if(document.forms.editform) {
        addLink('p-cactions', 'javascript:run_dates()', 'dates', '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;
    var summary = "Format per [[wp:mosnum]]; units and/or dates using this [[User:MJCdetroit/monobook.js|Script]]";
	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()
}
$(function () {
    if(document.forms.editform) {
        addLink('p-cactions', 'javascript:run_formatgeneral()', 'Units', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
    }
});
 
function combined() {
    var txt = document.editform.wpTextbox1;
    formatgeneral();
    dates();
 
    // Add a tag to the summary box
    var txt = document.editform.wpSummary;
    var summary = "Format per [[WP:MOSNUM]]; units and/or dates using this [[User:MJCdetroit/monobook.js|Script]]";
	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()
}
 
$(function () {
    if(document.forms.editform) {
        addLink('p-cactions', 'javascript:combined()', 'combined', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
    }
});

// Script from [[User:ais523/editcount.js]]
document.write('<script type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=User:ais523/editcount.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
var c;
 
var vLetters=new Array('a--|ā','A--|Ā','u--|ū','U--|Ū','i--|ī','I--|Ī','r..|ṛ','l..|ḷ','L..|Ḷ','m..|ṃ','M..|Ṃ','h..|ḥ','H..|Ḥ',"S''|Ś","s''|ś",'s..|ṣ','S..|Ṣ','n..|ṇ','N..|Ṇ','n~~|ñ','N~~|Ñ','t..|ṭ','T..|Ṭ','d..|ḍ','D..|Ḍ','r.-|ṝ','R.-|Ṝ','L.-|Ḹ','l.-|ḹ');
var sLetters2='';
var mapLetters=[]; //a-- -> ā
var mapLetters2=[]; //ā -> a
for (c=0; c<vLetters.length; c++) { 
    var vLine=vLetters[c].split('|');
    if (sLetters2 != '') { sLetters2=sLetters2+'|'; }
    sLetters2=sLetters2+vLine[1];
    mapLetters[vLine[0]]=vLine[1];
    mapLetters2[vLine[1]]=vLine[0].substr(0,1);
    }
var rxLetters2=new RegExp('('+sLetters2+')', "ig");
 
function remove_diacritics(str) {
str = str.replace(rxLetters2, function ($0, $1) { if (mapLetters2[$0]) { return mapLetters2[$0]; } else { return $0; } } );
return str;
}
 
function extract_last_word(str) {
var c;
var ch;
var word="";
for (c=str.length-1; c>=0; c--) {
   ch=str.substr(c,1);
   if ((ch>='a' && ch<='z') || (ch>='A' && ch<='Z') || (mapLetters2[ch]!=undefined)) { word=ch+word; } else { break; }
   }
return new Array(str.substr(0,str.length-word.length), word);
}
 
function preserve_case(str,model) {
if (remove_diacritics(str.toLowerCase()) != remove_diacritics(model.toLowerCase())) { return str; }
var c;
var str2="";
for (c=0; c<str.length; c++) {
   if (model.substr(c,1).toLowerCase()==model.substr(c,1)) {
      //model is lower case
      str2=str2+str.substr(c,1).toLowerCase();
      }
   else {
      //model is upper case
      str2=str2+str.substr(c,1).toUpperCase();
      }
   }
return str2;
}
 
function w(str) {
var vStr=str.split(',');
var c;
var vLine=[];
for(c=0; c<vStr.length; c++) {
    vLine[0]=remove_diacritics(vStr[c]);
    vLine[1]=vStr[c];
    if (vLine[0].length<3) { continue; }
    mapWords[vLine[0]]=vLine[1];
    }
}
 
var mapWords=[];
w('śiva,brahmā,parameśvara,sadāśiva,mālinīvijaya,mudrā,dvādaśānta,prāṇa,viṣṇu,parāparā,vidyā,aparā,īśvara,kalā,mālinī,pāda,mātṛkā,yoginī,maheśvara,nāda,apāna,navātman,kuṇdalinī,svāhā,gaṇeśa,suṣumnā,rauravāgama,mātṛsadbhāva,śrīkaṇṭha,bhāvanā,vāmā,ratiśekhara,pīṭha,kālāgni,siddhānta,hrīm,sādhaka,śambhunātha,vīrabhadra,samanā,rāhu,mahādeva,kriyāpāda,śakti,viṣṇuiti,sāmkhya,vidyāpāda,vidyeśvara,puryaṣṭaka,māyico,kṣemarāja,anāśrita,tuṭi,sambhunātha,kālī,bhārata,vauṣaṭ,ratnamālātantra,īśāna,unmanā,piśāca,vaiśeṣika');
w('māyica,kallaṭa,brahmavidyā,ātman,vāsanā,trikasāra,pramā,nāga,jyeṣṭhā,ghaṭikā,aṭṭahāsa,nyāya,kuṇda,vīrāvalītantra,vāma,tantrasadbhāva,sivatanuśāstra,raudrī,piṇda,paśupati,hāṭaka,dāmara,dīkṣā,caṣaka,bṛhaspati,śākta,āsana,varuṇa,somānanda,sadyojāta,vyāpinī,vapāna,upādhi,tatpuruṣa,tathā,sārṇkhya,sādhya,sarasvatī,ratnamālā,purāṇa,prakṛti,piṇdanātha,niścaya,mālini,macchandanātha,lokāloka,kāmikāgama,kriyā,iśvara,bhīma,adhikāra,śabda,sāyujya,sālokya,suśiva,pātāla,mahākāla,ekavīra,devyāyāmala,brāhmī,śrāddha');
w('ānanda,vīrya,viṣṇuita,umāpati,sāṃkhya,svāyambhuvāgama,samādhi,samskāra,prayāga,pratibhā,pibanī,nādānta,mālinl,mādhavakula,kāmya,kuṣmāṇda,kuṇdagolaka,kumārikā,kiraṇāgama,kiraṇatantra,jvālinī,hazā,chummā,bhadrakālī,arthavāda,aghorā,āśvayuja,śāmbhava,vāyu,sāmīpya,nirṛti,kārttika,kāla,aghorī,āśrama,āṇava,śruta,śivatanuśāstra,ādhāra,yamunā,vīthī,vyāpin,viṣa,vitastā,vimarśa,vidyādhara,varṇa,uccāra,trikasadbhāva,tattvaprakāśa,sṛṣṭi,sukṣma,smṛti,samvitprakāśa,samsāra,sabdarāśi,rākṣasa,pītaa,prāk,praṇava,orsū');
w('niṣkala,mīmāṃsā,mālinlvijaya,manonmanī,kṛṣṇa,kāli,kumārila,kularatnamālā,koṭi,khagendranātha,iśāna,hrīh,guṇa,guruṇā,dhāraṇā,dakṣa,chāgāsya,camatkāra,bhūtirāja,bhīrava,anusamdhāna,ananteśvara,amaranātha,ahamkāra,śākinī,vaiṣṇavī,sāmānya,sthāṇu,srīkaṇṭha,puṣkara,prajāpati,paśu,mārgaśīrṣa,kālarātri,kumāra,kalpanā,jambūdvīpa,himālaya,gandhamādana,dhyāna,caṇda,śrīm,āpyāyana,śivaiti,ādhāraśakti,ṛcchati,śabdarāśi,yakṣa,vāmadeva,vāgīśvarī,vyāsa,vyavahāra,viṣṇuite,viśvam,viṣuvat,vedānta,vatsalikā,utkrānti,upaśobhā');
w('sārupya,surā,sarvavīratantra,sadbhāva,raktā,pāśupata,pāpam,puruṣṭuta,pratyāhāra,pratiṣṭhā,prasamkhyāna,pramāṇastotra,piṇdastha,nyāsa,niśācāratantra,nirācāra,māyā,māyici,māgha,meṣāsya,lakṣmī,lakṣmaṇagupta,kālāgnirudra,kālottaratantra,kālakarṣiṇī,krodheśa,kaṭi,karṇikā,karṇa,kanyā,kalanā,jayā,jayantī,janmādhāra,jambudvīpa,indhikā,icchā,hālā,hṛdaya,hemakuṭa,gṛha,ghurṇi,ghaṭamudrā,ghaṭa,ekaśiva,dhāman,dhenumudrā,dharmādharma,dharmaśiva,caryā,bhāvanā,bhāva,aśvinī,anātha,amarāvatī,akṛta,aindrī,aghoraśiva');
w('adhiṣṭheya,abhiṣikta,abhiṣeka,āṣādha,ānandaśāstra,ādiyāga,vṛddhi,vyomavyāpin,vetāla,uttaraphalgunī,sikhaṇdin,rājavarta,mīnanātha,mālyavat,mahātejas,kṛta,kulakuṇdalinī,ketumāla,kaṇāda,dhṛti,cāmuṇdā,cinmātra,chagalāṇda,bhadrāśva,amṛta,śālagrāma,āvāhana,āveśa,āvaraṇa,ātmā,śrāvaṇa,śrlkaṇṭha,śrinagar,śrikaṇṭha,śodhayet,āmrātakeśvara,āmalasāraka,āmalaka,śloka,īkṣaṇeśāna,śikhā,śikha,āgamica,āditya,ācārya,śambhu,śaiva,śabdarāśer,yānti,yāmyā,yāmala,yojanā,yojanikā,yogasamcāra,yogadhāriṇi,yataḥ,vṛṣabha,vṛtti');
w('vātman,vīreśa,vāmasrotas,vāmanadatta,vāgiśvarī,vācaspatimiśra,vyāpāra,vyāpti,vyāna,viṣāvarta,viṣṇuloka,viśvedeva,vināyaka,vimalā,vilāpana,vidyāpati,vidyāmūrti,vidyādhipati,vidyādhipa,vidyeśa,vibhāga,vedyatā,vaṭuka,varāha,varaṇā,varadevanātha,vajrapāṇi,vaiśeṣikasutra,vairāgya,uṣman,upapīṭha,upaniṣad,udāna,uddeśah,tādana,tuṣakambuka,triśulinī,tripiṇda,tenānande,tatrāpi,tasmāt,tanmātra,tadā,sāradā,sāmsiddhika,sākṣād,sākinī,svātantryāt,svātantrya,svatantreśa,sthāpana,sthāna,sthūla,sthuleśvara,srṣṭi,srikaṇṭha');
w('sravaṇa,spandakārikā,sivastotrāvalī,sitāmśumauli,siddhasādhani,sautrāmaṇī,sarṇvarta,sarvātmanā,sarvavidyādhipa,sandhyā,samāveśa,samtāna,samnidhāna,samhitā,saṃghaṭṭa,samcāra,sadāśive,rāvaṇa,rāpam,rāmakaṇṭha,rājapurī,rāga,rupeṇa,rudrāṇī,pāśātmakah,pāśupatasutra,pāṇi,pārvatī,pārameśvara,prāṇe,prāṇana,prāṇacāra,prātibha,prāptam,prakaṭatā,pradhāna,pitṛ,phālguna,paṭṭilla,parāmarśa,nādī,nādd,niśāṭanatantra,niṣadha,nivṛttih,nivṛtti,nirodhikā,nimeṣa,nihśvāsaśāsana,nihśvāsatantra,nidrā,nidhīśvara,narasiṃhagupta');
w('nairṛta,māyāpuram,māyiche,mātṛ,mātrsadbhāva,mṛtpiṇda,mūrti,māmsa,mākoṭa,māheśī,mṛgendrāgama,mwdrā,mulādhāra,mukuṭatantra,meṣanātha,marukośa,marudeśa,manusmṛti,mahāpreta,mahāphalam,mahādevi,mahābhāṣya,lokapāla,lalitāditya,lakṣmaṇa,lakṣaṇa,kāṭhinya,kāṇda,kṣurikā,kṣobha,kāmikatantra,kāmatattva,kāmarupa,kāll,kālikā,kālasamkarṣiṇī,kṣapaṇa,kṣamasva,kṣam,kuṇdalī,kurukṣetra,kumbhārikā,kuleśvarī,kuleśvari,kuleśvara,kubjikāmata,kheṭapāla,kheṭaka,karṣati,karaṇa,kalādhya,kalyāṇa,kalavikaraṇī,kadalī,jyeṣṭha,harṇsa');
w('guṇd,ghorā,ghoratarā,ghorarūpe,ghaṭṭana,gaṇe,gaṇdikā,gamaśāstra,gahaneśa,erudikā,dīpta,dīnāra,dānava,dīkṣottara,dvāra,dvīpa,dvadaśānta,durgā,dombī,dhāl,dhyānd,dharā,dhaniṣṭhā,daṇdapāṇi,darśana,dakṣiṇāvarta,cāmuṇdī,catuṣkala,caryāpāda,carvaṇā,candraśarman,bīja,bṛhaduttara,bādha,brāhmaṇa,brahmaśiras,brahmayāmala,bhīṣma,bhāvayati,bhāvah,bhutvā,bhutirāja,bhogālasa,bhaṭṭārikā,bhavabhūti,balavikaraṇī,bahukleśa,avadhāna,avabhāsa,asāv,arthakriyā,ardhanārīśvara,anāśritaśiva,anāyāsam,anārambham,anudhyā,amṛtabīja');
w('amśa,akṣara,agnīṣoma,agnīdhra,aghoreśa,adhyavasāya,adhiṣṭhitah,adhiṣṭhita,abhiṣecana,śivah,ācamana,vārāhī,vārendra,vikāritvād,vaṣaṭ,vartamāno,unmeṣa,ujjayinī,uddhāra,tiṣya,sāraśāstra,sāka,suddhavatī,sthaṇdila,samyamanī,sabīja,rauravavārttika,puṣṭi,purvaphalgunī,prāṇanā,pramāṇa,padmamudrā,nārada,nīla,māyottīrṇe,mādhava,mantreśvara,mantramaheśvara,manovatī,lakṣmi,lakulīśa,kāruka,kānti,kṣepa,kauśeya,karmasāmya,kailāsa,jāti,ilāvṛta,ilāvrta,hiraṇmaya,grāhya,dviraṇda,bādham,bhāratavarṣa,bhārabhuti,bhuvaneśa');
w('bhaṭṭa,bhairavī,asidhārā,ambikā,agniṣṭoma,śṛṇu,īśānāya,āśāntam,īśānaśiva,īśānamurdhāya,śāṇdilya,āṣādhin,āṣādhaj,śāstrita,śāstre,śāsanā,āśrayaparāvṛtti,āśraya,āśramasthāna,śārada,śāntātītā,śāntyatīta,śāntika,śāmyaty,śāmbhavopāya,śāmbhavd,śūlarṇ,śākuntalā,śāktarṇ,śāktam,śākinl,śīghra,śūdra,śīdhu,śīdau,āśayam,īṣat,āyuśā,āyudha,āyatanādz,āyatana,āxme,āvṛtitvena,āvāpa,āvartana,āvaha,śuṣkatarka,śuddhih,śubhāśubhāpekṣī,śubhāśubhopekṣī,ītva,ītsva,ītsv,ītsa,ātme,ātmaseka,ātmanā,ātmanirvṛta,ātmani,ātmamūrtaye');
w('ātmaga,ātmabhāvanā,īsva,ṣsono,ḥsgg,āsanavidhi,āsamudratah,āsakti,śrīśaila,śrāvaṇī,śrāvaṇaj,śrīparāmastake,śrīparā,śrīnāthapāda,śrīnātha,śrīnagare,śrīkaṇṭhin,śrīkaṇṭhanātha,āryā,āryapāda,śruti,śrutavidhih,śriśaila,śrinātha,ūrdhvagā,īraṇa,ārabhya,ārabdhakārya,ṣodhā,śodhya,ṣodhaiva,ṣodaśin,śobhā,śobhae,āntaratva,āntara,ānandatantra,ānandanātha,ānandamekhalā,āmṛśya,āmrṣṭa,āmrātikeśa,śmryum,āmarśana,āmardaka,āmarda,āmalakī,ślvaite,ślva,ākṛṣta,ākāśa,ākṛti,ākāra,ākrāmya,ākramaṇa,ākarṣa,śiṣṭa,śiṣyebhyah,śiṣya');
w('śivāya,śivāveśe,śivāvcśoper,śivātmako,śivātmakah,śivānanda,śivāgni,śivābhimānitā,śivopādhyāya,śivaśakti,śivatām,śivatā,śivatattvam,śivastotrāvalī,śivasadbhāva,īivara,śivapurāṇa,śivamurtio,śivaloka,śivadharmin,śivabindutaya,śivabhakti,śirase,śiras,śikhāgre,śikhoda,śikheśa,śihhā,āgneyīm,āgamam,śeṣavṛtti,śeṣa,īetj,ādīyate,ādāna,ādiyāgavuoi,ādiguru,ādhārakārikā,ādhyātmika,ādhipatyd,ādhipatya,ādheya,ādarśa,ādaeya,śatyabodhi,śarīram,śarva,śarabilla,śaktyuccārastha,śaktitā,śaktitattvam,śaktisamāveśa,śaktimaduccārād');
w('śaktihīna,śaktigarbha,śakticakram,śakra,śabda-,śabarabhāṣya,yāti,yāska,yāraata,yāmale,yājya,yāga,yugmatām,yugmarāpā,yuddhāra,yonibīja,yogīśī,yogīśvara,yogānanda,yogāmṛtam,yogācāra,yogābhiprāyatah,yogyatā,yoginīsono,yoginībhu,yogeśī,yogeśvarī,yogeśvaridatta,yogeśi,yogaśāstra,yogavidām,yogamudrā,yogacāratantra,yayā,yathāvastu,yapāna,yamakāli,yakṣī,wpādaz,wdāna,vīṇāsāra-,vāśvayujī,vāyugama,vāyor,vāyave,vāyau,vāyanti,vāvabhasate,vṛttibhāsane,vātsyāyana,vīthi,vītaī,vāsudeva,vāstuyāga,vārāṇasī,vīrāvalihṛdaya');
w('vīryd,vāruṇa,vīranāyaka,vīrabhairava,vāraa,vāpi,vīnā,vāmācārakrameṇa,vāmācāra,vāmeśvarī,vāmeśa,vāmaśāsana,vāmanātha,vāmanaka,vāmana,vāmadevī,vāmadevaguhyāya,vākya,vājapeya,vāgīśī,vāgīśvari,vāgiśvari,vādavāgni,vādarṇ,vācyd,vācyadaśā,vyāpīśa,vyāpārd,vyāptṛtā,vyāpinīe,vyānd,vyomarūpa,vyaūjana,vyavaaāra,vunmanā,viṣāvarte,viṣṇupurāṇa,viśvātmā,viśvāmitra,viśvākalanā,viśveśa,viśvavṛttayah,viśvatarpiṇī,viśvarupiṇī,viśvakāryāya,viśvakarman,viśvabodhi,viśva,viṣuvato,viṣuva,viśtcṣa,viśrāntim,viśrānti,viśrāntah');
w('viśodhayet,viṣnel,viśliṣta,viṣkambha,viśeṣo,viśeṣaś,viśeseṇa,viṣaya,viṣataltva,vivicyamānd,vitastāviṣṇu,visṛjya,visamvāda,virajā,vimśa,vimarśaśakti,vimalīkaraṇa,vimaleśvara,vimalatāraka,vimalaprabhā,vikṛtānanā,vikāsa,vikārd,vikāra,vijjambā,vighaṭate,vidyāmurti,vidvāranya,vidveṣaṇa,vidhiś,vidhivākya,vicārayet,vicāra,vicitranātha,vibhīṣaṇa,vibhāvayet,vibhāvayat,vibhītaka,vibhā,vibhvī,veṣṭayet,vettṛ,vedāntica,vedī,vedyasattā,vedreṃo,veditṛ,vedhaś,vcdikā,vaśīkaraṇa,vauṣat,vatjṣaṭ,vatirātra,vastupiṇda');
w('vastubhāsane,vastrāpada,varāhamihira,varāhagupta,varṇasamvid,varṇasamkhyā,varṣa,varuṇā,varuṇatantra,vartamānatah,varadamudrā,vapuṣmat,vamanī,vaktaṣṭi,vakradṛṣṭayah,vajriṇe,vajrasuā,vajrasucī,vajradharāya,vaiśākha,vaiṣṇavf,vaiṣṇava,vaiśya,vaiparītya,vailomyāt,vaicitryābhāsd,vaibhāṣika,vaibhrāja,vagniṣṭoma,vadhyamokṣe,vabhāvadī,uupakaṇṭha,uttarāṣādha,uttaraṣaṭka,utprekṣā,utpattisthānam,utpalavaiṣṇava,utkarṣa,urmiṇz,urdhvakuṇdalim,upāyatā,upāyah,upāya,upāsate,upāgatah,upādānd,upodghāṭa,upeyānyatvāt,upaśobha');
w('upavījitah,upakārasantāna,upajīvitah,upadvāra,upadiṣṭe,upacāra,unmārjana,unmīlint,unmāda,unmiṣita,unmiṣat,umāpuram,uktvā,ugreśa,udāravīrya,udāra,uddiyāna,uddhṛti,uddeśa,udbubhuṣu,udbhaṭa,udayapradhānam,uccāṭana,uccāraṇa,ucchuṣma,tūṣṇīmbhūta,tīrthayātrā,tāratamyatah,tāratamya,tṛpti,tāmravarṇa,tālapāṭha,tīkā,tādṛśa,tādrśam,tādrupyakrameṇa,tvām,tuṣṭi,tuṣa,trāṇa,troṇana,triśula,triśiromata,tristriguṇam,tripurāntaka,trimśa,trikuṭa,trikaśāsana,trikahṛdaya,triguṇī,tridhā,tridaśa,tribhedatā,tretāyuga,teṣu');
w('tejovatī,tejomālini,taṣya,tattvānīti,tattvarakṣaṇa,tattvapāragay,tatspandā,tatsamkhyāyām,tatromāyāh,tatprasādato,tatparāt,tataś,tataā,tatatvāt,tasyām,tarpayitvā,tanṭra,tantrāloka,tantrasāra,tannimittarṇ,tanmayībhāvita,tanmayabhāvatas,tamopahā,takṣaka,tadāpatti,tadyogāt,tadanyatvāt,sṛṣṭis,sṛṣṭikālī,sṛṣṭikrameṇa,sṛṣza,sāṃkhva,sāṇdilya,sāyujyatah,sāvitrikā,sāttvika,sūtra,sīthara,sārvātmya,sārtham,sāmānyātmaka,sāmānyaspanda,sāmānyarūpatā,sāmānyaper,sāmya,sāmuhya,sāmudāyika,sāmkalpika,sāmastyena,sīmantah');
w('sālmali,sāligrāma,sākṣāt,sākṣān,sūkṣmā,sāhṣāt,sīghra,sādākhya,sādhyāpekṣayā,sādhanaiva,sādhana,sādhakd,sācāra,szddhikāmasya,syād,swṣi,svāyambhuva,svātmanah,svātman,svātantryāttām,svātantryāttam,svātantryeṇa,svātantryaśaktī,svaśaktyā,svayarṇprathana,svayambhūṣṇu,svavṛtti,svaviśeṣa,svatī,svatantraś,svasvātantryeṇa,svasadṛggaṇe,svarṇākṣaka,svargakāmo,svapratiṣṭhāne,svaparāmarśa,svacittavāsana,suṣira,sutraṇayāpi,susūkṣmā,susukṣmikā,sureśvarī,supārśva,suprabhā,suprabhedāgama,sumāyuktaih,sukṣmā,sukṣmarupa');
w('sukṣmagṛha,suhṛṣṭa,sudīpta,stīkṣma,sthitināśakālī,sthilā,sthaṇdilādi,sthaleśvara,srīpīṭha,srīnātha,srīkaṇṭhanātha,srstikālī,srmātha,srlkaṇṭha,sriśrikaṇṭhī,sphāṭika,sphuṭopāyam,sphuṭasya,sphuṭa,sphuraṇa,sphoṭa,spandapradīpikā,spandamānatā,sopāna,smṛtam,smṣmmnā,smartavyāh,smaraṇe,skṛk,sivedasśp,sivaśakti,sivadṛṣṭi,sirṇha,sillāl,silbuṛn,sikhaṇdīśa,siddhātantra,siddhāmata,siddhayogīśv,siddhacāraṇa,shāhā,shsūauh,sevakādih,senānī,sekoddeśa,saṃvara,saṇipuṭīkṛti,savikāro,saukṣmya,saubhāgya,sattāmātra,sattā');
w('sasakhā,sarṛwit,sarṇvittattva,sarṇvarte,sarṇrambha,sarṇpuṭīkaraṇa,sarṇkalpa,sarṇjalpa,sarṛighaṭṭana,sarṇhitā,sarṇdhāna,sarṇdhi,sarvāyeta,sarvātmana,sarvātmakam,sarvārtha,sarvācārahṛdaya,sarvamantrāṇām,sapzasatrī,sanātma,santatatvāc,samāria,samāpatti,samāna,samāhita,samūha,samādhāya,samācāra,samvṛtyuparata,samvartās,samudāya,samudrād,samsārasadma,samsārabhasma,samsuptāmarśa,samstyāna,samsparśa,sampātasamskāra,sampātahoma,sampurṇagrahaṇa,sampaśyet,samnyāsin,samkṣiptatara,samkrāma,samkarṣiṇī,samkarṣaṇa');
w('samkarṣati,samjīvani,samhāram,samhārakālī,samhārakrameṇa,samhitayā,samdhāna,sambhāvya,sambhunāfha,samayaśuddhitah,samayatyāgādi,samayadīkṣā,samanvitāh,samantāt,sakāśāi,sakti-anāsrita,sakalīkaraṇa,saiṇghaṭṭa,saivaparibhāṣā,sahṛdaya,saguṇa,sadāśivatattvam,rāviṇī,rātrikulatantra,rātrikratu,rūpebhyah,rūpam,rāmagupta,rākṣa-,rājaputra,rājagṛha,rīipastha,rṣemarāja,rādhim,rṇandalico,ruruvārttiha,rupaṇād,rundhanī,rudrāṇl,rudrāmśa,rudrāhṣa,rudraśakxi,rudraśakti,rudrasakxivaśāx,rudrasaktivaśāt,rudrakoṭi,rudra-śiva');
w('rsjjhlkṣvyūhau,rshrṣryūm,rohiṇī,rodhikā,rodhanī,roddhrī,riddivivarjitān,ravaṇa,ravarupataś,rauravavārtika,ramyabhāva,raktākṣa,raktakāli,rabhasāt,pāśātmaka,pāśupatāstra,pāśupatya,pāśupatasīitra,pāśupatarṇ,pīṭhākhye,pāśava,pīṭaa,pāśa,pātālavaktra,pṛthide,pītha,pūrṇayā,pūrṇatayā,pūrṇa,pārvika,pārthasārathi,pāribhāṣikī,pāratīyakah,pārada,pāpāntakāriṇi,pāpavimohani,pūjyā,pādmasamhitā,puṇdarika,putrakadlkṣā,purṇasya,purṇagiri,puryākārah,purvāṣādha,purvāparādikā,purvāparādikah,purvatāviṣṭa,purvahāmika,puruṣa');
w('puroditā,puriṇāma,puraṇa-,purastīra,pumskṛteh,pumskṛte,pujānāma,pujyatā,prāṇāyāma,prāṇica,prāṇaśakti,prāṇavṛttī,prāṇavahā,prāṇasamā,prāyaṇīyaś,prāyaṇīya,prāyaścitta,prāsāda,prāpya,prāpanīyah,prāmāṇyd,prākāra,prākrta,prākkarmaikam,prācetasa,pronmukhīkṛta,prokṣaṇa,priyamelāpana,preryamāṇa,preraṇā,pravāha,pravikāsa,praviceṣṭitam,praveśa,pravareśvara,pravakṣyāmi,pratīti,pratyātmakam,pratyāhārd,pratyayadīkṣā,pratiśrutka,prativāraṇī,pratisamdhāna,prathitāyām,prasīdati,prasāda,prasphuṭa,prasarṇkhyāna,prasannadhī');
w('pramātṛtā,pralayākala,prakāśate,prakāśarṇ,prakāśamānatā,prakāśam,prakāśacakra,prakriyā,prakaraṇa,prahvībhāva,pradhānam,pracaṇdadhṛt,pracaṇda,prabodhakabalāt,prabhākara,prabhaūjanas,poṣaṇaper,pmrāha,plṭha,piśāci,piṭhākhyam,piṇdita,piṇdamantra,pitṛvana,pitāmaha,paṇāyate,paṭṭikārāpā,paśwbandha,paśupāśapati,paśpaśāhnika,paśor,paścāt,pauṇdravardhana,paurṇamāsa,pauruṣa,patyaṣṭakam,parāvaha,parātrīśikā,parātrlśikā,parātrimśikā,parāmṛta,parām,parābīja,paropaniṣad,paroditā,paretāsu,paraḥ,paramārśatva,paramārthena');
w('paramārthatah,paramārthasāra,paramārkakālī,paramīkṛti,parameśl,paramaśiva,padmākṣa,padmapurāṇa,padapiṇda,omkāreśa,ojodhātu,nāsatyam,nārāyaṇakaṇṭha,nārāyaṇa,nārāyana,nāropā,nāmāni,nīlepīte,nīlarakta,nākhala,nāgadvīpa,nādāmarśa,nādikā,nādi,nābhi,nyāyasutra,nyāsah,nyunādhikyādi,nyasyā,nuttīrṇa,niśākulatantra,niṣkald,niśisarṇcāra,niścita,nityātantra,nityāt,nityā,nirīkṣaṇa,nirṇaya,nirvāpaṇa,nirvartyā,nirmṛṣṭasattvam,nirmṛṣṭam,nirmaubhāva,niravaśeṣān,nimittasaptamī,nikāya,nijātmanā,nihśvāsakārikā,nihśvāsa');
w('netratrayāya,naṣṭasmṛtih,navātmavaktrāya,navātmamūrdhāya,navātmabhairava,navayāge,nandā,namaskāra,nakṣatrāṇī,nakuleśa,naiṣa,naimiṣa,naimittikī,māziza,māyātattvam,māyāpurī,māyāpura,māyābila,māvica,mātṛṣu,mātṛsadbhāvd,mātṛnandā,mṛtyukālī,mṛtyuhantṛ,mātrā,mātrkā,mātr,māsee,māruteśvara,māruteśa,mūrtidi,mārtaṇdakāli,mārkaṇda,mūrdhan,māraṇa,mānuṣeṣv,māntrarṇ,mālinīsāra,mālinīmantra,mālinya,mūlam,mīirtimantra,māheśl,mṛgamudrā,mṛgamudra,mādhyasthya,mādhyamika,mādhurya,mumukṣu,mulasūtra,mukuṭa,muktāṇu,muktātman');
w('muktāh,muktvā,mukhyatayā,muhūrta,mudrikā,moṭaka,mokṣanātha,mocikā,mlmārnsā,mlecchadeśa,minanātha,mimārṇsā,mfgendrāgama,melāpasthāna,melāpa,mekhalā,medhātithi,maṭhikā,maṇdalikā,maṇdalico,maṇdaleśāna,maṇdaleśvara,matsyendranātha,mataśāstra,martyā,manuṣyatām,mantrārtha,mantrāh,mantravārttika,mantramahānāthe,manoyāga,malanivarhaṇam,maināka,mahāvyāpti,mahāvaha,mahāsāhasa,mahāsiddha,mahārciṣi,mahāparivaha,mahāpadma,mahālaya,mahālacchī,mahākāśa,mahākrodha,mahākośa,mahākala,mahāhāṭakeśvari,mahāhāxakeśvari');
w('mahābhārata,mahābhairava,mahābhadra,mahā,mahodayā,maheśī,mahakalakalī,mahadālaye,mahadāhvaye,mahabhārata,madhyāpekṣayā,madhyadeśa,maaā,līlākāra,lākula,lāhulā,lolībhuta,lolikā,lokāyata,lokavyavahāra,lokadharmiṇī,layāvasthā,layākalāt,layaśiva,layamudrā,laukikī,lakṣyate,lakṣya,lakṣmītantra,lakṣmitantra,lakṣaṇd,lakulīśvara,lakuleśa,lajnānaśakti,kṛśā,kāśyapa,kṣīrikā,kṣīraka,kāśikā,kṛśa,kāyapīṭha,kṣvīm,kṣubhyati,kṛtānta,kātakuṭa,kṛt-,kāryāya,kūrmanātha,kūrmanatha,kārkoṭa,kāraṇāgama,kāraṇeśvara,kāraṇeśa');
w('kṣrah,kṣom,kṣobhiṇī,kṣobhayati,kṣobhaka,kāntatā,kāmiha,kāmanātha,kālāvekṣā,kālāntakā,kālānala,kālīmukhatantra,kṣlām,kālīkula,kālpanika,kāllkulatantra,kālikulatantra,kālidāsa,kāleśa,kālasaṃkarṣiṇl,kālasamkarṣiṇi,kālarudra,kālamāhātmya,kālakarṣiṇl,kālakarsiṇī,kālakarsini,kālajaṃharṣiṇī,kālah,kālagrāsa,kṣetrapāla,kṣetra,kṣemeśa,kṣemendra,kṣema,kṛcchra,kṣaṇa,kṣayāntastha,kṣayānta,kṣamyatām,kuṇdalirii,kuṇdalinīsi,kuṇdalinl,kuryāt,kuntī,kumārī,kulūtā,kulūta,kulāta,kulādri,kulutā,kullālambā,kulaputtalikā');
w('kulamūla,kudyākeśī,kuberāya,krśa,kroṣṭukī,krośamātreṇa,krodheśvara,kriyāvaicitrya,kriyāpada,kramāt,kramān,kramaśas,kramasadbhāva,koṇa,klīm,kleśa,kiraṇa,kimpuruṣa,khecarīmudrā,khecarī,khaṇdd,kerīkuntala,kedāra,kaṇṭhyoṣṭhya,kaṇṭhyosṭhya,kaṇṭhyauṣṭhya,kaṇṭho,kaṇṭha,kaśeru,kavacāya,kaumārī,kaumāri,kaumāra,kaulinī,katharṇ,karīcuka,kartṛtvd,karpāsa,karaṇd,karaṇam,kapāuśa,kapāla,kampamāna,kamalaśila,kalāvehṣā,kalām,kallaṭanātha,kalhaṇa,kalanāt,kaikavīreśa,jūānapravāha,jūāna,jīvita,jīvena,jīvarṇ,jīvanmukta');
w('jīvana,jīva,jātyāyus,jātakarman,jānu,jīmūta,jṛmbhita,jūapti,jyotsnāvatī,jyotsnā,jyotiṣmat,jyotiṣkaśikhara,jyotiṣka,jyesthā,jatī,jatruśabdenātra,janmasthāna,jandhamaṇdala,jananāśaka,jambūdvipa,jalpeśa,jadābhāsa,iśānaf,iṣyamāṇa,iśvaratattvam,iśgdp,itarṇ,ipāśasutrd,indū,indrāya,indrajāla,indradvīpa,indhananiveśana,ilprānae,illāīambā,illātambā,ihāpi,icchāśaktie,icchāyā,icchāmi,hāzaharṣiṇt,hūme,hāma,hālāhalarudra,hīlanam,hāla,hāhārāvā,hṣetrapati,hṛdayāya,hṛdayādy,hṛdayād,hṛdayahārin,hwśa,huṇdalinī,hurṇ');
w('humphaṭ,hsvyūm,hrdādāv,hkṣjah,hiraṇyapāda,hiraṇyapura,himālayana,hidā,hevaztbhāva,hetwvāda,hetutadvattayā,haṭhāt,haṭhatah,haṭakeśvara,haṭaka,hayānanā,hayagrīva,harīndu,halā,gāṇeśa,gāṇapatya,gāndharva,gṛhastha,gāhanika,gṛh-,gurudarśand,guhāyām,guhā,guhyāṣṭakam,gudikānātha,grāsa,grāmyadharma,grahaṇa,gokarṇaka,gokarṇa,ghṛteśa,ghūrṇi,ghurṇita,ghurmā,ghoṣaṇī,ghoratarebhyaś,ghoramukhī,ghaṭa-mudrā,ghanatā,gaṇesāya,gaṇdakī,gaurī,gargikā,garbhāvaraṇa,ganeśa,gandhavatī,gambhīrā,gamaśāsana,gahaneśvara,gadā,eruṇā');
w('elāpurī,elāpura,ekāgra,ekībhāva,ekavīraka,ekavirā,ekatattvāntā,edābhī,dṛśyam,dṛśya,dātṛ,dīrghā,dārdhya,dīpikā,dīpakd,dāne,dānapati,dāmarayāga,dīkṣādāv,dīkṣohtam,dīhṣāpaṭala,dīhsottara,dvāsaśānta,dvāraśobhā,dvāravṛtti,dvāravatī,dvārasandhih,dvādaśaiva,dvaravṛtti,dutī,duraṇda,drṣṭi,drāvayanti,droṇa,draṣṭṛtvd,dravyāin,dravyatvāc,diṛnora,diksamuddeśa,dhīvara,dhātupāṭha,dhātu,dhārya,dhārikā,dhāraṇīm,dhūmra,dhupaghaṇṭā,dhruvā,dhruveśa,dhavatā,dharāyai,dharmanātha,dharmakīrti,deśādhvan,deśvpadeśa,devīkoṭṭa');
w('devīhoṭṭa,devyabhidhā,deveśa,deljambudvīpa,deheśvara,deheśa,dehanīlādīnām,daśāyām,daśeśāna,daśeśa,daśa,darśa,damanī,damaneśa,dakṣiṇapīṭha,daiśika,cāturmāsya,cātra,cāprakāśyam,cāndrāyaṇa,cākurvan,cābhādhitah,cābh,codanāstra,codanā,cittaviśrānti,cittacamatkṛti,citranātha,citrabhānu,cinnātha,cinmātre,cidātmatā,cidaṇu,chāndogya,chummikā,chommā,chagalāṇdaka,cetasā,caṇdāmśu,caṇdikā,catuṣpatha,catuṣkikā,caryākulatantra,cargikā,camaikāra,cakṣuṣah,cakriṇyādyāś,cakrihādyāś,cakravāṭa,cakrasaṇwara,caitrī,bṛāu');
w('bāhya,bṛhatsukha,bṛhatsamhitā,buddhitā,buddhasthāna,bubhukṣu,brāhmā,brāhma,brahmaṇeśa,brahmacārin,bodhāī,bodhaś,biṇdu,bilhaṇa,bhāvyavastu,bhāvd,bhāvavikāra,bhāvatah,bhāvanāmaya,bhāvanābhāvita,bhāvanayā,bhāvam,bhāskara,bhāsate,bhāsanopāya,bhārgava,bhāni,bhṛnel,bhīmeśvara,bhīmamudrā,bhādrapada,bhutādī,bhutiśakti,bhuteśa,bhrātāpi,bhramaṇavedhena,bhogāvasthā,bhogeṣu,bhogaśiva,bhlṣaṇa,bhiṣma,bhinnā,bhikṣāsthāna,bhedābheda,bhedanakrameṇa,bhedadaśāyām,bhaṭṭanātha,bhavābhava,bhaveśāna,bhavadoṣa,bhauteśa,bhartāpi');
w('bhairavākṛteh,bhairavākṛte,bhairavāgama,bhairavagāme,bhadrā,bhadrakāli,bazāt,bandimokṣe,bandhuṣu,balātkārāt,balāt,balāhaka,balādhyakṣa,balavattādhāna,balapramathinī,balapramathanī,badarī,badarikāśrama,aṣṭau,aīyate,aśvin,aśvattha,aśvamedha,aṇuplava,aśoka,aśnute,aṇiman,ayākalāh,ayugmarupā,ayatnāt,avāstavatva,aviśeṣa,avimukteśa,avibhāga,avatāra,avaszwtā,avasthā,avairāgyd,avaguṇṭhana,avagamātmakam,aupāyikamo,audāsīnya,atyantābhāva,atyagniṣṭoma,atiśayena,atimārga,athavā,asādhya,asyāh,astrāya,astamitāparam');
w('astamitā,asphuṭasya,aruṇodaka,arthanātha,arthakāritva,ardhapīṭha,ardhaplṭha,ardhanāri,ardhajaratīya,apānanā,aptoryāma,aprathā,apavāda,aparāz,apararṇ,aparamekhalā,apamārga,apabhramśa,anāśritas,anāśraya,anārabdhakārya,anāmaka,anāma,anākuld,anākhya,anāhatadhvani,anāhata,anādibodha,anācchādita,anyopāya,anyaś,anyataraś,anyaiśper,anxarāxme,anuvāda,anuttaranātha,anusarṇdhānavat,anusarṇdhi,anupāyam,anunmudritākāra,anugṛh-,anugṛh,antyeṣṭi,antaścarantīm,antarātman,antaravedinīm,antahkṛti,anityeṣu,anirdeśya');
w('aniccā,anarṇśa,anantamekhalā,anantakārikā,anaiśvaryam,amāvāsyā,amṛtā,amṛte,amareśa,amanuṣyatārn,akṛtātman,akāma,akṣa,akhaṇditam,akhaṇdamaṇdala,akamkāra,ajitāgama,ajeśa,ajaramekhalā,aiṣṭika,aiśvaryam,aiśvarya,aiśvaro,aikātmyena,ahṛtrima,ahnī,ahaṇ,ahamparāmarśa,agrakoṭau,agrahāyaṇī,agnyādheya,agniṣomasanālma,agnisnāna,agmṣoma,afaḥ,adṛṣṭāmśa,adhyātma,adhyāsa,adhyāropa,adhyavasāyinī,adhvarnaṇlam,adhvamaṇdatam,adhiṣṭhātṛ,adhiṣṭhātf,adhiṣṭhāna,adhiṣṭhiteh,adhiṣlhita,adhivāsa,adhikārāvasthā,adhikārd,adhikāraśiva');
w('adhikriyā,adhastāt,adavī,abhāvd,abhīpsitāyām,abhyāsa,abhyukṣaṇa,abhidhā,abhayamudrā,śaivism,vivaraṇa,parā-trīśikā,kaśmir,pratyabhijñā,aṇḍa,ahaṃkāra,prakāśa,pṛithvī,jñāna,kañcukas,śāstra,pāyu,kuṇḍalinī,śuddha,śaktipāt,spanda-kārikās,parāvāk,pāni,mahābhūtas,kārikā,vaikharī,stavacintāmaṇi,pratyabhijña,śiva-śakti,tanmātras,sparśa,paramārtasra,madhyamā,kārma,kañcuka,antaḥkaraṇa,ambā,śivopaniṣad,śivasūtra,āgama,vimarśinī,vijñāna,upāyaḥ,rūpa,pṛthvī,paśiantī,nāṭyaśāstra,māyīya,kṣemaraja,jñānendriyas,jnānam');
w('dūtī,bandhaḥ,ahaṃ,abhinavabhāratī,śāktopāya,āṇavopāya,āṇavamala,śuddha-vidyā,śrīpūrvaśāstra,śrotra,śrota,śrikanthanath,ānava,ānandavardhana,ākāśic,śivarahasyagama,śivadṛṣṭi,śiddhānta,āgamas,ābhāsana,ābhāsa,ṣaḍādhvān,śañkara,śambhunatha,śaktipāta,śakticalana,śaivists,yoginībhū,yoginī-vaktra,yogeśvar,vākyapadīya,vyāpakatva,viśuddha,vimarśana,vimalakalā,vijñānabhairava,vijñana,vatasikā,vaiṣṇavas,upāyas,ullāsa,tīvra,triśūlābija,sūtras,sāmarasya,suṣupti,sphurattā,saṃskāras,saṃskāra,saṃkoca,saṃhāra,saṃhara');
w('sarvakartṛtva,sarvajñatva,saivāgama,rāmadeva,rudrayāmala,rasanā,pṛthivi,pāta,pūrṇatva,pūrvatantra,pūrvapañcikā,puryaṣtaka,prakāśa-vimarśa,paśyanti,parātrika,parāpara,parā-śakti,parā-prāvesikā,parā-aparā,parā,paramārthacarcā,nātha,mṛgendra,mulā,mokṣa,maṇḍalam,matravīrya,mahābhūta,mahābhutā,madhurāja,lakṣmasṇagupta,laghvī,kārikās,kāra,kailaśa,jāgrat,jñānārṇava,jñānendriya,jñānana,ichhā,hṛdayam,heart-bīja,haridāsa,ghrāṇa,ghaṭakarpara,dṛṣṭi,dhvanyāloka,cit-ānanda,cidānanda,cakṣu,bījāvasthapāna,brahmāṇḍa');
w('bhedābhedopāya,bhaṭṭācāryya,bhartṛhari,bhagavadgītā,aśvini,aśuddha-vidyā,avidyā,asphuṭa,anuttarāṣṭikā,anupāya,ahaṃkara');
 
function keyHandler1(event)
{
if (event.keyCode == 32) {
   var tb = document.editform.wpTextbox1; 
   var text = tb.value; //get the text from the textarea
   var sel1 = tb.selectionStart; //memorize selection
   var sel2 = tb.selectionEnd;
   var scroll = tb.scrollTop; //memorize scroll position
 
   var text1=text.substring(0,sel1); //text form beginning to cursor
   var text2=text.substring(sel1); //text form cursor to the end
 
   var vText1=extract_last_word(text1); // a list containing the last word and the text preceding it
   var vt1=vText1[1].toLowerCase();
   if (mapWords[vt1]!=undefined) { vText1[1]=preserve_case(mapWords[vt1],vText1[1]); } //map the word translation, using substr instead of regex for better speed, especially with large dictionaries
   text1=vText1[0]+vText1[1];
 
   text = text1 + text2;
 
   if (tb.value != text) { 
      tb.value = text; 
      tb.setSelectionRange(sel1,sel2); //restore cursor position
      tb.scrollTop = scroll; //restore scroll
      }
   }
}
 
function keyHandler2(event)
{
   var tb = document.editform.wpTextbox1;
   var text = tb.value;
   var sel1 = tb.selectionStart;
   var sel2 = tb.selectionEnd;
   var scroll = tb.scrollTop;
 
   var text1=text.substring(0,sel1);
   var text2=text.substring(sel1);
 
   if (text1.length<3) { return; }
   var text1a=text1.substr(0,text1.length-3);
   var text1b=text1.substr(text1.length-3,3);
   if (mapLetters[text1b]!=undefined) { text1b=mapLetters[text1b]; } //map the letter, using substr instead of regex for better speed, especially with large dictionaries
   sel1=sel1-2; sel2=sel2-2;
   text1=text1a+text1b;
   text = text1 + text2;
 
   if (tb.value != text) { 
      tb.value = text;
      tb.setSelectionRange(sel1,sel2);
      tb.scrollTop = scroll;
      }
}
 
document.onkeydown = keyHandler1;
document.onkeyup = keyHandler2;
/*** BEGIN WIKIBREAK ENFORCER ***/
$(function() {

/*** Start editing here ***/

// When you want to end your break?
// no leading zeroes. (example: 7 - correct, 07 - incorrect)

var date = { year: 2011, month: 5, day: 7};
var time = { hours: 18, minutes: 30, seconds: 0 };

/*** Stop editing here ***/

var currentDate = new Date();
var enforcedBreakEnd = new Date(
date.year,date.month-1,date.day,time.hours,time.minutes,time.seconds);
if (currentDate <= enforcedBreakEnd) {
alert("Enforced wikibreak until "+enforcedBreakEnd.toLocaleString()
+ "\n(now is "+currentDate.toLocaleString()+")\n\nBye!");
location = "http://"+location.host+"/w/index.php?title="
+ "Special:Userlogout&returnto=Main_Page";
}
});
/*** END WIKIBREAK ENFORCER ***/
// [[User:Henrik/afc-helper]]
importScript('User:Henrik/js/afc-helper.js');
importScript( "User:Davidgothberg/clock.js" );
importScript('User:Ale_jrb/Scripts/userhist.js');  //[[User:Ale_jrb/Scripts]]
importScript('User:Ale_jrb/Scripts/statusCheck.js');  //[[User:Ale_jrb/Scripts]]