MediaWiki:Common.js: Unterschied zwischen den Versionen

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
(Überarbeitung der Common.js: Neue Aufteilung, teilweise dokumentiert, wo sinnvoll Scripts ausgelagert)
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 ==
/*** 1. 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
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);
}
}
}


      if (contents) {
// Lade createNavigationBarToggleButton() nach Laden der Seite
        tr.removeChild(content);
addOnloadHook(createNavigationBarToggleButton);
      } else {
        contents = content
      }
      contents.rowSpan = numTabs;
      contents.appendChild(div);
    }
  }
}
   
   
addOnloadHook(initVTabs);
/*** ENDE: Anpassung für die Navigationsleisten ***/
 
/* END Vertical Tabbing
//=============================================================
// ============================================================
 
/*** 2. Kampfrechner ***/


== Kampfrechner ==
// Ist in [[MediaWiki:Kampfrechner.js]] ausgelagert
*/
// Wird nur auf der Seite [[Kampfrechner]] aufgerufen
if (mw.config.get('wgTitle') === 'Kampfrechner') {
if (mw.config.get('wgTitle') === 'Kampfrechner') {
importScript("MediaWiki:Kampfrechner.js");
importScript("MediaWiki:Kampfrechner.js");
}
}


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


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


function work_on_questpassages()
// Gesamtkarten-Funktionen
{
// Autorouter: Ist in [[MediaWiki:Autorouter.js]] ausgelagert
  // add show/hide links to all maps
// Gesamtkarte-Funktionen: Sind in [[MediaWiki:Gesamtkarte.js]] ausgelagert
  findmenu = document.getElementById("QPinout");
// Werden nur auf der Seite [[Gesamtkarte]] aufgerufen
  if (findmenu)
if (mw.config.get('wgTitle') === 'Gesamtkarte') {
  {
importScript("MediaWiki:Gesamtkarte.js");
    showlink=document.createElement("a");
importScript("MediaWiki:Autorouter.js");
    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
/**
  for(var i=0; foundspan = document.getElementsByTagName("span")[i]; i++)
* Zeigt/Versteckt Questpassage auf interkativer Karte
  {
* Parameter:
    var tiramon_deShowQP=document.cookie;
* bool: Wenn wahr, Questpassage anzeigen, wenn falsch, dann nicht
    if (tiramon_deShowQP.indexOf("tiramon_deShowQP=")=="-1") return(-1);
*/
    if (tiramon_deShowQP.charAt(tiramon_deShowQP.indexOf("tiramon_deShowQP=")+17)!="1") return(-1);
function showQP(bool) {
    if (foundspan.className == "QP")
if (bool) {
    {
document.cookie = "tiramon_deShowQP=1";
      foundspan.setAttribute("style", "display:inline;");
} else {
    }
document.cookie = "tiramon_deShowQP=0";
  }
}
 
location.reload();
}
}
addOnloadHook(work_on_questpassages);
/* END QuestPassages
// ============================================================


== NPC-Bilder ein/aus ==
/**
* Generalfunktion, arbeitet an allen Questpassagen
  */
  */
function work_on_questpassages() {
function showNI(bool)
// Fügt den Anzeigen/Verstecken-Link zur Map hinzu
{
findmenu = document.getElementById("QPinout");
  var DaysToExpire = 300;
if (findmenu) {
  var ExpireDate = new Date();
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);
}


  ExpireDate.setTime((ExpireDate.getTime() + DaysToExpire * 24 * 60 * 60 * 1000));
// 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;");
}
}
}


  if (bool)  
// Starte work_on_questpassages() nach Laden der Seite
  {
addOnloadHook(work_on_questpassages);
    document.cookie="tiramon_deShowNI=1; expires=" + ExpireDate.toGMTString();
  }
  else
  {
    document.cookie="tiramon_deShowNI=0; expires=" + ExpireDate.toGMTString();
  }
  location.reload();
}


function work_on_npcimages()
/*** ENDE: Kartenspezifisches ***/
{
  // add show/hide links to all maps
  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);
  }


  // default state of display mode:
//=============================================================
  var NIDisplaymode="inline";


  // get saved state of display status:
/*** 4. NPC-Bilder ***/
  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 +";");
    }
  }
 
}
addOnloadHook(work_on_npcimages);
   
   
  /* END NPC-Images
/**
  // ============================================================
  * Zeigt/Versteckt NPC-Bilder
 
  * Parameter:
== FreewarWiki Chat ==
* bool: Wenn wahr, NPC-Bilder anzeigen, wenn falsch, dann nicht
  */
  */
function showNI(bool)
function addChat()
{
  {
var DaysToExpire = 300; // Cookie wird nach so vielen Tagen gelöscht
  findchat = document.getElementById("fwwchat");
var ExpireDate = new Date();
  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);
ExpireDate.setTime((ExpireDate.getTime() + DaysToExpire * 24 * 60 * 60 * 1000));
  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);
if (bool) {
  param = document.createElement("param"); param.setAttribute("name","loadmodules1"); param.setAttribute("value","ImagePanel hide"); chat.appendChild(param);
document.cookie="tiramon_deShowNI=1; expires=" + ExpireDate.toGMTString();
  param = document.createElement("param"); param.setAttribute("name","loadmodules2"); param.setAttribute("value","OpPanel hide"); chat.appendChild(param);
} else {
  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);
document.cookie="tiramon_deShowNI=0; expires=" + ExpireDate.toGMTString();
  param = document.createElement("param"); param.setAttribute("name","userwidth"); param.setAttribute("value","16"); chat.appendChild(param);
}
  param = document.createElement("param"); param.setAttribute("name","joinsound"); param.setAttribute("value","bell.au"); chat.appendChild(param);
location.reload();
  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);
}


  param = document.createElement("param"); param.setAttribute("name","timestamp"); param.setAttribute("value","true"); chat.appendChild(param);
/**
  param = document.createElement("param"); param.setAttribute("name","playsounds"); param.setAttribute("value","true"); chat.appendChild(param);
* Generalfunktion, arbeitet an allen NPC-Bildern
  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);
function work_on_npcimages()
  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);
// Füge Anzeigen/Verstecken-Link hinzu
  param = document.createElement("param"); param.setAttribute("name","guicolors3"); param.setAttribute("value","titleColor=888888;titletextColor=ffffff;sessiontextColor=000000"); chat.appendChild(param);
findmenu = document.getElementById("NIinout");
  param = document.createElement("param"); param.setAttribute("name","guicolors4"); param.setAttribute("value","joinColor=228b22;partColor=228b22;talkcolor=000000"); chat.appendChild(param);
if (findmenu) {
  param = document.createElement("param"); param.setAttribute("name","nick"); param.setAttribute("value",""); chat.appendChild(param);
showlink=document.createElement("a");
  param = document.createElement("param"); param.setAttribute("name","passprompt"); param.setAttribute("value","Passwort (registrierte Nicknames)"); chat.appendChild(param);
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);
}


  findchat.appendChild(chat);
// Standardwert des Anzeigemodus
  }
var NIDisplaymode = "inline";


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


== [[Gesamtkarte]] ==
for (var i = 0; foundspan = document.getElementsByTagName("span")[i]; i++) {
// BEGIN import code used by [[Gesamtkarte]]
if (foundspan.className == "NI") {
// SEE ALSO [[MediaWiki:Gesamtkarte.js]] */
foundspan.setAttribute("style", "display:" + NIDisplaymode +";");
}
  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 ==
}
////////////////////////////////////////////////////////////////////////
// SnowFlakes-Script (c) 2009, Dominik Scholz / go4u.de Webdesign
////////////////////////////////////////////////////////////////////////


// amount of snow flakes
// Starte work_on_npcimages() nach Laden der Seite
var snow_amount = 50;
addOnloadHook(work_on_npcimages);
// colors of snowflakes
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;


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


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


////////////////////// don't edit below this line //////////////////////
/*** 5. FreewarWiki Chat ***/
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;
* Fügt den Chat ein
//window.onload = snow_start;
*/
 
function addChat()
// Schnee nur auf Hauptseite , by JaPPe
var url=document.URL.split("/");
if( url[4] == "Hauptseite" ) {
  window.onresize = snow_resize;
  window.onload = snow_start;
}
 
// start snow
function snow_start()
{
{
if (snow_eventHandlerLoad != null) snow_eventHandlerLoad();
findchat = document.getElementById("fwwchat");
if (!findchat) return false;
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");


// init window size
param = document.createElement("param"); param.setAttribute("name","channel"); param.setAttribute("value","#freewarwiki"); chat.appendChild(param);
snow_window_size();
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);
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);
param = document.createElement("param"); param.setAttribute("name","userwidth"); param.setAttribute("value","16"); chat.appendChild(param);
param = document.createElement("param"); param.setAttribute("name","joinsound"); param.setAttribute("value","bell.au"); chat.appendChild(param);
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);
param = document.createElement("param"); param.setAttribute("name","timestamp"); param.setAttribute("value","true"); 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","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);


// add new flakes
findchat.appendChild(chat);
while (snow_amount > snow_flakes.length)
snow_flake_create(snow_flakes.length);
 
// start to move snow
snow_move();
}
}


// Starte addChat() nach Laden der Seite
addOnloadHook(addChat);


////////////////////////////// functions ///////////////////////////////
/*** ENDE: FreewarWiki Chat ***/


// creates a new snowflake
/*** 6. Charakterfähigkeiten ***/
function snow_flake_create(i)
{
// select body tag
var insertBody = document.getElementsByTagName('body')[0];


// create span child for flake
// Ist in [[MediaWiki:CFoptions.js]] ausgelagert
var insertFlake = document.createElement('div');
importScript("MediaWiki:CFoptions.js");
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
/*** ENDE: Charakterfähigkeiten ***/
snow_flakes[i]      = new Array();
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_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
//=============================================================
function snow_flake_restart(i)
{
snow_flakes[i]      = new Array();
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
/*** 7. Vertikale Tabs ***/
function snow_move()
{


for (i=0; i<snow_flakes.length; i++)
// Variablendefinition
{
var shownTab = Array();
var flake = document.getElementById('flake'+i);
var disabledLink = Array();


// restart existing flake
/**
if ((snow_flakes[i].y + snow_flakes[i].size + 20) >= snow_body_height)
* Änderung des aktuell ausgewählten Tabs
snow_flake_restart(i);
*/
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;


snow_flakes[i].count++;
div.style.height = 'auto';
snow_flakes[i].y += snow_speed;
if (shownTab[area]) shownTab[area].style.height = '0';
shownTab[area] = div;


x = snow_flakes[i].x + Math.sin(snow_flakes[i].count / snow_flakes[i].size) * 15;
var strong = document.getElementById('VTabStrong_' + String(area));
y = snow_flakes[i].y;
if (!strong) {
strong = document.createElement('strong');
strong.id = 'VTabStrong_' + String(area);
strong.className = 'selflink';
}


if (disabledLink[area]) {
flake.style.left = x + 'px';
disabledLink[area].appendChild(strong.firstChild);
flake.style.top  = y + 'px';
strong.parentNode.appendChild(disabledLink[area]);
}
}


// do it again
strong.appendChild(a.firstChild);
window.setTimeout('snow_move();', snow_timeout);
a.parentNode.appendChild(strong);
a.parentNode.removeChild(a);
disabledLink[area] = a;
}
}


function snow_random(range)
/**
{
* Initialisiert vertikale Tabs
    return Math.floor(Math.random() * range);
*/
}
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;


function snow_window_size()
var numTabs = 0;
{
var contents;
// save old width
for (var j = 0; tr = table.getElementsByTagName('tr')[j]; j++) {
var old_width = snow_body_width;
var caption = tr.getElementsByTagName('td')[0];
caption.className = 'VTabCaption';
caption.id = 'VTabCaption_' + String(indexVTabs) + '_' + String(++numTabs);


// get new width
var a = document.createElement('a');
    snow_body_width = document.body.clientWidth - snow_maxsize - 20;
a.id = 'VTabLink_' + String(indexVTabs) + '_' + String(++numTabs);
    snow_body_height = document.body.clientHeight;
a.href = 'javascript:showVTab(' + String(indexVTabs) + ', ' + String(numTabs) + ');';
if ((window.innerHeight) && (window.innerHeight > snow_body_height))
a.appendChild(caption.firstChild);
snow_body_height = window.innerHeight;
caption.appendChild(a);
else if ((document.body && document.body.offsetHeight) && (document.body.offsetHeight > snow_body_height))
    snow_body_height = document.body.offsetHeight;


// calculate correction ratio
var content = tr.getElementsByTagName('td')[1];
var ratio = snow_body_width / old_width;
var div = document.createElement('div');
div.className = 'VTabContent';
// for all flakes
div.id = 'VTabContent_' + String(indexVTabs) + '_' + String(numTabs);
for (i=0; i<snow_flakes.length; i++)
{
var flake = document.getElementById('flake'+i);


// do width correction
while (content.childNodes.length) {
snow_flakes[i].x *= ratio;
div.appendChild(content.childNodes[0]);
}
// restart existing flake
if (contents) {
if ((snow_flakes[i].y + snow_flakes[i].size + 20) >= snow_body_height)
tr.removeChild(content);
snow_flake_restart(i);
} else {
contents = content
}
contents.rowSpan = numTabs;
contents.appendChild(div);
}
}
}
}
}


// handle resize event
// Starte initVTabs() nach Laden der Seite
function snow_resize()
addOnloadHook(initVTabs);
{
if (snow_eventHandlerResize != null) snow_eventHandlerResize();
snow_window_size();
}
*/
/* 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() {
  window.ts_getInnerText = function(el) {
    sortkeys = getElementsByClassName(el, 'span', 'sortkey'); // getElementsByClassName is defined in wikibits.js
    if (sortkeys.length) return getInnerText(sortkeys[0]);
    return getInnerText(el);
  }
}
 
addOnloadHook(hackTableSort);


// END OF FILE */
/*** ENDE: Vertikale Tabs ***/

Version vom 3. März 2012, 19:21 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 = 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
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') {
	importScript("MediaWiki:Kampfrechner.js");
}

/*** ENDE: Kampfrechner ***/

/*** 3. 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') {
	importScript("MediaWiki:Gesamtkarte.js");
	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
addOnloadHook(work_on_questpassages);

/*** ENDE: Kartenspezifisches ***/

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

/*** 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
addOnloadHook(work_on_npcimages);

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

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

/*** 5. FreewarWiki Chat ***/

/**
 * Fügt den Chat ein
 */
function addChat()
{
	findchat = document.getElementById("fwwchat");
	if (!findchat) return false;
	
	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);
	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);
	param = document.createElement("param"); param.setAttribute("name","userwidth"); param.setAttribute("value","16"); chat.appendChild(param);
	param = document.createElement("param"); param.setAttribute("name","joinsound"); param.setAttribute("value","bell.au"); chat.appendChild(param);
	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);
	param = document.createElement("param"); param.setAttribute("name","timestamp"); param.setAttribute("value","true"); 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","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);
}

// Starte addChat() nach Laden der Seite
addOnloadHook(addChat);

/*** ENDE: FreewarWiki Chat ***/

/*** 6. Charakterfähigkeiten ***/

// Ist in [[MediaWiki:CFoptions.js]] ausgelagert
importScript("MediaWiki:CFoptions.js");

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

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

/*** 7. 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
addOnloadHook(initVTabs);

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