/* -----------------------------------------------------------
	Descricao : funcao que valida data 
				(Verifica se os carateres da data digitada 
				são validos)
	Parametros: dat - campo data
	Retorno   : true ou false
	Globais   : -
-------------------------------------------------------------*/

function isDate(dat) 
{
 
//*** Verifica se a data possui o número de caracteres desejado ***

   if ((dat.length < 10) || (dat.length > 10))
    { 
		//alert("O formato da data é DD/MM/YYYY.");
		return (false);
	}
	
//*** Verifica se o separador de data é "/" ****

  for (j=0; j < dat.length; j++) 
  {
	if ((j == 2) || (j == 5)) 
	{
		if (dat.charAt(j) != "/") 
		{ 
			//alert("O formato da data é DD/MM/YYYY.");
			return (false);
		}
	} 
	//*** Verifica se os dados são numéricos ***
	else 
		{
			if ((dat.charAt(j) < "0") || (dat.charAt(j) > "9")) 
			{ 
				//alert("Data inválida.");
				return (false);
			}
		}
  }
  
//*** Separa as substrings da data em dia,mes e ano ***
  var dia = dat.charAt(0) == "0"?parseInt(dat.substring(1,2)):parseInt(dat.substring(0,2));	
  var mes = dat.charAt(3) == "0"?parseInt(dat.substring(4,5)):parseInt(dat.substring(3,5));
  var begin = dat.charAt(6) == "0"?(dat.charAt(7) == "0"?(dat.charAt(8) == "0" ? 9 : 8) : 7) : 6;
  var ano = parseInt(dat.substring(begin, 10));

//*** dat a validade das substrings dia,mes,ano ***

  if (dia == 0) 
  { 
	//alert("Dia inválido.")
	return false 
  }
  if (mes == 0 || mes > 12) 
  { 
	//alert("Mês inválido.") 
	return false 
  }
  if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12) 
  {
    if (dia > 31) 
	{
	  //alert("Dia inválido. O dia não pode ser maior que 31") 
	  return false 
	 }
   } else 
	  {
		if (mes == 4 || mes == 6 || mes == 9 || mes == 11) 
		{
			if (dia > 30) 
			{
				//alert("Dia inválido. Esse mês possui apenas 30 dias")
				return false 
			}
		} 
		else 
		{
			if (ano % 4 == 0 && ano % 100 != 0 || ano % 400 == 0) 
			{
				
				if (dia > 29) 
				{ 
					//alert("Dia inválido. O dia não pode ser maior que 29.")
					return false 
				}
			} 
			else 
			{
				if (dia > 28) 
				{ 
					//alert("Dia inválido. O dia não pode ser maior que 28.")
					return false 
				}
			}
		  }
		}
  return true;
}



