// Verifica se data é valida 

function validaData(dtData) {
var data = dtData;
var strDay;
var strMonth;
var strYear;

var intDay;
var intMonth;
var intYear;

  /* se o tamanho da data for menor que 1 retorna verdadeiro (vazio) */
if (data.length < 1) return false; 

  /* retira qualquer dado estranho da data */
data = data.replace( ".", "" );
data = data.replace( "/", "" );
data = data.replace( "/", "" );
tam = data.length + 1;

  /* pega os digitos separando dia, mes e ano */
strDay = data.substr(0, 2);
strMonth = data.substr(2, 2);
strYear = data.substr(4);

  /*  se o ano tiver somente dois digitos, converte para ano com quatro */
if (strYear.length == 2) return false;

  /*  se o ano for menos q 1900 */
if (parseInt(strYear) < 1900) return false;

  /* converte valores das datas para inteiros para poder fazer calculos sobre eles */
intDay = parseInt(strDay, 10);
if (isNaN(intDay)) return false;

intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) return false;

intYear = parseInt(strYear, 10);
if (isNaN(intYear)) return false;

  /* verifica se o mes he menor que 1 ou he maior que 12 */
if (intMonth > 12 || intMonth < 1) return false;


  /* verifica a validade dos dias no mes (30 ou 31) */
if (( intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intDay > 31 || intDay < 1)) return false;

if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intDay > 30 || intDay < 1)) return false;  

 /* verifica o caso de fevereiro */
if (intMonth == 2) {
    if (intDay < 1) return false;
       /* funcao retorna se ano bissesto */
    if (verificaBissesto(intYear)) {
      if (intDay > 29) return false; 
    }
    else {
      if (intDay > 28) return false; 
    }
}


  return true; 

}

//*******************************************************************************************

  /* Verifica se bissesto */
function verificaBissesto(intYear) {

if (intYear % 100 == 0) {
  if (intYear % 400 == 0) return true; 
}

else {
  if ((intYear % 4) == 0) return true; 
}

return false;

}

