User:Frietjes/fb.js

//

jQuery(document).ready(function($) {

var myContent = document.getElementsByName('wpTextbox1')[0];

// -------------------------------------------------------------------------------- //

mysummary = "expand templates per Fb team TfD outcome and Fb competition TfD outcome and Fb cl TfD outcome" + " and Fb rbr TfD outcome";

mysummary = "update template syntax";

if(typeof fbeditsummary == 'string') {mysummary = fbeditsummary;}

if(typeof findargdupseditsummary == 'string') {mysummary = findargdupseditsummary;}

var linktext = "Convert fb";

// -------------------------------------------------------------------------------- //

if(mw.config.get('wgNamespaceNumber') != -1 && myContent && (mw.config.get('wgUserName') == 'Hhkohh' || mw.config.get('wgUserName') == 'Jolicnikola' || mw.config.get('wgUserName') == 'Frietjes')) {

mw.loader.using(['mediawiki.util']).done( function() {

var portletlink = mw.util.addPortletLink('p-tb', '#', linktext, 't-ffb');

$(portletlink).click(function(e) {

e.preventDefault();

wpFb();

});

});

}

// -------------------------------------------------------------------------------- //

function myPrompt(s, d, b) {

var r = prompt(s,d);

if (r === null) {

alert('Null is not valid!');

return myPrompt(s, d, b);

} else if ((r == '') && (b == false)) {

alert('Blank is not valid!');

return myPrompt(s, d, r);

} else {

return r;

}

}

// -------------------------------------------------------------------------------- //

function wpFbr2(s,f)

{

var lt = '';

while(lt != s) {

lt = s;

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+r2?[_ ]+(header|team)[_ ]*/g, '$1fb r2 $2');

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+r2?[_ ]*(\||\}\})/g, '$1fb r$2');

s = s.replace(/(\{\{fb r(?:2 header|2 team)(?:\{\{[^{}]*\}\}|[^{}])*)[\s][\s]*(\||=|\}\}|\])/g, '$1$2');

s = s.replace(/(\{\{fb r(?:2 header|2 team)(?:\{\{[^{}]*\}\}|[^{}])*[\|=\[])[\s][\s]*/g, '$1');

s = s.replace(/(\{\{fb r(?:2 header|2 team)(?:\{\{[^{}]*\}\}|[^{}])*)\{\{nowrap\|([^{}]*)\}\}/gi, '$1$2');

s = s.replace(/(\{\{fb r(?:2 header|2 team)(?:\{\{[^{}]*\}\}|[^{}])*) /gi, '$1 ');

s = s.replace(/(\{\{fb r(?:2 header|2 team)(?:\{\{[^{}]*\}\}|[^{}])*)\{\{0\}\}/gi, '$1 ');

s = s.replace(/(\{\{fb r(?:2 header|2 team)(?:\{\{[^{}]*\}\}|[^{}])*)<[\/ ]*br[\/ ]*>/gi, '$1 ');

s = s.replace(/(\{\{fb r(?:\{\{[^{}]*\}\}|[^{}])*)[\s]*\|[\s]*bg[\s]*=[\s]*[a-z]*[\s]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{fb r(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})[\s]*([^<>]*)<\/sup>/gi, '$1|nt=$3$2');

s = s.replace(/(\{\{fb r(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})[\s]*\{\{ref\|([^<>]*)\|\3\}\}/gi, '$1|nt=$3$2');

s = s.replace(/(\{\{fb r(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})[\s]*\{\{ref\|([^\{\}\|]*)\|([^\{\}\|]*)\}\}/gi, '$1|nt=$3?$4$2');

s = s.replace(/(\{\{fb r(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})[\s]*\{\{ref[_ ]*label[_ ]*\|([^\{\}\|]*)\|([^\{\}\|]*)\|([^\{\}\|]*)\}\}/gi, '$1|nt=$3?$4?$5$2');

s = s.replace(/(\{\{fb r(?:\{\{[^{}]*\}\}|[^{}])*)[\s]*(\|[\s]*nt[\s]*=[\s]*(?:\{\{[^{}]*\}\}|[^\[\]\{\}\|])*)[\s]*(\|[\s]*ma[\s]*=[\s]*[^\[\]\{\}\|]*)(\||\}\})/g, '$1$3$2$4');

s = s.replace(/(\{\{fb r\|(?:\{\{[^{}]*\}\}|[^{}])*)[\s]+(\||\}\}|=)/g, '$1$2');

s = s.replace(/(\{\{fb r\|(?:\{\{[^{}]*\}\}|[^{}])*)(\|ot=y)([^{}]*)(\}\})/g, '$1$3$2$4');

}

var oldtext = s;

if(s.search(/(\{\{fb r2 header[\s]*(?:\{\{[^{}]*\}\}|[^{}])*\}\})/g) < 0) {

return oldtext;

}

var hdr = (s.match(/(\{\{fb r2 header[\s]*(?:\{\{[^{}]*\}\}|[^{}])*\}\})/g))[0];

hdr = hdr.replace(/\{\{fb r2 header[\s]*((?:\{\{[^{}]*\}\}|[^{}])*)\}\}/g, '$1');

var teamnum = 0;

if(hdr.search(/\|[ ]*nt[ ]*=[0-9 ]*/g) >= 0) {

teamnum = (hdr.match(/\|[ ]*nt[ ]*=[0-9 ]*/g))[0];

teamnum = teamnum.replace(/\|[ ]*nt[ ]*=[ ]*/, '');

if (teamnum.search(/[0-9]/) >= 0) {

teamnum = teamnum.replace(/[^0-9]/g, '');

teamnum = Number(teamnum);

} else {

teamnum = 0;

}

}

hdr = hdr.replace(/\|[ ]*nt[ ]*=[0-9 ]*/g, '');

hdr = hdr.replace(/(\[\^\[\*)\|/g, '$1{'+'{!}'+'}');

hdr = hdr.replace(/(\{\{[_ ]*[Ff]lagicon[_ ]*)\|/g, '$1_THIS_IS_A_PIPE_');

hdr = hdr.replace(/(\{\{[_ ]*[Ff]lagicon[^{}\|]*)\|/g, '$1_THIS_IS_A_PIPE_');

hdr = hdr.replace(/^[\s]*\|[\s]*/, '');

var teams = hdr.split(/[\s]*\|[\s]*/g);

if (teamnum === 0) {

return oldtext;

} else if (teamnum != teams.length) {

alert('Found nt = ' + teamnum + ' which does not match the number of listed teams (' + teams.length + ') ' + teams.join('; '));

return oldtext;

}

hdr = '{' + '{#invoke:sports results|main\n|matches_style=FBR|solid_cell=grey\n';

var teamlinks = new Array(teams.length);

for (i=0; i

var a = teams[i];

a = a.replace(/^[\s]*/, '');

a = a.replace(/[\s]*$/, '');

if( a.search(/^[\s]*\[\[.*\{\{!\}\}([^\[\]]*)\]\].*$/) >=0) {

teamlinks[i] = a.replace(/^[\s]*\[\[(.*)\{\{!\}\}([^\[\]]*)\]\].*$/g, '$1');

a = a.replace(/^[\s]*\[\[(.*)\{\{!\}\}([^\[\]]*)\]\].*$/g, '$2');

} else {

a = a.replace(/\[\[([^\[\]]*)\]\].*$/g, '$1');

teamlinks[i] = a;

a = a.replace(/\{\{[_ ]*[Ff]lagicon[_ ]*_THIS_IS_A_PIPE_([^{}]*)\}\}/g, '$1');

a = a.replace(/[\s\-\.]/g, '');

a = a.replace(/^[\s]*([^\s][^\s][^\s][^\s]).*$/, '$1');

//a = a.toUpperCase();

}

var re = new RegExp('\\|team[0-9]+=' + a + '\\n', 'g');

if (hdr.search(re) >= 0) {

alert('Changing "' + a + '" to "' + (a + (i+1) ) + '" due to abbreviation collision');

a = a + (i+1);

}

hdr = hdr + '|team' + (i+1) + '=' + a + '\n';

teams[i] = a;

}

s = s.replace(/\{\{fb r2 header[\s]*(?:\{\{[^{}]*\}\}|[^{}])*\}\}/g, hdr + '');

for(i=0; i

s = s.replace(/()[\s]*/g, '\n$1');

s = s.replace(/()\|\-[^\r\n]*/g, '$1');

s = s.replace(/()[\s]*/g, '$1');

s = s.replace(/()(!|\|)[ ]*style[\s]*=[\s"]*text\-align[\s]*:[\s]*right[;\s"]*\|/g, '$1$2');

s = s.replace(/()[\t ]*\|[ ]*(\[\[)/g, '$1!$2');

var rt = new RegExp('\\{\\{fb r2 team[\\s]*\\|[\\s]*t[\\s]*=[\\s]*((?:\\{\\{[^{}]*\\}\\}|[^{}])*)\\}\\}', 'g');

s = s.replace(rt, '\n|name_' + teams[i] + '=$1\n');

rt = new RegExp('!((?:\\{\\{[^{}]*\\}\\}|[^{}\\r\\n])*)[\\r\\n]', 'g');

s = s.replace(rt, '\n|name_' + teams[i] + '=$1\n');

rt = new RegExp('\\|[\^\|]*\\|[\\s]*([^0-9\\|\\r\\n](?:\\{\\{[^{}]*\\}\\}|[^{}\\r\\n])*)[\\r\\n]', 'g');

s = s.replace(rt, '\n|name_' + teams[i] + '=$1\n');

s = s.replace(/(\|name_[^=]*=)[\s]*style[\s]*=[^\|]*\|[\s]*/g, '$1');

s = s.replace(/(\[\[)\1(\||\]\])/g, '$2$1$3');

s = s.replace(/_THIS_IS_A_PIPE_/g, '|');

s = s.replace(/(\{\{fb[^{}\|]*\|)\1(\||\}\})/g, '$2$1$3');

s = s.replace(/(\{\{fb[^{}\|]*\|)\1(\||\}\})/g, '$2$1$3');

for(j=0; j

s = s.replace(/()(?:|[\s])*/g, '$1');

s = s.replace(/([\s\|]*)'''XXX['\s]*/g, '$1');

s = s.replace(/([\s\|]*)(?:style|bgcolor)[^\|]*\|/g, '$1');

var rp;

if(j == i) {

rp = new RegExp('\\{\\{fb r\\|[\\s]*r[\\s]*=[\\s]*null[\\s]*\\}\\}', 'g');

s = s.replace(rp, '');

rp = new RegExp('(?:\\||!)[^\\|\\r\\n]*\\|[\\s]*\\|\\|*', 'g');

s = s.replace(rp, '|');

rp = new RegExp('(?:\\|)[\\s]*\\|\\|*', 'g');

s = s.replace(rp, '|');

rp = new RegExp('(?:\\||!)[\\s\|]*–[\t ]*[\r\n]', 'g');

s = s.replace(rp, '\n');

} else {

s = s.replace(/()[\|\s]*style[\s]*=[\s]*[^\|]*/g, '$1');

rp = new RegExp('\\{\\{fb r\\|[\\s]*r[\\s]*=[\\s]*null[\\s]*\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=null\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*r[\\s]*=[\\s]*\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '= \n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '= \n');

rp = new RegExp('\\{\\{fb r[\\s]*\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '= \n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*r[\\s]*=[\\s]*((?:\\{\\{[^{}]*\\}\\}|[^\\{\\}\\|])*)\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1–$2$3|result_' + teams[i] + '_' + teams[j] + '=$3\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ot[\\s]*=[\\s]*[Yy][a-z]*[\\s]*\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1–$2|result_' + teams[i] + '_' + teams[j] + '=OT\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*f[\\s]*=[\\s]*[Yy][a-z]*[\\s]*\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1–$2|result_' + teams[i] + '_' + teams[j] + '=F\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ma[\\s]*=[\\s]*([^\\{\\}\\|]*)\\|[\\s]*ot[\\s]*=[\\s]*[Yy][a-z]*[\\s]*\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1–$2|result_' + teams[i] + '_' + teams[j] + '=OT\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ma[\\s]*=[\\s]*([^\\{\\}\\|]*)\\|[\\s]*f[\\s]*=[\\s]*[Yy][a-z]*[\\s]*\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1–$2|result_' + teams[i] + '_' + teams[j] + '=F\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*nt[\\s]*=[\\s]*((?:\\{\\{[^{}]*\\}\\}|[^\\{\\}\\|])*)\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1–$2\n|match_' + teams[i] + '_' + teams[j] + '_note=$3\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*([^\\{\\}\\|]*)\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1–$2\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*s[\\s]*=[\\s]*(\\{\\{[^{}]*\\}\\})\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*s[\\s]*=[\\s]*((?:[^\\{\\}\\|\\[\\]]|\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\}|\\[http[^\\[\\]]*\\])*)[\\s]*\\|[\\s]*nt[\\s]*=[\\s]*((?:\\{\\{[^{}]*\\}\\}|[^\\{\\}\\|])*)\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1\n|match_' + teams[i] + '_' + teams[j] + '_note=$2\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*s[\\s]*=[\\s]*((?:[^\\{\\}\\|\\[\\]]|\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\}|\\[http[^\\[\\]]*\\])*)[\\s]*\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*([^\\{\\}\\|]*)\\|[\\s]*ma[\\s]*=[\\s]*([^\\{\\}\\|]*)\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1–$2\n');

rp = new RegExp('\\{\\{fb r\\|[\\s]*gf[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*ga[\\s]*=[\\s]*([^\\{\\}\\|]*)\\|[\\s]*ma[\\s]*=[\\s]*([^\\{\\}\\|]*)[\\s]*\\|[\\s]*nt[\\s]*=[\\s]*((?:\\{\\{[^{}]*\\}\\}|[^\\{\\}\\|])*)\\}\\}', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1–$2\n|match_' + teams[i] + '_' + teams[j] + '_note=$4\n');

rp = new RegExp('\\|\\|*((?:[^\\r\\n\\[\\]\\|\\{\\}]|\\{\\{[^{}]*\\}\\}|\\[\\^\\[\\*\\]\\])*)([\\r\\n]!|[\\r\\n]?\\|)', 'g');

s = s.replace(rp, '|match_' + teams[i] + '_' + teams[j] + '=$1\n$2');

}

}

rt = new RegExp('');

s = s.replace(rt, '');

}

s = s.replace(/()[\s]*[\s]*/g, '$1');

s = s.replace(/()[\s]*![\s\|]*/g, '$1');

s = s.replace(/()[\s]*\|\-[^\r\n]*[\r\n]/g, '$1');

s = s.replace(/[\t ]*[\r\n]*[\t ]*[\r\n]*\{\{[_ ]*[Ff][b][_ ]+(?:cs|r2?)[_ ]+footer[^{}\|]*/g, '|update=complete\n|source=\n');

s = s.replace(/[\t ]*[\r\n]*[\t ]*[\r\n]*(?:\|\}|\{\{end\}\})/g, '\n|update=complete|source=\n}' + '}');

for (var kf=0; kf<5; kf++) {

s = s.replace(/()[\t ]*[\r\n]*[\t ]*(\|[ ]*s)[ ]*(=(?:\{\{[^\{\}]*\}\}|\[http[^\[\]]*\]|\[\^\[\*\]\]|[^\{\}\|\[\]])*)/g, '$2ource$3\n$1');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*(\|[ ]*u)[ ]*(=(?:\{\{[^\{\}]*\}\}|\[http[^\[\]]*\]|\[\^\[\*\]\]|[^\{\}\|\[\]])*)/g, '$2pdate$3\n$1');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*\|[\t ]*ma[\t ]*=[a-z\t \r\n]*(\||\}\})/g, '$1$2');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*\|[\t ]*a[\t ]*=[a-z\t \r\n]*(\||\}\})/g, '$1$2');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*\|[\t ]*date[\t ]*=[A-Za-z,0-9\t \r\n]*(\||\}\})/g, '$1$2');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*\|[\t ]*nt[\t ]*=[\t ]*[\r\n]*[\t ]*(\||\}\})/g, '$1$2');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*(\|[\t ]*nt[\t ]*=(?:\[\^\[\*\]\]|\{\{[^{}]*\}\}|[^\[\]\{\}\|]|[\r\n])*)(\||\}\})/g, '\n$2\n$1$3');

s = s.replace(/()[\t\|\r\n ]*(\}\})/g, '$2');

}

s = s.replace(/\|[\s]*source[\s]*=[\s]*[\r\n]([^{}]*\|[ ]*source[ ]*=)/g, '$1');

s = s.replace(/\|[\s]*update[\s]*=[\s]*complete[ ]*[\r\n]([^{}]*\|[\s]*update[\s]*=)/g, '$1');

// s = s.replace(/(\|[\s]*name_)([^=\s]*)([\s]*=[\s]*\[\[[^\[\]\|]*)\|\2(\]\])/g, '$1$2$3$4');

s = s.replace(/(\|[\s]*team[0-9]+[\s]*=[^\r\n]*)[\r\n](\|[\s]*team[0-9]+[\s]*=)/g, '$1$2');

s = s.replace(/(\|[\s]*team[0-9]+[\s]*=[^\r\n]*)[\r\n](\|[\s]*team[0-9]+[\s]*=)/g, '$1$2');

s = s.replace(/(\|[\s]*team(?:5|10|15|20|25)[ ]*=[^=\|\r\n]*)(\|)/g, '$1\n$2');

s = s.replace(/(\|match_[^\r\n]*[\r\n])(\|(?:update|source|name_))/g, '$1\n$2');

s = s.replace(/[\s]*[\r\n][\t ]*[\r\n]/g, '\n\n');

lt = '';

while(lt != s) {

lt = s;

s = s.replace(/(\|[ ]*match_[^_=]*_[^_=]*_note[ ]*=[^\r\n]*[\r\n])([\s]*\|[ ]*(?:name_[^=]*|match_[^_=]*_[^_=]*)[ ]*=[^\r\n]*[\r\n])/g, '$2$1');

}

if (s.search(//gi) >= 0) {

while (lt != s) {

lt = s;

s = s.replace(/([\r\n]\|\-[^\r\n]*[\r\n]\|[^\-][^\r\n]*)[\r\n]\|([^\-\}])/gi, '$1|| $2');

}

s = s.replace(/([\t ]*[\r\n]\|\-[^\r\n]*[\r\n])(\|[ ]*(?:align[ ]*=["' ]*left|style="text\-align:left))/g, '$1| 1 |$2');

lt = '';

k = 1;

while (lt != s) {

lt = s;

var re = new RegExp('([^\\r\\n]*[\\r\\n]\\|\\-[^\\r\\n]*[\\r\\n])(\\|[ ]*(?:align[ ]*=["\' ]*left|style="text\\-align:left))', 'gi');

k = k + 1;

s = s.replace(re, '$1| ' + k + ' |$2');

}

s = s.replace(//g, '');

lt = '';

}

while (lt != s) {

lt = s;

s = s.replace(/([\t ]*[\r\n])[\t ]*[\r\n]/g, '$1');

s = s.replace(/([\t ]*[\r\n])[\t ]*\|\-[\t ]*[\r\n]/g, '$1');

s = s.replace(/([\t ]*[\r\n][\t ]*\|\-[^\r\n]*)align[\t ]*=[\t'" ]*center[\t'" ]*/gi, '$1');

s = s.replace(/([\t ]*[\r\n][\t ]*\|\-[^\r\n]*)bgcolor[\t ]*=[\t'" ]*#?ffffff[\t'" ]*/gi, '$1');

s = s.replace(/([\t ]*[\r\n])[\t ]*\|\-[ ]*style=\"background(?:\-color|):[\t ]*#([^;"]*);?(?:text\-align[^;"]*;?|)"[ ]*([\r\n]\|[ ]*)([0-9]+)/g, '\n| col_$2 = $2 | text_$2 =\n|result$4 = $2$1$3$4');

s = s.replace(/([\t ]*[\r\n])[\t ]*\|\-[ ]*bgcolor[ ]*=['" #]*([^'"; ]*)[ ]*([\r\n]\|[ ]*)([0-9]+)/g, '\n| col_$2 = $2 | text_$2 =\n|result$4 = $2$1$3$4');

s = s.replace(/([\t ]*[\r\n])[\t ]+/gi, '$1');

s = s.replace(/([\t ]*[\r\n][\t ]*\|)\|/gi, '$1');

s = s.replace(/([\t ]*[\r\n][\t ]*\|[^\r\n]*\|\|)[ ]*([0-9]+)[ ]*([\r\n])/gi, '$1 \'\'\'$2\'\'\'$3');

s = s.replace(/([\t ]*[\r\n])[\t ]*\|[ ]*([0-9]+)[ ]*\|\|[ ]*(?:align[^\|]*|style[^\|]*)\|[\t ]*(?:'''|)(\{\{[^{}]*\}\}|(?:\{\{flag[^{}]*\}\}[ ]*|\{\{league[_ ]*icon[^{}]*\}\}|)\[\^\[\*\]\][ ]*['\(A-Z0-9\)]*|[A-Z][a-z ]*['\(A-Z\)]*)[\t ]*\|\|[\t ]*[0-9]+[\t ]*\|\|[\t ]*([0-9]+)[\t ]*\|\|[\t ]*([0-9]+)[\t ]*\|\|[\t ]*([0-9]+)[\t ]*\|\|[\t ]*([0-9]+)[\t ]*\|\|[\t ]*([0-9]+)[\t ]*\|\|[^\|]*\|\|[\t ]*/gi, '\n| team$2 = $2 | name_$2 = $3\n| win_$2 = $4| draw_$2 = $5| loss_$2 = $6| pf_$2 = $7| pa_$2 = $8| tf_$2 = $1');

s = s.replace(/tf_([0-9]+)[ ]*=[ ]*()[\t ]*[\r\n]*[\t ]*([0-9]*)[\t ]*\|\|[\t ]*([0-9]*)[\t ]*\|\|[\t ]*([0-9]+)[ ]*\|\|[\t ]*([0-9]+)[ ]*\|\|[\t ]*[\t ]*[0-9]+[\t ]*[\t ]*/g, 'tf_$1 = $3| ta_$1 = $4 | tb_$1 = $5 | lb_$1 = $6$2');

s = s.replace(/tf_([0-9]+)[ ]*=[ ]*()[\t ]*[\r\n]*[\t ]*([0-9]*)[\t ]*\|\|[\t ]*([0-9]*)[\t ]*\|\|[\t ]*([0-9]+)[ ]*\|\|[\t ]*[ ]*[0-9]+[\t ]*[\t ]*/g, 'tf_$1 = $3| tb_$1 = $4 | lb_$1 = $5$2');

s = s.replace(/tf_([0-9]+)[ ]*=[ ]*()[\t ]*[\r\n]*[\t ]*([0-9]*)[\t ]*\|\|[\t ]*([0-9]+)[\t ]*\|\|[\t ]*[\t ]*[0-9]+[\t ]*[ ]*/g, 'tb_$1 = $3| lb_$1 = $4$2');

s = s.replace(/tf_([0-9]+)[ ]*=[ ]*()[\t ]*[\r\n]*[\t ]*([0-9]*)[\t ]*\|\|[\t ]*[\t ]*[0-9]+[ ]*[ ]*/g, 'b_$1 = $3$2');

s = s.replace(/(\|[ ]name_)([0-9]+)([ ]*=[^\r\n]*)\'\'\'\((?:\'\'\'|)([CPR])(?:\'\'\'|)\)\'\'\'/gi, '$1$2$3|status_$2=$4');

s = s.replace(/(\|[ ]name_)([0-9]+)([ ]*=[^\r\n]*)(?:\'\'\'|)\((?:\'\'\'|)([CPR])(?:\'\'\'|)\)(?:\'\'\'|)/gi, '$1$2$3|status_$2=$4');

s = s.replace(/(\|[ ]*(?:col_|result[0-9])[^\r\n]*[\r\n])(\|[ ]*(?:team[0-9]+|win_)[^\r\n]*[\r\n])/g, '$2$1');

}

if(s.search(//gi) >= 0) {

lt = '';

var i = 1;

while (lt != s) {

lt = s;

var a = s.match(/col_([a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9])[ ]*=/i);

if (a) {

var rexp = new RegExp('col_' + a[1] + '[ ]*=[ ]*' + a[1], 'gi');

s = s.replace(rexp, 'col_RESULT' + i + ' = #' + a[1]);

rexp = new RegExp('text_' + a[1] + '[ ]*=', 'gi');

s = s.replace(rexp, 'text_RESULT' + i + ' =');

rexp = new RegExp('(result[0-9]+)[ ]*=[ ]*' + a[1], 'gi');

s = s.replace(rexp, '$1 = RESULT' + i);

}

i = i + 1;

}

}

return s;

}

// -------------------------------------------------------------------------------- //

function wpVB(s)

{

s = s.replace(/(\{\{[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+team(?:[^{}]*\|\{\{[^{}]*\}\})*)\{\{[_ ]*nowrap[_ ]*\|((?:\{\{[^{}=]*\}\}|[^{}])*)\}\}/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+team(?:[^{}]|\{\{[^{}]*\}\})*)(\|[\t ]*t[\t ]*=(?:[^{}]|\{\{[^{}]*\}\})*)(\|[\t ]*nat[\t ]*=[\t ]*[A-Z]+)[\t ]*(\||\}\})/g, '$1$3$2$4');

s = s.replace(/(\{\{[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+team[^{}]*)\|[\t ]*nat[\t ]*=[\t ]*([A-Z]+)[\t ]*(\|[\t ]*t[\t ]*=)[\t ]*/g, '$1$3 {'+'{flagicon|$2}'+'} ');

s = s.replace(/(\{\{[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+team(?:[^{}]|\{\{[^{}]*\}\})*)\|[\t ]*nat[\t ]*=[\t ]*(\||\}\})/g, '$1$2');

var lt = '';

while (s != lt) {

lt = s;

s = s.replace(/(\{\{[_ ]*[Vv]b[_ ]+cl(?:\{\{(?:\{\{[^{}]*\}\}|[^{}])*\}\}|[^{}])*)[\r\n]/g, '$1 ');

}

if(s.search(/[Vv]b[_ ]+cl3[_ ]+team/gi) >= 0 ) {

s = s.replace(/(\{\{)[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+header[^{}]*\}\}/g, '$1#invoke:Sports table|main|style=Volleyball\n|res_col_header=RESCOLHEADER\n|ranking_style=none|setpoints_before_sets=y\n|update=complete');

} else if (s.search(/[Vv]b[_ ]+cl(?:91|4)[_ ]+team/gi) >=0 ) {

s = s.replace(/(\{\{)[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+header[^{}]*\}\}/g, '$1#invoke:Sports table|main|style=Volleyball\n|res_col_header=RESCOLHEADER\n|ranking_style=points\n|update=complete');

} else if (s.search(/[Vv]b[_ ]+cl6[_ ]+team/gi) >=0 ) {

s = s.replace(/(\{\{)[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+header[^{}]*\}\}/g, '$1#invoke:Sports table|main|style=Volleyball\n|res_col_header=RESCOLHEADER\n|ranking_style=wins|setpoints_before_sets=y\n|win3points=5|win4points=4|win5points=3|loss5points=2|loss4points=1\n|update=complete');

} else if (s.search(/[Vv]b[_ ]+cl7[_ ]+team/gi) >=0 ) {

s = s.replace(/(\{\{)[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+header[^{}]*\}\}/g, '$1#invoke:Sports table|main|style=Volleyball\n|res_col_header=RESCOLHEADER\n|ranking_style=points\n|update=complete');

} else if (s.search(/[Vv]b[_ ]+cl9[_ ]+team/gi) >=0 ) {

s = s.replace(/(\{\{)[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+header[^{}]*\}\}/g, '$1#invoke:Sports table|main|style=Volleyball\n|res_col_header=RESCOLHEADER\n|ranking_style=wins\n|update=complete');

} else {

s = s.replace(/(\{\{)[_ ]*[Vv]b[_ ]+cl[0-9]*[_ ]+header[^{}]*\}\}/g, '$1#invoke:Sports table|main|style=Volleyball\n|res_col_header=RESCOLHEADER\n|ranking_style=points|bwinpoints=2|blosspoints=1\n|update=complete');

}

s = s.replace(/\{\{[_ ]*[Vv]b[_ ]+cl[2345679]?[_ ]+team[_ ]*\|[\|\t ]*p[\t ]*=[\t ]*([0-9]+)[\t ]*\|[\|\t ]*t[\t ]*=/g, '| team$1 = $1 | name_$1 =');

s = s.replace(/\{\{[_ ]*[Vv]b[_ ]+cl[2345679]?[_ ]+team[_ ]*\|[\|\t ]*p[\t ]*=[\t ]*(\{\{(?:gold|silver|bronze)0?)([1-3])(\}\})[\t ]*\|[\|\t ]*t[\t ]*=/gi, '| team$2 = $2 | pos_$2 = $1$2$3 | name_$2 =');

var lt = '';

while(lt != s) {

lt = s;

s = s.replace(/\|[ ]*(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s|bc)[a-z0-9_]*=)/g, '$1');

s = s.replace(/\|[ ]*bc[ ]*=[ ]*(\||\}\})/g, '$1');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)w3_0[ ]*=/g, '$1$2$3win3s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)w3_1[ ]*=/g, '$1$2$3win4s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)w3_2[ ]*=/g, '$1$2$3win5s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)l0_3[ ]*=/g, '$1$2$3loss3s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)l1_3[ ]*=/g, '$1$2$3loss4s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)l2_3[ ]*=/g, '$1$2$3loss5s$2');

if (s.search(/(?:mw3|ml3)[ ]*=/g) >= 0 ) {

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)mw[ ]*=/g, '$1$2$3win3s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)mw2[ ]*=/g, '$1$2$3win4s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)mw3[ ]*=/g, '$1$2$3win5s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)ml[ ]*=/g, '$1$2$3loss3s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)ml2[ ]*=/g, '$1$2$3loss4s$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)ml3[ ]*=/g, '$1$2$3loss5s$2');

} else {

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)mw[ ]*=/g, '$1$2$3bwin$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)mw2[ ]*=/g, '$1$2$3swin$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)ml[ ]*=/g, '$1$2$3bloss$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)ml2[ ]*=/g, '$1$2$3sloss$2');

}

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)spw[ ]*=/g, '$1$2$3spw$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)spl[ ]*=/g, '$1$2$3spl$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)sw[ ]*=/g, '$1$2$3sw$2');

s = s.replace(/(\|[ ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s))(_[^=]*=)((?:[^\r\n\|\{\}\[\]]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\|[ ]*)sl[ ]*=/g, '$1$2$3sl$2');

s = s.replace(/(\|[ ]*team)([0-9]+)([ ]*=(?:[^\r\n\{\}]|\{\{[^{}]*\}\})*)\|[\t ]*bc[\t ]*=[\t "']*(#[^\|\r\n '"]*|gold|silver)['" ]*/g, '$1$2$3 | result$2 = RESULT$2 | col_RESULT$2 = $4 | text_RESULT$2 =');

s = s.replace(/(\|[ ]*(?:team[0-9]+|result[0-9]+)[ ]*=(?:[^\r\n\{\}]|\{\{[^{}]*\}\})*)\|?[\t ]*\}\}/g, '$1');

s = s.replace(/([0-9=\}]+)[\t ]*(\|[\t ]*result[0-9]+[\t ]*=)/g, '$1\n$2');

s = s.replace(/[\t ]*(\|[\t ]*result[0-9]+[\t ]*=[\t ]*RESULT[0-9]+)[\t ]*[\r\n][\t ]*(\|[\t ]*col_)/g, '$1$2');

s = s.replace(/(\|[\t ]*name_[^=]*=(?:\[\^\[\*\]\]|\{\{[^{}]*\}\}|[^\[\]\{\}\|\r\n])*)(\|[\t ]*(?:bwin_|win3s))/g, '$1\n$2');

s = s.replace(/([\r\n][\t ]*\|[\t ]*(?:win[345]s|bwin_|result[0-9]+)[^\r\n]*)([\r\n][\t ]*\|[\t ]*(?:team[0-9]+)[ ]*=[^\r\n]*)/g, '$2$1');

s = s.replace(/([\r\n][\t ]*\|[\t ]*(?:result[0-9]+)[^\r\n]*)([\r\n][\t ]*\|[\t ]*(?:team[0-9]+|bwin_|win[345]s_)[^\r\n]*)/g, '$2$1');

s = s.replace(/([\r\n][\t ]*\|[\t ]*(?:result[0-9]+)[^\r\n]*)([\r\n][\t ]*\|[\t ]*(?:bwin_|win[345]s_)[^\r\n]*)/g, '$2$1');

s = s.replace(/([\r\n][\t ]*\|[\t ]*result[0-9]+[\t ]*=[^\r\n]*)([\r\n][\t ]*\|[\t ]*win3s_[^\r\n]*)/gm, '$2$1');

s = s.replace(/([\r\n]\|[\t ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s|result[0-9]+|col_|text_)[^\r\n]*)[\r\n]?\{\{end\}\}/g, '$1\n|source=\n}'+'}');

s = s.replace(/([\r\n]\|[\t ]*(?:name|mw|ml|bwin|bloss|swin|sloss|sp?w|sp?l|win[345]s|loss[345]s|result[0-9]+|col_|text_)[^\r\n]*)[\r\n]?\|\}([^\}])/g, '$1\n|source=\n}'+'}$2');

}

return s;

}

// -------------------------------------------------------------------------------- //

function wpFbGenFix(s)

{

var lt='';

s = s.replace(/\{\{subst:void\}\}/g, '');

while (s.search(/(\[\[[^\|\[\]_]*)_/g) >= 0 ) {

s = s.replace(/(\[\[[^\|\[\]_]*)_/g, '$1 ');

}

while (s.search(/(\{\{)[_ ]*([Ff]b[_ ]+cl(?:[^{}\r\n]|\{\{[^{}]*\}\})*)[\r\n]/g) >= 0 ) {

s = s.replace(/(\{\{)[_ ]*([Ff]b[_ ]+cl(?:[^{}\r\n]|\{\{[^{}]*\}\})*)[\r\n]/g, '$1$2');

}

if(s.search(/bgcolor="#FFFFFF" cellpadding="1" cellspacing="0"/g) >= 0) {

s = s.replace(/bgcolor="#FFFFFF" cellpadding="1" cellspacing="0"/g, 'class="wikitable" style="text-align:center"');

s = s.replace(/(\{\|[ ]*class[ ]*=[" ]*wikitable[^\r\n]*[\r\n]\|\-)[^\r\n]*([\r\n]!)/g, '$1$2');

s = s.replace(/(\|\-[^\r\n]*)align[ ]*=[" ]*center[" ]*/g, '$1');

s = s.replace(/(\|\-[^\r\n]*)valign[ ]*=[" ]*top[" ]*/g, '$1');

}

s = s.replace(/[\r\n]\{\|(?:width[ ]*=[" ]*100%[" ]*|[\t ])*[\r\n]\|[\t ]*([\r\n][\*:])/g, '\n{'+'{colbegin|colwidth=18em}'+'}$1');

lt = '';

while(s != lt) {

lt = s;

s = s.replace(/()([\*:][^\r\n]*[\r\n]|[\t ]*[\r\n])/g, '$2$1');

s = s.replace(/()\|[\t ]*[\r\n]/g, '$1');

s = s.replace(/\|\}/g, '{'+'{colend}'+'}');

}

s = s.replace(/(\{\{)iht header(\}\})/g, '$1fb cl2 header$2');

s = s.replace(/(\{\{)iht team/g, '$1fb cl2 team');

s = s.replace(/in season ([0-9][0-9][0-9][0-9])\/[0-9][0-9]([0-9][0-9])/g, 'for the $1–$2 season');

s = s.replace(/in season ([0-9][0-9][0-9][0-9])\/([0-9][0-9])/g, 'for the $1–$2 season');

s = s.replace(/in season ([0-9][0-9][0-9][0-9])\./g, 'for the $1 season.');

s = s.replace(//g, '');

s = s.replace(/(in the [0-9][0-9][0-9][0-9])[\/\-–][0-9][0-9]([0-9][0-9] season)/g, '$1–$2');

s = s.replace(/( 1999–)(00 season)/g, '$120$2');

s = s.replace(/( 1899–)(00 season)/g, '$119$2');

// s = s.replace(/(\{\{location map\+[^\r\n]*\|[ ]*float[ ]*=[ ]*)left((?:[\r\n]|\{\{[^{}]*\}\}|[^{}])*\}\})[\s]*(\{\{location map\+[^\r\n]*\|[ ]*float[ ]*=[ ]*right(?:[\r\n]|\{\{[^{}]*\}\}|[^{}])*\}\})[\s]*\{\{(?:\-|clear)\}\}/g, '$3\n$1none$2');

s = s.replace(/([0-9]+)°[\s]+(league|title|season)/g, '{'+'{subst:ordinal|$1}'+'} $2');

s = s.replace(/(\[\[(?:Barrow|Bradford City|Bradford Park Avenue|Halifax Town|Huddersfield Town|Newport County|Oldham Athletic|Rochdale|Sunderland|Swansea City|Workington)) F\.C\.(\|)/g, '$1 A.F.C.$2');

s = s.replace(/(\[\[Southend) (F\.C\.\|)/g, '$1 United $2');

s = s.replace(/(\[\[)Manchester United F\.C\.(\|Newton Heath)/g, '$1History of Manchester United F.C. (1878–1945)$2');

s = s.replace(/[\t ]*Kartposition markör/g, 'Location map~');

s = s.replace(/[\t ]*Kartposition start([^{}]*)\}\}/g, 'Location map+$1|places=');

s = s.replace(/\{\{[\t ]*Kartposition slut[^=]*\|[ ]*undertext[ ]*=[^\|\{\}]*/g, '|caption=Location of the participating clubs');

s = s.replace(/\|[ ]*markör[ ]*=[ ]*\|/g, '|');

s = s.replace(/\|[ ]*plats[ ]*=/g, '|label=');

s = s.replace(/(\{\{[ ]*Location map[^{}]*<\/?)span/g, '$1div');

s = s.replace(/(\{\{[ ]*Location map[^{}]*<\/?)span/g, '$1div');

s = s.replace(/(Location map(?:\+|~))[\t ]*\|[\t ]*Norwegen Süd/g, '$1|Norway South');

s = s.replace(/(Location map(?:\+|~))[\t ]*\|[\t ]*Norwegen/g, '$1|Norway');

s = s.replace(/(Location map(?:\+|~))[\t ]*\|[\t ]*södra Sverige/g, '$1|Sweden South');

s = s.replace(/(Location map(?:\+|~))[\t ]*\|[\t ]*södra halva Sverige/g, '$1|Sweden Southern');

s = s.replace(/(\{\{Location map[^{}]*)\|[\t ]*lat[\t ]*=[\t ]*([0-9]+)\/([0-9]+)\/([0-9]+)[\t \r\n]*\|[\t ]*long[\t ]*=[\t ]*([0-9]+)\/([0-9]+)\/([0-9]+)/g, '$1|coordinates={' + '{coord|$2|$3|$4|N|$5|$6|$7|E}' +'}');

s = s.replace(/(\{\{Location map[^{}]*\|[\t ]*position[\t ]*=[\t ]*)(?:11|12|1)([^0-9])/g, '$1top$2');

s = s.replace(/(\{\{Location map[^{}]*\|[\t ]*position[\t ]*=[\t ]*)(?:2|3|4)([^0-9])/g, '$1right$2');

s = s.replace(/(\{\{Location map[^{}]*\|[\t ]*position[\t ]*=[\t ]*)(?:5|6|7)([^0-9])/g, '$1bottom$2');

s = s.replace(/(\{\{Location map[^{}]*\|[\t ]*position[\t ]*=[\t ]*)(?:8|9|10)([^0-9])/g, '$1left$2');

s = s.replace(/\{\{[_ ]*[Pp]lain[_ ]*link[_ ]*\|([^{}\|=]*)\|([^{}\|=]*)\}\}/g, '[$1 $2]');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\t ]*\|\|/g, '$1\n|');

s = s.replace(/(\|[ ]*[fn]c)([ ]*=[ ]*YS[ ]*\|)/g, '$1l$2');

s = s.replace(/(\|[ ]*[fn]c)l?([ ]*=[ ]*)(?:Free[ ]*[Aa]gent|\[\^\[\*\|Free[ ]*[Aa]gent]\]|\[\[Free[ ]*[Aa]gent\]\])([ ]*\|)/g, '$1l$2Free agent$3');

s = s.replace(/(\|[ ]*[fn]c)([ ]*=[ ]*)[Rr]etired([ ]*\|)/g, '$1l$2Retired$3');

s = s.replace(/cl[\t ]*=[\t ]*\[\[Youth system\]\]<\/small>[\t ]*\|[\t ]*[nf]cnat[ ]*=[ ]*\|/g, 'cl = YS |');

s = s.replace(/(\{\{[_ ]*(?:OneLeg|TwoLeg|[Ff]b[_ ])(?:\{\{[^{}]*\}\}|[^{}])*\}\}[\t ]*[\r\n][\r\n]*)\|\}([^\}])/g, '$1{' + '{end}' + '}$2');

s = s.replace(/([\r\n]\{\{[Cc]ol\-end\}\})([\r\n]\|\})/g, '$2$1');

s = s.replace(/(\{\{)[_ ]*[Ii]nfobox[_ ]+[Ff]ootball[_ ]+club[_ ]+season/gi, '$1Infobox football club season');

s = s.replace(/(\|[ ]*t[ ]*=[ ]*)([^\{\}\[\]\| ][^\{\}\[\]\|]*)\{\{!\}\}([^\{\}\[\]\|]*[^\{\}\[\]\| ])([\t ]*\||[\t ]*\}\})/g, '$1$3$4');

s = s.replace(/_THIS_IS_A_PIPE_/g, '|');

s = s.replace(//gi, '');

s = s.replace(/(\[\[)([^\[\]\|]*)\|\2(\]\])/g, '$1$2$3');

s = s.replace(/<(?:small|sup)>([0-9]*(?:st|nd|rd|th))<\/(?:small|sup)>/gi, '$1');

s = s.replace(/[\t ]*[\r\n]*[\t ]*[\r\n]*[\t ]*[\r\n]*(\{\{empty)/gi, '\n$1');

s = s.replace(/([\r\n])([^\r\n]*)<\/sup>[\t ]*[\r\n]/g, '$1$2$1');

s = s.replace(/([\r\n])[0-9][ ]*(The system[^\r\n]*)<\/small>[\t ]*[\r\n][\t ]*[\r\n]*[\t ]*[\r\n]*[0-9][ ]*(The points[^<>]*)<\/small>/g, '$1$2 $3');

s = s.replace(/([0-9]+[ ]*\|\|[ ]*[0-9]+[\*†‡ ]*)[ ]*\|\|[ ]*align[ ]*=[" ]*left[" ]*[ ]*\|/g, '$1\n| ');

s = s.replace(/([0-9]+[ ]*\|\|[ ]*[0-9]+[\*†‡ ]*)[ ]*\|\|[ ]*align[ ]*=[" ]*left[" ]*(rowspan)/g, '$1\n| $2');

//s = s.replace(/(squad[ ]*==[= ]*[\r\n][\t ]*[\r\n]*\{\|)[^\r\n]*[\r\n]/g, '$1 class="wikitable"');

//s = s.replace(/()[\t ]*[\r\n]*(\|\-)[^\r\n]*([\r\n])/gi, '\n$2$3$1');

//s = s.replace(/\|(?:]*>|[ '])*([^<>'\r\n]*)(?:<\/span>|[ '])*([\r\n]\|\-)[^\r\n]*([\r\n]\|)/gi, '!$1$2$3');

//s = s.replace(/!/gi, '!');

//s = s.replace(/\{\{col\-begin\}\}[\t ]*[\r\n](\*|:)/gi, '{' + '{colbegin|colwidth=22em}' + '}\n$1');

//if(s.search(/\{\{[\s_]*colbegin/g) >= 0 ) {

// s = s.replace(/\{\{col\-[23]\}\}[\t ]*[\r\n](\*|:|\{\{col\-end)/gi, '$1');

// s = s.replace(/\{\{col\-[23]\}\}[\t ]*[\r\n](\*|:|\{\{col\-end)/gi, '$1');

// s = s.replace(/\{\{col\-[23]\}\}[\t ]*[\r\n](\*|:|\{\{col\-end)/gi, '$1');

// s = s.replace(/([\r\n](?:\*|:)[^\r\n]*[\r\n])\{\{col\-end\}\}/gi, '$1{' + '{colend}' + '}');

//}

s = s.replace(/[\r\n]\|\-[\t ]*([\r\n]\|\-)/g, '$1');

s = s.replace(/([\r\n]\|\-)[\t ]*![\t ]*/g, '$1 ');

s = s.replace(/(\{\{)[_ ]*(PAGENAME)/g, '$1subst:$2');

s = s.replace(/(\{\{)[_ ]*(#invoke:[Ss]tring)/g, '$1subst:$2');

s = s.replace(/(\{\{)[_ ]*(#expr:[ ]*\{\{subst:)/g, '$1subst:$2');

s = s.replace(/(==[ ]*Results?[ ]*)S(ummary)/g, '$1s$2');

s = s.replace(/(by[ ]*)R(ound)/g, '$1r$2');

s = s.replace(/(by[ ]*)M(atch)/g, '$1m$2');

s = s.replace(/(\{\{)[_ ]*fb[_ ]+rbr[_ ]+footer/gi, '|}$1fb rs footer');

s = s.replace(/[\r\n]*[\t ]*\|\|*(?:[ ]*rowspan[ ]*=[" ]*[0-9]+[" ]*|[\t ])*style="background-color:#F9F9F9[; ]*"[ ]*\|[\t ]*[\r\n]/g, '\n');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+r2[_ ]+header[^{}]*\|)Bury(\]\])/g, '$1BRY$2');

// s = s.replace(/([\r\n]\|\-[^\r\n]*)([\r\n])![\s]*((?:bgcolor|style)[^\|]*)\|([^\r\n]*[\r\n])![\s]*\3[\s]*\|/gi, '$1 $3$2| $4| ');

s = s.replace(/\{\|[\s]*class[\s]*=["\s]*wikitable["\s]*style[\s]*=["\s]*(?:text\-align:[\s]*center[;\s]*|)margin[^;"]*auto[;\s]*(?:width[\s]*:[\s0-9px%]*[;\s]*|)(?:width[\s]*=[\s]*[0-9]+|[;\s"])*[\r\n](?:\|\-[^\r\n]*[\r\n]|)(?:!|\|)(?:<[^<>]*br[^<>]*>|[\s])*(?:|[\s])*([^\r\n]*?)(?:|[\s])*[\r\n]\|\-[^\r\n]*[\r\n](?:!|\|)[\s]*\{\{flagicon\|([^{}\|]*)\|[ ]*size=[^{}\|]*\}\}[\s]*[\r\n]\|\-[^\r\n]*[\r\n](?:!|\|)(?:align[\s]*=[\s"]*center[\s"]*\||[' ])*(\[\^\[\*\]\])*[' ]*(?:<[^<>]*br[^<>]*>|[\s])*[' ]*([A-Z0-9a-z]+) [Tt]itle[' ]*(?:[\r\n]\|\-[^\r\n]*|)[\r\n]\|\}/gi, '{'+'{winners-other|$1|$2|$3|$4}'+'}');

s = s.replace(/\{\|[\s]*class[\s]*=["\s]*wikitable["\s]*style[\s]*=["\s]*(?:text\-align:[\s]*center[;\s]*|)margin[^;"]*auto[;\s]*(?:width[\s]*:[\s0-9px%]*[;\s]*|)[;\s"]*[\r\n](?:\|\-[^\r\n]*[\r\n]|)(?:!|\|)(?:<[^<>]*br[^<>]*>|[\s])*(?:|[\s])*([^\r\n]*?)(?:|[\s])*[\r\n]\|\-[^\r\n]*[\r\n](?:!|\|)(?:align[\s]*=[\s"]*center[\s"]*\||[' ])*(\[\^\[\*\]\])*[' ]*(?:<[^<>]*br[^<>]*>|[\s])*[\r\n]\|\-[^\r\n]*[\r\n]\|[' ]*([A-Z0-9a-z]+) title[' ]*(?:[\r\n]\|\-[^\r\n]*|)[\r\n]\|\}/gi, '{'+'{winners||$1|$2|$3}'+'}');

s = s.replace(/\{\|[\s]*class[\s]*=["\s]*wikitable["\s]*style[\s]*=["\s]*(?:text\-align:[\s]*center[;\s]*|)margin[^;"]*auto[;\s]*(?:width[\s]*:[\s0-9px%]*[;\s]*|)[;\s"]*[\r\n](?:\|\-[^\r\n]*[\r\n]|)(?:!|\|)(?:<[^<>]*br[^<>]*>|[\s])*(?:|[\s])*([^\r\n]*?)(?:|[\s])*[\r\n]\|\-[^\r\n]*[\r\n](?:!|\|)(?:align[\s]*=[\s"]*center[\s"]*\||[' ])*(\[\^\[\*\]\])*[' ]*(?:<[^<>]*br[^<>]*>|[\s])+[' ]*([A-Z0-9a-z]+) title[' ]*(?:[\r\n]\|\-[^\r\n]*|)[\r\n]\|\}/gi, '{'+'{winners||$1|$2|$3}'+'}');

s = s.replace(/\{\|[\s]*class[\s]*=["\s]*wikitable["\s]*style[\s]*=["\s]*(?:text\-align:[\s]*center[;\s]*|)margin[^;"]*auto[;\s]*(?:width[\s]*:[\s0-9px%]*[;\s]*|)[;\s"]*[\r\n](?:\|\-[^\r\n]*[\r\n]|)(?:!|\|[\t ]*\'\'\')((?:[^{}\[\]\|\r\n]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*?)(?:\'\'\'|[\t ])*[\r\n]\|\-[^\r\n]*[\r\n]\|((?:[^{}\[\]\|\r\n]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*)[\r\n]\|\}/gi, '{' + '{winners||$1|$2}' + '}');

s = s.replace(/\{\|[\s]*class[\s]*=["\s]*wikitable["\s]*style[\s]*=["\s]*(?:text\-align:[\s]*center[;\s]*|)margin[^;"]*auto[;\s]*(?:width[\s]*:[\s0-9px%]*[;\s]*|)[;\s"]*[\r\n](?:\|\-[^\r\n]*[\r\n]|)(?:!|\|[\t ]*\'\'\')((?:[^{}\[\]\|\r\n]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*?)(?:\'\'\'|[\t ])*[\r\n]\|\-[^\r\n]*[\r\n]\|((?:[^{}\[\]\|\r\n]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*)[\r\n]\|\-[^\r\n]*[\r\n]\|((?:[^{}\[\]\|\r\n]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*)[\r\n]\|\}/gi, '{' + '{winners||$1|$2|$3}' + '}');

s = s.replace(/\{\|[^\r\n]*[\r\n]\|\-[^\r\n]*[\r\n]\|[ ]*\{\{nowrap\|Home ╲ Away\}\}[ ]*([^\r\n]*)/g, '{'+'{fb r2 header|nt=12|$1}'+'}');

lt='';

while (s != lt) {

lt = s;

s = s.replace(/(\{\{winners[^{}]*)'''/gi, '$1');

s = s.replace(/(\{\{winners[^{}]*)<[\/\s]*br[\/\s]*>[\s]*(\||\}\})/gi, '$1$2');

s = s.replace(/(\{\{winners[\s]*\|[\s]*\|(?:[^{}\[\]\|\r\n]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*)<[\/\s]*br[\/\s]*>((?:[^{}\[\]\|\r\n]|\{\{[^{}]*\}\}|\[\^\[\*\]\])*\}\})/gi, '$1|$2');

s = s.replace(/(\{\{winners[^{}]*)[\s]*<[\/\s]*br[\/\s]*>[\s]*([A-Za-z0-9]+)[\s]*title[\s]*(\}\})/gi, '$1|$2$3');

s = s.replace(/([\r\n!]![^\|\r\n]*\|(?:Pos|Team|P|Pld|W|D|L|F|A|GF|GA|GD|Pts|Notes|)[ ]*)[\r\n](![^\|\r\n]*\|(?:Pos|Team|P|Pld|W|D|L|F|A|GF|GA|GD|Pts|Notes|)[ ]*(?:[\r\n]|!!))/g, '$1 !$2');

//s = s.replace(/()([^\r\n]*[\r\n])![ ]*(?:bgcolor|style)[^\|]*\|[ ]*/g, '$2| $1');

//s = s.replace(/([^\r\n]*[\r\n](?:\|[\-\}]))/g, '$1');

s = s.replace(/(\{\{fb r2 header\|nt[ ]*=[0-9 ]*\|[^{}=]*)\|\|[ ]*width[ ]*=[0-9px ]*\|/g, '$1|');

s = s.replace(/(\{\{)[_ ]*([Ff]b[_ ]+cl2?[_ ]+team)[_ ]*(\|(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*wpts[ ]*=[0-9 ]*)(\||\}\})/g, '$1$2$4$3$5');

s = s.replace(/(\{\{)[_ ]*([Ff]b[_ ]+cl2?[_ ]+team)[_ ]*\|[ ]*wpts[ ]*=[ ]*2[ ]*(\|)/g, '$1$2 2pts$3');

s = s.replace(/(\{\{)[_ ]*([Ff]b[_ ]+cl2?[^\r\n]*)\|[ ]*nat[ ]*=[ ]*(\||\}\})/g, '$1$2$3');

s = s.replace(/(\{\{)[_ ]*([Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*t[ ]*=(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*nat[ ]*=[^\|\{\}]*)(\||\}\})/g, '$1$2$4$3$5');

s = s.replace(/(\{\{)[_ ]*([Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*nat[ ]*=[ ]*([^\{\}\|]*)(\|[ ]*t[ ]*=)[ ]*/g, '$1$2$4 {'+'{flagicon|$3}'+'} ');

s = s.replace(/(\{\{)[_ ]*([Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*nat[ ]*=[ ]*([^\{\}\|]*?)[ ]*\|[ ]*var[ ]*=[ ]*([0-9]+)[ ]*(\|[ ]*t[ ]*=)[ ]*/g, '$1$2$5 {'+'{flagicon|$3|$4}'+'} ');

s = s.replace(/(\{\{)[_ ]*([Ff]lagicon)[_ ]*(\|)[\s]*([^{}]*?)([\s]*)(\}\})[\t ]+/g, '$1$2$3$4$6$5 ');

}

s = s.replace(/\{\|[ ]*class="wikitable[^\r\n]*[\r\n](?:(?:!(?:[\t ]|colspan=[0-9]+[!\|]*(?:Home|Away|Total))*[\r\n])*|)(?:\|-[^\r\n]*[\r\n]|)![^\r\n]*Pos[^\r\n]*Pld[^\r\n]*W[^\r\n]*D[^\r\n]*L[^\r\n]*W[^\r\n]*D[^\r\n]*L[^\r\n]*GA[^\r\n]*Pts[^\r\n]*[\r\n]/g, '{'+'{fb ha header|sort=y|gavg=y}'+'}\n');

s = s.replace(/\{\|[ ]*class="wikitable[^\r\n]*[\r\n](?:(?:!(?:[\t ]|colspan=[0-9]+[!\|]*(?:Home|Away|Total))*[\r\n])*|)(?:\|-[^\r\n]*[\r\n]|)![^\r\n]*Pos[^\r\n]*Pld[^\r\n]*W[^\r\n]*D[^\r\n]*L[^\r\n]*W[^\r\n]*D[^\r\n]*L[^\r\n]*GD[^\r\n]*Pts[^\r\n]*[\r\n]/g, '{'+'{fb ha header|sort=y}'+'}\n');

s = s.replace(/\{\|[ ]*class="wikitable[^\r\n]*[\r\n](?:\|-[^\r\n]*[\r\n]|)![^\|\r\n]*\|[\t ]*\{\{Tooltip\|[ ]*Pos(?:[\r\n]|[^\-])*W(?:[\r\n]|[^\-])*D(?:[\r\n]|[^\-])*L(?:[\r\n]|[^\-])*([\r\n]\|\-)/g, '{'+'{fb cl header}' + '}$1');

s = s.replace(/\{\|[ ]*class="wikitable[^\r\n]*[\r\n][!\|]+[\s]*Pos[\s]*[!\|]+[\s]*Club[\s]*[!\|]+[\s]*P[\s]*[!\|]+[\s]*W[\s]*[!\|]+[\s]*D[\s]*[!\|]+[\s]*L[\s]*[!\|]+[\s]*GF[\s]*[!\|]+[\s]*GA[^\r\n]*[\r\n]/gi, '{'+'{fb cl header|sort=y}'+'}\n');

s = s.replace(/±[\t ]*0([\t ]*\|)/g, '+0$1');

s = s.replace(/–/gi, '–');

s = s.replace(/(\|[ ]*season[ ]*=[\t ]*)[\t \']*?([0-9][0-9][0-9][0-9])[\-–]([0-9][0-9]+)[\' ]*/g, '$1$2–$3');

s = s.replace(/(\|[ ]*(?:next|prev)season[ ]*=[\t ]*)[\'][\']+[\t ]*(\[\^\[\*\]\])[\t ]*[\'][\']+/g, '$1$2');

s = s.replace(/(\|[ ]*(?:next|prev)season[ ]*=[\t ]*\[\[[^\[\]\|]*\|)[\' ]*([^\|\[\]\']*)[\' ]*(\]\])/g, '$1$2$3');

s = s.replace(/(\[\[)([^\|\[\]]*) ([0-9][0-9][0-9][0-9])([\-–])([0-9][0-9]+)(#[^\|\[\]]*|)(\||\]\])/g, '$1{'+'{subst:#ifexist:$3–$5 $2|$3–$5 $2|{'+'{subst:#ifexist:$2 $3$4$5|$2 $3$4$5|$3–$5 $2}'+'}'+'}'+'}$6$7');

s = s.replace(/(\{\{[_ ]*(?:[Ss]ee[_ ]*[Aa]lso|[Dd]etails|[Mm]ain(?:[_ ]+article|))\|)([^\|\[\]]*) ([0-9][0-9][0-9][0-9])([\-–])([0-9][0-9]+)(#[^\|\[\]]*|)(\||\}\})/g, '$1{'+'{subst:#ifexist:$3–$5 $2|$3–$5 $2|{'+'{subst:#ifexist:$2 $3$4$5|$2 $3$4$5|$3–$5 $2}'+'}'+'}'+'}$6$7');

s = s.replace(/(\{\{[_ ]*(?:[Ss]ee[_ ]*[Aa]lso|[Dd]etails|[Mm]ain(?:[_ ]+article|))\|)([0-9][0-9][0-9][0-9])([\-])([0-9][0-9]+)( [^{}\|#]*)/g, '$1{'+'{subst:#ifexist:$2–$4$5|$2–$4$5|$2$3$4$5}'+'}');

s = s.replace(/(\[\[)(Russian[^\|\[\]]*) ([0-9][0-9][0-9][0-9])(#[^\|\[\]]*|)(\||\]\])/g, '$1{'+'{subst:#ifexist:$3 $2|$3 $2|$2 $3}'+'}$4$5');

s = s.replace(/(\{\{[_ ]*(?:[Ss]ee[_ ]*[Aa]lso|[Dd]etails|[Mm]ain(?:[_ ]+article|))\|)(Russian[^\|\[\]]*) ([0-9][0-9][0-9][0-9])(#[^\|\[\]\{\}]*|)(\||\}\})/g, '$1{'+'{subst:#ifexist:$3 $2|$3 $2|$2 $3}'+'}$4$5');

s = s.replace(/(\[\[)([0-9][0-9][0-9][0-9])[\-–]([0-9][0-9]+) ([^\|\[\]]*\|[^\[\]\|]*)\2[\-–]\3/g, '$1$2–$3 $4$2–$3');

s = s.replace(/(\[\[)([0-9][0-9][0-9][0-9])[\-–]([0-9][0-9]+) ([^\|\[\]]*(?:\||\]\]))/g, '$1$2–$3 $4');

// s = s.replace(/[\t ]*[\r\n]*[\t ]*[\r\n]*(\|[\t ]*match_)/g, '\n\n$1');

lt = '';

while (s != lt) {

lt = s;

s = s.replace(/(\|[\t ]*(?:match|name)_)([^=_\t ]*)((?:[\t ]*|_[^=]*)=[^\r\n]*[\r\n])[\t ]*[\r\n](\|[\t ]*match_)\2/g, '$1$2$3$4$2');

s = s.replace(/\{\{[_ ]*[Ff]b[_ ]+rbr[_ ]+t[_ ]+pos[_ ]*\|[ ]*r[ ]*=[ ]*[0-9]+[ ]*\|[ ]*tl[ ]*=[ ]*(\[\^\[\*\]\])[ ]*\|/g, '|-\n| $1 ||');

s = s.replace(/()([0-9\s]*)\|/g, '|| $2 $1');

s = s.replace(/()([0-9\s]*)\}\}/g, '|| $2');

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+r2[_ ]+header[_ ]*\|[\s]*/g, '$1fb r2 header|');

s = s.replace(/(\{\{fb r2 header\|[^{}]*)[\s]+(\||=|\}\})/g, '$1$2');

s = s.replace(/(\{\{fb r2 header\|[^{}]*(?:\||=))[\s]+/g, '$1');

}

if(0) {

lt = '';

s = s.replace(/(\{\{)(#invoke:sports table)/g, '$1§§§$2¶¶¶');

while (s != lt) {

lt = s;

s = s.replace(/(¶¶¶)((?:\{\{[^{}]*\}\}|[^{}\r\n])*)/g, '$2$1');

s = s.replace(/(¶¶¶)([\r\n]*)/g, '$2$1');

s = s.replace(/(¶¶¶)\}\}[\s]*\{\{col[\- ][^{}]*\}\}[\s]*\{\{#invoke:sports results\|main/gi, '\n|show_matches=y§§§$1');

s = s.replace(/(?:\{\{col[\- ][^{}]*\}\}|[\s])*(\{\{)§§§(#invoke:)/g, '\n$1$2');

s = s.replace(/¶¶¶(\}\})[\s]*\{\{col[\- ][^{}]*\}\}/g, '$1');

s = s.replace(/(§§§)([\s]*\|matches_style=[^\|\r\n]*[\r\n]*)/g, '$2$1');

s = s.replace(/(§§§)([\s]*\|solid_cell=[^\|\r\n]*[\r\n]*)/g, '$2$1');

s = s.replace(/(§§§)(?:[\s]*\|team[0-9]+=[^\|\r\n]*)+/g, '$1');

s = s.replace(/(\|[ ]*name_[^=]*=[^\r\n]*[\r\n])([^{}]+)(§§§)/g, '$2$1$3');

s = s.replace(/(\|[ ]*update[ ]*=[^\r\n\|\[\]]*[\r\n])((?:\{\{[^{}]*\}\}|[^{}])*[\r\n])(\|[ ]*update[ ]*=)/g, '$2$1$3');

s = s.replace(/(\|[ ]*source[ ]*=[^\r\n\|\[\]]*[\r\n])((?:\{\{[^{}]*\}\}|[^{}])*[\r\n])(\|[ ]*source[ ]*=)/g, '$2$1$3');

}

s = s.replace(/(?:§§§|¶¶¶)/g, '');

}

s = s.replace(/(\{\{)[_ ]*[Ww]futsal/g, '$1fsw');

s = s.replace(/\{\{SANFLLadderHeader[ ]*\|[ ]*year[ ]*=[ ]*(2[01][0-9][0-9]|1[89][0-9][0-9])[ ]*\}\}/g, '{' + '{#invoke:Sports table|main|style=WDL\n|title=$1 Ladder\n|section=Ladder\n|loss_before_draw=true|for_against_style=points|use_point_percentage=y\n|winpoints=2|drawpoints=1\n');

s = s.replace(/\{\{SANFLLadderHeader[ ]*\|[ ]*title[ ]*=[ ]*([^\|\{}]*)[ ]*\}\}/g, '{' + '{#invoke:Sports table|main|style=WDL\n|title=$1\n|section=$1\n|loss_before_draw=true|for_against_style=points|use_point_percentage=y\n|winpoints=2|drawpoints=1\n');

s = s.replace(/\{\{[A-Z]+LadderHeader[ ]*\|[ ]*year[ ]*=[ ]*(2[01][0-9][0-9]|1[89][0-9][0-9])[ ]*\}\}/g, '{' + '{#invoke:Sports table|main|style=WDL\n|title=$1 Ladder\n|section=Ladder\n|loss_before_draw=true|for_against_style=points|use_point_percentage=y\n|winpoints=4|drawpoints=2\n');

s = s.replace(/\{\{[A-Z]+LadderHeader[ ]*\|[ ]*title[ ]*=[ ]*([^\|\{}]*)[ ]*\}\}/g, '{' + '{#invoke:Sports table|main|style=WDL\n|title=$1\n|section=$1\n|loss_before_draw=true|for_against_style=points|use_point_percentage=y\n|winpoints=4|drawpoints=2\n');

if(s.search(//g) >= 0) {

if(s.search(/[0-9][0-9][0-9]\.[0-9%]*[ ]*\|[ ]*[0-9]+[ ]*(?:\||\}\})/g) >=0 ) {

s = s.replace(/(\|[ ]*use_)point(_percentage)/g, '$1goal$2');

}

lt = '';

while (s != lt) {

lt = s;

var b = s.match(/\|winpoints[ ]*=[ ]*([0-9]+)[ ]*\|drawpoints[ ]*=[ ]*([0-9]+)/);

if (b) {

} else {

b = ['0', '4', '2']

}

s = s.replace(/(\{\{AFLLadderLine\|)([0-9]+)((?:\{\{[^{}]*\}\}|[^{}])*)\|(?:|[ ]*bkg[ ]*=)[ ]*(#[A-F0-9a-f]*)[; ]*(\}\})/g, '$1$2$3$5\n|col_Q=$4|text_Q=\n|result$2=Q');

s = s.replace(/()[\r\n\t ]*\{\{AFLLadderLine\|[ ]*([0-9]+)[ ]*\|[ ]*\{\{([A-Z]+)[\t ]+([^\t {}][^{}]*[^\t {}])[\t ]*(\}\}[^\|]*)\|[ ]*[0-9]+[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*[0-9\.%]+[ ]*\|[ ]*([0-9]+)[ ]*\}\}/g, '\n|team$2=$4|name_$4={'+'{$3 $4$5|win_$4=$6|loss_$4=$7|draw_$4=$8|pf_$4=$9|pa_$4=$10|adjust_points_$4={'+'{subst:#expr:$11 - ' + b[1] + '*$6 - ' + b[2] + '*$8}'+'}$1');

s = s.replace(/()[\r\n\t ]*\{\{AFLLadderLine\|[ ]*([0-9]+)[ ]*\|[ ]*(\[\[)([^\[\]]*\]\])([^\|]*)\|[ ]*[0-9]+[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*([0-9]+)[ ]*\|[ ]*[0-9\.%]+[ ]*\|[ ]*([0-9]+)[ ]*\}\}/g, '\n|team$2=$2|name_$2=$3$4$5|win_$2=$6|loss_$2=$7|draw_$2=$8|pf_$2=$9|pa_$2=$10|adjust_points_$2={'+'{subst:#expr:$11 - ' + b[1] + '*$6 - ' + b[2] + '*$8}'+'}$1');

s = s.replace(/()[\t\r\n ]*(\|col_[^\r\n]*|\|result[0-9]+[^\r\n]*)/g, '\n$2$1');

s = s.replace(/[\r\n\t ]*\{\{[A-Z]+LadderFooter[ ]*(?:|\|[ ]*year[ ]*=[ ]*[0-9]+)[ ]*\}\}/g, '\n|status_text_P=Premiers\n\n\n|class_rules = 1) points; 2) percentage; 3) number of points for.\n\n|update=complete\n|source=\n}'+'}');

s = s.replace(/(\|name)(_[^=]*=)([ ]*\{\{[^{}]*\}\})[ ]*\(P\)/g, '$1$2$3|status$2P');

var a = s.match(/\{\{subst:#expr:[ ]*([0-9]+)[ ]*\-[ ]*([0-9]+)\*([0-9]+)[ ]*\-[ ]*([0-9]+)\*([0-9]+)[ ]*\}\}/);

if (a) {

var ap = Number(a[1]) - Number(a[2])*Number(a[3]) - Number(a[4])*Number(a[5]);

var rexp = new RegExp('\\{\\{subst:#expr:[ ]*' + a[1] + '[ ]*\\-[ ]*' + a[2] + '[ ]*\\*[ ]*' + a[3] + '[ ]*\\-[ ]*' + a[4] + '[ ]*\\*[ ]*' + a[5] + '[ ]*\\}\\}');

s = s.replace(rexp, ap);

}

s = s.replace(/\|[ ]*adjust_points_[^=]*=[ ]*0([^0-9\.,])/g, '$1');

s = s.replace(/(\|[ ]*col_[^\r\n]*)([\r\n])(\|(?:status_|team[0-9]+)[^\r\n]*)/g, '$3$2$1');

s = s.replace(/(\|[ ]*result[0-9]+[^\r\n]*)([\r\n])(\|(?:status_|team[0-9]+)[^\r\n]*)/g, '$3$2$1');

s = s.replace(/(\|col_Q[^\r\n]*)([\r\n]\|result[0-9]+[^\r\n]*)[\r\n]\1/g, '$1$2');

s = s.replace(/(\|result[0-9]+[ ]*=[^\r\n]*)[\r\n](\|result[0-9]+[ ]*=)/g, '$1$2');

}

s = s.replace(/([^<>]*)/g, '$1');

s = s.replace(/(=[ ]*)(\[\0-9]+ [WANV]+FL season)((?:\{\{[^{}]*\}\}$4');

s = s.replace(/(\|[ ]*status_[^=\|\r\n]*=[^\|\r\n]*)(\|[ ]*win_[^\r\n\|=]*=[^\r\n]*)/g, '$2$1');

s = s.replace(/(\|[ ]*(?:name_|win_))/g, '\n$1');

lt = '';

while (s != lt) {

lt = s;

s = s.replace(/(\|[ ]*name_[^\r\n]*)([\r\n])(\|[ ]*(?:team[0-9]+|win_)[^\r\n]*)/g, '$3$2$1');

s = s.replace(/(\|[ ]*(?:name_|win_)[^\r\n]*)([\r\n])(\|[ ]*team[0-9]+[^\r\n]*)/g, '$3$2$1');

}

}

if (mw.config.get('wgNamespaceNumber') == 10) {

if(s.search(/[\t ]*[\r\n]/g) >= 0 && s.search(/\{\{#invoke:sports results/g) >= 0) {

s = s.replace(/[\t ]*[\r\n]/g, '');

s = s.replace(/(\|[ ]*)(res_col_header[ ]*=)/g, '$1only_pld_pts = {'+'{#if:{{'+'{expanded|}'+'}}|no|yes}'+'}\n$1show_matches = {'+'{#if:{{'+'{fixtures|}'+'}}|yes}' + '}\n$1$2');

s = s.replace(/\|[\t ]*update[ ]*=[ ]*complete[ ]*\|[ ]*source[ ]*=[ ]*[\r\n]\}\}[\t ]*[\r\n]\{\{#invoke:sports[ ]*results\|main[ ]*/g, '');

s = s.replace(/\|[ ]*solid_cell[ ]*=[ ]*grey[\t ]*(?:[\r\n]\|team[^\r\n]*)*/g, '');

s = s.replace(/\|[ ]*name_([^=]*)=[^\r\n]*\1[^\r\n]*[\r\n](\|[ ]*match_)/g, '$2');

s = s.replace(/(\|[ ]*name_)([^=]*=[\t ]*\{\{fb[wu]?)(\|[^\{\}]*\}\})/g, '$1$2$3|short_$2icon$3');

}

//if(s.search(/\|[ ]*show_limit[ ]*=/g) < 0) {

// s = s.replace(/(\|[ ]*)(res_col_header[ ]*=)/g, '$1show_limit = 5\n$1$2');

//}

if(s.search(/\[\[Category:/gi) < 0) {

s = s.replace(/(\{\{#invoke:(?:[^{}]|[\r\n]|\{\{[^{}]*\}\})*\}\})/, '$1\n['+'[Category:Association football standings templates]'+']\n');

}

}

var a = s.match(/\{\{subst:#expr:[ ]*([0-9]+)[ ]*\+[ ]*([0-9]+)[ ]*\}\}/);

if (a) {

var ap = Number(a[1]) + Number(a[2]);

var rexp = new RegExp('\\{\\{subst:#expr:[ ]*' + a[1] + '[ ]*\\+[ ]*' + a[2] + '[ ]*\\}\\}');

s = s.replace(rexp, ap);

}

a = s.match(/\{\{subst:#expr:[ ]*\-([0-9]+)[ ]*\+[ ]*([0-9]+)[ ]*\}\}/);

if (a) {

var ap = -Number(a[1]) + Number(a[2]);

var rexp = new RegExp('\\{\\{subst:#expr:[ ]*\\-' + a[1] + '[ ]*\\+[ ]*' + a[2] + '[ ]*\\}\\}');

s = s.replace(rexp, ap);

}

s = s.replace(/\[\[(?:[Ff][Ii][Ll][Ee]|[Ii][Mm][Aa][Gg][Ee])[_ ]*:[_ ]*[Gg]old[_ ]medal[_ ]icon\.svg\]\]/, '{' + '{gold1}' + '}');

s = s.replace(/\[\[(?:[Ff][Ii][Ll][Ee]|[Ii][Mm][Aa][Gg][Ee])[_ ]*:[_ ]*[Ss]ilver[_ ]medal[_ ]icon\.svg\]\]/, '{' + '{silver2}' + '}');

s = s.replace(/\[\[(?:[Ff][Ii][Ll][Ee]|[Ii][Mm][Aa][Gg][Ee])[_ ]*:[_ ]*[Bb]ronze[_ ]medal[_ ]icon\.svg\]\]/, '{' + '{bronze3}' + '}');

return s;

}

// -------------------------------------------------------------------------------- //

function wpFbUnpre(s)

{

// s = s.replace(/([\r\n])[\t ]*([^\r\n\{\}]*?)[\t ]+([0-9\-]+:[0-9\-]+|\-\-\-?|xxx|XXX)([\t ]+)/g, '$1{'+'{fb r2 team|t=$2}'+'}\n{'+'{fb r|s=$3}'+'}$4');

s = s.replace(/([\r\n])[\t ]*Team[\t ]+([^\t \r\n][^\t \r\n]*)([\t ]+[^\r\n]*[\r\n]\{\{fb r2 team)/g, '$1{' + '{fb r2 header|nt=1|$2}' + '}$3');

s = s.replace(/(Relegated)[\t ]*(

s = s.replace(/([\r\n])[\t ]*([^ \|\{\}\[\]\r\n][^ \|\{\}\[\]\r\n][^ \|\{\}\[\]\r\n](?: [^ \|\{\}\[\]\r\n][^ \|\{\}\[\]\r\n][^ \|\{\}\[\]\r\n])+)[\t ]*([\r\n][^\r\n\{\}]*?[\t ]+xxx)/g, '$1{'+'{fb r2 header|nt=1|$2}'+'}$3');

var lt = '';

var k = 1;

while (s != lt) {

lt = s;

s = s.replace(/(\{\{fb r|(?:gf|s|r)=[^{}]*\}\})[\t ]+([0-9\-]+:[0-9\-]+|\-\-\-?|xxx|XXX)([\t ]+|[\r\n])/g, '$1\n{' + '{fb r|s=$2}' + '}$3');

s = s.replace(/(\{\{fb r2 header\|nt=[0-9][0-9\+]*)(\|[^{}]*)(\}\})[\t ][\t ]*([^\r\n\t ][^\r\n\t ]*)/g, '$1+1$2|$4$3');

s = s.replace(/(\{\{fb r2 header|nt=[0-9\+]+\|)[\t ]*/g, '$1');

s = s.replace(/(\{\{fb r2 header|nt=[0-9\+]+\|[^{}]*)[\t ]*(\}\})/g, '$1$2');

s = s.replace(/(\{\{fb r2 header|nt=[0-9\+]+)(\|(?:[^ \|\{\}\[\]\r\n][^ \|\{\}\[\]\r\n][^ \|\{\}\[\]\r\n]\|)*)([^ \|\{\}\[\]\r\n][^ \|\{\}\[\]\r\n][^ \|\{\}\[\]\r\n])[\t ]+/g, '$1+1$2$3|');

var r2 = new RegExp('(\\{\\{fb r2 header\\|nt)='+k+'\\+1', 'g');

s = s.replace(r2, '$1='+(k+1));

k = k + 1;

}

lt = '';

while (s != lt) {

lt = s;

s = s.replace(/(\{\{fb r2 (?:header|team)[^{}]*\}\})[\t ]*([\r\n])([^\r\n\{\}]*?[\t ]+xxx[^\r\n]*)/g, '$1$2{'+'{fb r2 team|res=$3}'+'}');

}

lt = '';

while (s != lt) {

lt = s;

s = s.replace(/(\{\{fb r2 team)\|res=([^\r\n\{\}]*?)[\t ]+((?:[0-9]+\-[0-9]|xxx)[^\r\n\{\}]*)(\}\})/g, '$1|t=$2$4\n{'+'{fb r|s=$3$4');

s = s.replace(/(\{\{fb r\|s=)((?:[0-9]+\-[0-9]|xxx))[\t ]+((?:[0-9]+\-[0-9]|xxx)[^\r\n\{\}]*)(\}\})/g, '$1$2$4\n$1$3$4');

s = s.replace(/(\{\{fb r)\|s=[\t ]*(?:\-\-\-?|xxx)[\t ]*(\}\})/g, '$1|r=null$2');

s = s.replace(/(\{\{fb r)\|s=[\t ]*([0-9]+)[\t ]*[:\-][\t ]*([0-9]\}\})/g, '$1|gf=$2|ga=$3');

}

s = s.replace(/(\{\{fb r\|r=null\}\}[\t ]*[\r\n]*[\t ]*[\r\n])(\-\-|;)/g, '$1{'+'{end}'+'}\n$2');

var r = new RegExp('[\\r\\n][\\t ]*([0-9]+)[\\.\\t ]+([^\\r\\n]*[^\\r\\n0-9])[\\t ]+([0-9]+)[\\t ]+([0-9]+)[\\t ]+([0-9]+)[\\t ]+([0-9]+)[\\t ]+([0-9]+)[\\t \\-]+([0-9]+)[\\t ]+(\\-?[0-9]+)([\\t ]*\\[[^\\[\\]\\|]*\\]|)[\\t ]*([^\\[\\]0-9\\t\\r\\n ][^\\r\\n]*|)[\\r\\n]', 'g');

if(s.search(r) >= 0)

{

for(var i=0; i<2; i++) {

s = s.replace(r,'\n{{' + 'fb cl2 team|p=$1|t=$2|pld=$3|w=$4|d=$5|l=$6|gf=$7|ga=$8|pts=$9|pn=$10' + '}}\n{{' + 'fb cl3 qr|pld=0|competition=$11' + '}}\n');

}

s = s.replace(/\|[ ]*pn[ ]*=[ ]*(\}\})/g, '$1');

s = s.replace(/(\{\{(?:fb cl2 team|fb (?:ha|cl3) qr)[^{}]*pld=[^{}]*\}\}(?:[\t ]|[\r\n])*)\-[\t ]*\-[\t ]*\-[\t ]*\-[\-\t ]*/g, '$1{{' + 'fb cl break' + '}}');

s = s.replace(/([^\}\t \r\n](?:[\t ]|[\r\n])*)(\{\{fb cl2 team)/g, '$1{' + '{fb cl ' + 'header}' + '}\n$2');

s = s.replace(/(\{\{(?:fb cl2 team|fb (?:ha|cl3) qr)[^{}]*pld=[^{}]*\}\})((?:[\t ]|[\r\n])*[^\{\t \r\n])/g, '$1\n{{' + 'end' + '}}\n$2');

s = s.replace(/([\r\n])[\t ]+(\{\{fb cl)/g, '$1$2');

s = s.replace(/(\|[ ]*pn[ ]*=)[ ]*\[([^\[\]\|]*)\]/g, '$1$2');

s = s.replace(/(\{\{fb cl2 team(?:\{\{[^{}]*\}\}|[^{}])*\|[ ]*pts[ ]*=[^{}]*)(\|[ ]*pn[ ]*=[ ]*\-)([0-9]+)([ ]*\}\})/g, '$1|dp=$3$2$3$4');

s = s.replace(/(\{\{fb cl2 team(?:\{\{[^{}]*\}\}|[^{}])*\|[ ]*pts[ ]*=[^{}]*)(\|[ ]*pn[ ]*=[ ]*\+)([0-9]+)([ ]*\}\})/g, '$1|bp=$3$2$3$4');

s = s.replace(/(\{\{fb cl2 team(?:\{\{[^{}]*\}\}|[^{}])*\|[ ]*pts[ ]*=[^{}]*)(\|[ ]*pn[ ]*=[ ]*)([0-9]+)([ ]*(?:pts\.?|points)[ ]+deducted[ ]*\}\})/g, '$1|dp=$3$2$3$4');

s = s.replace(/(\{\{fb cl2 team(?:\{\{[^{}]*\}\}|[^{}])*\|[ ]*pts[ ]*=[^{}]*)(\|[ ]*pn[ ]*=[ ]*)([0-9]+)([ ]*bonus[ ]*(?:pts\.?|points)[ ]*\}\})/g, '$1|bp=$3$2$3$4');

s = s.replace(/(\{\{fb cl2 team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*pts[ ]*=[ ]*\-?[0-9]+/g, '$1');

s = s.replace(/(\{\{(?:fb (?:ha|cl3) qr|fb cl2 team)[^{}]*)\|[ ]*pld[ ]*=[ ]*[0-9]+/g, '$1');

s = s.replace(/\{\{fb (?:ha|cl3) qr\|competition=[\t ]*\}\}[\t ]*[\r\n]*/g, '');

}

s = s.replace(/(\{\{end\}\})[\t \r\n]*(

var pagename = mw.config.get('wgPageName');

if (pagename.search(/^199/) < 0 && pagename.search(/^20/) < 0) {

// s = s.replace(/fb cl2 team(\|p=)/g, 'fb cl2 team|wpts=2$1');

}

return s;

}

// -------------------------------------------------------------------------------- //

function wpFbUntable(s)

{

s = s.replace(/\{\|[\t ]*class="wikitable"[\t ]*style="text-align:[\t ]*center[;\t ]*"[\t ]*[\r\n]\|[ ]*Pos[ ]*\|\|[ ]*Club[ ]*[\r\n]\|P\|\|W\|\|D\|\|L\|\|GF\|\|GA\|\|GD\|\|Pts[ ]*[\r\n]\|[ ]*Notes[ ]*[\r\n]/g, '{' + '{fb cl header|t-width=auto}' + '}\n');

s = s.replace(/\{\|[\t ]*class="wikitable"[\t ]*style="text-align:[\t ]*center[;\t ]*"[\t ]*[\r\n]\|[ ]*Pos[ ]*\|\|[ ]*Club[ ]*[\r\n]\|P\|\|W\|\|D\|\|L\|\|GF\|\|GA\|\|GD\|\|Pts[ ]*[\r\n]/g, '{' + '{fb cl header|noqr=y|t-width=auto}' + '}\n');

s = s.replace(/(\{\{fb cl2 header[^{}]*)\|[ ]*noqr[ ]*=[yn ]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{fb cl2? header[^{}]*\}\})[\t ]*!![^\r\n]*/g, '$1');

s = s.replace(/([\r\n])(\|[ ]*align[ ]*=[" ]*left[" ]*\|)[ ]*([0-9]+\.)[ ]*/g, '$1|$3|$2 ');

s = s.replace(/−/g, '–');

// s = s.replace(/[\r\n]\|[\t ]*([\r\n]\|(?:\}|\-))/g, '$1');

if(s.search(/\[\[(?:File|Image)[\t ]*:[\t ]*(?:1uparrow[_ ]+green\.svg|1downarrow[_ ]+red.svg)/gi) >= 0) {

s = s.replace(/[\r\n]\|\|?[\t ]*(\[\[(?:File|Image)[\t ]*:[\t ]*(?:1uparrow[_ ]+green\.svg|1downarrow[_ ]+red.svg)[^\[\]]*\]\]|)[\t ]*\|(\|[\t ]*[0-9]+[\. ]*\|\|[\t ]*(?:[^\r\n\|\[\]]|\[\^\[\*\]\])*)/g, '\n$2 $1');

s = s.replace(/[\t ]*\[\[(?:File|Image)[\t ]*:[\t ]*1uparrow[_ ]+green\.svg[^\[\]]*\]\]/gi, ' (P)');

s = s.replace(/[\t ]*\[\[(?:File|Image)[\t ]*:[\t ]*1downarrow[_ ]+red\.svg[^\[\]]*\]\]/gi, ' (R)');

}

//s = s.replace(/(?:ff1515|FF3c3c|FF0000)/gi, 'FFCCCC');

//s = s.replace(/FF7F00/gi, 'D0F0C0');

var posres = 'pos';

var legendpos = 'br';

if (s.search(/\|[\t ]*[WDL][\t ]*(?:[\r\n]|\|\|)/g) >= 0) {

posres = 'res';

legendpos = 'b';

}

function myRowClean(ss) {

ss = ss.replace(/([\t ]*[\r\n])[\t ]*[\r\n]/g, '$1');

ss = ss.replace(/()[\t ]*\|\|*/g, '$1\n|');

ss = ss.replace(/([\r\n])\|[\t ]*(\|\||[\r\n][\t ]*\|)/g, '$1|–$2');

ss = ss.replace(/()[\t ]*[\r\n][!\|](?:[\t ]*rowspan[\t ]*=[" ]*2[" ]*\||[\t ]*style[\t ]*=[\t "]*text-align[\t ]*:[\t ]*(?:left|center)[;\t "]*\||[\t ]*v?align[\t ]*=[" ]*(?:left|center|right|top)[" ]*\||[\t ]*\|)/gi, '$1\n|');

ss = ss.replace(/([\r\n])![\t ]*([0-9])/g, '$1|$2');

return ss

}

var lt='';

var k=0;

while(lt != s && k < 100) {

lt = s;

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+rbr[_ ]+pos[_ ]+header[^{}]*sort[^{}]*\}\}[\t ]*(?:[\r\n][\t ]*|)[\r\n]\|\-[^\r\n]*[\r\n]\|(?:[\t ]*v?align[\t ]*=[\t "]*[a-z]+[\t "]*\||[\t ]*style[\t ]*=[\t "]*text-align[\t ]*:[\t ]*(?:left|center)[;\t "]*\||)[\t ]*((?:\{\{flagicon[^{}]*\}\}[\t ]*|)\[\^\[\*\]\]|[^\[\]\|\r\n]*)[\t ]*([\r\n]|\|\|)/gi, '$1#invoke:sports rbr table|table|sortable=y|legendpos=' + legendpos + '\n|team' + (k+1) + '=$2\n|' + posres + (k+1) + '=$3');

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+rbr[_ ]+pos[_ ]+header[^{}]*\}\}[\t ]*(?:[\r\n][\t ]*|)[\r\n]\|\-[^\r\n]*[\r\n]\|(?:[\t ]*v?align[\t ]*=[\t "]*[a-z]+[\t "]*\||[\t ]*style[\t ]*=[\t "]*text-align[\t ]*:[\t ]*(?:left|center)[;\t "]*\||)[\t ]*(\[\^\[\*\]\]|[^\[\]\|\r\n]*)[\t ]*([\r\n]|\|\|)/gi, '$1#invoke:sports rbr table|table|legendpos=' + legendpos + '\n|team' + (k+1) + '=$2\n|' + posres + (k+1) + '=$3');

s = s.replace(/[\t ]*[\r\n]*\|\-[^\r\n]*[\r\n]\|(?:[\t ]*v?align[\t ]*=[\t "]*[a-z]+[\t "]*\||[\t ]*style[\t ]*=[\t "]*text-align[\t ]*:[\t ]*(?:left|center)[;\t "]*\||)[\t ]*((?:\{\{flagicon[^{}]*\}\}[\t ]*|)\[\^\[\*\]\]|[^\[\]\|\r\n]*)[\t ]*([\r\n]|\|\|)/g, '\n|team' + (k+1) + '=$1\n|' + posres + (k+1) + '=$2');

if (s.search(/FB POS UNSUBST/g) >= 0) {

for (var kp=0; kp<100; kp++) {

s = s.replace(/()[\t ]*[\r\n]\|*([^\|\-\}])/g, '$1||$2');

s = s.replace(/([\t ]*\|\|)[\t ]*bgcolor=#bbf3bb[\t ]*\|[\t ]*([A-Z0-9][A-Z0-9][A-Z0-9])[\t ]*(\||[\r\n])/g, '$1W$2$3');

s = s.replace(/([\t ]*\|\|)[\t ]*bgcolor=#ffffbb[\t ]*\|[\t ]*([A-Z0-9][A-Z0-9][A-Z0-9])[\t ]*(\||[\r\n])/g, '$1D$2$3');

s = s.replace(/([\t ]*\|\|)[\t ]*bgcolor=#ffbbbb[\t ]*\|[\t ]*([A-Z0-9][A-Z0-9][A-Z0-9])[\t ]*(\||[\r\n])/g, '$1L$2$3');

s = s.replace(/()[\t ]*\|\|([\t ]*style[\t ]*=[^\|]*\||[\t ]*bgcolor[^\|]*\||)[\t \']*([HAWDL0-9PBC=]*(?:[^<>]*<\/sup>|))[\t \']*(\|\||[\r\n])/g, '$3/$1$4');

s = s.replace(/()[\t ]*\|\|[\t \']*(\[\\[\*\|[HA]\]\])[\t \']*(\|\||[\r\n])/g, '$2/$1$3');

}

s = s.replace(/\/[\t ]*[\t ]*\|\|\|?[\t ]*([\r\n]\|\-|[\r\n]\|\})/g, '/$1');

s = s.replace(/\/[\t ]*([\r\n]\|\-|[\r\n]\|\})/g, '$1');

s = s.replace(/[\t ]*\|\|\|?[\t ]*([\r\n]\|\-|[\r\n]\|\})/g, '/$1');

s = s.replace(/([\r\n]\|\-|[\r\n]\|\})/g, '$1');

s = s.replace(/[\t ]*[\r\n]\|\-[^\r\n]*[\r\n]\|\}/g, '\n}}');

s = s.replace(/[\t ]*[\r\n]\|\}/g, '\n}}');

}

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+ha[_ ]*(?:qr|team|header|hth)(?:[^{}]|\{\{[^{}]*\}\})*\}\})[\t ]*(?:[\r\n][\t ]*|)([\r\n])\|\-[ ]*bgcolor[\t ]*=[\t "]*([^"\|\[\]\{\}\r\n]*)[\t "]*([\r\n])/gi, '$1$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+ha[_ ]*(?:qr|team|header|hth)(?:[^{}]|\{\{[^{}]*\}\})*\}\})[\t ]*(?:[\r\n][\t ]*|)([\r\n])\|\-[ ]*style[\t ]*=[\t "]*(?:vertical-align:top;[\t ]*|text-align:left;[\t ]*)*(?:background:[\t ]*|background\-color:[\t ]*)([^"\|\[\]\{\}\r\n;]*)[\t; "]*([\r\n])/gi, '$1$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+ha[_ ]*(?:qr|team|header|hth)(?:[^{}]|\{\{[^{}]*\}\})*\}\})[\t ]*(?:[\r\n][\t ]*|)([\r\n])\|\-[ ]*([\r\n])/gi, '$1$2$3');

s = s.replace(/([\t ]*[\r\n]\|)\|/g, '$1');

s = s.replace(/[\t ]*[\r\n](\|\})/g, '$1');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)\.?[\t \']*([\r\n\t ]*\|)/g, '{' + '{FB HA TEAM|p=$3$1HAT$2$4');

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*((?:\{\{[^{}]*\}\}|[^\[\]\{\}\|\r\n=\']|\'\'\'(?: |[\t ])*\'\'\'|\[\^\[\*\]\])*)[\t \']*(\/]*>[^<>]*<\/ref>|)([\r\n\t ]*\|)/g, '{' + '{FB HA TEAM|t=$3$4$1HAN$2$5');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*((?:\{\{[^{}]*\}\}|[^\[\]\{\}\|\r\n=\']|\'\'\'(?: |[\t ])*\'\'\'|\[\^\[\*\]\])*)[\t \']*((?:\/]*>[^<>]*<\/ref>|\/]*\/>|\'*\([A-Z\.]*\)\'*|[\t ])*)([\r\n\t ]*\|)/g, '|t=$3$4$1HAN$2$5');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '$1HW$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|hw=$3$1HD$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|hd=$3$1HL$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|hl=$3$1HGF$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|hgf=$3$1HGA$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|hga=$3$1AW$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|aw=$3$1AD$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|ad=$3$1AL$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|al=$3$1AGF$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|agf=$3$1AGA$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|aga=$3$1HAGF$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '$1HAGA$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '$1HAGR$2$4');

s = myRowClean(s);

for(var hh=0; hh<2; hh++) {

s = s.replace(/()[\t ]*[\r\n](?:\|[\t ]*style[^\|]*|)\|[\t \']*([0-9\.]+)[\t \']*([\r\n\t ]*\|)/g, '$1GD$2$4');

s = s.replace(/()[\t ]*[\r\n](?:\|[\t ]*style[^\|]*|)\|[\t \']*([\-\+−–]?[\t ]*[0-9\.]+)[\t \']*([\r\n\t ]*\|)/g, '$1GD$2|$3$4');

ss = myRowClean(s);

}

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[23]?[_ ]*(?:qr|team|header|hth)(?:[^{}]|\{\{[^{}]*\}\})*\}\}[\t ]*(?:[\r\n][\t ]*|[\r\n]\|\-[^\r\n]*))text\-align[ ]*:[ ]*(?:left|right|center)[; ]*/gi, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[23]?[_ ]*(?:qr|team|header|hth)(?:[^{}]|\{\{[^{}]*\}\})*\}\}[\t ]*(?:[\r\n][\t ]*|[\r\n]\|\-[^\r\n]*))vertical\-align[ ]*:[ ]*top[; ]*/gi, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[23]?[_ ]*(?:qr|team|header|hth)(?:[^{}]|\{\{[^{}]*\}\})*\}\}[\t ]*(?:[\r\n][\t ]*|[\r\n]\|\-[^\r\n]*))style[ ]*=[";\t ]*([\r\n])/gi, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[23]?[_ ]*(?:qr|team|header|hth)(?:[^{}]|\{\{[^{}]*\}\})*\}\})[\t ]*(?:[\r\n][\t ]*|)([\r\n])\|\-(?:v?align[ ]*=['" ]*(?:left|right|center|top)['" ]*|[\t ])*bgcolor[\t ]*=[\t "]*([^"\|\[\]\{\}\r\n]*)[\t "]*(?:v?align[ ]*=[" ]*[a-z]+[" ]*|width[ ]*=["0-9 ]+)*([\r\n])/gi, '$1$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[23]?[_ ]*(?:qr|team|header|hth)(?:[^{}]|\{\{[^{}]*\}\})*\}\})[\t ]*(?:[\r\n][\t ]*|)([\r\n])\|\-(?:v?align[ ]*=['" ]*(?:left|right|center|top)['" ]*|[\t ])*style[\t ]*=[\t "]*(?:vertical-align:top;[\t ]*|text-align:left;[\t ]*)*(?:background:[\t ]*|background\-color:[\t ]*)([^"\|\[\]\{\}\r\n;]*)[\t; "]*(?:align[ ]*=[" ]*[a-z]+[" ]*|width[ ]*=["0-9 ]+)*([\r\n])/gi, '$1$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[23]?[_ ]*(?:qr|team|header|hth)(?:[^{}]|\{\{[^{}]*\}\})*\}\})[\t ]*(?:[\r\n][\t ]*|)([\r\n])\|\-(?:v?align[ ]*=['" ]*(?:left|right|center|top)['" ]*|[\t ])*([\r\n])/gi, '$1$2$3');

s = s.replace(/([\t ]*[\r\n]\|)\|/g, '$1');

s = s.replace(/[\t ]*[\r\n](\|\})/g, '$1');

s = s.replace(/[\t ]*[\r\n](\{\{fb cl footer)/g, '$1');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([=–0-9]+|\[\[#[^\[\]]*\]\]|\{\{(?:gold1|silver2|bronze3)\}\})\.?[\t \']*([\r\n\t ]*\|)/g, '{' + '{FB CL2 TEAM|p=$3$1T$2$4');

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*((?:\{\{[^{}]*\}\}|[^\[\]\{\}\|\r\n=\']|\'\'\'(?: |[\t ])*\'\'\'|\[\^\[\*\]\]|\([A-Z, ]+\))*)[\t \']*(\/]*>[^<>]*<\/ref>|)([\r\n\t ]*\|)/g, '{' + '{FB CL2 TEAM|t=$3$4$1N$2$5');

s = myRowClean(s);

if (s.search(/group[ ]*=[ ]*[a-z]+/g) >= 0) {

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*((?:\{\{[^{}]*\}\}|[^\[\]\{\}\|\r\n=]|\'\'\'(?: |[\t ])*\'\'\'|\[\^\[\*\]\])*?)[\t \']*((?:\/]*>[^<>]*<\/ref>|\/]*\/>|\'*\([A-Z\., ]*\)\'*|[\t ])*)([\r\n\t ]*\|)/g, '|group=$3$4$1T$2$5');

s = myRowClean(s);

}

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*((?:\{\{[^{}]*\}\}|[^\[\]\{\}\|\r\n=]|\'\'\'(?: |[\t ])*\'\'\'|\[\^\[\*\]\])*?)[\t \']*((?:\/]*>[^<>]*<\/ref>|\/]*\/>|\'*\([A-Z\., ]*\)\'*|[\t ])*)([\r\n\t ]*\|)/g, '|t=$3$4$1N$2$5');

s = myRowClean(s);

if (s.search(/pts_?first[ ]*=[ ]*[a-z]+/g) >= 0) {

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9–]+)[\t \']*([\r\n\t ]*\|)/g, '$1PT$2$4');

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9–]+)[\t \']*([\+\-][0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|pn=$4$1PT$2$5');

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9–]+)[\t \']*([^<>]*)<\/sup>[\t \']*([\r\n\t ]*\|)/g, '|pn=$4$1PT$2$5');

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9–]+)[\t \']*([\*†‡]+)[\t \']*([\r\n\t ]*\|)/g, '|pn=$4$1PT$2$5');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9–]+)[\t \']*([\r\n\t ]*\|)/g, '$1W$2$4');

} else {

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9–]+)[\t \']*\|\|[\t ]*\|\|[\t ]*\|\|[\t ]*\|\|[\t ]*\|\|[\t ]*\|\|[\t ]*\|(\|)/g, '|pld=$3|gf=–|ga=–$1PT$2$4');

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9–]+)[\t \']*\|\|[\t ]*\|\|[\t ]*\|\|[\t ]*\|(\|)/g, '|pld=$3$1GF$2$4');

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9–]+)[\t \']*([\r\n\t ]*\|)/g, '$1W$2$4');

}

s = s.replace(/()[\t ]*[\r\n]*[\t ]*([\r\n]\|[\}\-])/g, '|w=–|d=–|l=–|gf=–|ga=–$1PT$2$3');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9\/–\?]+)[\t \']*([\r\n\t ]*\|)/g, '|w=$3$1D$2$4');

s = myRowClean(s);

if(s.search(/\|[ ]*OT[ ]*=[ ]*[y1]/gi) >=0) {

s = s.replace(/()/g, '$1OTW$2');

s = myRowClean(s);

}

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9\/–\?]+)[\t \']*([\r\n\t ]*\|)/g, '|ow=$3$1OTL$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9\/–\?]+)[\t \']*([\r\n\t ]*\|)/g, '|ol=$3$1L$2$4');

s = myRowClean(s);

if(s.search(/nodraw[ ]*=[ ]*[y1]/g) >=0) {

s = s.replace(/()/g, '$1L$2');

}

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9\/–\?]+)[\t \']*([\r\n\t ]*\|)/g, '|d=$3$1L$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9\/–\?]+)[\t \']*([\r\n\t ]*\|)/g, '|l=$3$1GF$2$4');

s = myRowClean(s);

if(s.search(/loss_before_(?:tie|draw)[ ]*=[ ]*[y1]/g) >=0) {

s = s.replace(/(\|d=)([0-9]+)(\|l=)([0-9]+)()[\t ]*[\r\n]\|[\t \']*([0-9\/–\?]+)[\t \']*[–\-][\t \']*([0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|gf=$3|ga=$4$1GD$2$5');

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9\/–\?]+)[\t \']*([\r\n\t ]*\|)/g, '|gf=$3$1GA$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9\/–\?]+)[\t \']*([\r\n\t ]*\|)/g, '|ga=$3$1GD$2$4');

s = myRowClean(s);

if (s.search(/[ ]*show_tries[ ]*=[ ]*[a-z]+/g) >= 0) {

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([\-\+−–]?[\t ]*[0-9\.–\?]+)[\t \']*([\r\n\t ]*\|)/g, '$1TF$2$4');

s = myRowClean(s);

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([0-9\/–\?]+)[\t \']*([\r\n\t ]*\|)/g, '|tf=$3$1PT$2$4');

s = myRowClean(s);

}

s = s.replace(/()[\t ]*[\r\n]\|[\t \']*([\-\+−–]?[\t ]*[0-9\.–\?]+)[\t \']*([\r\n\t ]*\|)/g, '$1PT$2$4');

s = myRowClean(s);

s = s.replace(/[\t ]*[\r\n]\|[\t \']*([0-9–\?]+)[\t \']*([\r\n\t ]*\|)/g, '|$1}' + '}\n$3');

s = s.replace(/[\t ]*[\r\n]\|[\t \']*([0-9–\?]+)[\t \']*([\+\-][0-9]+)[\t \']*([\r\n\t ]*\|)/g, '|pn=$3|$1}' + '}\n$4');

s = s.replace(/[\t ]*[\r\n]\|[\t \']*([0-9–\?]+)[\t \']*([^<>\r\n]*)<\/sup>[\t \']*([\r\n\t ]*\|)/g, '|pn=$3|$1}' + '}\n$4');

s = s.replace(/[\t ]*[\r\n]\|[\t \']*([0-9–\?]+)[\t \']*([\*†‡]+)[\t \']*([\r\n\t ]*\|)/g, '|pn=$3|$1}' + '}\n$4');

s = s.replace(/[\t ]*[\r\n]\|[\t \']*([0-9–\?]+)[\t \']*(\{\{ref[^{}]*\}\})[\t \']*([\r\n\t ]*\|)/g, '|pn=$3|$1}' + '}\n$4');

s = s.replace(/[\t ]*[\r\n]\|[\t \']*([0-9–\?]+)[\t \']*(\/]*>[^<>]*<\/ref>|]*\/>)[\t \']*([\r\n\t ]*\|)/g, '|pn=$3|$1}' + '}\n$4');

s = s.replace(/[\t ]*[\r\n]()([\r\n\t ]*\|)/g, '|$1}' + '}\n$3');

s = s.replace(/(\{\{[Ff]b[_ ]+(?:ha[\t ]+|cl[0-9\t ]*)team(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\t \r\n]*\|[\|\t ]*([\r\n])/gi, '$1$2');

s = s.replace(/(\{\{[Ff]b[_ ]+(?:ha[\t ]+|cl[0-9\t ]*)team[^\r\n]*[\r\n][^\r\n]*)/gi, '$1');

s = s.replace(/(\{\{[Ff]b[_ ]+(?:ha[\t ]+|cl[0-9\t ]*)team[^\r\n]*[\r\n][^\r\n]*)<\/small>/gi, '$1');

s = s.replace(/(\{\{[Ff]b[_ ]+(?:ha[\t ]+|cl[0-9\t ]*)team[^\r\n]*[\r\n][^\r\n]*)<[\/]*br[^<>]*>/gi, '$1 ');

s = s.replace(/(\{\{[Ff]b[_ ]+cl[0-9\t ]*team(?:\{\{[^{}]*\}\}|[^{}])*\}\}[\t \r\n]*\|\|?[\t ]*)v?align[\t ]*=["' ]*(?:left|right|center|top)["' ]*\|/gi, '$1 ');

s = s.replace(/(\{\{[Ff]b[_ ]+cl[0-9\t ]*team(?:\{\{[^{}]*\}\}|[^{}])*\}\}[\t \r\n]*\|\|?[\t ]*)v?align[\t ]*=["' ]*(?:left|right|center|top)["' ]*(rowspan)/gi, '$1$2');

s = s.replace(/(\{\{[Ff]b[_ ]+cl[0-9\t ]*team(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\t \r\n]*\|\|*[^\|]*[\t ]*rowspan[\t ]*=[" ]*([0-9]+)[" ]*[^\|]*\|([^\r\n]*)/gi, '$1\n{' + '{fb cl3 qr|rows=$2|competition=$3}' + '}');

s = s.replace(/(\{\{[Ff]b[_ ]+cl[0-9\t ]*team(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\t \r\n]*\|\|*([^\}\-](?:[^\r\n=]|\/]*\/>|]*>[^<>]*<\/ref>)*)([\r\n])/gi, '$1\n{' + '{fb cl3 qr|competition=$2}' + '}$3');

s = s.replace(/(\{\{[Ff]b[_ ]+ha[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\t \r\n]*\|\|*[^\|]*[\t ]*rowspan[\t ]*=[" ]*([0-9]+)[" ]*[^\|]*\|([^\r\n]*)/gi, '$1\n{' + '{fb ha qr|rows=$2|competition=$3}' + '}');

s = s.replace(/(\{\{[Ff]b[_ ]+ha[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\t \r\n]*\|\|*([^\}\-](?:[^\r\n=]|\/]*\/>|]*>(?:<[\/]*br[^<>]*>|[^<>])*<\/ref>)*)([\r\n])/gi, '$1\n{' + '{fb ha qr|competition=$2}' + '}$3');

k = k + 1;

}

s = s.replace(//g, '');

s = s.replace(/(/g, '');

s = s.replace(//g, '');

var i = 0;

while(s.search(//g) >= 0 && s.search(//g) >= 0 && i < 50) {

m = s.match(/[\t ]*([HAWDL0-9PBC]*)/);

s = s.replace(/()/g, '| color_' + m[2].toString() + ' = ' + m[1].toString() + '| text_' + m[2].toString() + ' =\n$1');

var r1 = new RegExp('([\\t ]*' + m[2].toString() + '[\\t ]*(?:\/|[\\r\\n]))', 'g');

s = s.replace(r1, '$1');

i = i + 1;

}

s = s.replace(/(\|[\s]*color_[0-9]+[\s]*=[\s]*)((?:[A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9]|[A-F0-9][A-F0-9][A-F0-9])[\s]*\|)/gi, '$1#$2');

s = s.replace(/\|[ ]*color_W[ ]*=[ ]*#?[A-Fa-f]+[ ]*\|[ ]*text_W[ ]*=[ ]*[\r\n]/g, '| color_W = green2 | text_W = Win\n');

s = s.replace(/\|[ ]*color_D[ ]*=[ ]*#?[A-Fa-f]+[ ]*\|[ ]*text_D[ ]*=[ ]*[\r\n]/g, '| color_D = yellow2 | text_D = Draw\n');

s = s.replace(/\|[ ]*color_T[ ]*=[ ]*#?[A-Fa-f]+[ ]*\|[ ]*text_T[ ]*=[ ]*[\r\n]/g, '| color_T = yellow2 | text_T = Tie\n');

s = s.replace(/\|[ ]*color_L[ ]*=[ ]*#?[A-Fa-f]+[ ]*\|[ ]*text_L[ ]*=[ ]*[\r\n]/g, '| color_L = red2 | text_L = Loss\n');

s = s.replace(/([\t ]*[\r\n]*\}\})(?:|[\t ]|[\r\n])*Source:([^\r\n]*)<\/small>[\t ]*([\r\n])/g, '|source=$2$3$1\n');

s = s.replace(/([\t ]*[\r\n]*\}\})(?:|[\t ]|[\r\n])*Source:([^\r\n]*)[\t ]*([\r\n])/g, '|source=$2$3$1\n');

s = s.replace(/[\t ]*[\r\n]*(\}\})/g, '\n$1');

if(s.search(/FB CL2 TEAM/g) >= 0) {

s = s.replace(/FB CL2 TEAM/g, 'fb cl2 team');

// FIX THIS

// if(s.search(/[Ff]b cl2? header[^{}]*winpoints/g) < 0) {

// if( 'y' == myPrompt('2pts?', 'y', true) ) {

// s = s.replace(/(fb cl2? header[^{}]*)/g, '$1|winpoints=2');

// }

// }

}

if(s.search(/FB HA TEAM/g) >= 0) {

s = s.replace(/FB HA TEAM/g, 'fb cl2 team|ha=y');

if(s.search(/[Ff]b ha header[^{}]*winpoints/g) < 0) {

if( 'y' == myPrompt('2pts?', 'y', true) ) {

s = s.replace(/(fb ha header[^{}]*)/g, '$1|winpoints=2');

}

}

}

s = s.replace(/(\{\{)fb ha header/g, '$1fb cl header|ha=y');

s = s.replace(/([\r\n])\|\-[\t ]*[\r\n]\|[\t ]*colspan[\t ]*=[\t "]*(?:8|9|10|11|12|13)[\t "]*style[\t ]*=[\t "]*background(?:\-color|)[\t ]*:[\t ]*#CCC[C]*[;"\t ]*\|[\t ]*([\r\n])/g, '$1{' + '{fb cl break}}$2');

s = s.replace(/([\r\n])\|\-[^\r\n]*AAA[^\r\n]*[\r\n]\|[\t \|]*([\r\n])/g, '$1{' + '{fb cl break}}$2');

s = s.replace(/([\r\n])\|[\t ]*rowspan[ ]*=[ "]*([0-9]+)[ "]*\|[ ]*([^\r\n]*)([\r\n]\{\{[Ff]b[_ ]*(?:cl2[_ ]*team|cl[0-9]*[_ ]*footer|cl[0-9]*[_ ]*hth))/g, '$1{{fb cl3 qr|rows=$2|competition=$3}}$4');

s = s.replace(/([\r\n])\|([^\-\}\r\n][^\r\n]*|)([\r\n]\{\{[Ff]b[_ ]*(?:cl2[_ ]*team|cl[0-9]*[_ ]*footer|cl[0-9]*[_ ]*hth))/g, '$1{{fb cl3 qr|competition=$2}}$3');

s = s.replace(/(competition[ ]*=[ ]*[^\{\}\[\]\|]*)rowspan[\t ]*=[\t "]*([0-9]+)[\t "]*/g, 'rows=$2|$1');

s = s.replace(/(competition[ ]*=[ ]*)(?:style[ ]*=[" ]*[^"\|\{\}=]*"|)[\t ]*\|/g, '$1');

s = s.replace(/(competition[ ]*=[ ]*)((?:[^\{\}]|\{\{[^{}]*\}\})*)<\/small>(\}\})/g, '$1$2$3');

s = s.replace(/(bc[ ]*=)[ ]*((?:[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]|[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9])[ ]*(?:\||\}\}))/g, '$1#$2');

s = s.replace(/(\{\{[Ff]b[_ ]+(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\t ]*[\r\n]*[\t ]*[\r\n]\|\}/g, '$1\n{' + '{end}' + '}');

s = s.replace(/(\{\{[Ff]b[_ ]+cl2?[_ ]+team[0-9a-z_ ]*(?:\|[ ]*p[ ]*=[^\|\[\]\{\}]*|)\|[ ]*t[ ]*=(?:[\[\]\{\}\|]|\[\^\[\*\]\]|\{\{[^{}]*\}\})*)[' ]*\(C\)[' ]*(\|)/g, '$1|champion=y$2');

s = s.replace(/(\{\{[Ff]b[_ ]+cl2?[_ ]+team[0-9a-z_ ]*(?:\|[ ]*p[ ]*=[^\|\[\]\{\}]*|)\|[ ]*t[ ]*=(?:[\[\]\{\}\|]|\[\^\[\*\]\]|\{\{[^{}]*\}\})*)[' ]*\(D\)[' ]*(\|)/g, '$1|disqualified=y$2');

s = s.replace(/(\{\{[Ff]b[_ ]+cl2?[_ ]+team[0-9a-z_ ]*(?:\|[ ]*p[ ]*=[^\|\[\]\{\}]*|)\|[ ]*t[ ]*=(?:[\[\]\{\}\|]|\[\^\[\*\]\]|\{\{[^{}]*\}\})*)[' ]*\(P\)[' ]*(\|)/g, '$1|promoted=y$2');

s = s.replace(/(\{\{[Ff]b[_ ]+cl2?[_ ]+team[0-9a-z_ ]*(?:\|[ ]*p[ ]*=[^\|\[\]\{\}]*|)\|[ ]*t[ ]*=(?:[\[\]\{\}\|]|\[\^\[\*\]\]|\{\{[^{}]*\}\})*)[' ]*\(C,[ ]*P\)[' ]*(\|)/g, '$1|champion=y|promoted=y$2');

s = s.replace(/(\{\{[Ff]b[_ ]+cl2?[_ ]+team[0-9a-z_ ]*(?:\|[ ]*p[ ]*=[^\|\[\]\{\}]*|)\|[ ]*t[ ]*=(?:[\[\]\{\}\|]|\[\^\[\*\]\]|\{\{[^{}]*\}\})*)[' ]*\(C\)[' ]\(*P\)[' ]*(\|)/g, '$1|champion=y|promoted=y$2');

s = s.replace(/(\{\{[Ff]b[_ ]+cl2?[_ ]+team[0-9a-z_ ]*(?:\|[ ]*p[ ]*=[^\|\[\]\{\}]*|)\|[ ]*t[ ]*=(?:[\[\]\{\}\|]|\[\^\[\*\]\]|\{\{[^{}]*\}\})*)[' ]*\(R\)[' ]*(\|)/g, '$1|relegated=y$2');

s = s.replace(/(\{\{[Ff]b[_ ]+cl2?[_ ]+team[0-9a-z_ ]*(?:\|[ ]*p[ ]*=[^\|\[\]\{\}]*|)\|[ ]*t[ ]*=(?:[\[\]\{\}\|]|\[\^\[\*\]\]|\{\{[^{}]*\}\})*)[' ]*\(O\)[' ]*(\|)/g, '$1|playoffwinner=y$2');

for(var i=1; i<=20; i++) {

var j = '(?:' + (i+1);

for(var i2=(i+2); i2<=21; i2++) {

j = j + '|' + i2;

}

j = j + ')';

var k=0;

var r = new RegExp('(\\|[\\t \\r\\n]*(?:color_|text_)'

+ j + '[\\t \\r\\n]*=(?:[^\\[\\]\\|\\{\\}]|\\[\\^\\[\\*\\]\\]|\\{\\{[^\\{\\}]*\\}\\}|\\^\\[\\*\]|[\\r\\n])*)(\\|[\\t \\r\\n]*(?:color_|text_)'

+ i + '[\\t \\r\\n]*=(?:[^\\[\\]\\|\\{\\}]|\\[\\^\\[\\*\\]\\]|\\{\\{[^\\{\\}]*\\}\\}|\\^\\[\\*\]|[\\r\\n])*)', 'gi');

while( s.search(r) >= 0 && k < 100) {

s = s.replace(r, '$2$1');

k = k + 1;

}

}

for(var i=1; i<=20; i++) {

var r1 = new RegExp('(\\|[\\s]*color_'+i+')([\\s]*=[\\s]*)([^\\[\\]\\{\\}\\|\\s]*)([\\s]*\\|[\\s]*text_'

+i+')([\\s]*=[\\s]*[\\r\\n])\\|[\\s]*color_'+(i+1)+'[\\s]*=[\\s]*\\3[\\s]*\\|[\\s]*text_'

+(i+1)+'[\\s]*=[\\s]*[\\r\\n]');

s = s.replace(r1, '$1-'+(i+1)+'$2$3$4-'+(i+1)+'$5');

r1 = new RegExp('(\\|[\\s]*color_[0-9]+)\\-'+i+'([\\s]*=[\\s]*)([^\\[\\]\\{\\}\\|\\s]*)([\\s]*\\|[\\s]*text_[0-9]+)\\-'

+i+'([\\s]*=[\\s]*[\\r\\n])\\|[\\s]*color_'+(i+1)+'[\\s]*=[\\s]*\\3[\\s]*\\|[\\s]*text_'

+(i+1)+'[\\s]*=[\\s]*[\\r\\n]');

s = s.replace(r1, '$1-'+(i+1)+'$2$3$4-'+(i+1)+'$5');

r1 = new RegExp('(\\|[\\s]*color_[0-9]+)\\-'+i+'([\\s]*=[\\s]*)([^\\[\\]\\{\\}\\|\\s]*)([\\s]*\\|[\\s]*text_[0-9]+)\\-'

+i+'([\\s]*=[\\s]*[\\r\\n])\\|[\\s]*color_'+(i+1)+'\-([0-9]+)[\\s]*=[\\s]*\\3[\\s]*\\|[\\s]*text_'

+(i+1)+'\\-\\6[\\s]*=[\\s]*[\\r\\n]');

s = s.replace(r1, '$1-$6$2$3$4-$6$5');

}

s = s.replace(/\{\|[\t ]*class="wikitable"[\t ]*style="text-align:[\t ]*center[;\t ]*"[\t ]*[\r\n](?:\|\-[\t ]*[\r\n]|)![\t ]*width[\t ]*=[\t ]*[0-9]+[\t ]*\|[\t ]* [\t ]*[\r\n]![\t ]*width[\t ]*=[\t ]*[0-9]+[\t ]*\|((?:[^\|\r\n]|\[\^\[\*\]\])*[\r\n])/g, '{'+'{fb r2 header|nt=1|$1');

var lt = '';

var j = 1;

while (lt != s) {

lt = s;

var re2 = new RegExp('(\\{\\{fb r2 header\\|nt)=' + j + '(\\|[^\\r\\n\\{\\}]*)[\\r\\n]![\t ]*width[\t ]*=[\t ]*[0-9]+[\t ]*(\\|(?:[^\\|\\r\\n]|\\[\\^\\[\\*\\]\\])*[\\r\\n])', 'g');

j = j + 1;

s = s.replace(re2, '$1=' + j + '$2$3');

s = s.replace(/(\{\{fb r2 header[^{}\r\n]*)([\r\n]\|\-)/g, '$1}'+'}$2');

s = s.replace(/(\{\{fb r(?:2 header|)\|[^{}\r\n]*\}\})[\t ]*[\r\n](?:\|\-[^\r\n]*[\r\n]|)![^\[\]\r\n\|]*\|((?:[^\r\n\|]|\[\^\[\*\]\])*)([\r\n])/g, '$1$3{'+'{fb r2 team|t=$2}'+'}$3');

s = s.replace(/(\{\{fb r(?:2 team|)\|[^{}\r\n]*\}\})[\t ]*[\r\n][\|!][——][\t ]*[\r\n]/g, '$1\n{'+'{fb r|r=null}'+'}\n');

s = s.replace(/(\{\{fb r(?:2 team|)\|[^{}\r\n]*\}\})[\t ]*[\r\n]\|(\[\[[^\[\]\|]*\|[0-9]+–[0-9]+\]\]|[0-9]+–[0-9]+)[\t ]*[\r\n]/g, '$1\n{'+'{fb r|s=$2}'+'}\n');

}

s = s.replace(/(\|[ ]*w[ ]*=[^{}]*)()/g, '$2$1');

s = s.replace(//g, '');

s = s.replace(/(\|[ ]*pld[ ]*=[0-9 ]*\|[ ]*gf[ ]*=[0-9– ]*\|[ ]*ga[ ]*=[0-9– ]*)/g, '$1|bp=$2');

if (s.search(/loss_before_draw[ ]*=[ ]*true/) >= 0) {

s = s.replace(/(\|w[ ]*=[ ]*[0-9]+[ ]*)(\|d[ ]*=[ ]*)([0-9]+[ ]*)(\|l[ ]*=[ ]*)([0-9]+[ ]*)/g, '$1$4$3$2$5');

}

while(s.search(/\|[ ]*w[ ]*=[ ]*([0-9]+)[ ]*\|[ ]*ow[ ]*=[ ]*([0-9]+)[ ]*\|[ ]*ol[ ]*=[ ]*([0-9]+)/) >= 0) {

var wpts = 3;

var owpts = 2;

var olpts = 1;

var a = s.match(/\|[ ]*w[ ]*=[ ]*([0-9]+)[ ]*\|[ ]*ow[ ]*=[ ]*([0-9]+)[ ]*\|[ ]*ol[ ]*=[ ]*([0-9]+)/);

var bpts = Number(a[1]) - wpts*Number(a[2]) - owpts*Number(a[3]) - olpts*Number(a[4]);

var re = new RegExp('(\\|[ ]*w[ ]*=[ ]*' + a[2] + '[ ]*\\|[ ]*ow[ ]*=[ ]*' + a[3] + '[ ]*\\|[ ]*ol[ ]*=[ ]*' + a[4] + '[^{}]*)', 'g');

s = s.replace(re, '$1|bp=' + bpts);

}

while(s.search(/\|[ ]*w[ ]*=[ ]*([0-9]+)[ ]*(?:\|[ ]*l[ ]*=[ ]*[0-9]+[ ]*|)\|[ ]*d[ ]*=[ ]*([0-9]+)/) >= 0) {

var wpts = 3;

var dpts = 1;

if (s.search(/winpoints[ ]*=[ ]*2/g) >=0 || s.search(/wpts[ ]*=[ ]*2/g) >=0 ) {

wpts = 2;

}

if (s.search(/winpoints[ ]*=[ ]*4/g) >=0 || s.search(/wpts[ ]*=[ ]*4/g) >=0 ) {

wpts = 4;

}

if (s.search(/drawpoints[ ]*=[ ]*2/g) >=0 || s.search(/dpts[ ]*=[ ]*2/g) >=0 ) {

dpts = 2;

}

var a = s.match(/\|[ ]*w[ ]*=[ ]*([0-9]+)[ ]*(?:\|[ ]*l[ ]*=[ ]*[0-9]+[ ]*|)\|[ ]*d[ ]*=[ ]*([0-9]+)/);

var bpts = Number(a[1]) - wpts*Number(a[2]) - dpts*Number(a[3]);

var re = new RegExp('(\\|[ ]*w[ ]*=[ ]*' + a[2] + '[ ]*(?:\\|[ ]*l[ ]*=[ ]*[0-9]+[ ]*|)\\|[ ]*d[ ]*=[ ]*' + a[3] + '[^{}]*)', 'g');

s = s.replace(re, '$1|bp=' + bpts);

}

s = s.replace(/\|[ ]*(?:bp|adjust_points_[^=]*)=[ ]*0[ ]*([^0-9])/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(C\)[' ]*\(P\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|champion=y|promoted=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(C,[ ]*P\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|champion=y|promoted=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(C\)[' ]*\(Q\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|champion=y|qualified=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(C,[ ]*Q\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|champion=y|qualified=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(R\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|relegated=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(Q\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|qualified=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(O\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|playoffwinner=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(C\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|champion=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*bc[ ]*=[ ]*(?:white|#?f*)[ ]*(\||\}\})/gi, '$1$2');

if(s.search(/winpoints=2/g) < 0) {

if(s.search(/\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}₳])*\|w[ ]*=[ ]*([0-9]+)(?:\{\{[^{}]*\}\}|[^{}₳])*\|[ ]*bp[ ]*=[ ]*\-\1[\t ]*(?:\||\}\})/g) >= 0) {

alert('Attempting to adjust to 2 points!');

s = s.replace(/(\|[ ]*bp)([ ]*=)/g, '$1₳$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}₳])*\|w[ ]*=[ ]*0(?:\{\{[^{}]*\}\}|[^{}₳])*)(\}\})/g, '$1|bp₳=-0$2');

if(s.search(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}₳])*\}\})/g) < 0) {

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+header[^{}]*)/g, '$1|winpoints=2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}₳])*\|w[ ]*=[ ]*)([0-9]+)((?:\{\{[^{}]*\}\}|[^{}₳])*)\|[ ]*bp₳[ ]*=[ ]*\-\2[\t ]*(\||\}\})/g, '$1$2$3$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}₳])*\|w[ ]*=[ ]*)([0-9]+)((?:\{\{[^{}]*\}\}|[^{}₳])*)\|[ ]*bp₳[ ]*=[ ]*(\-?[0-9]+)(\||\}\})/g, '$1$2$3|bp={'+'{subst:#expr:$4+$2}'+'}$5');

} else {

s = s.replace(/(\|[ ]*bp)₳([ ]*=)/g, '$1$2');

}

}

}

var a = s.match(/\{\{subst:#expr:[ ]*([0-9]+)[ ]*\+[ ]*([0-9]+)[ ]*\}\}/);

if (a) {

var ap = Number(a[1]) + Number(a[2]);

var rexp = new RegExp('\\{\\{subst:#expr:[ ]*' + a[1] + '[ ]*\\+[ ]*' + a[2] + '[ ]*\\}\\}');

s = s.replace(rexp, ap);

}

a = s.match(/\{\{subst:#expr:[ ]*\-([0-9]+)[ ]*\+[ ]*([0-9]+)[ ]*\}\}/);

if (a) {

var ap = -Number(a[1]) + Number(a[2]);

var rexp = new RegExp('\\{\\{subst:#expr:[ ]*\\-' + a[1] + '[ ]*\\+[ ]*' + a[2] + '[ ]*\\}\\}');

s = s.replace(rexp, ap);

}

return s;

}

// -------------------------------------------------------------------------------- //

function wpFbCols(s)

{

s = s.replace(/[\r\n]\{\|[\t ]*width[\t ]*=[\t ]*100%[\t ]*[\r\n]\|[\t ]*valign[\t ]*=[\t ]*top[\t ]*width[\t ]*=[\t ]*50%[\t ]*\|[\t ]*[\r\n]/g, '\n{'+'{col-begin}'+'}\n{'+'{col-2}'+'}\n');

s = s.replace(/[\r\n]\|[\t ]*style[\t ]*=[\t "]*vertical\-align[\t ]*:[\t ]*top[; ]*width[\t ]*:[\t ]*50%[; ]*[\t "]*[\t ]*\|[\t ]*[\r\n]/g, '\n{' + '{col-2}' + '}\n');

s = s.replace(/[\r\n]\|[\t ]*(?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*width[\t ]*=[\t "]*50%[\t "](?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*\|[\t ]*[\r\n]/g, '\n{' + '{col-2}' + '}\n');

s = s.replace(/[\r\n]\|[\t ]*(?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*style[\t ]*=[\t "]*width[\t ]*:[\t "]*50%[;\t "](?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*\|[\t ]*[\r\n]/g, '\n{' + '{col-2}' + '}\n');

s = s.replace(/[\r\n]\|[\t ]*(?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*width[\t ]*=[\t "]*33[\.3]*%[\t "](?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*\|[\t ]*[\r\n]/g, '\n{' + '{col-3}' + '}\n');

s = s.replace(/[\r\n]\|[\t ]*(?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*style[\t ]*=[\t "]*width[\t ]*:[\t "]*33[\.3]*%[;\t "](?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*\|[\t ]*[\r\n]/g, '\n{' + '{col-3}' + '}\n');

s = s.replace(/[\r\n]\|[\t ]*(?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*width[\t ]*=[\t "]*25%[\t "](?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*\|[\t ]*[\r\n]/g, '\n{' + '{col-4}' + '}\n');

s = s.replace(/[\r\n]\|[\t ]*(?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*style[\t ]*=[\t "]*width[\t ]*:[\t "]*25%[;\t "](?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*\|[\t ]*[\r\n]/g, '\n{' + '{col-4}' + '}\n');

s = s.replace(/[\r\n]\|[\t ]*style[\t ]*=[\t "]*vertical\-align[\t ]*:[\t ]*top[; ]*[\t "]*\|[\t "]*[\r\n]*(\{\{col\-)/g, '\n{' + '{col-break}' + '}\n$1');

s = s.replace(/[\r\n]\{\|(?:table|[\t ])*style[\t ]*=[\t "]*width[\t ]*:[\t "]*100%[;\t "]*[\r\n](?:\|\-[\t ]*[\r\n]|)([\r\n]\{\{col\-)/gi, '\n{' + '{col-begin}' + '}$1');

s = s.replace(/[\r\n]\{\|(?:table|[\t ])*width[\t ]*=[\t "]*100%[\t "]*[\r\n](?:\|\-[\t ]*(?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*[\r\n]|)(\{\{col\-)/g, '\n{' + '{col-begin}' + '}\n$1');

s = s.replace(/[\r\n]\{\|(?:table|[\t ])*style[\t ]*=[\t "]*width[\t ]*:[\t "]*100%[;\t "]*[\r\n](?:\|\-[\t ]*(?:valign[\t ]*=[\t "]*top[\t "]*|)[\t ]*[\r\n]|)(\{\{col\-)/g, '\n{' + '{col-begin}' + '}\n$1');

s = s.replace(/[\t ]*([\r\n]\|\})[\t ]*([\r\n])\|\}([^\}])/g, '$1$2{' + '{col-end}' + '}$3');

s = s.replace(/([\r\n])\|(?:[\t ]*valign[ ]*=[" ]*top[" ]*[\t ]*\||)[\t ]*((?:<(?:\{\{subst:void\}\}|)!--[^<>\r\n]*-->|[\t ]*)[\r\n]\{\{col\-[0-9])/gi, '$1{' + '{col-break}' + '}$2');

s = s.replace(/([\r\n])\|(?:[\t ]*valign[ ]*=[" ]*top[" ]*[\t ]*\||)[\t ]*([\r\n]\{\|)/gi, '$1{' + '{col-break}' + '}$2');

s = s.replace(/([\r\n])\{\| border=0 cellpadding=0 cellspacing=0[\t ]*([\r\n]\{\{col\-(?:[0-9]|break))/g, '$1{' + '{col-begin|width=auto}' + '}$2');

s = s.replace(/([\r\n])[\t ]*\{\|[\t ]*[^\r\n]*[\r\n](?:\|\-[^\r\n]*[\r\n]|)\|[\t ]*[\r\n]*(\{\{[Ff]ootball kit[^{}]*\}\})[\r\n\|\t ]*(\{\{[Ff]ootball kit[^{}]*\}\})[\t\r\n ]*[\r\n][\t ]*\|\}/g, '$1{'+'{col-begin}'+'}\n{'+'{col-2}'+'}\n$2\n{'+'{col-2}'+'}\n$3\n{'+'{col-end}'+'}');

s = s.replace(/[\t ]*<\/div>[\t ]*[\r\n]*[\t ]*/gi, '{' + '{col-float-break|width=$1}' + '}');

s = s.replace(/[\t ]*([\r\n])[\t ]*/gi, '$1{' + '{col-float|width=$2}' + '}');

s = s.replace(/[\t ]*[\r\n][\t ]*]*>[\t ]*[\r\n]/g, '');

for (var k=0; k<20; k++) {

s = s.replace(/()([^<>\r\n]*[\r\n])/g, '$2$1');

s = s.replace(/[\t ]*<\/div>[\t ]*[\r\n]*[\t ]*\{\{(?:\-|Clear|Clr)\}\}[\t ]*[\r\n]*/, '');

}

s = s.replace(/[\t ]*<\/div>[\t ]*[\r\n]*[\t ]*\{\{(?:\-|Clear|Clr)\}\}/gi, '{' + '{col-float-end}' + '}');

return s;

}

// -------------------------------------------------------------------------------- //

function wpFbCl(s,f,ts)

{

var oldtext = s;

var lt = '';

while(lt != s) {

lt = s;

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(C\)[' ]*\(P\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|champion=y|promoted=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(C,[ ]*P\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|champion=y|promoted=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(R\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|relegated=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)[ ']*\(O\)[' ]*(\|[ ]*w[ ]*=)/g, '$1|playoffwinner=y$2');

s = s.replace(/(\{\{[_ ]*[Ff]b cl[^{}]*)\|[\s ]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:(?:ha|cl3)[_ ]+qr|cl2[_ ]+team)(?:\{\{[^{}]*\}\}|[^{}])*)[\s][\s]*(\||=|\}\}|\])/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:(?:ha|cl3)[_ ]+qr|cl2[_ ]+team)(?:\{\{[^{}]*\}\}|[^{}])*[\|=\[])[\s][\s]*/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:(?:ha|cl3)[_ ]+qr|cl2[_ ]+team)(?:\{\{[^{}]*\}\}|[^{}])*)\{\{nowrap\|([^{}]*)\}\}/gi, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:(?:ha|cl3)[_ ]+qr|cl2[_ ]+team)(?:\{\{[^{}]*\}\}|[^{}])*) /gi, '$1 ');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:(?:ha|cl3)[_ ]+qr|cl2[_ ]+team)(?:\{\{[^{}]*\}\}|[^{}])*)\{\{0\}\}/gi, '$1 ');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:(?:ha|cl3)[_ ]+qr|cl2[_ ]+team)(?:\{\{[^{}]*\}\}|[^{}])*)<[\/ ]*br[\/ ]*>/gi, '$1 ');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:(?:ha|cl3)[_ ]+qr|cl2[_ ]+team)(?:\{\{[^{}]*\}\}|[^{}])*[^'])''([^'])/gi, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:(?:ha|cl3)[_ ]+qr|cl2[_ ]+team)(?:\{\{[^{}]*\}\}|[^{}])*[^'])'''([^'])/gi, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:cl2[_ ]+team)(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})\{\{[Rr]ef\|[^{}\|]*\|([^{}\|]*)\}\}/g, '$1|pn=$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:(?:ha|cl3)[_ ]+qr)(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})\{\{[Rr]ef\|[^{}\|]*\|([^{}\|]*)\}\}/g, '$1|nt=$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[^{}]*)\|[\t ]*[A-Za-z0-9_\t ]+=[\t ]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})[\t ]*[\r\n][\t ]*\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[_ ]*\|[ ]*competition[ ]*=[ ]*\(([0-9]+)\)[ ]*\}\}/g, '$1|bp=$3$2');

s = s.replace(/[\t \|]+(\{\{[_ ]*[Ff]b[_ ]+(?:cl3[_ ]+qr|cl2[_ ]+team))/g, '\n$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)\{\{[_ ]*[Rr]ef[_ ]*\|[^{}\|]*\|([^{}\|]*)\}\}[\t ]*(\}\})/g, '$1|nt=$2$3');

s = s.replace(/\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[_ ]*(?:\|[\s]*rows[\s]*=[\s0-9]*|)\|[\s]*competition[\s]*=[\s]*\}\}[\s]*/g, '');

s = s.replace(/(\{\{#invoke:[Ss]ports[_ ]+rbr[_ ]+table(?:\{\{{^{}]*\}\}|[^{}])*\|[ ]*(?:color|text)_)([0-9]+[ ]*=)/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:cl2?|ha)[_ ]+team[^\|]*)(\|[ ]*p[ ]*=[^\|\{\}\[\]]*)(\|[ ]*rows[ ]*=[ ]*[0-9]*)(\|)/g, '$1$3$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:cl2?|ha)[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*l[ ]*=[ ]*[0-9]+[ ]*)(\|[ ]*d[ ]*=[ ]*[0-9]*[ ]*)(\|)/g, '$1$3$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:cl2?|ha)[_ ]+team[^\|]*)\|[ ]*rows[ ]*=[ ]*2[ ]*(\|[ ]*p[ ]*=[^\|\{\}\[\]]*)(\|[^\r\n]*[\r\n]\{\{[_ ]*[Ff]b[_ ]+(?:cl2?|ha)[_ ]+team[^\|]*)/g, '$1$2$3$2');

}

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+cl2[_ ]+header(?:[_ ]+navbar|)[_ ]*(\||\}\})/g, '$1fb cl header|show_positions=n$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+header[^{}]*)\|[ ]*loss_before_ot[ ]*=[0-9 a-z]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+header[^{}]*)\|[ ]*OT[ ]*=[0-9 a-z]*(\||\}\})/gi, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+header[^{}]*)/g, '$1');

s = s.replace(/\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[_ ]*(?:\|[ ]*rows[ ]*=[0-9 ]*|\|[ ]*competition[ ]*=|[ ])*\}\}[\t ]*[\r\n]/g, '');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[_ ]*(?:[^{}\[\]]|\[\^\[\*\]\]|\{\{[^{}]*\}\})*)[\s]*\|[\s]*bc[\s]*=[\sA-Z0-9\#]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+Allsvenskan[_ ]+play\-offs[_ ]+team[_ ]+footer/g, '$1fb cl footer|orfc=1) points; 2) goal difference; 3) number of goals scored.');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+hth[^{}]*)/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+hth[^{}]*)<\/small>/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+hth[^{}]*\|)[ ]*\|/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+hth[^{}]*)\|[ ]*rows[ ]*=[0-9 ]*/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+hth[^{}]*)\|[ ]*qr[ ]*=[a-z ]*/g, '$1');

for (var kb=0; kb<4; kb++) {

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+hth[^{}]*)[\t ]*<[\/ ]*[Bb][Rr][^<>]*>[\t ]*/g, '$1; ');

}

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[_ ]+header[^{}]*)\|[ ]*template[ ]*=[no ]*\|[ ]*name[ ]*=([^{}\|]*)/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[_ ]+header[^{}]*)\|[ ]*template[ ]*=[no ]*/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[_ ]+header[^{}]*)\|[ ]*(?:hth|champion|qr-width|noqr)[ ]*=[0-9a-z ]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[_ ]+header[^{}]*)(\}\}[\t ]*[\r\n]*[\t ]*\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+team)[_ ]+2pts/g, '$1|winpoints=2$2');

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+cl2?[_ ]+header[_ ]*\|[ ]*PKOT[ ]*=[ ]*y[ ]*(\||\}\})/g, '$1#invoke:sports table|main|style=WL OT\n|res_col_header=RESCOLHEADER\n$2');

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+cl2?[_ ]+header[_ ]*\|ha=y(\||\}\})/g, '$1#invoke:sports table|main|style=WDLHA\n|res_col_header=RESCOLHEADER\n$2');

s = s.replace(/(\{\{)[_ ]*[Ff]b[_ ]+cl2?[_ ]+header(?:[_ ]+navbar|)[_ ]*(\||\}\})/g, '$1#invoke:sports table|main|style=WDL\n|res_col_header=RESCOLHEADER\n$2');

if (s.search(/football league season/gi) >= 0) {

s = s.replace(/(RESCOLHEADER)/g, '$1\n|show_limit=5');

}

lt = '';

while(lt != s) {

lt = s;

s = s.replace(/()[\t ]*\|[\t ]*template[ ]*=[\t ]*yes[\t ]*\|[ ]*name[\t ]*=[^{}\|]*(\||\}\})/g, '|template_name={' + '{subst:#invoke:string|replace|{' + '{subst:PAGENAME}' + '}|'|\'}' + '}\n|showteam = {' + '{' + '{showteam|}' + '}' + '}\n$1$2');

s = s.replace(/()[\t ]*\|[\t ]*promoted[\t ]*=[\t ]*[a-z0-9][a-z0-9 ]*(\||\}\})/g, '|res_col_header=PR\n$1$2');

s = s.replace(/()[\t ]*\|[\t ]*qualification[\t ]*=[\t ]*[a-z0-9 ]*(\||\}\})/g, '$1$2');

s = s.replace(/()[\t ]*\|[\t ]*sort(?:able|)[\t ]*=[\t ]*[a-z0-9][a-z0-9 ]*(\||\}\})/g, '|sortable_table=y\n$1$2');

s = s.replace(/()[\t ]*\|[\t ]*gavg[\t ]*=[\t ]*[a-z0-9][a-z0-9 ]*(\||\}\})/g, '|use_goal_ratio=y\n$1$2');

s = s.replace(/()[\t ]*\|[\t ]*winpoints[\t ]*=[\t ]*([0-9]+)[ ]*(\||\}\})/g, '|winpoints=$2\n$1$3');

s = s.replace(/()[\t ]*\|[\t ]*drawpoints[\t ]*=[\t ]*([0-9]+)[ ]*(\||\}\})/g, '|drawpoints=$2\n$1$3');

s = s.replace(/()[\t ]*\|[\t ]*losspoints[\t ]*=[\t ]*([0-9]+)[ ]*(\||\}\})/g, '|losspoints=$2\n$1$3');

s = s.replace(/()[\t ]*\|[\t ]*show_positions[\t ]*=[\t ]*([a-z]+)[ ]*(\||\}\})/g, '|show_positions=$2\n$1$3');

s = s.replace(/()[\t ]*\|[\t ]*showpk[\t ]*=[\t ]*y[\t ]*(\||\}\})/g, '|showpk='+'y\n$1$2');

s = s.replace(/()[\t ]*\|[\t ]*(?:teamwidth|t\-width)[\t ]*=[\t ]*([0-9]+|auto)[ ]*(\||\}\})/g, '|teamwidth=$2\n$1$3');

s = s.replace(/()[\t ]*\|[\t ]*pts_?first[\t ]*=[\t ]*[a-z0-9][a-z0-9 ]*(\||\}\})/g, '|pts_first=y\n$1$2');

s = s.replace(/()[\t ]*\|[\t ]*title[\t ]*=[\t ]*((?:[^\|\{\}\[\]]|\[\^\[\*\]\]|\{\{[^{}]*\}\})*)[ ]*(\||\}\})/g, '|title=$2\n$1$3');

s = s.replace(/()[\t ]*(\|[\t ]*loss_before_draw[\t ]*=[\t ]*[a-z]+)/g, '$2$1');

s = s.replace(/()[\t ]*(\|[\t ]*ranking_style[\t ]*=[\t ]*[a-z]+)/g, '$2$1');

s = s.replace(/()[\t ]*(\|[\t ]*for_against_style[\t ]*=[\t ]*[a-z]+)/g, '$2$1');

s = s.replace(/()[\t ]*(\|[\t ]*show_tries[\t ]*=[\t ]*[a-z]+)/g, '$2$1');

s = s.replace(/()[\t ]*(\|[\t ]*use_tie[\t ]*=[\t ]*[a-z]+)/g, '$2$1');

s = s.replace(/()[\t ]*(\|[\t ]*loss_before_(?:draw|tie)[\t ]*=[\t ]*[a-z]+)/g, '$2$1');

s = s.replace(/()[\t ]*(\|[\t ]*nodraw[\t ]*=[\t ]*[a-z]+)/g, '$2$1');

s = s.replace(/()[\t ]*(\|[\t ]*res_col_header[\t ]*=[\t ]*[^{}\|]*)/g, '$2$1');

s = s.replace(/()[\t ]*(\|[\t ]*use_(?:goal|point)_percentage[\t ]*=[\t ]*[a-z]+)/g, '$2$1');

s = s.replace(/()[\t ]*\|[\t ]*nopos[\t ]*=[\t ]*[a-z]+/g, '|show_positions=n\n$1');

s = s.replace(/()[\t ]*\|[\t ]*group[\t ]*=[\t ]*[a-z]+/g, '|show_groups=y\n|group_header=\n$1');

s = s.replace(/()[\t ]*(\|[\t ]*status_text_P[\t ]*=[\t ]*[A-Za-z]+)/g, '$2$1');

}

s = s.replace(/[\t ]*[\r\n]*[\t ]*\}\}[\t ]*[\r\n]*/g, '\n');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[^{}]*\|)[ ]*\|/g, '$1');

s = s.replace(/\|[ ]*bc[ ]*=[# ]*(\||\}\})/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team)[_ ]+2pts/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\|)[ ]*nat[ ]*=[ ]*\|/g, '$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\|[\t ]*t[\t ]*=[\t ]*)([A-Z][A-Za-z0-9 ]*[A-Za-z0-9])([ ]*\|)/g, '$1$2$3');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*border[ ]*=[ ]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*border[ ]*=[ ]*[a-z]+[ ]*(\}\})/g, '$1$2\n{'+'{fb cl break}'+'}');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*bc[ ]*=[# ]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*[bd]p[ ]*=[ ]*[0-9\.]+[ ]*)([^{}]*)/g, '$1$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*pn[ ]*=[ ]*[^\|\{\}]+[ ]*)([^{}]*)/g, '$1$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*gavg[ ]*=[a-z ]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})[\t ]*([^<>]*)<\/sup>/gi, '$1|pn=$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})[\t ]*\(([\+\-][0-9]+)\)/gi, '$1|pn=$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})[\t ]*([\*†‡]+)/gi, '$1|pn=$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)(\}\})[\t ]*([^<>]*)<\/sup>/gi, '$1$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\}\})[\t ]*(\{\{ref[^{}]*\}\})/gi, '$1|pn=$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)(\}\})[\t ]*(\{\{ref[^{}]*\}\})/gi, '$1$3$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)\|[ ]*(?:promoted|promotion|qualified|qualification|relegated|relegation)[ ]*=[ ]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)\|[ ]*qr[ ]*=[ ]*[a-z]*[ ]*(\||\}\})/g, '$1$2');

s = s.replace(/\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[_ ]*(?:\|[ ]*rows[ ]*=[0-9 ]*|)[\| ]*\}\}[\t ]*[\r\n]/g, '');

for (var kb=0; kb<3; kb++) {

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*(?:champion|promoted|playoffwinner|qualified|tournamentqualified|advances|relegationqualified|disqualified|eliminated|relegated|allsvenskanchampion|swedishchampion)[ ]*=[ ]*(\||\}\})/g, '$1$2');

}

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*champion[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=C$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*promoted[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=P$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*qualified[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=Q$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*playoffwinner[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=O$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*tournamentqualified[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=T$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*advances[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=A$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*relegationqualified[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=RQ$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*disqualified[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=D$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*eliminated[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=E$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*relegated[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status=R$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*allsvenskanchampion[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status_text_C=Allsvenskan Champion|status=C$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*swedishchampion[ ]*=[ ]*[A-Za-z0-9][^\|{}]*(\||\}\})/g, '$1|status_text_S=Swedish Champion|status=S$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)\|[ ]*rows[ ]*=[ ]*1?[ ]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)\|[ ]*qualification[ ]*=[ ]*(\||\}\})/g, '$1$2');

for(var k1=0; k1<5; k1++) {

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)\|status=([A-Z,]+)((?:\|[^{}]*|))(\|status=)([A-Z,]+)/g, '$1$3$4$2,$5');

s = s.replace(/(\|[ ]*status[ ]*=[ ]*)([E]),?([RCOPQD])/g, '$1$3,$2');

s = s.replace(/(\|[ ]*status[ ]*=[ ]*)([DE]),?([RCOPQ])/g, '$1$3,$2');

s = s.replace(/(\|[ ]*status[ ]*=[ ]*)([QDE]),?([RCOP])/g, '$1$3,$2');

s = s.replace(/(\|[ ]*status[ ]*=[ ]*)([PQDE]),?([RCO])/g, '$1$3,$2');

s = s.replace(/(\|[ ]*status[ ]*=[ ]*)([OPQDE]),?([RC])/g, '$1$3,$2');

s = s.replace(/(\|[ ]*status[ ]*=[ ]*)([COPQDE]),?([R])/g, '$1$3,$2');

}

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*status[ ]*=[^\|\{\}]*)(\|[^{}]*)(\}\})/g, '$1$3$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*bc[ ]*=[^\|\{\}]*)(\|[^{}]*)(\}\})/g, '$1$3$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*pn[ ]*=[^\|\{\}]*)(\|[ ]*[bd]p[ ]*=[\-0-9 ]*)(\||\}\})/g, '$1$3$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr)[_ ]*(\|(?:\{\{[^{}]*\}\}|[^{}])*)(\|[ ]*(?:promoted|promotion|qualified|qualification|relegated|relegation)[ ]*=[A-Za-z0-9 ]*)(\||\}\})/g, '$1$3$2$4');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)\|[ ]*(?:promoted|promotion)[ ]*=[ ]*[a-z0-9][a-z0-9]*[ ]*((?:\|[ ]*rows[ ]*=[ 0-9]*|)\|[ ]*competition[ ]*=)[ ]*/g, '$1$2 Promotion to ');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)\|[ ]*(?:qualified|qualification)[ ]*=[ ]*[a-z0-9][a-z0-9]*[ ]*((?:\|[ ]*rows[ ]*=[ 0-9]*|)\|[ ]*competition[ ]*=)[ ]*/g, '$1$2 Qualification for ');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)\|[ ]*(?:relegated|relegation)[ ]*=[ ]*[a-z0-9][a-z0-9]*[ ]*((?:\|[ ]*rows[ ]*=[ 0-9]*|)\|[ ]*competition[ ]*=)[ ]*/g, '$1$2 Relegation to ');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*nt[ ]*=[ ]*([0-9][0-9,]*)[ ]*(\}\})/g, '$1 $2$3');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr(?:\{\{[^{}]*\}\}|[^{}])*)\|[ ]*bc[ ]*=[ ]*transparent[^\|]*(\||\}\})/g, '$1$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\|[ ]*w[ ]*=[ ]*)(\||\}\})/g, '$1-$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\|[ ]*d[ ]*=[ ]*)(\||\}\})/g, '$1-$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\|[ ]*l[ ]*=[ ]*)(\||\}\})/g, '$1-$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\|[ ]*gf[ ]*=[ ]*)(\||\}\})/g, '$1-$2');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*\|[ ]*ga[ ]*=[ ]*)(\||\}\})/g, '$1-$2');

s = s.replace(/<(?:\{\{subst:void\}\}|)!-- P FB UNSUBST: -->[\t ]*[\r\n]*(\{\{[_ ]*[Ffb])/g, '$1');

for (var kk=25; kk>1; kk--) {

var r1 = new RegExp('(\\{\\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*\\|[ ]*rows[ ]*=[ ]*)' + kk + '([ ]*(?:\\|[^{}]*|)\\}\\})[\\t ]*[\\r\\n]*[\\t ]*(\\{\\{[Ff]b[_ ]+cl2?[_ ]+team(?:\\{\\{[^{}]*\\}\\}|[^{}])*\\}\\})[\\t ]*[\\r\\n]', 'g');

s = s.replace(r1, '$1$2\n$3\n$1'+(kk-1)+'$2\n');

var r1 = new RegExp('(\\{\\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*\\|[ ]*rows[ ]*=[ ]*)' + kk + '([ ]*(?:\\|[^{}]*|)\\}\\})[\\t ]*[\\r\\n]*((?:\\{\\{[Ff]b[_ ]+cl[_ ]+hth(?:\\{\\{[^{}]*\\}\\}|[^{}])*\\}\\}[\\t ]*[\\r\\n]|)[\\t ]*\\{\\{[Ff]b[_ ]+cl2?[_ ]+team(?:\\{\\{[^{}]*\\}\\}|[^{}])*\\}\\})[\\t ]*[\\r\\n]', 'g');

s = s.replace(r1, '$1$2\n$3\n$1'+(kk-1)+'$2\n');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[^{}]*)\|rows[ ]*=[ ]*1?[ ]*(\||\}\})/g, '$1$2');

s = s.replace(/\{\{[_ ]*[Ff]b[_ ]+cl[_ ]+hth[_ ]*\}\}[\s]*[\r\n]/g, '');

}

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team(?:\{\{[^{}]*\}\}|[^{}])*(?:[^{}]|\{\{[^{}]*\}\})*)(\}\}[\t ]*[\r\n]*[\t ]*\{\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr)/g, '$1|bc=inherit$2');

s = s.replace(/(\|[ ]*bc[ ]*=[^\|\{\}]*)\|[ ]*bc[ ]*=[ ]*inherit/g, '$1');

for (var kk=1; kk<100; kk++) {

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[_ ]+hth[^{}]*\}\}[\t ]*[\r\n])(\{\{[_ ]*[Ff]b[_ ]+cl[23]?[_ ]+(?:team|qr)[^{}]*\}\}[\t ]*[\r\n])/g, '$2$1');

s = s.replace(/(\{\{[_ ]*[Ff]b[_ ]+cl[_ ]+hth[^{}]*\}\}[\t ]*[\r\n])(\{\{[_ ]*[Ff]b[_ ]+cl[23]?[_ ]+(?:team|qr)[^{}]*\}\}[\t ]*[\r\n])/g, '$2$1');

var r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([0-9–\\?]+)[\\t ]*\\|[\\t ]*d[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*gf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|name_'+kk+'=$2\n|win_'+kk+'=$3|draw_'+kk+'=$4|loss_'+kk+'=$5|gf_'+kk+'=$6|ga_'+kk+'=$7\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*p[\\t ]*=[\\t ]*([0-9–]+|\\{\\{(?:gold1|silver2|bronze3)\\}\\})[\\t ]*\\|[\\t ]*group[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\{\{[^{}]*\}\}|[\\-–—0-9A-Za-z\\?])*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*d[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*gf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|pos_'+kk+'=$2|group_'+kk+'=$3|name_'+kk+'=$4\n|win_'+kk+'=$5|draw_'+kk+'=$6|loss_'+kk+'=$7|gf_'+kk+'=$8|ga_'+kk+'=$9\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*group[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|[\\-–—0-9A-Za-z\\?])*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*d[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*gf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|group_'+kk+'=$2|name_'+kk+'=$3\n|win_'+kk+'=$4|draw_'+kk+'=$5|loss_'+kk+'=$6|gf_'+kk+'=$7|ga_'+kk+'=$8\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*p[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|[\\-–—=0-9A-Za-z\\?]|\\{\\{(?:gold1|silver2|bronze3)\\}\\})*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*d[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*gf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*tf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|pos_'+kk+'=$2|name_'+kk+'=$3\n|win_'+kk+'=$4|draw_'+kk+'=$5|loss_'+kk+'=$6|gf_'+kk+'=$7|ga_'+kk+'=$8|tf_'+kk+'=$9\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*p[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|[\\-–—=0-9A-Za-z\\?]|\\{\\{(?:gold1|silver2|bronze3)\\}\\})*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*d[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*gf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|pos_'+kk+'=$2|name_'+kk+'=$3\n|win_'+kk+'=$4|draw_'+kk+'=$5|loss_'+kk+'=$6|gf_'+kk+'=$7|ga_'+kk+'=$8\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*p[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|[\\-–—=0-9A-Za-z\\?]|\\{\\{(?:gold1|silver2|bronze3)\\}\\})*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*pld[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*gf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|pos_'+kk+'=$2|name_'+kk+'=$3\n|win_'+kk+'=–|draw_'+kk+'=–|loss_'+kk+'=–|gf_'+kk+'=$5|ga_'+kk+'=$6\n|matches_'+kk+'=$4\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([0-9–]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*[pg]f[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*[pg]a[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|name_'+kk+'=$2\n|win_'+kk+'=$3|loss_'+kk+'=$4|gf_'+kk+'=$5|ga_'+kk+'=$6\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*group[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|[\\-–—0-9A-Za-z\\?])*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*[pg]f[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*[pg]a[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|group_'+kk+'=$2|name_'+kk+'=$3\n|win_'+kk+'=$4|loss_'+kk+'=$5|gf_'+kk+'=$6|ga_'+kk+'=$7\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*p[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|[\\-–—=0-9A-Za-z\\?]|\\{\\{(?:gold1|silver2|bronze3)\\}\\})*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*[pg]f[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*[pg]a[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|pos_'+kk+'=$2|name_'+kk+'=$3\n|win_'+kk+'=$4|loss_'+kk+'=$5|gf_'+kk+'=$6|ga_'+kk+'=$7\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([\\-0-9–\\?]+)\\|[\\t ]*ow[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ol[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*gf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|pos_'+kk+'='+kk+'|name_'+kk+'=$2\n|win_'+kk+'=$3|OTwin_'+kk+'=$4|OTloss_'+kk+'=$5|loss_'+kk+'=$6|gf_'+kk+'=$7|ga_'+kk+'=$8\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*p[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|[\\-–—=0-9A-Za-z\\?]|\\{\\{(?:gold1|silver2|bronze3)\\}\\})*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ow[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ol[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*gf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|pos_'+kk+'=$2|name_'+kk+'=$3\n|win_'+kk+'=$4|OTwin_'+kk+'=$5|OTloss_'+kk+'=$6|loss_'+kk+'=$7|gf_'+kk+'=$8|ga_'+kk+'=$9\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*p[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|[\\-–—=0-9A-Za-z\\?]|\\{\\{(?:gold1|silver2|bronze3)\\}\\})*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*w[\\t ]*=[\\t ]*([\\-0-9–\\?]+)\\/([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*d[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*l[\\t ]*=[\\t ]*([\\-0-9–\\?]+)\\/([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*gf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*ga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|pos_'+kk+'=$2|name_'+kk+'=$3\n|win_'+kk+'=$4|OTwin_'+kk+'=$5|draw_'+kk+'=$6|loss_'+kk+'=$7|OTloss_'+kk+'=$8|gf_'+kk+'=$9|ga_'+kk+'=$10\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|ha=y\\|[\\t ]*p[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|[\\-–—=0-9A-Za-z\\?]|\\{\\{(?:gold1|silver2|bronze3)\\}\\})*)[\\t ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*\\|[\\t ]*hw[\\t ]*=[\\t ]*([0-9–]+)[\\t ]*\\|[\\t ]*hd[\\t ]*=[\\t ]*([0-9–]+)[\\t ]*\\|[\\t ]*hl[\\t ]*=[\\t ]*([0-9–]+)[\\t ]*\\|[\\t ]*hgf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*hga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*aw[\\t ]*=[\\t ]*([0-9–]+)[\\t ]*\\|[\\t ]*ad[\\t ]*=[\\t ]*([0-9–]+)[\\t ]*\\|[\\t ]*al[\\t ]*=[\\t ]*([0-9–]+)[\\t ]*\\|[\\t ]*agf[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*\\|[\\t ]*aga[\\t ]*=[\\t ]*([\\-0-9–\\?]+)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|pos_'+kk+'=$2|name_'+kk+'=$3\n|hwin_'+kk+'=$4|hdraw_'+kk+'=$5|hloss_'+kk+'=$6|hgf_'+kk+'=$7|hga_'+kk+'=$8|awin_'+kk+'=$9|adraw_'+kk+'=$10|aloss_'+kk+'=$11|agf_'+kk+'=$12|aga_'+kk+'=$13\n$1 '+(kk+1)+'-->');

r1 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl2[_ ]+team[_ ]*\\|[\\t ]*t[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*(\\}\\}|\|)', 'g');

s = s.replace(r1, '|team'+kk+'='+kk+'|name_'+kk+'=$2\n|win_'+kk+'= |draw_'+kk+'= |loss_'+kk+'= |gf_'+kk+'= |ga_'+kk+'= \n$1 '+(kk+1)+'-->');

for (var ki=0;ki<3; ki++) {

var r2 = new RegExp('[\\t \\r\\n]*([\\t \\|]*status_text_([SC])[\\t ]*=[\\t ]*([A-Za-z ,]*)[\\t \\|]*(\\||\\}\\})', 'g');

s = s.replace(r2, '|status_text_$2=$3\n$1 '+(kk+1)+'-->$4');

r2 = new RegExp('[\\t \\r\\n]*([\\t \\|]*status[\\t ]*=[\\t ]*([A-Z,]*)[\\t \\|]*(\\||\\}\\})', 'g');

s = s.replace(r2, '|status_'+kk+'=$2\n$1 '+(kk+1)+'-->$3');

r2 = new RegExp('[\\t \\r\\n]*([\\t \\|]*dp[\\t ]*=[\\t ]*([0-9\\.]+)[\\t ]*(\\||\\}\\})', 'g');

s = s.replace(r2, '|adjust_points_'+kk+'=-$2\n$1 '+(kk+1)+'-->$3');

r2 = new RegExp('[\\t \\r\\n]*([\\t \\|]*dp[\\t ]*=[\\t ]*\\-([0-9\\.]+)[\\t ]*(\\||\\}\\})', 'g');

s = s.replace(r2, '|adjust_points_'+kk+'=$2\n$1 '+(kk+1)+'-->$3');

r2 = new RegExp('[\\t \\r\\n]*([\\t \\|]*bp[\\t ]*=[\\t ]*([0-9\\.]+)[\\t ]*(\\||\\}\\})', 'g');

s = s.replace(r2, '|adjust_points_'+kk+'=$2\n$1 '+(kk+1)+'-->$3');

r2 = new RegExp('[\\t \\r\\n]*([\\t \\|]*bp[\\t ]*=[\\t ]*\\-([0-9\\.]+)[\\t ]*(\\||\\}\\})', 'g');

s = s.replace(r2, '|adjust_points_'+kk+'=-$2\n$1 '+(kk+1)+'-->$3');

r2 = new RegExp('[\\t \\r\\n]*([\\t \\|]*pn[\\t ]*=[\\t ]*((?:\\[\\^\\[\\*\\]\\]|\\{\\{[^{}]*\\}\\}|[^\\[\\]\\{\\}\\|])*)[\\t ]*(\\||\\}\\})', 'g');

s = s.replace(r2, '|hth_'+kk+'=$2\n$1 '+(kk+1)+'-->$3');

}

var r3 = new RegExp('[\\t \\r\\n]*([\\t \\|]*bc[\\t ]*=[\\t ]*([#A-Z0-9a-z][^\\|\\{\\}]*)[\\t \\|]*\\}\\}', 'g');

s = s.replace(r3, '\n|result'+kk+'=RESULT'+kk+'|col_RESULT'+kk+'=$2\n$1 '+(kk+1)+'-->');

r3 = new RegExp('[\\t \\r\\n]*([\\t \\|]*\\}\\}', 'g');

s = s.replace(r3, '\n$1 '+(kk+1)+'-->');

var r4 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+(?:ha|cl3)[_ ]+qr[_ ]*\\|[\\t ]*competition[\\t ]*=[\\t ]*((?:[^\\{\\}]|\\{\\{[^\\{\\}]*\\}\\})*)\\}\\}', 'g');

s = s.replace(r4, '|text_RESULT'+kk+'=$2\n$1 '+(kk+1)+'-->');

r4 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*\\{\\{[_ ]*[Ff]b[_ ]+cl[_ ]+break[_ ]*\\}\\}', 'g');

s = s.replace(r4, '|split'+kk+'=y\n$1 '+(kk+1)+'-->');

r4 = new RegExp('([\\t ]*[\\r\\n]*[\\t ]*[\\r\\n]*', 'g');

s = s.replace(r4, '$1 '+(kk+1)+'-->');

}

for (var kh=0; kh<5; kh++) {

s = s.replace(/()[\t ]*[\r\n]*[\t ]*\{\{[_ ]*[Ff]b[_ ]+cl2?[_ ]+hth[^{}\|]*\|[ ]*hth[ ]*=[ ]*([^{}\|]*)\}\}/g, '|hth_=$2\n$1');

s = s.replace(/(\|hth_)=[ ]*([A-Z][^ \r\n\|\{\}:;]*)/g, '$1$2=$2');

}

s = s.replace(/\|[ ]*pos_([0-9]+)[ ]*=[ ]*\1[ ]*\|/g, '|');

s = s.replace(/[\t ]*[\r\n]*[\t ]*[\r\n]*\{\{[_ ]*[Ff][b][_ ]+cl2?[_ ]+footer[^{}\|]*/g, '|update=complete\n|source=\n|class_rules=1) points; 2) goal difference; 3) number of goals scored.\n');

s = s.replace(/[\t ]*[\r\n]*[\t ]*[\r\n]*\{\{end\}\}/g, '\n|update=complete|source=\n}' + '}');

for (var kf=0; kf<5; kf++) {

s = s.replace(/()\|[ ]*hth[ ]*=[ ]*[a-z]+[ ]*(\||\}\}|[\r\n])/g, '\n|class_rules=1) points; 2) head-to-head points; 3) head-to-head goal difference; 4) head-to-head goals scored; 5) goal difference; 6) number of goals scored.\n$1$2');

s = s.replace(/()\|[ ]*gavg[ ]*=[ ]*[a-z]+[ ]*(\||\}\}|[\r\n])/g, '\n|class_rules=1) points; 2) goal ratio.\n$1$2');

s = s.replace(/()\|[ ]*wins[ ]*=[ ]*[a-z]+[ ]*(\||\}\}|[\r\n])/g, '\n|class_rules=1) points; 2) number of wins; 3) head-to-head points; 4) head-to-head goal difference; 5) head-to-head goals scored; 6) goal difference; 7) number of goals scored.\n$1$2');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*(\|[ ]*s)[ ]*(=(?:\{\{[^\{\}]*\}\}|\[http[^\[\]]*\]|\[\^\[\*\]\]|[^\{\}\|\[\]])*)/g, '$2ource$3\n$1');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*(\|[ ]*u)[ ]*(=(?:\{\{[^\{\}]*\}\}|\[http[^\[\]]*\]|\[\^\[\*\]\]|[^\{\}\|\[\]])*)/g, '$2pdate$3\n$1');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*(\|[ ]*)orfc[ ]*(=(?:\{\{[^\{\}]*\}\}|\[http[^\[\]]*\]|\[\^\[\*\]\]|[^\{\}\|\[\]])*)/g, '\n$2class_rules$3\n$1');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*\|[\t ]*season_over[\t ]*=[a-z\t \r\n]*(\||\}\})/g, '$1$2');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*\|[\t ]*date[\t ]*=[A-Za-z,0-9\t \r\n]*(\||\}\})/g, '$1$2');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*\|[\t ]*other[\t ]*=(?:[\t ]| )*(\||\}\})/g, '$1$2');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*\|[\t ]*nt[\t ]*=[\t ]*[\r\n]*[\t ]*(\||\}\})/g, '$1$2');

s = s.replace(/()[\t ]*[\r\n]*[\t ]*(\|[\t ]*nt[\t ]*=(?:\[\^\[\*\]\]|\{\{[^{}]*\}\}|[^\[\]\{\}\|]|[\r\n])*)(\||\}\})/g, '\n$2\n$1$3');

s = s.replace(/()[\t\|\r\n ]*(\}\})/g, '$2');

}

lt = '';

while(lt != s) {

lt = s;

s = s.replace(/[\t ]*[\r\n][\t ]*([\r\n]\|[ ]*(?:res_col_header|class_rules|update)[ ]*=)/g, '$1');

s = s.replace(/(\|[ ]*(?:update|source)[ ]*=[^\r\n]*[\r\n])(\|[ ]*class_rules[ ]*=[^\r\n]*[\r\n])([\s]*\||[\s]*\}\})/g, '$2$1$3');

s = s.replace(/(\|[ ]*source[ ]*=[^\r\n]*[\r\n])(\|[ ]*(?:update|class_rules)[ ]*=[^\r\n]*[\r\n])([\s]*\||[\s]*\}\})/g, '$2$1$3');

s = s.replace(/\|[ ]*res_col_header[ ]*=[ ]*[^\|\{\}\r\n]*[\r\n]([^{}]*\|[ ]*res_col_header[ ]*=)/g, '$1');

s = s.replace(/\|[ ]*class_rules[ ]*=[ ]*[^\|\{\}\r\n]*[\r\n]([^{}]*\|[ ]*class_rules[ ]*=)/g, '$1');

s = s.replace(/\|[ ]*source[ ]*=[ ]*[\r\n]([^{}]*\|[ ]*source[ ]*=)/g, '$1');

s = s.replace(/\|[ ]*update[ ]*=[ ]*complete[ ]*[\r\n]([^{}]*\|[ ]*update[ ]*=)/g, '$1');

}

s = s.replace(/(\|[ ]*hth_[^=\|\[\]\{\}]*=[^\|\[\]\{\}\r\n]*)(\|[ ]*status_[^=\|\[\]\{\}]*=[^\|\[\]\{\}\r\n]*)(\|[^\r\n]*[\r\n]|[\r\n])/g, '$2$1$3');

s = s.replace(/([^\r\n])(\|[ ]*hth_[^=\|\[\]\{\}]*=[^\|\[\]\{\}\r\n]*)(\|[^\r\n]*[\r\n]|[\r\n])/g, '$1\n$3$2\n');

lt = '';

while(lt != s) {

lt = s;

s = s.replace(/([\r\n])(\|[ ]*(?:text_|bwin_|win_|hwin_|hth_|adjust_points_|matches_|result[0-9]+|split[0-9]+)[^\r\n]*[\r\n])[\t ]*[\r\n]*(\|[ ]*team[0-9]+[^\r\n]*[\r\n])/gm, '$1$3$2');

s = s.replace(/([\r\n])(\|[ ]*(?:text_|hth_|adjust_points|matches_|result[0-9]+)[^\r\n]*[\r\n])[\t ]*[\r\n]*(\|[ ]*(?:bwin_|win_|hwin_|split[0-9]+)[^\r\n]*[\r\n])/gm, '$1$3$2');

s = s.replace(/([\r\n])(\|[ ]*(?:text_|result[0-9]+)[^\r\n]*[\r\n])[\t ]*[\r\n]*(\|[ ]*(?:hth_|adjust_points_|matches_)[^\r\n]*[\r\n])/gm, '$1$3$2');

s = s.replace(/([\r\n])(\|[ ]*(?:bwin_|win_|hwin_)[^\r\n]*[\r\n])[\t ]*[\r\n]*(\|[ ]*(?:split[0-9]+)[^\r\n]*[\r\n])/gm, '$1$3$2');

}

s = s.replace(/(\|[ ]*result[0-9]+[ ]*=[ ]*)(RESULT[0-9]+)[ ]*[\r\n]*[ ]*(\|[ ]*col_)\2([ ]*=[^\r\n\|]*[\r\n]*[ ]*\|[ ]*text_)\2([ ]*=[^\r\n]*[\r\n])/g, '$3$2$4$2$5$1$2');

s = s.replace(/(\|[ ]*result[0-9]+[ ]*=[ ]*)(RESULT[0-9]+)[ ]*[\r\n]*[ ]*(\|[ ]*col_)\2([ ]*=[^\r\n\|]*)[\r\n]*/g, '$3$2$4|text_$2=\n$1$2');

s = s.replace(/([^\r\n])(\|[\t ]*col_)/g, '$1\n$2');

s = s.replace(/(\|[\t ]*col_[^\|]*)[\r\n]/g, '$1');

s = s.replace(/(\|[\t ]*team)([0-9]+[\t ]*=)/g, '$1$2');

for (var kn=1; kn<100; kn++) {

var rr = new RegExp('\\|[ ]*name_' + kn + '[ ]*=([^\\r\\n]*)', 'g');

if(s.search(rr) >= 0 ) {

var nn = (s.match(rr))[0];

nn = nn.replace(rr, '$1');

nn = nn.replace(/^[\t ]*\{\{flagicon\|([A-Z][A-Z][A-Z])\}\}[\t ]*\[\^\[\*\]\][\t ]*–[\t ]*\[\^\[\*\]\]/gi, '$1');

nn = nn.replace(/^[\t ]*\{\{(?:AFL|SANFL) (W|S|N)(?:est|th)A\}\}/gi, '$1AD');

nn = nn.replace(/^[\t ]*\{\{(?:AFL|SANFL) WT\}\}/gi, 'WTO');

nn = nn.replace(/^[\t ]*\{\{(?:AFL|SANFL) ([^{}\|]*)\}\}/gi, '$1');

nn = nn.replace(/^[\t ]*\{\{[_ ]*[Ff]lag[A-Za-z0-9]*athlete[_ ]*\|(?:[^{}\|\[\]]|\[\^\[\*\]\])*\|[ ]*([A-Z]+)[ ]*(?:\|[^{}]*|)\}\}/g, '$1');

nn = nn.replace(/,[\t ]+(?:\[\^\[\*\]\]|[^\[\]\{\},]*)[ ]*$/g, '');

nn = nn.replace(/^[\t ]*\{\{[_ ]*[Ff]lagicon[^{}]*\}\}[\t ]*/g, '');

nn = nn.replace(/^[\t ]*\{\{[_ ]*[a-z][a-z]ca[_ ]*\}\}[\t ]*/g, '');

nn = nn.replace(/^[\t ]*\{\{[_ ]*(?:UAAPteam)[\t_ ]*\|([^{}\|]*)\|[^{}]*\}\}/g, '$1');

nn = nn.replace(/^[\t ]*\{\{[_ ]*(?:[Ww]p|[Bb]k|[Bb]eachsoccer|[Ii]i?hw?|[Hh]bw?[jy]?|[Rr][lu]|[Rr]h[mw]|[Bb]andy|[Vv]b|[Ff])[^{}\|]*\|([A-Z][A-Z][A-Z])[^{}]*\}\}/g, '$1');

nn = nn.replace(/^[\t ]*\{\{[_ ]*(?:[Ww]p|[Bb]k|[Bb]eachsoccer|[Ii]i?hw?|[Hh]bw?[jy]?|[Rr][lu]|[Rr]h[mw]|[Bb]andy|[Vv]b|[Ff])[^{}\|]*\|[^{}\|]*\|([A-Z][A-Z][A-Z])[^{}]*\}\}/g, '$1');

nn = nn.replace(/^[\t ]*\{\{[_ ]*(?:[Ww]p|[Bb]k|[Bb]eachsoccer|[Ii]i?hw?|[Hh]bw?[jy]?|[Rr][lu]|[Rr]h[mw]|[Bb]andy|[Vv]b|[Ff])[^{}\|]*\|([A-Z][^0-9\|\{\}]*)[^{}]*?\}\}/g, '$1');

nn = nn.replace(/^[\t ]*\{\{[_ ]*(?:[Ww]p|[Bb]k|[Bb]eachsoccer|[Ii]i?hw?|[Hh]bw?[jy]?|[Rr][lu]|[Rr]h[mw]|[Bb]andy|[Vv]b|[Ff])[^{}\|]*\|[^{}\|]*\|([A-Z][^0-9\|\{\}]*)[^{}]*?\}\}/g, '$1');

nn = nn.replace(/\{\{league icon[^{}]*\}\}/gi, '');

nn = nn.replace(/^[\t ]*\{\{[_ ]*([A-Z][A-Z])[_ ]*\}\}[ ]*$/g, '$1');

nn = nn.replace(/[\t ]*\/]*>[^<>]*<\/ref>[\t ]*/g, '');

nn = nn.replace(/\[\[File:[^\[\]]*\]\][ ]*/g, '');

nn = nn.replace(/^[\t ]+/g, '');

nn = nn.replace(/[\t ]+$/g, '');

var lnt = nn.replace(/^\[\[([^\[\]\|]*)(?:|\|[^\[\]\|]*)\]\].*/g, '$1');

var lntnp = nn.replace(/\./g, '');

lnt = lnt.replace(/([\(\)\.\-])/g, '\\$1');

lntnp = lntnp.replace(/([\(\)\.\-])/g, '\\$1');

var ra1 = new RegExp('\\|[\\t ]*name_([^\\[\\]\\|\\{\\}<>0-9][^\\[\\]\\|\\{\\}<>0-9][^\\[\\]\\|\\{\\}<>]?)[\\t ]*=(?:\\{\\{[Ff]lagicon\\|[^{}]*\\}\\}|[\\t ])*\\[\\[[\\t ]*(?:' + lnt + '|' + lntnp + ')[\\t ]*(?:\\||\\]\\])', 'g');

var ra2 = new RegExp('\\|[\\t ]*name_([^\\[\\]\\|\\{\\}<>0-9][^\\[\\]\\|\\{\\}<>][^\\[\\]\\|\\{\\}<>][^\\[\\]\\|\\{\\}<>])[\\t ]*=[\\t ]*\\[\\[[\\t ]*(?:' + lnt + '|' + lntnp + ')[\\t ]*(?:\\||\\]\\])', 'g');

var ra3 = new RegExp('\\[\\[[\\t ]*(?:' + lnt + '|' + lntnp + ')[\\t ]*\\|([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ0-9][^\\[\\]\\|\\{\\}<>]?[A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ0-9])\\]\\]', 'g');

var ra4 = new RegExp('\\[\\[[\\t ]*(?:' + lnt + '|' + lntnp + ')[\\t ]*\\|([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ0-9][^\\[\\]\\|\\{\\}<>][^\\[\\]\\|\\{\\}<>][A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ0-9])\\]\\]', 'g');

var ra5 = new RegExp('\\[\\[[\\t ]*(?:' + lnt + '|' + lntnp + ')[\\t ]*\\|([^\\[\\]\\|\\{\\}<>][^\\[\\]\\|\\{\\}<>][^\\[\\]\\|\\{\\}<>]?)\\]\\]', 'g');

var ra6 = new RegExp('([A-Z][A-Z][A-Z][0-9]?)[ \\t ]*\\[\\[[\\t ]*(?:' + lnt + '|' + lntnp + ')[\\t ]*(?:\\||\\]\\])', 'g');

var abb = nn.replace(/^\[\[(?:[^\[\]\|]*\||)([^\[\]\|]*)\]\]/g, '$1');

if (abb.search(/^[\t ]*[A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ][A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ][A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ][\t ]*$/) >=0) {

abb = abb.replace(/^[\t ]*([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ][A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ][A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ])[\t ]*$/g, '$1');

} else if (f.search(ra1) >= 0) {

abb = (f.match(ra1))[0];

abb = abb.replace(ra1, '$1');

} else if (f.search(ra2) >= 0) {

abb = (f.match(ra2))[0];

abb = abb.replace(ra2, '$1');

} else if (f.search(ra3) >= 0) {

abb = (f.match(ra3))[0];

abb = abb.replace(ra3, '$1');

abb = abb.toUpperCase();

} else if (f.search(ra4) >= 0) {

abb = (f.match(ra4))[0];

abb = abb.replace(ra4, '$1');

abb = abb.toUpperCase();

} else if (f.search(ra5) >= 0) {

abb = (f.match(ra5))[0];

abb = abb.replace(ra5, '$1');

abb = abb.toUpperCase();

} else if (ts.search(ra1) >= 0) {

abb = (ts.match(ra1))[0];

abb = abb.replace(ra1, '$1');

} else if (f.search(ra2) >= 0) {

abb = (ts.match(ra2))[0];

abb = abb.replace(ra2, '$1');

} else if (ts.search(ra3) >= 0) {

abb = (ts.match(ra3))[0];

abb = abb.replace(ra3, '$1');

abb = abb.toUpperCase();

} else if (ts.search(ra4) >= 0) {

abb = (ts.match(ra4))[0];

abb = abb.replace(ra4, '$1');

abb = abb.toUpperCase();

} else if (ts.search(ra5) >= 0) {

abb = (ts.match(ra5))[0];

abb = abb.replace(ra5, '$1');

abb = abb.toUpperCase();

} else if (f.search(ra6) >= 0) {

abb = (f.match(ra6))[0];

abb = abb.replace(ra6, '$1');

abb = abb.toUpperCase();

} else {

abb = abb.replace(//g, '');

abb = abb.replace(/[ ]*[^<>]*<\/sup>[ ]*/g, '');

abb = abb.replace(/[ ]*\{\{ref[^{}]*\}\}/gi, '');

abb = abb.replace(/^[\t ]*([^ ]*) [Cc]lub[\t ]*$/g, '$1');

abb = abb.replace(/^[\t ]*(?:Sporting|Atlético|União|[AF]\.?[KC]\.?|[CK]\.?F\.?|[SCU]\.?D\.?|S\.?C\.?|GDR?|S[RG]|CDA?|UDR?|AD|CA)[\t ]+/g, '');

abb = abb.replace(/[\t ]+(?:Sporting|Atlético|[AF]\.?[CK]\.?|[CK]\.?F\.?|[SCU]\.?D\.?|S\.?C\.?|GDR?)[\t ]*$/g, '');

abb = abb.replace(/[\t ]+(?:[AF]\.?C\.?|[CK]\.?F\.?|[SCU]\.?D\.?|S\.?C\.?|GDR?)[\t ]+/g, ' ');

abb = abb.replace(/^[\t ]*[Aa][Ll][\t \-][\t ]*/g, '');

abb = abb.replace(/^[\t ]*[Tt][Hh][Ee][\t ]+/g, '');

abb = abb.replace(/[\t ]+[Oo][Ff][\t ]+/g, ' ');

abb = abb.replace(/[\t ]+[d][aoe][\t ]+/g, ' ');

abb = abb.replace(/([a-z])([A-Z])/g, '$1 $2');

abb = abb.replace(/\./g, '');

abb = abb.replace(/[\(\)\-]/g, ' ');

abb = abb.replace(/^Club[ ]+/gi, '');

abb = abb.replace(/^[\t ]*\{\{([A-Z][A-Z][A-Z])\}\}[\t ]*$/gi, '$1');

abb = abb.replace(/^[\t ]*\{\{AFL ([A-Z][A-Z]*)\}\}[\t ]*$/gi, '$1');

abb = abb.replace(/^([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ])[^ ]*[\t ]+([A-Z][A-Z][A-Z])$/g, '$1$2');

abb = abb.replace(/^([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ])[^ ]*[\t ]+([A-Z])o([A-Z][A-Z]])$/g, '$1$2$3');

abb = abb.replace(/^(IFK)[\t ]+([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ])[^ ]*$/g, '$1$2');

abb = abb.replace(/^([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ][A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ]) ([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ0-9])[^ ]*$/g, '$1$2');

abb = abb.replace(/^([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ])[^ ]* ([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ0-9][A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ0-9])$/g, '$1$2');

abb = abb.replace(/^([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ])[^ ]* ([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ0-9])[^ ]* ([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ0-9])[^ ]*$/g, '$1$2$3');

abb = abb.replace(/^([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ])[^ ]* ([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ][a-záàâäãǎāăąåćĉçčċđďéèêëěēĕėęĝģğġĥħíìîïĩǐīĭiįĵķĺļľłńñņňóòôöõǒōŏǫőŕŗřśŝşšșťúùûüũůǔūŭųűŵýŷÿȳźžżæǣøœðþə])[^ ]*$/g, '$1$2');

abb = abb.replace(/[\. ]/g, '');

abb = abb.replace(/^([A-ZÁÀÂÄÃǍĀĂĄÅĆĈÇČĊĐĎÉÈÊËĚĒĔĖĘĜĢĞĠĤĦÍÌÎÏĨǏĪĬİĮĴĶĹĻĽŁŃÑŅŇÓÒÔÖÕǑŌŎǪŐŔŖŘŚŜŞŠȘŤÚÙÛÜŨŮǓŪŬŲŰŴÝŶŸȲŹŽŻÆǢØŒÐÞƏ][a-záàâäãǎāăąåćĉçčċđďéèêëěēĕėęĝģğġĥħíìîïĩǐīĭiįĵķĺļľłńñņňóòôöõǒōŏǫőŕŗřśŝşšșťúùûüũůǔūŭųűŵýŷÿȳźžżæǣøœðþə][a-záàâäãǎāăąåćĉçčċđďéèêëěēĕėęĝģğġĥħíìîïĩǐīĭiįĵķĺļľłńñņňóòôöõǒōŏǫőŕŗřśŝşšșťúùûüũůǔūŭųűŵýŷÿȳźžżæǣøœðþə]).*$/g, '$1');

abb = abb.toUpperCase();

// abb = abb.replace(/^([^ \.])[ ]*([^ \.])[ \.]*([^ ]).*/g, '$1$2$3'); // Remove this line!

abb = myPrompt('Team abbreviation for ' + nn.toUpperCase(), abb, false);

}

ra = new RegExp('\\|[ ]*name_' + abb + '[ ]*=', 'g');

var modflag = 0;

while(s.search(ra) >= 0) {

abb = myPrompt(abb + ' already exists!\nTeam abbreviation for ' + nn, abb+'2', false);

if (abb.search(/2$/) >= 0) {

abb = abb.replace(/2$/g, '');

rr = new RegExp('(\\|[ ]*(?:OT|PK|win[345]|loss[345]|)[a-z][a-z]*_)' + abb + '([ ]*=)', 'g');

s=s.replace(rr, '$1' + abb + '1$2');

rr = new RegExp('(\\|[ ]*adjust_points_)' + abb + '([ ]*=)', 'g');

s=s.replace(rr, '$1' + abb + '1$2');

rr = new RegExp('(\\|[ ]*team(?:|)[0-9]+[ ]*=[ ]*)' + abb + '([\\t ]*\\||[\\t ]*[\r\n])', 'g');

s=s.replace(rr, '$1' + abb + '1$2');

abb = abb + '2'

modflag = modflag + 1;

}

ra = new RegExp('\\|[ ]*name_' + abb + '[ ]*=', 'g');

}

rr = new RegExp('(\\|[ ]*(?:OT|PK|win[345]|loss[345]|)[a-z][a-z]*_)' + kn + '([ ]*=)', 'g');

s=s.replace(rr, '$1' + abb + '$2');

rr = new RegExp('(\\|[ ]*match[1-9]?_)' + kn + '(_[^_= ]+(?:_note|)[ ]*=)', 'g');

s=s.replace(rr, '$1' + abb + '$2');

rr = new RegExp('(\\|[ ]*match[1-9]?_[^_= ]+_)' + kn + '((?:_note|)[ ]*=)', 'g');

s=s.replace(rr, '$1' + abb + '$2');

rr = new RegExp('(\\|[ ]*adjust_points_)' + kn + '([ ]*=)', 'g');

s=s.replace(rr, '$1' + abb + '$2');

rr = new RegExp('(\\|[ ]*team(?:|)[0-9]+[ ]*=[ ]*)' + kn + '([\\t ]*\\||[\\t ]*[\r\n])', 'g');

s=s.replace(rr, '$1' + abb + '$2');

if(modflag > 0) {

abb = abb.replace(/2$/g, '');

rr = new RegExp('(\\|[ ]*name_' + abb + '[0-9]+[ ]*=[^\\r\\n]*)', 'g')

var alist = s.match(rr);

for (var ka=0; ka< alist.length; ka++) {

var abbo = alist[ka].replace(/^\|[ ]*name_([^= ]*)[ ]*=.*$/g, '$1');

abb = myPrompt(alist.join('\n'), abbo, false)

rr = new RegExp('(\\|[ ]*(?:OT|PK|win[345]|loss[345]|)[a-z][a-z]*_)' + abbo + '([ ]*=)', 'g');

s=s.replace(rr, '$1' + abb + '$2');

rr = new RegExp('(\\|[ ]*adjust_points_)' + abbo + '([ ]*=)', 'g');

s=s.replace(rr, '$1' + abb + '$2');

rr = new RegExp('(\\|[ ]*team(?:|)[0-9]+[ ]*=[ ]*)' + abbo + '([\\t ]*\\||[\\t ]*[\r\n])', 'g');

s=s.replace(rr, '$1' + abb + '$2');

}

}

}

}

s = s.replace(//g, '');

s = s.replace(/\[\[([^\[\]\|]*)\]\]/g, '$1');

var rlist = s.match(/\|[ ]*text_RESULT([0-9]+)[ ]*=/g);

if(rlist) {

for (var kr=0; kr < rlist.length; kr++) {

rlist[kr] = rlist[kr].replace(/\|[ ]*text_RESULT([0-9]+)[ ]*=/g, '$1');

}

for (var ki=0; ki < rlist.length; ki++) {

for(var kj = ki+1; kj < rlist.length; kj++) {

var rr = new RegExp('\\|[ ]*col_RESULT' + rlist[ki] + '[ ]*=[ ]*([^ \\r\\n\\|]*)[ ]*\\|[ ]*text_RESULT' + rlist[ki] + '[ ]*=[ ]*((?:\\{\\{[^{}]*\\}\\}|\\[\\^\\[\\*\\]\\]|[^\\{\\}\\[\\]\\|])*)[\\r\\n]((?:\\|[ ]*result[0-9]+[ ]*=[ ]*RESULT' + rlist[ki] + '| )*)\\|[ ]*result([0-9]+)[ ]*=[ ]*RESULT' + rlist[ki] + '[ ]*((?:\\||[\\r\\n])(?:\\{\\{[^{}]*\\}\\}|[^{}])*)\\|[ ]*col_RESULT' + rlist[kj] + '[ ]*=[ ]*\\1[ ]*\\|[ ]*text_RESULT' + rlist[kj] + '[ ]*=[ ]*\\2[ ]*[\\r\\n]*\\|[ ]*result([0-9]+)[ ]*=[ ]*RESULT' + rlist[kj] + '[ ]*(\\||[\\r\\n])');

s = s.replace(rr, '|col_RESULT' + rlist[ki] + '=$1|text_RESULT' + rlist[ki] + '=$2\n$3|result$4=RESULT' + rlist[ki] + '|result$6=RESULT' + rlist[ki] + '$5$7');

s = s.replace(/[\t ]*[\r\n][\t ]*([\r\n]\|[ ]*(?:col_|result[0-9]+|text_))/g, '$1');

}

}

}

for (var kn=1; kn<100; kn++) {

var rr = new RegExp('\\|[ ]*text_RESULT' + kn + '[ ]*=([^\\r\\n]*)', 'g');

if(s.search(rr) >= 0 ) {

var nn = (s.match(rr))[0];

nn = nn.replace(rr, '$1');

nn = nn.replace(/\{\{nowrap\|([^{}]*)\}\}/gi, '$1');

var abb = nn.replace(/^\[\[(?:[^\[\]\|]*\||)([^\[\]\|]*)\]\]/g, '$1');

abb = abb.replace(/[\t \|]*$/g, '');

abb = abb.replace(/ /gi, ' ');

abb = abb.replace(/^Qualified for the.*play\-offs[\] ]*$/g, 'QP');

abb = abb.replace(/^Qualified for the.*play\-offs[\] ]*, then promoted.*$/g, 'QPP');

abb = abb.replace(/^Reprieved from relegation$/i, 'RR');

abb = abb.replace(/^Relegat.*Division One South.*/, 'R1S');

abb = abb.replace(/^Relegat.*Division One North.*/, 'R1N');

abb = abb.replace(/^Relegat.*Third Division South.*/, 'R3S');

abb = abb.replace(/^Relegat.*Third Division North.*/, 'R3N');

abb = abb.replace(/^Relegat.*Essex Senior League.*/, 'RESL');

abb = abb.replace(/^Relegat.*Southern Counties East League.*/, 'RSCEL');

abb = abb.replace(/^Relegat.*Sussex County League.*/, 'RSCL');

abb = abb.replace(/^Relegation Playoffs[ ]*[\-–][ ]*Relegated.*/, 'RPR');

abb = abb.replace(/^Relegat[a-z]* Play.*/i, 'RP');

abb = abb.replace(/^Promotion Playoffs[ ]*[\-–][ ]*Promoted.*/, 'PPP');

abb = abb.replace(/^Promot[a-z]* Play.*/i, 'PP');

abb = abb.replace(/^Relegat.*/, 'R');

abb = abb.replace(/^Promot.*/, 'P');

abb = abb.replace(/^Re\-Elected.*/i, 'RE');

abb = abb.replace(/^Not Re\-Elected.*/i, 'NRE');

abb = abb.replace(/^.*Champions League(?:]*>|[\t ]|First)*group stage.*/gi, 'CLGS');

abb = abb.replace(/^.*Champions League(?:]*>|[\t ])*Third.*/gi, 'CL3');

abb = abb.replace(/^.*Champions League(?:]*>|[\t ])*Second.*/gi, 'CL2');

abb = abb.replace(/^.*Champions League(?:]*>|[\t ])*First.*/gi, 'CL1');

abb = abb.replace(/^.*Champions League(?:]*>|[\t ])*Play\-?off.*/gi, 'CLPR');

abb = abb.replace(/^.*Euro[a-z]* League(?:]*>|[\t ]|First)*group stage.*/gi, 'ELGS');

abb = abb.replace(/^.*Euro[a-z]* League(?:]*>|[\t ])*Third.*/gi, 'EL3');

abb = abb.replace(/^.*Euro[a-z]* League(?:]*>|[\t ])*Second.*/gi, 'EL2');

abb = abb.replace(/^.*Euro[a-z]* League(?:]*>|[\t ])*First.*/gi, 'EL1');

abb = abb.replace(/^.*Euro[a-z]* League(?:]*>|[\t ])*Play\-?off.*/gi, 'ELPR');

abb = abb.replace(/^.*Euro[a-z]* Cup Winners' Cup(?:]*>|[\t ])*Third.*/gi, 'ECWC3');

abb = abb.replace(/^.*Euro[a-z]* Cup Winners' Cup(?:]*>|[\t ])*Second.*/gi, 'ECWC2');

abb = abb.replace(/^.*Euro[a-z]* Cup Winners' Cup(?:]*>|[\t ])*First.*/gi, 'ECWC1');

abb = abb.replace(/^.*Euro[a-z]* Cup(?:]*>|[\t ])*Third.*/gi, 'EC3');

abb = abb.replace(/^.*Euro[a-z]* Cup(?:]*>|[\t ])*Second.*/gi, 'EC2');

abb = abb.replace(/^.*Euro[a-z]* Cup(?:]*>|[\t ])*First.*/gi, 'EC1');

abb = abb.replace(/^.*UEFA Cup Winners' Cup(?:]*>|[\t ])*Third.*/gi, 'CWC3');

abb = abb.replace(/^.*UEFA Cup Winners' Cup(?:]*>|[\t ])*Second.*/gi, 'CWC2');

abb = abb.replace(/^.*UEFA Cup Winners' Cup(?:]*>|[\t ])*First.*/gi, 'CWC1');

abb = abb.replace(/^.*UEFA Cup(?:]*>|[\t ])*Qual.*/gi, 'UCQR');

abb = abb.replace(/^.*UEFA Cup(?:]*>|[\t ])*Third.*/gi, 'UC3');

abb = abb.replace(/^.*UEFA Cup(?:]*>|[\t ])*Second.*/gi, 'UC2');

abb = abb.replace(/^.*UEFA Cup(?:]*>|[\t ])*First.*/gi, 'UC1');

abb = abb.replace(/^.*Intertoto Cup(?:]*>|[\t ])*Third.*/gi, 'IC3');

abb = abb.replace(/^.*Intertoto Cup(?:]*>|[\t ])*Second.*/gi, 'IC2');

abb = abb.replace(/^.*Intertoto Cup(?:]*>|[\t ])*First.*/gi, 'IC1');

abb = abb.replace(/^.*Inter\-?Cities Fairs Cup(?:]*>|[\t ])*First.*/gi, 'ICF1');

abb = abb.replace(/^.*Inter\-?Cities Fairs Cup(?:]*>|[\t ])*Second.*/gi, 'ICF2');

abb = abb.replace(/^.*[0-9] ([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*$/g, '$1$2$3$4');

abb = abb.replace(/^.*[0-9] ([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*$/g, '$1$2$3');

abb = abb.replace(/^.*[0-9] ([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*$/g, '$1$2');

abb = abb.replace(/^([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*$/g, '$1$2$3$4');

abb = abb.replace(/^([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*$/g, '$1$2$3');

abb = abb.replace(/^([A-Z])[^ \-]*[ \-]([A-Z])[^ \-]*$/g, '$1$2');

abb = abb.replace(/^Qualifi.*[Cc]hampionship [Pp]lay.*/i, 'QCP')

abb = abb.replace(/^Relegation[ ]*Play.*/, 'RP')

abb = abb.replace(/^Relegat.*/i, 'R')

abb = abb.replace(/^Promot.*/i, 'P')

abb = abb.replace(/^Qualifi.*/i, 'Q')

abb = abb.replace(/^Withdr.*/i, 'WD')

abb = abb.replace(/^Joined[\t ]+/i, 'J')

abb = abb.replace(/.* ([A-Z])[^ \|\[\]]* ([A-Z0-9])[^ \|\[\]]* ([A-Z0-9])[^ \|\[\]]* ([A-Z0-9])[^ \|\[\]]*$/, '$1$2$3$4');

abb = abb.replace(/.* ([A-Z])[^ \|\[\]]* ([A-Z0-9])[^ \|\[\]]* ([A-Z0-9])[^ \|\[\]]*$/, '$1$2$3');

abb = abb.toUpperCase();

if (abb == '') {

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*green1', 'gi');

if(s.search(ra) >=0) {

abb = 'A';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*yellow1', 'gi');

if(s.search(ra) >=0) {

abb = 'B';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*blue1', 'gi');

if(s.search(ra) >=0) {

abb = 'C';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*red1', 'gi');

if(s.search(ra) >=0) {

abb = 'E';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*lavender', 'gi');

if(s.search(ra) >=0) {

abb = 'O';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#ddffdd', 'gi');

if(s.search(ra) >=0) {

abb = 'EC';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#E6E6FA', 'gi');

if(s.search(ra) >=0) {

abb = 'CWC';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#fffacd', 'gi');

if(s.search(ra) >=0) {

abb = 'UC';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#ACE1AF', 'gi');

if(s.search(ra) >=0) {

abb = 'C';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#(?:ffecc0|b0c4de)', 'gi');

if(s.search(ra) >=0) {

abb = 'PP';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#ecd1ff', 'gi');

if(s.search(ra) >=0) {

abb = 'TRFR';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#(?:a8dca8|FFFF99|ff9[^0-9a-f])', 'gi');

if(s.search(ra) >=0) {

abb = 'P';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#D0F0C0', 'gi');

if(s.search(ra) >=0) {

abb = 'CP';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*(?:moccasin|#(?:d2e6ff|FFE4B5))', 'gi');

if(s.search(ra) >=0) {

abb = 'PP';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#FBCEB1', 'gi');

if(s.search(ra) >=0) {

abb = 'PPP';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#90EE90', 'gi');

if(s.search(ra) >=0) {

abb = 'QP';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#FFF380', 'gi');

if(s.search(ra) >=0) {

abb = 'Q3';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#(?:ffd1d1|FFE6E6)', 'gi');

if(s.search(ra) >=0) {

abb = 'RP';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#(?:deb0b0|FFCCCC|fcc|ff9696)', 'gi');

if(s.search(ra) >=0) {

abb = 'R';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*#(?:cfc|ccffcc)', 'gi');

if(s.search(ra) >=0) {

abb = 'A';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*gold', 'gi');

if(s.search(ra) >=0) {

abb = '1ST';

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*silver', 'gi');

if(s.search(ra) >=0) {

abb = '2ND';

}

}

ra = new RegExp('\\|[ ]*col_RESULT' + kn + '[ ]*=[ ]*([^ \|\r\n]+)', 'gi');

var cval = s.match(ra);

if (cval[1]) { cval = cval[1]; }

abb = myPrompt('Result abbreviation for (' + cval + ') ' + nn, abb, false);

ra = new RegExp('\\|[ ]*text_' + abb + '[ ]*=', 'g');

while(s.search(ra) >= 0) {

abb = myPrompt(abb + ' already exists!\nResult abbreviation for ' + nn, nn.replace(/^\[\[(?:[^\[\]\|]*\||)([^\[\]\|]*)\]\]/g, '$1'), false);

ra = new RegExp('\\|[ ]*text_' + abb + '[ ]*=', 'g');

}

rr = new RegExp('(\\|[ ]*[a-z][a-z]*_)RESULT' + kn + '([ ]*=)', 'g');

s = s.replace(rr, '$1' + abb + '$2');

rr = new RegExp('(\\|[ ]*note_res_)RESULT' + kn + '([ ]*=)', 'g');

s = s.replace(rr, '$1' + abb + '$2');

rr = new RegExp('(\\|[ ]*result[0-9]+[ ]*=[ ]*)RESULT' + kn + '([\\t ]*\\||[\\t ]*[\\r\\n])', 'g');

s = s.replace(rr, '$1' + abb + '$2');

s = s.replace(rr, '$1' + abb + '$2');

}

s = s.replace(/(\|[ ]*text_)([^= \|\r\n]*)([ ]*=[^\r\n<>]*)([^<>\r\n]*)<\/sup>/g, '$1$2$3\n|note_res_$2=$4');

s = s.replace(/(\|[ ]*text_)([^= \|\r\n]*)([ ]*=[^\r\n<>]*)(\{\{ref[^{}]*\}\})/g, '$1$2$3\n|note_res_$2=$4');

s = s.replace(/(\|[ ]*result[0-9]+[ ]*=[ ]*)([^ \[\]\|\r\n]*)[ ]*[\r\n](\|[ ]*result[0-9]+[ ]*=[ ]*)\2/g, '$1$2$3$2');

}

s = s.replace(/([^\r\n])(\|[ ]*class_rules[ ]*=)/g, '$1\n$2');

s = s.replace(/(\|[ ]*class_rules[ ]*=[^\r\n]*)([\r\n][^\{\}]*\}\})[\t ]*[\r\n]*[\t ]*[\r\n]*([^<>]*)<\/sup>[\t ]*[\r\n]/g, '$1
$3$2\n');

s = s.replace(/(\|[ ]*update[ ]*=[ ]*)([\r\n]|\||\}\})/g, '$1complete$2');

s = s.replace(/([^\r\n])(\|[ ]*update[ ]*=)/g, '$1\n$2');

s = s.replace(/(\|[ ]*source[ ]*=)[ ]*([\r\n]\}\}(?:|[\t ])*?)[ ]*[Ss]ource[\t ]*:[\t ]*(\[http:[^\[\]]*\]|<[R][Ee][Ff][^<>\/]*[\/]>|<[Rr][Ee][Ff][^<>\/]*>[^<>]*<\/[Rr][Ee][Ff]>)[ ]*(<[Bb][Rr]|<\/small>|[\r\n])/g, '$1$3$2$4');

s = s.replace(/(\|[ ]*team)([0-9]+)([ ]*=[^\|]*\|[ ]*name_[^=]*=[^\r\n<>]*)[ ]*([^<>]*)<\/ref>((?:[^{}]|[\r\n])*result)\2([ ]*=[ ]*)([A-Z0-9]+)[ ]*([\r\n]|\|)/g, '$1$2$3$5$2$6$7\n|note_res_$7=$4$8');

if (s.search(/res_col_header=RESCOLHEADER/g) >= 0) {

var PQR='';

if (s.search(/result[0-9]+[ ]*=[ ]*P[^A-Z]/g) >= 0) {

PQR=PQR+'P';

}

if (s.search(/result[0-9]+[ ]*=[ ]*(?:Q|P[A-Z]|A)/g) >= 0) {

PQR=PQR+'Q';

}

if (s.search(/result[0-9]+[ ]*=[ ]*R/g) >= 0) {

PQR=PQR+'R';

}

PQR = PQR.replace(/PQR/, 'PR');

PQR = myPrompt('Results column header?', PQR, true);

s = s.replace(/res_col_header=RESCOLHEADER/g, 'res_col_header=' + PQR);

}

s = s.replace(/(\}\})[ ]*\{\{small\|[ ]*Rules for classification: ([^<>\{\}]*)\}\}/g, '|class_rules=$2\n$1');

s = s.replace(/(\}\})[ ]*[ ]*Rules for classification: ([^<>\{\}]*)<\/small>/g, '|class_rules=$2\n$1');

s = s.replace(/((?:color|text)_)/g, '$1');

s = s.replace(/(\|team[0-9]+=[^\[\]\|\{\}]*[\r\n])(\|win_)/g, '$1\n$2');

s = s.replace(/(\|(?:status_|ga_)[^=]*=[^\[\]\|\{\}]*[\r\n])(\|(?:col_|hth_))/g, '$1\n$2');

s = s.replace(/(\|hth_[^=]*=[^\r\n]*[\r\n])(\|col_)/g, '$1\n$2');

s = s.replace(/(\|match_[^\r\n]*[\r\n])(\|(?:update|source|name_))/g, '$1\n$2');

s = s.replace(/[\s]*[\r\n][\t ]*[\r\n]/g, '\n\n');

if(s.search(/\|showpk[ ]*=[ ]*y[ ]*[\r\n]/g)>=0) {

s = s.replace(/\|showpk[ ]*=[ ]*y[ ]*[\r\n]/g, '');

s = s.replace(/(style=)WDL/g, '$1WL PK');

s = s.replace(/\|[ ]*draw(_[^=]*=)([0-9])([0-9])/g, '|PKwin$1$2|PKloss$1$3');

}

if(s.search(/\|win_[^=]*=[^\|\r\n]*\|OTwin_[^=]*=[^\|\r\n]*\|OTloss_[^=]*=[^\|\r\n]*\|loss_/g) >=0 ) {

s = s.replace(/(style=)WDL/g, '$1WL OT');

}

if(s.search(//g) >= 0) {

s = s.replace(/[\t ]*[\r\n]*/g, '');

s = s.replace(/(\|[ ]*res_col_header[^\r\n]*[\r\n])/g, '$1|showOTloss=n|showPKwin=y\n|OTwinpoints=3|PKwinpoints=2\n\n|OTwin_header={'+'{Tooltip|W+|Won after extra time}'+'}\n|PKwin_header={'+'{Tooltip|WP|Won on penalties}'+'}\n');

s = s.replace(/\|[ ]*draw(_[^=]*=)([0-9])([0-9])/g, '|OTwin$1$2|PKwin$1$3');

}

s = s.replace(/(\|[ ]*source[ ]*=)[\t ]*[\r\n]*[\t ]*(\}\})[\t ]*[\r\n]*[\t ]*[\r\n]*[\t ]*(]*\/>|\/]*>[^<>]*<\/ref>)/g, '$1$3\n$2');

s = s.replace(/[\r\n]\|[ ]*res_col_header[ ]*=[ ]*[\r\n]/g, '\n');

s = s.replace(/(\|winpoints=4[\t ]*)([\r\n])/g, '$2$1');

s = s.replace(/(\|[ ]*status_text_P[^\r\n]*[\r\n])([^{}]*[\r\n])(\|col_)/g, '$2$1$3');

lt = '';

while(lt != s) {

lt = s;

s = s.replace(/(\|(?:matches|adjust_points)_[^=]*=[ ]*[\-0-9]+)[ ]*(\|status_[^=]*=[^\r\n]*)/g, '$2$1');

s = s.replace(/([=0-9][ ]*)(\|(?:matches|adjust_points)_[^=]*=[ \-]*[0-9])/g, '$1\n$2');

s = s.replace(/(\|(?:matches|adjust_points)_[^\r\n]*[\r\n])(\|win_[^\r\n]*[\r\n])/g, '$2$1');

}

s = s.replace(/(\|matches)(_[^=]*=)([\- 0-9]+)[\r\n](\|adjust_points)\2/g, '$1$2$3$4$2');

lt = '';

while(lt != s) {

lt = s;

s = s.replace(/(\|adjust_points)(_[^=]*=)([\- 0-9]+)[\r\n]*[\t ]*[\r\n](\|hth)\2/g, '$1$2$3$4$2');

s = s.replace(/(\|adjust_points)(_[^=]*=)([\- 0-9]+)[\r\n]((?:\|adjust_points_[^\r\n]*[\r\n]|[\t ]*[\r\n])*)(\|hth)\2([^\r\n]*[\r\n])/g, '$1$2$3$5$2$6$4');

}

if(s.search(/loss_before_draw[ ]*=[ ]*[ty]/g) >=0 ) {

s = s.replace(/(\|[ ]*draw_[^=]*=[0-9 ]*)(\|[ ]*loss_[^=]*=[0-9 ]*)/g, '$2$1');

}

if(s.search(/for_against_style[ ]*=[ ]*p/g) >=0 ) {

s = s.replace(/(\|[ ]*)g([fa]_[^=]*=)/g, '$1p$2');

}

if (s.search(/(?:/) >=0 ) {

var rlist = s.match(/\|[ ]*team[0-9]+[ ]*=[ ]*((?:[^\t\r\n\|\[\]]|\[\^\[\*\]\])+)/g);

for (var kr=0; kr < rlist.length; kr++) {

var n = rlist[kr].replace(/\|[ ]*team([0-9]+)[ ]*=[\t ]*((?:[^\t\r\n\|\[\]]|\[\^\[\*\]\])+)/g, '$1');

var a = rlist[kr].replace(/\|[ ]*team([0-9]+)[ ]*=[\t ]*((?:[^\t\r\n\|\[\]]|\[\^\[\*\]\])+)/g, '$2');

a = a.replace(/^[\s]*/g, '')

a = a.replace(/[\s]*$/g, '')

a = a.replace(/([\[\]\|])/g, '\\$1')

var r = new RegExp("(\\|[\\t ]*team" + n + "[\\t ]*=)[\\t ]*(?:[^\\t\\r\\n\\|\\[\\]]|\\[\\^\\[\\*\\]\\])+", "g");

s = s.replace(r, '$1' + n);

r = new RegExp("(\\|[\\t ]*(?:name|hwin|awin|OTwin|PKwin|win|hdraw|adraw|draw|OTloss|PKloss|hloss|aloss|loss|hgf|agf|gf|pf|hga|aga|ga|pa|tb|lb|adjust_points|hth|note|status|rw|group|match[0-9]?_[^_= ]+|short|bwin|bloss|swin|sloss|win[345]s|loss[345]s|sp?w|sp?l))_" + a + "([\t ]*=)", "g");

s = s.replace(r, '$1_' + n + '$2');

r = new RegExp("(\\|[\\t ]*(?:match[0-9]?))_" + a + "(_[^_= ]+(?:_note|)[\t ]*=)", "g");

s = s.replace(r, '$1_' + n + '$2');

r = new RegExp("(\\|[\\t ]*hth_[^=]*=[ ]*)" + a + "([\\t\\r\\n ]*(?:\\}|\\|))", "g");

s = s.replace(r, '$1' + n + '$2');

}

}

s = s.replace(//g, '');

return s;

}

// -------------------------------------------------------------------------------- //

function wpUnpos(s,f)

{

var oldtext = s;

if(s.search(/\|[ ]*team1[ ]*=[ ]*[^\|\{\}\[\]]*\|[ ]*pos_[^=]*=[ ]*[0-9]+[ ]*\|/g) >= 0) {

var offsetstr = s.match(/\|[ ]*team1[ ]*=[ ]*[^\|\{\}\[\]]*\|[ ]*pos_[^=]*=[ ]*[0-9]+[ ]*\|/g)[0];

offsetstr = offsetstr.replace(/^.*pos_[^=]*=[ ]*([0-9]+)[ ]*\|$/g, '$1');

var offset = Number(offsetstr) - 1;

s = s.replace(/(\|[ ]*team1[ ]*=[ ]*[^\|\{\}\[\]]*\|[ ]*pos_[^=]*=[ ]*[0-9]+[ ]*\|)/g, '|highest_pos = ' + (offset+1) + '\n\n$1');

s = s.replace(/(\|[ ]*(?:team|result))([0-9]+)([ ]*=)/g, '$1{'+'{subst'+':#expr:'+offset+'+$2}'+'}$3');

var lt = '';

var i = 1;

while (lt != s) {

lt = s;

var rr = new RegExp('\\{\\{subst[ ]*:[ ]*#expr[ ]*:[ ]*' + offset + '[ ]*\\+[ ]*' + i + '[ ]*\\}\\}', 'gi');

s = s.replace(rr, offset + i);

i = i + 1;

}

s = s.replace(/(\|[ ]*team)([0-9]+)([ ]*=[^\|\{\}\[\]]*)\|[ ]*pos_[^=]*=[ ]*\2[ ]*(\|)/g, '$1$2$3$4');

}

if(s.search(/\|[ ]*pos_[^=]*=/g) >=0) {

alert(s);

return oldtext;

}

return s;

}

// -------------------------------------------------------------------------------- //

function wpFb()

{

var teamset = `

|name_AEL=AEL Limassol

|name_ALK=Alki Larnaca F.C.

|name_ALK=Alki Larnaca FC

|name_ANA=Anagennisi Deryneia

|name_ANR=Anorthosis Famagusta FC

|name_APE=APEP F.C.

|name_APEP=APEP Limassol

|name_APL=Apollon Limassol

|name_APN=APOEL F.C.

|name_APN=APOEL FC

|name_APP=APOP Paphos

|name_ARS=Aris Limassol F.C.

|name_CHA=Chalkanoras Idaliou

|name_DAM=Digenis Akritas Morphou

|name_ENP=Enosis Neon Paralimni FC

|name_EPA=EPA Larnaca FC

|name_ERM=Ermis Aradippou

|name_ETH=Ethnikos Achna FC

|name_EVA=Evagoras Paphos

|name_KER=Keravnos Strovolou FC

|name_LYS=ASIL Lysi

|name_NSL=Nea Salamis Famagusta FC

|name_OAR=Omonia Aradippou

|name_OLY=Olympiakos Nicosia

|name_OMO=AC Omonia

|name_POL=Pezoporikos Larnaca

|name_SAL=Nea Salamis FC

|name_ADI=Aditajs

|name_ALF=FK Alfa

|name_APG=Apgaismes Tehnika

|name_APG=FK Apgaismes tehnika

|name_AUD=FK Auda

|name_BET=Betons

|name_CEL=Celtnieks Daugavpils

|name_CEL=Celtnieks Rīga

|name_DAU=FC Daugava Riga

|name_DUB=Dubna

|name_DĪZ=Dīzelists

|name_ENE=Enerģija Rīga

|name_FAL=Faless

|name_GAU=Gauja Valmiera

|name_GTE=Gaismas Tehnika

|name_JAU=Jaunatnes izlase

|name_JUN=Junioru izlase

|name_JUR=Jurnieks

|name_JŪR=FK Jūrnieks

|name_KIM=Kimikis

|name_LAT=Latgale

|name_MAI=9 Maijs

|name_MAS=Masinbuvetajs

|name_OLI=FK Liepājas Metalurgs

|name_OST=Ostinieks

|name_PĀR=FK Pārdaugava

|name_RAF=RAF (football club)

|name_RAU=Rīgas Audums

|name_SAR=Sarkanais Kvadrāts

|name_SKO=Forums Skonto

|name_SKV=Sarkanais Kvadrats

|name_SME=Sarkanais Metalurgs

|name_STA=Starts

|name_STR=Strautmala

|name_TIL=Tiltubuvetajs

|name_TOR=Torpedo Rīga

|name_V-D=Varpa-Dilar

|name_VAR=Varpa

|name_VEF=FK VEF Rīga

|name_ZEM=Zemgale

|name_ZVE=Zvezda

|name_CEL=Celtnieks Rīga

|name_ELE=Elektrons Rīga

|name_ENE=Enerģija Rīga

|name_GAU=Gauja Valmiera

|name_JUR=Jurnieks

|name_KIM=Kimikis

|name_MET=Metalists

|name_PRO=Progress Rīga

|name_RAD=Radiotehnikis

|name_RPI=RPI Riga

|name_SME=Sarkanais Metalurgs

|name_STA=Starts

|name_TOR=Torpedo Rīga

|name_VEF=VEF

|name_AAB=AaB Fodbold

|name_AAC=Alemannia Aachen

|name_ABE=Aberdeen F.C.

|name_ACM=A.C. Milan

|name_AEK=AEK Athens F.C.

|name_AJX=AFC Ajax

|name_AMC=Amica Wronki

|name_AND=R.S.C. Anderlecht

|name_APO=APOEL FC

|name_ARI=Aris Thessaloniki F.C.

|name_ARS=Arsenal F.C.

|name_AST=Aston Villa F.C.

|name_ATH=Athletic Bilbao

|name_ATL=Atlético Madrid

|name_AUS=FK Austria Wien

|name_AUX=AJ Auxerre

|name_AZ =AZ (football club)

|name_AZ =AZ Alkmaar

|name_BAR=FC Barcelona

|name_BAY=FC Bayern Munich

|name_BDX=FC Girondins de Bordeaux

|name_BEN=S.L. Benfica

|name_BEV=K.S.K. Beveren

|name_BJK=Beşiktaş J.K.

|name_BLB=Blackburn Rovers F.C.

|name_BOL=Bolton Wanderers F.C.

|name_BRA=S.C. Braga

|name_BRA=SK Brann

|name_BRM=SV Werder Bremen

|name_BRU=Club Brugge K.V.

|name_BRU=Club Brugge KV

|name_BRØ=Brøndby IF

|name_BSC=Hertha BSC

|name_BSL=FC Basel

|name_BTE=FC BATE Borisov

|name_BUR=Bursaspor

|name_CEL=Celta de Vigo

|name_CEL=Celtic F.C.

|name_CFR=CFR Cluj

|name_CHL=Chelsea F.C.

|name_CSM=PFC CSKA Moscow

|name_CSS=PFC CSKA Sofia

|name_DB =FC Dinamo București

|name_DEB=Debreceni VSC

|name_DEP=Deportivo de La Coruña

|name_DK =FC Dynamo Kyiv

|name_DNI=FC Dnipro Dnipropetrovsk

|name_DOR=Borussia Dortmund

|name_DTB=FC Dinamo Tbilisi

|name_DZ =GNK Dinamo Zagreb

|name_DZ =NK Dinamo Zagreb

|name_EGA=Egaleo FC

|name_EIN=Eintracht Frankfurt

|name_ELF=IF Elfsborg

|name_ESP=RCD Espanyol

|name_EVE=Everton F.C.

|name_FCK=F.C. Copenhagen

|name_FCN=FC Nordsjælland

|name_FEN=Fenerbahçe S.K. (football)

|name_FER=Ferencvárosi TC

|name_FEY=Feyenoord

|name_FIO=ACF Fiorentina

|name_FUL=Fulham F.C.

|name_GAK=Grazer AK

|name_GAL=Galatasaray S.K. (football team)

|name_GAL=Galatasaray S.K. (football)

|name_GEN=Genoa C.F.C.

|name_GET=Getafe CF

|name_GNK=K.R.C. Genk

|name_GRA=Grasshopper Club Zürich

|name_HAP=Hapoel Tel Aviv F.C.

|name_HBK=Halmstads BK

|name_HEL=Helsingborgs IF

|name_HER=Hertha BSC

|name_HOM=Heart of Midlothian F.C.

|name_HSV=Hamburger SV

|name_HVN=SC Heerenveen

|name_INT=Inter Milan

|name_JUV=Juventus F.C.

|name_LAR=Athlitiki Enosi Larissa F.C.

|name_LAZ=S.S. Lazio

|name_LEN=RC Lens

|name_LEV=Bayer 04 Leverkusen

|name_LIB=FC Slovan Liberec

|name_LIL=Lille OSC

|name_LIT=PFC Litex Lovech

|name_LIV=A.S. Livorno Calcio

|name_LIV=Liverpool F.C.

|name_LOK=FC Lokomotiv Moscow

|name_LPO=Lech Poznań

|name_LS =PFC Levski Sofia

|name_LUD=PFC Ludogorets Razgrad

|name_MAL=Malmö FF

|name_MAL=Málaga CF

|name_MC =Manchester City F.C.

|name_MET=FC Metalist Kharkiv

|name_MH =Montpellier HSC

|name_MHA=Maccabi Haifa F.C.

|name_MID=Middlesbrough F.C.

|name_MLA=FK Mladá Boleslav

|name_MON=AS Monaco FC

|name_MPT=Maccabi Petah Tikva F.C.

|name_MRB=NK Maribor

|name_MU =Manchester United F.C.

|name_NAN=AS Nancy

|name_NAP=S.S.C. Napoli

|name_NCL=C.D. Nacional

|name_NEC=N.E.C. (football club)

|name_NEW=Newcastle United F.C.

|name_NÜR=1. FC Nürnberg

|name_ODE=Odense Boldklub

|name_OG =FC Oțelul Galați

|name_OL =Olympique Lyonnais

|name_OLY=Olympiacos F.C.

|name_OM =Olympique de Marseille

|name_OSA=CA Osasuna

|name_PAL=U.S. Città di Palermo

|name_PAN=Panathinaikos F.C.

|name_PAN=Panionios F.C.

|name_PAN=Panionios NFC

|name_PAOK=PAOK FC

|name_PAR=Parma F.C.

|name_PAR=S.S.D. Parma Calcio 1913

|name_PLZ=FC Viktoria Plzeň

|name_POR=FC Porto

|name_POR=Portsmouth F.C.

|name_PRA=AC Sparta Prague

|name_PRA=Sparta Prague

|name_PSG=Paris Saint-Germain F.C.

|name_PSV=PSV Eindhoven

|name_PTZ=FK Partizan

|name_RAN=Rangers F.C.

|name_RAP=FC Rapid Bucureşti

|name_RAP=FC Rapid București

|name_RAP=SK Rapid Wien

|name_RCL=RC Lens

|name_REN=Stade Rennais F.C.

|name_RM =Real Madrid C.F.

|name_ROM=A.S. Roma

|name_ROS=Rosenborg BK

|name_RSA=Racing de Santander

|name_RSB=Red Star Belgrade

|name_RSO=Real Sociedad

|name_RUB=FC Rubin Kazan

|name_SAM=U.C. Sampdoria

|name_SBG=FC Red Bull Salzburg

|name_SCH=FC Schalke 04

|name_SCP=Sporting Clube de Portugal

|name_SEV=Sevilla FC

|name_SHF=FC Sheriff Tiraspol

|name_SHK=FC Shakhtar Donetsk

|name_SLA=SK Slavia Prague

|name_SLV=Slavia Prague

|name_SOC=FC Sochaux-Montbéliard

|name_SPM=FC Spartak Moscow

|name_STD=Standard Liège

|name_STE=AS Saint-Étienne

|name_STE=FC Steaua București

|name_STM=SK Sturm Graz

|name_STR=RC Strasbourg

|name_STU=VfB Stuttgart

|name_TIM=FC Politehnica Timișoara

|name_TOT=Tottenham Hotspur F.C.

|name_TOU=Toulouse FC

|name_TRA=Trabzonspor

|name_TRO=Tromsø IL

|name_TWE=FC Twente

|name_UDI=Udinese Calcio

|name_URZ=FC Unirea Urziceni

|name_UTR=F.C. Utrecht

|name_VAL=Valencia CF

|name_VEN=FK Ventspils

|name_VIK=Viking FK

|name_VIL=Villarreal CF

|name_VIT=Vitória S.C.

|name_WIS=Wisła Kraków

|name_WOL=VfL Wolfsburg

|name_ZAR=Real Zaragoza

|name_ZEN=FC Zenit Saint Petersburg

|name_ZIL=MŠK Žilina

|name_ZWA=S.V. Zulte Waregem

|name_ZÜR=FC Zürich

|name_AHL=Al Ahly SC

|name_AHL=Al-Ahly S.C.

|name_ALM=Al-Merreikh

|name_ASA=Asante Kotoko

|name_ASEC=ASEC Mimosas

|name_COT=Coton Sport FC de Garoua

|name_CSS=CS Sfaxien

|name_DYN=Dynamos F.C.

|name_DYN=Dynamos Harare

|name_ENY=Enyimba International F.C.

|name_ESP=Espérance ST

|name_ESP=Espérance de Tunis

|name_ESS=ES Sétif

|name_ESS=Étoile du Sahel

|name_EST=Espérance Sportive de Tunis

|name_ETO=Etoile sportive du Sahel

|name_FAR=FAR Rabat

|name_HEA=Heartland F.C.

|name_HEA=Heartland FC

|name_HIL=Al-Hilal (Omdurman)

|name_HIL=Al-Hilal Club (Omdurman)

|name_HIL=Al-Hilal Omdurman

|name_ISM=Ismaily

|name_ITT=Al-Ittihad Club (Tripoli)

|name_JSK=JS Kabylie

|name_KAN=Kano Pillars F.C.

|name_MCA=MC Alger

|name_MON=Monomotapa United F.C.

|name_OAK=Accra Hearts of Oak Sporting Club

|name_ORL=Orlando Pirates Football Club

|name_RCA=Raja CA Casablanca

|name_TPM=TP Mazembe

|name_WAC=Wydad Casablanca

|name_ZAM=Al-Zamalek

|name_ZES=ZESCO United F.C.

|name_AFG=Afghanistan

|name_ALB=Albania

|name_ALG=Algeria

|name_AND=Andorra

|name_ANG=Angola

|name_ANT=Antigua and Barbuda

|name_ARG=Argentina

|name_ARM=Armenia

|name_ARU=Aruba

|name_ASA=American Samoa

|name_AUS=Australia

|name_AUT=Austria

|name_AZE=Azerbaijan

|name_BAH=Bahamas

|name_BAN=Bangladesh

|name_BAR=Barbados

|name_BDI=Burundi

|name_BEL=Belgium

|name_BEN=Benin

|name_BER=Bermuda

|name_BHU=Bhutan

|name_BIH=Bosnia and Herzegovina

|name_BIZ=Belize

|name_BLR=Belarus

|name_BOL=Bolivia

|name_BOT=Botswana

|name_BRA=Brazil

|name_BRN=Bahrain

|name_BRU=Brunei

|name_BUL=Bulgaria

|name_BUR=Burkina Faso

|name_CAF=Central African Republic

|name_CAM=Cambodia

|name_CAN=Canada

|name_CAY=Cayman Islands

|name_CGO=Republic of the Congo

|name_CHA=Chad

|name_CHI=Chile

|name_CHN=China

|name_CIV=Ivory Coast

|name_CMR=Cameroon

|name_COD=Democratic Republic of the Congo

|name_COK=Cook Islands

|name_COL=Colombia

|name_COM=Comoros

|name_CPV=Cape Verde

|name_CRC=Costa Rica

|name_CRO=Croatia

|name_CUB=Cuba

|name_CYP=Cyprus

|name_CZE=Czech Republic

|name_DEN=Denmark

|name_DJI=Djibouti

|name_DMA=Dominica

|name_DOM=Dominican Republic

|name_ECU=Ecuador

|name_EGY=Egypt

|name_ERI=Eritrea

|name_ESA=El Salvador

|name_ESP=Spain

|name_EST=Estonia

|name_ETH=Ethiopia

|name_FIJ=Fiji

|name_FIN=Finland

|name_FRA=France

|name_FSM=Federated States of Micronesia

|name_GAB=Gabon

|name_GAM=The Gambia

|name_GBR=Great Britain

|name_GBS=Guinea-Bissau

|name_GEO=Georgia

|name_GEQ=Equatorial Guinea

|name_GER=Germany

|name_GHA=Ghana

|name_GRE=Greece

|name_GRN=Grenada

|name_GUA=Guatemala

|name_GUI=Guinea

|name_GUM=Guam

|name_GUY=Guyana

|name_HAI=Haiti

|name_HKG=Hong Kong

|name_HON=Honduras

|name_HUN=Hungary

|name_INA=Indonesia

|name_IND=India

|name_IRI=Iran

|name_IRL=Ireland

|name_IRQ=Iraq

|name_ISL=Iceland

|name_ISR=Israel

|name_ISV=Virgin Islands

|name_ITA=Italy

|name_IVB=British Virgin Islands

|name_JAM=Jamaica

|name_JOR=Jordan

|name_JPN=Japan

|name_KAZ=Kazakhstan

|name_KEN=Kenya

|name_KGZ=Kyrgyzstan

|name_KIR=Kiribati

|name_KOR=South Korea

|name_KOS=Kosovo

|name_KSA=Saudi Arabia

|name_KUW=Kuwait

|name_LAO=Laos

|name_LAT=Latvia

|name_LBA=Libya

|name_LIB=Lebanon

|name_LBN=Lebanon

|name_LBR=Liberia

|name_LCA=Saint Lucia

|name_LES=Lesotho

|name_LIE=Liechtenstein

|name_LTU=Lithuania

|name_LUX=Luxembourg

|name_MAD=Madagascar

|name_MAR=Morocco

|name_MAS=Malaysia

|name_MAW=Malawi

|name_MDA=Moldova

|name_MDV=Maldives

|name_MEX=Mexico

|name_MGL=Mongolia

|name_MHL=Marshall Islands

|name_MKD=North Macedonia

|name_MLI=Mali

|name_MLT=Malta

|name_MNE=Montenegro

|name_MON=Monaco

|name_MOZ=Mozambique

|name_MRI=Mauritius

|name_MTN=Mauritania

|name_MYA=Myanmar

|name_NAM=Namibia

|name_NCA=Nicaragua

|name_NED=Netherlands

|name_NEP=Nepal

|name_NGR=Nigeria

|name_NIG=Niger

|name_NOR=Norway

|name_NRU=Nauru

|name_NZL=New Zealand

|name_OMA=Oman

|name_PAK=Pakistan

|name_PAN=Panama

|name_PAR=Paraguay

|name_PER=Peru

|name_PHI=Philippines

|name_PLE=Palestine

|name_PLW=Palau

|name_PNG=Papua New Guinea

|name_POL=Poland

|name_POR=Portugal

|name_PRK=North Korea

|name_PUR=Puerto Rico

|name_QAT=Qatar

|name_ROU=Romania

|name_RSA=South Africa

|name_RUS=Russia

|name_RWA=Rwanda

|name_SAM=Samoa

|name_SEN=Senegal

|name_SEY=Seychelles

|name_SGP=Singapore

|name_SKN=Saint Kitts and Nevis

|name_SLE=Sierra Leone

|name_SLO=Slovenia

|name_SMR=San Marino

|name_SOL=Solomon Islands

|name_SOM=Somalia

|name_SRB=Serbia

|name_SRI=Sri Lanka

|name_SSD=South Sudan

|name_STP=São Tomé and Príncipe

|name_SUD=Sudan

|name_SUI=Switzerland

|name_SUR=Suriname

|name_SVK=Slovakia

|name_SWE=Sweden

|name_SWZ=Swaziland

|name_SYR=Syria

|name_TAN=Tanzania

|name_TGA=Tonga

|name_THA=Thailand

|name_TJK=Tajikistan

|name_TKM=Turkmenistan

|name_TLS=East Timor

|name_TOG=Togo

|name_TPE=Chinese Taipei

|name_TRI=Trinidad and Tobago

|name_TTO=Trinidad and Tobago

|name_TUN=Tunisia

|name_TUR=Turkey

|name_TUV=Tuvalu

|name_UAE=United Arab Emirates

|name_UGA=Uganda

|name_UKR=Ukraine

|name_URU=Uruguay

|name_USA=United States

|name_UZB=Uzbekistan

|name_VAN=Vanuatu

|name_VEN=Venezuela

|name_VIE=Vietnam

|name_VIN=Saint Vincent and the Grenadines

|name_YEM=Yemen

|name_ZAM=Zambia

|name_ZIM=Zimbabwe

|name_BEN=Bendigo Bombers

|name_BEN=Bendigo Football Club

|name_BOX=Box Hill Football Club

|name_BOX=Box Hill Hawks

|name_CAS=Casey Scorpions

|name_COB=Coburg Football Club

|name_COB=Coburg Tigers

|name_COL=Collingwood Football Club#Reserves team

|name_COL=Collingwood Football Club

|name_DAN=Dandenong Football Club

|name_FRA=Frankston Dolphins

|name_FRA=Frankston Football Club

|name_GC =Gold Coast Football Club

|name_GEE=Geelong Cats

|name_GEE=Geelong Football Club (VFL)

|name_GEE=Geelong Football Club#Reserves team

|name_GEE=Geelong Football Club

|name_NBR=North Ballarat Football Club

|name_NBR=North Ballarat Roosters

|name_NBU=Northern Blues

|name_NBU=Northern Bullants

|name_OAK=Oakleigh Football Club

|name_PMB=Port Melbourne Borough

|name_PMB=Port Melbourne Boroughs

|name_PMB=Port Melbourne Football Club

|name_PRA=Prahran Football Club

|name_PRE=Preston Football Club (VFA)

|name_SAN=Sandringham Football Club

|name_SAN=Sandringham Zebras

|name_SPR=Springvale Football Club

|name_TAS=Tasmanian Devils Football Club

|name_TRA=Traralgon Football Club

|name_WER=Werribee Football Club

|name_WER=Werribee Tigers

|name_WIL=Williamstown Football Club

|name_WIL=Williamstown Seagulls

|name_BER=Berwick Football Club

|name_BOX=Box Hill Football Club

|name_BRU=Brunswick Football Club

|name_CAM=Camberwell Football Club

|name_CAU=Caulfield Football Club

|name_COB=Coburg Football Club

|name_DAN=Dandenong Football Club

|name_FRA=Frankston Football Club

|name_GLW=Geelong West Football Club

|name_KIL=Kilsyth Football Club

|name_MOO=Moorabbin Football Club

|name_MOR=Mordialloc Football Club

|name_NBU=Northern Blues

|name_NOR=Northcote Football Club

|name_OAK=Oakleigh Football Club

|name_PMB=Port Melbourne Football Club

|name_PRA=Prahran Football Club

|name_SAN=Sandringham Football Club

|name_SPR=Springvale Football Club

|name_SUN=Sunshine Football Club (VFA)

|name_WAV=Waverley Football Club

|name_WER=Werribee Football Club

|name_WIL=Williamstown Football Club

|name_YAR=Yarraville Football Club

|name_DLSU=La Salle

|name_AdU=Adamson

|name_AdMU=Ateneo

`;

var oldtext = myContent.value;

myContent.value = wpFbGenFix(myContent.value);

myContent.value = wpFbUnpre(myContent.value);

myContent.value = wpFbCols(myContent.value);

myContent.value = myContent.value.replace(/()[\t ]*[\r\n]*/g, '$1');

var sections = myContent.value.split(/(\{\{[_\s]*[Ff]b[_\s]+(?:ha|cl|r)2?[_\s]+header|\{\{[_\s]*Vb[_\s]+cl[0-9*[_\s]+header|\{\{[_\s]*Vb[_\s]+res[_\s]+start|\{\{[_\s]*(?:[Ii]ce[_ ]*[Hh]ockey|[Bb]asketball|[Hh]andball|[Ff]ootball|[Rr]ugby)[_ ]*box|\{\{[_\s]*[Ff]b[_\s]+rbr[_\s]+pos[_\s]+header|\{\{[\s]*#invoke:[\s]*[Ss]ports|\{\{PHL sports sked header|[\r\n]\{\|)/g);

// begin convoluted loop

var i=0;

function myLoop() {

if ( sections[i].search(/(\{\{[_\s]*[Ff]b[_\s]+(?:ha|cl|r)2?[_\s]+header|\{\{[_\s]*Vb[_\s]+cl[0-9*[_\s]+header|\{\{[_\s]*Vb[_\s]+res[_\s]+start|\{\{[_\s]*(?:[Ii]ce[_ ]*[Hh]ockey|[Bb]asketball|[Hh]andball|[Ff]ootball|[Rr]ugby)[_ ]*box|\{\{[_\s]*[Ff]b[_\s]+rbr[_\s]+pos[_\s]+header|\{\{[\s]*#invoke:[\s]*[Ss]ports|\{\{PHL sports sked header|[\r\n]\{\|)/g) >= 0 ) {

if ((i+1) < sections.length) {

sections[i] = sections[i] + sections[i+1];

sections[i+1] = '';

}

}

sections[i] = wpFbUntable(sections[i]);

sections[i] = wpVB(sections[i]);

sections[i] = wpRugby(sections[i]);

sections[i] = sections[i].replace(/(\{\{[\s_]*[Ll]ocation[_ ]+map\+[\s_]*\|[^\|\{\}]*\|[\s]*float[\s]*=[\s]*)left([\s]*\|(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\s]*(\{\{[\s_]*[Ll]ocation[_ ]+map\+[\s_]*\|[^\|\{\}]*\|[\s]*float[\s]*=[\s]*right[\s]*\|(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\s]*\{\{[_ ]*(?:[Cc]lear[^{}]*|\-)\}\}/g, '$3\n$1none$2');

sections[i] = sections[i].replace(/(\{\{[\s_]*[Ll]ocation[_ ]+map\+[\s_]*\|[^\|\{\}]*\|[\s]*float[\s]*=[\s]*)left([\s]*\|(?:\{\{[^{}]*\}\}|[^{}])*\}\})[\s]*\{\{[_ ]*(?:[Cc]lear[^{}]*|\-)\}\}/g, '$1none$2');

if ( sections[i].search(/(\{\{[_\s]*[Ff]b[_\s]+(ha|cl2?)[_ ]+header|\{\{[\s]*#invoke:[\s]*[Ss]ports[\s]*table)/g) >= 0 ) {

sections[i] = wpFbCl(sections[i], sections.join('') , teamset);

sections[i] = wpUnpos(sections[i], sections.join(''));

sections[i] = wpUnlabel(sections[i]);

} else if ( sections[i].search(/(\{\{[_\s]*[Ff]b[_ ]+r2?[_\s]+header|\{\{[\s]*#invoke:[\s]*[Ss]ports[\s]*results)/g) >= 0 ) {

sections[i] = wpFbr2(sections[i], sections.join(''));

}

i++;

if(i

myLoop();

}

}

myLoop();

// end convoluted loop

myContent.value = sections.join('');

myContent.value = myContent.value.replace(/()[\t ]*[\r\n]*/g, '$1');

if (myContent.value.search(/\|[ ]*source[ ]*=[ \r\n]*(?:\||\}\})/) >= 0) {

if(myContent.value.search(/www\.rsssf\.com\/tablese\/engnwcleaghist\.html/) >= 0){

myContent.value = myContent.value.replace(/(\|[ ]*source[ ]*=)[ ]*([\r\n]?(?:\||\}\}))/g, '$1[' + 'http://www.rsssf.com/tablese/engnwcleaghist.html rsssf.com]' + '$2');

}

}

if (myContent.value.search(/\|[ ]*source[ ]*=[ \r\n]*(?:\||\}\})/) >= 0) {

if(myContent.value.search(/www\.rsssf\.com\/tablesf\/finhist\.html/) >= 0){

myContent.value = myContent.value.replace(/(\|[ ]*source[ ]*=)[ ]*([\r\n]?(?:\||\}\}))/g, '$1[' + 'http://www.rsssf.com/tablesf/finhist.html rsssf.com]' + '$2');

}

}

if (myContent.value.search(/\|[ ]*source[ ]*=[ \r\n]*(?:\||\}\})/) >= 0) {

if(myContent.value.search(/www\.rsssf\.com\/tablesp\/polhist\.html/) >= 0){

myContent.value = myContent.value.replace(/(\|[ ]*source[ ]*=)[ ]*([\r\n]?(?:\||\}\}))/g, '$1[' + 'http://www.rsssf.com/tablesp/polhist.html rsssf.com]' + '$2');

}

}

myContent.value = myContent.value.replace(/(\}\}[\t ]*[\r\n])[\t ]*[\r\n]*[\t ]*[\r\n]*1 (The points[^<>]*)<\/sup>[\t ]*[\r\n]*/g, '|class_rules=$2\n$1');

if (myContent.value.search(/$2');

if (myContent.value.search(/\|[\t ]*nt[\t ]*=/g) >=0 ) {

alert('Found |nt=, could be unprocessed notes?');

}

myContent.value = myContent.value.replace(//g, '');

var editsummary = document.getElementsByName('wpSummary')[0];

document.forms.editform.wpMinoredit.checked = true;

editsummary.value = mysummary;

document.forms.editform.wpDiff.click();

}

}

// -------------------------------------------------------------------------------- //

});

//