function validadata(data)
{
	var v_dia, v_mes, v_ano, v_data;
			
	v_data = data.value
			
	v_dia = v_data.substring(0,2);
	v_mes = v_data.substring(3,5);
	v_ano = v_data.substring(6,10);
			
	if (((v_ano < 1900) || (v_ano > 2999)) && (v_ano.length != 0))
	{
		data.focus()
		   alert('Data inválida');
		return(false);
	}

	if (v_dia > 31)
	{
		data.focus()
		   alert('Data inválida');
		return(false);
	}
			
	if (v_mes > 12)
	{
		data.focus()
		   alert('Data inválida');
		return(false);
	}
			
	if (v_dia == "31") 
	{
		if ((v_mes == "04") || (v_mes == "06") || (v_mes == "09") || (v_mes == "11"))
		{
			data.focus()
		   alert('Data inválida');
			return(false);
		}
	}
		

	if (v_mes == "02")
	{
		if (!(v_ano%4)) 
		{
			if (v_dia > 29)
			{
				data.focus()
		   alert('Data inválida');
				return(false);
			}
		}
		else if (v_dia > 28)
		{
			data.focus()
		   alert('Data inválida');
		   return(false);
		}
	}
			
	//o -if- abaixo testa se algum campo foi preenchido e outro deixado em branco deixando a data incompleta

	if (((v_dia != "") || (v_mes != "") || (v_ano != "")) && ((v_dia == "") || (v_mes == "") || (v_ano == "")))
	{
		data.focus()
		return(false);
	}
			
	return(true);
}

function validadatahoje(data)
{
	var v_dia, v_mes, v_ano, v_data, vh_data, vh_dia, vh_mes, vh_Ano;
			
	v_data = data.value
			
	v_dia = v_data.substring(0,2);
	v_mes = v_data.substring(3,5);
	v_ano = v_data.substring(6,10);
			
	if( validadata( data ) ) 
	{	
		// Verificar se a data é maior que o dia de hoje
	
		vh_data = new Date();
		vh_dia = vh_data.getDate();
		vh_mes = vh_data.getMonth() + 1;
		vh_ano = vh_data.getYear();

		if ( v_ano > vh_ano )
		{
			data.focus();
			alert('Data inválida')
			return(false);
		}
		if ( ( v_ano == vh_ano ) && ( v_mes > vh_mes ) ) 
		{
			data.focus();
			alert('Data inválida');
			return(false);
		}
		if ( ( v_ano == vh_ano ) && ( v_mes == vh_mes ) && ( v_dia > vh_dia ) ) 
		{
			data.focus();
			alert('Data inválida');
			return(false);
		}
	}
	else
	{
		return(false);
	}
	return(true);
}
