// FONCTIONS APPELEES PAR LE FICHIER donnees.js

function couleur_texte(txt) {qcm.couleur.texte=txt;}

function couleur_fond(txt) {qcm.couleur.fond=txt;}

function titre(txt) {qcm.titre+=txt;}

function introduction(txt) {qcm.commentaire+=txt;}

function avertir(txt) {qcm.avertissement+=txt;}

function nombre_questions() {for (var i=0;i<arguments.length;i++) qcm.nb_questions[i]=arguments[i];}

function theme(txt) {qcm.ajouter_theme(txt);}

function question(txt) {qcm.theme[qcm.theme.length-1].ajouter_question(txt);}

function reponse(txt) {
  var num_theme=qcm.theme.length-1;
  var num_question=qcm.theme[num_theme].question.length-1;
  qcm.theme[num_theme].question[num_question].ajouter_reponse(txt);
}

function schema(txt) {
  var num_theme=qcm.theme.length-1;
  var num_question=qcm.theme[num_theme].question.length-1;
  qcm.theme[num_theme].question[num_question].ajouter_schema(txt);
}


// FONCTIONS APPELEES PAR LA PAGE pages.html

function ecrire_page1() {
  if (qcm.nb_questions.length==0) {
    qcm.nb_questions[0]=5;
    qcm.nb_questions[1]=10;
    qcm.nb_questions[2]=15;
  }
  if (qcm.nb_questions_choisi==0) qcm.nb_questions_choisi=qcm.nb_questions[0];
  var choix="aucun";
  for (var i=0;i<qcm.theme.length;i++) {
    if (qcm.theme[i].choisi=="oui") choix="fait";
  }
  if (choix=="aucun") qcm.theme[0].choisi="oui";
  var ch="<BR>";
  if (qcm.titre!="") {
    ch+='<FONT SIZE=7 COLOR="'+qcm.couleur.texte+'"><CENTER><B><I>'+qcm.titre+'</I></B></CENTER></FONT>';
    ch+='<BR><BR>';
  }
  if (qcm.commentaire!="") {
    ch+='<FONT SIZE=4 COLOR="'+qcm.couleur.texte+'">'+qcm.commentaire+'</FONT><BR><BR>';
  }
  ch+='<HR><BR>';
  ch+='<FORM NAME="f">';
  ch+='  <TABLE WIDTH=100% BORDER=0><TR>';
  ch+='    <TD WIDTH="5%">&nbsp;</TD>';
  ch+='    <TD WIDTH="30%">';
  ch+='      <FONT SIZE=4 COLOR="'+qcm.couleur.texte+'"><B><I>SELECTION DES THEMES:</I></B></FONT><BR><BR>';
  ch+='      <TABLE CELLPADDING=10 WIDTH="100%" BORDER=1><TR><TD>';
  ch+='        <FONT SIZE=4 COLOR="#000000">';
  for (var i=0;i<qcm.theme.length;i++) {
    var txt=" ";
    if (qcm.theme[i].choisi=="oui") txt=" checked";
    ch+='<INPUT TYPE="checkbox" NAME="case'+i+'"'+txt+' onClick="parent.cache.choisir_themes();">';
    ch+='&nbsp;&nbsp;&nbsp;'+qcm.theme[i].titre+'<BR>';
  }
  ch+='<INPUT TYPE="checkbox" NAME="tous" onClick="parent.cache.choisir_themes();">';
  ch+='&nbsp;&nbsp;&nbsp;Tous les thèmes<BR>';
  ch+='        </FONT>';
  ch+='      </TD></TR></TABLE>';
  ch+='    </TD>';
  ch+='    <TD WIDTH="5%">&nbsp;</TD>';
  ch+='    <TD WIDTH="30%">';
  ch+='      <FONT SIZE=4 COLOR="'+qcm.couleur.texte+'"><B><I>CHOIX DU NOMBRE DE QUESTIONS:</I></B></FONT><BR><BR>';
  ch+='      <TABLE CELLPADDING=10 WIDTH="100%" BORDER=1><TR><TD>';
  ch+='        <FONT SIZE=4 COLOR="#000000">';
  for (var i=0;i<qcm.nb_questions.length;i++) {
    var txt=" ";
    if (qcm.nb_questions_choisi==qcm.nb_questions[i]) txt=" checked";
    ch+='<INPUT TYPE="radio" NAME="ch_nb"'+txt+'>&nbsp;&nbsp;&nbsp;'+qcm.nb_questions[i]+' questions<BR>';
  }
  ch+='        </FONT>';
  ch+='      </TD></TR></TABLE>';
  ch+='    </TD>';
  ch+='    <TD WIDTH="5%">&nbsp;</TD>';
  ch+='  </TR></TABLE>';
  ch+='  <BR><BR><HR><BR>';
  ch+='  <TABLE WIDTH="100%" BORDER=0><TR>';
  ch+='    <TD WIDTH="50%" ALIGN="center"><FONT SIZE=4>';
  ch+='      <INPUT TYPE="button" VALUE="COMMENCER" ONCLICK="parent.cache.commencer(f);">';
  ch+='    </FONT></TD>';
  ch+='    <TD ALIGN="center"><FONT SIZE=4>';
  ch+='      <INPUT TYPE="button" VALUE="QUITTER" ONCLICK="parent.cache.quitter_qcm();">';
  ch+='    </FONT></TD>';
  ch+='  </TR></TABLE>';
  ch+='</FORM>';
  return ch;
}

function ecrire_page2() {
  var a=qcm.activite.num_theme;
  var b=qcm.activite.num_question;
  var c=qcm.theme[a].question[b].reponse.length;
  var d=qcm.theme[a].question[b].schema;
  var ch='<FORM NAME="f">';
  ch+='  <TABLE CELLSPACING=10 WIDTH="100%" BORDER=0><TR VALIGN="top">';
  ch+='    <TD WIDTH=300 ALIGN="center">';
  ch+='<TABLE WIDTH=300 HEIGHT=300 BORDER=1><TR><TD>';
  if (d!="schemas/vide.gif") ch+='<IMG SRC="'+d+'" BORDER=0 WIDTH=300 HEIGHT=300>';
  else ch+='&nbsp;';
  ch+='</TD></TR></TABLE><BR><BR>';
  ch+='      <FONT SIZE=4>';
  ch+='        <INPUT TYPE="button" VALUE="VERIFIER" NAME="bouton" ONCLICK="parent.cache.valider();">';
  ch+='      </FONT>';
  ch+='      <FONT SIZE=4 COLOR="'+qcm.couleur.texte+'">';
  ch+='        <BR><BR><B><I>CORRECTION:</I></B>&nbsp;<INPUT TYPE="text" NAME="mot" SIZE="40"><BR><BR>';
  ch+='      </FONT>';
  ch+='      <FONT SIZE=4>';
  ch+='        <INPUT TYPE="button" VALUE="ARRETER" ONCLICK="parent.cache.quitter_question();">';
  ch+='      </FONT>';
  ch+='    </TD>';
  ch+='    <TD>';
  ch+='      <FONT SIZE=4 COLOR="'+qcm.couleur.texte+'"><B><I>QUESTION N°'+(qcm.activite.nb_faites+1)+'/'+qcm.nb_questions_choisi;
  ch+='      </I></B></FONT><BR><BR>';
  ch+='      <TABLE CELLPADDING=10 WIDTH="100%" HEIGHT=55 BORDER=1><TR><TD>';
  ch+='        <FONT SIZE=4 COLOR="#000000">'+qcm.theme[a].question[b].enonce+'</FONT>';
  ch+='      </TD></TR></TABLE><BR><BR>';
  ch+='      <FONT SIZE=4 COLOR="'+qcm.couleur.texte+'"><B><I>REPONSES:</I></B></FONT><BR><BR>';
  ch+='      <TABLE CELLPADDING=10 WIDTH="100%" BORDER=1><TR><TD>';
  for (var i=0;i<c;i++) {
    ch+='<TABLE CELLPADDING=0 WIDTH="100%" HEIGHT=50 BORDER=0><TR>';
    ch+='<TD WIDTH="1%"><INPUT TYPE="checkbox" NAME="case'+i+'">&nbsp;&nbsp;&nbsp;&nbsp;</TD>';
    ch+='<TD><FONT SIZE=4 COLOR="#000000">';
    ch+=qcm.theme[a].question[b].reponse[i].enonce;
    ch+='</FONT></TD></TR></TABLE>';
  }
  ch+='      </TD></TR></TABLE>';
  ch+='    </TD>';
  ch+='  </TR></TABLE>';
  ch+='</FORM>';
  return ch;
}

function ecrire_page3() {
  var notesur20=Math.round(qcm.evaluation.note);
  var duree=Math.round((qcm.evaluation.fin.getTime()-qcm.evaluation.debut.getTime())/1000);
  var minutes=Math.floor(duree/60);
  var secondes=duree-60*minutes;
  var exercice="non termine";
  if (qcm.activite.nb_faites==qcm.nb_questions_choisi) exercice="termine";
  var ch='<BR><FONT SIZE=7 COLOR="'+qcm.couleur.texte+'"><CENTER><B><I>EVALUATION</I></B></CENTER></FONT>';
  ch+='<BR><HR><BR>';
  ch+='<FONT SIZE=4 COLOR="'+qcm.couleur.texte+'">';
  ch+='  <B><I>VOTRE NOTE: </I></B>'+notesur20+'/20.<BR><BR>';
  ch+='  <B><I>TEMPS MIS POUR REPONDRE AUX QUESTIONS: </I></B>';
  if (minutes==0) ch+=duree+' secondes.';
  else {
    if (minutes==1) ch+='1 minute';
    else ch+=minutes+' minutes';
    if (secondes==0) ch+='.';
    else if (secondes==1) ch+=' et 1 seconde.';
    else ch+=' et '+secondes+' secondes.';
  }
  ch+='  <BR><BR>';
  ch+='  <B><I>APPRECIATION: </I></B>'+qcm.evaluation.appreciation(notesur20,exercice);
  ch+='</FONT>';
  ch+='<BR><BR><HR><BR>';
  ch+='  <FORM><TABLE WIDTH=100% BORDER=0><TR>';
  ch+='    <TD WIDTH="50%" ALIGN="center"><FONT SIZE=4>';
  ch+='      <INPUT TYPE="button" VALUE="ACCUEIL" ONCLICK="parent.cache.quitter_evaluation();">';
  ch+='    </FONT></TD>';
  ch+='    <TD ALIGN="center"><FONT SIZE=4>';
  ch+='      <INPUT TYPE="button" VALUE="QUITTER" ONCLICK="parent.cache.quitter_qcm();">';
  ch+='    </FONT></TD>';
  ch+='  </TR></TABLE></FORM>';
  return ch;
}


// FONCTIONS APPELEES PAR LA PREMIERE PAGE AFFICHEE DANS LA PAGE pages.html

function choisir_themes() {
  if (parent.pages.document.f.tous.checked) {
    for (var i=0;i<qcm.theme.length;i++) {
      parent.pages.document.f.elements["case"+i].checked=true;
    }
  }
}

function commencer(g) {
  var choix="aucun";
  var nb_questions_disponibles=0;
  for (var i=0;i<qcm.theme.length;i++) {
    if (g.elements["case"+i].checked) {
      choix="fait";
      qcm.theme[i].choisi="oui";
      nb_questions_disponibles+=qcm.theme[i].question.length;
    }
    else qcm.theme[i].choisi="non";
  }
  if (choix=="aucun") alert("Veuillez sélectionner au moins un thème, s'il vous plaît.");
  else {
    for (var i=0;i<qcm.nb_questions.length;i++) {
      if (g.ch_nb[i].checked) qcm.nb_questions_choisi=qcm.nb_questions[i];
    }
    if (qcm.nb_questions_choisi>nb_questions_disponibles) {
      alert("Pas assez de questions disponibles avec ce choix d'options!");
    }
    else {
      qcm.evaluation.debut=new Date();
      nouvelle_question();
      if(qcm.avertissement!="") alert(qcm.avertissement);
    }
  }
}

function guide() {
  var largeur=screen.width/1.1;
  var hauteur=screen.height/1.2;
  var pos_x=(screen.width-largeur)/2;
  var pos_y=(screen.height-hauteur)/3;
  var dimensions='width='+largeur+',height='+hauteur;
  var proprietes='menubar=no,toolbar=no,directories=no,location=no,status=no,scrollbars=yes';
  fen_guide=window.open('mode_emploi.html','guide',dimensions+proprietes);
  fen_guide.moveTo(pos_x,pos_y);
  fen_guide.focus();
}


// FONCTIONS APPELEES PAR LA DEUXIEME PAGE AFFICHEE DANS LA PAGE pages.html

function valider() {
  var a=qcm.activite.num_theme;
  var b=qcm.activite.num_question;
  var c=qcm.theme[a].question[b].reponse.length;
  if (qcm.theme[a].question[b].etat=="affichee") {
    var cas="non repondu";
    for (var i=0;i<c;i++) if (parent.pages.document.f.elements["case"+i].checked) cas="repondu";
    if (cas=="non repondu") alert("Faudrait peut-être répondre !!!");
    else {
      qcm.theme[a].question[b].etat="corrigee";
      cas="vrai";
      for (var i=0;i<c;i++) {
        if (parent.pages.document.f.elements["case"+i].checked) {
          if (qcm.theme[a].question[b].reponse[i].resultat=="faux") cas="faux";
        }
        else {
          if (qcm.theme[a].question[b].reponse[i].resultat=="vrai") cas="faux";
        }
      }
      if (cas=="vrai") qcm.evaluation.note+=20/qcm.nb_questions_choisi;
      if (cas=="faux") {
        for (var i=0;i<c;i++) parent.pages.document.f.elements["case"+i].checked=false;
        clignoter();
      }
      parent.pages.document.f.mot.value=qcm.activite.commentaire(cas);
      qcm.activite.nb_faites++;
      if (qcm.activite.nb_faites==qcm.nb_questions_choisi) {
        parent.pages.document.f.bouton.value="EVALUATION";
      }
      else parent.pages.document.f.bouton.value="SUIVANT";
    }
  }
  else {
    if (qcm.activite.nb_faites==qcm.nb_questions_choisi) fin_questions();
    else nouvelle_question();
  }
}

function quitter_question() {
  if (qcm.activite.nb_faites==qcm.nb_questions_choisi) fin_questions();
  else {
    if (!confirm("Tu vas me le finir ce quizz feignasse ?")) {
      fin_questions();
    }
  }
}


// FONCTION APPELEE PAR LA TROISIEME PAGE AFFICHEE DANS LA PAGE pages.html

function quitter_evaluation() {
  // Remise à l'état initial de tous les paramètres.
  qcm.activite.nb_faites=0;
  qcm.evaluation.note=0;
  for (var i=0;i<qcm.theme.length;i++) {
    qcm.theme[i].etat="libre";
    for (var j=0;j<qcm.theme[i].question.length;j++) {
      qcm.theme[i].question[j].etat="libre";
    }
  }
  // Affichage de la page d'accueil.
  parent.cache.qcm.num_page=1;
  parent.pages.location="pages.html"
}


// FONCTIONS REPETITIVES

function nouvelle_question() {
  // Arrêt du clignotement des cases à cocher.
  clearTimeout(qcm.timer);
  // Choix d'un thème disponible pris au hasard.
  var a=Math.floor(qcm.theme.length*Math.random());
  while (qcm.theme[a].choisi=="non"||qcm.theme[a].etat=="fini") {
    a=Math.floor(qcm.theme.length*Math.random());
  }
  qcm.activite.num_theme=a;
  // Choix d'une question disponible prise au hasard.
  var b=Math.floor(qcm.theme[a].question.length*Math.random());
  while (qcm.theme[a].question[b].etat!="libre") {
    b=Math.floor(qcm.theme[a].question.length*Math.random());
  }
  qcm.activite.num_question=b;
  qcm.theme[a].question[b].etat="affichee";
  // Vérification du thème pour savoir s'il est disponible ou non.
  qcm.theme[a].etat="fini";
  for (var i=0;i<qcm.theme[a].question.length;i++) {
    if (qcm.theme[a].question[i].etat=="libre") qcm.theme[a].etat="libre";
  }
  // Affichage de la nouvelle question.
  parent.cache.qcm.num_page=2;
  parent.pages.location="pages.html";
}

function clignoter() {
  var a=qcm.activite.num_theme;
  var b=qcm.activite.num_question;
  var c=qcm.theme[a].question[b].reponse.length;
  var cas="eteint";
  for (var i=0;i<c;i++) if (parent.pages.document.f.elements["case"+i].checked==true) cas="allume";
  if (cas=="eteint") {
    for (var i=0;i<c;i++) {
      if (qcm.theme[a].question[b].reponse[i].resultat=="vrai") {
        parent.pages.document.f.elements["case"+i].checked=true;
      }
    }
    qcm.timer=setTimeout("clignoter()",300);
  }
  else {
    for (var i=0;i<c;i++) parent.pages.document.f.elements["case"+i].checked=false;
    qcm.timer=setTimeout("clignoter()",100);
  }
}

function fin_questions() {
  clearTimeout(qcm.timer);
  qcm.evaluation.fin=new Date();
  parent.cache.qcm.num_page=3;
  parent.pages.location="pages.html"
}

function quitter_qcm() {
  alert("Au plaisir de vous retrouver une prochaine fois pour de nouvelles questions!");
  parent.self.close();
  // Pour quitter sur une page de votre site, remplacez les lignes ci-dessus par:
  // parent.document.location.href="votre_page.html";
}

