//pour les effet de défilement de la recherche dans la mediathèque ainsi que le Mooflow (coverflow)
//A besoin de la librairie javascripts/mootools.js et de javascripts/Mooflow/

var current_session_champs = 0;//le champs courant de la session (celle tout en haut)
var current_auteur_champs = 0;//le champs auteur de la session (celle tout en haut)

window.addEvent('domready', function() {
	
	//bizarrement sous ipad lorsque l'ont met 100% en width il prend la plus petite taille (768px) alors que horizontalement la taille est de 960px(pour le site);
	if(navigator.userAgent.match(/iPhone|iPod|iPad/i))
		$('foot').setStyle('width','960px');
	//si la balise mooflow existe alors on charge l'effet (dans javascripts/Mooflow)
	if($('Mooflow')){
		var mf;
		var myMooFlowPage = {
			start: function(){
				mf = new MooFlow($('Mooflow'),{
					bgColor: '#bfbfbf',
					reflection: 0.4,
					offsetY: -100,
					useSlider: true,
					useAutoPlay: true,
					useCaption: true,
					useResize: false,
					useWindowsResize: false,
					useMouseWheel: true,
					useKeyInput: true,
					runAutoPlay: true
				});
			}
		}
		myMooFlowPage.start()
		$('Mooflow').addEvent('click', function(event){
			mf.stop();
		});
	}
	
	//on regarde si il y a les liste de recherche
	if($('recherche_salle')){
		
		//initialisation des liste pour la recherche
		
		var Slide_salle = new Fx.Slide("liste_salle");
		Slide_salle.hide();
		$('recherche_salle').addEvent('click', function(event){
			Slide_salle.toggle();
			Slide_session.slideOut();
			Slide_auteur.slideOut();
		});
		
		var Slide_session = new Fx.Slide("liste_session");
		Slide_session.hide();
		$('recherche_session').addEvent('click', function(event){
			Slide_session.toggle();
			Slide_salle.slideOut();
			Slide_auteur.slideOut();
		});
		
		var Slide_auteur = new Fx.Slide("liste_auteur");
		Slide_auteur.hide();
		$('recherche_auteur').addEvent('click', function(event){
			Slide_auteur.toggle();
			Slide_salle.slideOut();
			Slide_session.slideOut();
		});
		
		var size_champs = 350;
		var size_fleche = 20;
		//petit script qui vas récupérer la taille des différent champs pour savoir si on doit mettre des fleche de slide
		/*SESSION*/
		if($('liste_session').getSize().y > size_champs){
			//on initilise la taille du champs pour ne pas couper un champs
			$('liste_session').setStyles({'height': size_champs,'overflow':'hidden','position':'relative'});//on fait +size_fleche*2 car les 2 fleche prenne la place dans la taille total
			$('liste_session_contenu').setStyles({'margin-top':size_fleche});
			
			var top_fleche_session = new Element('div').setStyles({
				'position':'absolute',
				'height': size_fleche,
				'width': '100%',
				'top' : 0
			}).inject($('liste_session','top'));
			top_fleche_session.addClass('fleche_top');
			
			var bottom_fleche_session = new Element('div').setStyles({
				'position':'absolute',
				'height': size_fleche,
				'width': '100%',
				'bottom' : 0
			}).inject($('liste_session'));
			bottom_fleche_session.addClass('fleche_bottom');
			
			var temp = 0;
			
			var myEffects = new Fx.Morph('liste_session_contenu', {duration: 1000, transition: Fx.Transitions.Sine.easeOut});
 			
			bottom_fleche_session.addEvent('click', function(event){
				temp = $('liste_session_contenu').getStyle('margin-top').toInt() - size_champs + size_fleche*2;
				if(temp >= -$('liste_session_contenu').getSize().y){
					// si on depasse la taille on met la limite;
					if(temp - size_champs + size_fleche*2 < -$('liste_session_contenu').getStyle('height').toInt())//si le coup suivant depasse on met la limite
						temp = -$('liste_session_contenu').getStyle('height').toInt() + size_champs - size_fleche;
					myEffects.start({
						'margin-top': temp
					});
				}
			});
			
			top_fleche_session.addEvent('click', function(event){
				temp = $('liste_session_contenu').getStyle('margin-top').toInt() + size_champs - size_fleche*2;
				if(temp <= size_fleche){
					myEffects.start({
						'margin-top': temp
					});
				}
				else{
					myEffects.start({
						'margin-top': size_fleche
					});
				}
			});
		}
		/*AUTEUR*/
		if($('liste_auteur').getSize().y > size_champs){
			$('liste_auteur').setStyles({'height': size_champs,'overflow':'hidden','position':'relative'});
			$('liste_auteur_contenu').setStyles({'margin-top':size_fleche});
			
			var top_fleche_auteur = new Element('div').setStyles({
				'position':'absolute',
				'height': size_fleche,
				'width': '100%',
				'top' : 0
			}).inject($('liste_auteur','top'));
			top_fleche_auteur.addClass('fleche_top');
			
			var bottom_fleche_auteur = new Element('div').setStyles({
				'position':'absolute',
				'height': size_fleche,
				'width': '100%',
				'bottom' : 0
			}).inject($('liste_auteur'));
			bottom_fleche_auteur.addClass('fleche_bottom');
			
			var temp = 0;
			var myEffects_auteur = new Fx.Morph('liste_auteur_contenu', {duration: 1000, transition: Fx.Transitions.Sine.easeOut});
 
			bottom_fleche_auteur.addEvent('click', function(event){
				temp = $('liste_auteur_contenu').getStyle('margin-top').toInt() - size_champs + size_fleche*2;
				if(temp >= -$('liste_auteur_contenu').getSize().y){
					// si on depasse la taille on met la limite;
					if(temp - size_champs + size_fleche*2 < -$('liste_auteur_contenu').getStyle('height').toInt())//si le coup suivant depasse on met la limite
						temp = -$('liste_auteur_contenu').getStyle('height').toInt() + size_champs - size_fleche;
					myEffects_auteur.start({
						'margin-top': temp
					});
				}
			});
			
			top_fleche_auteur.addEvent('click', function(event){
				temp = $('liste_auteur_contenu').getStyle('margin-top').toInt() + size_champs - size_fleche*2;
				if(temp <= 20){
					myEffects_auteur.start({
						'margin-top': temp
					});
				}
				else{
					myEffects.start({
						'margin-top': size_fleche
					});
				}
			});
		}
	}//fin liste recherche
});


//l'affichage des communications dans le programme
function affiche_communication(id_communication){
	if(id_communication.match('all')){
		var but_jour = $('button_'+id_communication);
		var session_communication = getElementsByClass(id_communication);
		var nb_class = session_communication.length;
		var display = "none";
		if(but_jour.src.match('/images_index/plus.jpg')){
			display = "block";
			but_jour.src = 'http://imedia.congresmg2009.mediscoop.net/images_index/moins.jpg';
		}
		else
			but_jour.src = 'http://imedia.congresmg2009.mediscoop.net/images_index/plus.jpg';
		for(var i = 0; i < nb_class ; i ++){
			session_communication[i].style.display = display;
		}
	}
	else{
		var el = $('session'+id_communication);
		var el_but = $('button_session'+id_communication);
		if(el.style.display == 'block'){
			el.style.display = 'none';
			el_but.src  = 'http://imedia.congresmg2009.mediscoop.net/images_index/plus.jpg';
		}
		else{
			el.style.display = 'block';
			el_but.src  = 'http://imedia.congresmg2009.mediscoop.net/images_index/moins.jpg';
		}
	}
}

/******LISTE DES ORATEURS******/
var page_courant = 0;//la position de la liste des orateur
var swap_encour = 0;
var position_final;//la position que doit atteindre la div qui défile
//contener : id de la div qui contient le champ à faire défiler
function defile_horizontal(contener,direction,taille_element){
	
	var nb_contener = getElementsByClass("contener_orateur").length - 2;
	var contenue = document.getElementById(contener);
	if(taille_element == undefined){
		taille_element = contenue.offsetWidth;
		if(taille_element == 0)
			taille_element = contenue.style.width;
	}
	if(direction == 'suiv'){
		page_courant = page_courant + 1;
		if(page_courant >= 1){
			document.getElementById('fleche_top_g').style.visibility = 'visible';
			document.getElementById('fleche_bottom_g').style.visibility = 'visible';
			if(page_courant >= nb_contener){
				document.getElementById('fleche_top_d').style.visibility = 'hidden';
				document.getElementById('fleche_bottom_d').style.visibility = 'hidden';
			}
		}
	}
	if(direction == 'prec'){
		page_courant = page_courant - 1;
		if(page_courant < 1){
			document.getElementById('fleche_top_g').style.visibility = 'hidden';
			document.getElementById('fleche_bottom_g').style.visibility = 'hidden';
		}
		else{
			if(page_courant < nb_contener){
				document.getElementById('fleche_top_d').style.visibility = 'visible';
				document.getElementById('fleche_bottom_d').style.visibility = 'visible';
			}
		}
	}
	taille_element = -taille_element*page_courant;
	position_final = taille_element;
	if(swap_encour == 0){
		swap_encour = 1;
		swapped = setInterval(function(){effet_defile(contenue);},20);
	}
}
//contener : id de la div qui contient le champ à faire défiler
function effet_defile(contenue_onglet){

	var position = contenue_onglet.style.left;
	var temp;
	var decale;//le décalage en pixel
	var temp_position;//pour savoir si à la prochaine itération on dépasse la taille
	position = preg_replace_simple('px','',position);
	position = preg_replace_simple('pt','',position);
	//on regarde si on vas de droite à gauche ou de gauche à droite
	if(position >= position_final){//cas Gauche à Droite GD
		//on calcule la distance qui reste à parcourir plus la distance à parcourir est grand plus sa vas vite avec un effet de ralentissement vers la fin
		temp = parseInt(position_final) - parseInt(position);
		/*if(document.getElementById('debug_swap')){
			document.getElementById('debug_swap').innerHTML = contenue_onglet.style.left+" position "+position+" pos final "+position_final+" decale "+decale+" temp "+temp;
		}*/
		decale = parseInt(temp/8);
		temp_position = parseInt(position) + parseInt(decale);
		
		if(temp_position < position_final || decale > -10)
			decale = -10;
		contenue_onglet.style.left = parseInt(position) + parseInt(decale)+"px";
		if(temp > -5){//on vérifie si on est arrivé au bout (2 car 1 sa ne passe pas) onest en négatif car on se deplace de la droite vers la gauche
			contenue_onglet.style.left = position_final+"px";
			swap_encour = 0;
			clearInterval(swapped);
		}//fin decale compris entre 1 et -1
	}//fin déplacement de gauche à droite
	else{//pas testé
		if(position < position_final){//cas Droite à Gauche GD
			//on calcule la distance qui reste à parcourir plus la distance à parcourir est grand plus sa vas vite avec un effet de ralentissement vers la fin
			temp = parseInt(position_final) - parseInt(position);
			decale = parseInt(temp/8);
			temp_position = parseInt(position) + parseInt(decale);
			if(temp_position > position_final || decale < 10)
				decale = 10;
			contenue_onglet.style.left = parseInt(position) + parseInt(decale)+"px";
			if(temp < 5){//on vérifie si on est arrivé au bout (2 car 1 sa ne passe pas)
				contenue_onglet.style.left = position_final+"px";
				swap_encour = 0;
				clearInterval(swapped);
			}//fin decale compris entre 1 et -1
		}//fin déplacement de droite à gauche
	}
}

function affiche_liste_orateur(contener,direction){

	var nb_contener = getElementsByClass("contener_orateur").length - 2;
	nb_contener = nb_contener/2;
	document.getElementById(contener+page_courant).style.display = 'none';
	if(direction == 'suiv'){
		page_courant = page_courant + 1;
		if(page_courant >= 1){
			document.getElementById('fleche_top_g').style.visibility = 'visible';
			document.getElementById('fleche_bottom_g').style.visibility = 'visible';
			if(page_courant >= nb_contener){
				document.getElementById('fleche_top_d').style.visibility = 'hidden';
				document.getElementById('fleche_bottom_d').style.visibility = 'hidden';
			}
		}
	}
	if(direction == 'prec'){
		page_courant = page_courant - 1;
		if(page_courant < 1){
			document.getElementById('fleche_top_g').style.visibility = 'hidden';
			document.getElementById('fleche_bottom_g').style.visibility = 'hidden';
		}
		else{
			if(page_courant < nb_contener){
				document.getElementById('fleche_top_d').style.visibility = 'visible';
				document.getElementById('fleche_bottom_d').style.visibility = 'visible';
			}
		}
	}
	document.getElementById(contener+page_courant).style.display = 'block';
	
}

/****FIN LISTE DES ORATEURS****/
