//initialisation des objets jquery
$(function() {	
		  
		$("#v_tabs").tabs({		
			event: 'mouseover'
		});
		$("#v_tabs").tabs().addClass('ui-tabs-vertical ui-helper-clearfix');		
		$("#v_tabs li").removeClass('ui-corner-top').addClass('ui-corner-left');
		
		$("#h_tabs").tabs({		
			event: 'mouseover'
		});			

		$("#accordion-0").accordion({
			collapsible: true,
			active: false,
			autoHeight: false
			});
		
		$("#accordion-1").accordion({
			collapsible: true,
			active: false,
			autoHeight: false
			});
		
		$("#accordion-2").accordion({
			collapsible: true,
			active: false,
			autoHeight: false
			});
		

});
		
		var pos_slider1 = 1;
		var pos_slider2 = 1;
		var pos_slider3 = 1;		
		
		var old_pos_slider1 = 1;
		var old_pos_slider2 = 1;
		var old_pos_slider3 = 1;
		
		var crt_pos_slider1 = 0;
		var crt_pos_slider2 = 0;
		var crt_pos_slider3 = 0;
	
	
	/*
		Declaration des variables afin de choisir le module(slider) reference
	*/			
		var txt_etapes = "etapes_";		
		
		/*
			name_slider1 - l'identifiant du slider a utiliser pour le module reference
			name_slider2 - l'identifiant du slider autre que pour le module reference
			name_slider3 - l'identifiant du slider autre que pour le module reference
		*/
		var name_slider1 = "#slider1";
		var name_slider2 = "#slider2";
		var name_slider3 = "#slider3";
		
		/*		
			name_table_info_slider1 - l'identifiant du tableau associe au slider choisi comme reference, identifie par name_slider1
			name_table_info_slider2 - l'identifiant du tableau associe au slider identifie par name_slider2
			name_table_info_slider3 - l'identifiant du tableau associe au slider identifie par name_slider3
		*/
		var name_table_info_slider1 = txt_etapes + name_slider1.substring(1);
		var name_table_info_slider2 = txt_etapes + name_slider2.substring(1);
		var name_table_info_slider3 = txt_etapes + name_slider3.substring(1);
				
		
		var v_tabs_event = 0;		
				
		/*
		* regles deplacement possibles des curseurs
		*/
		function calculer_ecarts_possibles(m1, m2, m3){				
					
			var d2  = Math.abs(m2 - m1);
			var d3  = Math.abs(m3 - m1);
			var d23 = Math.abs(m2 - m3);
			
			var max_d2_d23 = Math.max(d2, d23);
			var max_d3_d23 = Math.max(d3, d23);
			
			if (d2 <= 1 && d3 <= 1 && d23 > 1){
				if (m2 < m3){
						m2 = m2 + 1;
				}
				else {
						m3 = m3 + 1;
				}
			}
				
			if (d2 <=1 && d3 > 1){
				if (m3 < m1){
					m3 = m3 + (max_d3_d23 - 1);
				}
				else{
					m3 = m3 - (max_d3_d23 - 1);
				}
			}
			
			if (d2 > 1 && d3 <= 1){
				if (m2 < m1){
					m2 = m2 + (max_d2_d23 - 1);
				}
				else {
					m2 = m2 - (max_d2_d23 - 1);
				}
			}
			
			if (d2 > 1 && d3 > 1){
				if (m2 > m1){
					m2 = m1 + 1;
				}
				else{
					m2 = m1 - 1;
				}
				
				if (m3 > m1){
					m3 = m1 + 1;
				}
				else{
					m3 = m1 - 1;
				}				
			}
			
			//la position courrante des cursuers prend la valeur possible calculee
			crt_pos_slider1 = m1;
			crt_pos_slider2 = m2;
			crt_pos_slider3 = m3;	
			
		}
		
		function afficher_init_position_sliders(tableId1, tableId2, tableId3){
			var r1 = document.getElementById(tableId1).rows[0];
			r1.cells[crt_pos_slider1].style.fontWeight="bold";						
			r1 = document.getElementById(tableId2).rows[0];
			r1.cells[crt_pos_slider2].style.fontWeight="bold";	
			r1= document.getElementById(tableId3).rows[0];
			r1.cells[crt_pos_slider3].style.fontWeight="bold";					
			
		}
		
		function afficher_position_slider(tableId, pos_slider, old_pos_slider){
			var r1 = document.getElementById(tableId).rows[0];
			r1.cells[old_pos_slider - 1].style.fontWeight="normal";			
			r1.cells[pos_slider-1].style.fontWeight="bold";			
		}
		
		function update_info_sliders(tableId1, tableId2, tableId3){
			old_pos_slider1 = pos_slider1 ;
			old_pos_slider2 = pos_slider2 ;
			old_pos_slider3 = pos_slider3 ;
			pos_slider1 = $(name_slider1).slider('option', 'value') + 1;	
			pos_slider2 = $(name_slider2).slider('option', 'value') + 1;	
			pos_slider3 = $(name_slider3).slider('option', 'value') + 1;		
			afficher_position_slider(tableId1, pos_slider1, old_pos_slider1);	
			afficher_position_slider(tableId2, pos_slider2, old_pos_slider2);	
			afficher_position_slider(tableId3, pos_slider3, old_pos_slider3);	
		}
		
	  $(document).ready(function(){
	 	
		$(name_slider1).slider({ step: 1 });
		$(name_slider1).slider('option', 'max', 3);
		$(name_slider1).slider('option', 'min', 0);
		
		$(name_slider2).slider({ step: 1 });
		$(name_slider2).slider('option', 'max', 3);
		$(name_slider2).slider('option', 'min', 0);
		
		$(name_slider3).slider({ step: 1 });
		$(name_slider3).slider('option', 'max', 3);
		$(name_slider3).slider('option', 'min', 0);				
		

		$(name_slider1).bind('slidechange', function(event, ui) 
		{
			var value1 = ui.value ;
			var value2 = $(name_slider2).slider('option', 'value') ;
			var value3 = $(name_slider3).slider('option', 'value') ;	
			
			calculer_ecarts_possibles(value1 , value2 , value3 );		
		
			$(name_slider2).slider('option', 'value',crt_pos_slider2);	
			$(name_slider3).slider('option', 'value',crt_pos_slider3);
				
			update_info_sliders(name_table_info_slider1, name_table_info_slider2, name_table_info_slider3);										

		});
		
		$(name_slider2).bind('slidechange', function(event, ui) 
		{
			var value1 = $(name_slider1).slider('option', 'value');
			var value2 = ui.value;
			var value3 = $(name_slider3).slider('option', 'value');		
			
			calculer_ecarts_possibles(value1, value2 , value3 );
			
			$(name_slider2).slider('option', 'value',crt_pos_slider2);	
			$(name_slider3).slider('option', 'value',crt_pos_slider3);
			
			update_info_sliders(name_table_info_slider1, name_table_info_slider2, name_table_info_slider3);										
				
		});
		
		$(name_slider3).bind('slidechange', function(event, ui) 
		{
			var value1 = $(name_slider1).slider('option', 'value');
			var value2 = $(name_slider2).slider('option', 'value');
			var value3 = ui.value ;		
			
			calculer_ecarts_possibles(value1 , value2 , value3 );
			
			$(name_slider2).slider('option', 'value',crt_pos_slider2);	
			$(name_slider3).slider('option', 'value',crt_pos_slider3);
				
			update_info_sliders(name_table_info_slider1, name_table_info_slider2, name_table_info_slider3);										
		});
		
		$("#h_tabs").bind('tabsselect', function(event, ui) 
		{			
			if (v_tabs_event == 0){
				$("#v_tabs").tabs('select',ui.index);
			}
			showAccordionByIndex(ui.index);
		});		
		
		$("#v_tabs").bind('tabsselect', function(event, ui) 
		{			
			v_tabs_event = 1;			
			$("#h_tabs").tabs('select',ui.index);
			v_tabs_event = 0;			
		});
		
		showAccordionByIndex(0);
		
	});
	  
	  function showAccordionByIndex(index) {
		  for (i=0; i<3; i++){
			  if (i != index)
				$('.accordion-'+i).removeClass('accordion-visible').addClass('accordion-hidden');
			  else
				$('.accordion-'+i).removeClass('accordion-hidden').addClass('accordion-visible'); 
		  }
	  }
	
	
