// Rutina para formatear la salida de la rutina roundDecimal.
// Entran por parametro el numero "n" a redondear y el separador "d"
// Retorna val Retorna el numero formateado
// 
// formatInThrees(1253982 , '.') => 12.539.820 
// 

function formatCurrency(n,d) // n = number, d = delimeter
{
	// round to 2 decimals if cents present
   n = (Math.round(n * 100) / 100).toString().split('.');
  var
  	myNum = n[0].toString(),
	fmat = new Array(),
	len = myNum.length,
	i = 1, deci = (d == '.') ? ',' : '.';
  for(i; i < len + 1; i++) fmat[i] = myNum.charAt(i-1);

	fmat = fmat.reverse();
	for(i = 1; i < len; i++)
	{
		if(i % 3 == 0) {
		fmat[i] += d;
		}
	}
	var val = fmat.reverse().join('') +
	 ( n[1] == null ? deci + '00' :
	   (deci + n[1])
	 );
	return val;
}


// Rutina para redondear.
// Entran por parametro el numero "nro" a redondear y la cantidad de decimales "d"
// Retorna nroR Retorna el numero redondeado 
// 
// roundDecimal(125.3982 , 2) => 125.40 
// 

function roundDecimal(nro,d) 
{ 
	for (var i=0; i<nro.length; i++){
		nro = nro.replace(",",".");
	}
	
	var vec_entrada = nro.split(".");
	
	if (vec_entrada.length > 1){
	    nro = vec_entrada[0] + "." + vec_entrada[1]; 
	}else{
		nro = vec_entrada[0];
	}
	
	var m = Math.pow(10,d); 
	var nro2 = nro * m; 
	var result = Math.round(nro2) / m;
	var s_result = String(result);
	
	// si ocurre algunu error que no hemos podido controlar, devuelve '0,00'
	if (isNaN(s_result)){ s_result = "0";}
	
	//miramos si tiene signo menos para tratarlo
	var signe = false
	if (s_result.substr(0,1)=="-"){
		signe = true;
		s_result = s_result.substr(1, s_result.length);
	}
	
	// formateamos la salida con los puntos de miles y la coma de decimales
	s_result = formatCurrency(s_result,".")
	
	//le aplicamos el signo negativo si lo llevaba
	if (signe==true) s_result = "-" + s_result;
	
	//si sólo hay 1 decimal, añadimos un zero a la derecha
	var vec_salida = s_result.split(",");
	if (vec_salida[1].length == 1){
		s_result = s_result + "0"
	}
	
	
	return s_result;
} 