//fonction retournant l'ordonnée absolue d'un objet 
function getAbsoluTop(myTarget){

	var top = 0;	

	while(myTarget!= document.body) { 
		{
			top += myTarget.offsetTop;
		}
		 myTarget = myTarget.offsetParent;   
	} 
	return top;
} 

//fonction retournant l'abscisse absolue d'un objet
function getAbsoluLeft(myTarget){

	var Left = 0;	

	while(myTarget!= document.body) {
		{
			Left += myTarget.offsetLeft;     	
		}
		 myTarget = myTarget.offsetParent;
	}   
	return Left;

} 
//w est la variable permettant un décalage gauche de x pixels
//z est la variable permettant un décalage bas de y pixels
function getCoordsHaut(n,w,z){

	var oOmbre = document.getElementById("ombre"+n);
	var oObject = document.getElementById("element"+n);
	var oCalque = document.getElementById("smf"+n);
	var oMenus = document.getElementById("on"+n);
	
	oOmbre.style.width = String(parseInt(oMenus.offsetWidth) + 5)+'px' ;
	oOmbre.style.height = String(parseInt(oMenus.offsetHeight) + 5)+'px' ;
	oCalque.style.left = String(getAbsoluLeft(oObject)-w)+'px' ;
	oCalque.style.top = String(getAbsoluTop(oObject) + oObject.offsetHeight + z + document.body.scrollTop)+'px' ;
	oMenus.style.left = String(getAbsoluLeft(oObject)-w)+'px' ;
	oMenus.style.top = String(getAbsoluTop(oObject) + oObject.offsetHeight + z + document.body.scrollTop)+'px' ;


}

//w est la variable permettant un décalage gauche de x pixels
function getCoordsBas(n,w){

	var oOmbre = document.getElementById("ombre"+n);
	var oObject = document.getElementById("element"+n);
	var oCalque = document.getElementById("smf"+n);
	var oMenus = document.getElementById("on"+n);
	
	oOmbre.style.width = String(parseInt(oMenus.offsetWidth) + 5)+'px' ;
	oOmbre.style.height = String(parseInt(oMenus.offsetHeight) + 5)+'px' ;
	oCalque.style.left = String(getAbsoluLeft(oObject)-w)+'px' ;
	oCalque.style.top = String(getAbsoluTop(oObject) - parseInt(oCalque.offsetHeight) - 3 + document.body.scrollTop)+'px' ;
	oMenus.style.left = String(getAbsoluLeft(oObject)-w)+'px' ;
	oMenus.style.top = String(getAbsoluTop(oObject) - parseInt(oMenus.offsetHeight) - 3 + document.body.scrollTop)+'px' ;
}

function getHauteurTab(n){

	var oTd = document.getElementById("td"+n);

	if (window.navigator.appName=="Microsoft Internet Explorer"&&window.navigator.appVersion.substring(0,1)>="4"){
	oTd.style.height = String(document.body.clientHeight - 30 )+'px' ;
	}
	else{
	oTd.style.height = String(window.innerHeight - 30 )+'px' ;
	}
}
var ff = null ;
function ouvrir2(lien,cible) 
{
   ff = window.open (lien,cible,"width=600,height=500,scrollbars=yes,toolbar=no,"
	   +"location=no,directories=no,status=yes,resizable=yes,location=yes,"
	   +"toolbar=yes,menubar=yes,left=120,top=20");
   ff.focus();
}

/* fonctions elementaires pour les menus: */
function montre(id) {
  if (document.getElementById) {
  	  document.getElementById(id).style.visibility="visible";
	  fAffiche(id);	
  } else if (document.all) {
	  document.all[id].style.visibility="visible";  
	  fAffiche(id);
  } else if (document.layers) {
  	  document.layers[id].visibility="visible";
  	  fAffiche(id);	
  } 
} 
		
function cache(id) {
	if (document.getElementById) {
    	document.getElementById(id).style.visibility="hidden";
		fHide(id);
	} else if (document.all) {
	    document.all[id].style.visibility="hidden";
		fHide(id);
	} else if (document.layers) {
    	document.layers[id].visibility="hidden";
		fHide(id);
	} 
}
		
/* fonctions de "haut niveau" pour les menus*/
function montre_menu(num) {  
	/* num = numero du menu. Il faut montrer le fond, puis les ecritures */
	cache_tout();			
	montre_menu2(num);
}

function montre_menu2(num) {  
	/* num = numero du menu. Il faut montrer le fond, puis les ecritures */
	setTimeout("montre(\"smf"+num.toString()+"\")",100);
	setTimeout("montre(\"on"+num.toString()+"\")",200);
}

function cache_menu(num) {
	cache("smf"+num.toString());
	cache("on"+num.toString());
}

function cache_tout() {
	for (var i=1; i<3 ; i++) { cache_menu(i) ; }
}

/*
  Ce programme a été écrit par
  Roy Whittle (http://www.javascript-fx.com/)
  et GRANDEMENT AMELIORE PAR
  Patrick Rutka (p.rutka@portailpro.net)
  Ce script est disponible à 
  l'adresse http://www.dynamicdrive.com/
*/

  // Le reference est pour le placer a partir de quoi !
  function flottementMenu(id_name, posX, posY, positionHorizontal, positionVerticale, vitesse, reference, auto){
	var ns = (navigator.appName.indexOf("Netscape") != -1);
    var doc = document;
	
	function init(elt) {
		 
	var elemRef;	  

	if (reference != "") {
		elemRef = support(reference);
		elt.y = getAbsoluTop(elemRef)+posY;
		elt.x = getAbsoluLeft(elemRef)+posX;		
	} else {
		
		elt.y = posY;
		elt.x = posX;	
	
	}

      //  Activer ca  ce qui suit pour positionner l'initalisation de l'emplacement du diff au debut
	  // Sinoni içl risque de parcourir tout l'écran ... au démarrage de la page
	  // Cela permet aussi de faire des effets de travelling sympa :-) si on est en 0,0
		
	  
	  if (positionHorizontal == "droite") {
		if (reference == "") {		
		   elt.x = ns?pageXOffset+innerWidth: document.body.scrollLeft+document.body.clientWidth;
		   elt.x -=posX + elt.offsetWidth;
		} else {
		   elt.x -=posX - elt.offsetWidth;
		}
	   }
	  if (positionHorizontal == "gauche") {
		if (reference != "") {		
		   elt.x -=posX + elemRef.offsetWidth;
		}
	   }
	  
	   if (positionVerticale=="bas") {
      		if (reference == "") {		
			   elt.y=ns?pageYOffset+innerHeight:document.body.scrollTop+document.body.clientHeight;
        	   elt.y -=posY + elt.offsetHeight;
			}else {
        	   elt.y -=posY + elt.offsetHeight;
			}	
       }

	  if (positionVerticale=="haut") {
      		if (reference != "") {		
        	   elt.y -=posY - elt.offsetHeight;
			}	
      }	  
	  
	}
	
    function support(id){
      var elt=doc.getElementById?doc.getElementById(id):
                              doc.all?doc.all[id]:doc.layers[id];
    
      elt.sP=function(x,y){this.style.left=x;this.style.top=y;};
     
	  return elt;
    }
    window.stabilisation=function(id_name, posX, posY, positionVerticale, positionHorizontal, vitesse, reference, auto){
      var ftlObj = support(id_name);
      var elemRef;	  

	if (reference != "") {
		elemRef = support(reference);
	}



	  pY = 0;
 	  pX = 0;
	 
	 
	  if (positionVerticale=="haut"){
         if (reference == "") {
			 pY = ns ? pageYOffset : document.body.scrollTop;
		} else {
   		   pY=getAbsoluTop(elemRef) - ftlObj.offsetHeight;
		 }
		ftlObj.y += (pY + posY- ftlObj.y)/vitesse;
      }
      else{
		  if (positionVerticale=="bas"){
		  if (reference == "") {
		   pY=ns?pageYOffset+innerHeight: document.body.scrollTop+document.body.clientHeight;
		   pY-= ftlObj.offsetHeight;
		  } else {
   		   pY=getAbsoluTop(elemRef)+elemRef.offsetHeight;
		  }
	       ftlObj.y += (pY - posY- ftlObj.y)/vitesse;
		}
      }
	 
	  if (positionHorizontal=="gauche"){
        if (reference == "") {
			pX = ns ? pageXOffset : document.body.scrollLeft;
		} else {
            pX=getAbsoluLeft(elemRef)-elemRef.style.width - ftlObj.offsetWidth;
		}
      	ftlObj.x += (pX + posX - ftlObj.x)/vitesse;
      }
      else{
 		  if (positionHorizontal=="droite"){
		  	// A vérifier pour Moz car il semble que ce la merde !!
		     if (reference == "") {
		  	  pX=ns?pageXOffset+innerWidth: document.body.scrollLeft+document.body.clientWidth;
			  pX-=ftlObj.offsetWidth;
		    } else {
	      	   pX=getAbsoluLeft(elemRef)+elemRef.offsetWidth;
		    }
        	ftlObj.x += (pX - posX - ftlObj.x)/vitesse;
		}
      }
	 
      ftlObj.sP(ftlObj.x, ftlObj.y);
	  
      if (auto) setTimeout("stabilisation('"+id_name+"',"+posX+", "+posY+", '"+positionVerticale+"', '"+positionHorizontal+"', "+vitesse+", '"+reference+"' , "+auto+" )",0);
    }
	init(support(id_name));
    stabilisation(id_name, posX, posY, positionVerticale,positionHorizontal, vitesse, reference, auto);
 }
	
	
