var largeurThumb = 52;

/*
 * fDomOffset(oObj, sProp)
 * permet d'acceder aux propriétés DOM offsetLeft - offsetTop d'un objet quelque soit le navigateur
 * oObj : [Object] - Objet dont on désire le position
 * sProp : [String] - Propriété désirée : offsetLeft - offsetTop
*/
function fDomOffset(oObj, sProp)
{
	var iVal = 0;
	// On boucle tant que l'on n'est pas à la racine du document
	while (oObj && oObj.tagName != 'BODY') {
		eval('iVal += oObj.' + sProp + ';');
		oObj = oObj.offsetParent;
	}
	return iVal;
}

/*
 * showThumb(element, imageUrl)
 * affiche le layer previewProduit après avoir remplacé l'image thumbProduit
 * element : [String] - Nom de l'élément appelant
 * imageUrl : [String] - URL de l'image désirée
*/
function showThumb(element, imageUrl)
{
	$('thumbProduit').src = imageUrl;
	placeThumb(element);
	$('previewProduit').style.display = 'block';
}

/*
 * hideThumb(element, imageUrl)
 * cache le layer previewProduit
*/
function hideThumb()
{
	$('previewProduit').style.display = 'none';
}

/*
 * placeThumb(element)
 * positionne le layer previewProduit d'après la position du layer element
 * element : [String] - Nom de l'élément appelant
*/
function placeThumb(element)
{
	$('previewProduit').style.top = fDomOffset($(element), 'offsetTop') + 'px';
	$('previewProduit').style.left = (fDomOffset($(element), 'offsetLeft') - largeurThumb -10) + 'px';
}

function showCaracteristiques()
{
	if ($('product_caracteristique').style.display != 'block')
	{
		var deltaV = (Prototype.Browser.IE) ? 2 : 1;
		var deltaH = (Prototype.Browser.IE) ? 6 : 9;
		$('caracteristiques').getElementsByTagName("a")[0].className = "actif";
		$('product_caracteristique').style.top = (fDomOffset($('product_text'), 'offsetTop') + deltaV) + 'px';
		$('product_caracteristique').style.left = (fDomOffset($('product_text'), 'offsetLeft') - deltaH) + 'px';
		$('product_caracteristique').style.display = 'block';
	}
	else
	{
		$('caracteristiques').getElementsByTagName("a")[0].className = "";
		$('product_caracteristique').style.display = 'none';
	}
	return false;
}

/*
 * preImage(imageUrl)
 * précharge une image en fonction de imageUrl et renvoi un objet de type Image
 * imageUrl : [String] - URL de l'image désirée
*/
function preImage(imageUrl)
{
	preloadImage = new Image();
	preloadImage.src = imageUrl;

	return preloadImage;
}

/*
 * changeDiapo(sens)
 * change de diapo dans le sens demandé
 * sens: [String] - sens désiré
*/
function changeDiapo(sens)
{
	if (sens == 'prev' && (positionDiapo) != 0)
	{
		if (positionDiapo <= carousel.currentIndex)
			carousel._prevScroll();
		diaporama((positionDiapo - 1));
	}
	else if (sens == 'next' && (positionDiapo + 1) <= (totalDiapos - 1))
	{
		if (positionDiapo >= (carousel.currentIndex + 4))
			carousel._nextScroll();
		diaporama((positionDiapo + 1));
	}
}

/*
 * diaporama(imageIndex)
 * modifie la classe de la miniature cliquée, et swap l'ancienne photo (et ses infos) par celle demandée
 * imageIndex: [Interger] index de l'image demandé
*/
function diaporama(imageIndex)
{
	if (imageIndex != positionDiapo)
	{
		// on supprime  class="active_img" de l'image actuel
		$('thumb' + positionDiapo).getElementsByTagName('img')[0].className = "";

		// on passe l'image choisie en class="active_img"
		$('thumb' + imageIndex).getElementsByTagName('img')[0].className = "active_img";

		// on cache l'ancienne image, l'ancien titre et l'ancienne légende
		$('large_photo').getElementsByTagName('img')[positionDiapo].style.display = "none";
		$('large_photo').getElementsByTagName('h3')[positionDiapo].style.display = "none";
		$('large_photo').getElementsByTagName('div')[positionDiapo + 1].style.display = "none"; // +1 à cause  de <div class="clear">

		// on affiche la nouvelle image, le nouveau titre et la nouvelle légende
		$('large_photo').getElementsByTagName('img')[imageIndex].style.display = "block";
		$('large_photo').getElementsByTagName('h3')[imageIndex].style.display = "block";
		$('large_photo').getElementsByTagName('div')[imageIndex + 1].style.display = "block";

		// on met à jour l'index de l'image affiché
		positionDiapo = imageIndex;
	}
}