/**
 * Fonctions en rapport avec les chiffres
 *
 * Date de creation  : 7 juillet 2006
 * Programmé par     : Frank Malenfant
 * Version d'origine : 4.0
 * Dépendances       : string.js
 **/

/**
 * FONCTIONS DOCUMENTÉES:
 *
 * formatInt(object obj)            : Formate un champ à valeur numérique
 * intOnly(object obj)              : Supprime tous les caractères non numériques excluant le point
 * isInt(string int)                : Vérifie si la chaine est un nombre
 * number_format()
 * roundDec(float value, int nbDec) : Arrondit le nombre spécifié au nombre de décimales souhaitées
 * toFloat(string nbf)              : Convertit une chaîne en nombre décimal
 **/

/**
 * Formate un champ à valeur numérique
 * Paramètres : form object    obj   (Champ texte)
 **/
function formatInt(obj) {
  obj.value = remplacer(',','.',obj.value);
  intOnly(obj);
}

function inRange(num, minimum, maximum) {
	if(num < minimum) num = minimum;
	else {
		try {	if(num > maximum) num = maximum; }
		catch(e) {};
	}
	return num;
}

/**
 * Supprime tous les caractères non numériques excluant le point
 * Paramètre : form object    obj   (Champ texte)
 **/
function intOnly(obj) {
  var texte = obj.value;
  for(var i=0;i<texte.length;i++) {
    if(!isInt(texte.charAt(i))) texte = delCar(texte,i--);
  }
  obj.value = texte;
}

/**
 * Vérifie si la chaine est une heure
 * Paramètre : str time (Heure a valider)
 * Retourne  : bool
 **/
function isInt(int) {
  var i = '1234567890.';
  for(var c = 0;c < int.length;c++) {
	  if(i.indexOf(int.charAt(c)) < 0) return false;
	}
	return true;
}

/**
 * Équipavent à la fonction du même nom en PHP
 * Paramètres : voir number_format en PHP
 **/
function number_format(a, b, c, d) {
	var k = '';
	a += "";
	if(a.indexOf('-') == 0) {
		k = '-';
		a = a * -1;
	}
	a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
	var e = a + '';
	var f = e.split('.');
	if(!f[0]) f[0] = '0';
	if(!f[1]) f[1] = '';
 if(f[1].length < b){
  var g = f[1];
  for(var i = f[1].length + 1; i <= b; i++) {
   g += '0';
  }
  f[1] = g;
 }
 if(d != '' && f[0].length > 3) {
  var h = f[0];
  f[0] = '';
  for(var j = 3; j < h.length; j += 3) {
   i = h.slice(h.length - j, h.length - j + 3);
   f[0] = d + i +  f[0] + '';
  }
  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  f[0] = j + f[0];
 }
 c = (b <= 0) ? '': c;
 return k + f[0] + c + f[1];
}

/**
 * Arrondit le nombre spécifié au nombre de décimales souhaitées
 * Paramètres : float value
 *              int   nbDec
 **/
function roundDec(v, n) {
	var m = Math.pow(10,n);
	return Math.round(v * m)/m;
}

/**
 * Convertit une chaîne en nombre décimal
 * Paramètre : int nbr (Chaîne à convertir)
 * Retourne  : double
 **/
function toFloat(nbr) {
  return (nbr * 100)/100;
}
