Διαφορά μεταξύ των αναθεωρήσεων του "MediaWiki:Common.js"

Από Γνωσιακή Βάση Υπηρεσιών και Διαδικασιών του Δημοσίου Τομέα
Μετάβαση σε: πλοήγηση, αναζήτηση
(Created page with "Any JavaScript here will be loaded for all users on every page load.: Default styling for HTML elements: dfn { font-style: inherit; /* Reset default styling for...")
 
 
(2 ενδιάμεσες εκδόσεις από ένα χρήστη δεν εμφανίζονται)
Γραμμή 1: Γραμμή 1:
 
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* Any JavaScript here will be loaded for all users on every page load. */
/* Default styling for HTML elements */
+
/**
dfn {
+
* Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
    font-style: inherit; /* Reset default styling for <dfn> */
+
  * 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
q {
+
* optimized ResourceLoader modules with possibility to add dependencies etc.)
    quotes: '"' '"' "'" "'"; /* Straight quote marks for <q> */
+
*
}
+
  * Since Common.js isn't a gadget, there is no place to declare its
blockquote {
+
  * dependencies, so we have to lazy load them with mw.loader.using on demand and
overflow: hidden; /* Avoid collision of background with floating elements */
+
* 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
strong.selflink {
+
  * dependency hasn't arrived yet it'll make sure those are loaded before this.
    font-weight: 700; /* Prevent the 'double bold' bug in Firefox when using DirectWrite */
+
*/
}
 
  
/* Consistent size for <sub> and <sup> */
+
/* global mw, $, importStylesheet, importScript */
.mw-body sub,
+
/* jshint strict:false, browser:true */
.mw-body sup,
 
span.reference /* for Parsoid */ {
 
    font-size: 80%;
 
}
 
  
/* Main page fixes */
+
mw.loader.using( ['mediawiki.util', 'mediawiki.notify', 'jquery.client'] ).done( function () {
#interwiki-completelist {
+
/* Begin of mw.loader.using callback */
    font-weight: bold;
 
}
 
body.page-Main_Page #ca-delete {
 
    display: none !important;
 
}
 
body.page-Main_Page #mp-topbanner {
 
    clear: both;
 
}
 
  
/* Edit window toolbar */
+
/**
#toolbar {
+
* Main Page layout fixes
     height: 22px;
+
*
     margin-bottom: 6px;
+
* Description: Adds an additional link to the complete list of languages available.
 +
* Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
 +
*/
 +
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) {
 +
     $( function () {
 +
        mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
 +
            'Complete list', 'interwiki-completelist', 'Complete list of Wikipedias' );
 +
     } );
 
}
 
}
  
/* WikiEditor CSS for #wpTextbox1 is not loaded on .css/.js pages, so load here. [[phab:T97299]] */
+
/**
.wikiEditor-ui-text #wpTextbox1 {
+
* Redirect User:Name/skin.js and skin.css to the current skin's pages
    line-height: 1.5em;
+
* (unless the 'skin' page really exists)
     resize: vertical;
+
* @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js
 +
* @rev: 2
 +
*/
 +
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.shift() + '/' + mw.config.get( 'skin' );
 +
        if ( titleParts.slice( -1 ) == 'skin.js' ) {
 +
            window.location.href = mw.util.getUrl( userSkinPage + '.js' );
 +
        } else if ( titleParts.slice( -1 ) == 'skin.css' ) {
 +
            window.location.href = mw.util.getUrl( userSkinPage + '.css' );
 +
        }
 +
     }
 
}
 
}
  
/* Hide charinsert base for those not using the gadget */
+
/**
#editpage-specialchars {
+
* Map addPortletLink to mw.util
    display: none;
+
* @deprecated: Use mw.util.addPortletLink instead.
}
+
*/
 +
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Use mw.util.addPortletLink instead' );
  
/* Highlight data points in the info action if specified in the URL */
+
/**
body.action-info :target {
+
* Extract a URL parameter from the current URL
    background: #DEF;
+
* @deprecated: Use mw.util.getParamValue with proper escaping
}
+
*/
 +
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Use mw.util.getParamValue instead' );
  
/* Make the list of references smaller */
+
/**
ol.references,
+
* Test if an element has a certain class
div.reflist,
+
* @deprecated: Use $(element).hasClass() instead.
div.refbegin {
+
*/
    font-size: 90%;            /* Default font-size */
+
mw.log.deprecate( window, 'hasClass', function ( element, className ) {
    margin-bottom: 0.5em;
+
     return $( element ).hasClass( className );
}
+
}, 'Use jQuery.hasClass() instead' );
div.refbegin-100 {
 
    font-size: 100%;          /* Option for normal fontsize in {{refbegin}} */
 
}
 
div.reflist ol.references {
 
     font-size: 100%;          /* Reset font-size when nested in div.reflist */
 
    list-style-type: inherit; /* Enable custom list style types */
 
}
 
  
/* Highlight clicked reference in blue to help navigation */
+
/**
span.citation:target {
+
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
     background-color: #DEF;
+
* @rev 6
}
+
*/
 +
var extraCSS = mw.util.getParamValue( 'withCSS' ),
 +
     extraJS = mw.util.getParamValue( 'withJS' );
  
/* Ensure refs in table headers and the like aren't bold or italic */
+
if ( extraCSS ) {
sup.reference {
+
    if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
    font-weight: normal;
+
        importStylesheet( extraCSS );
     font-style: normal;
+
    } else {
 +
        mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } );
 +
     }
 
}
 
}
  
/* Allow hidden ref errors to be shown by user CSS */
+
if ( extraJS ) {
span.brokenref {
+
    if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
     display: none;
+
        importScript( extraJS );
 +
    } else {
 +
        mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } );
 +
     }
 
}
 
}
  
/* Styling for citations (CSS3). Breaks long urls, etc., rather than overflowing box */
+
/**
.citation {
+
* Import more specific scripts if necessary
     word-wrap: break-word;
+
*/
 +
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' || mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload' ) {
 +
    /* scripts specific to editing pages */
 +
    importScript( 'MediaWiki:Common.js/edit.js' );
 +
} else if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
 +
     /* watchlist scripts */
 +
    importScript( 'MediaWiki:Common.js/watchlist.js' );
 
}
 
}
  
/* For linked citation numbers and document IDs, where
+
/**
  the number need not be shown on a screen or a handheld,
+
* Helper script for .hlist class in Common.css
  but should be included in the printed version */
+
* Add pseudo-selector class to last-child list items in IE8
@media screen, handheld {
+
* @source mediawiki.org/wiki/Snippets/Horizontal_lists
     .citation .printonly {
+
* @revision 6 (2014-08-23)
         display: none;
+
* @author [[User:Edokter]]
 +
*/
 +
( function ( mw, $ ) {
 +
     var profile = $.client.profile();
 +
    if ( profile.name === 'msie' && profile.versionNumber === 8 ) {
 +
         mw.hook( 'wikipage.content' ).add( function ( $content ) {
 +
            $content.find( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
 +
                .addClass( 'hlist-last-child' );
 +
        } );
 
     }
 
     }
}
+
}( mediaWiki, jQuery ) );
  
/* Reset top margin for lists embedded in columns */
+
/**
div.columns {
+
* Fix for Windows XP Unicode font rendering
     margin-top: 0.3em;
+
*/
}
+
if ( navigator.appVersion.search(/windows nt 5/i) !== -1 ) {
div.columns dl,
+
     mw.util.addCSS( '.IPA { font-family: "Lucida Sans Unicode", "Arial Unicode MS"; } ' +
div.columns ol,
+
                '.Unicode { font-family: "Arial Unicode MS", "Lucida Sans Unicode"; } ' );
div.columns ul {
 
    margin-top: 0;
 
 
}
 
}
  
/* Avoid elements from breaking between columns */
+
/**
.nocolbreak,
+
* WikiMiniAtlas
div.columns li,
+
*
div.columns dd dd {
+
* Description: WikiMiniAtlas is a popup click and drag world map.
    -webkit-column-break-inside: avoid;
+
*              This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
    page-break-inside: avoid;
+
*              The script itself is located on meta because it is used by many projects.
     break-inside: avoid-column;
+
*              See [[Meta:WikiMiniAtlas]] for more information.
}
+
* Maintainers: [[User:Dschwen]]
 +
*/
 +
( function () {
 +
    var require_wikiminiatlas = false;
 +
    var coord_filter = /geohack/;
 +
    $( function () {
 +
        $( 'a.external.text' ).each( function( key, link ) {
 +
            if ( link.href && coord_filter.exec( link.href ) ) {
 +
                require_wikiminiatlas = true;
 +
                // break from loop
 +
                return false;
 +
            }
 +
        } );
 +
        if ( $( 'div.kmldata' ).length ) {
 +
            require_wikiminiatlas = true;
 +
        }
 +
        if ( require_wikiminiatlas ) {
 +
            mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );
 +
        }
 +
     } );
 +
} )();
  
/* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */
+
/**
.flowlist ul {
+
* Collapsible tables
    overflow-x: hidden;
+
*
    margin-left: 0;
+
* Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]].
    padding-left: 1.6em;
+
*
}
+
* @version 2.0.3 (2014-03-14)
.flowlist ol {
+
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
    overflow-x: hidden;
+
* @author [[User:R. Koot]]
    margin-left: 0;
+
* @author [[User:Krinkle]]
    padding-left: 3.2em;
+
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
}
+
* is supported in MediaWiki core.
.flowlist dl {
 
    overflow-x: hidden;
 
}
 
 
 
/* Style for horizontal lists (separator following item).
 
  IE8-specific classes are assigned in [[MediaWiki:Common.js/IEFixes.js]].
 
  @source mediawiki.org/wiki/Snippets/Horizontal_lists
 
  @revision 6 (2014-05-09)
 
  @author [[User:Edokter]]
 
 
  */
 
  */
.hlist dl,
 
.hlist ol,
 
.hlist ul {
 
    margin: 0;
 
    padding: 0;
 
}
 
/* Display list items inline */
 
.hlist dd,
 
.hlist dt,
 
.hlist li {
 
    margin: 0;
 
    display: inline;
 
}
 
/* Display nested lists inline */
 
.hlist.inline,
 
.hlist.inline dl,
 
.hlist.inline ol,
 
.hlist.inline ul,
 
.hlist dl dl, .hlist dl ol, .hlist dl ul,
 
.hlist ol dl, .hlist ol ol, .hlist ol ul,
 
.hlist ul dl, .hlist ul ol, .hlist ul ul {
 
    display: inline;
 
}
 
/* Generate interpuncts */
 
.hlist dt:after {
 
    content: ": ";
 
}
 
.hlist dd:after,
 
.hlist li:after {
 
    content: " · ";
 
    font-weight: bold;
 
}
 
.hlist dd:last-child:after,
 
.hlist dt:last-child:after,
 
.hlist li:last-child:after {
 
    content: none;
 
}
 
/* For IE8 */
 
.hlist dd.hlist-last-child:after,
 
.hlist dt.hlist-last-child:after,
 
.hlist li.hlist-last-child:after {
 
    content: none;
 
}
 
/* Add parentheses around nested lists */
 
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,
 
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,
 
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {
 
    content: " (";
 
    font-weight: normal;
 
}
 
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,
 
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,
 
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {
 
    content: ") ";
 
    font-weight: normal;
 
}
 
/* For IE8 */
 
.hlist dd dd.hlist-last-child:after, .hlist dd dt.hlist-last-child:after, .hlist dd li.hlist-last-child:after,
 
.hlist dt dd.hlist-last-child:after, .hlist dt dt.hlist-last-child:after, .hlist dt li.hlist-last-child:after,
 
.hlist li dd.hlist-last-child:after, .hlist li dt.hlist-last-child:after, .hlist li li.hlist-last-child:after {
 
    content: ") ";
 
    font-weight: normal;
 
}
 
/* Put ordinals in front of ordered list items */
 
.hlist ol {
 
    counter-reset: listitem;
 
}
 
.hlist ol > li {
 
    counter-increment: listitem;
 
}
 
.hlist ol > li:before {
 
    content: " " counter(listitem) " ";
 
    white-space: nowrap;
 
}
 
.hlist dd ol > li:first-child:before,
 
.hlist dt ol > li:first-child:before,
 
.hlist li ol > li:first-child:before {
 
    content: " (" counter(listitem) " ";
 
}
 
 
/* Unbulleted lists */
 
.plainlist ol,
 
.plainlist ul {
 
    line-height: inherit;
 
    list-style: none none;
 
    margin: 0;
 
}
 
.plainlist ol li,
 
.plainlist ul li {
 
    margin-bottom: 0;
 
}
 
 
/* Default style for navigation boxes */
 
.navbox {                    /* Navbox container style */
 
    border: 1px solid #aaa;
 
    width: 100%;
 
    margin: auto;
 
    clear: both;
 
    font-size: 88%;
 
    text-align: center;
 
    padding: 1px;
 
}
 
.navbox-inner,
 
.navbox-subgroup {
 
    width: 100%;
 
}
 
.navbox-group,
 
.navbox-title,
 
.navbox-abovebelow {
 
    padding: 0.25em 1em;      /* Title, group and above/below styles */
 
    line-height: 1.5em;
 
    text-align: center;
 
}
 
th.navbox-group {            /* Group style */
 
    white-space: nowrap;
 
    /* @noflip */
 
    text-align: right;
 
}
 
.navbox,
 
.navbox-subgroup {
 
    background: #fdfdfd;      /* Background color */
 
}
 
.navbox-list {
 
    line-height: 1.5em;
 
    border-color: #fdfdfd;    /* Must match background color */
 
}
 
.navbox th,
 
.navbox-title {
 
    background: #ccccff;      /* Level 1 color */
 
}
 
.navbox-abovebelow,
 
th.navbox-group,
 
.navbox-subgroup .navbox-title {
 
    background: #ddddff;      /* Level 2 color */
 
}
 
.navbox-subgroup .navbox-group,
 
.navbox-subgroup .navbox-abovebelow {
 
    background: #e6e6ff;      /* Level 3 color */
 
}
 
.navbox-even {
 
    background: #f7f7f7;      /* Even row striping */
 
}
 
.navbox-odd {
 
    background: transparent;  /* Odd row striping */
 
}
 
table.navbox + table.navbox {  /* Single pixel border between adjacent navboxes */
 
    margin-top: -1px;          /* (doesn't work for IE6, but that's okay)      */
 
}
 
.navbox .hlist td dl,
 
.navbox .hlist td ol,
 
.navbox .hlist td ul,
 
.navbox td.hlist dl,
 
.navbox td.hlist ol,
 
.navbox td.hlist ul {
 
    padding: 0.125em 0;      /* Adjust hlist padding in navboxes */
 
}
 
ol + table.navbox,
 
ul + table.navbox {
 
    margin-top: 1em;        /* Prevent lists from clinging to navboxes */
 
}
 
  
/* Default styling for Navbar template */
+
var autoCollapse = 2;
.navbar {
+
var collapseCaption = 'hide';
    display: inline;
+
var expandCaption = 'show';
    font-size: 88%;
+
var tableIndex = 0;
    font-weight: normal;
 
}
 
.navbar ul {
 
    display: inline;
 
    white-space: nowrap;
 
}
 
.mw-body-content .navbar ul {
 
    line-height: inherit;
 
}
 
.navbar li {
 
    word-spacing: -0.125em;
 
}
 
.navbar.mini li span {
 
  font-variant: small-caps;
 
}
 
/* Navbar styling when nested in infobox and navbox */
 
.infobox .navbar {
 
    font-size: 100%;
 
}
 
.navbox .navbar {
 
    display: block;
 
    font-size: 100%;
 
}
 
.navbox-title .navbar {
 
    /* @noflip */
 
    float: left;
 
    /* @noflip */
 
    text-align: left;
 
    /* @noflip */
 
    margin-right: 0.5em;
 
    width: 6em;
 
}
 
  
/* 'show'/'hide' buttons created dynamically by the CollapsibleTables javascript
+
function collapseTable( tableIndex ) {
  in [[MediaWiki:Common.js]] are styled here so they can be customised. */
+
     var Button = document.getElementById( 'collapseButton' + tableIndex );
.collapseButton {
+
     var Table = document.getElementById( 'collapsibleTable' + tableIndex );
     /* @noflip */
 
    float: right;
 
    font-weight: normal;
 
    /* @noflip */
 
    margin-left: 0.5em;
 
     /* @noflip */
 
    text-align: right;
 
    width: auto;
 
}
 
/* In navboxes, the show/hide button balances the v·d·e links
 
  from [[Template:Navbar]], so they need to be the same width. */
 
.navbox .collapseButton {
 
    width: 6em;
 
}
 
  
/* Styling for JQuery makeCollapsible, matching that of collapseButton */
+
    if ( !Table || !Button ) {
.mw-collapsible-toggle {
+
        return false;
    font-weight: normal;
+
     }
     /* @noflip */
 
    text-align: right;
 
}
 
.navbox .mw-collapsible-toggle {
 
    width: 6em;
 
}
 
  
/* Infobox template style */
+
     var Rows = Table.rows;
.infobox {
+
     var i;
    border: 1px solid #aaa;
 
    border-spacing: 3px;
 
    background-color: #f9f9f9;
 
    color: black;
 
    /* @noflip */
 
    margin: 0.5em 0 0.5em 1em;
 
    padding: 0.2em;
 
    /* @noflip */
 
    float: right;
 
    /* @noflip */
 
    clear: right;
 
    /* @noflip */
 
    text-align: left;
 
    font-size: 88%;
 
    line-height: 1.5em;
 
}
 
.infobox caption {
 
    font-size: 125%;
 
    font-weight: bold;
 
    padding: 0.2em;
 
}
 
.infobox td,
 
.infobox th {
 
    vertical-align: top;
 
}
 
.infobox.bordered {
 
     border-collapse: collapse;
 
}
 
.infobox.bordered td,
 
.infobox.bordered th {
 
    border: 1px solid #aaa;
 
}
 
.infobox.bordered .borderless td,
 
.infobox.bordered .borderless th {
 
     border: 0;
 
}
 
  
.infobox.sisterproject {
+
    if ( Button.firstChild.data === collapseCaption ) {
     width: 20em;
+
        for ( i = 1; i < Rows.length; i++ ) {
     font-size: 90%;
+
            Rows[i].style.display = 'none';
 +
        }
 +
        Button.firstChild.data = expandCaption;
 +
     } else {
 +
        for ( i = 1; i < Rows.length; i++ ) {
 +
            Rows[i].style.display = Rows[0].style.display;
 +
        }
 +
        Button.firstChild.data = collapseCaption;
 +
     }
 
}
 
}
  
.infobox.standard-talk {
+
function createClickHandler( tableIndex ) {
     border: 1px solid #c0c090;
+
     return function ( e ) {
    background-color: #f8eaba;
+
        e.preventDefault();
}
+
        collapseTable( tableIndex );
.infobox.standard-talk.bordered td,
+
    };
.infobox.standard-talk.bordered th {
 
    border: 1px solid #c0c090;
 
 
}
 
}
  
/* styles for bordered infobox with merged rows */
+
function createCollapseButtons( $content ) {
.infobox.bordered .mergedtoprow td,
+
     var NavigationBoxes = {};
.infobox.bordered .mergedtoprow th {
+
     var $Tables = $content.find( 'table' );
     border: 0;
+
     var i;
     border-top: 1px solid #aaa;
 
     /* @noflip */
 
    border-right: 1px solid #aaa;
 
}
 
  
.infobox.bordered .mergedrow td,
+
    $Tables.each( function( i, table ) {
.infobox.bordered .mergedrow th {
+
        if ( $(table).hasClass( 'collapsible' ) ) {
    border: 0;
 
    /* @noflip */
 
    border-right: 1px solid #aaa;
 
}
 
  
/* Styles for geography infoboxes, eg countries,
+
            /* only add button and increment count if there is a header row to work with */
  country subdivisions, cities, etc.            */
+
            var HeaderRow = table.getElementsByTagName( 'tr' )[0];
.infobox.geography {
+
            if ( !HeaderRow ) {
    border-collapse: collapse;
+
                return;
    line-height: 1.2em;
+
            }
    font-size: 90%;
+
            var Header = table.getElementsByTagName( 'th' )[0];
}
+
            if ( !Header ) {
 +
                return;
 +
            }
  
.infobox.geography  td,
+
            NavigationBoxes[ tableIndex ] = table;
.infobox.geography  th {
+
            table.setAttribute( 'id', 'collapsibleTable' + tableIndex );
    border-top: 1px solid #aaa;
 
    padding: 0.4em 0.6em 0.4em 0.6em;
 
}
 
.infobox.geography .mergedtoprow td,
 
.infobox.geography .mergedtoprow th {
 
    border-top: 1px solid #aaa;
 
    padding: 0.4em 0.6em 0.2em 0.6em;
 
}
 
  
.infobox.geography .mergedrow td,
+
            var Button    = document.createElement( 'span' );
.infobox.geography .mergedrow th {
+
            var ButtonLink = document.createElement( 'a' );
    border: 0;
+
            var ButtonText = document.createTextNode( collapseCaption );
    padding: 0 0.6em 0.2em 0.6em;
+
            // Styles are declared in [[MediaWiki:Common.css]]
}
+
            Button.className = 'collapseButton';
  
.infobox.geography .mergedbottomrow td,
+
            ButtonLink.style.color = Header.style.color;
.infobox.geography .mergedbottomrow th {
+
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
    border-top: 0;
+
            ButtonLink.setAttribute( 'href', '#' );
    border-bottom: 1px solid #aaa;
+
            $( ButtonLink ).on( 'click', createClickHandler( tableIndex ) );
    padding: 0 0.6em 0.4em 0.6em;
+
            ButtonLink.appendChild( ButtonText );
}
 
  
.infobox.geography .maptable td,
+
            Button.appendChild( document.createTextNode( '[' ) );
.infobox.geography .maptable th {
+
            Button.appendChild( ButtonLink );
    border: 0;
+
            Button.appendChild( document.createTextNode( ']' ) );
    padding: 0;
 
}
 
  
/* Normal font styling for table row headers with scope="row" tag */
+
            Header.insertBefore( Button, Header.firstChild );
.wikitable.plainrowheaders th[scope=row] {
+
            tableIndex++;
    font-weight: normal;
+
        }
    /* @noflip */
+
     } );
     text-align: left;
 
}
 
  
/* Lists in data cells are always left-aligned */
+
    for ( i = 0;  i < tableIndex; i++ ) {
.wikitable td ul,
+
        if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) ||
.wikitable td ol,
+
            ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) )
.wikitable td dl {
+
        ) {
    /* @noflip */
+
            collapseTable( i );
    text-align: left;
+
        }
}
+
        else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
/* ...unless they also use the hlist class */
+
            var element = NavigationBoxes[i];
.toc.hlist ul,
+
            while ((element = element.parentNode)) {
#toc.hlist ul,
+
                if ( $( element ).hasClass( 'outercollapse' ) ) {
.wikitable.hlist td ul,
+
                    collapseTable ( i );
.wikitable.hlist td ol,
+
                    break;
.wikitable.hlist td dl {
+
                }
     text-align: inherit;
+
            }
 +
        }
 +
     }
 
}
 
}
  
/* Icons for medialist templates [[Template:Listen]],
+
mw.hook( 'wikipage.content' ).add( createCollapseButtons );
  [[Template:Multi-listen_start]], [[Template:Video]],
 
  [[Template:Multi-video_start]] */
 
div.listenlist {
 
    background: url("//upload.wikimedia.org/wikipedia/commons/4/47/Sound-icon.svg") no-repeat scroll 0 0 transparent;
 
    background-size: 30px;
 
    padding-left: 40px;
 
}
 
  
/* Fix for hieroglyphs specificality issue in infoboxes ([[Phabricator:43869]]) */
+
/**
table.mw-hiero-table td {
+
* Dynamic Navigation Bars (experimental)
    vertical-align: middle;
+
*
}
+
* Description: See [[Wikipedia:NavFrame]].
 +
* Maintainers: UNMAINTAINED
 +
*/
  
/* Style rules for media list templates */
+
/* set up the words in your language */
div.medialist {
+
var NavigationBarHide = '[' + collapseCaption + ']';
    min-height: 50px;
+
var NavigationBarShow = '[' + expandCaption + ']';
    margin: 1em;
+
var indexNavigationBar = 0;
    /* @noflip */
 
    background-position: top left;
 
    background-repeat: no-repeat;
 
}
 
div.medialist ul {
 
    list-style-type: none;
 
    list-style-image: none;
 
    margin: 0;
 
}
 
div.medialist ul li {
 
    padding-bottom: 0.5em;
 
}
 
div.medialist ul li li {
 
    font-size: 91%;
 
    padding-bottom: 0;
 
}
 
  
/* Change the external link icon to an Adobe icon for all PDF files
+
/**
  in browsers that support these CSS selectors, like Mozilla and Opera */
+
* Shows and hides content and picture (if available) of navigation bars
div#content a[href$=".pdf"].external,
+
* Parameters:
div#content a[href*=".pdf?"].external,
+
*     indexNavigationBar: the index of navigation bar to be toggled
div#content a[href*=".pdf#"].external,
+
**/
div#content a[href$=".PDF"].external,
+
window.toggleNavigationBar = function ( indexNavigationBar, event ) {
div#content a[href*=".PDF?"].external,
+
    var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
div#content a[href*=".PDF#"].external,
+
    var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
div#mw_content a[href$=".pdf"].external,
+
     var NavChild;
div#mw_content a[href*=".pdf?"].external,
 
div#mw_content a[href*=".pdf#"].external,
 
div#mw_content a[href$=".PDF"].external,
 
div#mw_content a[href*=".PDF?"].external,
 
div#mw_content a[href*=".PDF#"].external {
 
    background: url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right;
 
     /* @noflip */
 
    padding-right: 18px;
 
}
 
  
/* Change the external link icon to an Adobe icon anywhere the PDFlink class
+
     if ( !NavFrame || !NavToggle ) {
  is used (notably Template:PDFlink). This works in IE, unlike the above. */
+
        return false;
div#content span.PDFlink a,
+
     }
div#mw_content span.PDFlink a {
 
    background: url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right;
 
     /* @noflip */
 
    padding-right: 18px;
 
}
 
 
 
/* Content in columns with CSS instead of tables ([[Template:Columns]]) */
 
div.columns-2 div.column {
 
    /* @noflip */
 
    float: left;
 
     width: 50%;
 
    min-width: 300px;
 
}
 
div.columns-3 div.column {
 
    /* @noflip */
 
    float: left;
 
    width: 33.3%;
 
    min-width: 200px;
 
}
 
div.columns-4 div.column {
 
    /* @noflip */
 
    float: left;
 
    width: 25%;
 
    min-width: 150px;
 
}
 
div.columns-5 div.column {
 
    /* @noflip */
 
    float: left;
 
    width: 20%;
 
    min-width: 120px;
 
}
 
  
/* Messagebox templates */
+
    /* if shown now */
.messagebox {
+
     if ( NavToggle.firstChild.data === NavigationBarHide ) {
    border: 1px solid #aaa;
+
        for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
     background-color: #f9f9f9;
+
            if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
    width: 80%;
+
                NavChild.style.display = 'none';
    margin: 0 auto 1em auto;
+
            }
    padding: .2em;
+
        }
}
+
     NavToggle.firstChild.data = NavigationBarShow;
.messagebox.merge {
 
    border: 1px solid #c0b8cc;
 
    background-color: #f0e5ff;
 
    text-align: center;
 
}
 
.messagebox.cleanup {
 
    border: 1px solid #9f9fff;
 
    background-color: #efefff;
 
    text-align: center;
 
}
 
.messagebox.standard-talk {
 
    border: 1px solid #c0c090;
 
    background-color: #f8eaba;
 
    margin: 4px auto;
 
}
 
/* For old WikiProject banners inside banner shells. */
 
.mbox-inside .standard-talk,
 
.messagebox.nested-talk {
 
    border: 1px solid #c0c090;
 
    background-color: #f8eaba;
 
    width: 100%;
 
    margin: 2px 0;
 
    padding: 2px;
 
}
 
.messagebox.small {
 
    width: 238px;
 
    font-size: 85%;
 
    /* @noflip */
 
    float: right;
 
    clear: both;
 
     /* @noflip */
 
    margin: 0 0 1em 1em;
 
    line-height: 1.25em;
 
}
 
.messagebox.small-talk {
 
    width: 238px;
 
    font-size: 85%;
 
    /* @noflip */
 
    float: right;
 
    clear: both;
 
    /* @noflip */
 
    margin: 0 0 1em 1em;
 
    line-height: 1.25em;
 
    background: #F8EABA;
 
}
 
  
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
+
     /* if hidden now */
th.mbox-text, td.mbox-text {  /* The message body cell(s) */
+
     } else if ( NavToggle.firstChild.data === NavigationBarShow ) {
    border: none;
+
         for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
     /* @noflip */
+
             if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
    padding: 0.25em 0.9em;    /* 0.9em left/right */
+
                NavChild.style.display = 'block';
     width: 100%;              /* Make all mboxes the same width regardless of text length */
+
            }
}
+
        }
td.mbox-image {                /* The left image cell */
+
        NavToggle.firstChild.data = NavigationBarHide;
    border: none;
+
     }
    /* @noflip */
 
    padding: 2px 0 2px 0.9em;  /* 0.9em left, 0px right */
 
    text-align: center;
 
}
 
td.mbox-imageright {          /* The right image cell */
 
    border: none;
 
    /* @noflip */
 
    padding: 2px 0.9em 2px 0;  /* 0px left, 0.9em right */
 
    text-align: center;
 
}
 
td.mbox-empty-cell {          /* An empty narrow cell */
 
    border: none;
 
    padding: 0;
 
    width: 1px;
 
}
 
 
 
/* Article message box styles */
 
table.ambox {
 
    margin: 0 10%;                  /* 10% = Will not overlap with other elements */
 
    border: 1px solid #aaa;
 
    /* @noflip */
 
    border-left: 10px solid #1e90ff;  /* Default "notice" blue */
 
    background: #fbfbfb;
 
}
 
table.ambox + table.ambox {      /* Single border between stacked boxes. */
 
    margin-top: -1px;
 
}
 
.ambox th.mbox-text,
 
.ambox td.mbox-text {            /* The message body cell(s) */
 
    padding: 0.25em 0.5em;      /* 0.5em left/right */
 
}
 
.ambox td.mbox-image {          /* The left image cell */
 
    /* @noflip */
 
    padding: 2px 0 2px 0.5em;    /* 0.5em left, 0px right */
 
}
 
.ambox td.mbox-imageright {      /* The right image cell */
 
    /* @noflip */
 
    padding: 2px 0.5em 2px 0;    /* 0px left, 0.5em right */
 
}
 
 
 
table.ambox-notice {
 
    /* @noflip */
 
    border-left: 10px solid #1e90ff;    /* Blue */
 
}
 
table.ambox-speedy {
 
    /* @noflip */
 
    border-left: 10px solid #b22222;    /* Red */
 
    background: #fee;                  /* Pink */
 
}
 
table.ambox-delete {
 
    /* @noflip */
 
    border-left: 10px solid #b22222;    /* Red */
 
}
 
table.ambox-content {
 
    /* @noflip */
 
    border-left: 10px solid #f28500;    /* Orange */
 
}
 
table.ambox-style {
 
    /* @noflip */
 
    border-left: 10px solid #f4c430;    /* Yellow */
 
}
 
table.ambox-move {
 
    /* @noflip */
 
    border-left: 10px solid #9932cc;    /* Purple */
 
}
 
table.ambox-protection {
 
    /* @noflip */
 
    border-left: 10px solid #bba;      /* Gray-gold */
 
}
 
 
 
/* Image message box styles */
 
table.imbox {
 
    margin: 4px 10%;
 
    border-collapse: collapse;
 
    border: 3px solid #1e90ff;    /* Default "notice" blue */
 
    background: #fbfbfb;
 
}
 
.imbox .mbox-text .imbox {  /* For imboxes inside imbox-text cells. */
 
    margin: 0 -0.5em;      /* 0.9 - 0.5 = 0.4em left/right.        */
 
    display: block;         /* Fix for webkit to force 100% width. */
 
}
 
.mbox-inside .imbox {      /* For imboxes inside other templates.  */
 
    margin: 4px;
 
}
 
 
 
table.imbox-notice {
 
    border: 3px solid #1e90ff;   /* Blue */
 
}
 
table.imbox-speedy {
 
    border: 3px solid #b22222;    /* Red */
 
    background: #fee;             /* Pink */
 
}
 
table.imbox-delete {
 
    border: 3px solid #b22222;    /* Red */
 
}
 
table.imbox-content {
 
    border: 3px solid #f28500;    /* Orange */
 
}
 
table.imbox-style {
 
    border: 3px solid #f4c430;    /* Yellow */
 
}
 
table.imbox-move {
 
    border: 3px solid #9932cc;    /* Purple */
 
}
 
table.imbox-protection {
 
    border: 3px solid #bba;      /* Gray-gold */
 
}
 
table.imbox-license {
 
    border: 3px solid #88a;      /* Dark gray */
 
    background: #f7f8ff;          /* Light gray */
 
}
 
table.imbox-featured {
 
    border: 3px solid #cba135;    /* Brown-gold */
 
}
 
 
 
/* Category message box styles */
 
table.cmbox {
 
    margin: 3px 10%;
 
    border-collapse: collapse;
 
    border: 1px solid #aaa;
 
    background: #DFE8FF;    /* Default "notice" blue */
 
}
 
 
 
table.cmbox-notice {
 
    background: #D8E8FF;    /* Blue */
 
}
 
table.cmbox-speedy {
 
    margin-top: 4px;
 
    margin-bottom: 4px;
 
    border: 4px solid #b22222;    /* Red */
 
    background: #FFDBDB;          /* Pink */
 
}
 
table.cmbox-delete {
 
    background: #FFDBDB;    /* Red */
 
}
 
table.cmbox-content {
 
    background: #FFE7CE;    /* Orange */
 
}
 
table.cmbox-style {
 
    background: #FFF9DB;    /* Yellow */
 
}
 
table.cmbox-move {
 
    background: #E4D8FF;    /* Purple */
 
}
 
table.cmbox-protection {
 
    background: #EFEFE1;    /* Gray-gold */
 
}
 
 
 
/* Other pages message box styles */
 
table.ombox {
 
    margin: 4px 10%;
 
    border-collapse: collapse;
 
    border: 1px solid #aaa;      /* Default "notice" gray */
 
    background: #f9f9f9;
 
}
 
 
 
table.ombox-notice {
 
    border: 1px solid #aaa;      /* Gray */
 
}
 
table.ombox-speedy {
 
    border: 2px solid #b22222;    /* Red */
 
    background: #fee;            /* Pink */
 
}
 
table.ombox-delete {
 
    border: 2px solid #b22222;    /* Red */
 
}
 
table.ombox-content {
 
    border: 1px solid #f28500;    /* Orange */
 
}
 
table.ombox-style {
 
    border: 1px solid #f4c430;    /* Yellow */
 
}
 
table.ombox-move {
 
    border: 1px solid #9932cc;    /* Purple */
 
}
 
table.ombox-protection {
 
    border: 2px solid #bba;      /* Gray-gold */
 
}
 
 
 
/* Talk page message box styles */
 
table.tmbox {
 
    margin: 4px 10%;
 
    border-collapse: collapse;
 
    border: 1px solid #c0c090;    /* Default "notice" gray-brown */
 
    background: #f8eaba;
 
}
 
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
 
    margin: 2px 0;              /* this declaration overrides other styles (including mbox-small above)   */
 
    width: 100%;                /* For Safari and Opera */
 
}
 
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when  */
 
    line-height: 1.5em;          /* also "nested", so reset styles that are  */
 
    font-size: 100%;            /* set in "mbox-small" above.                */
 
}
 
 
 
table.tmbox-speedy {
 
    border: 2px solid #b22222;    /* Red */
 
    background: #fee;            /* Pink */
 
}
 
table.tmbox-delete {
 
    border: 2px solid #b22222;    /* Red */
 
}
 
table.tmbox-content {
 
    border: 2px solid #f28500;    /* Orange */
 
}
 
table.tmbox-style {
 
    border: 2px solid #f4c430;    /* Yellow */
 
}
 
table.tmbox-move {
 
    border: 2px solid #9932cc;    /* Purple */
 
}
 
table.tmbox-protection,
 
table.tmbox-notice {
 
    border: 1px solid #c0c090;    /* Gray-brown */
 
}
 
 
 
/* Disambig and set index box styles */
 
table.dmbox {
 
    clear: both;
 
    margin: 0.9em 1em;
 
    border-top: 1px solid #ccc;
 
    border-bottom: 1px solid #ccc;
 
    background: transparent;
 
}
 
 
 
/* Footer and header message box styles */
 
table.fmbox {
 
    clear: both;
 
    margin: 0.2em 0;
 
    width: 100%;
 
    border: 1px solid #aaa;
 
    background: #f9f9f9;    /* Default "system" gray */
 
}
 
table.fmbox-system {
 
    background: #f9f9f9;
 
}
 
table.fmbox-warning {
 
    border: 1px solid #bb7070;  /* Dark pink */
 
    background: #ffdbdb;        /* Pink */
 
}
 
table.fmbox-editnotice {
 
    background: transparent;
 
}
 
/* Div based "warning" style fmbox messages. */
 
div.mw-warning-with-logexcerpt,
 
div.mw-lag-warn-high,
 
div.mw-cascadeprotectedwarning,
 
div#mw-protect-cascadeon,
 
div.titleblacklist-warning,
 
div.locked-warning {
 
    clear: both;
 
    margin: 0.2em 0;
 
    border: 1px solid #bb7070;
 
    background: #ffdbdb;
 
    padding: 0.25em 0.9em;
 
}
 
/* Div based "system" style fmbox messages.
 
  Used in [[MediaWiki:Readonly lag]]. */
 
div.mw-lag-warn-normal,
 
div.fmbox-system {
 
    clear: both;
 
    margin: 0.2em 0;
 
    border: 1px solid #aaa;
 
    background: #f9f9f9;
 
    padding: 0.25em 0.9em;
 
}
 
 
 
/* These mbox-small classes must be placed after all other
 
  ambox/tmbox/ombox etc classes. "body.mediawiki" is so
 
  they override "table.ambox + table.ambox" above. */
 
body.mediawiki table.mbox-small {  /* For the "small=yes" option. */
 
    /* @noflip */
 
    clear: right;
 
    /* @noflip */
 
    float: right;
 
    /* @noflip */
 
    margin: 4px 0 4px 1em;
 
    width: 238px;
 
    font-size: 88%;
 
    line-height: 1.25em;
 
}
 
body.mediawiki table.mbox-small-left {  /* For the "small=left" option. */
 
    /* @noflip */
 
    margin: 4px 1em 4px 0;
 
    width: 238px;
 
    border-collapse: collapse;
 
    font-size: 88%;
 
    line-height: 1.25em;
 
}
 
 
 
/* Style for compact ambox */
 
/* Hide the images */
 
.compact-ambox table .mbox-image,
 
.compact-ambox table .mbox-imageright,
 
.compact-ambox table .mbox-empty-cell {
 
    display: none;
 
}
 
/* Remove borders, backgrounds, padding, etc. */
 
.compact-ambox table.ambox {
 
    border: none;
 
    border-collapse: collapse;
 
    background: transparent;
 
    margin: 0 0 0 1.6em !important;
 
    padding: 0 !important;
 
    width: auto;
 
    display: block;
 
}
 
body.mediawiki .compact-ambox table.mbox-small-left {
 
    font-size: 100%;
 
    width: auto;
 
    margin: 0;
 
}
 
/* Style the text cell as a list item and remove its padding */
 
.compact-ambox table .mbox-text {
 
    padding: 0 !important;
 
    margin: 0 !important;
 
}
 
.compact-ambox table .mbox-text-span {
 
    display: list-item;
 
    line-height: 1.5em;
 
    list-style-type: square;
 
    list-style-image: url(//bits.wikimedia.org/static-current/skins/MonoBook/bullet.gif);
 
}
 
.skin-vector .compact-ambox table .mbox-text-span {
 
    list-style-type: disc;
 
    list-style-image: url(//bits.wikimedia.org/static-current/skins/Vector/images/bullet-icon.png)
 
}
 
/* Allow for hiding text in compact form */
 
.compact-ambox .hide-when-compact {
 
    display: none;
 
}
 
 
 
/* Remove default styles for [[MediaWiki:Noarticletext]]. */
 
div.noarticletext {
 
    border: none;
 
    background: transparent;
 
    padding: 0;
 
}
 
 
 
/* Hide (formatting) elements from screen, but not from screenreaders */
 
.visualhide {
 
    position: absolute;
 
    left: -10000px;
 
    top: auto;
 
    width: 1px;
 
    height: 1px;
 
    overflow: hidden;
 
}
 
 
 
/* Bold save button */
 
#wpSave {
 
    font-weight: bold;
 
}
 
 
 
/* class hiddenStructure is defunct. See [[Wikipedia:hiddenStructure]] */
 
.hiddenStructure {
 
    display: inline !important;
 
    color: #f00;
 
    background-color: #0f0;
 
}
 
 
 
/* suppress missing interwiki image links where #ifexist cannot
 
  be used due to high number of requests see .hidden-redlink on
 
  [[m:MediaWiki:Common.css]] */
 
.check-icon a.new {
 
    display: none;
 
    speak: none;
 
}
 
 
 
/* Removes underlines from certain links */
 
.nounderlines a,
 
.IPA a:link, .IPA a:visited {
 
    text-decoration: none !important;
 
}
 
 
 
/* Standard Navigationsleisten, aka box hiding thingy
 
  from .de.  Documentation at [[Wikipedia:NavFrame]]. */
 
div.NavFrame {
 
    margin: 0;
 
    padding: 4px;
 
    border: 1px solid #aaa;
 
    text-align: center;
 
    border-collapse: collapse;
 
    font-size: 95%;
 
}
 
div.NavFrame + div.NavFrame {
 
    border-top-style: none;
 
    border-top-style: hidden;
 
}
 
div.NavPic {
 
    background-color: #fff;
 
    margin: 0;
 
    padding: 2px;
 
    /* @noflip */
 
    float: left;
 
}
 
div.NavFrame div.NavHead {
 
    line-height: 1.6em;
 
     font-weight: bold;
 
    background-color: #ccf;
 
    position: relative;
 
}
 
div.NavFrame p,
 
div.NavFrame div.NavContent,
 
div.NavFrame div.NavContent p {
 
    font-size: 100%;
 
}
 
div.NavEnd {
 
    margin: 0;
 
    padding: 0;
 
    line-height: 1px;
 
    clear: both;
 
}
 
a.NavToggle {
 
    position: absolute;
 
    top: 0;
 
    /* @noflip */
 
    right: 3px;
 
    font-weight: normal;
 
    font-size: 90%;
 
}
 
  
/* Hatnotes and disambiguation notices */
+
     event.preventDefault();
.hatnote {
+
};
     font-style: italic;
 
}
 
.hatnote i {
 
    font-style: normal;
 
}
 
div.hatnote {
 
    /* @noflip */
 
    padding-left: 1.6em;
 
    margin-bottom: 0.5em;
 
}
 
div.hatnote + div.hatnote {
 
    margin-top: -0.5em;
 
}
 
  
/* Allow transcluded pages to display in lists rather than a table.
+
/* adds show/hide-button to navigation bars */
  Compatible in Firefox; incompatible in IE6. */
+
function createNavigationBarToggleButton( $content ) {
.listify td    { display: list-item; }
+
    var NavChild;
.listify tr    { display: block; }
+
    /* iterate over all < div >-elements */
.listify table { display: block; }
+
    var $divs = $content.find( 'div' );
 +
    $divs.each( function ( i, NavFrame ) {
 +
        /* if found a navigation bar */
 +
        if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {
  
/* Geographical coordinates defaults. See [[Template:Coord/link]]
+
            indexNavigationBar++;
  for how these are used. The classes "geo", "longitude", and
+
            var NavToggle = document.createElement( 'a' );
  "latitude" are used by the [[Geo microformat]]. */
+
            NavToggle.className = 'NavToggle';
.geo-default, .geo-dms, .geo-dec  { display: inline; }
+
            NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
.geo-nondefault, .geo-multi-punct { display: none; }
+
            NavToggle.setAttribute( 'href', '#' );
.longitude, .latitude            { white-space: nowrap; }
+
            $( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );
  
/* When <div class="nonumtoc"> is used on the table of contents,
+
            var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );
  the ToC will display without numbers */
+
            /**
.nonumtoc .tocnumber {
+
            * Check if any children are already hidden.  This loop is here for backwards compatibility:
    display: none;
+
            * 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
.nonumtoc #toc ul,
+
            * the content visible without JavaScript support), the new recommended way is to add the class
.nonumtoc .toc ul {
+
            * "collapsed" to the NavFrame itself, just like with collapsible tables.
    line-height: 1.5em;
+
            */
    list-style: none none;
+
            for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) {
    margin: .3em 0 0;
+
                if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
    padding: 0;
+
                    if ( NavChild.style.display === 'none' ) {
}
+
                        isCollapsed = true;
.hlist.nonumtoc #toc ul ul,
+
                    }
.hlist.nonumtoc .toc ul ul {
+
                }
    /* @noflip */
+
            }
    margin: 0;
+
            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 );
 +
            NavToggle.appendChild( NavToggleText );
  
/* Allow limiting of which header levels are shown in a TOC;
+
            /* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */
  <div class="toclimit-3">, for instance, will limit to
+
            for( var j = 0; j < NavFrame.childNodes.length; j++ ) {
  showing ==headings== and ===headings=== but no further
+
                if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
  (as long as there are no =headings= on the page, which
+
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
  there shouldn't be according to the MoS). */
+
                    NavFrame.childNodes[j].appendChild( NavToggle );
.toclimit-2 .toclevel-1 ul,
+
                }
.toclimit-3 .toclevel-2 ul,
+
            }
.toclimit-4 .toclevel-3 ul,
+
            NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
.toclimit-5 .toclevel-4 ul,
+
        }
.toclimit-6 .toclevel-5 ul,
+
     } );
.toclimit-7 .toclevel-6 ul {
 
     display: none;
 
 
}
 
}
  
/* Styling for Template:Quote */
+
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
blockquote.templatequote {
 
    margin-top: 0;
 
}
 
blockquote.templatequote div.templatequotecite {
 
    line-height: 1.5em;
 
    /* @noflip */
 
    text-align: left;
 
    /* @noflip */
 
    padding-left: 1.6em;
 
    margin-top: 0;
 
}
 
 
 
/* User block messages */
 
div.user-block {
 
    padding: 5px;
 
    margin-bottom: 0.5em;
 
    border: 1px solid #A9A9A9;
 
    background-color: #FFEFD5;
 
}
 
 
 
/* Prevent line breaks in silly places:
 
  1) Where desired
 
  2) Links when we don't want them to
 
  3) Bold "links" to the page itself
 
  4) Ref tags with group names <ref group="Note"> --> "[Note 1]" */
 
.nowrap,
 
.nowraplinks a,
 
.nowraplinks .selflink,
 
sup.reference a {
 
    white-space: nowrap;
 
}
 
/* But allow wrapping where desired: */
 
.wrap,
 
.wraplinks a {
 
    white-space: normal;
 
}
 
 
 
/* For template documentation */
 
.template-documentation {
 
    clear: both;
 
    margin: 1em 0 0 0;
 
    border: 1px solid #aaa;
 
    background-color: #ecfcf4;
 
    padding: 1em;
 
}
 
 
 
/* Inline divs in ImageMaps (code borrowed from de.wiki) */
 
.imagemap-inline div {
 
    display: inline;
 
}
 
 
 
/* Increase the height of the image upload box */
 
#wpUploadDescription {
 
    height: 13em;
 
}
 
 
 
/* Minimum thumb width */
 
.thumbinner {
 
    min-width: 100px;
 
}
 
 
 
/* Makes the background of a framed image white instead of gray.
 
  Only visible with transparent images. */
 
div.thumb .thumbimage {
 
    background-color: #fff;
 
}
 
 
 
/* The backgrounds for galleries. */
 
div#content .gallerybox div.thumb {
 
    /* Light gray padding */
 
    background-color: #F9F9F9;
 
}
 
/* Put a chequered background behind images, only visible if they have transparency.
 
  '.filehistory a img' and '#file img:hover' are handled by MediaWiki core (as of 1.19) */
 
.gallerybox .thumb img {
 
    background: #fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat;
 
}
 
/* But not on articles, user pages, portals or with opt-out. */
 
.ns-0 .gallerybox .thumb img,
 
.ns-2 .gallerybox .thumb img,
 
.ns-100 .gallerybox .thumb img,
 
.nochecker .gallerybox .thumb img {
 
    background: #fff;
 
}
 
 
 
/* Prevent floating boxes from overlapping any category listings,
 
  file histories, edit previews, and edit [Show changes] views. */
 
#mw-subcategories, #mw-pages, #mw-category-media,
 
#filehistory, #wikiPreview, #wikiDiff {
 
    clear: both;
 
}
 
 
 
body.rtl #mw-articlefeedbackv5, body.rtl #mw-articlefeedback {
 
    display: block;  /* Override inline block mode */
 
    margin-bottom: 1em;
 
    /* @noflip */
 
    clear: right;    /* Clear any info boxes that stick out */
 
    /* @noflip */
 
    float: right;    /* Prevents margin collapsing */
 
}
 
 
 
/* Selectively hide headers in WikiProject banners */
 
.wpb .wpb-header            { display: none; }
 
.wpbs-inner .wpb .wpb-header { display: block; }    /* for IE */
 
.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */
 
.wpbs-inner .wpb-outside    { display: none; }      /* hide things that should only display outside shells */
 
 
 
/* Styling for Abuse Filter tags */
 
.mw-tag-markers {
 
    font-family:sans-serif;
 
    font-style:italic;
 
    font-size:90%;
 
}
 
 
 
/* Hide stuff meant for accounts with special permissions. Made visible again in
 
  [[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-accountcreator.css]],
 
  [[MediaWiki:Group-templateeditor.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */
 
.sysop-show,
 
.accountcreator-show,
 
.templateeditor-show,
 
.autoconfirmed-show {
 
    display: none;
 
}
 
  
 
/**
 
/**
  * Hide the redlink generated by {{Editnotice}},
+
  * Uploadwizard_newusers
  * this overrides the ".sysop-show { display: none; }" above that applies
+
  * Switches in a message for non-autoconfirmed users at [[Wikipedia:Upload]]
* to the same link as well.
 
 
  *
 
  *
  * See [[Phabricator:45013]].
+
  * Maintainers: [[User:Krimpet]]
 
  */
 
  */
.ve-ui-mwNoticesPopupTool-item .editnotice-redlink, .mw-ve-editNotice .editnotice-redlink {
+
function uploadwizard_newusers() {
     display: none !important;
+
     if ( mw.config.get( 'wgNamespaceNumber' ) === 4 && mw.config.get( 'wgTitle' ) === 'Upload' && mw.config.get( 'wgAction' ) === 'view' ) {
}
+
        var oldDiv = document.getElementById( 'autoconfirmedusers' ),
 
+
            newDiv = document.getElementById( 'newusers' );
/* Remove bullets when there are multiple edit page warnings */
+
        if ( oldDiv && newDiv ) {
ul.permissions-errors > li {
+
            var userGroups = mw.config.get( 'wgUserGroups' );
    list-style: none none;
+
            if ( userGroups ) {
}
+
                for ( var i = 0; i < userGroups.length; i++ ) {
ul.permissions-errors {
+
                    if ( userGroups[i] === 'autoconfirmed' ) {
    margin: 0;
+
                        oldDiv.style.display = 'block';
}
+
                        newDiv.style.display = 'none';
 
+
                        return;
/* No linewrap on the labels of the login/signup page */
+
                    }
body.page-Special_UserLogin .mw-label label,
+
                }
body.page-Special_UserLogin_signup .mw-label label {
+
            }
    white-space: nowrap;
+
            oldDiv.style.display = 'none';
}
+
            newDiv.style.display = 'block';
 
+
            return;
/* Pie chart test: Transparent borders */
+
        }
.transborder {
 
    border: solid transparent;
 
}
 
* html .transborder {  /* IE6 */
 
    border: solid #000001;
 
    filter: chroma(color=#000001);
 
}
 
 
 
/* Styling for updated markers on watchlist, history and recent/related changes.
 
  Bullets are handled in skin-specific stylesheets. */
 
.updatedmarker {
 
    background-color: transparent;
 
    color: #006400;
 
}
 
.mw-changeslist-line-watched .mw-title,
 
.mw-enhanced-watched .mw-enhanced-rc-time {
 
    font-weight: normal;
 
}
 
 
 
/* Generic class for Times-based serif, texhtml class for inline math */
 
.times-serif,
 
span.texhtml {
 
    font-family: "Nimbus Roman No9 L", "Times New Roman", Times, serif;
 
    font-size: 118%;
 
    line-height: 1;
 
}
 
span.texhtml {
 
    white-space: nowrap;
 
}
 
span.texhtml span.texhtml {
 
    font-size: 100%;
 
}
 
 
 
/* Force tabular and lining display for digits and texhtml */
 
.digits,
 
.texhtml {
 
    -moz-font-feature-settings: "lnum", "tnum", "kern" 0;
 
    -webkit-font-feature-settings: "lnum", "tnum", "kern" 0;
 
    font-feature-settings: "lnum", "tnum", "kern" 0;
 
    font-variant-numeric: lining-nums tabular-nums;
 
    font-kerning: none;
 
}
 
 
 
/* Display tabs with 4 spaces, see [[Phabricator:59824]] and [[Phabricator:59825]] */
 
div.mw-geshi div,
 
div.mw-geshi div pre,
 
span.mw-geshi,
 
pre.source-css,
 
pre.source-javascript,
 
pre.source-lua {
 
    -moz-tab-size: 4;
 
    -o-tab-size: 4;
 
    tab-size: 4;
 
}
 
 
 
/* Fix styling of transcluded prefindex tables */
 
table#mw-prefixindex-list-table,
 
table#mw-prefixindex-nav-table {
 
    width: 98%;
 
}
 
 
 
/* For portals, added 2011-12-07 -bv
 
  On wide screens, show these as two columns
 
  On narrow and mobile screens, let them collapse into a single column */
 
.portal-column-left {
 
    float: left;
 
    width: 50%;
 
}
 
.portal-column-right {
 
    float: right;
 
    width: 49%;
 
}
 
.portal-column-left-wide {
 
    float: left;
 
    width: 60%;
 
}
 
.portal-column-right-narrow {
 
    float: right;
 
    width: 39%;
 
}
 
.portal-column-left-extra-wide {
 
    float: left;
 
    width: 70%;
 
}
 
.portal-column-right-extra-narrow {
 
    float: right;
 
    width: 29%;
 
}
 
@media only screen and (max-width: 800px) {
 
    /* Decouple the columns on narrow screens */
 
    .portal-column-left,
 
    .portal-column-right,
 
    .portal-column-left-wide,
 
    .portal-column-right-narrow,
 
    .portal-column-left-extra-wide,
 
    .portal-column-right-extra-narrow {
 
        float: inherit;
 
        width: inherit;
 
 
     }
 
     }
 
}
 
}
  
/* For announcements */
+
$(uploadwizard_newusers);
#bodyContent .letterhead {
 
    background-image:url('//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png');
 
    background-repeat:no-repeat;
 
    padding: 2em;
 
    background-color: #faf9f2;
 
}
 
  
/* Tree style lists */
+
/**
.treeview ul {
+
* Magic editintros ****************************************************
    padding: 0;
+
*
    margin: 0;
+
* Description: Adds editintros on disambiguation pages and BLP pages.
}
+
* Maintainers: [[User:RockMFR]]
.treeview li {
+
*/
    padding: 0;
+
function addEditIntro( name ) {
    margin: 0;
+
     $( '.mw-editsection, #ca-edit' ).find( 'a' ).each( function ( i, el ) {
    list-style-type: none;
+
        el.href = $( this ).attr( 'href' ) + '&editintro=' + name;
    list-style-image: none;
+
     } );
    zoom: 1; /* BE KIND TO IE6 */;
 
}
 
.treeview li li {
 
     background: url("//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png") no-repeat 0 -2981px;
 
    /* @noflip */
 
    padding-left: 20px;
 
    text-indent: 0.3em;
 
}
 
.treeview li li.lastline {
 
     background-position: 0 -5971px
 
}
 
.treeview li.emptyline > ul {
 
    /* @noflip */
 
    margin-left: -1px;
 
}
 
.treeview li.emptyline > ul > li:first-child {
 
    background-position: 0 9px
 
 
}
 
}
  
/* hidden sortkey for tablesorter */
+
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
td .sortkey,
+
    $( function () {
th .sortkey {
+
        if ( document.getElementById( 'disambigbox' ) ) {
    display: none;
+
            addEditIntro( 'Template:Disambig_editintro' );
     speak: none;
+
        }
}
+
     } );
  
/* Make it possible to hide checkboxes in <inputbox> */
+
    $( function () {
.inputbox-hidecheckboxes form .inputbox-element {
+
        var cats = mw.config.get('wgCategories');
     display: none !important;
+
        if ( !cats ) {
 +
            return;
 +
        }
 +
        if ( $.inArray( 'Living people', cats ) !== -1 || $.inArray( 'Possibly living people', cats ) !== -1 ) {
 +
            addEditIntro( 'Template:BLP_editintro' );
 +
        }
 +
     } );
 
}
 
}
  
/* Work-around for [[Phabricator:25965]] (Kaltura advertisement) */
 
.k-player .k-attribution {
 
    visibility: hidden;
 
}
 
  
/* Move 'play' button of video player to bottom left corner */
+
(function loadBPMNdiagram($){
.PopUpMediaTransform a .play-btn-large {
+
  var BpmnViewer = window.BpmnJS
     margin: 0;
+
  if($('#bpmn-embed-canvas').length){
     top: auto;
+
     
     right: auto;
+
    var viewer = new BpmnViewer({ container: '#bpmn-embed-canvas', height: '600px' })
     bottom: 0;
+
    var path_bpmn = $('#bpmn-embed-canvas').attr('data-path-bpmn');
     left: 0;
+
     var xhr = new XMLHttpRequest();
}
+
     xhr.onreadystatechange = function(){
 +
      if (xhr.readyState === 4){
 +
        viewer.importXML(xhr.response, function(err) {
 +
          if (!err) {
 +
          console.log('success!');
 +
          viewer.get('canvas').zoom('fit-viewport');
 +
        }
 +
        else
 +
        {
 +
          console.log('something went wrong:', err);
 +
        }
 +
      });
 +
     }};
 +
     xhr.open('GET', path_bpmn, true);
 +
     xhr.send(null);
 +
  }
 +
})(jQuery)
  
/* Workaround to keep editnotices readable in VE view.
+
/* End of mw.loader.using callback */
  Long term, editnotices should become a core feature so that they can be designed responsive. */
+
} );
.mw-ve-editNotice .mbox-image {
+
/* DO NOT ADD CODE BELOW THIS LINE */
display: none;
 
}
 

Τελευταία αναθεώρηση της 13:37, 1 Ιουνίου 2018

/* Any JavaScript here will be loaded for all users on every page load. */
/**
 * 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.
 */

/* global mw, $, importStylesheet, importScript */
/* jshint strict:false, browser:true */

mw.loader.using( ['mediawiki.util', 'mediawiki.notify', 'jquery.client'] ).done( function () {
/* Begin of mw.loader.using callback */

/**
 * Main Page layout fixes
 *
 * Description: Adds an additional link to the complete list of languages available.
 * Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
 */
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) {
    $( function () {
        mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
            'Complete list', 'interwiki-completelist', 'Complete list of Wikipedias' );
    } );
}

/**
 * Redirect User:Name/skin.js and skin.css to the current skin's pages
 * (unless the 'skin' page really exists)
 * @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js
 * @rev: 2
 */
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.shift() + '/' + mw.config.get( 'skin' );
        if ( titleParts.slice( -1 ) == 'skin.js' ) {
            window.location.href = mw.util.getUrl( userSkinPage + '.js' );
        } else if ( titleParts.slice( -1 ) == 'skin.css' ) {
            window.location.href = mw.util.getUrl( userSkinPage + '.css' );
        }
    }
}

/**
 * Map addPortletLink to mw.util
 * @deprecated: Use mw.util.addPortletLink instead.
 */
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Use mw.util.addPortletLink instead' );

/**
 * Extract a URL parameter from the current URL
 * @deprecated: Use mw.util.getParamValue with proper escaping
 */
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Use mw.util.getParamValue instead' );

/**
 * Test if an element has a certain class
 * @deprecated:  Use $(element).hasClass() instead.
 */
mw.log.deprecate( window, 'hasClass', function ( element, className ) {
    return $( element ).hasClass( className );
}, 'Use jQuery.hasClass() instead' );

/**
 * @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
 * @rev 6
 */
var extraCSS = mw.util.getParamValue( 'withCSS' ),
    extraJS = mw.util.getParamValue( 'withJS' );

if ( extraCSS ) {
    if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
        importStylesheet( extraCSS );
    } else {
        mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } );
    }
}

if ( extraJS ) {
    if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
        importScript( extraJS );
    } else {
        mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } );
    }
}

/**
 * Import more specific scripts if necessary
 */
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' || mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload' ) {
    /* scripts specific to editing pages */
    importScript( 'MediaWiki:Common.js/edit.js' );
} else if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
    /* watchlist scripts */
    importScript( 'MediaWiki:Common.js/watchlist.js' );
}

/**
 * Helper script for .hlist class in Common.css
 * Add pseudo-selector class to last-child list items in IE8
 * @source mediawiki.org/wiki/Snippets/Horizontal_lists
 * @revision 6 (2014-08-23)
 * @author [[User:Edokter]]
 */
( function ( mw, $ ) {
    var profile = $.client.profile();
    if ( profile.name === 'msie' && profile.versionNumber === 8 ) {
        mw.hook( 'wikipage.content' ).add( function ( $content ) {
            $content.find( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
                .addClass( 'hlist-last-child' );
        } );
    }
}( mediaWiki, jQuery ) );

/**
 * Fix for Windows XP Unicode 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"; } ' );
}

/**
 * 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]]
 */
( function () {
    var require_wikiminiatlas = false;
    var coord_filter = /geohack/;
    $( function () {
        $( 'a.external.text' ).each( function( key, link ) {
            if ( link.href && coord_filter.exec( link.href ) ) {
                require_wikiminiatlas = true;
                // break from loop
                return false;
            }
        } );
        if ( $( 'div.kmldata' ).length ) {
            require_wikiminiatlas = true;
        }
        if ( require_wikiminiatlas ) {
            mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );
        }
    } );
} )();

/**
 * Collapsible tables
 *
 * Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]].
 *
 * @version 2.0.3 (2014-03-14)
 * @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 = 'hide';
var expandCaption = 'show';
var tableIndex = 0;

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

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

    var Rows = Table.rows;
    var i;

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

function createClickHandler( tableIndex ) {
    return function ( e ) {
        e.preventDefault();
        collapseTable( tableIndex );
    };
}

function createCollapseButtons( $content ) {
    var NavigationBoxes = {};
    var $Tables = $content.find( 'table' );
    var i;

    $Tables.each( function( i, table ) {
        if ( $(table).hasClass( 'collapsible' ) ) {

            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = table.getElementsByTagName( 'tr' )[0];
            if ( !HeaderRow ) {
                return;
            }
            var Header = table.getElementsByTagName( 'th' )[0];
            if ( !Header ) {
                return;
            }

            NavigationBoxes[ tableIndex ] = table;
            table.setAttribute( 'id', 'collapsibleTable' + tableIndex );

            var Button     = document.createElement( 'span' );
            var ButtonLink = document.createElement( 'a' );
            var ButtonText = document.createTextNode( collapseCaption );
            // Styles are declared in [[MediaWiki:Common.css]]
            Button.className = 'collapseButton';

            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
            ButtonLink.setAttribute( 'href', '#' );
            $( ButtonLink ).on( 'click', createClickHandler( tableIndex ) );
            ButtonLink.appendChild( ButtonText );

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

            Header.insertBefore( Button, Header.firstChild );
            tableIndex++;
        }
    } );

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

mw.hook( 'wikipage.content' ).add( createCollapseButtons );

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

/* set up the words in your language */
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
var indexNavigationBar = 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, event ) {
    var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
    var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
    var 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;
    }

    event.preventDefault();
};

/* adds show/hide-button to navigation bars */
function createNavigationBarToggleButton( $content ) {
    var NavChild;
    /* iterate over all < div >-elements */
    var $divs = $content.find( 'div' );
    $divs.each( function ( i, NavFrame ) {
        /* 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', '#' );
            $( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, 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 );
            NavToggle.appendChild( NavToggleText );

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

mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );

/**
 * Uploadwizard_newusers
 * Switches in a message for non-autoconfirmed users at [[Wikipedia:Upload]]
 *
 * Maintainers: [[User:Krimpet]]
 */
function uploadwizard_newusers() {
    if ( mw.config.get( 'wgNamespaceNumber' ) === 4 && mw.config.get( 'wgTitle' ) === 'Upload' && mw.config.get( 'wgAction' ) === 'view' ) {
        var oldDiv = document.getElementById( 'autoconfirmedusers' ),
            newDiv = document.getElementById( 'newusers' );
        if ( oldDiv && newDiv ) {
            var userGroups = mw.config.get( 'wgUserGroups' );
            if ( userGroups ) {
                for ( var i = 0; i < userGroups.length; i++ ) {
                    if ( userGroups[i] === 'autoconfirmed' ) {
                        oldDiv.style.display = 'block';
                        newDiv.style.display = 'none';
                        return;
                    }
                }
            }
            oldDiv.style.display = 'none';
            newDiv.style.display = 'block';
            return;
        }
    }
}

$(uploadwizard_newusers);

/**
 * Magic editintros ****************************************************
 *
 * Description: Adds editintros on disambiguation pages and BLP pages.
 * Maintainers: [[User:RockMFR]]
 */
function addEditIntro( name ) {
    $( '.mw-editsection, #ca-edit' ).find( 'a' ).each( function ( i, el ) {
        el.href = $( this ).attr( 'href' ) + '&editintro=' + name;
    } );
}

if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
    $( function () {
        if ( document.getElementById( 'disambigbox' ) ) {
            addEditIntro( 'Template:Disambig_editintro' );
        }
    } );

    $( function () {
        var cats = mw.config.get('wgCategories');
        if ( !cats ) {
            return;
        }
        if ( $.inArray( 'Living people', cats ) !== -1 || $.inArray( 'Possibly living people', cats ) !== -1 ) {
            addEditIntro( 'Template:BLP_editintro' );
        }
    } );
}


(function loadBPMNdiagram($){
  var BpmnViewer = window.BpmnJS
  if($('#bpmn-embed-canvas').length){
      
    var viewer = new BpmnViewer({ container: '#bpmn-embed-canvas', height: '600px' })
    var path_bpmn = $('#bpmn-embed-canvas').attr('data-path-bpmn');
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function(){
      if (xhr.readyState === 4){
        viewer.importXML(xhr.response, function(err) {
          if (!err) {
          console.log('success!');
          viewer.get('canvas').zoom('fit-viewport');
        }
        else
        {
          console.log('something went wrong:', err);
        }
      });
    }};
    xhr.open('GET', path_bpmn, true);
    xhr.send(null);
  }
})(jQuery)

/* End of mw.loader.using callback */
} );
/* DO NOT ADD CODE BELOW THIS LINE */