function testEntier(valeur)
{
  if (valeur == parseInt(valeur)) return true;
  else return false;
}

function testChiffre(car)
{
	if (!isNaN(car)) return true;
	else return false;
} 

function tailleCinq (mot)
{
	if (mot.length == 5) return true;
	else return false;
}

function tailleDix (mot)
{
	if (mot.length == 10) 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 testMail1(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 testMail(email)
{
	if (email.search(/^[_\w][_\w\.-]*@[_\w-]+\.([a-zA-Z]){2,4}$/) == -1) return false;
	else 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 "c" : 
              if (!testChiffre(champ[i].value) || !tailleCinq(champ[i].value))
              {
	              window.alert ("Le champ "+champ[i].name.slice(0,-2)+" doit être un nombre à 5 chiffres");
	              champ[i].value="";
	              champ[i].focus();
	              return false;
              } 
			  break;
		    case "t" : 
              if (!testChiffre(champ[i].value) || !tailleDix(champ[i].value))
              {
	              window.alert ("Le champ "+champ[i].name.slice(0,-2)+" doit être un nombre à 10 chiffres");
	              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;
          	default :
      	  }  
        }
        if (!testrequis(champ[i].name) && champ[i].name.substr(champ[i].name.length-1) == "t" && champ[i].value.length > 0)
        {
	        if (!testChiffre(champ[i].value) || !tailleDix(champ[i].value))
            {
	            window.alert ("Le champ "+champ[i].name.slice(0,-2)+" doit être un nombre à 10 chiffres");
	            champ[i].value="";
	            champ[i].focus();
	            return false;
	        }
        }
	    break;
      case "sel" : 
        if ((testrequis(champ[i].name)) && (champ[i].options[champ[i].selectedIndex].value == ""))
        {
          window.alert ("Veuillez faire un choix dans la liste des services");
          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;
}