/* CE JS TRAITE LES DIFFERENTS CONTROLES LOCAUX RELATIFS AUX CHAINES DE CARACTERES
 EN CAS DE MAUVAISE SAISIE DE CES CHAMPS UN MESSAGE D ERREUR EST AFFICHE EN POP-UP
 INPUTS : NOM DU FORMULAIRE,
	    NOM DES CHAMP n,
	    NATURE DE LA CHAINE A CONTROLER (CHAINE OU NUM)
	    INTITULE DU MESSAGE
 EXEMPLE : CHAINE('RECHERCHER,AEROPORT_DEPART,CHAINE,ERREURAEROPORTDEPART,AEROPORT_ARRIVEE,NUM,ERREURAEROPORTARRIVEE');
 DONC A SAISIR SANS ESPACE LES ARGUMENTS*/

function ControleLongueurChaineMiniMacIe(num, numchamp, message, image) {
	return ControleLongueurChaineMiniMacIe2(num,
			document.forms[0].elements[numchamp], message, image);
}

function ControleLongueurChaineMiniMacIe2(num, champ, message, image) {
	if (champ.value.length < num) {
		MessageChaine += message + "\n";
		DstepRoll(image, ImgON, 0);

		if (document.showError) {
			document.showError(champ, image, message);
		}
	}
}

function ControleMailMacIe(form, numchamp, libellechamp, ImgName) {
	return ControleMailMacIe2(form, document.forms[0].elements[numchamp],
			libellechamp, ImgName);

}

/*
 * Supprime les espaces doublés dans un chaine de caractere et fait un trim
 * devant et derriere
 */
function SupprimeEspaceEnTrop(form, numchamp) {

	var val = document.forms[0].elements[numchamp].value;
	var ret = "";
	var bfound = 0;
	for ( var i = 0; i < val.length; i++) {
		if (val.charAt(i) == " ") {
			bfound = bfound + 1; /* On a trouvé un espace */
		} else {
			bfound = 0
		}
		if (bfound < 2)
			ret += val.charAt(i);
	}
	return trim(ret);
}

function ControleMailMacIe2(form, champ, libellechamp, ImgName) {

	var Motif = /^(\w[-._\w]*@\w[-._\w]*\w\.\w{2,6})$/;
	if (!Motif.test(champ.value)) {
		MessageChaine += libellechamp + "\n";
		DstepRoll(ImgName, ImgON, 0);

		if (document.showError) {
			document.showError(champ, ImgName, libellechamp);
		}
	} else {
		/* n'autorise pas les paires .- -. -- .. ._ -_ _. _- __ */
		Motif = /(\.-|-\.|--|\.\.|\._|-_|_\.|_-|__)/;
		if (Motif.test(champ.value)) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);

			if (document.showError) {
				document.showError(champ, ImgName, libellechamp);
			}
		}
	}
}

/* depreciee ODA */
function ControleAlphaNumAvecEspace(form, champ, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zA-Z0-9 \n\r]/i;
	Instruction = "document.forms[\"" + form + "\"].elements[\"" + champ
			+ "\"].value";
	Chaine = eval(Instruction);

	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

function ControleAlphaNumAvecEspaceByIndice(numForm, numChamp, libellechamp,
		ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zA-Z0-9 \n\r]/i;
	Chaine = document.forms[numForm].elements[numChamp].value;

	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

function ControleAlphaNumAvecEspaceByObject(champ, message, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zA-Z0-9 \n\r]/i;
	Chaine = champ.value;

	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += message + "\n";
			DstepRoll(ImgName, ImgON, 0);

			if (document.showError) {
				document.showError(champ, ImgName, message);
			}
		}
	}
}

function ControleAlphaNumAvecEspacePonctuation(form, champ, libellechamp,
		ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zA-Z0-9!,:;?.' \n\r]/i;
	Instruction = "document.forms[\"" + form + "\"].elements[\"" + champ
			+ "\"].value";
	Chaine = eval(Instruction);

	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

/*
 * depreciee ODA num : longueur minimal de la chaine champ : nom du champ
 * message : message d'erreur image : nom de l'image
 */
function ControleLongueurChaineMini(num, champ, message, image) {
	var valC = eval(champ);
	if (valC.length < num) {

		MessageChaine += message + "\n";
		DstepRoll(image, ImgON, 0);
	}

}

/* A utiliser */
function ControleLongueurChaineMiniByIndice(num, numForm, numChamp, message,
		image) {
	var valC = document.forms[numForm].elements[numChamp].value;
	if (valC.length < num) {
		MessageChaine += message + "\n";
		DstepRoll(image, ImgON, 0);
	}

}

function ControleLongueurChaineMiniByObject(num, champ, message, image) {
	var valC = champ.value;
	if (valC.length < num) {
		MessageChaine += message + "\n";
		DstepRoll(image, ImgON, 0);

		if (document.showError) {
			document.showError(champ, image, message);
		}
	}

}

/* depreciee ODA */
function ControleLongueurChainePlage(min, max, champ, message, image) {
	var valC = eval(champ);
	if ((valC.length < min) || (valC.length > max)) {
		MessageChaine += message + "\n";
		DstepRoll(image, ImgON, 0);
	}
}

/* a utiliser ODA */
function ControleLongueurChainePlageByIndice(min, max, numForm, numChamp,
		message, image) {
	var valC = document.forms[numForm].elements[numChamp].value;
	if ((valC.length < min) || (valC.length > max)) {
		MessageChaine += message + "\n";
		DstepRoll(image, ImgON, 0);
	}
}

function ControleLongueurChainePlageByObject(min, max, champ, message, image) {
	var valC = champ.value;
	if ((valC.length < min) || (valC.length > max)) {
		MessageChaine += message + "\n";
		DstepRoll(image, ImgON, 0);

		if (document.showError) {
			document.showError(champ, image, message);
		}

		return false;
	}
	return true;
}

/* depreciee ODA */
function ControleAlphaAvecEspace(form, champ, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zA-Z \n\r]/i;
	Instruction = "document.forms[\"" + form + "\"].elements[\"" + champ
			+ "\"].value";
	Chaine = eval(Instruction);
	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

/* a utiliser */
function nombreDigitCarteByObject(champ, msgCarteInvalide, ImgName) {
	var Chaine = champ.value;
	var numRetour = "";
	if (!Chaine.isNaN) {
		if ((Chaine.length == "15") && (Chaine.substr(0, 4) != "3749")) {
			MessageChaine += msgCarteInvalide + "\n";
			DstepRoll(ImgName, ImgON, 0);

			if (document.showError) {
				document.showError(champ, ImgName, msgCarteInvalide);
			}

		} else {
			var taille = Chaine.length;
			for ( var i = taille; i < 12; i++) {
				numRetour = "0".concat(Chaine);
			}
		}
	} else {
		MessageChaine += msgCarteInvalide + "\n";
		DstepRoll(ImgName, ImgON, 0);

		if (document.showError) {
			document.showError(champ, ImgName, msgCarteInvalide);
		}
	}
}

/* A utiliser */
function ControleAlphaAvecEspaceByIndice(numForm, numChamp, libellechamp,
		ImgName) {
	var Instruction = "";
	var Chaine = "";
	if (navigator.appVersion.indexOf("Safari") != -1) {
		var Motif = new RegExp("[0-9]");
	} else {
		var Motif = /[^a-zA-Z\u00aa\u00c1\u00e1\u00c0\u00e0\u00c2\u00e2\u00c4\u00e4\u00c3\u00e3\u00c5\u00e5\u00e6\u00c6\u00c7\u00e7\u00d0\u00f0\u00c9\u00e9\u00c8\u00e8\u00ca\u00ea\u00cb\u00eb\u00cd\u00ed\u00cc\u00ec\u00ce\u00ee\u00ef\u00cf\u00d1\u00f1\u00d3\u00f3\u00d2\u00f2\u00d4\u00f4\u00d6\u00f6\u00d8\u00f8\u008c\u009c\u00df\u00de\u00fe\u00da\u00fa\u00d9\u00f9\u00db\u00fb\u00dc\u00fc\u00fd\u00dd\u009f\u00ff\u00b0\u00a3\-\'\/\\\"\[\]\(\)\+\*\#\{\}\=\@Â£%&$\.\?\| \n\r]/i;
	}
	Chaine = document.forms[numForm].elements[numChamp].value;
	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

/* A utiliser */
function ControleAlphaAvecEspaceByObject(Champ, libellechamp, ImgName,
		onlyLastNameChars) {
	var Instruction = "";
	var Chaine = "";
	if (navigator.appVersion.indexOf("Safari") != -1) {
		var Motif = new RegExp("[0-9]");
	} else {
		if (onlyLastNameChars) {
			var Motif = /[^a-zA-Z\u00aa\u00c1\u00e1\u00c0\u00e0\u00c2\u00e2\u00c4\u00e4\u00c3\u00e3\u00c5\u00e5\u00e6\u00c6\u00c7\u00e7\u00d0\u00f0\u00c9\u00e9\u00c8\u00e8\u00ca\u00ea\u00cb\u00eb\u00cd\u00ed\u00cc\u00ec\u00ce\u00ee\u00ef\u00cf\u00d1\u00f1\u00d3\u00f3\u00d2\u00f2\u00d4\u00f4\u00d6\u00f6\u00d8\u00f8\u008c\u009c\u00df\u00de\u00fe\u00da\u00fa\u00d9\u00f9\u00db\u00fb\u00dc\u00fc\u00fd\u00dd\u009f\u00ff\u00b0\u00a3\-\' ]/i;
		} else {
			var Motif = /[^a-zA-Z\u00aa\u00c1\u00e1\u00c0\u00e0\u00c2\u00e2\u00c4\u00e4\u00c3\u00e3\u00c5\u00e5\u00e6\u00c6\u00c7\u00e7\u00d0\u00f0\u00c9\u00e9\u00c8\u00e8\u00ca\u00ea\u00cb\u00eb\u00cd\u00ed\u00cc\u00ec\u00ce\u00ee\u00ef\u00cf\u00d1\u00f1\u00d3\u00f3\u00d2\u00f2\u00d4\u00f4\u00d6\u00f6\u00d8\u00f8\u008c\u009c\u00df\u00de\u00fe\u00da\u00fa\u00d9\u00f9\u00db\u00fb\u00dc\u00fc\u00fd\u00dd\u009f\u00ff\u00b0\u00a3\-\'\/\\\"\[\]\(\)\+\*\#\{\}\=\@Â£%&$\.\?\| \n\r]/i;
		}
	}
	Chaine = Champ.value;
	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);

			if (document.showError) {
				document.showError(Champ, ImgName, libellechamp);
			}
		}
	}
}

/* Petit Dev 379 */
function ControleAlphaNumSpecialCharsAvecEspaceByIndice(numForm, numChamp,
		libellechamp, ImgName) {
	var champ = document.forms[numForm].elements[numChamp];
	ControleAlphaNumSpecialCharsAvecEspace(champ, libellechamp, ImgName);
}

function ControleAlphaNumSpecialCharsAvecEspace(champ, libellechamp, ImgName) {

	var Instruction = "";
	var Chaine = "";
	var Motif1 = "";
	var Motif2 = "";

	if (navigator.appVersion.indexOf("Safari") != -1) {
		Motif1 = new RegExp("[\u0027\u002f\"\[\]+{}=@Â£.?|,\n\r]");
		Motif2 = new RegExp(
				"[ a-zA-Z0-9\u00aa\*\$\'\#\&\%\)\(\-\u00c1\u00e1\u00c0\u00e0\u00c2\u00e2\u00c4\u00e4\u00c3\u00e3\u00c5\u00e5\u00e6\u00c6\u00c7\u00e7\u00d0\u00f0\u00c9\u00e9\u00c8\u00e8\u00ca\u00ea\u00cb\u00eb\u00cd\u00ed\u00cc\u00ec\u00ce\u00ee\u00ef\u00cf\u00d1\u00f1\u00d3\u00f3\u00d2\u00f2\u00d4\u00f4\u00d6\u00f6\u00d8\u00f8\u008c\u009c\u00df\u00de\u00fe\u00da\u00fa\u00d9\u00f9\u00db\u00fb\u00dc\u00fc\u00fd\u00dd\u009f\u00ff\u00b0\u00a3]");

	} else {
		Motif1 = /[a-zA-Z0-9\u00aa\u00c1\u00e1\u00c0\u00e0\u00c2\u00e2\u00c4\u00e4\u00c3\u00e3\u00c5\u00e5\u00e6\u00c6\u00c7\u00e7\u00d0\u00f0\u00c9\u00e9\u00c8\u00e8\u00ca\u00ea\u00cb\u00eb\u00cd\u00ed\u00cc\u00ec\u00ce\u00ee\u00ef\u00cf\u00d1\u00f1\u00d3\u00f3\u00d2\u00f2\u00d4\u00f4\u00d6\u00f6\u00d8\u00f8\u008c\u009c\u00df\u00de\u00fe\u00da\u00fa\u00d9\u00f9\u00db\u00fb\u00dc\u00fc\u00fd\u00dd\u009f\u00ff\u00b0\u00a3\-\'\/\\\"\[\]\(\)\+\*\#\{\}\=\@Â£%&$\.\?\|\, \n\r]/i;
	}

	Chaine = champ.value;
	if (Chaine != "") {
		var i = 0;
		while (i < Chaine.length) {
			Instruction = Chaine.charAt(i);
			if (!((Motif1.test(Instruction)) || (Motif2 && Motif2
					.test(Instruction)))) {
				MessageChaine += libellechamp + "\n";
				DstepRoll(ImgName, ImgON, 0);
				if (document.showError) {
					document.showError(champ, ImgName, libellechamp);
				}
				break;
			} else {
				i++;
			}
		}
	}
}

function ControleAlphaSpecialCharsAvecEspaceByIndice(numForm, numChamp,
		libellechamp, ImgName) {
	var champ = document.forms[numForm].elements[numChamp];
	ControleAlphaSpecialCharsAvecEspace(champ, libellechamp, ImgName);
}

function ControleAlphaSpecialCharsAvecEspace(champ, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	if (navigator.appVersion.indexOf("Safari") != -1) {
		var Motif = new RegExp("[0-9]");
	} else {
		var Motif = /[^a-zA-Z\u00aa\u00c1\u00e1\u00c0\u00e0\u00c2\u00e2\u00c4\u00e4\u00c3\u00e3\u00c5\u00e5\u00e6\u00c6\u00c7\u00e7\u00d0\u00f0\u00c9\u00e9\u00c8\u00e8\u00ca\u00ea\u00cb\u00eb\u00cd\u00ed\u00cc\u00ec\u00ce\u00ee\u00ef\u00cf\u00d1\u00f1\u00d3\u00f3\u00d2\u00f2\u00d4\u00f4\u00d6\u00f6\u00d8\u00f8\u008c\u009c\u00df\u00de\u00fe\u00da\u00fa\u00d9\u00f9\u00db\u00fb\u00dc\u00fc\u00fd\u00dd\u009f\u00ff\u00b0\u00a3\-\'\/\\\"\[\]\(\)\+\*\#\{\}\=\@Â£%&$\.\?\| \n\r]/i;
	}
	Chaine = champ.value;

	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
			if (document.showError) {
				document.showError(champ, ImgName, libellechamp);
			}
		}
	}
}
/* depreciee */
function ControleAlphaNum(form, champ, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zA-Z0-9]/i;
	Instruction = "document.forms[\"" + form + "\"].elements[\"" + champ
			+ "\"].value";
	Chaine = eval(Instruction);
	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);

		}
	}
}

/*
 * DEPRECIEE ODA ne fonctionne pour sous safari A UTILISER ODA compatibilite
 * navigateur accrue
 */
function ControleAlphaNumByIndice(numForm, numChamp, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zA-Z0-9]/i;
	Chaine = document.forms[numForm].elements[numChamp].value;
	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

function ControleAlphaNumByObject(champ, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zA-Z0-9]/i;
	Chaine = champ.value;
	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);

			if (document.showError) {
				document.showError(champ, ImgName, libellechamp);
			}
		}
	}
}

function ControleChaineAvecEspace(form, champ, libellechamp, ImgName) {
	var Longueur = "";
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zéè \n\r]/i;
	Instruction = "document.forms[\"" + form + "\"].elements[\"" + champ
			+ "\"].value";
	Chaine = eval(Instruction);
	if ((Motif.test(Chaine))) {
		MessageChaine += libellechamp + "\n";
		DstepRoll(ImgName, ImgON, 0);
	}
}

function ControleChaineAvecEspaceByIndice(numForm, numChamp, libellechamp,
		ImgName) {
	var Longueur = "";
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zéè \n\r]/i;
	Instruction = "document.forms[numForm].elements[numChamp].value";
	Chaine = eval(Instruction);
	if ((Motif.test(Chaine))) {
		MessageChaine += libellechamp + "\n";
		DstepRoll(ImgName, ImgON, 0);
	}
}

function ControleChaine(form, champ, libellechamp, ImgName) {
	var Longueur = "";
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zéè]/i;
	Instruction = "document.forms[\"" + form + "\"].elements[\"" + champ
			+ "\"].value";
	Chaine = eval(Instruction);
	if ((Motif.test(Chaine))) {
		MessageChaine += libellechamp + "\n";
		DstepRoll(ImgName, ImgON, 0);
	}
}

function ControleChaineByIndice(numForm, numChamp, libellechamp, ImgName) {
	var Longueur = "";
	var Instruction = "";
	var Chaine = "document.forms[numForm].elements[numChamp].value";
	var Motif = /[^a-zéè]/i;
	Instruction = "";
	Chaine = eval(Instruction);
	if ((Motif.test(Chaine))) {
		MessageChaine += libellechamp + "\n";
		DstepRoll(ImgName, ImgON, 0);
	}
}

/* depreciee */
function ControleNum(form, champ, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^0-9]/i;
	Instruction = "document.forms[\"" + form + "\"].elements[\"" + champ
			+ "\"].value";
	Chaine = eval(Instruction);
	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

/* a utiliser ODA */
function ControleNumByIndice(numForm, numChamp, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^0-9]/i;
	Chaine = document.forms[numForm].elements[numChamp].value;
	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

/* a utiliser */
function ControleNumByObject(champ, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^0-9]/i;
	Chaine = champ.value;
	if (Chaine != "") {
		if ((Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);

			if (document.showError) {
				document.showError(champ, ImgName, libellechamp);
			}
		}
	}
}

function ControleNumMacIE(form, numChamp, libellechamp, ImgName) {
	var Instruction = "";
	Instruction = "document.forms[\"" + form + "\"].elements[" + numChamp + "]";
	return ControleNumMacIE2(form, eval(Instruction), libellechamp, ImgName);
}

function ControleNumMacIE2(form, champ, libellechamp, ImgName) {

	var Motif = /[^0-9]/i;
	if (champ.value != "") {
		if ((Motif.test(champ.value))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

/* depreciee */
function ControleMail(form, champ, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /^\S+@\S+\.\S+$/;
	Instruction = "document.forms[\"" + form + "\"].elements[\"" + champ
			+ "\"].value";
	Chaine = eval(Instruction);
	if (!Motif.test(Chaine)) {
		MessageChaine += libellechamp + "\n";
		DstepRoll(ImgName, ImgON, 0);
	}
}

/* a utiliser ODA */
function ControleMailByIndice(numForm, numChamp, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /^\S+@\S+\.\S+$/;
	Chaine = document.forms[numForm].elements[numChamp].value;
	if (!Motif.test(Chaine)) {
		MessageChaine += libellechamp + "\n";
		DstepRoll(ImgName, ImgON, 0);
	}
}

function AfficheErreursChaines() {
	if (!document.dontShowAlert && MessageChaine != "") {
		alert(MessageChaine);
	}
}

/* RECUPERE LES PARAMETRES PASSES DANS LE SUBMIT */
function Chaines(ListeElements) {
	var inString = ListeElements;
	var outString = "";
	var Cherche = ",";
	var Tableau = new Array;
	var Compteur = 0;
	var IndiceTableau = 0;
	var i = 0;
	var j = 0;
	var k = 0;

	if (!inString) {
		return "";
	}

	/* ON METS TOUS LES ELEMENTS DU FORMULAIRE DANS UN TABLEAU */
	while (Compteur != -1) {
		Compteur = inString.indexOf(Cherche);
		Tableau[IndiceTableau] = inString.substring(0, Compteur);

		inString = inString.substring(Compteur + 1, inString.length);
		if (Compteur == inString.lastIndexOf(Cherche)) {
			Tableau[IndiceTableau] = inString.substring(0, inString.length);
		}
		IndiceTableau++;
	}

	var NbElements = Tableau.length;

	/* ON CONTROLE LES CHAINES DE CARACTERES : */
	for (i = 0; i < NbElements; i++) {
		if (Tableau[i] == "CFC") {
			while (document.forms[j].name != Tableau[0]) {
				j++;
			}
			while (document.forms[j].elements[k].name != Tableau[i - 1]) {
				k++;
			}
			ControleChaine(j, k, Tableau[i + 1], Tableau[i + 2]);
		}
	}

	/* ON CONTROLE LES CHAINES NUMERIQUES : */
	j = 0;
	k = 0;
	for (i = 0; i < NbElements; i++) {
		if (Tableau[i] == "CFN") {
			while (document.forms[j].name != Tableau[0]) {
				j++;
			}
			while (document.forms[j].elements[k].name != Tableau[i - 1]) {
				k++;
			}
			ControleNum(j, k, Tableau[i + 1], Tableau[i + 2]);
		}
	}

	/* ON CONTROLE LES ADRESSES E-MAIL : */
	j = 0;
	k = 0;
	for (i = 0; i < NbElements; i++) {
		if (Tableau[i] == "CFM") {
			while (document.forms[j].name != Tableau[0]) {
				j++;
			}
			while (document.forms[j].elements[k].name != Tableau[i - 1]) {
				k++;
			}
			ControleMail(j, k, Tableau[i + 1], Tableau[i + 2]);
		}
	}

	/* ON CONTROLE LES CHAINES ALPHANUMERIQUES : */
	j = 0;
	k = 0;
	for (i = 0; i < NbElements; i++) {
		if (Tableau[i] == "CFAN") {
			while (document.forms[j].name != Tableau[0]) {
				j++;
			}
			while (document.forms[j].elements[k].name != Tableau[i - 1]) {
				k++;
			}
			ControleAlphaNum(j, k, Tableau[i + 1], Tableau[i + 2]);
		}
	}
}

function ControleChaineIdentique(champ1, champ2, image1, image2, message) {

	if (champ1 != champ2) {
		MessageChaine += message + "\n";
		DstepRoll(image1, ImgON, 0);
		DstepRoll(image2, ImgON, 0);
	}

}

function ControleIdMotDePasse(champ1, champ2, image1, image2, message) {

	if (champ1 == champ2) {
		MessageChaine += message + "\n";
		DstepRoll(image1, ImgON, 0);
		DstepRoll(image2, ImgON, 0);
	}

}

/** ******************** */
function emailCheck(emailStr) {
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");

	var matchArray = emailStr.match(emailPat);
	if (matchArray == null)
		return false;

	var user = matchArray[1];
	var domain = matchArray[2];

	if (user.match(userPat) == null)
		return false;

	var IPArray = domain.match(ipDomainPat);
	if (IPArray != null) {
		for ( var i = 1; i <= 4; i++) {
			if (IPArray[i] > 255)
				return false;
		}
		return true;
	}

	var domainArray = domain.match(domainPat);
	if (domainArray == null)
		return false;

	var atomPat = new RegExp(atom, "g");
	var domArr = domain.match(atomPat);
	var len = domArr.length;
	if (domArr[domArr.length - 1].length < 2)
		return false;

	if (len < 2)
		return false;

	return true;
}

function stringReplace(src, sCode, sRep) {
	var s = src;
	var bfound = 1;
	var sRet = "";
	var sZap = "";
	for ( var i = 0; i < s.length; i++) {
		if (s.charAt(i) == sCode.charAt(0)) {
			bfound = 1;
			sZap = sCode.charAt(0);
			for ( var j = 1; j < sCode.length; j++) {
				i++;
				if (i < s.length && s.charAt(i) != sCode.charAt(j)) {
					bfound = 0;
					j = sCode.length;
				}
				sZap += sCode.charAt(j);
			}
			if (bfound == 1) {
				sRet += sRep;
				i++;
			} else {
				sRet += sZap;
			}
		}
		sRet += s.charAt(i);
	}
	return sRet;
}

function ControleDateValiditeCB(mois, annee) {
	var bReturn = true;
	d = new Date();
	moisCourant = d.getMonth() + 1; // car en javascript le mois commence a 0
									// !!!
	anneeCourant = d.getFullYear();
	if (annee < anneeCourant) {
		bReturn = false;
	} else if (annee == anneeCourant) {
		if (mois < moisCourant) {
			bReturn = false;
		}
	}
	return bReturn;

}

function ControleAvecExpReguliere(Motif, form, champ, libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	Instruction = "document.forms[\"" + form + "\"].elements[\"" + champ
			+ "\"].value";
	Chaine = eval(Instruction);

	if (Chaine != "") {
		if (!(Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

function ControleAvecExpReguliereByIndice(Motif, numForm, numChamp,
		libellechamp, ImgName) {
	var Instruction = "";
	var Chaine = "";
	Instruction = "document.forms[" + numForm + "].elements[" + numChamp
			+ "].value";
	Chaine = eval(Instruction);

	if (Chaine != "") {
		if (!(Motif.test(Chaine))) {
			MessageChaine += libellechamp + "\n";
			DstepRoll(ImgName, ImgON, 0);
		}
	}
}

function ControlRegExpByObject(Motif, champ, message, ImgName) {
	var Chaine = champ.value;

	if (Chaine != "") {
		if (!(Motif.test(Chaine))) {
			MessageChaine += message + "\n";
			DstepRoll(ImgName, ImgON, 0);

			if (document.showError) {
				document.showError(champ, ImgName, message);
			}
		}
	}
}

function trim(strText) {
	/* this will get rid of leading spaces */
	while (strText.substring(0, 1) == ' ')
		strText = strText.substring(1, strText.length);

	/* this will get rid of trailing spaces */
	while (strText.substring(strText.length - 1, strText.length) == ' ')
		strText = strText.substring(0, strText.length - 1);

	return strText;
}

function ControleFormatEndDate(champ, message, img) {
	var validCarte = /^(\d{2}[\/]\d{2})$/;
	if (!validCarte.test(champ.value)) {
		MessageChaine += message + "\n";
		DstepRoll(img, ImgON, 0);
	} else {
		var mois = parseInt(champ.value.substr(0, 2), 10);
		var annee = parseInt("20" + champ.value.substr(3, 2), 10);

		if (!ControleDateValiditeCB(mois, annee)) {
			MessageChaine += message + "\n";
			DstepRoll(img, ImgON, 0);
			if (document.showError) {
				document.showError(champ, ImgName, message);
			}
		}
	}
}

/* verification du format de numero de carte de paiement */
/*
 * Cette fonction permet d'ajouter un message d'erreur s'il nexiste pas déjà
 * lorsque le startCode n'est pas correct
 */

function ControleFormatCarteBancaireDyn(champ, numCard, startCode, message,
		ImgName) {
	/* Constantes */
	var i = 0;
	var errorFound = false;

	/*
	 * Premier Test: permet de Comparer les chaines de caractères du numCard à
	 * la liste des StartCode possibles. Si false, on fait le TroisièmeTest, si
	 * true le startCode est correct on sort de la boucle
	 */
	for (i = 0; i < startCode.length; i++) {
		var start = startCode[i];
		errorFound = (numCard.indexOf(startCode[i]) == -1) && (numCard.indexOf("X") == -1);
		if (!errorFound) {
			break;
		}
	}

	/*
	 * Second Test : Test si le message que l'on veut ajouter existe, si non on
	 * l'ajoute en file
	 */
	if (errorFound) {
		if (MessageChaine.indexOf(message) == -1) { /*
													 * ajoute le message si
													 * n'existe pas déjà
													 */
			MessageChaine += message + "\n";
		}
		DstepRoll(ImgName, ImgON, 0);
		if (document.showError) {
			document.showError(champ, ImgName, message);
		}
	}

}

function ControleLongueurChaineDigit(codeCrypto, champ, numChamp, message,
		image) {
	if (codeCrypto != numChamp.length) {
		message = message.replace('\{1\}', codeCrypto);
		MessageChaine += message + "\n";
		DstepRoll(image, ImgON, 0);
		if (document.showError) {
			document.showError(champ, image, message);
		}
	}
}

function ControleLongueurChaineCard(min, max, champ, numChamp, message, image) {
	if ((numChamp.length < min) || (numChamp.length > max)) {
		message = message.replace('\{1\}', min);
		message = message.replace('\{2\}', max);
		MessageChaine += message + "\n";
		DstepRoll(image, ImgON, 0);
		if (document.showError) {
			document.showError(champ, image, message);
		}
	}
}

function ControleAlphaAvecEspaceCard(champ, numChamp, message, ImgName) {
	var Instruction = "";
	var Chaine = "";
	var Motif = /[^a-zA-Z \n\r]/i;

	if (numChamp != "") {
		if ((Motif.test(numChamp))) {
			MessageChaine += message + "\n";
			DstepRoll(ImgName, ImgON, 0);
			if (document.showError) {
				document.showError(champ, ImgName, message);
			}
		}
	}
}

function ControleNumCard(champ, numChamp, message, ImgName) {
	var Motif = /[^0-9X]/i;
	if (numChamp != "") {
		if ((Motif.test(numChamp))) {
			MessageChaine += message + "\n";
			DstepRoll(ImgName, ImgON, 0);
			if (document.showError) {
				document.showError(champ, ImgName, message);
			}

		}
	}
}

