if(typeof benchmark == "undefined") var benchmark = new Object();

benchmark.ObjGestionDeposeAnimation = function() {
	
}

/**
 * Méthodes publiques de l'objet ObjGestionFeed
 */


benchmark.ObjGestionDeposeAnimation.init = function(){
	$('.webcam a').click(benchmark.ObjGestionDeposeAnimation.actionChoix);
	$('.telechargement a').click(benchmark.ObjGestionDeposeAnimation.actionChoix);
	$('.photo_utilisee a').click(benchmark.ObjGestionDeposeAnimation.actionChoixPhotoUtilisee);
}
	
benchmark.ObjGestionDeposeAnimation.actionChoix = function(){
		var module_conteneur = $('#animation_bloc_methode_depose');
		var conteneur = $('#animation_bloc_methode_depose .module_contenu');
		var bloc_choix = $('.choix_etape_contenu');
		var self = this;
		var url_action = self.href;
		var titre_action = self.title;

		bloc_choix.fadeOut("fast",function(){
			$('.titre',module_conteneur).html(titre_action);
			module_conteneur.fadeIn("fast");
			conteneur.html('<p class="animation_msg" ><img src="/framework/lib/js/image/chargement.gif" alt="Chargement en cours..." style="margin: auto;display: block" /></p>');
		
			jQuery.post( url_action,{},
				function(data){
					if(data.message_retour){
						conteneur.html(data.message_retour);

						$('.action_retour').click(function(){
							module_conteneur.hide();
							bloc_choix.fadeIn("fast");
							return false;	
						});
					}
				},
				"json"
			);
				
		});
		return false;
	}

benchmark.ObjGestionDeposeAnimation.actionChoixPhotoUtilisee = function(){
	var module_conteneur = $('#animation_bloc_methode_depose');
	var conteneur = $('#animation_bloc_methode_depose .module_contenu');
	var bloc_choix = $('.choix_etape_contenu');
	var self = this;
	var url_action = self.href;
	var titre_action = self.title;

	bloc_choix.fadeOut("fast",function(){
		$('.titre',module_conteneur).html(titre_action);
		module_conteneur.fadeIn("fast");
		conteneur.html('<p class="animation_msg" ><img src="/framework/lib/js/image/chargement.gif" alt="Chargement en cours..." style="margin: auto;display: block" /></p>');
	
		jQuery.post( url_action,{},
			function(data){
				if(data.message_retour){
					conteneur.html(data.message_retour);
					
					// changement du message d'explication du debut de page
					$('#animez_moi #explication_prise_photo').hide();
					$('#animez_moi #explication_prise_photo').css('height', '0px');
					$('#animez_moi #explication_utilise_photo').show();
					$('#animez_moi #explication_utilise_photo').css('height', 'auto');

					// activation des nouveaux liens ajoutés dans la page
					activeSurveillanceLienNePlusProposer();
					benchmark.ObjGestionDeposeAnimation.init();
					
					$('.action_retour').click(function(){
						// on remet le message d'explication de dépose d'une photo plutôt que tu choix d'une image détourée
						$('#animez_moi #explication_utilise_photo').hide();
						$('#animez_moi #explication_utilise_photo').css('height', '0px');
						$('#animez_moi #explication_prise_photo').show();
						$('#animez_moi #explication_prise_photo').css('height', 'auto');

						module_conteneur.hide();
						bloc_choix.fadeIn("fast");
						
						return false;
					});
					
					// lien de validation du formulaire
					$('#envoyer_photo_detouree').click(function(){
						// on vérifie qu'il y a bien au moins une image sélectionnée
						// pour poster le formulaire
						valeur_radio_photo = $("input[@name=f_choix_image][@checked]").val();
						if(valeur_radio_photo != undefined && valeur_radio_photo != '') {
							document.formPhotoDetouree.submit();
							return true;
						} else {
							alert('Vous devez sélectionner une photo.');
							return false;
						}
					});
				}
			},
			"json"
		);
			
	});
	return false;
}


jQuery(function($){
	benchmark.ObjGestionDeposeAnimation.init();
});




/**
 * gestion des liens ajax pour les photos détourées (lien "ne plus proposer")
 */
function activeSurveillanceLienNePlusProposer () {
	// lien ne plus proposer
	$("a[@f_ajax_neplus_proposer]").each(function(lien){
		$(this).bind("click", function(){
			if(confirm("Vous souhaitez que cette photo ne vous soit plus proposée lors des prochaines animations ?")) {
				appelScriptAction($(this).attr('f_ajax_neplus_proposer'), this, 'NePlusProposer');
			}
		});
	});
}

/**
 * Fonction appelée pour traiter le retour ok
 * lors de la suppression d'une image
 *
 * @param object json Object json contenant le retour de la requête Ajax
 */
function traiteRetourActionNePlusProposer(json) {
	// retire le bloc pour eviter de le poster à nouveau
	$("#photo_detoure_"+json.id_image).hide("slow");
	setTimeout('$("#photo_detoure_'+json.id_image+'").remove()',500);
}

var ajax_en_cours = new Array();

/**
 * Fonction a appeler pour déclencher une action distante
 *
 * @remarks L'alerte sur la requête en cours est désactivée car il n'espas nécessaire dans 
 * la majorité des cas d'en informer l'internaute tant qu'il a ce qu'il veut.
 *
 * @param string url_action URL encodée de l'action à réaliser
 * @param object cur_elt element du DOM déclenchant l'événement
 */
function appelScriptAction(url_action, cur_elt, type_action) {
	// test une requete Ajax identique (meme id) est en cours
	var ajax_en_cours_ir;
	var id_requete;

	// calcul de l'ID de la requête Ajax
	//id_requete = url_action.substr(url_action.length-20, 20);
	id_requete = url_action.replace(
		/[^a-zA-Z0-9]/g,
		function(match){
			return '';
		}
	);
	
	// Test si la requête est en cours
	if(ajax_en_cours[id_requete]){
		ajax_en_cours_ir = ajax_en_cours[id_requete];
	}else{
		ajax_en_cours_ir = 0;
	}
	if(ajax_en_cours_ir == 0){

		ajax_en_cours[id_requete] = 1;

		$.ajax({
			type: "GET",

			url: url_action,

			dataType: "json",

			beforeSend: function(xhr){
				// Affichage du sablier
				var coords = $(cur_elt).findPos();
				var offset_y = -1 * $("#bloc_tetiere_plate").get(0).clientHeight;
				$(cur_elt).after('<img id="ajax_icone_chargement_' + id_requete + '" style="float: left; position: absolute; top: ' + (coords.y + offset_y) + 'px; left: ' + (coords.x - 25) + 'px" src="/framework/lib/js/image/chargement.gif" />');

				},

			complete: function(xhr, msg){
					ajax_en_cours[id_requete] = 0;
					$("#ajax_icone_chargement_"+id_requete).remove();
					// Test la validitée du formatage de la réponse
					if(xhr.responseText.indexOf("code_retour") != 2) {
						alert("Une erreur de donnée empêche l'exécution de votre action !\n");
						// On stop le traitement de la requête Ajax
						xhr.abort();
					}
				},

			success: function(json){
					eval('traiteRetourAction'+type_action+'(json)');
				},

			error: function (xhr, msg, exception){
					if(xhr.status != 200) {
						alert("Une erreur empêche l'exécution de votre action !\n");
					}
				}
		});
	} else{
		//alert("Attention : Une requête est en cours, veuillez patienter !\n");
	}
}