function digitsOnly(evt, dec_sep, obj, max)
{
	var key = (window.Event ? evt.which : evt.keyCode);
	if(dec_sep != null && dec_sep != "")
	{
		if(key == dec_sep.charCodeAt(0))
			return obj.value.indexOf(dec_sep) == -1 && obj.value.indexOf('.') == -1;
		if(dec_sep != '.' && key == 46 && obj.value.indexOf(dec_sep) == -1 && obj.value.indexOf('.') == -1)
		{
			var posCur = posicionCursor(obj);
			obj.value = obj.value.substring(0,posCur)+String.fromCharCode(dec_sep.charCodeAt(0))+obj.value.substring(posCur);
			return false;
		}
	}
	if((key >= 48 && key <= 57))
	{
		if(max == null)
			return true;
		var valor = obj.value.length > 0  ? parseInt(obj.value) : 0;
		valor = valor + "" + (key - (key > 57 ? 96 : 48));
		return valor <= max;
	}
	return (key == 0 || key == 8 || key == 9 || key == 13 || key == 16 || key == 37 || key == 39);
}
function dateOnly(evt, sep, obj)
{
	var key = (window.Event ? evt.which : evt.keyCode);
	//NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
	return (key == 0 || key == 8 || key == 9 || key == 13 || (key >= 48 && key <= 57) || key == sep.charCodeAt(0));
}
function phoneOnly(evt, obj)
{
	var key = (window.Event ? evt.which : evt.keyCode);
	int_symbol = "+";
	if(key == int_symbol.charCodeAt(0))
		return obj.value.indexOf(int_symbol) == -1;
	//NOTE: Space = 32, Backspace = 8, Enter = 13, '0' = 48, '9' = 57
	return (key == 0 || key == 32 || key == 8 || key == 9 || key == 13 || (key >= 48 && key <= 57));
}
function charsOnly(evt, validChars)
{
	var key = (window.Event ? evt.which : evt.keyCode);
	for(c=0; c<validChars.length; c++)
		if(validChars.charCodeAt(c) == key)
			return true;
	return (key == 0 || key == 8 || key == 9 || key == 13 || key == 16 || key == 37 || key == 39);
}
function emailOnly(evt, obj, extraChars)
{
	if(charsOnly(evt, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@._-"+extraChars))
	{
		obj.value = obj.value.toLowerCase();
		return true;
	}
	return false;
}
function checkMaxLen(maxlen, obj)
{
	return obj.value.length <= maxlen;
}
function fixMaxLen(maxlen, obj)
{
	if(obj.value.length > maxlen)
		obj.value = obj.value.substring(0, maxlen);
}
function decimales(numero, decimales, dec_sep)
{
	if(dec_sep == null)
		dec_sep = ',';
	numero = numero.toString();
	if(dec_sep != '.')
		numero = numero.replace('.',dec_sep);
	var i = numero.lastIndexOf(dec_sep);
	if(i == -1)
	{
		numero += ",";
	}
	else
	{
		numero = (i > -1) ? numero.substr(0,i+decimales+1) : numero;
	}
	while(numero.lastIndexOf(dec_sep) > (numero.length - decimales - 1))
	{
		numero += "0";
	}
	return numero;
}
function posicionCursor(tb)
{
	var cursor = -1;
	// IE
	if(document.selection && (document.selection != 'undefined'))
	{
		var _range = document.selection.createRange();
		var contador = 0;
		while(_range.move('character', -1))
			contador++;
		cursor = contador;
	}
	// FF
	else if(tb.selectionStart >= 0)
		cursor = tb.selectionStart;

	return cursor;
}