function getArgs() {
	var args = new Object();
	var query = location.search.substring(1);
	var pairs = query.split(";");
	for (var i=0; i<pairs.length; i++) {
		var pos = pairs[i].indexOf('=');
		if (pos==-1) continue;
		var argname = pairs[i].substring(0,pos);
		var value = pairs[i].substring(pos+1);
		args[argname] = unescape(value);
	}
	return args;
}

var args = getArgs();
var w = 0;
var f = 0;
var e = 0;
var l = 0;

if (args.w) w = parseInt(args.w);
if (args.f) f = parseInt(args.f);
if (args.e) e = parseInt(args.e);
if (args.l) l = parseInt(args.l);

function createArray(n,init) {
	this.lenght=n-1
	for ( var i=0; i<n; i++) {
		this[i] = init
	}
	return this;
}

var iStart = 0;
var iStop = 0;
var afrage = 0;

function setStartStop(iNum) {
	if (iNum != afrage) {
		afrage = iNum;
		iStart = 0;
		for (var i=0; i<iNum-1; i++) {
			iStart += 4*fr[i]
		}
		iStop = iStart + 4*fr[iNum - 1] - 1
	}
}


function resetRadio(what) {
	for (var i=iStart+1; i<=iStop; i++) {
		if (document.fb.elements[i].name == what.name) {
			document.fb.elements[i].checked = true;
			break;				
		}
	}		
	alert("Fout: Je kunt slechts maximaal 2 punten per vraag geven en maximaal eenmaal een X per vraag.");
}


function check_x(frage, what) {
	var errorflag = false;
	setStartStop(frage);
	for (var i=iStart+3; i<=iStop; i+=4) {
		if ((document.fb.elements[i].checked) && (document.fb.elements[i] != what)) {
			errorflag = true; break;
		}
	}
	if (errorflag) { resetRadio(what); }
}


function check_1(frage, what) {
	var found = false;
	var errorflag = false;
	setStartStop(frage);
	for (var i=iStart+1; i<=iStop; i++) {
		if ((document.fb.elements[i].checked) && (document.fb.elements[i].name != what.name)) {
			if (document.fb.elements[i].value == "1") {
				if (found) { errorflag = true;	break;
				} else {
					found = true;
				}
			}
			if (document.fb.elements[i].value == "2") { errorflag = true; break; }
		}
		if (document.fb.elements[i].value == "2") { i+=2 }
	}
	if (errorflag) { resetRadio(what); }
}

function check_2(frage, what) {
	var found = false;
	var errorflag = false;
	setStartStop(frage);
	for (var i=iStart+1; i<=iStop; i++) {
		if ((document.fb.elements[i].checked) && (document.fb.elements[i].name != what.name)) {
			if (document.fb.elements[i].value == "1") { errorflag = true; break; }
			if (document.fb.elements[i].value == "2") { errorflag = true; break; }
		}
		if (document.fb.elements[i].value == "2") { i+=2 }
	}
	if (errorflag) { resetRadio(what); }
}


function checkValues(frage, fbnum) {
	var isok = true;
	var num1 = 0;
	var num2 = 0;
	var numx = 0;

	setStartStop(frage);

	var elemValue = "";
	for ( var i=iStart; i<=iStop; i++) {
		if (document.fb.elements[i].checked) {
			elemValue = document.fb.elements[i].value;
			if (elemValue == "1") { num1++; }
			if (elemValue == "2") { num2++; }
			if (elemValue == "-2") { numx++; }
		}
	}

	if ( fbnum != 2 ) { frage += 10; }

	var astr = "Fout in vraag " + frage + ":\r";
	if ( num1 >= 3 ) { alert(astr + "te vaak 1 Punt gegeven!"); isok=false;}
	if ( num2 >= 2 ) { alert(astr + "te vaak 2 Punten gegeven!"); isok=false;}
	if ( numx >= 2 ) { alert(astr + "te vaak een X gegeven!"); isok=false;}
	if ( (numx == 0) && (num1 == 0) && (num2 == 0)) { alert(astr + "Per vraag moet er tenminste 1 punt worden gegeven!"); isok=false;}

	return(isok);

}


function ergebnis(fbnum) {
	var bool = false;
	var numf = 0;
	var nume = 0;
	var numw = 0;
	var numl = 0;


	for (var i=1; i<=10; i++) {
		bool = checkValues(i, fbnum);
		if (bool == false) { break;	}
	}

	if (bool) {
		var elemName = "";
		for (var i=0; i<=iStop; i++) {
			if (document.fb.elements[i].checked) {
				elemName = document.fb.elements[i].name;
				elemValue = parseInt(document.fb.elements[i].value);
				if (elemName.charAt(0) == "f") { numf += elemValue; }
				if (elemName.charAt(0) == "e") { nume += elemValue; }
				if (elemName.charAt(0) == "w") { numw += elemValue; }
				if (elemName.charAt(0) == "l") { numl += elemValue; }
			}
		}
		f += numf;	e += nume;	w += numw; l += numl;

		var astr = "";
		if (fbnum == "") {
			astr += "./ergebnis.htm?";
		} else {
			astr += "./fragebogen" + fbnum + ".htm?";
		}

		astr += "f=" + f + ";" + "w=" + w + ";" + "l=" + l + ";" + "e=" + e + ";";
		location = astr;
	}
}

/**
 * checkBeforeSubmit
 * This function checks which awnsers where given,
 * and alerts if the point total is larger then 2 or there is more then 1 X of if no points where given at all.
 */
function checkBeforeSubmit()
{
	var inputs = document.getElementsByTagName('input');
	
	var points = 0;
	var xes = 0;
	
	for( var index = 0; index < inputs.length; index++ )
	{
		if( inputs[ index ].type == 'radio' && inputs[ index ].checked )
		{
			if( inputs[ index ].value == 1 )
			{
				points++;
			}
			else if( inputs[ index ].value == 2 )
			{
				points += 2;
			}
			else if( inputs[ index ].value == -2 )
			{
				xes++;
			}
		}
	}
	
	if( points == 0 )
	{
		alert('Per vraag moet minimaal 1 punt worden toegekent.');
		return false;
	}
	else if( points > 2 )
	{
		alert('Per vraag mogen maximaal 2 punten worden toegekent.');
		return false;		
	}
	else if( xes > 1 )
	{
		alert('Per vraag max maximaal 1 X worden toegekent.');
		return false;
	}
	return true;
}
