// largeur des diapositives
var widthSlide = 485;
// position courante (0 par défaut)
var currentPosition = 0;

$(document).ready(function() {
						  
	// construction du diaporama
	var elt_slideshow = getElementsByClassName('slideShow');
	if(elt_slideshow) {
		var nb_slideshow = elt_slideshow.length;
		for(var i = 0; i < nb_slideshow; i++) {
			var mem_ind = i;
			var id_slideShow = elt_slideshow[i].id;
			var slideWidth = widthSlide;
			var slides = $('#'+id_slideShow+' .slide');
			var numberOfSlides = slides.length;
		
			// l'id de la div de classe slideContainer (pour le redimensionnement)
			var id_SlidesContainer = $('#'+id_slideShow+' .slidesContainer').attr('id');
			
			// supprime la scrollbar en JS
			$('.slidesContainer').css('overflow', 'hidden');
		
			// enveloppe tout les .slides dans #slideInner div
			slides
			.wrapAll('<div id="slideInner'+i+'"></div>')
			// float left pour afficher horizontallement, largeur ajustée des .slides
			.css({
				'float' : 'left',
				'width' : slideWidth
			});
		
			// initialise la largeur de #slideInner avec le total de toutes les diapositives
			$('#slideInner'+i).css('width', slideWidth * numberOfSlides);
		
			// insert les boutons de défilement gauche et droite dans le DOM
			$('#'+id_slideShow)
			.prepend('<span class="control leftControl" id="leftControl'+i+'">Move left</span>')
			.append('<span class="control rightControl" id="rightControl'+i+'">Move right</span>');
		
			// cache les boutons de défilement au chargement
			var init_height = getHeightInit(id_slideShow);
			manageControls(i,currentPosition,init_height,id_SlidesContainer,numberOfSlides);
		
			/*$('#slideInner'+i).animate({
				'marginLeft' : slideWidth*(-currentPosition)
			});*/
		
			// crée un event au clic sur les boutons de défilement (element .control)
			// on lui transmet le numero du diaporama, les id des conteneurs et le nombre de diapositives
			// ces données sont nécessaires pour une bonne gestion du défilement du diaporama
			$('#'+id_slideShow+' .control')
			.bind('click', {mem_ind: i, ids: id_slideShow, idsc: id_SlidesContainer, nbs: numberOfSlides}, function(event){
				// Determine new position
				/*console.log('memoire indice : '+event.data.mem_ind);
				console.log('id controle : '+$(this).attr('id'));*/
				currentPosition = ($(this).attr('id')=='rightControl'+event.data.mem_ind) ? currentPosition+1 : currentPosition-1;
				
				//console.log('currentPosition : '+currentPosition);
				// on prend l'element de classe elt_slide dont le numero correspond à la position courante
				//console.log('elt pour hauteur : #'+event.data.ids+' .elt_slide:eq('+currentPosition+')');
				var new_height = $('#'+event.data.ids+' .elt_slide:eq('+currentPosition+')').outerHeight();
				//console.log('hauteur '+new_height);
		
				// Hide / show controls
				manageControls(event.data.mem_ind,currentPosition,new_height,event.data.idsc,event.data.nbs);
				// Move slideInner using margin-left
				$('#slideInner'+event.data.mem_ind).animate({
					'marginLeft' : slideWidth*(-currentPosition)
				});
				toggleActu();
			});
		}
	}				   
	
	// remplacement des URL des onglets
	var tab_link = $('#onglets a');
	var div_id = $('.cadre_contenu .cadre_texte');
	if(tab_link && div_id) {
		var nb_link = tab_link.length;
		//console.log('nombre de liens: '+nb_link);
		for(var  k = 0; k < nb_link; k++) {
			//console.log('elt : '+div_id[k]);
			tab_link[k].href = '#'+div_id[k].id;
		}
	}
	$.history.init(function(url) {
		$('#tabs').tabs('select',url);
		// initialisation des liens de traductions
		var ccont = $('#toto td.cadre_contenu')[0].childNodes;
		if(ccont) {
			ui_index = -1;
			nb_onglets = ccont.length;
			for(var f=0; f < nb_onglets;f++) {
				if(ccont[f].id == url) {
					ui_index = f;
				}
			}
			if(ui_index > 0) {
				switchTrad(ui_index+1);
				var div_ong= $('#contenu_page .cadre_contenu')[0]; 
				var ong_sel = div_ong.childNodes[parseInt(ui_index)];
				var new_height = ong_sel.scrollHeight;
				//console.log('new height: '+new_height);
				$('#tabs .ligne_fixe').css('height', new_height);
				$('.teclass').css('height',new_height);
				$('.teclass div').css('height',new_height);
			}
		}
		initialize();
	});
	
	// construction des onglets			   
	$('#tabs').tabs();
	/*$('#tabs .ligne_fixe').css('height', $('#tab1').css('height'));
	$('.teclass div').css('height', $('#tab1').css('height'));*/
	
	
	$('#tabs').bind('tabsshow', function(event, ui) {
		var url = ui.tab.href;
		url = url.replace(/^.*#/, '');
		$.history.load(url);
		var new_height = ui.panel.scrollHeight;
		// on change le titre, la balise h1 et le fil d'ariane
		switchData(ui.index);
		// on réinitialise les diaporamas à chaque changement d'onglet pour eviter des problèmes de défilement dû à l'indexation
		currentPosition = 0;
		var ids = ui.panel.firstChild.id;
		// s'il y a un diaporama
		if(ids && ids != '' && ids.indexOf('slideShow') > -1) {
			var mem_ind = ui.panel.firstChild.childNodes[0].id;
			var to_replace = /leftControl/g;
			mem_ind = mem_ind.replace(to_replace,'');
			//console.log('mem ind : '+mem_ind);
			var idsc = ui.panel.firstChild.childNodes[1].id;
			//console.log('id slide container : '+idsc);
			var init_height = $('#'+ids+' .elt_slide:first').height();
			var nbs = $('#'+idsc+' .slide').length;
			//console.log('id elt : '+ui.index);
			//console.log('hauteur init: '+init_height);
			//console.log('nombre de slide: '+nbs);
			
			// on remet tout à zero
			manageControls(mem_ind,0,init_height,idsc,nbs);
			// on recale tout à gauche
			$('#slideInner'+mem_ind).animate({
				'marginLeft' : 0
			});
		}
		else {
			// on change le titre de la page
			initialize();
			// on redimensionne le conteneur
			$('#tabs .ligne_fixe').css('height', new_height);
			$('.teclass').css('height',new_height);
			$('.teclass div').css('height',new_height);
		}
		// on modifie les liens de traductions
		switchTrad(ui.index+1);
		toggleActu();
		// correction de remontée de page intempestive
		document.getElementById('page').scrollTop = 0;
	});
	
	// modifie les liens de traductions dynamiquement
	function switchTrad(ind) {
		for(var  k = 1; k <= 3; k++) {
			var trans_link = $('a#trans_link'+k);
			if(trans_link) {
				var val_link = trans_link.attr('href');
				if(val_link) {
					var nc = $('#nom_clean_tab'+k+'_'+ind);
					var ord = $('#ordre_tab'+ind);
					if(nc && ord) {
						if(val_link.indexOf('#') > 0) {
							var reg = new RegExp('#.*','g');
							var new_link = val_link.replace(reg,'#'+ord.val()+'-'+nc.val());
						}
						else {
							var new_link = val_link+'#'+ord.val()+'-'+nc.val();
						}
						trans_link.attr('href',new_link);
					}
				}
			}
		}
	}
	
	// affiche/cache les boutons de defilement (.control) en fonction de la position courante
	// et redimensionne le conteneur
	function manageControls(ind,position,new_height,idCont,nb_slide){
		/*console.log('position :'+position);
		console.log('indice :'+ind);*/
		// cache la flèche de gauche si la première diapositive est affichée
		if(position==0){ $('#leftControl'+ind).hide() }
		else{ $('#leftControl'+ind).show() }
		// Redimensionnement du conteneur
		$('#'+idCont).css('height',new_height);
		// le slide s'ajuste tout seul
		//$('.slide').css('height',new_height);
		$('.teclass').css('height',new_height);
		$('.teclass div').css('height',new_height);
		$('#toto').css('height',new_height);
		// cache la fleche de droite si la dernière diapositive est affichée
		if(position==nb_slide-1){ $('#rightControl'+ind).hide() }
		else{ $('#rightControl'+ind).show() }
	}
	
	// initialise la hauteur du diaporama à partir de la première diapositive
	function getHeightInit(idSlideShow) {
		var height = $('#'+idSlideShow+' .elt_slide:first').height();
		return height;
	}
	
	// modifie les données de référencement en fonction de l'onglet choisi
	function switchData(ui_index) {
		document.title = $('#title_tab'+(parseInt(ui_index)+1)).val();
		var nom_tab = $('#nom_tab'+(parseInt(ui_index)+1)).val();
		$('#title_tab h2').html(nom_tab);
		var ariane_tab = $('#ariane_tab'+(parseInt(ui_index)+1)).val();
		$('#ar_page').html(ariane_tab);
		$('.mp_inf').remove();
		var armp = $('#ariane_main_page').val();
		var ncmp = $('#nclean_main_page').val();
		$('<a class="mp_inf" title="" href="'+ncmp+'.html">'+armp+'</a><span class="mp_inf">&nbsp;&gt;&nbsp;</span>').insertBefore('#ar_page');
	}
	
});
