Wikipedysta:Persino/Gadget-DodatkiSkrypt3.js/Boksy.js

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.
/*Funkcje w przestrzeni nazw DodatkiSkrypt*/
DodatkiSkrypt.Boksy=new Array();
DodatkiSkrypt.Boksy.NapisWprowadzeniaTekstu=function(){
/* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */
    function SzablonNapisWprowadzeniaTekstu(jak_wstawiac){
    	var strona_start=((jak_wstawiac)?($('body.action-view, body.action-submit').find('#mw-content-text .mw-parser-output .strona_start')):($('body.action-view, body.action-submit').find('#mw-content-text .mw-parser-output')));
    	strona_start.each(function(i,element){
    		var mojnaglowek=$(element).find('.mójNagłówek');
    		var naglowki_inne=$(element).find('.strona_start').find(mojnaglowek);
    		if(naglowki_inne.length==0){
    			var stopka=mojnaglowek.find('.mojaStopka');
    			if(stopka.length==0){
    				var moja_stopka=jak_wstawiac?$(element).find('.strona').first().find(' > .mojaStopka').first():$('#content .mojaStopka');
    				moja_stopka.each(function(i,element){
    					if(jak_wstawiac){
    						var stopka=element.cloneNode(true);
    						mojnaglowek.find(' > div:first-child').append(stopka);
    						$(element).remove();
    					}else{
    						var czy_w_przestrzeni_tekstu=$('body.action-view, body.action-submit').find('#mw-content-text .mw-parser-output').find(element);
    						if(czy_w_przestrzeni_tekstu.length==0){
    							var stopka=element.cloneNode(true);
    							mojnaglowek.find(' > div:first-child').append(stopka);
    							$(element).remove();
    						}
    					}
    				});
    			}
    		}
    	});
		strona_start.each(function(i,element){
			var hideAll1 = $(element).find('.mójNagłówekUkryj');
			var hideAll2=$(element).find('.strona_start').find(hideAll1);
			var czy_hideAll=((hideAll1.length>0)&&(hideAll1.length-hideAll2.length>0));
			var noFooter = false;
			var footers = 0;
			$(element).find('div').each(function(k,el){;
				var str=$(element).find('.strona_start').find(el);
				if(str.length==0){
					if($(el).hasClass('mojaStopka')){
						footers++;
					}else if ((czy_hideAll) && ($(el).hasClass('mójNagłówek'))) {
						$(el).css('display',"none");
						noFooter=true;
					}
				}
			});
			if (noFooter){return;}
			if(footers==1){
				$(element).find('.mójNagłówek').each(function(i,element_naglowek){
					var czy_naglowek=$(element).find('.strona_start').find(element_naglowek)
					if(czy_naglowek.length==0){
						var s0=$(element_naglowek).find('.mojaStopka0');var s1=$(element_naglowek).find('.mojaStopka1');
						var s01=$(element).find('.strona_start').find(s0);var s11=$(element).find('.strona_start').find(s1);
						if((s01.length==0)&&(s11.length==0)){
							var czy_s0=((s01.length==0)?(s0.length>0):false);var czy_s1=((s11.length==0)?(s1.length>0):false);
							var str_element=jak_wstawiac?($(element).find('> div > .główna_strona > .strona_środkowa > .strona > .ciało_kontener > .ciało_strona')):($(element));
							if(str_element.length>0){
								var zawartosc=str_element[0].cloneNode(true);
								$(zawartosc).find('.strona_start').remove();
								if((czy_s1)||((!czy_s0)&&(zawartosc.innerHTML.length>8000))){
									$(element).find('.mojaStopka').each(function(i,element_stopka){
										var stopka=$(element).find('.strona_start').find(element_stopka);
										if(stopka.length==0){
											var moja_stopka=$(element).find('.mójNagłówek').find('.mojaStopka');
											var nie_w_strona_start_moja_stopka=$(element).find('.strona_start').find(moja_stopka);
											if((moja_stopka.length>0)&&(nie_w_strona_start_moja_stopka.length==0)){
												var stopka=moja_stopka[0].cloneNode(true);
												if(jak_wstawiac){
													$(element).find('.strona').first().append(stopka);
												}else{
													if($('body.action-view').length>0){
														var rodzic=$('body.action-view #mw-content-text .mw-parser-output').parent().first();
														if(rodzic.find('> .printfooter').length>0){
															rodzic.find('> .printfooter').first().before(stopka);
														}else{
															rodzic.append(stopka);
														}
													}
													$('body.action-submit #mw-content-text .mw-parser-output').parent().first().append(stopka);
												}
											}
										}
									});
								}
							}
						}
					}
				});
			}	
		});
	};
	SzablonNapisWprowadzeniaTekstu(true);
	SzablonNapisWprowadzeniaTekstu(false);
};
/* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */

$(DodatkiSkrypt.Boksy.NapisWprowadzeniaTekstu);


/*Funkcja do liczenia szerokościm mapska przewijania w pionowego, wtedy x_box_right=="y", lub poziomego, wtedy inny parametr inny niż dla paska pionowego*/
DodatkiSkrypt.Boksy.PobieranieFormatuPaskaPrzewijaniaOkienka=function(x_box_right){
    var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="'+((x_box_right=="y")?"height":"width")+':100px;"></div></div>'); 
    $('body').append(div); 
    var w1 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); 
    div.css('overflow-'+(x_box_right||"y"), 'scroll'); 
    var w2 = $('div', div)["inner"+((x_box_right=="y")?"Width":"Height")](); 
    $(div).remove(); 
    return (w1 - w2); 
}

/*Funkcje do obsługi pasków przewijania*/
DodatkiSkrypt.Boksy.ScrollBarOverflow=function(){
	$('*.mw-overflow-x, *.mw-overflow-y').each(function(i,element_g){
			/*start overflow*/
		function ScrollBarOverflow(){
			var comp=window.getComputedStyle(element_g, null);
		
			var display=comp.getPropertyValue("display");
			if(display=="none"){return;}
		
			var overflow_x=$(element_g).hasClass('mw-overflow-x');
			if(overflow_x){
				var overflowX=comp.getPropertyValue("overflow-x");
				if((overflowX)&&(overflowX=="auto")){
					element_g.classList.remove("mw-scrollbar-overflow-x");
					const hasHorizontalScrollbar = element_g.scrollWidth > element_g.clientWidth; // true lub false
					if(hasHorizontalScrollbar){
						element_g.classList.add("mw-scrollbar-overflow-x");
					}
				}
			}
			var overflow_y=$(element_g).hasClass('mw-overflow-y');
			if(overflow_y){
				var overflowY=comp.getPropertyValue("overflow-y");
				if((overflowY)&&(overflowY=="auto")){
					element_g.classList.remove("mw-scrollbar-overflow-y");
					const hasVerticalScrollbar = element_g.scrollHeight > element_g.clientHeight; // true lub false
					if(hasVerticalScrollbar){
						element_g.classList.add("mw-scrollbar-overflow-y");
					}
				}
			}
			/*koniec overflow*/
		}
		ScrollBarOverflow();
		var config = {
			childList:true,
			characterData: true,
		};
		var newObserver = new MutationObserver(function(records, observer){
			observer.disconnect();
			ScrollBarOverflow();
			newObserver.observe(element_g, config);
		});
		newObserver.observe(element_g, config);
	});
}
$(DodatkiSkrypt.Boksy.ScrollBarOverflow);
DodatkiSkrypt.Boksy.IsBlankElement=function(element){
	var tekst=element.innerHTML.replace(/\n/g,"").replace(/<!--.*-->/g,"");
	var czy_blank=/^\s*$/g.test(tekst);
	return czy_blank;
}
DodatkiSkrypt.Boksy.IsOnlyWhiteSpaceElement=function(element){
	var element2=document.createElement('div');
	element2.innerHTML=element.innerHTML;
	element2.innerHTML=element2.innerHTML.replace(/&nbsp;/g," ").replace(/&#32;/g," ");
	var czy_whitespace=DodatkiSkrypt.Boksy.IsBlankElement(element2);
	return czy_whitespace;
}
DodatkiSkrypt.Boksy.IsBlank=function(){
	$(".is-blank").each(function(i,element){
		function IsBlank(){
			var czy_blank=DodatkiSkrypt.Boksy.IsBlankElement(element);
			if(czy_blank){ element.classList.add("blank");}else{element.classList.remove("blank");}
		}
		IsBlank();
		var config = {
			childList:true,
			characterData: true,
		};
		var newObserver = new MutationObserver(function(records, observer){
			observer.disconnect();
			IsBlank();
			newObserver.observe(element, config);
		});
		newObserver.observe(element, config);
	});
}
$(DodatkiSkrypt.Boksy.IsBlank);
DodatkiSkrypt.Boksy.IsOnlyWhiteSpace=function(){
	$('.is-only-whitespace').each(function(i,element){
		function IsOnlyWhiteSpace(){
			var czy_whitespace=DodatkiSkrypt.Boksy.IsOnlyWhiteSpaceElement(element);
			if(czy_whitespace){
					element.classList.add('only-whitespace');
				}else{
					element.classList.remove('only-whitespace');
				}
		}
		IsOnlyWhiteSpace();
		var config = {
			childList:true,
			characterData: true,
		};
		var newObserver = new MutationObserver(function(records, observer){
			observer.disconnect();
			IsOnlyWhiteSpace();
			newObserver.observe(element, config);
		});
		newObserver.observe(element, config);	
	});
}
$(DodatkiSkrypt.Boksy.IsOnlyWhiteSpace);
DodatkiSkrypt.Boksy.IsFirstChild=function(){
	function ParserClass(){
		$('.is-first-child').each(function(i,element){
			var parser=$(element).parent().children('.is-first-child');
			var p=0;
			var klasa=undefined;
			var classlist=element.classList;
			for(var s=0;s<classlist.length;++s){
				if(/^parser-(.*)$/g.test(classlist[s])){
					klasa=classlist[s].replace(/^parser-/g,"");
				}
			}
			if(!klasa){return;}
			for(var i=0;i<parser.length;++i){
				if(i==p){
					if(($(parser[i]).hasClass('blank'))||(!$(parser[i]).hasClass(klasa))||(!$(parser[i]).hasClass("parser-"+klasa))){
						++p;
					}
				}
				if(($(parser[i]).hasClass('is-first-child'))&&($(parser[i]).hasClass(klasa))&&($(parser[i]).hasClass("parser-"+klasa))){
					if(i==p){
						$(parser[i]).addClass('first-child');
					}else{
						$(parser[i]).removeClass('first-child');
					}
				}
			}
		});
	}
	ParserClass();
	var config = {
		childList:true,
	};
	$(".is-last-child").parent().each(function(i,element){
		var newObserver = new MutationObserver(function(records, observer){
			observer.disconnect();
			ParserClass();
			newObserver.observe(element, config);
		});
		newObserver.observe(element, config);
	});
}
$(DodatkiSkrypt.Boksy.IsFirstChild);
DodatkiSkrypt.Boksy.IsLastChild=function(){
	function ParserClass(){
		$('.is-last-child').each(function(i,element){
			var parser=$(element).parent().children('.is-last-child');
			var p=parser.length-1;
			var klasa=undefined;
			var classlist=element.classList;
			for(var s=0;s<classlist.length;++s){
				if(/^parser-(.*)$/g.test(classlist[s])){
					klasa=classlist[s].replace(/^parser-/g,"");
				}
			}
			if(!klasa){return;}
			for(var i=parser.length-1;i>=0;--i){
				if(i==p){
					if(($(parser[i]).hasClass('blank'))||(!$(parser[i]).hasClass(klasa))||(!$(parser[i]).hasClass("parser-"+klasa))){
						--p;
					}
				}
				if(($(parser[i]).hasClass('is-last-child'))&&($(parser[i]).hasClass(klasa))&&($(parser[i]).hasClass("parser-"+klasa))){
					if(i==p){
						$(parser[i]).addClass('last-child');
					}else{
						$(parser[i]).removeClass('last-child');
					}
				}
			}
		});
	}
	ParserClass();
	var config = {
		childList:true,
	};
	$(".is-last-child").parent().each(function(i,element){
		var newObserver = new MutationObserver(function(records, observer){
			observer.disconnect();
			ParserClass();
			newObserver.observe(element, config);
		});
		newObserver.observe(element, config);
	});
}
$(DodatkiSkrypt.Boksy.IsLastChild);
/*Uruchamianie funkcji DodatkiSkrypt.Boksy.ScrollBarOverflow*/
	
/*Uruchamianie zdarzeń dla elementu Window, używając funkcji DodatkiSkrypt.Boksy.ScrollBarOverflow*/
$(function(){
	/*Zdarzenia*/
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(window,'scroll', 'ScrollBarOverflow',null,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'));
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(window,'resize', 'ScrollBarOverflow',null,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'));
});
DodatkiSkrypt.Boksy.DanePozycjiWszyskichLiniiPrzewijaniaZFormatuOkienka=function(){
	var pozycje_paskow;
	this.ZerujZebraneDane=function(){
		pozycje_paskow=new Array();
	}	
	this.ZbierzPozycje=function(element_g){
		var comp=window.getComputedStyle(element_g, null);
		//var overflow=comp.getPropertyValue("overflow");
		var overflow_x=comp.getPropertyValue("overflow-x");
		var overflow_y=comp.getPropertyValue("overflow-y");
		if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){
			  pozycje_paskow.push(new Array(element_g,element_g.scrollTop,element_g.scrollLeft));
		}
		$(element_g).find('*').each(function(i,element){
			var comp=window.getComputedStyle(element, null);
			//var overflow=comp.getPropertyValue("overflow");
			var overflow_x=comp.getPropertyValue("overflow-x");
			var overflow_y=comp.getPropertyValue("overflow-y");
			if((overflow_x=="auto")||(overflow_x=="scroll")||(overflow_y=="auto")||(overflow_y=="scroll")){
			  	pozycje_paskow.push(new Array(element,element.scrollTop,element.scrollLeft));
			}
		});
	}
	this.UstawPozycje=function(){
		for(var i in pozycje_paskow){
			var element_tab=pozycje_paskow[i];
			var element=element_tab[0];
			element.scrollTop=element_tab[1];
			element.scrollLeft=element_tab[2];
		}
	}
}

var muteks_boksy=new DodatkiSkrypt.Muteks();
zmienne.muteks_boksy=muteks_boksy;
/*Funkcja symulująca właściwości position:sticky, wszędzie tam, gdzie nie można go użyć.*/
DodatkiSkrypt.Boksy.StickyXY=function(event,element,generowane_korutyny_2){
	return $(document).DodatkiSkryptReady(function(){
		$('#mw-content-text .mw-parser-output').find('*.mw-sticky-x, *.mw-sticky-y').each(function(i,element_g){
			var comp=window.getComputedStyle(element_g, null);
		
			function FunStickyXY(height,top,bottom,width_box,left_box,right_box,x_box,x_box_right){
			
				var pasek=new DodatkiSkrypt.Boksy.DanePozycjiWszyskichLiniiPrzewijaniaZFormatuOkienka();
				pasek.ZerujZebraneDane();
				pasek.ZbierzPozycje(element_g);
		
				
				var height_sticky=0;
				$('html.client-js.vector-sticky-header-enabled body.skin-vector-search-vue.vector-sticky-header-visible div.vector-sticky-header, html.client-js body.skin-timeless #mw-header-container ~ #mw-header-hack').each(function(i,el){
					var rect_sticky=el.getBoundingClientRect();
					height_sticky=parseInt(rect_sticky[height]+rect_sticky[top]);
				});
				var StickyXYTopOld=$(element_g).data('stickyXYOld-'+top);var StickyXYBottomOld=$(element_g).data('stickyXYOld-'+bottom);
			
				if(StickyXYTopOld===undefined){
					var topold_war=parseFloat(element_g.style[top]);
					$(element_g).data('stickyXYOld-'+top,((!isNaN(topold_war))?topold_war:0));
				}
				if(StickyXYBottomOld===undefined){
					var bottomold_war=parseFloat(element_g.style[bottom]);
					$(element_g).data('stickyXYOld-'+bottom,((!isNaN(bottomold_war))?bottomold_war:0));
				}
				var topold=$(element_g).data('stickyXYOld-'+top)+height_sticky+5;
			
				var margintop=parseFloat(comp.getPropertyValue("margin-"+top));
				margintop=((!isNaN(margintop))?margintop:0);
			
				var marginbottom=parseFloat(comp.getPropertyValue("margin-"+bottom));
				marginbottom=((!isNaN(marginbottom))?marginbottom:0);
			
				var przodek_height=undefined;
			
				element_g.style[height]="auto";
				element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none";
				element_g.style[top]="auto";
				element_g.style[bottom]="auto";
				
				if(width_box!=null){
					element_g.style[width_box]="auto";
					element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none";
					element_g.style[left_box]="auto";
					element_g.style[right_box]="0";
					$(element_g).find('.mw-not-overflow-'+x_box+'.mw-overflow-'+x_box).each(function(i,element){
						element.style[width_box]="auto";
						element.classList.remove('mw-scrollbar-overflow-x');
						element.classList.remove('mw-scrollbar-overflow-y');
					});
				}
				/**/
			
				var parents_node_fun=$(element_g).parents('.mw-parent-node').first();
				if((parents_node_fun==null)||(parents_node_fun.length==0)){return;}
			
				var width_rodzic=null;
				var rodzic_element=undefined;
				var comp_rodz;
			
				parents_node_fun.each(function(i,element){
					comp_rodz=window.getComputedStyle(element,null);
					przodek_height=parseFloat(comp_rodz.getPropertyValue([height]));
					width_rodzic=width_box?parseFloat(comp_rodz.getPropertyValue([width_box])):null;
					rodzic_element=element;
				});
			
				var height_box_real=parseFloat(comp.getPropertyValue(height));
				var rect_dziecko=element_g.getBoundingClientRect();	
			
				var wys=document.documentElement["client"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))];
			
				var rect_rodzic;
				parents_node_fun.each(function(i,element){
					rect_rodzic=element.getBoundingClientRect();
				});
			
				var top_ab=rect_rodzic[top];
				var bottom_ab=(wys-rect_rodzic[bottom]);
			
			
				var maxheight=Math.min(przodek_height,wys-((rect_rodzic[top]>=0)?(rect_rodzic[top]):(0))-((bottom_ab>=0)?(bottom_ab):(0)))-(((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)))+((bottom_ab<=0)?($(element_g).data('stickyXYOld-'+bottom)+5):(Math.max(0,$(element_g).data('stickyXYOld-'+bottom)+5-bottom_ab)))+marginbottom+margintop);
			
				element_g.style["max"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(((maxheight>=0)?maxheight:0)*(height_box_real/rect_dziecko[height]))+"px";
			
				element_g.style[height]="100%";
			
				var top_obj=(((top_ab>=0)?0:(-top_ab)))+((top_ab<=0)?(topold):(Math.max(0,topold-top_ab)));
			
				element_g.style[top]=top_obj+"px";
				element_g.style[bottom]="auto";
			
				if(width_box!=null){
					element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none";
				
					rodzic_element.style.position="static";
					rodzic_element.style.overflow="hidden";
					var width_box_real=parseFloat(comp.getPropertyValue(width_box));
					var rect_dziecko=element_g.getBoundingClientRect();
					if(parseInt(width_box_real)>parseInt(rect_dziecko[width_box])){
						if(width_box=="width"){
							element_g.classList.remove('mw-scrollbar-overflow-x');
						}else{
							element_g.classList.remove('mw-scrollbar-overflow-y');
						}
						if(rect_dziecko[width_box]>width_rodzic){
							if(width_box=="width"){
								element_g.classList.add('mw-scrollbar-overflow-x');
							}else{
								element_g.classList.add('mw-scrollbar-overflow-y');
							}
						}
						var width_box_real=parseFloat(comp.getPropertyValue(width_box));
					
						var margin_all=parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box));
						margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left_box))+parseFloat(comp_rodz.getPropertyValue("padding-"+right_box));
						var dlugosc=(width_rodzic-margin_all);
						dlugosc=((dlugosc>=0)?dlugosc:0);
					
					
						element_g.style.whiteSpace="nowrap";
						element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px";
						element_g.style[width_box]=width_box_real+"px";
					
						DodatkiSkrypt.Boksy.ScrollBarOverflow();
						$(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){
							var comp_element=window.getComputedStyle(element, null)
							element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+DodatkiSkrypt.Boksy.PobieranieFormatuPaskaPrzewijaniaOkienka(x_box_right)+parseFloat	(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px";
							element.classList.remove('mw-scrollbar-overflow-'+x_box);
						});
					
						element_g.style.whiteSpace="normal";
						element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none";
						element_g.style[width_box]="auto";
					
						var rect_dziecko=element_g.getBoundingClientRect();
						var width_box_real=parseFloat(comp.getPropertyValue(width_box));
						element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width_box]))+"px";
						element_g.style[width_box]=width_box_real+"px";
					
						element_g.style[left_box]="0";
						element_g.style[right_box]="auto";
						rodzic_element.style.position="relative";
					}else{
						element_g.style.whiteSpace="nowrap";
						var szerokosc_box=rect_dziecko[width_box];
						element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px";
						element_g.style[width_box]=(szerokosc_box)+"px";
				
						DodatkiSkrypt.Boksy.ScrollBarOverflow();
						$(element_g).find('.mw-overflow-'+x_box+'.mw-not-overflow-'+x_box+'.mw-scrollbar-overflow-'+x_box).each(function(i,element){
							var comp_element=window.getComputedStyle(element, null);
							element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+DodatkiSkrypt.Boksy.PobieranieFormatuPaskaPrzewijaniaOkienka(x_box_right)+parseFloat	(comp_element.getPropertyValue('padding-'+left_box))+parseFloat(comp_element.getPropertyValue('padding-'+right_box)))+"px";
							element.classList.remove('mw-scrollbar-overflow-'+x_box);
						});
					
						element_g.style.whiteSpace="normal";
						element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none";
						element_g.style[width_box]="auto";
						var rect_dziecko=element_g.getBoundingClientRect();	
						var szerokosc_box=rect_dziecko[width_box];
						element_g.style["max"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(szerokosc_box)+"px";
						element_g.style[width_box]=(szerokosc_box)+"px";
					
						var szerokosc=rect_dziecko[width_box]+parseFloat(comp.getPropertyValue("margin-"+left_box))+parseFloat(comp.getPropertyValue("margin-"+right_box));
						if(parseInt(szerokosc)>parseInt(width_rodzic)){
							element_g.style[right_box]="0";
							element_g.style[left_box]="auto";
							rodzic_element.style.overflow="visible";
						}else{
							element_g.style[left_box]="0";
							element_g.style[right_box]="auto";
							rodzic_element.style.position="relative";
						}
					}
				}
				element_g.style[height]="auto";
				element_g.style[height]=(element_g["offset"+(height.replace(/^(.)/g,function(s){return s.toUpperCase();}))])+"px";
				DodatkiSkrypt.Boksy.ScrollBarOverflow();
				pasek.UstawPozycje();
			}	
		
			element_g.classList.add('mw-sticky-js');
		
			var display=comp.getPropertyValue("display");
			if(display=="none"){return;}
		
			var visibility=comp.getPropertyValue("visibility");
			if(visibility=="hidden"){return;}
		
			var position=comp.getPropertyValue("position");
			if(position!="absolute"){return;}
		
			var sticky_x=$(element_g).hasClass('mw-sticky-x');
			var sticky_y=$(element_g).hasClass('mw-sticky-y');
			if((sticky_x)&&(!sticky_y)){
				var str=$(element_g).parents('.strona_górna, .strona_dolna').first();
				if(str.hasClass('strona_dolna')){
					FunStickyXY("width","left","right","height","top","bottom","y","x");
				}else if(str.hasClass('strona_górna')){
					FunStickyXY("width","left","right","height","bottom","top","y","x");
				}
			}else if((!sticky_x)&&(sticky_y)){
				var str=$(element_g).parents('.strona_prawa, .strona_lewa').first();
				if(str.hasClass('strona_prawa')){
					FunStickyXY("height","top","bottom","width","left","right","x","y");
				}else if(str.hasClass('strona_lewa')){
					FunStickyXY("height","top","bottom","width","right","left","x","y");
				}
			}else if((sticky_x)&&(sticky_y)){
				FunStickyXY("width","left","right",null);
				FunStickyXY("height","top","bottom",null);
			}
		});
		return Promise.resolve();
	},generowane_korutyny_2,muteks_boksy);
}
/*Uruchamianie funkcji DodatkiSkrypt StickyXY*/
jQuery(document).DodatkiSkryptSettledPromise(function(){
	DodatkiSkrypt.Boksy.StickyXY();
});
jQuery(document).DodatkiSkryptSettledPromise(function(){
	var element=$('body').first();
	if(element.length==0){return;}
	var config = {
		//childList:true,
		//characterData: true,
		attributes:true,
		//subtree: true,
		attributeFilter: ["class"]
	};
	var element_body=element[0];
	var newObserver = new MutationObserver(function(records, observer){
		observer.disconnect();
		DodatkiSkrypt.Boksy.StickyXY();
		$(document).DodatkiSkryptReady(function(){
			newObserver.observe(element_body, config);
		},null,muteks_boksy);
	});
	newObserver.observe(element_body, config);
});
DodatkiSkrypt.Boksy.FunkcjaBoksowyMuteks=function(__FUNKCJA,...args){
	return $(document).DodatkiSkryptReady(function(){
		return __FUNKCJA(...args);
	},null,muteks_boksy);
}
/*Uruchamianie zdarzeń dla elementu Window, używając funkcji DodatkiSkrypt.Boksy.StickyXY*/
jQuery(document).DodatkiSkryptReady(function(){
	/*Zdarzenia*/
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(window,'scroll', 'StickyXY',null,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'));
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(window,'resize', 'StickyXY',null,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'));
});

/*Funkcja do ustawiania maksymalnego rozmiaru dziecka, względem rodzica, przy position:absolute*/
DodatkiSkrypt.Boksy.OptimalXY=function(){
	return $(document).DodatkiSkryptReady(function(){
		$('#mw-content-text .mw-parser-output').find('*.mw-optimal-x, *.mw-optimal-y').each(function(i,element_g){
				
	    	var comp=window.getComputedStyle(element_g, null);		
	    
			function FunOptimalXY(width,left,right){
			
				var pasek=new DodatkiSkrypt.Boksy.DanePozycjiWszyskichLiniiPrzewijaniaZFormatuOkienka();
				pasek.ZerujZebraneDane();
				pasek.ZbierzPozycje(element_g);

			
				var width_rodzic=null;
				var rodzic_node;
				var comp_rodz;
			
				$(element_g).parents('.mw-parent-node').first().each(function(i,element){
					comp_rodz=window.getComputedStyle(element,null);
					width_rodzic=parseFloat(comp_rodz.getPropertyValue([width]));
					rodzic_node=element;
				});
			
				if((width_rodzic!=null)&&(!isNaN(width_rodzic))){
					element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="none";
								
					var width_box_real=parseFloat(comp.getPropertyValue(width));
					var rect_dziecko=element_g.getBoundingClientRect();
				
					if(width=="width"){
						element_g.classList.remove('mw-scrollbar-overflow-x');
					}else{
						element_g.classList.remove('mw-scrollbar-overflow-y');
					}
					if(parseInt(width_box_real)>parseInt(rect_dziecko[width])){
						var rect_dziecko=element_g.getBoundingClientRect();
						if(rect_dziecko[width]>width_rodzic){
							if(width=="width"){
								element_g.classList.add('mw-scrollbar-overflow-x');
							}else{
								element_g.classList.add('mw-scrollbar-overflow-y');
							}
						}
			    		var width_box_real=parseFloat(comp.getPropertyValue(width));
			    
						var margin_all=parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right));
						margin_all+=parseFloat(comp_rodz.getPropertyValue("padding-"+left))+parseFloat(comp_rodz.getPropertyValue("padding-"+right));
						var dlugosc=(width_rodzic-margin_all);
						dlugosc=((dlugosc>=0)?dlugosc:0);
						element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(dlugosc*(width_box_real/rect_dziecko[width]))+"px";
					}else{
						element_g.style["max"+(width.replace(/^(.)/g,function(s){return s.toUpperCase();}))]=(rect_dziecko[width])+"px";
					}
					var str=$(element_g).parents('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna').first();
					if(!str.hasClass('strona_start-nawigacja_boksy')){
						var rect_dziecko=element_g.getBoundingClientRect();
						var szerokosc=rect_dziecko[width]+parseFloat(comp.getPropertyValue("margin-"+left))+parseFloat(comp.getPropertyValue("margin-"+right));
						if(parseInt(szerokosc)>parseInt(width_rodzic)){
							str.css('position','static');
						}else{
							str.css('position','relative');
						}
					}
				}
				pasek.UstawPozycje();
			};
		
			element_g.classList.add('mw-optimal-js');
		

			var display=comp.getPropertyValue("display");
			if(display=="none"){return;}
		
			var visibility=comp.getPropertyValue("visibility");
			if(visibility=="hidden"){return;}
		
			var position=comp.getPropertyValue("position");
			if(position!="absolute"){return;}
		
			var optimal_x=$(element_g).hasClass('mw-optimal-x');
			var optimal_y=$(element_g).hasClass('mw-optimal-y');
		
			if(optimal_x){
				FunOptimalXY("width","left","right");
			}
			if(optimal_y){
				FunOptimalXY("height","top","bottom");
			}
		});
		return Promise.resolve();
	},null,muteks_boksy);
}

/*Uruchamianie funkcji DodatkiSkrypt.Boksy.OptimalXY*/
jQuery(document).DodatkiSkryptSettledPromise(function(){
	DodatkiSkrypt.Boksy.OptimalXY();
});
	
/*Uruchamianie zdarzeń dla elementu Window, używając funkcji OptimalXY*/
jQuery(document).DodatkiSkryptReady(function(){
	/*Zdarzenia*/
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(window,"scroll",'OptimalXY',null,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'));
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(window,"resize",'OptimalXY',null,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'));
});
	
/*Spis treści TOC z paskiem nawigacji, usuwa pasek przewijania poziomy lub pionowy, albo powiększa bezpaskową szerokość, by jego linie tekstu zawartości możliwie nie załamywały się, by nie przechodziły do następnej linii, jeśli to możliwe*/
DodatkiSkrypt.Boksy.NotOverflowXY=function(){
		
	function UsunieciePaskaOverflowXY(css,width_box,left,right,x_box){
		var css_str=$(css);
		if(css_str.length==0){return;};
			
		var width_paska=DodatkiSkrypt.Boksy.PobieranieFormatuPaskaPrzewijaniaOkienka(x_box);
		css_str.each(function(i,element){
			/**/
			var sticky_xy=$(element).parents('.mw-sticky-x, .mw-sticky-y, .mw-optimal-x, .mw-optimal-y').parents('.mw-parent-node.strona_prawa, .mw-parent-node.strona_lewa, .mw-parent-node.strona_górna, .mw-parent-node.strona_dolna').parents('.strona_start');
			if(sticky_xy.length!=0){return;}
			/**/
			var pasek=new DodatkiSkrypt.Boksy.DanePozycjiWszyskichLiniiPrzewijaniaZFormatuOkienka();
			pasek.ZerujZebraneDane();
			pasek.ZbierzPozycje(element);
				
			var comp=window.getComputedStyle(element, null);
			var paddingleft=parseFloat(comp.getPropertyValue("padding-"+left));
			var paddingright=parseFloat(comp.getPropertyValue("padding-"+right));
			element.style[width_box]="auto";
			var whitespace=element.style.whiteSpace;
			element.style.whiteSpace="nowrap";
			/**/
			var czy_overflow_x_box=$(element).hasClass('mw-scrollbar-overflow-'+x_box);
			element.style[width_box]=(element["scroll"+(width_box.replace(/^(.)/g,function(s){return s.toUpperCase();}))]+((czy_overflow_x_box)?(width_paska+paddingleft+paddingright):0))+"px";
			/**/
			element.style.whiteSpace=((whitespace)&&(whitespace!=""))?whitespace:"normal";
				
			pasek.UstawPozycje();
		});
	}
	function WysokoscOverFlowXY(css,top_str,height_str,width_str){
		$(css).each(function(i,element){
			/**/
			var sticky_xy=$(element).parents('.mw-sticky-x, .mw-sticky-y, .mw-optimal-x, .mw-optimal-y').parents('.mw-parent-node.strona_prawa, .mw-parent-node.strona_lewa, .mw-parent-node.strona_górna, .mw-parent-node.strona_dolna').parents('.strona_start');
			if(sticky_xy.length!=0){return;}
			/**/
			var display=window.getComputedStyle(element, null).getPropertyValue("display");
			if(display=="none"){return;}
				/**/
			var pasek=new DodatkiSkrypt.Boksy.DanePozycjiWszyskichLiniiPrzewijaniaZFormatuOkienka();
			pasek.ZerujZebraneDane();
			pasek.ZbierzPozycje(element);
			element.style["max"+(height_str.replace(/^(.)/g,function(s){return s.toUpperCase();}))]="100%";
			element.style[height_str]="auto";
			element.style[width_str]="auto";
			var rect=element.getBoundingClientRect();
			var top=rect[top_str];
			var height=rect[height_str];
			var wys=document.documentElement["client"+(height_str.replace(/^(.)/g,function(s){return s.toUpperCase();}))];
			var nadwyzka_height=top+height-wys;
			var height2=height-((nadwyzka_height>=0)?(nadwyzka_height+5):0);
			element.style[height_str]=((height2>=0)?height2:0)+"px";
			pasek.UstawPozycje();
		});
	}
	return $(document).DodatkiSkryptReady(function(){
		var css='#mw-content-text .mw-parser-output .mw-overflow-x.mw-not-overflow-x:not(.mw-not-overflow-y)';
		UsunieciePaskaOverflowXY(css,"width","left","right","y");
		var css='#mw-content-text .mw-parser-output .mw-overflow-y.mw-not-overflow-y:not(.mw-not-overflow-x)';
		UsunieciePaskaOverflowXY(css,"height","top","bottom","x");
		
		var css='#mw-content-text .mw-parser-output div.toclimit.mw-control-y';
		WysokoscOverFlowXY(css,"top","height","width");
		var css='#mw-content-text .mw-parser-output div.toclimit.mw-control-x';
		WysokoscOverFlowXY(css,"left","width","height");
		
		DodatkiSkrypt.Boksy.ScrollBarOverflow();
		
		var css='#mw-content-text .mw-parser-output .mw-overflow-x.mw-not-overflow-x:not(.mw-not-overflow-y)';
		UsunieciePaskaOverflowXY(css,"width","left","right","y");
		var css='#mw-content-text .mw-parser-output .mw-overflow-y.mw-not-overflow-y:not(.mw-not-overflow-x)';
		UsunieciePaskaOverflowXY(css,"height","top","bottom","x");
		
		DodatkiSkrypt.Boksy.ScrollBarOverflow();/*Usunięcie klas pasków przewijania, jeżeli znikły*/
			/**/
		return Promise.resolve();
	},null,muteks_boksy);
}
jQuery(document).DodatkiSkryptSettledPromise(function(){
	DodatkiSkrypt.Boksy.NotOverflowXY();
});
	
/*Uruchamianie zdarzeń dla elementu spisu treści, innych niż obsługiwane przez StickyXY, używając funkcji NotOverflowXY*/
jQuery(document).DodatkiSkryptReady(function(){
	/*Zdarzenia*/
	function __FUNKCJA(i,element){
		var sticky_xy=$(element).parents('.mw-sticky-x, .mw-sticky-y, .mw-optimal-x, .mw-optimal-y').parents('.mw-parent-node.strona_prawa, .mw-parent-node.strona_lewa, .mw-parent-node.strona_górna, .mw-parent-node.strona_dolna').parents('.strona_start');
		if(sticky_xy.length!=0){return true;}
	}
	var css='#mw-content-text .mw-parser-output .mw-overflow-x.mw-not-overflow-x:not(.mw-not-overflow-y)';
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(css,"hover",'NotOverflowXY','NotOverflowXY',DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'),null,__FUNKCJA);
		
	var css='#mw-content-text .mw-parser-output .mw-overflow-y.mw-not-overflow-y:not(.mw-not-overflow-x)';
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(css,"hover",'NotOverflowXY','NotOverflowXY',DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'),null,__FUNKCJA);
		
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(window,"scroll",'NotOverflowXY',null,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'),null,__FUNKCJA);
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScript(window,"resize",'NotOverflowXY',null,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'),null,__FUNKCJA);
});
/*Definicja dodatkowych funkcji, niż standardowe, w href w linkach rozwijanej tabeli TABLE lub ramki DIV, jeśli ona generuje zwiększenie rozmiarów, aby w rodzicu pojawił się pasek przewijania, z dodatkowymi opcjami generowanej przez arkusz stylów CSS*/
DodatkiSkrypt.Boksy.RamkiTableIDiv=function(obiekt,id_tabeli_lub_ramki,id_nazwa_a,fun_obiektu,tab_el){
	$(obiekt).each(function(i,element_f){
		var id=element_f.getAttribute("id")
		i=i+((tab_el=="Table")?0:1);
		if((id)&&(id==(id_tabeli_lub_ramki+i))){
		    var collapsebutton=$(element_f).find('a#'+id_nazwa_a+i);
		    if((collapsebutton!==null)&&(collapsebutton.length>0)){
				$('#mw-content-text .mw-parser-output').find(element_f).find('a#'+id_nazwa_a+i).each(function(j,element_g){
					var href=element_g.getAttribute('href');
					if((href!=null)&&(href!="")){
						var col="[\\s;\\(\\,]*javascript:"+fun_obiektu.replace(/\./g,"\\.").replace(/([\(\)])/g,"\\$1")+"\\s*\\(\\s*"+i+"\\s*\\)[\\s;\\)\\,]*";
						var re_frame = new RegExp(col,'g');
				
						var re_javascript=new RegExp("^[\\s;]*javascript:","g");
						if((re_javascript.test(href))&&(re_frame.test(href))){
							function DodajSkryptJavaScript(fun){
								function Re(fun){
									var re=new RegExp("javascript:"+fun.replace(/\./g,"\\.").replace(/([\(\)])/g,"\\$1")+"\\s*\\(\\s*\\)",'g');
									return re;
								}
								var href_nowe=element_g.getAttribute('href');
									
								var re=Re("DodatkiSkrypt."+fun);
								if(re.test(href_nowe)){
									element_g.setAttribute('href',href_nowe.replace(re,""));
									href_nowe=element_g.getAttribute('href');
								};
									
								re=Re("window.UruchamiaczSkryptowyApi.DodatkiSkrypt().Boksy."+tab_el+"."+fun);
								if(!re.test(href_nowe)){
									element_g.setAttribute('href',href_nowe.replace(/[;\s]*$/g,"")+';javascript:window.UruchamiaczSkryptowyApi.DodatkiSkrypt().Boksy.'+tab_el+"."+fun+"()");
								}
							}
							DodajSkryptJavaScript('OperacjeBoksy');
						}
					}
				});
		    }
		}
	});
}
/*Koniec dodatkowych funkcji*/
   
DodatkiSkrypt.Boksy.Table=new Array(); 
DodatkiSkrypt.Boksy.Table.OperacjeBoksy=function(){
	jQuery(document).DodatkiSkryptReady(function(){
		DodatkiSkrypt.Boksy.ScrollBarOverflow();
		DodatkiSkrypt.Boksy.StickyXY();
		DodatkiSkrypt.Boksy.OptimalXY();
		DodatkiSkrypt.Boksy.NotOverflowXY();
	},null,zmienne.muteks_table_collapseTable);
}
DodatkiSkrypt.Boksy.Div=new Array(); 
DodatkiSkrypt.Boksy.Div.OperacjeBoksy=function(){
	jQuery(document).DodatkiSkryptReady(function(){
		DodatkiSkrypt.Boksy.ScrollBarOverflow();
		DodatkiSkrypt.Boksy.StickyXY();
		DodatkiSkrypt.Boksy.OptimalXY();
		DodatkiSkrypt.Boksy.NotOverflowXY();
	},null,zmienne.muteks_div_toggleNavigationBar);
}
/*Uruchamianie dodatkowych funkcji dla tabel TABLE i ramek DIV nawigacyjnych.*/
jQuery(document).DodatkiSkryptReady(function(){
    /*Dla menu rozwijanego tabeli TABLE zdefiniowanej na stronie MediaWiki:DodatkiSkrypt.js*/
	DodatkiSkrypt.Boksy.RamkiTableIDiv("table.collapsible",'collapsibleTable','collapseButton','window.UruchamiaczSkryptowyApi.DodatkiSkrypt().Nawigacja.collapseTable',"Table");
	/**/
	DodatkiSkrypt.Boksy.Table.OperacjeBoksy();
	/**/
},null,zmienne.muteks_table);
/**/
jQuery(document).DodatkiSkryptReady(function(){
    /*Dla menu rozwijanej ramki DIV zdefiniowanej na stronie MediaWiki:DodatkiSkrypt.js*/
	DodatkiSkrypt.Boksy.RamkiTableIDiv("div.NavFrame",'NavFrame','NavToggle','window.UruchamiaczSkryptowyApi.DodatkiSkrypt().Nawigacja.toggleNavigationBar',"Div");
	/**/
	DodatkiSkrypt.Boksy.Div.OperacjeBoksy();
	/**/
/*Koniec uruchamiania*/
},null,zmienne.muteks_div);

/*Uruchamianie dodatkowych zdarzeń*/
jQuery(document).DodatkiSkryptReady(function(){
	/*Funkcje zdarzeń*/
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScriptDodatkoweFunkcyjneXY("*.mw-sticky-x, *.mw-sticky-y",'StickyXY',true,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'));
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScriptDodatkoweFunkcyjneXY('*.mw-optimal-x, *.mw-optimal-y','OptimalXY',true,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'));
	DodatkiSkrypt.Zdarzenia.ZdarzeniaJavaScriptDodatkoweFunkcyjneXY("body.skin-vector-search-vue .vector-sticky-header",'StickyXY',false,DodatkiSkrypt.PodTablicaDodatkiSkrypt(true,'Boksy'),DodatkiSkrypt.PodTablicaDodatkiSkrypt(false,'Boksy'));
});
/*Koniec uruchamiania dodatkowych zdarzeń*/