/*********************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='';
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='';
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();