// Déclaration des variables :
	var boites_erreur_id = new Array();
	var messages_erreur_id = new Array();
	var champs_id = new Array();

// Création et récupération des éléments servant à l'entourage des erreurs :
	boites_erreur_id['civilite'] = document.getElementById('boite_erreur_civilite');
	boites_erreur_id['nom'] = document.getElementById('boite_erreur_nom');
	boites_erreur_id['prenom'] = document.getElementById('boite_erreur_prenom');
	boites_erreur_id['identifiant'] = document.getElementById('boite_erreur_identifiant');
	boites_erreur_id['mot_de_passe'] = document.getElementById('boite_erreur_mot_de_passe');
	boites_erreur_id['confirmation_mot_de_passe'] = document.getElementById('boite_erreur_confirmation_mot_de_passe');
	boites_erreur_id['email'] = document.getElementById('boite_erreur_email');

// Création et récupération des éléments servant à l'affichage des erreurs :
	messages_erreur_id['civilite'] = document.getElementById('message_erreur_civilite');
	messages_erreur_id['nom'] = document.getElementById('message_erreur_nom');
	messages_erreur_id['prenom'] = document.getElementById('message_erreur_prenom');
	messages_erreur_id['identifiant'] = document.getElementById('message_erreur_identifiant');
	messages_erreur_id['mot_de_passe'] = document.getElementById('message_erreur_mot_de_passe');
	messages_erreur_id['confirmation_mot_de_passe'] = document.getElementById('message_erreur_confirmation_mot_de_passe');
	messages_erreur_id['email'] = document.getElementById('message_erreur_email');

// Création et récupération des éléments constituant le formulaire :
	champs_id['civilite'] = document.getElementById('civilite');
	champs_id['nom'] = document.getElementById('nom');
	champs_id['prenom'] = document.getElementById('prenom');
	champs_id['identifiant'] = document.getElementById('identifiant');
	champs_id['mot_de_passe'] = document.getElementById('mot_de_passe');
	champs_id['confirmation_mot_de_passe'] = document.getElementById('confirmation_mot_de_passe');
	champs_id['email'] = document.getElementById('email');


// Attribution des évènements :
	champs_id['identifiant'].onblur = verification_identifiant_ajax;
	champs_id['email'].onblur = verification_email_ajax;

// Liste des fonctions de vérification :

		// Le déclenchement des actions ne se fera que lorsque
		// l'intégralité des données aura été reçue ("readyState = 4").
		//
		// Liste des codes du "readyState" :
		//
		//	- 0 : L'instance objet à été créée, mais la méthode "open()" n'a pas été appelée (Uninitialized).
		//	- 1 : L'instance objet à été créée, mais la méthode "send()" n'a pas été appelée (Open).
		//	- 2 : La méthode "send()" a été appelée, les données sont en cours de transfert (Sent).
		//	- 3 : Les données reçues sont en partie accessibles (Receiving).
		//	- 4 : Les données sont complètement chargées et donc accessibles (Loaded).
		//

// Vérification de l'identifiant :
	function verification_identifiant_ajax() {
	// Avant toute chose, on vérifie en local si le pseudo n'est pas vide et que celui proposé correspond aux expressions régulières :
		if (champs_id['identifiant'].value != ''){
			if (is_identifiant(champs_id['identifiant'].value)) {
				var o_ajax = ajax();

				// Le chargement des données est en cours, on affiche la petite icone de chargement :
					messages_erreur_id['identifiant'].innerHTML = parent.message_erreur[0] + " &quot;<em>" + htmlencode(champs_id['identifiant'].value) + "</em>&quot; " + parent.message_erreur[1];
					boites_erreur_id['identifiant'].className = "boite_chargement";
					messages_erreur_id['identifiant'].className = "message_chargement";

				o_ajax.onreadystatechange = function() {
					if (o_ajax.readyState == 4) {
						if (o_ajax.status == 200 || o_ajax.status == 304) {
							var reponse = o_ajax.responseText;

							if (reponse != ""){
								// Si la page renvoie quelque-chose, cela signifie qu'il y a un problème :
									boites_erreur_id['identifiant'].className = "erreur";
									messages_erreur_id['identifiant'].className = "message_erreur";
	
									if (reponse == 1){
										// Si l'identifiant proposé par l'internaute n'a pas une syntaxe conforme (Code erreur : 1) :
											messages_erreur_id['identifiant'].innerHTML = parent.message_erreur[2] + " &quot;<em>" + htmlencode(champs_id['identifiant'].value) + "</em>&quot; " + parent.message_erreur[3] + parent.message_erreur[4] + " " + parent.message_erreur[5];
									}else if(reponse == 2){
										// Si l'identifiant est déjà utilisé par un internaute (Code erreur : 2) :
											messages_erreur_id['identifiant'].innerHTML = parent.message_erreur[2] + " &quot;<em>" + htmlencode(champs_id['identifiant'].value) + "</em>&quot; " + parent.message_erreur[6] + " " + parent.message_erreur[5];
									}else if(reponse == 3){
										// Si l'identifiant est vide (Code erreur : 3) :
											messages_erreur_id['identifiant'].innerHTML = parent.message_erreur[7];
									}
							}else{
								// Tout est ok, l'identifiant est bon.
									boites_erreur_id['identifiant'].className = "boite_succes";
									messages_erreur_id['identifiant'].className = "message_succes";
									messages_erreur_id['identifiant'].innerHTML = parent.message_erreur[2] + " &quot;<em>" + htmlencode(champs_id['identifiant'].value) + "</em>&quot; " + parent.message_erreur[8];
							}
						}
					}
				}

				o_ajax.open("POST", "inc/ajax/espace_stagiaire/verification.php", true);
				o_ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				o_ajax.send("identifiant=" + champs_id['identifiant'].value);

			}else{ // DE : if (is_identifiant(champs_id['identifiant'])) {
				boites_erreur_id['identifiant'].className = "erreur";
				messages_erreur_id['identifiant'].className = "message_erreur";
				messages_erreur_id['identifiant'].innerHTML = parent.message_erreur[2] + " &quot;<em>" + htmlencode(champs_id['identifiant'].value) + "</em>&quot; " + parent.message_erreur[3] + parent.message_erreur[4] + " " + parent.message_erreur[5];
			} // DE : if (is_identifiant(champs_id['identifiant'])) {
		} // DE : if (champs_id['identifiant'].value != ''){

		champs_id['identifiant'].className = "champ_simple_moyen_normal champ_par_defaut_normal";
	}

// Vérification de l'email :
	function verification_email_ajax() {
	// Avant toute chose, on vérifie en local si l'email n'est pas vide et que celui proposé correspond aux expressions régulières :
		if (champs_id['email'].value != ''){
			if (is_email(champs_id['email'].value)) {
				var o_ajax = ajax();

				// Le chargement des données est en cours, on affiche la petite icone de chargement :
					messages_erreur_id['email'].innerHTML = parent.message_erreur[9] + " &quot;<em>" + htmlencode(champs_id['email'].value) + "</em>&quot; " + parent.message_erreur[10];
					boites_erreur_id['email'].className = "boite_chargement";
					messages_erreur_id['email'].className = "message_chargement";

				o_ajax.onreadystatechange = function() {
					if (o_ajax.readyState == 4) {
						if (o_ajax.status == 200 || o_ajax.status == 304) {
							var reponse = o_ajax.responseText;

							if (reponse != ""){
								// Si la page renvoie quelque-chose, cela signifie qu'il y a un problème :
									boites_erreur_id['email'].className = "erreur";
									messages_erreur_id['email'].className = "message_erreur";
	
									if (reponse == 1){
										// Si l'email proposé par l'internaute n'a pas une syntaxe conforme (Code erreur : 1) :
											messages_erreur_id['email'].innerHTML = parent.message_erreur[11] + " &quot;<em>" + htmlencode(champs_id['email'].value) + "</em>&quot; " + parent.message_erreur[12] + " " + parent.message_erreur[13];
									}else if(reponse == 2){
										// Si l'email est déjà utilisé par un internaute (Code erreur : 2) :
											messages_erreur_id['email'].innerHTML = parent.message_erreur[11] + " &quot;<em>" + htmlencode(champs_id['email'].value) + "</em>&quot; " + parent.message_erreur[14] + " " + parent.message_erreur[13];
									}else if(reponse == 3){
										// Si l'email est vide (Code erreur : 3) :
											messages_erreur_id['email'].innerHTML = parent.message_erreur[15];
									}
							}else{
								// Tout est ok, l'email est bon.
									boites_erreur_id['email'].className = "boite_succes";
									messages_erreur_id['email'].className = "message_succes";
									messages_erreur_id['email'].innerHTML = parent.message_erreur[11] + " &quot;<em>" + htmlencode(champs_id['email'].value) + "</em>&quot; " + parent.message_erreur[16];
							}
						}
					}
				}

				o_ajax.open("POST", "inc/ajax/espace_stagiaire/verification.php", true);
				o_ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				o_ajax.send("email=" + champs_id['email'].value);

			}else{ // DE : if (is_email(champs_id['email'])) {
				boites_erreur_id['email'].className = "erreur";
				messages_erreur_id['email'].className = "message_erreur";
				messages_erreur_id['email'].innerHTML = parent.message_erreur[11] + " &quot;<em>" + htmlencode(champs_id['email'].value) + "</em>&quot; " + parent.message_erreur[12] + " " + parent.message_erreur[13];
			} // DE : if (is_email(champs_id['email'])) {
		} // DE : if (champs_id['email'].value != ''){

		champs_id['email'].className = "champ_simple_moyen_normal champ_par_defaut_normal";
	}

// Vérification de l'ensemble du formulaire :
	function verification_formulaire_inscription() {
		resultat = true;

		// Vérification du nom :
			verification_champ('nom', 17);

		// Vérification du prénom :
			verification_champ('prenom', 18);

		// Vérification du pseudo :
			verification_champ('identifiant');

		// Vérification de l'email :
			verification_champ('email');

		// Vérification du mot de passe :
			verification_champ('mot_de_passe');

		// Vérification de la confirmation du mot de passe :
			verification_champ('confirmation_mot_de_passe');

		// Vérification de la civilité :
			verification_civilite(19);

		if (! resultat) {
			alert(parent.message_erreur[20] + "\n\n" + parent.message_erreur[21]);
		}

		return resultat;
	}


	function verification_champ(nom_du_champ, numero_message_erreur) {
		chaine = champs_id[nom_du_champ].value;
		var message_erreur = '';

		if (nom_du_champ == 'mot_de_passe') {

			if (is_vide(champs_id[nom_du_champ].value)) {
				resultat = false;
				message_erreur = parent.message_erreur[22];
			}else{
				if (! is_passe(champs_id[nom_du_champ].value)){
					resultat = false;
					message_erreur = parent.message_erreur[23] + ' ' + parent.message_erreur[24];
				}
			}

		}else if (nom_du_champ == 'confirmation_mot_de_passe') {

			if (is_vide(champs_id[nom_du_champ].value)) {
				resultat = false;
				message_erreur = parent.message_erreur[25];
			}else{
				if (champs_id[nom_du_champ].value != champs_id['mot_de_passe'].value){
					resultat = false;
					message_erreur = parent.message_erreur[26];
				}
			}

		}else if (nom_du_champ == 'email') {

			if (is_vide(champs_id[nom_du_champ].value)) {
				resultat = false;
				message_erreur = parent.message_erreur[27];
			}else{
				if (! is_email(champs_id[nom_du_champ].value)){
					resultat = false;
					message_erreur = parent.message_erreur[11] + " &quot;<em>" + htmlencode(champs_id['email'].value) + "</em>&quot; " + parent.message_erreur[12] + " " + parent.message_erreur[13];
				}
			}

		}else if (nom_du_champ == 'identifiant') {

			if (is_vide(champs_id[nom_du_champ].value)) {
				resultat = false;
				message_erreur = parent.message_erreur[28];
			}else{
				if (! is_identifiant(champs_id[nom_du_champ].value)){
					resultat = false;
					message_erreur = parent.message_erreur[2] + " &quot;<em>" + htmlencode(champs_id['identifiant'].value) + "</em>&quot; " + parent.message_erreur[3]+ " " + parent.message_erreur[4];
				}
			}

		}else{
			if (is_vide(chaine)) {
				resultat = false;
				message_erreur = parent.message_erreur[numero_message_erreur];
			}
		}

		if (message_erreur != '') {
			boites_erreur_id[nom_du_champ].className = "erreur";
			messages_erreur_id[nom_du_champ].className = "message_erreur";
			messages_erreur_id[nom_du_champ].innerHTML = message_erreur;
		}else{
			boites_erreur_id[nom_du_champ].className = "boite_standard";
			messages_erreur_id[nom_du_champ].className = "message_standard";
			messages_erreur_id[nom_du_champ].innerHTML = "";
		}
	}

	function verification_civilite(numero_message_erreur){
		if (isNaN(champs_id['civilite'].value)) {
			resultat = false;
			boites_erreur_id['civilite'].className = "erreur";
			messages_erreur_id['civilite'].className = "message_erreur";
			messages_erreur_id['civilite'].innerHTML = parent.message_erreur[numero_message_erreur];
		}else{
			boites_erreur_id['civilite'].className = "boite_standard";
			messages_erreur_id['civilite'].className = "message_standard";
			messages_erreur_id['civilite'].innerHTML = "";
		}
	}
