MediaWiki:Common.js: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
Usunięta treść Dodana treść
openstreetmap: wsparcie dla secure, poprawka
Leinad (dyskusja | edycje)
a od kiedy to Meta ma kontrolę nad projektami; OSM jest lobbowany przez Wikimedia Deutschland i nic do tego ma pl.wiki; najpierw ustalamy (w ramach społeczności projektu!), a ewentualnie potem zmiany
Linia 636: Linia 636:
importStylesheet( "MediaWiki:CommonsTicker.css" );
importStylesheet( "MediaWiki:CommonsTicker.css" );
}
}

// Mini-Mapka z Openstreetmap
// based on Magnus Manske GPL code from dewiki
// by Saper
addOnloadHook(function () {
var splist, alist;
var sp, a, cl;
var i, j;
var URL = "http://toolserver.org/~kolossos/openlayers/kml-on-ol.php?lang=pl&uselang=" + wgUserLanguage;
if (wgServer == "https://secure.wikimedia.org")
URL += "&secure=1";
var lang = {
'pl' : {
'link info' : 'wyświetl (lub ukryj) mapkę wewnątrz artykułu',
'show map' : 'pokaż mapę',
'hide map' : 'ukryj mapę'
},
'en' : {
'link info' : 'display (or hide) a map inside this article',
'show map' : 'show map',
'hide map' : 'hide map'
}
}
// choose locale
lang = (typeof(lang[wgUserLanguage])=='object') ? lang[wgUserLanguage] : lang['pl'];
// show/hide OSM frame
var osmframe = function(maplink) {
var cs = document.getElementById("contentSub");
var osm = document.getElementById("openstreetmap");
if (!osm) {
var osm = document.createElement("iframe");
osm.id = "openstreetmap";
osm.src = maplink.href;
if (cs) {
cs.appendChild(osm);
}
} else {
osm.style.display = (osm.style.display == "none") ? "block" : "none";
}
maplink.innerHTML = (osm.style.display == "none") ? lang['show map'] : lang['hide map'];
};
// button
$j('span.coordinates').each(function(i) {
sp = this;
alist = sp.getElementsByTagName("a");
for (j = 0; j < alist.length; j++) {
a = alist.item(j);
if (a.href.match(/geohack/)) {
var na = document.createElement("a");
na.title = lang['link info'];
na.href = URL + "&params=" + a.href.split("params=")[1];
na.appendChild(document.createTextNode(lang['show map']));
sp.appendChild(document.createTextNode(" ("));
sp.appendChild(na);
sp.appendChild(document.createTextNode(") "));
$j(na).bind("click", function(evt) {
osmframe(this);
evt.preventDefault();
evt.stopPropagation();
});
}
}
});
});


/** extract a URL parameter from the current URL **********
/** extract a URL parameter from the current URL **********

Wersja z 22:28, 8 gru 2010

/*
UWAGA! Ten JavaScript działa dla wszystkich skórek. Należy zachować szczególną ostrożność wprowadzając tutaj zmiany!

'''Wyłączenie poszczególnych możliwości/skryptów'''
* Oznaczanie artykułów medalowych i dobrych artykułów (dla interwiki)
 window.LinkFADone = true;
* Przesunięcie linków [ edytuj ] przy sekcjach
 var oldEditsectionLinks=true;
*/

/*
	Dodawanie ciasteczek wygasających po pewnym czasie

	name - nazwa ciasteczka
	value - wartość do ustawienia
	
	// opcje (wszystkie opcjonalne)
	options = {days:7, path:'/'}	// defaults
*/
function addLongTermCookie(name, value, options)
{
	// options
	if (typeof(options)!='object')
	{
		options = new Object();
	}
	var days = (options.days) ? options.days : 7;
	var path = (options.path) ? options.path : '/';
	
	// setup date
	var dt = new Date();
	dt = new Date(dt.getTime()+days*24*3600000); //(ilość sekund * 1000)
	
	// set
	document.cookie = name+"="+value+"; path="+path+"; expires=" + dt.toGMTString();
}

/*
==== funkcja insertTagsTo_ ====
; Author: phpBB Team, WikiMedia, Maciej Jaros [[:pl:User:Nux]]
; Licence: [http://opensource.org/licenses/gpl-license.php GNU General Public License v2]
; Description: Apply tagOpen/tagClose to selection in given textarea/input, use sampleText instead of selection if there is none. Copied and adapted from phpBB
*/
// outputid = 'some_id_of_a_textarea_or_a_text_input'
function insertTagsTo_(tagOpen, tagClose, sampleText, outputid) {
	var txtarea = document.getElementById(outputid);
	if (!txtarea)
		return
	;

	// IE
	if (document.selection  && !is_gecko) {
		var theSelection = document.selection.createRange().text;
		if (!theSelection)
			theSelection=sampleText;
		txtarea.focus();
		if (theSelection.charAt(theSelection.length - 1) == " ") { // exclude ending space char, if any
			theSelection = theSelection.substring(0, theSelection.length - 1);
			document.selection.createRange().text = tagOpen + theSelection + tagClose + " ";
		} else {
			document.selection.createRange().text = tagOpen + theSelection + tagClose;
		}

	// Mozilla
	} else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
		var replaced = false;
		var startPos = txtarea.selectionStart;
		var endPos = txtarea.selectionEnd;
		if (endPos-startPos)
			replaced = true;
		var scrollTop = txtarea.scrollTop;
		var myText = (txtarea.value).substring(startPos, endPos);
		if (!myText)
			myText=sampleText;
		if (myText.charAt(myText.length - 1) == " ") { // exclude ending space char, if any
			subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
		} else {
			subst = tagOpen + myText + tagClose;
		}
		txtarea.value = txtarea.value.substring(0, startPos) + subst +
			txtarea.value.substring(endPos, txtarea.value.length);
		txtarea.focus();
		//set new selection
		if (replaced) {
			var cPos = startPos+(tagOpen.length+myText.length+tagClose.length);
			txtarea.selectionStart = cPos;
			txtarea.selectionEnd = cPos;
		} else {
			txtarea.selectionStart = startPos+tagOpen.length;
			txtarea.selectionEnd = startPos+tagOpen.length+myText.length;
		}
		txtarea.scrollTop = scrollTop;
	}
	// reposition cursor if possible
	if (txtarea.createTextRange)
		txtarea.caretPos = document.selection.createRange().duplicate();
}

/*
==== Dodanie linka [edytuj] dla sekcji nagłówkowej ====
; Pomysł: [[:en:User:Pile0nades]]
; Wykonanie: Maciej Jaros [[:pl:User:Nux]]
; Licencja: [http://opensource.org/licenses/gpl-license.php GNU General Public License v2]
*/
// Liczba nagłówków drugiego, trzeciego i czwartego stopnia
// jakie muszą się pojawić w artykule, żeby pojawił się link
var addEditTopLinkNumHeaders = 2; // dla 2 => dla dwóch i więcej się pojawi
function addEditTopLink() {
	//
	// somehow it gets run twice on some pages - stop that
	if (window.addEditTopLinkDone)
		return
	;
	window.addEditTopLinkDone = true;

	//	
	// if this is preview page or there is no edit tab, stop
	if (!wgIsArticle)
		return
	;

	//	
	// if there are no edit-section links then stop
	var spans = document.getElementById("bodyContent").getElementsByTagName("span");
	var i;
	for (i = 0; i < spans.length; i++) {
		if (spans[i].className == 'editsection')
			break
		;
	}
	if (i>=spans.length)
		return
	;

	//
	// additional checkup to stop
	var test = document.getElementById("bodyContent").getElementsByTagName("h2").length +
		document.getElementById("bodyContent").getElementsByTagName("h3").length +
		document.getElementById("bodyContent").getElementsByTagName("h4").length;
	// note that there is always siteSub (h3)
	if (test<=addEditTopLinkNumHeaders)
		return
	;
	
	//
	// get first header element
	var fst_h1 = document.getElementById("content").getElementsByTagName("h1")[0];

	//
	// Creating elements
	//
	// create div
	var div = document.createElement("DIV");
	div.className = 'editsection';
	// create link
	var link = document.createElement("A");
	link.href = document.getElementById("ca-edit").getElementsByTagName("a")[0].href + '&section=0';
	link.setAttribute('title', 'edytuj sekcję nagłówkową artykułu');
	link.appendChild(document.createTextNode('edytuj'));
	// append link and stuff to div
	div.appendChild(document.createTextNode('['));
	div.appendChild(link);
	div.appendChild(document.createTextNode(']'));

	//
	// Styling
	//
	div.style.cssText = 'padding:.7em 0 0 1.0em; float:right; font-size:x-small;';

	//
	// Insert edit div into h1 and content of h1 to div (it has to be like that so that FF doesn't select the edit link on double click)
	//
	var div_h1 = document.createElement("div");
	// move children
	while(fst_h1.childNodes.length)
	{
		div_h1.appendChild(fst_h1.firstChild)
	}
	fst_h1.appendChild(div);	// edit link
	fst_h1.appendChild(div_h1);	// previous h1 content
}
if (skin=='vector' || skin=='monobook')
{
	addOnloadHook(addEditTopLink);
}

/*
== Przesunięcie linków [ edytuj ] przy sekcjach ==
; Autor: Copyright 2006, Marc Mongenet
; Opis: Wyszukuje &lt;span class="editsection"> i przesuwa na koniec ich rodzica (nagłówka sekcji) wyświetlając ''inline'' ze zmniejszoną czcionką.
; Licencja: 
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

http://www.gnu.org/licenses/gpl.html
*/
addOnloadHook(function() {
 try {
	if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
	var spans = document.getElementsByTagName("span");
	for (var s = 0; s < spans.length; ++s) {
		var span = spans[s];
		if (span.className == "editsection") {
			span.style.cssText = 'float:none; font-size:x-small; font-weight: normal;';
			span.parentNode.appendChild(document.createTextNode(" "));
			span.parentNode.appendChild(span);
		}
	}
 } catch (e) { /* błąd */ }
});


/** Interwiki links to featured articles ***************************************
 *
 *  Description: Highlights interwiki links to featured articles (or
 *               equivalents) by changing the bullet before the interwiki link
 *               into a star.
 *  Maintainers: [[User:R. Koot]]
 */

function LinkFA() 
{
	if ( window.LinkFADone )
		return;
	
	if ( document.getElementById( "p-lang" ) ) {
		var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );
	
		for ( var i = 0; i < InterwikiLinks.length; i++ ) {
			if ( document.getElementById( InterwikiLinks[i].className + "-fa" ) ) {
				InterwikiLinks[i].className += " FA"
				InterwikiLinks[i].title = "Artykuł w tym języku jest na medal";
			}
			else if ( document.getElementById( InterwikiLinks[i].className + "-ga" ) ) {
				InterwikiLinks[i].className += " GArt"
				InterwikiLinks[i].title = "Artykuł w tym języku jest dobrym artykułem";
			}
		}
	}
	
	window.LinkFADone = true;
}
addOnloadHook( LinkFA );

 /* Test if an element has a certain class **************************************
  *
  * Description: Uses regular expressions and caching for better performance.
  * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
  */
 
 var hasClass = (function () {
     var reCache = {};
     return function (element, className) {
         return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
     };
 })();

/** Collapsible tables *********************************************************
  *
  *  Description: Allows tables to be collapsed, showing only the header. See
  *               [[en:Wikipedia:NavFrame]].
  *  Maintainers: [[User:R. Koot]]
  */

var autoCollapse = 2;
var collapseCaption = "ukryj";
var expandCaption = "pokaż";

function collapseTable( tableIndex )
{
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );

    if ( !Table || !Button ) {
        return false;
    }

    var Rows = Table.rows;

    if ( Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
    }
}

function createCollapseButtons()
{
    var tableIndex = 0;
    var NavigationBoxes = new Object();
    var Tables = document.getElementsByTagName( "table" );

    for ( var i = 0; i < Tables.length; i++ ) {
        if ( hasClass( Tables[i], "collapsible" ) ) {

            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
            if (!HeaderRow) continue;
            var Header = HeaderRow.getElementsByTagName( "th" )[0];
            if (!Header) continue;

            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );

            var Button     = document.createElement( "span" );
            var ButtonLink = document.createElement( "a" );
            var ButtonText = document.createTextNode( collapseCaption );

            Button.style.styleFloat = "right";
            Button.style.cssFloat = "right";
            Button.style.fontWeight = "normal";
            Button.style.textAlign = "right";
            Button.style.width = "6em";

            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
            ButtonLink.appendChild( ButtonText );

            Button.appendChild( document.createTextNode( "[" ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( "]" ) );

            Header.insertBefore( Button, Header.childNodes[0] );
            tableIndex++;
        }
    }

    for ( var i = 0;  i < tableIndex; i++ ) {
        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
            collapseTable( i );
        } 
        else if ( hasClass( NavigationBoxes[i], "innercollapse" ) ) {
            var element = NavigationBoxes[i];
            while (element = element.parentNode) {
                if ( hasClass( element, "outercollapse" ) ) {
                    collapseTable ( i );
                    break;
                }
            }
        }
    }
}

addOnloadHook( createCollapseButtons );


/** Dynamic Navigation Bars (experimental) *************************************
 *
 *  Description: See [[Wikipedia:NavFrame]].
 *  Maintainers: UNMAINTAINED
 */

// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';

// shows and hides content and picture (if available) of navigation bars
// Parameters:
//     indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar)
{
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);

    if (!NavFrame || !NavToggle) {
        return false;
    }

    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if ( hasClass( NavChild, 'NavPic' ) ) {
                NavChild.style.display = 'none';
            }
            if ( hasClass( NavChild, 'NavContent') ) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;

    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'block';
            }
            if (hasClass(NavChild, 'NavContent')) {
                NavChild.style.display = 'block';
            }
        }
        NavToggle.firstChild.data = NavigationBarHide;
    }
}

// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
    var indexNavigationBar = 0;
    // iterate over all < div >-elements 
    var divs = document.getElementsByTagName("div");
    for (var i = 0; NavFrame = divs[i]; i++) {
        // if found a navigation bar
        if (hasClass(NavFrame, "NavFrame")) {

            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');

            var isCollapsed = hasClass( NavFrame, "collapsed" );
            /*
             * Check if any children are already hidden.  This loop is here for backwards compatibility:
             * the old way of making NavFrames start out collapsed was to manually add style="display:none"
             * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
             * the content visible without JavaScript support), the new recommended way is to add the class
             * "collapsed" to the NavFrame itself, just like with collapsible tables.
             */
            for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                    if ( NavChild.style.display == 'none' ) {
                        isCollapsed = true;
                    }
                }
            }
            if (isCollapsed) {
                for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
                    if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                        NavChild.style.display = 'none';
                    }
                }
            }
            var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide);
            NavToggle.appendChild(NavToggleText);

            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
            for(var j=0; j < NavFrame.childNodes.length; j++) {
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
                    NavFrame.childNodes[j].appendChild(NavToggle);
                }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
}

addOnloadHook( createNavigationBarToggleButton );

/**
 * Skrypt dla Szablon:Galeria
 */
function toggleImage(group, remindex, shwindex) {
  document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none";
  document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline";
}
function ImageGroup(){
  if (document.URL.match(/printable/g)) return;
  var divs=document.getElementsByTagName("div");
  var i = 0, j = 0;
  var units, search;
  var currentimage;
  var UnitNode;
  for (i = 0; i < divs.length ; i++) {
    if (divs[i].className != "ImageGroup") continue;
    UnitNode=undefined;
    search=divs[i].getElementsByTagName("div");
    for (j = 0; j < search.length ; j++) {
      if (search[j].className != "ImageGroupUnits") continue;
      UnitNode=search[j];
      break;
    }
    if (UnitNode==undefined) continue;
    units=Array();
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
      var temp = UnitNode.childNodes[j];
      if (temp.className=="center") units.push(temp);
    }
    for (j = 0 ; j < units.length ; j++) {
      currentimage=units[j];
      currentimage.id="ImageGroupsGr"+i+"Im"+j;
      var imghead = document.createElement("div");
      var leftlink = document.createElement("a");
      var rightlink = document.createElement("a");
      if (j != 0) {
        leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");";
        leftlink.innerHTML="◀";
      }
      if (j != units.length - 1) {
        rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");";
        rightlink.innerHTML="▶";
      }
      var comment = document.createElement("tt");
      comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
      with(imghead) {
        style.fontSize="110%";
        style.fontweight="bold";
        appendChild(leftlink);
        appendChild(comment);
        appendChild(rightlink);
      }
      if (units.length>1) currentimage.insertBefore(imghead,currentimage.childNodes[0]);
      if (j != 0) currentimage.style.display="none";
    }
  }
}
addOnloadHook(ImageGroup);

//
// "Focus the cursor in the search bar on loading the Main Page"
// Autor: [[:en:User:Nihiltres]]
// Zaimportowany z http://en.wikipedia.org/wiki/MediaWiki:Gadget-searchFocus.js wg stanu na 7 paź. 2008
//
// opis działania: skrypt ustawia automatycznie kursor w polu wyszukiwania.
if (wgPageName == "Strona_główna") {
	addOnloadHook(function() {
		var searchInput = document.getElementById("searchInput");
		if (searchInput)
			searchInput.focus();
	});
}

//
// search box for anonimous users (styles in Common.css)
//
if (
(wgPageName == "Strona_główna" && wgUserGroups == null)
|| (wgPageName == "Strona_główna/Nowa")
)
{
	addOnloadHook(function()
	{
		var strFromHtml = ''
			+'<form id="mp_search" action="/wiki/Specjalna:Szukaj">'
				+'<div class="search_area">'
					+'<div>'
						+'<input type="text" onclick="this.value=\'\'; this.className=\'\'" class="wyszarz" value="Wpisz tutaj szukane pojęcie, hasło, artykuł" id="mp_sz_inp" name="search" />'
						+'<a title="Pomoc:Przeszukiwanie" href="/wiki/Pomoc:Przeszukiwanie"><img alt="Pomoc" src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Ambox_blue_question.svg/30px-Ambox_blue_question.svg.png"></a>'
					+'</div>'
				+'</div>'
				+'<div class="button_area"><input type="submit" value="Szukaj" name="fulltext" id="mp_sz_btn"></div>'
				+'<div class="last_area"></div>'
			+'</form>'
		;
		
		var el = document.getElementById('mp_searchbox_container');
		if (el)
		{
			el.innerHTML=strFromHtml;
			el.style.display="block";
		}
	});
}

//
// kompletna lista języków
//
if (wgNamespaceNumber<2 && wgTitle=="Strona główna")
{
	addOnloadHook(function () {
		addPortletLink('p-lang', 'http://pl.wikipedia.org/wiki/Wikipedia:Kompletna_lista_j%C4%99zyk%C3%B3w',
			'Wszystkie języki', 'interwiki-all', 'Kompletna lista języków')
	});
}

/////////////////////////////////////////
/////       Skrypty zewnętrzne     //////
/////////////////////////////////////////


// Importowanie funkcji działających podczas edycji. Patrz: [[MediaWiki:Common-edit.js]]

if (wgAction == 'edit' || wgAction == 'submit')
{
	if (wgNamespaceNumber > -1)
	{
		importScript( "MediaWiki:Common-edit.js" );
		importScript( "MediaWiki:Gadget-edit-buttons.js" );
		importScript( "MediaWiki:nuxedtoolkit.js" ); // tworzenie przycisków w toolbarach edycyjnych
		importScript( "MediaWiki:NuxTBKeys.js" ); // Autokorekta
	}
}
importScript( "MediaWiki:sel_t.js" ); // zaznaczenie tekstu
importScript( "MediaWiki:SftJSmsg.js" ); // klasa obsługi komunikatów JS-HTML

importScript( "MediaWiki:HeadingIcons.js"); // poprawa ikonek nagłówka

if (wgUserGroups == null) {
	// Importowanie skryptów i stylów tylko dla anomimowych użytkowników.
	importScript( "MediaWiki:Common-Anon.js" );
	//importStylesheet( "MediaWiki:Common-Anon.css" );
	appendCSS('.anon_hide_block{display:none}');
}
else
{
	appendCSS('.nonanon_hide_block{display:none}');
}


var beau$userGroups = {};

if (wgUserGroups) {
	for (var i = 0; i < wgUserGroups.length; i++) {
		beau$userGroups[ wgUserGroups[i] ] = true;
	}
}

if ( beau$userGroups["sysop"] ) {
	// Importowanie skryptów tylko dla administratorów.
	// Patrz: [[MediaWiki:Common-Sysop.js]]
	importScript( "MediaWiki:Common-Sysop.js" )
}
else {
	// Dla osób nie będących administratorami
	// Popup do zgłaszania błędów. Patrz: [[MediaWiki:Wikibugs.js]]
	importScript( "MediaWiki:Wikibugs.js" )
}

if (wgCanonicalSpecialPageName == 'Upload') {
	// Skrypty na stronie przesyłania plików
	importScript("MediaWiki:Common-Upload.js");
}
else if (wgCanonicalSpecialPageName == 'Search') {
	// Skrypty na stronie wyszukiwania
	importScript("MediaWiki:Common-Search.js");
}
else if ( wgPageName == "Wikipedia:CommonsTicker" ) {
	// Pobieranie styli CSS dla [[Wikipedia:CommonsTicker]]
	importStylesheet( "MediaWiki:CommonsTicker.css" );
}

/** extract a URL parameter from the current URL **********
 * From [[en:User:Lupin/autoedit.js]]
 * Local Maintainer: [[User:Saper]]
 */
function getParamValue( paramName, url) 
{
 if (typeof (url) == 'undefined' ) url = document.location.href;
 var cmdRe=RegExp( '[&?]' + paramName + '=([^&]*)' );
 var m=cmdRe.exec(url);
 if (m) {
  try {
   return decodeURIComponent(m[1]);
  } catch (someError) {}
 }
 return null;
}
/** Parametr &withJS= *******
 * Spróbuj załadować dodatkowy skrypt z przestrzeni MediaWiki
 * bez potrzeby edytowania [[Special:Mypage/monobook.js]]
 *
 * Maintainer: commons: [[User:Platonides]], plwiki: [[User:Saper]]
 */
{
 var extraJS = getParamValue("withJS");
 if (extraJS)
  if (extraJS.match("^MediaWiki:[^&<>=%]*\.js$"))
   importScript(extraJS);
  else
   alert("Plik " + extraJS + " nie powinien byc ladowany.");
}

/*
== Drobne skrypty ==
; Author: Maciej Jaros [[:pl:User:Nux]]
; License: Public domain
*/
//
// Zaznacza wszystkie elementy typu "checkbox" na stronie - wywołanie javascript:ZaznaczWszystkie()
//
function ZaznaczWszystkie()
{
	var inpt = document.getElementsByTagName('input');
	for (var i=inpt.length-1; i>=0; i--)
		if (inpt[i].type=='checkbox')
			inpt[i].checked=true;
}
//
// RSS kategorii
//
if (wgNamespaceNumber == 14)
{
	addOnloadHook(function()
	{
		var rsslink = 'http://toolserver.org/~cspurrier/rss/rss.php'
			+'?lang=pl&family=wikipedia'
			+'&desc=RSS%20kategorii%20Wikipedii'
			+'&title='+encodeURIComponent(wgTitle)
			+'&categories='+encodeURIComponent(wgTitle);
			
		addPortletLink('p-tb', rsslink, 'RSS kategorii', 't-katrss', 'RSS kategorii ' + wgTitle, null, null);
	});
}
//
// Array.indexOf() dla kompatybilności różnych skryptów z IE
// (skrypt z Mozilli)
if (!Array.prototype.indexOf)
{
	Array.prototype.indexOf = function(elt /*, from*/)
	{
		var len = this.length;

		var from = Number(arguments[1]) || 0;
		from = (from < 0) ? Math.ceil(from) : Math.floor(from);
		if (from < 0)
			from += len;

		for (; from < len; from++)
		{
			if (from in this && this[from] === elt)
				return from;
		}
		return -1;
	};
}
//
// Ustawienie wysokości "Usunięcie" pustego elementu contentSub
//
addOnloadHook(function()
{
	var el=document.getElementById('mw-revisiontag');
	if (el && el.className.indexOf('flaggedrevs_short')!=-1)
	{
		if (el.parentNode.id=='contentSub') el.parentNode.style.height='17px';
	}
});

addOnloadHook(function()
{
	var fn = getElementsByClassName(document, 'table', 'navbox');
	if (fn.length) fn[0].className+=' firstNavbox';
})

/*
=== Link do brudnopisów w menu osobistym ===

; autor: [[Wikipedysta:Herr Kriss]]
*/

var disableSandboxLink = 0;	// ustawienie tego na 1 lub true w swoim monobook.js pozwoli wyłączyć tę funkcjonalność

addOnloadHook(function()
{
	if (wgUserName != null && disableSandboxLink == 0)
	{
		var caption = 'Mój brudnopis'
		if (wgUserLanguage != 'pl')
			caption = 'My sandbox';
 
		addPortletLink('p-personal', wgServer + wgScript + '?title=Special:Mypage/brudnopis', caption, 'pt-sandbox', caption, '', document.getElementById('pt-preferences'));
	}
});

/*
 * Description: Redirects from User:UserName/skin.js or .css to the user's actual skin page
 * Maintainer: Nux
 */
if (wgNamespaceNumber==2 && wgArticleId==0 && wgAction=="view"	// Nonexistent User:... page in view mode
	&& wgUserName    // Logged in User
	&& wgTitle.indexOf(wgUserName+"/skin.")===0
	&& wgTitle.search(/\/skin.(js|css)/)>0
	)
{
	window.location.href = window.location.href.replace(/\/skin.(css|js)/i, '/' + skin + '.$1');
}

//
// Import usergroup-specific stylesheet, only for admins atm
//
for( var key=0; wgUserGroups && key < wgUserGroups.length; key++ )
{
   if (wgUserGroups[key] =="sysop")
   {
       importStylesheet("MediaWiki:Admin.css");
       break;
   }
}