/////////////////////////// ALGEMENE ROUTINES  //////////////////////////////////////////////
function KiesUit(onder,boven)
{
var verschil = boven - onder;
var toeval = onder + verschil * Math.random();
var geheel = Math.round(toeval);
return geheel
};

function WelNiet()
{
var t;
if (Math.random() > 0.5) t =""  ;
	 else t="niet";
return t
}

function RondAf(x,a)	
{
var p =Math.abs(a)		
var g= Math.pow(10,p);g=Math.round(g);
var y;
if (a>=0) y = Math.round(x/g)*g;	// afronden op tientalen etc
		 else y= Math.round(x*g)/g ;	// afronden op tienden etc
return y
}

function AfrondInstructie(d)
{
var t="Rond (zo nodig) af op ";
if (d==0) t +="een heel getal.";
	else if (d==1) t += d +" decimaal.";
		else if (d>1) t += d +" decimalen.";
			else t="Rond verstandig af. "
if  (bt) t+=" Je kunt ook antwoorden als 3/7 geven.";
return t
}


function Gelijk(a,b) 
{
var k= -da;
var m=0.5*Math.pow(10,k);
var v = Math.abs(a-b);
if  (v <= m) return true;
	 else return false;
}

function Ongeveer(a,b,f)
{
var k= -da;
var m=f*Math.pow(10,k);
var v = Math.abs(a-b);
if  (v <= m) return true;
	 else return false;
}

function Tabel(c)
{
var t="<table align='center'>"+c+"</table>";
return t
}

function TK(c)
{
var t="<th>"+c+"</th>";
return t
}

function TR(c)
{
var t="<tr>"+c+"</tr>";
return t
}

function TC(c)
{
var t="<td>"+c+"</td>";
return t
}



feedbackAntwoord = new Array();
gegAntwoord = new Array();
juistAntwoord = new Array();
statusOpgave = new Array();

juistAntwoord[0]='juist antwoord';
gegAntwoord[0]='jouw antwoord' ; 
statusOpgave[0]='status';

for (i=1; i <= ao; i++)
	{statusOpgave[i] = 'niet gemaakt';
	gegAntwoord[i]='-' ; 
	juistAntwoord[i]='?';
	}	 ;

function Invoer()
{
document.getElementById('antw').focus();
if (document.all) document.formulier.antwoord.focus();
}

function VerVang(i,k)
{
document.getElementById(i).innerHTML=k
}

function Opgave(n)
{
var t =opgaveTitel[n];
VerVang('opgnr',t) ;
var o =opgaveData[n];
VerVang('vraag',o) ;
var i="Typ hieronder je antwoord";
VerVang('instructie',i);
var o ="ReActie("+n+")";
var s=10;
var k="Dit  is mijn antwoord";	
var f="<input type='text'  name='antwoord' id='antw'  value=''  size=' "+s+"'>" +
"<input type='button'  id='knop' value='"+k+ "' onclick=' "+o+"'> ";
VerVang('form',f);
VerVang('feedback','' );
GeefTijd();
Invoer();
}

function ZoietsAls(a,b,c,d,e)
{
var t;
var w = KiesUit(1,5);
if (w==1) t = a;	
if (w==2) t = b;
if (w==3) t = c;
if (w==4) t = d;
	else t = e;
return t
}

function Strip(tekst,teken)
{
var s='';
for (i=0;i<tekst.length;i++) 
	{
	var c=tekst.charAt(i);
	if (c != teken) s+=c;	
	};
return s
}


function ReactieEnter()
{
var b='Gebruik de knop !<br/>Niet de Enter-toets';
VerVang('feedback',b)
}

function ReActie0()
{ 
var a = document.getElementById('antw').value;
a =Strip(a,' '); // spaties eruit  
var b=' ';
if  (a.length <2) b = 'Wel wat (meer) invullen graag!' ;
else	{
	VerVang('leerling',a)
	Knoppen();
	ResetTijd();
	Opgave1();
	}
VerVang('feedback',b)
}

function ReActie(n)
{
st='fout';fb='nee, dat klopt niet';
an = document.getElementById('antw').value;  //globale variabele
gegAntwoord[n] =an;
an =Strip(an,' '); // spaties eruit
an =an.replace(',','.') ; // komma vervangen door punt
if  (bt) an=eval(an) // eventueel expressie evalueren
if (an.length<1) {st='niets'; fb='<b>Niets ingevuld !</b>'}
	else if  (isNaN(an)) {st='onleesbaar'; fb='<b>Niet te lezen !</b>'}
		else Corrigeer(n); 	// beïnvloedt  globale variabelen ja, st en fb
juistAntwoord[n]=RondAf(ja,-da);	// Het juist afgeronde antwoord wordt bewaard
statusOpgave[n]=st;
if (st=='ok') fb=ZoietsAls('in orde','Dat klopt','prima','goed gedaan','OK')
else  if (st=='bijna' ) fb="in de buurt !<br/>Goed afgerond ?"
VerVang('feedback',fb);
var i='opg'+n;
if (st == 'ok' ) 
	{ document.getElementById(i).disabled=true; Volgende()}
	else Invoer();
GeefTijd();
}	

function Corrigeer(n)
{
eval('Corrigeer'+n+'()');
}

function Volgende()
{
var a;
var g= false;
var i=1;
while (!g&& i<=ao)
	{
	if (statusOpgave[i] == 'ok')  i++
		else g=true;
	}
if (g) a = eval('Opgave'+i+'()')
	else a = Overzicht();
return a
}

function Code()
{ 
var s="0123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz" ;
var c=''
var k;
for (i=1; i <= ao; i++)
	{
	if (statusOpgave[i] == 'ok') k=KiesUit(4,33)
		else k= KiesUit(35,55);
	c+= s.charAt(k);
	}
c +=mn;
return c;
}


	
function Overzicht()
{
VerVang('opgnr','overzicht') ;
var n,o;
o='<table>'
for (n=0; n <=ao; n++)
{
o+='<tr>';
o+='<td>'+opgaveTitel[n]+ '<td>';
o+='<td>'+statusOpgave[n]+ '<td>';
o+='<td>'+gegAntwoord[n]+ '<td>';
o+='<td>'+juistAntwoord[n]+ '<td>';
o+='</tr>';
}
o +='</table>';
o +='Je code is <b>'+Code()+'</b>';
VerVang('vraag',o) ;
var i="Klik op de knop om de test nog eens te doen";
VerVang('instructie',i);
var a ='window.location.reload()';
var s=1;	// eigenlijk 0 maar dat geeft problemen
var k='Nog eens deze toets';	
var f="<input type='text'  name='antwoord' id='antw'  value=''  size=' "+s+"'>" +
"<input type='button'  id='knop' value='"+k+ "' onclick=' "+a+"'> ";
VerVang('form',f);
VerVang('feedback','' );

}

function Knoppen()
{
knoppenrij='';
var n;
for (n=1; n <=ao; n++)
	{
	knoppenrij += "<input  type='button' id='opg" +n+"'  value='Opg. "+n+"'  input onclick ='Opgave"+n+"()'  enabled />";
	};
knoppenrij += "<br/> <input  type='button' id='ovz'  value='Overzicht'   input onclick ='Overzicht()'  enabled / <br/> "
VerVang('rijknoppen',knoppenrij);
}

function GeefTijd()
{
Datum = new Date();
var s =Math.floor((Datum.getTime()-begintijd)/1000);
mn= Math.floor(s/60);
s=s - 60*mn;
if (s<10) s="0"+s;
t=mn+":"+s;
VerVang('tijd', t);
}


function ResetTijd()
{
Datum = new Date();
begintijd = Datum.getTime()
VerVang('tijd','0:00');
}


