function openAjax() {
	var ajax;
	try{
		ajax = new XMLHttpRequest();
	}catch(ee){
		try{
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(E){
				ajax = false;
			}
		}
	}
	return ajax;
}
var ajax = openAjax();


function cadastrarPerfil(d,nome,email,endereco,numero,bairro,cidade,estado,cep,telefone,nascimento,sexo,rg,login,senha){
	var r = document.getElementById("result");
	r.style.position = 'absolute';
	r.style.marginLeft = '-320px';
	r.innerHTML = '<img src=\"../imagens/carregando.gif\"> Efetuando cadastro ...';
	ajax.open("POST","../servlet/br.com.perfil.ferramentas.GerenciadorPerfil",true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	ajax.setRequestHeader("Pragma", "no-cache");
	
	ajax.onreadystatechange = function(){
		if (ajax.readyState == 4){
			if (ajax.status == 200){
				retorno=unescape(ajax.responseText.replace(/\+/g," "));
				alert(retorno);
				r.innerHTML = '';
				var elementos = d.elements;
				for(i=0;i<elementos.length;i++){
					if(elementos[i].type == 'text' || elementos[i].type == 'password'){
						elementos[i].value = '';
					}
					if(elementos[i].type == 'radio'){
						elementos[i].checked = false;
					}
				}
			}else{
				alert("Problemas ao carregar o arquivo.");
			}
		}
	}
	ajax.send("acao=addUsuario&nome="+nome+"&email="+email+"&endereco="+endereco+"&numero="+numero+"&bairro="+bairro+"&cidade="+cidade+"&estado="+estado+"&cep="+cep+"&telefone="+telefone+"&nascimento="+nascimento+"&sexo="+sexo+"&rg="+rg+"&login="+login+"&senha="+senha+"&dummy="+new Date().getTime());
}


function verificarLogin(login){
	var r = document.getElementById("result");
	r.style.position = 'absolute';
	r.style.marginLeft = '-320px';
	r.innerHTML = '<img src=\"../imagens/carregando.gif\"> Verificando login ...';
	ajax.open("GET","../servlet/br.com.perfil.ferramentas.GerenciadorPerfil?acao=verificarLogin&login="+login+"&dummy="+new Date().getTime(),true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	ajax.setRequestHeader("Pragma", "no-cache");
	
	ajax.onreadystatechange = function(){
		if (ajax.readyState == 4){
			if (ajax.status == 200){
				retorno=unescape(ajax.responseText.replace(/\+/g," "));
				document.getElementById("Vlogin").value = retorno;
				r.innerHTML = '';
			}else{
				alert("Problemas ao carregar o arquivo.");
			}
		}
	}
	ajax.send(null);
}



function validaCadastroPerfil(d){
	var saida = document.getElementById("erro");
	while(saida.firstChild) {
		saida.removeChild(saida.firstChild);
	}
	try{
		montaFechar(saida,"x");
		if(d.nome.value == "")
			montaErro(saida,"O campo Nome deve ser preenchido");
		if(validaEmail(d.email.value) != "")
			montaErro(saida,validaEmail(d.email.value));
		if(d.endereco.value == "")
			montaErro(saida,"O campo Endereco deve ser preenchido");
		if(d.numero.value == "")
			montaErro(saida,"O campo Numero deve ser preenchido");
		if(d.bairro.value == "")
			montaErro(saida,"O campo Bairro deve ser preenchido");
		if(d.cidade.value == "")
			montaErro(saida,"O campo Cidade deve ser preenchido");
		if(d.estado.value == "")
			montaErro(saida,"O campo Estado deve ser preenchido");
		if(d.cep.value == "")
			montaErro(saida,"O campo CEP ser preenchido");
		if(d.telefone.value == "")
			montaErro(saida,"O campo Telefone ser preenchido");
		if(d.nascimento.value == "")
			montaErro(saida,"O data de nasc. deve ser preenchido");
		if (d.nascimento.value.substring(2,3) != "/" && d.nascimento.value.substring(5,6) != "/")
			montaErro(saida,"Formato invalido. Ex: dd/mm/aaaa");
		if(d.sexo[0].checked == false && d.sexo[1].checked == false)
			montaErro(saida,"Selecione alguma opcao de sexo");
		if(d.rg.value == "")
			montaErro(saida,"O campo RG deve ser preenchido");
		if(d.login.value == "")
			montaErro(saida,"O campo Login deve ser preenchido");
		if(d.Vlogin.value == "true")
			montaErro(saida,"O Login escolhido esta em uso. Escolha outro login !");
		if(d.senha.value == "")
			montaErro(saida,"O campo Senha deve ser preenchido");
		if(d.rsenha.value == "")
			montaErro(saida,"O campo Redigite a Senha deve ser preenchido");
		if (d.senha.value != "" && d.rsenha.value != "" && d.senha.value != d.rsenha.value){
			montaErro(saida,"Senhas nao conferem !");
			d.senha.value = "";
			d.rsenha.value = "";
		}
		if(saida.childNodes.length > 1){
			hideSelect();
			saida.style.display = 'block';
			return false;
		}
		cadastrarPerfil(d,d.nome.value,d.email.value,d.endereco.value,d.numero.value,d.bairro.value,d.cidade.value,d.estado.value,d.cep.value,d.telefone.value,d.nascimento.value,(d.sexo[0].checked == true ? d.sexo[0].value : d.sexo[1].value) ,d.rg.value,d.login.value,d.senha.value);
	}catch(e){
		alert(e);
		return false;
	}
}



function validaDuvida(d){
	var saida = document.getElementById("erro");
	while(saida.firstChild) {
		saida.removeChild(saida.firstChild);
	}
	try{
		montaFechar(saida,"x");
		if(d.nome.value == "")
			montaErro(saida,"O campo Nome deve ser preenchido");
		if(validaEmail(d.email.value) != "")
			montaErro(saida,validaEmail(d.email.value));
		if(d.duvida.value == "")
			montaErro(saida,"O duvida deve ser preenchido");
		if(saida.childNodes.length > 1){
			hideSelect();
			saida.style.display = 'block';
			return false;
		}
		enviarDuvida(d,d.nome.value,d.email.value,d.duvida.value);
	}catch(e){
		alert(e);
		return false;
	}
}

function enviarDuvida(d,nome,email,duvida){
	var r = document.getElementById("result");
	r.style.position = 'absolute';
	r.style.marginLeft = '-320px';
	r.innerHTML = '<img src=\"../imagens/carregando.gif\"> Enviando duvida ...';
	ajax.open("POST","../servlet/br.com.perfil.ferramentas.GerenciadorMail",true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	ajax.setRequestHeader("Pragma", "no-cache");
	
	ajax.onreadystatechange = function(){
		if (ajax.readyState == 4){
			if (ajax.status == 200){
				retorno=unescape(ajax.responseText.replace(/\+/g," "));
				alert(retorno);
				r.innerHTML = '';
				var elementos = d.elements;
				for(i=0;i<elementos.length;i++){
					if(elementos[i].type == 'text' || elementos[i].type == 'textarea'){
						elementos[i].value = '';
					}
				}
			}else{
				alert("Problemas ao carregar o arquivo.");
			}
		}
	}
	ajax.send("acao=enviarDuvida&nome="+nome+"&email="+email+"&duvida="+duvida+"&dummy="+new Date().getTime());
}



function cadastrarResposta(d,idUsuario){
	var r = document.getElementById("result");
	var resp = "";
	var elementos = d.elements;
	var cont = 0;
	for(i=0;i<elementos.length;i++){
		if(elementos[i].type == 'checkbox' && elementos[i].checked == true){
			resp += elementos[i].value+"#";
			cont++;
		}
	}
	r.innerHTML = '<img src=\"../imagens/carregando.gif\"> Salvando teste vocacional ...';
	ajax.open("POST","../servlet/br.com.perfil.ferramentas.GerenciadorRespostas",true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	ajax.setRequestHeader("Pragma", "no-cache");
	
	ajax.onreadystatechange = function(){
		if (ajax.readyState == 4){
			if (ajax.status == 200){
				retorno=unescape(ajax.responseText.replace(/\+/g," "));
				alert(retorno);
				r.innerHTML = '';
				for(i=0;i<elementos.length;i++){
					if(elementos[i].type == 'checkbox'){
						elementos[i].checked = false;
					}
				}
				window.location.href = '../teste-vocacional/relatorio.jsp';
			}else{
				alert("Problemas ao carregar o arquivo.");
			}
		}
	}
	ajax.send("acao=addRespostas&idUsuario="+idUsuario+"&respostas="+resp+"&dummy="+new Date().getTime());
}

/*function Espacamento(){
	var cont = 0;
	var d = "";
	while (document.getElementById("descricao"+cont)){
		d = document.getElementById("descricao"+cont).getElementsByTagName("p");
		for (i = 0; i < d.length; i++){
			d[i].className = 'esp2';
		}
	cont++;
	}
}*/


function validaData(str) { 

	dia = (str.value.substring(0,2)); 
    mes = (str.value.substring(3,5)); 
	ano = (str.value.substring(6,10)); 

	cons = true; 
	
	// verifica se foram digitados números
	if (isNaN(dia) || isNaN(mes) || isNaN(ano)){
		alert("Preencha a data somente com números."); 
		str.value = "";
		str.focus(); 
		return false;
	}
		
    // verifica o dia valido para cada mes 
    if ((dia < 01)||(dia < 01 || dia > 30) &&  (mes == 04 || mes == 06 ||  mes == '09' || mes == 11 ) || dia > 31) { 
    	cons = false; 
	} 

	// verifica se o mes e valido 
	if (mes < 01 || mes > 12 ) { 
		cons = false; 
	} 

	// verifica se e ano bissexto 
	if (mes == 2 && ( dia < 01 || dia > 29 || 
	   ( dia > 28 && 
	   (parseInt(ano / 4) != ano / 4)))) { 
		cons = false; 
	} 
    
	if (cons == false) { 
		alert("A data inserida não é válida: " + str.value); 
		str.value = "";
		str.focus(); 
		return false;
	} 
}


function formataData(val){
   	var pass = val.value;
	var expr = /[0123456789]/;
		
	for(i=0; i<pass.length; i++){
		var lchar = val.value.charAt(i);
		var nchar = val.value.charAt(i+1);
	
		if(i==0){
		   if ((lchar.search(expr) != 0) || (lchar>3)){
			  val.value = "";
		   }
		   
		}else if(i==1){
			   
			   if(lchar.search(expr) != 0){
				  var tst1 = val.value.substring(0,(i));
				  val.value = tst1;				
 				  continue;			
			   }
			   
			   if ((nchar != '/') && (nchar != '')){
				 	var tst1 = val.value.substring(0, (i)+1);
				
					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
	
					val.value = tst1 + '/' + tst2;
			   }

		 }else if(i==4){
			
				if(lchar.search(expr) != 0){
					var tst1 = val.value.substring(0, (i));
					val.value = tst1;
					continue;			
				}
		
				if	((nchar != '/') && (nchar != '')){
					var tst1 = val.value.substring(0, (i)+1);

					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
	
					val.value = tst1 + '/' + tst2;
				}
   		  }
		
		  if(i>=6){
			  if(lchar.search(expr) != 0) {
					var tst1 = val.value.substring(0, (i));
					val.value = tst1;			
			  }
		  }
	 }
	
     if(pass.length>10)
		val.value = val.value.substring(0, 10);
	 	return true;
}
function formataTelefone(val){
   	var pass = val.value;
	var expr = /[0123456789() -]/;
		
	for(i=0; i<pass.length; i++){
		var lchar = val.value.charAt(i);
		if(i==0){
		   if ((lchar.search(expr) != 0))
			  val.value = "";
		   else
		   	if(lchar != "(") val.value = "(" + lchar;
		}else{
			if(lchar.search(expr) != 0){
				var tst1 = val.value.substring(0,(i));
				val.value = tst1;				
				continue;			
			}
			if(lchar != ")" && i==3) val.value = val.value.substring(0,i) + ") " + lchar;
			if(lchar != "-" && i==9) val.value = val.value.substring(0,i) + "-" + lchar;
		 }
	}
	if(pass.length>14)
		val.value = val.value.substring(0, 14);
	 	return true;
}
function formataCEP(val){
   	var pass = val.value;
	var expr = /[0123456789-]/;
		
	for(i=0; i<pass.length; i++){
		var lchar = val.value.charAt(i);
		if(i==0){
		   if ((lchar.search(expr) != 0)) val.value = "";
		}else{
			if(lchar.search(expr) != 0){
				var tst1 = val.value.substring(0,(i));
				val.value = tst1;				
				continue;			
			}
			if(lchar != "-" && i==5) val.value = val.value.substring(0,i) + "-" + lchar;
		 }
	}
	if(pass.length>9)
		val.value = val.value.substring(0, 9);
	return true;	
}
function formataCPF(val)
{
   	var pass = val.value;
	var expr = /[0123456789]/;
		
	for(i=0; i<pass.length; i++){
		var lchar = val.value.charAt(i);
		var nchar = val.value.charAt(i+1);
	
		if(i==0){
		   if ((lchar.search(expr) != 0)){
			  val.value = "";
		   }
		   
		}else if(i==2 || i==6 || i==10){
			   
			   if(lchar.search(expr) != 0){
				  var tst1 = val.value.substring(0,(i));
				  val.value = tst1;				
 				  continue;			
			   }
			   
			   if ((nchar != '/') && (nchar != '')){
				 	var tst1 = val.value.substring(0, (i)+1);
				
					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
					if(i == 10)
						val.value = tst1 + '-' + tst2;
					else
						val.value = tst1 + '.' + tst2;
			   }

		 }
	}
	if(pass.length>14)
		val.value = val.value.substring(0, 14);
	 	return true;
}

function formataRG(val)
{
   	var pass = val.value;
	var expr = /[0123456789]/;
		
	for(i=0; i<pass.length; i++){
		var lchar = val.value.charAt(i);
		var nchar = val.value.charAt(i+1);
	
		if(i==0){
		   if ((lchar.search(expr) != 0)){
			  val.value = "";
		   }
		   
		}else if(i==1 || i==5 || i == 9){
			   if(lchar.search(expr) != 0){
				  var tst1 = val.value.substring(0,(i));
				  val.value = tst1;				
 				  continue;			
			   }
			   
			   if ((nchar != '/') && (nchar != '')){
				 	var tst1 = val.value.substring(0, (i)+1);
				
					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
						
					if(i == 9)
						val.value = tst1 + '-' + tst2;
					else
						val.value = tst1 + '.' + tst2;
			   }
		 }
	}
	if(pass.length>14)
		val.value = val.value.substring(0, 14);
	 	return true;
}

function validaCPF(cpf) {
		 var valor_cpf = cpf.replace(".","");
		 valor_cpf = valor_cpf.replace(".","");
		 valor_cpf = valor_cpf.replace("-","");
         var erro = "";

         var flag=1;

         if(valor_cpf == ""){
              erro = "O campo CPF deve ser preenchido";
              flag=0;
         } else {
             if (isNaN(valor_cpf)){
                 flag=0;
                 erro = "A verificação de CPF suporta apenas números";
             }else{
                if (cpf.length < 11){
                    erro = "São necessários 11 digitos para verificação do CPF";
                    flag=0;
                }
                if (valor_cpf == "00000000000" || valor_cpf == "11111111111" || valor_cpf == "22222222222" || valor_cpf == "33333333333" || valor_cpf == "44444444444" || valor_cpf == "55555555555" || valor_cpf == "66666666666" || valor_cpf == "77777777777" || valor_cpf == "88888888888" || valor_cpf == "99999999999"){
                    erro = "Número de CPF inválido";
                    flag=0;
                }
                var a = [];
                var b = new Number;
                var c = 11;
                for (i=0; i<11; i++){
                a[i] = valor_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 ((valor_cpf.charAt(9) != a[9]) || (valor_cpf.charAt(10) != a[10])){
                   erro = "Digito verificador do CPF com problema";
                   flag=0;
                }
             }
         }
         if (flag == 0)
            return erro;
         else
            return "";
}
function formataMoeda(campo,tammax,teclapres) {
	var tecla = teclapres.keyCode;

	vr = document.frm1[campo].value;

	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length;
	
	if (tam < tammax && tecla != 8) 
		tam = vr.length; 
	
	if (tecla == 8 )
		tam = tam - 1; 
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
	{
		if ( tam <= 2 )
			document.frm1[campo].value  = vr; 
	
		if ( (tam > 2) && (tam <= 5) )
			document.frm1[campo].value  = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); 

		if ( (tam >= 6) && (tam <= 8) )
			document.frm1[campo].value  = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); 
	
		if ( (tam >= 9) && (tam <= 11) )
			document.frm1[campo].value  = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); 
	
		if ( (tam >= 12) && (tam <= 14) )
			document.frm1[campo].value  = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); 
	
		if ( (tam >= 15) && (tam <= 17) )
			document.frm1[campo].value  = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );
	}
}
function validaEmail(d) {
		
	var reEmail2 =/^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;		

	if(d.length == 0)
		return "O campo E-mail deve ser preenchido";

	if(!reEmail2.test(d)){
		return "O campo E-mail deve se conter um endereco eletronico!";
	}
	
	return "";
}
function somenteNumeros(val){
	var pass = val.value;
	var expr = /[0123456789]/;
	for(i=0; i<pass.length; i++){
		var lchar = val.value.charAt(i);
		var nchar = val.value.charAt(i+1);
		if(lchar.search(expr) != 0){
			var tst1 = val.value.substring(0,(i));
			val.value = tst1;
			continue;
		}
	}
	return true;
}


function soNums(e,args){         
	if (document.all)
		var evt=event.keyCode;
	else
		var evt = e.charCode;
	
	var chr= String.fromCharCode(evt);
        
	if (evt <20 || (evt >47 && evt<58) || (args.indexOf(chr)>-1))
		return true;
		 
	return false; 
} 

function soNums(e,args){         
	if (document.all)
		var evt=event.keyCode;
	else
		var evt = e.charCode;
		
	var valid_chars = '0123456789'+args;
	var chr = String.fromCharCode(evt);
	if (valid_chars.indexOf(chr)>-1 )
		return true;

	if (valid_chars.indexOf(chr)>-1 || evt < 9 || evt == 32)
		return true;

	return false;
} 



function montaErro(erro,valor){
	var p = document.createElement("p");
		p.appendChild(document.createTextNode(valor));
	erro.appendChild(p);
}
function montaFechar(erro,texto){
	var fechar = document.createElement("a");
		fechar.href = 'javascript:void(0);';
		fechar.onclick = function(){ erro.style.display = 'none'; showSelect(); };
		fechar.appendChild(document.createTextNode(texto));
	erro.appendChild(fechar);
}
function showSelect(){
	var d = document.getElementsByTagName('select');
	var el;
	for(i=0,el;el=d[i];i++){
		d[i].style.display = 'inline';
	}
}
function hideSelect(){
	var d = document.getElementsByTagName('select');
	var el;
	for(i=0,el;el=d[i];i++){
		d[i].style.display = 'none';
	}
}