MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus DarkfleetWiki
Wechseln zu: Navigation, Suche
K (weihnachten is um, schnee raus.)
 
(39 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
/* Hinweis: Die Wiki-Überschriften sind JavaScript-technisch auskommentiert
+
/*********************************************************************/
== Multiple onload functions ==
+
/* Common.js enthält gemeinsamen JavaScript-Code für alle Benutzer. */
  // setup onload functions this way:
+
/* Jedes JavaScript, dass sich in dieser Seite befindet, wird für */
// aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! */
+
/* alle Benutzer geladen. Daher bitte mit Vorsicht bearbeiten!   */
+
/*****************************************************************/
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
 
// ============================================================
 
  
== Dynamic Navigation Bars ==
+
/*** 1. Anpassung für die Navigationsleisten ***/
// NEEDS Enable multiple onload functions */
 
 
// set up the words in your language
 
var NavigationBarHide = 'Einklappen';
 
var NavigationBarShow = 'Ausklappen';
 
 
// set up max count of Navigation Bars on page,
 
// if there are more, all will be hidden
 
// NavigationBarShowDefault = 0; // all bars will be hidden
 
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
 
var NavigationBarShowDefault = 0;
 
 
 
// shows and hides content and picture (if available) of navigation bars
 
// Parameters:
 
//    indexNavigationBar: the index of navigation bar to be toggled
 
function toggleNavigationBar(indexNavigationBar)
 
{
 
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
 
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
 
    if (!NavFrame || !NavToggle) {
 
        return false;
 
    }
 
 
    // if shown now
 
    if (NavToggle.firstChild.data == NavigationBarHide) {
 
        for (
 
                var NavChild = NavFrame.firstChild;
 
                NavChild != null;
 
                NavChild = NavChild.nextSibling
 
            ) {
 
            if (NavChild.className == 'NavPic') {
 
                NavChild.style.display = 'none';
 
            }
 
            if (NavChild.className == 'NavContent') {
 
                NavChild.style.display = 'none';
 
            }
 
            if (NavChild.className == 'NavToggle') {
 
                NavChild.firstChild.data = NavigationBarShow;
 
            }
 
        }
 
 
    // if hidden now
 
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
 
        for (
 
                var NavChild = NavFrame.firstChild;
 
                NavChild != null;
 
                NavChild = NavChild.nextSibling
 
            ) {
 
            if (NavChild.className == 'NavPic') {
 
                NavChild.style.display = 'block';
 
            }
 
            if (NavChild.className == 'NavContent') {
 
                NavChild.style.display = 'block';
 
            }
 
            if (NavChild.className == 'NavToggle') {
 
                NavChild.firstChild.data = NavigationBarHide;
 
            }
 
        }
 
    }
 
}
 
 
// adds show/hide-button to navigation bars
 
function createNavigationBarToggleButton()
 
{
 
    var indexNavigationBar = 0;
 
    // iterate over all < div >-elements
 
    for(
 
            var i=0;
 
            NavFrame = document.getElementsByTagName("div")[i];
 
            i++
 
        ) {
 
        // if found a navigation bar
 
        if (NavFrame.className == "NavFrame") {
 
 
            indexNavigationBar++;
 
            var NavToggle = document.createElement("a");
 
            NavToggle.className = 'NavToggle';
 
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
 
            var NavToggleText = document.createTextNode(NavigationBarHide);
 
            NavToggle.appendChild(NavToggleText);
 
 
            // add NavToggle-Button as first div-element
 
            // in < div class="NavFrame" >
 
            NavFrame.insertBefore(
 
                NavToggle,
 
                NavFrame.firstChild
 
            );
 
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
 
        }
 
    }
 
    // if more Navigation Bars found than Default: hide all
 
    if (NavigationBarShowDefault < indexNavigationBar) {
 
        for(
 
                var i=1;
 
                i<=indexNavigationBar;
 
                i++
 
        ) {
 
            toggleNavigationBar(i);
 
        }
 
    }
 
 
}
 
 
aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
 
 
/* END Dynamic Navigation Bars
 
// ============================================================
 
  
== Besucherecke ==
+
// Sprachdefinition
// NEEDS multiple onload functions */
+
var NavigationBarHide = 'Einklappen';
+
var NavigationBarShow = 'Ausklappen';
function init_gamesdyn()
 
{
 
  div = document.getElementById('p-Besucherecke');
 
  /* li = document.createElement('li');
 
    * ifr = document.createElement('iframe');
 
    * ifr.setAttribute('src', 'http://voting.gdynamite.de/45/');
 
    * ifr.setAttribute('width', '88');
 
    * ifr.setAttribute('height', '31');
 
    * ifr.setAttribute('frameborder', '0');
 
    * ifr.setAttribute('marginwidth', '0');
 
    * ifr.setAttribute('marginheight', '0');
 
    * ifr.setAttribute('scrolling', 'no');
 
    * ifr.setAttribute('hspace', '0');
 
    * ifr.setAttribute('vspace', '0');
 
    * li.appendChild(document.createTextNode('Vote für Freewar:'));
 
    * li.appendChild(ifr);
 
    * div.getElementsByTagName('ul')[0].appendChild(li); */
 
  toolbar = document.getElementById('p-tb')
 
  toolbar.parentNode.insertBefore(div, toolbar);
 
}
 
aOnloadFunctions[aOnloadFunctions.length] = init_gamesdyn;
 
 
/* END Besucherecke
 
// ============================================================
 
  
== NPC-Bilder ein/aus ==
+
/**
  // NEEDS multiple onload functions */
+
  * Maximale Anzahl an Navigationsleisten pro Seite.
   
+
  * Gibt es auf einer Seite mehr, werden diese automatisch versteckt!
  function showNI(bool)
+
  * var NavigationBarShowDefault = 0; // Alle Navigationsleisten werden versteckt
  {
+
  * var NavigationBarShowDefault = 1; // Alle außer die erste Navigationsleiste werden versteckt
  if (bool)
+
**/
  {
+
var NavigationBarShowDefault = 0;
    document.cookie="tiramon_deShowNI=1";
 
  }
 
  else
 
  {
 
    document.cookie="tiramon_deShowNI=0";
 
  }
 
  location.reload();
 
}
 
  
  function work_on_npcimages()
+
/**
  {
+
* Zeigt und versteckt den Inhalt und das Bild der Navigationsleiste
  // add show/hide links to all maps
+
  * Parameter:
  findmenu = document.getElementById("NIinout");
+
  * indexNavigationBar: Index der Navigationsleiste
  if (findmenu)
+
**/
  {
+
function toggleNavigationBar(indexNavigationBar) {
    showlink=document.createElement("a");
+
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    showlink.setAttribute("href","Javascript:showNI(true)");
+
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
    showlink.appendChild(document.createTextNode('anzeigen'));
 
    hidelink=document.createElement("a");
 
    hidelink.setAttribute("href","Javascript:showNI(false)");
 
    hidelink.appendChild(document.createTextNode('verbergen'));
 
    findmenu.appendChild(showlink);
 
    findmenu.appendChild(document.createTextNode('/'));
 
    findmenu.appendChild(hidelink);
 
  }
 
  
  // enable display of NIs if wished
+
if (!NavFrame || !NavToggle) {
  for(var i=0; foundspan = document.getElementsByTagName("span")[i]; i++)
+
return false;
  {
+
}
    var tiramon_deShowNI=document.cookie;
 
    if (tiramon_deShowNI.indexOf("tiramon_deShowNI=")=="-1") return(-1);
 
    if (tiramon_deShowNI.charAt(tiramon_deShowNI.indexOf("tiramon_deShowNI=")+17)!="1") return(-1);
 
    if (foundspan.className == "NI")
 
    {
 
      foundspan.setAttribute("style", "display:inline;");
 
    }
 
  }
 
  
}
+
// Verstecken, wenn die Leiste derzeit gezeigt wird
aOnloadFunctions[aOnloadFunctions.length] = work_on_npcimages;
+
if (NavToggle.firstChild.data == NavigationBarHide) {
+
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
/* END NPC-Images
+
if (NavChild.className == 'NavPic') {
 +
NavChild.style.display = 'none';
 +
}
 +
if (NavChild.className == 'NavContent') {
 +
NavChild.style.display = 'none';
 +
}
 +
if (NavChild.className == 'NavToggle') {
 +
NavChild.firstChild.data = NavigationBarShow;
 +
}
 +
}
  
== schnee ==
+
// Anzeigen, wenn die Leiste derzeit versteckt ist
 +
} else if (NavToggle.firstChild.data == NavigationBarShow) {
 +
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 +
if (NavChild.className == 'NavPic') {
 +
NavChild.style.display = 'block';
 +
}
 +
if (NavChild.className == 'NavContent') {
 +
NavChild.style.display = 'block';
 +
}
 +
if (NavChild.className == 'NavToggle') {
 +
NavChild.firstChild.data = NavigationBarHide;
 +
}
 +
}
 +
}
 +
}
  
 
////////////////////////////////////////////////////////////////////////
 
// SnowFlakes-Script (c) 2009, Dominik Scholz / go4u.de Webdesign
 
////////////////////////////////////////////////////////////////////////
 
  
// amount of snow flakes
+
/**
var snow_amount = 50;
+
* Fügt Anzeigen/Verstecken-Link zur Navigationsleiste hinzu
// colors of snowflakes
+
*/
var snow_color = new Array('#AAAACC', '#DDDDFF', '#CCCCDD', '#F3F3F3', '#F0FFFF');
+
function createNavigationBarToggleButton() {
// fonts to be used for snowflakes
+
var indexNavigationBar = 0;
var snow_type = new Array('Arial Black', 'Arial Narrow', 'Times', 'Comic Sans MS');
+
// Auf alle div-Elemente anwenden
// char used for snowflakes
+
for (var i = 0; NavFrame = document.getElementsByTagName("div")[i]; i++) {
var snow_char = '*';
+
// Wenn eine Navigationsleiste gefunden wurde
// vertical snowflakes speed
+
if (NavFrame.className == "NavFrame") {
var snow_speed = 2.4;
+
indexNavigationBar++;
// timeout for animation
+
var NavToggle = document.createElement("a");
var snow_timeout = 50;
+
NavToggle.className = 'NavToggle';
// maximum size of snowflakes
+
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
var snow_maxsize = 22;
+
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
// minimum size of snowflakes
 
var snow_minsize = 8;
 
// maximal drift in each direction (left/right)
 
var snow_drift = 15;
 
  
////////////////////// don't edit below this line //////////////////////
+
var NavToggleText = document.createTextNode(NavigationBarHide);
var snow_flakes = new Array();
+
NavToggle.appendChild(NavToggleText);
var snow_body_width = 0;
+
var snow_body_height = 0;
+
// Füge die Links als erstes div-Element hinzu
var snow_resizing = false;
+
NavFrame.insertBefore(NavToggle, NavFrame.firstChild);
var snow_range = snow_maxsize - snow_minsize;
+
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
var snow_eventHandlerResize = window.onresize;
+
}
var snow_eventHandlerLoad = window.onload;
+
}
 +
// Wenn mehrere Navigationsleisten gefunden wurden, dann wird versteckt
 +
if (NavigationBarShowDefault < indexNavigationBar) {
 +
for (var i = 1; i <= indexNavigationBar; i++) {
 +
toggleNavigationBar(i);
 +
}
 +
}
 +
}
  
// register window resize event
+
// Lade createNavigationBarToggleButton() nach Laden der Seite
window.onresize = snow_resize;
+
jQuery( document ).ready( function( $ ) {
window.onload = snow_start;
+
createNavigationBarToggleButton();
 +
} );
 +
//addOnloadHook(createNavigationBarToggleButton);
 +
 +
/*** ENDE: Anpassung für die Navigationsleisten ***/
  
// start snow
+
//=============================================================
function snow_start()
 
{
 
if (snow_eventHandlerLoad != null) snow_eventHandlerLoad();
 
  
// init window size
+
/*** 2. Kampfrechner ***/
snow_window_size();
+
/*
 +
// Ist in [[MediaWiki:Kampfrechner.js]] ausgelagert
 +
// Wird nur auf der Seite [[Kampfrechner]] aufgerufen
 +
if (mw.config.get('wgTitle') === 'Kampfrechner') {
 +
        mw.loader.load( '/index.php?title=MediaWiki:Kampfrechner.js&action=raw&ctype=text/javascript' );
 +
//importScript("MediaWiki:Kampfrechner.js");
 +
}
 +
*/
 +
/*** ENDE: Kampfrechner ***/
  
// add new flakes
+
//=============================================================
while (snow_amount > snow_flakes.length)
 
snow_flake_create(snow_flakes.length);
 
  
// start to move snow
+
/*** 3. Forschungen ***/
snow_move();
+
// Ist in [[MediaWiki:CFoptions.js]] ausgelagert
}
+
// Siehe auch: [[:Kategorie:Forschung]]
 +
mw.loader.load( '/index.php?title=MediaWiki:CFoptions.js&action=raw&ctype=text/javascript' );
 +
//importScript("MediaWiki:CFoptions.js");
  
 +
/*** ENDE: Forschungen ***/
  
////////////////////////////// functions ///////////////////////////////
+
//=============================================================
  
// creates a new snowflake
+
/*** 4. NPC-Bilder ***/
function snow_flake_create(i)
+
 +
/**
 +
* Zeigt/Versteckt NPC-Bilder
 +
* Parameter:
 +
* bool: Wenn wahr, NPC-Bilder anzeigen, wenn falsch, dann nicht
 +
*/
 +
function showNI(bool)
 
{
 
{
// select body tag
+
var DaysToExpire = 300; // Cookie wird nach so vielen Tagen gelöscht
var insertBody = document.getElementsByTagName('body')[0];
+
var ExpireDate = new Date();
  
// create span child for flake
+
ExpireDate.setTime((ExpireDate.getTime() + DaysToExpire * 24 * 60 * 60 * 1000));
var insertFlake = document.createElement('div');
 
insertFlake.id            = 'flake'+i;
 
insertFlake.style.position = 'absolute';
 
insertFlake.style.left    = '0px';
 
insertFlake.style.top      = '-'+snow_maxsize+'px';
 
insertFlake.style.zIndex  = 20000;
 
insertFlake.innerHTML      = snow_char;
 
insertBody.appendChild(insertFlake);
 
  
// create array element
+
if (bool) {
snow_flakes[i]      = new Array();
+
document.cookie="tiramon_deShowNI=1; expires=" + ExpireDate.toGMTString();
snow_flakes[i].x    = snow_random(snow_body_width-2*snow_drift-snow_maxsize-3) + snow_drift+1;
+
} else {
snow_flakes[i].y    = -snow_maxsize-snow_random(snow_body_height);
+
document.cookie="tiramon_deShowNI=0; expires=" + ExpireDate.toGMTString();
snow_flakes[i].size  = snow_random(snow_range) + snow_minsize;
+
}
snow_flakes[i].count = snow_random(10000);
+
location.reload();
insertFlake.style.color = snow_color[snow_random(snow_color.length-1)];
 
insertFlake.style.family = snow_type[snow_random(snow_type.length-1)];
 
insertFlake.style.fontSize = (snow_random(snow_range)+snow_minsize)+"px";
 
 
}
 
}
  
// restarts an existing snow flake
+
/**
function snow_flake_restart(i)
+
* Generalfunktion, arbeitet an allen NPC-Bildern
 +
*/
 +
function work_on_npcimages()
 
{
 
{
snow_flakes[i]      = new Array();
+
// Füge Anzeigen/Verstecken-Link hinzu
snow_flakes[i].x    = snow_random(snow_body_width-2*snow_drift-snow_maxsize-3) + snow_drift+1;
+
findmenu = document.getElementById("NIinout");
snow_flakes[i].y    = -snow_maxsize;
+
if (findmenu) {
snow_flakes[i].size  = snow_random(snow_range) + snow_minsize;
+
showlink=document.createElement("a");
snow_flakes[i].count = 0;
+
showlink.setAttribute("href","Javascript:showNI(true)");
 +
showlink.appendChild(document.createTextNode('anzeigen'));
 +
 +
hidelink=document.createElement("a");
 +
hidelink.setAttribute("href","Javascript:showNI(false)");
 +
hidelink.appendChild(document.createTextNode('verbergen'));
 +
 +
findmenu.appendChild(showlink);
 +
findmenu.appendChild(document.createTextNode('/'));
 +
findmenu.appendChild(hidelink);
 +
}
 +
 
 +
// Standardwert des Anzeigemodus
 +
var NIDisplaymode = "inline";
 +
 
 +
// Frage gespeicherten Anzeigemodus ab
 +
var tiramon_deShowNI=document.cookie;
 +
if (tiramon_deShowNI.indexOf("tiramon_deShowNI=") != "-1") {
 +
if (tiramon_deShowNI.charAt(tiramon_deShowNI.indexOf("tiramon_deShowNI=")+17)!="1") NIDisplaymode = "none";
 +
}
 +
 
 +
for (var i = 0; foundspan = document.getElementsByTagName("span")[i]; i++) {
 +
if (foundspan.className == "NI") {
 +
foundspan.setAttribute("style", "display:" + NIDisplaymode +";");
 +
}
 +
}
 +
 
 
}
 
}
  
// move existing flakes
+
// Starte work_on_npcimages() nach Laden der Seite
function snow_move()
+
jQuery( document ).ready( function( $ ) {
{
+
work_on_npcimages();
 +
} );
 +
//addOnloadHook(work_on_npcimages);
 +
 
 +
/*** ENDE: NPC-Bilder ***/
 +
 
 +
 
 +
//=============================================================
 +
 
 +
/*** 5. Schnee/Feuerwerk ***/
  
for (i=0; i<snow_flakes.length; i++)
+
/** ==Schnee== **/
{
+
// Ist in [[MediaWiki:Schnee.js]] ausgelagert
var flake = document.getElementById('flake'+i);
+
//if (mw.config.get('wgTitle') === 'Hauptseite') {
 +
//mw.loader.load('/index.php?title=MediaWiki:Schnee.js&action=raw&ctype=text/javascript');
 +
//}
  
// restart existing flake
+
/** ==Feuerwerk== **/
if ((snow_flakes[i].y + snow_flakes[i].size + 20) >= snow_body_height)
+
// Ist in [[MediaWiki:Feuerwerk.js]] ausgelagert
snow_flake_restart(i);
+
//if (mw.config.get('wgTitle') === 'Hauptseite') {
 +
//mw.loader.load('/index.php?title=MediaWiki:Feuerwerk.js&action=raw&ctype=text/javascript');
 +
//}
  
snow_flakes[i].count++;
+
/*** ENDE: Schnee/Feuerwerk ***/
snow_flakes[i].y += snow_speed;
 
  
x = snow_flakes[i].x + Math.sin(snow_flakes[i].count / snow_flakes[i].size) * 15;
+
//=============================================================
y = snow_flakes[i].y;
 
  
 
flake.style.left = x + 'px';
 
flake.style.top  = y + 'px';
 
}
 
  
// do it again
+
/*** 6. Vertikale Tabs ***/
window.setTimeout('snow_move();', snow_timeout);
 
}
 
  
function snow_random(range)
+
// Variablendefinition
{
+
var shownTab = Array();
    return Math.floor(Math.random() * range);
+
var disabledLink = Array();
}
 
  
function snow_window_size()
+
/**
{
+
* Änderung des aktuell ausgewählten Tabs
// save old width
+
*/
var old_width = snow_body_width;
+
function showVTab(area, tab) {
 +
var div = document.getElementById('VTabContent_' + String(area) + '_' + String(tab));
 +
var a = document.getElementById('VTabLink_' + String(area) + '_' + String(tab));
 +
if (!div || !a) return;
  
// get new width
+
div.style.height = 'auto';
    snow_body_width = document.body.clientWidth - snow_maxsize - 20;
+
if (shownTab[area]) shownTab[area].style.height = '0';
    snow_body_height = document.body.clientHeight;
+
shownTab[area] = div;
if ((window.innerHeight) && (window.innerHeight > snow_body_height))
 
snow_body_height = window.innerHeight;
 
else if ((document.body && document.body.offsetHeight) && (document.body.offsetHeight > snow_body_height))
 
    snow_body_height = document.body.offsetHeight;
 
  
// calculate correction ratio
+
var strong = document.getElementById('VTabStrong_' + String(area));
var ratio = snow_body_width / old_width;
+
if (!strong) {
+
strong = document.createElement('strong');
// for all flakes
+
strong.id = 'VTabStrong_' + String(area);
for (i=0; i<snow_flakes.length; i++)
+
strong.className = 'selflink';
{
+
}
var flake = document.getElementById('flake'+i);
 
  
// do width correction
+
if (disabledLink[area]) {
snow_flakes[i].x *= ratio;
+
disabledLink[area].appendChild(strong.firstChild);
+
strong.parentNode.appendChild(disabledLink[area]);
// restart existing flake
 
if ((snow_flakes[i].y + snow_flakes[i].size + 20) >= snow_body_height)
 
snow_flake_restart(i);
 
 
}
 
}
 +
 +
strong.appendChild(a.firstChild);
 +
a.parentNode.appendChild(strong);
 +
a.parentNode.removeChild(a);
 +
disabledLink[area] = a;
 
}
 
}
  
// handle resize event
+
/**
function snow_resize()
+
* Initialisiert vertikale Tabs
{
+
*/
if (snow_eventHandlerResize != null) snow_eventHandlerResize();
+
function initVTabs() {
snow_window_size();
+
var indexVTabs = 0;
}
+
for (var i = 0; table = document.getElementsByTagName('table')[i]; i++) {
+
if (table.className != 'VTabs') continue;
*/
+
 
/* END snow
+
table.id = 'VTabs_' + String(++indexVTabs);
// ============================================================
+
shownTab[indexVTabs] = disabledLink[indexVTabs] = 0;
  
 +
var numTabs = 0;
 +
var contents;
 +
for (var j = 0; tr = table.getElementsByTagName('tr')[j]; j++) {
 +
var caption = tr.getElementsByTagName('td')[0];
 +
caption.className = 'VTabCaption';
 +
caption.id = 'VTabCaption_' + String(indexVTabs) + '_' + String(++numTabs);
  
== Forschungsrechner ==
+
var a = document.createElement('a');
// BEGIN import code used by user skill pages
+
a.id = 'VTabLink_' + String(indexVTabs) + '_' + String(++numTabs);
// SEE ALSO [[:Kategorie:Forschung]] */
+
a.href = 'javascript:showVTab(' + String(indexVTabs) + ', ' + String(numTabs) + ');';
+
a.appendChild(caption.firstChild);
  document.write('<script type="text/javascript" src="/index.php?title=MediaWiki:CFoptions.js&action=raw&ctype=text/javascript&dontcountme=s"></script>');
+
caption.appendChild(a);
 
/* END import code used by user skill pages
 
// ============================================================
 
  
function hackTableSort() {
+
var content = tr.getElementsByTagName('td')[1];
  window.ts_getInnerText = function(el) {
+
var div = document.createElement('div');
    sortkeys = getElementsByClassName(el, 'span', 'sortkey'); // getElementsByClassName is defined in wikibits.js
+
div.className = 'VTabContent';
    if (sortkeys.length) return getInnerText(sortkeys[0]);
+
div.id = 'VTabContent_' + String(indexVTabs) + '_' + String(numTabs);
    return getInnerText(el);
 
  }
 
}
 
  
 +
while (content.childNodes.length) {
 +
div.appendChild(content.childNodes[0]);
 +
}
 +
if (contents) {
 +
tr.removeChild(content);
 +
} else {
 +
contents = content
 +
}
 +
contents.rowSpan = numTabs;
 +
contents.appendChild(div);
 +
}
 +
}
 +
}
  
addOnloadHook(hackTableSort);
+
// Starte initVTabs() nach Laden der Seite
 +
jQuery( document ).ready( function( $ ) {
 +
initVTabs();
 +
} );
 +
//addOnloadHook(initVTabs);
  
// END OF FILE */
+
/*** ENDE: Vertikale Tabs ***/

Aktuelle Version vom 8. Januar 2023, 01:57 Uhr

/*********************************************************************/
/* Common.js enthält gemeinsamen JavaScript-Code für alle Benutzer. */
/* Jedes JavaScript, dass sich in dieser Seite befindet, wird für  */
/* alle Benutzer geladen. Daher bitte mit Vorsicht bearbeiten!    */
/*****************************************************************/

//=============================================================

/*** 1. Anpassung für die Navigationsleisten ***/

// Sprachdefinition
var NavigationBarHide = 'Einklappen';
var NavigationBarShow = 'Ausklappen';

/**
 * Maximale Anzahl an Navigationsleisten pro Seite.
 * Gibt es auf einer Seite mehr, werden diese automatisch versteckt!
 * 	var NavigationBarShowDefault = 0; // Alle Navigationsleisten werden versteckt
 * 	var NavigationBarShowDefault = 1; // Alle außer die erste Navigationsleiste werden versteckt
 **/
var NavigationBarShowDefault = 0;

/**
 * Zeigt und versteckt den Inhalt und das Bild der Navigationsleiste
 * Parameter:
 *	indexNavigationBar: Index der Navigationsleiste
 **/
function toggleNavigationBar(indexNavigationBar) {
	var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
	var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);

	if (!NavFrame || !NavToggle) {
		return false;
	}

	// Verstecken, wenn die Leiste derzeit gezeigt wird
	if (NavToggle.firstChild.data == NavigationBarHide) {
		for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
			if (NavChild.className == 'NavPic') {
				NavChild.style.display = 'none';
			}
			if (NavChild.className == 'NavContent') {
				NavChild.style.display = 'none';
			}
			if (NavChild.className == 'NavToggle') {
				NavChild.firstChild.data = NavigationBarShow;
			}
		}

	// Anzeigen, wenn die Leiste derzeit versteckt ist
	} else if (NavToggle.firstChild.data == NavigationBarShow) {
		for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
			if (NavChild.className == 'NavPic') {
				NavChild.style.display = 'block';
			}
			if (NavChild.className == 'NavContent') {
					NavChild.style.display = 'block';
			}
			if (NavChild.className == 'NavToggle') {
				NavChild.firstChild.data = NavigationBarHide;
			}
		}
	}
}


/**
 * Fügt Anzeigen/Verstecken-Link zur Navigationsleiste hinzu
 */
function createNavigationBarToggleButton() {
	var indexNavigationBar = 0;
	// Auf alle div-Elemente anwenden
	for (var i = 0; NavFrame = document.getElementsByTagName("div")[i]; i++) {
		// Wenn eine Navigationsleiste gefunden wurde
		if (NavFrame.className == "NavFrame") {
			indexNavigationBar++;
			var NavToggle = document.createElement("a");
			NavToggle.className = 'NavToggle';
			NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
			NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');

			var NavToggleText = document.createTextNode(NavigationBarHide);
			NavToggle.appendChild(NavToggleText);
			
			// Füge die Links als erstes div-Element hinzu
			NavFrame.insertBefore(NavToggle, NavFrame.firstChild);
			NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
		}
	}
	// Wenn mehrere Navigationsleisten gefunden wurden, dann wird versteckt
	if (NavigationBarShowDefault < indexNavigationBar) {
		for (var i = 1; i <= indexNavigationBar; i++) {
			toggleNavigationBar(i);
		}
	}
}

// Lade createNavigationBarToggleButton() nach Laden der Seite
jQuery( document ).ready( function( $ ) {
	createNavigationBarToggleButton();
} );
//addOnloadHook(createNavigationBarToggleButton);
 
/*** ENDE: Anpassung für die Navigationsleisten ***/

//=============================================================

/*** 2. Kampfrechner ***/
/*
// Ist in [[MediaWiki:Kampfrechner.js]] ausgelagert
// Wird nur auf der Seite [[Kampfrechner]] aufgerufen
if (mw.config.get('wgTitle') === 'Kampfrechner') {
        mw.loader.load( '/index.php?title=MediaWiki:Kampfrechner.js&action=raw&ctype=text/javascript' );
	//importScript("MediaWiki:Kampfrechner.js");
}
*/
/*** ENDE: Kampfrechner ***/

//=============================================================

/*** 3. Forschungen ***/
// Ist in [[MediaWiki:CFoptions.js]] ausgelagert
// Siehe auch: [[:Kategorie:Forschung]]
mw.loader.load( '/index.php?title=MediaWiki:CFoptions.js&action=raw&ctype=text/javascript' );
//importScript("MediaWiki:CFoptions.js");	

/*** ENDE: Forschungen ***/

//=============================================================

/*** 4. NPC-Bilder ***/
 
/**
 * Zeigt/Versteckt NPC-Bilder
 * Parameter:
 * 	bool: Wenn wahr, NPC-Bilder anzeigen, wenn falsch, dann nicht
 */
function showNI(bool)
{
	var DaysToExpire = 300; // Cookie wird nach so vielen Tagen gelöscht
	var ExpireDate = new Date();

	ExpireDate.setTime((ExpireDate.getTime() + DaysToExpire * 24 * 60 * 60 * 1000));

	if (bool) {
		document.cookie="tiramon_deShowNI=1; expires=" + ExpireDate.toGMTString();
	} else {
		document.cookie="tiramon_deShowNI=0; expires=" + ExpireDate.toGMTString();
	}
	location.reload();
}

/**
 * Generalfunktion, arbeitet an allen NPC-Bildern
 */
function work_on_npcimages()
{
	// Füge Anzeigen/Verstecken-Link hinzu
	findmenu = document.getElementById("NIinout");
	if (findmenu) {
		showlink=document.createElement("a");
		showlink.setAttribute("href","Javascript:showNI(true)");
		showlink.appendChild(document.createTextNode('anzeigen'));
		
		hidelink=document.createElement("a");
		hidelink.setAttribute("href","Javascript:showNI(false)");
		hidelink.appendChild(document.createTextNode('verbergen'));
		
		findmenu.appendChild(showlink);
		findmenu.appendChild(document.createTextNode('/'));
		findmenu.appendChild(hidelink);
	}

	// Standardwert des Anzeigemodus
	var NIDisplaymode = "inline";

	// Frage gespeicherten Anzeigemodus ab
	var tiramon_deShowNI=document.cookie;
	if (tiramon_deShowNI.indexOf("tiramon_deShowNI=") != "-1") {
		if (tiramon_deShowNI.charAt(tiramon_deShowNI.indexOf("tiramon_deShowNI=")+17)!="1") NIDisplaymode = "none";
	}

	for (var i = 0; foundspan = document.getElementsByTagName("span")[i]; i++) {
		if (foundspan.className == "NI") { 
			foundspan.setAttribute("style", "display:" + NIDisplaymode +";");
		}
	}

}

// Starte work_on_npcimages() nach Laden der Seite
jQuery( document ).ready( function( $ ) {
	work_on_npcimages();
} );
//addOnloadHook(work_on_npcimages);

/*** ENDE: NPC-Bilder ***/


//=============================================================

/*** 5. Schnee/Feuerwerk ***/

/** ==Schnee== **/
// Ist in [[MediaWiki:Schnee.js]] ausgelagert
//if (mw.config.get('wgTitle') === 'Hauptseite') {
//mw.loader.load('/index.php?title=MediaWiki:Schnee.js&action=raw&ctype=text/javascript');
//}

/** ==Feuerwerk== **/
// Ist in [[MediaWiki:Feuerwerk.js]] ausgelagert
//if (mw.config.get('wgTitle') === 'Hauptseite') {
//mw.loader.load('/index.php?title=MediaWiki:Feuerwerk.js&action=raw&ctype=text/javascript');
//}

/*** ENDE: Schnee/Feuerwerk ***/

//=============================================================


/*** 6. Vertikale Tabs ***/

// Variablendefinition
var shownTab = Array();
var disabledLink = Array();

/**
 * Änderung des aktuell ausgewählten Tabs
 */
function showVTab(area, tab) {
	var div = document.getElementById('VTabContent_' + String(area) + '_' + String(tab));
	var a = document.getElementById('VTabLink_' + String(area) + '_' + String(tab));
	if (!div || !a) return;

	div.style.height = 'auto';
	if (shownTab[area]) shownTab[area].style.height = '0';
	shownTab[area] = div;

	var strong = document.getElementById('VTabStrong_' + String(area));
	if (!strong) {
		strong = document.createElement('strong');
		strong.id = 'VTabStrong_' + String(area);
		strong.className = 'selflink';
	}

	if (disabledLink[area]) {
		disabledLink[area].appendChild(strong.firstChild);
		strong.parentNode.appendChild(disabledLink[area]);
	}

	strong.appendChild(a.firstChild);
	a.parentNode.appendChild(strong);
	a.parentNode.removeChild(a);
	disabledLink[area] = a;
}

/**
 * Initialisiert vertikale Tabs
 */
function initVTabs() {
	var indexVTabs = 0;
	for (var i = 0; table = document.getElementsByTagName('table')[i]; i++) {
		if (table.className != 'VTabs') continue;

		table.id = 'VTabs_' + String(++indexVTabs);
		shownTab[indexVTabs] = disabledLink[indexVTabs] = 0;

		var numTabs = 0;
		var contents;
		for (var j = 0; tr = table.getElementsByTagName('tr')[j]; j++) {
			var caption = tr.getElementsByTagName('td')[0];
			caption.className = 'VTabCaption';
			caption.id = 'VTabCaption_' + String(indexVTabs) + '_' + String(++numTabs);

			var a = document.createElement('a');
			a.id = 'VTabLink_' + String(indexVTabs) + '_' + String(++numTabs);
			a.href = 'javascript:showVTab(' + String(indexVTabs) + ', ' + String(numTabs) + ');';
			a.appendChild(caption.firstChild);
			caption.appendChild(a);

			var content = tr.getElementsByTagName('td')[1];
			var div = document.createElement('div');
			div.className = 'VTabContent';
			div.id = 'VTabContent_' + String(indexVTabs) + '_' + String(numTabs);

			while (content.childNodes.length) {
				div.appendChild(content.childNodes[0]);
			}
			if (contents) {
				tr.removeChild(content);
			} else {
				contents = content
			}
			contents.rowSpan = numTabs;
			contents.appendChild(div);
		}
	}
}

// Starte initVTabs() nach Laden der Seite
jQuery( document ).ready( function( $ ) {
	initVTabs();
} );
//addOnloadHook(initVTabs);

/*** ENDE: Vertikale Tabs ***/