// JavaScript WebTool


/* ========================================================================================
	::	Variables globales
======================================================================================== */

	/* 	- VARIABLES_001 -------------------------------------------------------------------
	|	VARIABLES UTILISEES PAR LES FONCTIONS
	|		:: nomFonction()
	------------------------------------------------------------------------------------ */
	var menuActif	= "";
	var sTexte		= "";
	var nav			= "";


	// Détection du navigateur
	switch(window.navigator.appName){
		case "Netscape":
			switch(window.navigator.vendor){
				case "Firefox": nav = "Firefox" ; break; // FireFox
				case "Netscape": // Netscape
				default: nav = "Netscape"; break;
			}
		break;
		case "Microsoft Internet Explorer": // Internet Explorer
		default: nav = "IE"; break;
	}


	var ns4 = (document.layers)?true:false;
	var ie4 = (document.all)?true:false;
	var dom = (document.getElementById)?true:false; // NS 7.02, Mozilla FireFox, Mozilla, IE6

/* fin Variables globales=============================================================================== */










/* ========================================================================================
	::	Scripts Généraux
======================================================================================== */



	/* 	- testerMotif() ----------------------------------------------------------
	|	Description :
	|		-	Fonction utilisée pour vérifier le motif d'un masque sur une expression à tester
	|			dans le module d'inscription des sociétés.
	|	Aguments OBLIGATOIRES
	|		- argument 0 (string)	 : sMotif		=>	motif à tester
	|		- argument 0 (string)	 : sExpression	=>	expression sur laquelle tester le motif
	|	Pages appellantes :
	|		- inc/clients_partenaires.php
	|	Return :
	|		- true : si l'expression testée respecte le motif
	|		- false: si l'expression testée ne respecte pas le motif
	------------------------------------------------------------------------------------ */
	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()-------------------------------------------------------






	/* 	- getObjet() -----------------------------------------------------------------------
	|	Description :
	|		-	Atteindre un objet en fonction du navigateur utilisé
	|	Variables Globales Utilisées :
	|		- dom (bool)
	|	Aguments OBLIGATOIRES
	|		- argument 0 (string)	 : id		=>	id de l'objet à atteindre
	|	Return :
	|		- une référence à l'objet dont l'id est passé en paramètre
	|	Infos :
	|		- plusieurs fonction utilisent cette fonction dans leur scripts
	------------------------------------------------------------------------------------ */
	function getObjet(id){

		if(id){
			if (dom) obj = window.document.getElementById(id);
			else if (ie4) obj = window.document.all[id];
			else if (ns4) obj = window.document.layers[id];
		}else{
			obj = false;
		}
		return obj;

	}
	// fin Fonction getObjet(id)-----------------------------------------------------------





	/* 	- getHTTPObject() ----------------------------------------------------------
	|	Description :
	|		-	Instanciation d'un objet XmlHttpRequest
	|			quelque soit le navigateur
	|	Return :
	|		- référence à un objet XmlHttpRequest
	------------------------------------------------------------------------------------ */
	function getHTTPObject(){

		var xmlhttp = false;

		// Compilation conditionnelle d'IE
		/*@cc_on
		@if (@_jscript_version >= 5)
			try{
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			}catch (e){
				try{
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				}catch (E){
					xmlhttp = false;
				}
			}
		@else
			xmlhttp = false;
		@end @*/

		// on essaie de créer l'objet si ce n'est pas déjà fait
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined'){
			try{
				xmlhttp = new XMLHttpRequest();
			}catch (e){
				xmlhttp = false;
			}
		}

		if (xmlhttp){
			// on définit ce qui doit se passer quand la page répondra
			xmlhttp.onreadystatechange = function(){
				// 4 : état "complete"
				if (xmlhttp.readyState == 4){
					// 200 : code HTTP pour OK
					if (xmlhttp.status == 200){
						/*
						Traitement de la réponse.
						Ici on affiche la réponse dans une boîte de dialogue.
						*/
						alert(xmlhttp.responseText);
					}
				}
			}
		}

		return xmlhttp;

	}
	// fin Fonction getHTTPObject()-----------------------------------------------






	function deconnexionClient(){

		var oForm = getObjet("authentification");
		oForm.submit();

	}





	/* 	- verifFormAuthentification() ----------------------------------------------------------
	|	Description :
	|		 -	Vérification du formulaire de Connexion / Déconnexion client
	|	Pages appellantes :
	|		 - index.php
	|	Return :
	|		 - true		 : si tous les champs obligatoires sont complétées
	|		 - false	 : si au moins un des champs obligatoires n'est pas complété
	------------------------------------------------------------------------------------ */
	function verifFormAuthentification(oForm)
	{
		var msg_erreur	 = "";							// construction du message d'erreur par concaténation successives
		var en_tete		 = "";							// en-tête du message d'erreur
		var nb_erreur	 = 0;							// comptabilisation des erreurs
		var tab_focus	 = 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
		var sChoix		 = f.choix.value;

		if(sChoix == "connexion"){

			if(f.login.value == "") {
				msg_erreur = msg_erreur + " - Veuillez compléter le Login !\n";
				tab_focus[nb_erreur] = "login";
				nb_erreur = nb_erreur + 1;
			}


			if(f.password.value == "") {
				msg_erreur = msg_erreur + " - Veuillez compléter le Mot de Passe !\n";
				tab_focus[nb_erreur] = "password";
				nb_erreur = nb_erreur + 1;
			}

		}


		if(nb_erreur != 0) {
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "*     Vous avez "+nb_erreur+" erreur"+(nb_erreur > 1 ? 's':'')+" à corriger :     *\n" + en_tete;
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "                                                    \n" + en_tete;
			msg_erreur = en_tete + msg_erreur;
			alert(msg_erreur);
			eval("f."+tab_focus[0]).focus();
			return false;
		}else{
			return true;
		}
	}
	// fin Vérification du formulaire des Adresse-------------------------------------------






	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setAdvancedSearch(oForm,iMenu,sOrderBy,sSearchType,iItemPerPage,iPageActive){

		var oAdvancedForm = getObjet("advandedSearch");

		var iOption = oAdvancedForm.option.length;
		for(i=0;i<iOption;i++){
			if(oAdvancedForm.option[i].checked){
				sOption = oAdvancedForm.option[i].value;
				break;
			}
		}

		var iChoix = oAdvancedForm.choix.length;
		for(i=0;i<iChoix;i++){
			if(oAdvancedForm.choix[i].checked){
				sChoix = oAdvancedForm.choix[i].value;
				break;
			}
		}

		iIdfMarque	 = oAdvancedForm.idfMarque.value;
		sMotcle		 = oAdvancedForm.motcle.value;

		setSearchNavigation(oForm,iMenu,sChoix,sOrderBy,sSearchType,"",iIdfMarque,sOption,sMotcle,iItemPerPage,iPageActive);

	}



	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setSearchNavigation(oForm,iMenu,sChoix,sOrderBy,sSearchType,sLibelleMarque,iIdfMarque,sOption,sMotcle,iItemPerPage,iPageActive){

		var oInputMenu			 = oForm.menu;
		var oInputChoix			 = oForm.choix;
		var oInputOrdre			 = oForm.ordre;
		var oInputSearchType	 = oForm.searchType;
		var oInputLibelleMarque	 = oForm.libelleMarque;
		var oInputIdfMarque		 = oForm.idfMarque;
		var oInputOption		 = oForm.option;
		var oInputMotcle		 = oForm.motcle;
		var oInputItem			 = oForm.itemPerPage;
		var oInputPage			 = oForm.pageActive;

		if(oInputMenu && oInputChoix
		   && oInputOrdre && oInputSearchType
		   && oInputLibelleMarque && oInputIdfMarque
		   && oInputOption && oInputMotcle
		   && oInputItem && oInputPage){

			oInputMenu.value			 = iMenu;
			oInputChoix.value			 = sChoix;
			oInputOrdre.value			 = sOrderBy;
			oInputSearchType.value		 = sSearchType;
			oInputLibelleMarque.value	 = sLibelleMarque;
			oInputIdfMarque.value		 = iIdfMarque;
			oInputOption.value			 = sOption;
			oInputMotcle.value			 = sMotcle;
			oInputItem.value			 = iItemPerPage;
			oInputPage.value			 = iPageActive;
			oForm.submit();

		}

	}


	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setCommandNavigation(oForm,iMenu,sChoix,sOrderBy,iItemPerPage,iPageActive,sSensTri){

		var oInputMenu	 = oForm.menu;
		var oInputChoix	 = oForm.choix;
		var oInputOrdre	 = oForm.ordre;
		var oInputItem	 = oForm.itemPerPage;
		var oInputPage	 = oForm.pageActive;
		var oInputSens	 = oForm.sens;

		if(oInputMenu && oInputChoix && oInputOrdre && oInputItem && oInputPage && oInputSens){
			oInputMenu.value	 = iMenu;
			oInputChoix.value	 = sChoix;
			oInputOrdre.value	 = sOrderBy;
			oInputItem.value	 = iItemPerPage;
			oInputPage.value	 = iPageActive;
			oInputSens.value	 = sSensTri;
			oForm.submit();
		}

	}



	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setIdfProduit(oForm,iIdfProduit,iMenu){

		var oInputMenu	 = oForm.menu;
		var oInputIdf	 = oForm.idf_produit;
		if(oInputMenu && oInputIdf){
			oInputMenu.value = iMenu;
			oInputIdf.value	 = iIdfProduit;
			oForm.submit();
		}

	}





	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setRealMenu(oForm,iMenu){

		var oInputRealMenu	 = oForm.realMenu;
		if(oInputRealMenu){
			oInputRealMenu.value = iMenu;
		}

	}





	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setPageActive(oForm,iPageActive,iMenu){

		var oInputMenu		 = oForm.menu;
		var oInputPageActive = oForm.pageActive;
		if(oInputMenu && oInputPageActive){
			oInputMenu.value		 = iMenu;
			oInputPageActive.value	 = iPageActive;
			oForm.submit();
		}

	}


	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setPageActiveForItem(oForm,iPageActive){

		var oInputPageActive = oForm.pageActive;
		if(oInputPageActive){
			oInputPageActive.value	 = iPageActive;
		}

	}


	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setSensTri(oForm,sSensTri,iMenu){

		var oInputMenu	 = oForm.menu;
		var oInputSens = oForm.sens;
		if(oInputMenu && oInputSens){
			oInputMenu.value = iMenu;
			oInputSens.value = sSensTri;
			oForm.submit();
		}

	}

	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setIdfMarque(oForm,iIdf,iMenu){

		var oInputMenu	 = oForm.menu;
		var oInputMarque = oForm.idfMarque;
		if(oInputMenu && oInputMarque){
			oInputMenu.value	 = iMenu;
			oInputMarque.value = iIdf;
			oForm.submit();
		}

	}

	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setFiltre(oForm,sFiltre,iMenu){

		var oInputMenu	 = oForm.menu;
		var oInputFiltre = oForm.filtre;
		if(oInputMenu && oInputFiltre){
			oInputMenu.value	 = iMenu;
			oInputFiltre.value	 = sFiltre;
			//oForm.submit();
		}

	}


	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setItemPerPage(oForm,iNb,iMenu){

		var oInputMenu	 = oForm.menu;
		var oInputItem = oForm.itemPerPage;
		if(oInputMenu && oInputItem){
			oInputMenu.value = iMenu;
			oInputItem.value = iNb;
			oForm.submit();
		}

	}

	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setTriPar(oForm,sCritere,iMenu){

		var oInputMenu	 = oForm.menu;
		var oInputTri	 = oForm.ordre;
		if(oInputMenu && oInputTri){
			oInputMenu.value = iMenu;
			oInputTri.value	 = sCritere;
			oForm.submit();
		}

	}


	/**
	 *
	 * @access public
	 * @return void
	 **/
	function setChoix(oForm,sChoix){

		var oInputChoix	 = oForm.choix;
		if(oInputChoix){
			oInputChoix.value	 = sChoix;
		}

	}



	function resetFormPassword(oForm){

		var f = oForm;

		f.mail.value				 = "";

	}



	function resetFormClient(oForm){

		var f = oForm;

		f.f_civilite.options.selectedIndex = 0;
		f.f_nom.value				 = "";
		f.f_prenom.value			 = "";
		f.raison_sociale.value		 = "";
		f.fonction.value			 = "";
		f.login.value				 = "";
		f.password.value			 = "";
		f.verif_password.value		 = "";
		f.telephone_indicatif.value	 = "";
		f.telephone_numero.value	 = "";
		f.portable_indicatif.value	 = "";
		f.portable_numero.value		 = "";
		f.fax_indicatif.value		 = "";
		f.fax_numero.value			 = "";
		f.mail.value				 = "";
		f.web.value					 = "";
		f.f_libelle.value			 = "";
		f.f_ligne_1.value			 = "";
		f.f_ligne_2.value			 = "";
		f.f_ligne_3.value			 = "";
		f.f_cp.value				 = "";
		f.f_ville.value				 = "";
		f.f_pays.value				 = "";
		f.memeAdresse.checked		 = false;
		// Réaffichage des champs désactivés
		checkAdresse(f.memeAdresse);
		f.l_libelle.value			 = "";
		f.l_civilite.options.selectedIndex = 0;
		f.l_nom.value				 = "";
		f.l_prenom.value			 = "";
		f.l_ligne_1.value			 = "";
		f.l_ligne_2.value			 = "";
		f.l_ligne_3.value			 = "";
		f.l_cp.value				 = "";
		f.l_ville.value				 = "";
		f.l_pays.value				 = "";
		// on coche l'adresse de facturation en tant qu'adresse principale
		f.adressePrincipale[0].checked = true;

	}


	function checkAdresse(oCb){

		var f		 = oCb.form;
		var bChecked = oCb.checked;

		f.l_libelle.disabled	 = bChecked;
		f.l_civilite.disabled	 = bChecked;
		f.l_nom.disabled		 = bChecked;
		f.l_prenom.disabled		 = bChecked;
		f.l_ligne_1.disabled	 = bChecked;
		f.l_ligne_2.disabled	 = bChecked;
		f.l_ligne_3.disabled	 = bChecked;
		f.l_cp.disabled			 = bChecked;
		f.l_ville.disabled		 = bChecked;
		f.l_pays.disabled		 = bChecked;

		if(bChecked){
			f.l_libelle.value	 = f.f_libelle.value;
			f.l_civilite.options.selectedIndex = f.f_civilite.options.selectedIndex+1;
			f.l_nom.value		 = f.f_nom.value;
			f.l_prenom.value	 = f.f_prenom.value;
			f.l_ligne_1.value	 = f.f_ligne_1.value;
			f.l_ligne_2.value	 = f.f_ligne_2.value;
			f.l_ligne_3.value	 = f.f_ligne_3.value;
			f.l_cp.value		 = f.f_cp.value;
			f.l_ville.value		 = f.f_ville.value;
			f.l_pays.value		 = f.f_pays.value;
		}

	}

	function updateAdresse(oField){

		var f		 = oField.form;

		if(f.memeAdresse.checked){

			var sField_1 = oField.name;
			var sField_2 = "l_"+sField_1.substring(2,sField_1.length);
			var sValue	 = oField.value;

			eval("f."+sField_2).value = sValue;

		}

	}



	/* 	- verifFormPassword() ----------------------------------------------------------
	|	Description :
	|		 -	Pour les utilisateurs ayant perdu leur mot de passe, on leur renvoi
	|			après qu'ils aient indiquer leur adresse mail
	|	Pages appellantes :
	|		 - index.php
	|	Return :
	|		 - true		 : si tous les champs obligatoires sont complétées
	|		 - false	 : si au moins un des champs obligatoires n'est pas complété
	------------------------------------------------------------------------------------ */
	function verifFormPassword(oForm){

		var msg_erreur	 = "";							// construction du message d'erreur par concaténation successives
		var en_tete		 = "";							// en-tête du message d'erreur
		var nb_erreur	 = 0;							// comptabilisation des erreurs
		var tab_focus	 = 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
		var sChoix		 = f.choix.value;

		if(f.mail.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre E-mail!\n";
			tab_focus[nb_erreur] = "mail";
			nb_erreur = nb_erreur + 1;
		}

		if(nb_erreur != 0) {
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "*     Vous avez "+nb_erreur+" erreur"+(nb_erreur > 1 ? 's':'')+" à corriger :     *\n" + en_tete;
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "                                                    \n" + en_tete;
			msg_erreur = en_tete + msg_erreur;
			alert(msg_erreur);
			eval("f."+tab_focus[0]).focus();
			return false;
		}else{
			return true;
		}

	}



	/* 	- verifFormClient() ----------------------------------------------------------
	|	Description :
	|		 -	Vérification du formulaire des Client
	|	Pages appellantes :
	|		 - index.php
	|	Return :
	|		 - true		 : si tous les champs obligatoires sont complétées
	|		 - false	 : si au moins un des champs obligatoires n'est pas complété
	------------------------------------------------------------------------------------ */
	function verifFormClient(oForm)
	{

		var msg_erreur	 = "";							// construction du message d'erreur par concaténation successives
		var en_tete		 = "";							// en-tête du message d'erreur
		var nb_erreur	 = 0;							// comptabilisation des erreurs
		var tab_focus	 = 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
		var sChoix		 = f.choix.value;


		//
		// Informations concernant le client
		// ------------------------
		if(f.f_civilite.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ Civilité !\n";
			tab_focus[nb_erreur] = "f_civilite";
			nb_erreur = nb_erreur + 1;
		}



		if(f.f_nom.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ Nom !\n";
			tab_focus[nb_erreur] = "f_nom";
			nb_erreur = nb_erreur + 1;
		}


		if(f.f_prenom.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ Prénom!\n";
			tab_focus[nb_erreur] = "f_prenom";
			nb_erreur = nb_erreur + 1;
		}


		if(f.login.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ Login!\n";
			tab_focus[nb_erreur] = "login";
			nb_erreur = nb_erreur + 1;
		}else{
			// Vérification que le login choisi n'existe pas déjà !
			var sLogin			= f.login.value;
			var sCurrentLogin	= f.currentLogin.value;

			// on prépare les champs en les nettoyant !
			var xhr_object		 = getHTTPObject();
			var sResponse		 = "";
			var bMode			 = false; // mode synchrone
			var sMethod			 = "POST";
			var sAction			 = "ajax/ajax_checkLogin.php";
			var sData 			 = "login="+escape(sLogin);
			sData 				 += (sCurrentLogin != "" ? "&currentLogin="+escape(sCurrentLogin) : "");

			// Test d'existence de l'objet XmlHttpRequest
			if (!xhr_object) return;

			// Ouverture de la connexion au fichier avec la méthode choisie
			xhr_object.open(sMethod, sAction, bMode);

			// Quand les données sont traitées
			// on affiche la réponse
			xhr_object.onreadystatechange = function () {
				if(xhr_object.readyState == 4) {
					sResponse = xhr_object.responseText;
					// Si le login existe déjà on indique l'erreur
					if(sResponse == "true") {
						msg_erreur = msg_erreur + " - Le Login que vous avez choisi est déjà pris, veuillez en choisir un nouveau !\n";
						tab_focus[nb_erreur] = "login";
						nb_erreur = nb_erreur + 1;
						f.login.value = "";
					}
				}
			};

			// Ajout des en-têtes nécessaires à la requête en POST
			if(sMethod == "POST") xhr_object.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

			// Envoi des données
			xhr_object.send(sData);
		}


		// Création d'un nouveau client
		if(sChoix == "add"){
			if(f.password.value == "") {
				msg_erreur = msg_erreur + " - Veuillez compléter le champ Mot de Passe!\n";
				tab_focus[nb_erreur] = "password";
				nb_erreur = nb_erreur + 1;
			}else{
				if(f.verif_password.value == "" || (f.password.value != f.verif_password.value)) {
					msg_erreur = msg_erreur + " - Veuillez vérifier votre Mot de Passe!\n";
					tab_focus[nb_erreur] = "verif_password";
					nb_erreur = nb_erreur + 1;
					// on vide le champ de vérification pour le remplir de nouveau
					f.verif_password.value = "";
				}
			}
		// Modification d'un client existant
		}else{
			if(f.password.value != "" && (f.password.value != f.verif_password.value)) {
				msg_erreur = msg_erreur + " - Veuillez vérifier votre Mot de Passe!\n";
				tab_focus[nb_erreur] = "verif_password";
				nb_erreur = nb_erreur + 1;
				// on vide le champ de vérification pour le remplir de nouveau
				f.verif_password.value = "";
			}
		}


		if(f.telephone_numero.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le numéro de téléphone!\n";
			tab_focus[nb_erreur] = "telephone_numero";
			nb_erreur = nb_erreur + 1;
		}


		if(f.portable_indicatif.value != "" && f.portable_numero.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le numéro de portable!\n";
			tab_focus[nb_erreur] = "portable_numero";
			nb_erreur = nb_erreur + 1;
		}


		if(f.fax_indicatif.value != "" && f.fax_numero.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le numéro de fax!\n";
			tab_focus[nb_erreur] = "fax_numero";
			nb_erreur = nb_erreur + 1;
		}


		if(f.mail.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ E-mail!\n";
			tab_focus[nb_erreur] = "mail";
			nb_erreur = nb_erreur + 1;
		}


		// Création d'un nouveau client
		if(sChoix == "add"){

			//
			// Informations concernant l'adresse de facturation du client
			// ------------------------
			if(f.f_libelle.value == "") {
				msg_erreur = msg_erreur + " - Veuillez compléter le champ Libellé pour l'Adresse de Facturation!\n";
				tab_focus[nb_erreur] = "f_libelle";
				nb_erreur = nb_erreur + 1;
			}


			if(f.f_ligne_1.value == "") {
				msg_erreur = msg_erreur + " - Veuillez compléter le champ Adresse de Facturation!\n";
				tab_focus[nb_erreur] = "f_ligne_1";
				nb_erreur = nb_erreur + 1;
			}


			if(f.f_cp.value == "") {
				msg_erreur = msg_erreur + " - Veuillez compléter le champ Code Postal de Facturation!\n";
				tab_focus[nb_erreur] = "f_cp";
				nb_erreur = nb_erreur + 1;
			}


			if(f.f_ville.value == "") {
				msg_erreur = msg_erreur + " - Veuillez compléter le champ Ville de Facturation!\n";
				tab_focus[nb_erreur] = "f_ville";
				nb_erreur = nb_erreur + 1;
			}


			if(f.f_pays.value == "") {
				msg_erreur = msg_erreur + " - Veuillez compléter le champ Pays de Facturation!\n";
				tab_focus[nb_erreur] = "f_pays";
				nb_erreur = nb_erreur + 1;
			}


			//
			// Informations concernant l'adresse de facturation du client
			// Si l'adresse de Livraison est différente de l'adresse de Facturation
			// on teste les champs requis
			// ------------------------
			if(!f.memeAdresse.checked) {

				if(f.l_libelle.value == "") {
					msg_erreur = msg_erreur + " - Veuillez compléter le champ Libellé pour l'Adresse de Livraison!\n";
					tab_focus[nb_erreur] = "l_libelle";
					nb_erreur = nb_erreur + 1;
				}

				var bCiviliteEmpty = (f.l_civilite.value == "");
				var bNomEmpty = (f.l_nom.value == "");
				var bPrenomEmpty = (f.l_prenom.value == "");

				if(!bCiviliteEmpty) {
					if(bNomEmpty) {
						msg_erreur = msg_erreur + " - Veuillez compléter le champ Nom pour l'Adresse de Livraison!\n";
						tab_focus[nb_erreur] = "l_nom";
						nb_erreur = nb_erreur + 1;
					}
					if(bPrenomEmpty) {
						msg_erreur = msg_erreur + " - Veuillez compléter le champ Prénom pour l'Adresse de Livraison!\n";
						tab_focus[nb_erreur] = "l_prenom";
						nb_erreur = nb_erreur + 1;
					}
				}else{
					if(!bNomEmpty) {
						if(bCiviliteEmpty) {
							msg_erreur = msg_erreur + " - Veuillez compléter le champ Civilité pour l'Adresse de Livraison!\n";
							tab_focus[nb_erreur] = "l_civilite";
							nb_erreur = nb_erreur + 1;
						}
						if(bPrenomEmpty) {
							msg_erreur = msg_erreur + " - Veuillez compléter le champ Prénom pour l'Adresse de Livraison!\n";
							tab_focus[nb_erreur] = "l_prenom";
							nb_erreur = nb_erreur + 1;
						}
					}else{
						if(!bPrenomEmpty) {
							if(bCiviliteEmpty) {
								msg_erreur = msg_erreur + " - Veuillez compléter le champ Civilité pour l'Adresse de Livraison!\n";
								tab_focus[nb_erreur] = "l_civilite";
								nb_erreur = nb_erreur + 1;
							}
							if(bNomEmpty) {
								msg_erreur = msg_erreur + " - Veuillez compléter le champ Nom pour l'Adresse de Livraison!\n";
								tab_focus[nb_erreur] = "l_nom";
								nb_erreur = nb_erreur + 1;
							}
						}
					}
				}


				if(f.l_ligne_1.value == "") {
					msg_erreur = msg_erreur + " - Veuillez compléter le champ Adresse de Livraison!\n";
					tab_focus[nb_erreur] = "l_ligne_1";
					nb_erreur = nb_erreur + 1;
				}


				if(f.l_cp.value == "") {
					msg_erreur = msg_erreur + " - Veuillez compléter le champ Code Postal de Livraison!\n";
					tab_focus[nb_erreur] = "l_cp";
					nb_erreur = nb_erreur + 1;
				}


				if(f.l_ville.value == "") {
					msg_erreur = msg_erreur + " - Veuillez compléter le champ Ville de Livraison!\n";
					tab_focus[nb_erreur] = "l_ville";
					nb_erreur = nb_erreur + 1;
				}


				if(f.l_pays.value == "") {
					msg_erreur = msg_erreur + " - Veuillez compléter le champ Pays de Livraison!\n";
					tab_focus[nb_erreur] = "l_pays";
					nb_erreur = nb_erreur + 1;
				}

			}

			var aRadio = f.adressePrincipale;
			var bRadioChecked = false;
			for(i=0;i<aRadio.length;i++){
				// on coche l'adresse de facturation en tant qu'adresse principale
				if(f.adressePrincipale[i].checked){
					bRadioChecked = true;
					break;
				}
			}
			if(!bRadioChecked) {
				msg_erreur = msg_erreur + " - Veuillez choisir une adresse principale !\n";
				tab_focus[nb_erreur] = "adressePrincipale[0]";
				nb_erreur = nb_erreur + 1;
			}

		}


		if(nb_erreur != 0) {
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "*     Vous avez "+nb_erreur+" erreur"+(nb_erreur > 1 ? 's':'')+" à corriger :     *\n" + en_tete;
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "                                                    \n" + en_tete;
			msg_erreur = en_tete + msg_erreur;
			alert(msg_erreur);
			eval("f."+tab_focus[0]).focus();
			return false;
		}else{
			return true;
		}
	}
	// fin Vérification du formulaire des Client-------------------------------------------




	/* 	- verifFormAdresse() ----------------------------------------------------------
	|	Description :
	|		 -	Vérification du formulaire des Adresse
	|	Pages appellantes :
	|		 - index.php
	|	Return :
	|		 - true		 : si tous les champs obligatoires sont complétées
	|		 - false	 : si au moins un des champs obligatoires n'est pas complété
	------------------------------------------------------------------------------------ */
	function verifFormAdresse(oForm)
	{
		var msg_erreur	 = "";							// construction du message d'erreur par concaténation successives
		var en_tete		 = "";							// en-tête du message d'erreur
		var nb_erreur	 = 0;							// comptabilisation des erreurs
		var tab_focus	 = 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


		if(f.NAC_LIBELLE.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ Libellé!\n";
			tab_focus[nb_erreur] = "NAC_LIBELLE";
			nb_erreur = nb_erreur + 1;
		}


		if(f.NAC_IDF_CLIENT.value == "" || f.NAC_IDF_CLIENT.value == "NULL") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ Client!\n";
			tab_focus[nb_erreur] = "NAC_IDF_CLIENT";
			nb_erreur = nb_erreur + 1;
		}


		if(f.NAC_TYPE_ADRESSE.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ Type d'adresse!\n";
			tab_focus[nb_erreur] = "NAC_TYPE_ADRESSE";
			nb_erreur = nb_erreur + 1;
		}


		if(f.NAC_LIGNE_1.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ Adresse!\n";
			tab_focus[nb_erreur] = "NAC_LIGNE_1";
			nb_erreur = nb_erreur + 1;
		}


		if(f.NAC_CP.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ CP!\n";
			tab_focus[nb_erreur] = "NAC_CP";
			nb_erreur = nb_erreur + 1;
		}


		if(f.NAC_VILLE.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter le champ Ville!\n";
			tab_focus[nb_erreur] = "NAC_VILLE";
			nb_erreur = nb_erreur + 1;
		}


		if(nb_erreur != 0) {
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "*     Vous avez "+nb_erreur+" erreur"+(nb_erreur > 1 ? 's':'')+" à corriger :     *\n" + en_tete;
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "                                                    \n" + en_tete;
			msg_erreur = en_tete + msg_erreur;
			alert(msg_erreur);
			eval("f."+tab_focus[0]).focus();
			return false;
		}else{
			return true;
		}
	}
	// fin Vérification du formulaire des Adresse-------------------------------------------



	/**
	 *
	 * @access public
	 * @return void
	 **/
	function verifFormContact(oForm){

		var msg_erreur	 = "";							// construction du message d'erreur par concaténation successives
		var en_tete		 = "";							// en-tête du message d'erreur
		var nb_erreur	 = 0;							// comptabilisation des erreurs
		var tab_focus	 = 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


		if(f.mail.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre adresse mail !\n";
			tab_focus[nb_erreur] = "mail";
			nb_erreur = nb_erreur + 1;
		}else{
			// on teste le format "aa@aa.aa"
			if(!testerMotif("^[a-z0-9\-_\.]+@[a-z0-9]+[\.]{1}[a-z]{2,5}$",f.mail.value)){
				msg_erreur = msg_erreur + " - Votre adresse email n'est pas correctement formattée !\n";
				tab_focus[nb_erreur] = "mail";
				nb_erreur = nb_erreur + 1;
			}
		}


		if(f.nom.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer vos nom et prénom !\n";
			tab_focus[nb_erreur] = "nom";
			nb_erreur = nb_erreur + 1;
		}


		if(f.objet.value == "") {
			msg_erreur = msg_erreur + " - Veuillez sélectionner un objet pour votre message !\n";
			tab_focus[nb_erreur] = "objet";
			nb_erreur = nb_erreur + 1;
		}


		if(f.message.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter votre message !\n";
			tab_focus[nb_erreur] = "message";
			nb_erreur = nb_erreur + 1;
		}

		if(nb_erreur != 0) {
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "*     Vous avez "+nb_erreur+" erreur"+(nb_erreur > 1 ? 's':'')+" à corriger :     *\n" + en_tete;
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "                                                    \n" + en_tete;
			msg_erreur = en_tete + msg_erreur;
			alert(msg_erreur);
			eval("f."+tab_focus[0]).focus();
			return false;
		}else{
			return true;
		}

	}




	/**
	 *
	 * @access public
	 * @return void
	 **/
	function verifFormService(oForm){

		var msg_erreur	 = "";							// construction du message d'erreur par concaténation successives
		var en_tete		 = "";							// en-tête du message d'erreur
		var nb_erreur	 = 0;							// comptabilisation des erreurs
		var tab_focus	 = 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


		if(f.nom.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre nom !\n";
			tab_focus[nb_erreur] = "nom";
			nb_erreur = nb_erreur + 1;
		}


		if(f.prenom.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre prénom !\n";
			tab_focus[nb_erreur] = "prenom";
			nb_erreur = nb_erreur + 1;
		}


		if(f.mail.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre adresse mail !\n";
			tab_focus[nb_erreur] = "mail";
			nb_erreur = nb_erreur + 1;
		}else{
			// on teste le format "aa@aa.aa"
			if(!testerMotif("^[a-z0-9\-_\.]+@[a-z0-9]+[\.]{1}[a-z]{2,5}$",f.mail.value)){
				msg_erreur = msg_erreur + " - Votre adresse email n'est pas correctement formattée !\n";
				tab_focus[nb_erreur] = "mail";
				nb_erreur = nb_erreur + 1;
			}
		}


		if(f.adresse.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre adresse !\n";
			tab_focus[nb_erreur] = "adresse";
			nb_erreur = nb_erreur + 1;
		}


		if(f.cp.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre code postal !\n";
			tab_focus[nb_erreur] = "cp";
			nb_erreur = nb_erreur + 1;
		}


		if(f.ville.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre ville !\n";
			tab_focus[nb_erreur] = "ville";
			nb_erreur = nb_erreur + 1;
		}


		if(f.tel.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre numéro de téléphone !\n";
			tab_focus[nb_erreur] = "tel";
			nb_erreur = nb_erreur + 1;
		}


		if(f.fax.value == "") {
			msg_erreur = msg_erreur + " - Veuillez indiquer votre numéro de fax !\n";
			tab_focus[nb_erreur] = "fax";
			nb_erreur = nb_erreur + 1;
		}


		if(f.objet.value == "") {
			msg_erreur = msg_erreur + " - Veuillez sélectionner un objet pour votre message !\n";
			tab_focus[nb_erreur] = "objet";
			nb_erreur = nb_erreur + 1;
		}


		if(f.message.value == "") {
			msg_erreur = msg_erreur + " - Veuillez compléter votre message !\n";
			tab_focus[nb_erreur] = "message";
			nb_erreur = nb_erreur + 1;
		}

		if(nb_erreur != 0) {
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "*     Vous avez "+nb_erreur+" erreur"+(nb_erreur > 1 ? 's':'')+" à corriger :     *\n" + en_tete;
			en_tete = "--------------------------------------------------------\n" + en_tete;
			en_tete = "                                                    \n" + en_tete;
			msg_erreur = en_tete + msg_erreur;
			alert(msg_erreur);
			eval("f."+tab_focus[0]).focus();
			return false;
		}else{
			return true;
		}

	}