var debug_mode = Array(
	false,	//playerReadyCallback
	false,	// onEmbeddedCB
	false		// reloadJWPlayer
);

/*
 * ID du dernier lecteur initialisé, c'est-à-dire : celui qui est en cours.
 */
var current_jwplayer_id = '';
/*
 * Callback appelé lorsque un lecteur vidéo est prêt.
 * - Permet de récupérer l'ID du lecteur courant, et de le mémoriser dans une
 * variable globale comme référence au lecteur courant, s'il y en a un.
 * - L'ID du lecteur est spécifié en paramètre au lancement du SWF et est
 * calculé au moment où est construit le code du diaporama.
 * ATTENTION : il doit être spécifié à deux endroits : dans le SWObject et en
 * paramètre à l'application Flash (le lecteur)
 */
function playerReadyCallback(obj) {
	if (debug_mode[0]) {
		alert(
			"Nouveau lecteur d'ID '"+obj['id']+"'"
			+" (version : "+obj['version']
			+", client : '"+obj['client']+"')"
		);
	}
	current_jwplayer_id = obj['id'];
};

/*
 * Callback appelé lorsque la méthode swfobject.embedSWF() à terminé d'inclure
 * le SWF spécifié, avec succès ou non...
 */
function onEmbeddedCB( evt_obj )
//			 ------------
{
	if (debug_mode[1]) {
		alert(
			"Chargement du player dans "+evt_obj.id+" : "
			+(evt_obj.success ? "OK" : "KO!")
		);
	}
}

/*
 * (Re)charge le lecteur vidéo dont l'ID est spécifié, s'il existe.
 * - Les diapositives sont indexées en partant de zéro.
 */
function loadJWPlayer(
//			 ------------
	jwplayer_id
) {
	var jwplayer_obj = document.getElementById( jwplayer_id);
	if (jwplayer_obj) {
		try {
			// jwplayer_id = 'jwplayer_<slide_index>'
			var slide_index = jwplayer_id.substr( 9, 1);
			var function_name = 'loadPlayer_'+slide_index;
			if (debug_mode[2]) {
				alert(
					"loadJWPlayer( "+jwplayer_id+") "
					+"\n"
					+"Chargement du player dans la diapo #"+slide_index+" ..."
				);
			}
			
			eval( function_name+"()");

			if (debug_mode[2]) {
				alert(
					"loadJWPlayer( "+jwplayer_id+")"
					+"\n"
					+"FAIT"
				);
			}
			/*
			 * Le lecteur que l'on vient de démarrer devient le courant...
			 */
			current_jwplayer_id = jwplayer_id;
		}
		catch (e) {
			alert(
				"loadJWPlayer( "+jwplayer_id+")"
				+"\n"
				+"EXCEPTION :"
				+"\n"
				+e
			);
		}
	}
	else {
		if (debug_mode[1]) {
			alert(
				"loadJWPlayer( "+jwplayer_id+")"
				+"\n"
				+"Pas de lecteur vidéo d'ID '"+jwplayer_id+"'"
			);
		}
	}
}

/*
 * (Décharge le lecteur vidéo dont l'ID est spécifié, s'il existe.
 * - Les diapositives sont indexées en partant de zéro.
 */
function unloadJWPlayer(
//			 --------------
	jwplayer_id
) {
	if (! jwplayer_id) {
		jwplayer_id = current_jwplayer_id;
	}
	if (jwplayer_id) {
		var jwplayer_obj = document.getElementById( jwplayer_id);
		if (jwplayer_obj) {
			try {

				// jwplayer_id = 'jwplayer_<slide_index>'
				var slide_index = jwplayer_id.substr( 9, 1);
				var function_name = 'unloadPlayer_'+slide_index;
				if (debug_mode[2]) {
					alert(
						"unloadJWPlayer( "+jwplayer_id+")"
						+"\n"
						+"Suppression du player de la diapo #"+slide_index+" ..."
					);
				}
				
				eval( function_name+"()");
				
				if (debug_mode[2]) {
					alert(
						"unloadJWPlayer( "+jwplayer_id+")"
						+"\n"
						+"FAIT"
					);
				}
				/*
				 * Plus de lecteur actif...
				 */
				current_jwplayer_id = null;
			}
			catch (e) {
				alert(
					"unloadJWPlayer( "+jwplayer_id+")"
					+"\n"
					+"EXCEPTION :"
					+"\n"
					+e
				);
			}
		}
		else {
			if (debug_mode[2]) {
				alert(
					"unloadJWPlayer( "+jwplayer_id+")"
					+"\n"
					+"Pas de lecteur vidéo d'ID '"+jwplayer_id+"'"
				);
			}
		}
	}
	else {
		if (debug_mode[2]) {
			alert(
				"unloadJWPlayer( "+jwplayer_id+")"
				+"\n"
				+"Ignoré. Pas de lecteur vidéo actif pour l'instant"
			);
		}
	}
}


(function($) {
	$(document).ready(
		function() {
			var $mainFeatureNavigation = $("#jqry_slideshow_nav");
			
			if ($("#jqry_slideshow li").length > 1) {
			
				$("#jqry_slideshow li")
				.each(
					function(index, element) {
						var classname = ($(this).hasClass("active")) ? "active" : "";
						var newLi = $("<li><a href=\"javascript:void(0);\"></a></li>")
						.addClass(classname)
						.click(
							function() {
								// ID du lecteur vidéo de la diapositive courante
								var this_slide_player = 'jwplayer_'+index;
								/*
								 * Arrêt de la lecture sur la diapo courante, si tant est qu'il
								 * y en ait une en cours...
								 */
								unloadJWPlayer( current_jwplayer_id);
								
								clearInterval($rotate);
								
								$("li", $mainFeatureNavigation).removeClass("active");
								
								$(this).addClass("active");
								
								$("#jqry_slideshow li.active")
								.fadeOut(
									"slow",
									function() {
										$(this).removeClass("active");
										$("#jqry_slideshow li:eq(" + index + ")")
										.fadeIn(
											"slow",
											function() {
												$(this).addClass("active");
												/*
												 * Démarrage de la lecture sur celui de la nouvelle diapo, si
												 * tant est qu'il y ait une vidéo sur cette diapo...
												 */
												loadJWPlayer( this_slide_player);
											}
										)
									}
								);
							}
						)
						.appendTo($mainFeatureNavigation);
					}
				)
				
			}
	
	//		var $rotationInterval = 10000; 
			var $rotationInterval = ( duree_diapo ? duree_diapo : 10000);
			if ($rotationInterval != -1) {
				var $rotate = setInterval(
					function() {
						var currentFeature = $('#jqry_slideshow li.active');
						var nextFeature = currentFeature.next('li');
						var navItem = $("#jqry_slideshow_nav li.active")
						var nextNav = navItem.next('li');
						if (nextNav.length < 1) {
							nextNav = $('#jqry_slideshow_nav li:first');
						}
						if (nextFeature.length < 1) {
							nextFeature = $('#jqry_slideshow li:first');
						}
						navItem.removeClass('active');
						nextNav.addClass('active');
						currentFeature.fadeOut(
							"slow",
							function() {
								currentFeature.removeClass("active");
								nextFeature.fadeIn(
									"slow",
									function() {
										nextFeature.addClass("active");
									}
								)
							}
						);
					},
					$rotationInterval
				);
			}
		}
	);
})(jQuery);

