/* Ajax Updater pour changer le mode de visualisation*/
function refreshRessourceList(mode){
	var param = "";
	var container_elt = $('thumb_container');
	if(mode == null)	mode = selected_mode;
	switch(mode){
		case "thumb":
		default:			param = "thumbnail";
							if(container_elt.hasClassName("videos_les_plus_scrollable"))	container_elt.removeClassName("videos_les_plus_scrollable");
							break;
		
		case "list":		param = "list";
							if(!container_elt.hasClassName("videos_les_plus_scrollable"))	container_elt.addClassName("videos_les_plus_scrollable");
							break;
		
		case "dlist":		param = "detailed_list";
							if(!container_elt.hasClassName("videos_les_plus_scrollable"))	container_elt.addClassName("videos_les_plus_scrollable");
							break;
	}
	selected_mode = mode;
	$("thumb_container").update("<span class='loading'>chargement...</span>");

	//si en mode liste ou liste détaillée, il faut une barre de scroll
	
	var url = url_ressources_by_view_type;
	var nb = 12;
	var page = 1;
	var les_plus_quoi = $F('RessourceFormationPlusQuoi');
	new Ajax.Updater("thumb_container", url + param + "/" + nb + "/" + page + "/" + les_plus_quoi, {	evalScripts: true });
}

/* Fonctions réservées au mode miniature > effet magnify */
var current_id = null;
var thumb_height = 63;
var thumb_width = 84;
var max_thumb_height = 90;
var max_thumb_width = 120;
var decal_x = (max_thumb_width - thumb_width)/2;
var decal_y = (max_thumb_height - thumb_height)/2;
var magnifyEffectInProgress = false;
var openEffect = null;

/* Retire la classe pour le mettre en dessous (z-index) */
function dessous(elt){
	if(elt.hasClassName('dessus'))		elt.removeClassName('dessus');
}

/* Applique la classe pour le mettre au dessus (z-index) */
function dessus(elt){
	if(!elt.hasClassName('dessus'))		elt.addClassName('dessus');
}

/**
 * Au onMouseOver sur une image, on l'absolutize et on la grossit
 * @param id
 * @return
 */
function magnify(id){
	if(id == "" || current_id == id)		return false;
	var elt = $(id);

	var pos = elt.positionedOffset();		// calcul de la position future
	pos_x = pos[0] - decal_x;
	pos_y = pos[1] - decal_y;
	
	elt.absolutize();
	
	magnifyEffectInProgress = true;
	current_id = id;
	
	openEffect = new Effect.Morph(id, {	style: 'border: 5px solid #fff; height: '+max_thumb_height+'px; left: '+pos_x+'px; top: '+pos_y+'px; width: '+max_thumb_width+'px; position:absolute; ',
		duration: 0.3,
		queue: "magnify",
		afterFinish: function(){	
				current_id = id;
				magnifyEffectInProgress = false;
				openEffect=null;
			}
		});
	return;
}

function revertMagnify(id){
	if(id == "")		return false;
	var elt = $(id);

	if(magnifyEffectInProgress){
		openEffect.cancel();
		elt.relativize();
		elt.writeAttribute('style', "height:"+thumb_height+"px; left:0px; top:0px; width:"+thumb_width+"px;");
		return;
	}
	
	var pos = elt.positionedOffset();
	pos_x = pos[0] + decal_x;
	pos_y = pos[1] + decal_y;

	new Effect.Morph(id, {	style: 'border: 0px ; height: '+thumb_height+'px; left: '+pos_x+'px; top: '+pos_y+'px; width: '+thumb_width+'px;',
							duration: 0.2,
							queue: "r_magnify",
							afterFinish: function(){	current_id = null; elt.relativize();	}
						});
	return;
}
