function mascara(o,f){
    v_obj=o
    v_fun= f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function leech(v){
    v=v.replace(/o/gi,"0")
    v=v.replace(/i/gi,"1")
    v=v.replace(/z/gi,"2")
    v=v.replace(/e/gi,"3")
    v=v.replace(/a/gi,"4")
    v=v.replace(/s/gi,"5")
    v=v.replace(/t/gi,"7")
    return v
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}

function campoTelefone(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que n??o ?? d??gito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca par??nteses em volta dos dois primeiros d??gitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca h??fen entre o quarto e o quinto d??gitos
    return v
}

function campoNome(v) {
	//v = v.replace(/[^a-zA-Z????????????????????????????????????????  ]/g,"");
	v = v.replace(/[0-9!@#$%??&*`??^~=+]/g,"");
	var c, m, mS, mL, f;
	   m = v;
	   m = m.toLowerCase();
	   mS = m.split(" ");
	   mL = mS.length;
	   for(var i = 0; i < mL; i++){
	      if(mS[i].length > 2 && mS[i]!= 'dos' && mS[i]!= 'das'){
	        var str1 = mS[i].substring(0,1);
	         mS[i] = mS[i].replace(str1, str1.toUpperCase());
	     }
	   }
	   v = mS.join(" ");
	 return v
}

function cpffun(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
                                             //de novo (para o segundo bloco de números)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
	//v = v.substring(0,14)
    return v
}

function campoDataNasc(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{2})(\d)/,"$1/$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
                                             //de novo (para o segundo bloco de números)
	v = v.substring(0,10)						 
    return v
}

function campoCep(v){
		v = v.replace(/\D/g, "") 				//Remove tudo o que não é dígito
		v = v.replace(/^(\d{5})(\d)/, "$1-$2") 	//Esse é tão fácil que não merece explicações
		v = v.substring(0,9)
		return v
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////

function validaForm(){
	
	//validar campo Nome vazio
	if ((document.getElementById("tf_nome")!=null) && (document.getElementById("tf_nome").value == "")){
    	alert("O campo Nome deve ser preenchido!");
        document.getElementById("tf_nome").focus();
        return false;
    }
	
	//validar campo CPF vazio e consistente
	if (document.getElementById("tf_cpf")!=null)  {
		cpf = document.getElementById('tf_cpf').value;
	
		cpf = cpf.replace(/\./g, "").replace(/-/g, "");
		
		erro = new String;
		if (cpf.length < 11) {
			erro += "S\u00E3o necess\u00E1rios 11 d\u00EDgitos para verifica\u00E7\u00E3o do CPF!";
		}
		if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") {
			erro += "CPF inv\u00E1lido!"
		}
		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 += "CPF inv\u00E1lido!  Por favor, verifique o valor inserido!";
		}
		
		if (erro.length > 0) {
			alert(erro);
			document.getElementById("tf_cpf").focus();
			return false;
		}
	}
	
	//validar existencia e consistencia de telefone
	if ((document.getElementById("tf_telefone") != null)) {
		if ((document.getElementById("tf_telefone").value.length >= 0) && (document.getElementById("tf_telefone").value.length != 14)) {
			alert("O campo Telefone precisa ser preenchido corretamente! \n O formato deve ser (XX) XXXX-XXXX");
			//alert((document.getElementById("usuario.celular").value.length));
			document.getElementById("tf_telefone").focus();
			return false;
		}
	}
	
	//validar campo Data de Nascimento vazio e consistente
	if ((document.getElementById("tf_nascimento")!=null) && (document.getElementById('tf_nascimento').value == "")){
    	alert("O campo Data de Nascimento deve ser preenchido!");
        document.getElementById('tf_nascimento').focus();
		return false;
	}
		
	if ((document.getElementById("tf_nascimento")!=null) && (document.getElementById('tf_nascimento').value != "")){
			var date=document.getElementById('tf_nascimento').value;
			var ardt=new Array;
			var ExpReg=new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
			ardt=date.split("/");
			erro=false;
			if ( date.search(ExpReg)==-1){
				erro = true;
				}
			else if (((ardt[1]==4)||(ardt[1]==6)||(ardt[1]==9)||(ardt[1]==11))&&(ardt[0]>30))
				erro = true;
			else if ( ardt[1]==2) {
				if ((ardt[0]>28)&&((ardt[2]%4)!=0))
					erro = true;
				if ((ardt[0]>29)&&((ardt[2]%4)==0))
					erro = true;
			}
			
			if (erro) {
				alert("O campo Data de Nascimento est\u00E1 preenchido errado!");
				document.getElementById('tf_nascimento').focus();
				return false;
			}

    }
	
	if ((document.getElementById("tf_nascimento")!=null) && (document.getElementById('tf_nascimento').value != "")) {
		var date = document.getElementById('tf_nascimento').value;
		var dataAtual = new Date();
		var anoAtual = dataAtual.getFullYear();
		var anoNascParts = date.split('/');
		var diaNasc =anoNascParts[0];
		var mesNasc =anoNascParts[1];
		var anoNasc =anoNascParts[2];
		var idade = anoAtual - anoNasc;
		var mesAtual = dataAtual.getMonth() + 1;
		//se mês atual for menor que o nascimento, nao fez aniversario ainda; (26/10/2009)
		if(mesAtual < mesNasc){
		idade--;
		}else {
		//se estiver no mes do nasc, verificar o dia
		if(mesAtual == mesNasc){
		if(dataAtual.getDate() < diaNasc ){
		//se a data atual for menor que o dia de nascimento ele ainda nao fez aniversario
		idade--;
		}
		}
		}
		
		if (idade < 16 || idade > 80) {
			alert("O campo Data de Nascimento deve conter um valor entre 16 e 80 anos!");
			document.getElementById('tf_nascimento').focus();
			return false;
		}

    }
	
	//validar campos País/Cidade/Estado vazios
	if ((document.getElementById("tf_pais")!=null) && (document.getElementById("tf_pais").value == "")) {
		alert("Por favor selecione um País!");
		document.getElementById("tf_pais").focus();
		return false;
	}
	
	if (document.getElementById("tf_pais").value == "brasil"){

		if ((document.getElementById("tf_estado").value == "")) { 
			alert("Por favor selecione um Estado!");
			document.getElementById("tf_estado").focus();
			return false;
		}
		
		if ((document.getElementById("tf_cidade").value == "")) { 
			alert("Por favor selecione uma Cidade!");
			document.getElementById("tf_cidade").focus();
			return false;
		}
	} else if(document.getElementById("tf_pais").value != ""){
		if ((document.getElementById("estadoOutro").value == "")) { 
			alert("O campo Estado deve ser preenchido!");
			document.getElementById("estadoOutro").focus();
			return false;
		}
		
		if ((document.getElementById("cidadeOutro").value == "")) { 
			alert("O campo Cidade deve ser preenchido!");
			document.getElementById("cidadeOutro").focus();
			return false;
		}
	}
	
	//validar campo e-mail vazio
	if ((document.getElementById("tf_email")!=null) && (document.getElementById("tf_email").value == "")) {
		alert("O campo E-mail deve ser preenchido!");
		document.getElementById("tf_email").focus();
		return false;
	}
	
	//validar email(verificao de endereco eletrônico)
	if ((document.getElementById("tf_email")!=null) && (document.getElementById("tf_email").value != "")) {
		var str = document.getElementById("tf_email").value;
		var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		if (!filter.test(str)) {
			alert("Este endere\u00E7o de e-mail n\u00E3o \u00E9 v\u00E1lido!");
			document.getElementById("tf_email").focus();
			return false;
		}
	}
	
	//validar e-mail ser igual à confirmação de e-mail
	if ((document.getElementById("tf_email")!=null) &&(document.getElementById('tf_email').value) != ((document.getElementById("tf_confemail")) && document.getElementById('tf_confemail').value)) {
		alert("Os campos E-mail e Confirma\u00E7\u00E3o de e-mail devem ser iguais!");
		document.getElementById('tf_confemail').focus();
		return false;
	}
	
	//validar campo senha vazio
	if ((document.getElementById("tf_senha")!=null) && (document.getElementById("tf_senha").value == "")) {
		alert("O campo Senha deve ser preenchido!");
		document.getElementById("tf_senha").focus();
		return false;
	}
	
	//validar campo senha e confirmação de senha iguais
	if ((document.getElementById("tf_senha")!=null) &&(document.getElementById('tf_senha').value) != ((document.getElementById("tf_confsenha")) && document.getElementById('tf_confsenha').value)) {
		alert("Os campos Senha e Confirma\u00E7\u00E3o de senha devem ser iguais!");
		document.getElementById('tf_confsenha').focus();
		return false;
	}
	
	//validar campo Instituição vazio
	if ((document.getElementById("tf_instituicao2")!=null) && (document.getElementById("tf_instituicao2").value == "")) {
		alert("O campo Instituição deve ser preenchido!");
		document.getElementById("tf_instituicao2").focus();
		return false;
	}
	
	//validar campo CEP vazio
	if ((document.getElementById("tf_cep2")!=null) && (document.getElementById("tf_cep2").value == "")) {
		alert("O campo CEP deve ser preenchido!");
		document.getElementById("tf_cep2").focus();
		return false;
	}
	
	//validar campo País da Instituição vazio
	if ((document.getElementById("tf_pais2")!=null) && (document.getElementById("tf_pais2").value == "")) {
		alert("Por favor selecione um País!");
		document.getElementById("tf_pais2").focus();
		return false;
	}
	
	//validar campo Logradouro da Instituição vazio
	if ((document.getElementById("tf_logradouro2")!=null) && (document.getElementById("tf_logradouro2").value == "")) {
		alert("O campo Logradouro deve ser preenchido!");
		document.getElementById("tf_logradouro2").focus();
		return false;
	}
	
	//validar campo Número da Instituição vazio
	if ((document.getElementById("tf_numero2")!=null) && (document.getElementById("tf_numero2").value == "")) {
		alert("O campo Número deve ser preenchido!");
		document.getElementById("tf_numero2").focus();
		return false;
	}
	
	//validar saceitação dos Termos e Condições
	if (document.getElementById("aceitoTermo").checked == false) {
		alert("Os Termos e Condições precisam ser aceitos!");
		document.getElementById("aceitoTermo").focus();
		return false;
	}
	
	return true;
}
	
//Fun????o para limita????o de caracteres na Textarea
function limitaText(p_objCampo, p_permitido){

	if (p_objCampo.value.length > p_permitido) {
		alert("A quantidade de caracteres digitados ultrapassou " + p_permitido + ". Os caracteres excedidos ser\u00E3o retirados.");
		p_objCampo.value = p_objCampo.value.substr(0, p_permitido)
		
		if (p_objCampo.value.length > p_permitido) 
			p_objCampo.value = p_objCampo.value.substr(0, p_permitido - 1)
	}
}

