/////////////////////////////////////////Script para validar data/////////////////////////////////

////////////desenvolvido por Alexandre Machado -2001

///  valida data:
/*  para acessar ative a função a partir do campo
    dia : onKeyUp="validadia(campodia,campomes)"
    mes : onKeyUp="validames(campomes,campoano)"
    ano : onKeyUp="validaano(campodia,campomes,campoano)" */
	
///  valida hora:
/*  para acessar ative a função a partir do campo
    hora 	: onKeyUp="validahora(campohora,campominuto)"
    minuto 	: onKeyUp="validaminuto(campohora,campominuto)" */

//////////////////////////////////////////////////////////////////////////////////////////////////

function error(campo){
	campo.focus();
	campo.select();
}

//////////////////////////valida data
diaOk=false;
mesOk=false;
anoOk=false;

function validadia(tmD,tmM){  
 	if (tmD.value.length>1) {
		//tmD.focus();
		if (isNaN(tmD.value)||tmD.value>31){
			alert("dia Inválido!");
			error(tmD);
		} else{
			diaOk=true;
			tmM.focus();
   	    }
 	}
}

function validames(tmM,tmY){
	if (tmM.value.length>1){
  		if (isNaN(tmM.value)||tmM.value>12){
			alert("mês Inválido!");
			error(tmM);
		} else{
			mesOk=true;
			tmY.focus();
   	    }
 	}
}

function validaano(tmD,tmM,tmY){
	if (tmY.value.length>3){
		tmdia = tmD.value;
		tmmes = tmM.value;
		tmano = tmY.value;
   
		varmesf=tmmes*2
		varmesi=varmesf-2
   
		diasanonormal="312831303130313130313031"
		dias="312831303130313130313031"

		isLeap = ((tmano%4 == 0 && tmano%100 != 0) || (tmano%400 == 0))

		if( isLeap ){ 
			dias = diasanonormal.replace(/8/g,"9"); 
		}

		if (tmmes<1||tmmes>13){
			error(tmM);
			alert("mês inválido!");
		}else{
			if (tmdia>(dias.substring(varmesi,varmesf))){
	            error(tmD);
	            alert("dia não válido no mês em questão!!");
	        }
      	}
      	if (isNaN(tmano) || tmano<1900 || tmano>2050){
        	error(tmY);
          	alert("ano inválido!");
		} else{
			anoOk=true;
   	    }
  	}
}

//////////////////////  valida hora

function validaHora(hr,mn){
	if (hr.value.length>1){
		//hr.focus();
	  	if (isNaN(hr.value)||hr.value>23){
      		alert("hora Inválida!");
      		error(hr);
		}//else{
//	  		error(mn);
	//	}
	}
}

function validaMinuto(hr,mn){
	if (mn.value.length>1){
		//mn.focus();
	  	if (isNaN(mn.value)||mn.value>59){
      	alert("minuto Inválido!");
      	error(mn);
		}
    }	
}