//*******************************************************//
//  Affichage de la Date du jour en literal              //
//*******************************************************//
function AfficherDate()
{
	var date        = new Date();
	var joursemaine = date.getDay();
	var jouractuel  = date.getDate();
	var moisactuel  = date.getMonth();
	var an		= date.getFullYear();
	var jour = new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
	var mois = new Array("Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet","Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
	if(an < 100) {
		an+=1900;
	}
	return(jour[joursemaine]+" "+jouractuel+" "+mois[moisactuel]+" "+an);
}

//*******************************************************//
//  Affichage de la Date en anglais du jour en literal   //
//*******************************************************//
function AfficherDateEn()
{
	var date        = new Date();
	var joursemaine = date.getDay();
	var jouractuel  = date.getDate();
	var moisactuel  = date.getMonth();
	var an		= date.getYear();
	var jour = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
	var mois = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	if(an < 100) {
		an+=1900;
	}
	return(jour[joursemaine]+", "+mois[moisactuel]+" "+jouractuel+", "+an);
	//return(jour[joursemaine]+" "+jouractuel+" "+mois[moisactuel]+" "+an);
}

//*******************************************************//
//  Affichage de la Date au format jj/mm/aaaa            //
//*******************************************************//
function DateJourJJMMAAAA() {
	var today=new Date();
	var dat=today.getDate();
	var moi=today.getMonth()+1;
	var ann=today.getFullYear();
	if (dat<=9) {
		dat="0"+dat;
	}
	if (moi<=9) {
		moi="0"+moi;
	}
	if (ann<=9) {
		ann="0"+ann;
	}
	var date_du_jour = dat + "/" + moi + "/" + ann;
	return date_du_jour;
}

//**********************************************************//
//*   Function checkDate                                   *//
//*   (e)date = nom du champ concerné   jj/mm/ssaa 				 *//
//**********************************************************//
function checkDate(d) {
  if (d == "") // si la variable est vide on retourne faux
    return false;
    
  var e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");
    
  if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
    return false; // Si pas bon, retourne faux

  // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
  var j = parseInt(d.split("/")[0], 10); // jour
  var m = parseInt(d.split("/")[1], 10); // mois
  var a = parseInt(d.split("/")[2], 10); // année

  // Définition du dernier jour de février
  // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
  if (a%4 == 0 && a%100 !=0 || a%400 == 0)  {fev = 29;}
  else {fev = 28;}

  // Nombre de jours pour chaque mois
  var nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

  // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourne faux
  return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}

//**********************************************************//
//*   Function compareDate                                 *//
//*   (e)date1 = nom du champ concerné  jj/mm/ssaa 				 *//
//*   (e)date2 = nom du champ concerné  jj/mm/ssaa 				 *//
//* retourne -10 en cas d'erreur                           *//
//*           -1 si date1 < date2                          *//
//*            0 si date1 = date2                          *//
//*            1 si date1 > date2                          *//
//**********************************************************//
function compareDate(date1, date2) {
  if (date2 == "") // si la 2eme date est vide on retourne -10
    return -10;

  // au moins un des 2 dates est incorrecte, on retourne -10
  if (!checkDate(date1) || !checkDate(date2))
    return -10   

  // On sépare les dates en 3 variables pour vérification, parseInt() converti du texte en entier
  var j1 = parseInt(date1.split("/")[0], 10);
  var m1 = parseInt(date1.split("/")[1], 10);
  var a1 = parseInt(date1.split("/")[2], 10);

  var j2 = parseInt(date2.split("/")[0], 10);
  var m2 = parseInt(date2.split("/")[1], 10);
  var a2 = parseInt(date2.split("/")[2], 10);

  // cas de dates équivalentes, on retourne 0
  if ((j1 == j2) && (m1 == m2) && (a1 == a2))
    return 0

  // cas de date 1 > date 2, on retourne 1
  if (a1 > a2)
    return 1
  if ((a1 == a2) && (m1 > m2))
    return 1
  if ((a1 == a2) && (m1 == m2) && (j1 > j2))
    return 1
  
  // autre cas, on retourne -1
  return -1
}
