MediaWiki:Skin/Suchttest.js: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
K (Die Seite wurde neu angelegt.)
 
K (so, + suchtometer, bessere dpl-Unterstützung und im IE sollte es jetzt auch funktionieren (cache entleeren nicht vergessen) *daumenrdück*)
Zeile 2: Zeile 2:
 
{
 
{
 
suchtpotential = 0
 
suchtpotential = 0
optionvalue = 0
+
optionvalue   = 0
 
if(document.getElementById("suchttest"))
 
if(document.getElementById("suchttest"))
 
{
 
{
 
makeoptions ();
 
makeoptions ();
min1 = Number(document.getElementById("min1").innerHTML);
+
prepare (document.getElementById("numberofcategories").innerHTML);
min2 = Number(document.getElementById("min2").innerHTML);
 
min3 = Number(document.getElementById("min3").innerHTML);
 
min1text = document.getElementById("min1text").innerHTML;
 
min2text = document.getElementById("min2text").innerHTML;
 
min3text = document.getElementById("min3text").innerHTML;
 
document.getElementById("auswertungstext").style.display = "none"
 
 
}
 
}
 
};
 
};
Zeile 39: Zeile 33:
 
}
 
}
 
}
 
}
document.getElementById("auswertungsknopp").innerHTML = '<input type="button" name="Auswertung" value="Auswertung" onclick="auswertung()"><span id="result" style="position:absolute; right:0px; top:0px;"></span>';
+
document.getElementById("auswertungsknopp").innerHTML = '<input type="button" name="Auswertung" value="auswerten" onclick="auswertung(' + "'" + document.getElementById("numberofcategories").innerHTML + "'" + ')"><span id="result" style="position:absolute; right:0px; top:0px;"></span>';
 
};
 
};
  
function auswertung () {
+
function auswertung (numberofcategories) {
 
for (var i = 0; i < numberofoptions; i++)
 
for (var i = 0; i < numberofoptions; i++)
 
{
 
{
Zeile 65: Zeile 59:
 
}
 
}
 
}
 
}
document.getElementById("result").innerHTML = '(' + suchtpotential + ' Punkte)'
+
var maxpoints = document.getElementById("maxpoints").innerHTML;
if(suchtpotential <= min1)  
+
var percent  = Math.round((suchtpotential / maxpoints) * 100);
 +
for (var i = 0; i <= numberofcategories; i++)
 
{
 
{
document.getElementById("auswertungstext").innerHTML = min1text;
+
if(suchtpotential >= categories['min' + i] && suchtpotential <= categories['max' + i])
} else {
 
if(suchtpotential <= min2)
 
 
{
 
{
document.getElementById("auswertungstext").innerHTML = min2text;
+
document.getElementById("defaulttext").innerHTML = "<ul><li><b>Du hast " + suchtpotential + " von " + maxpoints + " möglichen Punkten erreicht</b><br>" + categories['text' + i] + "</ul></li>";
} else {
 
if(suchtpotential <= min3)
 
{
 
document.getElementById("auswertungstext").innerHTML = min3text;
 
}
 
 
}
 
}
 
}
 
}
document.getElementById("auswertungstext").style.display = "block";
+
if(percent >= 0)
 +
{
 +
document.getElementById("suchtomat").style.backgroundColor = 'rgb(' + percent + '%,' + (100 - percent) + '%,0%)';
 +
document.getElementById("suchtomat").style.height = 75 + (percent * 1.55) + 'px';
 +
}
 +
document.getElementById("result").innerHTML = '(' + suchtpotential + ' Punkte)'
 
suchtpotential = 0;
 
suchtpotential = 0;
 +
};
 +
 +
function prepare (numberofcategories) {
 +
categories = new Array();
 +
for (var i = 0; i <= numberofcategories; i++)
 +
{
 +
categories['min' + i]  = document.getElementById('min' + i).innerHTML;
 +
categories['max' + i]  = document.getElementById('max' + i).innerHTML;
 +
categories['text' + i] = document.getElementById('text' + i).innerHTML;
 +
}
 +
document.getElementById("auswertungstext").style.display = "none";
 +
document.getElementById("defaulttext").style.display    = "inline";
 
};
 
};

Version vom 9. April 2009, 13:24 Uhr

window.onload = function ()
	{
	suchtpotential = 0
	optionvalue    = 0
	if(document.getElementById("suchttest"))
		{
		makeoptions ();
		prepare (document.getElementById("numberofcategories").innerHTML);
		}
	};

function makeoptions () {
	options = document.getElementById("suchttest").getElementsByTagName("li")
	numberofoptions = options.length;
	for (var i = 0; i < numberofoptions; i++)
		{
		for (var j = 0; j < options[i].getElementsByTagName("span").length; j++)
			{
			switch (options[i].getElementsByTagName("span")[j].className)
				{
				case "testoptionvalueinner":
					optionvalue = options[i].getElementsByTagName("span")[j].innerHTML;
					break;
				case "checkbox":
					options[i].getElementsByTagName("span")[j].innerHTML = '<input type="checkbox" name="suchtoption" value="' + optionvalue + '">';
					break;
				case "testoptionvalueouter":
					options[i].getElementsByTagName("span")[j].style.display = "none";
					break;
				default:
					break;
				}
			}
		}
	document.getElementById("auswertungsknopp").innerHTML = '<input type="button" name="Auswertung" value="auswerten" onclick="auswertung(' + "'" + document.getElementById("numberofcategories").innerHTML + "'" + ')"><span id="result" style="position:absolute; right:0px; top:0px;"></span>';
	};

function auswertung (numberofcategories) {
	for (var i = 0; i < numberofoptions; i++)
		{
		if (document.getElementsByName("suchtoption")[i].checked == true)
			{
			suchtpotential = suchtpotential + Number(document.getElementsByName("suchtoption")[i].value);
			for (var j = 0; j < options[i].getElementsByTagName("span").length; j++)
				{
				if (options[i].getElementsByTagName("span")[j].className == "testoptionvalueouter")
					{
					options[i].getElementsByTagName("span")[j].style.display = "block";
					}
				}
			} else {
			for (var j = 0; j < options[i].getElementsByTagName("span").length; j++)
				{
				if (options[i].getElementsByTagName("span")[j].className == "testoptionvalueouter")
					{
					options[i].getElementsByTagName("span")[j].style.display = "none";
					}
				}
			}
		}
	var maxpoints = document.getElementById("maxpoints").innerHTML;
	var percent   = Math.round((suchtpotential / maxpoints) * 100);
	for (var i = 0; i <= numberofcategories; i++)
		{
		if(suchtpotential >= categories['min' + i] && suchtpotential <= categories['max' + i])
			{
			document.getElementById("defaulttext").innerHTML = "<ul><li><b>Du hast " + suchtpotential + " von " + maxpoints + " möglichen Punkten erreicht</b><br>" + categories['text' + i] + "</ul></li>";
			}
		}
	if(percent >= 0)
		{			
		document.getElementById("suchtomat").style.backgroundColor = 'rgb(' + percent + '%,' + (100 - percent) + '%,0%)';
		document.getElementById("suchtomat").style.height = 75 + (percent * 1.55) + 'px';
		}
	document.getElementById("result").innerHTML = '(' + suchtpotential + ' Punkte)'
	suchtpotential = 0;
	};

function prepare (numberofcategories) {
	categories = new Array();
	for (var i = 0; i <= numberofcategories; i++)
		{
		categories['min' + i]  = document.getElementById('min' + i).innerHTML;
		categories['max' + i]  = document.getElementById('max' + i).innerHTML;
		categories['text' + i] = document.getElementById('text' + i).innerHTML;
		}
	document.getElementById("auswertungstext").style.display = "none";
	document.getElementById("defaulttext").style.display     = "inline";
	};