/*********************GESTION DES ERREURS***************************/ function gerreur(erreurid){ //On cache tous les champs et bouttons window.document.jeu.bv.style.display="none"; window.document.jeu.pret.style.display="none"; window.document.jeu.pp.style.display="none"; window.document.jeu.trad.style.display="none"; window.document.jeu.corriger.style.display="none"; window.document.jeu.suivant.style.display="none"; window.document.jeu.trad.style.display="none"; window.document.getElementById("bv").style.display="none"; window.document.getElementById("pret").style.display="none"; window.document.getElementById("pp").style.display="none"; window.document.getElementById("trad").style.display="none"; window.document.getElementById("prononciation").style.visibility="hidden"; window.document.getElementById("jockers").style.display="none"; //Affichage de la raison de l'erreur if(erreurid==1){//Il n'y a plus de verbes à réviser: tous validés window.document.getElementById("erreurAffichage").innerHTML="Congratulations! You have revised all the verbs once contained in your list. All are your verbs now validated.
To revise again, you can increase the number of verbs to be revised in your parameters, or reset the validations of your verbs in your list."; }else if(erreurid==2){//Tous les verbes on été vu au moins une fois window.document.getElementById("erreurAffichage").innerHTML="Congratulations! You have revised all your verbs once contained in your list.
If you want to play again, reset the play."; //initialiserJeu }else{ alert("Erreur inconnue"); } window.document.getElementById("erreurAffichage").style.display="block"; enregistrerScore(true);//On enregistre le score } /********************TRAITEMENT DES < et >***********************/ function traiterSupInf(chaine){ //< var pos=chaine.indexOf('%lt;'); while( -1 != pos ){ fin=chaine.substring(pos+4, chaine.length); deb=chaine.substring(0, pos); chaine=deb+"<"+fin; pos=chaine.indexOf('%lt;'); } //> var pos=chaine.indexOf('%gt;'); while( -1 != pos ){ fin=chaine.substring(pos+4, chaine.length); deb=chaine.substring(0, pos); chaine=deb+">"+fin; pos=chaine.indexOf('%gt;'); } //» var pos=chaine.indexOf('%raquo;'); while( -1 != pos ){ fin=chaine.substring(pos+7, chaine.length); deb=chaine.substring(0, pos); chaine=deb+"»"+fin; pos=chaine.indexOf('%raquo;'); } return chaine; } /***************************CHARGEMENT D'UN VERBE A INTERROGER********************************/ function chargerVerbe(){ //Infos pour l'internaute window.document.getElementById("g_ajax").innerHTML="Loading of the verb..."; window.document.getElementById("g_ajax").style.visibility="visible"; window.document.getElementById("erreurAffichage").style.display="none"; var xhr = getXhr() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ window.document.getElementById("g_ajax").style.visibility="hidden"; //On enlève les spans window.document.getElementById("bv").style.display="none"; window.document.getElementById("pret").style.display="none"; window.document.getElementById("pp").style.display="none"; window.document.getElementById("trad").style.display="none"; //On cache la légende et on affiche les jockers, on cache suivant et on affiche corriger window.document.getElementById("legende").style.display="none"; window.document.getElementById("jockers").style.display="block"; window.document.jeu.corriger.style.display=""; window.document.jeu.suivant.style.display="none"; window.document.jeu.nouvellepartie.style.display="none"; var docXML= xhr.responseXML; var erreur = docXML.getElementsByTagName("erreur").item(0).firstChild.data; if(erreur!=0){ gerreur(erreur); return true; } forme = docXML.getElementsByTagName("forme").item(0).firstChild.data; bv = docXML.getElementsByTagName("bv").item(0).firstChild.data; pret = docXML.getElementsByTagName("pret").item(0).firstChild.data; pp = docXML.getElementsByTagName("pp").item(0).firstChild.data; trad = docXML.getElementsByTagName("trad").item(0).firstChild.data; window.document.getElementById("prononciation").style.visibility="hidden"; window.document.getElementById("validefaux").style.visibility="hidden"; //On remet à zéro tous les éléments de formulaire window.document.jeu.bv.value=''; window.document.jeu.pret.value=''; window.document.jeu.pp.value=''; window.document.jeu.trad.value=''; document.jeu.bv.disabled=""; document.jeu.pret.disabled=""; document.jeu.pp.disabled=""; document.jeu.trad.disabled=""; switch(forme){ case "0":window.document.jeu.bv.value=bv; document.jeu.bv.disabled="disabled"; break; case "1":window.document.jeu.pret.value=pret; document.jeu.pret.disabled="disabled"; break; case "2":window.document.jeu.pp.value=pp; document.jeu.pp.disabled="disabled"; break; case "3":window.document.jeu.trad.value=trad; document.jeu.trad.disabled="disabled"; break; } //On affiche les champs document.jeu.bv.style.display=""; document.jeu.pret.style.display=""; document.jeu.pp.style.display=""; document.jeu.trad.style.display=""; numeroverbe=numeroverbe+1; window.document.getElementById("numeroverbe").innerHTML=numeroverbe; creditverbe=10; //Focus sur le premier verbe if(forme!="0") document.jeu.bv.focus(); else document.jeu.pret.focus(); precedentsverbes.push(bv);//Rajout du verbe dans la liste des déjà faits } } var post="action=interroger&anticache="+Math.random(); if( precedentsverbes.length>0 ){ for(i=0;i3 | adonner<0) switch(adonner){ case 0: window.document.jeu.bv.value=bv; document.jeu.bv.disabled="disabled"; break; case 1: window.document.jeu.pret.value=pret; document.jeu.pret.disabled="disabled"; break; case 2: window.document.jeu.pp.value=pp; document.jeu.pp.disabled="disabled"; break; case 3: window.document.jeu.trad.value=trad; document.jeu.trad.disabled="disabled"; break; } window.document.jeu.jockerdonnerforme.disabled="disabled"; } function jockerJuste(){ window.document.getElementById("g_ajax").innerHTML="Checking the errors..."; window.document.getElementById("g_ajax").style.visibility="visible"; var xhr = getXhr() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ var docXML= xhr.responseXML; var erreur = docXML.getElementsByTagName("erreur").item(0).firstChild.data; if(erreur!=0){ gerreur(erreur); } var juste = docXML.getElementsByTagName("juste").item(0).firstChild.data; if(juste==1){ alert('Le verbe est juste'); corrigerVerbe(); }else{ alert('Le verbe est faux'); } creditverbe=creditverbe-3; window.document.jeu.jockerjuste.disabled="disabled"; window.document.getElementById("g_ajax").style.visibility="hidden"; } } var post="action=correction&forme="+forme+"&pasvalider=1&verbe="+bv+"&rep[]="+window.document.jeu.bv.value+"&rep[]="+window.document.jeu.pret.value+"&rep[]="+window.document.jeu.pp.value+"&rep[]="+window.document.jeu.trad.value; xhr.open("POST","?page=reviserjeuXML",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send(post); } /*************************CORRECTION*********************************/ function corrigerVerbe(){ window.document.getElementById("g_ajax").innerHTML="Correction..."; window.document.getElementById("g_ajax").style.visibility="visible"; var xhr = getXhr() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ var docXML= xhr.responseXML; //alert(xhr.responseText); var erreur = docXML.getElementsByTagName("erreur").item(0).firstChild.data; if(erreur!=0){ gerreur(erreur); } //On cache la légende et on affiche les jockers, on cache suivant et on affiche corriger window.document.getElementById("legende").style.display="block"; window.document.getElementById("jockers").style.display="none"; window.document.jeu.corriger.style.display="none"; window.document.jeu.suivant.style.display=""; bv=docXML.getElementsByTagName("bv").item(0).firstChild.data; pret=docXML.getElementsByTagName("pret").item(0).firstChild.data; pp=docXML.getElementsByTagName("pp").item(0).firstChild.data; trad=docXML.getElementsByTagName("trad").item(0).firstChild.data; //On écrit la correction window.document.getElementById("bv").innerHTML=traiterSupInf(bv); window.document.getElementById("pret").innerHTML=traiterSupInf(pret); window.document.getElementById("pp").innerHTML=traiterSupInf(pp); window.document.getElementById("trad").innerHTML=traiterSupInf(trad); //On cache les champs document.jeu.bv.style.display="none"; document.jeu.pret.style.display="none"; document.jeu.pp.style.display="none"; document.jeu.trad.style.display="none"; //On affiche les verbes window.document.getElementById("bv").style.display="inline"; window.document.getElementById("pret").style.display="inline"; window.document.getElementById("pp").style.display="inline"; window.document.getElementById("trad").style.display="inline"; var juste = docXML.getElementsByTagName("juste").item(0).firstChild.data; //Prononciation window.document.getElementById("prononciation").innerHTML=''; window.document.getElementById("prononciation").style.visibility='visible'; if(juste==1){//LE VERBE EST JUSTE score=score+creditverbe; window.document.getElementById("score").innerHTML=score; window.document.getElementById("validefaux").innerHTML='Juste'; window.document.getElementById("validefaux").style.visibility='visible'; window.document.getElementById("g_ajax").style.visibility="hidden"; window.document.jeu.suivant.focus(); }else{//LE VERBE EST FAUX window.document.getElementById("validefaux").innerHTML='Faux'; window.document.getElementById("validefaux").style.visibility='visible'; window.document.getElementById("prononciation").style.visibility='visible'; //On grise tous les éléments window.document.jeu.suivant.style.display="none"; window.document.jeu.nouvellepartie.style.display=""; window.document.getElementById("scorenom").innerHTML="Final score: "; enregistrerScore(false); } } } var verbe=bv; var post="action=correction&forme="+forme+"&verbe="+bv+"&rep[]="+window.document.jeu.bv.value+"&rep[]="+window.document.jeu.pret.value+"&rep[]="+window.document.jeu.pp.value+"&rep[]="+window.document.jeu.trad.value; xhr.open("POST","?page=reviserjeuXML",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send(post); } /**********************************************/ function initialiserJeu(){//Initialisation du jeu numeroverbe=0; score=0; precedentsverbes=new Array(); forme=''; bv=''; pret=''; pp=''; trad=''; creditverbe=10; window.document.getElementById("scorenom").innerHTML="Score: "; window.document.jeu.jockerprononciation.disabled=""; window.document.jeu.jockerdonnerforme.disabled=""; window.document.jeu.jockerjuste.disabled=""; chargerVerbe(); } /***************************CHANGER LA FOME****************************/ function changerForme(forme){ if(forme==4){ forme='a'; } window.document.getElementById("g_ajax").innerHTML="Modification of the preferences..."; window.document.getElementById("g_ajax").style.visibility="visible"; var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ var docXML = xhr.responseXML; var reussi=docXML.getElementsByTagName("reussi").item(0).firstChild.data; if(reussi==1){ alert("The modification has been consideres and will be active at the time of the next interrogation."); }else{ alert("An error occurred during the change of the form!"); } window.document.getElementById("g_ajax").style.visibility="hidden"; } } xhr.open("POST","?page=reviserjeuXML",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send("action=changerforme&choixdonne="+forme); } /**********************ENREGISTREMENT DU SCORE************************/ function enregistrerScore(suite){ if(score==0){ window.document.getElementById("g_ajax").style.visibility="hidden"; return false; } window.document.getElementById("g_ajax").innerHTML="Recording of the score..."; window.document.getElementById("g_ajax").style.visibility="visible"; var xhr = getXhr(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ docXML=xhr.responseXML; etat=docXML.getElementsByTagName("etat").item(0).firstChild.data; var p=""; switch(etat){ case "0":p="Your score has been saved."; rafraichirScore(); break; case "1":p="You are not member, your score cannot be saved."; break; case "2":p="Your score hasn't been saved."; break; case "3":p="An error of request occurred during the saving of your score."; break; default:p="Erreur inconnue"; } if(suite==true){//On remplace le message p=window.document.getElementById("erreurAffichage").innerHTML+"
"+p; } window.document.getElementById("erreurAffichage").innerHTML=p; window.document.getElementById("erreurAffichage").style.display="block"; window.document.getElementById("g_ajax").style.visibility="hidden"; } } xhr.open("POST","?page=reviserjeuXML",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send("action=score&score="+score); } function rafraichirScore(){ window.document.getElementById("g_ajax").innerHTML="Updating of the scores..."; window.document.getElementById("g_ajax").style.visibility="visible"; var xhr = getXhr(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ window.document.getElementById("meilleursscores").innerHTML=xhr.responseText; if(scoresMembresAffiches){ window.document.getElementById('scoresMembres').style.display=''; } window.document.getElementById("g_ajax").style.visibility="hidden"; } } xhr.open("POST","?page=reviserjeuXML",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send("action=rafraichirscore"); } function afficherScoresMembres(){ if(!scoresMembresAffiches){ scoresMembresAffiches=true; window.document.getElementById('scoresMembres').style.display=''; }else{ scoresMembresAffiches=false; window.document.getElementById('scoresMembres').style.display='none'; } } /************************GENERALITES*************************/ //Variables du jeu var numeroverbe=0; var score=0; var precedentsverbes=new Array(); var forme=''; var bv=''; var pret=''; var pp=''; var trad=''; var creditverbe=10; var scoresMembresAffiches=false; window.document.onload=chargerVerbe();