function digitsOnly(evt, dec_sep, obj, max)
{
	var key = getKeyCode(evt);
	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;
	}
	if(key == 45)
	{
		return obj.value.length == 0;
	}
	return (key == 0 || key == 8 || key == 9 || key == 13 || key == 16 || key == 37 || key == 39);
}
function getKeyCode(evt)
{
	return window.Event && evt.which ? evt.which : evt.keyCode;
}
function dateOnly(evt, sep, obj)
{
	var key = getKeyCode(evt);
	//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 = getKeyCode(evt);
	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 = getKeyCode(evt);
	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 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;
}