/**
 * Fonction qui permet d'afficher ou masquer un pavé.
 *
 * @param imageId ID de l'élement image plus / moins
 * @param divId ID du pavé à afficher / masquer
 */
function createExpandableArea(imageId, blocId) {
	Event.observe(imageId, 'click', function() {
		showHideDescriptionWithStyle(imageId, blocId);
	});
	Event.observe(imageId, 'mouseover', function() {
		document.body.style.cursor = 'hand';
	});
}

/**
 * Callback qui permet d'afficher ou masquer un pavé avec scriptaculous.
 *
 * @param imageID ID de l'image plus / moins
 * @param divId ID du pavé à afficher / masquer
 */
function showHideDescriptionWithStyle(imageId, divId) {
	var image = $(imageId);
	var div = $(divId);

	var imageSrc = image.src;
	
	// Cache ou affiche le contenu de la div description
	var displayStyle = div.style.display;
	
	// Vérifie que l'on est pas en plein effort
	if (image.showHideProcessing != null && image.showHideProcessing.state != 'finished') {
		return;
	}
	
	if (displayStyle == "none") {
		image.src = imageSrc.replace("plus", "minus");	
		image.showHideProcessing = Effect.BlindDown(divId, {duration: 0.5});	
	} else {
		image.src = imageSrc.replace("minus", "plus");	
		image.showHideProcessing = Effect.BlindUp(divId, {duration: 0.5});	
	}
}

/**
 * Callback qui permet d'afficher ou masquer un pavé.
 *
 * @param image Element image plus / moins
 * @param divId ID du pavé à afficher / masquer
 */
function showHideDescription(image, divId) {
	// Cache ou affiche le contenu de la div description
	var div = document.getElementById(divId);
	var displayStyle = div.style.display;
	
	if (displayStyle == "none") {
		show(image, divId);
		return true;			
	} else {
		hide(image, divId);
		return false;		
	}
}

/**
 * Callback permettant d'afficher un pavé et d'afficher l'image (-) permettant de le masquer.
 *
 * @param image Element image plus / moins
 * @param divId ID du pavé à afficher / masquer
 */
function show(image, divId) {
	var imageSrc = image.src;
	image.src = imageSrc.replace("plus", "minus");	
	var div = document.getElementById(divId);	
	div.style.display = "";			
}

/**
 * Callback permettant de masquer un pavé et d'afficher l'image (+) permettant de le ré-afficher.
 *
 * @param image Element image plus / moins
 * @param divId ID du pavé à afficher / masquer
 */
function hide(image, divId) {
	var imageSrc = image.src;
	image.src = imageSrc.replace("minus", "plus");			
	var div = document.getElementById(divId);	
	div.style.display = "none";			
}
