/* auteur: Bernard Martin-Rabaud */

/* Date de création: 10/11/2003 modifié le 29/05/2006 FM (IFT) */



// FONCTIONS ET METHODES D'AFFICHE DE LA DATE

var dd_gmt = "";

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.getDate()) + "." + complete2(this.getMonth() + 1) + "." + (this.getFullYear().toString().substring(2,4)) + ",";
}



Date.prototype.afficherHeure = function() {

   // affiche l'heure

   return complete2(this.getHours()) + ":" + complete2(this.getMinutes());

}



Date.prototype.afficherDateHeure = function() {

//   return this.afficherDate() + " " + this.afficherHeure();
   return 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);	
	
	dd_gmt = " GMT+4";
	
    if ((this.getTime() >= dd_mars.getTime()) && (this.getTime() <= dd_oct.getTime())) {
		
		dd_gmt = " GMT+5";
        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();
	
	var Hours = heure.afficherDateHeure() + dd_gmt;

    return Hours;

}



// 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.getElementById("servertime").innerHTML = afficherMonHeure2(4);
	setTimeout("remplirInputHeureLocale()", 60000);
}

function printTime() {
	if(document.getElementById("servertime") != null){
		//setInterval("remplirInputHeureLocale()", 1000)
		remplirInputHeureLocale();
	}
}