//<script language=javascript>
/*'---------------------------------------------------------------------------
' Projet           : MokaSofa
' Fichier          : fctValChamps.asp
' Version ToolsBox : v2.0.0
' Auteur           : Marcotte Multimédia
' Date             : avril 2001
'
' Description      : la fonction de validation
'
' (c) 2002 Marcotte Multimédia, Inc. Tous droits reservés.
'---------------------------------------------------------------------------

'---------------------------------------------------------------------------
' Modifié par      : +AUTEURMODIF+
' En date du       : +DATEMODIF+
'
' Modification     : +MODIFICATION+
'-------------------------------------------------------------------------*/



function gf_ValiderFormatDate(pd_Date, ps_Format)
{
/*************************************
  Quatre formats de date: 
		- UC :(USA_COURT): MM/JJ/AA
		- UL :(USA_LONG):  MM/JJ/AAAA
		- CC :(CAN_COURT): JJ/MM/AA
		- CL :(CAN_LONG):  JJ/MM/AAAA
	
	Pays: C ou U (Canada ou USA)
	Longueur: C ou L (Court ou Long)
***************************************/
var s_Pays = ps_Format.substring(0,1);
var s_Longueur = ps_Format.substring(1,2);

var b_DateOk  = true
var Temp  = pd_Date.toString();

	if (Temp.length >10 && Temp.length < 8)
	{
		b_DateOk = false;	
	}
	else
	{
		/********************************
			ASSIGNATION DES VALEURS
		*********************************/	
	
		var i_PositionOblique1 = Temp.indexOf('/')
		var i_PositionOblique2 = Temp.lastIndexOf('/')
			
		if (s_Pays == 'C')
		{
			//format de date pour le Canada :JJ/MM/AAAA
			var i_Jour = Temp.substring(0,i_PositionOblique1);
			var i_Mois = Temp.substring(i_PositionOblique1+1,i_PositionOblique2);
			var i_Annee = Temp.substring(i_PositionOblique2+1,Temp.length);
		}
		else
		{
			//format de date pour les États-Unis : MM/JJ/AAAA
			var i_Mois = Temp.substring(0,i_PositionOblique1);
			var i_Jour = Temp.substring(i_PositionOblique1+1,i_PositionOblique2);
			var i_Annee = Temp.substring(i_PositionOblique2+1,Temp.length);
			
		}	
				// vérifie si les variables contiennent des valeurs
				if  ( ( i_PositionOblique1 == '' && i_PositionOblique2 == '' && i_PositionOblique1 == i_PositionOblique2 && i_Jour == '' && i_Mois == '' && i_Annee == '') ||
					// Vérifie si le jour, mois ou année contient des lettres
						(i_Jour / 1 != i_Jour || i_Mois / 1 != i_Mois || i_Annee / 1 != i_Annee) ||
					// Vérifie la limites max du nombre de jour, de mois et d'année
						(i_Jour > 31  || i_Jour < 1 || i_Mois > 12 || i_Mois < 1 || (s_Longueur == 'L' && i_Annee > 2200) || ( s_Longueur == 'L' && i_Annee < 1800) || (s_Longueur == 'C' && i_Annee > 99 ) ) ||
					// Vérifie les mois impairs
					//	(i_Mois % 2 != 0 && i_Jour > 30) ||
					// Vérifie les années bisextiles
						((i_Mois == 2 && i_Annee % 4 == 0 && i_Jour > 29) || (i_Mois == 2 && i_Annee % 4 != 0 && i_Jour > 28)) )
						{
							b_DateOk = false;
						}
						
								
	}
	
	return b_DateOk;
}



/* ??????????????????????????????????????????????????????????????????????
	 function remplacé la function gf_ValiderFormatDate(pd_Date, ps_Format)
??????????????????????????????????????????????????????????????????????????*/
function gf_ValiderDateQc(pd_Date)
{
// format de date acceptable : 12/06/1981

var b_DateOk  = true
var Temp  = pd_Date.toString();

	if (Temp.length >10 && Temp.length < 8)
	{
		b_DateOk = false;	
	}
	else
	{
		var i_PositionOblique1 = Temp.indexOf('/')
		var i_PositionOblique2 = Temp.lastIndexOf('/')
		var i_Jour = Temp.substring(0,i_PositionOblique1);
		var i_Mois = Temp.substring(i_PositionOblique1+1,i_PositionOblique2);
		var i_Annee = Temp.substring(i_PositionOblique2+1,Temp.length);
		
	
			// vérifie si les variables contiennent des valeurs
		if  ( ( i_PositionOblique1 == '' && i_PositionOblique2 == '' && i_PositionOblique1 == i_PositionOblique2 && i_Jour == '' && i_Mois == '' && i_Annee == '') ||
			// Vérifie si le jour, mois ou année contient des lettres
				(i_Jour / 1 != i_Jour || i_Mois / 1 != i_Mois || i_Annee / 1 != i_Annee) ||
			// Vérifie la limites max du nombre de jour, de mois et d'année
				(i_Jour > 31  || i_Jour < 1 || i_Mois > 12 || i_Mois < 1 || i_Annee > 2200 || i_Annee < 1800) ||
			// Vérifie les mois impairs
				(i_Mois % 2 == 0 && i_Jour > 30) ||
			// Vérifie les années bisextiles
				((i_Mois == 2 && i_Annee % 4 == 0 && i_Jour > 29) || (i_Mois == 2 && i_Annee % 4 != 0 && i_Jour > 28)) )
				{
						b_DateOk = false;
				}
			
				
	}
	
	return b_DateOk;
}
		

/*18-******************************************************************************
* Fonction:	isValidCP
* 
* Auteur : JF Lanouette 6 février
* Entree(s):	inputVal -> string code postal
*				
* 
* Description:	Permet de valider le champs code postal Canadien
*
*
* Modifié par      : +Dave Farrell+
* En date du       : +26 novembre 2002+
*
* Modification     : +Pattern match avec des RegExp...+
*********************************************************************************/
function isValidCP(inputVal)
{
	//Patterns des codes postaux possibles
	var cpCan=new RegExp("[A-Z][0-9][A-Z][0-9][A-Z][0-9]","gi");
	var cpUS=new RegExp("[0-9][0-9][0-9][0-9][0-9]","gi");
	
	inputStr = inputVal.toString();
	inputStr = gf_EnleverEspaces(inputStr);
	
	//Code postal canadien
	if (inputStr.match(cpCan)==inputStr && inputStr.length==6) return true;
	//Code postal US
	if (inputStr.match(cpUS)==inputStr && inputStr.length==5) return true;
	
	if(inputVal.length==0) return true;
	
	return false;
}



/*19-******************************************************************************
* Fonction:	isValidTel
* 
* Auteur : JF Lanouette 6 février 2001
* Entree(s):	inputVal -> Numero de telephone
*				
* 
* Description:	Permet de verifier si la string est formater comme un numero de telephone valide
*
*
* Modifié par      : +Dave Farrell+
* En date du       : +26 novembre 2002+
*
* Modification     : +Pattern match avec des RegExp...+
*********************************************************************************/
function isValidTel(inputVal)
{
	//Patterns des telephones possibles
	var phoneUSCanEU=new RegExp("[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]","g");
	var phoneUSCanCourt=new RegExp("[0-9][0-9][0-9][0-9][0-9][0-9][0-9]","g");
	
	var s_CaracteresInvalides=new String("-().");
	var s_CleanString=new String("");
		
	inputStr = inputVal.toString()
	inputStr = gf_EnleverEspaces(inputStr);
	
	//On purge la string pour enlever les caracteres de formattage...
	for (var i_cpt=0;i_cpt<inputStr.length;i_cpt++)
		if (s_CaracteresInvalides.indexOf(inputStr.charAt(i_cpt))==-1)
			s_CleanString+=inputStr.charAt(i_cpt);
	
	//Numero US, Can ou EU
	if (s_CleanString.match(phoneUSCanEU)==s_CleanString && s_CleanString.length==10) return true;
	//Numero court
	if (s_CleanString.match(phoneUSCanCourt)==s_CleanString && s_CleanString.length==7) return true;
	
	if(inputVal.length==0) return true;
	
	return false;
}


/*21-******************************************************************************
* Fonction:	gf_ValiderCourriel()
*
* Auteur: Guillaume Proteau, 10 avril 2001
* Entree(s): (frm_Nom) : Nom du form contenant le champ à valider
*		   : (txt_Nom): Nom du champ à valider
* 
* Description:	Fait la validation d'un champ courriel
*
*
* Modifié par      : +Dave Farrell+
* En date du       : +26 novembre 2002+
*
* Modification     : +Ajout des caracteres invalides...+
*********************************************************************************/
function gf_ValiderCourriel(frm_Nom,txt_Nom)
{
var Temp  = document.forms[frm_Nom].elements[txt_Nom].value.toUpperCase()
var i_PositionArobas   = Temp.indexOf('@')
var i_PositionPoint  = Temp.lastIndexOf('.')
var s_CaracteresInvalides=new String(" \',ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÜÝ"); //Rajoutez les caracteres a ignorer ici...
var i_CaracteresInvalides = 0
var i_LongueurCourriel =  Temp.length - 1   // Tableau de 0 à longeur -1 

for (var i_cpt=0;i_cpt<s_CaracteresInvalides.length;i_cpt++)
	if (Temp.indexOf(s_CaracteresInvalides.charAt(i_cpt))!=-1) i_CaracteresInvalides++;
	
if ((i_PositionArobas < 1) ||                     // '@' ne peut être au premier caractère
    (i_PositionPoint <= i_PositionArobas+1) ||    // Doit avoir un caractère entre le point et l'arobas
    (i_PositionPoint == i_LongueurCourriel ) ||    // Doit avoir un caractère après le point 
    (i_CaracteresInvalides > 0))				   // Si il contient des caractères invalides
   {  
      alert(fctMessages('STR_COURRIEL',"x",i_LongueurCourriel));
      document.forms[frm_Nom].elements[txt_Nom].focus()
      return false;
   }
	return true;
}



/*22-******************************************************************************
* Fonction:	gf_ValiderLongueurTextArea(tx_Champ, hf_Decompte, i_MaxLimite) 
*
* Auteur: Guillaume Proteau, 10 avril 2001
* Entree(s): (tx_Champ) : Nom du champ à valider
*		   : (hf_Decompte): Nom du champ "hidden" contenant le décompte des caractères
*		   : (i_MaxLimite): limite de caractères "maxlenght"
* 
* Description:	Fait la validation de la longueur maximale d'un textarea
*********************************************************************************/
function gf_ValiderLongueurTextArea(tx_Champ, hf_Decompte, i_MaxLimite) 
{
	if (tx_Champ.value.length > i_MaxLimite)               // Si trop long alors on supprime le contenu
		tx_Champ.value = tx_Champ.value.substring(0, i_MaxLimite);
		
		// sinon, on met à jour les caractères
	else 
		hf_Decompte.value = i_MaxLimite - tx_Champ.value.length;
}






function gf_ValidationForm(ps_Form) 
{
			
	if (document.forms.length > 0) 
	{
		var s_Test;
		var temp;	
		var b_ValidationOK = true;
		var s_TypeChamp;      // 1 = Type de champ
		var i_Obligatoire;    // 2 = Obligatoire (0 ou 1)
		var s_TypeDonnees;    // 3 = Type de données
		var i_LongueurChamp;   // 4 = Longueur maximale
		var s_TypeContenu;    // 5 = Type de contenu
		var s_NomChamp;       // 6 = Nom du champ
		var i_checked;		//Validation des radio et checkboxes
		var s_tempName;		//Validation des radio et checkboxes
		var i_topElement;	//Validation des radio et checkboxes
		
		var champ = document.forms[ps_Form];			  		
												
		for (i = 0; i < champ.length; i++) 
		{
			/**********************************************
			* Assignation des valeurs selon le nom du champ
			************************************************/
			
			// Type de champ
			temp = champ.elements[i].name;
			
			
			//si le nom est moins de 15 lettre ne pas valider	
			if(temp.length > 15)
			{	
			
				bundersore =  temp.substring(12,13);
			
				//si le 13e caractere est un underscore
				if(bundersore == "_")
				{
			
					s_TypeChamp = temp.substring(0,2);
							
					// Obligatoire ou non
					i_Obligatoire = temp.substring(2,3);
			
					// Type de données
					s_TypeDonnees = temp.substring(3, 6);
			
					// Longueur maximale
					i_LongueurChamp = temp.substring(6,10);
			
					// Type de contenu	
					s_TypeContenu = temp.substring(10, 12);
			
					// Nom du champ
					s_NomChamp = temp.substring(13, temp.length);
			
					/********************************************************************************************************	
					* Vérifie si le champ est à valider, les autres objets ex: bouton ne doivent pas être vérifiés			
					*********************************************************************************************************/				
					//On ne valide pas la longueur du value d'un radio ou d'un checkbox
					if ((i_Obligatoire == 1 || i_LongueurChamp != 0) && s_TypeChamp.toUpperCase() != 'CK' && s_TypeChamp.toUpperCase() != 'RB')  
					{			
						//A cause du type FILE, on doit utiliser une variable auxiliaire...
						/*if (i_Obligatoire==1)
							s_Test=gf_Trim(champ.elements[i].value);*/
						
						// Vérifie si le champ n'est pas vide
						if (champ.elements[i].value.length  == 0 && i_Obligatoire == 1 && s_TypeChamp != 'lm')
							{
								alert(fctMessages("STR_CHAMP1NOTNULL",s_NomChamp,i_LongueurChamp));
								champ.elements[i].focus();
								return false;
							}
							
						// Vérifie si la liste multiple a au moins un item de sélectionné	
						else 
						{
							if	(champ.elements[i].value.length == 0 && i_Obligatoire == 1 && s_TypeChamp == 'lm')
							{
								alert(fctMessages("STR_CHAMP2NOTNULL",s_NomChamp,i_LongueurChamp));
								champ.elements[i].focus();
								return false;
							}
							
							
							// Vérifie si le contenu du champ ne dépasse pas la longueur maximale
							else 
							{
							
								if (s_TypeContenu.toUpperCase() != 'PS')
								{
									if (champ.elements[i].value.length > i_LongueurChamp && i_LongueurChamp != 0 )
										{
											alert(fctMessages("STR_CHAMP3MAX",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}
								}
								else
								{
									if (champ.elements[i].value.length < i_LongueurChamp && i_LongueurChamp != 0 && i_Obligatoire == 1)
										{
											alert(fctMessages("STR_CHAMP4MIN",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}	
								}
							}
						}
					}	
				
					// Fait la validation seulement sur les champs contenant quelque chose
					//Valide aussi les radio buttons et les checkboxes...
					if ((champ.elements[i].value.length > 0 && s_TypeChamp.toUpperCase()!='RB' && s_TypeChamp.toUpperCase()!='CK') || ((s_TypeChamp.toUpperCase()=='RB' || s_TypeChamp.toUpperCase()=='CK') && parseInt(i_Obligatoire) == 1))
					{												
						//alert(champ.elements[i].value.length)
						varTemp=champ.elements[i].name.substring(13, champ.elements[i].name.length).toLowerCase();
										     
						/************************************************************
						*	VALIDATION SUR LE TYPE DE CHAMP (TX, TX, RB, LS, LM)
						*************************************************************/			
						switch (s_TypeChamp.toUpperCase())
						{
							/*************************************
							* validation d'un set de radio buttons
							**************************************/										   
							case 'RB':
								i_checked=-1
								s_tempName=champ.elements[i].name
								i_topElement=i
																
								//On doit boucler dans les elements tant qu'on trouve les radio du meme nom!
								for(i=i;i<champ.length;i++)
									if (s_tempName!=champ.elements[i].name)
										break;
									else
										if (champ.elements[i].checked) i_checked=i;	
								
								//Une fois termine, on retourne au dernier radio button
								--i;
								
								if(i_checked==-1){
									alert(fctMessages("STR_CHAMP3NOTNULL",s_NomChamp,i_LongueurChamp));
									champ.elements[i_topElement].focus(); 
									return false;
								}								
								break;								
							
							/**********************************
							* validation d'un set de checkboxes
							***********************************/
							case 'CK':
								i_checked=0
								s_tempName=champ.elements[i].name;
								i_topElement=i
								
								//On doit boucler dans les elements tant qu'on trouve les checkboxes du meme nom!
								for(i=i;i<champ.length;i++)
									if (s_tempName!=champ.elements[i].name) 
										break;
									else
										if (champ.elements[i].checked) i_checked++; //On compte le nombre de checkboxes coches
								
								//Une fois termine, on retourne au dernier checkbox
								--i;
								
								if(i_checked<parseInt(i_LongueurChamp)){
									alert(fctMessages("STR_CHAMP4NOTNULL",s_NomChamp,parseInt(i_LongueurChamp)));
									champ.elements[i_topElement].focus();
									return false;
								}								
								break;
							
							/*******************************
							* validation champ texte
							********************************/
							case 'TX':	
								switch (s_TypeContenu.toUpperCase())
								{
										
								
									/**********************
									* COURRIEL
									***********************/
									case 'CO':
										if (!gf_ValiderCourriel(ps_Form,champ.elements[i].name))
										{	
											return false;
											
										}
										break;
								
									/**********************
									* CODE POSTAL
									***********************/
									case 'CP':
									//document.write(champ.elements[i].value);
									//document.write("test2");
										
															
										if (!isValidCP(champ.elements[i].value))
										{	
											alert(fctMessages("STR_CHAMP5FORMAT",varTemp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}
										break;
										
									/**********************
									* Téléphone
									***********************/
									case 'TL':
														    									
										if (!isValidTel(champ.elements[i].value))
										{	
											//varTemp=champ.elements[i].name.substring(13, champ.elements[i].name.length).toLowerCase();
											alert(fctMessages("STR_CHAMP6FORMAT",varTemp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}
										break;
											
										
									/*********************************
									* Date Canada Court JJ/MM/AA
									**********************************/
									case 'CC':
																							
										if (!gf_ValiderFormatDate(champ.elements[i].value, 'CC'))
										{	
											alert(fctMessages("STR_CHAMPDATE1FORMAT",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}
										break;
										
									/*********************************
									* Date Canada LONG JJ/MM/AAAA
									**********************************/
									case 'CL':
																							
										if (!gf_ValiderFormatDate(champ.elements[i].value, 'CL'))
										{	
											alert(fctMessages("STR_CHAMPDATE2FORMAT",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}
										break;
										
									/*********************************
									* Date USA Court MM/JJ/AA
									**********************************/
									case 'UC':
																							
										if (!gf_ValiderFormatDate(champ.elements[i].value, 'UC'))
										{	
											alert(fctMessages("STR_CHAMPDATE3FORMAT",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}
										break;
										
									/*********************************
									* Date USA LONG MM/JJ/AAAA
									**********************************/
									case 'UL':
																							
										if (!gf_ValiderFormatDate(champ.elements[i].value, 'UL'))
										{	
											alert(fctMessages("STR_CHAMPDATE4FORMAT",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}
										break;
										
									/*********************************
									* Champs de mot de passe devant contenir des lettre et des chiffre
									**********************************/
									case 'PS':
								
										var c_Char, num, cc;
										cc = 0
										num = 0 
										// Vérifie si tous les caractères du champ sont des lettres
										for (var j=0; j < champ.elements[i].value.length; j++)
										{
											c_Char = champ.elements[i].value.charAt(j);
														
											if ( (c_Char >= "0" && c_Char <= "9" ) )											   
											{ 
											 num =1 
											}
											if ( (c_Char >= "A" && c_Char <= "Z" ) || (c_Char >= "a" && c_Char <= "z" ) )
											{
											 cc =1 
											}											   
										}
										if (num != 1 || cc!= 1 )
										{
											alert(fctMessages("STR_CHAMP7",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}
										break;
																						
								break;
						
																			   
							/**************************
							 * Validation d'un textarea
							 **************************/
							case 'TA':
									break;
								   
							// Validation d'une liste simple
							case 'LS':
									break;
								
							// Validation d'une liste multiple
							case 'LM': 
									break;
							}
				
				
			
							/*********************************************************
							* VALIDATION SUR LE TYPE DE DONNÉES ( NUM, TXT, ALN, ALP )
							**********************************************************/
				
							switch(s_TypeDonnees.toUpperCase())	
							{
							case 'MON':
									var c_Char;
									// Vérifie si tous les caractères du champ sont des lettres
									for (var j=0; j < champ.elements[i].value.length; j++)
									{
										c_Char = champ.elements[i].value.charAt(j);
													
										if ( (c_Char < "0" || c_Char > "9" ) && c_Char != "."  && c_Char != "," )
											   
											{
											alert(fctMessages("STR_CHAMP8",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
											}
											   
									}
									break;
									
							case 'NUM':
										// Vérifie si le champ contient des lettres ou autres caractères
										if (champ.elements[i].value / 1 != champ.elements[i].value)
										{
											alert(fctMessages("STR_CHAMP9",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
										}
										
									break;
									
							case 'ALN':
									break;
									
				
							case 'ALP':
									var c_Char;
									// Vérifie si tous les caractères du champ sont des lettres
									for (var j=0; j < champ.elements[i].value.length; j++)
									{
										c_Char = champ.elements[i].value.charCodeAt(j);
										//document.write("ici:====>");
										//document.write(c_Char);
																						
										// reste à ajouter les è à				
										if (   (c_Char < 65 )|| 
											   ((c_Char > 90) && (c_Char < 97)) ||
											   (c_Char > 122))
											{
											alert(fctMessages("STR_CHAMP10",s_NomChamp,i_LongueurChamp));
											champ.elements[i].focus();
											return false;
											}
											   
									}
									break;
									
									
							case 'TXT':
									break;
											
							}
				
								
						} // end if	-- if (champ.elements[i].value.length > 0)		
							
					} // end if -- if (i_Obligatoire == 1 || i_LongueurChamp != 0) 
					
				} // end if	si le 13e carac. = underscore
				
			} // end if	si >15 lettre
			
		} // for
		   
	}
	
	return true;
	
	
}	



/*7-******************************************************************************
* Fonction:	gf_ConfirmSupp(ps_ASupp)
* 
* Entree(s):	ps_ASupp {string} - nom de l'objet a supprimer
* Sortie(s):	True/False - flag Succes/Echec
* 
* Description:	confirmation de suppression 
*********************************************************************************/
function gf_ConfirmSupp(msg) {
	if (confirm(msg) == 0) 
 		return false;
	else 
		return true;
}

//cette fonction fait un submit de la fonction passée en parametre apres l'avoir validé
//ex: <a href="javascript:gf_submitForm(1)"><%=gf_GetImage("ENREGISTRER")%></a>
function gf_submitForm(id)
{
	if (gf_ValidationForm(id))
		document.forms[id].submit();
		
}

		
/*21-******************************************************************************
* Fonction:	gf_EnleverEspaces
* 
* Auteur : Dave Farrell, 26 novembre 2002
* Entree(s):	inputVal -> string quelconque
* Sortie:	string sans espaces				
* 
* Description:	Permet d'enlever tous les espaces d'une string
*********************************************************************************/
function gf_EnleverEspaces(inputVal){
	var s_RetVal = '';
	
	for(var i_cpt=0;i_cpt<inputVal.length;i_cpt++)
		s_RetVal += (inputVal.charAt(i_cpt)!=' ') ? inputVal.charAt(i_cpt) : '';
	
	return s_RetVal;	
}

/*1-******************************************************************************
* Fonction:	gf_Trim(ps_Chaine)
* 
* Entree(s):	ps_Chaine {String} - Chaine à traiter
* Sortie(s):	{String} - Chaîne avec les espaces enlevés
* 
* Description:	Enlève les espaces en blanc dans une chaîne de caractères
*
*
* Modifié par      : +Dave Farrell+
* En date du       : +26 novembre 2002+
*
* Modification     : +Gestion du cas de la chaine avec seulement un espace+
*********************************************************************************/
function gf_Trim(ps_Chaine) {
	var s_RetVal = "";
	var i_Debut = 0;
	var i_Fin = ps_Chaine.length;
	
	while ((i_Debut < ps_Chaine.length) && (ps_Chaine.charAt(i_Debut) == ' ')) 
		++i_Debut;
	
	if (i_Debut==ps_Chaine.length) return "";
	
	while ((i_Fin > 0) && (ps_Chaine.charAt(i_Fin - 1) == ' '))
		--i_Fin;
	
	s_RetVal = ps_Chaine.substring(i_Debut, i_Fin);
	
	return s_RetVal;
}

// End -->



