MediaWiki:Common.js: Unterschied zwischen den Versionen

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen
(Änderung 231254 von Arbiedz (Diskussion) rückgängig gemacht. du bist nicht die mehrzahl der benutzer, arbiedz)
(schnee an die hauptseitenlaenge angepasst)
Zeile 586: Zeile 586:
var snow_speed = 2.4;
var snow_speed = 2.4;
// timeout for animation
// timeout for animation
var snow_timeout = 50;
var snow_timeout = 70;
// maximum size of snowflakes
// maximum size of snowflakes
var snow_maxsize = 22;
var snow_maxsize = 22;

Version vom 13. Dezember 2011, 01:16 Uhr

/* Hinweis: Die Wiki-Überschriften sind JavaScript-technisch auskommentiert
== Dynamic Navigation Bars ==
 */
 
 // 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 ==
 */

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

 // switches between 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;
 }
 
 // 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);
     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);
     }
   }
 }
 
 addOnloadHook(initVTabs);
 
 /* END Vertical Tabbing
 // ============================================================

== Kampfrechner ==
 */
 
 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()
 {
   fc = document.getElementById('Kampfrechner');
   if (fc) {

     selectfield = document.createElement('select');
     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;
     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');
     td = document.createElement('TD');
     tr.appendChild(td);
     td = document.createElement('TH');
     td.appendChild(document.createTextNode('Angreifer'));
     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]);
}

 
 /* 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
   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;");
     }
   }

 }
 addOnloadHook(work_on_questpassages);
 
 /* END QuestPassages
 // ============================================================

== NPC-Bilder ein/aus ==
 */
 
 function showNI(bool)
 {
   if (bool) 
   {
     document.cookie="tiramon_deShowNI=1";
   }
   else
   {
     document.cookie="tiramon_deShowNI=0";
   }
   location.reload();
 }

 function work_on_npcimages()
 {
   // 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);
   }

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

 }
 addOnloadHook(work_on_npcimages);
 
 /* END NPC-Images
 // ============================================================

== FreewarWiki Chat ==
 */
 
 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);
   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);
   }

 addOnloadHook(addChat);
 
 /* END QuestPassages
 // ============================================================

== [[Gesamtkarte]] ==
 // BEGIN import code used by [[Gesamtkarte]]
 // 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 ==
 */
 
////////////////////////////////////////////////////////////////////////
// SnowFlakes-Script (c) 2009, Dominik Scholz / go4u.de Webdesign
////////////////////////////////////////////////////////////////////////

// amount of snow flakes
	var snow_amount = 50;
// 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;

////////////////////// don't edit below this line //////////////////////
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;

// start snow
function snow_start()
{
	if (snow_eventHandlerLoad != null) snow_eventHandlerLoad();

	// init window size
	snow_window_size();

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

	// start to move snow
	snow_move();
}


////////////////////////////// functions ///////////////////////////////

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

	// create span child for flake
	var insertFlake = document.createElement('div');
	insertFlake.id             = 'flake'+i;
	insertFlake.style.position = 'absolute';
	insertFlake.style.left     = '0px';
	insertFlake.style.top      = '-'+snow_maxsize+'px';
	insertFlake.style.zIndex   = 20000;
	insertFlake.innerHTML      = snow_char;
	insertBody.appendChild(insertFlake);

	// create array element
	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
function snow_move()
{

	for (i=0; i<snow_flakes.length; i++)
	{
		var flake = document.getElementById('flake'+i);

		// restart existing flake
		if ((snow_flakes[i].y + snow_flakes[i].size + 20) >= snow_body_height)
			snow_flake_restart(i);

		snow_flakes[i].count++;
		snow_flakes[i].y += snow_speed;

		x = snow_flakes[i].x + Math.sin(snow_flakes[i].count / snow_flakes[i].size) * 15;
		y = snow_flakes[i].y;

		
		flake.style.left = x + 'px';
		flake.style.top  = y + 'px';
	}

	// do it again
	window.setTimeout('snow_move();', snow_timeout);
}

function snow_random(range)
{
    return Math.floor(Math.random() * range);
}

function snow_window_size()
{
	// save old width
	var old_width = snow_body_width;

	// get new width
    snow_body_width = document.body.clientWidth - snow_maxsize - 20;
    snow_body_height = document.body.clientHeight;
	if ((window.innerHeight) && (window.innerHeight > snow_body_height))
		snow_body_height = window.innerHeight;
	else if ((document.body && document.body.offsetHeight) && (document.body.offsetHeight > snow_body_height))
    	snow_body_height = document.body.offsetHeight;

	// calculate correction ratio
	var ratio = snow_body_width / old_width;
		
	// for all flakes
	for (i=0; i<snow_flakes.length; i++)
	{
		var flake = document.getElementById('flake'+i);

		// do width correction
		snow_flakes[i].x *= ratio;
		
		// restart existing flake
		if ((snow_flakes[i].y + snow_flakes[i].size + 20) >= snow_body_height)
			snow_flake_restart(i);
	}
}

// handle resize event
function snow_resize()
{
	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 */