//-----------------------------------------------------------------------------
// Module      : Score
// Auteur      : A2L
// Date        : 10/10/2003
// Description : Gère le score d'un utilisateur du service
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// Variable    : question
// Description : Noms des variables stockées dans le cookie
//-----------------------------------------------------------------------------
var question = "question";
var answers = "answers";

//-----------------------------------------------------------------------------
// Variable    : points / explanations
// Description : Réponses correctes
//               Le tableau points stocke les points associés à chaque
//               réponse possible. Le tableau explanations stocke les
//               justifications de chaque bonne réponse
//-----------------------------------------------------------------------------
var nbChoices = 5;
var nbQuestions = 13;
var nom_fenetre_info_cookie="information_cookie";
var parametres_fenetre_info_cookie="width=500,height=500,top=100,left=100,toolbar=no,scrollbars=yes,resizable=yes";
var points = new Array(nbQuestions);
var explanations = new Array(nbQuestions);

// Alloue les tableaux des réponses correctes et initialise chaque
// réponse comme une réponse fausse
for (i=0; i<nbQuestions; i++)
{
  // Alloue les tableaux
  points[i] = new Array(nbChoices);
  explanations[i] = new Array(nbChoices);
  
  // Initialise les réponses comme des erreurs
  for (j=0; j>nbChoices; j++)
  {
    points[i][j]=0;
    explanations[i][j]="";
  }
}
// Indique les réponses exactes (points[numéro de la question] [numéro VECOR V=0, E=1, C=2; O=3; R=4])
points[0][0]=1;
points[1][0]=1;
points[2][0]=1;
points[7][0]=1;

points[4][1]=1;
points[6][1]=1;
points[11][1]=1;
points[12][1]=1;

points[1][2]=1;
points[2][2]=1;
points[3][2]=1;
points[4][2]=1;
points[5][2]=1;
points[6][2]=1;
points[7][2]=1;
points[8][2]=1;
points[10][2]=1;
points[12][2]=1;

points[0][3]=1;
points[2][3]=1;
points[3][3]=1;
points[4][3]=1;
points[5][3]=1;
points[6][3]=1;
points[9][3]=1;
points[10][3]=1;
points[12][3]=1;

points[5][4]=1;
points[9][4]=1;

// Indique les justifications (explantations[numéro de la question] [numéro VECOR V=0, E=1, C=2; O=3; R=4])
explanations[0][0]="<p align=\"center\"><b>Véhicule inhabituel : </b><br>La conduite d'un véhicule inhabituel suppose une accoutumance :";
explanations[0][0]+="<ul><li>aux différences de commandes (frein, embrayage, changement de vitesse)</li>";
explanations[0][0]+="<li>à l'emplacement et à la manipulation des accessoires</li>";
explanations[0][0]+="<li>aux réactions du véhicule (état de la suspension, des pneus...) et / ou à ses éventuelles déficiences</li></ul></p>";

explanations[1][0]="<p align=\"center\"><b>Vitres sales, pneus sous gonflés, rétro cassé :</b><br>";
explanations[1][0]+="Vitres sales : la propreté des vitres est un élément essentiel pour une bonne visibilité. La diffraction de la lumière est augmentée avec des vitres sales et plus particulièrement lorsque les conditions météorologiques (pluie, neige, brouillard) ou la luminosité (soleil, phares...) sont défavorables.<br><br>";
explanations[1][0]+="Pneus sous gonflés : la bonne pression des pneus, conforme aux prescriptions du constructeur, est déterminante  pour la tenue de route du véhicule. Parmi les facteurs d'accidents liés au véhicule, les pneus arrivent à la première place (mauvais état, usure excessive, pression insuffisante).<br><br>";
explanations[1][0]+="Rétroviseur droit plié : le rétroviseur droit est un élément essentiel pour manœuvrer avec ce type de véhicule (faible visibilité latérale). Sa vérification ou son réglage, sont donc indispensables à sa bonne utilisation.</p>";

explanations[2][0]="<p align=\"center\"><b>Feu stop droit endommagé :</b><br>";
explanations[2][0]+="Un feu stop endommagé ne permet pas d'être vu par les autres usagers dans certaines conditions. La nuit, il peut faire penser à un 2 roues et non à une voiture. Il peut, dans certains cas, provoquer une surtension sur l'autre feu et endommager celui-ci</p>";

explanations[7][0]="<p align=\"center\"><b>Feu stop droit endommagé :</b><br>";
explanations[7][0]+="Ici, le véhicule qui suit, voit au dernier moment la partie gauche du véhicule devant lui. Comme ce véhicule n'a pas de feu stop allumé à droite, il peut penser que ce véhicule roule, il est donc surpris car ce dernier est arrêté.</p>";

explanations[4][1]="<p align=\"center\"><b>Facteur climatique :</b><br>";
explanations[4][1]+="La pluie est un élément perturbateur générateur d'embouteillage et de chaussée glissante. Il est à prendre en compte sur le choix de l'itinéraire, les temps de missions qui doivent être plus longs. Le conducteur doit conduire moins vite, augmenter la distance avec le véhicule qu'il suit, ...</p>";

explanations[6][1]="<p align=\"center\"><b>Mur masquant la visibilité : </b><br>";
explanations[6][1]+="Dans cette situation, le conducteur de la Rapid'o doit prévoir de se rendre visible pour les conducteurs des véhicules qui arrivent derrière :";
explanations[6][1]+="<ul><li>Soit en se plaçant de manière à être vu le plus tôt possible (en serrant à droite ou à gauche),</li>";
explanations[6][1]+="<li>Soit en attendant qu'un véhicule arrive derrière avant d'avancer jusqu'à l'endroit où la visibilité est réduite (contenir la circulation à l'arrière).</li></ul></p>";

explanations[11][1]="<p align=\"center\"><b>Tournant serré et rue étroite :</b><br>";
explanations[11][1]+="En présence d'une telle configuration des lieux, le conducteur doit adapter son allure et sa trajectoire à l'étroitesse du  passage et à la visibilité réduite.</p>";

explanations[12][1]="<p align=\"center\"><b>Véhicule arrivant de face mal placé (circule à gauche) :</b><br>";
explanations[12][1]+="Dans cette situation, le conducteur doit tout mettre en œuvre pour éviter l'accident. Il doit prévoir l'éventualité de la situation et être prêt à intervenir sur le volant pour modifier sa trajectoire en serrant le plus possible à droite, sur le frein pour réduire l'allure et laisser à l'autre conducteur la possibilité de modifier sa trajectoire, et sur les commandes de l'avertisseur sonore et/ou l'avertisseur optique pour prévenir l'autre conducteur et l'inviter à modifier sa position sur la chaussée.</p>";

explanations[1][2]="<p align=\"center\"><b>Fatigue (astreinte) - Stationnement </b><br>";
explanations[1][2]+="Quelle que soit son origine, il est important de la prendre en compte car la fatigue entraîne systématiquement :";
explanations[1][2]+="<ul><li>des modifications du comportement (énervement, anxiété),</li>";
explanations[1][2]+="<li>une augmentation du temps de réaction.</li></ul></p>";
explanations[1][2]+="<p>Garer son véhicule dans le sens de la marche de façon à ce qu'il soit prêt à repartir.</p>";

explanations[2][2]="<p align=\"center\"><b>Tour du véhicule non effectué : poubelles non localisées</b><br>";
explanations[2][2]+="Négligence : ampoule non vérifiée, <br>mauvaise position de conduite (trop prêt du volant), <br>suite à incident, dégradation de l'état psychologique.</p>";

explanations[3][2]="<p align=\"center\"><b>Dégradation de l'état psychologique <br> Mauvaise position de conduite :</b><br>";
explanations[3][2]+="Tout incident, même minime, entraîne un retard dans la mission, un stress et une distraction qui peuvent amener le conducteur à des comportements inhabituels.<br>";
explanations[3][2]+="Une position de conduite inadaptée (conducteur trop près ou trop loin des commandes par exemple) augmente la fatigue et compromet la précision ainsi que la rapidité des gestes. Cela peut avoir des conséquences importantes notamment dans les situations d'urgence.</p>";

explanations[4][2]="<p align=\"center\"><b>Prévoir un coussin d'espace à l'arrêt :</b><br>";
explanations[4][2]+="Ce coussin permet dans notre cas de se dégager sans faire marche arrière. Dans tous les cas cet espace permet de se dégager plus facilement du véhicule immobilisé par une panne, un stationnement en double file ou de limiter la gravité d'un choc arrière, en ne heurtant pas le véhicule précédent. Cet espace permet aussi de faciliter la traversée de piétons en cas d'embouteillage.</p>";

explanations[5][2]="<p align=\"center\"><b>Utilisation du téléphone au volant - fumer au volant :</b><br>";
explanations[5][2]+="Toute tâche s'ajoutant ou se substituant à celle de la conduite présente un danger puisqu'elle détourne une partie de l'attention et de la vigilance du conducteur, l'obligeant bien souvent à effectuer des gestes \"parasites\", parfois incompatibles avec l'activité de conduite. Exemple : détournement du regard de la route pour rechercher un objet (cigarette, briquet, cassette audio... ou lâcher le volant pour mettre la radio, allumer une cigarette ou répondre au téléphone).<br>";
explanations[5][2]+="<br>En plus des gestes \"parasites\", évoqués ci-dessus, et des risques de brûlure, la fumée de cigarette entraîne :<br>";
explanations[5][2]+="<ul><li>un picotement des yeux,</li>";
explanations[5][2]+="<li>une augmentation de la fatigue due à l'accroissement d'oxyde de carbone (à moins d'aérer son véhicule),</li>";
explanations[5][2]+="<li>un \"film\" opaque sur l'intérieur des vitres qui gène la visibilité.</li></ul></p>";

explanations[6][2]="<p align=\"center\"><b>Mauvais placement pour être vu :</b><br>";
explanations[6][2]+="En présence d'une telle situation, le conducteur doit prévoir de se rendre visible pour les conducteurs des véhicules qui arrivent derrière :<br>";
explanations[6][2]+="<ul><li>Soit en se plaçant de manière à être vu le plus tôt possible (en serrant à droite ou à gauche),</li>";
explanations[6][2]+="<li>Soit en attendant qu'un véhicule arrive derrière avant d'avancer jusqu'à l'endroit où la visibilité est réduite (contenir la circulation à l'arrière).</li></ul></p>";

explanations[7][2]+="<p align=\"center\"><b>Pas d'échappatoire, le conducteur s'arrête trop près du véhicule qui précède</b><br>";
explanations[7][2]+="En serrant de trop près le véhicule qui est devant, le conducteur ne peut se dégager en cas de problème avec les véhicules suivants</p>";

explanations[8][2]="<p align=\"center\"><b>Surpris par la rue, manque d'anticipation :</b><br>";
explanations[8][2]+="La surprise du conducteur est le résultat d'une absence d'anticipation et de prévision face à une situation à risque. Face à une situation inattendue et faute de temps pour l'analyser en détail, il est préférable de jouer la carte \"sécurité\" : par exemple ici, continuer tout droit et faire le tour du pâté de maisons, plutôt que de tenter une hasardeuse manœuvre de changement de direction.</p>";

explanations[10][2]="<p align=\"center\"><b>Mauvaise tenue du volant <br>Matériel non arrimé sur le siège avant :</b><br>";
explanations[10][2]+="La main gauche placée à l'intérieur du volant limite l'amplitude de l'action sur le volant. Elle ne permet pas, le cas échéant, une manœuvre rapide de contre braquage. <br>De plus, en cas de choc, le risque de blessure au poignet et à l'avant bras est important.<br>Tout objet non arrimé sur le siège peut devenir un projectile dangereux en cas de choc ou de secousse brutale et perturber le conducteur qui tenterait de le retenir (lâcher du volant, détournement du regard).</p>";

explanations[12][2]="<p align=\"center\"><b>Respecter les incontournables de la conduite</b></p>";

explanations[0][3]="<p align=\"center\"><b>Pas de consigne pour le changement de véhicule :</b><br>";
explanations[0][3]+="l'absence de consigne banalise le changement de véhicule et n'attire pas l'attention du conducteur sur :<br>";
explanations[0][3]+="<ul><li>Les particularités d'un type de véhicule,</li>";
explanations[0][3]+="<li>Les différences entre un véhicule et un autre du même type,</li>";
explanations[0][3]+="<li>Programmer des entretiens avant de faire partir un conducteur avec un nouveau véhicule,</li>";
explanations[0][3]+="<li>Prévoir, avant la mission, un temps pour que le conducteur vérifie le véhicule, afin d'anticiper les mauvaises surprises.</li></ul></p>";

explanations[2][3]="<p align=\"center\"><b>Tour du véhicule non effectué : </b>poubelle sur la chaussée - sortie de stationnement en marche arrière.<br>";
explanations[2][3]+="Le tour du véhicule permet au conducteur de situer son véhicule par rapport à son environnement immédiat et de déplacer éventuellement les objets gênants pour éviter de les accrocher.<br>";
explanations[2][3]+="Le stationnement en marche avant : Le rangement en marche arrière lors d'un stationnement en \"bataille\" permet au conducteur d'avoir une meilleure visibilité, de sortir plus facilement du stationnement en lui évitant une manœuvre supplémentaire, d'avoir à faire un écart moins important sur la chaussée que lors d'un rangement en marche avant.</p>";

explanations[3][3]="<p align=\"center\"><b>Matériel non arrimé sur le siège avant :</b><br>";
explanations[3][3]+="Matériel non stabilisé sur le siège avant et qui peut chuter si le véhicule passe sur un dos d'âne, une dénivellation ou en cas de freinage brusque au risque de déconcentrer le conducteur qui voudra soit les rattraper, soit voir ce qui se passe à ses cotés.</p>";

explanations[4][3]="<p align=\"center\"><b>Choix d'un itinéraire embouteillé :</b><br>";
explanations[4][3]+="Le choix judicieux d'un itinéraire limitant les embouteillages et les passages difficiles permet de gagner du temps et d'éviter le stress.</p>";

explanations[5][3]="<p align=\"center\"><b>Stress dû à la façon dont est transmis le message \"urgent\" :</b><br>";
explanations[5][3]+="Il est préférable de préparer les itinéraires avant.</p>";

explanations[6][3]="<p align=\"center\"><b>Mission imprévue sur un itinéraire inconnu :</b><br>";
explanations[6][3]+="Le caractère imprévu d'un déplacement ne permet pas au conducteur d'étudier l'itinéraire à l'avance. Il lui faut donc chercher sa route en détectant successivement les indices visuels qui lui ont été donnés comme points de repère. Il s'agit d'un travail d'attention, de détection et d'interprétation s'ajoutant à la tâche normale de conduite, et en présence duquel le conducteur doit prendre garde, en adaptant son allure, de ne pas arriver à saturation de sa capacité de vigilance.</p>";

explanations[10][3]="<p align=\"center\"><b>Matériel non arrimé sur le siège avant :</b><br>";
explanations[10][3]+="Tout objet non arrimé sur le siège peut devenir un projectile dangereux en cas de choc ou de secousse brutale et perturber le conducteur qui tenterait de le retenir (lâcher du volant, détournement du regard).</p>";

explanations[12][3]="<p align=\"center\"><b>Consignes claires au niveau organisation collective <br>d' pour que :</b><br>";
explanations[12][3]+="<ul><li>le responsable d'équipe prépare et affecte les missions en fonction des lieux, des équipes, des itinéraires,</li>";
explanations[12][3]+="<li>le conducteur prépare ses itinéraires, contrôle son véhicule, dispose ses documents et matériels sans risque.</li></ul></p>";

explanations[5][4]="<p align=\"center\"><b>Téléphone interdit en circulation :</b><br>";
explanations[5][4]+="Le fait d'utiliser son téléphone portable en conduisant distrait l'attention du conducteur et gène sa conduite.</p>";

explanations[9][3]="<p align=\"center\"><b>Si on cherche une rue, ne pas rouler trop vite afin de ne pas être surpris ou risquer de surprendre les autres par une manoeuvre non signalée.</b><br>";
explanations[9][4]="<p align=\"center\"><b>Passage au feu rouge ou orange \"bien mûr\" :</b><br>";
explanations[9][4]+="Le code précise que tout conducteur doit marquer un arrêt devant un feu orange excepté si, lors du passage à l'orange, le véhicule ne peut plus être arrêté dans des conditions de sécurité suffisantes.</p>";


//-----------------------------------------------------------------------------
// Fonction    : Choose
// Paramètres  : value / int   / Réponse apportée
// Retour      : reponse / bool / réponse vraie ou fausse
// Description : Traite la réponse apportée par un utilisateur
//-----------------------------------------------------------------------------
function Choose (value)
{
  //obtention de la question courante
  var currentQuestion=this.CurrentQuestion.value;
  var point = points[currentQuestion][value];
  var reponse = false;
  var retour_cookie = false;
  
   // Calcule si la réponse est correcte
  if (point==0)
  {
    //mauvaise réponse
    reponse=false;
  }
  else{
    //bonne réponse
    reponse=true;
  }

  // Mémorise la réponse dans un cookie
  retour_cookie=SetCookie(answers+"["+currentQuestion+","+value+"]",point, null);
  
  if(retour_cookie==false){
  	//le navigateur n'accepte pas les cookies
  	//ouverture d'une fenêtre pour informer l'utilisateur
  	window.open('information_securite_cookie.htm', nom_fenetre_info_cookie, parametres_fenetre_info_cookie);
  }
  
  //retour réponse
  return reponse;
}

//-----------------------------------------------------------------------------
// Fonction    : OpenWindowsAnswer
// Paramètres  : indexChoice / int / index VECOR
// Retour      : aucun
// Description : Ecrit dans la page la raison de la bonne réponse
//-----------------------------------------------------------------------------
function OpenWindowsAnswer (choix,nom,taille,menu,barre,contracter)
{
  //màj de la question courante pour le popup
  var currentQuestion=this.CurrentQuestion.value;
  var retour_cookie= false;
  retour_cookie=SetCookie(question, currentQuestion, null);

  if(retour_cookie==false){
  	//le navigateur n'accepte pas les cookie
  	//ouverture d'une fenêtre pour informer l'utilisateur
  	window.open('information_securite_cookie.htm', nom_fenetre_info_cookie, parametres_fenetre_info_cookie);
   }
  else{
        //le navigateur accepte les cookies
  
	  if(Choose(choix) == true){
		switch (choix) {
		case 0:
		 	window.open('vehicule.htm', nom, taille ,menu,barre, contracter);
		 	break;
		case 1:
			window.open('environnement.htm', nom, taille ,menu,barre, contracter);
			break;
		case 2:
		 	window.open('conducteur.htm', nom, taille ,menu,barre, contracter);
		 	break;
		case 3:
		 	window.open('organisation.htm', nom, taille ,menu,barre, contracter);
		 	break;
		case 4:
		 	window.open('reglementation.htm', nom, taille ,menu,barre, contracter);
		 	break;
		default:
			window.open('erreur.htm', nom, taille ,menu,barre, contracter);
		}
	  }
	  else{
		window.open('erreur.htm', nom, taille ,menu,barre, contracter);
	  }
  }
}

//-----------------------------------------------------------------------------
// Fonction    : DisplayExplanation
// Paramètres  : indexChoice / index / VECOR
// Retour      : aucun
// Description : Ecrit dans la page la raison de la bonne réponse
//-----------------------------------------------------------------------------
function DisplayExplanation(indexChoice)
{
  //Obtention de la question courante
  var currentQuestion = GetCookie(question);
  var explanation = explanations[currentQuestion][indexChoice];

  //ecriture de l'explication
  document.writeln(explanation);
}

//-----------------------------------------------------------------------------
// Fonction    : DisplayScore
// Paramètres  : aucun
// Retour      : aucun
// Description : Construit le tableau des scores
//-----------------------------------------------------------------------------
function DisplayScore()
{
  var indexQuestion=0;
  var indexChoice=0;
  // Score réalisé et maximum possible
  var compteurBonnesReponses=0;
  var compteurMauvaisesReponses=0;

  // Les scores
  for (indexQuestion=0; indexQuestion<nbQuestions; indexQuestion++)
  {
	for (indexChoice=0; indexChoice>nbChoices; indexChoice++)
	{
	  // Réponses, score et explications
	  var answer = GetCookie(answers+"["+indexQuestion+","+indexChoice+"]");
	  var point = points[indexQuestion][indexChoice];
	  
	  //comptabilisation des bonnes et mauvaises réponses
	  if (answer!=null)
	  {
	    if(point==1){
	    	compteurBonnesReponses++;
	    }
	    else{
	    	compteurMauvaisesReponses++;
	    }
	   }
	}
      
  }

document.writeln("Nbre de bonnes r&eacute;ponses : <font color=\"#669933\">"+compteurBonnesReponses+"</font><br>");
document.writeln("Nbre de mauvaises r&eacute;ponses : <font color=\"#FF0000\">"+compteurMauvaisesReponses+"</font><br>");
}
//-----------------------------------------------------------------------------
// Fonction    : CleanCookies
// Paramètres  : aucun
// Retour      : aucun
// Description : efface les cookies
//-----------------------------------------------------------------------------
function CleanCookies()
{
  var today = new Date()
  var expires = new Date() ;
  expires.setTime(today.getTime()- 1000*60*60*24*365);
 
  // Les scores
  for (indexQuestion=0; indexQuestion<nbQuestions; indexQuestion++)
  {
	for(indexChoice=0; indexChoice>nbChoices; indexChoice++)
	{
	  // Réponses, score et explications
	  SetCookie(answers+"["+indexQuestion+","+indexChoice+"]",null, expires);
	}
      
  }
}
