// Retourne true si la chaine est vide ou ne comporte que des espaces
function XSTR_isEmpty(str)
{
   if (str == null)
   	return true;
   str=""+str;
   for (i = 0; i < str.length; i++)
   {
     if (str.charAt(i) != " ")
        return false;
   }
   return true;
}

// pour les caractères spéciaux afin d'éviter les € dans les liens...
function XSTR_remplaceCaracteresSpeciaux(str)
{
  var machaine="";
  for (i = 0 ; i < str.length ; i++)
  {
    switch (str.charAt(i))
    {
    	case 'à' : machaine+="&agrave;" ; break;
    	case 'é' : machaine+="&eacute;" ; break;
    	case 'è' : machaine+="&egrave;" ; break;
    	case 'ê' : machaine+="&ecirc;"  ; break;
    	case 'î' : machaine+="&icirc;"  ; break;
    	case 'ï' : machaine+="&iuml;"   ; break;
    	case 'ô' : machaine+="&ocirc;"  ; break;
    	case 'ö' : machaine+="&ouml;"   ; break;
    	case 'ù' : machaine+="&ugrave;" ; break;
    	case 'û' : machaine+="&ucirc;"  ; break;
    	case 'ü' : machaine+="&uuml;"   ; break;
    	case 'ò' : machaine+="&ograve;" ; break;
    	default  : machaine+=str.charAt(i);
    }
  }
  return machaine;
}

// Retourne une chaîne dont on a enlevé un bout (qui peut s'y trouver plusieurs fois)
// Exple : XSTR_ChaineReduite('un petit exemple et tout va mieux !','et')
// 		   retourne 'un pit exemple  tout va mieux !'
function XSTR_ChaineReduite(str,chaine)
{
	var resultat = "";
	if (str.search(chaine) == -1) // la chaine est introuvable
		resultat = str;
	else
	{
		morceauxScindes = str.split(''+chaine);
		for (i = 0; i < morceauxScindes.length; i ++)
		{
			resultat += morceauxScindes[i];
		}
	}
	return resultat;
}

// Retourne une chaîne dont on a enlevé un bout
// à utiliser : Quand on ne peut pas fournir complètement le bout à enlever de la chaîne (chaine1)
// 				mais que l'on connaît le début de la chaîne suivante (chaine2)
// 				chaine2 peut être nul
// Exemples : 1/ XSTR_ChaineTronquee('to','ti') retourne 'to'
//			  
function XSTR_ChaineTronquee(str,chaine1,chaine2)
{
	var resultat = "";
	var indicePresence1 = str.search(""+chaine1);
	var indicePresence2 = -1;
	
	if (indicePresence1 == -1) // la chaine est introuvable
		resultat = str;
	else
	{
		if ((chaine2 != undefined) && (chaine2 != null))
		{
			indicePresence2 = str.search(chaine2);
			// si chaine2 == chaine1, on ne veut pas que indicePresence2 soit égal à indicePresence1
			// on recherche alors la prochaine occurence de chaine2
			while (indicePresence2 < indicePresence1)
				indicePresence2 = str.search(chaine2);
			if (indicePresence2 == indicePresence1)
			{
				indicePresence2 = (str.substring(indicePresence1+chaine1.length)).search(chaine2);
				indicePresence2 += indicePresence1+chaine1.length;
			}
		}
		// XSTR_ChaineTronquee('tetotitu','to','ta') retourne 'titu'
		if (indicePresence2 == -1)
			resultat = str.substring(0,indicePresence1);
		// XSTR_ChaineTronquee('tatotitu','to','ti') retourne 'tatitu'
		// XSTR_ChaineTronquee('tatotitu','to','tu') retourne 'tatu'
		else
			resultat = str.substring(0,indicePresence1) + str.substring(indicePresence2);
	}
	return resultat;
}

// pour insérer un bout de chaîne(chaîne1) dans une autre chaîne(str) avant/ après un autre bout de chaîne(chaîne2)  
// 		chaine2 peut être nul (dans ce cas, chaine1 est positionnée à la fin de str)
// 		ATTENTION : si chaine2 == "", c'est que l'on veut insérer chaine1 devant str
// 		ATTENTION : si chaine2 n'est pas nul, on sait pertinement que chaine2 est présente dans str !!!
function XSTR_ChaineAjoutee(str,chaine1,chaine2)
{
	var resultat = "";
	if (chaine2 == "")
		resultat = chaine1 + str;
	else
	{
		if (chaine2 == undefined || chaine2 == null)
			resultat = str + chaine1;
		else
		{
			var indicePresence2 = str.search(chaine2);
			resultat = str.substring(0,indicePresence2) + chaine1 + str.substring(indicePresence2);
		}
	}
	return resultat;
}

// pour contrôler qu'une chaîne de caractères saisies 
// est bien constituée que de caractères numériques
// on ne tient pas compte des caractères non numériques sur l'évènement keyPress
function XSTR_isDigit(evt )
{
	if(evt == null)
		evt = event ;

	if (String.fromCharCode(evt.keyCode).match( /[0-9]/))
		return true;
	else
		return false;
}



//
//
//
function XSTR_Trim(TRIM_VALUE)
{
   if(TRIM_VALUE.length < 1)
   {
      return"";
   }
   TRIM_VALUE = XSTR_RTrim(TRIM_VALUE);
   TRIM_VALUE = XSTR_LTrim(TRIM_VALUE);
   if(TRIM_VALUE=="")
   {
      return "";
   }
   else
   {
      return TRIM_VALUE;
   }
}

//
//
//
function XSTR_RTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0)
	{
		return"";
	}
	var iTemp = v_length -1;

	while(iTemp > -1)
	{
		if(VALUE.charAt(iTemp) == w_space)
		{
		}
		else
		{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;

	}
	return strTemp;
}

//
//
//
function XSTR_LTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	if(v_length < 1)
	{
		return"";
	}
	var strTemp = "";

	var iTemp = 0;

	while(iTemp < v_length)
	{
		if(VALUE.charAt(iTemp) == w_space)
		{
		}
		else
		{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	}
	return strTemp;
}

