/*
* +-------------------------------------+
* Number.prototype.nombreFormate
* +-------------------------------------+
* Params (facultatifs):
* - Int decimales: nombre de decimales (exemple: 2)
* - String signe: le signe precedent les decimales (exemple: "," ou ".")
* - String separateurMilliers: comme son nom l'indique
* Returns:
* - String chaine formatee
*/
Number.prototype.nombreFormate = function (decimales, signe, separateurMilliers) {
  var _sNombre = String(this), 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);
    }
    return sRetour.substr(0, sRetour.lastIndexOf(separateurMilliers));
  }
  if (_sNombre.indexOf('.') == -1) {
    for (i = 0; i < decimales; i++) {
      _sDecimales += "0";
    }
    _sRetour = separeMilliers(_sNombre)+signe+_sDecimales;
  } else {
    var sDecimalesTmp = (_sNombre.substr(_sNombre.indexOf('.')+1));
    if (sDecimalesTmp.length > decimales) {
      var nDecimalesManquantes = sDecimalesTmp.length - decimales;
      var nDiv = 1;
      for (i = 0; i < nDecimalesManquantes; i++) {
        nDiv *= 10;
      }
      _sDecimales = Math.round(Number(sDecimalesTmp) / nDiv);
    }
    _sRetour = separeMilliers(_sNombre.substr(0, _sNombre.indexOf('.')))+String(signe)+_sDecimales;
  }
  return _sRetour;
}


