// JavaScript Questionnaire 360°
/* ========================================================================================
	::	Scripts Généraux
======================================================================================== */

	/*
		oError = {
			"oForm"		: Référence à l'objet formulaire ,
			"sErreur"	: Message d'erreur,
			"iError"	: Nombre d'erreurs,
			"aFocus"	: Tableau indiquant les id des éléments qui doivent avoir le focus
		}
	*/
	function formErrorValidation(oError){

		var sError		 = "";							// construction du message d'erreur par concaténation successives
		var f			 = oError.oForm;				// référence au formulaire à analyser
		var iError		 = oError.iError;				// nombre d'erreurs

		if(iError != 0) {
			sError += "--------------------------------------------------------\n";
			sError += "*     "+(iError > 1 ? _aTranslation["formErrorValidation"]["001_header_errors"].replace(/%i/,iError) : _aTranslation["formErrorValidation"]["001_header_error"].replace(/%i/,iError))+" :     *\n";
			sError += "--------------------------------------------------------\n";
			sError += "                                                    \n";
			sError += oError.sErreur;
			alert(sError);
			if(oError.aFocus[0]!=null) eval("f." + oError.aFocus[0]).focus();
			return false;
		}else{
			return true;
		}
	}


	function changeLangSession(sDefaultLang,iIdfLang){

    	new Ajax.Request(
			'./adm/prive/ajax/ajax_ChangeLangSession.php',
			{
				asynchronous: false,
				method: 'post',
				parameters: {
					default_lang  : escape(sDefaultLang),
					idf_langue	  : iIdfLang
				},
				onSuccess: function(transport, json) {
					var bText	 = (transport.responseText	 ? true : false);
					var bXML	 = (transport.responseXML	 ? true : false);
					var bJson	 = (json	 ? true : false);
					sResponse = transport.responseText;
					changeUrl(document.location.href);
	            }
	        }
		);

	}

	function changeLangNoSession(sDefaultLang,iIdfLang){

    	new Ajax.Request(
			'./adm/prive/ajax/ajax_ChangeLangNoSession.php',
			{
				asynchronous: false,
				method: 'post',
				parameters: {
					default_lang  : escape(sDefaultLang),
					idf_langue	  : iIdfLang
				},
				onSuccess: function(transport, json) {
					var bText	 = (transport.responseText	 ? true : false);
					var bXML	 = (transport.responseXML	 ? true : false);
					var bJson	 = (json	 ? true : false);
					sResponse = transport.responseText;
					changeUrl(document.location.href);
	            }
	        }
		);

	}

	/* 	- changeClassName() -------------------------------------------------------
	|	Description :
	|		-	Modifier la classe d'un objet
	|	Aguments OBLIGATOIRES
	|		- argument 0 (string)	 : objId		=>	identifiant de l'objet sur lequel agir
	|		- argument 1 (string)	 : newClassName	=>	nom de la nouvelle classe de style à appliquer
	|	Return :
	|		- NULL
	------------------------------------------------------------------------------------ */
	function changeClassName(objId,newClassName){

		var o = $(objId);
		if(o){
			o.setAttribute("class",newClassName);
			o.setAttribute("className",newClassName);
		}

	}
	// fin Fonction changeClassName(objId,newClassName)--------------------------------------

	/* 	- changeUrl() ----------------------------------------------------------
	|	Description :
	|		-	Fonction utilisée pour recharger une nouvelle url et donc changer de page.
	|	Aguments OBLIGATOIRES
	|		- argument 0 (string)	 : url	=>	url de la nouvelle page à charger
	|	Fonctions appellées :
	|		- changeClassName()
	|	Pages appellantes :
	|		- prive/groupes_utilisateurs.php
	|	Return :
	|		- NULL
	------------------------------------------------------------------------------------ */
	function changeUrl(url){

		document.location.href = url;

	}
	// fin Fonction changeUrl(url)-------------------------------------------------------

	/* 	- 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()-------------------------------------------------------

	/* 	- radioIsChecked() ----------------------------------------------------------
	|	Description :
	|		-	Fonction utilisée pour vérifier qu'au moins un bouton radio est coché
	|	Aguments OBLIGATOIRES
	|		- argument 0 (string)	 : sName	=>	nom du bouton radio à tester
	|	Pages appellantes :
	|		- prive/bons_commandes.php
	|	Return :
	|		- true	 : au moins un bouton radio est coché
	|		- false	 : aucun bouton radio est coché
	------------------------------------------------------------------------------------ */
	function radioIsChecked(sName){

		var oR		 = document.getElementsByName(sName);	// bouton radio à cocher
		var total	 = oR.length;							// nombre total de cases à cocher
		var bIsChecked = false;

		// on vérifie qu'au moins un bouton radio est coché
		for(i=0;i<total;i++){
			if(oR[i].checked){
				bIsChecked = true;
				break;
			}
		}

		return bIsChecked;

	}
	// fin Fonction radioIsChecked(sName)----------------------------------

	/* 	- getRadioCheckedValue() ----------------------------------------------------------
	|	Description :
	|		-	Fonction utilisée pour retourner la valeur du bouton radio coché
	|	Aguments OBLIGATOIRES
	|		- argument 0 (string)	 : sName	=>	nom du bouton radio à tester
	|	Pages appellantes :
	|		- index.php
	|	Return :
	|		- true	 : au moins un bouton radio est coché
	|		- false	 : aucun bouton radio est coché
	------------------------------------------------------------------------------------ */
	function getRadioCheckedValue(sName){

		var oR		 = document.getElementsByName(sName);	// bouton radio à cocher
		var total	 = oR.length;							// nombre total de cases à cocher
		var sValue	 = "";

		// on vérifie qu'au moins un bouton radio est coché
		for(i=0;i<total;i++){
			if(oR[i].checked){
				sValue = oR[i].value;
				break;
			}
		}

		return sValue;

	}
	// fin Fonction getRadioCheckedValue(sName)----------------------------------

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