/*
Fichier de vérification de dates : 
	- fonction verif_2_dates(date1,date2) : vérifie la validité des deux dates, et si date1<date2
	- fonction verif_date(date1) : vérifie la validité de date1
*/

function verif_date(date1) {
  var exp_dt = new RegExp("^[0-3][0-9]/[0-1][0-9]/[0-9]{4}$", "gi")
  if (date1.length>0) {
    if (date1.search(exp_dt) == -1) {
      return false;
    }
  }
  else {
    return false;
  }
  var j=date1.substr(0,2);
  var m=date1.substr(3,2);
  var a=date1.substr(6,4);
  
  if(m==4 || m==6 || m==9 || m==11) {
    if(j>=31) {
      return false;
    }
  }
  if(m>12) {
    return false;
  }

  if(j>31) {
    return false;
  }

  if((a % 4) == 0) {
    if(((a % 100) == 0) && ((a % 1000) != 0)) { 
      if(m==2) {
        if(j>28) {
          alert("Date incorrecte");
          return false;
        }
      }
    }
    else {
      if(m==2) {
        if(j>29) {
          alert("Date incorrecte");
          return false;
        }
      }
		}
  }
	else {
    if(m==2) {
      if(j>28) {
        alert("Date incorrecte");
        return false;
      }
    }
	}
  return true;
}


function verif_2_dates(date_debut,date_fin) {
  var exp_dt = new RegExp("^[0-3][0-9]/[0-1][0-9]/[0-9]{4}$", "gi")
  if (date_debut.length>0) {
    if (date_debut.search(exp_dt) == -1) {
      window.alert("Vérifiez le format des dates.\nSaisissez une date sous la forme jj/mm/aaaa")
      return false;
    }
  }
  else {
    alert("Saisissez deux dates")
    return false;
  }
  if (date_fin.length>0) {
    if (date_fin.search(exp_dt) == -1) {
      window.alert("Vérifiez le format des dates.\nSaisissez une date sous la forme jj/mm/aaaa")
      return false;
    }
  }
  else {
    alert("saisissez deux dates")
    return false;
  }
  var date1 = new Date();
  var date2 = new Date();
  var j_deb=date_debut.substr(0,2);
  var j_fin=date_fin.substr(0,2);
  var m1=date_debut.substr(3,2);
  var m2=date_fin.substr(3,2);
  var annee1=date_debut.substr(6,4);
  var annee2=date_fin.substr(6,4);

  date1.setYear(parseInt(annee1));
  date2.setYear(parseInt(annee2));
  date1.setMonth(m1,j_deb);
  date2.setMonth(m2,j_fin);

  if(m1==4 || m1==6 || m1==9 || m1==11) {
    if(j_deb>=31) {
      alert("Date incorrecte");
      return false;
    }
  }
  if(m2==4 || m2==6 || m2==9 || m2==11) {
    if(j_fin>=31) {
      alert("Date incorrecte");
      return false;
    }
  }

  if(m1>12) {
    alert("Date incorrecte");
    return false;
  }
  if(m2>12) {
    alert("Date incorrecte");
    return false;
  }

  if(j_deb>31) {
    alert("Date incorrecte");
    return false;
  }
  if(j_fin>31) {
    alert("Date incorrecte");
    return false;
  }

  if((annee1 % 4) == 0) {
    if(((annee1 % 100) == 0) && ((annee1 % 1000) != 0)) { 
      if(m1==2) {
        if(j_deb>28) {
          alert("Date incorrecte");
          return false;
        }
      }
    }
    else {
      if(m1==2) {
        if(j_deb>29) {
          alert("Date incorrecte");
          return false;
        }
      }
		}
  }
	else {
    if(m1==2) {
      if(j_deb>28) {
        alert("Date incorrecte");
        return false;
      }
    }
	}
  if((annee2 % 4) == 0) {
    if(((annee2 % 100) == 0) && ((annee2 % 1000) != 0)) { 
      if(m2==2) {
        if(j_fin>28) {
          alert("Date incorrecte");
          return false;
        }
      }
    }
    else {
      if(m2==2) {
        if(j_fin>29) {
          alert("Date incorrecte");
          return false;
        }
      }
		}
  }
	else {
    if(m2==2) {
      if(j_fin>28) {
        alert("Date incorrecte");
        return false;
      }
    }
	}
  if(date1.valueOf()>date2.valueOf()) {
    alert("Date début superieur ŕ date fin !");
    return false;
  }
  return true
}

function verif_2_datesV2(date_debut,date_fin) {
  var exp_dt = new RegExp("^[0-3][0-9]/[0-1][0-9]/[0-9]{4}$", "gi")
	var mess_aff = "";
  if (date_debut.length>0) {
    if (date_debut.search(exp_dt) == -1) {
      mess_aff = "Vérifiez le format des dates.\nSaisissez une date sous la forme jj/mm/aaaa";
      return mess_aff;
    }
  }
  else {
    alert("Saisissez deux dates")
    return mess_aff;
  }
  if (date_fin.length>0) {
    if (date_fin.search(exp_dt) == -1) {
      mess_aff = "Vérifiez le format des dates.\nSaisissez une date sous la forme jj/mm/aaaa";
      return mess_aff;
    }
  }
  else {
    mess_aff = "saisissez deux dates";
    return mess_aff;
  }
  var date1 = new Date();
  var date2 = new Date();
  var j_deb=date_debut.substr(0,2);
  var j_fin=date_fin.substr(0,2);
  var m1=date_debut.substr(3,2);
  var m2=date_fin.substr(3,2);
  var annee1=date_debut.substr(6,4);
  var annee2=date_fin.substr(6,4);

  date1.setYear(parseInt(annee1));
  date2.setYear(parseInt(annee2));
  date1.setMonth(m1,j_deb);
  date2.setMonth(m2,j_fin);

  if(m1==4 || m1==6 || m1==9 || m1==11) {
    if(j_deb>=31) {
      mess_aff = "Date incorrecte";
      return mess_aff;
    }
  }
  if(m2==4 || m2==6 || m2==9 || m2==11) {
    if(j_fin>=31) {
      mess_aff = "Date incorrecte";
      return mess_aff;
    }
  }

  if(m1>12) {
    mess_aff = "Date incorrecte";
    return mess_aff;
  }
  if(m2>12) {
    mess_aff = "Date incorrecte";
    return mess_aff;
  }

  if(j_deb>31) {
    mess_aff = "Date incorrecte";
    return mess_aff;
  }
  if(j_fin>31) {
    mess_aff = "Date incorrecte";
    return mess_aff;
  }


  if((annee1%4)==0) {
    if(m1==2) {
      if(j_deb>29) {
        mess_aff = "Date incorrecte";
        return mess_aff;
      }
    }
  }
  else {
    if(m1==2) {
      if(j_deb>28) {
        mess_aff = "Date incorrecte";
        return mess_aff;
      }
    }
  }
  if((annee2%4)==0) {
    if(m2==2) {
      if(j_fin>29) {
        mess_aff = "Date incorrecte";
        return mess_aff;
      }
    }
  }
  else {
    if(m2==2) {
      if(j_fin>28) {
        mess_aff = "Date incorrecte";
        return mess_aff;
      }
    }
  }
  if(date1.valueOf()>date2.valueOf()) {
    mess_aff = "ici";
    return mess_aff;
  }
  return false;
}


