
function ltrim(sCadena)
{
	for (var iCount = 0; iCount < sCadena.length && sCadena.charCodeAt(iCount) <= 32 ; iCount++);
	return sCadena.substring(iCount, sCadena.length);
}

function rtrim(sCadena)
{
	for (var iCount = sCadena.length - 1; iCount >= 0 && sCadena.charCodeAt(iCount) <= 32 ; iCount--);
	return sCadena.substring(0, iCount + 1);
}

function trim(sCadena)
{
	return rtrim(ltrim(sCadena));
}

function parseVal(val)
{
	while (val.charAt(0) == '0')
		val = val.substring(1, val.length);
    return val;
}

function msg(obj,mensaje)
{
	alert(mensaje);
	obj.select();
	obj.focus();
	return(false);
}

function ValidarFecha(objDia,objMes,objAnno)
{
	if (!ValidarTexto(objDia,1,'Dia','0123456789')) return(false);
	if (!ValidarTexto(objMes,1,'Mes','0123456789')) return(false);
	if (!ValidarTexto(objAnno,4,'Año','0123456789')) return(false);

	var DiasMes = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	var FechaActual = '29/05/2001';
	var Dia = parseInt(parseVal(objDia.value));
	var Mes = parseInt(parseVal(objMes.value));
	var Anno = parseInt(parseVal(objAnno.value));
	var DiaActual = parseInt(parseVal(FechaActual.substring(0,2)));
	var MesActual = parseInt(parseVal(FechaActual.substring(3,5)));
	var AnnoActual = parseInt(parseVal(FechaActual.substring(6,10)));

	if (Mes<1 || Mes>12) return(msg(objMes,'El mes sólo puede ser entre 1 y 12.'));
	if (Anno<1900 || Anno>AnnoActual) return(msg(objAnno,'Año no permitido.'));
	if (((Anno % 4 == 0) && (Anno % 100 != 0)) || (Anno % 400 ==0))	
		DiasMes[2] = 29;
	if (Dia<1 || Dia>DiasMes[Mes]) return(msg(objDia,'El día sólo puede ser entre 1 y '+DiasMes[Mes]+'.'));

	if (AnnoActual-Anno<18) return(msg(objDia,'La Fecha de Nacimiento indica que es menor de 18 años.'));
	if (AnnoActual-Anno==18)
	{
		if (MesActual-Mes<0) return(msg(objDia,'La Fecha de Nacimiento indica que es menor de 18 años.'));
		if (MesActual-Mes==0)
		{
			if (DiaActual-Dia<0) return(msg(objDia,'La Fecha de Nacimiento indica que es menor de 18 años.'))
		}
	}
	if (Dia<10) objDia.value = '0'+Dia;
	if (Mes<10) objMes.value = '0'+Mes;
	return(true);
}


function ValidarTexto( obj, min, sCampo, sOpcional)
{
	var strChrValidos = sOpcional;
	var sw = true;
	var i;
	var letra;
	var strValor = trim(obj.value);
	obj.value = strValor;

	if (strValor=='')
		return msg(obj, 'Debe ingresar un valor en el campo ' + sCampo);			
	if (min>0)
	{
		if (strValor.length<min)
			return msg(obj, 'Debe ingresar como mínimo ' + min + ' en el campo ' + sCampo);		}
	
	for (i = 0; i < strValor.length; i++)
	{
		letra = strValor.substring(i,i+1);
		if (strChrValidos.indexOf(letra)==-1)
		{
			sw = false;
			break;
		}
	}

	if (!sw)
		return msg(obj,	'Caracter no valido en campo ' + sCampo);			
	return(true);
}


