/*
		Module de validation général
		Fait par: David Garceau-Gosselin
		Ajout   : Alain Germain, Gilles Auclair, Jonathan Barrette
		Modification : Joel Maheux, Jonathan Barrette
		Dernière modification : 15 février 2002	
*/


/********************************
*  Vérification du code postal	*
********************************/
function Valider_code_postal(champs_gauche,champs_droite)
{
	var_code_postal = 1;

	//valider la date

	if 	(champs_gauche.value.length < 3 ||
		 champs_droite.value.length < 3)
	{	
		var_code_postal = 0;
	}
	else
	{
		Code_postal = 	champs_gauche.value.toUpperCase() + 
						champs_droite.value.toUpperCase();

		Code_postal = Code_postal.split("");

		if ((Code_postal[0] < "A" || Code_postal[0] > "Z") ||
			isNaN(Code_postal[1]) == true  ||
			(Code_postal[2] < "A" || Code_postal[2] > "Z") ||
			isNaN(Code_postal[3]) == true  ||
			(Code_postal[4] < "A" || Code_postal[4] > "Z") ||
			isNaN(Code_postal[5]) == true)
		{ 
			var_code_postal = 0;
		}
	}
	
	//Retourner la valeur 1 ou 0
	return var_code_postal;
}



/********************************
*  Vérification de la date		*
********************************/
function Valider_date(champs_jj,champs_mm,champs_aaaa)
{
	//Valider la variable si elle à été fait ou non
	var_valider_date = 0;
	
	//Aller chercher les variab;es pour modifier le check date
	Var_jj = champs_jj.value
	Var_mm = champs_mm.value
	Var_aaaa = champs_aaaa.value
	
	//Chercher l'année
	Maintenant = new Date();

	//valider la date
	/*if (!(isNaN(Var_jj) == true || isNaN(Var_mm) == true || isNaN(Var_aaaa) == true ||
	Var_mm > 12 || Var_jj > 31 || Var_aaaa <= 0 || Var_mm <= 0 || Var_jj <= 0))
		{
		var_valider_date = 1;
		}
	*/
	var_valider_date =  1;
	if (isNaN(Var_jj) || isNaN(Var_mm) || isNaN(Var_aaaa) || Var_aaaa < 1980 || Var_mm <= 0 || Var_mm > 12 || Var_jj <= 0)
		{var_valider_date = 0;}
	else
		{
		if ((Var_mm == 1 || Var_mm == 3 || Var_mm == 5 || Var_mm == 7 || Var_mm == 8 || Var_mm == 10 || Var_mm == 12) && Var_jj > 31)
			{var_valider_date = 0;}
		if ((Var_mm == 4 || Var_mm == 6 || Var_mm == 9 || Var_mm == 11) && Var_jj > 30)
			{var_valider_date = 0;}
		if (Var_mm == 2)
			{
			if ((Var_aaaa % 4) == 0 && Var_jj > 29)
				{var_valider_date = 0;}
			if ((Var_aaaa % 4) != 0 && Var_jj > 28)
				{var_valider_date = 0;}
			}
		}
	//Retourner la valeur 1 ou 0
	return var_valider_date;
}




/********************************
*  Vérification du E-MAIL		*
********************************/

function Valider_email (email)
{
	var isValid;
	var regEx;
	var emailArray;
	var localArray;
	var domainArray;
	var domainList;
	
	isValid = true;
	domainList = ".biz.ca.com.coop.edu.fr.info.museum.name.net.org.pro.travel.tv.uk.us.";
	
	if (email.indexOf('@') < 0) {
		isValid = false;
	} else {
		// First, we check that there's one @ symbol, and that the lengths are right
		regEx = new RegExp("^[^@]{1,64}@[^@]{1,255}$", "gi");
		if (!regEx.test(email)) {
			// Email invalid because wrong number of characters in one section, or wrong number of @ symbols
			isValid = false;
		}
		
		// Split it into sections to make life easier
		emailArray = email.split("@");
		localArray = emailArray[0].split(".");
		for (i = 0; i < localArray.length; i++) {
			regEx = new RegExp("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", "gi");
			if (!regEx.test(localArray[i])) {
				isValid = false;
				break;
			}
		}
		
		// Check is domain is IP. If not, it should be a valid domain name
		regEx = new RegExp("^\[?[0-9\.]+\]?$", "gi");
		if (!regEx.test(emailArray[1])) {
			domainArray = emailArray[1].split(".");
			if (domainArray.length < 2) {
				// Not enough parts to domain
				isValid = false;
			}
			for (i = 0; i < domainArray.length; i++) {
				regEx = new RegExp("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", "gi");
				if (!regEx.test(domainArray[i])) {
					isValid = false;
					break;
				}
				if (domainArray[i].length < 2) {
					isValid = false;
					break;
				}
			}
			if (isValid) {
				// Check for permitted domain
				if (domainList.indexOf("." + domainArray[domainArray.length - 1] + ".", 0) < 0) {
					isValid = false;
				}
			}
		}
	}
	if (isValid) {
		return 1;
	}
	else {
		return 0;
	}
}





/********************************
*  Vérification du téléphone	*
********************************/

function Valider_telephone(Code_reg, Tel_debut, Tel_fin)
{
	Erreur = false;
										//	Vérifier la longueur des champs.
	if ( Code_reg.length < 3 || Tel_debut.length < 3 || Tel_fin.length < 4 )
	{
		var_partie_tel = 0;
		Erreur = true;
	}
	else			// Vérifier si il y a un caractère invalide.
	{
		if ( isNaN(Code_reg) || isNaN(Tel_debut) || isNaN(Tel_fin) ) 
		{
			var_partie_tel = 0;
			Erreur = true;
		}
	}

	if (Erreur == true)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}


/***************************************************************
*  Retourne une chaine sans les espaces du début et de la fin  *
***************************************************************/
function TrimString(sInString) {
  sInString = sInString.replace( /^\s+/g, "" );
  return sInString.replace( /\s+$/g, "" );
}



/****************************************************
*  Averti si l'usager ne peut écrire dans la case   *
****************************************************/

function PermissionEcrire(Permet, Champ)
{

   Erreur_permission = "Vous n'avez pas le droit d'écrire dans ce champ, vérifier les options sélectionner si vous devez y accéder";

   if (!(Permet))
   {
      Champ.blur();
	  alert(Erreur_permission);
   };
};

/******************************************************
*                                                     *
*          Section Validation pour NIP                *
*                                                     *
******************************************************/

/******************************************************
*                 Validation du NIP                   *
******************************************************/

//Retour: -1 --> Erreur de longueur du NIP
//        -2 --> Erreur de type du NIP

function Valider_NIP(NIP)
{

   if (  ( NIP.length < 6 ) || ( NIP.length > 8 ) ) {
      return -1;
   }
   
   if ( isNaN( NIP ) ) {
      return -2;
   }
   
   if ( NIP.substring(0,1) == "0" ) {
      return -3;
   }
   
   

};

/******************************************************
*                 Validation du Code d'accès          *
******************************************************/

//Retour: -1 --> Erreur de longueur du Code d'accès
//        -2 --> Erreur de type du Code d'accès

function Valider_code_acces ( Code_acces ) {

   if ( Code_acces.length < 5 ) {
      return -1;
   }
   
  if ( isNaN( Code_acces ) ) {
      return -2;
   }

};






/********************************
*  Vérification du N.A.S.    	*
********************************/

function Valider_No_ass_social(Debut, Milieu, Fin)
{
	Erreur = false;
										//	Vérifier la longueur des champs.
	if ( Debut.length < 3 || Milieu.length < 3 || Fin.length < 3 )
	{
		Erreur = true;
	}
	else			// Vérifier si il y a un caractère invalide.
	{
		if ( isNaN(Debut) || isNaN(Milieu) || isNaN(Fin) ) 
		{
			Erreur = true;
		}
	}

	if (Erreur == true)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}

/****************************
* Validation des liens URL  *
****************************/

function Valider_Lien (Lien)
{
Erreur = false;
if (Lien.length > 128)
	{
	Erreur = true;
	}
if (Lien.substring(0,7).toLowerCase() == "http://")
	{
	Erreur = true;
	}
LienArray = Lien.split("");
for (Compteur = 0; Compteur <= Lien.length-1; Compteur++)
	{
	if (!(LienArray[Compteur] >= "a" && LienArray[Compteur] <= "z") &&
		!(LienArray[Compteur] >= "A" && LienArray[Compteur] <= "Z") &&
		!(LienArray[Compteur] >= "0" && LienArray[Compteur] <= "9") &&
		LienArray[Compteur] != "%" &&
		LienArray[Compteur] != "&" &&
		LienArray[Compteur] != "+" &&
		LienArray[Compteur] != "=" &&
		LienArray[Compteur] != "-" &&
		LienArray[Compteur] != "." &&
		LienArray[Compteur] != "/" &&
		LienArray[Compteur] != ":" &&
		LienArray[Compteur] != "?" &&
		LienArray[Compteur] != "@" &&
		LienArray[Compteur] != "_" &&
		LienArray[Compteur] != " " &&
		LienArray[Compteur] != "~")
		{
		Erreur = true;
		}
	}
if (Erreur)
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation du numéro d'appartement/chambre/bureau/étage    *
***************************************************************/

function Valider_Appart (Appart)
{
if (Appart.length > 20)
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation du numéro civique et du nom de rue              *
***************************************************************/

function Valider_No_et_Rue (Adresse)
{
if (Adresse.length > 50)
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation du nom de province                              *
***************************************************************/

function Valider_Province (Province)
{
if (Province.length > 30)
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation du nom de pays                                  *
***************************************************************/

function Valider_Pays (Pays)
{
if (Pays.length > 30)
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation du nom de ville                                 *
***************************************************************/

function Valider_Ville (Ville)
{
if (Ville.length > 64)
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation du nom                                          *
***************************************************************/

function Valider_Nom (Nom)
{
if (Nom.length > 25)
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation du prénom                                       *
***************************************************************/

function Valider_Prenom (Prenom)
{
if (Prenom.length > 25)
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation du nom et du prénom                             *
***************************************************************/

function Valider_Nom_Prenom (Nom_Prenom)
{
if (Nom_Prenom.length > 50)
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation du champ numérique                              *
***************************************************************/

function Valider_Numerique (Nombre)
{
if (isNaN(Nombre))
	{return 0;}
else
	{return 1;}
}



/***************************************************************
*   Validation de la case Oui Non                              *
***************************************************************/

function Valider_Oui_Non (Oui,Non)
{
if (!Oui.checked && !Non.checked)
	{return 0;}
else
	{return 1;}
}

//----------------------------------------------------------------
//  Analyse le champ et appel la fonction de validation appropriée
//----------------------------------------------------------------
function Analyser_Champ(Langue)
{

// Contenu des messages "alert"
if (Langue.toUpperCase() == "FR")
	{
	EMAIL_ABSENT = "Vous devez obligatoirement entrer votre adresse électronique.";
	EMAIL_INVALIDE = "L'adresse du courrier électronique n'est pas valide!";
	LIEN_ABSENT= "Vous devez obligatoirement entrer une adresse URL.";
	LIEN_INVALIDE = "Le lien URL n'est pas valide!";
	APPART_ABSENT = "Vous devez obligatoirement entrer un numéro d'appartement/chambre/étage.";
	APPART_INVALIDE = "Le numéro d'appartement/bureau/chambre n'est pas valide!";
	CODE_POSTAL_ABSENT = "Le code postal est obligatoir et doit être complet.";
	CODE_POSTAL_INVALIDE = "Le code postal n'est pas valide!";
	ADRESSE_ABSENT = "Vous devez obligatoirement entrer un nom de rue et un numéro de porte.";
	ADRESSE_INVALIDE = "L'adresse (numéro et rue) n'est pas valide!";
	NTEL_ABSENT = "Le numéro de téléphone/fax est manquant ou incomplet!";
	NTEL_INVALIDE = "Le numéro de téléphone/fax n'est pas valide!";
	PROVINCE_ABSENT = "Vous devez obligatoirement entrer le nom de la province.";
	PROVINCE_INVALIDE = "La province n'est pas valide!";
	PAYS_ABSENT = "Vous devez obligatoirement entrer un nom d'un pays!";
	PAYS_INVALIDE = "Le pays n'est pas valide!";
	VILLE_ABSENT = "Vous devez obligatoirement entrer un nom de ville!";
	VILLE_INVALIDE = "La ville n'est pas valide!";
	NOM_ABSENT = "Vous devez obligatoirement entrer votre nom de famille!";
	NOM_INVALIDE = "Le nom n'est pas valide!";
	PRENOM_ABSENT = "Vous devez obligatoirement entrer votre prénom!";
	PRENOM_INVALIDE = "Le prénom n'est pas valide!";
	NOM_PRENOM_ABSENT = "Vous devez obligatoirement entrer votre nom et votre prénom.";
	NOM_PRENOM_INVALIDE = "Le nom et le prénom ne sont pas valides!";
	DATE_ABSENT = "La date est manquant ou incomplet!";
	DATE_INVALIDE = "La date n'est pas valide!";
	NUMERIQUE_ABSENT = "Veuillez inscrire une quantité. Si elle est nulle, inscrire '0'.";
	NUMERIQUE_INVALIDE = "La quantité entrée n'est pas de type numérique.";
	OUI_NON_VIDE = "Veuillez sélectionner une option.";
	TITRE_ABSENT = "Veuillez inscrire un titre.";
	NOM_ENTREPRISE_ABSENT = "Veuillez inscrire le nom de l'entreprise.";
	}
else
	{
	EMAIL_ABSENT = "You must enter your e-mail address.";
	EMAIL_INVALIDE = "Your e-mail address is not valid.";
	LIEN_ABSENT= "You must enter an URL.";
	LIEN_INVALIDE = "The URL you entered is not valid.";
	APPART_ABSENT = "You must enter an apartment/floor/room number.";
	APPART_INVALIDE = "The apartment/floor/room number you provide is not valid.";
	CODE_POSTAL_ABSENT = "The postal code must be complete.";
	CODE_POSTAL_INVALIDE = "The postal code is not valid.";
	ADRESSE_ABSENT = "You must enter an address.";
	ADRESSE_INVALIDE = "The address you entered is not valid.";
	NTEL_ABSENT = "The phone/fax number is missing or incomplete.";
	NTEL_INVALIDE = "The phone/fax number is not valid.";
	PROVINCE_ABSENT = "You must enter a province.";
	PROVINCE_INVALIDE = "The province you entered is not valid.";
	PAYS_ABSENT = "You must enter a country.";
	PAYS_INVALIDE = "The country is not valid.";
	VILLE_ABSENT = "You must enter a city.";
	VILLE_INVALIDE = "The city you entered is not valid.";
	NOM_ABSENT = "You must enter your last name.";
	NOM_INVALIDE = "Your last name is not valid.";
	PRENOM_ABSENT = "Your must enter your first name.";
	PRENOM_INVALIDE = "Your first name is not valid.";
	NOM_PRENOM_ABSENT = "You must enter your whole name.";
	NOM_PRENOM_INVALIDE = "Your name is not valid.";
	DATE_ABSENT = "The date is missing or incomplete.";
	DATE_INVALIDE = "The date is not valid.";
	NUMERIQUE_ABSENT = "Please, enter a quantity. If it's null, type '0'.";
	NUMERIQUE_INVALIDE = "Not a numeric entry.";
	OUI_NON_VIDE = "Please, select an option.";
	TITRE_ABSENT = "Please, enter a title.";
	NOM_ENTREPRISE_ABSENT = "Please, enter the name of the company.";
	}

Retour = "C00";
//document.forms[0] = document.forms[0];
BoucleFor:
for (var Compteur=0; Compteur<document.forms[0].length; Compteur++)
	{
	Nom_Champ = document.forms[0].elements[Compteur].name;
	Contenu = document.forms[0].elements[Compteur];
	// Diriger vers la bonne procedure de validation
	switch (Nom_Champ.substring(4,8))
		{
		case "emai":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_email (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "link":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_Lien (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "appa":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_Appart (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "cop1":	Contenu2 = document.forms[0].elements[Compteur+1];
						if (Nom_Champ.substring(8,9)== "o" && (Contenu.value.replace(/ /gi, "").length == 0 || Contenu2.value.replace(/ /gi, "").length == 0))
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_code_postal (Contenu,Contenu2) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "nrue":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_No_et_Rue (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "tel1":	Contenu2 = document.forms[0].elements[Compteur+1];
						Contenu3 = document.forms[0].elements[Compteur+2];
						if (Nom_Champ.substring(8,9)== "o" && (Contenu.value.replace(/ /gi, "").length == 0 || Contenu2.value.replace(/ /gi, "").length == 0 || Contenu3.value.replace(/ /gi, "").length == 0))
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if ((Contenu.value.replace(/ /gi, "").length > 0) || (Contenu2.value.replace(/ /gi, "").length > 0) || (Contenu3.value.replace(/ /gi, "").length > 0))
							{
							if (Valider_telephone (Contenu.value,Contenu2.value,Contenu3.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "prov":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_Province (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "pays":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_Pays (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "vill":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_Ville (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "nomf":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_Nom (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "pnom":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_Prenom (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "nomc":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_Nom_Prenom (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "jour":	Contenu2 = document.forms[0].elements[Compteur+1];
						Contenu3 = document.forms[0].elements[Compteur+2];
						if (Nom_Champ.substring(8,9)== "o" && (Contenu.value.replace(/ /gi, "").length == 0 || Contenu2.value.replace(/ /gi, "").length == 0 || Contenu3.value.replace(/ /gi, "").length == 0))
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_date (Contenu,Contenu2,Contenu3) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "nume":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						else if (Contenu.value.replace(/ /gi, "").length > 0)
							{
							if (Valider_Numerique (Contenu.value) == 0)
								{
								Retour = "I" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
								document.forms[0].elements[Compteur].focus();
								{break BoucleFor;}
								}
							}
						break;
		case "ouno":	Contenu2 = document.forms[0].elements[Compteur+1];
						if (Valider_Oui_Non (Contenu,Contenu2) == 0)
							{
							Retour = "V27";
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						Compteur++;
						break;
		case "titr":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						break;
		case "copo":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						break;
		case "entr":	if (Nom_Champ.substring(8,9)== "o" && Contenu.value.replace(/ /gi, "").length == 0)
							{
							Retour = "V" + Nom_Champ.substring(Nom_Champ.length-2,Nom_Champ.length);
							document.forms[0].elements[Compteur].focus();
							{break BoucleFor;}
							}
						break;
		}
//	if (Nom_Champ.substring(0,4)=="radi")
	}
if (Retour == 'C00')
	{return true;}
else
	{
	if (Langue.toUpperCase()=="FR")
		{
		switch (Retour.substring(1,3))
			{
			case "00":  Message = "";
			case "01":	if (Retour.substring(0,1) == "V")
							{Message = "Le champ de la date est vide.";}
						else
							{Message = "La date que vous avez entrée n'est pas valide.";}
						break;
			case "02":	Message = "Le champ du numéro de téléphone est vide ou incomplet. Ce champ doit être numérique seulement et composé de dix (10) chiffres en commençant par l'indicatif régional."; break;
			case "03":	Message = "Le numéro de téléphone pour vous joindre doit être composé de 10 chiffres incluant l'indicatif régional."; break;
			case "04":	Message = "L'adresse de courrier électronique n'est pas dans un format valide."; break;
			case "05":	Message = "Veuillez remplir tous les champs de l'inscription à l'annuaire."; break;
			case "06":	Message = "Veuillez remplir le champ du nom de votre entreprise."; break;
			case "07":	if (Retour.substring(0,1) == "V")
							{Message = "Veuillez inscrire une adresse de courrier électronique où l'on peut vous écrire.";}
						else
							{Message = "L'adresse de courrier électronique n'est pas dans un format valide.";}
						break;
			case "08":	Message = "Veuillez remplir les deux champs du nom de la personne responsable du compte."; break;
			case "09":	Message = "Veuillez remplir tous les champs de votre nouvelle adresse."; break;
			case "10":	Message = "Le numéro de téléphone pour vous joindre doit être composé de 10 chiffres incluant l'indicatif régional."; break;
			case "11":	Message = "Veuillez remplir les champs nom et prénom."; break;
			case "12":	Message = "Le champ du numéro de téléphone est incomplet. Ce champ doit être numérique seulement et composé de dix (10) chiffres en commençant par l'indicatif régional."; break;
			case "13":	Message = "Veuillez indiquer le nombre total de lignes téléphoniques dont vous aurez besoin."; break;
			case "14":	Message = "Veuillez indiquer le nombre d'ordinateurs que vous avez à la maison. Si vous en n'avez aucun, inscrire « 0 »."; break;
			case "15":	Message = "Veuillez remplir tous les champs de l'adresse de facturation."; break;
			case "16":	Message = "Veuillez indiquer un numéro de téléphone où l'on peut vous joindre avant le jour du déménagement."; break;
			case "17":	Message = "Le numéro de téléphone pour vous joindre le jour du déménagement doit être composé de 10 chiffres incluant l'indicatif régional."; break;
			case "18":	Message = "Veuillez remplir le champ genre d'entreprise."; break;
			case "19":	if (Retour.substring(0,1) == "V")
							{Message = "La date de rebranchement est incomplète.";}
						else
							{Message = "Le format de la date est invalide.";}
						break;
			case "20":	Message = "Veuillez remplir tous les champs de l'adresse actuelle."; break;
			case "21":	Message = "Veuillez indiquer le nombre de lignes téléphoniques dont vous aurez besoin."; break;
			case "22":	Message = "Veuillez indiquer le nombre de prises téléphoniques à installer."; break;
			case "23":	Message = "Veuillez indiquer le nombre d'ordinateurs à la maison."; break;
			case "24":	if (Retour.substring(0,1) == "V")
							{Message = "Le champ de la date est vide.";}
						else
							{Message = "La date de rebranchement est invalide.";}
						break;
			case "25":	Message = "Veuillez remplir tous les champs du nom de la personne responsable du compte."; break;
			case "26":	Message = "Veuillez remplir les deux champs de votre Inscription à l'annuaire."; break;
			case "27":	Message = "Un bouton n'a pas été coché."; break;
			case "28":	Message = "Le format de la date est invalide."; break;
			case "29":	Message = "Veuillez compléter les informations pour les deux contact comme référence."; break;
			}
		}
	else
		{
		switch (Retour.substring(1,3))
			{
			case "00":  Message = "";
			case "01":	if (Retour.substring(0,1) == "V")
							{Message = "The date field is empty.";}
						else
							{Message = "The date you entered is not valid.";}
						break;
			case "02":	Message = "The telephone number field is empty or incomplete. This field must be numeric only and contain ten (10) numbers starting with the area code."; break;
			case "03":	Message = "The telephone number where we can reach you must be made up of 10 digits, including the area code."; break;
			case "04":	Message = "The email address is not in a valid format."; break;
			case "05":	Message = "Please complete all directory listing fields."; break;
			case "06":	Message = "Please complete the name field for your business."; break;
			case "07":	if (Retour.substring(0,1) == "V")
							{Message = "Please enter an email address where we can reach you.";}
						else
							{Message = "The email address is not in a valid format.";}
						break;
			case "08":	Message = "Please complete both name fields for the person responsible for the account."; break;
			case "09":	Message = "Please complete all the fields for your new address."; break;
			case "10":	Message = "The telephone number where we can reach you must be made up of 10 digits, including the area code."; break;
			case "11":	Message = "Please complete the surname and given name fields."; break;
			case "12":	Message = "The telephone number field is empty or incomplete. This field must be numeric only and contain ten (10) numbers starting with the area code."; break;
			case "13":	Message = "Please indicate the total number of telephone lines you will need."; break;
			case "14":	Message = "Please indicate the number of computers you have at home.  If you do not have any, enter \"0\"."; break;
			case "15":	Message = "Please complete all billing address fields."; break;
			case "16":	Message = "Please indicate a telephone number where we can reach you before your moving day."; break;
			case "17":	Message = "The telephone number where we can reach you on the day of your move must consist of 10 digits, including the area code."; break;
			case "18":	Message = "Please complete the type of business field."; break;
			case "19":	if (Retour.substring(0,1) == "V")
							{Message = "The reconnection date is incomplete.";}
						else
							{Message = "The date format is invalid.";}
						break;
			case "20":	Message = "Please complete all current address fields."; break;
			case "21":	Message = "Please indicate the total number of telephone lines you will need."; break;
			case "22":	Message = "Please indicate the number of telephone jacks to install."; break;
			case "23":	Message = "Please indicate the number of computers at home."; break;
			case "24":	if (Retour.substring(0,1) == "V")
							{Message = "The date field is empty.";}
						else
							{Message = "The reconnection date is invalid.";}
						break;
			case "25":	Message = "Please complete all the fields for the name of the person responsible for the account."; break;
			case "26":	Message = "Please complete both fields for your directory listing."; break;
			case "27":	Message = "No button has been checked off."; break;
			case "28":	Message = "The date format is invalid."; break;
			case "29":	Message = "Please complete all the fields of both contact for reference."; break;
			}
		}
	//alert (Message);
	RangErreur = Compteur+1;
	MessageErreur = Message;
	return false;
	}
}




/**********************************
*   Trouver l'index d'un élément  *
**********************************/

function Scanner_Element (Element)
{
compteur = 0;
while (document.forms[0].elements[compteur] != Element || compteur-1 > document.forms[0].length)
	{compteur++;}
if (compteur-1 > document.forms[0].length)
	{compteur = -1;}
return compteur;
}



function Tab_Indexation(Formulaire)
{
for (var Compteur=0; Compteur<document.forms[0].length; Compteur++)
	{
	document.forms[0].elements[Compteur].tabIndex = Compteur+1;
	}
}



function Consolider_Validations (Langue)
{
Tab_Indexation(document.forms[0]);

RangErreur = document.forms[0].length;
MessageErreur = "";

var retour = true;
if (!Analyser_Champ (Langue))
	{retour = false;}
if (!Valider_specifiquement (Langue))
	{retour = false;}

if (!retour)
	alert (MessageErreur);

return retour;
}

function Suivant(nomChamps, champsSuivant, grandeurMaximal)
{
	var champs = document.forms[0].elements[nomChamps];
	var nextField = document.forms[0].elements[champsSuivant];
	
	if ((champs == activeField) && (champs.value != champs.lastValue) && (champs.value.length >= grandeurMaximal)) {
		if (champsSuivant != 'continuer') {
			nextField.focus();
		}
	}
	activeField = null;
}


function Present(nomChamps)
{
	var champs = document.forms[0].elements[nomChamps];
	
	activeField = champs;
	if (typeof(champs.lastvalue) == 'undefined') {
		champs.lastvalue = ''; 
	}
	champs.lastValue = champs.value;
}