MediaWiki:Common.js: Forskelle mellem versioner

Fra SpejderWiki
Spring til navigation Spring til søgning
(copy from da.wikipedia.org)
 
(Imported from text file)
 
Linje 1: Linje 1:
/* Javascript inkluderet her vil være aktivt for alle brugere. */


// ============================================================
// BEGIN Enable multiple onload functions
// setup onload functions this way:
// aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets!
if (!window.aOnloadFunctions) {
  var aOnloadFunctions = new Array();
}
window.onload = function() {
  if (window.aOnloadFunctions) {
    for (var _i=0; _i<aOnloadFunctions.length; _i++) {
      aOnloadFunctions[_i]();
    }
  }
}
// END Enable multiple onload functions
// ============================================================
/** 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.
  *  Created by: [[User:Dschwen]]
  */
document.write('<script type="text/javascript" src="'
    + '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js'
    + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
/* Test if an element has a certain class **************************************
*
* Description: Uses regular expressions and caching for better performance.
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
*/
var hasClass = (function () {
var reCache = {};
return function (element, className) {
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
};
})();
function LinkFA()
{
  // iterate over all <span>-elements
  for(var i=0; a = document.getElementsByTagName("span")[i]; i++) {
      // if found a FA span
      if(a.className == "FA") {
        // iterate over all <li>-elements
          for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
            // if found a FA link
            if(b.className == "interwiki-" + a.id) {
              b.style.padding = "0 0 0 16px";
              b.style.backgroundImage = "url('//upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Symbol_star_gold.svg/15px-Symbol_star_gold.svg.png')";
              b.style.backgroundRepeat = "no-repeat";
              b.title = "Denne artikel er markeret som en fremragende artikel.";
            }
        }
      }
  }
}
aOnloadFunctions[aOnloadFunctions.length] = LinkFA;
function LinkGA()
{
    var a;
    // iterate over all <span>-elements
    for(var i=0; a = document.getElementsByTagName("span")[i]; i++) {
        // if found an GA span
        if(a.className == "GA") {
            // iterate over all <li>-elements
            var b;
            for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
                // if found an GA link
                if(b.className == "interwiki-" + a.id) {
                    b.style.padding = "0 0 0 16px";
                    b.style.backgroundImage = "url('//upload.wikimedia.org/wikipedia/commons/thumb/9/94/Symbol_support_vote.svg/14px-Symbol_support_vote.svg.png')";
                    b.style.backgroundRepeat = "no-repeat";
                    b.title = "Denne artikel er markeret som en god artikel.";
                }
            }
        }
    }
}
aOnloadFunctions[aOnloadFunctions.length] = LinkGA;
/** Collapsible tables *********************************************************
*
*  Description: Allows tables to be collapsed, showing only the header. See
*              [[Wikipedia:NavFrame]].
*  Maintainers: [[User:R. Koot]]
*/
var autoCollapse = 2;
var collapseCaption = "skjul";
var expandCaption = "vis";
function collapseTable( tableIndex )
{
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
    if ( !Table || !Button ) {
        return false;
    }
    var Rows = Table.rows;
    if ( Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
    }
}
function createCollapseButtons()
{
    var tableIndex = 0;
    var NavigationBoxes = new Object();
    var Tables = document.getElementsByTagName( "table" );
    for ( var i = 0; i < Tables.length; i++ ) {
        if ( hasClass( Tables[i], "collapsible" ) ) {
            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
            if (!HeaderRow) continue;
            var Header = HeaderRow.getElementsByTagName( "th" )[0];
            if (!Header) continue;
            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
            var Button    = document.createElement( "span" );
            var ButtonLink = document.createElement( "a" );
            var ButtonText = document.createTextNode( collapseCaption );
            Button.style.styleFloat = "right";
            Button.style.cssFloat = "right";
            Button.style.fontWeight = "normal";
            Button.style.textAlign = "right";
            Button.style.width = "6em";
            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
            ButtonLink.appendChild( ButtonText );
            Button.appendChild( document.createTextNode( "[" ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( "]" ) );
            Header.insertBefore( Button, Header.childNodes[0] );
            tableIndex++;
        }
    }
    for ( var i = 0;  i < tableIndex; i++ ) {
        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
            collapseTable( i );
        }
    }
}
addOnloadHook( createCollapseButtons );
/** Flyt portallinks ******************************************************
  *
  *  Beskrivelse: Flytter portallinks op i toppen af siden. Bruges af [[:Skabelon:Portaltop]]
  */
  addOnloadHook( function () {
    try {
      var x = document.getElementById('siteSub');
      if(!x) return;
      var y = document.getElementById('portlinks');
      if(!y) return;
      var str = y.innerHTML;
      if (str.length) str = str.replace(/(?:&nbsp;|&#160;|\u00a0|\u000d|\x0d|\r|\u000a|\x0a|\n)*(?:&middot;|·|\|)(?:&nbsp;|&#160;|\u00a0|\u000d|\x0d|\r|\u000a|\x0a|\n)*/g, ", ");
      y = y.parentNode;
      if(!y) return;
      y.parentNode.removeChild(y);
      x.innerHTML = str;
    }
    catch (e) {
      // Woopsie, die without a notice
    }
  });
  // Flyt portallinks slut
// OpenStreetMap til at  åbne i artikler med koordinater - ligger i egen js fil. Inkludert af [[Bruger:Nico]] efter vejledning af  [[:no:Bruker:Haros]]
var osm_proj_map='kort'; //"map" in project language
var osm_proj_lang='da';  //project language
var metaBase = "//meta.wikimedia.org";
importScriptURI(metaBase+'/w/index.php?title=MediaWiki:OSM.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400');
/*
* Description: Stay on the secure server as much as possible
* Maintainers: [[User:TheDJ]]
*/
if(wgServer == 'https://secure.wikimedia.org') {
    mw.loader.load('https://secure.wikimedia.org/wikipedia/no/w/index.php?title=MediaWiki:Common.js/secure.js');
}
/**
* iProject (InterProjectLinks)
* Written by: Erwin ([[:nl:MediaWiki:IProject.js]]), modified by Kildor
* Description: Adds links to other WMF projects in the sidebar
*  ([[:bugzilla:708]]). Works for all skins with a sidebar.
*
* Originally written by Magnus Manske. Version forked from
*  [[:es:MediaWiki:Common.js]] and [[:de:wikt:Mediawiki:monobook.js]]
*/
function iProject() {
    // Find templates with interproject links. These templates should have a div
    // with class 'interProject' that only contains a link to the other project.
    iProjectLinks = getElementsByClassName(document, 'div', 'interProject');
    if (iProjectLinks.length > 0) {
        // The element below should always be available. To not break code
        // we do check for it, but don't have a fallback.
        if (document.getElementById('p-tb')) {
            prevNode = document.getElementById('p-tb');
        } else {
            return false;
        }
        // Clone previous node including child nodes.
        interProject = prevNode.cloneNode(true);
        interProject.id = 'p-project';
        // Set header of new toolbox
        h = interProject.getElementsByTagName('h5');
        if(h[0]) {
            h[0].innerHTML = 'P&aring; andre projekter';
        }
        // The links are included in the first and only div of the toolbox
        d = interProject.getElementsByTagName('div');
        if(d[0]) {
            d = d[0];
        } else {
            return false;
        }
        // Remove current children, i.e. current ul element.
        while(d.hasChildNodes()) {
            d.removeChild(d.childNodes[0])
        }
        // Create new list with links
        ul = document.createElement('ul')
        ul.className += " interProject";
        for (i = 0; i< iProjectLinks.length; i++) {
            li = document.createElement('li');
            li.className += " " + iProjectLinks[i].className;
            li.innerHTML = iProjectLinks[i].innerHTML;
            ul.appendChild(li)
        }
        d.appendChild(ul);
        // Insert new node
        prevNode.parentNode.insertBefore(interProject, prevNode.nextSibling);
    }
}
addOnloadHook(iProject);
/*
* Description: Stay on the secure server as much as possible
* Maintainers: [[User:TheDJ]]
*/
if(wgServer == 'https://secure.wikimedia.org') {
    importScript( 'MediaWiki:Common.js/secure.js');
}
/* End */

Nuværende version fra 17. dec. 2017, 22:22