
/**
* FORMATAR CPF
*
* Modo de Utilizacao: onKeyPress="return(Formatar_Cpf(this,event))"
*
**/

function Formatar_Cpf(o,e){

	var vr = o.value;
	var tam = vr.length;
	var strCheck = "0123456789";
	var cTecla = ' ';
	e = (e) ? e : (window.event) ? event : null;
	var nTamanho=0;
	var cValor='';


	if (e)
	{
		var nCodTecla = (e.charCode) ? e.charCode :
		((e.keyCode) ? e.keyCode :
		((e.which) ? e.which : 0));

	}

	//libera a teclas
	if (nCodTecla == 8) return true; //Backspace
	if (nCodTecla == 37) return true; //Seta Esq
	if (nCodTecla == 39) return true; //Seta Direita

	cValor = o.value;

	// Verifica se é um Valor ou Numero
	cTecla = String.fromCharCode(nCodTecla);



	// Não é um Número ou Valor Válido
	if (strCheck.indexOf(cTecla) == -1)
	{
		return false;
	}

	if (tam == 3)
	cValor = vr.substr( 0, 3 ) + '.';
	if (tam == 7)
	cValor =  vr.substr( 0, 7 ) + '.';
	if  (tam == 11)
	cValor = vr.substr( 0, 11) + '-';
	o.value=cValor;
}

/****
* ENTRADA APENAS LETRAS
*
* Modo de Utilizacao: onKeyPress="return letter(event)"
*
****/

function letter(e)
{
	var key;
	var keychar;

	if (window.event)
	key = window.event.keyCode;
	else if (e)
	key = e.which;
	else
	return true;
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	// control keys
	if ((key==null) || (key==0) || (key==8) ||
	(key==9) || (key==13) || (key==27) )
	return true;

	// alphas
	else if ((("abcdefghijklmnopqrstuvwxyz").indexOf(keychar) > -1))
	return true;
	else
	return false;
}



/****
* ENTRADA APENAS NUMERO
*
* Modo de Utilizacao: onKeyPress="return number(event)"
*
****/

function number(e)
{
	var key;
	var keychar;

	if (window.event)
	key = window.event.keyCode;
	else if (e)
	key = e.which;
	else
	return true;
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	// control keys
	if ((key==null) || (key==0) || (key==8) ||
	(key==9) || (key==13) || (key==27) )
	return true;

	//  numbers
	else if ((("0123456789").indexOf(keychar) > -1))
	return true;
	else
	return false;
}


/**
* FORMATAR TELEFONE
*
* Modo de Utilizacao: onKeyPress="return(TelFormat(this,event))"
*
**/

function TelFormat(o,e){

	var vr = o.value;
	var tam = vr.length;
	var strCheck = '0123456789';
	var cTecla = '';
	e = (e) ? e : (window.event) ? event : null;
	var nTamanho=0;
	var cValor='';


	if (e)
	{
		var nCodTecla = (e.charCode) ? e.charCode :
		((e.keyCode) ? e.keyCode :
		((e.which) ? e.which : 0));

	}

	//libera a teclas
	if (nCodTecla == 8) return true; //Backspace
	if (nCodTecla == 37) return true; //Seta Esq
	if (nCodTecla == 39) return true; //Seta Direita

	cValor = o.value;

	// Verifica se é um Valor ou Numero
	cTecla = String.fromCharCode(nCodTecla);



	// Não é um Número ou Valor Válido
	if (strCheck.indexOf(cTecla) == -1)
	{
		return false;
	}
	// Pega o Numero de Caracteres Digitados
	nTamanho = cValor.length;
	
	
	//libera a teclas

	if (nCodTecla == 8) return true; //Backspace
	if (nCodTecla == 37) return true; //Seta Esq
	if (nCodTecla == 39) return true; //Seta Direita
	
	// Verifica se é um Valor ou Numero
	cTecla = String.fromCharCode(nCodTecla);

	// Não é um Número ou Valor Válido
	if (strCheck.indexOf(cTecla) == -1){
		return false;
	}
	if (tam == 4)
	cValor = vr.substr( 0, 4 ) + '-';
	o.value=cValor;
}

/**
* FORMATAR RESPOSTA DO GABARITO
*
* Modo de Utilizacao: onKeyPress="return(respostaFormat(this,event))"
*
**/

function respostaFormat(o,e){

	var vr = o.value;
	var tam = vr.length;
	var nTamanho=0;
	var strCheck = 'abcde0';
	var cTecla = '';
	e = (e) ? e : (window.event) ? event : null;
	//var nCodTecla = (window.Event) ? e.which : e.keyCode;

	var cValor= vr;
	var maximo = 1; //Tamanho máx do campo
	var nTamanho = cValor.length; // Pega o Numero de Caracteres Digitados
	var resto = nTamanho % 2 //verificar se é par ou ímpar

	if (e)
	{
		var nCodTecla = (e.charCode) ? e.charCode :
		((e.keyCode) ? e.keyCode :
		((e.which) ? e.which : 0));

	}

	//alert(nCodTecla);
	//libera a teclas


	if (nCodTecla == 8) return true; //Backspace
	if (nCodTecla == 9) return true; //Tab
	if (nCodTecla == 37) return true; //Seta Esq
	if (nCodTecla == 39) return true; //Seta Direita
	if (nCodTecla == 48) return true; // Zero
	if (nCodTecla == 65) return true; //a
	if (nCodTecla == 66) return true; //b
	if (nCodTecla == 67) return true; //c
	if (nCodTecla == 68) return true; //d
	if (nCodTecla == 69) return true; //e
	if (nCodTecla == 96) return true; //numpad 0



	// Verifica se é um Valor ou Numero
	cTecla = String.fromCharCode(nCodTecla);



	// Não é um Número ou Valor Válido
	if (strCheck.indexOf(cTecla) == -1)
	{
		return false;
	}

	//Se for par retorna o caracter digirado
	/*if (resto == 0)
	{
		cValor;
	}
	else //se for ímpar acrescenta vírgula
	{
		cValor += ',';
	}
*/

	//Se o num de caracteres digitados <= máximo permitido
	if(nTamanho < maximo)
	{
		o.value=cValor;
	}
	else
	{
		// trava para digitacao se for maior que maximo
		o.value=o.value.substring(0,nTamanho-1);
	}

}




/***
*
* FORMATA RESPOSTA
***/

function fresposta(e)
{
	var key;
	var keychar;

	if (window.event)
	key = window.event.keyCode;
	else if (e)
	key = e.which;
	else
	return true;
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	// control keys
	if ((key==null) || (key==0) || (key==8) ||
	(key==9) || (key==13) || (key==27) || (key==48)|| (key==96) )
	return true;

	// alphas
	else if ((("abcde0").indexOf(keychar) > -1))
	return true;
	else
	return false;
}


/**
* FORMATAR CEP
*
* Modo de Utilizacao: onKeyPress="return(Formatar_Cep(this,event))"
*
**/

function Formatar_Cep(o,e) {

	// o = objeto
	// e = evento
	// s = separador

	var s = '-';
	var strCheck = '0123456789';
	var cTecla = '';
	e = (e) ? e : (window.event) ? event : null;
	var nTamanho=0;
	var cValor='';


	if (e)
	{
		var nCodTecla = (e.charCode) ? e.charCode :
		((e.keyCode) ? e.keyCode :
		((e.which) ? e.which : 0));

	}

	//libera a teclas
	if (nCodTecla == 8) return true; //Backspace
	if (nCodTecla == 37) return true; //Seta Esq
	if (nCodTecla == 39) return true; //Seta Direita
	if (nCodTecla == 13) return false; //Enter

	cValor = o.value;

	// Verifica se é um Valor ou Numero
	cTecla = String.fromCharCode(nCodTecla);



	// Não é um Número ou Valor Válido
	if (strCheck.indexOf(cTecla) == -1)
	{
		return false;
	}
	// Pega o Numero de Caracteres Digitados
	nTamanho = cValor.length;
	
	

	if (nTamanho<9) {

		if (cValor.length==5) cValor=cValor.substring(0,5)+s;

		o.value=cValor;

	} else {

		// trava para digitacao se for maior que 10
		o.value=o.value.substring(0,nTamanho-1);

	}

}


/**
* FORMATAR DATA
*
* Modo de Utilizacao: onKeyPress="return(Formatar_Data(this,event,'/'))"
*
**/


function Formatar_Data(o,e) {

	// o = objeto
	// e = evento
	// s = separador

	var s = '/';
	var strCheck = '0123456789';
	var cTecla = '';
	//var nCodTecla = (window.Event) ? e.which : e.keyCode;
	e = (e) ? e : (window.event) ? event : null;
	var nTamanho=0;
	var cValor='';


	if (e)
	{
		var nCodTecla = (e.charCode) ? e.charCode :
		((e.keyCode) ? e.keyCode :
		((e.which) ? e.which : 0));

	}



	//libera a teclas
	if (nCodTecla == 8) return true; //Backspace
	if (nCodTecla == 37) return true; //Seta Esq
	if (nCodTecla == 39) return true; //Seta Direita


	cValor = o.value;

	// Verifica se é um Valor ou Numero
	cTecla = String.fromCharCode(nCodTecla);



	// Não é um Número ou Valor Válido
	if (strCheck.indexOf(cTecla) == -1)
	{
		return false;
	}
	// Pega o Numero de Caracteres Digitados
	nTamanho = cValor.length;

	if (nTamanho<10) {

		if (cValor.length==2) cValor=cValor.substring(0,2)+s;
		if (cValor.length==5) cValor=cValor.substring(0,5)+s;

		o.value=cValor;

	} else {

		// trava para digitacao se for maior que 10
		o.value=o.value.substring(0,nTamanho-1);

	}

}

/**
* FORMATAR HORA
*
* Modo de Utilizacao: onKeyPress="return(Formatar_Hora(this,event,':'))"
*
**/

function Formatar_Hora(o,e,s) {

	// o = objeto
	// e = evento
	// s = separador

	var strCheck = '0123456789';
	var cTecla = '';
	var nTamanho=0;
	var cValor='';
	if (e)
	{
		var nCodTecla = (e.charCode) ? e.charCode :
		((e.keyCode) ? e.keyCode :
		((e.which) ? e.which : 0));

	}


	//libera a teclas
	if (nCodTecla == 9) return true;
	if (nCodTecla == 8) return true;
	if (nCodTecla == 37) return true;
	if (nCodTecla == 39) return true;
	if (nCodTecla == 46) return true;
	if (nCodTecla == 13) return false;

	cValor=o.value;

	// Verifica se é um Valor ou Numero
	cTecla = String.fromCharCode(nCodTecla);

	// Não é um Número ou Valor Válido
	var teste = strCheck.indexOf(cTecla);
	// alert(cTecla);
	if (strCheck.indexOf(cTecla) == -1){
		//	return false;
	}
	// Pega o Numero de Caracteres Digitados
	nTamanho = cValor.length;

	if (nTamanho<5) {

		if (cValor.length==2) cValor=cValor.substring(0,2)+s;
		o.value=cValor;

	} else {

		// trava para digitacao se for maior que 10
		o.value=o.value.substring(0,nTamanho-1);

	}

}

/**
* FORMATAR CNPJ
*
* Modo de Utilizacao: onKeyPress="return(Formatar_Cnpj(this,event))"
*
**/

function Formatar_Cnpj(o,e){

	var vr = o.value;
	var tam = vr.length;
	var strCheck = '0123456789';
	var cTecla = ' ';
	var nCodTecla = (window.Event) ? e.which : e.keyCode;
	var cValor= vr;

	// bloquear tecla
	if (e.keyCode == 46) return false;
	//libera a teclas
	if (e.keyCode == 9) return true;
	if (e.keyCode == 8) return true;
	if (e.keyCode == 37) return true;
	if (e.keyCode == 39) return true;
	if (e.keyCode == 46) return true;

	// Verifica se é um Valor ou Numero
	cTecla = String.fromCharCode(nCodTecla);

	// Não é um Número ou Valor Válido
	if (strCheck.indexOf(cTecla) == -1){
		//   		 return false;
	}

	if (tam == 2)
	cValor = vr.substr( 0, 2 ) + '.';

	if (tam == 6)
	cValor =  vr.substr( 0, 6 ) + '.';

	if  (tam == 10)
	cValor = vr.substr( 0, 10) + '/';

	if  (tam == 15)
	cValor = vr.substr( 0, 15) + '-';

	o.value=cValor;

}

/**
* VALIDA CPF
*
* Modo de Utilizacao: onKeyPress="return(Formatar_Cnpj(this,event))"
*
**/

function valida_CPF(s)
{
	var i;
	s = limpa_string(s);
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(10-i);
	}
	if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(11-i);
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
	return true;
}

function limpa_string(S)
{
	// Deixa só os digitos no numero
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";

	for (var i=0; i<S.length; i++)	{
		digito = S.charAt(i);
		if (Digitos.indexOf(digito)>=0)	{
			temp=temp+digito	}
	} //for

	return temp
}

/**
*  VALIDAR CADASTRO
*
* modo de uso: <form onSubmit="return validar_cadastro(this)" >
*
**/


function validar_cadastro(Form)
{
	var invalid, s;
	invalid = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;

	var s;

	if (document.getElementById("cpf").value.length == 0)
	{
		alert("O CPF É UM CAMPO OBRIGATÓRIO !");
		document.getElementById("cpf").focus();
		document.getElementById("cpf").style.background= "#DDEEFF";
		return false;
	}


	if (document.getElementById("nome").value.length == '')
	{
		alert("Campo Obrigatório !!! \n O Campo NOME deve ser preenchido!!!");
		document.getElementById("nome").focus();
		document.getElementById("nome").style.background= "#DDEEFF";
		return false;
	}


	if (document.getElementById("rg").value.length == 0)
	{
		alert("O RG É UM CAMPO OBRIGATÓRIO !");
		document.getElementById("rg").focus();
		document.getElementById("rg").style.background= "#DDEEFF";
		return false;
	}

	if(VerificaData(document.getElementById("nascimento").value) == false)
	{
		alert("A Data de Nascimento está incorreta!");
		document.getElementById("nascimento").focus();
		document.getElementById("nascimento").style.background= "#DDEEFF";
		return false;
	}
	
	var S = limpa_string(document.getElementById("cpf").value);


	// checa se é cpf
	if (validarCPF() == false )
	{
		alert("O CPF não é válido!");
		document.getElementById("cpf").focus();
		document.getElementById("cpf").style.background= "#DDEEFF";
		return false;
	}

	if (document.getElementById("nascimento").value.length == '')
	{
		alert("Campo Obrigatório !!! \n O Campo DATA DE NASCIMENTO deve ser preenchido!!!");
		document.getElementById("nascimento").focus();
		document.getElementById("nascimento").style.background= "#DDEEFF";
		return false;
	}


	if (document.getElementById("endereco").value.length == '')
	{
		alert("Campo Obrigatório !!! \n O Campo ENDEREÇO deve ser preenchido!!!");
		document.getElementById("endereco").focus();
		document.getElementById("endereco").style.background= "#DDEEFF";
		return false;
	}


	if (document.getElementById("bairro").value.length == '')
	{
		alert("Campo Obrigatório !!! \n O Campo BAIRRO deve ser preenchido!!!");
		document.getElementById("bairro").focus();
		document.getElementById("bairro").style.background= "#DDEEFF";
		return false;
	}

	if (document.getElementById("cep").value.length == '')
	{
		alert(" Campo Obrigatório !!! \n O Campo CEP deve ser preenchido!!!");
		document.getElementById("cep").focus();
		document.getElementById("cep").style.background= "#DDEEFF";
		return false;

	}else if (document.getElementById("cep").value.length < 9)
	{
		alert(" Campo Obrigatório !!! \n CEP INVALIDO!!!");
		document.getElementById("cep").focus();
		document.getElementById("cep").style.background= "#DDEEFF";
		return false;
	}

	if (document.getElementById("cidade").value.length == 0)
	{
		alert("Campo Obrigatório !!! \n O Campo CIDADE deve ser preenchido!!!");
		document.getElementById("cidade").focus();
		document.getElementById("cidade").style.background= "#DDEEFF";
		return false;
	}

	if (document.getElementById("uf").value.length == 0)
	{
		alert("Campo Obrigatório !!! \n O Campo Estado deve ser preenchido!!!");
		document.getElementById("uf").focus();
		document.getElementById("uf").style.background= "#DDEEFF";
		return false;
	}


	if (document.getElementById("ddd_telefone").value.length < 2)
	{
		alert("Campo Obrigatório !!! \n O DDD do TELEFONE deve ser preenchido!!!");
		document.getElementById("ddd_telefone").focus();
		document.getElementById("ddd_telefone").style.background= "#DDEEFF";
		return false;
	}
	if (document.getElementById("telefone").value.length < 9)
	{
		alert("Campo Obrigatório !!! \n O Campo TELEFONE deve ser preenchido!!!");
		document.getElementById("telefone").focus();
		document.getElementById("telefone").style.background= "#DDEEFF";
		return false;
	}

	if (document.getElementById("email").value.length == 0)
	{
		alert("Por favor preencha o seu e-mail")
		alert("E-mail Inválido!\nVerifique a digitação");
		document.getElementById("email").focus();
		document.getElementById("email").style.background= "#DDEEFF";
		return false
	}

	if (echeck(document.getElementById("email").value) == false)
	{
		alert("E-mail Inválido!\nVerifique a digitação");
		document.getElementById("email").focus();
		document.getElementById("email").style.background= "#DDEEFF";
		return false
	}

	if (document.getElementById("senha").value.length == 0)
	{
		alert("Campo Obrigatório !!! \n O Campo SENHA deve ser preenchido!!!");
		document.getElementById("senha").focus();
		document.getElementById("senha").style.background= "#DDEEFF";
		return false;
	}

	if (document.getElementById("senha").value.length < 6)
	{
		alert("O Campo SENHA DEVE TER NO MÍNIMO 6 DÍGITOS!!!");
		document.getElementById("senha").focus();
		document.getElementById("senha").style.background= "#DDEEFF";
		return false;
	}

	return true;
}


function validarCPF()
{
	var cpf = document.cadastro.cpf.value;
	var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;
	if(!filtro.test(cpf))
	{
		window.alert("CPF inválido. Tente novamente.");
		return false;
	}

	cpf = remove(cpf, ".");
	cpf = remove(cpf, "-");

	if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" ||
	cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" ||
	cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" ||
	cpf == "88888888888" || cpf == "99999999999"){
		window.alert("CPF inválido. Tente novamente.");
		return false;
	}

	soma = 0;
	for(i = 0; i < 9; i++)
	soma += parseInt(cpf.charAt(i)) * (10 - i);
	resto = 11 - (soma % 11);
	if(resto == 10 || resto == 11)
	resto = 0;
	if(resto != parseInt(cpf.charAt(9))){
		window.alert("CPF inválido. Tente novamente.");
		return false;
	}
	soma = 0;
	for(i = 0; i < 10; i ++)
	soma += parseInt(cpf.charAt(i)) * (11 - i);
	resto = 11 - (soma % 11);
	if(resto == 10 || resto == 11)
	resto = 0;
	if(resto != parseInt(cpf.charAt(10))){
		window.alert("CPF inválido. Tente novamente.");
		return false;
	}
	return true;
}

function remove(str, sub) {
	i = str.indexOf(sub);
	r = "";
	if (i == -1) return str;
	r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
	return r;
}


function echeck(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		alert("E-mail Inválido")
		return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		alert("E-mail Inválido")
		return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		alert("E-mail Inválido")
		return false
	}

	if (str.indexOf(at,(lat+1))!=-1){
		alert("E-mail Inválido")
		return false
	}

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		alert("E-mail Inválido")
		return false
	}

	if (str.indexOf(dot,(lat+2))==-1){
		alert("E-mail Inválido")
		return false
	}

	if (str.indexOf(" ")!=-1){
		alert("E-mail Inválido")
		return false
	}

	return true
}

/**
* VERIFICA FORÇA DA SENHA
*
* modo de uso:
*       <input type="password" onkeyup="checa_seguranca('csenha', 'pass');">
*       <div id="pass" style="font-size:12px;"></div>
*
*
**/


function checa_seguranca(pass, campo)
{
	var senha = document.getElementById(pass).value;
	var entrada = 0;
	var resultado;

	if(senha.length < 8){
		entrada = entrada - 1;
	}

	if(!senha.match(/[a-z_]/i) || !senha.match(/[0-9]/)){
		entrada = entrada - 1;
	}

	if(!senha.match(/\W/))
	{
		entrada = entrada - 1;
	}

	if(entrada == 0)
	{
		resultado = "A Segurança de sua senha é: <span style='font:bold 12px Verdana,Arial,Helvetica,Sans-Serif; color: #007766;'>EXECELENTE</span>";
	}
	else if(entrada == -1)
	{
		resultado = "A Segurança de sua senha é: <span style='font:bold 12px Verdana,Arial,Helvetica,Sans-Serif;color: #7F7FFF;'>BOA</span>";
	}
	else if(entrada == -2)
	{
		resultado = "A Segurança de sua senha é: <span style='font:bold 12px Verdana,Arial,Helvetica,Sans-Serif; color: #FF3311;'>BAIXA</span>";
	}
	else if(entrada == -3)
	{
		resultado = "A Segurança de sua senha é: <span style='font: bold 12px Verdana,Arial,Helvetica,Sans-Serif;color: #A04040;'>MUITO BAIXA</span>";
	}

	document.getElementById(campo).innerHTML = resultado;

	return;
}

/**
* MUDA PARA O PROXIMO CAMPO
*
* modo de uso: onkeyup="proximo_campo(this,this.value)"
*
*
*
**/
function proximo_campo(elmnt,content)
{
	if (content.length==elmnt.maxLength)
	{
		next=elmnt.tabIndex
		if (next<document.forms[0].elements.length)
		{
			document.forms[0].elements[next].focus()
		}
	}
}

/**
* VALIDA DATA
**/


function VerificaData(digData)
{
    var bissexto = 0;
    var data = digData;
    var tam = data.length;
    if (tam == 10)
    {
        var dia = data.substr(0,2)
        var mes = data.substr(3,2)
        var ano = data.substr(6,4)
        if ((ano > 1900)||(ano < 2100))
        {
            switch (mes)
            {
                case '01':
                case '03':
                case '05':
                case '07':
                case '08':
                case '10':
                case '12':
                    if  (dia <= 31)
                    {
                        return true;
                    }
                    break
                
                case '04':        
                case '06':
                case '09':
                case '11':
                    if  (dia <= 30)
                    {
                        return true;
                    }
                    break
                case '02':
                    /* Validando ano Bissexto / fevereiro / dia */
                    if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0))
                    {
                        bissexto = 1;
                    }
                    if ((bissexto == 1) && (dia <= 29))
                    {
                        return true;                
                    }
                    if ((bissexto != 1) && (dia <= 28))
                    {
                        return true;
                    }            
                    break                        
            }
        }
    }    
    alert("A Data "+data+" é inválida!");
    return false;
}

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(); 
              } 
          } 
