
/* - fuseau_horaire.js - */
// FONCTIONS ET METHODES D'AFFICHE DE LA DATE



function complete2(nombre) {

   // met un "0" devant un nombre s'il est < 10

   return (nombre < 10) ? "0" + nombre : nombre;

}

function dayEndFromater(day)
{
	
	if (day == 1)
	{
		return day+"er";
	}
	else
	{
		return day;
	}
}

var day=new Array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
var month= new Array("janvier", "f&eacute;vrier", "mars", "avril", "mai", "juin", "juillet", "ao&ucirc;t", "septembre", "octobre", "novembre", "d&eacute;cembre");
Date.prototype.afficherDate = function() {

   // affiche la date

   return day[this.getDay()] + "&nbsp;" + dayEndFromater(this.getDate()) + "&nbsp;" + month[this.getMonth()] + "&nbsp;" + this.getFullYear()+ "&nbsp;&gt;";

}



Date.prototype.afficherHeure = function() {

   // affiche l'heure

   return complete2(this.getHours()) + ":" + complete2(this.getMinutes());
}



Date.prototype.afficherDateHeure = function() {

   return this.afficherDate() + " " + this.afficherHeure();

}



// CALCUL SIMPLE DE L'HEURE LOCALE EN FONCTION DU FUSEAU HORAIRE



function calculerHeureLocale(mon_fuseau) {

    // calcule l'heure en fonction du fuseau horaire - retourne un objet Date

    var heure = new Date();  

    heure.setTime(heure.getTime() + (heure.getTimezoneOffset() + mon_fuseau*60) * 60 * 1000);

    return heure;

}



function afficherMonHeure1(mon_fuseau) {

    // affiche l'heure en fonction du fuseau horaire

    var heure = calculerHeureLocale(mon_fuseau);  

    return heure.afficherDateHeure();

}



// CALCUL DE L'HEURE LOCALE EN TENANT COMPTE DE L'HEURE D'HIVER/ETE DANS L'EU



function dernierDimanche(an, mois, heure) {

    // retourne un objet Date au dernier dimanche du mois � l'heure indiqu�e

    var jour = new Date(an, mois, 1, heure, 0, 0);

    // jour du 1er du mois (lundi : 0, mardi : 1, ..., dimanche : 6)

    jour_semaine = jour.getDay() ? jour.getDay() + 1 : 6;

    jour.setTime(jour.getTime() + (28 - jour_semaine)*24*60*60*1000);

    return jour;

}



Date.prototype.correctionHeureHiverEte = function() {

    var dd_mars = dernierDimanche(this.getFullYear(), 2, 2);

    var dd_oct = dernierDimanche(this.getFullYear(), 9, 2);

    if ((this.getTime() >= dd_mars.getTime()) && (this.getTime() <= dd_oct.getTime())) 

        this.setTime(this.getTime() + 60*60*1000);

}



function afficherMonHeure2(mon_fuseau_hiver) {

    var heure = calculerHeureLocale(mon_fuseau_hiver);  

    // correction pour les pays europ�ens qui changent d'heure hiver/�t�

    heure.correctionHeureHiverEte();

    return heure.afficherDateHeure();

}

/*main part*/
var ns4;
var ie4;
var dom;
var fuseau="1,2";
var id="heure";
// CALCUL DES HEURES LOCALES DE DIFFERENTS PAYS
//UTILISE DANS ID HEURE
function launchDate()
{
	ns4 = (document.layers)?true:false; //NS4
	ie4=(document.all)?true:false; //IE4
	dom=(document.getElementById)?true:false; //DOM
    
var actif=window.setInterval("afficherHeurePays()", 2000);

}

function afficherHeurePays() 
{

    // l'argument fuseau contient le fuseau horaire,

    // sauf pour l'Europe occidentale o� il contient "1,2" (heure d'hiver, heure d'�t�)


    if (fuseau.indexOf(",", 0) == -1)
    {

        var heure = calculerHeureLocale(fuseau);
    }
    else 
    {

        var fuseaux = fuseau.split(",");

        var heure = calculerHeureLocale(fuseaux[0]);

        heure.correctionHeureHiverEte();

    }

	if (dom)
 	{
		//document.getElementById("heure").innerHTML=heure.afficherDateHeure();
		document.getElementById(id).innerHTML=heure.afficherDateHeure();
		
 	}
 	
 	else if (ie4)
 	{
 		document.all[id].innerHTML=heure.afficherDateHeure();
 	}
 	else if(ns4)
 	{
 		document.anchors[id].innerHTML=heure.afficherDateHeure();
 	}

    


} 



