﻿/* -------------- Site CFAI MP 2011 -------- */
/* ---------- Diaporama page d'accueil --------- */

$(document).ready(function() {
	// mise à zéro des paramètres du diaporama
	var numeroDiapo = 0; 
	var totalHeightDiapos = 0;
	var totalDiapos = 0;
	var positionDiapo = new Array(); 
	var titre = new Array();
	var description = new Array();
	var timerDiaporama;	
		
	// définition de la méthode à utiliser pour récupérer un éléments selon les navigateurs et leur version  
	function getElement(id) {  
		if (document.getElementById) { return document.getElementById(id); } 
		else if (document.all) { return window.document.all[id]; } 
		else if (document.layers) { return window.document.layers[id]; } 
	}
		
	// définition de la position de chaque diapo et du texte associé
	$('#diaporama_images .diapo_image').each( function(compteurDiapos) {
		totalDiapos += 1;
		positionDiapo[compteurDiapos] = totalHeightDiapos; //compteurDiapos commence à 0
		totalHeightDiapos += $(this).height(); 
		titre[compteurDiapos] = getElement("titre_diapo"+(compteurDiapos+1)).innerHTML; //"Titre de la diapo "+(compteurDiapos+1); 
		description[compteurDiapos] = getElement("description_diapo"+(compteurDiapos+1)).innerHTML; //"Description de la diapo "+(compteurDiapos+1);
	});
	
	$('#diaporama_images').height(totalHeightDiapos); //définition de la hauteur totale du diaporama (en mettant toutes les diapos les unes en-dessous des autres)
		
	// animation du diaporama : décalage des diapos verticalement
	function animationDiaporama() {	
		if (numeroDiapo==totalDiapos){ numeroDiapo = 0; } //si on arrive à la dernière diapo : on revient à la première
		changementStyleBouton(); //changement de l'apparence des boutons
		$('#diaporama_images').animate({ marginTop:-positionDiapo[numeroDiapo]+'px' }, 800); //animation pour afficher la nouvelle diapo (800=vitesse)
		changementTexte(titre[numeroDiapo], description[numeroDiapo]); //affichage du texte correspondant à la nouvelle diapo affichée
		clearTimeout(timerDiaporama); //suppression du timer pour le réinitialiser
		timerDiaporama = setTimeout(lectureAuto, 6000); //pour poursuivre la lecture du diaporama automatiquement après un délais de 6 secondes
	}
	
	// si lecture automatique du diaporama (en boucle)
	function lectureAuto() {
		numeroDiapo++; //récupération du numéro de la prochaine diapo à afficher (numeroDiapo=0 au lancement initial du diaporama)
		animationDiaporama(); //lecture de l'animation du diaporama 
	}
	
	// affichage du texte correspondant à la diapo affichée
	function changementTexte(titre, description) {
		getElement("diaporama_titre").innerHTML = titre; //affiche le titre
		getElement("diaporama_description").innerHTML = description; //affiche la description
	};
	
	// affichage des boutons numéros
	$('#diaporama_slides').after('<ul id="diaporama_boutons"></ul>'); //zone d'affichage
	//création des boutons : 1 pour chaque diapo
	for (var y=0; y<totalDiapos; y++) {
		$('#diaporama_boutons').append('<li id="'+(y+1)+'">'+(y+1)+'</li>'); //y+1 car id commence à 1
	}
	$('#diaporama_boutons li:first').addClass('bouton_actif'); //changement de style du bouton correspondant à la première diapo (=premier bouton de la liste)
			
	// paramétrage des boutons : affichage de la diapo correspondant au bouton cliqué
	function afficherDiapo() {
		clearTimeout(timerDiaporama); //suppression du timer 
		numeroDiapo = $(this).attr('id')-1; //récupération du numéro de la diapo à afficher (commence à 0)
		animationDiaporama(); //appel de la fonction d'animation
	}
	
	// changement de style des boutons selon la diapo affichée
	function changementStyleBouton() {
		$('#diaporama_boutons li').removeClass('bouton_actif'); //on remet le style par défaut sur tous les boutons
		$('#diaporama_boutons #'+(numeroDiapo+1)).addClass('bouton_actif'); //on applique un style particuler au bouton de la diapo affichée (numeroDiapo+1 car id commence à 1)
	}
	
	// initialisation du diaporama
	$('#diaporama_boutons li').bind('click', afficherDiapo); //activation des boutons	
	changementTexte(titre[numeroDiapo], description[numeroDiapo]); //affichage du texte correspondant à la diapo affichée (numeroDiapo=0)
	setTimeout(lectureAuto, 6000); //lancement automatique du diaporama après un délais de 6 secondes
});
