var champ;
var Champs_Type;
var Code_Postal;
var Err;
var Espace;
var Espace_Val;
var Guill;
var Guill_Val;
var i;
var indPoint;
var Java_End;
var Longueur;
var nbr;
var Perluette;
var Perluette_Val;
var Point;
var posArobase;
var posPoint;
var Pourcent;
var Pourcent_Val;
var v;
var Val;
var Val_Nom;
var Valeur_String;
var virgule;
var y;
var Apostrophe_Val = String.fromCharCode (39);

function Valide_Lettre(Valeur_Lettre)
{
	Java_End = "Zut";

	switch (Valeur_Lettre)
	{
		case "a" :
			Java_End = "a";
			break;
		case "b" :
			Java_End = "b";
			break;
		case "c" :
			Java_End = "c";
			break;
		case "d" :
			Java_End = "d";
			break;
		case "e" :
			Java_End = "e";
			break;
		case "f" :
			Java_End = "f";
			break;
		case "g" :
			Java_End = "g";
			break;
		case "h" :
			Java_End = "h";
			break;
		case "i" :
			Java_End = "i";
			break;
		case "j" :
			Java_End = "j";
			break;
		case "k" :
			Java_End = "k";
			break;
		case "l" :
			Java_End = "l";
			break;
		case "m" :
			Java_End = "m";
			break;
		case "n" :
			Java_End = "n";
			break;
		case "o" :
			Java_End = "o";
			break;
		case "p" :
			Java_End = "p";
			break;
		case "q" :
			Java_End = "q";
			break;
		case "r" :
			Java_End = "r";
			break;
		case "s" :
			Java_End = "s";
			break;
		case "t" :
			Java_End = "t";
			break;
		case "u" :
			Java_End = "u";
			break;
		case "v" :
			Java_End = "v";
			break;
		case "w" :
			Java_End = "w";
			break;
		case "x" :
			Java_End = "x";
			break;
		case "y" :
			Java_End = "y";
			break;
		case "z" :
			Java_End = "z";
			break;
		default :
			Java_End = "Zut";
			break;
	}
	
	if (Java_End != "Zut")
	{
		return true;
	}
	else
	{
		return false;
	}
}

function Valide_Carateres(valeur_Chaine)
{	
	Err = 0;
	Guill_Val = String.fromCharCode (34);
	Perluette_Val = String.fromCharCode (38);
	Pourcent_Val = String.fromCharCode (37);
		
	Guill=valeur_Chaine.indexOf(Guill_Val);
	Perluette=valeur_Chaine.indexOf(Perluette_Val);
	Pourcent=valeur_Chaine.indexOf(Pourcent_Val);
	
	if (Guill != -1)
	{	  		
		Err = 1;			
	}
	
	if (Perluette != -1)
	{  				
		Err = 1;			
	}
	if (Pourcent != -1)
	{  				
		Err = 1;			
	}	
	if (Err == 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function Valide_Entier(valeur_Int)
{		
	Espace_Val = String.fromCharCode (32);
	
	if (isNaN(valeur_Int) == true)
 	{
  		return false;
 	}
 	else 
	{			
		Point=valeur_Int.indexOf(".");
		virgule=valeur_Int.indexOf(",");
		Espace=valeur_Int.indexOf(Espace_Val);		
		if ((virgule != -1)||(Point != -1)||(Espace != -1))
		{		
  			return false;			
		}
		else 
		{	
			return true;	
		}
	}
}
function Valide_Numerique(valeur_Float)
{
	//valeurUS = valeur_Float.replace(",",".");
	valeurUS = valeur_Float;
	if(valeurUS == parseFloat(valeurUS)) return true;
	else return false;	 		
}
function Valide_Mail(email)
{	
	posArobase=email.indexOf("@");
	if(posArobase == -1) return false;	
		posPoint=email.lastIndexOf(".");
	if((posPoint == -1) || (posPoint < posArobase)) return false;
	return true;
}

function Valide_Obligatoire(nom)
{
	if(nom.lastIndexOf("R")==nom.length-2) return true;
	return false;
}

function Valide_Champs(nomForm)
{
 	champ=nomForm.elements;
	nbr=champ.length;	
	i=0;	
	while (i < nbr)
	{		
		Champs_Type=champ[i].type.substring(0,3);						
		switch (Champs_Type)
		{
			case "tex" :
				if (Valide_Obligatoire(champ[i].name))
				{
					if (champ[i].value=="")
					{
						window.alert ("Le champ [ "+champ[i].name.slice(0,-10)+ " ] doit être complété.");
						champ[i].focus();
						return false;
					}	
				}
				switch (champ[i].name.substr(champ[i].name.length-1))
				{
					case "T" :
						if (!Valide_Carateres(champ[i].value))
						{
							window.alert ("Les caractères [ \",  \%,  et  \& ] ne sont pas permis dans le champ [ "+champ[i].name.slice(0,-10)+" ].");
							champ[i].focus();
							return false;
						}
						break;
					case "P" :						
						v = i;
						y = 1;						
						Err = 0;
						Val_Nom = champ[i].name;						
						if (champ[i].value !="")						
						{
							Val = champ[i].value;
							Val=Val.toLowerCase();
							while (y<7)
							{
								switch (y)
								{
									case 1 :
										Code_Postal=Val.charAt(0);										
										if(!Valide_Lettre(Code_Postal))
										{
											y = 7;
											Err = 1;													
										}										
										break;
									case 2 :										
										Code_Postal=Val.charAt(1);										
										if(!Valide_Entier(Code_Postal))
										{
											y = 7;
											Err = 1;													
										}											
										break;
									case 3 :										
										Code_Postal=Val.charAt(2);										 										
										if(!Valide_Lettre(Code_Postal)) 
										{
											y = 7;
											Err = 1;													
										}									
										break;
									case 4 :
										Code_Postal=Val.charAt(3);										
										if(!Valide_Entier(Code_Postal))
										{
											y = 7;
											Err = 1;													
										}											
										break;
									case 5 :
										Code_Postal=Val.charAt(4);										
										if(!Valide_Lettre(Code_Postal))
										{
											y = 7;
											Err = 1;													
										}											
										break;
									case 6 :
										Code_Postal=Val.charAt(5);										
										if(!Valide_Entier(Code_Postal))
										{
											y = 7;
											Err = 1;													
										}									
										break;																	
								}
							y=y+1;										
							}
							if (Err == 1)
							{
								window.alert ("Entrée invalide dans le champ [ "+Val_Nom.slice(0,-10)+" ]. ");
								champ[v].focus();
								return false;
							}							
						}
						break;
					case "N" :
						if (!Valide_Numerique(champ[i].value))
						{
							window.alert ("Le champ [ "+champ[i].name.slice(0,-10)+ " ] doit être numérique.");
							champ[i].value="";
							champ[i].focus();
							return false;
						}
						break;
					case "E" :
						if (!Valide_Entier(champ[i].value))
						{
							window.alert ("Le champ [ "+champ[i].name.slice(0,-10)+ " ] ne doit contenir que des chiffres.");
							champ[i].value="";
							champ[i].focus();
							return false;
						}
						break;
					case "M" :
						if (!Valide_Carateres(champ[i].value))
						{
							window.alert ("Les caractères  [ \",  \%,  et  \& ]  ne sont pas permis dans le champ [ "+champ[i].name.slice(0,-10)+" ].");
							champ[i].focus();
							return false;
						}
						else
						{
							if (champ[i].value!="")
							{
								if (!Valide_Mail(champ[i].value))
								{
									window.alert ("Le champ [ "+champ[i].name.slice(0,-10)+ " ] n est pas une adresse valide. Ex : nom@domaine.com");
									champ[i].value="";
									champ[i].focus();
									return false;
								}
							}
						}
						break;
					default :
						break;
				}
				break;
			case "sel" :
				if ((Valide_Obligatoire(champ[i].name)) && (champ[i].options[champ[i].selectedIndex].value=="Null")) 
				{
					window.alert ("Le champs [ "+champ[i].name.slice(0,-10)+" ] doit être complété.");
					champ[i].focus();
					return false;
				}
				break;
			case "che" :
				if ((Valide_Obligatoire(champ[i].name)) && (!champ[i].checked)) 
				{
					window.alert ("La case à cocher [ "+champ[i].name.slice(0,-10)+" ] doit être validée.");
					champ[i].focus();
					return false;
				}
				break;			
			default :
				break;
		}
	i++
	}
	return true;
}

function Caratere_Change()
{
	i = 0;
		while (i > -1)
		{
			i = Ok_Sujet.indexOf(Guill_Val)
			if (i > -1)
			{
			 	Ok_Sujet = Ok_Sujet.replace(Guill_Val,"¯");
			}
		}
		i = 0;
		while (i > -1)
		{
			i = Ok_Sujet.indexOf(Pourcent_Val)
			if (i > -1)
			{
			 	Ok_Sujet = Ok_Sujet.replace(Pourcent_Val,"¦");
			}
		}
		i = 0;
		while (i > -1)
		{
			i = Ok_Sujet.indexOf(Apostrophe_Val)
			if (i > -1)
			{
			 	Ok_Sujet = Ok_Sujet.replace(Apostrophe_Val,"~");
			}
		}
}


