<!-- Ce script possède un Copyright (© Dagor 2001)il est disponible pour une utilisation personnelle, par contre il est interdit sauf autorisation de l'auteur pour une utilisation commerciale. //-->
function isDate1(d) {
    // Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
    // Par Romuald

    if (d == "") // si la variable est vide on retourne faux
        return false;

    e = new RegExp("^[0-9]{2,2}\/[0-9]{2,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
    j = parseInt(d.split("/")[0], 10); // jour
    m = parseInt(d.split("/")[1], 10); // mois
    a = parseInt(d.split("/")[2], 10); // année
    cejour = new Date();
    j1 = cejour.getDate();
    m1 = cejour.getMonth();
    a1 = cejour.getFullYear();

    nbjours1 = j1+(m1*30)+((a1-1)*365)+30;
    nbjour = j+(m*30)+((a-1)*365);

    if (nbjours1 > nbjour) {
    	return ( m < 1 && m >24);
    }

   if ((nbjours1 +182) < nbjour) {
    	return ( m < 1 && m >24);
    }

    // Si l'année n'est composée que de 2 chiffres on complète automatiquement
    if (a < 1000) {
        if (a < 89)    a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
        else a+=1900;
    }

    // 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
    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 retourn faux
    return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] && a >= 2002);
}

function isHeure1(d) {
    // Cette fonction permet de vérifier la validité d'une heure au format hh:mm
    // Par YD

    if (d == "") // si la variable est vide on retourne faux
        return false;

    e = new RegExp("^[0-9]{2,2}:[0-9]{2,2}$");

    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 l'heure en 2 variables pour vérification, parseInt() converti du texte en entier
    h = parseInt(d.split(":")[0], 10); // heure
    m = parseInt(d.split(":")[1], 10); // mn

    // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
    return ( h >= 9 && h <=17 && m >= 0 && m <= 59 );
}

function Form_Valid1(Form)
{
  if (Form.nom.value == "")
  {
    alert("Tapez une valeur dans la zone \"Nom\".");
    Form.nom.focus();
    return (false);
  }

  if (Form.nom.value.length < 3)
  {
    alert("Tapez au moins 3 caractères dans la zone \"Nom\".");
    Form.nom.focus();
    return (false);
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz \t\r\n\f";
  var checkStr = Form.nom.value;
  var allValid = true;
  var validGroups = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Ne tapez que des lettres et des espacess dans la zone \"Nom\".");
    Form.nom.focus();
    return (false);
  }

  if (Form.prenom.value == "")
  {
    alert("Tapez une valeur dans la zone \"Prénom\".");
    Form.prenom.focus();
    return (false);
  }

  if (Form.prenom.value.length < 3)
  {
    alert("Tapez au moins 3 caractères dans la zone \"Prénom\".");
    Form.prenom.focus();
    return (false);
  }

  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz \t\r\n\f";
  var checkStr = Form.prenom.value;
  var allValid = true;
  var validGroups = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Ne tapez que des lettres et des espaces dans la zone \"Prénom\".");
    Form.prenom.focus();
    return (false);
  }

  if (Form.telephone.value == "")
  {
    alert("Tapez une valeur dans la zone \"N° de téléphone\".");
    Form.telephone.focus();
    return (false);
  }

  if (Form.telephone.value.length < 10)
  {
    alert("Tapez au moins 10 caractères dans la zone \"N° de téléphone\".");
    Form.telephone.focus();
    return (false);
  }

  var checkOK = "0123456789-.,";
  var checkStr = Form.telephone.value;
  var allValid = true;
  var validGroups = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }

  if (!allValid)
  {
    alert("Ne tapez que des chiffres ou caractères \".\" dans la zone \"N° de téléphone\".");
    Form.telephone.focus();
    return (false);
  }

  var dd = Form.date1.value;
  if (!isDate1(dd))
  {
    alert("La date du premier rendez-vous est érronée \n(forme : jj/mm/aaaa exemple : 03/12/2008)");
    Form.date1.focus();
    return (false);
  }

  var dd = Form.heure1.value;
  if (!isHeure1(dd))
  {
    alert("L'heure du premier rendez-vous est érronée\n        (forme : hh:mm exemple : 09:45) \n             validité de 09h00 à 17h59)");
    Form.heure1.focus();
    return (false);
  }

  if (Form.date2.value == "")
  {
    Form.date2.focus();
    return(true);
    }
  else
  {
  var dd = Form.date2.value;
  if (!isDate1(dd))
  {
    alert("La date du deuxième rendez-vous est érronée \n(forme : jj/mm/aaaa exemple : 03/12/2008)");
    Form.date2.focus();
    return (false);
  }
  }

 if (Form.heure2.value == "")
  {
    if (Form.date2.value == "")
    {
    	Form.heure2.focus();
    	return(true);
    }
  	else
  	{
  		var dd = Form.heure2.value;
  		if (!isHeure1(dd))
  		{
    			alert("L'heure du deuxième rendez-vous est érronée\n        (forme : hh:mm exemple : 09:45) \n             validité de 09h00 à 17h59)");
    			Form.heure2.focus();
    			return (false);
 		 }
  	}
  }
  if (Form.date3.value == "")
  {
    Form.date3.focus();
    return(true);
    }
  else
  {
  var dd = Form.date3.value;
  if (!isDate1(dd))
  {
    alert("La date du troisième rendez-vous est érronée \n(forme : jj/mm/aaaa exemple : 03/12/2008)");
    Form.date3.focus();
    return (false);
  }
  }

 if (Form.heure3.value == "")
  {
    if (Form.date3.value == "")
    {
    	Form.heure3.focus();
    	return(true);
    }
  	else
  	{
  		var dd = Form.heure3.value;
  		if (!isHeure1(dd))
  		{
    			alert("L'heure du troisième rendez-vous est érronée\n        (forme : hh:mm exemple : 09:45) \n             validité de 09h00 à 17h59)");
    			Form.heure3.focus();
    			return (false);
 		 }
  	}
  }


  return (true);
}
