// Onglets.js
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
// Historique de mise à jour
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
// 2007-01-28 : Vincent
//				Création du script




function Vignettes(element, fade) {
	this.contenant;
	
	if ( this.contenant = document.getElementById(element) ) {
		// Propriétés
		this.eVignettes;
		this.eThumbnails;
		this.vignettes = new Array();
		this.afficheID;
		this.fade = fade ? true : false;
		
		// Méthodes
		this.afficherVignette = Vignettes_AfficherVignette;
		this.creerThumbnails  = Vignettes_CreerThumbnails;
		this.definirVignettes = Vignettes_DefinirVignettes;
		this.init             = Vignettes_Init;
		
		
		this.init();
		
		if ( this.eVignettes && this.eThumbnails ) {
			this.definirVignettes();
			this.creerThumbnails();
			this.afficherVignette(0);
		}
	}
}




// Initialise l'objet en ajoutant les éléments nécessaires du contenu
function Vignettes_Init() {
	for ( var cElements = 0; cElements < this.contenant.childNodes.length; cElements++ ) {
		var element = this.contenant.childNodes[cElements];
		if ( element.nodeType == 1 ) {
			var firstClassName = element.className.split(" ")[0];
			switch (element.className.split(" ")[0]) {
				case "Vignettes_Contenu":
					this.eVignettes = element;
					break;
					
				case "Vignettes_Thumbnails":
					this.eThumbnails = element;
					break;
			}
		}
	}
}




// Définit les vignettes de contenu
function Vignettes_DefinirVignettes() {
	var aNodesVignettes = this.eVignettes.childNodes
	
	for ( var cNodesVignettes = 0; cNodesVignettes < aNodesVignettes.length; cNodesVignettes++ ) {
		var nodeVignette = aNodesVignettes[cNodesVignettes];
		
		if ( nodeVignette.nodeType == 1 ) {
			var oVignette = { element: nodeVignette, image: nodeVignette.getElementsByTagName("img")[0] };
				oVignette.element.style.display = "none";
				oVignette.element.style.opacity = "0";
				oVignette.element.style.filter  = "alpha(opacity=0)";
			this.vignettes.push(oVignette);
		}
	}
}




// Crée les thumbnails des vignettes selon l'image de la vignette
function Vignettes_CreerThumbnails() {
	for ( var cVignettes = 0; cVignettes < this.vignettes.length; cVignettes++ ) {
		var a = document.createElement("a");
			a.vignettes = this;
			a.idVignette = cVignettes;
			a.href = "#";
			a.onclick = function() {
				this.vignettes.afficherVignette(this.idVignette);
				return false;
			}
		var span = document.createElement("span");
			
		var img = document.createElement("img");
			img.alt = "";
			img.src = this.vignettes[cVignettes].image.src;
			
		a.appendChild(span);
		a.appendChild(img);
		this.eThumbnails.appendChild(a);
		
		this.vignettes[cVignettes].thumbnail = a;
	}
}




// Affiche une vignette
function Vignettes_AfficherVignette(id) {
	
	if ( this.afficheID != id ) {
		if ( !isNaN(this.afficheID) ) {
			var ancienElement = this.vignettes[this.afficheID];
			ancienElement.element.style.display = "none";
			ancienElement.element.style.opacity = "0";
			ancienElement.element.style.filter = "alpha(opacity=0)";
			
			ancienElement.thumbnail.className = "";
		}
			
		this.afficheID = id;
		var nouvelElement = this.vignettes[this.afficheID];
		
		if ( this.fade ) {
			var fx = new Fx.Styles(nouvelElement.element, {duration: 400, wait:false});	
			fx.start({'opacity': 1});
		} else {
			nouvelElement.element.style.opacity = "1";
			nouvelElement.element.style.filter = "alpha(opacity=100)";
		}
		
		nouvelElement.element.style.display = "block";
		nouvelElement.thumbnail.className = "actif";
	}
}