
var test_param=new(test_param_classe);
reponses_niveau_0 = new Array();
reponses_niveau_1 = new Array();


var global_id_bulle_courante = null;
function get_id_bulle_courante(){return global_id_bulle_courante;}
function set_id_bulle_courante(id){global_id_bulle_courante = id;}

var timer_bulle = null;

function make_id_bloc(num_bloc, niveau) {return('bloc_' + num_bloc + '' + niveau);}
function make_id_question_bloc(num_bloc, niveau) {return('question_bloc_' + num_bloc + '_' +  niveau);}

var nb_reponses_niveau_0 = 0;
var nb_reponses_niveau_1 = 0;

// ------------------------------------------------------
function objet_definir_opacite(objet, opacite){
	if(objet.style.opacity) objet.style.opacity = opacite; //W3C
	else if(objet.style.filter) objet.style.filter.alpha.opacity = opacite*100; //IE
	else if(objet.style.MozOpacity) objet.style.MozOpacity = opacite; //Ffx
	else if(objet.style.KhtmlOpacity) objet.style.KhtmlOpacity = opacite; //Konqueror Safari
}

// ------------------------------------------------------
function test_param_classe(){
	this.mode_entrainement = 0;
	this.ouv_nb = 0;
	this.cle_nb = 0;
	this.reponses=new Array;
	this.entrainement=0;
	this.nb_reponses_niveau_0 = 0;
	this.nb_reponses_niveau_1 = 0;

	this.initialiser = function(){
		var id, num_bloc, niveau;

		for (num_bloc=1; num_bloc<=5; num_bloc++){
			for (niveau=0; niveau<=1; niveau++){
				id=make_id_question_bloc(num_bloc, niveau);
				test_param.reponses[id]=-1;
			}
		}
		// cas particulier de la reponse 2
		//test_param.reponses[322]=-1;
	}

}



/***************************************************
 * Gestion des réponses en mode Entraînement
***************************************************/

//textes Niveau 0
var bloc_txt_10="<span class='lettrine'>T</span>raumatologie";
var bloc_txt_20="<span class='lettrine'>S</span>ommeil";
var bloc_txt_30="<span class='lettrine'>S</span>tress scolaire";
var bloc_txt_40="<span class='lettrine'>S</span>tress familial";
var bloc_txt_50="<span class='lettrine'>T</span>abac";

//questions Niveau 0
var txt_question_bloc_1_0 = "<br>As-tu eu des soins pour une blessure ou une entorse cette année ?";
var txt_question_bloc_2_0 ="<br>As-tu des difficultés à t'endormir le soir ?";
var txt_question_bloc_3_0 ="<br>Es-tu stressé par le travail scolaire ?";
var txt_question_bloc_4_0 ="<br>Es-tu stressé par la vie de famille ?";
var txt_question_bloc_5_0 ="<br>As-tu déjà fumé ? (même si tu as arrêté)";

//textes Niveau 1
var bloc_txt_11="<span class='lettrine'>A</span>gressé";
var bloc_txt_21="<span class='lettrine'>C</span>auchemar";
var bloc_txt_31="<span class='lettrine'>A</span>bsentéisme";
var bloc_txt_41="<span class='lettrine'>R</span>essenti <span class='lettrine'>D</span>ésagréable";
var bloc_txt_51="<span class='lettrine'>F</span>ume";


//textes Niveau 2
var txt_question_bloc_1_1="As-tu été victime d'une agression physique ?";
var txt_question_bloc_2_1="Fais-tu souvent des cauchemars ?";
var txt_question_bloc_3_1="Es-tu souvent absent ou en retard à l'école ?";
var txt_question_bloc_4_1="Dirais-tu que ta vie familiale est désagréable ?";
var txt_question_bloc_5_1="Fumes-tu tous les jours<br>du tabac ?";

//textes Niveau 3
var bloc_txt_13="Ressenti des soins<br>pour patho organiques";
var bloc_txt_23="Vie psychique, rêves et croyances";
var bloc_txt_33="L'école, ou le travail, les copains, l'amitié, le confident.";
var bloc_txt_43="Territoires familiaux, les modes relationnels et leurs changements.";
var bloc_txt_53="Les consommations,<br>les sources de plaisirs,<br>la vie intime, sexuelle";



//------------------------------------------------
function bloc_afficher(num_bloc, niveau){

	var id=make_id_bloc(num_bloc, niveau);
	var classe="bloc_cacher";
	
	if (niveau==0)
			return(afficher_bloc_niveau_0(num_bloc));
	
	if(niveau==1)
		return(afficher_bloc_niveau_1(num_bloc));
	
	classe='niveau_' + niveau;

	var htm='<div id="bloc_' + id + '" class="' + classe + '">';
	htm+='<table><tr><td>';
	htm+=eval('bloc_txt_' + id);
	if (niveau<=2){
		htm+='<div style="margin-top:4px;margin-bottom:4px" id="bloc_choix_' + id + '">';
		htm+='<a class="reponse_active" id="rep_' + id + '_1" href="javascript:analyser_reponse(' + num_bloc + ',' + niveau + ',1,1);">OUI</a>';
		htm+=' - ';
		htm+='<a class="reponse_active" id="rep_' + id + '_0" href="javascript:analyser_reponse(' + num_bloc + ',' + niveau + ',0,1);">NON</a>';

		//cas particilier du bloc 3 avec 2 réponses
		/*if (niveau==2 && num_bloc==3){
			htm+= '<br/><br/>' + bloc_txt_322;
			htm+='<div style="margin-top=5px" id="bloc_choix_322">';
			htm+='<a id="rep_' + id + '2_1" href="javascript:analyser_reponse(' + num_bloc + ',' + niveau + ',1,2);">OUI</a>';
			htm+=' - ';
			htm+='<a id="rep_' + id + '2_0" href="javascript:analyser_reponse(' + num_bloc + ',' + niveau + ',0,2);">NON</a>';
			htm+='</div>';
		}*/

		htm+='</div>';
	}


	htm+='</td></tr></table></div>';
	document.write(htm);
}

//------------------------------------------------
// Création et affichage des blocs de niveau 0 (thèmes de base du TSTS)
function afficher_bloc_niveau_0(num_bloc)
{
var s = "";
var id = make_id_bloc(num_bloc, 0);
var txt = eval('bloc_txt_' + num_bloc + '0');

s = '<div id="' + id + '" class="niveau_0" ';
s += ' onmouseover="rollover_bloc(' + num_bloc + ', 0);"';
s += ' onmouseout="rollout_bloc(' + num_bloc + ', 0);">';
s += txt;
s += '</div>';

document.write(s);
}


//------------------------------------------------
// Création et affichage des blocs de niveau 1 (thèmes de base du CAFARD)
function afficher_bloc_niveau_1(num_bloc)
{
var s = "";
var id = make_id_bloc(num_bloc, 1);
var txt = eval('bloc_txt_' + num_bloc + '1');

s = '<div id="' + id + '" class="cacher" ';
s += ' onmouseover="rollover_bloc(' + num_bloc + ', 1);"';
s += ' onmouseout="rollout_bloc(' + num_bloc + ', 1);">';
s += txt;
s += '</div>';

document.write(s);
}


//------------------------------------------------
// affichage d'une question sur un niveau
function rollover_bloc(num_bloc, niveau)
{
if (niveau==0)
	return(rollover_bloc_niveau_0(num_bloc));
	
if(niveau==1)
	return(rollover_bloc_niveau_1(num_bloc));
}


//------------------------------------------------
// au rollover, affichage de la question
function rollover_bloc_niveau_0(num_bloc)
{
var id;
var id_bulle_courante = get_id_bulle_courante();

// si tout répondu aux question d'ouverture, proposer les questions clé cafard
if(TSTS_termine())
	{
	if(get_reponse_question(num_bloc, 0) == 1)
		return(rollover_bloc_niveau_1(num_bloc));
	}	

id = make_id_question_bloc(num_bloc, 0);
if(id == id_bulle_courante)
	{
	if(timer_bulle)
		{
		clearTimeout(timer_bulle); 
		timer_bulle = null;
		}
	return;
	}
	
cacher_bulle(id_bulle_courante);

montrer_bulle(id, 0);
set_id_bulle_courante(id);

}

//------------------------------------------------
// au rollover, affichage de la question
function rollover_bloc_niveau_1(num_bloc)
{
var id;
var id_bulle_courante = get_id_bulle_courante();

// s'il reste des question TSTS, rediriger vers le niveau 0
if(TSTS_termine() == false)
	return(rollover_bloc_niveau_0(num_bloc));


id = make_id_question_bloc(num_bloc, 1);
if(id == id_bulle_courante)
	{
	if(timer_bulle)
		{
		clearTimeout(timer_bulle); 
		timer_bulle = null;
		}
	return;
	}


cacher_bulle(id_bulle_courante);
montrer_bulle(id, 1);
set_id_bulle_courante(id);

}


//------------------------------------------------
// effecement d'une question sur un niveau
function rollout_bloc(num_bloc, niveau)
{
if (niveau==0)
	return(rollout_bloc_niveau_0(num_bloc));
	
if(niveau==1)
	return(rollout_bloc_niveau_1(num_bloc));
}


//------------------------------------------------
// effacement temporisé de la question
function rollout_bloc_niveau_0(num_bloc)
{
var id = make_id_question_bloc(num_bloc, 0);

expr = 'cacher_bulle("' + id + '");';
if(timer_bulle)
	clearTimeout(timer_bulle);
timer_bulle = setTimeout(expr, 1000);
}

//------------------------------------------------
// effacement temporisé de la question
function rollout_bloc_niveau_1(num_bloc)
{
var id = make_id_question_bloc(num_bloc, 1);

expr = 'cacher_bulle("' + id + '");';
if(timer_bulle)
	clearTimeout(timer_bulle);
timer_bulle = setTimeout(expr, 1000);
}

//------------------------------------------------
function cacher_bulle(id)
{
var q = objet_adresse(id);
if(!q)
	return;

q.className='cacher';
set_id_bulle_courante(null);	
}

//------------------------------------------------
function montrer_bulle(id, niveau)
{
var q = objet_adresse(id);
if(!q)
	return;
q.className='question_niveau_' + niveau;
set_id_bulle_courante(id);	
}

//------------------------------------------------
// Création des questions pour le niveau 0
// Ne sont pas affiché à la création, mais lors du rollover sur le bloc de niveau 0 associé
function afficher_question_bloc_niveau_0(num_bloc)
{
var s = "";
var id = make_id_question_bloc(num_bloc, 0);
var txt = eval('txt_' + id);

s = '<div id="' + id + '" class="cacher" ';
s += ' onmouseover="rollover_bloc(' + num_bloc + ', 0);"';
s += ' onmouseout="rollout_bloc(' + num_bloc + ', 0);">';

s += '<table valign="middle"><tr><td>';
s += txt;
s += '<br><br>';
s += html_oui_non(num_bloc, 0);
s += '</td></tr></table>';

s += '</div>';
document.write(s);
}

//------------------------------------------------
// Création des questions pour le niveau 1 (questions  du CAFARD)
// Ne sont pas affiché à la création, mais lors du rollover sur le bloc de niveau 1 associé
function afficher_question_bloc_niveau_1(num_bloc)
{
var s = "";
var id = make_id_question_bloc(num_bloc, 1);
var txt = eval('txt_' + id);

s = '<div id="' + id + '" class="cacher" ';
s += ' onmouseover="rollover_bloc(' + num_bloc + ', 1);"';
s += ' onmouseout="rollout_bloc(' + num_bloc + ', 1);">';

s += '<table valign="middle"><tr><td>';
s += txt;
s += '<br><br>';
s += html_oui_non(num_bloc, 1);
s += '</td></tr></table>';

s += '</div>';
document.write(s);
}

//------------------------------------------------
// éganration du html pour creer les boutons oui / non d'une question
function html_oui_non(num_bloc, niveau)
{
var s = "";

s +=  '<div style="margin-top:4px;margin-bottom:4px" id="bloc_choix_' + num_bloc + niveau + '">';
s += '<a class="reponse_active" id="rep_' + num_bloc + niveau + '_oui" href="javascript:analyser_reponse(' + num_bloc + ',' + niveau + ',1,1);">OUI</a>';
s += ' - ';
s += '<a class="reponse_active" id="rep_' + num_bloc + niveau + '_non" href="javascript:analyser_reponse(' + num_bloc + ',' + niveau + ',0,1);">NON</a>';

return s;
}



//------------------------------------------------
// analyse de la reponse oui / non pour une question de niveau 1 ou 2 )
function analyser_reponse(num_bloc, niveau, reponse,num_question)
{
var id = make_id_question_bloc(num_bloc, niveau);

// force effacement bulle;
cacher_bulle(id);

test_param.reponses[id] = reponse;

// maj de l'affichage du bloc de niveau inf
maj_affichage_bloc(num_bloc, niveau);

// màj des cacluls et affichage du score
score_afficher();

if(TSTS_termine())
	{
	// consigne CAFARD si il y a au moins une question d'ouverture (niveau 0) répondu oui
	if(test_param.ouv_nb >0)
		afficher_consigne_cafard();
	montrer_blocs_niveau1_si_oui(); // changement; les blocs de niveau 1 ne s'affichent qu' partir di moment ou le TSTS est terminé)
	}
	

}

//------------------------------
// true si toutes les questions niveau 0 répondues
function TSTS_termine()
{
return test_param.nb_reponses_niveau_0 >= 5;
}

//------------------------------ not used ?
function compter_reponses_niveau_1()
{
return reponses_niveau_1.length;
}

//------------------------------ changement de la consigne, 2 eme phase
function afficher_consigne_cafard()
{
var layer;

layer_ecrire_contenu("consigne", "Posez maintenant les questions &quot;clés de gravité&quot; (CAFARD).", null);
layer_ecrire_contenu("sous_titre", '<font color="#ff0000"><span class="lettrine">CAFARD</span> : les questions &quot;clés de gravité&quot;</font>', null);
}


//------------------------------
function afficher_consigne_finale()
{
var layer;

layer_ecrire_contenu("conclusion", "Votre patient se situe dans le groupe \"à risque\"<br>indiqué par la colonne rose du graphique.", null);
}


//------------------------------
// Appelée lorsque le niveau 0 est terminé (TSTS)
// affiche les blocs de niveau 1 ssi le bloc de n° 0 associé a une reponse "oui"
function montrer_blocs_niveau1_si_oui()
{
for (num_bloc=1; num_bloc<=5; num_bloc++)
	{
	id = make_id_bloc(num_bloc, 1)
	rep_0 = get_reponse_question(num_bloc, 0);
	// si oui repondu au niv 0
	if(rep_0 == 1)
		{
		// afficher le niveau 1 (selon la reponse a ce niveau s'il y en déjà eu une)
		rep_1 = get_reponse_question(num_bloc, 1);
		if(rep_1 == 1)
			maj_affichage_bloc_niveau_1(num_bloc, rep_1);
		//affichage neutre (bleu) si pas encore de réponse;	
		if(rep_1 == -1)// non repondu niveau 1
			montrer_bloc_niveau_1(num_bloc);	
		}
	}
	
	

}
//------------------------------
// passage mode garçon / fille
function change_sexe(checkbox){
	checkbox.checked=true;
	if(checkbox.id == "check_fille")
		objet_adresse("check_garcon").checked = false;
	else
		objet_adresse("check_fille").checked = false;
	graphique_afficher();
}


//------------------------------
// colorier en rouge/orange ou vert un bloc selon la réponse donnée à la qustion associée
function maj_affichage_bloc(num_bloc, niveau)
{
var id=make_id_question_bloc(num_bloc, niveau);

reponse=test_param.reponses[id];

if(niveau == 0)
	maj_affichage_bloc_niveau_0(num_bloc, reponse);

if(niveau == 1)
	maj_affichage_bloc_niveau_1(num_bloc, reponse);

}

//------------------------------
function maj_affichage_bloc_niveau_0(num_bloc, reponse)
{
var id=make_id_bloc(num_bloc, 0);
var bloc = objet_adresse(id);

if(!bloc)
	return;

// oui répondu, traiter ce niveau
if (reponse==1)
	{
	bloc.className = 'niveau_0_rouge';
	//montrer_bloc_niveau_1(num_bloc); // changement; on n'affiche plus le niveau 1 correspondant (on le fera une fois que TSTS termine)
	}
// non repondu, traiter ce niveau et le supérieur
if (reponse==0)
	{
	bloc.className = 'niveau_0_vert';
	cacher_bloc_niveau_1(num_bloc);
	}

}

//------------------------------
function maj_affichage_bloc_niveau_1(num_bloc, reponse)
{
var id=make_id_bloc(num_bloc, 1);
var bloc = objet_adresse(id);

if(!bloc)
	return;


// oui répondu, 
if (reponse==1)
	{
	bloc.className = 'niveau_1_rouge';
	}
// non repondu, 
if (reponse==0)
	{
	bloc.className = 'niveau_1_orange';
	}

}

//------------------------------
// Affichage "neutre" des termes du CAFARD
function montrer_bloc_niveau_1(num_bloc)
{
var id=make_id_bloc(num_bloc, 1);
var bloc = objet_adresse(id);

if(!bloc)
	return;

bloc.className = 'niveau_1';
}

//------------------------------
// Cache les termes du CAFARD (blocs niveau 1)
function cacher_bloc_niveau_1(num_bloc)
{
var id=make_id_bloc(num_bloc, 1);
var bloc = objet_adresse(id);

if(!bloc)
	return;

bloc.className = 'cacher';
}


//------------------------------
function reponses_maj(id_bloc, reponse){

	var id='rep_' + id_bloc + '_1';

	var obj=objet_adresse(id);
	if (obj)
		if (reponse==1) obj.className="reponse_selectionnee"; else obj.className="reponse_active";

	id='rep_' + id_bloc + '_0';
	obj=objet_adresse(id);
	if (obj)
		if (reponse==0) obj.className="reponse_selectionnee"; else obj.className="reponse_active";

}

function get_reponse_question(num_bloc, niveau)
{
var id=make_id_question_bloc(num_bloc, niveau);
var rep=test_param.reponses[id];

return rep;
}
//------------------------------
function score_afficher(){
	var id, num_bloc, niveau;

	test_param.ouv_nb=0;
	test_param.cle_nb=0;
	test_param.nb_reponses_niveau_0 = 0;
	test_param.nb_reponses_niveau_1 = 0;
	for (num_bloc=1; num_bloc<=5; num_bloc++)
		{
		for (niveau=0; niveau<2; niveau++)
			{
			rep = get_reponse_question(num_bloc, niveau);
			if (rep>0)
				{
				if (niveau==0)
					test_param.ouv_nb+=rep;
				if (niveau==1)
					test_param.cle_nb+=rep;
				}
			if(rep >= 0)
				{
				if(niveau == 0)
					test_param.nb_reponses_niveau_0 ++;		
				if(niveau == 1)
					test_param.nb_reponses_niveau_1 ++;			
				}	
			}
		}
var txt = '<table width="300"><tr height="20"><td width="100" align="right">';	
txt += '<span class="libelle_score">TSTS :</span></td><td align="left">';
txt += '<span class="boite_score">' + test_param.ouv_nb + '</span>';
txt += '</td></tr><tr height="20"><td width="100" align="right">';
txt += '<span class="libelle_score">CAFARD :</span></td>';
txt += '<td><span class="boite_score">' + test_param.cle_nb + '</span>';
txt += '</td></tr></table>';

layer_ecrire_contenu("score", txt, null);

if(TSTS_termine() == false)
	objet_adresse("zone_gauche").className="cacher";
else
	{
	// montrer le compteur, le graphique, etc ...
	objet_adresse("zone_gauche").className="";
	// afficher le consigne cafard ssi il y a des oui aux questions d'ouverture
	if(test_param.ouv_nb >0)
		{		
		afficher_consigne_finale();
		}
	}

if(TSTS_termine() == true /*&& if test_param.ouv_nb >0*/)
	{
	objet_adresse("texte_intro").className="cacher"	
	graphique_afficher();
	}
}


//------------------------------
function graphique_colonne_calculer(ouv_nb, cle_nb){

	if (cle_nb>=1){
		if (ouv_nb==2) return(4);
		return(Math.min(cle_nb+3, 6));
	}
	return(Math.min(ouv_nb+1, 3));

}

//------------------------------
function graphique_afficher(){
	var html;

	objet_adresse("zone_gauche").className="";

	var col = graphique_colonne_calculer(test_param.ouv_nb, test_param.cle_nb);

	if (objet_adresse("check_fille").checked)
		{
		html='<table  style="height:256px;background-image:url(\'../images/tsts/tsts_graph_f.gif\');background-repeat:no-repeat">';
		}
	else	
		{
		html='<table  border="0" style="height:256px;background-image:url(\'../images/tsts/tsts_graph_g.gif\');background-repeat:no-repeat">';
		}

	html+='<tr>';
	html+='<td style="width:15px;">&nbsp;</td>';
	for (i=1;i<=6;i++){
		if (i==col) classe=' class="graph_risque_mev"'; else classe="";
		html+='<td' + classe + ' style="height:238px; width:45px;">&nbsp;</td>';
	}
	html+='</tr><tr>';
	html+='<td colspan="7" style="height:30px"</td>';
	html+='</tr></table>';
	
	if (objet_adresse("check_fille").checked)
		{
		html += '<span class="texte_corps_bloc" style="margin-left:20px; padding-top:0px;text-align:left; float:left;"> Pourcentage de <u>filles</u> ayant<br> - eu des idées suicidaires &nbsp; <img src="../images/tsts/orange.gif"><br> - fait des tentatives de suicide &nbsp; <img src="../images/tsts/rouge.gif"><br>selon les réponses au test.';
		html += '<br><p style="text-align:left;margin-left:10px" class="citation">Binder Ph. Chabaud F. Dépister les conduites suicidaires des adolescents. Conception d\'un test et validation de son usage (I) et (II).<br>La Revue du Praticien Médecine Générale . avril 2004; 18, n°650/651.p576-580. et n° 652/653 p641-645</p></span>';
		html += '<a target="_blank" href="../docs/TSTS79_art_RdP_1.pdf">article 1</a> / <a target="_blank" href="../docs/TSTS79_art_RdP_2.pdf">article 2</a>';
		}
	else	
		{
		html += '<span class="texte_corps_bloc" style="margin-left:20px; padding-top:0px;text-align:left; float:left;"> Pourcentage de <u>garçons</u> ayant<br> - eu des idées suicidaires &nbsp; <img src="../images/tsts/orange.gif"><br> - fait des tentatives de suicide &nbsp; <img src="../images/tsts/rouge.gif"><br>selon les réponses au test.';
		html += '<br><p style="text-align:left;margin-left:10px" class="citation">Binder Ph. Chabaud F. Dépister les conduites suicidaires des adolescents. Conception d\'un test et validation de son usage (I) et (II).<br>La Revue du Praticien Médecine Générale . avril 2004; 18, n°650/651.p576-580. et n° 652/653 p641-645</p></span>';
		html += '<a target="_blank" href="../docs/TSTS79_art_RdP_1.pdf">article 1</a> / <a target="_blank" href="../docs/TSTS79_art_RdP_2.pdf">article 2</a>';
		}

	objet_adresse("graph_risque").innerHTML=html;
}



