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

(DSVGO)
m (Wycofano edycje użytkownika Comkra (dyskusja). Autor przywróconej wersji to Ingolf.)
Linia 233: Linia 233:
  
 
importScript('MediaWiki:Common.js/SkinFixes.js');
 
importScript('MediaWiki:Common.js/SkinFixes.js');
 
(function () {
 
 
    var rem;
 
 
function setPixel(meta, container_id) {
 
try {
 
 
    injectEvaluationId(meta);
 
 
rem = (container_id && document.getElementById(container_id))
 
? document.getElementById(container_id)
 
: document.createElement("div");
 
document.body.appendChild(rem);
 
 
var iframe = document.createElement("iframe");
 
 
iframe.style.width = '0';
 
iframe.style.height = '0';
 
iframe.style.display = 'block';
 
iframe.style.border = 'none';
 
iframe.setAttribute("frameborder", "0");
 
rem.appendChild(iframe);
 
 
var firstFormContent = "<head></head><body>" + buildForm(meta) + "</body>";
 
 
iframe.contentWindow.document.open();
 
iframe.contentWindow.document.write(firstFormContent);
 
iframe.contentWindow.document.close();
 
 
} catch (e) { }
 
}
 
 
function setSecondPixel(meta, baseFingerprint) {
 
  // inject baseFP into meta
 
  meta.fingerprint = baseFingerprint;
 
 
 
  // overwrite original location
 
  meta.location = "fp_eval";
 
 
 
  // store config id
 
  meta.fp2_config_id = 1;
 
 
  var secondFrame = document.createElement("iframe");
 
           
 
      secondFrame.style.width = '0';
 
      secondFrame.style.height = '0';
 
      secondFrame.style.display = 'block';
 
      secondFrame.style.border = 'none';
 
      secondFrame.setAttribute("frameborder", "0");
 
      rem.appendChild(secondFrame);
 
     
 
      var secondFormContent = "<head></head><body>" + buildSecondForm(meta) + "</body>";
 
     
 
      secondFrame.contentWindow.document.open();
 
      secondFrame.contentWindow.document.write(secondFormContent);
 
      secondFrame.contentWindow.document.close();
 
}
 
 
function injectEvaluationId(meta) {
 
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
 
    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
 
    return v.toString(16);
 
});
 
meta.fp_eval_id = uuid;
 
}
 
 
function buildForm(meta) {
 
var url = (meta.pz_debug_url !== undefined)
 
? meta.pz_debug_url
 
: 'https://pixelzirkus.gameforge.com';
 
 
var form = '';
 
form += '<script>inDapIF = true;</script>';
 
form += '<script src="' + url + '/static/js/E6gg7P33.js"></script>';
 
 
var meta_json = ''; try { meta_json = JSON.stringify(meta); } catch (e) {}
 
form += '<script>var meta_json = \'' + meta_json + '\';</script>';
 
form += '<script>var meta = {}; try { meta = JSON.parse(meta_json); } catch (e) {}</script>';
 
 
form += '<form id="gf_pz_form" action="' + url + '/do/simple" method="POST" accept-charset="UTF-8">';
 
 
var key, value;
 
for (key in meta) {
 
if (key.indexOf('pz_debug') !== -1) {
 
continue;
 
}
 
 
value = meta[key];
 
value = value + "";
 
value = value.replace(/"/g, "");
 
form += '<input type="hidden" name="' + key + '" value="' + value + '" />';
 
}
 
 
if (!meta.page) {
 
form += '<input type="hidden" name="page" value="' + window.location + '" />';
 
}
 
if (!meta.referrer) {
 
form += '<input type="hidden" name="referrer" value="' + document.referrer + '" />';
 
}
 
 
form += '</form>';
 
form += '<script>';
 
form += 'var input_fp = document.createElement("input"); input_fp.type = "hidden"; input_fp.name = "fingerprint"; input_fp.value = "unknown"; document.getElementById("gf_pz_form").appendChild(input_fp);';
 
form += 'var input_fp_exec = document.createElement("input"); input_fp_exec.type = "hidden"; input_fp_exec.name = "fp_exec_time"; input_fp_exec.value = -1; document.getElementById("gf_pz_form").appendChild(input_fp_exec);';
 
form += 'try {';
 
form += '    var startTime = window.performance.now();';
 
form += '    var fp = new Fingerprint().get();';
 
form += '    var exec_time = window.performance.now() - startTime;';
 
form += '    input_fp.value = fp;';
 
        form += '    input_fp_exec.value = exec_time.toFixed(2);';
 
        form += '    parent.window.setSecondPixel(meta, fp);';
 
form += '} catch (e) {}';
 
form += 'document.getElementById("gf_pz_form").submit();';
 
form += '</script>';
 
 
return form;
 
}
 
 
    function buildSecondForm(meta) {
 
        var url = (meta.pz_debug_url !== undefined)
 
            ? meta.pz_debug_url
 
            : 'https://pixelzirkus.gameforge.com';
 
       
 
        var form = '';
 
        form += '<script>inDapIF = true;</script>';
 
        form += '<script src="' + url + '/static/js/GT7h68ox.js"></script>';
 
        form += '<form id="gf_pz_form" action="' + url + '/do/simple" method="POST" accept-charset="UTF-8">';
 
   
 
        var key, value;
 
        for (key in meta) {
 
            if (key.indexOf('pz_debug') !== -1) {
 
                continue;
 
            }
 
           
 
            value = meta[key];
 
            value = value + "";
 
            value = value.replace(/"/g, "");
 
            form += '<input type="hidden" name="' + key + '" value="' + value + '" />';
 
        }
 
   
 
        if (!meta.page) {
 
            form += '<input type="hidden" name="page" value="' + window.location + '" />';
 
        }
 
        if (!meta.referrer) {
 
            form += '<input type="hidden" name="referrer" value="' + document.referrer + '" />';
 
        }
 
       
 
        form += '</form>';
 
        form += '<script>';
 
        form += 'var input_fp = document.createElement("input"); input_fp.type = "hidden"; input_fp.name = "fp2_value"; document.getElementById("gf_pz_form").appendChild(input_fp);';
 
        form += 'var input_fp_exec = document.createElement("input"); input_fp_exec.type = "hidden"; input_fp_exec.name = "fp2_exec_time"; document.getElementById("gf_pz_form").appendChild(input_fp_exec);';
 
        form += 'try {';
 
        form += '    var startTime = window.performance.now();';
 
        form += '    new Fingerprint2().get(function(fingerprint) {';
 
        form += '        input_fp.value = fingerprint;';
 
        form += '        var exec_time = window.performance.now() - startTime;';
 
        form += '        input_fp_exec.value = exec_time.toFixed(2);';
 
        form += '        document.getElementById("gf_pz_form").submit();';
 
        form += '    })';
 
        form += '} catch (e) {}';
 
        form += '</script>';
 
   
 
        return form;
 
    }
 
   
 
    function capturePixel(meta) {
 
        if (!meta.page) {
 
            meta.page = window.location.href;
 
        }
 
       
 
        if (!meta.referrer) {
 
            meta.referrer = document.referrer;
 
        }
 
     
 
        return meta;
 
    }
 
   
 
    function firePixels(meta, container_id) {
 
        try {
 
            var container = (container_id !== undefined && document.getElementById(container_id))
 
                ? document.getElementById(container_id)
 
                : document.createElement("div");
 
   
 
            var iframe = document.createElement("iframe");
 
           
 
            iframe.style.width = '0';
 
            iframe.style.height = '0';
 
            iframe.style.display = 'block';
 
            iframe.style.border = 'none';
 
            iframe.setAttribute("frameborder", "0");
 
            document.body.appendChild(container);
 
            container.appendChild(iframe);
 
     
 
            iframe.contentWindow.document.open();
 
            iframe.contentWindow.document.write("<head></head><body>" + buildMultiForm(meta) + "</body>");
 
            iframe.contentWindow.document.close();
 
     
 
            if (window.location.search.indexOf("pz_debug") !== -1) {
 
                window.pz_debug = meta;
 
            }
 
        } catch (e) {}
 
    }
 
   
 
    function buildMultiForm(meta) {
 
        var url = 'https://pixelzirkus.gameforge.com';
 
       
 
        var form;
 
        form  = '<script src="' + url + '/static/js/E6gg7P33.js"></script>';
 
        form += '<form id="gf_pz_form" action="' + url + '/do/multi" method="POST" accept-charset="UTF-8">';
 
   
 
        form += '<input type="hidden" name="pixels" value="' + escapeHtml(JSON.stringify(meta)) + '" />';
 
       
 
        form += '</form>';
 
        form += '<script>';
 
        form += 'var input_fp = document.createElement("input"); input_fp.type = "hidden"; input_fp.name = "fingerprint"; input_fp.value = "unknown"; document.getElementById("gf_pz_form").appendChild(input_fp); ';
 
        form += 'try {';
 
        form += '    input_fp.value = new Fingerprint().get();';
 
        form += '} catch (e) {} ';
 
        form += 'document.getElementById("gf_pz_form").submit();';
 
        form += '</script>';
 
   
 
        return form;
 
    }
 
 
    function escapeHtml(unsafe) {
 
        return unsafe
 
            .replace(/&/g, "&amp;")
 
            .replace(/</g, "&lt;")
 
            .replace(/>/g, "&gt;")
 
            .replace(/"/g, "&quot;")
 
            .replace(/'/g, "&#039;");
 
    }
 
 
window.setPixel = setPixel;
 
window.setSecondPixel = setSecondPixel;
 
 
window.capturePixel = capturePixel;
 
    window.firePixels = firePixels;
 
})();
 
 
var script = document.createElement("script"); // Make a script DOM node
 
script.src = 'https://gf1.geo.gfsrv.net/static/cookie-banner/2018052311/cookiebanner.js'; // must be the url where the cookiebanner.js is located
 
document.head.appendChild(script); // Add it to the end of the head section of the page (could change 'head' to 'body' to add it to the end of the body section instead
 

Wersja z 10:51, 14 sie 2018

// Tekst udostępniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach
// <pre>
window.onload = function() {
if (document.getElementById("buttonm") !=null) {
 var buttonm = document.getElementById("buttonm").innerHTML = "<div class='menukx'><img alt='Misje.png' src='http://wiki.metin2.pl/images/thumb/3/3e/Misje.png/16px-Misje.png'><button>Misje</button><div class='submenukx'><a href='/index.php/Lista_misji' title='Lista misji'>Lista misji</a>&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp;<a href='/index.php/Kategoria:Misje' title='Kategoria:Misje'>Kategoria</a><br><a href='/index.php/Chain_quests' title='Chain quests'>Główne Misje</a>&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp;<a href='/index.php/Misje_konne' title='Misje konne'>Misje konne</a></div><img alt='Polowania.png' src='http://wiki.metin2.pl/images/thumb/3/35/Polowania.png/16px-Polowania.png'><button>Polowania</button><div class='submenukx'><a href='/index.php/Polowania' title='Polowania'>Lista polowań</a></div><img alt='Księgi misji.png' src='/images/thumb/b/b2/Ksi%C4%99gi_misji.png/16px-Ksi%C4%99gi_misji.png' ><button>Księgi</button><div class='submenukx'><a href='/index.php/Kategoria:Zadania_ksi%C4%85g_misji' title='Kategoria:Zadania ksiąg misji'>Lista zadań</a></div></div>";
}
if (document.getElementById("buttonk") !=null) {
 var buttonk = document.getElementById("buttonk").innerHTML = "<div class='menukx'><button>Wojownik</button><div class='submenukx'><a href='/index.php/Wojownik/Zbroje' title='Wojownik/Zbroje'>Zbroje</a> • <a href='/index.php/Wojownik/Bronie' title='Wojownik/Bronie'>Bronie</a><br> <a href='/index.php/Wojownik/He%C5%82my' title='Wojownik/Hełmy'>Hełmy</a> • <a href='/index.php/Wojownik/Umiej%C4%99tno%C5%9Bci' title='Wojownik/Umiejętności'>Umiejętności</a></div><button>Sura</button><div class='submenukx'><a href='/index.php/Sura/Zbroje' title='Sura/Zbroje'>Zbroje</a> • <a href='/index.php/Sura/Bronie' title='Sura/Bronie'>Bronie</a><br><a href='/index.php/Sura/He%C5%82my' title='Sura/Hełmy'>Hełmy</a> • <a href='/index.php/Sura/Umiej%C4%99tno%C5%9Bci' title='Sura/Umiejętności'>Umiejętności</a></div><button>Ninja</button><div class='submenukx'><a href='/index.php/Ninja/Zbroje' title='Ninja/Zbroje'>Zbroje</a> • <a href='/index.php/Ninja/Bronie' title='Ninja/Bronie'>Bronie</a><br><a href='/index.php/Ninja/He%C5%82my' title='Ninja/Hełmy'>Hełmy</a> • <a href='/index.php/Ninja/Umiej%C4%99tno%C5%9Bci' title='Ninja/Umiejętności'>Umiejętności</a></div><button>Szaman</button><div class='submenukx'><a href='/index.php/Szaman/Zbroje' title='Szaman/Zbroje'>Zbroje</a> • <a href='/index.php/Szaman/Bronie' title='Szaman/Bronie'>Bronie</a><br><a href='/index.php/Szaman/He%C5%82my' title='Szaman/Hełmy'>Hełmy</a> • <a href='/index.php/Szaman/Umiej%C4%99tno%C5%9Bci' title='Szaman/Umiejętności'>Umiejętności</a></div><button>Likan</button><div class='submenukx'><a href='/index.php/Likan/Zbroje' title='Likan/Zbroje'>Zbroje</a> • <a href='/index.php/Likan/Bronie' title='Likan/Bronie'>Bronie</a><br><a href='/index.php/Likan/He%C5%82my' title='Likan/Hełmy'>Hełmy</a> • <a href='/index.php/Likan/Umiej%C4%99tno%C5%9Bci' title='Likan/Umiejętności'>Umiejętności</a></div></div>";
}
if (document.getElementById("buttoni") !=null) {
 var buttoni = document.getElementById("buttoni").innerHTML = "<div class='menukx'><button>Przedmioty</button><div class='submenukx'><table><tr><td width='95px'>Bransolety: </td><td>(<a href='/index.php/Kategoria:Bransolety' title='Kategoria:Bransolety'>Kategoria</a> / <a href='/index.php/Bransolety' title='Bransolety'>Lista</a>)</td></tr><tr><td width='95px'>Buty: </td><td>(<a href='/index.php/Kategoria:Buty' title='Kategoria:Buty'>Kategoria</a> / <a href='/index.php/Buty' title='Buty'>Lista</a>)</td></tr><tr><td width='95px'>Kolczyki:</td><td>(<a href='/index.php/Kategoria:Kolczyki' title='Kategoria:Kolczyki'>Kategoria</a> / <a href='/index.php/Kolczyki' title='Kolczyki'>Lista</a>)</td></tr><tr><td width='95px'>Naszyjniki:</td><td>(<a href='/index.php/Kategoria:Naszyjniki' title='Kategoria:Naszyjniki'>Kategoria</a> / <a href='/index.php/Naszyjniki' title='Naszyjniki'>Lista</a>)</td></tr><tr><td width='95px'>Pasy:</td><td>(<a href='/index.php/Kategoria:Pasy' title='Kategoria:Pasy'>Kategoria</a> / <a href='/index.php/Pasy' title='Pasy'>Lista</a>)</td></tr><tr><td width='95px'>Tarcze:</td><td>(<a href='/index.php/Kategoria:Tarcze' title='Kategoria:Tarcze'>Kategoria</a> / <a href='/index.php/Tarcze' title='Tarcze'>Lista</a>)</td></tr><tr><td width='95px'>Specjalne:</td><td>(<a href='/index.php/Kategoria:Przedmioty_Specjalne' title='Kategoria:Przedmioty Specjalne'>Kategoria</a> / <a href='/index.php/Przedmioty_Specjalne' title='Przedmioty Specjalne'>Lista</a>)</td></tr><tr><td width='95px'>Przedmioty w Metin2:</td><td>(<a href='/index.php/Kategoria:Przedmioty' title='Kategoria:Przedmioty'>Kategoria</a> / <a href='/index.php/Przedmioty' title='Przedmioty'>Lista</a>)</td></tr></table></div><button>Postacie</button><div class='submenukx'><table><tr><td width='95px'>Umiejętności:</td><td>(<a href='/index.php/Kategoria:Umiej%C4%99tno%C5%9Bci' title='Kategoria:Umiejętności'>Kategoria</a> dla wszystkich klas)</td></tr><tr><td width='95px'>NPC:</td><td>(<a href='/index.php/Kategoria:NPC' title='Kategoria:NPC'>Kategoria</a> / <a href='/index.php/NPC' title='NPC'>Lista</a>)</td></tr><tr><td width='95px'>Bonusy:</td><td>(<a href='/index.php/Bonusy' title='Bonusy'>Lista</a>)</td></tr></table></div><button>Inne</button><div class='submenukx'><table><tr><td width='95px'>Gildia</td><td>(<a href='/index.php/Kategoria:Gildie' title='Kategoria:Gildie'>Lista Gildii</a> / <a href='/index.php/Gildia' title='Gildia'>Informacje</a>)</td></tr><tr><td width='95px'>Kamienie metin:</td><td>(<a href='/index.php/Kategoria:Metin' title='Kategoria:Metin'>Kategoria</a> / <a href='/index.php/Metin' title='Metin'>Lista</a>)</td></tr><tr><td width='95px'>Kombinacje:</td><td>(<a href='/index.php/Kombinacje' title='Kombinacje'>Lista</a>)</td></tr><tr><td width='95px'>Potwory:</td><td>(<a href='/index.php/Kategoria:Potwory' title='Kategoria:Potwory'>Kategoria</a> / <a href='/index.php/Potwory' title='Potwory'>Lista</a>)</td></tr><tr><td width='95px'>Wierzchowce:</td><td>(<a href='/index.php/Kategoria:Wierzchowce' title='Kategoria:Wierzchowce'>Kategoria</a> / <a href='/index.php/Wierzchowce' title='Wierzchowce'>Lista</a>)</td></tr><tr><td width='95px'>Zwierzątka:</td><td>(<a href='/index.php/Kategoria:Zwierz%C4%85tka' title='Kategoria:Zwierzątka'>Kategoria</a> / <a href='/index.php/Zwierz%C4%85tka' title='Zwierzątka'>Lista</a>)</td></tr><tr><td width='95px'>Żyły:</td><td>(<a href='/index.php/Kategoria:%C5%BBy%C5%82y' title='Kategoria:Żyły'>Kategoria</a> / <a href='/index.php/%C5%BBy%C5%82y' title='Żyły'>Lista</a>)</td></tr><tr><td width='95px'>Inne:</td><td>(<a href='/index.php/Kategoria:Informacje' title='Kategoria:Informacje'>Informacje</a> • <a href='/index.php/Kategoria:Poradnik' title='Kategoria:Poradnik'>Poradniki</a> • <a href='/index.php/Kategoria:Szablony' title='Kategoria:Szablony'>Szablony</a>)</td></tr></table></div></div>";
}
if (document.getElementById("buttonmap") !=null) {
 var buttonmap = document.getElementById("buttonmap").innerHTML = "<div class='menukx'><button>Tereny neutralne</button><div class='submenukx'><a href='/index.php/Czerwony_Las' title='Czerwony Las'>Czerwony Las</a><br><a href='/index.php/Dolina_Seungryong' title='Dolina Seungryong'>Dolina Seungryong = Dolina orków</a><br><a href='/index.php/Doyyumhwaji' title='Doyyumhwaji'>Doyyumhwaji = Dojum-Papier = Piekło</a><br><a href='/index.php/G%C3%B3ra_Sohan' title='Góra Sohan'>Góra Sohan = Góra Suh-han = Lodowa ziemia</a><br><a href='/index.php/G%C3%B3ry_Grzmotu' title='Góry Grzmotu'>Góry Grzmotu</a><br><a href='/index.php/Kraina_Gigant%C3%B3w' title='Kraina Gigantów'>Kraina Gigantów</a><br><a href='/index.php/Lungsam' title='Lungsam'>Lungsam = Las duchów</a><br><a href='/index.php/Nefrytowa_Zatoka' title='Nefrytowa Zatoka'>Nefrytowa Zatoka</a><br><a href='/index.php/Przyl%C4%85dek_Smoczego_Ognia' title='Przylądek Smoczego Ognia'>Przylądek Smoczego Ognia</a><br><a href='/index.php/Pustynia_Yongbi' title='Pustynia Yongbi'>Pustynia Yongbi = Wielka pustynia</a><br><a href='/index.php/%C5%9Awi%C4%85tynia_Hwang' title='Świątynia Hwang'>Świątynia Hwang = Mroczna świątynia</a><br><a href='/index.php/W%C4%99%C5%BCowe_Pole' title='Wężowe Pole'>Wężowe Pole</a><br><a href='/index.php/Wie%C5%BCa_Demon%C3%B3w' title='Wieża Demonów'>Wieża Demonów = Demons Tower = DT</a><br><a href='/index.php/Zbocze_Gautama' title='Zbocze Gautama'>Zbocze Gautama</a></div><button>Lochy małp</button><div class='submenukx'><a href='/index.php/Hasun_Dong' title='Hasun Dong'>Hasun Dong = Loch słabych małp</a><br><a href='/index.php/Jungsun_Dong' title='Jungsun Dong'>Jungsun Dong = Loch normalnych małp</a><br><a href='/index.php/Sangsun_Dong' title='Sangsun Dong'>Sangsun Dong = Loch trudnych małp</a></div><button>Lochy pająków</button><div class='submenukx'><a href='/index.php/Kuahklo_Dong' title='Kuahklo Dong'>Kuahklo Dong = Loch pająków</a><br><a href='/index.php/2_loch_paj%C4%85k%C3%B3w' title='2 loch pająków'>2 loch pająków</a><br><a href='/index.php/3_Loch_Paj%C4%85k%C3%B3w' title='3 Loch Pająków'>3 Loch Pająków</a></div><button>Grota Wygnańców</button><div class='submenukx'><a href='/index.php/Grota_Wygna%C5%84c%C3%B3w' title='Grota Wygnańców'>Grota Wygnańców Poziom 1</a><br><a href='/index.php/Grota_Wygna%C5%84c%C3%B3w_2' title='Grota Wygnańców 2'>Grota Wygnańców Poziom 2</a></div><button>Dungeon'y</button><div class='submenukx'><a href='/index.php/Piekielne_Katakumby' title='Piekielne Katakumby'>Piekielne Katakumby = DC</a><br><a href='/index.php/Stra%C5%BCnica_Nemere' title='Strażnica Nemere'>Strażnica Nemere</a><br><a href='/index.php/%C5%9Awi%C4%85tynia_Smoka' title='Świątynia Smoka'>Świątynia Smoka</a><br><a href='/index.php/Twierdza_Czerwonego_Smoka' title='Twierdza Czerwonego Smoka'>Twierdza Czerwonego Smoka</a></div><button>Mapy specjalne</button><div class='submenukx'><a href='/index.php/Arena_Walk' title='Arena Walk'>Arena Walk</a><br><a href='/index.php/Arena_Wojen_Gildii' title='Arena Wojen Gildii'>Arena Wojen Gildii</a><br><a href='/index.php/Konkurs_OX' title='Konkurs OX'>Konkurs OX</a><br><a href='/index.php/Obszar_%C5%9Alubny' title='Obszar Ślubny'>Obszar Ślubny</a><br><a href='/index.php/Plac_Zabaw' title='Plac Zabaw'>Plac Zabaw</a><br><a href='/index.php/Wojna_Kr%C3%B3lestw' title='Wojna Królestw'>Wojna Królestw</a></div></div>";
}
}

 /* 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);
     };ff
 })();

/** 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;
		}
	    }
	}
    }
}

$(document).ready( 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);
	}
    }
}

$(document).ready( createNavigationBarToggleButton );

function toggle(div_id) {
                var menu = document.getElementById(div_id);
                menu.style.display = (menu.style.display == "none") ? "block" : "none";
}

importScript('MediaWiki:Common.js/SkinFixes.js');