function testEntier(valeur)
{
  if (isNaN(valeur)){ 
  	return false;
  }else{ 
  	return true;
	}
}

function testDate(jour,mois,annee)
{
  var erreur;
  erreur = 0;
  valeurJour = jour.toString();
  valeurMois = mois.toString();
  valeurAnnee = annee.toString();
  if ((!testEntier(valeurJour)) || (valeurJour.length != 2)) erreur = 1;
  if ((!testEntier(valeurMois)) || (valeurMois.length != 2))erreur = 1;
  if ((!testEntier(valeurAnnee)) || (valeurAnnee.length != 4)) erreur = 1;
  var bis;
  var maxFev;
  bis = valeurAnnee % 4;
  if (bis == 0) maxFev = 29;
  else maxFev = 28;
  var maxJours;
  maxJours = new Array(31,maxFev,31,30,31,30,31,31,30,31,30,31);
  if (valeurJour > maxJours[valeurMois-1]) erreur = 1;
  if (erreur == 0) return true;
  else return false;
}

function isDate(valeur)
{
  var erreur;
  erreur = 0;
  var jour;
  var mois;
  var annee;
  valeurDate = valeur;
  indSep1 = valeurDate.indexOf("/");
  indSep2 = valeurDate.lastIndexOf("/");
  if ((indSep1 != -1) && (indSep1 != indSep2))
  {
    jour = valeurDate.substring(0,indSep1);
    mois = valeurDate.substring(indSep1+1,indSep2);
    annee = valeurDate.substr(indSep2+1);
    if (!testDate(jour,mois,annee)) erreur = 1;
  }
  else erreur = 1;
  if (erreur == 0) return true;
  else return false;
}

function testRadio(nomForm,nomGroupe)
{
  var compteur;
  compteur = 0;
  while (compteur < nomForm.elements[nomGroupe].length)
  {
    if (nomForm.elements[nomGroupe][compteur].checked) 
    return true;
    compteur++;
  }
  return false;
}

function testMail(email)
{
  var posArobase;
  posArobase = email.indexOf("@");
  if (posArobase == -1) return false;
  var posPoint;
  posPoint = email.lastIndexOf(".");
  if ((posPoint == -1) || (posPoint < posArobase)) return false;
  return true;
}

function testrequis(nom)
{
  if (nom.lastIndexOf("R")==nom.length-2) return true;
  return false;
}

function testForm(nomForm)
{
  champ=nomForm.elements;
  nbr = champ.length;
  i=0;
  while (i<nbr)
  {
    testtemp=champ[i].type.substring(0,3);
	switch (testtemp)
    {
      case "tex" :
        if (testrequis(champ[i].name)) 
        {
          if (champ[i].value=="") 
          {
            window.alert ("Le champ "+champ[i].name.slice(0,-2)+" doit être renseigné");
            champ[i].focus();
            return false;
          }
        }
        switch (champ[i].name.substr(champ[i].name.length-1))  
        {
          case "N" : 
            if (!testNumerique(champ[i].value))
            {
              window.alert ("Le champ "+champ[i].name.slice(0,-2)+" doit être un nombre");
              champ[i].value="";
              champ[i].focus();
              return false;
            }
			break;
          case "E" : 
            if (!testEntier(champ[i].value))
            {
              window.alert ("Le champ "+champ[i].name.slice(0,-2)+" doit être un nombre entier");
              champ[i].value="";
              champ[i].focus();
              return false;
            }
			break;
          case "M" : 
            if (!testMail(champ[i].value))
            {
              window.alert ("Le champ "+champ[i].name.slice(0,-2)+" semble ne pas avoir le format nom@domaine.com");
              champ[i].value="";
              champ[i].focus();
              return false;
            }
			break;
          case "D" : 
            if (!isDate(champ[i].value))   
            {
              window.alert ("Le champ "+champ[i].name.slice(0,-2)+" semble ne pas avoir le format jj/mm/aaaa");
              champ[i].value="";
              champ[i].focus();
              return false;
            }
			break;
          default :
           
        }
        break;

      case "sel" : 
        if ((testrequis(champ[i].name)) && (champ[i].options[champ[i].selectedIndex].value==""))
        {
          window.alert ("Veuillez sélectionner une option valide pour le champ "+champ[i].name.slice(0,-2));
          champ[i].focus();
          return false;
        }
		break;
      case "rad" : 
        if ((testrequis(champ[i].name)) && (!testRadio(nomForm,champ[i].name)))
        {
          window.alert("Les boutons radios ne sont pas renseignés correctement ");
          champ[i].focus();
          return false;
        }
		break;
      case "che" : 
	  	if ((testrequis(champ[i].name)) && (!champ[i].checked))
        {
          window.alert ("La case à cocher doit être validée ");
          champ[i].focus();
          return false;
        }
		break;
      default :
        
    }
    i++;
  }

  return true;
}

function envoyer(formname,formaction){
	document.forms[formname].method = "POST";
	document.forms[formname].enctype = "multipart/form-data";
	document.forms[formname].action = formaction;
	document.forms[formname].submit();
}