//---------------------
// fonction pour la gestion de fenetre par rapport au type de navigateur
//---------------------
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
//---------------------

//------------------------
//fonction utilisée pour repérer un objet layer dans la page
//---------------------
function MM_findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//---------------------

//---------------------
//fonction pour afficher ou masquer un ou plusieurs layers
//---------------------
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
//---------------------

//---------------------
//calcule les coordonnées réélles sur une fenetre
//---------------------
function repereX(v) {
  return (v*1+LX-92); //LX : x de l'origine
					  //92 : décalage du centre sur le repère
}

function repereY(v) {
  return (v*(-1)+LY-30); //LY : y de l'origine
					     //30 : décalage du centre sur le repère
}
//---------------------

//---------------------
//calcule des nouvelles positions des layers
//+ déplacement
//		args : liste des leyers 
//		ex d'appel : placer('Layer1','Layer2','Layer3','Layer4');
// fonction appelante : iter() 
//---------------------
function placer() 
{
var i,j,x,y,obj,args=placer.arguments;
s = 0; // compteur d'objets layer
R=args[ 0 ];
Q=args[1];
for (i=2;i<args.length;i++) { // itération
if ((obj=MM_findObj(args[i]))!=null) { // recherche de l'objet dans la page
if (obj.style) {
obj=obj.style;
}
j = (step*(3.1416/150)); // calcul de la position (courante)
// x= (R* Math.cos(j+s); // calcul de x et y
x= R* Math.cos(j+s); // calcul de x et y
y= Q* Math.sin(j+s); // sur un trajectoire éliptique
obj.left=repereX(x); // replacement réél des objets
obj.top=repereY(y);
}
s += 2.8*3.1516/args.length;
}
step++; // compteur de position suivante
}
//---------------------

//---------------------
// lancement de l'itération
//---------------------
function start() {								
  interval = setInterval('iter()', delay);		// utilisation du timer setInterval
}
//---------------------

//---------------------
// pour arreter / reprendre l'itération
//---------------------
function pause_resume() {
  if(pause) {									// selon na valeur de 'pause' :
  clearInterval(interval);						// stopper le timer
  pause = false;
  }
  else {
  interval = setInterval('iter()',delay);		// ou relancer le timer
  pause = true;
  }
}
//---------------------


//---------------------
// fonction appelée pour le traitement en timer
//---------------------
function iter() {
placer(275,100,'Layer1','Layer2','Layer3','Layer5'); // mettre R1,Q1 en 1er et 2eme argument
placer(425,210,'','Layer4'); // mettre R2,Q2 en 1er et 2eme argument
// autour de la boule
if (first) // appelée une seule fois
{
replacer(); // pour initialiser les coordonnées par
first=false; // rapport aux parametres initiaux
}
}
//---------------------


//---------------------
// pour re-calculer le système de coordonnées (repères)
// par rapport au dimensionnement de la fenetre navigante
//---------------------
function replacer() {
  wid = document.body.clientWidth;				// paramètres du navigateur
  hei = document.body.clientHeight;
  LX=wid/2;										// calcul du centre : x
  LY=hei/2+30;									//				et	  y
  if ((obj=MM_findObj('centre2'))!=null) {		// replacer les deux layers qui 
    if (obj.style) {							// representent la boule au milieu
    obj=obj.style;								
    }
	obj.left=LX-125;							// éventuellement, modifier ici si il y a redimentionnement 
	obj.top=LY-125;								// de la boule au milieu
  }
  if ((obj=MM_findObj('centre1'))!=null) {		// même chose
    if (obj.style) { 
    obj=obj.style;  
    }
	obj.left=LX-125;							// éventuellement, modifier ici si il y a redimentionnement 
	obj.top=LY;									// de la boule au milieu
  }
}
//---------------------
//==================================================================
//---------------------
// variables globales utiliées 
//---------------------
var pause = true;
var interval;
var step = 0;
var first = true;
//------------
// variables à modifier selon le cas
var delay =150; // pour la vitesse de rotation
var R=350;		// diamètre en x de l'éllipse
var Q=120;		// diamètre en y de l'éllipse
var LX=300;		// centre x
var LY=200;		// centre y
//-------------