/*             fichier javascript pour ALIOD
                    http://www.aliod.fr
          Designed by "ALIOD" de http://www.aliod.fr
            © Copyright 2008-2009 S.A.R.L. ALIOD           */

/* Fonction rotation */
/*		description: 	fonction qui entraine la rotation des balises donnees en entree
			entrees:	portion_cercle		(proportion du cercle &agrave; parcourir 	- 1--> 1 tour complet
						nb_pas				(nombre de deplacement par tour)
						div_name 			(radical de l'ID des balises div concernees)
						div_nb				(nombre de balise concernees, les valeurs de 1 a div_nb viendront completer div_name pour identifier chaque balise
						div_w				(largeur commune des balise)
						div_h				(hauteur commune des balise)
						centre_dim			(largeur du carre representant le centre de rotation)
						centre_name			(nom de l'ID de la balise representant le centre de rotation)
						margin_start		(margin-top de la premiere balise)
						margin_norm			(margin-top des balises suivantes)

		sortie: null
*/
		
		var n = 1;
		var point = Array();
		var alpha_0 = Array();
		var alpha_d;
		var c_x, c_y, p_x, p_y;
		var opacite = Array();
		var rayon = Array();
		var margin_top = Array();
		
		function rotation (portion_cercle, nb_pas, div_name, div_nb, div_w, div_h, centre_dim, centre_name , margin_start , margin_norm)
		{
		
			if (n == 1){
				// Coordonnees du centre
				c_x = document.getElementById(centre_name).offsetLeft;
				c_y = document.getElementById(centre_name).offsetTop;
				document.getElementById(centre_name).style.position= 'absolute';
				// Correction pour avoir le centre vrai: milieu de la div
				c_x = parseInt(c_x) + centre_dim/2;
				c_y = parseInt(c_y) + centre_dim/2;
				//alert('centre x= '+c_x+' centre y= '+c_y);
				// Recuperation de l ensemble des objets div qui doivent bouger
				for (var i = 0; i < div_nb; i++){
					var div_order = i+1;
					var div_name_temp = div_name+div_order;	
					point[i] = document.getElementById(div_name_temp);
					margin_top[i] = margin_norm;
					//alert(margin_top[i]);
					// Initialisation de l opacite
					opacite[i] = 0;

					// calcul des rayons de depart (on prend le NE de la div --> correction induite de +div_w
					p_x = point[i].offsetLeft + 0.8*div_w;
					p_y = point [i].offsetTop + div_h/2;
					//alert('depart_left= '+p_x+' depart_top= '+p_y+' pour '+div_name_temp);
					
					
					rayon[i] = Math.sqrt((c_x - p_x)*(c_x - p_x) + (c_y - p_y)*(c_y - p_y));
					// calcul des angles de depart 
					if(p_x > c_x){ alpha_0[i] = Math.atan(-(p_y - c_y)/(p_x - c_x));}
					else if (p_x < c_x) {alpha_0[i] = Math.atan(-(p_y - c_y)/(p_x - c_x))+ Math.PI;}
					else if (p_x == c_x){
						if (p_y < c_y) {alpha_0[i] = Math.PI /2;}
						else if (p_y > c_y) { alpha_0[i] = 3* Math.PI/2}
					}	
					//alert ('rayon= '+rayon[i]+' angle= '+alpha_0[i]+' n= '+n);
				}
					margin_top[0] = margin_start;
				
				// Calcul de l'angle du pas de rotation
				alpha_d = 2*Math.PI / nb_pas;
				
				
			}
			
			// Pour chaque valeur d angle
			for (i = 0; i < div_nb; i++){
			
				p_x = c_x + rayon[i]* Math.cos(alpha_0[i] - n* alpha_d);
				p_y = c_y - rayon[i] * Math.sin(alpha_0[i] - n* alpha_d);
				// Opacite
					if(p_x > c_x){ alpha_i = Math.atan(-(p_y - c_y)/(p_x - c_x));}
					else if (p_x < c_x) {alpha_i = Math.atan(-(p_y - c_y)/(p_x - c_x))+ Math.PI;}
					else if (p_x == c_x){
						if (p_y < c_y) {alpha_i = Math.PI /2;}
						else if (p_y > c_y) { alpha_i = 3* Math.PI/2}
					}	
				if ((alpha_i > 0.5*Math.PI) && (alpha_i < 0.65*Math.PI  ) ){ opacite[i] = 1;}
				//Correction de placement de - div_w et -div_h
					p_x = p_x - 0.8*div_w;
					p_y = p_y - div_h/2 - margin_top[i];
				
				 // positionnement en absolu
				point[i].style.position ='absolute';
				point[i].style.top = p_y+'px';
				point[i].style.left = p_x + 'px';
				
				// Opacite
				point[i].style.opacity = opacite[i];
			}
			n++;
			
			if (n < (nb_pas*portion_cercle)){
			setTimeout("rotation('"+portion_cercle+"', '"+nb_pas+"', '"+div_name+"', '"+div_nb+"', '"+div_w+"', '"+div_h+"' , '"+centre_dim+"' , '"+centre_name+"')",10);
			
			}
			else{
				for ( i = 0; i < div_nb; i++){
					point[i].style.position ='static';
				
				}
	
				
				
			}
			
		}



		function menu_move(id_h){
			menu_div = document.getElementById("menu");
			titre_div = document.getElementById(id_h);

			pos_menu = menu_div.offsetTop;
			pos_titre = titre_div.offsetTop;
			if (menu_div.style.marginTop){ menu_pos_act = parseInt(menu_div.style.marginTop);}
			else {menu_pos_act = 0;}
			ecart_pos = pos_titre - pos_menu;
			new_m_top = ecart_pos + menu_pos_act;
			menu_div.style.marginTop = new_m_top+'px';
		}
