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