
fini = false
reussis=0;

var current = null;

var id, id2, id3;

var duree=120000;  // 2 minutes
var stduree="2 minutes";

function nouvelle() {
	arrete();
	id = setTimeout("stop();",duree);
	fini = false;
	reussis=0;
	choix();
	drestant=duree/1000;
	id2=setInterval("scrute()",500);
	id3=setInterval("decroit()",1000);
	document.getElementById("reussi").innerHTML="Réponses trouvées : "+reussis;
	document.getElementById("reste").innerHTML="Temps restant : "+drestant + " s";
}
function decroit() {
	if(drestant>0) drestant--;
	document.getElementById("reste").innerHTML="Temps restant : "+drestant + " s";
}

function arrete() {
	clearInterval(id3);
        clearInterval(id2);
        clearTimeout(id);
        fini = true;
	document.getElementById("result").innerHTML="";
	document.getElementById("reponse").innerHTML="";
	document.getElementById("question").innerHTML='Pour commencer, cliquez sur [<span style="color:#f00;cursor:pointer;" onclick="nouvelle()">autre test</span>]'
}
function stop() {
//alert("stop")
	clearInterval(id3);
	clearInterval(id2);
	clearTimeout(id);
	fini = true;
	if(current)
		document.getElementById("reponse").innerHTML=current.rep;
	var s = "Le nombre de réponses trouvées en "+stduree+" est "+reussis+"<br />"
	if(reussis>0)
		s+= "la durée moyenne par calcul est donc de "+(Math.round(duree/reussis)/1000)+" secondes"
	s += ".<br />"
	document.getElementById("result").innerHTML=s;
	reussis=0
	currrent=null;
}


function scrute(v) {
//alert("scrute")
	if(fini) 
		return;
	if(!current)
		choix();
	var t = document.frm.t.value;
	t = t.replace(/\s+/g,"");
	
	if(t.search(/[^0-9\s]/g)>=0) {
		suite();
		return;
	}
	if(parseInt(t)==current.sol) {
		reussis++;
		document.getElementById("reponse").innerHTML=current.rep;
		document.getElementById("reussi").innerHTML="Réponses trouvées : "+reussis;
		suite();
	}
	document.frm.t.focus();
}
function suite() {
	if(fini) {
		return;
	}
	if(current != null) 
		document.getElementById("reponse").innerHTML=current.rep;
	choix();
	if(current)
		document.getElementById("question").innerHTML=current.s;
}

var maxi=12
function choix() {
	var a, b, c, u, v, s,sol,rep, sp=0;
		var opmax;
		for(var i=0; i<4; i++) {
			if(document.frm0.op[i].checked) {
				opmax=3*i+3;
				break;
			}
		}
		var op=Math.floor(opmax*Math.random());
		var tb=[10,20,50,100,500,1000];
		var imax
		for(var i=0; i<6; i++) {
			if(document.frm0.mx[i].checked) {
				imax=tb[i];
				break;
			}
		}
		if(op>5) sp=1;
		if(op<6)
			m=imax
		else
			m=Math.sqrt(2*imax);
		u = sp+Math.floor(m*Math.random());
		v = sp+Math.floor(m*Math.random());
		switch(op) {
		case 0:  // addition   a + b = (c)    a+b=c a=u b=v c=u+v
			a=u; b=v; c=u+v;
			s=a+" + "+b+" = ?";
			sol=c;
			rep=a+" + "+b+" = "+c
			break;
                case 1:  // addition   a + (b) = c    a+b=c a=u b=v c=u+v
                        a=u; b=v; c=u+v;
                        s=a+" + ? = "+c;
                        sol=b;
                        rep=a+" + "+b+" = "+c
                        break;
                case 2:  // addition   (a) + b = c    a+b=c a=u b=v c=u+v
                        a=u; b=v; c=u+v;
                        s="? + "+b+" = "+c;
                        sol=a;
                        rep=a+" + "+b+" = "+c
                        break;

		case 3: // soustraction  a - (b) = c  a=b+c  b=u c=v a=u+v
			a=u+v; b=u; c=v;
			s=a+" - ? = "+c;
			sol=b;
			rep=a+" - "+b+" = "+c
			break;
		case 4: // soustraction (a) - b = c    a=b+c  b=u c=v a=u+v
			a=u+v; b=u; c=v;
			s="? - "+b+" = "+c;
			sol=a;
			rep=a+" - "+b+" = "+c
			break;
                case 5: // soustraction a - b = (c)    a=b+c  b=u c=v a=u+v
                        a=u+v; b=u; c=v;
                        s=a+" - "+b+" = ?";
                        sol=c;
                        rep=a+" - "+b+" = "+c
                        break;

		case 6: // multiplication a x b = (c)  a*b=c   a=u b=v c=u*v
			a=u; b=v; c=u*v
			s= a+" × "+b+" = ?"
			sol=c;
			rep=a+" × "+b+" = "+c
			break;
		case 7: // (a) x b = c  a*b=c   a=u b=v c=u*v
			a=u; b=v; c=u*v
			s= "? × "+b+" = "+c
			sol=a;
			rep=a+" × "+b+" = "+c
			break;
		case 8: // a x (b) = c 
			a=u; b=v; c=u*v
			s=a+" × ? = "+c
			sol=b;
			rep=a+" × "+b+" = "+c
			break;
		case 9: // division a / b = (c)  a=b*c  b=u c=v a=u*v
			a=u*v; b=u; c=v;
			s=a+" / "+b+" = ?"
			rep=a+" / "+b+" = "+c
			sol=c;
			break;	
		case 10: // division a / (b) = c  a=b*c  b=u c=v a=u*v
			a=u*v; b=u; c=v;
			s=a+" / ? = "+ c
			sol=b;
			rep=a+" / "+b+" = "+c
			break;
		case 11: // division (a) / b = c  a=b*c b=u c=v
			a=u*v; b=u; c=v;
			s="? / "+b+" = "+c
			rep=a+" / "+b+" = "+c
			sol=a;
			break;
		default :
		break; 
		}
		document.frm.t.value="";
		document.getElementById("question").innerHTML=s;
		document.frm.t.focus();
		current =  {a : a, b : b, c : c, s : s, sol : sol, rep : rep};
		//alert(current.s)
}

function setduree(x) {
	x = parseInt(x);
	if(x==1) {
		duree=60000;stduree='1 minute';
        } else if(x>1) {
		duree=x*60000;stduree=x+' minutes';
        } 
	nouvelle();
}


