_ _    _ _____  ___   __                       
 __      _(_) | _(_)___ / ( _ ) / /_   ___ ___  _ __ ___  
 \ \ /\ / / | |/ / | |_ \ / _ \| '_ \ / __/ _ \| '_ ` _ \ 
  \ V  V /| |   <| |___) | (_) | (_) | (_| (_) | | | | | |
   \_/\_/ |_|_|\_\_|____/ \___/ \___(_)___\___/|_| |_| |_|

Wikipedysta:Jakubkaja/common.js

W ramach Wikipedysta:Jakubkaja/common.js znajdujemy dziś temat o dużym znaczeniu i zainteresowaniu. Temat ten wywołał debaty, dyskusje i refleksje w różnych obszarach, od polityki po naukę, w tym kulturę i społeczeństwo w ogóle. Jest to temat, który zachęca nas do refleksji nad podstawowymi aspektami życia, do kwestionowania naszych przekonań i poszukiwania odpowiedzi na pytania, które towarzyszyły nam na przestrzeni dziejów. W tym artykule postaramy się zagłębić w Wikipedysta:Jakubkaja/common.js, badając jego różne aspekty, analizując jego implikacje i oferując krytyczne i analityczne spojrzenie na temat, który dotyczy nas wszystkich.
/*
 * Rozszerzenie WP:SK, skryptu autorstwa Nuxa (pl:User:Nux)
 * http://pl.wikipedia.orghttps://wiki386.com/pl/WP:SK
 * Autor: ToSter (pl:User:ToSter)
 * Licencja:  GNU General Public License v2
 * http://opensource.org/licenses/gpl-license.php
 * <pre>
 */
( function() {
	function attachToSk() {
		//console.log( "Attaching to WP:SK" );
		wp_sk.myver = '3.18';
		wp_sk.extension += "+]";
		wp_sk.escapeTemplate = function( str ) {
			str = str.replace( /\|(\s**) - (*)=/gi, "|$1 <%%%SDASH%%%> $2=" );
			str = str.replace( /\|(\s*altlink\s*=*) - (*)/gi, "|$1 <%%%SDASH%%%> $2" );
			str = str.replace( /(\s**)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, function( a, fname, ext ) {
				fname = fname.replace( /-/g, ' <%%%SDASH%%%> ' );
				fname = fname.replace( /–/g, ' <%%%NDASH%%%> ' );
				fname = fname.replace( /—/g, ' <%%%MDASH%%%> ' );
				fname = fname.replace( /\./g, '<%%%DOT%%%>' );
				fname = fname.replace( /(\d)r/g, "$1<%%%R%%%>" );
				return fname + '.' + ext;
			} );
			return str;
		};

		wp_sk.cleanLinksAndTemplates = function( str ) {
			// półpauzy
			// na początek escape w linkach i szablonach
			for ( i = 0; i <= 3; i++ ) {
				str = str.replace( /\]+?) - (+?)(])/g, '[[$1 <%%%SDASH%%%> $2$3' );
				str = str.replace( /\]+?) – (+?)(])/g, '[[$1 <%%%NDASH%%%> $2$3' );
				str = str.replace( /\]+?)×(+?)(])/g, '[[$1<%%%CROSS%%%>$2$3' );
				str = str.replace( /\]+?)\.(+?)(])/g, '[[$1<%%%DOT%%%>$2$3' );
				str = str.replace( /\]+?\d)r(+?)(])/g, '[[$1<%%%R%%%>$2$3' );
				str = str.replace( /\{\{((s\|)?+?) - (+?)()/g, '{{$1 <%%%SDASH%%%> $3$4' );
				str = str.replace( /\{\{((s\|)?+?) – (+?)()/g, '{{$1 <%%%NDASH%%%> $3$4' );
				str = str.replace( /\{\{((s\|)?+?)\.(+?)()/g, '{{$1<%%%DOT%%%>$3$4' );
				str = str.replace( /\{\{((s\|)?+?)×(+?)()/g, '{{$1<%%%CROSS%%%>$3$4' );
				str = str.replace( /\{\{((s\|)?+?\d)r(+?)()/g, '{{$1<%%%R%%%>$3$4' );
				str = str.replace( /\{\{(main|mainsec|zobacz też|osobny artykuł|główny artykuł|kategoria główna|zobacz kategorię)\|(+?) - (+?)/gi, '{{$1|$2 <%%%SDASH%%%> $3' );
				str = str.replace( /\{\{uża grafika\|(+?) - (+?)()/g, '{{Duża grafika|$1 <%%%SDASH%%%> $2$3' );
				str = str.replace( /\{\{uża grafika\|(+?) – (+?)()/g, '{{Duża grafika|$1 <%%%NDASH%%%> $2$3' );
				str = str.replace( /\{\{uża grafika\|(+?)\.(+?)()/g, '{{Duża grafika|$1<%%%DOT%%%>$2$3' );
				str = str.replace( /\{\{uża grafika\|(+?\d)r(+?)()/g, '{{Duża grafika|$1<%%%R%%%>$2$3' );
				str = str.replace( /\{\{ikisłownik\|(+?) - (+?)()/g, '{{Wikisłownik|$1 <%%%SDASH%%%> $2$3' );
				str = str.replace( /<ref name\s*=\s*"(+?) - (+?)"/g, '<ref name="$1 <%%%SDASH%%%> $2"' );

				str = str.replace( /\]+?) x (]+?)\]\]/g, ']' );
			}
			// + escape w galeriach
			str = str.replace( /<gallery(+?)<\/gallery>/gi, function( a, zaw ) {
				for ( i = 0; i < 5; i++ ) {
					zaw = zaw.replace( /(\s**) - (*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, "$1 <%%%SDASH%%%> $2.$3" );
					zaw = zaw.replace( /(\s**) – (*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, "$1 <%%%NDASH%%%> $2.$3" );
					zaw = zaw.replace( /(\s**) — (*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, "$1 <%%%MDASH%%%> $2.$3" );
					zaw = zaw.replace( /(\s**)\.(*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, "$1<%%%DOT%%%>$2.$3" );
					zaw = zaw.replace( /(\s**\d)r(*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg|JPE?G|PNG|GIF|TIFF?|SVG|WEBM|OGG)/g, "$1<%%%R%%%>$2.$3" );
					zaw = zaw.replace( /(\s**)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, function( a, filename, ext ) {
						filename = filename.replace( /_/g, ' ' );
						filename = filename.substr( 0, 1 ).toUpperCase() + filename.substr( 1, filename.length );
						return filename + '.' + ext;
					} );
				}
				return "<gallery" + zaw + "</gallery>";
			} );
			// + escape i poprawki w {{Galeria}}
			str = str.replace( /\{\{Galeria(\s*\|+?)\}\}/gi, function( a, zaw ) {
				zaw = zaw.replace( /(File|Image|Plik|Grafika):/gi, "Plik:" );
				for ( i = 0; i < 5; i++ ) {
					zaw = zaw.replace( /:(\s**) - (*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, ":$1 <%%%SDASH%%%> $2.$3" );
					zaw = zaw.replace( /:(\s**) – (*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, ":$1 <%%%NDASH%%%> $2.$3" );
					zaw = zaw.replace( /:(\s**) — (*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, ":$1 <%%%MDASH%%%> $2.$3" );
					zaw = zaw.replace( /:(\s**)\.(*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, ":$1<%%%DOT%%%>$2.$3" );
					zaw = zaw.replace( /:(\s**\d)r(*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg|JPE?G|PNG|GIF|TIFF?|SVG|WEBM|OGG)/g, ":$1<%%%R%%%>$2.$3" );
					zaw = zaw.replace( /:(\s**)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, function( a, filename, ext ) {
						filename = filename.replace( /_/g, ' ' );
						filename = filename.substr( 0, 1 ).toUpperCase() + filename.substr( 1, filename.length );
						return ':' + filename + '.' + ext;
					} );
				}
				return "{{Galeria" + zaw + "}}";
			} );
			return str;
		};

		wp_sk.unescapeString = function( str ) {
			str = str.replace( /<%%%SDASH%%%>/g, '-' );
			str = str.replace( /<%%%NDASH%%%>/g, '–' );
			str = str.replace( /<%%%MDASH%%%>/g, '—' );
			str = str.replace( /<%%%CROSS%%%>/g, '×' );
			str = str.replace( /<%%%X%%%>/g, 'x' );
			str = str.replace( /<%%%DOT%%%>/g, '.' );
			return str;
		};

		wp_sk.friendlierTemplate = function( a, nazwa, zaw ) {
			if ( zaw.indexOf( '=' ) == -1 && zaw.indexOf( '|' ) == -1 ) {
				return a;
			}
			// -dane teleadresowe w infoboksach
			zaw = zaw.replace( /(\s*)(\|\s*(email|mail|e-mail|mail_um|mail_ug|tel_ug|fax_ug|telefon|tel_um|fax_um)\s*=*?)+()/g, '$1$4' );
			// escape
			zaw = wp_sk.escapeTemplate( zaw );
			zaw = zaw.replace( /\|(\s**)=(\s**)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, function( a, param, filename, ext ) {
				spaces = '';
				if ( (filename.indexOf( '://' ) == -1) && (filename.indexOf( '%3a%2f%2f' ) == -1 ) ) {
					filename = filename.replace( /_/g, ' ' );
					while ( filename.charAt( 0 ) == ' ' ) {
						filename = filename.substr( 1, filename.length );
						spaces += ' ';
					}
					filename = filename.substr( 0, 1 ).toUpperCase() + filename.substr( 1, filename.length );
				}
				return '|' + param + '=' + spaces + filename + '.' + ext;
			} );
			return '{{' + nazwa + zaw + '}}';
		};

		wp_sk.cleaner_new = function( str ) {
			str = wp_sk.cleanerWikiVaria_old( str );

			// escape + podstawowe poprawki w linkach i szablonach
			str = wp_sk.cleanLinksAndTemplates( str );

			// brakująca kropka
			str = str.replace( /(+) *w()/g, '$1 w.$2' );

			// ort.
			str = str.replace( /(północny|południowy|środkowy) * *(wschód|zachód)/g, '$1 $2' );
			str = str.replace( /(północnego|południowego|środkowego) * *(wschodu|zachodu)/g, '$1 $2' );
			str = str.replace( /(północnym|południowym|środkowym) * *(wschodzie|zachodzie)/g, '$1 $2' );
			str = str.replace( /(północno|południowo|środkowo) * *(wschodni|zachodni)/g, '$1-$2' );

			// + escape w szablonach, przy okazji sprzątnięcie podkreśleń w nazwach plików i usunięcie zbędnych parametrów
			str = str.replace( /\{\{(+)((?:||\{\{(?:||\{\{+\}\})+\}\})+)\}\}/g, wp_sk.friendlierTemplate );
			str = str.replace( /(\s)-(\s)/g, '$1–$2' );
			str = str.replace( /&ndash;/g, '–' );
			str = str.replace( /&mdash;/g, '—' );
			// str = str.replace(/ — /g, ' – ');
			// spacje w listach
			str = str.replace( /(\n+)()/g, '$1 $2' );
			str = str.replace( /(\n+)\{\{/g, '$1 {{' );

			// -zbędne spacje przed div
			str = str.replace( /\n\s*<(\/)?div/g, '\n<$1div' );
			// skale map
			str = str.replace( /(\D1): ?(\d) ?(\d{3}\D)/g, '$1:$2$3' );
			str = str.replace( /(\D1): ?(\d{2,3}) ?(\d{3}\D)/g, '$1:$2&nbsp;$3' );
			// liczby do 9999 bez spacji
			str = str.replace( /(\s\d)( |&nbsp;)(\d{3}(\s|&nbsp;)(\D))/g, '$1$3' );

			// optymistyczna heurystyka:
			// kropka na nbsp dla liczb pięciocyfrowych
			str = str.replace( /(\d{2})\.(\d{3})( |&nbsp;)?(m|cm|mm|ha|os\.|osób|km|°C|°F)(\W)/g, '$1&nbsp;$2&nbsp;$4$5' );
			// ludzie niepodzielni - ciach kropkę
			str = str.replace( /(\d+)\.(\d+)( |&nbsp;)?(mieszk\.|mieszkańców|os\.|osób)(\W)/g, '$1$2&nbsp;$4$5' );
			// spacja przed rokiem
			str = str.replace( /((\s()?\d{3})r\.)/g, '$2 r.' );
			str = str.replace( /<%%%R%%%>/g, 'r' );

			// encje, unicode od Malarza
			str = str.replace( /&bull;/g, '•' );
			str = str.replace( /\&\#8211;/g, '–' );
			str = str.replace( /\&\#8216;/g, '‘' );
			str = str.replace( /\&\#8217;/g, '’' );
			str = str.replace( /\&\#8221;/g, '”' );

			// int./ort.
			str = str.replace( /()m+in\.? /g, '$1m.in. ' );
			str = str.replace( / np: /g, ' np. ' );

			// dwie kropki na końcu zdania
			str = str.replace( /\.\]\]\./g, '.]]' );
			// uproszczenie linku do n.p.m.
			str = str.replace( /\\]/gi, 'm ]' );
			str = str.replace( /\\] \\]/gi, 'm ]' );

			// strzałki dla opisów szlaków
			str = str.replace( /↑ ?(\d)/g, '↑&nbsp;$1' );
			str = str.replace( /↓ ?(\d)/g, '↓&nbsp;$1' );

			str = str.replace( /_infobox/g, ' infobox' );

			str = str.replace( /\| wydawca=Wydaw\. Naukowe PWN/g, '| wydawca= Wydawnictwo Naukowe PWN' );

			// -puste parametry cytuj
			str = str.replace( /((\s*)\|\s*(imię\d|nazwisko\d|inni|autor link\d|autor\d)\s*=\s*)+()/g, '$2$4' );

			// 1 x 2 -> odpowiedni krzyżyk + nbsp
			str = str.replace( /(+)  (+) /g, '$1&nbsp;×&nbsp;$2&nbsp;' );
			str = str.replace( /\{\{nowrap start\}\}(\s*)(+)  (+) /g, '{{nowrap start}}$1$2 × $3 ' );

			// przypisy dużą literą
			str = str.replace( / ?\{\{rzypisy/g, '{{Przypisy' );
			// kropka w języku do linka
			str = str.replace( /\{2,5})(+)\|\1\]\]\. ?/gi, '] ' );

			str = str.replace( /\{\{Seealso/gi, '{{Zobacz też' );

			// drobiazgi przy refach
			str = str.replace( /<\/ref>()()/g, '</ref>$1 $2' );

			// sprzątanie wiosek
			str = str.replace( /Dane z \\] \\]\{\{ŹródłoPL\|2\}\}:/g, 'Dane z 30 czerwca 2004{{ŹródłoPL|2}}:' );
			str = str.replace( /\{\| border="1" cellpadding="4" cellspacing="0" style="margin: 0 0 1em 1em; background: #f9f9f9; border: 1px #aaaaaa solid; border-collapse: collapse; text-align:right;"/g, '{| class="wikitable"' );

			// wikizacja html
			str = str.replace( /<i>(+?)<\/i>/gi, "''$1''" );
			str = str.replace( /<(b|strong)>(+?)<\/\1>/gi, "'''$2'''" );
			str = str.replace( /<(h1|h2)>(+?)<\/\1>/gi, "== $2 ==" );
			str = str.replace( /<h3>(+?)<\/h3>/gi, "=== $1 ===" );
			str = str.replace( /<h4>(+?)<\/h4>/gi, "==== $1 ====" );
			str = str.replace( /<h5>(+?)<\/h5>/gi, "===== $1 =====" );
			// listy
			str = str.replace( /<(l)>(+?)<\/\1>/gi, function( a, ltype, zaw ) {
				var substBeg = ( ltype.toLowerCase().charAt( 0 ) == 'u' ) ? '*' : '#';
				zaw = zaw.replace( /<li>/gi, '\n<li>' );
				zaw = zaw.replace( /\n\n/gi, '\n' );
				zaw = zaw.replace( /<\/li>/gi, '' );
				zaw = zaw.replace( /<li>/gi, substBeg + ' ' );
				return zaw;
			} );

			// tabelki
			str = str.replace( /<table(+?)>/gi, '{|$1' );
			str = str.replace( /<\/table>/gi, '|}' );
			str = str.replace( /<\/td>\n+\s*<td>/gi, '\n| ' );
			str = str.replace( /<\/th>\n+\s*<th>/gi, '\n! ' );
			str = str.replace( /<\/td>\n+\s*<td (+?)>/gi, '\n| $1 | ' );
			str = str.replace( /<\/th>\n+\s*<th (+?)>/gi, '\n! $1 | ' );
			str = str.replace( /<\/td>\s*<td>/gi, ' || ' );
			str = str.replace( /<\/th>\s*<th>/gi, ' !! ' );
			str = str.replace( /<\/td>\s*<td (+?)>/gi, ' || $1 | ' );
			str = str.replace( /<\/th>\s*<th (+?)>/gi, ' !! $1 | ' );
			str = str.replace( /(<\/t>)?\s*<\/tr>/gi, '' );
			str = str.replace( /\s*<tr(*?)>\s*/gi, '\n|- $1\n' );
			str = str.replace( /\n\s*<td>/gi, '\n| ' );
			str = str.replace( /\n\s*<th>/gi, '\n! ' );
			str = str.replace( /\n\s*<td (+?)>/gi, '\n| $1 | ' );
			str = str.replace( /\n\s*<th (+?)>/gi, '\n! $1 | ' );
			str = str.replace( /<\/td>/gi, '' );

			// -> Plik: wszędzie, np. w parametrach infoboksów - rezygnacja, bo wycofujemy to z szablonów a generuje błędy
//			str = str.replace( /(= *|\[\[)(Grafika|File|Image):/gi, '$1Plik:' );

			// -spacje przy px
			str = str.replace( /\|(\d{2,4}) px\|/g, '|$1px|' );
			// centre -> center
			str = str.replace( /\|centre/g, '|center' );
			// |thumb|]] -> |thumb]]
			str = str.replace( /\|(center|thumb|left)\|\]\]/g, '|$1]]' );
			// thumb na początek, -right, od Matma Rexa
			str = str.replace( /\]+)\|((?:\\]|])+)\]\]/g, function( a, name, opts ) {
				o = opts.split( '|' );
				if ( o.indexOf( 'thumb' ) >= 0 ) {
					z = o.indexOf( 'right' );
					if ( z >= 0 ) o.splice( z, 1 );
					if ( o.indexOf( 'thumb' ) !== 0 ) {
						o.splice( o.indexOf( 'thumb' ), 1 );
						o.unshift( 'thumb' );
					}
				}
				res = '|' + o.join( '|' );
				res = res.replace( /\|\|/g, '|' );
				res = res.replace( /\|$/g, '' );
				return ']';
			} );
			// odescapujemy
			str = wp_sk.unescapeString( str );

			return str;
		};

		wp_sk.cleanerWikiVaria_old = wp_sk.cleanerWikiVaria;
		wp_sk.cleanerWikiVaria = wp_sk.cleaner_new;

	}

	if ( typeof( wp_sk ) !== 'undefined' ) {
		//console.log( "WP:SK is present" );
		attachToSk();
	} else {
		//console.log( "WP:SK is not present" );
		var timer;
		var attemptsLeft = 600;
		timer = window.setInterval( function() {
			if ( typeof( wp_sk ) !== 'undefined' ) {
				attachToSk();
				window.clearInterval( timer );
				return;
			}
			attemptsLeft--;
			if ( attemptsLeft < 0 ) {
				//console.log( "WP:SK is not present, giving up" );
				window.clearInterval( timer );
			}
		}, 100 );
	}
} )();

//</pre>

$(function() {
	if(typeof wp_sk ==='undefined') return;
	wp_sk.mm_rFriendlyIbox = function(a,nazwa,zaw) {
		//
		// usuwam komentarze
		//
		zaw = zaw.replace(/<!-- <liczba>/, '<!--');
		zaw = zaw.replace(/ *<!--*--> *\n/g, '\n')

		//
		// jak został komentarz lub nie ma parametrów to kończymy
		//
		if (zaw.indexOf('<!--')!=-1 || zaw.indexOf('|')==-1)
		{
			return a;
		}
		nazwa = nazwa.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");	// trim
 
		//
		// escapowanie parametrów
		//
		zaw = zaw.replace(/<<<(#+)>>>/g,'<<<#$1>>>');
		// wewnętrzne szablony
		zaw = zaw.replace(/\{\{((+)?(\{\{+\}\})?)*\}\}/g,function(a){ return a.replace(/\|/g,'<<<#>>>') });
		// wewnętrzne linki
		zaw = zaw.replace(/\]+\]\]/g,function(a){ return a.replace(/\|/g,'<<<#>>>') });
 
		//
		// sprzątanie
		//
		// del pustych
		zaw = zaw.replace(/\|\s*(?=\|)/g, function(a) {return (a.indexOf('\n')==-1)?'':'\n'}).replace(/\|\s*$/g, "");
		zaw = zaw.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");	// trim

		// przeniesienie | na początek wiersza (zawsze)
		zaw = '\n'+zaw+'\n';
		zaw = zaw.replace(/\s*\|\s*/g, '\n |');

		//
		// odescapowanie
		//
		zaw = zaw.replace(/<<<#>>>/g,'|').replace(/<<<#(#+)>>>/g,'<<<$1>>>');
 
		dlugosc = 0;
		zawartosc = zaw;
		// obliczam długość najdłuższej nazwy parametru
		while (zawartosc.length) {
			linia = zawartosc.substr(0, zawartosc.indexOf('\n'));
			zawartosc = zawartosc.substr(zawartosc.indexOf('\n')+1);
			if (linia.match(/^ *\|*\=/)){
				linia = linia.replace(/^ *\|(*)=.*$/, '$1');
				linia = linia.replace(/^*()/, '$1');
				linia = linia.replace(/()*$/, '$1');
				if (!(linia.match(/^(stopni|minut|sekund)(N|E|S|W)$/))) {
					dlugosc = (dlugosc>linia.length) ? dlugosc : linia.length;
				}
			}
		}
		// dla niekórych dlugosc ustawiam na stałe
		if (nazwa.match(/^Jednostka administracyjna infobox/)) {
			dlugosc = 31;
		} else if (nazwa.match(/^Zwierzę infobox/)) {
			dlugosc = 22;
		} else if (nazwa.match(/^Biogram infobox/)) {
			dlugosc = 20;
		} else if (nazwa.match(/^Dzielnica infobox/)) {
			dlugosc = 28;
		}

		// przerabiam wywołania parametrów
		nowazaw = '';
		while (zaw.length) {
			linia = zaw.substr(0, zaw.indexOf('\n'));
			zaw = zaw.substr(zaw.indexOf('\n')+1);
			if (linia.match(/^ *\|*\=/)){
				nazwapar = linia.replace(/^ *\|(*)=.*$/, '$1');
				nazwapar = nazwapar.replace(/^*()/, '$1');
				nazwapar = nazwapar.replace(/()*$/, '$1');
				if (!(nazwapar.match(/^(stopni|minut|sekund)(N|E|S|W|_szer|_dł)$/))) {
					while (nazwapar.length<dlugosc)  nazwapar += ' ';
				}
				parametr = linia.replace(/^ *\|* *=(.*)$/, '$1');
				parametr = parametr.replace(/^ *()/, '$1');
				parametr = parametr.replace(/()*$/, '$1');
				if (parametr == "?")
					parametr = "";
				parametr = parametr.replace(/ *<\/?br ?\/?>$/gi, '');

				nowazaw += ' |' + nazwapar + ' = ' + parametr + '\n';
			} else {
				nowazaw += linia + '\n';
			}
                	nowazaw = nowazaw.replace(/\n( \|(minut|sekund)(N|E|S|W|_szer|_dł) =)/, '$1');
        	        nowazaw = nowazaw.replace(/\n \|(szerokość|długość) *= (N|E|S|W)/, ' |$1 = $2');
		}

		// składam do kupy nowy ibox
		return '{{' + nazwa.substring(0,1).toUpperCase() + nazwa.substring(1) + nowazaw + '}}';
	}

	wp_sk.rFriendlyIbox = wp_sk.mm_rFriendlyIbox;
	wp_sk.extension += "+]";
});


( function() {
	function attachToSk() {
		//console.log( "Attaching to WP:SK" );
		// własne ]
		wp_sk.pre_malarz_cleaner = wp_sk.cleaner;
		wp_sk.extension += "+]";

		wp_sk.cleaner = function( str ) {
			// linki zewnętrzne do wiki na ]
			str = str.replace( /\ ]+) (]+)\]/g, ']' );

			//rozpoczęte <b><i> w pustych parametrach szablonów
			str = str.replace( /(=\s*)''+(\s*(\||\}\}))/g, '$1$2' );

			//czyścimy ISBN'y dla ]
			str = str.replace( /ISBN-1(0|3):* */g, 'ISBN ' );

			//dekodowanie niektórych sekwencji specjalnych HTML
			str = str.replace( /&auml;/g, 'ä' );
			str = str.replace( /&ouml;/g, 'ö' );
			str = str.replace( /&uuml;/g, 'ü' );
			str = str.replace( /&Auml;/g, 'Ä' );
			str = str.replace( /&Ouml;/g, 'Ö' );
			str = str.replace( /&Uuml;/g, 'Ü' );
			str = str.replace( /&szlig;/g, 'ß' );

			str = str.replace( /&Aring;/g, 'Å' );
			str = str.replace( /&aring;/g, 'å' );

			str = str.replace( /&aelig;/g, 'æ' );
			str = str.replace( /&ccedil;/g, 'ç' );
			str = str.replace( /&ntilde;/g, 'ñ' );
			str = str.replace( /&acirc;/g, 'â' );
			str = str.replace( /&aacute;/g, 'á' );
			str = str.replace( /&agrave;/g, 'à' );
			str = str.replace( /&AElig;/g, 'Æ' );
			str = str.replace( /&Ccedil;/g, 'Ç' );
			str = str.replace( /&Ntilde;/g, 'Ñ' );
			str = str.replace( /&Acirc;/g, 'Â' );
			str = str.replace( /&Aacute;/g, 'Á' );
			str = str.replace( /&Agrave;/g, 'À' );

			str = str.replace( /&hellip;/g, '…' );
			str = str.replace( /&quot;/g, '"' );
			str = str.replace( /&minus;/g, '−' );
			str = str.replace( /&oline;/g, '‾' );
			str = str.replace( /&cent;/g, '¢' );
			str = str.replace( /&pound;/g, '£' );
			str = str.replace( /&euro;/g, '€' );
			str = str.replace( /&sect;/g, '§' );
			str = str.replace( /&dagger;/g, '†' );

			str = str.replace( /&lsquo;/g, '‘' );
			str = str.replace( /&rsquo;/g, '’' );
			str = str.replace( /&middot;/g, '·' );
			str = str.replace( /&bull;/g, '•' );
			str = str.replace( /&times;/g, '×' );
			str = str.replace( /&copy;/g, '©' );
			str = str.replace( /&reg;/g, '®' );
			str = str.replace( /&trade;/g, '™' );
			str = str.replace( /&iquest;/g, '¿' );
			str = str.replace( /&iexcl;/g, '¡' );

			str = str.replace( /&darr;/g, '↓' );
			str = str.replace( /&uarr;/g, '↑' );
			str = str.replace( /&crarr;/g, '↵' );
			str = str.replace( /&rarr;/g, '→' );
			str = str.replace( /&larr;/g, '←' );
			str = str.replace( /&harr;/g, '↔' );
			str = str.replace( /&dArr;/g, '⇓' );
			str = str.replace( /&uArr;/g, '⇑' );
			str = str.replace( /&rArr;/g, '⇒' );
			str = str.replace( /&lArr;/g, '⇐' );
			str = str.replace( /&hArr;/g, '⇔' );

			str = str.replace( /&mdash;/g, '—' );
			str = str.replace( /&ndash;/g, '–' );

			str = str.replace( /&isin;/g, '∈' );
			str = str.replace( /&notin;/g, '∉' );
			str = str.replace( /&empty;/g, '∅' );
			str = str.replace( /&sub;/g, '⊂' );
			str = str.replace( /&sube;/g, '⊆' );
			str = str.replace( /&nsub;/g, '⊄' );

			str = str.replace( /&Lambda;/g, 'Λ' );
			str = str.replace( /&not;/g, '¬' );
			str = str.replace( /&sim;/g, '∼' );

			str = str.replace( /&alpha;/g, 'α' );
			str = str.replace( /&beta;/g, 'β' );
			str = str.replace( /&gamma;/g, 'γ' );
			str = str.replace( /&delta;/g, 'δ' );
			str = str.replace( /&epsilon;/g, 'ε' );
			str = str.replace( /&zeta;/g, 'ζ' );
			str = str.replace( /&eta;/g, 'η' );
			str = str.replace( /&theta;/g, 'θ' );
			str = str.replace( /&iota;/g, 'ι' );
			str = str.replace( /&kappa;/g, 'κ' );
			str = str.replace( /&lambda;/g, 'λ' );
			str = str.replace( /&mu;/g, 'μ' );
			str = str.replace( /&nu;/g, 'ν' );
			str = str.replace( /&xi;/g, 'ξ' );
			str = str.replace( /&omicron;/g, 'ο' );
			str = str.replace( /&pi;/g, 'π' );
			str = str.replace( /&rho;/g, 'ρ' );
			str = str.replace( /&sigma;/g, 'σ' );
			str = str.replace( /&tau;/g, 'τ' );
			str = str.replace( /&upsilon;/g, 'υ' );
			str = str.replace( /&phi;/g, 'φ' );
			str = str.replace( /&chi;/g, 'χ' );
			str = str.replace( /&psi;/g, 'ψ' );
			str = str.replace( /&omega;/g, 'ω' );

			str = str.replace( /&Alpha;/g, 'Α' );
			str = str.replace( /&Beta;/g, 'Β' );
			str = str.replace( /&Gamma;/g, 'Γ' );
			str = str.replace( /&Delta;/g, 'Δ' );
			str = str.replace( /&Epsilon;/g, 'Ε' );
			str = str.replace( /&Zeta;/g, 'Ζ' );
			str = str.replace( /&Eta;/g, 'Η' );
			str = str.replace( /&Theta;/g, 'Θ' );
			str = str.replace( /&Iota;/g, 'Ι' );
			str = str.replace( /&Kappa;/g, 'Κ' );
			str = str.replace( /&Lambda;/g, 'Λ' );
			str = str.replace( /&Mu;/g, 'Μ' );
			str = str.replace( /&Nu;/g, 'Ν' );
			str = str.replace( /&Xi;/g, 'Ξ' );
			str = str.replace( /&Omicron;/g, 'Ο' );
			str = str.replace( /&Pi;/g, 'Π' );
			str = str.replace( /&Rho;/g, 'Ρ' );
			str = str.replace( /&Sigma;/g, 'Σ' );
			str = str.replace( /&Tau;/g, 'Τ' );
			str = str.replace( /&Upsilon;/g, 'Υ' );
			str = str.replace( /&Phi;/g, 'Φ' );
			str = str.replace( /&Chi;/g, 'Χ' );
			str = str.replace( /&Psi;/g, 'Ψ' );
			str = str.replace( /&Omega;/g, 'Ω' );

			// + wolne linie przed nagłówkami
			str = str.replace( /\n=/g, '\n\n=' );

			// dekodowanie nazw szablonów
			str = str.replace( /\{\{(*)(\||\}\})/g, wp_sk.mm_rTempldecode );

			// usuwam spacje na końcach linii
			str = str.replace( /*\n/g, '\n' );

			// unifikacja nagłówka
			str = str.replace( /()*\n'''? *Bibliografia:* *'''?*/gi, '$1\n\n== Bibliografia ==\n' );
			str = str.replace( /()*\n(=+) *Bibliografia:* *=+*/gi, '$1\n\n$2 Bibliografia $2\n' );
			str = str.replace( /()*\n'''? *Referencje:* *'''?*/gi, '$1\n\n== Przypisy ==\n' );
			str = str.replace( /()*\n(=+) *Referencje:* *=+*/gi, '$1\n\n$2 Przypisy $2\n' );
			str = str.replace( /()*\n'''? *Piśmiennictwo:* *'''?*/gi, '$1\n\n== Przypisy ==\n' );
			str = str.replace( /()*\n(=+) *Piśmiennictwo:* *=+*/gi, '$1\n\n$2 Przypisy $2\n' );

			// niepotrzebna kropka kropka z liczebników w datach
			str = str.replace( /()\. *(stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)/g, '$1 $2' )
			// ale u [[hr: w listopadzie potrzebna
			str = str.replace( /\{1,2}) listopada/g, '[[hr:$1. listopada' )

			// oryginalny cleaner
			str = wp_sk.pre_malarz_cleaner( str );

			// usuwam entery, spacje i tabulatory po infoboksie
			str = str.replace( /\{\{(+infobo+)((?:||\{\{(?:||\{\{+\}\})+\}\})+)}\}*/g, '{{$1$2}}\n' );
			// i usuwam entery na końcu (jeżeli są np. dodane przez powyższy)
			str = str.replace( /*$/g, '' );

			// usuwam entery na początku artykułu
			str = str.replace( /^\n*/, '' );

			// usuwam BR'y na końcach list i akapitów
			str = str.replace( /( *<\/?br ?\/?>)* *\n(\*|\#|\n|\:)/ig, '\n$2' );

			// usuwam spacje przy BR'ach
			str = str.replace( / *<\/?br ?\/?> */ig, '<br />' );

			// czyszczę przypisy z cytuj cośtam
			str = str.replace(/== *\n\s*\n*\{\{ytuj/g, '==\n\* \{\{Cytuj');
			str = str.replace(/\n?(\{\{(ytuj+)((?:||\{\{(?:||\{\{+\}\})+\}\})+)\}\})/g, wp_sk.mm_rFriendlyCytuj);
			str = str.replace(/\n+<\/ref>/g, '</ref>');

			return str;
		};
		wp_sk.mm_rTempldecode = function( a, name, end ) {
			try {
				name = decodeURIComponent( name )
				a = '{{' + name + end;
			} catch ( err ) {}

			return a.replace( /_/g, ' ' );
		};
		wp_sk.mm_rFriendlyCytuj = function( a ) {
			return a.replace( /\s+/g, ' ' );
		};
	}

	if ( typeof( wp_sk ) !== 'undefined' ) {
		//console.log( "WP:SK is present" );
		attachToSk();
	} else {
		//console.log( "WP:SK is not present" );
		var timer;
		var attemptsLeft = 600;
		timer = window.setInterval( function() {
			if ( typeof( wp_sk ) !== 'undefined' ) {
				attachToSk();
				window.clearInterval( timer );
				return;
			}
			attemptsLeft--;
			if ( attemptsLeft < 0 ) {
				//console.log( "WP:SK is not present, giving up" );
				window.clearInterval( timer );
			}
		}, 100 );
	}
} )();