// Anditis : fichier script page références
// ==================================================

var delai = 0.5;// Nombre de secondes que dure une transition

// Toute une tripotée de variables utilisées par les fonctions pour stockage temporaire ou non, pas toucher !
var timer = false;
var tmpName = false;
var tmpNum = false;
var step = 0;
var picts = false;
var numImg = 0;

// Fonction appelée lors du clic sur un lien de référence
// Celle-si se contente de faire disparaître les zones dentrale et de droite et d'appeler sendRequest() avec un délai (le temps que les zones aient disparu)
function getReference(CSSClass) {
	tmpName = CSSClass;
	
	timer = setTimeout('sendRequest()', delai * 1000);
	
	// Disparition de la zone centrale (qui, rappel, est en fait la zone de droite qui a été placée au centre)
	Effect.Fade('rightContent', {duration: delai});
	Effect.Fade('centerArea', {duration: delai});
}
// Cette fonction effectue une requête vers le serveur via XMLhr pour récupérer les données d'un client et utilise displayReference() comme fonction de callback
function sendRequest() {
	var url = 'inc/xhr_references.php';
	tmpName = tmpName.replace('ref', '');
	var vars = 'reference=' + encodeURI(tmpName);
	
	var xhr = new XMLhr;
	//alert(vars);
	
	// Requête xmlHttpRequest
	xhr.request(url, vars, displayReference, 'GET');
}
// Cette fonction traite et affiche les données récupérées depuis le serveur
// Elle s'occupe aussi de créer ou non des liens pour switcher entre les images
function displayReference(oxhr) {
	// On remet tmpNum à zéro
	tmpNum = 0;
	
	// Remplissage de la zone avec les données récupérées
	//alert(oxhr.responseText);
	$('rightContent').innerHTML = oxhr.responseText;
	
	// On place la première image... M'enfin, faut d'abord les récupérer en JS ^^
	picts = $('rightContent').getElementsByTagName('img');
	
	$('centerArea').innerHTML = '<img width="373" height="257" src="' + picts[numImg].src + '" alt="' + picts[numImg].alt + '" />';
	$('barCenter').innerHTML = picts[numImg].alt;
	
	// On fait réapparaître la zone centrale
	Effect.Appear('rightContent', {duration: delai});
	Effect.Appear('centerArea', {duration: delai});
	
	// Mise en place des liens de switch entre images
	// Y a-t-il d'autres images pour cette référence ?
	if (picts[numImg + 1] != undefined) $('barRight').innerHTML =
		'<a href="#" onclick="showPict(' + (numImg + 1) + ', 0)">' + (numImg + 2) + '&gt;</a>';
	else $('barRight').innerHTML = '';
	if (tmpNum - 1 >= 0 && picts[tmpNum - 1] != undefined) $('barLeft').innerHTML =
		'<a href="#" onclick="showPict(' + (numImg - 1) + ', 0)">&lt;' + (numImg) + '</a>';
	else $('barLeft').innerHTML = '';
}

// Fonction permettant de passer d'une image de référence à une autre
function showPict(num, fnStep) {
	if (num !== undefined) tmpNum = num;
	if (fnStep !== undefined) step = fnStep;
	
	// 1 - Disparition de l'image courante. la fonction se rapelle pour la seconde étape
	if (step == 0) {
		Effect.Fade('centerArea', {duration: delai});
		step = 1;
		timer = setTimeout('showPict()', delai * 1000);
	}
	// 2 - Switch entre ancienne et nouvelle image, apparition de celle-ci et mise en place des liens de switch, comme dans displayReference()
	else if (step == 1) {
		$('centerArea').innerHTML = '<img width="373" height="257" src="' + picts[tmpNum].src + '" alt="' + picts[tmpNum].alt + '" />';
		step = 0;
		
		$('barCenter').innerHTML = picts[tmpNum].alt;
		
		// Mise en place des liens de switch entre images
		// Y a-t-il d'autres images pour cette référence ?
		// C'est le même code que dans displayReference()
		if (picts[tmpNum + 1] != undefined) $('barRight').innerHTML =
			'<a href="#" onclick="showPict(' + (tmpNum + 1) + ', 0)">' + (tmpNum + 2) + '&gt;</a>';
		else $('barRight').innerHTML = '';
		if (tmpNum - 1 >= 0 && picts[tmpNum - 1] != undefined) $('barLeft').innerHTML =
			'<a href="#" onclick="showPict(' + (tmpNum - 1) + ', 0)">&lt;' + (tmpNum) + '</a>';
		else $('barLeft').innerHTML = '';
		
		Effect.Appear('centerArea', {duration: delai});
	}
}
