/* VARIABLES GLOBALES POUR POSITIONNER LE MENU */
var position_pwc_you=188,
	position_lux_you=170,
	position_job=152,
	position_testimonials=134,
	position_application=116;
	
/* VARIABLES GLOBALES POUR AFFICHAGE DU MENU */
var h_lux_you,
	h_pwc_you,
	h_job,
	h_testimonials,
	h_application,
	h_lux_you_init,
	h_pwc_you_init,
	h_job_init,
	h_testimonials_init,
	h_application_init,
	actif_lux_you=false,
	actif_pwc_you=false,
	actif_job=false,
	actif_testimonials=false,
	actif_application=false;

// Tableau des id des sous menus
var tab=['lux_you','pwc_you','job','testimonials','application'];
	
// Timeout pour le menu
var timeout = 100;

// Fonction permettant de positionner et de redimensionner le menu
function redimMenu(){
	
	// Variables
	var ss_lux_you=$('ss_lux_you');
	var lux_you=$('lux_you');
	var ss_pwc_you=$('ss_pwc_you');
	var pwc_you=$('pwc_you');
	var ss_job=$('ss_job');
	var job=$('job');
	var ss_testimonials=$('ss_testimonials');
	var testimonials=$('testimonials');
	var ss_application=$('ss_application');
	var application=$('application');
	
	// Mise en place du positionnement du menu
	lux_you.style.marginTop=h_lux_you_init=-(ss_lux_you.offsetHeight-position_lux_you)+"px";
	pwc_you.style.marginTop=h_pwc_you_init=-(ss_pwc_you.offsetHeight-position_pwc_you)+"px";
	job.style.marginTop=h_job_init=-(ss_job.offsetHeight-position_job)+"px";
	testimonials.style.marginTop=h_testimonials_init=-(ss_testimonials.offsetHeight-position_testimonials)+"px";
	application.style.marginTop=h_application_init=-(ss_application.offsetHeight-position_application)+"px";

}

// Fonction initialisant les hauteurs
function initialise(){
	
	// Variables
	var img_lux_you=$('img_lux_you');
	var img_pwc_you=$('img_pwc_you');
	var img_job=$('img_job');
	var img_testimonials=$('img_testimonials');
	var img_application=$('img_application');
	
	// Mise en place des hauteurs qu'auront les différents menus quand ils sont déroulés
	h_lux_you=position_lux_you-img_lux_you.offsetHeight;
	h_pwc_you=position_pwc_you-img_pwc_you.offsetHeight;
	h_job=position_job-img_job.offsetHeight;
	h_testimonials=position_testimonials-img_testimonials.offsetHeight;
	h_application=position_application-img_application.offsetHeight;
}

// Initialisation des évènements
function initMenu() {
	
	// Redimension et initialisation des données pour l'animation du menu
	redimMenu();
	initialise();
	
    if (!ie){
    	
    	// On récupère les éléments
    	var lis = getElementsByClassName('li','ss_menu'); // tous les li
    	
    	// On affecte le hover sur nos li
    	for ( var i=0; i<lis.length; i++ ) addEvent(lis[i],'mouseover',show);
        	
	    // Fonction verifiant si on est sur un menu courant ou sur la page et qui cache les sous menus
		addEvent(window,'mousemove',timeoutHide);
	
    }
    else addEvent(document,'mousemove',timeoutHide);
    
    // On rend visible le menu
    $('menu').style.visibility='visible';
	
}

// Fonction permettant de gérer l'affichage du menu
function affMenu(elt,visible,temps,chrono){
	
	// Variables récupérant la hauteur mini et maxi du décallage que doit avoir le sous menu
	var h_menu=eval('h_'+elt.replace('"',''));
	var h_init=eval('h_'+elt.replace('"','')+'_init');
	
	// Init du chrono si il n'existe pas
	if(!chrono) chrono=0;
	
	// On passe la variable actif de notre élément à true
	if (visible) eval('actif_'+elt.replace('"','')+"=true;");
	
	// Variable pour la gestion du tps
	var pas=30,
		tps=pas;
		
	// Modification du décallage
	while (tps+pas<temps){
		newH=Math.round(h_menu*tps/temps);
		if (!visible) newH=h_menu-newH;
		setTimeout("bougeMenu('"+elt+"','"+newH+"px');",chrono+tps);
		tps+=pas;
	}
	
	// Finalisation du décallage
	if (visible) setTimeout("bougeMenu('"+elt+"','"+h_menu+"px');",chrono+tps);
	else setTimeout("bougeMenu('"+elt+"','"+h_init+"');",chrono+tps);
	
}

// Fonction permettant de bouger notre sous menu
function bougeMenu(elt,hauteur){
	
	// Variable
	var menu=$(elt);
	
	// on déplace notre sous menu
	menu.style.marginTop=hauteur;
	
}

// Fonction permettant de vérifier si on est sur un menu ou sur la page
function dsFocus(elt){

	// Variables
	var menu=$('ss_'+elt);
	var img=$('img_'+elt);
	var position=eval('position_'+elt);
	var actif=eval('actif_'+elt);
	var h_menu=eval('h_'+elt);
	
	// Check de la position de la souris par rapport à notre élément
	if (Mouse_X>menu.offsetLeft && Mouse_X<(menu.offsetLeft+menu.offsetWidth) && Mouse_Y>(position-img.offsetHeight) && ((!actif && Mouse_Y<position) || (actif && Mouse_Y<(h_menu+position)))) return true;
	else if (Mouse_X<menu.offsetLeft && Mouse_X>(menu.offsetLeft+menu.offsetWidth) && Mouse_Y<(position-img.offsetHeight) && ((!actif && Mouse_Y>position) || (actif && Mouse_Y>(h_menu+position)))) return false;
	
}
    
// On cache l'ul de l'élément courant
function timeoutHide(){
	
	// On vérifie si on est sur le menu courant et si c'est pas le cas on le cache
	for (var i in tab){
		
		// On est sur le menu courant
		if (dsFocus(tab[i])) continue;
		
		// Variable
		var actif=eval('actif_'+tab[i]);
	
		// On lance un timeout pour cacher le sous menu
	    if (actif) eval( "actif_" + tab[i] + " = false; window.setTimeout('affMenu( \"" + tab[i] + "\" , false, 200, 100 )', " + timeout + " );");
	    
	}
}

// On montre le premier ul présent dans l'élément courant
function show(elt){

	// On vérifie qu'on est bien sur notre élément courant
	for (var i in tab) if (this.id==("ss_"+tab[i]) || elt==("ss_"+tab[i])){
		
		// Variable
		var actif=eval('actif_'+tab[i]);
	
		// On affiche le sous menu
	    if (!actif) affMenu(tab[i], true, 200, 100);
	    
	}
    	
}