//FUNÇÕES DE VALIDAÇÃO DE DADOS
//####################################################################################################################################
//####################################################################################################################################

function valida_inteiro(campo,valor){
	var revalor = /^\d+$/;
	if(revalor.test(valor)==false & valor!=''){
		alert("CAMPO NUMÉRICO.");
		document.getElementById(campo).value="";
		document.getElementById(campo).focus();
	}
}

function valida_decimal(campo,valor){
	var revalor = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
	if(revalor.test(valor)==false & valor!=''){
		alert("CAMPO NUMÉRICO DECIMAL.");
		document.getElementById(campo).value="";
		document.getElementById(campo).focus();
	}
}

function valida_e_mail(campo,valor){
	var revalor = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	if(revalor.test(valor)==false & valor!=''){
		alert("O E-MAIL DIGITADO É INVÁLIDO.");
		document.getElementById(campo).focus();
	}
}

function valida_data(campo,valor) {
	var date = valor;
	var array_data = new Array;
	var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
	//vetor que contem o dia o mes e o ano
	array_data = date.split("/");
	erro = false;
	if(date!=''){
		//Valido se a data esta no formato dd/mm/yyyy e se o dia tem 2 digitos e esta entre 01 e 31
		//se o mes tem d2 digitos e esta entre 01 e 12 e o ano se tem 4 digitos e esta entre 1000 e 2999
		if ( date.search(ExpReg) == -1 )
			erro = true;
		//Valido os meses que nao tem 31 dias com execao de fevereiro
		else if ( ( ( array_data[1] == 4 ) || ( array_data[1] == 6 ) || ( array_data[1] == 9 ) || ( array_data[1] == 11 ) ) && ( array_data[0] > 30 ) )
			erro = true;
		//Valido o mes de fevereiro
		else if ( array_data[1] == 2 ) {
			//Valido ano que nao e bissexto
			if ( ( array_data[0] > 28 ) && ( ( array_data[2] % 4 ) != 0 ) )
				erro = true;
			//Valido ano bissexto
			if ( ( array_data[0] > 29 ) && ( ( array_data[2] % 4 ) == 0 ) )
				erro = true;
		}
		if ( erro ) {
			alert("A DATA DIGITADA É INVÁLIDA.");
			form[campo].focus();
		}
	}
}
function validaCPF(campo,cpf){
	if(cpf!=""){
		erro = new String;
		if (cpf.length < 11) erro += "Sao necessarios 11 digitos para verificacao do CPF! ";
		var nonNumbers = /\D/;
		if (nonNumbers.test(cpf)) erro += "A verificacao de CPF suporta apenas numeros! ";
		if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf ==
			"33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf
			== "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
			erro += "Numero de CPF invalido!"
		}
		var a = [];
		var b = new Number;
		var c = 11;
		for (i=0; i<11; i++){
			a[i] = cpf.charAt(i);
			if (i < 9) b += (a[i] * --c);
			}
			if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
				b = 0;
				c = 11;
			for (y=0; y<10; y++) b += (a[y] * c--);
			if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
			if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
				erro +="Digito verificador com problema!";
			}
		if (erro.length > 0){
			alert(erro);
			document.form[campo].focus();
			return false;
		}
		return true;
	}
}
function validaCNPJ(campo,CNPJ){
	if(CNPJ!=''){
		erro = new String;
		/*if (CNPJ.length < 18) erro += "É necessario preencher corretamente o número do CNPJ! ";
			if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
			if (erro.length == 0) erro += "É necessário preencher corretamente o número do CNPJ! ";
		}*/
		//substituir os caracteres que não são números
		if(document.layers && parseInt(navigator.appVersion) == 4){
			x = CNPJ.substring(0,2);
			x += CNPJ. substring (3,6);
			x += CNPJ. substring (7,10);
			x += CNPJ. substring (11,15);
			x += CNPJ. substring (16,18);
			CNPJ = x;
		} else {
			CNPJ = CNPJ. replace (".","");
			CNPJ = CNPJ. replace (".","");
			CNPJ = CNPJ. replace ("-","");
			CNPJ = CNPJ. replace ("/","");
		}
		var nonNumbers = /\D/;
		if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! ";
			var a = [];
			var b = new Number;
			var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
			for (i=0; i<12; i++){
			a[i] = CNPJ.charAt(i);
			b += a[i] * c[i+1];
		}
		if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
			b = 0;
			for (y=0; y<13; y++) {
			b += (a[y] * c[y]);
		}
		if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
			if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
			erro +="Dígito verificador com problema!";
		}
		if (erro.length > 0){
			alert(erro);
			document.form[campo].focus();
			document.form[campo].select();
			return false;
		}
		return true;
	}
}
function obrigatorio(campo){
	if(document.getElementById(campo).value=''){
		alert("CAMPO OBRIGATÓRIO.");
		document.getElementById(campo).focus();
	}
}

function java_valida_contato(){
	CAMPOS='';
	if(document.form.NOME.value=='')CAMPOS=CAMPOS+'- NOME\n';
	if(document.form.E_MAIL.value=='')CAMPOS=CAMPOS+'- E-MAIL\n';
	if(document.form.TELEFONE.value=='')CAMPOS=CAMPOS+'- TELEFONE\n';
	if(document.form.CIDADE.value=='')CAMPOS=CAMPOS+'- CIDADE\n';
	if(document.form.ESTADO.value=='')CAMPOS=CAMPOS+'- ESTADO\n';
	if(document.form.MENSAGEM.value=='')CAMPOS=CAMPOS+'- MENSAGEM\n';
	
//	document.form.BTN_GRAVAR.disabled = true;
	
	if(CAMPOS!=''){
		alert('OS SEGUINTES CAMPOS DEVEM SER PREENCHIDOS:\n\n'+CAMPOS);
		return false;
	}
	else{
		java_contato(form.NOME.value,form.E_MAIL.value,form.TELEFONE.value,form.CIDADE.value,form.ESTADO.value,form.MENSAGEM.value)	
	}
}//fim funcao

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