/*********************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="Felicidades! Usted ha examinado todos los verbos en su lista una vez. Todas sus verbos están validados.
Para revisar una vez más, puede incrementar el número de verbos a revisar su configuración o reiniciar la validación de sus verbos en su lista."; }else if(erreurid==2){//Tous les verbes on été vu au moins une fois window.document.getElementById("erreurAffichage").innerHTML="Felicidades! Ha revisado todos los verbos en su lista una vez.
Si quieres jugar otra vez, reinicie el juego."; //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="Cargando verbo ..."; 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="Verificación de errores ..."; 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="Corrección del verbo ..."; 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="Resultado final: "; 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="Resultado: "; 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="Cambiar las preferencias ..."; 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("El cambio se ha tenido en cuenta y se harán efectivos en el próximo interrogatorio."); }else{ alert("Se ha producido un error al cambiar la forma!"); } 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="Registro resultado ..."; 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="Su puntuación ha sido registrada."; rafraichirScore(); break; case "1":p="Usted no es un miembro, su puntuación no puede ser registrado."; break; case "2":p="Su puntuación no se registró."; break; case "3":p="La solicitud ha producido un error al registrar su resultado."; 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="Actualización de resultados ..."; 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();