var isNS4 = (navigator.appName=="Netscape")?1:0;

function soloNumerosConNegativos(evt,decimales){
	// NOTE: Backspace = 8, punto = 46 , coma = 44, gui?n = 45, Enter = 13, '0' = 48, '9' = 57
	var key = isNS4 ? evt.which : evt.keyCode;

	if(decimales)
	{
		return (key <= 13 || key == 44  || key == 45 ||  key == 46 || (key >= 48 && key <= 57));
	}
	return (key <= 13 || key == 45 ||   (key >= 48 && key <= 57));
}

function sinNumeros(evt) {	// NOTE: Backspace = 8, punto = 46 , coma = 44, Enter = 13, '0' = 48, '9' = 57
	var key = isNS4 ? evt.which : evt.keyCode;
		
	return !(key >= 48 && key <= 57);
}


function soloNumeros(evt,decimales){
	// NOTE: Backspace = 8, punto = 46 , coma = 44, Enter = 13, '0' = 48, '9' = 57
	var key = isNS4 ? evt.which : evt.keyCode;

	if(decimales)
	{
		return (key <= 13 || key == 44 || key == 46 || (key >= 48 && key <= 57));
	}
	return (key <= 13 ||  (key >= 48 && key <= 57));
}

function soloNumerosPos(evt,decimales){ //Solo n?meros positivos, ni negativos ni cero
	// NOTE: Backspace = 8, punto = 46 , coma = 44, Enter = 13, '0' = 48, '9' = 57
	var key = isNS4 ? evt.which : evt.keyCode;
	campo = evt.srcElement;
	val = campo.value;
	permiteCero = false;
	if(val.length>0){
		permiteCero = true;
	}

	if(decimales)
	{
		if(permiteCero){
			return (key <= 13 || key == 44 || key == 46 || (key >= 48 && key <= 57));
		}else{
			return (key <= 13 || key == 44 || key == 46 || (key >= 49 && key <= 57));
		}
	}
	if(permiteCero){
		return (key <= 13 ||  (key >= 48 && key <= 57));
	}else{
		return (key <= 13 ||  (key >= 49 && key <= 57));
	}
}

function validarNumero(obj,filtro)
{
	return validarNumero(obj,filtro,null,null);
}

function validarNumero(obj,filtro,minimo,maximo)
{
	if (obj.value.length >0)
	{
		if (!Mask(obj.value,filtro))
		{
			
			obj.value="";
			obj.focus();
		}
		else
		{
			
			obj.value=obj.value.replace(/\./g,",");
			obj.value=fillNumero(obj.value,filtro);
			
			if (minimo!=null || maximo!=null)
			{
				num = obj.value.replace(/\,/g,".");
				if (minimo!=null)
				{
					if (parseFloat(num)<minimo)
					{
						obj.value="";
						obj.focus();
					}
				}
				if (maximo!=null)
				{
					if (parseFloat(num)>maximo)
					{
						obj.value="";
						obj.focus();
					}
				}
			}
			
		}
	}
}

function cambiaPuntoComa(evt, keyCode, caracter){
	 	if(event.keyCode == keyCode){
	 		event.srcElement.value = event.srcElement.value + caracter; 
	 		event.returnValue = false;
	 		return false;
	 	}
	 	return true;	
}


function Mask(valor,filtro)
{
	var reg = new RegExp(filtro);
	return reg.test(valor);
}

//Autorellena al formato, es decir, tantos decimales como permita su formato
//Ej 12 (con 2 decimales) = 12,00
//12,3 = 12,30
//12,32 = 12,32
function fillNumero(s,filtro)
{
	
	var re = new RegExp(filtro);
	var m = re.exec(s);
	var result = s;
	
	  if (m != null) 
	  {
	    if (result.indexOf(",")==-1)
	    	result = result + ",";
	    while (true)
	    {
	    	if (Mask(result + "0",filtro))
	    	{
	    		result = result + "0";
	    	}
	    	else
	    		break;
	    }
	  }
	
	if (Mask(result,filtro))
		return result;
	else
		return s;
}
