/*
Funcoes:

validarCampos(formulario)  
Valida os campos de preenchimento obirgatório

ConsiteCGCCPF(p_NomeCampo) 
Verifica se o CPF ou o CNPJ é válido

*/
function validarCampos(formulario){
			for (i=0;i<formulario.length;i++) {
				var tempobj = formulario.elements[i];
				var obrigatorio = eval(tempobj.getAttribute('obrigatorio'));
				var nome_campo  = tempobj.getAttribute('nome_exibicao');
				var tipo = tempobj.getAttribute('tipo');
				if(obrigatorio == null) { obrigatorio = false }
				if(obrigatorio==true){
					if (ConsisteCampoBranco(tempobj.value) == true){
						alert("Você esqueceu de informar o campo \""+ nome_campo +"\".");
						tempobj.focus();
						return false;
					}
					else if( tipo == "email" )
					{
						isEmail(tempobj.value);
					}
				}
			}
			return true;
}

function ConsisteCampoBranco(str) {
	str = LimpaEspacoBrancoAll(str);
  if (str==null || str=="")
    return true;
  return false;
}

function LimpaEspacoBrancoAll(str) {
  if (str!=null) {
    while (str.length > 0 &&
      "\n\r\t ".indexOf(str.charAt(str.length - 1)) != -1)
      str = str.substring(0, str.length - 1);
    while (str.length > 0 &&
      "\n\r\t ".indexOf(str.charAt(0)) != -1)
      str = str.substring(1, str.length);
  }
  return str;
}

function ConsiteCGCCPF(p_NomeCampo){
  BASE = p_NomeCampo.value;
  if (BASE.length < 12){
	p_NomeCampo.value="";
	p_NomeCampo.focus();
	return false;
  }
  if (BASE.length > 11){
	 return ValidarCNPJ(p_NomeCampo);
  } 
}

function MascaraCNPJ(cnpj){	
	if(mascaraInteiro(cnpj)==false){		
		event.returnValue = false;	
	}		
	return formataCampo(cnpj, '00.000.000/0000-00', event);
}

function MascaraCep(cep){		
	if(mascaraInteiro(cep)==false){		
		event.returnValue = false;	
	}		
	return formataCampo(cep, '00.000-000', event);
}

function MascaraData(data){	
	if(mascaraInteiro(data)==false){
	   event.returnValue = false;	
	}		
	return formataCampo(data, '00/00/0000', event);
}

function MascaraTelefone(tel){		
	if(mascaraInteiro(tel)==false){		
		event.returnValue = false;	
	}		
	return formataCampo(tel, '(00) 0000-0000', event);
}

function MascaraCPF(cpf){	
	if(mascaraInteiro(cpf)==false){		
		event.returnValue = false;	
	}		
	return formataCampo(cpf, '000.000.000-00', event);
}

function ValidaTelefone(tel){	
	exp = /\(\d{2}\)\ \d{4}\-\d{4}/	
	if(!exp.test(tel.value))		
		alert('Numero de Telefone Invalido!');
}

function ValidaCep(cep){	
	exp = /\d{2}\.\d{3}\-\d{3}/	
	if(!exp.test(cep.value))		
		alert('Numero de Cep Invalido!');		
}

function ValidaData(data){	
	exp = /\d{2}\/\d{2}\/\d{4}/	
	if(!exp.test(data.value))		
		alert('Data Invalida!');			
}

function ValidarCPF(Objcpf){	
	var cpf = Objcpf.value;	
	exp = /\.|\-/g	
	cpf = cpf.toString().replace( exp, "" ); 	
	var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));    
	var soma1=0, soma2=0;	
	var vlr =11;		
	for(i=0;i<9;i++){        
		soma1+=eval(cpf.charAt(i)*(vlr-1));        
		soma2+=eval(cpf.charAt(i)*vlr);        
		vlr--;    
	}	    
	soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));    
	soma2=(((soma2+(2*soma1))*10)%11);	   
	var digitoGerado=(soma1*10)+soma2;	
	if(digitoGerado!=digitoDigitado){			
		alert('CPF Invalido!');
		return false;
	}			
}

function mascaraInteiro(){	
	if (event.keyCode < 48 || event.keyCode > 57){		
		event.returnValue = false;		
		return false;	
	}	
	return true;
}

function ValidarCNPJ(ObjCnpj){	
	var cnpj   = ObjCnpj.value;	
	var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);	
	var dig1= new Number;	
	var dig2= new Number;		
	exp = /\.|\-|\//g	
	cnpj = cnpj.toString().replace( exp, "" ); 	
	var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));			
	for(i = 0; i<valida.length; i++){		
		dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);			
		dig2 += cnpj.charAt(i)*valida[i];		
	}	
	dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));	
	dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));		
	if(((dig1*10)+dig2) != digito){			
		alert('CNPJ Invalido!');
		return false;
	}			
}

function formataCampo(campo, Mascara, evento){ 	
	var boleanoMascara; 		
	var Digitato = evento.keyCode;	
	exp = /\-|\.|\/|\(|\)| /g	
	campoSoNumeros = campo.value.toString().replace( exp, "" );        
	var posicaoCampo = 0;     	
	var NovoValorCampo="";    
	var TamanhoMascara = campoSoNumeros.length; 		
	if (Digitato != 8) { 
		for(i=0; i<= TamanhoMascara; i++) {     		
			boleanoMascara  = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == "/"))     		
			boleanoMascara  = boleanoMascara || ((Mascara.charAt(i) == "(") || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))     		
			if (boleanoMascara){     			
				NovoValorCampo += Mascara.charAt(i);     		  	
				TamanhoMascara++;			
			}
			else{     			
				NovoValorCampo += campoSoNumeros.charAt(posicaoCampo); 		    	
				posicaoCampo++;       		
			}       	       	
		}	 		
		campo.value = NovoValorCampo;      	
		return true; 	
	}
	else{     	
		return true; 	
	}
}
function isEmail(pStr)
{
  var reEmail = /^[\w!#$%&'*+/=?^`{|}~-]+(\.[\w!#$%&'*+/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
  eval("reEmail = reEmail");
  if( ( pStr == null ) || ( pStr == "" ) ) 
  {
    alert("O E-MAIL deverá ser informado.");
	return false;
  }
  else if( reEmail.test(pStr) == false )
  {
    alert(pStr + " NÃO é um endereço de e-mail válido.");
	return false;
  }
  else return true;
} // isEmail

