function testNumerique(valeur)
{
  if ((valeur == parseFloat(valeur)) || (valeur == "")) return true;
  else return false;
}
function testEntier(valeur)
{
  if ((valeur == parseInt(valeur)) || (valeur == "")) return true;
  else return false;
}

function testDate(jour,mois,annee)
{
  var testjour;
  var testmois;
  var testannee;
  var erreur;
  erreur = 0;
  valeurJour = jour.toString();
  valeurMois = mois.toString();
  valeurAnnee = annee.toString();
  if ((!testNumerique(valeurJour)) || (!testNumerique(valeurMois))|| (!testNumerique(valeurAnnee))) return false;
  if ((valeurJour.length == 1) || (valeurJour.length == 2))testjour = 1;
  if ((valeurMois.length == 1) || (valeurMois.length == 2))testmois = 1;
  if ((valeurAnnee.length == 4) || (valeurAnnee.length == 2)) testannee = 1;
  if ((testjour==1)&&(testmois==1)&&(testannee==1)) return true;
  else return false;
}

function isDate(valeur)
{
  var erreur;
  erreur = 0;
  var jour;
  var mois;
  var annee;
  if (valeur == "") return true;
  else
  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;
   if (email == "") return true;
  else
  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)
{
  var testtemp;
  var testcol
  var ichamp;
  var nbr;
  var couleur;
  var couleur2;
  var couleur3;
  var couleur4;
  var couleur5;
  var erreur;
  var test;
  erreur=0;
  champ=nomForm.elements;
  nbr = champ.length;
  ichamp=0;
  couleur='red';
  couleur2='white';
  couleur3='#597ad9';
  couleur4='#cc66ff';
  couleur5='#ff9933';

  
while (ichamp<nbr)
 
  {
    testtemp=champ[ichamp].type.substring(0,3);
	switch (testtemp)
    {
      case "tex" :
       test=0;
        switch (champ[ichamp].name.substr(champ[ichamp].name.length-1))  
        {
          case "N" : 
            if (testNumerique(champ[ichamp].value))
            {
             champ[ichamp].style.backgroundColor=couleur2;   
            }
			else{
			 champ[ichamp].style.backgroundColor=couleur; 
              erreur=1;
			  test=1;
		  	}
			break;
          case "E" : 
            if (testEntier(champ[ichamp].value))
            {
            champ[ichamp].style.backgroundColor=couleur2;   
            }
			else{
			champ[ichamp].style.backgroundColor=couleur; 
            erreur=1; 
			test=1;
		  	}
			break;
          case "M" : 
            if (testMail(champ[ichamp].value))
            {
              champ[ichamp].style.backgroundColor=couleur; 
              erreur=1;  
			  test=1;
            }
			else{
			champ[ichamp].style.backgroundColor=couleur2;   
		  	}
			break;
          case "D" : 
            if (isDate(champ[ichamp].value))   
            {
            champ[ichamp].style.backgroundColor=couleur2;   
            }
			else{
			champ[ichamp].style.backgroundColor=couleur; 
              erreur=1;  
			  test=1;  
		  	}
			break;
          default :
          
        }
		 if (test==0)
		 {if (testrequis(champ[ichamp].name)) 
        {if (champ[ichamp].value=="") 
          {champ[ichamp].style.backgroundColor=couleur; 
      	erreur=1;}
		  else{champ[ichamp].style.backgroundColor=couleur2;}}} 
        break;

      case "sel" : 
        if ((testrequis(champ[ichamp].name)) && (champ[ichamp].options[champ[ichamp].selectedIndex].value==""))
        {
               champ[ichamp].style.backgroundColor=couleur; 
			   erreur=1;
        }
		else{
			champ[ichamp].style.backgroundColor=couleur2;   
		  	}
		break;
      case "rad" : 
        if ((testrequis(champ[ichamp].name)) && (!testRadio(nomForm,champ[ichamp].name)))
        {
			document.getElementById(champ[ichamp].name).style.backgroundColor=couleur;
           	erreur=1;
        }
		else{
			    testcol=champ[ichamp].name;

			if 	((testcol=="nationalite1RX")||(testcol=="nationalite2XX"))
				{
				document.getElementById(champ[ichamp].name).style.backgroundColor=couleur5;
				}
			else
				{
				document.getElementById(champ[ichamp].name).style.backgroundColor=couleur3;
				}
		  	}
		break;
      case "che" : 
	  	if ((testrequis(champ[ichamp].name)) && (!champ[ichamp].checked))
        {
             champ[ichamp].style.text=couleur; 
			 erreur=1;
        }
		else{
			champ[ichamp].style.backgroundColor=couleur2;   
		  	}
		break;
      default :
        
    }
    ichamp++;
  }
if (erreur==1){
	window.alert ("Les champs en rouge sont soit mal complétés ou non renseignés");
	return false;
		}
  else return true;
}
