function checkdate(d,m,y){var valid=true,isleap,maxday;if(testanobis(y))
isleap=1;else
isleap=0;maxday=ndiasmes(m);if(!maxday)
valid=false;else{if(m==2)
maxday+=isleap;if(d>maxday)
valid=false;}
return valid;}
function testanobis(y){if(y%4)
return 0;else
return 1;}
function ndiasmes(m){if(m==1)
return 31;else if(m==2)
return 28;else if(m==3)
return 31;else if(m==4)
return 30;else if(m==5)
return 31;else if(m==6)
return 30;else if(m==7)
return 31;else if(m==8)
return 31;else if(m==9)
return 30;else if(m==10)
return 31;else if(m==11)
return 30;else if(m==12)
return 31
else
return 0;}
function setcentury(valyear,swcentury){var lenyear;lenyear=String(valyear).length;if((lenyear==4&&swcentury)||(lenyear==2&&!swcentury))
return valyear;else{if(lenyear==4)
return valyear.substring(2,4);else
if(valyear>10)
return(19+valyear);else
if(valyear==10)
return(20+valyear);else
return(valyear.length==2?20+valyear:200+valyear);}}
function isdigit(ch){ch=String(ch);if(ch=="0")
return true;else if(ch=="1")
return true;else if(ch=="2")
return true;else if(ch=="3")
return true;else if(ch=="4")
return true;else if(ch=="5")
return true;else if(ch=="6")
return true;else if(ch=="7")
return true;else if(ch=="8")
return true;else if(ch=="9")
return true;else return false;}
function formatdata(obj,divisor,showcentury){var vday=0,vmonth,vyear,strdate=" ",count;if(divisor.length!=1)
divisor="/";if(obj.value==""){}
else{strdate=obj.value;vday=strdate.substring(0,2);if(!isdigit(vday.substring(0,1)))
vday='0'+strdate.substring(1,2);if(!isdigit(vday.substring(1,2))){if(vday.substring(0,1)=='0')
vday='0'+'1';else
vday='0'+vday.substring(0,1);}
strdate=vday+(strdate.substring(2,3)==divisor?"":divisor)+strdate.substring(2,strdate.length);for(count=0;isdigit(strdate.substring(count,count+1));count++);count++;vmonth=strdate.substring(count,count+2);if(!isdigit(strdate.substring(3,4)))
vmonth='0'+vmonth.substring(1,2);if(!isdigit(strdate.substring(4,5))){if(vmonth=='0')
vmonth="01";else
vmonth='0'+vmonth.substring(0,1);}
strdate=vday+divisor+vmonth+(strdate.substring(5,6)==divisor?(""+strdate.substring(5,strdate.length)):(divisor+strdate.substring(5,strdate.length)));for(count=strdate.length-1;isdigit(strdate.substring(count,count+1));count--)
vyear=strdate.substring(count,strdate.length);vyear=setcentury(vyear,showcentury);obj.value=vday+divisor+
vmonth+divisor+
vyear;}}
function ValidarCaracter(event, txValidos) {
	var key;
	var keyCode = document.layers ? event.which : document.all ? event.keyCode : document.getElementById ? event.which : 0;		
	if (keyCode==0) return true; //desconhecido
	if (keyCode==37) return true; //left arrow
	if (keyCode==38) return true; //up arrow
	if (keyCode==39) return true; //right arrow
	if (keyCode==40) return true; //down arrow
	if (keyCode==46) return true; //delete
	if (keyCode==8) return true; //backspace
	if (keyCode==13) return true; //enter
	key = String.fromCharCode(keyCode);
	return (txValidos.indexOf(key) != -1);
}

function DateValidation(controle){
  if (controle.value != "") {
    var boo
	this.dtSrc=controle.value;
	this.dtValue="";
	boo=_isDate();
	
	if (boo) {
		controle.value= this.dtValue;
	}
	else {
		alert('Data Inválida');
		controle.focus();
	}	
  }	
}
function _isDate(){
	//alert("dtSrc: "+this.dtSrc);
	var vrs=/^(0[1-9]|[1-2][0-9]|3[0-1])(0[1-9]|1[0-2])(\d{2}|19\d{2}|20\d{2})$/.exec(justNumbersStr(this.dtSrc));
	if(!vrs || vrs.length<4)return false;
	var d=parseInt(vrs[1],10),m=parseInt(vrs[2],10),a=parseInt(vrs[3],10);
	//alert("a: "+a+" m: "+m+" d: "+d);		
	if(a<100)a+=(a<30?2000:1900);
	if(/^(4|6|9|11)$/.test(m) && d==31)return false;
	if(m==2){
		var bissexto=(((a%4==0)&&a%100!=0)||a%400==0);
		if(d>29 ||(d==29 && !bissexto))return false;
	}
	//alert("dtValue: "+this.dtValue);
	//alert("repeatStr(d,'0',2): "+repeatStr(d,"0",2));
	this.dtValue=repeatStr(d,"0",2)+"/"+repeatStr(m,"0",2)+"/"+a;
	//alert("dtValue: "+this.dtValue);
	
	return true;
}


function dataIni_onblur() {
	var dd, mm, aaaa, strdata, tam;
	if (document.frmBuscaDetalhada.data1.value!="") {
		tam = document.frmBuscaDetalhada.data1.value.length;
		if (tam < 5) {
			window.alert("Data inválida!")
			document.frmBuscaDetalhada.data1.value="";
			document.frmBuscaDetalhada.data1.focus();
			return false;
		}
		formatdata(document.frmBuscaDetalhada.data1, '/', true);
		strdata = document.frmBuscaDetalhada.data1.value;
		dd   = strdata.substring(0,2);
		mm   = strdata.substring(3,5);
		aaaa = strdata.substring(6,10);
		if (!checkdate(dd, mm, aaaa)) {
			window.alert("Data inválida!");
			document.frmBuscaDetalhada.data1.value="";
			document.frmBuscaDetalhada.data1.focus();
		}
	}
}
function dataFim_onblur() {
	var dd, mm, aaaa, strdata, tam;
	if(document.frmBuscaDetalhada.data2.value!="") {
		tam = document.frmBuscaDetalhada.data2.value.length;
		if(tam < 5) {
			window.alert("Data inválida!")
			document.frmBuscaDetalhada.data2.value="";
			document.frmBuscaDetalhada.data2.focus();
			return false;
		}
		formatdata(document.frmBuscaDetalhada.data2, '/', true);
		strdata = document.frmBuscaDetalhada.data2.value;
		dd   = strdata.substring(0,2);
		mm   = strdata.substring(3,5);
		aaaa = strdata.substring(6,10);
		if( !checkdate(dd, mm, aaaa)) {
			window.alert("Data inválida!");
			document.frmBuscaDetalhada.data2.value="";
			document.frmBuscaDetalhada.data2.focus();
		}
	}
}
function dataMaiorMenor_onblur() {
	var vData1 = document.frmBuscaDetalhada.data1.value;
	var vData2 = document.frmBuscaDetalhada.data2.value;
	if((vData1=="" && vData2=="") || (vData1!="" && vData2=="")) {
		return false;	
	}
	if(vData2!="" && vData1=="") {
		window.alert("Data Inicial deve ser preenchida!");
		document.frmBuscaDetalhada.data2.value="";
		document.frmBuscaDetalhada.data1.focus();
	}	
	var dia = new Date();
	var mes = new Date();
	var ano = new Date();
	var dia2 = new Date();
	var mes2 = new Date();
	var ano2 = new Date();
		
	dia = vData1.substring(0,2) 
	mes = vData1.substring(3,5) 
	ano = vData1.substring(6,10) 
	dia2 = vData2.substring(0,2) 
	mes2 = vData2.substring(3,5) 
	ano2 = vData2.substring(6,10)
	var data_1 = new Date(ano,mes,dia);		
	var data_2 = new Date(ano2,mes2,dia2);
	if (data_1 > data_2) {
		window.alert("Data Final deve ser maior ou igual a Data Inicial!");
		document.frmBuscaDetalhada.data2.value="";
		document.frmBuscaDetalhada.data2.focus();
	}
	return true;
}
