  // -------- formattage des nombres ------------
  function numberformat(nombre,decimales, signe, separateurMilliers) {

             var _sNombre = nombre, i, _sRetour = "", _sDecimales = "";
             if (decimales == undefined) decimales = 2;
             if (signe == undefined) signe = '.';
             if (separateurMilliers == undefined) separateurMilliers = ' ';

             function separeMilliers (sNombre) {

                      var sRetour = "";

                      while (sNombre.length % 3 != 0) {
                             sNombre = "0"+sNombre;
                      }
                       for (i = 0; i < sNombre.length; i += 3) {
                           if (i == sNombre.length-1) separateurMilliers = '';
                            sRetour += sNombre.substr(i, 3)+separateurMilliers;
                       }
                       while (sRetour.substr(0, 1) == "0") {
                       sRetour = sRetour.substr(1);
                       }
                       res=sRetour.substr(0, sRetour.lastIndexOf(separateurMilliers));
                       if (res=="") res="0";
                       return res;
             }

             if (_sNombre.indexOf('.') == -1) {      // nombre entier
                for (i = 0; i < decimales; i++) {
                    _sDecimales += "0";              // on rajoute des zéros
                }
                if (decimales!=0) _sRetour = separeMilliers(_sNombre)+signe+_sDecimales;
                else _sRetour = separeMilliers(_sNombre);
             }

             else {

               var sDecimalesTmp = (_sNombre.substr(_sNombre.indexOf('.')+1));

               if (sDecimalesTmp.length < decimales) {
                  var nDecimalesManquantes = decimales-sDecimalesTmp.length ;
                  zero="";
                  for (i = 0; i < nDecimalesManquantes; i++) {
                      zero+="0";
                  }
                  //_sDecimales = Math.round(Number(sDecimalesTmp) / nDiv);
                  _sDecimales=sDecimalesTmp+zero;
               }
               else _sDecimales=sDecimalesTmp.substr(0,decimales);
               //alert(_sNombre.substr(0, _sNombre.indexOf('.')));
               _sRetour = separeMilliers(_sNombre.substr(0, _sNombre.indexOf('.')))+String(signe)+_sDecimales;
               }

             return _sRetour;
    }

   function IsNumeric(sText) {

       var ValidChars = "0123456789.";
       var IsNumber=true;
       var Char;

       for (i = 0; i < sText.length && IsNumber == true; i++) {
           Char = sText.charAt(i); 
           if (ValidChars.indexOf(Char) == -1) IsNumber = false;
       }

       return IsNumber;
   }

   function arrondir(num,dec) {
       val0=Math.pow(10,dec);
       return Math.round(num*val0)/val0;
  }
