MediaWiki:Common.js: Unterschied zwischen den Versionen

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen
(schnee nur auf der hauptseite)
(Favicon wird direkt in der Mediawiki Konfiguration gesetzt nun)
 
(73 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
/* Hinweis: Die Wiki-Überschriften sind JavaScript-technisch auskommentiert
/*********************************************************************/
== Dynamic Navigation Bars ==
/* 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!    */
// 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 = 1;
// 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);
        }
    }
}
addOnloadHook(createNavigationBarToggleButton);
/* END Dynamic Navigation Bars
// ============================================================


== Vertical Tabbing ==
//=============================================================
*/
/*** BEGIN: Anpassung für die Navigationsleisten ***/


var shownTab = Array();
// Sprachdefinition
var disabledLink = Array();
var NavigationBarHide = 'Einklappen';
var NavigationBarShow = 'Ausklappen';


  // switches between tabs
/**
  function showVTab(area, tab) {
  * Maximale Anzahl an Navigationsleisten pro Seite.
  var div = document.getElementById('VTabContent_' + String(area) + '_' + String(tab));
  * Gibt es auf einer Seite mehr, werden diese automatisch versteckt!
  var a = document.getElementById('VTabLink_' + String(area) + '_' + String(tab));
* var NavigationBarShowDefault = 0; // Alle Navigationsleisten werden versteckt
  if (!div || !a) return;
* var NavigationBarShowDefault = 1; // Alle außer die erste Navigationsleiste werden versteckt
   
  **/
  div.style.height = 'auto';
var NavigationBarShowDefault = 1;
  if (shownTab[area]) shownTab[area].style.height = '0';
  shownTab[area] = div;


  var strong = document.getElementById('VTabStrong_' + String(area));
/**
  if (!strong) {
* Zeigt und versteckt den Inhalt und das Bild der Navigationsleiste
    strong = document.createElement('strong');
* Parameter:
    strong.id = 'VTabStrong_' + String(area);
* indexNavigationBar: Index der Navigationsleiste
    strong.className = 'selflink';
**/
  }
function toggleNavigationBar(indexNavigationBar) {
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);


  if (disabledLink[area]) {
if (!NavFrame || !NavToggle) {
    disabledLink[area].appendChild(strong.firstChild);
return false;
    strong.parentNode.appendChild(disabledLink[area]);
}
  }
 
  strong.appendChild(a.firstChild);
  a.parentNode.appendChild(strong);
  a.parentNode.removeChild(a);
  disabledLink[area] = a;
}
// initiates vertically tabbed areas
function initVTabs() {
  var indexVTabs = 0;
  // iterate over all tables
  for (var i = 0; table = document.getElementsByTagName('table')[i]; i++) {
    if (table.className != 'VTabs') continue;


    table.id = 'VTabs_' + String(++indexVTabs);
// Verstecken, wenn die Leiste derzeit gezeigt wird
    shownTab[indexVTabs] = disabledLink[indexVTabs] = 0;
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;
}
}


    var numTabs = 0;
// Anzeigen, wenn die Leiste derzeit versteckt ist
    var contents;
} else if (NavToggle.firstChild.data == NavigationBarShow) {
    for (var j = 0; tr = table.getElementsByTagName('tr')[j]; j++) {
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
      var caption = tr.getElementsByTagName('td')[0];
if (NavChild.className == 'NavPic') {
      caption.className = 'VTabCaption';
NavChild.style.display = 'block';
      caption.id = 'VTabCaption_' + String(indexVTabs) + '_' + String(++numTabs);
}
if (NavChild.className == 'NavContent') {
NavChild.style.display = 'block';
}
if (NavChild.className == 'NavToggle') {
NavChild.firstChild.data = NavigationBarHide;
}
}
}
}


      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');
* Fügt Anzeigen/Verstecken-Link zur Navigationsleiste hinzu
      div.className = 'VTabContent';
*/
      div.id = 'VTabContent_' + String(indexVTabs) + '_' + String(numTabs);
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 + ');');


      while (content.childNodes.length) {
var NavToggleText = document.createTextNode(NavigationBarHide);
        div.appendChild(content.childNodes[0]);
NavToggle.appendChild(NavToggleText);
      }
 
// Füge die Links als erstes div-Element hinzu
      if (contents) {
NavFrame.insertBefore(NavToggle, NavFrame.firstChild);
        tr.removeChild(content);
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
      } else {
}
        contents = content
}
      }
// Wenn mehrere Navigationsleisten gefunden wurden, dann wird versteckt
      contents.rowSpan = numTabs;
if (NavigationBarShowDefault < indexNavigationBar) {
      contents.appendChild(div);
for (var i = 1; i <= indexNavigationBar; i++) {
    }
toggleNavigationBar(i);
  }
}
}
}
}
addOnloadHook(initVTabs);
/* END Vertical Tabbing
// ============================================================


== Kampfrechner ==
// Lade createNavigationBarToggleButton() nach Laden der Seite
*/
var global_lp_a, global_a_a, global_v_a, global_lp_v, global_a_v, global_v_v;
var global_fightresult_1, global_fightresult_2, global_fightresult_3;
function calc_fight()
{
  dif_a = global_a_a.value - global_v_v.value;
  dif_v = global_a_v.value - global_v_a.value;
  if (dif_a < 1) dif_a = 1;
  if (dif_v < 1) dif_v = 1;
  fac_a = global_lp_v.value / dif_a;
  fac_v = global_lp_a.value / dif_v;
  if (fac_a > fac_v) {
    if ((global_a_a.value - global_v_v.value) > 0) lp_v = global_a_a.value - global_v_v.value;
    else lp_v = 1;
    end_v_lp = Math.floor(global_lp_v.value - fac_v * lp_v)
    global_fightresult_1.nodeValue = 'Verteidiger gewinnt mit ' + end_v_lp + ' LP'
    if (((global_lp_a.value / dif_v) < 1) && ((global_lp_a.value / dif_v) < (global_lp_v.value / dif_a))) {
      global_fightresult_2.nodeValue = 'Der Angreifer stirbt schon nach einem Schlag';
      global_fightresult_3.nodeValue = ' '
    }
    else {
      global_fightresult_2.nodeValue = 'Der Angreifer benötigt ' + Math.ceil(global_lp_v.value / dif_a) + ' Schläge für Sieg';
      global_fightresult_3.nodeValue = 'Der Angreifer verliert ' + String(dif_v) + ' LP pro Schlag';
    }
  }
  else {
    if ((global_a_v.value - global_v_a.value) > 0) lp_a = global_a_v.value - global_v_a.value;
    else lp_a = 1;
    end_a_lp = Math.floor(global_lp_a.value - fac_a * lp_a);
    global_fightresult_1.nodeValue = 'Angreifer gewinnt mit ' + end_a_lp + ' LP'
    global_fightresult_2.nodeValue = 'Minimale LP für Sieg: ' + String(global_lp_a.value - end_a_lp);
    global_fightresult_3.nodeValue = ' '
  }
  return false;
}
var all_stats = new Array();


function init_fightcalc()
jQuery( document ).ready( function( $ ) {
{
createNavigationBarToggleButton();
  fc = document.getElementById('Kampfrechner');
} );
  if (fc) {
//addOnloadHook(createNavigationBarToggleButton);


    selectfield = document.createElement('select');
/*** ENDE: Anpassung für die Navigationsleisten ***/
    selectfield.setAttribute('name', 'npc');
    selectfield.setAttribute('size', '1');
    selectfield.setAttribute('onChange', 'changevalues(this)');


    stats_raw = document.getElementById('Kampfrechner-Daten').innerHTML;
//=============================================================
    var stats_raw_array = new Array();
    stats_raw_array = stats_raw.split('\n');


    var i = 0;
/*** Kampfrechner ***/
    var stats_raw = new Array();
    var stats_row = new Array();
    for (i=0;i<stats_raw_array.length;i++) {
          stats_raw = stats_raw_array[i];
          stats_row = stats_raw.split(';');
          all_stats[all_stats.length] = stats_row;
          option_field = document.createElement('option');
          option_field.setAttribute('value', i);
          option_field.innerHTML = stats_row[0];
          selectfield.appendChild(option_field);
    }
 
    table = document.createElement('TABLE');
   
    tr = document.createElement('TR');
    td = document.createElement('TD');
    td.setAttribute('colspan', '3');
    select_text = document.createTextNode('Bei NPC-Kampf NPC auswählen: ');
    td.appendChild(select_text);
    td.appendChild(selectfield);
    tr.appendChild(td);
    table.appendChild(tr);   


    tr = document.createElement('TR');
// Ist in [[MediaWiki:Kampfrechner.js]] ausgelagert
    td = document.createElement('TD');
// Wird nur auf der Seite [[Kampfrechner]] aufgerufen
    tr.appendChild(td);
if (mw.config.get('wgTitle') === 'Kampfrechner') {
    td = document.createElement('TH');
        mw.loader.load('/index.php?title=MediaWiki:Kampfrechner.js&action=raw&ctype=text/javascript');
    td.appendChild(document.createTextNode('Angreifer'));
//importScript("MediaWiki:Kampfrechner.js");
    tr.appendChild(td);
    td = document.createElement('TH');
    td.appendChild(document.createTextNode('Verteidiger'));
    tr.appendChild(td);
    table.appendChild(tr);
    // LP-Werte
    tr = document.createElement('TR');
    td = document.createElement('TD');
    td.appendChild(document.createTextNode('LP'));
    tr.appendChild(td);
    td = document.createElement('TD');
    global_lp_a = document.createElement('INPUT');
    global_lp_a.setAttribute('type', 'text');
    td.appendChild(global_lp_a);
    tr.appendChild(td);
    td = document.createElement('TD');
    global_lp_v = document.createElement('INPUT');
    global_lp_v.setAttribute('type', 'text');
    global_lp_v.setAttribute('id', 'lp_v');
    td.appendChild(global_lp_v);
    tr.appendChild(td);
    table.appendChild(tr);
    // A-Werte
    tr = document.createElement('TR');
    td = document.createElement('TD');
    td.appendChild(document.createTextNode('A'));
    tr.appendChild(td);
    td = document.createElement('TD');
    global_a_a = document.createElement('INPUT');
    global_a_a.setAttribute('type', 'text');
    td.appendChild(global_a_a);
    tr.appendChild(td);
    td = document.createElement('TD');
    global_a_v = document.createElement('INPUT');
    global_a_v.setAttribute('type', 'text');
    global_a_v.setAttribute('id', 'a_v');
    td.appendChild(global_a_v);
    tr.appendChild(td);
    table.appendChild(tr);
    // V-Werte
    tr = document.createElement('TR');
    td = document.createElement('TD');
    td.appendChild(document.createTextNode('V'));
    tr.appendChild(td);
    td = document.createElement('TD');
    global_v_a = document.createElement('INPUT');
    global_v_a.setAttribute('type', 'text');
    td.appendChild(global_v_a);
    tr.appendChild(td);
    td = document.createElement('TD');
    global_v_v = document.createElement('INPUT');
    global_v_v.setAttribute('type', 'text');
    global_v_v.setAttribute('id', 'v_v');
    td.appendChild(global_v_v);
    tr.appendChild(td);
    table.appendChild(tr);
    tr = document.createElement('TR');
    td = document.createElement('TD');
    td.setAttribute('colspan', '3')
    td.style.textAlign = 'center';
    inp = document.createElement('INPUT');
    inp.setAttribute('type', 'submit');
    inp.setAttribute('name', 'calc');
    inp.setAttribute('value', 'Berechnen');
    td.appendChild(inp);
    tr.appendChild(td);
    table.appendChild(tr);
    tr = document.createElement('TR');
    td = document.createElement('TD');
    td.setAttribute('colspan', '3')
    td.style.textAlign = 'center';
    global_fightresult_1 = document.createTextNode('Werte eingeben und auf Berechnen klicken');
    global_fightresult_2 = document.createTextNode(' ');
    global_fightresult_3 = document.createTextNode(' ');
    td.appendChild(global_fightresult_1);
    td.appendChild(document.createElement('BR'));
    td.appendChild(global_fightresult_2);
    td.appendChild(document.createElement('BR'));
    td.appendChild(global_fightresult_3);
    tr.appendChild(td);
    table.appendChild(tr);
   
    form = document.createElement('FORM');
    form.setAttribute('action', '#')
    form.setAttribute('method', 'POST')
    form.setAttribute('name', 'fightcalc')
    form.onsubmit = calc_fight;
    form.appendChild(table);
    fc.appendChild(form);
  }
}
addOnloadHook(init_fightcalc);
function changevalues(select_field) {
  var number = select_field.options[select_field.options.selectedIndex].value;
  var stats = all_stats[number];
  var v = document.getElementById('v_v');
  var a = document.getElementById('a_v');
  var lp = document.getElementById('lp_v');
  v.setAttribute('value', '0');
  a.setAttribute('value', stats[1]);
  lp.setAttribute('value', stats[2]);
}
}


/*** ENDE: Kampfrechner ***/
/* END Kampfrechner
// ============================================================


== Questpassagen für Karten==
*/
function showQP(bool)
{
  if (bool)
  {
    document.cookie="tiramon_deShowQP=1";
  }
  else
  {
    document.cookie="tiramon_deShowQP=0";
  }
  location.reload();
}


function work_on_questpassages()
{
  // add show/hide links to all maps
  findmenu = document.getElementById("QPinout");
  if (findmenu)
  {
    showlink=document.createElement("a");
    showlink.setAttribute("href","Javascript:showQP(true)");
    showlink.appendChild(document.createTextNode('anzeigen'));
    hidelink=document.createElement("a");
    hidelink.setAttribute("href","Javascript:showQP(false)");
    hidelink.appendChild(document.createTextNode('verbergen'));
    findmenu.appendChild(showlink);
    findmenu.appendChild(document.createTextNode('/'));
    findmenu.appendChild(hidelink);
  }


  // enable display of QPs if wished
/*** Kartenspezifisches ***/
  for(var i=0; foundspan = document.getElementsByTagName("span")[i]; i++)
  {
    var tiramon_deShowQP=document.cookie;
    if (tiramon_deShowQP.indexOf("tiramon_deShowQP=")=="-1") return(-1);
    if (tiramon_deShowQP.charAt(tiramon_deShowQP.indexOf("tiramon_deShowQP=")+17)!="1") return(-1);
    if (foundspan.className == "QP")
    {
      foundspan.setAttribute("style", "display:inline;");
    }
  }


}
// Gesamtkarten-Funktionen
addOnloadHook(work_on_questpassages);
// Autorouter: Ist in [[MediaWiki:Autorouter.js]] ausgelagert
// Gesamtkarte-Funktionen: Sind in [[MediaWiki:Gesamtkarte.js]] ausgelagert
/* END QuestPassages
// Werden nur auf der Seite [[Gesamtkarte]] aufgerufen
// ============================================================
if (mw.config.get('wgTitle') === 'Gesamtkarte') {
mw.loader.load('/index.php?title=MediaWiki:Gesamtkarte.js&action=raw&ctype=text/javascript');
//importScript("MediaWiki:Gesamtkarte.js");
mw.loader.load('/index.php?title=MediaWiki:Autorouter.js&action=raw&ctype=text/javascript');
//importScript("MediaWiki:Autorouter.js");
}


== NPC-Bilder ein/aus ==
/**
* Zeigt/Versteckt Questpassage auf interkativer Karte
* Parameter:
* bool: Wenn wahr, Questpassage anzeigen, wenn falsch, dann nicht
  */
  */
function showQP(bool) {
function showNI(bool)
if (bool) {
{
document.cookie = "tiramon_deShowQP=1";
  if (bool)  
} else {
  {
document.cookie = "tiramon_deShowQP=0";
    document.cookie="tiramon_deShowNI=1";
}
  }
location.reload();
  else
}
  {
    document.cookie="tiramon_deShowNI=0";
  }
  location.reload();
}


  function work_on_npcimages()
/**
{
* Generalfunktion, arbeitet an allen Questpassagen
  // add show/hide links to all maps
  */
  findmenu = document.getElementById("NIinout");
function work_on_questpassages() {
  if (findmenu)  
// Fügt den Anzeigen/Verstecken-Link zur Map hinzu
  {
findmenu = document.getElementById("QPinout");
    showlink=document.createElement("a");
if (findmenu) {
    showlink.setAttribute("href","Javascript:showNI(true)");
showlink = document.createElement("a");
    showlink.appendChild(document.createTextNode('anzeigen'));
showlink.setAttribute("href","Javascript:showQP(true)");
    hidelink=document.createElement("a");
showlink.appendChild(document.createTextNode('anzeigen'));
    hidelink.setAttribute("href","Javascript:showNI(false)");
    hidelink.appendChild(document.createTextNode('verbergen'));
hidelink = document.createElement("a");
    findmenu.appendChild(showlink);
hidelink.setAttribute("href","Javascript:showQP(false)");
    findmenu.appendChild(document.createTextNode('/'));
hidelink.appendChild(document.createTextNode('verbergen'));
    findmenu.appendChild(hidelink);
  }
findmenu.appendChild(showlink);
findmenu.appendChild(document.createTextNode('/'));
findmenu.appendChild(hidelink);
}


  // enable display of NIs if wished
// Questpassagen anzeigen, wenn gewünscht
  for(var i=0; foundspan = document.getElementsByTagName("span")[i]; i++)
for (var i = 0; foundspan = document.getElementsByTagName("span")[i]; i++) {
  {
var tiramon_deShowQP = document.cookie;
    var tiramon_deShowNI=document.cookie;
    if (tiramon_deShowNI.indexOf("tiramon_deShowNI=")=="-1") return(-1);
if (tiramon_deShowQP.indexOf("tiramon_deShowQP=")=="-1") return(-1);
    if (tiramon_deShowNI.charAt(tiramon_deShowNI.indexOf("tiramon_deShowNI=")+17)!="1") return(-1);
if (tiramon_deShowQP.charAt(tiramon_deShowQP.indexOf("tiramon_deShowQP=")+17) != "1") return(-1);
    if (foundspan.className == "NI")
if (foundspan.className == "QP") {
    {
foundspan.setAttribute("style", "display:inline;");
      foundspan.setAttribute("style", "display:inline;");
}
    }
}
  }
}


}
// Starte work_on_questpassages() nach Laden der Seite
addOnloadHook(work_on_npcimages);
jQuery( document ).ready( function( $ ) {
work_on_questpassages();
/* END NPC-Images
} );
// ============================================================
//addOnloadHook(work_on_questpassages);


== FreewarWiki Chat ==
/*** ENDE: Kartenspezifisches ***/
*/
function addChat()
  {
  findchat = document.getElementById("fwwchat");
  if (!findchat) return (0);
  chat = document.createElement("applet");
  chat.setAttribute("archive","http://www.freejavachat.com/java/cr.zip");
  chat.setAttribute("codebase","http://www.freejavachat.com/java/");
  chat.setAttribute("name","cr");
  chat.setAttribute("code","ConferenceRoom.class");
  chat.setAttribute("width","640");
  chat.setAttribute("height","480");


  param = document.createElement("param"); param.setAttribute("name","channel"); param.setAttribute("value","#freewarwiki"); chat.appendChild(param);
//=============================================================
  param = document.createElement("param"); param.setAttribute("name","user"); param.setAttribute("value","einer"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name", "showbuttonpanel"); param.setAttribute("value","false"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","bg"); param.setAttribute("value","ffffff"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","fg"); param.setAttribute("value","000000"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","roomswidth"); param.setAttribute("value","0"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","lurk"); param.setAttribute("value","true"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","userprompt"); param.setAttribute("value",""); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","nameprompt"); param.setAttribute("value",""); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","simple"); param.setAttribute("value","false"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","restricted"); param.setAttribute("value","false"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","showjoins"); param.setAttribute("value","true"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","showserverwindow"); param.setAttribute("value","true"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","nicklock"); param.setAttribute("value","false"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","playsounds"); param.setAttribute("value","true"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","onlyshowchat"); param.setAttribute("value","false"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","showcolorpanel"); param.setAttribute("value","true"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","floatnewwindows"); param.setAttribute("value","false"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","buttonsize"); param.setAttribute("value","14"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","buttonstyle"); param.setAttribute("value","BOLD"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","nosettings");  param.setAttribute("value","false"); chat.appendChild(param);


  param = document.createElement("param"); param.setAttribute("name","loadmodules"); param.setAttribute("value","NickServPanel hide"); chat.appendChild(param);
/*** NPC-Bilder ***/
  param = document.createElement("param"); param.setAttribute("name","loadmodules1"); param.setAttribute("value","ImagePanel hide"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","loadmodules2"); param.setAttribute("value","OpPanel hide"); chat.appendChild(param);
/**
  param = document.createElement("param"); param.setAttribute("name","commands"); param.setAttribute("value","Image Panel;/showmodule ImagePanel;NickServ Panel;/showmodule NickServPanel;Operators Panel;/showmodule OpPanel"); chat.appendChild(param);
* Zeigt/Versteckt NPC-Bilder
  param = document.createElement("param"); param.setAttribute("name","userwidth"); param.setAttribute("value","16"); chat.appendChild(param);
* Parameter:
  param = document.createElement("param"); param.setAttribute("name","joinsound"); param.setAttribute("value","bell.au"); chat.appendChild(param);
* bool: Wenn wahr, NPC-Bilder anzeigen, wenn falsch, dann nicht
  param = document.createElement("param"); param.setAttribute("name","sounds"); param.setAttribute("value","Alarm;Alarm.au Are we awake?;Applause;applause.au ENCORE!!!;Awwwwwww;aww.au Awwwwwwwww;BabyCry;babycry.au Wahhhh;CashRegister;cash_register.au Woohoo!;CowMoo;moo.au moos like a cow;Crash;crash.au *** CRASHES ***;Cymbal;CrashCymbal.au Tada!;Cuckoo;Cuckoo.au Where's Dr Fraud?;DoesNotCompute;does_not_compute.au That does NOT compute!;DOH!;doh.au Homer says DOH!;Door;door.au hears a door;Drip;drip.au Drip;Explosion;explosion.au explodes;Flush;flush.au courtesy flush;Geek;computer.au computer geek detected;Giggle;giggle.au haha;Glass1;Glass.au Breaks it;Glass2;breaking_glass.au Oh No!;Goofed;goofed.au OOPS!;Hallelujah!;hallelujah.au It's a miracle!;Knock;knock.au Knocks patiently;Gong;gong.au has gonged you;Laugh 1;laugh.au Laughs hysterically;Laugh 2;laughter.au You're KIDDING!;OHYEA!;ohyeah.au Woohoo!;Rasberry;Rasberry.au Excuse me;SciFi;sci_fi.au scifi;Snore;snore.au Snores;SubDive;sub_dive_horn.au Watch out!;SubPing;scoping.au Ping!;Swish;swish.au thinks that went over someone's head!;This just in;music.au NEWSFLASH! THIS JUST IN....;Ting;join.au dropped something;Train;train.au hears a train coming...;Whee;whistle.au Whee!"); chat.appendChild(param);
*/
function showNI(bool)
{
var DaysToExpire = 300; // Cookie wird nach so vielen Tagen gelöscht
var ExpireDate = new Date();


  param = document.createElement("param"); param.setAttribute("name","timestamp"); param.setAttribute("value","true"); chat.appendChild(param);
ExpireDate.setTime((ExpireDate.getTime() + DaysToExpire * 24 * 60 * 60 * 1000));
  param = document.createElement("param"); param.setAttribute("name","playsounds"); param.setAttribute("value","true"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","showsendbutton"); param.setAttribute("value","true"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","listtime"); param.setAttribute("value","0"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","guicolors1"); param.setAttribute("value","youColor=880000;operColor=004488;voicecolor=000000;userscolor=000000"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","guicolors2"); param.setAttribute("value","inputcolor=dddddd;inputtextColor=000000;sessioncolor=ffffff;systemcolor=aaaaaa"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","guicolors3"); param.setAttribute("value","titleColor=888888;titletextColor=ffffff;sessiontextColor=000000"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","guicolors4"); param.setAttribute("value","joinColor=228b22;partColor=228b22;talkcolor=000000"); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","nick"); param.setAttribute("value",""); chat.appendChild(param);
  param = document.createElement("param"); param.setAttribute("name","passprompt"); param.setAttribute("value","Passwort (registrierte Nicknames)"); chat.appendChild(param);


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


  addOnloadHook(addChat);
/**
  * Generalfunktion, arbeitet an allen NPC-Bildern
/* END QuestPassages
*/
// ============================================================
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);
}


== [[Gesamtkarte]] ==
// Standardwert des Anzeigemodus
// BEGIN import code used by [[Gesamtkarte]]
var NIDisplaymode = "inline";
// SEE ALSO [[MediaWiki:Gesamtkarte.js]] */
  document.write('<script type="text/javascript" src="/index.php?title=MediaWiki:Gesamtkarte.js&action=raw&ctype=text/javascript&dontcountme=s"></script>');
  document.write('<script type="text/javascript" src="/index.php?title=MediaWiki:Autorouter.js&action=raw&ctype=text/javascript&dontcountme=s"></script>');
/* END import code used by [[Gesamtkarte]]
// ============================================================


== schnee ==
// 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";
// SnowFlakes-Script (c) 2009, Dominik Scholz / go4u.de Webdesign
}
////////////////////////////////////////////////////////////////////////


// amount of snow flakes
for (var i = 0; foundspan = document.getElementsByTagName("span")[i]; i++) {
var snow_amount = 50;
if (foundspan.className == "NI") {
// colors of snowflakes
foundspan.setAttribute("style", "display:" + NIDisplaymode +";");
var snow_color = new Array('#AAAACC', '#DDDDFF', '#CCCCDD', '#F3F3F3', '#F0FFFF');
}
// fonts to be used for snowflakes
}
var snow_type = new Array('Arial Black', 'Arial Narrow', 'Times', 'Comic Sans MS');
// char used for snowflakes
var snow_char = '*';
// vertical snowflakes speed
var snow_speed = 2.4;
// timeout for animation
var snow_timeout = 70;
// maximum size of snowflakes
var snow_maxsize = 22;
// minimum size of snowflakes
var snow_minsize = 8;
// maximal drift in each direction (left/right)
var snow_drift = 15;


// Schnee nur auf Hauptseite , by JaPPe
var url=document.URL.split("/");
if( url[4] == "Hauptseite" ) {
  window.onresize = snow_resize;
  window.onload = snow_start;
}
}


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


////////////////////// don't edit below this line //////////////////////
/*** ENDE: NPC-Bilder ***/
var snow_flakes = new Array();
var snow_body_width = 0;
var snow_body_height = 0;
var snow_resizing = false;
var snow_range = snow_maxsize - snow_minsize;
var snow_eventHandlerResize = window.onresize;
var snow_eventHandlerLoad = window.onload;


// register window resize event
//=============================================================
//window.onresize = snow_resize;
//window.onload = snow_start;


// Schnee nur auf Hauptseite , by JaPPe
/*** Charakterfähigkeiten ***/
var url=document.URL.split("/");
if( url[4] != "Hauptseite" ) {
  window.onresize = snow_resize;
  window.onload = snow_start;
}


// start snow
// Ist in [[MediaWiki:CFoptions.js]] ausgelagert
function snow_start()
mw.loader.load('/index.php?title=MediaWiki:CFoptions.js&action=raw&ctype=text/javascript');
{
//importScript("MediaWiki:CFoptions.js");
if (snow_eventHandlerLoad != null) snow_eventHandlerLoad();


// init window size
/*** ENDE: Charakterfähigkeiten ***/
snow_window_size();


// add new flakes
//=============================================================
while (snow_amount > snow_flakes.length)
snow_flake_create(snow_flakes.length);


// start to move snow
/*** Vertikale Tabs ***/
snow_move();
}


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


////////////////////////////// functions ///////////////////////////////
/**
* Ä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;


// creates a new snowflake
div.style.height = 'auto';
function snow_flake_create(i)
if (shownTab[area]) shownTab[area].style.height = '0';
{
shownTab[area] = div;
// select body tag
var insertBody = document.getElementsByTagName('body')[0];


// create span child for flake
var strong = document.getElementById('VTabStrong_' + String(area));
var insertFlake = document.createElement('div');
if (!strong) {
insertFlake.id            = 'flake'+i;
strong = document.createElement('strong');
insertFlake.style.position = 'absolute';
strong.id = 'VTabStrong_' + String(area);
insertFlake.style.left    = '0px';
strong.className = 'selflink';
insertFlake.style.top      = '-'+snow_maxsize+'px';
}
insertFlake.style.zIndex  = 20000;
insertFlake.innerHTML      = snow_char;
insertBody.appendChild(insertFlake);


// create array element
if (disabledLink[area]) {
snow_flakes[i]       = new Array();
disabledLink[area].appendChild(strong.firstChild);
snow_flakes[i].x    = snow_random(snow_body_width-2*snow_drift-snow_maxsize-3) + snow_drift+1;
strong.parentNode.appendChild(disabledLink[area]);
snow_flakes[i].y    = -snow_maxsize-snow_random(snow_body_height);
}
snow_flakes[i].size  = snow_random(snow_range) + snow_minsize;
snow_flakes[i].count = snow_random(10000);
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
strong.appendChild(a.firstChild);
function snow_flake_restart(i)
a.parentNode.appendChild(strong);
{
a.parentNode.removeChild(a);
snow_flakes[i]      = new Array();
disabledLink[area] = a;
snow_flakes[i].x    = snow_random(snow_body_width-2*snow_drift-snow_maxsize-3) + snow_drift+1;
snow_flakes[i].y    = -snow_maxsize;
snow_flakes[i].size  = snow_random(snow_range) + snow_minsize;
snow_flakes[i].count = 0;
}
}


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


for (i=0; i<snow_flakes.length; i++)
table.id = 'VTabs_' + String(++indexVTabs);
{
shownTab[indexVTabs] = disabledLink[indexVTabs] = 0;
var flake = document.getElementById('flake'+i);


// restart existing flake
var numTabs = 0;
if ((snow_flakes[i].y + snow_flakes[i].size + 20) >= snow_body_height)
var contents;
snow_flake_restart(i);
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);


snow_flakes[i].count++;
var a = document.createElement('a');
snow_flakes[i].y += snow_speed;
a.id = 'VTabLink_' + String(indexVTabs) + '_' + String(++numTabs);
a.href = 'javascript:showVTab(' + String(indexVTabs) + ', ' + String(numTabs) + ');';
a.appendChild(caption.firstChild);
caption.appendChild(a);


x = snow_flakes[i].x + Math.sin(snow_flakes[i].count / snow_flakes[i].size) * 15;
var content = tr.getElementsByTagName('td')[1];
y = snow_flakes[i].y;
var div = document.createElement('div');
div.className = 'VTabContent';
div.id = 'VTabContent_' + String(indexVTabs) + '_' + String(numTabs);


while (content.childNodes.length) {
flake.style.left = x + 'px';
div.appendChild(content.childNodes[0]);
flake.style.top  = y + 'px';
}
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 ***/
/* 8. ANFANG: NPC Filter für Karten */


// do it again
function resetNPCBordersOnMap ()
window.setTimeout('snow_move();', snow_timeout);
{
    /* Entferne Klasse und setze somit CSS-Einstellungen wieder zurück */
    $("body.ns-108 .maplink div.noIE > a").parent().parent().removeClass("MapNPCBorder");
}
}


function snow_random(range)
function showNPCBordersOnMap (npcName)
{
{
     return Math.floor(Math.random() * range);
     /* Vergleiche NPC-Name mit jedem einzelnen NPC-Namen der in der Karte eingetragen ist, falls ja, dann zeiche Rahmen um das entsprechende Feld mittels der Klasse MapNPCBorder */
    var NPCMapCounter = 0;
    $("body.ns-108 .maplink div.noIE > a > span.NPC").each(function(){
        if ($(this).text().toLowerCase() == npcName.toLowerCase()) // Case-Insensitive Prüfung
        {
          $(this).parent().parent().parent().addClass("MapNPCBorder");
          NPCMapCounter++;
        }
    });
    /* Zeige zur zusätzlichen Information, wie viele Rahmen bzw. NPCs es jetzt auf dieser Karte gibt */
    $("#map_redZK #mapNPCCount").text(NPCMapCounter);
}
}


function snow_window_size()
function initNPCBordersAndLinks ()
{
{
// save old width
    /* Füge Links mit Kugelsymbol hinzu (NPC-Artikel) */
var old_width = snow_body_width;
    $("body.ns-0 .layout_npc .layout_npc_location > p > b:contains('Vorkommen:')").parent().parent().find("p + ul > li, p:first-child ~ p").each(function(){
        if ($(this).find("a").hasClass("new"))
            return;
        switch ($(this).find("a").attr("title"))
        {
            case "Welt": case "Oberfläche": case "Dungeon":
                return;
            default:
                $(this).append("<span class='linktomap'><a href='/index.php/Karte:"+$(this).find("a").attr("title").replace(/ /g, "_") + "#MapNPCFilter_" + $("#firstHeading").text()+"' style='display: inline-block; height: 12px; width: 12px; overflow:hidden;'> </a></span>");
        }
    });
 
    /* Erstelle Eingabefeld (Karten-Artikel) */
    $("body.ns-108 #map_redZK").append("<br /><input type='text' name='findeNPC' />  <a href='#'>NPC suchen</a><br /><span id='mapNPCCount'>0</span> NPCs wurden gefunden");


// get new width
    /* Starte NPC-Suche, bei Klick auf den NPC-Suchen-Link */
     snow_body_width = document.body.clientWidth - snow_maxsize - 20;
     $("body.ns-108 #map_redZK > input[name='findeNPC'] + a").click(function(){
    snow_body_height = document.body.clientHeight;
        var NPCname = $(this).parent().find("input[name='findeNPC']").val();
if ((window.innerHeight) && (window.innerHeight > snow_body_height))
        resetNPCBordersOnMap();
snow_body_height = window.innerHeight;
        showNPCBordersOnMap(NPCname);
else if ((document.body && document.body.offsetHeight) && (document.body.offsetHeight > snow_body_height))
        $(this).attr("href","#MapNPCFilter_"+NPCname);
    snow_body_height = document.body.offsetHeight;
    });


// calculate correction ratio
    /* Automatisches Absenden des Forms mit der Enter-Taste */
var ratio = snow_body_width / old_width;
    $("body.ns-108 #map_redZK > input[name='findeNPC']").keypress(function(e) {
        if(e && e.which == 13)
// for all flakes
        {
for (i=0; i<snow_flakes.length; i++)
            $(this).next().click();
{
            window.location.replace("#MapNPCFilter_"+$(this).val());
var flake = document.getElementById('flake'+i);
        }
    });


// do width correction
    /* Wenn der Hash schon zum Ladezeitpunkt mit "#MapNPCFilter_" beginnt, direkt nach NPC suchen und im Formular eintragen */
snow_flakes[i].x *= ratio;
    if (window.location.hash.substr(0,14) == "#MapNPCFilter_")
    {
// restart existing flake
        var NPCname = window.location.hash.substr(14);
if ((snow_flakes[i].y + snow_flakes[i].size + 20) >= snow_body_height)
        /* NPC-Namen in URLs können kodiert sein, z.B. wird Leerzeichen zu %20*/
snow_flake_restart(i);
        NPCname = decodeURI(NPCname);
}
        showNPCBordersOnMap(NPCname);
        $("body.ns-108 #map_redZK > input[name='findeNPC']").val(NPCname);
    }
}
}


// handle resize event
jQuery( document ).ready( function( $ ) {
function snow_resize()
initNPCBordersAndLinks();
{
} );
if (snow_eventHandlerResize != null) snow_eventHandlerResize();
//addOnloadHook(initNPCBordersAndLinks);
snow_window_size();
/* ENDE: NPC Filter für Karten */
}
/* END snow
// ============================================================


== Charakterfähigkeitsrechner ==
// BEGIN import code used by user skill pages
// SEE ALSO [[:Kategorie:Charakterfähigkeiten]] */
  document.write('<script type="text/javascript" src="/index.php?title=MediaWiki:CFoptions.js&action=raw&ctype=text/javascript&dontcountme=s"></script>');
/* END import code used by user skill pages
// ============================================================


function hackTableSort() {
//==Schnee==
   window.ts_getInnerText = function(el) {
   // Outsourced to [[MediaWiki:Schnee.js]]
    sortkeys = getElementsByClassName(el, 'span', 'sortkey'); // getElementsByClassName is defined in wikibits.js
/* DEAKTIVIERT (für Weihnachtszeit gedacht)
    if (sortkeys.length) return getInnerText(sortkeys[0]);
  if (mw.config.get('wgTitle') === 'Hauptseite') {
    return getInnerText(el);
      mw.loader.load('/index.php?title=MediaWiki:Schnee.js&action=raw&ctype=text/javascript');
      //importScript("MediaWiki:Schnee.js");
   }
   }
}
*/
 
addOnloadHook(hackTableSort);
 
// END OF FILE */

Aktuelle Version vom 11. Dezember 2023, 17:01 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!    */
/*****************************************************************/

//=============================================================
/*** BEGIN: 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 = 1;

/**
 * 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 ***/

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

/*** 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 ***/



/*** Kartenspezifisches ***/

// Gesamtkarten-Funktionen
//	Autorouter: Ist in [[MediaWiki:Autorouter.js]] ausgelagert
//	Gesamtkarte-Funktionen: Sind in [[MediaWiki:Gesamtkarte.js]] ausgelagert
// Werden nur auf der Seite [[Gesamtkarte]] aufgerufen
if (mw.config.get('wgTitle') === 'Gesamtkarte') {
	mw.loader.load('/index.php?title=MediaWiki:Gesamtkarte.js&action=raw&ctype=text/javascript');
	//importScript("MediaWiki:Gesamtkarte.js");
	mw.loader.load('/index.php?title=MediaWiki:Autorouter.js&action=raw&ctype=text/javascript');
	//importScript("MediaWiki:Autorouter.js");
}

/**
 * Zeigt/Versteckt Questpassage auf interkativer Karte
 * Parameter:
 * 	bool: Wenn wahr, Questpassage anzeigen, wenn falsch, dann nicht
 */
function showQP(bool) {
	if (bool) {
		document.cookie = "tiramon_deShowQP=1";
	} else {
		document.cookie = "tiramon_deShowQP=0";
	}
	location.reload();
}

/**
 * Generalfunktion, arbeitet an allen Questpassagen
 */
function work_on_questpassages() {
	// Fügt den Anzeigen/Verstecken-Link zur Map hinzu
	findmenu = document.getElementById("QPinout");
	if (findmenu) {
		showlink = document.createElement("a");
		showlink.setAttribute("href","Javascript:showQP(true)");
		showlink.appendChild(document.createTextNode('anzeigen'));
		
		hidelink = document.createElement("a");
		hidelink.setAttribute("href","Javascript:showQP(false)");
		hidelink.appendChild(document.createTextNode('verbergen'));
		
		findmenu.appendChild(showlink);
		findmenu.appendChild(document.createTextNode('/'));
		findmenu.appendChild(hidelink);
	}

	// Questpassagen anzeigen, wenn gewünscht
	for (var i = 0; foundspan = document.getElementsByTagName("span")[i]; i++) {
		var tiramon_deShowQP = document.cookie;
		
		if (tiramon_deShowQP.indexOf("tiramon_deShowQP=")=="-1") return(-1);
		if (tiramon_deShowQP.charAt(tiramon_deShowQP.indexOf("tiramon_deShowQP=")+17) != "1") return(-1);
		if (foundspan.className == "QP") {
			foundspan.setAttribute("style", "display:inline;");
		}
	}
}

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

/*** ENDE: Kartenspezifisches ***/

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

/*** 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 ***/

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

/*** Charakterfähigkeiten ***/

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

/*** ENDE: Charakterfähigkeiten ***/

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

/*** 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 ***/

/* 8. ANFANG: NPC Filter für Karten */

function resetNPCBordersOnMap ()
{
    /* Entferne Klasse und setze somit CSS-Einstellungen wieder zurück */
    $("body.ns-108 .maplink div.noIE > a").parent().parent().removeClass("MapNPCBorder");
}

function showNPCBordersOnMap (npcName)
{
    /* Vergleiche NPC-Name mit jedem einzelnen NPC-Namen der in der Karte eingetragen ist, falls ja, dann zeiche Rahmen um das entsprechende Feld mittels der Klasse MapNPCBorder */
    var NPCMapCounter = 0; 
    $("body.ns-108 .maplink div.noIE > a > span.NPC").each(function(){
        if ($(this).text().toLowerCase() == npcName.toLowerCase()) // Case-Insensitive Prüfung
        {
           $(this).parent().parent().parent().addClass("MapNPCBorder");
           NPCMapCounter++;
        }
    });
    /* Zeige zur zusätzlichen Information, wie viele Rahmen bzw. NPCs es jetzt auf dieser Karte gibt */
    $("#map_redZK #mapNPCCount").text(NPCMapCounter);
}

function initNPCBordersAndLinks ()
{
    /* Füge Links mit Kugelsymbol hinzu (NPC-Artikel) */
    $("body.ns-0 .layout_npc .layout_npc_location > p > b:contains('Vorkommen:')").parent().parent().find("p + ul > li, p:first-child ~ p").each(function(){
        if ($(this).find("a").hasClass("new"))
            return;
        switch ($(this).find("a").attr("title"))
        {
            case "Welt": case "Oberfläche": case "Dungeon":
                return;
            default:
                $(this).append("<span class='linktomap'><a href='/index.php/Karte:"+$(this).find("a").attr("title").replace(/ /g, "_") + "#MapNPCFilter_" + $("#firstHeading").text()+"' style='display: inline-block; height: 12px; width: 12px; overflow:hidden;'> </a></span>");
        }
    });

    /* Erstelle Eingabefeld (Karten-Artikel) */
    $("body.ns-108 #map_redZK").append("<br /><input type='text' name='findeNPC' />   <a href='#'>NPC suchen</a><br /><span id='mapNPCCount'>0</span> NPCs wurden gefunden");

    /* Starte NPC-Suche, bei Klick auf den NPC-Suchen-Link */
    $("body.ns-108 #map_redZK > input[name='findeNPC'] + a").click(function(){
        var NPCname = $(this).parent().find("input[name='findeNPC']").val();
        resetNPCBordersOnMap();
        showNPCBordersOnMap(NPCname);
        $(this).attr("href","#MapNPCFilter_"+NPCname);
    });

    /* Automatisches Absenden des Forms mit der Enter-Taste */
    $("body.ns-108 #map_redZK > input[name='findeNPC']").keypress(function(e) {
        if(e && e.which == 13)
        {
            $(this).next().click();
            window.location.replace("#MapNPCFilter_"+$(this).val());
        }
    });

    /* Wenn der Hash schon zum Ladezeitpunkt mit "#MapNPCFilter_" beginnt, direkt nach NPC suchen und im Formular eintragen */
    if (window.location.hash.substr(0,14) == "#MapNPCFilter_")
    {
        var NPCname = window.location.hash.substr(14);
        /* NPC-Namen in URLs können kodiert sein, z.B. wird Leerzeichen zu %20*/
        NPCname = decodeURI(NPCname);
        showNPCBordersOnMap(NPCname);
        $("body.ns-108 #map_redZK > input[name='findeNPC']").val(NPCname);
    }
}

jQuery( document ).ready( function( $ ) {
	initNPCBordersAndLinks();
} );
//addOnloadHook(initNPCBordersAndLinks);
/* ENDE: NPC Filter für Karten */


//==Schnee==
   // Outsourced to [[MediaWiki:Schnee.js]]
/* DEAKTIVIERT (für Weihnachtszeit gedacht)
   if (mw.config.get('wgTitle') === 'Hauptseite') {
      mw.loader.load('/index.php?title=MediaWiki:Schnee.js&action=raw&ctype=text/javascript');
      //importScript("MediaWiki:Schnee.js");
   }
*/