function namosw_init_clock()
{
//*************************************Expliquation sur le fonctionnement du script***********************************
//Ce programme permet de créer une horloge en temps réel
//On peut définir autant d'horloge que l'on souhaite (sur une même page) chaqu'une d'entre elle doit être definie par 2 paramètres le premier
//permet de définir l'id de la balise span dans laquelle l'horloge apparaitra et le second paramètre permet de definir
//le type d'horloge à utiliser
//7 types d'horloge peuvent être affichées
//********************************************************************************************************************
//Cette fonction permet de charger les paramètres qui définissent les différentes horloges (localisation et type de l'horloge)
//ainsi que le contenu des tableaux contenant les noms des jours et des mois lors du chargement de la page
 
  var type, i, top, obj, clocks, strobj, tempvar;
  clocks = new Array();
  //Permet de récupérer les n argument définits dans les paramètres de la fonction namosw_init_clock() lors du chargement de la page
  for (i = 0, top = 0; i < namosw_init_clock.arguments.length; i += 2)//ici on extrait chaque paramètre définit dans la fonction namosw_init_clock() lors du chargement de la page et on s places dans un tableau objet
      {
      //namosw_init_clock.arguments[i] : paramètre i définit dans les arguments de la fonction namosw_init_clock(argument1, argument2,...)
    strobj = eval('document.getElementById("' + namosw_init_clock.arguments[i] + '")');//Permet de définir l'objet dans lequel sera afficher l'horloge sur la page html à partir des paramètres paires définit dans la fonction lors du chargement de la page
    type = namosw_init_clock.arguments[i+1];
    if (type < 1 && 7 < type) continue;
    clocks[top++] = strobj;
    clocks[top++] = type;
      }
  //*****************definition des tableau contenant les noms des mois et des jours****************
  clocks.months = new Array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet',
                            'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
  clocks.days = new Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi',
                            'Jeudi', 'Vendredi', 'Samedi');
  //************************************************************************************************
  if (top > 0)
      {
    document.namosw_clocks = clocks;
    namosw_clock();
      }
}
 
function namosw_clock()
{
//fonction permettant l'affichage des différentes horloges suivant les différents formats ainsi que les différents endroits
//(au niveau des balises span) ainsi que le lancement de l'execution toutes les secondes
  var i, type, clocks, next_call, str, hour, ampm, now, year2, year4;
  clocks = document.namosw_clocks;
  if (clocks == null) return;
  next_call = false;
  //affichage de toutes les horloges en fonction du type et de l'id de la balise span dans laquelle l'horloge sera affiché
    for (i = 0; i < clocks.length; i += 2) {
    obj = clocks[i];//objet dans lequel sera affiché la n ième horloge
    type = clocks[i+1];//type d'affichage de la n ième horloge
    now = new Date();
    year2 = now.getYear();
    year4 = year2;
    if (year2 < 1000) year4 = 1900 + year2;
    if (year2 >= 100) year2 = year4;
    //définition des formats en fonction du type 1,2,3,4...
    //remarque : document.getElementById("type1").innerHTML permet d'afficher la date ou l'heure au niveau de la balise span ayant comme id type1
    if (type == 1 || type == 2)
        {
          obj.innerHTML = now.getDate() + ' ' + clocks.months[now.getMonth()] + ' ' + year4;
          if (type == 2)
            obj.innerHTML = clocks.days[now.getDay()] + ' ' + obj.innerHTML;
        }
    else if (type == 3 || type == 4)
        {
          obj.innerHTML = year2 + '/' + (now.getMonth()+1) + '/' + now.getDate();
        }
    else if (type == 5 || type == 6)
        {
          obj.innerHTML = (now.getMonth()+1) + '/' + now.getDate() + '/' + year2;
        }
    
    if (type == 4 || type == 6 || type == 7)
        {
          hour = now.getHours();
          ampm = 0;
          //Dans cette ligne on teste aussi si les minutes et(ou) les secondes sont <10 si c'est le cas on concatène un 0 devant
          //l'heure et(ou) les secondes (on pourrait faire la même chose avec les heures
          str = hour +':'+ ((now.getMinutes() < 10) ? '0'+now.getMinutes():now.getMinutes()) +':'+ ((now.getSeconds() < 10) ? '0'+now.getSeconds():now.getSeconds());
          if (type == 7)
              {
              obj.innerHTML = str;
              }
          else
              {
              obj.innerHTML += ' ' + str;
              }
        }
    //si on utilise l'affichage de l'heure on met la variable next_call a true afin d'executer (settimeout) la fonction namosw_clock()
    //toutes les secondes (1000 millisecondes) pour obtenir l'affichage des secondes en temps réel
    if (type == 4 || type == 6 || type == 7)
        next_call = true;
  }//fin for
  if (next_call)
    window.setTimeout("namosw_clock();", 1000);
}//fin fonction
