Wikipedysta:Persino/Gadget-DodatkiStrona.js

Z Wikibooks, biblioteki wolnych podręczników.

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
(function(mw,$){
  var NumerSubst=new Array();
  var DymkiSubst=new Array();
  var SzablonSubst=new Array();
  var StronaSubst=new Array();
  var KategorieSubst=new Array();
  /**/
  var czy_nie_gconfig=false;
  NumerSubst.NumerowanieNaglowkow=function(){
	/**/
	var gadget_numerowanie_nie_na_stronie_zbiorczej=undefined;
	var gadget_numerowanie_normalne_nie_na_stronie_zbiorczej=undefined;
	var gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej=undefined;
	/**/
	var gadget_numerowanie_na_stronie_zbiorczej=undefined;
	var gadget_numerowanie_normalne_na_stronie_zbiorczej=undefined;
	var gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej=undefined;
	/**/
	if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){
		if(!czy_nie_gconfig){
			//czy_nie_gconfig=true;
  			mw.messages.set({
				'NumerSubst-name': 'Numerowanie nagłówków',
				'NumerSubst-description-page': 'Wikibooks:StronicowyParser',
				'NumerSubst-numerowanie_nie_na_stronie_zbiorczej': 'Włącz numerowanie nagłówków nie na stronie zbiorczej.',
				'NumerSubst-numerowanie_normalne_nie_na_stronie_zbiorczej': "Włącz normalne numerowanie nie na stronie zbiorczej.",
				'NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej': "Włącz asynchroniczne numerowanie nie na stronie zbiorczej.",
				'NumerSubst-numerowanie_na_stronie_zbiorczej': 'Włącz numerowanie nagłówków na stronie zbiorczej.',
				'NumerSubst-numerowanie_normalne_na_stronie_zbiorczej': "Włącz normalne numerowanie na stronie zbiorczej.",
				'NumerSubst-numerowanie_asynchroniczne_na_stronie_zbiorczej': "Włącz asynchroniczne numerowanie na stronie zbiorczej.",
  			});
  			gConfig.register('NumerSubst', {name: mw.msg('NumerSubst-name'), descriptionPage: mw.msg('NumerSubst-description-page')}, [
			{
				name: 'numerowanie_nie_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_nie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: true,
			    legacy: [window, 'wb_NumerSubst-numerowanie_nie_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie_normalne_nie_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_normalne_nie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: true,
			    legacy: [window, 'wb_NumerSubst-numerowanie_normalne_nie_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie_asynchroniczne_nie_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: false,
			    legacy: [window, 'wb_NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: true,
			    legacy: [window, 'wb_NumerSubst-numerowanie_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie-normalne_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_normalne_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: true,
			    legacy: [window, 'wb_NumerSubst-numerowanie_normalne_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie_asynchroniczne_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: false,
			    legacy: [window, 'wb_NumerSubst-numerowanie_asynchroniczne_na_stronie_zbiorczej']
			},
			]);
		}
		gadget_numerowanie_nie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_nie_na_stronie_zbiorczej')==true);
		gadget_numerowanie_normalne_nie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_normalne_nie_na_stronie_zbiorczej')==true);
		gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_asynchroniczne_nie_na_stronie_zbiorczej')==true);
		/**/
		gadget_numerowanie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_na_stronie_zbiorczej')==true);
		gadget_numerowanie_normalne_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_normalne_na_stronie_zbiorczej')==true);
		gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_asynchroniczne_na_stronie_zbiorczej')==true);
	}
	gadget_numerowanie_nie_na_stronie_zbiorczej=(gadget_numerowanie_nie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_nie_na_stronie_zbiorczej:true;
	gadget_numerowanie_normalne_nie_na_stronie_zbiorczej=(gadget_numerowanie_normalne_nie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_normalne_nie_na_stronie_zbiorczej:true;
	gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej=(gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej:false;
	/**/
	gadget_numerowanie_na_stronie_zbiorczej=(gadget_numerowanie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_na_stronie_zbiorczej:true;
	gadget_numerowanie_normalne_na_stronie_zbiorczej=(gadget_numerowanie_normalne_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_normalne_na_stronie_zbiorczej:true;
	gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej=(gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej:false;
	
	var zmienna_this=this;
	this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu=function(aktualna_strona){
		var promise_numerowanie=DodatkiSkrypt.Scribunto.StronicowyParser.CzyStronaSubst().DodatkiSkryptThen(function(wikikod){
			if(wikikod){
				var gadget_numerowanie=gadget_numerowanie_na_stronie_zbiorczej;
				var gadget_numerowanie_normalne=gadget_numerowanie_normalne_na_stronie_zbiorczej;
				var gadget_numerowanie_asynchroniczne=gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej;
			}else{
				var gadget_numerowanie=gadget_numerowanie_nie_na_stronie_zbiorczej;
				var gadget_numerowanie_normalne=gadget_numerowanie_normalne_nie_na_stronie_zbiorczej;
				var gadget_numerowanie_asynchroniczne=gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej;
			}
			return Promise.resolve([gadget_numerowanie,gadget_numerowanie_normalne,gadget_numerowanie_asynchroniczne]);
		});
		return promise_numerowanie;
	}
	
	var promise_numerowanie=this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu();
	
	//gadget_numerowanie=((gadget_numerowanie!==undefined)?gadget_numerowanie:true);
	
	this.NumerowanieNaglowkowStronZObiektami=function(id_numerowanie,prefix){
		var fun_hnumer=DodatkiSkrypt.Szereg.HNumer.LiczonyHNumer();
		var numeracja=new Array();
		var czy_numerowac=false;
		$(id_numerowanie).find('.mw-headline').each(function(i,element){
			var szablon_spec=$(element).parents('.rodzic_szablon_subst_js, .artykułsubst, .strona_start');
			var szablon_spec_w_drzewie=$(id_numerowanie).find(szablon_spec);
			if((szablon_spec.length>0)&&(szablon_spec_w_drzewie.length>0)){return;}
			/**/
			var szablon=$(element).parent().find('.mw-numbering-main-page, .numeracja');
			if(szablon.length>0){return;}
			var parent=element.parentNode;
			if(!parent){return;}
			czy_numerowac=true;
			var poziom_naglowka=DodatkiSkrypt.Szereg.HNumer.PoziomNapisuWprowadzeniaTekstu(parent);
			var numer=fun_hnumer(poziom_naglowka);
			var czy_ponumerowany=$(parent).children('.numeracja');
		    if(numeracja.length<numer){numeracja.push(1);}
		    else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
			else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
		    if(czy_ponumerowany.length==0){
		    	var span=document.createElement('span');
			    span.setAttribute('class',"numeracja");
			    span.innerHTML=((prefix!=="")?(prefix+"."):"")+numeracja.join('.')+".&nbsp;";
			    parent.insertBefore(span,parent.firstChild);
		    }else{
		    	czy_ponumerowany[0].innerHTML=((prefix!=="")?(prefix+"."):"")+numeracja.join('.')+".&nbsp;";
		    }
		});
		return czy_numerowac;
	}
	this.NumerowanieNaglowkowStron=function(id_numerowanie,prefix,czy_bez_prefix){
		return promise_numerowanie.DodatkiSkryptThen(function(data){
			var gadget_numerowanie=data[0];var gadget_numerowanie_normalne=data[1];var gadget_numerowanie_asynchroniczne=data[2];
			if(!gadget_numerowanie){return;}
			if(!czy_bez_prefix){prefix="";};
			var tab_promise=new Array();
			var czy_numerowac=zmienna_this.NumerowanieNaglowkowStronZObiektami(id_numerowanie,prefix);
			var strona_start=$(id_numerowanie).find('.strona_start');
			if(strona_start.length>0){
				for(var i=0;i<strona_start.length;++i){
					var artykulsubst=$(strona_start[i]).find(".artykułsubst");
					var obiekt;
					if(artykulsubst.length>0){
						obiekt=$(artykulsubst).find('.zawartość')[0];
					}else{
						obiekt=$(strona_start[i]).find('.ciało_strona')[0];
					}
					if(obiekt){
						var prefix2=((strona_start.length==1)?((!czy_numerowac)?prefix:""):"");
						if(prefix2!=""){
							var promise=zmienna_this.NumerowanieNaglowkowStron(obiekt,prefix2,czy_bez_prefix);
							tab_promise.push(promise);
						}else if(artykulsubst.length>0){
							var str_adres=$(artykulsubst).find('.adres');
							if((str_adres.length>0)&&(obiekt!=null)){
								if(!gadget_numerowanie_normalne){
									var adres=str_adres[0].innerHTML.trim();
									var artykul=DodatkiSkrypt.Scribunto.Nazwy["NAZWAARTYKUŁUKSIĄŻKI"](adres);
									var aktualna_strona=DodatkiSkrypt.Scribunto.Nazwy["PEŁNANAZWASTRONY"](adres);
									var promise=Promise.all([artykul,aktualna_strona]).DodatkiSkryptThen(function(data){
										var promise_numerowanie_domyslne=promise_numerowanie;
										if(gadget_numerowanie_asynchroniczne){
											promise_numerowanie=zmienna_this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu(aktualna_strona);
										};
										return promise_numerowanie.DodatkiSkryptThen(function(data_promise_numerowanie){
											return zmienna_this.PreparujStronyJednostek(obiekt,data[0],data[1],true).DodatkiSkryptThen(function(){
												return zmienna_this.NumerowanieNaglowkowStron(obiekt,"");
											}).DodatkiSkryptFinally(function(){
												promise_numerowanie=promise_numerowanie_domyslne;
											});
										});
									}).DodatkiSkryptCatch(function(data){
										return zmienna_this.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix);
									});
									tab_promise.push(promise);
								}else{
									var promise=zmienna_this.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix);
									tab_promise.push(promise);
								}
							}else{
								var promise=zmienna_this.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix);
								tab_promise.push(promise);
							}
						}else{
							var promise=zmienna_this.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix);
							tab_promise.push(promise);
						}
					}
				}
			}
			return Promise.all(tab_promise);
		});
	}
	this.FunkcjaZdarzenStronyGlownejPodrecznika=function(){
		console.log("TYTAN")
	}
	this.NumerowanieStronGłównychPodręcznikowWedlugZebranychDanych=function(id_numerowanie,json){
		console.log(json,"GIGAT")
		function JSONDane(json,numer_porzadkowy){
			for(var rozdzial in json){
				var tab_rozdzial=json[rozdzial];
				for(var numer_rozdzialu in tab_rozdzial){
					var tab_numer_rozdzial=tab_rozdzial[numer_rozdzialu];
					for(var artykul in tab_numer_rozdzial){
						var tab_artykul=tab_numer_rozdzial[artykul];
						for(var numer_artykulu in tab_artykul){
							var tab_numer_artykulu=tab_artykul[numer_artykulu];
							for(var i in tab_numer_artykulu){
								var tab_i=tab_numer_artykulu[i];
								if(tab_i["numer"]==numer_porzadkowy){
									var czy_podreczniku=tab_i["czy w podręczniku"];
									var zebrane_dane={
										"rozdział":DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(rozdzial)))),
										"numer rozdziału":numer_rozdzialu,
										"artykuł":((!czy_podreczniku)?(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(artykul)))))):(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(artykul)))))),
										"numer artykułu":numer_artykulu,
										"link":((tab_i["link"])?(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(tab_i["link"])))):undefined),
										"przekierowanie":((tab_i["przekierowanie"]!==undefined)?
((!czy_podreczniku)?(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["przekierowanie"])))))):(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["przekierowanie"])))))):undefined),
										"pełna nazwa książki":((tab_i["pełna nazwa książki"]!=undefined)?
(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["pełna nazwa książki"])))))):undefined),
										"kod języka":tab_i["kod języka"],
										"kod projektu":tab_i["kod projektu"],
										"nazwa":((tab_i["nazwa"]!==undefined)?(DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(tab_i["nazwa"]))))):undefined),
										"spis treści":tab_i["spis treści"],
										"dodane":tab_i["dodane"],
										"czy w podręczniku":czy_podreczniku,
									};
									return zebrane_dane;
								}
							}
						}
					}
				}
			}
			return null;
		}
		var promise=DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DodatkiSkrypt.Info,new Array("page")).DodatkiSkryptThen(function(){
			var j=1;
			var dane;var yes=true;
			var RozdzialBezNumeracji=function(tekst){
				var czy=/^[\d\.]+\s+/g.test(tekst)||/^[\d\.]+\s*$/g.test(tekst);
				if(czy){
					var num=tekst.match(/^([\d\.]+)/g).toString();
					var tab=num.split(".");
					if(tab.length==1){
						if(/^\d+$/g.test(num)){
							return tekst;
						}
					}else{
						if(tab[tab.length-1]==""){tab.splice(tab.length-1,1);};
					}
					var tak=true;
					for(var i=0;i<tab.length;++i){
						tak=tak&&(/^\d+$/g.test(tab[i]));
						if(!tak){break;};
					}
					if(tak){
						tekst=tekst.replace(/^[\d\.]+\s*/g,"");
					}
				}
				return tekst;
			}
			var OperacjeNaTestowychElementach=function(element){
				var iterator=DodatkiSkrypt.Szereg.Html.IteratorDzieciPoElemencieHtml(element)
				var __element;
				do{
					__element=iterator();
					if(__element){
						if(!__element.tagName){
							var text=__element.nodeValue;
							text=RozdzialBezNumeracji(text);
							text=text.replace(/^\d+\s+/g,"");
							text=text.replace(/^\s*[IVXL]+\s+/g,"");
							text=text.replace(/\s*[0-9a-zA-Z]+\)\s+/g,"")
							__element.nodeValue=text;
							break;
						}
					}
				}while(__element);
			}
			var Numerowanie=function(element,tag,tekst,pierwsze_dziecko,nazwa,czy_edit){
				dane=((yes)||(!dane))?JSONDane(json,j):dane
				console.log(dane,"TYTAN")
				if(dane===null){return;}
				var Numer=function(dane){
					var numer_rozdzialu=dane["numer rozdziału"];
					var numer_artykulu=dane["numer artykułu"];
					var numer=((numer_rozdzialu!="")&&(numer_artykulu!=""))?(numer_rozdzialu+"."+numer_artykulu):((numer_rozdzialu)?numer_rozdzialu:numer_artykulu);
					if(numer==""){return null;}
					numer="("+numer+") ";
					return numer;
				}
				if(dane["dodane"]){
					yes=true;
					++j;
					dane=((yes)||(!dane))?JSONDane(json,j):dane;
					if(dane==null){return;}
				}
				var spis_tresci=dane["spis treści"];
				var rozdzial=dane["rozdział"];
				var artykul=dane["artykuł"];
				var przekierowanie=dane["przekierowanie"];
				var numer_artykulu=dane["numer artykułu"];
				if((spis_tresci===undefined)&&(rozdzial=="Spis treści")&&(artykul=="")&&(numer_artykulu=="")){
					++j;
					dane=JSONDane(json,j);
					if(dane===null){return;}
					rozdzial=dane["rozdział"];
					artykul=dane["artykuł"];
					przekierowanie=dane["przekierowanie"];
				}
				var NumerujLinki=function(dane,czy_a){
					var numer=Numer(dane);
					if(!numer){return;};
					var tak=false;
					$(element).parents('.mw-headline, div.center, h1, h2, h3, h4, h5, h6').each(function(i,element){
						$(element).find('> .mw-numbering-main-page, > .link > .mw-numbering-main-page').each(function(i,element){
							if(element.innerHTML==numer){tak=true;}
						});
					});
					if(tak){return;};
					var span=document.createElement('span');
					$(span).addClass('mw-numbering-main-page');
					span.innerHTML=numer;
					if($(element).hasClass('mw-headline')){
						element2=$(element).parent();
						if(element2.length>0){element=element2[0];};
					}
					if(!czy_a){
						$(element).before(span);
					}else{
						element.insertBefore(span,(pierwsze_dziecko)?pierwsze_dziecko:element.firstChild);
					}
				}
				if(tag=="A"){
					
					tekst=DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tekst)));
					var czy_poza=(!dane["czy w podręczniku"]);
					var kod_jezyka=dane["kod języka"];var kod_projektu=dane["kod projektu"];
					var link=dane["link"];
					if((czy_poza)&&(((kod_jezyka!=null)&&(kod_jezyka!=""))||((kod_projektu!=null)&&(kod_projektu!="")))&&(link)&&(link!=(przekierowanie||artykul))){
						console.log(tekst,"TYTAN2")
						var nazwa=dane["nazwa"];
						var przestrzenie_alternatywne={
							"w":"wikipedia",
							"b":"wikibooks",
							"wikt":"wiktionary",
							"q":"wikiquote",
							"s":"wikisource",
							"voy":"wikivoyage",
							"n":"wikinews",
							"v":"wikiversity",
						};
						var przestrzenie_poza={
							"commons":"wikimedia",
							"species":"wikimedia",
						};
						link=link.replace(/^\s*:/g,"");
						var klucz=link.match(/^([^:]*)/g);
						var artykul_z_kodami=link.replace(/^([^:]*:)(.*)$/g,function(s,a,b){
							return DodatkiSkrypt.Szereg.Styl.PoprawMianoNazwyStrony(b);
						});
						var projekt=przestrzenie_alternatywne[klucz];
						var href;
						if(projekt){
							href="https://"+((klucz!="b")?"pl":"en")+"."+projekt+".org/wiki/"+artykul_z_kodami;
						}else{
							if(!przestrzenie_poza[klucz]){
								href="https://"+klucz+".wikibooks.org/wiki/"+artykul_z_kodami;
							}else{
								href="https://"+klucz+"."+przestrzenie_poza[klucz]+".org/wiki/"+artykul_z_kodami;
							}
						}
						console.log("S"+href+"S","S"+tekst+"S","TYTAN3",(href==tekst))
						if(href==tekst){
							NumerujLinki(dane);
							yes=true;
							++j;
						};
						//});
					}else{
						var pelna_nazwa_ksiazki=dane["pełna nazwa książki"];
						var numer_rozdzialu=dane["numer rozdziału"];
						var numer_artykulu=dane["numer artykułu"];
						var nazwa_artykulu=dane["nazwa"];
						/**/
						var artykul_edit;
						if(czy_edit){
							artykul_edit=artykul.replace(/^([^#]*)#(.*)$/g,"$1");
							artykul_edit=artykul_edit.replace(/^(.*)\?\s*\a+[\a\s]*=.*$/g,"$1");
						}
						/**/
						var nazwa=DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(nazwa))));
						tekst=((czy_poza)?(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(tekst)):tekst);
						console.log(artykul,tekst,"TYTAN1")
						console.log(nazwa,nazwa_artykulu,"TYTAN2")
						console.log(przekierowanie,tekst,"TYTAN3")
						console.log(pelna_nazwa_ksiazki,tekst,"TYTAN4");
						if(((((artykul)&&(artykul!=""))||((numer_artykulu)&&(numer_artykulu!="")))&&(((!czy_edit)&&(artykul==tekst)&&((!nazwa_artykulu)||(nazwa==nazwa_artykulu)))||((czy_edit)&&(artykul_edit==tekst)&&((!nazwa_artykulu)||(nazwa==nazwa_artykulu)))))||(((!czy_edit)&&(przekierowanie)||(pelna_nazwa_ksiazki))&&(((((!czy_poza)&&((przekierowanie===undefined)||(((przekierowanie!=null)&&(przekierowanie!=""))!=""))))&&((pelna_nazwa_ksiazki?(pelna_nazwa_ksiazki+"/"):"")+(przekierowanie||artykul))||(pelna_nazwa_ksiazki))==tekst))){
							NumerujLinki(dane);
							/**/
							$(element).parents('ul,ol').first().each(function(i,element){
								$(element).addClass('css_numersubst');
							});
							$(element).parents('dd, li, span:not(.link), b, i').first().each(function(i,element){
								OperacjeNaTestowychElementach(element);
							});
							/**/
							$(element).parents('div.toc_ogólnie_spis.toc_artykuł').find('a > span.tocnumber').each(function(i,element){
								var numer_toc=element.innerHTML;
								var numer=numer_rozdzialu+(((numer_rozdzialu!="")&&(numer_artykulu!=""))?("."+numer_artykulu):numer_artykulu);
								numer=numer+(((numer!="")&&(numer_toc!=""))?("."+numer_toc):numer_toc);
								element.innerHTML=numer;
							});
							yes=true;
							++j;
						}
					}
				}else{
					tekst=DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(tekst)));
					//rozdzial=DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(rozdzial);
					tekst=RozdzialBezNumeracji(tekst);
					tekst=DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(tekst);
					console.log(rozdzial,tekst,(rozdzial==tekst),"TYTAN11")
					if((rozdzial==tekst)&&(artykul=="")&&(((spis_tresci>0)&&(($(element).hasClass('mw-headline'))||($(element).hasClass('center'))/*||($(element).parents('.center,center').length>0)*/||(tag=="CENTER")))||((spis_tresci<0)&&(/*($(element).parents('li, dd').length>0)||*/(tag=="DD")||(tag=="LI")||(tag=="DT")))||((spis_tresci==0)&&(/*($(element).parents('p,i,b').length>0)||*/(tag=="P")||(tag=="I")||(tag=="B")||(tag=="CENTER")||(tag=="TD")||(tag=="TH")||(tag=="CAPTION"))))){
						NumerujLinki(dane,true);
						if(tag=="LI"){
							$(element).parents('ul,ol').first().each(function(i,element){
								$(element).addClass('css_numersubst');
							});
						}
						$(element).each(function(i,element){
							OperacjeNaTestowychElementach(element);
						});
						yes=true;
						++j;
					}else{
						yes=false;
					}
				}
			}
			var FunkcjaZnacznikaP=function(element){
				var str_p=$(element).parents("P").first();
				if(str_p.length>0){
					var klon=document.createElement('div');
					var czy_w_nim_a=false;
					var pierwsze_dziecko=undefined;
					for (const element_dzieci of str_p[0].childNodes){
						var nowy_tag=(element_dzieci.tagName)?(element_dzieci.tagName.toUpperCase()):null;
						if(nowy_tag!=="BR"){
							if(!pierwsze_dziecko){
								pierwsze_dziecko=element_dzieci;
							}
							if((element_dzieci==element)||($(element_dzieci).find(element).length>0)){czy_w_nim_a=true;}
							klon.appendChild(element_dzieci.cloneNode(true));
						}else{
							if(czy_w_nim_a){
								czy_w_nim_a=undefined;
								if(!$(klon.firstChild).hasClass('mw-numbering-main-page')){
									var tekst_rozdzialu=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(klon.innerHTML));
									var element_rozdzialu=str_p[0];
									Numerowanie(element_rozdzialu,"P",tekst_rozdzialu,pierwsze_dziecko);
									break;
								}
							}
							pierwsze_dziecko=undefined;
							klon=document.createElement('div');
						}
					}
					if(czy_w_nim_a){
						if(!$(klon.firstChild).hasClass('mw-numbering-main-page')){
							var tekst_rozdzialu=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(klon.innerHTML));
							var element_rozdzialu=str_p[0];
							Numerowanie(element_rozdzialu,"P",tekst_rozdzialu,pierwsze_dziecko);
						}
					}
				}
			}
			var bookname=DodatkiSkrypt.Info.page.bookname;
			var namespace=DodatkiSkrypt.Info.page.namespace;
			bookname=DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(bookname);
			namespace=DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(namespace);
			$('#mw-content-text .mw-parser-output').each(function(i,element){
				var iterator=DodatkiSkrypt.Szereg.Html.IteratorPrzodkowyPoElemencieHtml(element);
				while(true){
					var element=iterator();
					if(!element){break;};
					(function(element){
						var tag_name=element.tagName;
						var tag;
						if(tag_name){tag=tag_name.toUpperCase();}else{tag=null;}
						var tekst;
						if(!tag){
							FunkcjaZnacznikaP(element);
						}else if($(element).hasClass('mw-headline')){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
					
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if((tag=="DIV")&&($(element).hasClass('center'))){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if((tag=="TD")||(tag=="TH")||(tag=="CAPTION")){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
					
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if((tag=="P")||(((tag=="B")||(tag=="I"))&&($(element).find('br').length==0))){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
					
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if((tag=="DD")||(tag=="DT")){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							var czy_li=false;
							for(var begin=div.firstChild;begin!=null;begin=begin.nextSibling){
								if(begin.tagName!=null){
									var tag_dziecko=begin.tagName.toUpperCase();
									if((!czy_li)&&((tag_dziecko=="DL")||(tag_dziecko=="DD"))){
										czy_li=true;
									}
									if(czy_li){
										div.removeChild(begin);
									}
								}
							}
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if(tag=="LI"){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							var czy_li=false;
							for(var begin=div.firstChild;begin!=null;begin=begin.nextSibling){
								if(begin.tagName!=null){
									var tag_name=begin.tagName.toUpperCase();
									if((!czy_li)&&((tag_name=="UL")||(tag_name=="OL"))){
										czy_li=true;
									}
									if(czy_li){
										div.removeChild(begin);
									}
								}
							}
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							if(!tekst){return;}
							Numerowanie(element,tag,tekst);
						}else if(tag=="CENTER"){
							var div=document.createElement('div')
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							if(!tekst){return;}
							Numerowanie(element,tag,tekst);
						}else if(tag=="A"){
							FunkcjaZnacznikaP(element);
							var editsection=$(element).parents('.mw-editsection').parents('h1, h2, h3, h4, h5, h6');
							if(editsection.length>0){return;}
							if($(element).hasClass('a.external')){return;};
							var div=document.createElement('div');
							div.innerHTML=element.outerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							var element_a=$(div).children('a')[0];
							if(!element_a){return;};
							var href=element_a.getAttribute("href");
							if(href=="#"){return;}	
							if(!href){href=""};
							tab_href=DodatkiSkrypt.Szereg.Napis.UrojoneStrony(href);
							href=tab_href.href;
							var czy_edit=tab_href.edit;
							if((namespace=="")||(namespace=="Wikijunior")){
								href=href.replace(/^([^\/]*)(\/)(.*)$/g,function(s,s1,s2,s3){
									if(s1==((namespace!="")?(namespace+":"+bookname):bookname)){
										return s3;
									}
									return s;
								});
							}else if(namespace=="Wikipedysta"){
								href=href.replace(/^([^\/]*\/[^\/]*)(\/)(.*)$/g,function(s,s1,s2,s3){
									if(s1==((namespace!="")?(namespace+":"+bookname):bookname)){
										return s3;
									}	
									return s;
								});
							}
							tekst=href;
							var nazwa=element.innerHTML;
							Numerowanie(element,tag,tekst,undefined,nazwa,czy_edit);
						}else{return;};
					})(element);
				}
			});
			return Promise.resolve();
		});
		return promise;
	}
	this.NumerujRozdzialyArtykulu=function(element,artykul,aktualna_strona){
		return promise_numerowanie.DodatkiSkryptThen(function(data){
			var gadget_numerowanie=data[0];var gadget_numerowanie_normalne=data[1];var gadget_numerowanie_asynchroniczne=data[2];
			if(!gadget_numerowanie){return;}
			artykul=(artykul)?artykul:DodatkiSkrypt.Info.page.articlename;
			aktualna_strona=(aktualna_strona)?aktualna_strona:DodatkiSkrypt.Info.page.fullname;
			var id_numerowanie=((element)?(element):(document.querySelector('#mw-content-text .mw-parser-output')));
			if(!gadget_numerowanie_normalne){
				var promise_numerowanie_domyslne=promise_numerowanie;
				if(gadget_numerowanie_asynchroniczne){
					promise_numerowanie=zmienna_this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu(aktualna_strona);
				};
				var promise=promise_numerowanie.DodatkiSkryptThen(function(){
					return zmienna_this.PreparujStronyJednostek(id_numerowanie,artykul,aktualna_strona,true).DodatkiSkryptThen(function(dane){
						if((!dane)
			        	     ||(($(id_numerowanie).hasClass('.rodzic_szablon_subst_js'))
			            	          ||($(id_numerowanie).hasClass('.szablon_subst_js'))
			                	          ||($(id_numerowanie).parents('.rodzic_szablon_subst_js, .szablon_subst_js').length>0)
			            	)
						){return;}
						var span=document.createElement('span');
						span.innerHTML=dane+".&nbsp;";
						span.setAttribute("id","mw-article-numbering");
						var firstheading=document.querySelector('#firstHeading');
						firstheading.insertBefore(span,firstheading.firstChild);
						return Promise.resolve();
					})
				}).DodatkiSkryptFinally(function(){
					promise_numerowanie=promise_numerowanie_domyslne;
				});
				return promise;
			}else{
				return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"");
			}
		});
	}
	this.PreparujStronyJednostek=function(id_numerowanie,artykul,aktualna_strona,czy_bez_prefix){
		var artykul_parametr=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(artykul);
		var aktualna_strona_parametr=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(aktualna_strona).replace(/[\s_]+/g," ");
		var promise=DodatkiSkrypt.api.ZadaniaApi({
			action: 'parse',
			format: 'json',
			prop: 'text',
			title: aktualna_strona,
			text: '{{#if:{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}|{{#if:{{#ifeq:{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|'+aktualna_strona_parametr+'|tak|{{#ifeq:{{ArtykułSubst|pobierz pełną nazwę książki=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|{{#if:{{#invoke:Techniczne|PrzekierowanieDoStrony|{{msg:PEŁNANAZWAKSIĄŻKI|'+aktualna_strona_parametr+'}}|wyspecjalizowana=tak}}|{{#invoke:Techniczne|PrzekierowanieDoStrony|{{msg:PEŁNANAZWAKSIĄŻKI|'+aktualna_strona_parametr+'}}|wyspecjalizowana=tak}}|{{msg:PEŁNANAZWAKSIĄŻKI|'+aktualna_strona_parametr+'}}}}|tak}}}}|{{#if:{{#invoke:StronicowyParser|CzyStronaSubst}}|{{#switch:{{NAMESPACE}}||Wikijunior={{PobierzNumerNagłówka|{{msg:NAZWAARTYKUŁUKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}|{{Ns:User}}|{{Ns:Project}}={{#if:{{NAZWAPRZESTRZENIKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|{{PobierzNumerNagłówka|{{msg:NAZWAARTYKUŁUKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}}}}}|{{#if:{{#invoke:StronicowyParser|CzySpisTreści|artykuł='+artykul_parametr+'|wyspecjalizowana=tak}}|{{#switch:{{NAMESPACE}}||Wikijunior={{#tag:nowiki|{{#invoke:Techniczne|EncodeParametr|{{#invoke:StronicowyParser|PobierzDaneKsiążki|spis='+artykul_parametr+'|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|wyspecjalizowana=tak}}}}}}|{{Ns:User}}|{{Ns:Project}}={{#if:{{NAZWAPRZESTRZENIKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|{{#tag:nowiki|{{#invoke:Techniczne|EncodeParametr|{{#invoke:StronicowyParser|PobierzDaneKsiążki|spis='+artykul_parametr+'|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|wyspecjalizowana=tak}}}}}}}}}}|{{#switch:{{NAMESPACE}}||Wikijunior={{PobierzNumerArtykułu|'+artykul_parametr+'|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}|{{Ns:User}}|{{Ns:Project}}={{#if:{{NAZWAPRZESTRZENIKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|{{PobierzNumerArtykułu|'+artykul_parametr+'|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}}}}}}}}}|STRONASTART}}|nie}}',
			disabletoc: true,
			disablelimitreport: true,
			disableeditsection: true,
			disablestylededuplication: true,
			contentmodel: 'wikitext',
		},null,true,null).DodatkiSkryptThen(function(data){
			var dane=data.parse.text["*"];
			console.log(dane,"TYTAN")
			if(dane==null){console.log("Uzyskano w zapytaniu błąd skryptów Lua.");return;}else if(dane=="nie"){return;}
			/**/
			if(dane!="STRONASTART"){
				if((dane!=null)&&(dane!="")&&(dane!="(błąd)")){
					if((!/^[\[].*[\]]$/g.test(dane))&&(!/^[{].*[}]$/g.test(dane))){
						console.log("Numer artykułu: "+aktualna_strona+", jest: "+dane+".");
						return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,dane,czy_bez_prefix).then(function(){return dane});
					}else{
						dane=DodatkiSkrypt.Szereg.Tekst.Decode(dane);
						var json=JSON.parse(dane);
						if(json){
							console.log("Numerowanie strony głównej podręcznika na podstawie zebranych danych według tabeli JSON.");
							return zmienna_this.NumerowanieStronGłównychPodręcznikowWedlugZebranychDanych(id_numerowanie,json).DodatkiSkryptThen(function(){
								console.log("NUMEROWANIE A")
								return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"");
							}).DodatkiSkryptThen(function(){return ""});
						}else{
							console.log("Strona: "+aktualna_strona+", nie ma numeru.")
							return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"").then(function(){return ""});
						}
					}
				}else{
					console.log("Strona: "+aktualna_strona+", nie ma numeru.")
					return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"").then(function(){return ""});
				}
			}else{
				console.log("Strony, z innym parametrem strony symulowanych, niż aktualna.");
				return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"").then(function(){return ""});
			}
		}).DodatkiSkryptCatch(function(error){return Promise.reject(error);});
		return promise;
	}
}
DymkiSubst.GadgetDymkiSubst=function(){
	/**/
	var dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych=undefined;
	var dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych=undefined;
	var dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych=undefined;
	
	var dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych=undefined;
	var dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych=undefined;
	var dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych=undefined;
	
	if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){
		if(!czy_nie_gconfig){
			//czy_nie_gconfig=true;
  			mw.messages.set({
				'DymkiSubst-name': 'Dymki nad linkami inteligentymi',
				'DymkiSubst-description-page': 'Wikibooks:StronicowyParser',
				'DymkiSubst-dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych' : "Ustawia dymki, nad linkami, dla linków inteligentnych na stronach niezbiorczych.",
				'DymkiSubst-dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych' : "Ustawia dymki, nad linkami, dla linków nieinteligentnych na stronach niezbiorczych.",
				'DymkiSubst-dymki_asynchroniczne_na_stronach_niezbiorczych' : "Ustawia dymki, nad linkami, asynchronicznie na stronach niezbiorczych.",
				'DymkiSubst-dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych' : "Ustawia dymki, nad linkami, dla linków inteligentnych na stronach zbiorczych.",
				'DymkiSubst-dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych' : "Ustawia dymki, nad linkami, dla linków nieinteligentnych na stronach zbiorczych.",
				'DymkiSubst-dymki_asynchroniczne_na_stronach_zbiorczych' : "Ustawia dymki, nad linkami, asynchronicznie na stronach zbiorczych.",
			});
			gConfig.register('DymkiSubst', {name: mw.msg('DymkiSubst-name'), descriptionPage: mw.msg('DymkiSubst-description-page')}, [
				{
					name: 'dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych',
					desc: mw.msg('DymkiSubst-dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych'),
					type: 'boolean',
					deflt: true,
					legacy: [window, 'wb_dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych']
				},
				{
					name: 'dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych',
					desc: mw.msg('DymkiSubst-dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych'),
					type: 'boolean',
					deflt: false,
					legacy: [window, 'wb_dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych']
				},			
				{
					name: 'dymki_asynchroniczne_na_stronach_niezbiorczych',
					desc: mw.msg('DymkiSubst-dymki_asynchroniczne_na_stronach_niezbiorczych'),
					type: 'boolean',
					deflt: false,
					legacy: [window, 'wb_dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych']
				},
				{
					name: 'dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych',
					desc: mw.msg('DymkiSubst-dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych'),
					type: 'boolean',
					deflt: true,
					legacy: [window, 'wb_dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych']
				},
				{
					name: 'dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych',
					desc: mw.msg('DymkiSubst-dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych'),
					type: 'boolean',
					deflt: false,
					legacy: [window, 'wb_dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych']
				},
				{
					name: 'dymki_asynchroniczne_na_stronach_zbiorczych',
					desc: mw.msg('DymkiSubst-dymki_asynchroniczne_na_stronach_zbiorczych'),
					type: 'boolean',
					deflt: false,
					legacy: [window, 'wb_dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych']
				},
			]);
		}
		dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych = gConfig.get('DymkiSubst', 'dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych');
		dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych = gConfig.get('DymkiSubst', 'dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych');
		dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych = gConfig.get('DymkiSubst', 'dymki_asynchroniczne_na_stronach_niezbiorczych');
		
		dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych = gConfig.get('DymkiSubst', 'dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych');
		dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych = gConfig.get('DymkiSubst', 'dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych');
		dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych = gConfig.get('DymkiSubst', 'dymki_asynchroniczne_na_stronach_niezbiorczych');
	}
	dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych=((dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych!==undefined)?dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych:true);
	dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych=((dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych!==undefined)?dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych:false);
	dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych=((dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych!==undefined)?dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych:false);
	
	dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych=((dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych!==undefined)?dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych:true);
	dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych=((dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych!==undefined)?dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych:false);
	dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych=((dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych!==undefined)?dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych:false);
	
	var promise_dymki;
	this.UstalanieZmiennychTworzeniaDymkowego=function(aktualna_strona){
		return DodatkiSkrypt.Scribunto.StronicowyParser.CzyStronaSubst(aktualna_strona).DodatkiSkryptThen(function(wikikod){
			if(wikikod){
				var dymkisubst_dymki_nad_linkami_inteligentnymi=dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_zbiorczych;
				var dymkisubst_dymki_nad_linkami_nieinteligentnymi=dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_zbiorczych;
				var dymkisubst_dymki_asynchroniczne=dymkisubst_dymki_asynchroniczne_na_stronach_zbiorczych;
			}else{
				var dymkisubst_dymki_nad_linkami_inteligentnymi=dymkisubst_dymki_nad_linkami_inteligentnymi_na_stronach_niezbiorczych;
				var dymkisubst_dymki_nad_linkami_nieinteligentnymi=dymkisubst_dymki_nad_linkami_nieinteligentnymi_na_stronach_niezbiorczych;
				var dymkisubst_dymki_asynchroniczne=dymkisubst_dymki_asynchroniczne_na_stronach_niezbiorczych;
			}
			return Promise.resolve([dymkisubst_dymki_nad_linkami_inteligentnymi,dymkisubst_dymki_nad_linkami_nieinteligentnymi,dymkisubst_dymki_asynchroniczne]);
		});
	};
	promise_dymki=this.UstalanieZmiennychTworzeniaDymkowego();
	var zmienna_this=this;  
	//var tab_promise=new Array();
	//this.CzekanieNaZwolnienieWszystkichKorutynWTabeliObietnicDymkiSubst=function(){
	//	return DodatkiSkrypt.CzekanieNaZwolnienieWszystkichKorutynWTabeliObietnic(tab_promise);
	//}
	var dymki_muteks=new DodatkiSkrypt.Muteks();
	var dymki_projektowe_muteks=new DodatkiSkrypt.Muteks();
	this.lineHeight=function(id){
		var lineheight=window.getComputedStyle(id, null).getPropertyValue("line-height");
		if(lineheight=="normal"){
			var fontSize=window.getComputedStyle(id, null).getPropertyValue("font-size");
			var liczba=parseFloat(fontSize);
			return liczba*1.2;
		}
		var re=/^[0-9]*\.?[0-9]*$/;
		var test=re.test(lineheight);
		if(test){
			var lineheight_float=parseFloat(lineheight);
			var fontSize=window.getComputedStyle(id, null).getPropertyValue("font-size");
			fontSize=parseFloat(fontSize);
			return lineheight_float*fontSize;
		}
		re=/^[0-9]*\.?[0-9]*[a-zA-Z]+$/;
		test=re.test(lineheight);
		if(test){
			var liczba=parseFloat(lineheight.match(/[0-9]*\.?[0-9]*/).toString());	
        	var jed=lineheight.match(/[a-zA-Z]+$/).toString();
        	if(jed=="cm"){return liczba*96/2.54;}
        	if(jed=="mm"){return liczba*96/25.4;}
        	if(jed=="Q"){return liczba/25.4*96/4;}
        	if(jed=="in"){return liczba*96;}
        	if(jed=="pt"){return liczba*4/3;}
        	if(jed=="pc"){return liczba*16;}
        	if(jed=="px"){return liczba;}
        	return null;
		}
		return null;
	}
	/*Funkcja do wyświetlania komunikatów do [[Szablon:Link wewnętrzny]]*/
    this.WyswietlKomunikatInfoKombajn=function(id,event,komunikat){
		var body=document.querySelector('body');
		if(body==null){return;}
		var bodycontent = document.querySelector('#bodyContent');
		if(bodycontent==null){return;}
		this.UsunKomunikatInfo();
		var div=document.createElement('div');
		div.position="absolute";
		var element_id=id.getBoundingClientRect();
		var left_real=event.clientX+window.scrollX-30;
		var top_real=element_id.top+window.scrollY;
    	var wysokosclinii=this.lineHeight(id);
		if((wysokosclinii==null)||(wysokosclinii<=0)){return;};
		var eY=event.clientY;
		for (var i=0;;++i){
			var top_real_dolny=top_real+(id.offsetHeight-i*wysokosclinii);
			var top_real_gorny=top_real+(id.offsetHeight-(i+1)*wysokosclinii);
			if((top_real_dolny<0)||(top_real_gorny<0)){break;}
	    	if((eY<=top_real_dolny)&&(eY>top_real_gorny)){
	    		top_real=top_real_gorny;
	    		break;
	    	}
	    	if(top_real_gorny<=top_real){
	    		top_real=top_real_gorny;
	    		break;
	    	}
		}
		div.style.left=(parseInt(left_real)).toString()+'px';

    	div.classList.add("dymkisubst_link_wewnętrzny_komunikatów");
		div.setAttribute("id","dymkisubst_id_animacja_komunikatów");
		div.innerHTML=komunikat;
		var div_element=body.appendChild(div);
		
		var top=parseInt(top_real-div_element.offsetHeight);
		if(top<0){top=0;}
    	div.style.top=top.toString()+'px';
		
		var rectbodycontent=bodycontent.getBoundingClientRect();
		var leftbodycontent=rectbodycontent.left+window.scrollX;
		var widthbodycontent=bodycontent.offsetWidth;
		var id_komunikat_right=left_real+div_element.offsetWidth;
		var marginesRight=1;
		if(widthbodycontent+leftbodycontent<id_komunikat_right+marginesRight){
	    	 var roznica_offsetow=id_komunikat_right-widthbodycontent-leftbodycontent;
	  		 div_element.style.left=(parseInt(left_real-(roznica_offsetow)-marginesRight)).toString()+'px';	
		}
		var div_element_rect=div_element.getBoundingClientRect();
		var left_real_id=event.clientX+window.scrollX;
		var left_real_div=div_element_rect.left+window.scrollX;
		var roz_left=left_real_id-left_real_div;
		var div_el=document.createElement('div');
		div_el.setAttribute('class',"dymkisubst_link_wewnętrzny_komunikatów_wskaźnik");
		var div_el_dod=div_element.appendChild(div_el);
		$(div_el_dod).css('left',(roz_left-9)+'px');
		//if((DymkiSubst.szablony)&&(DymkiSubst.szablony.LadujSzablon)){
		//	var tab_promise=new Array(true);
		//	DymkiSubst.szablony.LadujSzablon(div_element,null,null,tab_promise).then((result) => {}).catch((error) => {});
		//}
	}
	this.UsunKomunikatInfo=function(id){
    	var body=document.querySelector('body');
		if(body==null){return;}
		var id_animation=document.getElementById('dymkisubst_id_animacja_komunikatów');
		if(id_animation!==null){
			body.removeChild(id_animation);
			if(id){id.dymkisubst_poprawnie=true;}
		}else{
			var link_wewnetrzny_komunikatow=document.getElementsByClassName('dymkisubst_link_wewnętrzny_komunikatów');
			if((link_wewnetrzny_komunikatow!==null)&&(link_wewnetrzny_komunikatow.length>0)){
				var tab_komunikat=new Array();
				for(var s=0;s<link_wewnetrzny_komunikatow.length;++s){tab_komunikat[s]=link_wewnetrzny_komunikatow[s];}
				for(var s=0;s<tab_komunikat.length;++s){
					body.removeChild(tab_komunikat[s]);
				}
				if(id){id.dymkisubst_poprawnie=true;}
			}else{
				if(id){id.dymkisubst_poprawnie=false;}
			}
		}
	}
	this.PobierzKodElementuRodzicaA=function(element_a){
		var parent_element_a=element_a.parentNode;
		if((parent_element_a.tagName.toUpperCase()!="SPAN")||(!$(parent_element_a).hasClass("link"))){return null;}
	 
		var element_link=parent_element_a.classList;
  		if((element_link!==null)&&(element_link.length>0)){
  	 		for(var a=0;a<element_link.length;++a){
  	 			var kod=element_link[a];
  	 			if(kod!="link"){
					return kod;
  	 			}
  	 		}
  		}
  		return null;
	}
	this.WyswietlKomunikatInfo=function(id,event){
		var tab_promise=new Array();
		id.dymkisubst_poprawnie=true;
		function Komunikat(id,event,tekst_komunikat){
			if(!id.dymkisubst_poprawnie){
				zmienna_this.UsunKomunikatInfo();
				return;
			}
			var div=document.createElement('div');
			div.innerHTML=tekst_komunikat;
			function P(element){
				var tekst_komunikat=element.innerHTML;
				var czy_tekst_komunikat=tekst_komunikat.match(/^\s*<p\s*>/g,"")
				if(!czy_tekst_komunikat){	
					czy_tekst_komunikat=tekst_komunikat.match(/^\s*<p\s+[^<>]*>/g,"")
				}
				if(czy_tekst_komunikat){
					var p=div.getElementsByTagName('p');
					if((p!==null)&&(p.length>0)){
						p[0].style.marginTop="0";
					}
				}
				czy_tekst_komunikat=tekst_komunikat.match(/<\/p>\s*$/g)
				if(czy_tekst_komunikat){
					var p=div.getElementsByTagName('p');
					if((p!==null)&&(p.length>0)){
						p[p.length-1].style.marginBottom="0";
					}
				}
			}
			
			P(div);
			tekst_komunikat=div.innerHTML;
			
        	zmienna_this.WyswietlKomunikatInfoKombajn(id,event,tekst_komunikat);
		}
		this.UsunKomunikatInfo();
		var kod=this.PobierzKodElementuRodzicaA(id);
		if(kod===null){return;}
	
		var old_href=id.getAttribute('old_href');
		var href=id.getAttribute('href');
	
		if(href===null){
			href="";
		}else{
			href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(href);
			href=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(href);
		}
		if(old_href){
			old_href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(old_href);
			old_href=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(old_href);
		}
		
		var strona=DodatkiSkrypt.Info.page.fullname;
		var wikikod=((old_href!==null)?('{{#invoke:Brudnopis/Persino/Dymki|UzyskajOpisOdParametrówLinku|'+kod+'|'+href+'|'+old_href+'}}'):('{{#invoke:Brudnopis/Persino/Dymki|UzyskajOpisOdParametrówLinku|'+kod+'|'+href+'}}'));
		var promise=DodatkiSkrypt.api.ZadaniaApi({
			action: 'parse',
			format: 'json',
			prop: 'text',
			title: strona,
			text: wikikod,
			disabletoc: true,
			disablelimitreport: true,
			disablestylededuplication: true,
			contentmodel: 'wikitext',
		},null,true).DodatkiSkryptThen(function(data){
            var tekst_komunikat=data.parse.text['*'];
            Komunikat(id,event,tekst_komunikat);
		}).DodatkiSkryptCatch((error) => {});
		return promise;
	}
	this.UstawZdarzeniaKomunikatuInfo=function(rodzic,__muteks,aktualna_strona){
		return $(document).DodatkiSkryptReady(function(){
			var promise_dymki_aktualna=promise_dymki;
			if(aktualna_strona){
				promise_dymki=zmienna_this.UstalanieZmiennychTworzeniaDymkowego(aktualna_strona);
			}
			return promise_dymki.DodatkiSkryptThen(function(data){
				var dymkisubst_dymki_nad_linkami_inteligentnymi=data[0];var dymkisubst_dymki_nad_linkami_nieinteligentnymi=data[1];var dymkisubst_dymki_asynchroniczne=data[2];
				if(!dymkisubst_dymki_nad_linkami_inteligentnymi){return;}
  				var klasa_link_wewnetrzny=$(rodzic).find('.link');
  				for(var s=0;s<klasa_link_wewnetrzny.length;++s){
  					var poszczegolna_klasa=klasa_link_wewnetrzny[s];
  					if(poszczegolna_klasa.tagName.toUpperCase()=="SPAN"){
  						zmienna_this.UstawZdarzeniaKomunikatuElementuInfo(poszczegolna_klasa);
  					}
  				}
			}).DodatkiSkryptFinally(function(){
				promise_dymki=promise_dymki_aktualna;
			});
		},null,__muteks||dymki_projektowe_muteks);
	}
	this.UstawZdarzeniaKomunikatuElementuInfo=function(poszczegolna_klasa){
  		var element_link=poszczegolna_klasa.classList;
  		if((element_link!==null)&&(element_link.length>0)){
  	 		for(var a=0;a<element_link.length;++a){
  	 			var kod=element_link[a];
  	 			if(kod!="link"){
  	 				var a_tag=poszczegolna_klasa.querySelector('a');
					if(a_tag!==null){
						$(a_tag).on("mouseover",function(){
							var __this=this;
							var __event=event;
							var promise=$(document).DodatkiSkryptReady(function(){
								return DymkiSubst.gadgetdymkisubst.WyswietlKomunikatInfo(__this,__event);
							},null,dymki_muteks);
						});
						$(a_tag).on("mouseout",function(){
							var __this=this;
							var promise=$(document).DodatkiSkryptReady(function(){
								return DymkiSubst.gadgetdymkisubst.UsunKomunikatInfo(__this);
							},null,dymki_muteks);
						});
						break;
					}
  	 			}
  	 		}
  		}
	}
    this.UstawTagiIKlasyKomunikatuInfo=function(rodzic,__muteks,aktualna_strona){
    	return $(document).DodatkiSkryptReady(function(){
    		var promise_dymki_aktualna=promise_dymki;
			if(aktualna_strona){
				promise_dymki=zmienna_this.UstalanieZmiennychTworzeniaDymkowego(aktualna_strona);
			}
    		return promise_dymki.DodatkiSkryptThen(function(data){
    			var dymkisubst_dymki_nad_linkami_inteligentnymi=data[0];var dymkisubst_dymki_nad_linkami_nieinteligentnymi=data[1];var dymkisubst_dymki_asynchroniczne=data[2];
				if(!dymkisubst_dymki_nad_linkami_nieinteligentnymi){return;}
				var tab_promise=new Array();
    
    			function CzyNieRysunek(element){
    				if((!$(element).hasClass('mw-file-description'))&&($(element).parents('figure, gallery').first().length==0)){return true;};
    				return false;
    			}
    			function NieLinkiReferencji(element){
    				if($(element).parent().hasClass('reference')){return false;};
    				return true;
    			}
    			function Czy_w_toc(element){
	 				var toc=new Array("toc","toc_spis","toc_wykaz");
	 				for(var a=0;a<toc.length;++a){
	 					var toc_pos=$(rodzic).find("."+toc[a]);
	 					if((toc_pos!==null)&&(toc_pos.length>0)){
	 						for(var b=0;b<toc_pos.length;++b){
	 							var element_toc=toc_pos[b];
		 						var el=$(element_toc).find(element)
		 						if((el!==null)&&(el.length>0)){
	 								return false;
	 							}
	 						}
		 				}
		 			}
	 				return true;
				}
				function TableMenu(element){
	 				var tablemenu=$(rodzic).find("table.tablemenu");
	 				if((tablemenu!==null)&&(tablemenu.length>0)){
	 					for(var s=0;s<tablemenu.length;++s){
	 						var el=$(tablemenu[s]).find(element);
		 		    		if((el!==null)&&(el.length>0)){
		 		    			return false;
	 			    		}
	 					}
		 			}
		 			return true;
				}
				function NaglowekDokumentacji(element){
		 			var dokumentacja=$(rodzic).find(".template-documentation #doc_editlinks, #documentation-meta-data");
	 				if((dokumentacja!==null)&&(dokumentacja.length>0)){
	 					for(var s=0;s<dokumentacja.length;++s){
	 						var el=$(dokumentacja[s]).find(element);
	 						if((el!==null)&&(el.length>0)){
	 		    				return false;
	 		    			}
	 					}
	 				}
	 				return true;
				}
				function CategoryTree(element){
					var a_element=$(rodzic).find('.CategoryTreeTag').find(element);
					if((a_element!==null)&&(a_element.length>0)){
						return false;
					}
					return true;
				}
				function TrybCiemny(element){
					var elem1=$(rodzic).find('.uruchom_tryb_ciemny').find(element);
					var elem2=$(rodzic).find('.uruchom_tryb_jasny').find(element);
					if(((elem1!==null)&&(elem1.length>0))||((elem2!==null)&&(elem2.length>0))){
						return false;
					}
					return true;
				}
				function BezSzablonSubst(element){
					var element_tag=$(rodzic).find('.rodzic_szablon_subst_js, .szablon_subst_js').find(element);
					if((element_tag!==null)&&(element_tag.length>0)){return false;}
					return true;
				}
				function Thumb(element){
					var thumb=$(rodzic).find('.thumb').find(element);
					if((thumb!==null)&&(thumb.length>0)){
						var caption=$(rodzic).find('.thumb .thumbcaption').find(element);
						if((caption===null)||(caption.length==0)){
							return false;
						}
					}
					return true;
				}
				function Audio(element){
					var thumb=$(rodzic).find('.audio').find(element);
					if((thumb!==null)&&(thumb.length>0)){
						return false;
					}
					return true;
				}
			
	  			var elementy_a=$(rodzic).find('a');
  				var tab_outer_a=new Array();
  				if((elementy_a!==null)&&(elementy_a.length>0)){
  					for(var a=0;a<elementy_a.length;++a){
  						var element_a=elementy_a[a];
	  					var href=element_a.getAttribute('old_href')||element_a.getAttribute('href');
	  					if((((href!==null)&&(href!=""))||(($(element_a).hasClass('selflink'))&&($(element_a).hasClass('mw-selflink'))))&&(href!="#")&&(element_a.innerHTML!="")&&(!$	(element_a).hasClass('image'))){
		  					if(!((href)&&(href.match(/^javascript:/g)))){
  								var linenos=$(element_a).find("span.linenos");
  								var tak=(((linenos===null)||(linenos.length==0))
  											&&(CzyNieRysunek(element_a))
  												&&(NieLinkiReferencji(element_a))
  													&&(Thumb(element_a))
  														&&(Audio(element_a))
  						    								&&(NaglowekDokumentacji(element_a))
  						    									&&(Czy_w_toc(element_a))
  						        									&&(TableMenu(element_a))
  						        										&&(CategoryTree(element_a))
  						            										&&(TrybCiemny(element_a))
  						            											&&(BezSzablonSubst(element_a))
  						            		);
	  							if(tak){
  									var parent_a=$(element_a).parent().first();
  	 								if((parent_a.length>0)&&(parent_a[0].tagName.toUpperCase()=="SPAN")){
  	 									if($(parent_a).hasClass("link")){
  	 										tak=false;
  	 									}else{
  	 										tak=true;
  	 									}
	  	 							}else{
  		 								tak=true;
  	 								}
  								}
  	 							if(!tak){
									//tab_outer_a.push(element_a);
									continue;
  	 							}
	  						}else{
  								continue;
  							}
  						}
  						(function(element_a){
  	 						//var element_a=tab_outer_a[a];
  	 		
  	 						function LinkURL(wynik_link_wewnetrzny,numer_wywolania,element_a){
  	 	    					//var element_outer_a=tab_outer_a[numer_wywolania];
	  	 	    				var poszczegolna_klasa=$(element_a).wrap(function() {
									return "<span class='"+wynik_link_wewnetrzny+" link'></span>";
								});
								var element_span_a=poszczegolna_klasa.parent().first();
								if((element_span_a!==null)&&(element_span_a.length>0)){
									zmienna_this.UstawZdarzeniaKomunikatuElementuInfo(element_span_a[0]);
								}
  	 						}
  	 						var strona_href=element_a.getAttribute('old_href')||element_a.getAttribute('href');
  	 						strona_href=(((strona_href)&&(strona_href!=""))?strona_href:"")
        					if(strona_href!==""){
  	 							strona_href=strona_href.replace(/[_\s]+/g,"_");
  	 							strona_href=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(strona_href);
  	 							var strona=mw.config.get('wgPageName');
  	 			
								var promise=DodatkiSkrypt.api.ZadaniaApi({
									action: 'parse',
									format: 'json',
									prop: 'text',
									title: strona,
									text: "{{#invoke:Linki|UzyskajKodWikiLinku|strona="+strona_href+"|wyspecjalizowana=tak}}",
				    				disabletoc: true,
									disablelimitreport: true,
									disablestylededuplication: true,
									contentmodel: 'wikitext',
								},null,true,a).DodatkiSkryptThen(function(data){
            						var wynik_linkURL=data.parse.text['*'];
            						var numer=data.parse.text.number;
            						LinkURL(wynik_linkURL,numer,element_a);
								}).DodatkiSkryptCatch((error) => {});
								tab_promise.push(promise);
        					}
  						})(element_a);
        			}
  				}
  				return Promise.all(tab_promise);
    		}).DodatkiSkryptFinally(function(){
				promise_dymki=promise_dymki_aktualna;
			});
    	},null,__muteks||dymki_projektowe_muteks);
	}
}
SzablonSubst.SzablonSubst=function(){
	var szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej=undefined;
	var szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej=undefined;
	
	var szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej=undefined;	
	var szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej=undefined;
	
	var szablonsubst_nie_uwzgledniaj_edycji_sekcji=undefined;
	/**/
	if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){
		if(!czy_nie_gconfig){
			//czy_nie_gconfig=true;
  			mw.messages.set({
				'SzablonSubst-name': 'Rozwijanie szablonów',
				'SzablonSubst-description-page': 'Wikibooks:StronicowyParser/SzablonSubst',
				'SzablonSubst-nie_uwzgledniaj_edycji_sekcji': 'Nie uwzględniaj edycji sekcji.',
				'SzablonSubst-rozwijanie_szablonow_nie_na_stronie_zbiorczej': 'Włącz rozwijanie szablonów, w JavaScript, nie na stronie zbiorczej.',
				'SzablonSubst-rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej': 'Włącz asynchroniczne rozwijanie szablonów, w JavaScript, nie na stronie zbiorczej.',
				'SzablonSubst-rozwijanie_szablonow_na_stronie_zbiorczej': 'Włącz rozwijanie szablonów, w JavaScript, na stronie zbiorczej.',
				'SzablonSubst-rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej': 'Włącz asynchroniczne rozwijanie szablonów, w JavaScript, na stronie zbiorczej.',
  			});
  			gConfig.register('SzablonSubst', {name: mw.msg('SzablonSubst-name'), descriptionPage: mw.msg('SzablonSubst-description-page')}, [
  				{
					name: 'nie_uwzgledniaj_edycji_sekcji',
					desc: mw.msg('SzablonSubst-nie_uwzgledniaj_edycji_sekcji'),
					type: 'boolean',
					deflt: false,
		    		legacy: [window, 'wb_szablonsubst-nie_uwzgledniaj_edycji_sekcji']
				},
				{
					name: 'rozwijanie_szablonow_nie_na_stronie_zbiorczej',
					desc: mw.msg('SzablonSubst-rozwijanie_szablonow_nie_na_stronie_zbiorczej'),
					type: 'boolean',
					deflt: true,
		    		legacy: [window, 'wb_szablonsubst-rozwijanie_szablonow_nie_na_stronie_zbiorczej']
				},
				{
					name: 'rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej',
					desc: mw.msg('SzablonSubst-rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej'),
					type: 'boolean',
					deflt: false,
		    		legacy: [window, 'wb_szablonsubst-rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej']
				},
				{
					name: 'rozwijanie-szablonow_na_stronie_zbiorczej',
					desc: mw.msg('SzablonSubst-rozwijanie_szablonow_na_stronie_zbiorczej'),
					type: 'boolean',
					deflt: true,
		    		legacy: [window, 'wb_szablonsubst-rozwijanie_szablonow_na_stronie_zbiorczej']
				},
				{
					name: 'rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej',
					desc: mw.msg('SzablonSubst-rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej'),
					type: 'boolean',
					deflt: false,
		    		legacy: [window, 'wb_szablonsubst-rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej']
				},		
			]);
		}
		
		szablonsubst_nie_uwzgledniaj_edycji_sekcji = (gConfig.get('SzablonSubst', 'nie_uwzgledniaj_edycji_sekcji')==true);
		szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow_nie_na_stronie_zbiorczej')==true);
		szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej')==true);
		
		szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow_na_stronie_zbiorczej')==true);
		szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej = (gConfig.get('SzablonSubst', 'rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej')==true);
	}
	szablonsubst_nie_uwzgledniaj_edycji_sekcji=((szablonsubst_nie_uwzgledniaj_edycji_sekcji!=undefined)?szablonsubst_nie_uwzgledniaj_edycji_sekcji:false);
	szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej=((szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej!=undefined)?szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej:true);
	szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej=((szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej!=undefined)?szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej:false);
	
	szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej=((szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej!=undefined)?szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej:true);
	szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej=((szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej!=undefined)?szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej:false);	
	
	var promise_szablon;
	this.UstalanieZmiennychRozwijaniaSzablonowego=function(aktualna_strona){
		return DodatkiSkrypt.Scribunto.StronicowyParser.CzyStronaSubst(aktualna_strona).DodatkiSkryptThen(function(wikikod){
			if(wikikod){
				var szablonsubst_rozwijanie_szablonow=szablonsubst_rozwijanie_szablonow_na_stronie_zbiorczej;
				var szablonsubst_rozwijanie_szablonow_asynchroniczne=szablonsubst_rozwijanie_szablonow_asynchroniczne_na_stronie_zbiorczej
			}else{
				var szablonsubst_rozwijanie_szablonow=szablonsubst_rozwijanie_szablonow_nie_na_stronie_zbiorczej;
				var szablonsubst_rozwijanie_szablonow_asynchroniczne=szablonsubst_rozwijanie_szablonow_asynchroniczne_nie_na_stronie_zbiorczej;
			}
			return Promise.resolve([szablonsubst_rozwijanie_szablonow,szablonsubst_rozwijanie_szablonow_asynchroniczne]);
		});
	}

	promise_szablon=this.UstalanieZmiennychRozwijaniaSzablonowego();
	var this_zmienna=this;
	var tab_num=new Array();
	//var tab_promise=new Array();
	//this.CzekanieNaZwolnienieWszystkichKorutynWTabeliObietnicSzablonSubst=function(promise){
	//	console.log(tab_promise.length)
	//	return DodatkiSkrypt.CzekanieNaZwolnienieWszystkichKorutynWTabeliObietnic(tab_promise);
	//}
	this.PobierzSzablon=function(element,nazwa,czy_numerowac,aktualna_strona){
		var promise_szablon_domyslna=promise_szablon;
		if(aktualna_strona){
			promise_szablon=this_zmienna.UstalanieZmiennychRozwijaniaSzablonowego(aktualna_strona);
		}
		return promise_szablon.DodatkiSkryptThen(function(data){
			var szablonsubst_rozwijanie_szablonow=data[0];var szablonsubst_rozwijanie_szablonow_asynchroniczne=data[1];
			var PobierzSzablon=function(element,nazwa,czy_numerowac){
				var tab_promise=new Array();
				if(!szablonsubst_rozwijanie_szablonow){return;}
				if(czy_numerowac==undefined){czy_numerowac=true;}	
				var szablon_js;
				if(!element){
					szablon_js=$('#mw-content-text .mw-parser-output .szablon_subst_js');
				}else{
					szablon_js=$(element).find('.szablon_subst_js');
				}
				if((szablon_js!==null)&&(szablon_js.length>0)){
					var tab_szablon_js=new Array();
					for(var i=0;i<szablon_js.length;++i){tab_szablon_js[i]=szablon_js[i];}
					for(var i=0;i<tab_szablon_js.length;++i){
						var element=tab_szablon_js[i];
						var potomek=((element)?($('.szablon_subst_js').find(element)):element);
						if((potomek===null)||(potomek.length==0)){
							var strona_szablon_js=undefined;
							var nazwa_strony=$(element).parent().first()[0].querySelector('.nazwa_strony');
							if(nazwa_strony){
								strona_szablon_js=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(nazwa_strony.innerHTML));
								if(/^[_\s]*$/g.test(strona_szablon_js)){
									strona_szablon_js=undefined;
								}
							}
							if(!strona_szablon_js){
								strona_szablon_js=((nazwa)?nazwa:(DodatkiSkrypt.Info.page.fullname));
							}
							var zawartosc;
							var wzor_element=$(element).children("*");
							if((wzor_element!==null)&&(wzor_element.length>0)){
								zawartosc=element.innerHTML;
								for(var i=0;i<wzor_element.length;++i){
									var math=wzor_element[i].outerHTML;
									var math_temp=math;
						
									math=math.replace(/[\{\}\=\|]/g,function(s){
										var tab={
											"{":"{{(}}",
											"}":"{{)}}",
											"=":"{{=}}",
											"|":"{{!}}"
										};
										return tab[s]||s;
									}).replace(/>/g,"&amp;gt;").replace(/</g,"&amp;lt;").replace(/\//g,"&amp;#47;");
						
									math_temp=DodatkiSkrypt.Szereg.Norma.BezZnakowychSpecjalnychElementowychWIndywiduum(math_temp);
									var re=new RegExp(math_temp,"g");
							
									zawartosc=zawartosc.replace(re,math);
								}
							}else{
								zawartosc=element.innerHTML;
							}
							var grupa=zawartosc.match(/\|\s*grupa\s*=\s*[^\|\{\}<>]+/g);
							if(grupa!==null){
								var grupa_temp=grupa.toString();
								var grupa_temp2=grupa_temp;
								grupa_temp=DodatkiSkrypt.Szereg.Norma.BezZnakowychSpecjalnychElementowychWIndywiduum(grupa_temp);
								var re=new RegExp(grupa_temp,"g");
							
								grupa=grupa.toString().replace(/\|\s*grupa\s*=\s*/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"");
								tab_num[grupa]=((tab_num[grupa])?tab_num[grupa]:0)+1;
							
								zawartosc=zawartosc.replace(re,grupa_temp2+"|numer szablonu="+tab_num[grupa]);
							}
					
							var promise=DodatkiSkrypt.api.ZadaniaApi({
								action: 'parse',
								format: 'json',
								prop: 'text',
								title: strona_szablon_js,
								text: ((szablonsubst_nie_uwzgledniaj_edycji_sekcji)?"__NOEDITSECTION__\n":"\n")+zawartosc,
								disabletoc: true,
								disablelimitreport: true,
								disablestylededuplication: true,
								contentmodel: 'wikitext',
							},null,true,i,false,true).DodatkiSkryptThen(function(data){
	    							var wikikod=data.parse.text['*'];
	    							var title=data.parse.title;
		    						var number=data.parse.text.number;
		    						wikikod=wikikod.replace(/&amp;gt;/g,">").replace(/&amp;lt;/g,"<").replace(/&amp;#47;/g,"/");
	    			
			    					var parent_szablon_js=szablon_js[number].parentNode;
		    						var element_div;
	    							if($(parent_szablon_js).hasClass('rodzic_szablon_subst_js')){
	    								element_div=parent_szablon_js;
	    							}else{
	    								element_div=szablon_js[number];
	    							}
		    						element_div.innerHTML=wikikod;
			    					element_div.setAttribute('nazwa_strony',title);
			    					element_div.classList.add('szablon_subst_js_zaanalizowany');

	    						return PobierzSzablon(element_div,nazwa,czy_numerowac);
							}).DodatkiSkryptCatch(function(error){console.log(error);});
							tab_promise.push(promise);
						}
					}
				}
				return Promise.all(tab_promise);
			};
			return PobierzSzablon(element,nazwa,czy_numerowac);
		}).DodatkiSkryptFinally(function(){
			promise_szablon=promise_szablon_domyslna;
		});
    }
    this.PobierzSzablonyStronyNieZbiorczej=function(){
    	//return $(document).DodatkiSkryptReady(function(){
    		return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](StronaSubst,new Array("analiza_stron_zbiorczych")).DodatkiSkryptThen(function(){
    			var id_strony=$('#mw-content-text .mw-parser-output').first();
				if(id_strony.length>0){
    				return StronaSubst.analiza_stron_zbiorczych.AnalizujDalejSzablonSubst(id_strony[0],DodatkiSkrypt.muteks_analiza_stron);
				}
    		}).DodatkiSkryptCatch(function(){});
    	//});
    }
}
StronaSubst.WyswietlStronyKsiazki=function(){
	var stronasubst_latex=undefined;
	var stronasubst_mathml=undefined;
	var stronasubst_opakuj_kategorie_ze_sortowaniem=undefined;
	var stronasubst_ukrywaj_toc=undefined;
	var stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=undefined;
	var stronasubst_numerowanie_poszczegolnych_rozdzialow=undefined;
	var stronasubst_aktualizowanie_nazw_artykulow=undefined;
	var stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=undefined;
	var stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=undefined;
	var stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=undefined;
	var stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=undefined;
	var stronasubst_nie_usuwaj_styli=undefined;
	var stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=undefined;
	if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){
  		mw.messages.set({
			'StronaSubst-name': 'Strona zbiorcza',
			'StronaSubst-description-page': 'Wikibooks:StronicowyParser',
			'StronaSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
			'StronaSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
			'StronaSubst-opakuj_kategorie_ze_sortowaniem' : 'W stronach zbiorczych opakowuje kategorie, w postaci ramki, dla każdego artykułu z osobna.',
			'StronaSubst-ukrywaj_toc' : "Ukrywa, począwszy od jakiegoś poziomu wszystkich tam spisów treści, na stronach zbiorczych.",
			'StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach' : "Włącza dymki, nad linkami, w ładowanych dynamicznie stronach, tworząc je inteligentnymi.",
			'StronaSubst-numerowanie_poszczegolnych_rozdzialow': 'Włącz numerowanie poszczególnych rozdziałów',
			'StronaSubst-aktualizowanie_nazw_artykulow' : 'Aktualizuje na podstawie strony głównej nazwy tylko artykułów.',
			'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami' : "Aktualizuje sekcje poszczegónych rozdziałów artykułów ładowanych rozdziałami, domyślnie według sekcji w tych jednostkach.",
			'StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika' : 'Aktualizuje, sekcje artykułów ładowanych rozdziałami, na podstawie strony głównej książki, a nie jego artykułów.',
			'StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej' : 'Aktualizuje nagłówki strony głównej podręcznika na stronie zbiorczej.',
			'StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule' : 'Aktualizuje, brakujące sekcje rozdziałów ładowanych rozdziałami artykułów, według wpisów na stronie głównej, na stronie zbiorczej.',
			'StronaSubst-nie_usuwaj_styli' : 'Nie usuwa styli z nagłówków ładowanych stron.',
			'StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst' : 'Rozwijaj szablony oznaczone szablonem SzablonSubst.',
		});
		gConfig.register('StronaSubst', {name: mw.msg('StronaSubst-name'), descriptionPage: mw.msg('StronaSubst-description-page')}, [
			{
				name: 'latex',
				desc: mw.msg('StronaSubst-latex'),
				type: 'boolean',
				deflt: false,
		    	legacy: [window, 'wb_stronasubst_latex']
			},
			{
				name: 'mathml',
				desc: mw.msg('StronaSubst-mathml'),
				type: 'boolean',
				deflt: true,
				legacy: [window, 'wb_stronasubst_mathml']
			},
			{
				name: 'opakuj_kategorie_ze_sortowaniem',
				desc: mw.msg('StronaSubst-opakuj_kategorie_ze_sortowaniem'),
				type: 'boolean',
				deflt: false,
				legacy: [window, 'wb_stronasubst_opakuj_kategorie_ze_sortowaniem']
			},
			{
				name: 'ukrywaj_toc',
				desc: mw.msg('StronaSubst-ukrywaj_toc'),
				type: 'integer',
				deflt: 0,
				validation: function(n){ if((n<0)||(n==1)){ throw 'Wartość dotycząca poziomu ukrywania spisów treści jest nieprawidłowa!' }; return n; },
				legacy: [window, 'wb_stronasubst_ukrywaj_toc']
			},
			{
				name: 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach',
				desc: mw.msg('StronaSubst-dymki_nad_linkami_w_ladowanych_dynamicznie_stronach'),
				type: 'boolean',
				deflt: true,
				legacy: [window, 'wb_stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach']
			},	
			{
				name: 'numerowanie_poszczegolnych_rozdzialow',
				desc: mw.msg('StronaSubst-numerowanie_poszczegolnych_rozdzialow'),
				type: 'boolean',
				deflt: true,
				legacy: [window, 'wb_stronasubst_numerowanie_poszczegolnych_rozdzialow']
			},
			{
				name: 'aktualizowanie_nazw_artykulow',
				desc: mw.msg('StronaSubst-aktualizowanie_nazw_artykulow'),
				type: 'boolean',
				deflt: true,
				legacy: [window, 'wb_stronasubst_aktualizowanie_nazw_artykulow']
			},
			{
				name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami',
				desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami'),
				type: 'boolean',
				deflt: true,
				legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami']
			},
			{
				name: 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika',
				desc: mw.msg('StronaSubst-aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika'),
				type: 'boolean',
				deflt: true,	
				legacy: [window, 'wb_stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika']
			},
			{
				name: 'aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej',
				desc: mw.msg('StronaSubst-aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: true,
				legacy: [window, 'wb_stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej']
			},
			{
				name: 'aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule',
				desc: mw.msg('StronaSubst-aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule'),
				type: 'boolean',
				deflt: true,
				legacy: [window, 'wb_stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule']
			},
			{
				name: 'nie_usuwaj_styli',
				desc: mw.msg('StronaSubst-nie_usuwaj_styli'),
				type: 'boolean',
				deflt: true,
				legacy: [window, 'wb_stronasubst_nie_usuwaj_styli']
			},
			{
				name: 'rozwijaj_szablony_oznaczone_szablonem_szablonsubst',
				desc: mw.msg('StronaSubst-rozwijaj_szablony_oznaczone_szablonem_szablonsubst'),
				type: 'boolean',
				deflt: true,
				legacy: [window, 'wb_stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst']
			},			
		]);
		stronasubst_latex = (gConfig.get('StronaSubst', 'latex')==true);
		stronasubst_mathml = (((gConfig.get('StronaSubst', 'mathml'))&&(!stronasubst_latex))==true);
		stronasubst_opakuj_kategorie_ze_sortowaniem = (gConfig.get('StronaSubst', 'opakuj_kategorie_ze_sortowaniem')==true);
		stronasubst_ukrywaj_toc = gConfig.get('StronaSubst', 'ukrywaj_toc');
		stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach = gConfig.get('StronaSubst', 'dymki_nad_linkami_w_ladowanych_dynamicznie_stronach');
		stronasubst_numerowanie_poszczegolnych_rozdzialow = gConfig.get('StronaSubst', 'numerowanie_poszczegolnych_rozdzialow');
		stronasubst_aktualizowanie_nazw_artykulow = (gConfig.get('StronaSubst', 'aktualizowanie_nazw_artykulow')==true);
		stronasubst_aktualizowanie_nazw_artykulow = (gConfig.get('StronaSubst', 'aktualizowanie_nazw_artykulow')==true);
		stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami = (gConfig.get('StronaSubst', 'aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami')==true);
    	stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika = (gConfig.get('StronaSubst','aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika')==true);
    	stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej = (gConfig.get('StronaSubst','aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej')==true);
    	stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule = (gConfig.get('StronaSubst','aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule')==true);
    	stronasubst_nie_usuwaj_styli = (gConfig.get('StronaSubst','nie_usuwaj_styli')==true);
    	stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst = (gConfig.get('StronaSubst','rozwijaj_szablony_oznaczone_szablonem_szablonsubst')==true);
	}
	
	//var podglad=document.querySelector('body:not(.action)');
	//if(podglad){return;}
	
	var stronasubst_tablica_tych_samych=new Array();
	var stronasubst_tablica_rozdzialow=new Array();
	var stronasubst_tablica_alternatywnych_nazw=new Array();
	
	stronasubst_latex=((stronasubst_latex!==undefined)?stronasubst_latex:false);
	stronasubst_mathml=((stronasubst_mathml!==undefined)?stronasubst_mathml:true);
	stronasubst_opakuj_kategorie_ze_sortowaniem=((stronasubst_opakuj_kategorie_ze_sortowaniem!==undefined)?stronasubst_opakuj_kategorie_ze_sortowaniem:false);
	
	stronasubst_ukrywaj_toc=parseInt(((stronasubst_ukrywaj_toc!==undefined)?stronasubst_ukrywaj_toc:0));
	stronasubst_ukrywaj_toc=((!isNaN(stronasubst_ukrywaj_toc))?stronasubst_ukrywaj_toc:0);
	
	stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach=((stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach!==undefined)?stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach:true);
	
	stronasubst_numerowanie_poszczegolnych_rozdzialow=((stronasubst_numerowanie_poszczegolnych_rozdzialow!==undefined)?stronasubst_numerowanie_poszczegolnych_rozdzialow:true);
		
	stronasubst_aktualizowanie_nazw_artykulow=((stronasubst_aktualizowanie_nazw_artykulow!==undefined)?stronasubst_aktualizowanie_nazw_artykulow:true);	
	
	stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami:true);
		
	stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika=((stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika!==undefined)?stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika:true);
		
	stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej=((stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej!==undefined)?stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej:true);
	
	stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule=((stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule!==undefined)?stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule:true);
	
	stronasubst_nie_usuwaj_styli=((stronasubst_nie_usuwaj_styli!==undefined)?stronasubst_nie_usuwaj_styli:true);
	
	stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst=((stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst!==undefined)?stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst:true);
	
	var this_zmienna=this;
	function NiePobranaStronaLubNieIstnieje(title,strona_hash,elements){
        var a=document.createElement('a');/*Tworzenie linku*/
        a.setAttribute('href',"/wiki/"+DodatkiSkrypt.Szereg.Kodowanie.EncodeHtml(title));
        a.innerHTML=strona_hash;

        var span=document.createElement('span');
        span.appendChild(a);
        span.setAttribute("class","niw link");
        	
        var strong=document.createElement("strong");
        strong.appendChild(span);
        	
        var przed=document.createTextNode("{{:");
		var po=document.createTextNode("}}");
		strong.insertBefore(przed,strong.firstChild);
		strong.appendChild(po);
        	
        	
        for(var q in elements){
        	(function(q){
        		var element=elements[q];
				
        		element.innerHTML="";
				element.appendChild(strong);
				
        		element.style.display="block";
				var parent=element.parentNode;
				if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
					parent.style.display="block";
				}
        	
        		var pasek=element.parentNode.querySelector('.postęp_ładowania_artykułu');
				if(pasek!==null){
					element.parentNode.removeChild(pasek);
				}
				$(document).DodatkiSkryptReady(function(){
					return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).then(function(){
						var tab_promise=new Array();
						var muteks=new DodatkiSkrypt.Muteks();
						tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,muteks));
						tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,muteks));
						return Promise.all(tab_promise);
					});
				},null,DodatkiSkrypt.muteks_analiza_stron);
        	})(q);
        }
	}
	function WikikodTitle(data,tabs,titles,tabstrona,tablica_przednaglowkowa_html,stronasubst_latex,stronasubst_mathml){
		var title=data.parse.title;
		var wikikod=data.parse.text['*'];
		var t=data.parse.text.number;
		var strona_hash=titles[t];
		var elements=tabstrona[strona_hash];
        if(wikikod==null){
        	NiePobranaStronaLubNieIstnieje(title,strona_hash,elements);
        	return;
        }
				
		for(var q in elements){
			var element=elements[q];
			element.innerHTML=wikikod;
			(function(element,title,titles){
				$(document).DodatkiSkryptReady(function(){
					DodatkiSkrypt.Strona.ZamienianeAdresoweLinkoweReferencjiByByłyWskazywalneDoStronyAktualnej(element,title,titles);
				},null,DodatkiSkrypt.muteks_analiza_stron);
			})(element,title,titles);
		}
		(function(elements,tabs,strona_hash,tablica_przednaglowkowa_html,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,stronasubst_latex,stronasubst_mathml){
			$(document).DodatkiSkryptReady(function(){
				DodatkiSkrypt.Strona.AktualizowanieSpisuMateriiStrony(elements,tabs,strona_hash,tablica_przednaglowkowa_html,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,true,stronasubst_latex,stronasubst_mathml);
			},null,DodatkiSkrypt.muteks_analiza_stron);
		})(elements,tabs,strona_hash,tablica_przednaglowkowa_html,stronasubst_tablica_alternatywnych_nazw,stronasubst_tablica_tych_samych,stronasubst_tablica_rozdzialow,stronasubst_latex,stronasubst_mathml);
		/**/
		$(document).DodatkiSkryptReady(function(){
			return DodatkiSkrypt.Boksy.StickyXY();
		},null,DodatkiSkrypt.muteks_analiza_stron);
		$(document).DodatkiSkryptReady(function(){
			return DodatkiSkrypt.Boksy.NotOverflowXY();
		},null,DodatkiSkrypt.muteks_analiza_stron);
		/**/
		if(stronasubst_numerowanie_poszczegolnych_rozdzialow){
			for(var q in elements){
				var element=elements[q];
				(function(element){
					var str_fun=$(element).parent().find("> h1:first-of-type, > h2:first-of-type, > h3:first-of-type, > h4:first-of-type, > h5:first-of-type, > h6:first-of-type").find(" > span.numeracja");
					if(str_fun.length>0){
						var numer=str_fun[0].innerHTML;
						numer=DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(numer).replace(/\.$/g,"");
						$(document).DodatkiSkryptReady(function(){
							return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](NumerSubst,new Array("numer")).then(function(){
								return NumerSubst.numer.NumerowanieNaglowkowStron(element,numer,true);
							});
						},null,DodatkiSkrypt.muteks_analiza_stron);
					}	
				})(element);
			}
		}
		var strona_start=$(elements[0]).parents(".strona_start");
		var rodzic=undefined;
		if((strona_start!==null)&&(strona_start.length>0)){
        	rodzic=strona_start[0];
		}
		$(document).DodatkiSkryptReady(function(){
			DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu();
		},null,DodatkiSkrypt.muteks_analiza_stron);
		(function(rodzic){
			$(document).DodatkiSkryptReady(function(){
				DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichTOC(rodzic,true);
			},null,DodatkiSkrypt.muteks_analiza_stron);
		})(rodzic);
		for(var q in elements){
			var element=elements[q];
			(function(element){
				$(document).DodatkiSkryptReady(function(){
					DodatkiSkrypt.Strona.PoprawianieNapisoweNumeruWprowadzeniaTekstu(element);
				},null,DodatkiSkrypt.muteks_analiza_stron);
				$(document).DodatkiSkryptReady(function(){
					DodatkiSkrypt.Strona.ZmienianieNazwReferencjiNaNazwyProjektuPodrecznika(element);
				},null,DodatkiSkrypt.muteks_analiza_stron);
				if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
					$(document).DodatkiSkryptReady(function(){
						return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).then(function(){
							var tab_promise=new Array();
							var muteks=new DodatkiSkrypt.Muteks();
							tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,muteks,strona_hash));
							tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,muteks,strona_hash));
							return Promise.all(tab_promise);
						});
					},null,DodatkiSkrypt.muteks_analiza_stron);
				}
				if(stronasubst_rozwijaj_szablony_oznaczone_szablonem_szablonsubst){
					$(document).DodatkiSkryptReady(function(){
						var muteks_szablon=new DodatkiSkrypt.Muteks();
						return this_zmienna.AnalizujDalejSzablonSubst(element,muteks_szablon,strona_hash);
					},null,DodatkiSkrypt.muteks_analiza_stron);
				}
			})(element);
		}
	}
	function StronaSubstAnaliza(element_strony,wikikod,aktualna_strona){
		var czy_wikikod=wikikod.match(/^[_\s]*$/g);
		var strona_start=$('#mw-content-text .mw-parser-output .strona_start');
		if(czy_wikikod){
			return;
		}
		var element_strony_przed=$(element_strony).find('.mw-headline').first();
		var element_parser=$(element_strony_przed).parents('#mw-content-text .mw-parser-output').first()[0];
		var iterator=DodatkiSkrypt.Szereg.Html.IteratorPrzodkowyPoElemencieHtml(element_parser,true);
		var tablica_przednaglowkowa_html=new Array();
		while(element_strony_przed[0]){
			var element_html=iterator();
			if((!element_html)||(element_html==element_strony_przed[0])){break;}
			var czy_headline=$(element_html).hasClass('mw-headline');
			if(czy_headline){
				var id=element_html.getAttribute('id');
				if(id){
					tablica_przednaglowkowa_html[id]=true;
				}
			}
		};
			
		var rozdzial_ksiazki="rozdział_książki";
			
		var tagclass=element_strony.getElementsByClassName(rozdzial_ksiazki);
			
		if(tagclass===null){
			return null;
		}
		var liczba_elementow=tagclass.length;
		if(liczba_elementow==0){
			return null;
		}
		var titles=new Array();
		var tabstrona=new Array();
		var tabs=new Array();
		var tab_section=new Array();
		
		var tab_hn=new Array();
		/**/
		function edit_action(numer,strona,hn,link_strona,czy_link_nie_w_naglowku){
			var linkstrony_editsection=hn.querySelector('.mw-editsection');
			if(linkstrony_editsection===null){
				var editsection=document.createElement('span');
				editsection.classList.add('mw-editsection');
				
				var bracket_poczatek=document.createElement('span');
				bracket_poczatek.classList.add('mw-editsection-bracket')
				bracket_poczatek.innerHTML="[";
				
				var a=document.createElement('a');
				a.setAttribute('href',"/w/index.php?title="+DodatkiSkrypt.Szereg.Kodowanie.EncodeHtml(strona,false,true)+"&action=edit"+((numer>0)?("&section="+numer):""));
				a.setAttribute('title',"Edytuj artykuł: "+link_strona);
				a.innerHTML="edytuj";
				
				var bracket_koniec=document.createElement('span');
				bracket_koniec.classList.add('mw-editsection-bracket')
				bracket_koniec.innerHTML="]";
				
				editsection.appendChild(bracket_poczatek);
				editsection.appendChild(a)
				editsection.appendChild(bracket_koniec);
				
				hn.appendChild(editsection);
			}
			linkstrony_editsection=hn.querySelector('.mw-editsection');
			
			if(linkstrony_editsection!==null){
				var mw_editsection_bracket=linkstrony_editsection.querySelector('a');
				if(mw_editsection_bracket!==null){
	                if(czy_link_nie_w_naglowku){
						var a=document.createElement('a');
					    a.innerHTML="artykuł";
					    a.setAttribute("href",DodatkiSkrypt.Szereg.Kodowanie.EncodeHtml("/wiki/"+link_strona));
					    a.setAttribute("title","Zobacz artykuł: "+link_strona);
					    var span=document.createElement('span');
						span.innerHTML="| ";
						span.setAttribute('class',"mw-editsection-bracket")
							
						var czy_ma=$(mw_editsection_bracket).parent().hasClass('link');
						if(czy_ma){
							var rodzic_mw_editsection_bracket=mw_editsection_bracket.parentNode;
							var span2=linkstrony_editsection.insertBefore(span, rodzic_mw_editsection_bracket);
							linkstrony_editsection.insertBefore(a, span2);
						}else{
							var span2=linkstrony_editsection.insertBefore(span, mw_editsection_bracket);
							linkstrony_editsection.insertBefore(a, span2);
						}
					}
				}
					//if((StronicowyParser.gadgetdymkisubst&&StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo)&&(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach)){
					//	StronicowyParser.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(linkstrony_editsection).then((result) => {}).catch((error) => {});
					//}
			}
    	}
		/**/
		for (var i=0;i<liczba_elementow;++i){
			var tagclassname=tagclass[i];
				
			var potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find("."+rozdzial_ksiazki);
			function CzyOdrzucic(){
				for(var i=0;i<potomek_analizowany.length;++i){
					if(potomek_analizowany[i]==tagclassname){
						return true;
					}
				}
				return false;
			}
			if(CzyOdrzucic()){continue;}
				
			if(tagclassname.tagName.toUpperCase()!="DIV"){
				return;
			}
			var class_element=tagclassname.getElementsByClassName('strona_subst');
			var element;
			if((class_element!==null)&&(class_element.length==1)){
				element=class_element[0];
				if(element.tagName.toUpperCase()!="DIV"){
					return;
				}
			}else{
				return;
			}
			var czy_link_nie_w_naglowku;
			var strona_headline=tagclassname.getElementsByClassName('mw-headline');
			var link_strona;
			if((strona_headline!==null)&&(strona_headline.length==1)){
				strona_a=strona_headline[0].getElementsByTagName('a');
				if((strona_a!==null)&&(strona_a.length==1)){
					link_strona=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(strona_a[0].getAttribute('href'));
					if(link_strona!==null){
						var re=/\/wiki\//g;
						if(re.test(link_strona)){
							link_strona=link_strona.substring(6,link_strona.length);
							czy_link_nie_w_naglowku=false;
						}else{
							return;
						}
					}
				}else{
					link_strona=DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(element.innerHTML);
					czy_link_nie_w_naglowku=true;
				}	
			}
				
				
			var re = /^[_\s]*$/g;
    		var dopasowanie = re.test(link_strona);
    		if(dopasowanie){
    			return;
    		};
    		link_strona=link_strona.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ").replace(/&amp;/g,"&").replace(/&nbsp;/g," ");
    		var hash=link_strona.replace(/^([^#]*)#(.*)$/,"$2").replace(/&amp;/g,"&").replace(/&nbsp;/g,"_");
    	    /**/
    	    var hn=strona_headline[0].parentNode;
    	    if((hn===null)||(!hn.tagName.toUpperCase().match(/^H\d+$/g))){return;}
    	    
    	    tab_section[i]=new Array(hn,link_strona,czy_link_nie_w_naglowku);
    	    var strona=link_strona.match(/^[^#]*/g).toString();
			/**/
			function PraceIteracyjne(link_strona,strona,hn,czy_link_nie_w_naglowku,tab_section,i){
    		    if(/#/g.test(link_strona)){
	    	    	var hash=link_strona.replace(/^([^#]*)#(.*)$/g,"$2");
					DodatkiSkrypt.api.ZadaniaApi({
						action: 'parse',
						format: 'json',
						prop: 'text',
						title: aktualna_strona,
						text: "{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona+"|"+hash+"}}",
						disabletoc: true,
						disablelimitreport: true,
						contentmodel: 'wikitext',
						smaxage: 600,
						maxage: 600,
		    		},null,true,i).DodatkiSkryptThen(function(data){
		    				$(document).DodatkiSkryptReady(function(){
    							var wikikod=data.parse.text['*'];
    							var c=data.parse.text.number;
    							/**/
    	        	    		var tab_c=tab_section[c];
    						   
	    						edit_action(parseInt(wikikod),tab_c[1].match(/^[^#]*/g).toString(),tab_c[0],tab_c[1],tab_c[2]);
		    				},null,DodatkiSkrypt.muteks_analiza_stron);
    				}).DodatkiSkryptCatch((error) => {});
    				if(stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami){
	    				if(!stronasubst_aktualizowanie_sekcji_artykolow_ladowanych_rozdzialami_wedlug_strony_glownej_podrecznika){
							DodatkiSkrypt.api.ZadaniaApi({
								action: 'parse',
								format: 'json',
								prop: 'text',
								title: aktualna_strona,
								text: "{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona+"|"+hash+"}}</div>",
								disabletoc: true,
								disablelimitreport: true,
								contentmodel: 'wikitext',
								smaxage: 600,
								maxage: 600,
	    					},null,true,i).DodatkiSkryptThen(function(data){
	    						$(document).DodatkiSkryptReady(function(){
    								var wikikod=data.parse.text['*'];
    						        var c=data.parse.text.number;
    								if(/^\s*$/g.test(wikikod)){return;}
    	    		    			var tab_c=tab_section[c];
    								var hn_element=tab_c[0];
    								var headline=hn_element.querySelector('.mw-headline');
    								if(!stronasubst_nie_usuwaj_styli){
	    								DodatkiSkrypt.Szereg.Styl.PrzeniesienieStyloweHTMLNaStartStronyParsera();
    									headline.innerHTML=DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod);
	    							}else{
    									headline.innerHTML=wikikod;
    								}
    								DodatkiSkrypt.Strona.ZamienianieNazwyLinkuSpisuMateriiTOC(headline,true,stronasubst_latex);
    							
    								if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
    									$(document).DodatkiSkryptReady(function(){
											return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).then(function(){
												var headline_nowe=$(headline).parents('h1,h2,h3,h4,h5,h6').first()[0];
												if(headline_nowe){
													var tab_promise=new Array();
													var muteks=new DodatkiSkrypt.Muteks();
													tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline_nowe,muteks,aktualna_strona));
													tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline_nowe,muteks,aktualna_strona));
													return Promise.all(tab_promise);
												}
											});
										},null,DodatkiSkrypt.muteks_analiza_stron);
    								}
	    						},null,DodatkiSkrypt.muteks_analiza_stron);
	    					}).DodatkiSkryptCatch((error) => {});
    					}else{
    						var uzupelniaj_sekcje_artykulow;
    						if(stronasubst_aktualizowanie_nieistniejacych_sekcji_rozdzialow_artykulow_na_stronie_glownej_w_artykule){
    							uzupelniaj_sekcje_artykulow="tak";
	    					}else{
    							uzupelniaj_sekcje_artykulow="";
    						}
    	    				DodatkiSkrypt.api.ZadaniaApi({
								action: 'parse',
								format: 'json',
								prop: 'text',
								title: aktualna_strona,
								text: "{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+link_strona+"|analiza=tak|uzupełniaj sekcje artykułów="+uzupelniaj_sekcje_artykulow+"|wyspecjalizowana=tak}}}}",
								disabletoc: true,
								disablelimitreport: true,
								contentmodel: 'wikitext',
								smaxage: 600,
								maxage: 600,
	    					},null,true,i).DodatkiSkryptThen(function(data){
	    						$(document).DodatkiSkryptReady(function(){
	    							var wikikod=data.parse.text['*'];
    						        var c=data.parse.text.number;
		    						if(/^\s*$/g.test(wikikod)){return;}
	    		        			var tab_c=tab_section[c];
    								var hn_element=tab_c[0];
    								var headline=hn_element.querySelector('.mw-headline');
    						
    								var stare=tab_section[c][1];var nowe;
    								if(!stronasubst_nie_usuwaj_styli){
    									DodatkiSkrypt.Szereg.Styl.PrzeniesienieStyloweHTMLNaStartStronyParsera();
		    						    nowe=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod),true);
    								}else{
    									nowe=nowe=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod),true);
    								}
    								stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
    					
    								headline.innerHTML=wikikod;
    								var a=headline.getElementsByTagName('a');
    						
	    							if((a!==null)&&(a.length>0)){
    									a[0].setAttribute('title',stare);
    								}
    						
    								DodatkiSkrypt.Strona.ZamienianieNazwyLinkuSpisuMateriiTOC(headline,true,stronasubst_latex);
    							
    								if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
    									$(document).DodatkiSkryptReady(function(){
											return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).then(function(){
												var headline_nowe=$(headline).parents('h1,h2,h3,h4,h5,h6').first()[0];
												if(headline_nowe){
													var tab_promise=new Array();
													var muteks=new DodatkiSkrypt.Muteks();
													tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline_nowe,muteks,aktualna_strona));
													tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline_nowe,muteks,aktualna_strona));
													return Promise.all(tab_promise);
												}
											});
										},null,DodatkiSkrypt.muteks_analiza_stron);
    								}
	    						},null,DodatkiSkrypt.muteks_analiza_stron);
    						}).DodatkiSkryptCatch((error) => {});
    					}
    				}
    	    	}else{
    	    		edit_action(0,strona,hn,link_strona,czy_link_nie_w_naglowku);
    	    		if(stronasubst_aktualizowanie_nazw_artykulow){
    	    			DodatkiSkrypt.api.ZadaniaApi({
							action: 'parse',
							format: 'json',
							prop: 'text',
							title: aktualna_strona,
							text: "{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|LiniaArtykułuKsiążki|nazwa przestrzeni nazw=(main)|nazwa jednostki="+strona+"|analiza=tak|wyspecjalizowana=tak}}}}",
							disabletoc: true,
							disablelimitreport: true,
							contentmodel: 'wikitext',
							smaxage: 600,
							maxage: 600,
	    				},null,true,i).DodatkiSkryptThen(function(data){
	    					$(document).DodatkiSkryptReady(function(){
    							var wikikod=data.parse.text['*'];
    							var c=data.parse.text.number;
    							if(/^\s*$/g.test(wikikod)){return;}
    	        				var tab_c=tab_section[c];
    							var hn_element=tab_c[0];
    							var headline=hn_element.querySelector('.mw-headline');
    				
    							var stare=tab_section[c][1];var nowe;
	    						if(!stronasubst_nie_usuwaj_styli){
    								DodatkiSkrypt.Szereg.Styl.PrzeniesienieStyloweHTMLNaStartStronyParsera(wikikod);
    						    	nowe=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod),true);
    							}else{
    						    	nowe=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTML(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod),true);
    							}
    							
	    						stronasubst_tablica_alternatywnych_nazw[stare]=nowe;
    				
    							headline.innerHTML=wikikod;
	    						DodatkiSkrypt.Strona.ZamienianieNazwyLinkuSpisuMateriiTOC(headline,true,stronasubst_latex);
    							if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
    								$(document).DodatkiSkryptReady(function(){
										return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).then(function(){
											var headline_nowe=$(headline).parents('h1,h2,h3,h4,h5,h6').first()[0];
											if(headline_nowe){
												var tab_promise=new Array();
												var muteks=new DodatkiSkrypt.Muteks();
												tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline_nowe,muteks,aktualna_strona));
												tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline_nowe,muteks,aktualna_strona));
												return Promise.all(tab_promise);
											}
										});
									},null,DodatkiSkrypt.muteks_analiza_stron);
	    						}
	    					},null,DodatkiSkrypt.muteks_analiza_stron);
    					}).DodatkiSkryptCatch((error) => {});
    	    		}
    	    	}
    	    }
    	    (function(link_strona,strona,hn,czy_link_nie_w_naglowku,tab_section,i){
    	    	$(document).DodatkiSkryptSettledPromise(function(){
		    		PraceIteracyjne(link_strona,strona,hn,czy_link_nie_w_naglowku,tab_section,i);
    	    	});
    	    })(link_strona,strona,hn,czy_link_nie_w_naglowku,tab_section,i);
			/**/
    		tabs[i]=link_strona;
    		
    		var czy=false;
    		for(var d in titles){
       			if(titles[d]==link_strona){
       	    		czy=true;
       	    		break;
       			}
    		}
    		if(!czy){
       			titles[titles.length]=link_strona;
    		}	
    		
    		
    		if(tabstrona[link_strona]==null){
       			tabstrona[link_strona]=new Array();
    		}
    		var tab=tabstrona[link_strona];
    		var tablen=tab.length;
    		tabstrona[link_strona][tablen]=element;
		}
		/**/
		function PraceNaglowki(){
			var promise;
	    	if(element_strony==document){
	    	    var namespace=DodatkiSkrypt.Info.page.namespace;
    	    	var strona_podrecznika=((namespace!="")?(namespace+":"):"")+DodatkiSkrypt.Info.page.bookname;
    	    	promise=Promise.resolve(strona_podrecznika);
	    	}else{
	    	    var zaan=$(element_strony).parents('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany');
	    	    if((zaan!==null)&&(zaan.length>0)){
	    	    	var strona=zaan[0].getAttribute('nazwa_strony');
	    	    	if(strona){
	    	    		promise=DodatkiSkrypt.Scribunto.Nazwy["PEŁNANAZWAKSIĄŻKI"](strona);
	    	    	}else{
	    	    		promise=DodatkiSkrypt.Scribunto.Nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
	    	    	}
	    	    }else{
    	    		promise=DodatkiSkrypt.Scribunto.Nazwy["PEŁNANAZWAKSIĄŻKI"](aktualna_strona);
	    	    }
	    	}
			promise.DodatkiSkryptThen((strona_podrecznika)=>{
				var klasa_naglowka=element_strony.getElementsByClassName('klasa_nagłówka');
					
				var potomek_analizowany=$(element_strony).find(".rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany").find(".klasa_nagłówka");
					
    			if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)){
    				var g=0;
    				var tab_naglowka=new Array();
    				var tab_hn=new Array();
    	    		for(var z=0;z<klasa_naglowka.length;++z){
    	    			var pojedyncza_klasa_naglowka=klasa_naglowka[z];
    	    			function CzyOdrzucic(){
							for(var i=0;i<potomek_analizowany.length;++i){
								if(potomek_analizowany[i]==pojedyncza_klasa_naglowka){
									return true;
								}
							}
							return false;
						}
						if(CzyOdrzucic()){continue;}
							
    	    			var dana_klasa_naglowka=pojedyncza_klasa_naglowka.querySelector('.mw-headline');
    	    			if(dana_klasa_naglowka!==null){
    	    				if((dana_klasa_naglowka.parentNode!==null)&&(dana_klasa_naglowka.parentNode.tagName.toUpperCase().match(/^[Hh]\d+$/g))
    	    					&&(dana_klasa_naglowka.parentNode.parentNode!=null)&&(dana_klasa_naglowka.parentNode.parentNode.tagName.toUpperCase()=="DIV")
    	    						&&($(dana_klasa_naglowka.parentNode.parentNode).hasClass('klasa_nagłówka'))){
	    	    			   			var naglowek=DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(dana_klasa_naglowka.innerHTML).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_").replace(/&amp;/g,"&").replace(/&nbsp;/g,"_");
    		    			   			var ww=1;
    		    			   			for(var x=0;x<tab_naglowka.length;++x){
    	    				   	       		if(tab_naglowka[x]==naglowek){
    	    				   	        		++ww;
    	    				   	        	}
    	    				   	    	}
    	    			   		    	naglowek=naglowek+((ww>1)?ww:"");
    	    			   	    		tab_naglowka[g]=naglowek;
	    	    			   	    	tab_hn[g]=dana_klasa_naglowka.parentNode;
	    	    			   	    
										DodatkiSkrypt.api.ZadaniaApi({
											action: 'parse',
											format: 'json',
											prop: 'text',
											title: aktualna_strona,
											text: "{{#invoke:StronicowyParser|KtóraSekcjaStrony|"+strona_podrecznika+"|"+naglowek+"}}",
											disabletoc: true,
											disablelimitreport: true,
											contentmodel: 'wikitext',
											smaxage: 600,
											maxage: 600,
    									},null,true,g).DodatkiSkryptThen(function(data){
    										$(document).DodatkiSkryptReady(function(){
    											var wikikod=data.parse.text['*'];
	    						                var c=data.parse.text.number;
		    									var nazwa_podrecznika=strona_podrecznika.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
    											var naglowek_sekcji_podrecznika=tab_naglowka[c].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ")
    											edit_action(parseInt(wikikod),nazwa_podrecznika,tab_hn[c],nazwa_podrecznika+"#"+naglowek_sekcji_podrecznika,true);
    										},null,DodatkiSkrypt.muteks_analiza_stron);
    									}).DodatkiSkryptCatch((error) => {});;
	    								if(stronasubst_aktualizowanie_naglowkow_strony_glownej_podrecznika_na_stronie_zbiorczej){
											DodatkiSkrypt.api.ZadaniaApi({
												action: 'parse',
												format: 'json',
												prop: 'text',
												title: aktualna_strona,
												text: "{{#invoke:StronicowyParser|ZwróćSekcjęNagłówkaStrony|"+strona_podrecznika+"|"+naglowek+"}}",
												disabletoc: true,
												disablelimitreport: true,
												contentmodel: 'wikitext',
												smaxage: 600,
												maxage: 600,
	    									},null,true,g).DodatkiSkryptThen(function(data){
	    										$(document).DodatkiSkryptReady(function(){
    												var wikikod=data.parse.text['*'];
    				        	    		        var c=data.parse.text.number;
	    											if(/^\s*$/g.test(wikikod)){return;}
    													var headline=tab_hn[c].querySelector('.mw-headline');
    													if(!stronasubst_nie_usuwaj_styli){
    														DodatkiSkrypt.Szereg.Styl.PrzeniesienieStyloweHTMLNaStartStronyParsera();
    														headline.innerHTML=DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(wikikod);
    													}else{
    														headline.innerHTML=wikikod;
    													}
    													DodatkiSkrypt.Strona.ZamienianieNazwyLinkuSpisuMateriiTOC(headline,true,stronasubst_latex);
    													if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
    														$(document).DodatkiSkryptReady(function(){
																return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).then(function(){
																	var headline_nowe=$(headline).parents('h1,h2,h3,h4,h5,h6').first()[0];
																	if(headline_nowe){
																		var tab_promise=new Array();
																		var muteks=new DodatkiSkrypt.Muteks();
																		tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(headline_nowe,muteks,aktualna_strona));
																		tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(headline_nowe,muteks,aktualna_strona));
																		return Promise.all(tab_promise);
																	}
																});
															},null,DodatkiSkrypt.muteks_analiza_stron);
    													}
	    											},null,DodatkiSkrypt.muteks_analiza_stron);
    										}).DodatkiSkryptCatch((error) => {});
    									}
    							++g;
    	    				}
    	    			}
    	    		}
    	    	}
			}).DodatkiSkryptCatch(()=>{});
    	}
    	$(document).DodatkiSkryptSettledPromise(function(){
    		PraceNaglowki();
    	});
    	/**/
    	function RozwazajNaglowki(){
  			var toc_fun=new DodatkiSkrypt.Strona.ListaNodeTOC();
			if((toc_fun.toc!==null)&&(toc_fun.toc.length>0)){
				for(var w=0;w<toc_fun.toc.length;++w){
					var czy_side_bar_toc=toc_fun.CzySideBarToc(toc_fun.toc[w]);
					var ile_jest=0;
					var li=$(toc_fun.toc[w]).find('li');
					if((li!==null)&&(li.length>0)){
						for(var dd=0;dd<li.length;++dd){
							var element_li=li[dd];
							var tocnumber;var toctext_wartosc;
							if(czy_side_bar_toc){
								tocnumber=$(element_li).find('.vector-toc-numb').first()[0];
								if(!tocnumber){continue;}
								toctext_wartosc=$(element_li).find('.vector-toc-text').first()[0].innerHTML.replace(new RegExp(DodatkiSkrypt.Szereg.Norma.BezZnakowychSpecjalnychElementowychWIndywiduum(tocnumber.outerHTML),"g"),"");
							}else{
								tocnumber=$(element_li).find('.tocnumber').first()[0];
								toctext_wartosc=$(element_li).find('.toctext').first()[0].innerHTML;
							}
							if((tocnumber)&&(toctext_wartosc)){
								var czy_jest=undefined;
								var klasa_naglowka=$(element_strony).find('.klasa_nagłówka');
								if((klasa_naglowka)&&(klasa_naglowka.length>0)&&(klasa_naglowka[ile_jest])){
									var element_klasa_naglowka=klasa_naglowka[ile_jest];
									var headline=$(element_klasa_naglowka).find('.mw-headline').first()[0];
									if((headline)
										&&(headline.parentNode)
										&&(headline.parentNode.tagName.toUpperCase().match(/^H\d+$/))
										&&(headline.parentNode.parentNode!==null)
										&&(headline.parentNode.parentNode.tagName.toUpperCase()=="DIV")
										&&(headline.parentNode.parentNode===element_klasa_naglowka)
									){
										var element_a;
										if(czy_side_bar_toc){
											element_a=tocnumber.parentNode.parentNode;
										}else{
											element_a=tocnumber.parentNode;
										}
										if(element_a.tagName.toUpperCase()=="A"){
											var href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(element_a.getAttribute('href'));
											if(href!==null){
												href=DodatkiSkrypt.Szereg.Napis.PoprawianieNazwyIdLubHref(href,true);
												var id_headline=headline.getAttribute('id');
												if(id_headline!==null){
													id_headline=DodatkiSkrypt.Szereg.Napis.PoprawianieNazwyIdLubHref(id_headline);
													if(href!=id_headline){czy_jest=true;}
												}else{czy_jest=true;}
											}else{czy_jest=true;}
									    }else{czy_jest=true;}
									}else{czy_jest=true;}
								}else{czy_jest=true;}
									
								if(czy_jest===undefined){ile_jest+=1;}
								if((czy_jest===undefined)||(!czy_jest)){
									var element_toctext=DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(toctext_wartosc).replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
									if(stronasubst_tablica_rozdzialow[element_toctext]==null){
										stronasubst_tablica_rozdzialow[element_toctext]=new Array(tocnumber);
									}else{
									   	stronasubst_tablica_rozdzialow[element_toctext].push(tocnumber);
									}
								}
							}
						}
					}
				}
			}
		}
		/**/
		$(document).DodatkiSkryptReady(function(){
			RozwazajNaglowki();
		},null,DodatkiSkrypt.muteks_analiza_stron);
		/**/
		function Strona(strona){
			var strona_re=DodatkiSkrypt.Szereg.Norma.BezZnakowychSpecjalnychElementowychWIndywiduum(strona);
  	    	var re=new RegExp("^\\s*"+strona_re+"\\s*#","g");
  	    	return re;
		}
  	    function CzyArtykulyZNaglowkamiDlaStrony(re){
  	    	for(var s in titles){
  	         	var czy_hash=titles[s].match(re);
  	         	if(czy_hash){
  	         		return true;
  	         	}
  	    	}
  	    	return false;
  	    }
  	    
		for ( var t in titles ) {
			var strona=titles[t].match(/^[^#]*/g).toString();
			var szablon_artykulu;
			var re_strona=Strona(strona);
			var czy_naglowki=CzyArtykulyZNaglowkamiDlaStrony(re_strona);
			if(!czy_naglowki){
				strona=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(strona);
				szablon_artykulu="{{:"+strona+"}}";
			}else{
			/*---------------------------------*/
				
				var rozdzial1=null;
				var re=/^([^#]*)#(.*)$/g;
				if(re.test(titles[t])){
					rozdzial1=titles[t].replace(re,"$2");
					rozdzial1=rozdzial1.replace(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
					rozdzial1=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(rozdzial1);
				}else{rozdzial1="";}
				var rozdzial2=null;
				var tit=titles[parseInt(t)+1];
				if( tit && re.test(tit) && re_strona.test(tit)){
					rozdzial2=tit.replace(re,"$2");
					rozdzial2=rozdzial2.replace(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/<i>/g,"''").replace(/<\/i>/g,"''").replace(/<b>/g,"'''").replace(/<\/b>/g,"'''");
					rozdzial2=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(rozdzial2);
				}else{rozdzial2="";}
				/*---------------------------*/
				szablon_artykulu="{{#invoke:Ramka|Rozwiń|{{#invoke:StronicowyParser|TekstRozdziałuStrony|"+strona+"|"+rozdzial1+"|"+rozdzial2+"}}}}";
				console.log(szablon_artykulu,"TYTAN");
			}
			//szablon_artykulu="{{PrzytnijTekst|"+szablon_artykulu+"}}";
			
			//if(stronasubst_opakuj_kategorie_ze_sortowaniem){
			//	szablon_artykulu="{{OpakujKategorieZeSortowaniem|"+szablon_artykulu+"}}";
			//}
			(function(szablon_artykulu,strona,t){
				DodatkiSkrypt.api.ZadaniaApi({
					action: 'parse',
					format: 'json',
					prop: 'text|categories',
					title: strona,
					text: szablon_artykulu,
					disabletoc: true,
					disablelimitreport: true,
					disablestylededuplication: true,
					contentmodel: 'wikitext',
    			},null,true,t,stronasubst_opakuj_kategorie_ze_sortowaniem,true).DodatkiSkryptThen(function(data){
    				$(document).DodatkiSkryptReady(function(){
    			    	WikikodTitle(data,tabs,titles,tabstrona,tablica_przednaglowkowa_html,stronasubst_latex,stronasubst_mathml);
    				 },null,DodatkiSkrypt.muteks_analiza_stron);
    			}).DodatkiSkryptCatch(function(data){
    				$(document).DodatkiSkryptReady(function(){
    					var strona_hash=titles[t];
						var elements=tabstrona[strona_hash];
    					NiePobranaStronaLubNieIstnieje(strona,strona_hash,elements);
    				},null,DodatkiSkrypt.muteks_analiza_stron);
    			});
			})(szablon_artykulu,strona,t);
		}
	}
	this.AnalizujDalejSzablonSubst=function(element_strony,muteks_szablon,strona_hash){
		var tab_promise=new Array();
		tab_promise.push($(document).DodatkiSkryptReady(function(){
			return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](SzablonSubst,new Array("szablony")).DodatkiSkryptThen(function(){
				return SzablonSubst.szablony.PobierzSzablon(element_strony,undefined,undefined,strona_hash);
			});
		},null,muteks_szablon));
		tab_promise.push($(document).DodatkiSkryptReady(function(){
			$(element_strony).find('.rodzic_szablon_subst_js.szablon_subst_js_zaanalizowany, .szablon_subst_js.szablon_subst_js_zaanalizowany').each(function(i,element){
				var nazwa_strony=element.getAttribute('nazwa_strony');
				var tab_promise=new Array();
				var muteks=new DodatkiSkrypt.Muteks();
				if(nazwa_strony){
					var strona_start=$(element).parents('.strona_start').first();
					if(strona_start.length>0){
						tab_promise.push($(document).DodatkiSkryptReady(function(){
							return DodatkiSkrypt.Strona.AktualizowanieSpisuMateriiStrony(new Array(strona_start[0]),new Array(),nazwa_strony,new Array(),new Array(),new Array(),new Array(),true,stronasubst_latex,stronasubst_mathml,true);
						},null,muteks));
						tab_promise.push($(document).DodatkiSkryptReady(function(){
							return DodatkiSkrypt.Boksy.StickyXY();
						},null,muteks));
					}else{
						tab_promise.push($(document).DodatkiSkryptReady(function(){
							return DodatkiSkrypt.Strona.AktualizowanieSpisuMateriiStrony(undefined,new Array(),nazwa_strony,new Array(),new Array(),new Array(),new Array(),true,stronasubst_latex,stronasubst_mathml,true);
						},null,muteks));
					}
					tab_promise.push($(document).DodatkiSkryptReady(function(){
						return DodatkiSkrypt.Boksy.NotOverflowXY();
					},null,muteks));
					tab_promise.push($(document).DodatkiSkryptReady(function(){
						return DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu();
					},null,muteks));
					tab_promise.push($(document).DodatkiSkryptReady(function(){
						return DodatkiSkrypt.Strona.PrzeIndeksowanieWszystkichTOC(strona_start[0],true);
					},null,muteks));
				}else{
					tab_promise.push($(document).DodatkiSkryptReady(function(){
						return DodatkiSkrypt.Strona.IndeksowanieNapisuWprowadzeniaTekstu();
					},null,muteks));
				}
				tab_promise.push(DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DodatkiSkrypt.Info,new Array("page")).DodatkiSkryptThen(function(){
					return this_zmienna.CzyStronaSubst(element,((nazwa_strony)?(nazwa_strony):(DodatkiSkrypt.Info.page.fullname)),true,muteks);
				}));
				return Promise.all(tab_promise);
			});
		},null,muteks_szablon));
		return Promise.all(tab_promise);
	}
	this.CzyStronaSubst=function(element,aktualna_strona,czy_szablon_subst,muteks_szablon){
		var promise=DodatkiSkrypt.Scribunto.StronicowyParser.CzyStronaSubst(aktualna_strona).DodatkiSkryptThen(function(wikikod){
			var tab_promise=new Array();
			if((wikikod)||(czy_szablon_subst)){
				if(stronasubst_numerowanie_poszczegolnych_rozdzialow){
  		    		tab_promise.push($(document).DodatkiSkryptReady(function(){
  	    				return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](NumerSubst,new Array("numer")).then(function(){
  	    					return DodatkiSkrypt.Scribunto.Nazwy["NAZWAARTYKUŁUKSIĄŻKI"](aktualna_strona).then(function(data){
  	    						return NumerSubst.numer.NumerujRozdzialyArtykulu(element,data,aktualna_strona);
  	    					});
  	    				});
  	    			},null,muteks_szablon));
				};
				if(stronasubst_dymki_nad_linkami_w_ladowanych_dynamicznie_stronach){
  	    			tab_promise.push($(document).DodatkiSkryptReady(function(){
  	    				return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DymkiSubst,new Array("gadgetdymkisubst")).then(function(){
  	    					var tab_promise=new Array();
							var muteks=new DodatkiSkrypt.Muteks();
							tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(element,muteks,aktualna_strona));
							tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(element,muteks,aktualna_strona));
							return Promise.all(tab_promise);
  	    				});
  	    			},null,muteks_szablon));
				}
			}
  	    	return Promise.all(tab_promise).DodatkiSkryptThen(function(){
  	    		if(wikikod){
  	    			return $(document).DodatkiSkryptReady(function(){
  	    				return StronaSubstAnaliza(element,wikikod,aktualna_strona);
  	    			},null,muteks_szablon);
  	    		};
  	    	});
  		});
  		return promise;
	}
};
KategorieSubst.Kategorie=function(){
	var tabela_sortkey_promise=undefined;
	var this_zmienna=this;
	var tab_kategorie_strony_pliki={0:'subcat',1:'page',2:'file',};
	function TablicaJakichWszystkichStron(fullname,jakie_pozycje_kategorii){
		var params = {
			action: 'query',
			list: 'categorymembers',
			cmtitle: fullname,
			cmlimit: 5000,
			cmprop: 'title|sortkeyprefix',
			cmtype: tab_kategorie_strony_pliki[jakie_pozycje_kategorii],	
			format: 'json',
			smaxage: 600,
			maxage: 600,
		};
		return DodatkiSkrypt.api.ZadaniaApi(params).DodatkiSkryptThen(function(data){
			var tab=new Array();
			var category = data.query.categorymembers;
			for(var cat in category){
				var categorymembers=category[cat];
				var title=categorymembers.title;
				var sortkey=categorymembers.sortkeyprefix;
				tab[DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(title)]=sortkey;
			}
			return tab;
		}).DodatkiSkryptCatch(function(error){return Promise.reject(error);});
	}
	function PobierzInfoPliki(plik){
		var params={
			action: 'query',
			format: 'json',
			prop: 'imageinfo',
			iiprop: 'url|size',
			iiurlwidth: 85,
			titles: plik,
			smaxage: 600,
			maxage: 600,
		};
		return DodatkiSkrypt.api.ZadaniaApi(params).DodatkiSkryptThen(function(data){
			var pages=data.query.pages;
			for(var p in pages){
				var imageinfo=pages[p].imageinfo[0];
				var width=imageinfo.width;
				var height=imageinfo.height;
				var size=imageinfo.size;
				var url=((imageinfo.thumburl)?(imageinfo.thumburl.replace(/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g,"//")):(imageinfo.url.replace(/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g,"//")));
				if(size/1024<1){
					var size_new=size+" B";
				}else if(size/1024<1024){
					var size_new=parseInt(size/1024*100)/100+" KB";
				}else if(size/1024/1024<1024){
					var size_new=Math.round(size/1024/1024*100)/100+" MB";
				}else if(size/1024/1024/1024<1024){	
					var size_new=Math.round(size/1024/1024/1024*100)/100+" GB";
				}else{
					var size_new=size+" B";
				}
				return Promise.resolve([width,height,size_new,url])
			}
			return Promise.reject(data);
		}).DodatkiSkryptCatch(function(error){return Promise.reject(error);});
	}
	function IleJakichStron(fullname){
		var params={
			action: 'query',
			format: 'json',
			titles: fullname,
			prop: 'categoryinfo'
		};
		return DodatkiSkrypt.api.ZadaniaApi(params).DodatkiSkryptThen(function(data){
			if((data)&&(data.query)&&(data.query.pages)){
				var pages = data.query.pages;
				for (page in pages){
					var categoryinfo=pages[page].categoryinfo;
					if(categoryinfo){
						return Promise.resolve([categoryinfo.subcats||0,categoryinfo.pages||0,categoryinfo.files||0]);
					}
				}
			}
			return Promise.resolve([0,0,0]);
		}).DodatkiSkryptCatch(function(error){return Promise.reject(error);});
	}
	function IleJestRzeczywistychKategoriowychStronowychOrazPlikowychStron(href,__function){
	    var promise_kategorie_ustawienia=DodatkiSkrypt.DodatkiSkryptUserOption.getAll(href,"CzłonkowieKategorii:");
		return promise_kategorie_ustawienia.DodatkiSkryptThen(function(data_ustawienia){
			console.log("FIFA5")
			if(!data_ustawienia){return;}
				console.log("FIFA6")
				var promise_kategorie=IleJakichStron(href);
         		return promise_kategorie.DodatkiSkryptThen(function(data_faktycznie){
         			console.log("FIFA7");
         			var ile_kategorii=data_faktycznie[0];var ile_stron=data_faktycznie[1];var ile_plikow=data_faktycznie[2];
					var tab_strony=data_ustawienia.split("||");
					for(var i=0;i<tab_strony.length;++i){
						var strona;var sortkey;var numer_porzadku;var przestrzen;var nazwa;
						var strona_sort=tab_strony[i];
						var tab_strona_sort=strona_sort.split("|");
						var kategoria_strona_plik=tab_strona_sort[0];
         				var czy_kategoria=/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g.test(kategoria_strona_plik);
         				if(czy_kategoria){
         					++ile_kategorii;
         				}else{
         					var czy_plik=/^[Pp][Ll][Ii][Kk]:/g.test(kategoria_strona_plik);
         					if(czy_plik){
         						++ile_plikow;
         					}else{
         						++ile_stron;
         					}
         				}
					}
					return __function(ile_kategorii,ile_stron,ile_plikow)
         		});
		});
	}
	function WstawPozycjeNaStronieKategoriiWedleDanychStron(fullname,numer_porzadku,wezel,przestrzen,pozycja,nazwa,czy_zagniezdzone,media,kategorie){
		if(!tabela_sortkey_promise){tabela_sortkey_promise=new Array();};
		if(!tabela_sortkey_promise[fullname]){tabela_sortkey_promise[fullname]=new Array();};
		tabela_sortkey_promise[fullname][numer_porzadku]=(!tabela_sortkey_promise[fullname][numer_porzadku])?(TablicaJakichWszystkichStron(DodatkiSkrypt.Info.page.fullname,0)):tabela_sortkey_promise[fullname][numer_porzadku];
		return tabela_sortkey_promise[fullname][numer_porzadku].DodatkiSkryptThen(function(tabela_sortkey){
			if(!czy_zagniezdzone){
				if(numer_porzadku!=2){
					var category_a=$(wezel).find('> ul:last-child > li').find(' > .CategoryTreeSection > .CategoryTreeItem > span.CategoryTreeBullet + a, > .CategoryTreeSection > .CategoryTreeItem > span.CategoryTreeEmptyBullet + a');
				}else{
					var category_a=$(media||kategorie).find(' > ul.gallery > li.gallerybox > div.gallerytext > a.galleryfilename');
				}
			}else{
				var category_a=$(wezel).find(' > .CategoryTreeSection > .CategoryTreeItem > span.CategoryTreeBullet + a, > .CategoryTreeSection > .CategoryTreeItem > span.CategoryTreeEmptyBullet + a');
				console.log("MAMUT1",category_a,wezel)
			}
			var tab_promise=new Array();
			var muteks=new DodatkiSkrypt.Muteks();
			var czy_koniec=false;
			for(var p=0;p<category_a.length;++p){
				var element_a=category_a[p];
				var pozycja_a=element_a.innerHTML;
				if(pozycja_a==pozycja){
					if(!czy_zagniezdzone){
						var li=$(element_a).closest('li');
					}else{
						var li=$(element_a).closest('div.CategoryTreeSection');
						console.log("MAMUT2")
					}
					$(li).remove();
				}
			}
			for(var p=0;p<=category_a.length;++p){
				(function(p,category_a){
					console.log("MAMUT22");
					if(numer_porzadku==0){
						if(category_a.length==0){
							var modul1=(!czy_zagniezdzone)?DodatkiSkrypt.UruchomPobranePliki('ext.categoryTree.styles'):null;
							var modul2=(!czy_zagniezdzone)?DodatkiSkrypt.UruchomPobranePliki('ext.categoryTree'):null;
						}
					}else if(numer_porzadku==2){
						var modul1=(!czy_zagniezdzone)?DodatkiSkrypt.UruchomPobranePliki('mediawiki.page.gallery.styles'):null;
						var modul2=null;//=DodatkiSkrypt.UruchomPobranePliki('mmv');
					}
					console.log("MAMUT33")
					tab_promise.push($(document).DodatkiSkryptReady(function(){
						console.log("MAMUT3")
						if(czy_koniec){return;}
						console.log("MAMUT4")
						var category_li;
						var promise_strony=Promise.all([null,null,modul1,modul2]);
						if(p<category_a.length){
							var element_a=category_a[p];
							var pozycja_a=element_a.innerHTML;
							if(numer_porzadku==1){
								var promise_przestrzen=DodatkiSkrypt.Scribunto.Nazwy.NAZWAPRZESTRZENI(pozycja_a);
								var promise_nazwa=DodatkiSkrypt.Scribunto.Nazwy.NAZWASTRONY(pozycja_a);
							}else{
								var promise_przestrzen=Promise.resolve("");
								var promise_nazwa=Promise.resolve(pozycja_a);
							}
							promise_strony=Promise.all([promise_przestrzen,promise_nazwa,modul1,modul2]).DodatkiSkryptThen(function(data){
								var przestrzen_strony=data[0];var nazwa_strony=data[1];
								var nazwa_a=(tabela_sortkey[(((numer_porzadku==0)||(numer_porzadku==2))?(przestrzen+":"):"")+pozycja_a]||"")+nazwa_strony+((numer_porzadku==1	)?przestrzen_strony:(""));
								var tabs=(new Array(nazwa,nazwa_a)).sort();
								if(nazwa==tabs[0]){
									category_li=$(element_a).closest((!czy_zagniezdzone)?('li'):('div.CategoryTreeSection'));
									console.log("MAMUT4")
								}
								return Promise.resolve(data);
							});
						}
						console.log("MAMUT41")
						return promise_strony.DodatkiSkryptThen(function(data){
							console.log("MAMUT5")
							var przestrzen_strony=data[0];var nazwa_strony=data[1];
							if((category_a.length==p)||(category_li)){
								console.log("MAMUT6")
								var element_wezla;
								var strona=(((przestrzen)&&(przestrzen!=""))?(przestrzen+":"):"")+pozycja;
								if(numer_porzadku==0){
									var promise_wezel=IleJakichStron(przestrzen+":"+pozycja);
								}else{
									var promise_wezel=Promise.resolve();
								}
								return promise_wezel.DodatkiSkryptThen(function(data){
									if(numer_porzadku==0){
										var ile_kategorii=data[0];var ile_stron=data[1];var ile_plikow=data[2];
										var tabela_napis=new Array();
										if(ile_kategorii>0){tabela_napis.push(ile_kategorii+" kat.");};
										if(ile_plikow){tabela_napis.push(ile_plikow+" str.");};
										if(ile_stron>0){tabela_napis.push(ile_stron+" pl.")};
										var napis;
										if(tabela_napis.length>0){napis=tabela_napis.join(", ");}else{napis="pusta";};
										napis="("+napis+")";
								        var category_tree_section=mw.html.element('div',{'class':'CategoryTreeSection'},
								                new mw.html.Raw(mw.html.element('div',{'class':'CategoryTreeItem'},
								                    new mw.html.Raw(((tabela_napis.length>0)?(mw.html.element('span',{'class':'CategoryTreeBullet'},
								                        new mw.html.Raw(mw.html.element('span',{'class':'CategoryTreeToggle CategoryTreeToggleHandlerAttached','data-ct-title'	:DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(pozycja),'data-ct-state':"collapsed" ,'title':'rozwiń'},"")+" "))):(mw.html.element('span',{'class':'CategoryTreeEmptyBullet'},"")+" "))
							                                           +mw.html.element('a',{'href':'/wiki/'+strona,'title':strona},pozycja)+"‎ "
							                                              +mw.html.element('span',{'title':'Zawiera '+ile_kategorii+' podkategorii, '+ile_stron+' stron i '+ile_plikow+' plików','dir':'ltr'},napis))
									                            )+mw.html.element('div',{'class':'CategoryTreeChildren','style':'display:none'},"")));
									    if(!czy_zagniezdzone){
									    	element_wezla=mw.html.element('li',{},new mw.html.Raw(category_tree_section));
									    }else{
									    	element_wezla=category_tree_section;
									    }
										}else if(numer_porzadku==1){
											element_wezla=mw.html.element('li',{},new mw.html.Raw(mw.html.element('a',{'href':"/wiki/"+strona,'title':strona},strona)));
										}else{
											return PobierzInfoPliki(strona).DodatkiSkryptThen(function(data){
												var width=data[0];var height=data[1];size=data[2];url=data[3];
												if(width>height){
													var new_height=parseInt((height/width)*120);
													var src_width=120;
													var src_height=new_height;
												}else{
													var new_width=parseInt((width/height)*120);
													src_width=new_width;
													src_height=120;
												}
												element_wezla=mw.html.element('li',{'class':'gallerybox','style':'155px'},new mw.html.Raw(
														mw.html.element('div',{'class':'thumb','style':'width:150px;height:150px;'},
															new mw.html.Raw(mw.html.element('span',{'typeof':'mw:File'},
																new mw.html.Raw(mw.html.element('a',{'class':'"mw-file-description"','href':'/wiki/'+strona},
																	new mw.html.Raw(mw.html.element('img',
																		{
																			'alt':strona,
																			'src':url,
																			'decoding':"async",
																			'loading':'lazy',
																			'width':src_width,
																			'height':src_height,
																			"data-file-width":width,
																			"data-file-height":height
																		})))))
															))+mw.html.element('div',{'class':'gallerytext'},
															       new mw.html.Raw(mw.html.element('a',{'class':'galleryfilename galleryfilename-truncate','href':'/wiki/'+strona},pozycja)+width+' × '+height+'; '+size+mw.html.element('br')))
														)
													);
										});
									}
								}).DodatkiSkryptThen(function(){
									if(category_li){
										var div=document.createElement('div');
										div.innerHTML=element_wezla;
										$(category_li[0]).before(div.firstChild);
										czy_koniec=true;
									}else{
										if(category_a.length>0){
											var div=document.createElement('div');
											div.innerHTML=element_wezla;
											var ul=$(category_a).closest((!czy_zagniezdzone)?('ul'):('div.CategoryTreeChildren'));
											$(ul).append(div.firstChild);
											czy_koniec=true;
										}else{
											console.log("MAMUT666")
											if(!czy_zagniezdzone){
												var element_wezla_pustego=mw.html.element('ul',((numer_porzadku==2)?{'class':'gallery mw-gallery-traditional'}:{}),new mw.html.Raw(element_wezla));
											}else{
												var element_wezla_pustego=element_wezla;
												$(wezel).find(' > .CategoryTreeNotice').remove();
											}
											var div=document.createElement('div');
											div.innerHTML=element_wezla_pustego;
											if(numer_porzadku!=2){
												$(wezel).append(div.firstChild);
											}else{
												$(kategorie||media).append(div.firstChild);
											}
											czy_koniec=true;
										}
									   }
								});
							}
						});
					},null,muteks));
				})(p,category_a);
			}
			return Promise.all(tab_promise);
		})
	}
	this.DodawanieDoStrukturyStronyKategoriiAlternatywneStrony=function(pozycja,przestrzen,sortkey){
		var ns_14=$('body.ns-14');
		if(ns_14.length>0){
			var tab={"Kategoria":0,"Plik":2,};
			var numer_porzadku=(tab[przestrzen]!=undefined)?tab[przestrzen]:1;
			pozycja=pozycja.charAt(0).toUpperCase()+pozycja.slice(1);
			
			var id=((numer_porzadku==0)?('mw-subcategories'):((numer_porzadku==1)?('mw-pages'):('mw-category-media')));
			var element_category_generated=document.querySelector('#mw-content-text > .mw-category-generated');
			var pagename=DodatkiSkrypt.Info.page.pagename;
			if(!element_category_generated){
				element_category_generated=mw.html.element('div',{'class':'mw-category-generated','lang':'pl','dir':'ltr'},
			                    new mw.html.Raw(mw.html.element('div',{'id':id,},
			                         new mw.html.Raw(mw.html.element('h2',{},((numer_porzadku==0)?("Podkategorie"):((numer_porzadku==1)?("Strony w kategorii „"+pagename+"”"):("Pliki w kategorii „"+pagename+"”"))))+mw.html.element('p',{},((numer_porzadku==0)?("Poniżej wyświetlono 0 spośród wszystkich 0 podkategorii tej kategorii."):((numer_porzadku==1)?("Poniżej wyświetlono 0 spośród wszystkich 0 stron tej kategorii."):("Poniżej wyświetlono 0 spośród wszystkich 0 plików w tej kategorii. "))))+((numer_porzadku<2)?(mw.html.element('div',{'class':'mw-content-ltr','lang':'pl','dir':'ltr',},new mw.html.Raw(mw.html.element('div',{'class':'mw-category'},"")))):(""))))
			                     )
			              );
			    var element_div=document.createElement('div');
			    element_div.innerHTML=element_category_generated;
				var mw_content_text=document.querySelector('#mw-content-text');
				var element=document.querySelector('#mw-content-text > .mw-parser-output + :not(.mw-parser-output)');
				if(element){
			 		element_category_generated=$(element).DodatkiSkryptBefore(element_div.firstChild)[0];
				}else{
			 		element_category_generated=$(mw_content_text).DodatkiSkryptAppend(element_div.firstChild)[0];
				}
				
			}else{
				var sub=$(element_category_generated).children('p:only-child');
				$(sub).remove();
				var subcategories=document.querySelector('#mw-content-text > .mw-category-generated > #mw-subcategories');
				var pages=document.querySelector('#mw-content-text > .mw-category-generated > #mw-pages');
				var media=document.querySelector('#mw-content-text > .mw-category-generated > #mw-category-media');
				var kategorie=((numer_porzadku==0)?(subcategories):((numer_porzadku==1)?(pages):(media)));
				if(!kategorie){
					var kategorie=mw.html.element('div',{'id':id,},
			        	   new mw.html.Raw(mw.html.element('h2',{},((numer_porzadku==0)?("Podkategorie"):((numer_porzadku==1)?("Strony w kategorii „"+pagename+"”"):("Pliki w kategorii „"+pagename+"”"))))+mw.html.element('p',{},((numer_porzadku==0)?("Poniżej wyświetlono 0 spośród wszystkich 0 podkategorii tej kategorii."):((numer_porzadku==1)?("Poniżej wyświetlono 0 spośród wszystkich 0 stron tej kategorii."):("Poniżej wyświetlono 0 spośród wszystkich 0 plików w tej kategorii."))))+((numer_porzadku<2)?(mw.html.element('div',{'class':'mw-content-ltr','lang':'pl','dir':'ltr',},new mw.html.Raw(mw.html.element('div',{'class':'mw-category'},"")))):(""))));
			    	var element_div=document.createElement('div');
			    	element_div.innerHTML=kategorie;
			    	if(numer_porzadku==0){
			    		var node_firstchild=element_category_generated.firstChild;
			    		if(node_firstchild){
			    			kategorie=$(element_category_generated.firstChild).DodatkiSkryptBefore(element_div.firstChild);
			    		}else{
			    			kategorie=$(element_category_generated).DodatkiSkryptAppend(element_div.firstChild);
			    			console.log(kategorie)
			    		}
			    	}else if(numer_porzadku==1){
			    		if(media){
			    			kategorie=$(media).DodatkiSkryptBefore(element_div.firstChild);
			    		}else{
			    			kategorie=$(element_category_generated).DodatkiSkryptAppend(element_div.firstChild);
			    			console.log(kategorie)
			    		}
			    	}else{
			    		kategorie=$(element_category_generated).DodatkiSkryptAppend(element_div.firstChild);
			    		console.log(kategorie);
			    	}
				}
			}
			$('#mw-content-text > .mw-category-generated > #'+id+' > p').first().each(function(i,element){
				element.innerHTML=element.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,function(a,p1,l1,p2,l2,p3){
					return p1+(parseInt(l1)+1)+p2+(parseInt(l2)+1)+p3;
				})
			})
			var nazwa=sortkey+pozycja;
			var wezel;
			if(numer_porzadku!=2){
				var alfabet=(new Array("A","Ą","B","C","Ć","D","E","Ę","F","G","H","I","J","K","L","Ł","M","N","Ń","O","Ó","P","Q","R","S","Ś","T","U","V","W","X","Y","Z","Ź","Ż")).sort().join("");
				var pierwsza_litera=nazwa.charAt(0).toUpperCase();
				var pozycja_litera=undefined;
				var category_group_div=$(element_category_generated).find('> #'+id+' > *:last-child > .mw-category > .mw-category-group');
				if(category_group_div.length>0){
					var category_group_h3=$(category_group_div).find('> h3');
					for(var i=0;i<category_group_h3.length;++i){
						var element=category_group_h3[i];
						var litera=element.innerHTML;
						if(litera==pierwsza_litera){
							pozycja_litera=litera;
							break;
						}
					}
				}
				(function(pierwsza_litera){
					for(var p=0;p<=category_group_div.length;++p){
						if(p<category_group_div.length){
							var h3=$(category_group_div[p]).find('> h3')[0];
							var h3_tekst=h3.innerHTML;
							for(var i=0;i<alfabet.length;++i){
								var litera=alfabet.charAt(i);
								var tabs=(new Array(litera,pierwsza_litera)).sort();
								if(((!pozycja_litera)&&(litera==tabs[1]))||(pozycja_litera)&&(litera==pierwsza_litera)){
									var tabs=(new Array(h3_tekst,pierwsza_litera)).sort();
									if((!pozycja_litera)&&(pierwsza_litera==tabs[0])){
										var element_wezel=category_group_div[p];
										var __wezel=mw.html.element('div',{'class':'mw-category-group',},new mw.html.Raw(mw.html.element('h3',{'class':'is-only-whitespace'},litera)));
										wezel=document.createElement('div');
										wezel.innerHTML=__wezel;
										if(element_wezel){
											wezel=$(element_wezel).DodatkiSkryptBefore(wezel.firstChild);
											console.log(wezel,"TYTAN2");
											return;
										}else{
											wezel=$(h3).parent().DodatkiSkryptAppend(wezel.firstChild);
											return;
										}
									}else if((pozycja_litera)&&(h3_tekst==pierwsza_litera)){
										wezel=$(category_group_div[p]);
										return;
									}
								}
							}
						}else{
							var pierwsza_litera=nazwa.charAt(0).toUpperCase();
							var __wezel=mw.html.element('div',{'class':'mw-category-group',},new mw.html.Raw(mw.html.element('h3',{'class':'is-only-whitespace'},pierwsza_litera)));
							wezel=document.createElement('div');
							wezel.innerHTML=__wezel;
							var category_group_all=$(element_category_generated).find('> #'+id+' > *:last-child > .mw-category').first()[0];
							wezel=$(category_group_all).DodatkiSkryptAppend(wezel.firstChild);
							return;
						}
					}
				})(pierwsza_litera);
			}
			/**/;
			return WstawPozycjeNaStronieKategoriiWedleDanychStron(DodatkiSkrypt.Info.page.fullname,numer_porzadku,wezel,przestrzen,pozycja,nazwa,false,media,kategorie);
		};
	}
	this.AktualizacjeLiczbKategorioweStronoweOrazPlikoweKategoriiNaStronieKategorii=function(item){
		var categoryTreebullet=((item==null)?$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories > * > .mw-category  > .mw-category-group > ul > li > .CategoryTreeSection > .CategoryTreeItem'):$(item).siblings('.CategoryTreeChildren').children(".CategoryTreeSection").children(".CategoryTreeItem"));
		console.log((item==null),categoryTreebullet,"FIFA0")
		var tab_promise=new Array();
		var muteks=new DodatkiSkrypt.Muteks();
		var czy_modyfikacje_kategorii=false;
		for(var i=0;i<categoryTreebullet.length;++i){
			(function(i,categoryTreebullet){
				var element=categoryTreebullet[i];
				console.log(element,"FIFA2")
				tab_promise.push($(document).DodatkiSkryptReady(function(){
					var element_a=$(element).find('a').first();
					console.log(element_a,"FIFAZZ")
					var href=$(element_a).attr('href');
					href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(href,true);
					console.log(href,"FIFA4")
					var href=href.replace(/^\/wiki\//g,"");
					return IleJestRzeczywistychKategoriowychStronowychOrazPlikowychStron(href,function(ile_kategorii,ile_stron,ile_plikow){
						if(ile_kategorii>0){
							var str=$(element).siblings('.CategoryTreeChildren');
							var display=window.getComputedStyle(str[0], null).getPropertyValue("display");
				        	var str_kategoria=mw.html.element('span',{'class':'CategoryTreeBullet'},
				        		new mw.html.Raw(mw.html.element('span',{'class':'CategoryTreeToggle CategoryTreeToggleHandlerAttached','data-ct-title':href.replace(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g,"").replace(/[\s_]+/g,"_"),'data-ct-state':((display!="none")?'expanded':"collapsed"),'title':((display!="none")?'zwiń':"rozwiń")},new mw.html.Raw(""))+" "));
			    	    }else{
			        		var str_kategoria=mw.html.element('span',{'class':'CategoryTreeEmptyBullet'},"")
			        	}
				        var span_full=$(element_a).parent().find('span').first();
				        if((span_full!==null)&&(span_full.length>0)){
				        	var str=$(span_full).parent();
				        	
				        	var id=$(str).find('.CategoryTreeToggle');
				    		var data=$(id).data("ct-loaded");
							var aktualizacja=$(id).data("ct-aktualizacja");	
							
				        	span_full[0].outerHTML=str_kategoria;
				        	
				        	var id=$(str).find('.CategoryTreeToggle');
				        	$(id).data("ct-loaded",data);
				        	$(id).data("ct-aktualizacja",((data)?true:aktualizacja));
				        }
						var dzieci=$(element).children();
						if(dzieci.length>2){
							var span_ile=dzieci.last();
         					$(span_ile).attr({'title':"Zawiera "+ile_kategorii+" podkategorie, "+ile_stron+" stron i "+ile_plikow+" plików",'dir':'ltr'});
							if(parseInt(ile_kategorii)+parseInt(ile_stron)+parseInt(ile_plikow)>0){
				    			var tab=new Array();
				    			if(ile_kategorii>0){
				        			tab[tab.length]=ile_kategorii+" kat.";
								}
								if(ile_stron>0){
					    			tab[tab.length]=ile_stron+" str.";
								}
								if(ile_plikow>0){
				    				tab[tab.length]=ile_plikow+" pl.";
				    			}
								span_ile[0].innerHTML="("+tab.join(", ")+")";
							}else{
								span_ile[0].innerHTML="(pusta)";
							}
						}
						czy_modyfikacje_kategorii=true;
					});
				},null,muteks));
			})(i,categoryTreebullet);
		}
		return Promise.all(tab_promise).DodatkiSkryptThen(function(){
			return Promise.resolve(czy_modyfikacje_kategorii);
		});
	}
	var muteks_dodawania=new DodatkiSkrypt.Muteks();
	this.DodawanieDoStrukturyStronyKategoriiAlternatywneStronyWedleOpcjiUstawieniowych=function(item){
		return $(document).DodatkiSkryptReady(function(){
			var ns_14=$('body.ns-14');
			if(ns_14.length>0){
				var muteks_zdarzenia=new DodatkiSkrypt.Muteks();
				var tab_promise_zdarzenia=new Array();
				var czy_modyfikacje_kategorii=undefined;
				tab_promise_zdarzenia.push($(document).DodatkiSkryptReady(function(){
					if(!item){
						var fullname=DodatkiSkrypt.Info.page.fullname;
					}else{
						var element_a=$(item).find('a').first();
						var href=$(element_a).attr('href');
						href=DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(href,true);
						var fullname=href.replace(/^\/wiki\//g,"");
					}
					var wartosc=DodatkiSkrypt.DodatkiSkryptUserOption.getAll(fullname,"CzłonkowieKategorii:");
					console.log(fullname,href,"HAHA6");
					return wartosc.DodatkiSkryptThen(function(data){
						console.log(data,"HAHA5");
						if(!data){return;}
						var tab_strony=data.split("||");
						var muteks=new DodatkiSkrypt.Muteks();
						var tab_promise=new Array();
						console.log("HAHA4")
						for(var i=0;i<tab_strony.length;++i){
							(function(i,tab_strony){
								var strona;var sortkey;var numer_porzadku;var przestrzen;var nazwa;
								tab_promise.push($(document).DodatkiSkryptReady(function(){
									var strona_sort=tab_strony[i];
									var tab_strona_sort=strona_sort.split("|");
									strona=tab_strona_sort[0];
									sortkey=tab_strona_sort[1]||"";
									var promise_przestrzen=DodatkiSkrypt.Scribunto.Nazwy.NAZWAPRZESTRZENI(strona);
									var promise_pozycja=DodatkiSkrypt.Scribunto.Nazwy.NAZWASTRONY(strona);
									console.log("HAHA3")
									return Promise.all([promise_przestrzen,promise_pozycja]).DodatkiSkryptThen(function(data){
										przestrzen=data[0];pozycja=data[1];
										if(!item){
											return this_zmienna.DodawanieDoStrukturyStronyKategoriiAlternatywneStrony(pozycja,przestrzen,sortkey);
										}else{
											var tab={"Kategoria":0,"Plik":2,};
											numer_porzadku=(tab[przestrzen]!=undefined)?tab[przestrzen]:1;
											console.log("HAHA2")
											if(numer_porzadku==0){
												var wezel=$(item).siblings('.CategoryTreeChildren');
												console.log("HAHA1")
												return WstawPozycjeNaStronieKategoriiWedleDanychStron(fullname,0,wezel,przestrzen,pozycja,sortkey+pozycja,true,null,null);
											}
										}
									});
								},null,muteks));
								tab_promise.push($(document).DodatkiSkryptReady(function(){
									var tab={"Kategoria":0,"Plik":2,};
									numer_porzadku=(tab[przestrzen]!=undefined)?tab[przestrzen]:1;
									if((!item)||(numer_porzadku==0)){
										czy_modyfikacje_kategorii=((czy_modyfikacje_kategorii)||(numer_porzadku==0));
										console.log(czy_modyfikacje_kategorii,numer_porzadku,"GIGA1")
										return tabela_sortkey_promise[fullname][numer_porzadku].DodatkiSkryptThen(function(tablica_sortkey){
											tablica_sortkey[strona]=sortkey;
										});
									}
								},null,muteks));
							})(i,tab_strony);
						}
						return Promise.all(tab_promise);
					});
				},null,muteks_zdarzenia));
				tab_promise_zdarzenia.push($(document).DodatkiSkryptReady(function(){
					console.log(czy_modyfikacje_kategorii,"GIGA2")
					return this_zmienna.AktualizacjeLiczbKategorioweStronoweOrazPlikoweKategoriiNaStronieKategorii(item).DodatkiSkryptThen(function(data){
						czy_modyfikacje_kategorii=data||czy_modyfikacje_kategorii;
						console.log(czy_modyfikacje_kategorii,"GIGA3")
					});
				},null,muteks_zdarzenia));
				tab_promise_zdarzenia.push($(document).DodatkiSkryptReady(function(){
					console.log(czy_modyfikacje_kategorii,"GIGA4")
					//if(czy_modyfikacje_kategorii){
						//var oryginal=document.querySelector('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories');
						//var tab=new Array();
						//$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeToggle, body #mw-content-text .mw-parser-output .CategoryTreeTag 	.CategoryTreeToggle').each(function(i,element){
						//	tab[i]=new Array($(element).data("ct-loaded"),$(element).data("ct-aktualizacja"));
						//});
						//$(oryginal).DodatkiSkryptCloneNode();
						//$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeToggle, body #mw-content-text .mw-parser-output .CategoryTreeTag 	.CategoryTreeToggle').each(function(i,element){
						//	$(element).data("ct-loaded",tab[i][0]);
							//$(element).data("ct-aktualizacja",tab[i][1]);
						//});
						$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeToggle, body #mw-content-text .mw-parser-output .CategoryTreeTag 	.CategoryTreeToggle').off('click');
						DodatkiSkrypt.requireFile('ext.categoryTree')();
				//}
				},null,muteks_zdarzenia));
				console.log("TYTAN888")
					return Promise.all(tab_promise_zdarzenia).DodatkiSkryptThen(function(){
					return czy_modyfikacje_kategorii;
				});
			}
		},null,muteks_dodawania);
	}
	this.UstawZdarzeniaStronKategoriiWedleWstawianychPozycji=function(){
		var muteks=new DodatkiSkrypt.Muteks();
		function FunkcjaWstawianiaZdarzeniowychElementowychFunkcyjnych(){
			var id=$(this);
			return $(document).DodatkiSkryptReady(function(){
				var item=$(id).parent().parent();
				var promise=new Promise(function(resolve,reject){
					function Czekaj(){
						if($(id).data('ct-loaded')){resolve();}else{setTimeout(Czekaj,0);};
					}
					Czekaj();
				});
				promise.DodatkiSkryptThen(function(){
					if(!$(id).data('ct-aktualizacja')){
						$(id).data('ct-aktualizacja',true);
					
						var czas=0;
						function categoryTreeChildrenFun(resolve,reject){
                			var notice=$(id).parents('.CategoryTreeItem').siblings('.CategoryTreeChildren').children('.CategoryTreeNotice');
                				if((notice!==null)&&(notice.length>0)){
                					var komunikat=notice[0].innerHTML;
                					if((komunikat=="nic nie znaleziono")||(komunikat=="brak podkategorii")){
                						resolve("Dobrze");
                						return;
                					}
                				}
                			var el=$(id).parents('.CategoryTreeItem').siblings('.CategoryTreeChildren').children('.CategoryTreeSection');
                				if ((el!==null)&&(el.length>0)){resolve("Dobrze");}else{
	                				if(czas>=30000){reject("Dobrze");}else{
    	            					setTimeout(function(){categoryTreeChildrenFun(resolve,reject);},300);
        	        					czas+=300;
            	    				}
                				}
                		}
                		$(document).DodatkiSkryptPromise(categoryTreeChildrenFun).DodatkiSkryptThen(function(){
							$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeToggle, body #mw-content-text .mw-parser-output .CategoryTreeTag .CategoryTreeToggle').off('click');
							return this_zmienna.DodawanieDoStrukturyStronyKategoriiAlternatywneStronyWedleOpcjiUstawieniowych(item).DodatkiSkryptThen(function(data){
								$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeToggle, body #mw-content-text .mw-parser-output .CategoryTreeTag .CategoryTreeToggle').on('click', FunkcjaWstawianiaZdarzeniowychElementowychFunkcyjnych);
								console.log("AAA")
							});
                		});
					}
				});
			},null,muteks);
		}
		$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeToggle, body #mw-content-text .mw-parser-output .CategoryTreeTag .CategoryTreeToggle').on('click', FunkcjaWstawianiaZdarzeniowychElementowychFunkcyjnych);
	}
}
/*StronicowyParser.LinkiKategorii*/
var promise=new Promise(function(resolve,reject){
	function Czekaj(){
		if(window.DodatkiSkrypt){
			resolve(window.DodatkiSkrypt);
		}else{
			setTimeout(Czekaj,0);
		}
	}	
	Czekaj();
});
promise.then(function(DodatkiSkrypt){
	return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](window,new Array("gConfig")).DodatkiSkryptThen(function(){
		NumerSubst.numer=new NumerSubst.NumerowanieNaglowkow();
		DymkiSubst.gadgetdymkisubst=new DymkiSubst.GadgetDymkiSubst();
		SzablonSubst.szablony=new SzablonSubst.SzablonSubst();
		StronaSubst.analiza_stron_zbiorczych=new StronaSubst.WyswietlStronyKsiazki();
		/**/
		czy_nie_gconfig=true;
		/**/
		return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DodatkiSkrypt.Info,new Array("page")).DodatkiSkryptThen(function(){
			DodatkiSkrypt.Scribunto.StronicowyParser.CzyStronaSubst().DodatkiSkryptThen(function(wikikod){
				var muteks_strona=new DodatkiSkrypt.Muteks();
				/**/
				if(!wikikod){
					$(document).DodatkiSkryptReady(function(){
						return NumerSubst.numer.NumerujRozdzialyArtykulu();
					},null,muteks_strona);
				}
				$(document).DodatkiSkryptReady(function(){
					var tab_promise=new Array();
					var parser_output=$("#mw-content-text .mw-parser-output");
					var muteks=new DodatkiSkrypt.Muteks();
					tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawZdarzeniaKomunikatuInfo(parser_output,muteks));
					tab_promise.push(DymkiSubst.gadgetdymkisubst.UstawTagiIKlasyKomunikatuInfo(parser_output,muteks));
					return Promise.all(tab_promise);
				},null,muteks_strona);
				$(document).DodatkiSkryptReady(function(){
					return SzablonSubst.szablony.PobierzSzablonyStronyNieZbiorczej();
				},null,muteks_strona);	
				if(wikikod){
					$(document).DodatkiSkryptReady(function(){
						var tab_promise=new Array();
						var aktualna_strona=DodatkiSkrypt.Info.page.fullname;
						var id_numerowanie=$('#mw-content-text .mw-parser-output');
						id_numerowanie.each(function(i,element){
							var str_element=$(element).find('.klasa_książki');
							if(str_element.length>0){
								str_element.each(function(i,element){
									tab_promise.push(StronaSubst.analiza_stron_zbiorczych.CzyStronaSubst(element,aktualna_strona,false,DodatkiSkrypt.muteks_analiza_stron));
								});	
							}
							var tab=new Array();
							$(".rozdział_książki").each(function(i,element){
								var str_rozdzial=$('.klasa_książki').find(element);
								if(str_rozdzial.length==0){
									var parent=$(element).parent();
									var tak=false;
									for(var p in tab){
										if(tab[p]==parent[0]){
											tak=true;
										}
									}
									if(!tak){
										tab.push(parent[0]);
									}
								}	
							});
							tab.forEach(function(element){
								tab_promise.push(StronaSubst.analiza_stron_zbiorczych.CzyStronaSubst(element,aktualna_strona,false,DodatkiSkrypt.muteks_analiza_stron));
							});
						});
						return Promise.all(tab_promise);
					},null,muteks_strona);
				}
				$(document).DodatkiSkryptReady(function(){
					DodatkiSkrypt.DodatkiSkryptUserOption.setAll("Kategoria:Szablony z niejawnie błędnymi parametrami","Kategoria:Szablony - błędy szablonów||Kategoria:Kategorie||Kategoria:Kategorie dla kategorii|Błędy p||Plik:Burza_mozgu.png||Plik:C.pdf|Ag||Plik:Zanurkuj w Pythonie.pdf|Ah","CzłonkowieKategorii:");
					DodatkiSkrypt.DodatkiSkryptUserOption.setAll("Kategoria:Szablon kategoria - nieistniejąca kategoria","Wikipedysta:Persino/brudnopis1||Wikipedysta:Persino/brudnopis||Kategoria:Szablony - błędy szablonów||Kategoria:Kategorie||Plik:Burza_mozgu.png||Plik:C.pdf|Ag||Plik:Zanurkuj w Pythonie.pdf|Ah","CzłonkowieKategorii:");

					var kategorie_strony=new KategorieSubst.Kategorie();
					var muteks_kategorie=new DodatkiSkrypt.Muteks();
					$(document).DodatkiSkryptReady(function(){
						return kategorie_strony.DodawanieDoStrukturyStronyKategoriiAlternatywneStronyWedleOpcjiUstawieniowych().DodatkiSkryptThen(function(){
							var tab_promise=new Array();
							$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeSection > .CategoryTreeItem').each(function(i,element){
								tab_promise.push(kategorie_strony.DodawanieDoStrukturyStronyKategoriiAlternatywneStronyWedleOpcjiUstawieniowych(element,true));
							});
							return Promise.all(tab_promise);
						});
					},null,muteks_kategorie);	
					$(document).DodatkiSkryptReady(function(){
						return kategorie_strony.UstawZdarzeniaStronKategoriiWedleWstawianychPozycji();
					},null,muteks_kategorie);
				},null,muteks_strona);
			});
		});
	});
});
var DodatkiStrona=new Array();
DodatkiStrona.NumerSubst=NumerSubst;
DodatkiStrona.DymkiSubst=DymkiSubst;
DodatkiStrona.SzablonSubst=SzablonSubst;
DodatkiStrona.StronaSubst=StronaSubst;
DodatkiStrona.KategorieSubst=KategorieSubst;
window.DodatkiStrona=DodatkiStrona;
})(mediaWiki,jQuery);