 function filtreCar(carlu){
  var tabIsoLatin="C0C5aC8CBeCCCFiD2D6oD9DCuE0E5aE8EBeECEFiF2F6oF9FCuC7C7cDDDDyE7E7c";
  var tabMacintosh="878Ca8D8Dc8E91e9295i979Bo9C9Fu8081A8282C8383E8484N8585O8686U9696nB7B7aB8B8OB9B9pBABAoD7D7aD8D8yD9D9YE5E5AE6E6EE7E7AE8E9EEAEDIEEEFOF1F1oF2F4U";
  var tabAscii=tabIsoLatin; 
  var tabSpace="402220282927";
  //var tabNofiltre="%*-+&.,();:!?/[]|$*<>=";
  var tabNofiltre="%*+&;|$*<>=.";
  var tabfiltre=",!?/[]()|:-";
  var ascii=escape(carlu);
  var jump=5;

  //Changement de table de caractères pour le Mac.
  if(navigator.userAgent.toLowerCase().indexOf("mac") != -1)
    tabAscii = tabMacintosh;

  //Mode expert
//  if(carlu=="\"") return(carlu);

  if((ascii>=unescape("a")&&ascii<=escape("z"))||(ascii>=unescape("A")&&ascii<=escape("Z"))||(ascii>=unescape("0")&&ascii<=escape("9"))) return(carlu); 
  for(var l=0; l<tabNofiltre.length; l++)
    if(carlu==tabNofiltre.charAt(l)) return(carlu);        
  for(var l=0; l<tabfiltre.length; l++)
    if(carlu==tabfiltre.charAt(l)) return(" ");     
  for(var k=0; k<tabSpace.length;k+=2)       
    if(carlu==unescape("%"+tabSpace.substring(k,k+2))) return(" ");    
  for(var j=0; j<tabAscii.length;j+=jump)      
    if(carlu>=unescape("%"+tabAscii.substring(j,j+2))&&carlu<=unescape("%"+tabAscii.substring(j+2,j+4)))
      return(carlu);

  return("");
  }


  function filtre(objet){
    var lachaine="";
    lachaine=objet.value.toLowerCase();
    objet.value=filtre_accent(lachaine);
    var chaine=objet.value;
    var newchaine="";  
    for(var i=0; i<chaine.length; i++)    
      newchaine=newchaine+filtreCar(chaine.charAt(i));
    chaine=newchaine+chaine.charAt(i);
    objet.value=newchaine;  
 
  }



function appartient(cara,chaine1) {
	    var OK=false;
	    lg1=chaine1.length;
	    for (j=0;j<lg1;j++)
                {
                 car1=chaine1.charAt(j);
                 if (cara == car1) { OK=true; j=lg1; }
                }
            return (OK);
	   }

      function filtre_accent(chaine)
	   {
	    var LES_A="àâä";
	    var LES_I="ïî";
	    var LES_E="éèëê";
	    var LES_U="ùüû";
	    var LES_O="öô";
            var temp="";
	    lg=chaine.length;

            for (i=0;i<lg;i++)
                {
                 car=chaine.charAt(i);


                 if (appartient(car,LES_A))
                    temp+="a";
                 else if (appartient(car,LES_I))
                         temp+="i";
                      else if (appartient(car,LES_E))
                              temp+="e";
                           else if (appartient(car,LES_U))
                                   temp+="u";
                                else if (appartient(car,LES_O))
                                        temp+="o";
                                     else if (car=='ç')
                                           temp+="c";
                                          else temp+=car;
                }
	    return temp;
	   }

        function Traitement_Chaine(objet)
      {
        var chaine;
        chaine=objet.toLowerCase();
        objet=filtre_accent(chaine);
        return objet;
      }

  function compteParentheses(chaine){
  var max_par=0; var nb_par=0; var nb_open=0; var nb_close=0;
  for(i=0; i<chaine.length; i++)
    {
    if(chaine.substring(i,i+1)=='(') { nb_par++; nb_open++; }
    if(chaine.substring(i,i+1)==')') { nb_par--; nb_close++; }
    if(nb_close>nb_open) {
      alert('Erreur dans l\'utilisation des parenthèses'); return false; }  
    if(nb_par>max_par) max_par=nb_par;    
    }
  if(nb_open!=nb_close) {
    alert('Erreur dans l\'utilisation des parenthèses'); return false; }
  if(max_par>2) {
    alert('Vous ne pouvez utiliser plus de 2 niveaux de parenthèses.'); return false; }
  return true;
  }

  // Suppression des espaces en fin de chaine
  function filtreEspace(objet) {
    chaine=objet.value;
    i=objet.value.length-1;
    while(chaine.charAt(i)==' ' && i>0)
      i--;        
    objet.value=chaine.substring(0,i+1);
    if(objet.value==' ')
      objet.value='';
  }

 // Suppression des espaces en fin de chaine V2
  function filtreEspaceobs(chaine) {
  	var chaine_tmp ="";
    i=chaine.length-1;
    while(chaine.charAt(i)==' ' && i>0)
      i--;        
    chaine_tmp=chaine.substring(0,i+1);
    return chaine_tmp;
  }

// Test si un point existe hors d'une expression
function noPoint(chaine) {
  in_expr=false;
  b_point=false;
  for(i=0; i<chaine.length && !b_point; i++) {
    if(chaine.charAt(i)=='"')
      in_expr=!in_expr;
    if(!in_expr && chaine.charAt(i)==".") {
      b_point=true;    
    }
  }
return !b_point;
}

function Js_Trim(chaine)
{
 return chaine.replace(/^\s+/g,'').replace(/\s+$/g,'');
} 