// FONCTIONS ET METHODES D'AFFICHE DE LA DATE

var timer, delai;

function affiche(delai1)
{
	delai = delai1;
	d = new Date();
	dd = new Date();
	france_off = 1 + eteEurope(d);	
	canada_off = -8 + eteUS(d);
	usa_off = -5 + eteUS(d);
	dd.setHours(d.getUTCHours() + france_off);
	document.getElementById("heures").france_heure.value = dd.afficherHeure();
//	document.getElementById("heures").france_date.value = dd.afficherDate();
	dd.setHours(d.getUTCHours() + usa_off);
	document.getElementById("heures").usa_heure.value = dd.afficherHeure();
//	document.getElementById("heures").usa_date.value = dd.afficherDate();
	dd.setHours(d.getUTCHours() + canada_off);
	document.getElementById("heures").canada_heure.value = dd.afficherHeure();
//	document.getElementById("heures").canada_date.value = dd.afficherDate();
	timer = setTimeout("affiche(delai)", delai1);
}

function complete2(nombre) {
   // met un "0" devant un nombre s'il est < 10
   return (nombre < 10) ? "0" + nombre : nombre;
}

Date.prototype.afficherDate = function() {
   // affiche la date
   return complete2(this.getUTCDate()) + "/" + complete2(this.getUTCMonth() + 1); // + "/" + this.getFullYear();
}

Date.prototype.afficherHeure = function() {
   // affiche l'heure
   return complete2(this.getHours()) + ":" + complete2(this.getMinutes());//":" + complete2(this.getSeconds());
}

Date.prototype.afficherDateHeure = function() {
   return this.afficherDate() + " " + this.afficherHeure();
}


// 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_semaine = jour.getDay();
    jour.setTime(jour.getTime() + (28 - jour_semaine)*24*60*60*1000);
    return jour;
}

function premierDimanche(an, mois, heure) {
  var jour = new Date(an, mois, 1, heure, 0, 0);
//  jour_semaine = jour.getDay() ? jour.getDay() + 1 : 6;
jour_semaine = jour.getDay();
  jour.setTime(jour.getTime() + (7 - jour_semaine)*24*60*60*1000);
  return jour;
}

function eteEurope(date) {
    var dd_mars = dernierDimanche(date.getFullYear(), 2, 2);
//	document.heures.canada.value = dd_mars;
    var dd_oct = dernierDimanche(date.getFullYear(), 9, 2);
    if ((date.getTime() >= dd_mars.getTime()) && (date.getTime() <= dd_oct.getTime())) 
        return 1;
    return 0;
}

function eteUS(date) {
    var dd_avril = premierDimanche(date.getFullYear(), 3, 2);
//	document.heures.france.value = dd_avril;
    var dd_oct = dernierDimanche(date.getFullYear(), 9, 2);
// 	document.heures.usa.value = dd_oct;
    if ((date.getTime() >= dd_avril.getTime()) && (date.getTime() <= dd_oct.getTime()))
	return 1;
    return 0;
}

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();

}



// CALCUL DES HEURES LOCALES DE DIFFERENTS PAYS



function afficherHeurePays(fuseau) {

    // 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(",") == -1)

        var heure = calculerHeureLocale(fuseau);

    else {

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

        var heure = calculerHeureLocale(fuseaux[0]);

        heure.correctionHeureHiverEte();

    }

    return heure.afficherDateHeure();

} 



// POUR AFFICHAGE DE L'HEURE LOCALE EN PAGE 2



function remplirInputHeureLocale() {

    document.forms["mon_heure_locale"].mon_heure.value = afficherMonHeure2(1);

//    document.forms["mon_heure_locale"].mon_heure.value = "mon cul";

}

