function isEmpty(str) {
   x = str.trim();

   if (x.length==0) {
       return true;
   } else {
       return false;
   }
}

function validaFormCadastro() {
	nome = document.getElementById('nome');
	tipo_pessoa = document.getElementById('tipo_pessoa');
	email_contato = document.getElementById('email_contato');
	confirm_email = document.getElementById('confirm_email');
	telefone = document.getElementById('telefone');
	site = document.getElementById('site');
	login = document.getElementById('login');
	senha = document.getElementById('senha');	
	captcha = document.getElementById('recaptcha_response_field');
	
	cidade = document.getElementById('cidade');
	estado = document.getElementById('estado');
	nome_responsavel = document.getElementById('nome_responsavel');
	
	tipo_pessoa = document.getElementById('tipo_pessoa');
	cpf_cnpj = document.getElementById('cpf_cnpj');
	
	
	if(!verccnpj(cpf_cnpj)){
		alert('Por favor, CNPJ inválido');
		return false;
	}
	else	if (isEmpty(nome_responsavel.value)) {
        alert('Por favor, o campo "Nome e Sobrenome Responsável" deve ser preenchido');
        return false;
    }	
	else	if (isEmpty(captcha.value)) {
        alert('Por favor, digite as duas palavras');
        return false;
    }
	else if (validaCaracteres(nome)) {
        alert('Por favor, o campo "Empresa" deve conter apenas letras e numeros.');
        return false;
    }
	else if (validaCaracteres(login.value)) {
        alert('Por favor, o campo "Login" deve conter apenas letras e numeros.');
        return false;
    }
	else if (isEmpty(nome.value)) {
        alert('Por favor, o campo "Nome/Empresa" deve ser preenchido');
        return false;
    }
    else if (isEmpty(email_contato.value)) {
        alert('Por favor, o campo "Email Contato" deve ser preenchido');
        return false;
    }
	 else if (!validaEmail(email_contato)) {
        alert('Por favor, o "E-mail" informado é inválido');
        return false;
    }
    else if (trim(email_contato.value) != trim(confirm_email.value)) {
        alert('Por favor, os campos "E-mail" e "Confirma E-mail" devem ser iguais');
        return false;
    }
	else if (isEmpty(site.value)) {
        alert('Por favor, o campo "Site" deve ser preenchido');
        return false;
    }
	else if (isEmpty(cidade.value)) {
        alert('Por favor, o campo "Cidade" deve ser preenchido');
        return false;
    }
	else if (isEmpty(estado.value)) {
        alert('Por favor, ao menos um  "Estado" deve ser selecionado');
        return false;
    }
    else if (isEmpty(telefone.value)) {
        alert('Por favor, o campo "Telefone" deve ser preenchido');
        return false;
    }
	else if (!validaTelefone(telefone)) {
        alert('Por favor, o "Telefone" informado é inválido');
        return false;
    }
    else if (isEmpty(login.value)) {
        alert('Por favor, o campo "Login" deve ser preenchido');
        return false;
    }
    else if (isEmpty(senha.value)) {
        alert('Por favor, o campo "Senha" deve ser preenchido');
        return false;
    } else {
        return true;
    }
}

function validaFormContato() {
	nome = document.getElementById('nome_form_contato');
	email_contato = document.getElementById('email_form_contato');
	mensagem = document.getElementById('mensagem_form_contato');
	area = document.getElementById('area_atuacao');
	
	
	if (isEmpty(nome.value)) {
        alert('Por favor, o campo "Nome/Empresa" deve ser preenchido');
        return false;
    }
    else if (isEmpty(email_contato.value)) {
        alert('Por favor, o campo "Email Contato" deve ser preenchido');
        return false;
    }
	 else if (!validaEmail(email_contato)) {
        alert('Por favor, o "E-mail" informado é inválido');
        return false;
    }
    else if (isEmpty(mensagem.value)) {
        alert('Por favor, o campo "Telefone" deve ser preenchido');
        return false;
    }
    else if (isEmpty(area.value)) {
        alert('Por favor, o campo "Login" deve ser preenchido');
        return false;
    }
	else {
        return true;
    }
}

function validaEmail(email_confirmacao) {
	email = /^[\w-\.]+\@[\w\.-]+\.[a-z]{2,4}$/;
		return email.test(trim(email_confirmacao.value));
}

function validaCaracteres(campo) {
	reg = /[&<>\[\]"\s]$/;
		return reg.test(campo.value);
}

function validaTelefone(campo) {
	reg = /[0-9]$/;
	if(reg.test(campo.value))
		if(campo.value.length < 8)
			return false;
		else return true;
	else return false;
}

function trim( str ) {
return str.replace(/^\s*/,"").replace(/\s*$/,"");
}

/**  * Função para aplicar máscara em campos de texto
     
     * APLICAÇÃO:
         1.  CPF: onkeyup="maskIt(this,event,'###.###.###-##')" 
         2.  TELEFONE: onkeyup="maskIt(this,event,'(##)####-####')"
         3.  DATA: onkeyup="maskIt(this,event,'##/##/####')"
         4.  DINHEIRO: onkeyup="maskIt(this,event,'###.###.###,##',true)"
         5.  CEP: onkeyup="maskIt(this,event,'#####-###')" 
         6.  CNPJ: onkeyup="maskIt(this,event,'##.###.###/####-##')" 
     */
     
     function maskIt(w,e,m,r,a){        
     	// Cancela se o evento for Backspace    
     	if (!e) var e = window.event    
     	if (e.keyCode) code = e.keyCode;    
     	else if (e.which) code = e.which;        
     	
     	// Variáveis da função    
     	var txt  = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();    
     	var mask = (!r) ? m : m.reverse();    var pre  = (a ) ? a.pre : "";    
     	var pos  = (a ) ? a.pos : "";   
     	var ret  = "";    
     	
     	if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false;   
     	 
     	// Loop na máscara para aplicar os caracteres    
     	for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){        
     		if(mask.charAt(x)!='#'){            
     	   	    ret += mask.charAt(x); x++;        
     	 	} else{            
     	 		ret += txt.charAt(y); y++; x++;        
     	 	 }
     	   }       

     	 // Retorno da função    
     	 ret = (!r) ? ret : ret.reverse()        
     	 w.value = pre+ret+pos;
     }
        // Novo método para o objeto 'String'
      String.prototype.reverse = function(){    
      	return this.split('').reverse().join('');
  };
  
function changeField(evento){
  	var a = document.getElementById("tipo_pessoa");
  	var b = document.getElementById("cpf_cnpj");
  	if( a.value == 2){
  		maskIt(b,evento,'##.###.###/####-##',false,false);
  	}else if(a.value == 1){
  		maskIt(b,evento,'###.###.###-##',false,false);
  	}else{
	    alert("Selecione o Tipo de Pessoa!");
	    clearbyId("cpf_cnpj");
  	}
  }
  
   function clearbyId(id){
    document.getElementById(id).value="";  	
  }
  

  /* Função que retira formatação do cpf (ponto e hífen) */
 function replaceAll(str){
    de = "."; //irá retirar os pontos
    var pos = str.indexOf(de);
     while (pos > -1){
      str = str.replace(de, "");
      pos = str.indexOf(de);
     }
    de = "-"; //irá retirar a virgula
    var pos = str.indexOf(de);
     while (pos > -1){
      str = str.replace(de, "");
      pos = str.indexOf(de);
     }	 
	 de = "/"; //irá retirar a virgula
    var pos = str.indexOf(de);
     while (pos > -1){
      str = str.replace(de, "");
      pos = str.indexOf(de);
     }

    return(str);

   }


function vercpf (cpfObj) {
	cpf = cpfObj.value;	 
	cpf = replaceAll(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")
     return false;
     add = 0;
      for (i=0; i < 9; i ++)
       add += parseInt(cpf.charAt(i)) * (10 - i);
       rev = 11 - (add % 11);
        if (rev == 10 || rev == 11)
         rev = 0;
          if (rev != parseInt(cpf.charAt(9)))
           return false;
           add = 0;
            for (i = 0; i < 10; i ++)
             add += parseInt(cpf.charAt(i)) * (11 - i);
             rev = 11 - (add % 11);
              if (rev == 10 || rev == 11)
               rev = 0;
                if (rev != parseInt(cpf.charAt(10)))
                 return false;
                 
                 return true;
 }
 
  function verccnpj(cnpjObj)  {
	  cnpj = cnpjObj.value;
	  cnpj = replaceAll(cnpj);
      var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
      digitos_iguais = 1;
      if (cnpj.length < 14 && cnpj.length < 15)
            return false;
      for (i = 0; i < cnpj.length - 1; i++)
            if (cnpj.charAt(i) != cnpj.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            tamanho = cnpj.length - 2
            numeros = cnpj.substring(0,tamanho);
            digitos = cnpj.substring(tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
                  return false;
            tamanho = tamanho + 1;
            numeros = cnpj.substring(0,tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
                  return false;
            return true;
            }
      else
            return false;
      } 
	  


