-

De Wiki Grepolis AR
Saltar a: navegación, buscar
(Página creada con «Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página: importScript_ = importScript importScript = function (page, p...»)
 
Línea 1: Línea 1:
/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */
+
//Alias
 +
(function ( $, mw ) {
 +
/**
 +
* Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
 +
* loaded for all users on every wiki page. If possible create a gadget that is
 +
* enabled by default instead of adding it here (since gadgets are fully
 +
* optimized ResourceLoader modules with possibility to add dependencies etc.)
 +
*
 +
* Since common.js isn't a gadget, there is no place to declare its
 +
* dependencies, so we have to lazy load them with mw.loader.using on demand and
 +
* then execute the rest in the callback. In most cases these dependencies will
 +
* be loaded (or loading) already and the callback will not be delayed. In case a
 +
* dependency hasn't arrived yet it'll make sure those are loaded before this.
 +
*/
 +
mw.loader.using( 'mediawiki.util', function() {
 +
/* Begin of mw.loader.using callback */
  
importScript_ = importScript
+
//Compatibilidad
importScript = function (page, proj){
+
 
if (!proj) importScript_(page)
+
/* Scripts specific to Internet Explorer */
else {
+
if ($.client.profile().name == 'msie') {
  if (proj.indexOf('.')==-1) proj += '.wikipedia.org'
+
    if ( +$.client.profile().versionBase < 11 ) {
  importScriptURI('http://'+proj+'/w/index.php?action=raw&ctype=text/javascript&title='+encodeURIComponent(page.replace(/ /g,'_')))
+
        /**
}
+
        *  Description: Fixes IE horizontal scrollbar bug
 +
        *  Maintainers: [[User:Tom-]]?
 +
        */
 +
        var oldWidth;
 +
        var docEl = document.documentElement;
 +
 
 +
        var doFixIEScroll = function () {
 +
            docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
 +
        };
 +
        var fixIEScroll = function () {
 +
            if (!oldWidth || docEl.clientWidth > oldWidth) {
 +
                doFixIEScroll();
 +
            } else {
 +
                setTimeout(doFixIEScroll, 1);
 +
            }
 +
 
 +
            oldWidth = docEl.clientWidth;
 +
        };
 +
 
 +
        document.attachEvent("onreadystatechange", fixIEScroll);
 +
        document.attachEvent("onresize", fixIEScroll);
 +
    }
 +
 
 +
    // IE overflow bug
 +
    mw.util.addCSS('div.overflowbugx { overflow-x: scroll !important; overflow-y: hidden !important; } div.overflowbugy { overflow-y: scroll !important; overflow-x: hidden !important; }');
 +
 
 +
    // IE zoomfix
 +
    // Use to fix right floating div/table inside tables
 +
    mw.util.addCSS('.iezoomfix div, .iezoomfix table { zoom: 1;}');
 +
 
 +
    /* Helper script for .hlist class in common.css
 +
    * Maintainer: [[User:Edokter]]
 +
    */
 +
    /* Add pseudo-selector class to last child list items in IE 8 */
 +
    if ( $.client.profile().versionBase == '8' ) {
 +
        $( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
 +
          .addClass( 'hlist-last-child' );
 +
    }
 +
}
 +
 
 +
/* Fixes for Windows XP font rendering */
 +
if (navigator.appVersion.search(/windows nt 5/i) != -1) {
 +
    mw.util.addCSS('.IPA {font-family: "Lucida Sans Unicode", "Arial Unicode MS";} ' +
 +
                  '.Unicode {font-family: "Arial Unicode MS", "Lucida Sans Unicode";}');
 
}
 
}
importMW = function (name) { importScript('MediaWiki:'+name+'.js') }
+
 +
/* Helper script for .hlist class in common.css
 +
* Maintainer: [[User:Edokter]]
 +
*/
  
 +
// Funcionalidad
  
function LinkFA(){
+
/**
  var pLang = document.getElementById('p-lang')
+
  * Redirect User:Name/skin.js and skin.css to the current skin's pages
  if (!pLang) return
+
* (unless the 'skin' page really exists)
  var list = {
+
  * @source: //www.mediawiki.org/wiki/Snippets/Redirect_skin.js
  'fa':'Эта статья является избранной',
+
  * @rev: 3
'fl':'Этот список или портал является избранным',
+
  */
'ga':'Эта статья является хорошей'}
+
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
var iw = pLang.getElementsByTagName('li')
+
    var titleParts = mw.config.get( 'wgPageName' ).split( '/' );
for (var i=0; i<iw.length; i++)
+
    // Make sure there was a part before and after the slash
  for (var s in list)
+
    // And that the latter is 'skin.js' or 'skin.css'
    if (document.getElementById(iw[i].className+'-'+s)){
+
    if ( titleParts.length == 2 ) {
      iw[i].className += ' ' + s.toUpperCase()
+
        var userSkinPage = titleParts[0] + '/' + mw.config.get( 'skin' );
      iw[i].title = list[s] + ' в другом языковом разделе'
+
        if ( titleParts[1] === 'skin.js' ) {
    }
+
            location.href = mw.util.getUrl( userSkinPage + '.js' );
 +
        } else if ( titleParts[1] === 'skin.css' ) {
 +
            location.href = mw.util.getUrl( userSkinPage + '.css' );
 +
        }
 +
    }
 
}
 
}
  
 +
/** &withCSS= and &withJS= URL parameters *******
 +
* Allow to try custom scripts from MediaWiki space
 +
* without editing personal .css or .js files
 +
*/
 +
var extraCSS = mw.util.getParamValue('withCSS'),
 +
    extraJS = mw.util.getParamValue('withJS');
  
function icqIcons(){
+
if (extraCSS) {
var a, spans = document.getElementById('content').getElementsByTagName('span')
+
    if (extraCSS.match(/^MediaWiki:[^&<>=%#]*\.css$/)) {
for (var i=0; a=spans[i]; i++)
+
        mw.loader.load('/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css');
  if (a.className == 'ICQ')
+
    } else {
    a.style.backgroundImage = "url('http://status.icq.com/online.gif?icq="+a.id+"&img=5&randseed="+Math.floor(Math.random()*10000000)+"')"
+
        mw.notify('Solo se pueden cargar páginas del espacio de nombres MediaWiki.', {title: 'Valor withCSS no permitido'});
 +
    }
 
}
 
}
  
 +
if (extraJS) {
 +
    if (extraJS.match(/^MediaWiki:[^&<>=%#]*\.js$/)) {
 +
        mw.loader.load('/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript');
 +
    } else {
 +
        mw.notify('Solo se pueden cargar páginas del espacio de nombres MediaWiki.', {title: 'Valor withJS no permitido'});
 +
    }
 +
}
  
function editZeroSection(){
+
// Results from Wikidata
var body = document.getElementById('bodyContent')
+
// [[File:Wdsearch_script_screenshot.png]]
if (!body) return
+
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search' ||  ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgCanonicalSpecialPageName' ) === false ) ) {
var h2s = body.getElementsByTagName('H2')
+
        mw.loader.load("//en.wikipedia.org/w/index.php?title=MediaWiki:Wdsearch.js&action=raw&ctype=text/javascript");
var h2 = h2s[0]
 
if (!h2) return
 
if (h2.parentNode.id == 'toctitle') h2 = h2s[1]
 
if (!h2) return
 
var span = h2.firstChild
 
if (!span || span.className != 'editsection') return
 
  var zero = span.cloneNode(true)
 
body.insertBefore(zero, body.firstChild)
 
var a = zero.getElementsByTagName('a')[0]
 
if (a.href.indexOf('&section=T') == -1 ) a.title = a.title.replace(/:.*$/,': 0')
 
else a.title = 'Править секцию: 0'
 
a.setAttribute('href', wgScript + '?title='+encodeURIComponent(wgPageName) + '&action=edit&section=0')
 
 
}
 
}
  
 +
//Edición
 +
if ( $.inArray(mw.config.get('wgAction'), ['edit', 'submit'] ) > -1) {
 +
    /** Fix edit summary prompt for undo  ******************************************
 +
    *  Fixes the fact that the undo function combined with the "no edit summary prompter"
 +
    *  causes problems if leaving the edit summary unchanged.
 +
    *  Added by [[User:Deskana]], code by [[User:Tra]].
 +
    *  See also [[bugzilla:8912]].
 +
    */
 +
    $(document).ready( function () {
 +
        if (location.search.indexOf("undo=") != -1 && document.getElementsByName('wpAutoSummary')[0]) {
 +
            document.getElementsByName('wpAutoSummary')[0].value = '1';
 +
        }
 +
    });
  
 +
    /**
 +
    * Caracteres especiales (edittools)
 +
    * Crea (y coloca) el ''combobox'' que permite seleccionar un conjunto determinado de
 +
    * caracteres especiales bajo la caja de edición.
 +
    * Funciona en conjunto con [[MediaWiki:Edittools]] y [[MediaWiki:Edittools.js]].
 +
    * Basado en [[commons:MediaWiki:Edittools.js]].
 +
    */
 +
    mw.loader.load('/w/index.php?title=MediaWiki:Edittools.javascript&action=raw&ctype=text/javascript');
  
 +
    //Seguimiento
 +
} else if (mw.config.get('wgPageName') == 'Especial:Seguimiento') {
 +
    mw.loader.load( mw.config.get('wgServer') + mw.config.get('wgScript') +
 +
        '?title=MediaWiki:Common.js/seguimiento.js&action=raw&ctype=text/javascript');
 +
}
  
//Collapsiblе: [[ВП:СБ]]
+
//Wikibugs
 +
mw.loader.load('/w/index.php?title=MediaWiki:Wikibugs.js&action=raw&ctype=text/javascript');
  
var NavigationBarShowDefault = 2
+
/** WikiMiniAtlas *******************************************************
var NavigationBarHide = '[Ocultar]'
+
*
var NavigationBarShow = '[Ver]'
+
*  Description: WikiMiniAtlas is a popup click and drag world map.
 +
*              This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
 +
*              The script itself is located on meta because it is used by many projects.
 +
*              See [[Meta:WikiMiniAtlas]] for more information.
 +
*  Maintainers: [[User:Dschwen]]
 +
*/
 +
window.wma_settings = {
 +
    buttonImage: "//upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Erioll_world.svg/15px-Erioll_world.svg.png"
 +
};
  
var hasClass = (function (){
+
mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript');
var reCache = {}
+
 
return function (element, className){
+
/* OpenStreetMap */
  return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className)
+
mw.config.set( 'osm_proj_map', 'mapa' ); //"map" in project language
  }
+
mw.config.set( 'osm_proj_lang', 'es' ); //project language
})()
 
  
function collapsibleTables(){
+
mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:OSM.js&action=raw&ctype=text/javascript');
var Table, HRow,  HCell, btn, a, tblIdx = 0, colTables = []
 
var allTables = document.getElementsByTagName('table')
 
for (var i=0; Table = allTables[i]; i++){
 
  if (!hasClass(Table, 'collapsible')) continue
 
  if (!(HRow=Table.rows[0])) continue
 
  if (!(HCell=HRow.getElementsByTagName('th')[0])) continue
 
  Table.id = 'collapsibleTable' + tblIdx
 
  btn = document.createElement('span')
 
  btn.style.cssText = 'float:right; font-weight:normal; font-size:smaller'
 
  a = document.createElement('a')
 
  a.id = 'collapseButton' + tblIdx
 
  a.href = 'javascript:collapseTable(' + tblIdx + ');'
 
  a.style.color = HCell.style.color
 
  a.appendChild(document.createTextNode(NavigationBarHide))
 
  btn.appendChild(a)
 
  HCell.insertBefore(btn, HCell.childNodes[0])
 
  colTables[tblIdx++] = Table
 
}
 
for (var i=0; i < tblIdx; i++)
 
  if ((tblIdx > NavigationBarShowDefault && hasClass(colTables[i], 'autocollapse')) || hasClass(colTables[i], 'collapsed'))
 
    collapseTable(i)
 
}
 
  
function collapseTable (idx){
+
/** Mejoras de diseño de la Portada
  var Table = document.getElementById('collapsibleTable' + idx)
+
  *
  var btn = document.getElementById('collapseButton' + idx)
+
  * Descripción: Varias mejoras de diseño para la portada, incluyendo un
  if (!Table || !btn) return false
+
  *                      enlace adicional a la lista completa de idiomas disponibles.
  var Rows = Table.rows
+
  *  Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
  var isShown = (btn.firstChild.data == NavigationBarHide)
+
  * Adaptado de [[en:MediaWiki:Common.js]]
  btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide
+
  */
  var disp = isShown ? 'none' : Rows[0].style.display
+
if ($.inArray(mw.config.get('wgPageName'), ['Wikipedia:Portada']) > -1) {
for (var i=1; i < Rows.length; i++)
+
    $(document).ready(function () {
     Rows[i].style.display = disp
+
        mw.util.addPortletLink('p-lang', '//es.wikipedia.org/wiki/Anexo:Wikipedias',
 +
            'Lista completa', 'interwiki-completelist', 'Lista completa de Wikipedias');
 +
     });
 
}
 
}
  
function collapsibleDivs(){
+
// Oculta los resumenes de edición para ciertas páginas
var navIdx = 0, colNavs = [], i, NavFrame
+
var paginasSinRE = [
var divs = document.getElementById('content').getElementsByTagName('div')
+
    "Wikipedia:Tablón_de_anuncios_de_los_bibliotecarios/Portal/Plantillas/Fusión_de_historiales/precarga",
for (i=0; NavFrame = divs[i]; i++) {
+
    "Wikipedia:Tablón_de_anuncios_de_los_bibliotecarios/Portal/Plantillas/Permisos/precarga",
  if (!hasClass(NavFrame, 'NavFrame')) continue
+
    "Wikipedia:Bot/Solicitudes/Precarga"
  NavFrame.id = 'NavFrame' + navIdx
+
];
  var a = document.createElement('a')
+
if ( $.inArray(mw.util.getParamValue('preload'), paginasSinRE ) > -1) {
  a.className = 'NavToggle'
+
    $(document).ready(function () {
  a.id = 'NavToggle' + navIdx
+
        $('#wpSummary').hide();
  a.href = 'javascript:collapseDiv(' + navIdx + ');'
+
        $('#wpSummaryLabel').hide();
  a.appendChild(document.createTextNode(NavigationBarHide))
+
    });
  for (var j=0; j < NavFrame.childNodes.length; j++)
 
    if (hasClass(NavFrame.childNodes[j], 'NavHead'))
 
      NavFrame.childNodes[j].appendChild(a)
 
  colNavs[navIdx++] = NavFrame
 
}
 
for (i=0; i < navIdx; i++)
 
  if ((navIdx > NavigationBarShowDefault && !hasClass(colNavs[i], 'expanded')) || hasClass(colNavs[i], 'collapsed'))
 
    collapseDiv(i)
 
 
}
 
}
  
function collapseDiv(idx) {
 
var div = document.getElementById('NavFrame' + idx)
 
var btn = document.getElementById('NavToggle' + idx)
 
if (!div || !btn) return false
 
var isShown = (btn.firstChild.data == NavigationBarHide)
 
btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide
 
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
 
}
 
  
function voting12(){
+
/*
  if (votingTrigger = document.getElementById('voting-trigger'))
+
* Cerrar mensajes
  importScriptURI(wgServer+wgScript
+
* Ver ejemplo en [[Usuario:Chabacano/Fírmalo]], por [[Usuario:Platonides]].
  +'?title=MediaWiki:Voting12.js&action=raw&ctype=text/javascript&cversion='
+
  */
  +encodeURIComponent(votingTrigger.innerHTML.replace(/\D+/g, '.')))
+
if (document.getElementById("cierraPadre")) {
 +
    $(document).ready(function () {
 +
        document.getElementById("cierraPadre").childNodes[0].onclick = function () {
 +
            document.getElementById("cierraPadre").style.cursor = 'pointer';
 +
            document.getElementById("cierraPadre").parentNode.style.display = 'none';
 +
            return false; /*no seguir el href*/
 +
        };
 +
    });
 
}
 
}
  
//Secure server
+
/**
var metaBase = 'http://meta.wikimedia.org'
+
* Collapsible tables
if (wgServer == 'https://secure.wikimedia.org') {
+
*
  importScript('MediaWiki:Common.js/secure.js','en')
+
* @version 2.0.1 (2013-03-26)
  metaBase = 'https://secure.wikimedia.org/wikipedia/meta'
+
* @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 = 2;
 +
var collapseCaption = 'ocultar';
 +
var expandCaption = 'mostrar';
 +
 +
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 + ']';
  
//Execution
+
var NavigationBarShowDefault = 0;
  
if (wgCanonicalNamespace == 'Special'){
+
// 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 (/^(Uplo|Sear|Stat|Spec|Abus|Prefe)/i.test(wgCanonicalSpecialPageName))
+
    if (!NavFrame || !NavToggle) {
  importMW(wgCanonicalSpecialPageName)
+
        return false;
 +
    }
  
}else switch (wgAction){
+
    // 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;
  
case 'history': importMW('History'); break
+
        // 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;
 +
    }
 +
};
  
case 'delete': importMW('Deletepage'); break
+
// 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' ) ) {
  
case 'edit': case 'submit': importMW('Editpage') //and continue with the default: view, purge
+
            indexNavigationBar++;
 +
            var NavToggle = document.createElement("a");
 +
            NavToggle.className = 'NavToggle';
 +
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 +
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
  
  default:
+
            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);
  
  addOnloadHook(editZeroSection)
+
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
  addOnloadHook(collapsibleDivs)
+
            for (j = 0; j < NavFrame.childNodes.length; j++) {
  addOnloadHook(collapsibleTables)
+
                if ( $(NavFrame.childNodes[j]).hasClass( 'NavHead' ) ) {
  importScriptURI(metaBase+'/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400')
+
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
  if (navigator.platform.indexOf('Win') != -1)
+
                    NavFrame.childNodes[j].appendChild(NavToggle);
    importStylesheetURI('http://en.wikipedia.org/w/index.php?title=MediaWiki:Common.css/WinFixes.css&action=raw&ctype=text/css')
+
                }
 
+
            }
  if (wgNamespaceNumber==0 || wgNamespaceNumber==100){
+
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
    addOnloadHook(LinkFA)
+
        }
    importMW('Osm')
 
    importMW('Collapserefs')
 
    if (wgArticleId==4401) importMW('Mainpage')
 
  }else{
 
    if (wgNamespaceNumber==4){
 
      if (/^(Мастер статей|Инкубатор)/.test(wgTitle)) importMW('Incubator')
 
      if (wgTitle=='Скрипты') importMW('Scripts')
 
 
     }
 
     }
    addOnloadHook(icqIcons)
 
  }
 
 
 
}
 
}
  
 +
$(document).ready(createNavigationBarToggleButton);
  
if (wgUserGroups){
+
/**
  for (var i=0; i<wgUserGroups.length; i++) switch (wgUserGroups[i]){
+
* Interwiki links to featured articles ***************************************
    case 'sysop': importMW('Sysop'); break
+
*
}
+
* Description: Highlights interwiki links to featured articles (or
if (wgNamespaceNumber==2 && wgTitle.indexOf(wgUserName)==0 && wgArticleId==0 && /\/skin\.(js|css)$/.test(wgTitle))
+
*              equivalents) by changing the bullet before the interwiki link
  window.location.href = window.location.href.replace(/skin\.(css|js)$/, skin+'.$1')
+
*              into a star.
 +
* Maintainers: [[User:R. Koot]]
 +
*/
 +
function LinkFA() {
 +
    if ( document.getElementById( 'p-lang' ) ) {
 +
        var InterwikiLinks = document.getElementById( 'p-lang' ).getElementsByTagName( 'li' );
 +
 +
        for ( var i = 0; i < InterwikiLinks.length; i++ ) {
 +
            var className = InterwikiLinks[i].className.match(/interwiki-[-\w]+/);
 +
            if ( document.getElementById( className + '-fa' ) && InterwikiLinks[i].className.indexOf( 'badge-featuredarticle' ) === -1 ) {
 +
                InterwikiLinks[i].className += ' destacado';
 +
                InterwikiLinks[i].title = 'Éste es un artículo destacado en esta Wikipedia.';
 +
            } else if ( document.getElementById( className + '-ga' ) && InterwikiLinks[i].className.indexOf( 'badge-goodarticle' ) === -1 ) {
 +
                InterwikiLinks[i].className += ' bueno';
 +
                InterwikiLinks[i].title = 'Éste es un artículo bueno en esta Wikipedia.';
 +
            }
 +
        }
 +
    }
 
}
 
}
 +
 +
mw.hook( 'wikipage.content' ).add( LinkFA );
  
 +
/**
 +
* Enlace «sección nueva» junto a «editar» en la última sección de las páginas de discusión.
 +
* Fuente: //de.wikipedia.org/w/index.php?oldid=133547849
 +
*/
 +
$( function() {
 +
    var newSectionLink = $( '#ca-addsection a' );
 +
    if( newSectionLink.length ) {
 +
        var link = newSectionLink.clone(); //create a copy
 +
        //avoid duplicate accesskey
 +
        link.removeAttr( 'accesskey' ).attr( 'title', function ( index, oldTitle ) {
 +
            return oldTitle.replace( /\s*\[.*\]\s*$/, '' );
 +
        } );
 +
        // con la skin vector se muestra como "Sección nueva", pasamos a minúsculas para integrarlo mejor
 +
        link.css( {
 +
            "text-transform" : "lowercase"
 +
        } );
 +
        //add it within the brackets
 +
        var lastEditsectionLink = $( 'span.mw-editsection:last a:last' );
 +
        lastEditsectionLink.after( link );
 +
        lastEditsectionLink.after( '&#32;·&#32;' ); //see [[MediaWiki:Pipe-separator]]
 +
    }
 +
} );
  
// ВП:СО, кроме статей  В Контакте, Одноклассники и Facebook
+
/*
if (wgArticleId!=639373 && wgArticleId!=932117 && wgArticleId!=1297302 && wgArticleId!=25133866)
+
// == Interproyectos en un recuadro a la izquierda ==
  importMW('Wikibugs')
+
  Funcionan con la plantilla {{ep|commons}} y en otras
 +
[[:Categoría:Wikipedia:Plantillas_de_enlace_entre_proyectos|plantillas de enlace entre proyectos]]
 +
*/
  
 +
function iProject() {
 +
    var elementos = [],
 +
        i;
  
// iwiki sorting
+
    if (document.getElementsByClassName) {
if (!wgUserName
+
        elementos = document.getElementsByClassName("interProject");
    || (wgUserName
+
    } else {
        && (((typeof wgLangPrefs == 'undefined') ? false : true)
+
        var els = document.getElementsByTagName("span"),
            || ((typeof wgAddLangHints == 'undefined') ? false : wgAddLangHints)
+
            elsLen = els.length,
            || ((typeof wgUseUserLanguage == 'undefined') ? false : wgUseUserLanguage))))
+
            j;
    importMW('Interwiki-links');
+
        for (i = 0, j = 0; i < elsLen; i++) {
 +
            if ("interProject" == els[i].className) {
 +
                elementos[j] = els[i];
 +
                j++;
 +
            }
 +
        }
 +
    }
 +
    if (elementos.length > 0) {
 +
        mw.util.addCSS('#interProject {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}');
 +
        var portal = document.createElement('div');
 +
        portal.setAttribute("class", "portlet portal"); /* portlet en monobook, portal en vector */
  
var withJS = document.URL.match(/[&?]withjs=((mediawiki:)?([^&#]+))/i)
+
        var tit = document.createElement('h3');
if (withJS) importScript_('MediaWiki:'+withJS[3])
+
        tit.setAttribute("lang", "es");
 +
        tit.appendChild(document.createTextNode('Otros proyectos'));
 +
        portal.appendChild(tit);
  
if (!window.wgUserName) appendCSS('#mw-fr-revisiontag {display:none}')
+
        var IPY = document.createElement('div');
 +
        IPY.setAttribute('class', "pBody body");
 +
        var ul = document.createElement('ul');
 +
        IPY.appendChild(ul);
  
 +
        for (i = 0; i < elementos.length; i++) {
 +
            var li = document.createElement('li');
 +
            li.innerHTML = elementos[i].innerHTML;
 +
            ul.appendChild(li);
 +
        }
 +
        portal.appendChild(IPY);
  
/* Any JavaScript here will be loaded for all users on every page load. */
+
        if (document.getElementById("p-tb").nextSibling) {
 
+
            document.getElementById("p-tb").parentNode.insertBefore(portal, document.getElementById("p-tb").nextSibling);
/*
 
////////////////////////////////////////////////////////////////
 
// =-=-=- HELPER FUNCTIONS -=-=-=-
 
function addlilink(tabs, url, name, id, title, key){
 
    var na = document.createElement('a');
 
    na.href = url;
 
    na.appendChild(document.createTextNode(name));
 
    var li = document.createElement('li');
 
    if(id) li.id = id;
 
    li.appendChild(na);
 
    tabs.appendChild(li);
 
    if(id)
 
    {
 
        if(key && title)
 
        {
 
            ta[id] = [key, title];
 
 
         }
 
         }
         else if(key)
+
         else {
        {
+
             document.getElementById("p-tb").parentNode.appendChild(portal);
             ta[id] = [key, ''];
 
        }
 
        else if(title)
 
        {
 
            ta[id] = ['', title];
 
 
         }
 
         }
 
     }
 
     }
    // re-render the title and accesskeys from existing code in wikibits.js
 
    akeytt();
 
    return li;
 
 
}
 
}
 +
$(document).ready(iProject);
  
function addToolboxLink(url, name, id, title){
+
/* End of mw.loader.using callback */
    var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
+
});
    addlilink(tb, url, name, id, title);
 
}
 
  
function addTab(url, name, id, title, key) {
+
/* Ordenación de tablas:
    return addPortletLink('p-cactions', url, name, id, title, key);
+
* Desde MediaWiki 1.22wmf13 las ordenaciones numéricas funcionan correctamente con nuestros separadores de millares y decimales, sin necesidad de código adicional
}
 
  
function addLink(where, url, name, id, title, key, after){
+
* Personalización de la ordenación de fechas:
    var na = document.createElement('a');
+
* Se ordenan según "dd de mm de yy" o "dd de mm de yyyy"
    na.href = url;
+
* También reconoce dd-mm-yy, dd-mm-yyyy (y otras variaciones usando / , .)
    na.appendChild(document.createTextNode(name));
+
*/
    var li = document.createElement('li');
+
mw.loader.using( 'jquery.tablesorter', function () {
    if(id) li.id = id;
+
    var ts = $.tablesorter,
    li.appendChild(na);
+
        i,
     var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
+
        j;
    if(after) {
+
tabs.insertBefore(li,document.getElementById(after));
+
    ts.formatDateCustom = function ( s ) {
    } else {
+
            var match;
tabs.appendChild(li);
+
            s = $.trim( s.toLowerCase() );
 +
 +
            s = s.replace( /( de |[\-\.\,' ])/g, '/' );
 +
 +
            if ( ( match = s.match( ts.dateRegex[0] ) ) !== null ) {
 +
                if ( mw.config.get( 'wgDefaultDateFormat' ) === 'mdy' || mw.config.get( 'wgContentLanguage' ) === 'en' ) {
 +
                    s = [ match[3], match[1], match[2] ];
 +
                } else if ( mw.config.get( 'wgDefaultDateFormat' ) === 'dmy' ) {
 +
                    s = [ match[3], match[2], match[1] ];
 +
                } else {
 +
                    // If we get here, we don't know which order the dd-dd-dddd
 +
                    // date is in. So return something not entirely invalid.
 +
                    return '99999999';
 +
                }
 +
            } else if ( ( match = s.match( ts.dateRegex[1] ) ) !== null ) {
 +
                s = [ match[3], '' + ts.monthNames[match[2]], match[1] ];
 +
            } else if ( ( match = s.match( ts.dateRegex[2] ) ) !== null ) {
 +
                s = [ match[3], '' + ts.monthNames[match[1]], match[2] ];
 +
            } else {
 +
                // Should never get here
 +
                return '99999999';
 +
            }
 +
 +
            // Pad Month and Day
 +
            if ( s[1].length === 1 ) {
 +
                s[1] = '0' + s[1];
 +
            }
 +
            if ( s[2].length === 1 ) {
 +
                s[2] = '0' + s[2];
 +
            }
 +
 +
            var y;
 +
            if ( ( y = parseInt( s[0], 10) ) < 100 ) {
 +
                // Guestimate years without centuries
 +
                if ( y < 30 ) {
 +
                    s[0] = 2000 + y;
 +
                } else {
 +
                    s[0] = 1900 + y;
 +
                }
 +
            }
 +
            while ( s[0].length < 4 ) {
 +
                s[0] = '0' + s[0];
 +
            }
 +
            return parseInt( s.join( '' ), 10 );
 +
    };
 +
 +
     var regex = [];
 +
    ts.monthNames = {};
 +
 +
    for ( i = 1; i < 13; i++ ) {
 +
        var name = mw.config.get( 'wgMonthNames' )[i].toLowerCase();
 +
        ts.monthNames[name] = i;
 +
        regex.push( mw.RegExp.escape( name ) );
 +
        name = mw.config.get( 'wgMonthNamesShort' )[i].toLowerCase().replace( '.', '' );
 +
        ts.monthNames[name] = i;
 +
        regex.push( mw.RegExp.escape( name ) );
 
     }
 
     }
     if(id) {
+
     regex = regex.join( '|' );
if(key && title) { ta[id] = [key, title]; }
+
else if(key) { ta[id] = [key, '']; }
+
    ts.dateRegexCustom = new RegExp( "^\\d\\d?\\sde\\s(" + regex + ")\\sde\\s\\d{2,4}$" );
else if(title) { ta[id] = ['', title];}
+
 +
    ts.addParser( {
 +
        id: 'dateCustom',
 +
        is: function( s ) {
 +
            return ( $.tablesorter.dateRegexCustom.test(s) );
 +
        },
 +
        format: function( s ) {
 +
            return $.tablesorter.formatDateCustom( s );
 +
        },
 +
        type: 'numeric'
 +
    });
 +
/* End of mw.loader.using callback */
 +
});
 +
 
 +
/** Ajusta el ordenamiento alfabético en las tablas "sortable" */
 +
(function() {
 +
  var letras = [["áàâäãāăåą", "a"], ["æ", "ae"], ["ćĉčç", "c"], ["ďḑđð", "d"], ["éèêëẽěēĕę", "e"],
 +
            ["ĝḡğģǥ", "g"], ["ĥḧḩħ", "h"], ["íìÎîïĩīĭįı", "i"], ["ĵ", "j"], ["ķ", "k"],
 +
            ["ĺľļł", "l"], ["ńňņ", "n"], ["ñ", "n~"], ["óòôöõōŏǫőø", "o"], ["œ", "oe"],
 +
            ["ŕřŗ", "r"], ["śŝšş", "s"], ["ß", "ss"], ["ťţŧ", "t"], ["úùûüũūŭůųű", "u"], ["ṽ", "v"],
 +
            ["ŵẅ", "w"], ["ẍ", "x"], ["ýŷÿỹ", "y"], ["źẑžƶ", "z"]];
 +
  var hash = {};
 +
  for (var i = 0; i < letras.length; i++) {
 +
    var arr = letras[i][0].split("");
 +
    var dest = letras[i][1];
 +
    for (var j = 0; j < arr.length; j++) {
 +
      hash[arr[j]] = dest;
 
     }
 
     }
    // re-render the title and accesskeys from existing code in wikibits.js
+
  }
    akeytt();
+
  mw.config.set('tableSorterCollation', hash);
    return li;
+
})();
}
 
 
 
function addlimenu(tabs, name, id)
 
{
 
    var na = document.createElement('a');
 
    na.href = '#';
 
    var mn = document.createElement('ul');
 
    na.appendChild(document.createTextNode(name));
 
    var li = document.createElement('li');
 
    li.id = id;
 
    li.className = 'tabmenu';
 
    li.appendChild(na);
 
    li.appendChild(mn);
 
    tabs.appendChild(li);
 
    return li;
 
}
 
  
function addnavbox_link(URL,Name,ID)
+
/**
{
+
* Los WikiWidgets son pequeños programas que sirven para ilustrar y explicar de manera interactiva conceptos tratados en los artículos.
var portlet = document.getElementById('p-navigation');
+
* El código de inicialización de los WikiWidgets se carga desde Commons cuando se encuentra una plantilla de WikiWidgets en la página.
var links = portlet.getElementsByTagName('ul')[0];
+
*/
links.innerHTML += '<li id="' + ID + '"><a href="' + URL + '">' + Name + '</a></li>';
+
if ( $( '.WikiWidget' ).length ) {
 +
mw.loader.load( '//commons.wikimedia.org/w/index.php?title=MediaWiki:WikiWidgets.js&action=raw&ctype=text/javascript' );
 
}
 
}
/////////////////////////////////////////////
 
*/
 
document.write("<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js' type='text/javascript'></script>");
 
  
document.write("<script src='/index.php?title=Global.js&action=raw&smaxage=0&ctype=text/javascript' type='text/javascript'></script>")
+
/* Fin de alias */
 +
})( jQuery, mediaWiki );

Revisión del 20:39 9 nov 2017

//Alias
(function ( $, mw ) {
/**
 * Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
 * loaded for all users on every wiki page. If possible create a gadget that is
 * enabled by default instead of adding it here (since gadgets are fully
 * optimized ResourceLoader modules with possibility to add dependencies etc.)
 *
 * Since common.js isn't a gadget, there is no place to declare its
 * dependencies, so we have to lazy load them with mw.loader.using on demand and
 * then execute the rest in the callback. In most cases these dependencies will
 * be loaded (or loading) already and the callback will not be delayed. In case a
 * dependency hasn't arrived yet it'll make sure those are loaded before this.
 */
mw.loader.using( 'mediawiki.util', function() {
/* Begin of mw.loader.using callback */

//Compatibilidad

/* Scripts specific to Internet Explorer */
if ($.client.profile().name == 'msie') {
    if ( +$.client.profile().versionBase < 11 ) {
        /** 
         *  Description: Fixes IE horizontal scrollbar bug
         *  Maintainers: [[User:Tom-]]?
         */
        var oldWidth;
        var docEl = document.documentElement;

        var doFixIEScroll = function () {
            docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
        };
        var fixIEScroll = function () {
            if (!oldWidth || docEl.clientWidth > oldWidth) {
                doFixIEScroll();
            } else {
                setTimeout(doFixIEScroll, 1);
            }

            oldWidth = docEl.clientWidth;
        };

        document.attachEvent("onreadystatechange", fixIEScroll);
        document.attachEvent("onresize", fixIEScroll);	
    }

    // IE overflow bug
    mw.util.addCSS('div.overflowbugx { overflow-x: scroll !important; overflow-y: hidden !important; } div.overflowbugy { overflow-y: scroll !important; overflow-x: hidden !important; }');

    // IE zoomfix
    // Use to fix right floating div/table inside tables
    mw.util.addCSS('.iezoomfix div, .iezoomfix table { zoom: 1;}');

    /* Helper script for .hlist class in common.css
     * Maintainer: [[User:Edokter]]
     */
    /* Add pseudo-selector class to last child list items in IE 8 */
    if ( $.client.profile().versionBase == '8' ) {
        $( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
          .addClass( 'hlist-last-child' );
    }
}

/* Fixes for Windows XP font rendering */
if (navigator.appVersion.search(/windows nt 5/i) != -1) {
    mw.util.addCSS('.IPA {font-family: "Lucida Sans Unicode", "Arial Unicode MS";} ' + 
                   '.Unicode {font-family: "Arial Unicode MS", "Lucida Sans Unicode";}');
}
 
/* Helper script for .hlist class in common.css
 * Maintainer: [[User:Edokter]]
 */

// Funcionalidad

/**
 * Redirect User:Name/skin.js and skin.css to the current skin's pages
 * (unless the 'skin' page really exists)
 * @source: //www.mediawiki.org/wiki/Snippets/Redirect_skin.js
 * @rev: 3
 */
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
    var titleParts = mw.config.get( 'wgPageName' ).split( '/' );
    // Make sure there was a part before and after the slash
    // And that the latter is 'skin.js' or 'skin.css'
    if ( titleParts.length == 2 ) {
        var userSkinPage = titleParts[0] + '/' + mw.config.get( 'skin' );
        if ( titleParts[1] === 'skin.js' ) {
            location.href = mw.util.getUrl( userSkinPage + '.js' );
        } else if ( titleParts[1] === 'skin.css' ) {
            location.href = mw.util.getUrl( userSkinPage + '.css' );
        }
    }
}

/** &withCSS= and &withJS= URL parameters *******
 * Allow to try custom scripts from MediaWiki space 
 * without editing personal .css or .js files
 */
var extraCSS = mw.util.getParamValue('withCSS'),
    extraJS = mw.util.getParamValue('withJS');

if (extraCSS) {
    if (extraCSS.match(/^MediaWiki:[^&<>=%#]*\.css$/)) {
        mw.loader.load('/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css');
    } else {
        mw.notify('Solo se pueden cargar páginas del espacio de nombres MediaWiki.', {title: 'Valor withCSS no permitido'});
    }
}

if (extraJS) {
    if (extraJS.match(/^MediaWiki:[^&<>=%#]*\.js$/)) {
        mw.loader.load('/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript');
    } else {
        mw.notify('Solo se pueden cargar páginas del espacio de nombres MediaWiki.', {title: 'Valor withJS no permitido'});
    }
}

// Results from Wikidata
// [[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");
}

//Edición
if ( $.inArray(mw.config.get('wgAction'), ['edit', 'submit'] ) > -1) {
    /** Fix edit summary prompt for undo  ******************************************
     *  Fixes the fact that the undo function combined with the "no edit summary prompter"
     *  causes problems if leaving the edit summary unchanged.
     *  Added by [[User:Deskana]], code by [[User:Tra]].
     *  See also [[bugzilla:8912]].
     */
    $(document).ready( function () {
        if (location.search.indexOf("undo=") != -1 && document.getElementsByName('wpAutoSummary')[0]) {
            document.getElementsByName('wpAutoSummary')[0].value = '1';
        }
    });

    /**
     * Caracteres especiales (edittools)
     * Crea (y coloca) el ''combobox'' que permite seleccionar un conjunto determinado de
     * caracteres especiales bajo la caja de edición.
     * Funciona en conjunto con [[MediaWiki:Edittools]] y [[MediaWiki:Edittools.js]].
     * Basado en [[commons:MediaWiki:Edittools.js]].
     */
     mw.loader.load('/w/index.php?title=MediaWiki:Edittools.javascript&action=raw&ctype=text/javascript');

    //Seguimiento
} else if (mw.config.get('wgPageName') == 'Especial:Seguimiento') {
    mw.loader.load( mw.config.get('wgServer') + mw.config.get('wgScript') +
        '?title=MediaWiki:Common.js/seguimiento.js&action=raw&ctype=text/javascript');
}

//Wikibugs
mw.loader.load('/w/index.php?title=MediaWiki:Wikibugs.js&action=raw&ctype=text/javascript');

/** WikiMiniAtlas *******************************************************
 *
 *  Description: WikiMiniAtlas is a popup click and drag world map.
 *               This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
 *               The script itself is located on meta because it is used by many projects.
 *               See [[Meta:WikiMiniAtlas]] for more information. 
 *  Maintainers: [[User:Dschwen]]
 */
window.wma_settings = {
    buttonImage: "//upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Erioll_world.svg/15px-Erioll_world.svg.png"
};

mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript');

/* OpenStreetMap */
mw.config.set( 'osm_proj_map', 'mapa' ); //"map" in project language
mw.config.set( 'osm_proj_lang', 'es' ); //project language

mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:OSM.js&action=raw&ctype=text/javascript');

/** Mejoras de diseño de la Portada
 *
 *  Descripción: Varias mejoras de diseño para la portada, incluyendo un
 *                      enlace adicional a la lista completa de idiomas disponibles.
 *  Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
 *  Adaptado de [[en:MediaWiki:Common.js]]
 */
if ($.inArray(mw.config.get('wgPageName'), ['Wikipedia:Portada']) > -1) {
    $(document).ready(function () {
        mw.util.addPortletLink('p-lang', '//es.wikipedia.org/wiki/Anexo:Wikipedias',
            'Lista completa', 'interwiki-completelist', 'Lista completa de Wikipedias');
    });
}

// Oculta los resumenes de edición para ciertas páginas
var paginasSinRE = [
    "Wikipedia:Tablón_de_anuncios_de_los_bibliotecarios/Portal/Plantillas/Fusión_de_historiales/precarga",
    "Wikipedia:Tablón_de_anuncios_de_los_bibliotecarios/Portal/Plantillas/Permisos/precarga",
    "Wikipedia:Bot/Solicitudes/Precarga"
];
if ( $.inArray(mw.util.getParamValue('preload'), paginasSinRE ) > -1) {
    $(document).ready(function () {
        $('#wpSummary').hide();
        $('#wpSummaryLabel').hide();
    });
}


/*
 * Cerrar mensajes
 * Ver ejemplo en [[Usuario:Chabacano/Fírmalo]], por [[Usuario:Platonides]].
 */
if (document.getElementById("cierraPadre")) {
    $(document).ready(function () {
        document.getElementById("cierraPadre").childNodes[0].onclick = function () {
            document.getElementById("cierraPadre").style.cursor = 'pointer';
            document.getElementById("cierraPadre").parentNode.style.display = 'none';
            return false; /*no seguir el href*/
        };
    });
}

/**
 * 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 = 2;
var collapseCaption = 'ocultar';
var expandCaption = 'mostrar';
 
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 = 0;

// 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);

/**
 * 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 ( document.getElementById( 'p-lang' ) ) {
        var InterwikiLinks = document.getElementById( 'p-lang' ).getElementsByTagName( 'li' );
 
        for ( var i = 0; i < InterwikiLinks.length; i++ ) {
            var className = InterwikiLinks[i].className.match(/interwiki-[-\w]+/);
            if ( document.getElementById( className + '-fa' ) && InterwikiLinks[i].className.indexOf( 'badge-featuredarticle' ) === -1 ) {
                InterwikiLinks[i].className += ' destacado';
                InterwikiLinks[i].title = 'Éste es un artículo destacado en esta Wikipedia.';
            } else if ( document.getElementById( className + '-ga' ) && InterwikiLinks[i].className.indexOf( 'badge-goodarticle' ) === -1 ) {
                InterwikiLinks[i].className += ' bueno';
                InterwikiLinks[i].title = 'Éste es un artículo bueno en esta Wikipedia.';
            }
        }
    }
}
 
mw.hook( 'wikipage.content' ).add( LinkFA );

/**
 * Enlace «sección nueva» junto a «editar» en la última sección de las páginas de discusión.
 * Fuente: //de.wikipedia.org/w/index.php?oldid=133547849
 */
$( function() {
    var newSectionLink = $( '#ca-addsection a' );
    if( newSectionLink.length ) {
        var link = newSectionLink.clone(); //create a copy
        //avoid duplicate accesskey
        link.removeAttr( 'accesskey' ).attr( 'title', function ( index, oldTitle ) {
            return oldTitle.replace( /\s*\[.*\]\s*$/, '' );
        } );
        // con la skin vector se muestra como "Sección nueva", pasamos a minúsculas para integrarlo mejor
        link.css( {
            "text-transform" : "lowercase"
        } );
        //add it within the brackets
        var lastEditsectionLink = $( 'span.mw-editsection:last a:last' );
        lastEditsectionLink.after( link );
        lastEditsectionLink.after( '&#32;·&#32;' ); //see [[MediaWiki:Pipe-separator]]
    }
} );

/*
// == Interproyectos en un recuadro a la izquierda ==
 Funcionan con la plantilla {{ep|commons}} y en otras
 [[:Categoría:Wikipedia:Plantillas_de_enlace_entre_proyectos|plantillas de enlace entre proyectos]]
*/

function iProject() {
    var elementos = [],
        i;

    if (document.getElementsByClassName) {
        elementos = document.getElementsByClassName("interProject");
    } else {
        var els = document.getElementsByTagName("span"),
            elsLen = els.length,
            j;
        for (i = 0, j = 0; i < elsLen; i++) {
            if ("interProject" == els[i].className) {
                elementos[j] = els[i];
                j++;
            }
        }
    }
    if (elementos.length > 0) {
        mw.util.addCSS('#interProject {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}');
        var portal = document.createElement('div');
        portal.setAttribute("class", "portlet portal"); /* portlet en monobook, portal en vector */

        var tit = document.createElement('h3');
        tit.setAttribute("lang", "es");
        tit.appendChild(document.createTextNode('Otros proyectos'));
        portal.appendChild(tit);

        var IPY = document.createElement('div');
        IPY.setAttribute('class', "pBody body");
        var ul = document.createElement('ul');
        IPY.appendChild(ul);

        for (i = 0; i < elementos.length; i++) {
            var li = document.createElement('li');
            li.innerHTML = elementos[i].innerHTML;
            ul.appendChild(li);
        }
        portal.appendChild(IPY);

        if (document.getElementById("p-tb").nextSibling) {
            document.getElementById("p-tb").parentNode.insertBefore(portal, document.getElementById("p-tb").nextSibling);
        }
        else {
            document.getElementById("p-tb").parentNode.appendChild(portal);
        }
    }
}
$(document).ready(iProject);

/* End of mw.loader.using callback */
});

/* Ordenación de tablas:
 * Desde MediaWiki 1.22wmf13 las ordenaciones numéricas funcionan correctamente con nuestros separadores de millares y decimales, sin necesidad de código adicional

 * Personalización de la ordenación de fechas:
 * Se ordenan según "dd de mm de yy" o "dd de mm de yyyy"
 * También reconoce dd-mm-yy, dd-mm-yyyy (y otras variaciones usando / , .)
 */
mw.loader.using( 'jquery.tablesorter', function () {
    var ts = $.tablesorter,
        i,
        j;
 
    ts.formatDateCustom = function ( s ) {
            var match;
            s = $.trim( s.toLowerCase() );
 
            s = s.replace( /( de |[\-\.\,' ])/g, '/' );
 
            if ( ( match = s.match( ts.dateRegex[0] ) ) !== null ) {
                if ( mw.config.get( 'wgDefaultDateFormat' ) === 'mdy' || mw.config.get( 'wgContentLanguage' ) === 'en' ) {
                    s = [ match[3], match[1], match[2] ];
                } else if ( mw.config.get( 'wgDefaultDateFormat' ) === 'dmy' ) {
                    s = [ match[3], match[2], match[1] ];
                } else {
                    // If we get here, we don't know which order the dd-dd-dddd
                    // date is in. So return something not entirely invalid.
                    return '99999999';
                }
            } else if ( ( match = s.match( ts.dateRegex[1] ) ) !== null ) {
                s = [ match[3], '' + ts.monthNames[match[2]], match[1] ];
            } else if ( ( match = s.match( ts.dateRegex[2] ) ) !== null ) {
                s = [ match[3], '' + ts.monthNames[match[1]], match[2] ];
            } else {
                // Should never get here
                return '99999999';
            }
 
            // Pad Month and Day
            if ( s[1].length === 1 ) {
                s[1] = '0' + s[1];
            }
            if ( s[2].length === 1 ) {
                s[2] = '0' + s[2];
            }
 
            var y;
            if ( ( y = parseInt( s[0], 10) ) < 100 ) {
                // Guestimate years without centuries
                if ( y < 30 ) {
                    s[0] = 2000 + y;
                } else {
                    s[0] = 1900 + y;
                }
            }
            while ( s[0].length < 4 ) {
                s[0] = '0' + s[0];
            }
            return parseInt( s.join( '' ), 10 );
    };
 
    var regex = [];
    ts.monthNames = {};
 
    for ( i = 1; i < 13; i++ ) {
        var name = mw.config.get( 'wgMonthNames' )[i].toLowerCase();
        ts.monthNames[name] = i;
        regex.push( mw.RegExp.escape( name ) );
        name = mw.config.get( 'wgMonthNamesShort' )[i].toLowerCase().replace( '.', '' );
        ts.monthNames[name] = i;
        regex.push( mw.RegExp.escape( name ) );
    }
    regex = regex.join( '|' );
 
    ts.dateRegexCustom = new RegExp( "^\\d\\d?\\sde\\s(" + regex + ")\\sde\\s\\d{2,4}$" );
 
    ts.addParser( {
        id: 'dateCustom',
        is: function( s ) {
            return ( $.tablesorter.dateRegexCustom.test(s) );
        },
        format: function( s ) {
            return $.tablesorter.formatDateCustom( s );
        },
        type: 'numeric'
    });
/* End of mw.loader.using callback */
});

/** Ajusta el ordenamiento alfabético en las tablas "sortable" */
(function() {
  var letras = [["áàâäãāăåą", "a"], ["æ", "ae"], ["ćĉčç", "c"], ["ďḑđð", "d"], ["éèêëẽěēĕę", "e"],
            ["ĝḡğģǥ", "g"], ["ĥḧḩħ", "h"], ["íìÎîïĩīĭįı", "i"], ["ĵ", "j"], ["ķ", "k"],
            ["ĺľļł", "l"], ["ńňņ", "n"], ["ñ", "n~"], ["óòôöõōŏǫőø", "o"], ["œ", "oe"],
            ["ŕřŗ", "r"], ["śŝšş", "s"], ["ß", "ss"], ["ťţŧ", "t"], ["úùûüũūŭůųű", "u"], ["ṽ", "v"],
            ["ŵẅ", "w"], ["ẍ", "x"], ["ýŷÿỹ", "y"], ["źẑžƶ", "z"]];
  var hash = {};
  for (var i = 0; i < letras.length; i++) {
    var arr = letras[i][0].split("");
    var dest = letras[i][1];
    for (var j = 0; j < arr.length; j++) {
      hash[arr[j]] = dest;
    }
  }
  mw.config.set('tableSorterCollation', hash);
})();

/**
 * Los WikiWidgets son pequeños programas que sirven para ilustrar y explicar de manera interactiva conceptos tratados en los artículos.
 * El código de inicialización de los WikiWidgets se carga desde Commons cuando se encuentra una plantilla de WikiWidgets en la página.
 */
if ( $( '.WikiWidget' ).length ) {
	mw.loader.load( '//commons.wikimedia.org/w/index.php?title=MediaWiki:WikiWidgets.js&action=raw&ctype=text/javascript' );
}

/* Fin de alias */
})( jQuery, mediaWiki );