Category
| You're no bot and a page you've created got automatically deleted? Add your name to FreewarWiki:NoSpamUser |
Difference between revisions of "MediaWiki:Common.js"
From FreewarWiki
(reinsert partial) |
(reinsert partial) |
||
| Line 201: | Line 201: | ||
/* END Vertical Tabbing | /* 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 */ | ||
// ============================================================ | // ============================================================ | ||
Revision as of 14:26, 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
// ============================================================
== 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 */
// ============================================================