Difference between revisions of "MediaWiki:Common.js"

From FreewarWiki
Jump to: navigation, search
(reinsert partial)
Line 108: Line 108:
 
   
 
   
 
  }
 
  }
/*
+
 
 
  jQuery( document ).ready( function( $ ) {
 
  jQuery( document ).ready( function( $ ) {
 
createNavigationBarToggleButton();
 
createNavigationBarToggleButton();
 
} );
 
} );
*/
 
 
// addOnloadHook(createNavigationBarToggleButton);
 
// addOnloadHook(createNavigationBarToggleButton);
 
   
 
   
 
  /* END Dynamic Navigation Bars
 
  /* 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);
 
    }
 
  }
 
}
 
/*
 
jQuery( document ).ready( function( $ ) {
 
initVTabs();
 
} );
 
*/
 
// 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;
 
}
 
 
function init_fightcalc()
 
{
 
  fc = document.getElementById('Kampfrechner');
 
  if (fc) {
 
    table = document.createElement('TABLE');
 
    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');
 
    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');
 
    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');
 
    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);
 
  }
 
}
 
/*
 
jQuery( document ).ready( function( $ ) {
 
init_fightcalc();
 
} );
 
*/
 
// addOnloadHook(init_fightcalc);
 
 
/* 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;");
 
    }
 
  }
 
 
}
 
/* no idea what happens here but it is bugged
 
jQuery( document ).ready( function( $ ) {
 
work_on_questpassages();
 
} );
 
*/
 
// addOnloadHook(work_on_questpassages);
 
 
/*** END: QuestPassages ***/
 
 
// ============================================================
 
 
/*** [[CompleteMap]] ***/
 
// BEGIN import code used by [[CompleteMap]]
 
// SEE ALSO [[MediaWiki:CompleteMap.js]]
 
 
  document.write('<script type="text/javascript" src="/index.php?title=MediaWiki:CompleteMap.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 [[CompleteMap]] */
 
 
/*** END: [[CompleteMap]] == ***/
 
 
// ============================================================
 
 
/*** Charakterfähigkeitsrechner ***/
 
// 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: Charakterfähigkeitsrechner ***/
 
 
//=============================================================
 
 
/*** Snow ***/
 
 
// Ist in [[MediaWiki:Snow.js]] ausgelagert
 
//if (mw.config.get('wgTitle') === 'Main Page') {
 
//importScript("MediaWiki:Snow.js");
 
//}
 
 
/*** END: Snow ***/
 
 
//=============================================================
 
 
/* Favicon Austausch - Entfernen sobald das Favicon durch einen Systemadministrator ausgetauscht wurde */
 
var head = document.getElementsByTagName('head')[0];
 
var links = document.getElementsByTagName('link');
 
for (var i = 0; i < links.length; i++) {
 
if (links[i].rel == 'shortcut icon') {
 
head.removeChild(links[i]);
 
break;
 
}
 
}
 
var icon = document.createElement('link');
 
icon.setAttribute('type', 'image/x-icon');
 
icon.setAttribute('rel', 'shortcut icon');
 
icon.setAttribute('href', 'http://fwwiki.staticdata.de/images/2/26/Favicon.png');
 
head.appendChild(icon);
 
/* ENDE: Favicon Austausch */
 

Revision as of 15:25, 8 February 2017

/* Any JavaScript here will be loaded for all users on every page load. */
/* Hinweis: Die Wiki-Überschriften sind JavaScript-technisch auskommentiert
== Dynamic Navigation Bars ==
 */
 
 // set up the words in your language
 var NavigationBarHide = 'Hide';
 var NavigationBarShow = 'Show';
 
 // 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);
        }
    }
 
 }

 jQuery( document ).ready( function( $ ) {
	createNavigationBarToggleButton();
} );
// addOnloadHook(createNavigationBarToggleButton);
 
 /* END Dynamic Navigation Bars
 // ============================================================