/* ========================================================================================
	::	Variables GLOBALES
======================================================================================== */

	var _G_ERROR_CLASSNAME	 = "_G_ERROR_CLASSNAME";
	var _G_CORRECT_CLASSNAME = "_G_CORRECT_CLASSNAME";
	var _REALISATIONS		 = new Array();
	var _REALISATIONS_ITEM	 = 1;
	var _REALISATION_TIMER;

/* fin Variables GLOBALES========================================================== */


/* ========================================================================================
	::	General scripts
======================================================================================== */

	/*
		oError = {
			// optionals
			"oFunction"		: Callback function,
			"oFunctionArgs"	: Callback function arguments,

			// required
			"oForm"			: Referencing the form object,
			"sError"		: Error message,
			"iError"		: Number of errors,
			"aFocus"		: Array storing the #id of elements which need the focus
		}
	*/
	function formErrorValidation(oError){

		var sError			 = "";							// Error message
		var f				 = oError.oForm;				// Referencing the form object
		var iError			 = oError.iError;				// Number of errors
		var oFunction		 = oError.oFunction;			// Callback function arguments
		var aFocus			 = oError.aFocus;				// Required elements Array
		var oFunctionArgs	 = oError.oFunctionArgs;		// Callback function arguments

		if(iError != 0) {

			// Callback function if exists
			if(oFunction != null) oFunction(oFunctionArgs);

			// Error message
			sError += "--------------------------------------------------------\n";
			sError += "*     "+(iError > 1 ? "Vous avez "+ iError +" erreurs à corriger !" : "Vous avez "+ iError +" erreur à corriger !")+" :     *\n";
			sError += "--------------------------------------------------------\n";
			sError += "                                                    \n";
			sError += oError.sErreur;
			//alert(sError);

			// Build the message
			if($('block_2')){

				// Positionning to the top of the window in order to see the displayed error message
				//new Effect.ScrollTo('top_page', { queue: { position: 'end', scope: 'verifForm' } });

				var oFocus = aFocus[0];

				// Positionning to first element required
				if(oFocus != null){
					new Effect.ScrollTo($(oFocus).previous("label").identify(), { queue: { position: 'end', scope: 'verifForm' } });
					$(oFocus).focus();
				}

				//new Effect.Appear($('block_2').update('<img id="closeBtnBlock2" class="closeImg pointer" src="./images/cancel.png" width="16" height="16" alt="Fermer" title="Fermer" />'+ (iError > 1 ? 'Vous avez '+ iError +' erreurs à corriger !' : 'Vous avez '+ iError +' erreur à corriger !')), { queue: { position: 'end', scope: 'verifForm' } });
				//$('closeBtnBlock2').onclick = function(){ new Effect.Fade(this.up()); };
			}

			return false;
		}else{
			return true;
		}
	}


	/**
	 *
	 * @access public
	 * @return void
	 **/
	function imageSwaper(){
		/*
		var iPic = _REALISATIONS.length;
		var oImg = $('realisation_diapo');
		new Effect.Fade(oImg, { duration: 1.0, from: 1, to: 0, queue: { position: 'end', scope: 'swapperBox' } });
		if(_REALISATIONS_ITEM >= iPic) _REALISATIONS_ITEM = 0;
		oImg.writeAttribute('src',_REALISATIONS[_REALISATIONS_ITEM]).hide();
		//oImg.hide();
		//oImg.src = _REALISATIONS[_REALISATIONS_ITEM];
		//new Effect.Appear(oImg, { queue: { position: 'end', scope: 'swapperBox' } });
		new Effect.Appear(oImg , { queue: { position: 'end', scope: 'swapperBox' } });
		_REALISATIONS_ITEM++;
		*/
	}


	/**
	 *
	 * @access public
	 * @return boolean
	 **/
	function testerMotif(sMotif,sExpression){

		// Création de l'expression régulière
		var rControle = new RegExp(sMotif);

		// Test du motif
		return rControle.test(sExpression);

	}
	// fin Fonction testerMotif()-------------------------------------------------------





/* ========================================================================================
	::	Nomenclature de description de fonction à utiliser à chaque création de fonction
======================================================================================== */

	/* 	- nomFonction() ----------------------------------------------------------
	|	Description :
	|		- Que fais la fonction
	|	Variables Globales Utilisées :
	|		-
	|	Aguments OBLIGATOIRES
	|		- argument n (type)	 : name		=>	description
	|	Aguments FACULTATIFS
	|		- argument n (type)	 : name		=>	description
	|	Fonctions appellées :
	|		- nomFonctionAppellees
	|	Pages appellantes :
	|		- chemin de la page
	|	Return :
	|		- valeurs retournée
	|	Infos :
	|		- informatiosn complémentaires
	------------------------------------------------------------------------------------ */

	// fin Fonction nomFonction(arguments)-----------------------------------------------






	/* 	- VARIABLES_nnn -------------------------------------------------------------------
	|	VARIABLES UTILISEES PAR LES FONCTIONS
	|		:: nomFonction()
	------------------------------------------------------------------------------------ */


/* fin Nomenclature de description de fonction========================================================== */











/* ========================================================================================
	::	Fonctionnalités AJAX
======================================================================================== */


/* fin Fonctionnalités AJAX========================================================== */




/* ========================================================================================
	::	Vérification de formulaires en mode AJOUT/MODIFICATION
======================================================================================== */


	/* 	- verifFormContact() ----------------------------------------------------------
	|	Description :
	|		 -	Vérification du formulaire de Contact
	|	Pages appellantes :
	|		 - inc/pages.inc.php
	|	Return :
	|		 - true		 : si tous les champs obligatoires sont complétés
	|		 - false	 : si au moins un des champs obligatoires n'est pas complété
	------------------------------------------------------------------------------------ */
	function verifFormContact(oForm){

		var sErreur		 = "";							// construction du message d'erreur par concaténation successives
		var iError		 = 0;							// comptabilisation des erreurs
		var aFocus		 = new Array();					// tableau de mémorisation du focus pour se repositionner sur le premier éléments manquant
		var f		   	 = oForm;						// référence au formulaire à analyser

		f.con_nom.removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
		if(f.con_nom.value == "") {
			sErreur = sErreur + " - Nom requis !\n";
			aFocus[iError] = "con_nom";
			iError++;
			f.con_nom.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Nom requis !\n");
		}

		f.con_prenom.removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
		if(f.con_prenom.value == "") {
			sErreur = sErreur + " - Prénom requis !\n";
			aFocus[iError] = "con_prenom";
			iError++;
			f.con_prenom.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Prénom requis !\n");
		}

		f.con_email.removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
		if(f.con_email.value == "") {
			sErreur = sErreur + " - Adresse email requise !\n";
			aFocus[iError] = "con_email";
			iError++;
			f.con_email.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Adresse email requise !\n");
		}else{
			// on teste le format "aa@aa.aa"
			if(!testerMotif("^[a-z0-9\-_\.]+@[a-z0-9\-]+[\.]{1}[a-z]{2,5}$",f.con_email.value)){
				sErreur = sErreur + " - Le format de l'adresse email est incorrect !\n";
				aFocus[iError] = "con_email";
				iError++;
				f.con_email.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Le format de l'adresse email est incorrect !\n");
			}
		}

		f.con_tel.removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
		if(f.con_tel.value != "") {
			// on teste le format "aa@aa.aa"
			if(!testerMotif("^[0-9]{10}$",f.con_tel.value)){
				sErreur = sErreur + " - Le format du n° de téléphone est incorrect (10 chiffres requis)!\n";
				aFocus[iError] = "con_tel";
				iError++;
				f.con_tel.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Le format du n° de téléphone est incorrect (10 chiffres requis)!\n");
			}
		}

		/*
		f.con_tel.removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
		if(f.con_tel.value == "") {
			sErreur = sErreur + " - N° de téléphone requis !\n";
			aFocus[iError] = "con_tel";
			iError++;
			f.con_tel.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - N° de téléphone requis !\n");
		}else{
			// on teste le format "aa@aa.aa"
			if(!testerMotif("^[0-9]{10}$",f.con_tel.value)){
				sErreur = sErreur + " - Le format du n° de téléphone est incorrect (10 chiffres requis)!\n";
				aFocus[iError] = "con_tel";
				iError++;
				f.con_tel.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Le format du n° de téléphone est incorrect (10 chiffres requis)!\n");
			}
		}

		f.con_adresse.removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
		if(f.con_adresse.value == "") {
			sErreur = sErreur + " - Adresse requise !\n";
			aFocus[iError] = "con_adresse";
			iError++;
			f.con_adresse.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Adresse requise !\n");
		}
		*/

		f.con_message.removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
		if(f.con_message.value == "") {
			sErreur = sErreur + " - Message requis !\n";
			aFocus[iError] = "con_message";
			iError++;
			f.con_message.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Message requis !\n");
		}

		return formErrorValidation({"oForm":f, "sErreur":sErreur, "iError":iError, "aFocus":aFocus });

	}
	// fin Vérification du formulaire de Contact------------------------------------------





	/**
	 *
	 * @access public
	 * @return void
	 **/
	function checkField(oField){

		var sErreur		 = "";							// construction du message d'erreur par concaténation successives
		var iError		 = 0;							// comptabilisation des erreurs
		var aFocus		 = new Array();					// tableau de mémorisation du focus pour se repositionner sur le premier éléments requis
		var sField	   	 = oField.identify();			// identification du champ #id
		var f		   	 = oField.up("form");			// référence au formulaire à analyser
		var bMailDuplicated = false;					// le mail n'est pas encore dupliqué

		switch(sField){
			/* MAIL */
			case "con_nom":
				$("con_nom").removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
				if(f.con_nom.value == "") {
					sErreur = sErreur + " - Nom requis !\n";
					aFocus[iError] = "con_nom";
					iError++;
					$("con_nom").addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Nom requis !\n");
				}
			break;
			case "con_prenom":
				$("con_prenom").removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
				if(f.con_prenom.value == "") {
					sErreur = sErreur + " - Prénom requis !\n";
					aFocus[iError] = "con_prenom";
					iError++;
					$("con_prenom").addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Prénom requis !\n");
				}
			break;
			case "con_email":
				$("con_email").removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
				if(f.con_email.value != "") {
					// on teste le format "aa@aa.aa"
					if(!testerMotif("^[a-z0-9\-_\.]+@[a-z0-9\-]+[\.]{1}[a-z]{2,5}$",f.con_email.value)){
						sErreur = sErreur + " - Le format de l'adresse email est incorrect !\n";
						aFocus[iError] = "con_email";
						iError++;
						$("con_email").addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Le format de l'adresse email est incorrect !\n");
					}
				}else{
					sErreur = sErreur + " - Adresse email requise !\n";
					aFocus[iError] = "con_email";
					iError++;
					$("con_email").addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Adresse email requise !\n");
				}
			break;
			case "con_tel":
				/*
				$("con_tel").removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
				if(f.con_tel.value == "") {
					sErreur = sErreur + " - N° de téléphone requis !\n";
					aFocus[iError] = "con_tel";
					iError++;
					$("con_tel").addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - N° de téléphone requis !\n");
				}else{
					// on teste le format "0123456789"
					if(!testerMotif("^[0-9]{10}$",f.con_tel.value)){
						sErreur = sErreur + " - Le format du n° de téléphone est incorrect (10 chiffres requis)!\n";
						aFocus[iError] = "con_tel";
						iError++;
						f.con_tel.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Le format du n° de téléphone est incorrect (10 chiffres requis)!\n");
					}
				}
				*/
				$("con_tel").removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
				if(f.con_tel.value != "") {
					// on teste le format "0123456789"
					if(!testerMotif("^[0-9]{10}$",f.con_tel.value)){
						sErreur = sErreur + " - Le format du n° de téléphone est incorrect (10 chiffres requis)!\n";
						aFocus[iError] = "con_tel";
						iError++;
						f.con_tel.addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Le format du n° de téléphone est incorrect (10 chiffres requis)!\n");
					}
				}
			break;
			/*
			case "con_adresse":
				$("con_adresse").removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
				if(f.con_adresse.value == "") {
					sErreur = sErreur + " - Adresse requise !\n";
					aFocus[iError] = "con_adresse";
					iError++;
					$("con_adresse").addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Adresse requise !\n");
				}
			break;
			*/
			case "con_message":
				$("con_message").removeClassName(_G_ERROR_CLASSNAME).next("span.help").update("").hide();
				if(f.con_message.value == "") {
					sErreur = sErreur + " - Message requis !\n";
					aFocus[iError] = "con_message";
					iError++;
					$("con_message").addClassName(_G_ERROR_CLASSNAME).next("span.help").show().update(" - Message requis !\n");
				}
			break;
		}

		return {"oForm":f, "sErreur":sErreur, "iError":iError, "aFocus":aFocus };

	}


/* ========================================================================================
	::	Global vars
======================================================================================== */

	/* 	- VARS_001 -------------------------------------------------------------------
	|	VARS USED IN THE FUNCTIONS
	|		:: functionName()
	------------------------------------------------------------------------------------ */

/* end Global vars=============================================================================== */
