/////////// COMPORTEMENT DYNAMIQUE DE MENUS ET SOUS MENU EN FONCTION DE SA POSITION DANS LE NAVIGATEUR/////////////

/**
/*Valeur de retour de la taille de l'element passe en parametre
**/

function returnSizeElement(id){

	var el = document.getElementById(id);

	var size = el.clientHeight;

	return(size);
}

/**
/*Valeur de retour de la position de l'element dans la page, psse en parametre
**/

function returnPositionElement(id){
	
	var el = document.getElementById(id);
	
	var curtop = el.offsetTop;
    
	while (el = el.offsetParent) {
                       
    	curtop += el.offsetTop
    }
	
    return(curtop);

}

/**
/*Valeur de retour de la taille totale de la page, avec le sous menu etendu
**/

function additionValue(id_menu,id_sousmenu){

	var hauteur=returnSizeElement(id_sousmenu);
	var position=returnPositionElement(id_menu);
	
	//Scrol me permet de determiner si on prend en compte le scrolling de la page ou non, selon le cas desire
	
	return (hauteur+position);

}

/**
/*Calcul de la hauteur de la fenetre du navigateur : test du navigateur employe
**/

function innerHeightNav(){
	
	if (navigator.appName=='Microsoft Internet Explorer'){
		//TRès important pour IE !!!!!!!
		return(document.documentElement.clientHeight);
		
	}else{
		return(window.innerHeight);	
	}
}

/**
/*Comparaison entre la hauteur totale du menu (menu + sous menu) et la hauteur de la fenetre : retourne False si la menu sort de la page, true sinon
**/
function comparaisonElements(id_menu,id_sousmenu){
	
	var nav=innerHeightNav();
	
	var val=additionValue(id_menu,id_sousmenu);
	
	var diff=nav-val;
	
	if(diff<=0){
		return false;
	
	}else{
		return true;
	
	}

}

///////////////////////////////////////////////////////////////////

/**
/*Calcul du positionnement du sous menu par rapport au bas de la fenetre du navigateur
**/

function calculRepositionBasDePage(id_menu,id_sousmenu){

	var nav=innerHeightNav();
	
	var size=returnSizeElement(id_sousmenu);
	
	var position=returnPositionElement(id_menu);
	
	var diff=(nav+(document.documentElement.scrollTop))-position;
	
	if(diff<size){
		
		return(size-diff);
	
	}else{
		return(0);
	}
}


///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////

/**
/*Fonction utilise dans le menu cote HTML
**/

function rePosition(id_menu,id_sousmenu){

	var comp=comparaisonElements(id_menu,id_sousmenu);
	
	var el=document.getElementById(id_sousmenu);
	
	if(comp==false){

		el.style.marginTop="-"+calculRepositionBasDePage(id_menu,id_sousmenu)+"px";
	
	}else{
		el.style.marginTop="0px";
	}

}