
function ComprobarNumerico(objeto,puntos,decimales,LonEntero,longitud,error,idioma) 
{
	var retorno,valor;
	
	//Sacamos el objeto del DOM y lo guardamos en una variable temporal
	var obj = document.getElementById(objeto);
	var objError = document.getElementById(error);
	
	//Seteamos la variable objeto
	objeto = obj;
	error = objError;
	error.value = "";
	
	valor = objeto.value;
	
	if (!EsNumerico(objeto,objeto.value,puntos)){
		//alert ("Dato no permitido: '" + valor + "'");
		if(idioma == 's') {
		    error.value='Ingrese un Valor de Recompensa V\xe1lido';
		    error.visible = true;
		}
		else 
		{
		    error.value='Enter a Valid Value Rewards';
		    error.visible = true;
		}
		objeto.focus();
		return false;
	}
	if (!ContadorComas(objeto,objeto.value)) {
		if(idioma == 's') {
		    error.value='Ingrese un Valor de Recompensa V\xe1lido';
		    error.visible = true;
		}
		else 
		{
		    error.value = 'Enter a valid Value Rewards';
		    error.visible = true;
		}
		objeto.focus();
		return false;
	}
	if (objeto.value.length>0) {
		objeto.value=(FormatearCuadre(objeto.value,puntos,decimales,LonEntero,longitud));
	}
	error.value = "";
	return true;
}	
	

function EsNumerico(obj,dato,puntos)
{
	var i;
	var longitud;
	var caracter;
	var sumo = 0;
	longitud = dato.length;
	valido = "0123456789,";
        
        //Preguntamos si tiene signo para quitarlo y luego colocarlo
        if (longitud > 0){
            if (dato.substring(0,1) == "-" ){
                dato = dato.substring(1, longitud + 1);
                longitud = longitud - 1;
            }
        }
        
	if (puntos=='s')
	{
		valido = valido + ".";
	}
	for ( i=0; i <= longitud; i++)
	{
		caracter = dato.substring(i,i+1)
		if (valido.indexOf(caracter) == -1)
		{
			obj.value = dato.substring(0,i);
			return false;
		}
	}
	return true;
}

function ContadorComas(obj,dato)
{
  var contador;
  var i;
  contador = 0;
  for (i=0;i<dato.length;i++)
  {
		if (dato.substring(i,i+1)==",")
    {
			contador++;
      if (contador > 1)
			{
				obj.value = dato.substring(0,i);
				return false;
			}
    }
	}
	return true;		
}

function FormatearCuadre(dato,puntos,decimales,LonEntero,longitud)
{
	var entero;
	var decimal;
	var i;
	var posicion;
	var enteroSin,enteroCon;
	var decimalSin,decimalCon;
        var negativo = "N";
	
	posicion = dato.length
    
    if (posicion > 0){
       if (dato.substring(0,1) == "-" ){
             dato = dato.substring(1, posicion + 1);
             negativo = "S";
             posicion = posicion - 1;
        }
    }

        for (i=0;i<dato.length;i++)
        {
			if (dato.substring(i,i+1)==",")
			{	
				posicion = i;
			}
		}
	

	// Recuperamos la parte entera
	entero = dato.substring(0,posicion);
	
	// Recuperamos la parte decimal
	decimal = dato.substring(posicion + 1,dato.length);
	
	// Eliminamos los puntos de la parte entera
	enteroSin = QuitarPuntos(entero);
	
	//truncamos
	if (enteroSin.length > LonEntero){
		enteroSin = enteroSin.substring(0,LonEntero);
	}
	
	// Quitamos los ceros a la izquierda
	enteroSin = String(QuitarCerosIzq(enteroSin));

	// Si el campo lleva puntos, se los ponemos
	enteroCon = enteroSin;
	if (puntos=='s')
		enteroCon = PonerPuntos(enteroSin);

	// Eliminamos los puntos en la parte decimal
	decimalSin = QuitarPuntos(decimal);
        
        if ( negativo == "S" ){
            enteroCon = "-"+ enteroCon;
        }

	// Formateamos la parte decimal
	if (decimales=='s')
	{
		decimalCon = ParteDecimal(decimalSin,longitud);
		return (enteroCon + ',' + decimalCon);
	}
	else
	{
		return (enteroCon);
	}
      
}

function QuitarPuntos(dato)
{
	var aux,i;
	aux = '';

	for (i=0;i<dato.length;i++)
	{
		if (dato.substring(i,i+1)!=".")
			aux = aux + dato.substring(i,i+1);
	}
	return aux;
}

function PonerPuntos(dato)
{
	var aux,i;
	aux = '';

	for (i=0;i<dato.length;i++)
	{
		if (((dato.length-i)%3)==0 && (i>0))
			aux = aux + '.';
		aux = aux + dato.substring(i,i+1);
	}
	return aux;
}

function ParteDecimal(dato,longitud)
{
	var aux;

	if (longitud!=dato.length)
	{
		switch (dato.length)
		{	
			case 0:
				aux = "00";
				break;
			case 1:
				aux = dato + "0";
				break;
			default :
				aux = dato.substring(0,2);
		}
	}
	else
	{
		aux = dato.substring(0,2);
	}
	return aux;
}

function QuitarCerosIzq(dato)
{
	aux = dato * 1;
	return aux;
}