/*
          Code du didacticiel
          documentation/sectionspartie5.html
*/
//   Exemple de Graphe de test
//   j3p.html?graphe=[1,"didacticiel1",[{pe:">=0",nn:"2",conclusion:"Etape 2"}]];[2,"modele",[{pe:">=0",nn:"fin",conclusion:"fin"}]];
j3p.Sectiondidacticiel1 = {
    "outils":["calculatrice"],
    "parametres":[
        ["nbrepetitions",2,"entier","aucun"],
        ["indication","","string","aucun"],
        ["limite","","entier","Temps disponible par répétition, en secondes"],
        ["nbchances",2,"entier",""],
        ["entier","[4;15]","string","Intervalle auquel appartient le nombre"],
        ["typequestion","double","string",'"double" || "triple" || "lesdeux" ']
    ],
    "pe":[
        {"pe":0}
    ]
};
Parcours.prototype.Sectiondidacticiel1 = function(){
    this.Sectiondidacticiel1.unefonctionpersoglobale = function(){
        alert("fonction perso et globale")
    }
    function fonction_locale(){
        alert("fonction perso locale")
    }
    function _Donnees() {
        // NE PAS OUBLIER DE CHANGER LE NOM DE LA VARIABLE
        this.nomSection = "didacticiel1";
        document.title += this.nomSection ;
        this.typesection="primaire";
        this.touche_entree = true;
        this.nbrepetitions = 2;
        this.surchargenbrepetitions = true;
        this.nbetapes= 1;
        this.nbitems = this.nbetapes*this.nbrepetitions;
        this.indication = "";
        this.nbchances = 2;
        this.numeroessai = 1;
        this.structure="presentation1";
        this.entier = "[4;15]";
        this.typequestion = "lesdeux"; // || "triple" || "lesdeux"  || "double"
        this.textes = {
            phrase1 : "Ecris"
        }
        //Par défaut, pas de temps limite. Décommentez pour avoir un temps limite par défaut. En secondes.
        //this.limite =5;
        this.pe=0;
    }
    switch (this.etat){
        case "enonce":
            //code exécuté au lancement de la section
            if (this.debutdelasection){
                this.debutdelasection = false;
                this.DonneesSection = new _Donnees();
                J3PSurcharge();
                this.StructurePage(this.DonneesSection.structure);
                this.Dimensions(0.6);
                this.stockage=[0,0,0,0,0,0,0,0,0,0,0];
                this.typederreurs=[0,0,0,0,0,0,0,0,0,0,0];
                this.score=0
                this.Titre("TITRE",false);
                this.BoutonValider(this.zones.ID);
                this.BoutonContinuer(this.zones.ID);
                this.BoutonSectionContinuer(this.zones.ID);
                this.CacheBoutonSectionContinuer();
                if (this.DonneesSection.indication !="") this.Indication(this.zones.IG,this.DonneesSection.indication);
                //this.compteARebours = {conteneur:this.zones.MG,actif:false,left:0,top:0,width:300,height:30,couleur:"#F00"}
                //this.compteARebours.actif = true;
                //code de création de la boîte de boutons
                this.fenetresjq =  [
                        {name:"Boutons",title:"Outils",width:150,height:120,left:650,top:130,id:"fenetreBoutons"},
                        {name:"Calculatrice",title:"",width:300,left:430,top:250}
                    ];
                //J3PCreefenetres();
                //J3PCreeBoutonFenetre("Calculatrice","fenetreBoutons",{top:10,left:10},"Calculatrice")
                //J3PAfficheunefenetre("Boutons");
            }
            else {
                this.Efface("MG");
                if ((this.DonneesSection.structure=="presentation1")||(this.DonneesSection.structure=="presentation1bis"))
                    this.Efface("MD");
                this.AfficheBoutonValider();
                this.DonneesSection.numeroessai = 1;
            }
            // OBLIGATOIRE
            this.Barredetat(this.zones.HD);
            this.GestionTemps();
            this.CacheBoutonContinuer();
            /////////////////////////////////////
            /* LE CODE PRINCIPAL DE LA SECTION */
            /////////////////////////////////////
            var nb = J3PRandom(this.DonneesSection.entier);
            this.stockage[1]=nb
            var ch="";
            switch (this.DonneesSection.typequestion){
                case "double" : {
                        ch="double";
                        this.stockage[0]=2*nb;
                        this.stockage[2]="double"
                        break;
                }
                case "triple" : {
                        ch="triple";
                        this.stockage[0]=3*nb;
                        this.stockage[2]="triple"
                        break;
                }
                case "lesdeux" : {
                        var choix = J3PgetRandomInt(1, 2)
                        if (choix==1) {
                            ch="triple";
                            this.stockage[0]=3*nb;
                            this.stockage[2]="triple"
                        } else {
                            ch="double";
                            this.stockage[0]=2*nb;
                            this.stockage[2]="double"
                        }
                        break;
                }
            }
            J3PDiv(this.zones.MG,{id:"enonce",contenu:"Quel est le "+ch+ " du nombre "+nb+" ?",coord:[10,50],style:this.styles.moyen.enonce});
            J3PDiv(this.zones.MG,{id:"reponse",contenu:"",coord:[100,100],style:this.styles.moyen.enonce});
            J3PAjouteZoneTexte("reponse",{id:"zdtreponse",maxchars:"5",restrict:"0-9,",texte:"",width:80});
            J3PFocus("zdtreponse")
            J3PDiv(this.zones.MG,{id:"explications",contenu:"",coord:[10,200],style:this.styles.moyen.correction});
            /////////////////////////////////////////
            /* FIN DU CODE PRINCIPAL DE LA SECTION */
            /////////////////////////////////////////
            J3PDiv(this.zones.MD,{id:"correction",contenu:"",coord:[20,100],style:this.styles.moyen.explications});
            this.finEnonce();
			break;//case "enonce":
        case "correction":
            // On teste si une réponse a été saisie
            var repEleve=J3PValeurde("zdtreponse");
            if ((repEleve =="")&&(this.typereponse!=0)){
                J3PElement("correction").style.color = this.styles.cfaux;
                J3PElement("correction").innerHTML = this.phrases.reponsemanquante;
                J3PFocus("zdtreponse");
                this.AfficheBoutonValider();
            }
            // Une réponse a été saisie
            else {
                // Bonne réponse
                if ( repEleve == J3PNumToStr(this.stockage[0]) || repEleve == String(this.stockage[0])) {
                    this.detruitEcouteurs();
                    this.score++;
                    J3PElement("correction").style.color = this.styles.cbien;
                    J3PElement("correction").innerHTML=this.phrases.cbien;
                    this.typederreurs[0]++;
                    this.CacheBoutonValider();
                    this.etat ="navigation";this.oncontinue();
                } else {
                    // Pas de bonne réponse
                    J3PElement("correction").style.color = this.styles.cfaux;
                    // A cause de la limite de temps :
                    if (this.typereponse==0){//limite de temps
                        this.detruitEcouteurs();
                        J3PElement("correction").innerHTML=this.phrases.tempsdepasse;
                        this.typederreurs[10]++;
                        this.CacheBoutonValider();
                        J3PElement("correction").innerHTML+="
La solution était "+this.stockage[0]
                        // RECOPIER LA CORRECTION ICI !
                        this.etat ="navigation";this.oncontinue();
                    }
                    // Réponse fausse :
                    else {
                        J3PElement("correction").innerHTML=this.phrases.cfaux;
                        this.DonneesSection.numeroessai++;
                        // S'il y a plus de deux chances,on appelle à nouveau le bouton Valider
                        if (this.DonneesSection.numeroessai<=this.DonneesSection.nbchances) {
                           J3PElement("correction").innerHTML+=this.phrases.autrechance
                           this.typederreurs[1]++;
                           // indication éventuelle ici
                        }
                        // Erreur au nème essai
                        else {
                            this.detruitEcouteurs();
                            this.CacheBoutonValider();
                            J3PElement("correction").innerHTML+=this.phrases.correction;
                            J3PElement("correction").innerHTML+="
La solution était "+this.stockage[0];
                            J3PElement("explications").innerHTML+="En effet le "+this.stockage[2]+" de "+this.stockage[1];
                            if (this.stockage[2]=="double")
                                J3PElement("explications").innerHTML+=" est égal à 
2 × "+this.stockage[1]+" = "+(2*this.stockage[1])
                            else
                                J3PElement("explications").innerHTML+=" est égal à 
3 × "+this.stockage[1]+" = "+(3*this.stockage[1])
                            this.typederreurs[2]++;
                            this.etat ="navigation";this.oncontinue();
                        }
                    }
                }
            }
            this.finCorrection();
			break;//case "correction":
        case "navigation":
            if (this.Sectionterminee()){
                //On détermine la phrase d'état renvoyée par la section
                this.parcours.pe = this.score / this.DonneesSection.nbitems;
                this.AfficheBoutonSectionContinuer();
                this.desactiveReturn();
                this.Focus("sectioncontinuer");
            }
            else {
                this.sections.itemCourant ++;
                this.etat ="enonce";
                this.AfficheBoutonContinuer();
                this.desactiveReturn();
                this.Focus("boutoncontinuer");
            }
            this.finNavigation();
			break;//case "navigation":
    }
}