MediaWiki:Common.js
Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.
- Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
- Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
- Internet Explorer / Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
- Opera: Nyomj Ctrl–F5-öt
/* Az ide elhelyezett JavaScript kód minden felhasználó számára lefut az oldalak betöltésekor. */
/**
* Segédfüggvények
*/
function addLoadEvent(func) {
$(document).ready(func);
}
var hasClass = (function () {
var reCache = {};
return function (element, className) {
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
};
})();
function getCookie(name) {
var cookieText;
var cookiePos = document.cookie.indexOf(name + '=');
if(cookiePos!=-1) {
var results = document.cookie.match(name+'=(.*?)(;|$)');
if(results) cookieText = unescape(results[1]);
return cookieText;
} else return null;
}
function setCookie(name, text, expires) {
if(text) {
if(expires) {
document.cookie = name + '=' + escape(text) + '; expires=' + expires.toUTCString() + '; path=/';
} else {
document.cookie = name + '=' + escape(text) + '; path=/';
}
} else {
document.cookie = name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/'; // delete cookie
}
}
function importScript(location) {
var script = document.createElement('script');
script.src = location;
document.getElementsByTagName('head')[0].appendChild(script);
}
/**
* Elrejthető üzenetek
*/
function hideElement(e) {
var name = this.id.slice(5); // 'hide-' elhagyása
var element = document.getElementById(name);
var expires = new Date();
expires.setTime( expires.getTime() + (7*24*60*60*1000) ); // 1 hét
setCookie('hide-' + name, '1', expires);
element.style.display = "none";
this.style.display = "none";
return false;
}
function addHideButton(element) {
var isHidden = getCookie('hide-' + element.id);
if(isHidden) {
element.style.display = "none";
} else {
var button = document.createElement( "a" );
button.setAttribute( "id", "hide-" + element.id);
button.setAttribute( "class", "hideButton" );
button.setAttribute( "href", "#" );
button.setAttribute( "title", "Üzenet elrejtése egy hétre" );
button.onclick = hideElement;
button.appendChild( document.createTextNode("[elrejt]") );
element.appendChild( button );
}
}
/**
* WikiMiniAtlas
*/
mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400');
/**
* Navigációs kapcsoló (kinyit/becsuk)
*/
// ============================================================
// BEGIN Dynamic Navigation Bars (experimantal)
// set up the words in your language
var NavigationBarHide = '▲ becsuk';
var NavigationBarShow = '▼ kinyit';
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
var NavigationBarShowDefault = 0;
// 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 (NavChild.className == 'NavPic') {
NavChild.style.display = 'none';
}
if (NavChild.className == '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 (NavChild.className == 'NavPic') {
NavChild.style.display = 'block';
}
if (NavChild.className == '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
for(
var i=0;
NavFrame = document.getElementsByTagName("div")[i];
i++
) {
// if found a navigation bar
if (NavFrame.className == "NavFrame") {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var NavToggleText = document.createTextNode(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 (NavFrame.childNodes[j].className == "NavHead") {
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
// if more Navigation Bars found than Default: hide all
if (NavigationBarShowDefault < indexNavigationBar) {
for(
var i=1;
i<=indexNavigationBar;
i++
) {
toggleNavigationBar(i);
}
}
}
if (!fCreateNavigationBarToggleButton) addLoadEvent(createNavigationBarToggleButton);
var fCreateNavigationBarToggleButton = 1;
// END Dynamic Navigation Bars
// ============================================================
/*
=== Table (collapsible) ===
*/
/** Collapsible tables *********************************************************
*
* Description: Allows tables to be collapsed, showing only the header. See
* Wikipedia:NavFrame.
* Maintainers: User:R. Koot
*/
var autoCollapse = 2;
var collapseCaption = "▲ becsuk";
var expandCaption = "▼ kinyit";
function collapseTable( tableIndex )
{
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.getElementsByTagName( "tr" );
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" ) ) {
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.setAttribute( "id", "collapseButton" + tableIndex );
ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
ButtonLink.appendChild( ButtonText );
Button.appendChild( ButtonLink );
var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
/* only add button and increment count if there is a header row to work with */
if (Header) {
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 );
}
}
}
if (!fCreateCollapseButtons) $( createCollapseButtons );
var fCreateCollapseButtons = 1;
/**
* Legördülő menü és extra gombok az edittools-ba
*/
if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0 || document.URL.indexOf("Speci%C3%A1lis:Upload") > 0) {
// Listbox to select edit tools
function addCharSubsetMenu() {
var specialchars = document.getElementById('specialchars');
if (specialchars) {
var menu = document.createElement('select');
menu.style.display = 'inline';
menu.onchange = function() {
chooseCharSubset(menu.options[menu.selectedIndex].value);
}
var specialCharacterTypes = new Object();
var l = document.getElementById('specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length; i++) {
var title = l[i].title;
var opt = document.createElement('option');
opt.appendChild(document.createTextNode(title));
opt.value = i;
specialCharacterTypes[title] = opt;
}
if(typeof(allowedSpecialCharacterTypes) == 'undefined') {
for (var i = 0; i < l.length; i++) {
menu.appendChild(specialCharacterTypes[l[i].title]);
}
chooseCharSubset(0);
} else {
for(var i = 0; i < allowedSpecialCharacterTypes.length; i++) {
if(typeof(specialCharacterTypes[allowedSpecialCharacterTypes[i]]) != 'undefined') {
menu.appendChild(specialCharacterTypes[allowedSpecialCharacterTypes[i]]);
}
}
chooseCharSubset(specialCharacterTypes[allowedSpecialCharacterTypes[0]].value);
}
specialchars.insertBefore(menu, specialchars.firstChild);
}
}
function chooseCharSubset(s) {
var l = document.getElementById('specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
l[i].style.display = (i == s) ? 'inline' : 'none';
}
}
// Extra buttons for the edit toolbar, based on en:User:MarkS/extraeditbuttons.js
$(addCharSubsetMenu);
}