function ValidaData(DATA, len, type, message ) { if( (len != 6) && (len != 8) ) { if( message == null ) { alert("Data inválida"); DATA.focus(); DATA.select(); } return false; } if( type == 2 ) { // 15/01/1999 var wDIA = DATA.value.substring(0,2); var wMES = DATA.value.substring(3,5); var wANO = DATA.value.substring(6,len+2); var wDATA = wANO+wMES+wDIA; } else { // 15011999 var wDIA = DATA.value.substring(0,2); var wMES = DATA.value.substring(2,4); var wANO = DATA.value.substring(4,len); var wDATA = wANO+wMES+wDIA; } if( (wDIA == "") && (wMES == "") && (wANO == "") ) return true; if( isNaN(wDATA) ) { if( message == null ) { alert("Data inválida"); DATA.focus(); DATA.select(); } return false; } if( wDATA.length != len ) { if( message == null ) { alert("Data inválida"); DATA.focus(); DATA.select(); } return false; } bissexto = ( Math.ceil(wANO/4) == Math.floor(wANO/4) ); valid = true; if( (wDIA < 1) || (wDIA > 31) ) valid = false; if( (wMES < 1) || (wMES > 12) ) valid = false; if( ( (wMES==4) || (wMES==6) || (wMES==9) || (wMES==11) ) && wDIA>30 ) valid = false; if( wMES==2 ) if( bissexto ) { if( wDIA>29 ) valid = false; } else if( wDIA>28 ) valid = false; if( !valid ) { if( message == null ) { alert("Data inválida"); DATA.focus(); DATA.select(); } return false; } return true; }