/**
 *	Devolia Universe
 *	Based on jQuery
 *	@version 2011.01.25
 */
 
var config_debug = true;

var universe_pane_open=false;						// Paneau ouvert
var universe_pane_x=302;							// Largeur du paneau
var universe_autoplay=true;							// Autoplay
var universe_auto_timer=5000;						// Timer autoplay
var universe_timer_id;								// Timer
var universe_viewport_min_size=340;					// Taille min
var universe_viewport_max_size=480;					// Taille max
var universe_sem_1=false;							// Sémaphore 1
var universe_sem_2=false;							// Sémaphore 2
var universe_ease='easeOutQuart';					// Ease mode - may require jQuery UI core
var universe_slide_t=600;							// Tempo pour le changement de slide
var universe_slide_in_t=450;						// Tempo pour l'ouverture de l'intérieur de la slide
var universe_slide_max_t=450;						// Tempo pour l'agrandissement d'une slide
var universe_slide_height = 340;
var universe_order=[];								// Tableau des ID de div dans l'ordre d'instanciation
var universe_order_names=[];						// Tableau des noms de div dans l'ordre d'instanciation
var universe_play_order=[];							// Tableau des ID de div dans l'ordre de circulation
var universe_play_order_names=[];					// Tableau des noms de div dans l'ordre de circulation
var universe_pos_x=[];								// Tableau des abscisses dans l'ordre d'instanciation
var universe_play_pos_x=[];							// Tableau des abscisses dans l'ordre de circulation
var universe_pos_y_max=[];							// Tableau des ordonnées max, ordre d'instanciation
var universe_pos_y_min=[];							// Tableau des ordonnées min, ordre d'instanciation
var universe_play_pos_y_max=[];						// Tableau des ordonnées max, ordre de circulation
var universe_play_pos_y_min=[];						// Tableau des ordonnées min, ordre de circulation
var universe_mode_screen=[];						// Tableau des types d'écran supporté, ordre d'instanciation
var universe_play_mode_screen=[];					// Tableau des types d'écran supporté, ordre de circulation
var universe_prev_step;								// Etape précédente (indice de universe_play_order) de 1 à N
var universe_next_step;								// Etape suivanet (indice de universe_play_order) de 1 à N
var universe_step;									// Etape courante (indice de universe_play_order) de 1 à N
var universe_cur_slide_id;							// ID de la slide affichée en ce moment
var universe_init_step=1;							// Etape initiale (indice de universe_play_order)
var universe_lg='en';								// Langage de l'univers

var universe_html='';								// HTML content of the universe
var universe_div_id='';								// ID du div contenant l'univers
var universe_wait_id='';							// ID de l'image de chargement
var universe_slides_width=604;						// Largeur fixe des slides

var universe_slide_id_product_id=[];				// Tableau qui associe l'id d'un slide avec l'id du produit
var universe_nb_slides=0;							// Nombre de slides
var universe_base_dir='./';							// Chemin relatif à la racine
var randomnumber=1;									// Nombre aléatoire pour générer des transitions aléatoire
var randomnumber_prev=1;							// Enregistre la transition précedente


//Horizontal for VINCI
var universe_pane_x_hor=604;							// Largeur du paneau
var universe_pane_y_hor=191;							// Hauteur du paneau

var hor_class = "player_elt_in_hor";					//Class CSS for horizontal pane


/**
 *	Create the universe manualy for several slides	
 *	@version 2011.01.25
 */
function universe_multi(autoplay, nb_cols, sel_order, sel_play_order, u_div_id, u_wait_id, u_lg, u_bd){
	universe_div_id=u_div_id;
	universe_wait_id=u_wait_id;
	universe_lg=u_lg;
	universe_base_dir=u_bd;
	universe_cur_slide_id=sel_play_order[0];
	$('#'+u_div_id).css('width',nb_cols*universe_slides_width+'px');

	universe_init_step = sel_play_order[0];
	
	for(var i=0; i<sel_order.length; i++){
		universe_order[i] = sel_order[i];
		universe_play_order[i] = sel_play_order[i];
		universe_mode_screen[universe_mode_screen.length] = 'both';
		//universe_slide_id_product_id[i]=slides[i]['product_id'];
		
		// Slides positionning maths
		var col = i % nb_cols;
		var row = Math.floor(i / nb_cols);
		var pos_x = (col) * universe_slides_width;
		var pos_y_min = (row) * universe_viewport_min_size;
		var pos_y_max = (row) * universe_viewport_max_size;
		
		universe_pos_x[universe_pos_x.length] = pos_x;
		universe_pos_y_max[universe_pos_y_max.length] = pos_y_max;
		universe_pos_y_min[universe_pos_y_min.length] = pos_y_min;
		
		universe_order_names[i]=""+(i+1);
		universe_play_order_names[i]=""+(i+1);
	}
	universe_nb_slides = universe_order.length;
	// First step init
	universe_init_step=1;
	universe_step = universe_init_step;
	universe_next_step=2;
	universe_prev_step=(universe_order.length);
	
	universe_init(autoplay);
}

/**
 *	Creates the universe manualy for a single slide
 *	@version 2011.01.24
 */

function universe_solo(u_div_id, u_wait_id, u_lg, u_bd){
	universe_multi(false, 1, Array('1'), Array('1'), u_div_id, u_wait_id, u_lg, u_bd)
}

/**
 *	Creates the universe from back office slides
 *	@version 2010.10.22
 */
function ucn(autoplay, nb_cols, sel_order, sel_play_order, u_div_id, u_wait_id, u_lg, u_bd){
	universe_div_id=u_div_id;
	universe_wait_id=u_wait_id;
	universe_lg=u_lg;
	universe_base_dir=u_bd;

	// Names setup
	for(var i=0; i<sel_order.length; i++){ universe_order_names[i]=sel_order[i]; }
	for(var i=0; i<sel_play_order.length; i++){ universe_play_order_names[i]=sel_play_order[i]; }

	// Universe width
	$('#'+u_div_id).css('width',nb_cols*universe_slides_width+'px');
	
	// Show universe
	var url = config_basedir+universe_url;
	var post = 'action=show_universe';
	universe_nb_slides = sel_order.length;
	for(var i=0; i<universe_nb_slides; i++){ post += '&slide_code_name_'+i+'=' + sel_order[i]; }
	post += '&nb_slides=' + universe_nb_slides;
	post += '&mode=person';
	post += '&u_bd='+universe_base_dir;
	
	$.ajax({
		type: 'post', 
		url: url,
		data: post,
		async: false,
		success: function(transport){						
			json = eval('(' + transport + ')');
			universe_html = json.html;
			$('#'+universe_div_id).html(universe_html);
		}
	});

	
	// Get data
	var post = 'action=get_universe_infos';
	for(var i=0; i<universe_nb_slides; i++){ post += '&slide_code_name_'+i+'=' + sel_order[i]; }
	post += '&nb_slides=' + universe_nb_slides;
	
	$.ajax({
		type: 'post', 
		url: url,
		data: post,
		async: false,
		success: function(transport){						
			json = eval('(' + transport + ')');
			var slides = json.slides;			
			var size = slides.length;
			if(config_debug){ console.log('[ucn] '+size+' slides'); }
			// Global vars init
			for(var i=0; i<size; i++){
				var id = slides[i]['id'];
				universe_order[i] = id;
				universe_mode_screen[universe_mode_screen.length] = slides[i]['mode_screen'];
				universe_slide_id_product_id[i]=slides[i]['product_id'];
				
				// Slides positionning maths
				var col = i % nb_cols;
				var row = Math.floor(i / nb_cols);
				var pos_x = (col) * universe_slides_width;
				var pos_y_min = (row) * universe_viewport_min_size;
				var pos_y_max = (row) * universe_viewport_max_size;
				
				universe_pos_x[universe_pos_x.length] = pos_x;
				universe_pos_y_max[universe_pos_y_max.length] = pos_y_max;
				universe_pos_y_min[universe_pos_y_min.length] = pos_y_min;
				
				// Is slide basket ?
				if(slides[i]['code_name']=='basket'){ basket_step_id=i; }
			}
		}
	});

	// Play order ID and pox_x setup
	for(var i=0; i<universe_order.length; i++){
		var cur_id=universe_order[i];
		var cur_name=universe_order_names[i];
		var cur_pos_x=universe_pos_x[i];
		var cur_pos_y_min=universe_pos_y_min[i];
		var cur_pos_y_max=universe_pos_y_max[i];
		var cur_mode_screen=universe_mode_screen[i];
		for(var j=0; j<universe_play_order_names.length; j++){
			if(universe_play_order_names[j]==cur_name){
				universe_play_order[j]=cur_id;
				universe_play_pos_x[j]=cur_pos_x;
				universe_play_pos_y_min[j]=cur_pos_y_min;
				universe_play_pos_y_max[j]=cur_pos_y_max;
				universe_play_mode_screen[j]=cur_mode_screen;
			}
		}
	}

	// First step init
	universe_init_step = 1;
	universe_step = universe_init_step;
	universe_next_step=2;
	universe_prev_step=(universe_order.length);

	// Init the universe
	universe_init(autoplay);
}

/**
 *	Initialise l'univers
 *	@version 2010.09.23
 */
function universe_init(autoplay){
	universe_autoplay=autoplay;
	
	// Indice de universe_init_step
	var u_init_step = universe_init_step-1;
	universe_cur_slide_id=universe_play_order[u_init_step];
	
	// Initialisation de l'univers au slide n
	universe_close_panes();
	$('#slide_'+universe_play_order[u_init_step]+'_in').css('display','block');
	
	//alert('hit2');
	//regle la taille de l'Univers
	//si le slide ne supporte que le mode "grande fenetre", on l'affiche directement en grand
	var big_mode_screen = universe_mode_screen[u_init_step]=='big';
	var autoplay = universe_autoplay;
	if(big_mode_screen){
		universe_max();
		if(autoplay){ universe_autoplay=true; }
	}

	// Indice de universe_step
	var u_step = universe_step-1;
	
	// Position initiale de l'univers
	if(big_mode_screen){ $('#'+universe_div_id).css('margin-top', -1*universe_play_pos_y_max[u_step]+'px'); }
	else { $('#'+universe_div_id).css('margin-top', -1*universe_play_pos_y_min[u_step]+'px'); }
	$('#'+universe_div_id).css('margin-left', -1*universe_play_pos_x[u_step]+'px');
	//$('#slide_'+universe_play_order[u_init_step]+'_in').css('margin-left', '0px');
	
	if(universe_autoplay){ 
		universe_autoplay=true;
		universe_timer_id=setTimeout('universe_autoplay_go()', universe_auto_timer);
	}
	$('#'+universe_wait_id).css('display','none');
	$('#'+universe_div_id).css('display','block');
	
	
	
	// Hash demandé ?
	var asked_hash=false;
	if(window.location.hash!=''){
		for(var i=0; i<universe_order_names.length; i++){
			// On connait le hash, et ce n'est pas l'actuel
			if(window.location.hash=='#'+universe_order_names[i]){
				universe_autoplay_pause();
				u_go_to_n(universe_order_names[i]);
				asked_hash=true;
			}
		}
	}
	
	// Fonction à l'arrivée ?
	if(!asked_hash){ universe_trigger_slide_function(universe_play_order[u_init_step]); }
	
	// On enregistre la méthode de suivi
	$(window).hashchange(function(){
		if(config_debug){ console.log('[hashchange] news hash is '+window.location.hash); }
		if(window.location.hash!=''){
			for(var i=0; i<universe_order_names.length; i++){
				if(window.location.hash=='#'+universe_order_names[i] && universe_order[i]!=universe_cur_slide_id){ 
					if(config_debug){ console.log('[hashchange] news hash is known and slide ID ('+universe_order[i]+') is not the current one ('+universe_cur_slide_id+')'); }
					universe_autoplay_pause();
					u_go_to_n(universe_order_names[i]);
				}
			}
		}
	});
	
	// Slide open
	setTimeout(
		function(){
			universe_open_pane(universe_play_order[u_init_step]);
		},
		400
	);
}

/**
 *	Démarre ou arrête l'autoplay
 *	@version 2010.10.25
 */
function universe_autoplay_start(){
	if(universe_autoplay){ 
		// Tourne déjà
	}
	else{
		if(config_debug){ console.log('[universe_autoplay_start] Go'); }
		universe_autoplay=true;
		universe_timer_id=setTimeout('universe_autoplay_go()', universe_auto_timer);
	}
}


/**
 *	Arrête l'autoplay
 *	@version 2010.10.23
 */
function universe_autoplay_pause(){
	if(universe_autoplay){
		if(config_debug){ console.log('[universe_autoplay_pause] On hold'); }
		universe_autoplay=false;
		clearTimeout(universe_timer_id);
	}
	else{
		// Déjà arrêté	
	}
}

/*	
*	Active/Désactive le défilement au passage de la souris MODIF
*/

var diapo_video_home = 0;

$(	function(){
		$('#viewport').bind("mouseover",function() { universe_autoplay_pause(); });
		$('#viewport').bind("mouseout",function() { 
			
			if(diapo_video_home == 0){
				universe_autoplay_start(); 
			}
			
		});
	}

);

/**
 *	Maximize / minimize the viewport
 *	@version 2010.10.25
 */
function universe_max(){
	if(universe_sem_1 || universe_sem_2){ return; }
	universe_autoplay_pause();
	var u_step = universe_step-1;

	var v_height;
	if(!universe_pane_open){ v_height=universe_viewport_max_size; }
	else{ v_height=universe_viewport_min_size; }
	
	// Start inside
	universe_sem_2=true;
	if(!universe_pane_open){
		for(var i=0; i<universe_order.length; i++){
			// Opening all slides
			$('#slide_'+universe_order[i]).css('height',universe_viewport_max_size+'px');
			$('#slide_'+universe_order[i]+'_in').css('height',universe_viewport_max_size+'px');
			$('#slide_'+universe_order[i]+'_in_color').css('height',universe_viewport_max_size+'px');
			$('#slide_'+universe_order[i]+'_in_text').css('display','block');
			if(universe_order[i]==universe_cur_slide_id){ var cur_margin_top=universe_pos_y_max[i]; }
			
		}
		if(config_debug){ console.log('[universe_max] current () slide margin-top '+$('#'+universe_div_id).css('margin-top')+' and should be -'+cur_margin_top+'px'); }
		if($('#'+universe_div_id).css('margin-top')!=-1*cur_margin_top+'px'){ $('#'+universe_div_id).css('margin-top', -1*cur_margin_top+'px'); }
	}

	$('#viewport').animate({
		'height':	v_height
		},
		universe_slide_max_t,
		universe_ease,
		function(){
			universe_sem_2=false;
			if(universe_pane_open){
				for(var i=0; i<universe_order.length; i++){
					// Closing all slides
					$('#slide_'+universe_order[i]).css('height',universe_viewport_min_size+'px');
					$('#slide_'+universe_order[i]+'_in').css('height',universe_viewport_min_size+'px');
					$('#slide_'+universe_order[i]+'_in_color').css('height',universe_viewport_min_size+'px');
					$('#slide_'+universe_order[i]+'_in_text').css('display','none');
					if(universe_order[i]==universe_cur_slide_id){ var cur_margin_top=universe_pos_y_min[i]; }
					// Restarting autoplay
					universe_autoplay_start();
				}

				if(config_debug){ console.log('[universe_max] current slide margin-top '+$('#'+universe_div_id).css('margin-top')+' and should be -'+cur_margin_top+'px'); }
				if($('#'+universe_div_id).css('margin-top')!=-1*cur_margin_top+'px'){ $('#'+universe_div_id).css('margin-top', -1*cur_margin_top+'px'); }

				universe_pane_open=false;
			}
			else{ universe_pane_open=true; }
		}
	);
}

/**
 *	Avance avec l'autoplay
 *	@version 2010.10.23
 */
function universe_autoplay_go(){
	universe_next(false);
	universe_timer_id=setTimeout('universe_autoplay_go()', universe_auto_timer);
}

/**
 *	Go to the next step
 *	@version 2011.01.25
 */
function universe_next(manual){
	if(universe_sem_1){ return; }	
	if(universe_autoplay && manual){ 
		universe_autoplay=false;
		clearTimeout(universe_timer_id);
	}
	
	if(config_debug){ console.log('[universe_next] Current step : '+universe_step+' (ID '+universe_order[universe_step-1]+')'); }
	for(var i=0; i<universe_play_order.length; i++){
		if(universe_play_order[i]==universe_order[universe_step-1]){
			// ID found
			var next_id;
			if(i==universe_play_order.length-1){ next_id=universe_play_order[0]; }
			else{ next_id=universe_play_order[i+1]; }
		}
	}
	if(universe_order[universe_step-1]!=next_id){
		if(config_debug){ console.log('[universe_next] going to  ID '+next_id); }
		u_go_to_i(next_id);
	}
}




/**
 *	Recule
 *	@version 2010.06.20
 */
function universe_prev(manual){

}

/**
 *	Go to the slide (by name)
 *	@version 2010.09.25
 */
function u_go_to_n(step_name){
	for(var i=0; i<universe_order_names.length; i++){
		if(universe_order_names[i]==step_name){
			if(i==universe_order.length){ i=0; }
			if(config_debug){ console.log('[u_go_to_n] going to step '+(i+1)+' ('+step_name+' / ID '+universe_order[i]+')'); }
			u_go_to((i+1));
		}
	}
}

/**
 *	Go to the slide (by ID)
 *	@version 2010.10.23
 */
function u_go_to_i(id){
	for(var i=0; i<universe_order.length; i++){
		if(universe_order[i]==id){
			if(i==universe_order.length){ i=0; }
			if(config_debug){ console.log('[u_go_to_i] going to step '+(i+1)+' ('+universe_order_names[i]+' / ID '+universe_order[i]+')'); }
			u_go_to((i+1));
		}
	}	
}

/*
* Réinitialise la position des slides.
*/ 
function repos_slides()
{	
	console.log(universe_nb_slides);
	for(var i=1; i <= universe_nb_slides; i++)
	{
		$('#slide_'+i).css("marginTop",0+"px"); 
		$('#slide_'+i).css("marginLeft",0+"px");
		
	}	

}

function repos_slides_left()
{	
	console.log(universe_nb_slides);
	for(var i=1; i <= universe_nb_slides; i++)
	{
		$('#slide_'+(i+1)).css("marginLeft",(-universe_slides_width*(i+1))+"px");
		
	}	

}
/**
 *	Go to the slide (by step)
 *	@version 2010.10.23
 */
function u_go_to(step){
	
	if(universe_sem_1){ return; }
	
	// Defining prev_step and next_step
	if(universe_step==1){ universe_prev_step=(universe_order.length); }
	if(universe_step>1 && universe_step<(universe_order.length)){ universe_prev_step=universe_step-1; }
	if(universe_step==(universe_order.length)){ universe_prev_step=universe_step-1; }
	universe_next_step=step;
	universe_cur_slide_id=universe_order[universe_next_step-1];
	var mode_screen = universe_mode_screen[universe_next_step-1];
	var big_mode_screen = mode_screen=='big';
	var little_mode_screen = mode_screen=='little';
	var both_mode_screen = mode_screen=='both';
	

	var autoplay = universe_autoplay;
	
	if (universe_pane_open==true && (big_mode_screen==true || both_mode_screen==true)) {
		$('viewport').css('height',	universe_viewport_max_size+'px');
	}
	else if ((universe_pane_open==false && big_mode_screen) || (universe_pane_open==true && little_mode_screen)) {
		universe_max();
	} 

	var pos_y;
	if(universe_pane_open==true || (universe_pane_open==false && big_mode_screen)){
		pos_y=(-1*universe_pos_y_max[universe_next_step-1]);
	}
	else if(universe_pane_open==false || (universe_pane_open==true && little_mode_screen)){
		pos_y=(-1*universe_pos_y_min[universe_next_step-1]);
	}
	
	universe_sem_1=true;
	var test = 2;
/*
	// 0 : up, 1 : right, 2 : down, 3 : left
	var tabTest = Array(1,1,1,1,1);
	randomnumber = tabTest[universe_step-1];
*/

	if(universe_step == universe_order.length)
	{
		console.log('END');
		randomnumber = 1;
	}

	$('#universe').css("marginLeft",0);
		switch(randomnumber)
	{
		case 0: // Vers le haut
				console.log('Up');
				// On réinitialise la position des slides
				repos_slides();

				// Placement du slide suivant au dessus slide actuel
				if(randomnumber_prev == 3 || randomnumber_prev == 1) // Transition précédente honrizontale
				{
					$('#slide_'+universe_next_step).css("marginTop",( parseInt($('#slide_'+universe_step).css("marginTop").replace("px", "") ) - universe_slide_height*universe_step) +"px"); 
					$('#slide_'+universe_next_step).css("marginLeft",( parseInt($('#slide_'+universe_step).css("marginLeft").replace("px", "") ) - universe_slides_width*(universe_step) )+"px");
				}
				else if(randomnumber_prev == 0 || randomnumber_prev == 2) // Transition précédente verticale
				{
					$('#slide_'+universe_next_step).css("marginTop",( parseInt( $('#slide_'+universe_step).css("marginTop").replace("px", "") )-universe_slide_height*universe_step) +"px"); 
					$('#slide_'+universe_next_step).css("marginLeft",( parseInt($('#universe').css("marginLeft").replace("px", "") )- (universe_slides_width*universe_step)	)+"px");
				}
				
				$('#'+universe_div_id).animate(
				{
				'marginTop':	Math.abs(parseInt($('#slide_'+universe_step).css("marginTop").replace("px",""))+(universe_slide_height*universe_step)) // Pour un déplacement vers le haut
				},
				universe_slide_t,
				universe_ease,
				function(){
					universe_sem_1=false;
					// Clearing everything but current
					universe_close_panes();
					universe_open_pane(universe_order[universe_step-1]);			
					// Is there a function on arrive ?
					universe_trigger_slide_function(universe_order[universe_step-1]);
				}
			);
		break;

		case 1: 
				// Vers la droite
				console.log('Right');
				// On réinitialise la position des slides
				repos_slides();
				if(universe_step != universe_order.length)
				{
					
					$('#'+universe_div_id).animate( // Déplacement vers la droite
					{
					'marginTop':	pos_y,
					'marginLeft':	-1*universe_pos_x[universe_next_step-1]
					},
					universe_slide_t,
					universe_ease,
					function(){
						universe_sem_1=false;
						// Clearing everything but current
						universe_close_panes();
						universe_open_pane(universe_order[universe_step-1]);			
						// Is there a function on arrive ?
						universe_trigger_slide_function(universe_order[universe_step-1]);
					}
					);
				}
				else
				{
					$('#'+universe_div_id).css("marginLeft",-604);
					$('#'+universe_div_id).animate( // Déplacement vers la droite
					{
					'marginTop':	pos_y,
					'marginLeft':	0
					},
					universe_slide_t,
					universe_ease,
					function(){
						universe_sem_1=false;
						// Clearing everything but current
						universe_close_panes();
						universe_open_pane(universe_order[universe_step-1]);			
						// Is there a function on arrive ?
						universe_trigger_slide_function(universe_order[universe_step-1]);
					}
					);
				}
		break;

		case 2: 
			// vers le bas 
				console.log('Down');	
			// On réinitialise la position des slides
				repos_slides();
			// Placement du slide suivant au dessus slide actuel
				if(randomnumber_prev == 3 || randomnumber_prev == 1) // Transition horizontale 
				{
					$('#slide_'+universe_next_step).css("marginTop",( parseInt($('#slide_'+universe_step).css("marginTop").replace("px", "") ) + universe_slide_height*universe_step) +"px"); 
					$('#slide_'+universe_next_step).css("marginLeft",( parseInt($('#slide_'+universe_step).css("marginLeft").replace("px", "") ) - universe_slides_width*(universe_step) )+"px");
				}
				else if(randomnumber_prev == 0 || randomnumber_prev == 2) // Transition verticale
				{
					$('#slide_'+universe_next_step).css("marginTop",( parseInt( $('#slide_'+universe_step).css("marginTop").replace("px", "") )+universe_slide_height*universe_step) +"px"); 
					$('#slide_'+universe_next_step).css("marginLeft",( parseInt($('#universe').css("marginLeft").replace("px", "") )- (universe_slides_width*universe_step)	)+"px");
				}
	
				$('#'+universe_div_id).animate(
				{
				'marginTop':	parseInt($('#slide_'+universe_step).css("marginTop").replace("px",""))-(universe_slide_height*universe_step) // Déplacement vers le bas
				},
				universe_slide_t,
				universe_ease,
				function(){
					universe_sem_1=false;
					universe_close_panes();
					universe_open_pane(universe_order[universe_step-1]);		
					universe_trigger_slide_function(universe_order[universe_step-1]);
				}
			);

		break;
		
		case 3: // vers la gauche
				repos_slides_left();
				console.log('Left');
				$('#'+universe_div_id).animate(
				{
				'marginTop':	pos_y,
				'marginLeft':	1*universe_pos_x[universe_next_step-1]
				},
				universe_slide_t,
				universe_ease,
				function(){
					universe_sem_1=false;
					// Clearing everything but current
					universe_close_panes();
					universe_open_pane(universe_order[universe_step-1]);			
					// Is there a function on arrive ?
					universe_trigger_slide_function(universe_order[universe_step-1]);
				}
			);
		break;

		default:
		break;
	}


	// On enregistre la transition précédente
	randomnumber_prev = randomnumber;
	// On génère un nombre aléatoire pur choisir la prochaine transition
	randomnumber=Math.floor(Math.random()*4);
	
	universe_step = universe_next_step;
	universe_next_step++;
	
	if(universe_step==1){ universe_prev_step=(universe_order.length); }
	if(universe_step>1 && universe_step<(universe_order.length)){ universe_prev_step=universe_step-1; }
	if(universe_step==(universe_order.length)){ universe_prev_step=universe_step-1; }
	if(universe_step==universe_order.length+1){ universe_step=1; }
	if(universe_prev_step==universe_order.length+1){ universe_prev_step=1; }
	if(universe_next_step==universe_order.length+1){ universe_next_step=1; }
}

/*function universe_close_panes(){
	for(var i=0; i<universe_order.length; i++){
//		if(i!=(universe_prev_step-1)){
//			if(config_debug){ console.log('Fermeture de slide_'+universe_order[i]+'_in'); }
			$('#slide_'+universe_order[i]+'_in').css('margin-left', '-'+universe_pane_x+'px');
			$('#slide_'+universe_order[i]+'_in').css('display','none');					
//		}
	}	
}

function universe_open_pane(slide_id){
	$('#slide_'+slide_id+'_in').css('display','block');
	$('#slide_'+slide_id+'_in').animate(
		{
			'marginLeft':0
		},
		universe_slide_in_t,
		universe_ease
	);
}*/

function universe_close_panes(){
	for(var i=0; i<universe_order.length; i++){
//		if(i!=(universe_prev_step-1)){
//			if(config_debug){ console.log('Fermeture de slide_'+universe_order[i]+'_in'); }
			
			if($('#slide_'+universe_order[i]+'_in').hasClass(hor_class)){
				
				$('#slide_'+universe_order[i]+'_in').css('margin-top', (universe_slide_height + universe_pane_y_hor)+'px');
				
			}else{
				
				$('#slide_'+universe_order[i]+'_in').css('margin-left', '-'+universe_pane_x+'px');
				
			}
			
			$('#slide_'+universe_order[i]+'_in').css('display','none');					
//		}
	}	
}

function universe_open_pane(slide_id){
	$('#slide_'+slide_id+'_in').css('display','block');
	
	if($('#slide_'+slide_id+'_in').hasClass(hor_class)){
		
		//Horizontal opening
		$('#slide_'+slide_id+'_in').animate(
			{
				'marginTop':(universe_slide_height - universe_pane_y_hor)
			},
			universe_slide_in_t,
			universe_ease
		);
		
	}else{
		
		//Vertical opening
		$('#slide_'+slide_id+'_in').animate(
			{
				'marginLeft':0
			},
			universe_slide_in_t,
			universe_ease
		);
		
	}
	
}

/**
 *	Lance l'éventuelle fonction d'arrivée décrite pour la slide portant l'ID
 *	@version 2010.10.26
 */
function universe_trigger_slide_function(slide_id){
	// Is there a function on arrive ?
	if(config_debug){ console.log('[u_go_to] Trying to trigger a universe_slide_'+slide_id+' function'); }
	try{ window['universe_slide_'+slide_id](); }
	catch(error){ if(config_debug){ console.log('[u_go_to] No universe_slide_'+slide_id+' function'); } }
}
