
var diasMes = new Array(12);
diasMes[1] = 31;
diasMes[2] = 29;
diasMes[3] = 31;
diasMes[4] = 30;
diasMes[5] = 31;
diasMes[6] = 30;
diasMes[7] = 31;
diasMes[8] = 31;
diasMes[9] = 30;
diasMes[10] = 31;
diasMes[11] = 30;
diasMes[12] = 31;

function diasFevereiro (ano) {  
    return ( ((ano % 4 == 0) && ( (!(ano % 100 == 0)) || (ano % 400 == 0) ) ) ? 29 : 28 );
}

function dataValida(data) {
  var i;  
  if ((barra1 = data.indexOf('/')) < 1) return false;
  if ((barra2 = data.substring(barra1+1, data.length).indexOf('/')) < 1) return false;
  if (barra2+barra1+1 != data.lastIndexOf('/')) return false;
  dia = data.substring(0,barra1);
  mes = data.substring(barra1+1, barra2+barra1+1);
  ano = data.substring(barra2+barra1+2, data.length);
  var data = dia + mes + ano;
  for (i = 0; i < data.length; i++) {   
        var ch = data.charAt(i);
        if ((ch < "0" || ch > "9")) return false;
  }
  if ((mes == 2) && (dia > diasFevereiro(ano))) return false;
  if ((dia>diasMes[parseFloat(mes)]) || (dia<1) || (mes<1) || (mes>12) || (ano<1900) || (ano>2078)) return false;
  return true;
}

function digitaData(Campo,teclapres) {
	var tecla = teclapres.keyCode;
	vr = Campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 ){
		if ( tam > 2 && tam < 5 )
			Campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
		if ( tam >= 5 && tam <= 10 )
			Campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); }
}

