//Script de vérification de réponses créé par Marc-André Gardner
//Reproduction interdite
//De toute manière, tous les scripts de calculs et de génération de question sont du côté-serveur...
//Ces scripts comparent seulement la réponse de l'élève à celle du serveur
//Donc ne vous fatiguez pas pour rien...

var mathou_img = new Array();
mathou_img[0] = new Image();
mathou_img[0].src = "mathou_v1_triste.gif";
mathou_img[1] = new Image();
mathou_img[1].src = "mathou_v1_horrifie.gif";
mathou_img[2] = new Image();
mathou_img[2].src = "mathou_v1_fache.gif";
mathou_img[3] = new Image();
mathou_img[3].src = "mathou_v1_victoire.gif";
mathou_img[4] = new Image();
mathou_img[4].src = "mathou_v1_superheros.gif";

var controles_popup = '<h3><a href="javascript:void(0)" onclick="document.getElementById(\'float_popup\').style.visibility=\'hidden\'; document.getElementById(\'float_popup\').innerHTML=\'\'">Fermer la fen&ecirc;tre de r&eacute;ponse</a></h3>';

//Fonction affichant le "pop-up" javascript
function affiche_popup(bon_ou_mauvais,explique){
	var texte_popup = "";
	
	var stats = (document.forms['form_stats'].stats.value).split("-");
	if(document.forms['form_stats'].stats.value == ""){
		stats[0] = 0;
		stats[1] = 0;
		}
	
	if(bon_ou_mauvais == 1){ // A CHANGER PAR LE MATHOU CONTENT
		texte_popup += '<img src="mathou_v1_victoire.gif" width="160" height="218" alt="F&eacute;licitations!" style="float:left" />';
		}
	else if(bon_ou_mauvais == 2){
		texte_popup += '<img src="mathou_v1_victoire.gif" width="160" height="218" alt="Mille fois bravo!" style="float:left" />';
		}
	else if(bon_ou_mauvais == 3){
		texte_popup += '<img src="mathou_v1_superheros.gif" width="160" height="224" alt="Wow! Toutes mes f&eacute;licitations!" style="float:left" />';
		}
	else if(bon_ou_mauvais == 0){
		texte_popup += '<img src="mathou_v1_triste.gif" width="160" height="220" alt="C\'&eacute;tais bien pr&egrave;s de la r&eacute;ponse..." style="float:left" />';
		}
	else if(bon_ou_mauvais == -1){
		texte_popup += '<img src="mathou_v1_fache.gif" width="160" height="244" alt="Tu aurais tout de m&ecirc;me pu te forcer un peu!" style="float:left" />';
		}
	else if(bon_ou_mauvais == -2){
		texte_popup += '<img src="mathou_v1_horrifie.gif" width="160" height="229" alt="Qu\'est-ce que c\'est que &ccedil;a?!? J\'aurais fait mieux sans voir la question!" style="float:left" />';
		}
		
	if(bon_ou_mauvais >= 1){
		//Bonne réponse
		texte_popup += "\n<h1>Bonne r&eacute;ponse!</h1>";
		stats[0]++;
		}
	else{
		//Mauvaise réponse
		texte_popup += "\n<h1>Mauvaise r&eacute;ponse!</h1>";
		stats[1]++;
		}
	
	//Calcul de la position centrée
	document.getElementById("float_popup").style.left = screen.width/2-264+"px";
	
	texte_popup += "<h4>"+explique+"</h4>";
	document.getElementById("float_popup").innerHTML = texte_popup;
	document.getElementById("float_popup").innerHTML += "<h4>Sur cet exercice, vous avez "+stats[0]+" bonnes r&eacute;ponses et "+stats[1]+" mauvaises r&eacute;ponses, soit une note de "+Math.round(Number(stats[0])/(Number(stats[1])+Number(stats[0]))*100)+"%</h4>";
	document.getElementById("float_popup").innerHTML += controles_popup;
	
	document.getElementById("float_popup").style.visibility = 'visible';
	
	document.forms['form_stats'].stats.value = stats.join("-");
	if(bon_ou_mauvais >= 1){
		//Bonne réponse	
		if(document.all){
			document.embeds['ohyeah'].play();
			setTimeout("document.embeds['ohyeah'].stop()",18100);
			}
		else{
			document.getElementById("float_popup").innerHTML += '<embed src="sons_exercices/yeah.wav" width="0" height="0" autostart="true" name="ohyeah_pop" loop="false" hidden="1" style="visibility:hidden" />';
			setTimeout("document.getElementById('float_popup').innerHTML = texte_popup+'<h4>Sur cet exercice, vous avez '+stats[0]+' bonnes r&eacute;ponses et '+stats[1]+' mauvaises r&eacute;ponses, soit une note de '+Math.round(Number(stats[0])/(Number(stats[1])+Number(stats[0]))*100)+'%</h4>'+controles_popup",18100);
			}
		}
	else{
		//Mauvaise réponse
		if(document.all){
			document.embeds['boo'].play();
			setTimeout("document.embeds['boo'].stop()",7050);
			}
		else{
			document.getElementById("float_popup").innerHTML += '<embed src="sons_exercices/boo.wav" width="0" height="0" autostart="true" name="ohyeah_pop" loop="false" hidden="1" style="visibility:hidden" />';
			setTimeout("document.getElementById('float_popup').innerHTML = texte_popup+'<h4>Sur cet exercice, vous avez '+stats[0]+' bonnes r&eacute;ponses et '+stats[1]+' mauvaises r&eacute;ponses, soit une note de '+Math.round(Number(stats[0])/(Number(stats[1])+Number(stats[0]))*100)+'%</h4>'+controles_popup",18100);
			}
		}
	}

function verif_rep1(){
	//Trouver la valeur d'une fonction linéaire, "val_fonction.php", ainsi que distance d'un point à un autre, dist_point_point.php
	var rep_eleve = (document.forms['form_rep'].rep_eleve.value).replace(",",".");
	var exp_reg = new RegExp("^[0-9\.-]+$","g");
	
	if(rep_eleve == ""){
		alert("Veuillez écrire une réponse SVP...");
		return false;
		}
	else if(!exp_reg.test(rep_eleve)){
		alert("Votre réponse n'est pas écrite dans un format correct -- des lettres sont présentes.");
		return false;
		}
	
	var mult_10_precision = Math.pow(10,precision_rep);
	
	if(Math.round(rep_eleve * mult_10_precision)/mult_10_precision == Math.round(rep_server * mult_10_precision)/mult_10_precision){
		
		var message_envoi = "F&eacute;licitations!<br />Votre r&eacute;ponse est correcte!<br />Notez qu'elle a &eacute;t&eacute; arrondie au "+precision_rep+"<sup>e</sup> chiffre après la virgule.";
		affiche_popup(1,message_envoi);
		}
	else{
		if(rep_eleve+100<rep_server && rep_eleve<rep_server || rep_eleve-100>rep_server && rep_eleve>rep_server){
			var message_envoi = "Ouh l&agrave; l&agrave;! Je n'en crois pas mes yeux!<br />J'ai pour ma part trouv&eacute; "+rep_server+", arrondie au "+precision_rep+"<sup>e</sup> chiffre après la virgule.<br />Disons que c'&eacute;tait une erreur d'inattention et reprenez-vous!";
			affiche_popup(-2,message_envoi);
			}
		else{
			var message_envoi = "Vous avez d&ucirc; commettre une petite erreur...<br />J'ai pour ma part trouv&eacute; "+rep_server+", arrondie au "+precision_rep+"<sup>e</sup> chiffre après la virgule.";
			affiche_popup(0,message_envoi);
			}
		}
	}

function verif_rep2(){
	// Type de fonction, "func_type.php"
	var rep_eleve = document.forms['form_rep'].rep_eleve.options[document.forms['form_rep'].rep_eleve.selectedIndex].value;
	
	if(rep_eleve == rep_server){
		affiche_popup(1,"Félicitations!<br />Par mes oreilles de chats, votre réponse est correcte!");
		}
	else{
		affiche_popup(-2,"Votre réponse est fausse!<br />La fonction que j'avais dessin&eacute;e ci-dessus était une "+fausse_rep);
		}
	}

function verif_rep3(){
	//Les ensembles de nombres, "ensem_nbr.php"
	var rep_eleve = document.forms['form_rep'].rep_eleve.options[document.forms['form_rep'].rep_eleve.selectedIndex].value;
	
	if(rep_eleve == rep_server){
		affiche_popup(1,"Félicitations!<br />Par mes vibrisses, votre réponse est correcte!");
		}
	else{
		affiche_popup(0,"Votre réponse est fausse!<br />J'ai trouv&eacute; pour ma part que ce nombre &eacute;tait un "+fausse_rep);
		}
	}

function verif_rep4(){
	//Opérations sur les fractions, "frac_oper.php"
	var rep_eleve1 = document.forms['form_rep'].rep_eleve1.value;
	var rep_eleve2 = document.forms['form_rep'].rep_eleve2.value;
	
	var exp_reg = new RegExp("^[0-9\-.]+$","g");
	
	if(rep_eleve1 == "" || rep_eleve2 == ""){
		alert("Veuillez écrire une réponse SVP...");
		return false;
		}
	else if(!exp_reg.test(rep_eleve2)){
		alert("Votre réponse n'est pas écrite dans un format correct -- des lettres sont présentes.");
		return false;
		}
		
	rep_traite = eval(rep_server);
	if(Math.round(rep_eleve1/rep_eleve2 * 1000)/1000 == Math.round(rep_traite * 1000)/1000){
		affiche_popup(1,"Félicitations!<br />Par mes vibrisses, votre réponse est correcte!");
		}
	else{
		affiche_popup(0,"Hum... votre r&eacute;ponse n'est pas la m&ecirc;me que la mienne... Par mes vibrisses, je ne me trompe jamais!<br />La r&eacute;ponse que j'ai trouv&eacute; donne "+rep_traite+" en chiffres d&eacute;cimaux, alors que la votre donne "+(rep_eleve1/rep_eleve2));
		}
	}

function verif_rep5(){
	//Réduction du radicande, "radic_reduc.php"
	var rep_eleve1 = document.forms['form_rep'].rep_eleve1.value;
	var rep_eleve2 = document.forms['form_rep'].rep_eleve2.value;
	
	var exp_reg = new RegExp("^[0-9\-.]+$","g");
	
	if(rep_eleve1 == "" || rep_eleve2 == ""){
		alert("Veuillez écrire une réponse SVP...");
		return false;
		}
	else if(!exp_reg.test(rep_eleve2)){
		alert("Votre réponse n'est pas écrite dans un format correct -- des lettres sont présentes.");
		return false;
		}
	
	if(rep_server == rep_eleve1 && rep_server2 == rep_eleve2){
		affiche_popup(1,"Félicitations!<br />Par mes vibrisses, votre réponse est correcte!");
		}
	else{
		affiche_popup(0,"Hum... je ne crois pas que ce soit la bonne r&eacute;ponse...<br />La r&eacute;ponse que j'ai trouv&eacute; donne "+rep_server+" * rcarree("+rep_server2+")");
		}
	}
	
function verif_rep6(){
	//Rationnaliser le dénominateur, "den_rational.php"
	//IL Y A DES ERREURS DANS LE SCRIPT PHP
	var rep_eleve1 = document.forms['form_rep'].rep_eleve1.value;
	var rep_eleve2 = (document.forms['form_rep'].rep_eleve2) ?  document.forms['form_rep'].rep_eleve2.value : 1;
	var rep_eleve3 = document.forms['form_rep'].rep_eleve3.value;
	
	var exp_reg = new RegExp("^[0-9\-.]+$","g");
	
	if(rep_eleve1 == "" || rep_eleve2 == "" || rep_eleve3 == ""){
		alert("Veuillez écrire une réponse SVP...");
		return false;
		}
	else if(!exp_reg.test(rep_eleve2)){
		alert("Votre réponse n'est pas écrite dans un format correct -- des lettres sont présentes.");
		return false;
		}
	
	if(niv_diff == 1){
		if(rep_server == rep_eleve1 && (rep_server2 == rep_eleve2 || rep_server2 == "aucun") && rep_server3 == rep_eleve3){
			var message_envoi = "F&eacute;licitations!<br />Votre r&eacute;ponse est correcte!";
			affiche_popup(1,message_envoi);
			}
		else{
			if(rep_server2 == "aucun")
			var message_envoi = "Votre réponse est FAUSSE!<br />Le programme a identifié la bonne réponse comme étant : "+rep_server+" / "+rep_server3+".";
			else
			var message_envoi = "Votre réponse est FAUSSE!<br />Le programme a identifié la bonne réponse comme étant : "+rep_server+" * rcarree("+rep_server2+") / "+rep_server3+".";
			
			affiche_popup(0,message_envoi);
			}
		}
	else if(niv_diff == 2){
		// A FAIRE
		}
	else if(niv_diff == 3){
		// A FAIRE
		}
	}
	
function verif_rep7(){
	//Calcul de la valeur d'une fonction quadratique, "val_fonction_quad.php"
	var rep_eleve1 = (document.forms['form_rep'].rep_eleve.value).replace(",",".");
	
	if(rep_eleve1 == ""){
		alert("Veuillez écrire une réponse SVP...");
		return false;
		}
	
	var mult_pr = Math.pow(10,precision_rep);
	
	if(nbr_champs == 2){
		//On a deux champs de réponse
		var rep_eleve2 = (document.forms['form_rep'].rep_eleve2.value).replace(",",".");
		if(rep_eleve2 == ""){
			alert("Veuillez écrire une réponse SVP...");
			return false;
			}
		//On vérifie la réponse
		if(Math.round(rep_serveur*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr && Math.round(rep_serveur2*mult_pr)/mult_pr == Math.round(rep_eleve2*mult_pr)/mult_pr && Math.round(rep_serveur2*mult_pr)/mult_pr != Math.round(rep_eleve1*mult_pr)/mult_pr){
			affiche_popup(1,"F&eacute;licitations! Par mes vibrisses, vous avez la bonne r&eacute;ponse!");
			}
		else{
			affiche_popup(0,"Nos r&eacute;ponses ne sont pas &eacute;gales, et je crois bien que je calcule mieux que vous...<br />J'ai trouv&eacute; comme r&eacute;ponse X<sub>1</sub>="+(Math.round(rep_serveur*mult_pr)/mult_pr)+" ET X<sub>2</sub>="+(Math.round(rep_serveur2*mult_pr)/mult_pr));
			}
		}
	else{
	//On vérifie la réponse
	//Si c'était une réponse non réelle
	if(rep_serveur == "imp" && (rep_eleve1.toLowerCase()).indexOf("imp") != -1){
		affiche_popup(3,"F&eacute;licitations! Par mes vibrisses, cette &eacute;quation n'avait effectivement aucune solution r&eacute;elle!");
		return false;
		}
	else if(rep_serveur == "imp"){
		affiche_popup(-2,"Vous &ecirc;tes tomb&eacute;s dans mon pi&egrave;ge! Il n'existait pas de solution r&eacute;elle &agrave; cette &eacute;quation!");
		return false;
		}
		
	if(Math.round(rep_serveur*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr){
		affiche_popup(1,"F&eacute;licitations! Par mes vibrisses, vous avez la bonne r&eacute;ponse!");
		}
	else{
		if(type_rep == 1)
			affiche_popup(0,"Nos r&eacute;ponses ne sont pas &eacute;gales, et je crois bien que je calcule mieux que vous...<br />J'ai trouv&eacute; comme r&eacute;ponse f(x)="+(Math.round(rep_serveur*mult_pr)/mult_pr));
		else
			affiche_popup(0,"Nos r&eacute;ponses ne sont pas &eacute;gales, et je crois bien que je calcule mieux que vous...<br />J'ai trouv&eacute; comme r&eacute;ponse X="+(Math.round(rep_serveur*mult_pr)/mult_pr));
		}
	}
	}

function verif_rep8(){
	//Valeur dans une parabole, "parabole_infos.php"
	var rep_eleve_h = (document.forms['form_rep'].rep_eleve_h.value).replace(",",".");
	var rep_eleve_k = (document.forms['form_rep'].rep_eleve_k.value).replace(",",".");
	var rep_eleve_x1 = (document.forms['form_rep'].rep_eleve_x1.value).replace(",",".");
	var rep_eleve_x2 = (document.forms['form_rep'].rep_eleve_x2.value).replace(",",".");
	
	if(rep_eleve_h == "" || rep_eleve_k == "" || rep_eleve_x1 == "" || rep_eleve_x2 == ""){
		alert("Veuillez écrire toutes les réponses demandées SVP...");
		return false;
		}
	
	var mult_pr = Math.pow(10,precision_rep);
	
	//On vérifie la réponse
	//Si c'était une réponse non réelle
	if(Math.round(rep_serveur_h*mult_pr)/mult_pr == Math.round(rep_eleve_h*mult_pr)/mult_pr && Math.round(rep_serveur_k*mult_pr)/mult_pr == Math.round(rep_eleve_k*mult_pr)/mult_pr){
		var msg_sommet = "Vos coordonnées de sommet sont correctes!";
		var temp_statut_mathou = 1;
		}
	else{
		var msg_sommet = "l'une ou vos deux coordonnées de sommet sont FAUSSE(S). J'ai identifi&eacute; h et k comme ayant les valeurs suivantes :<br /> h = "+(Math.round(rep_serveur_h*mult_pr)/mult_pr)+" et k = "+(Math.round(rep_serveur_k*mult_pr)/mult_pr);
		var temp_statut_mathou = 0;
		}
		
	if(rep_serveur_x1 == "imp" && (rep_eleve_x1.toLowerCase()).indexOf("imp") != -1 && (rep_eleve_x2.toLowerCase()).indexOf("imp") != -1){
		if(temp_statut_mathou == 1){
			var message_envoi = "Toutes mes f&eacute;licitations! Par mes vibrisses, cette &eacute;quation n'admettait effectivement pas de solution r&eacute;elle (elle n'a donc pas de z&eacute;ros)!<br />De plus, votre sommet est correctement d&eacute;fini!<br />Chapeau, ma&icirc;tre!";
			affiche_popup(3,message_envoi);
			}
		else{
			var message_envoi = "Quel dommage! Par mes vibrisses, cette &eacute;quation n'admettait effectivement pas de solution r&eacute;elle (elle n'a donc pas de z&eacute;ros)!<br />Mais "+$msg_sommet+"<br />Dommage...";
			affiche_popup(0,message_envoi);
			}
		return false;
		}
	else if(rep_serveur_x1 == "imp"){
		if(temp_statut_mathou == 1){
			var message_envoi = "Dommage... Par mes vibrisses, vous y &eacute;tiez presque!<br />Vos coordonn&eacute;es du sommet &eacute;taient correctes, mais malheureusement, cette fonction n'avait pas de z&eacute;ros r&eacute;els (vous deviez &eacute;crire 'imp' dans les champs de r&eacute;ponse)...";
			affiche_popup(0,message_envoi);
			}
		else{
			var message_envoi = "Avez-vous fait expr&egrave;s pour tout faire de travers, ou n'est-ce qu'une petite faute d'innattention bien normale?<br />Vos coordonn&eacute;s du sommet ne sont pas correctes (les bonnes coordonn&eacute;es &eacute;taient h = "+(Math.round(rep_serveur_h*mult_pr)/mult_pr)+" et k = "+(Math.round(rep_serveur_k*mult_pr)/mult_pr)+") et la fonction n'admettait pas de z&eacute;ros r&eacute;els (vous deviez &eacute;crire 'imp' dans les champs de r&eacute;ponse)...<br />Reprenez-vous!";
			affiche_popup(-2,message_envoi);
			}
		return false;
		}
		
	if(Math.round(rep_serveur_x1*mult_pr)/mult_pr == Math.round(rep_eleve_x1*mult_pr)/mult_pr && (Math.round(rep_serveur_x2*mult_pr)/mult_pr == Math.round(rep_eleve_x2*mult_pr)/mult_pr || Math.round(rep_serveur_x2*mult_pr)/mult_pr == Math.round(rep_eleve_x1*mult_pr)/mult_pr)){
		if(temp_statut_mathou == 1){
			var message_envoi = "Toutes mes f&eacute;licitations! Par mes vibrisses, vous avez les bons z&eacute;ros!<br />De plus, votre sommet est correctement d&eacute;fini!<br />Chapeau, ma&icirc;tre!";
			affiche_popup(3,message_envoi);
			}
		else{
			var message_envoi = "Quel dommage! Par mes vibrisses, cette &eacute;quation avait effectivement les z&eacute;ros que vous avez donn&eacute;s!<br />Mais "+$msg_sommet+"<br />Dommage...";
			affiche_popup(0,message_envoi);
			}
		}
	else{
		if(temp_statut_mathou == 1){
			var message_envoi = "Dommage... Par mes vibrisses, vous y &eacute;tiez presque!<br />Vos coordonn&eacute;es du sommet &eacute;taient correctes, mais malheureusement, vos z&eacute;ros non (les bons z&eacute;ros &eacute;taient X<sub>1</sub>="+(Math.round(rep_serveur_x1*mult_pr)/mult_pr)+" ET X<sub>2</sub>="+(Math.round(rep_serveur_x2*mult_pr)/mult_pr)+")...";
			affiche_popup(0,message_envoi);
			}
		else{
			var message_envoi = "Avez-vous fait expr&egrave;s pour tout faire de travers, ou n'est-ce qu'une petite faute d'innattention bien normale?<br />Vos coordonn&eacute;s du sommet ne sont pas correctes (les bonnes coordonn&eacute;es &eacute;taient h = "+(Math.round(rep_serveur_h*mult_pr)/mult_pr)+" et k = "+(Math.round(rep_serveur_k*mult_pr)/mult_pr)+") et les z&eacute;ros de la fonction &eacute;taient X<sub>1</sub>="+(Math.round(rep_serveur_x1*mult_pr)/mult_pr)+" ET X<sub>2</sub>="+(Math.round(rep_serveur_x2*mult_pr)/mult_pr)+"...<br />Reprenez-vous!";
			affiche_popup(-2,message_envoi);
			}
		}
	}

function verif_rep9(){
	//Transformation de la règle d'une parabole, "transform_parabole.php"
	var mult_pr = Math.pow(10,precision_rep);
	if(type_rep == 2){
		//Réponse en générale
		var rep_eleve1 = (document.forms['form_rep'].rep_eleve1.value).replace(",",".");
		var rep_eleve2 = (document.forms['form_rep'].rep_eleve2.value).replace(",",".");
		var rep_eleve3 = (document.forms['form_rep'].rep_eleve3.value).replace(",",".");
		
		if(rep_eleve1 == "" || rep_eleve2 == "" || rep_eleve3 == ""){
			alert("Veuillez remplir tous les champs de réponse SVP...");
			return false;
			}
		
		if(Math.round(rep_serveur_a*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr && Math.round(rep_serveur_b*mult_pr)/mult_pr == Math.round(rep_eleve2*mult_pr)/mult_pr && Math.round(rep_serveur_c*mult_pr)/mult_pr == Math.round(rep_eleve3*mult_pr)/mult_pr){
			affiche_popup(1,"F&eacute;licitations! Par mes vibrisses, vous avez la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Oups... Une ou plusieurs de vos r&eacute;ponses est(sont) fausse(s)! Voici la r&egrave;gle g&eacute;n&eacute;rale de la fonction que j'ai trouv&eacute;e :<br /> f(x) = "+(Math.round(rep_serveur_a*mult_pr)/mult_pr)+"x<sup>2</sup> + "+(Math.round(rep_serveur_b*mult_pr)/mult_pr)+"x + "+(Math.round(rep_serveur_c*mult_pr)/mult_pr));
			return false;
			}
		}
	else if(type_rep == 3){
		//Réponse en canonique
		var rep_eleve1 = (document.forms['form_rep'].rep_eleve1.value).replace(",",".");
		var rep_eleve2 = (document.forms['form_rep'].rep_eleve2.value).replace(",",".");
		var rep_eleve3 = (document.forms['form_rep'].rep_eleve3.value).replace(",",".");
		
		if(rep_eleve1 == "" || rep_eleve2 == "" || rep_eleve3 == ""){
			alert("Veuillez remplir tous les champs de réponse SVP...");
			return false;
			}
		if(Math.round(rep_serveur_a*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr && Math.round(rep_serveur_h*mult_pr)/mult_pr == Math.round(rep_eleve2*mult_pr)/mult_pr && Math.round(rep_serveur_k*mult_pr)/mult_pr == Math.round(rep_eleve3*mult_pr)/mult_pr){
			affiche_popup(1,"F&eacute;licitations! Par mes vibrisses, vous avez la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Oups... Une ou plusieurs de vos r&eacute;ponses est(sont) fausse(s)! Voici la r&egrave;gle canonique de la fonction que j'ai trouv&eacute;e :<br /> f(x) = "+(Math.round(rep_serveur_a*mult_pr)/mult_pr)+"(x - "+(Math.round(rep_serveur_h*mult_pr)/mult_pr)+")<sup>2</sup> + "+(Math.round(rep_serveur_k*mult_pr)/mult_pr));
			return false;
			}
		}
	else if(type_rep == 4){
		//Réponse avec les zéros
		var rep_eleve1 = (document.forms['form_rep'].rep_eleve1.value).replace(",",".");
		var rep_eleve2 = (document.forms['form_rep'].rep_eleve2.value).replace(",",".");
		var rep_eleve3 = (document.forms['form_rep'].rep_eleve3.value).replace(",",".");
		
		if(rep_eleve1 == "" || rep_eleve2 == "" || rep_eleve3 == ""){
			alert("Veuillez remplir tous les champs de réponse SVP...");
			return false;
			}
		if(rep_serveur_x2 == 'idem')
			rep_serveur_x2 = rep_serveur_x1;
		
		//Si les zéros sont impossibles
		if(rep_serveur_x1 == 'imp' && rep_eleve2 == "imp" && rep_eleve3 == "imp"){
			affiche_popup(1,"F&eacute;licitations! Par mes vibrisses, cette fonction ne peut effectivement pas &ecirc;tre &eacute;crite sous cette forme car elle n'a pas de z&eacute;ros!");
			return false;
			}
		else if(rep_serveur_x1 == 'imp'){
			affiche_popup(-2,"Vous &ecirc;tes tomb&eacute;s dans mon pi&egrave;ge! Cette fonction ne peut être repr&eacute;sent&eacute;e sous sa forme avec les z&eacute;ros, car elle n'en poss&egrave;de pas dans les r&eacute;els!");
			return false;
			}
			
		if(Math.round(rep_serveur_a*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr && Math.round(rep_serveur_x1*mult_pr)/mult_pr == Math.round(rep_eleve2*mult_pr)/mult_pr && Math.round(rep_serveur_x2*mult_pr)/mult_pr == Math.round(rep_eleve3*mult_pr)/mult_pr){
			affiche_popup(1,"F&eacute;licitations! Par mes vibrisses, vous avez la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Oups... Une ou plusieurs de vos r&eacute;ponses est(sont) fausse(s)! Voici la r&egrave;gle avec les z&eacute;ros de la fonction que j'ai trouv&eacute;e :<br /> f(x) = "+(Math.round(rep_serveur_a*mult_pr)/mult_pr)+"(x - "+(Math.round(rep_serveur_x1*mult_pr)/mult_pr)+")(x - "+(Math.round(rep_serveur_x2*mult_pr)/mult_pr)+")");
			return false;
			}
		}
	else{
		//Réponse sous la forme a(x²-Sx+P)
		var rep_eleve1 = (document.forms['form_rep'].rep_eleve1.value).replace(",",".");
		var rep_eleve2 = (document.forms['form_rep'].rep_eleve2.value).replace(",",".");
		var rep_eleve3 = (document.forms['form_rep'].rep_eleve3.value).replace(",",".");
		
		if(rep_eleve1 == "" || rep_eleve2 == "" || rep_eleve3 == ""){
			alert("Veuillez remplir tous les champs de réponse SVP...");
			return false;
			}
		
		//Si les zéros sont impossibles
		if(rep_serveur_s == 'imp' && rep_eleve2 == "imp"){
			affiche_popup(1,"F&eacute;licitations! Par mes moustaches, cette fonction ne peut effectivement pas &ecirc;tre &eacute;crite sous cette forme car elle n'a pas de z&eacute;ros!");
			return false;
			}
		else if(rep_serveur_s == 'imp'){
			affiche_popup(-2,"Vous &ecirc;tes tomb&eacute;s dans mon pi&egrave;ge! Cette fonction ne peut être repr&eacute;sent&eacute;e sous sa forme avec les z&eacute;ros, car elle n'en poss&egrave;de pas dans les r&eacute;els!");
			return false;
			}
			
		if(Math.round(rep_serveur_a*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr && Math.round(rep_serveur_s*mult_pr)/mult_pr == Math.round(rep_eleve2*mult_pr)/mult_pr && Math.round(rep_serveur_p*mult_pr)/mult_pr == Math.round(rep_eleve3*mult_pr)/mult_pr){
			affiche_popup(1,"F&eacute;licitations! Par mes vibrisses, vous avez la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Oups... Une ou plusieurs de vos r&eacute;ponses est(sont) fausse(s)! Voici la r&egrave;gle avec le somme/produit des z&eacute;ros de la fonction que j'ai trouv&eacute;e :<br /> f(x) = "+(Math.round(rep_serveur_a*mult_pr)/mult_pr)+"(x<sup>2</sup> - "+(Math.round(rep_serveur_s*mult_pr)/mult_pr)+"x + "+(Math.round(rep_serveur_p*mult_pr)/mult_pr)+")");
			return false;
			}
		}
	}

function verif_rep10(){
	//Recherche de la règle d'une quadratique, "recherche_quad.php"
	var mult_pr = Math.pow(10,precision_rep);
	if(type_rep == 2){
		//Réponse en générale
		var rep_eleve1 = (document.forms['form_rep'].rep_eleve1.value).replace(",",".");
		var rep_eleve2 = (document.forms['form_rep'].rep_eleve2.value).replace(",",".");
		var rep_eleve3 = (document.forms['form_rep'].rep_eleve3.value).replace(",",".");
		
		if(rep_eleve1 == "" || rep_eleve2 == "" || rep_eleve3 == ""){
			alert("Veuillez remplir tous les champs de réponse SVP...");
			return false;
			}
		
		if(Math.round(rep_serveur_a*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr && Math.round(rep_serveur_b*mult_pr)/mult_pr == Math.round(rep_eleve2*mult_pr)/mult_pr && Math.round(rep_serveur_c*mult_pr)/mult_pr == Math.round(rep_eleve3*mult_pr)/mult_pr){
			affiche_popup(1,"F&eacute;licitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Oups... je crois que vous avez fait une ou plusieurs erreurs! Voici la règle générale de la fonction que j'ai trouv&eacute;e :<br />f(x) = "+(Math.round(rep_serveur_a*mult_pr)/mult_pr)+"x<sup>2</sup> + "+(Math.round(rep_serveur_b*mult_pr)/mult_pr)+"x + "+(Math.round(rep_serveur_c*mult_pr)/mult_pr));
			return false;
			}
		}
	else if(type_rep == 3){
		//Réponse en canonique
		var rep_eleve1 = (document.forms['form_rep'].rep_eleve1.value).replace(",",".");
		var rep_eleve2 = (document.forms['form_rep'].rep_eleve2.value).replace(",",".");
		var rep_eleve3 = (document.forms['form_rep'].rep_eleve3.value).replace(",",".");
		
		if(rep_eleve1 == "" || rep_eleve2 == "" || rep_eleve3 == ""){
			alert("Veuillez remplir tous les champs de réponse SVP...");
			return false;
			}
		if(Math.round(rep_serveur_a*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr && Math.round(rep_serveur_h*mult_pr)/mult_pr == Math.round(rep_eleve2*mult_pr)/mult_pr && Math.round(rep_serveur_k*mult_pr)/mult_pr == Math.round(rep_eleve3*mult_pr)/mult_pr){
			affiche_popup(1,"F&eacute;licitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Oups... je crois que vous avez fait une ou plusieurs erreurs! Voici la r&egrave;gle canonique de la fonction que mon cerveau de chat a trouv&eacute;e :<br />f(x) = "+(Math.round(rep_serveur_a*mult_pr)/mult_pr)+"(x - "+(Math.round(rep_serveur_h*mult_pr)/mult_pr)+")<sup>2</sup> + "+(Math.round(rep_serveur_k*mult_pr)/mult_pr));
			return false;
			}
		}
	else if(type_rep == 4){
		//Réponse avec les zéros
		var rep_eleve1 = (document.forms['form_rep'].rep_eleve1.value).replace(",",".");
		var rep_eleve2 = (document.forms['form_rep'].rep_eleve2.value).replace(",",".");
		var rep_eleve3 = (document.forms['form_rep'].rep_eleve3.value).replace(",",".");
		
		if(rep_eleve1 == "" || rep_eleve2 == "" || rep_eleve3 == ""){
			alert("Veuillez remplir tous les champs de réponse SVP...");
			return false;
			}
		//Les zéros ne peuvent pas être impossibles -- le programme change la question si c'est le cas
			
		if(Math.round(rep_serveur_a*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr && Math.round(rep_serveur_x1*mult_pr)/mult_pr == Math.round(rep_eleve2*mult_pr)/mult_pr && Math.round(rep_serveur_x2*mult_pr)/mult_pr == Math.round(rep_eleve3*mult_pr)/mult_pr){
			affiche_popup(1,"F&eacute;licitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Oups... je crois que vous avez fait une ou plusieurs erreurs! Voici la r&egrave;gle avec les z&eacute;ros de la fonction que j'ai trouv&eacute;e :<br />f(x) = "+(Math.round(rep_serveur_a*mult_pr)/mult_pr)+"(x - "+(Math.round(rep_serveur_x1*mult_pr)/mult_pr)+")(x - "+(Math.round(rep_serveur_x2*mult_pr)/mult_pr)+")");
			return false;
			}
		}
	else{
		//Réponse sous la forme a(x²-Sx+P)
		var rep_eleve1 = (document.forms['form_rep'].rep_eleve1.value).replace(",",".");
		var rep_eleve2 = (document.forms['form_rep'].rep_eleve2.value).replace(",",".");
		var rep_eleve3 = (document.forms['form_rep'].rep_eleve3.value).replace(",",".");
		
		if(rep_eleve1 == "" || rep_eleve2 == "" || rep_eleve3 == ""){
			alert("Veuillez remplir tous les champs de réponse SVP...");
			return false;
			}
		//Les zéros ne peuvent pas être impossibles -- le programme change la question si c'est le cas
			
		if(Math.round(rep_serveur_a*mult_pr)/mult_pr == Math.round(rep_eleve1*mult_pr)/mult_pr && Math.round(rep_serveur_s*mult_pr)/mult_pr == Math.round(rep_eleve2*mult_pr)/mult_pr && Math.round(rep_serveur_p*mult_pr)/mult_pr == Math.round(rep_eleve3*mult_pr)/mult_pr){
			affiche_popup(1,"F&eacute;licitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Oups... je crois que vous avez fait une ou plusieurs erreurs! Voici la règle avec la somme/produit des z&eacute;ros de la fonction que j'ai calcul&eacute; :<br />f(x) = "+(Math.round(rep_serveur_a*mult_pr)/mult_pr)+"(x² - "+(Math.round(rep_serveur_s*mult_pr)/mult_pr)+"x + "+(Math.round(rep_serveur_p*mult_pr)/mult_pr)+")");
			return false;
			}
		}
	}

function verif_rep11(){
	//Somme-produit de 2 nombres, "somme_produit.php"
	var rep_eleve1 = document.forms['form_rep'].rep_eleve1.value;
	var rep_eleve2 = document.forms['form_rep'].rep_eleve2.value;
	
	if(type_rep == 2){
		//L'élève donne la réponse de somme et de produit
		
		if(rep_eleve1 == rep_serveur_somme && rep_eleve2 == rep_serveur_produit){
			affiche_popup(1,"Félicitations! Votre réponse est correcte (remarquez que c'était assez difficile à rater...)!");
			return false;
			}
		else{
			affiche_popup(-2,"OUPS! Par mes moustaches, vous avez fait une erreur d'innattention, je crois bien...<br />Les bonnes r&eacute;ponses sont<br />S="+rep_serveur_somme+"<br />P="+rep_serveur_produit);
			return false;
			}
		}
	else{
		//L'élève donne les deux nombres correspondant aux somme-produit
		if(rep_eleve1 == rep_serveur_nbr1 && rep_eleve2 == rep_serveur_nbr2){
			affiche_popup(1,"Félicitations! Votre réponse est correcte!");
			return false;
			}
		else{
			affiche_popup(0,"Petite erreur... J'ai trouv&eacute; autre chose que vous...<br />Le premier nombre = "+rep_serveur_nbr1+" et le deuxi&egrave;me = "+rep_serveur_nbr2);
			return false;
			}
		}
	}

function verif_rep12(){
	//Nombre de zéros d'une canonique, "quad_nbr_zeros.php"
	var rep_eleve1 = document.forms['form_rep'].rep_eleve1.value;
	
	if(rep_eleve1 == ""){
		alert("Veuillez écrire votre réponse...");
		return false;
		}
	
	if(rep_eleve1 == rep_serveur){
		affiche_popup(1,"Félicitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
		return false;
		}
	else if(rep_serveur == 0){
		affiche_popup(0,"Oups! Auriez-vous fait une petite erreur? Par mes moustaches, cette fonction ne poss&egrave;de aucun z&eacute;ro r&eacute;&eacute;l!");
		return false;
		}
	else if(rep_serveur == 1){
		affiche_popup(0,"Je crois bien que vous avez fait une l&eacute;g&egrave;re erreur... Cette fonction ne poss&egrave;de qu'un seul z&eacute;ro distinct!");
		return false;
		}
	else{
		affiche_popup(0,"Mais o&ugrave; donc aviez-vous la t&ecirc;te? Par mes moustaches, cette fonction poss&egrave;de bien s&ucirc;r deux z&eacute;ros distincts!");
		}
	}

function verif_rep13(){
	//Trouver la règle d'une fonction linéaire, "lineaire_trouve.php"
	var rep_eleve1 = document.forms['form_rep'].rep_eleve1.value;
	var rep_eleve2 = document.forms['form_rep'].rep_eleve2.value;
	
	if(rep_eleve1 == "" || rep_eleve2 == ""){
		alert("Veuillez écrire votre réponse...");
		return false;
		}

	if(rep_eleve1 == rep_serveur1 && rep_eleve2 == rep_serveur2){
		affiche_popup(1,"Félicitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
		return false;
		}
	else{
		affiche_popup(0,"Hum... d&eacute;sol&eacute;, mais votre r&eacute;ponse n'est pas la bonne. Celle que j'ai trouv&eacute;e est plut&ocirc;t :<br />f(x)="+rep_serveur1+"x + "+rep_serveur2);
		return false;
		}
	}
	
function verif_rep14(){
	//Résoudre un système d'équations, "sys_eq.php"
	var rep_eleve1 = document.forms['form_rep'].rep_eleve_x.value;
	var rep_eleve2 = document.forms['form_rep'].rep_eleve_y.value;
	
	if(rep_eleve1 == "" || rep_eleve2 == ""){
		alert("Veuillez écrire votre réponse...");
		return false;
		}
		
	var mult_10_precision = Math.pow(10,precision_rep);
		
	if(rep_serveur_x == "aucune"){
		if(rep_eleve1 == "imp" && rep_eleve2 == "imp")
			affiche_popup(1,"Félicitations! Ce syst&egrave;me d'&eacute;quations n'admettait effectivement aucune solution!");
		else
			affiche_popup(0,"Hum... par mes moustaches je crois que vous vous &ecirc;tes fait prendre... Ce syst&egrave;me d'&eacute;quations n'avait pas de solution!");
		return false;
		}
	if(rep_serveur_x == "toutes"){
		if(rep_eleve1 == "inf" && rep_eleve2 == "inf")
			affiche_popup(1,"Félicitations! Ce syst&egrave;me d'&eacute;quations avait effectivement une infinit&eacute; de solutions.");
		else
			affiche_popup(0,"Hum... par mes moustaches je crois que vous vous &ecirc;tes fait prendre... Ce syst&egrave;me d'&eacute;quations n'avait pas de solution!");
		return false;
		}
	if(Math.round(rep_eleve1*mult_10_precision) == Math.round(rep_serveur_x*mult_10_precision) && Math.round(rep_eleve2*mult_10_precision) == Math.round(rep_serveur_y*mult_10_precision)){
		affiche_popup(1,"Félicitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
		return false;
		}
	else{
		affiche_popup(0,"Hum... d&eacute;sol&eacute;, mais votre r&eacute;ponse n'est pas la bonne. Celle que j'ai trouv&eacute;e est plut&ocirc;t :<br />"+rep_serveur_lettreb+" = "+rep_serveur_x+" , "+rep_serveur_lettrea+" = "+rep_serveur_y);
		return false;
		}
	}
	
function verif_rep15(){
	//Factoriser un polynôme, "facto.php"
	//Pas encore effectif (2006/02/18)
	var rep_eleve1 = document.forms['form_rep'].rep_eleve_x.value;
	var rep_eleve2 = document.forms['form_rep'].rep_eleve_y.value;
	
	if(rep_eleve1 == "" || rep_eleve2 == ""){
		alert("Veuillez écrire votre réponse...");
		return false;
		}
		
	var mult_10_precision = Math.pow(10,precision_rep);
		
	if(rep_serveur_x == "aucune"){
		if(rep_eleve1 == "imp" && rep_eleve2 == "imp")
			affiche_popup(1,"Félicitations! Ce syst&egrave;me d'&eacute;quations n'admettait effectivement aucune solution!");
		else
			affiche_popup(0,"Hum... par mes moustaches je crois que vous vous &ecirc;tes fait prendre... Ce syst&egrave;me d'&eacute;quations n'avait pas de solution!");
		return false;
		}
	if(rep_serveur_x == "toutes"){
		if(rep_eleve1 == "inf" && rep_eleve2 == "inf")
			affiche_popup(1,"Félicitations! Ce syst&egrave;me d'&eacute;quations avait effectivement une infinit&eacute; de solutions.");
		else
			affiche_popup(0,"Hum... par mes moustaches je crois que vous vous &ecirc;tes fait prendre... Ce syst&egrave;me d'&eacute;quations n'avait pas de solution!");
		return false;
		}
	if(Math.round(rep_eleve1*mult_10_precision) == Math.round(rep_serveur_x*mult_10_precision) && Math.round(rep_eleve2*mult_10_precision) == Math.round(rep_serveur_y*mult_10_precision)){
		affiche_popup(1,"Félicitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
		return false;
		}
	else{
		affiche_popup(0,"Hum... d&eacute;sol&eacute;, mais votre r&eacute;ponse n'est pas la bonne. Celle que j'ai trouv&eacute;e est plut&ocirc;t :<br />"+rep_serveur_lettreb+" = "+rep_serveur_x+" , "+rep_serveur_lettrea+" = "+rep_serveur_y);
		return false;
		}
	}
	
function verif_rep16(){
	//Changer la forme de l'équation d'une droite, "chg_forme_droite.php"
	var rep_elevea = (document.forms['form_rep'].rep_eleve_a.value).replace(",",".");
	var rep_eleveb = (document.forms['form_rep'].rep_eleve_b.value).replace(",",".");
	if(type_rep == 4)
		var rep_elevec = (document.forms['form_rep'].rep_eleve_c.value).replace(",",".");
	
	if(rep_elevea == "" || rep_eleveb == ""){
		alert("Veuillez écrire votre réponse...");
		return false;
		}
		
	var mult_10_precision = Math.pow(10,precision_rep);		
	
	if(type_rep == 2){
		//Forme fonctionnelle
		if(Math.round(rep_elevea*mult_10_precision) == Math.round(rep_serveur_a*mult_10_precision) && Math.round(rep_eleveb*mult_10_precision) == Math.round(rep_serveur_b*mult_10_precision)){
			affiche_popup(1,"Félicitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Hum... d&eacute;sol&eacute;, mais votre r&eacute;ponse n'est pas la bonne. Celle que j'ai trouv&eacute;e est plut&ocirc;t :<br />y = "+rep_serveur_a+"x + "+rep_serveur_b);
			return false;
			}
		}
	else if(type_rep == 3){
		//Forme symétrique
		if(Math.round(rep_elevea*mult_10_precision) == Math.round(rep_serveur_a*mult_10_precision) && Math.round(rep_eleveb*mult_10_precision) == Math.round(rep_serveur_b*mult_10_precision)){
			affiche_popup(1,"Félicitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Hum... d&eacute;sol&eacute;, mais votre forme sym&eacute;trique n'est pas correcte. Celle que j'ai trouv&eacute;e est plut&ocirc;t :<br />x/"+rep_serveur_a+" + y/"+rep_serveur_b+" = 1");
			return false;
			}
		}
	else{
		//Forme générale
		if(Math.round(rep_elevea*mult_10_precision) == Math.round(rep_serveur_a*mult_10_precision) && Math.round(rep_eleveb*mult_10_precision) == Math.round(rep_serveur_b*mult_10_precision) && Math.round(rep_elevec*mult_10_precision) == Math.round(rep_serveur_c*mult_10_precision)){
			affiche_popup(1,"Félicitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
			return false;
			}
		else{
			affiche_popup(0,"Hum... d&eacute;sol&eacute;, mais la forme g&eacute;n&eacute;rale de l'&eacute;quation de cette droite &eacute;tait plut&ocirc;t :<br />"+rep_serveur_a+"x + "+rep_serveur_b+"y + "+rep_serveur_c+" = 0<br /><br />N'oubliez pas de simplifier vos coefficients!");
			return false;
			}
		}
	}
	
function verif_rep17(){
	//Trouver le point milieu ou le point de partage, "pt_milieu_partage.php"
	var rep_eleve1 = document.forms['form_rep'].rep_eleve_x.value;
	var rep_eleve2 = document.forms['form_rep'].rep_eleve_y.value;
	
	if(rep_eleve1 == "" || rep_eleve2 == ""){
		alert("Veuillez écrire votre réponse...");
		return false;
		}
		
	var mult_10_precision = Math.pow(10,precision_rep);
		

	if(Math.round(rep_eleve1*mult_10_precision) == Math.round(rep_serveur_x*mult_10_precision) && Math.round(rep_eleve2*mult_10_precision) == Math.round(rep_serveur_y*mult_10_precision)){
		affiche_popup(1,"Félicitations! Vous avez trouv&eacute; la bonne r&eacute;ponse!");
		return false;
		}
	else{
		if(type_rep == 2)
		affiche_popup(0,"Hum... d&eacute;sol&eacute;, mais les coordonn&eacute;es de votre point milieu ne sont pas les bonnes. Celles que j'ai trouv&eacute;es sont plut&ocirc;t :<br />M(X<sub>M</sub>,Y<sub>M</sub>) = M("+rep_serveur_x+","+rep_serveur_y+")");
		else
		affiche_popup(0,"Hum... d&eacute;sol&eacute;, mais les coordonn&eacute;es de votre point de partage ne sont pas les bonnes. Celles que j'ai trouv&eacute;es sont plut&ocirc;t :<br />P(X<sub>P</sub>,Y<sub>P</sub>) = P("+rep_serveur_x+","+rep_serveur_y+")");
		return false;
		}
	}