// Content-type: text/javascript; charset=utf-8

$(document).ready(function () {
	// Stylage de l'image à zoomer
	$('.lnkZoomImage').css({cursor: 'pointer'});

	// Evénement clic sur une image à zoomer
	$('.lnkZoomImage').click(function () {
		var sIdImageZoom = $(this).attr('id');
		sIdImageZoom = '#' + sIdImageZoom + '-zoom';
		var sImageSrc = $(sIdImageZoom).attr('src');
		showImageBox(sIdImageZoom, sImageSrc);
	});

});

//****************************************************************************//
// Affiche une boite avec une image.
//****************************************************************************//
function showImageBox (ImageId, ImageSrc) {
	// Récupération des dimensions de l'image "zoomée"
	var oImage = $(ImageId);
	var iWidth = oImage.width() + 2;
	var iHeight = oImage.height() + 17;

	// Suppression d'une éventuelle ImageBox déjà affichée
	$('#ImageBox').remove();

	// Affichage du "voile" en background
	showBG('ImageBox_BG', '#FFFFFF', '2000');

	// Insertion de l'ImageBox
	$('body').prepend('<div id="ImageBox">' +
						'<div id="ImageBox_load"></div>' +
					'</div>');
	// Chargement de l'image dans l'ImageBox
	$('#ImageBox #ImageBox_load').html('<img src="' + ImageSrc + '" class="imgZoom" />' +
										'<div style="text-align: center">Pour fermer, cliquez sur l\'image</div>');

	// Stylage de l'ImageBox et de l'image
	$('#ImageBox').css({	display: 'none', zIndex: '2001',
							position: 'absolute', top: '0', left: '0',
							width: iWidth + 'px',
							height: iHeight + 'px',
							backgroundColor: '#FFFFFF'
						});
	$('.imgZoom').css({	padding: '1px', backgroundColor: '#990016'	});

	// Bind des clics de fermeture
	$('.imgZoom').live('click', function () {
		$('#ImageBox_BG').remove();
		$('#ImageBox').remove();
		return false;
	});
	// Centrage de l'ImageBox
	centerThis('#ImageBox');
	// Chargement du HTML dans l'ImageBox
//	$('#ImageBox #ImageBox_load').html(HTMLToDisplay);
	// FadeIn de l'ImageBox
	$('#ImageBox').fadeIn();
}

//****************************************************************************//
// Affiche un "voile" opacité 0.8 au dessus du contenu et derrière les boites.
//****************************************************************************//
function showBG (BG_Id, BG_Color, BG_zIndex) {
	// Suppression d'un éventuel "voile" déjà affiché
	$('#' + BG_Id).remove();
	// Insertion du "voile" en background
	$('body').prepend('<div id="' + BG_Id + '"></div>');
	// Stylage du background
	$('#' + BG_Id).css({	display: 'none', zIndex: BG_zIndex,
							position: 'absolute', top: '0', left: '0',
							width: $(document).width() + 'px',
							height: $(document).height() + 'px',
							backgroundColor: BG_Color,
							opacity: '0.8'
						});
	// FadeIn du background
	$('#' + BG_Id).fadeIn();
}

//****************************************************************************//
// Centre un élément.
//****************************************************************************//
function centerThis(element) {
	var elementTop, elementLeft;

	// Dimensions de la fenêtre
	var windowHeight = $(window).height();
	var windowWidth = $(window).width();

	// Dimensions de l'objet à centrer en tenant compte des paddings
	var elementHeight = $(element).height()
						+ myParseFloat($(element).css('padding-top'))
						+ myParseFloat($(element).css('padding-bottom'));
	var elementWidth = $(element).width()
						+ myParseFloat($(element).css('padding-left'))
						+ myParseFloat($(element).css('padding-right'));


	if (windowHeight <= elementHeight) {
		elementTop = $(window).scrollTop();
	} else {
		elementTop = ((windowHeight - elementHeight) / 2) + $(window).scrollTop();
	}

	if (windowWidth <= elementWidth) {
		elementLeft = $(window).scrollLeft();
	} else {
		elementLeft = ((windowWidth - elementWidth) / 2) + $(window).scrollLeft();
	}

	$(element).css({
		'top': elementTop,
		'left': elementLeft
	});
}

//****************************************************************************//
function myParseFloat(sNumber) {
	if (sNumber != undefined) {
		if (!isNaN(parseFloat(sNumber)))
			return parseFloat(sNumber);
		else {
			return (parseFloat((sNumber.toString()).substring(0, (sNumber.toString()).length - 2)));
		}
	}
}

