function DecomposeDate(LeParam1){ 

// Sépare les jours, les mois et les années dans une date de type "22/05/1981"
// Renvoye le tout dans un tableau de taille 3

LeRetour = new Array(3);
LeJour="";
LeMois="";
LeAnnee="";

// Extraction du jour
i=0;
while((LeParam1.charAt(i)!="/")&&(i<10)){
LeJour+=LeParam1.charAt(i);
i++;
}
if(LeJour.charAt(0)=="0"){
LeJour=LeJour.charAt(1);
}
LeParam1=LeParam1.substring(i+1,LeParam1.length);

// Extraction du mois
i=0;
while((LeParam1.charAt(i)!="/")&&(i<10)){
LeMois+=LeParam1.charAt(i);
i++;
}
if(LeMois.charAt(0)=="0"){
LeMois=LeMois.charAt(1);
}
LeParam1=LeParam1.substring(i+1,LeParam1.length);


// Extraction de l'année
LeAnnee=LeParam1;
LeRetour[0]=LeJour;
LeRetour[1]=LeMois;
LeRetour[2]=LeAnnee;
return LeRetour;
}

function DecomposeDateSql(LeParam1){ 

// Sépare les jours, les mois et les années dans une date de type "22/05/1981"
// Renvoye le tout dans un tableau de taille 3

LeRetour = new Array(3);
LeJour="";
LeMois="";
LeAnnee="";

// Extraction du jour
i=0;
while((LeParam1.charAt(i)!="-")&&(i<10)){
LeJour+=LeParam1.charAt(i);
i++;
}
if(LeJour.charAt(0)=="0"){
LeJour=LeJour.charAt(1);
}
LeParam1=LeParam1.substring(i+1,LeParam1.length);

// Extraction du mois
i=0;
while((LeParam1.charAt(i)!="-")&&(i<10)){
LeMois+=LeParam1.charAt(i);
i++;
}
if(LeMois.charAt(0)=="0"){
LeMois=LeMois.charAt(1);
}
LeParam1=LeParam1.substring(i+1,LeParam1.length);


// Extraction de l'année
LeAnnee=LeParam1;
LeRetour[0]=LeJour;
LeRetour[1]=LeMois;
LeRetour[2]=LeAnnee;
return LeRetour;
}


// -------------------------------------------



function DateMachine(LeParam1){

// Renvoie une date sans les 0 dans les mois ou les jours "02/03/1981" -> "2/3/1981"

LaDate = new Array(3);
LaDate = DecomposeDate(LeParam1);
LeRetour = LaDate[0]+"/"+LaDate[1]+"/"+LaDate[2];
return LeRetour;
}

// Renvoie une date en format anglais avec le séparateur choisi "02/03/1981" -> "1981-3-2"
// Le premier paramètre est la date à convertir, le second est le caractère de séparation choisi
function DateAnglaise(LeParam1,LeParam2){

LaDate = new Array(3);
LaDate = DecomposeDate(LeParam1);

LeRetour = LaDate[2]+LeParam2+LaDate[1]+LeParam2+LaDate[0];
return LeRetour;
}
function DateFrancaise(LeParam1,LeParam2){

LaDate = new Array(3);
LaDate = DecomposeDateSql(LeParam1);

LeRetour = LaDate[2]+LeParam2+LaDate[1]+LeParam2+LaDate[0];
return LeRetour;
}


// -------------------------------------------



function ComparerDates(LeParam1,LeParam2){

// Compare 2 dates au format jj/mm/aaaa
// Renvoye 0 si égalité, 1 si la première est supérieure, sinon 2

var LeParam1 = DateAnglaise(LeParam1,"/");// Ne pas oublier d'utiliser cette fonction
// pour convertir en date anglaise, sinon le 05/07/2003 sera compris "7 mai 2003" par JavaScript

var LeParam2 = DateAnglaise(LeParam2,"/");
LeParam1 = Date.parse(LeParam1);
LeParam2 = Date.parse(LeParam2);

if (LeParam1 == LeParam2) { 
return 0;
}

if (LeParam1 > LeParam2){
return 1;
}else{
return 2;
}
}



// -------------------------------------------



function VerifierDates(LeParam1,LeParam2,LeParam3,LeParam4){

// Vérifie les dates de début et de fin des courses
// LeParam1 = date de début entrée par l'utilisateur
// LeParam2 = date de fin entrée par l'utilisateur
// LeParam3 = date de début minimale
// LeParam4 = date de fin maximale

ErreurDate=0;
var LaDateDebut = new Array(3);
var LaDateFin = new Array(3);

LaDateDebut=DecomposeDate(LeParam1);
LaDateFin=DecomposeDate(LeParam2);

// Vérification des dates
if(isNaN(LaDateDebut[0])||isNaN(LaDateDebut[1])||isNaN(LaDateDebut[2])||
LaDateDebut[0]==""|| LaDateDebut[1]==""||LaDateDebut[2]==""){
window.alert("La date de début des courses est érronnée, veuillez la corriger.");
ErreurDate=1;
}

if(isNaN(LaDateFin[0])||isNaN(LaDateFin[1])||isNaN(LaDateFin[2])||
LaDateFin[0]==""||LaDateFin[1]==""||LaDateFin[2]==""){
window.alert("La date de fin des courses est érronnée, veuillez la corriger.");
ErreurDate=1;
}

LeParam1=DateMachine(LeParam1);
LeParam2=DateMachine(LeParam2);

var LaDate=new Date;// Dans cette variable, nous allons attribuer notre date décomposée.
// Ainsi, si la date que l'on attribue (comme le 30/02/2003), JavaScript la corrige à la date la plus proche

LaDate.setDate(LaDateDebut[0]);
LaDate.setMonth(LaDateDebut[1]-1);// On enlève 1 car les mois sont indiqués à partir de 0 en JavaScript
LaDate.setYear(LaDateDebut[2]);
if(LeParam1!=(LaDate.getDate()+"/"+(LaDate.getMonth()+1)+"/"+LaDate.getFullYear())){
// Ici nous comparons la date corrigée par JavaScript avec celle entrée par l'utilisateur. Si elles sont différentes,
// cela signifie que JavaScript a été obligé de la corriger car la date entrée par l'utilisateur n'existe pas.


// On prévient donc que la date est fausse.
window.alert("La date de début est erronnée, veuillez la corriger.");
ErreurDate=1;
}

var LaDate=new Date;
LaDate.setDate(parseInt(LaDateFin[0]));
LaDate.setMonth(parseInt(LaDateFin[1])-1);
LaDate.setYear(parseInt(LaDateFin[2]));
if(LeParam2!=(LaDate.getDate()+"/"+(LaDate.getMonth()+1)+"/"+LaDate.getFullYear())){
window.alert("La date de fin  est erronnée, veuillez la corriger.");
ErreurDate=1;
}

if(ErreurDate==0){
if(ComparerDates(LeParam1,LeParam3)==2){
window.alert("La date de début est trop ancienne.");
ErreurDate=1;
}
if(ComparerDates(LeParam2,LeParam4)==1){
window.alert("La date de fin est trop récente.");
ErreurDate=1;
}
}

return ErreurDate;
}

function DateJour(){
//Recherche jour mois(+1 car début à 0) année et concatène
//document.write("Dernière modification le "); 
//document.write(jour+"/"+mois+"/"+annee); 
var derniereModif;	//=document.lastModified; 
var dateModif = new Date(derniereModif); 
var jour = dateModif.getDate(); 
var mois=dateModif.getMonth(); 
mois=mois+1
var annee=dateModif.getFullYear(); //lastModified;
return dateModif;	
}