<!-- Begin
/*
/****************************************************************
 *          Script appelé sur une seule page : home             *
 *           dessine une horloge qui suit la souris             *
 *  Original location : http://www.lefoujd.net/JS/FJDClock.js   *
 ****************************************************************

RMQ 1 : on met le tout en commentaire pour masquer le script aux browsers qui ne
   gèrent pas le javascript ou les "anciens" browsers (ex : Netscape 2 et avant)
   ça évite les problèmes
RMQ 2 : Ce script fonctionne très mal avec OPERA. (???)
   J'ai essayer de le faire se signer comme IE, comme Mozilla, comme Opera
   et rien ne veut fonctionner conrrectement.
   Je ne comprends pas pourquoi.
   Si vous trouver une solution... Faite moi signe, je suis vivement intéressé.
*/

// servira a tester si on a affaire à Netscape ou IE
// (voire à compléter pour les autres browsers :
//  Opera, Amaya, Beonex, NeoPlanet, Mozilla, Netcaptor...)
// on devrait les nommer "nsLike" et "ieLike", ce serait plus parlant.
var ns = (document.layers);
var ie = (document.all);

// les différentes couleurs appliquées dans l'horloge
var dCol = 'FFFF00';  // couleur de la date.
var fCol = '339900';  // couleur des nombres de l'horloge.
var sCol = 'FFFF00';  // couleur de l'aiguille des secondes.
var mCol = 'FF0000';  // couleur de l'aiguille des minutes.
var hCol = '330000';  // couleur de l'aiguille des heures.
var oCol = 'FF6600';  // couleur du message.

// variable qui gère les tailles de l'horloge
var ClockHeight = 35;
var ClockWidth = 35;

// variable qui gère la position de l'horloge par rapport au curseur
var ClockFromMouseY = 10;
var ClockFromMouseX = 100;
// L'un au moins doit être supérieur à 2 x la hauteur ou la largeur
// sinon le curseur est dans l'horloge et on ne peut plus clicker sur la page.

// tableau pour la liste des jours et des mois
switch (navigator.language)
{
   case 'fr' : d = new Array("DIMANCHE","LUNDI","MARDI","MERCREDI","JEUDI","VENDREDI","SAMEDI");
               m = new Array("JANVIER","FEVRIER","MARS","AVRIL","MAI","JUIN","JUILLET","AOUT","SEPTEMBRE","OCTOBRE","NOVEMBRE","DECEMBRE");
               break;
   case 'en' : d = new Array("SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATERDAY");
               m = new Array("JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER");
               break;
   case 'de' : d = new Array("SONTAG","MONTAG","DIENSTAG","MITTWOCH","DONNERSTAG","FREITAG","SAMSTAG");
               m = new Array("JANUAR","FEBRUAR","MÄRZ","APRIL","MAI","JUNI","JULY","AUGUST","SEPTEMBER","OKTOBER","NOVEMBER","DEZEMBER");
               break;
   case 'it' : d = new Array("DOMENICA","LUNEDI","MARTEDI","MERCOLEDI","GIOVEDI","VENERDI","SABATO");
               m = new Array("GENNAIO","FEBBRAIO","MARZO","APRILE","MAGGIO","GINGUO","LUGLIO","AGOSTO","SETTEMBRE","OTTOBRE","NOVEMBRE","DICEMBRE");
               break;
   case 'es' : d = new Array("DOMINGO","LUNES","MARTES","MIERCOLES","JUERES","VIERNES","SABADO");
               m = new Array("ENERO","FEBRERO","MARZO","APRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE");
               break;
   default   : d = new Array("DIMANCHE","LUNDI","MARDI","MERCREDI","JEUDI","VENDREDI","SAMEDI");
               m = new Array("JANVIER","FEVRIER","MARS","AVRIL","MAI","JUIN","JUILLET","AOUT","SEPTEMBRE","OCTOBRE","NOVEMBRE","DECEMBRE");
}

// définition du tableau de caractères pour le message
// on inscrit le message : "Bienvenue chez Danny." à l'envers, c'est plus lisible sur l'écran du Browser
var OtherMessage = "ynnaD zehc eunevneiB *** ";
var O = OtherMessage.split ('');

// définition du tableau de caractères pour la date
var date = new Date();
var day = date.getDate();
var year = date.getYear();
// un "bug" chez Netscape fait que quand on demande la date il nous donne 102 pour 2002.
if (ns)
  { year += 1900; }

var TodaysDate = " * " + d[date.getDay()] + " " + day + " " + m[date.getMonth()] + " " + year;
var D = TodaysDate.split('');

// définition du tableau de caractères pour l'aiguille des heures
var H = '...';
var H = H.split('');

// définition du tableau de caractères pour l'aiguille des minutes
var M = '....';
var M = M.split('');

// définition du tableau de caractères pour l'aiguille des secondes
var S = '.....';
var S = S.split('');

// définition du tableau de caractères pour les nombres sur l'horloge
var Face = '1 2 3 4 5 6 7 8 9 10 11 12'; // version en chiffre arabe
// var Face = 'I II III IV V VI VII VIII IX X XI XII'; // version en chiffre romain
var Face = Face.split(' ');
var n = Face.length;

var font  = 'Verdana';
var size  = 1;
var speed = 0.6;
var a     = size * 10;

// propriété du texte à afficher : font / size / color (pour les nombres, la date et le message)
var props  = "<font face="+font+" size="+size+" color="+fCol+"><B>";
var props2 = "<font face="+font+" size="+size+" color="+dCol+"><B>";
var props3 = "<font face="+font+" size="+size+" color="+oCol+"><B>";

// variable pour la position du curseur de la souris
var ymouse = 100;
var xmouse = 100;

// décalage entre deux caractères (pour les aiguilles, la date et le message)
var Split  = 360 / n;
var Dsplit = 360 / D.length;
var Osplit = 360 / O.length;

var HandHeight = ClockHeight / 4.5
var HandWidth = ClockWidth / 4.5

var HandY = -7;
var HandX = -2.5;

var scrll = 0;
var step = 0.06;
// pas pour le texte qui tourne dans le sens trigonométrique
var currStep = 0;
// pas pour le texte qui tourne dans le sens inverse du sens trigonométrique
var currStepInv = 0;

// déclaration et remplissage du tableau qui servira au positionnement des aiguilles
var y = new Array();
var x = new Array();
var Y = new Array();
var X = new Array();
// remplissage des tableaux à "0"
for (i = 0; i < n; i++)
{  y[i] = 0;  x[i] = 0;  Y[i] = 0;  X[i] = 0;  }

// déclaration et remplissage du tableau qui servira au positionnement de la date
var Dy = new Array();
var Dx = new Array();
var DY = new Array();
var DX = new Array();
// remplissage des tableaux à "0"
for (i = 0; i < D.length; i++)
{  Dy[i] = 0;  Dx[i] = 0;  DY[i] = 0;  DX[i] = 0;  }

// déclaration et remplissage du tableau qui servira au positionnement du message
var Oy = new Array();
var Ox = new Array();
var OY = new Array();
var OX = new Array();
// remplissage des tableaux à "0"
for (i = 0; i < O.length; i++)
{  Oy[i] = 0;  Ox[i] = 0;  OY[i] = 0;  OX[i] = 0;  }

// dessin de l'horloge
if (ns)
{  // dessin du message
   for (i=0; i < O.length; i++)
      document.write('<layer name="nsMess'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props3+O[i]+'</font></center></layer>');

   // dessin de la date
   for (i=0; i < D.length; i++)
      document.write('<layer name="nsDate'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props2+D[i]+'</font></center></layer>');

   // dessin des nombres
   for (i=0; i < n; i++)
      document.write('<layer name="nsFace'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+Face[i]+'</font></center></layer>');

   // dessin des secondes
   for (i=0; i < S.length; i++)
      document.write('<layer name=nsSeconds'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+sCol+'><center><b>'+S[i]+'</b></center></font></layer>');

   // dessin des minutes
   for (i=0; i < M.length; i++)
      document.write('<layer name=nsMinutes'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+mCol+'><center><b>'+M[i]+'</b></center></font></layer>');

   // dessin des heures
   for (i=0; i < H.length; i++)
      document.write('<layer name=nsHours'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+hCol+'><center><b>'+H[i]+'</b></center></font></layer>');
}
else
//if (ie)
{  // dessin du message
   document.write('<div id="Oa" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
   for (i=0; i < O.length; i++)
      document.write('<div id="ieMess" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center">'+props3+O[i]+'</B></font></div>');
   document.write('</div></div>');

   // dessin de la date
   document.write('<div id="Od" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
   for (i=0; i < D.length; i++)
      document.write('<div id="ieDate" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center">'+props2+D[i]+'</B></font></div>');
   document.write('</div></div>');

   // dessin des nombres
   document.write('<div id="Of" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
   for (i=0; i < n; i++)
      document.write('<div id="ieFace" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center">'+props+Face[i]+'</B></font></div>');
   document.write('</div></div>');

   // dessin des heures
   document.write('<div id="Oh" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
   for (i=0; i < H.length; i++)
      document.write('<div id="ieHours" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+hCol+';text-align:center;font-weight:bold">'+H[i]+'</div>');
   document.write('</div></div>');

   // dessin des minutes
   document.write('<div id="Om" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
   for (i=0; i < M.length; i++)
      document.write('<div id="ieMinutes" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+mCol+';text-align:center;font-weight:bold">'+M[i]+'</div>');
   document.write('</div></div>')

   // dessin des secondes
   document.write('<div id="Os" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
   for (i=0; i < S.length; i++)
      document.write('<div id="ieSeconds" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+sCol+';text-align:center;font-weight:bold">'+S[i]+'</div>');
   document.write('</div></div>')
}

// si Netscape alors, sinon autre
(ns) ? window.captureEvents(Event.MOUSEMOVE) : 0;

function Mouse(evnt)
{  // cette fonction sert à recalculer à chaque déplacement souris la nouvelle position de l'horloge
   ymouse = (ns) ? evnt.pageY + ClockFromMouseY - (window.pageYOffset) : event.y + ClockFromMouseY;
   xmouse = (ns) ? evnt.pageX + ClockFromMouseX                        : event.x + ClockFromMouseX;
}

// si Netscape alors, sinon autre
(ns) ? window.onMouseMove=Mouse : document.onmousemove=Mouse;

function ClockAndAssign()
{  // cette fonction sert à dessiner l'horloge tournante sur le document
   // calcul de la nouvelle heure et de la position des aiguilles
   var time = new Date ();
   var secs = time.getSeconds();
   var sec  = -1.57 + Math.PI * secs/30;
   var mins = time.getMinutes();
   var min  = -1.57 + Math.PI * mins/30;
   var hr   = time.getHours();
   var hrs  = -1.575 + Math.PI * hr / 6 + Math.PI * parseInt(time.getMinutes()) / 360;

   // si on est sur IE, on prend en compte le décallage du à la bare de défillement
   if (ie)
   {
      Oa.style.top = window.document.body.scrollTop; // pour le message
      Od.style.top = window.document.body.scrollTop; // pour la date
      Of.style.top = window.document.body.scrollTop; // pour les nombres
      Oh.style.top = window.document.body.scrollTop; // pour les heures
      Om.style.top = window.document.body.scrollTop; // pour les minutes
      Os.style.top = window.document.body.scrollTop; // pour les secondes
   }

   // dessin des nombres de l'horloge
   for (i = 0; i < n; i++)
   {
      var F  = (ns) ? document.layers['nsFace' + i] : ieFace[i].style;
      F.top  = y[i] + ClockHeight * Math.sin(-1.0471 + i * Split * Math.PI / 180) + scrll;
      F.left = x[i] + ClockWidth  * Math.cos(-1.0471 + i * Split * Math.PI / 180);
   }

   // dessin de l'aiguille des heures
   for (i = 0; i < H.length; i++)
   {
      var HL  = (ns) ? document.layers['nsHours' + i] : ieHours[i].style;
      HL.top  = y[i] + HandY + (i * HandHeight) * Math.sin(hrs) + scrll;
      HL.left = x[i] + HandX + (i * HandWidth)  * Math.cos(hrs);
   }

   // dessin de l'aiguille des minutes
   for (i = 0; i < M.length; i++)
   {
      var ML  = (ns) ? document.layers['nsMinutes' + i] : ieMinutes[i].style;
      ML.top  = y[i] + HandY + (i * HandHeight) * Math.sin(min) + scrll;
      ML.left = x[i] + HandX + (i * HandWidth)  * Math.cos(min);
   }

   // dessin de l'aiguille des secondes
   for (i = 0; i < S.length; i++)
   {
      var SL  = (ns) ? document.layers['nsSeconds' + i] : ieSeconds[i].style;
      SL.top  = y[i] + HandY + (i * HandHeight) * Math.sin(sec) + scrll;
      SL.left = x[i] + HandX + (i * HandWidth)  * Math.cos(sec);
   }

   // dessin de la phrase de la date (ex : Mardi 2 juillet 2002)
   for (i = 0; i < D.length; i++)
   {
      var DL  = (ns) ? document.layers['nsDate' + i] : ieDate[i].style;
      DL.top  = Dy[i] + ClockHeight * 1.3 * Math.sin(currStep + i * Dsplit * Math.PI / 180) + scrll;
      DL.left = Dx[i] + ClockWidth  * 1.3 * Math.cos(currStep + i * Dsplit * Math.PI / 180);
   }

   // dessin de la phrase du message
   for (i = 0; i < O.length; i++)
   {
      var OL  = (ns) ? document.layers['nsMess' + i] : ieMess[i].style;
      OL.top  = Oy[i] + ClockHeight * 1.8 * Math.sin(currStepInv + i * Osplit * Math.PI / 180) + scrll;
      OL.left = Ox[i] + ClockWidth  * 1.8 * Math.cos(currStepInv + i * Osplit * Math.PI / 180);
   }

   // incrémentation / décrémentation des compteurs pour les positions des textes
   currStep -= step;
   currStepInv += step;
}

function Delay()
{  // cette fonction sert à recalculer les tableaux de position des aiguilles et lettres des textes
   scrll = (ns) ? window.pageYOffset : 0;

   // calcul du tableau des positions pour le message
   Oy[0] = Math.round(OY[0] += ((ymouse) - OY[0]) * speed);
   Ox[0] = Math.round(OX[0] += ((xmouse) - OX[0]) * speed);
   for (i = 1; i < O.length; i++)
   {
      Oy[i] = Math.round(OY[i] += (Oy[i - 1] - OY[i]) * speed);
      Ox[i] = Math.round(OX[i] += (Ox[i - 1] - OX[i]) * speed);
   }

   // calcul du tableau des positions pour la date
   Dy[0] = Math.round(DY[0] += ((ymouse) - DY[0]) * speed);
   Dx[0] = Math.round(DX[0] += ((xmouse) - DX[0]) * speed);
   for (i = 1; i < D.length; i++)
   {
      Dy[i] = Math.round(DY[i] += (Dy[i - 1] - DY[i]) * speed);
      Dx[i] = Math.round(DX[i] += (Dx[i - 1] - DX[i]) * speed);
   }

   // calcul du tableau des positions pour les aiguilles
   y[0] = Math.round(Y[0] += ((ymouse) - Y[0]) * speed);
   x[0] = Math.round(X[0] += ((xmouse) - X[0]) * speed);
   for (i = 1; i < n; i++)
   {
      y[i] = Math.round(Y[i] += (y[i - 1] - Y[i]) * speed);
      x[i] = Math.round(X[i] += (x[i - 1] - X[i]) * speed);
   }

// appel à la fonction de dessin de l'horloge
   ClockAndAssign();

// définition du delai avant le prochain re-dessin
   setTimeout('Delay()', 100);
}
// End -->

<!--
window.onload=Delay;
// -->

