MediaWiki:Common.js
Etoso
Notu:Post publikigo forviŝu la kaŝmemoron de via foliumilo por vidi la ŝanĝojn.
- Firefox / Safari: Premu majuskligan klavon klakante Reŝarĝi, aŭ premu aŭ Stir-F5 aŭ Stir-R (⌘-R kun Makintoŝo)
- Google Chrome: Premu Stir-majuskligklavon-R (⌘-Majuskligklavo-R kun Makintoŝo)
- Interreta Esplorilo / Edge: Premu Stir klakante Refreŝu, aŭ premu Stir-F5
- Opera: Premu Stir-F5.
/* Ĉiu ajn JavaSkriptaĵo ĉi tie estos ŝarĝita por ĉiu uzanto sur ĉiu paĝo. */
/**
* Trovita ĉe Arno Lagrange
* insertAfter : insérer un élément dans une page
*
* @deprecated since MediaWiki 1.16: Use jQuery instead:
* <code>
* $(foo).insertAfter(bar);
* $(bar).insertBefore(foo);
* </code>
*/
function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
// el la sorabaj vikipedioj kaj la franca
/**
* getElementsByClass
* rechercher les éléments de la page dont le paramètre "class" est celui recherché
*
* @deprecated since MediaWiki 1.16: Use jQuery instead:
* <code>
* $('.classname')
* $('tag.classname')
* $(subtree).find('tag.classname')
* </code>
*/
function getElementsByClass(searchClass, node, tag) {
if (node == null) node = document;
if (tag == null) tag = '';
return $(node).find(tag + '.' + searchClass).toArray();
}
/**
* Ĝuste akiras la tekstan entenaon de nodo kaj de ties idaj nodoj
* Kopirajto Harmen Christophe, http://openweb.eu.org/articles/validation_avancee, CC
*
* @deprecated since MediaWiki 1.17: Use jQuery instead:
* <code>
* var textContent = $(node).text();
* </code>
*/
function getTextContent(oNode) {
if(!oNode) return null;
return $(oNode).text();
}
if(!String.prototype.HTMLize){
String.prototype.HTMLize = function() {
var chars = [ '&', '<', '>', '"' ];
var entities = [ 'amp', 'lt', 'gt', 'quot' ];
var string = this;
for (var i=0; i<chars.length; i++) {
var regex = new RegExp(chars[i], "g");
string = string.replace(regex, '&' + entities[i] + ';');
}
return string;
};
}
// el la suprasoraba vikipedio. Ĝi estas uzata de la kaŝskatolaj funkcioj.
// ============================================================
/**
* hasclass
* (from en.wp and ru.wp)
*
* @deprecated since MediaWiki 1.16: Use jQuery instead:
* $(element).hasClass('name')
* $(element).hasClass('name foo')
* $(element).addClass('name')
* $(element).removeClass('foo')
*/
var hasClass = (function () {
var reCache = {};
return function (element, className) {
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
};
})();
/**
* addLoadEvent (for backwards compatibility)
*
* @deprecated since MediaWiki 1.16: Use $(document).ready instead
*/
function addLoadEvent(f) {
$(document).ready(f);
}
/**
* aOnloadFunctions
* @example setup onload functions this way:
* <code>
* aOnloadFunctions[aOnloadFunctions.length] = function_name;
* </code>
* @deprecated since MediaWiki 1.16: Use $(document).ready(function_name); instead
*/
if (!window.aOnloadFunctions) {
window.aOnloadFunctions = [];
}
$(window).on( 'load', function() {
if (window.aOnloadFunctions) {
for (var i = 0; i < aOnloadFunctions.length; i++) {
aOnloadFunctions[i]();
}
}
});
//============================================================
//
// KAŜSKATOLOJ
// El al hispana vikipedio, iomete modifita de Tlustulimu
/**
* Collapsible tables
*
* @version 2.0.1 (2013-03-26)
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
* @author [[User:R. Koot]]
* @author [[User:Krinkle]]
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
* is supported in MediaWiki core.
*/
var autoCollapse = 0;
var collapseCaption = 'Kaŝi';
var expandCaption = 'Montri';
window.collapseTable = function( 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;
}
};
window.createClickHandler = function( tableIndex ) {
return function ( e ) {
e.preventDefault();
collapseTable( tableIndex );
};
};
function createCollapseButtons() {
var tableIndex = 0;
var NavigationBoxes = {};
var Tables = document.getElementsByTagName( 'table' );
for ( var i = 0; i < Tables.length; i++ ) {
if ( $( Tables[i] ).hasClass( '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 ).on( 'click', createClickHandler( 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 ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) ||
( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) )
) {
collapseTable( i );
}
}
}
mw.hook( 'wikipage.content' ).add( createCollapseButtons );
// == Código del plegado/desplegado de plantillas ==
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
var NavigationBarShowDefault = autoCollapse;
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// indexNavigationBar: the index of navigation bar to be toggled
window.toggleNavigationBar = function (indexNavigationBar) {
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar),
NavFrame = document.getElementById("NavFrame" + indexNavigationBar),
NavChild;
if (!NavFrame || !NavToggle) {
return false;
}
// if shown now
if (NavToggle.firstChild.data == NavigationBarHide) {
for (NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
if ( $(NavChild).hasClass( 'NavContent' ) || $(NavChild).hasClass( 'NavPic' ) ) {
NavChild.style.display = 'none';
}
}
NavToggle.firstChild.data = NavigationBarShow;
// if hidden now
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
if ( $(NavChild).hasClass( 'NavContent' ) || $(NavChild).hasClass( 'NavPic' ) ) {
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
divs = document.getElementsByTagName("div"),
NavFrame,
NavChild,
i;
for (i = 0; NavFrame = divs[i]; i++) {
// if found a navigation bar
if ( $(NavFrame).hasClass( 'NavFrame' ) ) {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var isCollapsed = $(NavFrame).hasClass( '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 (NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) {
if (NavChild.style.display == 'none') {
isCollapsed = true;
}
}
}
if (isCollapsed) {
for (NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
if ( $(NavChild).hasClass( 'NavPic' ) || $(NavChild).hasClass( 'NavContent' ) ) {
NavChild.style.display = 'none';
}
}
}
var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide),
j;
NavToggle.appendChild(NavToggleText);
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
for (j = 0; j < NavFrame.childNodes.length; j++) {
if ( $(NavFrame.childNodes[j]).hasClass( 'NavHead' ) ) {
NavToggle.style.color = NavFrame.childNodes[j].style.color;
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
}
$(document).ready(createNavigationBarToggleButton);
// Funkcio por kaŝi/malkaŝi ĉiujn kaŝskatolojn de la paĝo samtempe
// Al la ĉefa kaŝskatolo aldonu klaso=NavFrameChefa
// kaj tiu skatolo estigos fermon aŭ malfermon de ĉiuj kasskatoloj en la paĝo
/* testa portempa malŝalto por ripari problemon de nefunkciado de Special:ContentTranslation
var NavigationBarHideChiujn = '[' + collapseCaption + ' ĉiujn ]'
var NavigationBarShowChiujn = '[' + expandCaption + ' ĉiujn ]'
var NavigationBarShowDefault = autoCollapse
function poviKolapsiChiujn(){
var navIdx = 0, colNavs = [], i, NavFrame
var divs = document.getElementById('content').getElementsByTagName('div')
for (i=0; NavFrame = divs[i]; i++) {
if (!hasClass(NavFrame, 'NavFrameChefa')) continue
NavFrame.id = 'NavFrameChefa' + navIdx
var a = document.createElement('a')
a.className = 'NavToggleChefa'
a.id = 'NavToggleChefa' + navIdx
a.href = 'javascript:kolapsuChiujn();'
a.appendChild(document.createTextNode(NavigationBarHideChiujn))
// 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], 'NavHeadChefa'))
NavFrame.childNodes[j].appendChild(a)
colNavs[navIdx++] = NavFrame
}
kolapsuChiujn()
for (i=0; i < navIdx; i++)
if ((navIdx > NavigationBarShowDefault && !hasClass(colNavs[i], 'expanded')) || hasClass(colNavs[i], 'collapsed'))
collapseDivChefa(navIdx)
}
function kolapsuChiujn()
{
var div = document.getElementById('NavFrameChefa0')
var btn = document.getElementById('NavToggleChefa0')
var navIdx = 0, navChefaIdx= 0, colNavs = [], colNavsChefa= [], i, NavFrame, NavFrameChefa
var divs = document.getElementById('content').getElementsByTagName('div')
if (!div || !btn) return false
var isShown = (btn.firstChild.data == NavigationBarHideChiujn)
btn.firstChild.data = isShown ? NavigationBarShowChiujn : NavigationBarHideChiujn
var disp = isShown ? 'none' : 'block'
for (var child = div.firstChild; child != null; child = child.nextSibling)
if (hasClass(child, 'NavPic') || hasClass(child, 'NavContent'))
child.style.display = disp
for (i=0; NavFrame = divs[i]; i++) {
if (!hasClass(NavFrame, 'NavFrame')) continue
NavFrame.id = 'NavFrame' + navIdx
colNavs[navIdx++] = NavFrame }
for (i=0; i < navIdx; i++){
div = document.getElementById('NavFrame' + i)
btn = document.getElementById('NavToggle' + i)
btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide
for (var child = div.firstChild; child != null; child = child.nextSibling) {
if (hasClass(child, 'NavPic') || hasClass(child, 'NavContent'))
child.style.display = disp}
}
}
function collapseDivChefa(idx) {
var div = document.getElementById('NavFrameChefa' + idx)
var btn = document.getElementById('NavToggleChefa' + idx)
if (!div || !btn) return false
var isShown = (btn.firstChild.data == NavigationBarHideChiujn)
btn.firstChild.data = isShown ? NavigationBarShowChiujn : NavigationBarHideChiujn
var disp = isShown ? 'none' : 'block'
for (var child = div.firstChild; child != null; child = child.nextSibling)
if (hasClass(child, 'NavPic') || hasClass(child, 'NavContent'))
child.style.display = disp
}
$(poviKolapsiChiujn);
// fino de testa forkomentigo
*/
// END Dynamic Navigation Bars
// ============================================================
//============================================================
//
// ELSTARAJ KAJ LEGINDAJ ARTIKOLOJ
//
//============================================================
/**
* Aldonas apartan signon al interlingvaj ligiloj al elstaraj au legindaj artikoloj
*/
//=============================================================
//*** Configuration for "star" logo in front of interwiki links to Featured Articles
//*** and green symbol in front of interwiki links to Good Articles
/** set to false in Special:Mypage/monobook.js to switch off this "feature" */
/** description that is displayed when cursor hovers above FA interwiki links */
var linkFA_description = "Ĉi tiu estas elstara artikolo.";
var linkGA_description = "Ĉi tiu estas leginda artikolo.";
// linkFA_bullet/linkGA_bullet and linkFA_style/linkGA_Style werden nur für cologneblue verwendet,
// für monobook, modern siehe [[MediaWiki:Common.css]], vector hat in [[MediaWiki:Vector.css] eigene Definitionen
/** image to use instead of the standard bullet (for cologneblue) */
var linkFA_bullet = "//upload.wikimedia.org/wikipedia/commons/d/d0/Monobook-bullet-star-transparent.png";
var linkGA_bullet = "//upload.wikimedia.org/wikipedia/commons/a/a1/Monobook-bullet-star-gray.png";
/** style to use for the linkFA_bullet/LinkGA_bullet img */
var linkFA_style = "margin-right: 0.2em;";
var linkGA_style = "margin-right: 0.2em;";
/**
* star logo for featured articles in other languages,
* see Template:Link_FA / Template:Link_GA and MediaWiki:Common.css
*/
jQuery( document ).ready(function() {
var skin = mw.config.get('skin');
// early exit when disabled
if ((mw.user.options.exists('linkFA_enabled') && !mw.user.options.get('linkFA_enabled'))) return;
// skins that can be handled the CSS class way
if (skin === "monobook" || skin === "modern" || skin === "vector" ) {
linkFA_CSS();
} else if (skin === "cologneblue") {
linkFA_decorate();
}
// For skin=monobook, modern, or vector
function linkFA_CSS() {
// links are to replaced in p-lang only
var pLang = document.getElementById("p-lang");
if (!pLang) return;
var lis = pLang.getElementsByTagName("li");
for (var i = 0; i < lis.length; i++) {
var li = lis[i];
//extract necessary classname
var matches = li.className.match( /(?:^| )(interwiki-[^ ]+)(?: |$)/ );
if ( !matches || matches.length != 2 ) {
continue;
}
var className = matches[1];
// only links with a corresponding Link_FA template are interesting
if (document.getElementById(className + "-fa") && li.className.indexOf("badge-featuredarticle") === -1) {
li.className += " FA"; // additional class so the template can be hidden with CSS
li.title = linkFA_description; // change title
continue;
}
if (document.getElementById(className + "-ga") && li.className.indexOf("badge-goodarticle") === -1) {
li.className += " GA"; // additional class so the template can be hidden with CSS
li.title = linkGA_description; // change title
continue;
}
}
}
/// For skin=cologneblue
function linkFA_decorate() {
// these root elements can contain FA-/GA-links
var rootIds = new Array("topbar", "footer");
for (var i=0; i<rootIds.length; i++) {
var root = document.getElementById(rootIds[i]);
if (!root) continue;
// if the root exists, try to decorate all the links within
var links = root.getElementsByTagName("a");
for (var j=0; j<links.length; j++) {
decorate(links[j], "-fa", linkFA_bullet, linkFA_description, linkFA_style);
decorate(links[j], "-ga", linkGA_bullet, linkGA_description, linkGA_style);
}
}
}
/** id necessary, modify a link to show the FA- or GA-star (older) */
function decorate(link, idSuffix, bullet, description, style) {
var lang = link.hostname.split(".")[0];
var fa = document.getElementById("interwiki-" + lang + idSuffix);
if (!fa) return;
// build an image-node for the FA-star
var img = document.createElement("img");
img.setAttribute("src", bullet);
img.setAttribute("alt", description);
img.setAttribute("style", style);
// decorate the link with the image
link.appendChild(img);
link.appendChild(link.removeChild(link.firstChild));
link.setAttribute("title", description);
}
});
/**
* WikiMiniAtlas is a popup click and drag world map.
* See [[meta:WikiMiniAtlas]] for more information.
* Maintainers: [[w:User:Dschwen]]
*/
mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript');
var wma_settings = {
buttonImage: '//upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Geographylogo.svg/18px-Geographylogo.svg.png'
};
/**
* Ebligas montri kaŝitajn kategoriojn por enskribitaj uzuloj
* aldonante (+) kiel ĉe kaŝskatoloj
*/
function hiddencat() {
var cl = document.getElementById('catlinks');
if(!cl) return;
var hc = document.getElementById('mw-hidden-catlinks');
if(!hc) return;
var nc = document.getElementById('mw-normal-catlinks');
if(!nc) return;
if($(hc).hasClass('mw-hidden-cats-hidden')) {
var ahc = ' | <a onclick="javascript:window.toggleHiddenCats();" id="mw-hidden-cats-link" style="cursor:pointer; color:black;" title="Ĉi tiu artikolo apartenas al kaŝita(j) kategorio(j)">[+]</a>';
document.getElementById('mw-normal-catlinks').innerHTML += ahc;
}
}
window.toggleHiddenCats = function () {
var $hc = $('#mw-hidden-catlinks');
if ($hc.hasClass('mw-hidden-cats-hidden')) {
$hc.removeClass('mw-hidden-cats-hidden');
document.getElementById('mw-hidden-cats-link').innerHTML = '[–]';
} else {
$hc.addClass('mw-hidden-cats-hidden');
document.getElementById('mw-hidden-cats-link').innerHTML = '[+]';
}
};
$(document).ready(hiddencat);
/**
* Por akiri la valoron de kuketo
*/
function getCookieVal(name) {
var cookiePos, cookieValue, endPos;
cookiePos = document.cookie.indexOf(name + "=");
cookieValue = false;
if (cookiePos > -1) {
cookiePos += name.length + 1;
endPos = document.cookie.indexOf(";", cookiePos);
if (endPos > -1) {
cookieValue = document.cookie.substring(cookiePos, endPos);
} else {
cookieValue = document.cookie.substring(cookiePos);
}
}
return cookieValue;
}
/*
* Kaŝas la skatolojn de la ĉefpaĝo
* Aldonas ligilon sur la ĉefpaĝon por facile kaŝi la skatolojn
* Memorigita per kuketo
* Kopirajto 2007, fr:user:Plyd kaj fr:User:IAlex. Licencoj GFDL kaj GPL.
* Esperantigita de eo:Vikipediisto:ArnoLagrange
*/
var pageName = mw.config.get('wgPageName');
// ĝi estu nur ŝarĝata sur la nomita paĝo
if (pageName === 'Uzanto:ArnoLagrange/Ĉefpaĝo') {
var kuketKashSkatolNomo = "kashSkatolChefpagho";
var KashSkatolVal = {};
var sumSkatolChefpagho = 0;
function montruSkatolChefpagho(id) {
videbla = KashSkatolVal[id] = (!KashSkatolVal[id]);
getElementsByClass('chefpagh_enteno', null,'div')[id].style.display = videbla ? 'block' : 'none';
document.getElementById('KashSkatolChefpagho' + id).innerHTML = videbla ? 'kaŝi' : 'montri';
konserviKuketonChefpagho();
}
function konserviKuketonChefpagho() {
var date = new Date();
date.setTime(date.getTime() + 30*86400*1000);
var val = 0;
for ( var i = 0; i < sumSkatolChefpagho ; i++ ) {
if (!KashSkatolVal[i]) val = val | Math.pow(2,i);
}
document.cookie = kuketKashSkatolNomo + "=" + val + "; expires="+date.toGMTString() + "; path=/";
}
function LigilojSkatolChefpagho() {
var videbla = {};
// if (wgPageName != "Ĉefpaĝo") return;
kuketSkatolChefpagho = getCookieVal(kuketKashSkatolNomo);
for ( var i=0; i<11; i++) {
var titolo = getElementsByClass('grizakapo',document,'h2')[i];
if (!titolo) break;
var ligilo = 'kaŝi';
videbla[i] = !(getElementsByClass('chefpagh_enteno',null,'div')[i].style.display == 'none') ;
if (!videbla[i]) ligilo = 'montri';
titolo.innerHTML += " <span style='font-size: xx-small; font-weight: normal; float: none; margin-right:100px' class='editsection'>[<a id='KashSkatolChefpagho" + i + "' href='javascript:montruSkatolChefpagho(" + i + ");'>" + ligilo + "</a>] </span>";
KashSkatolVal[i] = videbla[i];
sumSkatolChefpagho++;
}
kuketSkatolChefpagho = getCookieVal(kuketKashSkatolNomo);
for ( var i=0; i< sumSkatolChefpagho ; i++ ) {
n =Math.pow(2,i);
aff = !(kuketSkatolChefpagho & n);
if (!aff) montruSkatolChefpagho(i);
}
}
$(LigilojSkatolChefpagho);
} // fino de la enkrampigita skriptaro
/** Skripto por Ŝablono:Galerio */
$(function() {
if (document.URL.match(/printable/g)) return;
function toggleImageFunction(group, remindex, shwindex) {
return function() {
document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style.display = "none";
document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style.display = "block";
return false;
};
}
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 = [];
for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
var temp = UnitNode.childNodes[j];
if (['center', 'mw-halign-center'].some(function(className) { return temp.classList.contains(className); })) { units.push(temp); }
}
var rightlink;
var commentText;
var wrap;
for (j = 0; j < units.length; j++) {
currentimage = units[j];
wrap = document.createElement('div');
wrap.id = "ImageGroupsGr" + i + "Im" + j;
currentimage.parentNode.insertBefore(wrap, currentimage);
wrap.appendChild(currentimage);
var leftlink = document.createElement("a");
if (commentText !== undefined) {
leftlink.setAttribute("title", commentText);
}
var comment;
if (typeof(currentimage.getAttribute("title")) !== "string") {
commentText = (j+1) + "/" + units.length;
comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")"));
}
else {
commentText = currentimage.getAttribute("title");
comment = document.createElement("span").appendChild(document.createTextNode(commentText));
currentimage.removeAttribute("title");
}
if(rightlink !== undefined) {
rightlink.setAttribute("title", commentText);
}
var imghead = document.createElement("div");
rightlink = document.createElement("a");
if (j != 0) {
leftlink.href = "#";
leftlink.onclick = toggleImageFunction(i, j, j-1);
leftlink.appendChild(document.createTextNode("◀"));
}
if (j != units.length - 1) {
rightlink.onclick = toggleImageFunction(i, j, j+1);
rightlink.appendChild(document.createTextNode("▶"));
}
imghead.style.fontSize = "110%";
imghead.style.fontweight = "bold";
imghead.appendChild(leftlink);
imghead.appendChild(document.createTextNode("\xA0"));
imghead.appendChild(comment);
imghead.appendChild(document.createTextNode("\xA0"));
imghead.appendChild(rightlink);
if (units.length > 1) {
wrap.insertBefore(imghead,wrap.childNodes[0]);
}
if (j != 0) {
wrap.style.display = "none";
}
}
}
});
/**
* simila al innerHTML, sed resendas nur la teksterojn en la internaj ekskludas HTML
*/
function pickUpText(aParentElement) {
var str = "";
function pickUpTextInternal(aElement) {
var child = aElement.firstChild;
while (child) {
if (child.nodeType == 1) // ELEMENT_NODE
pickUpTextInternal(child);
else if (child.nodeType == 3) // TEXT_NODE
str += child.nodeValue;
child = child.nextSibling;
}
}
pickUpTextInternal(aParentElement);
return str;
}
/**
* ImageAnnotator
* Globally enabled per
* //commons.wikimedia.org/w/index.php?title=Commons:Village_pump&oldid=26818359#New_interface_feature
*
* Maintainer: [[User:Lupo]]
*/
if (mw.config.get('wgNamespaceNumber') !== -1 && mw.config.get('wgAction') === 'view') {
// Not on Special pages, and only if viewing the page
if (typeof ImageAnnotator_disable === 'undefined' || !ImageAnnotator_disable) {
// Don't even import it if it's disabled.
// laŭ diversaj paĝoj "deprecated" kaj povas fari problemojn en kelkaj foliumiloj
// importScript('MediaWiki:Gadget-ImageAnnotator.js');
mw.loader.load("//eo.wikipedia.org/w/index.php?title=MediaWiki:Gadget-ImageAnnotator.js&action=raw&ctype=text/javascript");
}
}
/** Magic editintros
*
* Priskribo: Aldonas averton Bdv-averto en paĝoj de vivantaj homoj.
* Aldono de la 3-a de majo 2024: aldonas averton Dato-atentigo al paĝo en la kategorio "Tagoj de la jaro".
* Aldonita de: [[Uzanto:Yekrats]] laŭ la anglalingva vikipedio
*/
function addEditIntro(name) {
var el = document.getElementById('ca-edit');
if (!el)
return;
el = el.getElementsByTagName('a')[0];
if (el)
el.href += '&editintro=' + name;
}
if (mw.config.get('wgNamespaceNumber') === 0) {
$(document).ready(function(){
var cats = document.getElementById('mw-normal-catlinks');
if (!cats)
return;
cats = cats.getElementsByTagName('a');
for (var i = 0; i < cats.length; i++) {
if (cats[i].title == 'Kategorio:Vivantaj homoj' ) {
addEditIntro('Ŝablono:Bdv-averto');
break;
}
if (cats[i].title == 'Kategorio:Tagoj de la jaro' ) {
addEditIntro('Ŝablono:Dato-atentigo');
break;
}
}
});
}
/**
* Script pour alterner entre plusieurs cartes de géolocalisation
*/
function GeoBox_Init(Element){
if(!Element) Element = document.body;
var cont = $( Element ).find( 'div.img_toogle' ).get();
for (var i = 0,m=cont.length; i < m; i++) {
cont[i].id = 'img_toogle_' + i;
var Boxes = $( cont[i] ).find( '.geobox' ).get();
var ToggleLinksDiv = document.createElement('ul');
ToggleLinksDiv.id = 'geoboxToggleLinks_' + i;
for(var a=0,l=Boxes.length;a<l;a++){
var ThisBox = Boxes[a];
ThisBox.id = 'geobox_' + i + "_" + a;
ThisBox.style.borderTop='0';
var img = ThisBox.getElementsByTagName('img')
var ThisAlt = img ? img[0].alt : '';
var toggle = document.createElement('a');
toggle.id = 'geoboxToggle_' + i + "_" + a;
toggle.appendChild(document.createTextNode(ThisAlt));
toggle.href='javascript:;';
toggle.onclick = function(){
GeoBox_Toggle(this);
return false;
};
var Li = document.createElement('li');
Li.appendChild(toggle);
ToggleLinksDiv.appendChild(Li);
if(a==(l-1)){
Li.style.display = "none";
}else{
ThisBox.style.display = "none";
}
}
cont[i].appendChild(ToggleLinksDiv);
}
}
function GeoBox_Toggle(link){
var ImgToggleIndex = link.id.split('geoboxToggle_').join('').replace(/_.*/g, "");
var GeoBoxIndex = link.id.replace(/.*_/g, "");
var ImageToggle = document.getElementById('img_toogle_' + ImgToggleIndex);
var Links = document.getElementById('geoboxToggleLinks_' + ImgToggleIndex);
var Geobox = document.getElementById('geobox_' + ImgToggleIndex + "_" + GeoBoxIndex);
var Link = document.getElementById('geoboxToggle_' + ImgToggleIndex + "_" + GeoBoxIndex);
if( (!ImageToggle) || (!Links) || (!Geobox) || (!Link) ) return;
var AllGeoboxes = $( ImageToggle ).find( '.geobox' ).get();
for(var a=0,l=AllGeoboxes.length;a<l;a++){
var ThisgeoBox = AllGeoboxes[a];
if(ThisgeoBox.id === Geobox.id){
ThisgeoBox.style.display = "";
}else{
ThisgeoBox.style.display = "none";
}
}
var AllToggleLinks = Links.getElementsByTagName('a');
for(var a=0,l=AllToggleLinks.length;a<l;a++){
var thisToggleLink = AllToggleLinks[a];
if(thisToggleLink.id === Link.id){
thisToggleLink.parentNode.style.display = "none";
}else{
thisToggleLink.parentNode.style.display = "";
}
}
}
if ( ['view','submit'].indexOf(mw.config.get('wgAction')) !== -1) {
$( function() {
GeoBox_Init();
} );
}
/** Ĉefpaĝaj korektoj *********************************************************
* prenita el la anglalingva Vikipedio
* Priskribo: Aldonas kroman ligilon al plena listo da haveblaj lingvoj .
* Maintainers: [[:en:User:AzaToth]], [[:en:User:R. Koot]], [[:en:User:Alex Smotrov]]
*/
/**
* Plibonigo por la Ĉefpaĝo
*
* Priskribo : Diversaj plibonigoj por la ĉefpaĝo, inkluzive ligon al plena listo
* de haveblaj lingvoj
* <kaj renomo de 'artikolo' al 'portalo'.> ????
* Adaptado de [[en:MediaWiki:Common.js]]
*/
var pageName = mw.config.get('wgPageName');
if (mw.config.get('wgIsMainPage') || pageName === 'Vikipedio:Ĉefpaĝo' || pageName === 'Vikipedia_diskuto:Ĉefpaĝo') {
$(document).ready(function () {
mw.loader.using('mediawiki.util', function () {
var link = mw.util.addPortletLink('p-lang', '//meta.wikimedia.org/wiki/Listo_de_Vikipedioj',
'Plena listo', 'interwiki-completelist', 'Plena listo da Vikipedioj');
$(link).css('fontWeight', 'bold');
});
$('#ca-nstab-main a').text('Main Page');
});
}
/* Not working; disabled, 2014-10-14 by [[User:Jdforrester (WMF)]]
mw.loader.using('mediawiki.util', function () {
$(document).ready(addCommonsUpload);
});
*/
/**
* Nova alŝuta formularo
* fonto: //sk.wikipedia.org/wiki/MediaWiki:Common.js
* ankoraŭ ne aktivigita. vidu malsupre
*/
function EasyUpload() {
$('#t-upload').attr('href', '/wiki/Helpo:Alŝutado de bildoj');
}
// $(document).ready(EasyUpload);
// Serĉorezultoj de Vikidatumoj
// [[File:Wdsearch_script_screenshot.png]]
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search' || ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgCanonicalSpecialPageName' ) === false ) ) {
mw.loader.load("//en.wikipedia.org/w/index.php?title=MediaWiki:Wdsearch.js&action=raw&ctype=text/javascript");
}
// el la franca vikipedio: [[:fr:MediaWiki:Common.js]], jam testita sur [[Uzanto:Tlustulimu/vector.js]]
/**
* Uzata de la ŝablono Ŝablono:Bildaro
*/
/**
* Utilisation du modèle Modèle:Animation
*/
var Diaporama = {};
Diaporama.Params = {};
Diaporama.Fonctions = {};
Diaporama.Params.DiaporamaIndex = 0;
Diaporama.Params.ImageDelay = 1;
Diaporama.Params.Paused = [];
Diaporama.Params.Visible = [];
Diaporama.Params.Length = [];
Diaporama.Params.Delay = [];
Diaporama.Params.Timeout = [];
Diaporama.Fonctions.Init = function(node){
if(!node) node = document;
var Diaporamas = $( node ).find( 'div.diaporama' ).get();
for(var a=0,l=Diaporamas.length;a<l;a++){
Diaporama.Fonctions.InitDiaporama(Diaporamas[a]);
}
};
Diaporama.Fonctions.InitDiaporama = function(DiaporamaDiv){
var index = Diaporama.Params.DiaporamaIndex;
Diaporama.Params.DiaporamaIndex++;
DiaporamaDiv.id = "Diaporama_"+index;
var DiaporamaFileContainer = $( DiaporamaDiv ).find( 'div.diaporamaFiles' )[0];
var DiaporamaControl = $( DiaporamaDiv ).find( 'div.diaporamaControl' )[0];
if(!DiaporamaFileContainer || !DiaporamaControl) return;
var DiaporamaFiles = $( DiaporamaFileContainer ).find( 'div.ImageFile' ).get();
var width;
var firstTumbinner = $( DiaporamaFileContainer ).find( 'div.thumbinner' )[0];
if(firstTumbinner){ // force la largeur du diaporama (pour IE)
width = firstTumbinner.style.width.split("px").join("");
}else{
if(DiaporamaFileContainer.firstChild.firstChild) width = DiaporamaFileContainer.firstChild.firstChild.offsetWidth;
}
if(width) DiaporamaDiv.style.width = (parseInt(width)+30) + "px";
if(DiaporamaFiles.length<2) return;
Diaporama.Params.Length[index] = DiaporamaFiles.length;
DiaporamaFileContainer.id = "DiaporamaFileContainer_"+index;
DiaporamaControl.id = "DiaporamaControl_"+index;
Diaporama.Params.Delay[index] = Diaporama.Params.ImageDelay;
var DiaporamaDivClass = DiaporamaDiv.className.HTMLize();
var ParamDelay = DiaporamaDivClass.match(/Delay[0-9]+(\.|,)?[0-9]*/);
if(ParamDelay!=null){
ParamDelay = parseFloat(ParamDelay[0].split("Delay").join("").split(",").join("."));
if(ParamDelay && ParamDelay>0) Diaporama.Params.Delay[index] = ParamDelay;
}
Diaporama.Fonctions.ShowThisDiapo(index, 0);
var ControlLinks = DiaporamaControl.getElementsByTagName("a");
ControlLinks[0].firstChild.id = "DiaporamaPlay"+index;
ControlLinks[0].href = "javascript:Diaporama.Fonctions.Play("+index+");";
ControlLinks[1].firstChild.id = "DiaporamaPause"+index;
ControlLinks[1].href = "javascript:Diaporama.Fonctions.Pause("+index+");";
ControlLinks[2].firstChild.id = "DiaporamaStop"+index;
ControlLinks[2].href = "javascript:Diaporama.Fonctions.Stop("+index+");";
ControlLinks[3].firstChild.id = "DiaporamaLast"+index;
ControlLinks[3].href = "javascript:Diaporama.Fonctions.ToggleDiapo("+index+",-1);";
ControlLinks[4].firstChild.id = "DiaporamaNext"+index;
ControlLinks[4].href = "javascript:Diaporama.Fonctions.ToggleDiapo("+index+", 1);";
ControlLinks[5].parentNode.appendChild(Diaporama.Fonctions.CreateSelect(index, ControlLinks[5].title));
ControlLinks[5].parentNode.removeChild(ControlLinks[5]);
for(var e=0,t=ControlLinks.length;e<t;e++){
ControlLinks[e].onmousedown = function(){Diaporama.Fonctions.Onclick(this);};
ControlLinks[e].onmouseup = function(){Diaporama.Fonctions.Offclick(this, index);};
ControlLinks[e].firstChild.style.backgroundColor = "white";
ControlLinks[e].onmouseover = function(){ this.focus(); };
}
DiaporamaControl.style.display = "block";
if( $( DiaporamaDiv ).hasClass( 'Autoplay' ) ){
Diaporama.Fonctions.Play(index);
}else{
Diaporama.Fonctions.Pause(index);
}
};
Diaporama.Fonctions.Play = function(index){
if(Diaporama.Params.Paused[index] === false) return;
Diaporama.Params.Paused[index] = false;
clearTimeout(Diaporama.Params.Timeout[index]);
Diaporama.Params.Timeout[index] = setTimeout("Diaporama.Fonctions.ToggleDiapo("+index+",1);", Diaporama.Params.Delay[index]*1000);
var ButtonPlay = document.getElementById("DiaporamaPlay"+index);
ButtonPlay.style.backgroundColor = "silver";
var ButtonPause = document.getElementById("DiaporamaPause"+index);
ButtonPause.style.backgroundColor = "white";
var ButtonStop = document.getElementById("DiaporamaStop"+index);
ButtonStop.style.backgroundColor = "white";
};
Diaporama.Fonctions.Pause = function(index){
Diaporama.Params.Paused[index] = true;
clearTimeout(Diaporama.Params.Timeout[index]);
var ButtonPlay = document.getElementById("DiaporamaPlay"+index);
ButtonPlay.style.backgroundColor = "white";
var ButtonPause = document.getElementById("DiaporamaPause"+index);
ButtonPause.style.backgroundColor = "silver";
var ButtonStop = document.getElementById("DiaporamaStop"+index);
ButtonStop.style.backgroundColor = "white";
};
Diaporama.Fonctions.Stop = function(index){
Diaporama.Params.Paused[index] = true;
clearTimeout(Diaporama.Params.Timeout[index]);
Diaporama.Fonctions.ShowThisDiapo(index, 0);
var ButtonPlay = document.getElementById("DiaporamaPlay"+index);
ButtonPlay.style.backgroundColor = "white";
var ButtonPause = document.getElementById("DiaporamaPause"+index);
ButtonPause.style.backgroundColor = "white";
var ButtonStop = document.getElementById("DiaporamaStop"+index);
ButtonStop.style.backgroundColor = "silver";
};
Diaporama.Fonctions.ToggleDiapo = function(index, diff){
clearTimeout(Diaporama.Params.Timeout[index]);
var DiaporamaFileContainer = document.getElementById("DiaporamaFileContainer_"+index);
var DiaporamaFiles = $( DiaporamaFileContainer ).find( 'div.ImageFile' ).get();
var VisibleIndex = Diaporama.Params.Visible[index];
var NextDiaporamaIndex = (VisibleIndex+diff);
if(NextDiaporamaIndex==DiaporamaFiles.length || NextDiaporamaIndex<0){
var DiaporamaDiv = document.getElementById("Diaporama_"+index);
if( diff < 0 || ! $( DiaporamaDiv ).hasClass( 'AutoLoop' ) ){
return;
}
NextDiaporamaIndex = 0;
}
Diaporama.Fonctions.ShowThisDiapo(index, NextDiaporamaIndex);
};
Diaporama.Fonctions.ShowThisDiapo = function(index, Value){
clearTimeout(Diaporama.Params.Timeout[index]);
var DiaporamaFileContainer = document.getElementById("DiaporamaFileContainer_"+index);
var DiaporamaFiles = $( DiaporamaFileContainer ).find( 'div.ImageFile' ).get();
for(var x=0,z=DiaporamaFiles.length;x<z;x++){
if(x!=Value){
DiaporamaFiles[x].style.display = "none";
}else{
DiaporamaFiles[x].style.display = "block";
}
}
Diaporama.Params.Visible[index] = Value;
Diaporama.Fonctions.UpdateBar(index);
Diaporama.Fonctions.UpdateSelect(index);
if(!Diaporama.Params.Paused[index]){
var multipl = 1;
if(Value==(Diaporama.Params.Length[index]-1)) multipl = 3;
Diaporama.Params.Timeout[index] = setTimeout("Diaporama.Fonctions.ToggleDiapo("+index+",1);", Diaporama.Params.Delay[index]*1000*multipl);
}
};
Diaporama.Fonctions.CreateSelect = function(index, Title){
var Total = Diaporama.Params.Length[index];
var Select = document.createElement('select');
Select.id = "DiaporamaSelect"+index;
Select.title = Title;
for(var s=0;s<Total;s++){
var Opt = document.createElement('option');
if(s==0) Opt.selected = "selected";
Opt.text = (s+1)+"/"+Total;
Opt.innerHTML = (s+1)+"/"+Total;
Opt.value = s;
Select.appendChild(Opt);
}
Select.onchange = function(){ Diaporama.Fonctions.SelectDiapo(Diaporama.Fonctions.getIndex(this)); };
Select.onmouseover = function(){ this.focus(); };
return Select;
};
Diaporama.Fonctions.SelectDiapo = function(index){
var Select = document.getElementById("DiaporamaSelect"+index);
if(!Select) return;
var Opts = Select.getElementsByTagName('option');
for(var o=0,p=Opts.length;o<p;o++){
if(Opts[o].selected) {
var Value = parseInt(Opts[o].value);
return Diaporama.Fonctions.ShowThisDiapo(index, Value);
}
}
};
Diaporama.Fonctions.UpdateSelect = function(index){
var Select = document.getElementById("DiaporamaSelect"+index);
if(!Select) return;
var Opts = Select.getElementsByTagName('option');
for(var o=0,p=Opts.length;o<p;o++){
if(o==Diaporama.Params.Visible[index]) {
Opts[o].selected = "selected";
}else{
Opts[o].selected = false;
}
}
};
Diaporama.Fonctions.UpdateBar = function(index){
var Percent = (100/(Diaporama.Params.Length[index]-1)) * Diaporama.Params.Visible[index];
if(Percent>100) Percent = 100;
var DiaporamaControl = document.getElementById("DiaporamaControl_"+index);
var DiaporamaScrollBar = $( DiaporamaControl ).find( 'div.ScrollBar' )[0];
DiaporamaScrollBar.style.width = Percent + "%";
};
Diaporama.Fonctions.Onclick = function(Link){
var Image = Link.getElementsByTagName('img')[0];
Image.style.backgroundColor = "gray";
};
Diaporama.Fonctions.Offclick = function(Link, index){
var Span = Link.parentNode;
var SpanClass = Span.className;
var Image = Link.getElementsByTagName('img')[0];
var DiapoState = Diaporama.Params.Paused[index];
if( ( $( Span ).hasClass( 'Play' ) && DiapoState == false ) || ( ( $( Span ).hasClass( 'Pause' ) || $( Span ).hasClass( 'Stop' ) ) && DiapoState == true ) ){
Image.style.backgroundColor = "silver";
}else{
Image.style.backgroundColor = "white";
}
};
Diaporama.Fonctions.getIndex = function(Element){
return parseInt(Element.id.replace(/[^0-9]/g, ""));
};
$( function () {
Diaporama.Fonctions.Init();
} );