User:Symplectic Map/script.js

// lowercase first letter function SM_lower(str) { if (str != "") { var x = str.search( /[a-z]/gi ); if( x >= 0 ) { var let = str.slice(x,x+1); str = str.replace(let, let.toLowerCase); } } return str; }

// uppercase first letter function SM_upper(str) { if (str != "") { var x = str.search( /[a-z]/gi ); if( x >= 0 ) { var let = str.slice(x,x+1); str = str.replace(let, let.toUpperCase); } } return str; }

// Obfuscation using sic template function SM_obfuscate(str) { if (str != "") { str = str.replace(/\(/g, '(?:'); var x = str.search( /[a-z][a-z]/gi ); if( x >= 0 ) { str = '('+ str.slice(0,x+1) +')('+ str.slice(x+1) +')'; } } return str; }

// special replace function SM_sr(str, spair) { var r = ""; var s = new RegExp("", "gm"); var m = spair.match(/^(.*)\/(.*)$/);

// obfuscate misspellings in file names var sfile = new RegExp("(\\[\\[(?:FILE|IMAGE)[^\\]\\|]*[^\\w\\/\\.])" + SM_obfuscate(m[1]) + "([^\\w\\/])", 'gim' ); str = str.replace(sfile, '$1$2$3 [sic]$4');

// obfuscate misspellings in URLs sfile = new RegExp("(http:[^ ]*)" + SM_obfuscate(m[1]), 'gim' ); str = str.replace(sfile, '$1$2$3'); // obfuscate misspellings in audio templates sfile = new RegExp("({{audio\\|)" + SM_obfuscate(m[1]), 'gim' ); str = str.replace(sfile, '$1$2$3');

// case insensitive check var sgim = new RegExp("([^\\w\\/\\.])" + m[1] + "([^\\w\\/])","gim"); if( str.search(sgim) >= 0 ) { // lowercase s.compile("([^\\w\\/\\.])" + SM_lower(m[1]) + "([^\\w\\/])","gm"); r = SM_lower(m[2].replace(/\$1/g, '$2')); if( r.search( /\$2/g ) >= 0 ) { r = "$1" + r + "$3"; } else { r = "$1" + r + "$2"; } str = str.replace(s, r); // uppercase s.compile("([^\\w\\/\\.])" + SM_upper(m[1]) + "([^\\w\\/])","gm"); r = SM_upper(r); str = str.replace(s, r); }

// Remove obfuscation str = str.replace(//g, '');

return str; }

// Foreign cite web function SM_cita(str) { str = str.replace(/{{cita web/gi, '{{cite web'); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])autor[ ]*=[ ]*/gim, '$1author = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])apellido[ ]*=[ ]*/gim, '$1last = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])nombre[ ]*=[ ]*/gim, '$1first = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])(?:editor|editorial)[ ]*=[ ]*/gim, '$1publisher = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])año[ ]*=[ ]*/gim, '$1year = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])(?:titolo|título)[ ]*=[ ]*/gim, '$1title = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])fecha[ ]*=[ ]*/gim, '$1date = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])formato[ ]*=[ ]*/gim, '$1format = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])obra[ ]*=[ ]*/gim, '$1work = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])idioma[ ]*=[ ]*/gim, '$1language = '); str = str.replace(/({{cite web(?:[\r\n]|[^{}])*[^a-z{}])(?:accesso|fechaacceso)[ ]*=[ ]*/gim, '$1accessdate = '); return str; }