<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> 
<html>
<head>
       <title>coded by nobody</title>
       <script>
          function mascara_data(data){
              var mydata = '';
              mydata = mydata + data;
              if (mydata.length == 2){
                  mydata = mydata + '/';
                  document.forms[0].data.value = mydata;
              }
              if (mydata.length == 5){
                  mydata = mydata + '/';
                  document.forms[0].data.value = mydata;
              }
              if (mydata.length == 10){
                  verifica_data();
              }
          }
          
          function verifica_data () {

			dia = (document.forms[0].data.value.substring(0,2));
			mes = (document.forms[0].data.value.substring(3,5));
			ano = (document.forms[0].data.value.substring(6,10));

			situacao = "";
			// verifica o dia valido para cada mes
			if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) {
				situacao = "falsa";
			}

			// verifica se o mes e valido
			if (mes < 01 || mes > 12 ) {
				situacao = "falsa";
			}

			// verifica se e ano bissexto
			if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) {
				situacao = "falsa";
			}
   
			if (document.forms[0].data.value == "") {
				situacao = "falsa";
			}
   
			if (situacao == "falsa") {
				alert("Data inv�lida!");
				document.forms[0].data.focus();
			}
          }

          function mascara_hora(hora){
              var myhora = '';
              myhora = myhora + hora;
              if (myhora.length == 2){
                  myhora = myhora + ':';
                  document.forms[0].hora.value = myhora;
              }
              if (myhora.length == 5){
                  verifica_hora();
              }
          }
          
          function verifica_hora(){
              hrs = (document.forms[0].hora.value.substring(0,2));
              min = (document.forms[0].hora.value.substring(3,5));
              
              alert('hrs '+ hrs);
              alert('min '+ min);
              
              situacao = "";
              // verifica data e hora
              if ((hrs < 00 ) || (hrs > 23) || ( min < 00) ||( min > 59)){
                  situacao = "falsa";
              }
              
              if (document.forms[0].hora.value == "") {
                  situacao = "falsa";
              }

              if (situacao == "falsa") {
                  alert("Hora inv�lida!");
                  document.forms[0].hora.focus();
              }
          }
       </script>
</head>
<body>
<form>
  <input type="text" name="data" OnKeyUp="mascara_data(this.value)" maxlength="10"> dd/mm/aaaa<br>
  <input type="text" name="hora" OnKeyUp="mascara_hora(this.value)" maxlength="5"> hh:mm<br>
<form>
</body>
</html>