/***********************************************************************
	Subsections.js-v3.9
	Nom de fichier : subsections.js 
	
	Créé le 10/03/2006 par Jonathan Linotte
	Editeur : Quanta+ 3.4
	Encodage : utf_8
	Dernière modification : 25/10/2007
	
	Comportement : Affichage des sous_sections
	
	***********************************************************************/
	//v3.6 : ajout d'un test de largeure de page dans l'adaptation du style pour Iexplorer pour le positionnement du titre
	//v3.5 : ajout de la fonction changeTitle pour adapter le title des liens d'affichage des sousections et affectation du title dans a ses liens d'affichage et de fermeture dans la fonction d'initialisation des variables
	//v3.7 reinitialise les titles des lien d'affichage des subsections en les fermant (dans la fonction d'affichage des subsection)
	//v3.8 insertion des association ?l?ments=?venement=r?action dans la fonction d'initialisation des variables
	//v3.9 s?paration de la fonction ecouteEvenements de la fonction init variable
	
	
	
	
	//lance la fonction d'initialisation au chargement de la page
	window.onload = init;
	
	
	
	//d?claration des variables globales
	//	divs, tableau contenant tous les ?l?ments div de la page html
	//	subsection, tableau contenant tous les ?l?ments subsection de la page
	// 	liensAffichageSubsection,  tableau contenant tous les liens d'affichages des subsections
	//	liensCacheSubsection,  tableau contenant tous les liens de fermeture des subsections
	var divs, subsections, liensAffichageSubsection, liensCacheSubsection;
	
	
	
	//fonction d'initialisation
	function init() {
	
	//lance la fonction d'initialisation des variables
	initVariables();
	//lance la fonction d'adaptation du style pour Internet Explorer
	//adapteStyle();
	//lance la fonction d'association ?l?ment-?venement-r?action
	ecouteEvenements() ;
	}
	
	
	
	
	//fonction d'initialisation et affectation des variables globales
	function initVariables() {
	
	//d?claration des variables locales spans pour tous les span de la page, j, k et m : indices de parcour de tableaux
	var j=0 , spans, k=0, m=0;
	
	//affectation du tableau des ?l?ments divs ? sa variable
	divs = document.getElementsByTagName('div');
	
	//initialisation du tableau des subsections
	subsections = new Array ;
	// construction du tableau des subsections avec une boucle dans laquelle on teste si il y a dans le nom du div la chaine 'subsection_'
	for (i=0; i<divs.length; i++) if(divs[i].id.indexOf('subsection_') >= 0) subsections[j++] = divs[i] ;
		//boucle pour cr?er des variables globales des ?l?ments divs avec comme identifiant l'id de l'?l?ment
		for (i=0; i<divs.length; i++) window[divs[i].id] = divs[i] ;
					 
					 //affectation du tableau des ?l?ments span ? sa variable
					 spans = document.getElementsByTagName('span');
					 
					 //initialisation du tableau des liens d'affichage des subsections
					 liensAffichageSubsection = new Array ;
					 // construction du tableau des liens d'affichage des subsections avec une boucle dans laquelle on teste si il y a dans le nom du span la chaine 'affiche_'
					 for (i=0; i<spans.length; i++) if(spans[i].id.indexOf('affiche_') >= 0) liensAffichageSubsection[k++] = spans[i] ;
						 //affectation du title au liens d'affichage des soussections
						 for (i=0; i<liensAffichageSubsection.length; i++) liensAffichageSubsection[i].title = 'Cliquez pour voir des détails' ;
										//boucle pour cr?er des variables globales des liens d'affichage des subsections avec comme identifiant l'id du lien
										for (i=0; i<liensAffichageSubsection.length; i++) window[liensAffichageSubsection[i].id] = liensAffichageSubsection[i] ;
										
										//initialisation du tableau des liens de fermeture des subsections
										liensCacheSubsection = new Array ;
										// construction du tableau des liens de fermeture des subsections avec une boucle dans laquelle on teste si il y a dans le nom du span la chaine 'cache_'
										for (i=0; i<spans.length; i++) if(spans[i].id.indexOf('cache_') >= 0) liensCacheSubsection[m++] = spans[i] ;
										//affectation du title au liens de fermeture des soussections
										for (i=0; i<liensCacheSubsection.length; i++) liensCacheSubsection[i].title = 'Cliquez pour fermer les détails' ;
										//boucle pour cr?er des variables globales des liens de fermeturee des subsections avec comme identifiant l'id du lien
										for (i=0; i<liensCacheSubsection.length; i++) window[liensCacheSubsection[i].id] = liensCacheSubsection[i] ;
										}
										
										
										
										//fonction d'association ?l?ment-?venement-r?action
										function ecouteEvenements() {
										
										//boucle pour associer l'affichage des soussections au click sur les liens d'affichage
										for (i=0; i<liensAffichageSubsection.length; i++){
										liensAffichageSubsection[i].onclick = changeAffichage;
										//style le lien au survol de la souris (pour IE)
										liensAffichageSubsection[i].onmouseover = styleLien ;
										//enleve le style a la fin du survol
										liensAffichageSubsection[i].onmouseout = enleveStyleLien ;
										}
										
										//boucle pour associer la fermeture des soussections au click sur les liens de fermeture
										for (i=0; i<liensCacheSubsection.length; i++){
										liensCacheSubsection[i].onclick = function () {
										fermer(this.id.slice(6)) ;	
										}
										//style le lien au survol de la souris (pour IE)
										liensCacheSubsection[i].onmouseover = styleLien ;
										//enleve le style a la fin du survol
										liensCacheSubsection[i].onmouseout = enleveStyleLien ;
										}
										}
										function changeAffichage() {
										for (i=0; i<subsections.length; i++ ) subsections[i].style.display = 'none';
										//affiche les lien pour fermer les soussections
										for (i=0; i<liensCacheSubsection.length; i++) liensCacheSubsection[i].style.display = 'inline' ;
										switch (window[this.id.slice(8)].style.display) {
										//association de la fonction affiche au click sur le lien d'affichage
										case 'none' :
										affiche(this.id.slice(8)) ;
										break;
										//association de la fonction de fermeture au click sur le lien d'affichage	
										case 'block' :
										fermer(this.id.slice(8)) ;
										break ;
										}
										}
										
										
										//Fonctions d'affichage des sous_sections
										function affiche(subsection) {
										
										//cache les autre blocs subsection
										
										//et reinitialise les titles
										for (i=0; i<liensAffichageSubsection.length; i++ ) changeTitle('ouvrir', window[liensAffichageSubsection[i].id]) ;
										
										//Affiche le bloc
										window[subsection].style.display = "block" ;
										
										//change le title du lien d'affichage
										changeTitle('fermer', window['affiche_'+subsection]) ;
										}
										
										
										//Fonctions de fermeture des sous_sections
										function fermer(subsection) {
										
										window[subsection].style.display = "none" ;
										
										//change le title du lien d'affichage
										changeTitle('ouvrir', window['affiche_'+subsection]) ;
										}
										
										
										
										//fonction de changement du title
										function changeTitle(mode, elt) {
										switch (mode) {
										case 'fermer' :
										elt.title='Cliquez pour fermer les détails.' ;
										break;
										case 'ouvrir' :
										elt.title='Cliquez pour voir des détails.' ;
										break ;
										}
										}
										
										
										
										//Fonctions de stylage des liens
										function styleLien() {
										this.style.cursor = "pointer" ;
										this.style.color = "#693" ;
										this.style.textDecoration = "underline" ;
										}
										function enleveStyleLien() {
										this.style.cursor = "auto" ;
										this.style.color = "#369" ;
										this.style.textDecoration = "none" ;
										}
										
										
										// fonction d'adaptation du style pour castel***************************************


										function adapteStyle() {
										//teste la largeure de la page pour la taille des images	
											if (contenu.offsetWidth<0) {
												for(i=4; i<document.images.length-3; i++){
													document.images[i].width = '150' ;
													document.images[i].height = '100' ;
												}
											}
										//cache les soussections
										for (i=0; i<subsections.length; i++) subsections[i].style.display = 'none' ;
										//affiche les lien pour fermer les soussections
										for (i=0; i<liensCacheSubsection.length; i++) liensCacheSubsection[i].style.display = 'inline' ;
										}
										
										// fonction d'adaptation du style pour castel*************************************
										
										