/* Scripts espeficicos para o form de inscrição */

//alert('Inicio do Arquivo: inscricoes.js');


var msg_erro = "Opsss...\n\nOcorreu um erro ao executar essa operação.\n\nRegarregue esta página e tente novamente, caso o erro persistir entre em contato com o desenvolvedor do sistema.\n\n\n";



Event.observe(window, 'load', inicial);


function inicial(){

//alert('Função: inicial');

    //se não existe o formulário sai do JS
    if ( $('form_inscricao') == null){
        return false;
    }//fim if

	formulario 		= $('form_inscricao');
	formularioLoad 	= $('form_load');

    //Instrucoes dos Campos
    showInstrucoes(formulario.id);

	//Submit do Form
	Event.observe($('botao_submit'), 'click', function(event){ submitForm(Event.element(event)); }, false);


    //verifica se há hash para inscrição isenta
    if (strings['HI']){

        //se for 1, é formulario de inscrição isenta
        if (strings['HI'] == 1){
            
            //entra function
            formIsento();
        }//fim
    }//fim if
   
	// Webservice: CEP
	if($('pessoal_cep')){

        

		// Pessoal
		Event.observe($('pessoal_cep'), 'keyup', function(event){
			($('pessoal_cep').value.length==8)? getEndereco($('pessoal_cep'), 'pessoal') : null;
		}, false);
		
		// Cobrança
		Event.observe($('cobranca_cep'), 'keyup', function(event){
			($('cobranca_cep').value.length==8)? getEndereco($('cobranca_cep'), 'cobranca') : null;
		}, false);
		
	}
	
	
		
	//Etapa 2 - Duplicidade
		
		// Email
		Event.observe($('email'), 'blur', function(event){ validaEmailDuplicado(Event.element(event)); }, false);
		
		// Doc
		Event.observe($('docTipo'), 'blur', function(event){ validaDocDuplicado($('docNumero'), $('docTipo')); }, false);
		Event.observe($('docNumero'), 'blur', function(event){ validaDocDuplicado($('docNumero'), $('docTipo')); }, false);
		
		// Doc: Sociedade - tipo de inscricao disponivel
		//Event.observe($('docNumero'), 'blur', function(event){ associado(getValueFromRadio('form[associado]'), $('docNumero'), $('docTipo')); }, false);
		

		
		
	//Etapa 4 - Tipo de inscricao

		// Associados
		$A(document.getElementsByName('form[associado]')).each(function(campo){
			if(campo.checked==true){
				//associado(campo.value, $('docNumero'), $('docTipo'));
			}

            $('associado_0').checked = true;
			Event.observe(campo, 'click', function(){ alternaTiposAssoc(campo); retiraSelecao(campo); } );
			Event.observe(campo, 'keyup', function(){ alternaTiposAssoc(campo); } );
			
		});
		
		enableSocios(0);

        
		formulario.getInputs('radio', 'form[insTipo]').each(function(campo){
			// Reduzida
			campo.observe('click', function(){ insReduzida(); atualizaTipoHidden(campo); });

			// Jantar
			if(jantar==1){
				campo.observe('click', function(){ jantarEstudante(); });
			}

		});

		//Jantar
		if(jantar==1){
			jantarEstudante();
		}

        if (almoco == 1){
            $$('.almoco').each(function(campo){
                Event.observe(campo, 'change', function(){ almocos(); } );
            });
        }


				
		//Tipo de inscricao
		periodoInscricao();
		
		
		
	//Etapa 5 - Cobrança
		
		if($('pessoal_pais') && $('pgtoTipo')){
			Event.observe($('pessoal_pais'), 'blur', function(event){ boletoOption(); }, false);
			Event.observe($('pgtoTipo'), 'blur', function(event){ boletoOption(); }, false);
		}

		//executa
		sacadoterceiros();
		
		//observers
		$A(document.getElementsByName('form[pgtoTerceiros]')).each(function(campo){
			Event.observe(campo, 'click', function(event){ sacadoterceiros(); }, false);
		});

		
		
	
	//Etapa 6 - MiniCursos
	
		//observers
		if(strings['tipoInsValor_30']>0){
		    setInnerHTML($('strMcLimiteInfo'), '1 minicurso')
		    setInnerHTML($('strMcLimiteErro'), 'apenas 1 minicurso')
		}else{
    		$A(document.getElementsByName('form[mc][]')).each(function(campo){
    			Event.observe(campo, 'click', function(event){ 
    				/*setMcChecked(Event.element(event));*/ 
    				validaMc(Event.element(event));
    			});
            });
		}
		
	// Crachá - preview
	if($('crachaPreView')){
		// nome
		$('cracha_nome').observe('keyup',function(){
			setInnerHTML($('crachaPreView_nome'), $F('cracha_nome'));
		});

		$('cracha_nome').observe('blur',function(){
			setInnerHTML($('crachaPreView_nome'), $F('cracha_nome'));
		});

		// inst
		$('cracha_inst').observe('keyup',function(){
			setInnerHTML($('crachaPreView_inst'), $F('cracha_inst'));
		});

		$('cracha_inst').observe('blur',function(){
			setInnerHTML($('crachaPreView_inst'), $F('cracha_inst'));
		});

	}
		

		

		
	//Etapa 7 - Acompanhante
		
		//Box Acompanhantes
		showBoxAcompanhantes();
		// Exibe/Oculta lista
		showListaAcompanhantes();		
		Event.observe($('acompanhantes_0'), 'click', function(event){ showBoxAcompanhantes(); }, false);
		Event.observe($('acompanhantes_1'), 'click', function(event){ showBoxAcompanhantes(); }, false);
		
		//Add Acompanhante
		Event.observe($('btnAcompanhantes'), 'click', function(event){ acompanhanteAdd(); }, false);
		Event.observe($('acompanhanteAdd'), 'keyup', function(event){ if(event.keyCode==Event.KEY_RETURN){ acompanhanteAdd(); } });
	
		
		
	
	// Relatorios de Valores (observers)
	
		// executa
		subTotal();
	
		//Inscricao
		var aIns = $A(document.getElementsByName('form[insTipo]'));
		//Jantar
		var aJantar = $A(document.getElementsByName('form[jantar]'));
		//MC
		var aMC = $$('#mcCheck input');
		//Acompanhante
		var aAcomAdd = $('btnAcompanhantes', 'acompanhantes_1', 'acompanhantes_0');
		var aAcomRemove = $$('.acomRemove');
		
		var produtos = new Array();
		produtos = produtos.concat(aIns).concat(aJantar).concat(aMC).concat(aAcomAdd).concat(aAcomRemove);
		
		//Observer
		produtos.each(function(produto){
			Event.observe(produto, 'click', function(event){ subTotal(); }, false);
		});	
		
	// AlertErros
	
		$$('#'+formulario.id+' input, #'+formulario.id+' select, #'+formulario.id+' textarea').each(function(campo){
			Event.observe(campo, event2field(campo), function(event){ alertError(formulario.id,1); }, false);
		});
		
		
		
	/*
	// Exibe o Form
	if(insPeriodos>0){
		visibleForm(1);
	}
	*/

	// Tabindex
	var tabIndex = 0;
	if($('form_login')){
		tabIndex = autoTabindex($('form_login'));
	}
	if(formulario){
		autoTabindex(formulario, tabIndex);
	}


	// Busca Pré-registro
	if($('boxBuscarPreRegistro')){
		// busca
		$('pre_email').observe('keyup', function(event){ if(event.keyCode==Event.KEY_RETURN){ buscaPreRegistro(); }});
		$('pre_buscar').observe('click', function(event){ buscaPreRegistro(); });
		$('pre_email').activate();
		
		// Continuar
		$('pre_continuar').observe('click', function(){
			// oculta busca do pre-registro
			$('boxBuscarPreRegistro').hide();
			// exibe form
			formulario.show();
			//focus
			formulario.focusFirstElement();
		});
	}// buscar pre-registro

    Event.observe($('senha'), 'keyup', function(){ alteraValidacaoSenha( (($F('senha')=='')?0:1) ); } );
    Event.observe($('senhac'), 'keyup', function(){ alteraValidacaoSenha( (($F('senhac')=='')?0:1) ); } );


	
//alert('/Função: inicial');
	
}//inicial
    function showOther() {
            if ($('titulacao').selectedIndex == 10){
                $('otherLabel').show();
            }else{
                $('otherLabel').hide();
            }
    }
	function insReduzida(){
		
		var insTipo = $('insTipo_'+getValueFromRadio('form[insTipo]'));
		
		// Reduzida
		if(insTipo.hasClassName('reduzida')==true){
			// Oculta itens do relatório
			$$('.remove4reduzida').invoke('hide');
			// Trava box Submissão
			/*$('submissao_0').checked = true;
			$('submissao_1').disabled = true;*/
		}
		// Não Reduzida
		else{
			// Exibe itens do relatório
			$$('.remove4reduzida').invoke('show');
			// Destrava box Submissão
			/*$('submissao_0').checked = false;
			$('submissao_1').disabled = false;
			$('submissao_1').checked = false;*/
		}
		
	}


	function buscaPreRegistro(){
		var email = $('pre_email');
		
		// reset
		$$('#pre_erro1, #pre_erro2').invoke('hide');
		
		// verifica o preenchimento
		if(validaEmail(email)==false){
			//exibe erro
			$('pre_erro1').show();
			
			//focus
			email.activate();
			return false;
		}
		// busca
		else{
			
			var url = conUrl+'rpc/buscaPreRegister.php';
			var pars = 'acao=buscaPreRegistro&email='+email.value;
			var myAjax = new Ajax.Request( url, {
				method: 'post',
				parameters: pars,
				onLoading: function() {
					// Trava
					$('pre_email').readOnly = true;
					$('pre_buscar').hide();
					$('pre_load').show();
				},//onLoading
				onComplete: function(originalRequest) {
					
					// facilita
					var resp = originalRequest.responseText;
					
					// debug
					//debug("RESP: "+resp+"\nTypeOf: "+typeof(resp));

					// converte a str em obj JSON
					resp = resp.evalJSON(1);
					
					// OK
					if(resp.pr==1){
						// popula
						$('preRegistroMsg_nome').innerHTML = resp.nome;
						$('nome').value 			= resp.nome;
						$('titulacao').value 			= resp.title;
                        if($('titulacao').value ==''){
                            $('titulacao').value = 'other';
                            $('otherLabel').show();
                            $('other').value = resp.title;
                            
                        }
						$('instituicao').value		= resp.inst;
						$('email').value = $('emailc').value = email.value;
						$('pessoal_cidade').value	= resp.cidade;
						$('pessoal_uf').value		= resp.uf;
						
						// oculta busca de pre-registro
						$('boxBuscarPreRegistro').hide();
						
						// exibe msg
						$('preRegistroMsg').show();
						
						// exibe form
						formulario.show();
						
						// Focus no E-mail para verificar duplicidade
						$('email').focus(); $('email').blur();
						
					}
					// Erro
					else{
						// exibe msg
						$('pre_erro2').show();
						
						// Destrava
						$('pre_email').readOnly = false;
						$('pre_load').hide();
						$('pre_buscar').show();
					}
					
					
				},//onComplete
				onFailure: function() {
                    alert( strings['erro_busca_pre'] );
				}//onFailure
			});
			
		}// else
		
	}// buscaPreRegistro()


	function visibleForm(show){
		if(show==1){
			formularioLoad.hide();
			formulario.show();
		}
	}
	
	/* Validação para os MCs */
	function validaMc(clicado){
		/*
		var id = clicado.id;
		
		try{
			var atividades = (strings['tipoInsValor_30']>0)?true:false;
		}catch(e){
			var atividades = false;
		}
		
		if(atividades==true){
			var MCs = (id.replace(/mc_/g,"")<=9)? $('mc_7','mc_8','mc_9') : $('mc_10','mc_11','mc_12') ;
		}else{
			var mcChecked = id.replace(/mc_/g,"");
			var MCs = (mcChecked<=3 || mcChecked==7)?  $('mc_1','mc_2','mc_3','mc_7') : $('mc_4','mc_5','mc_6','mc_8') ;
		}
		*/
       var MCs = $('mc_1','mc_2','mc_3','mc_4');
		var qde = MCs.findAll(function(mc) {  return mc.checked == true ; }).length;
		
		if(qde>1){
			clicado.checked = false;
			// atualiza valor
			subTotal();
			//alert('Você não pode marcar 2 minicursos.');
			alert( strings['alert_erro_mc'] );

		}
        
	}

    //Almoços
    function almocos(){

        //atualiza valor
        subTotal();
        
    }

	function alternaTiposAssoc(obj)
    {
        aa = parseInt(obj.value)+1;

        if (obj.value == '0'){
            bb = parseInt(obj.value)+2;
        }else{
            bb = parseInt(obj.value);
        }

        $A(document.getElementsByName('form[insTipo]')).each(function(campo){
            if ($('insTipoLabel_'+aa )){
                $('insTipoLabel_'+aa ).show();
                $('insTipoLabel_'+bb ).hide();
            }
            aa = 2 + parseInt(aa);
            bb = 2 + parseInt(bb);
        });//fim each
    }

    //retira a selecao dos campos de tipo de inscrição (quando se altera o tipo de associação)
    function retiraSelecao(obj){

        $A(document.getElementsByName('form[insTipo]')).each(function(campo){
            campo.checked = false;
        });

    }

	/* Calcula o valor da inscrição */
	function subTotal(){
		
		//Inscricao
		var valor_ins = 0;
		var ins_tipo = getValueFromRadio('form[insTipo]');
		valor_ins = (ins_tipo==false)? 0 : parseFloat(strings['tipoInsValor_'+ins_tipo]);
		
		// Seta valor no HTML
		setInnerHTML($('valor_ins'), "+ "+ strings['moeda'] +" "+ valor_ins + strings['moeda_zeros']);
		
		// seta qde no HTML
		setInnerHTML($('qde_ins'), ((ins_tipo>0)?1:0) );
		
		
		//Jantar 
		if(jantar==1){
			var valor_jantar = 0;
			var qde_jantar_total = 0;
			var qde_jantar = 0;
			
			// participante
			var ins_jantar = getValueFromRadio('form[jantar]');
			 
			if(ins_jantar==false){
				valor_jantar = 0;
			}else{
				qde_jantar_total = 1;
				valor_jantar = parseFloat(strings['jantarValor_'+ ( (ins_jantar==1)?  ((isEstudante()==true)?2:1) : 0) ]);
			}
			
			
			// acompanhantes
			$$('input.acompanhanteJantar').each(function(campo){
				if(campo.value==1){
					qde_jantar++;
				}
			});
			if(qde_jantar>0){
				qde_jantar_total +=  qde_jantar;
				valor_jantar +=  + (qde_jantar * parseFloat(strings['jantarValor_1']));
			}

			// Seta valor no HTML
			setInnerHTML($('valor_jantar'), "+ "+ strings['moeda'] +" "+ valor_jantar + strings['moeda_zeros']);
			
			// seta qde no HTML
			setInnerHTML($('qde_jantar'), qde_jantar_total);
			
			// plural
			if(qde_jantar_total>1){
				$('etapa9_jantar_plural').show();
			}else{
				$('etapa9_jantar_plural').hide();
			}
			
		}else{
			var valor_jantar = 0;
		}

        // ALMOCO
        if (almoco == 1){
            var valor_cada_almoco = parseFloat(strings['almocoValor']);
			var valor_almoco_total = 0;
			var qde_almoco = 0;
            
             $$('.almoco').each(function(campo){
                 if (campo.value != ''){
                   qde_almoco = qde_almoco + parseInt(campo.value);                    
                 }
             });

             //soma
             valor_almoco_total = qde_almoco * valor_cada_almoco;

             // Seta valor no HTML
			setInnerHTML($('valor_almoco'), "+ "+ strings['moeda'] +" "+ valor_almoco_total + strings['moeda_zeros']);

			// seta qde no HTML
			setInnerHTML($('qde_almoco'), qde_almoco);

            // plural
			if(qde_almoco>1){
				$('etapa9_almoco_plural').show();
			}else{
				$('etapa9_almoco_plural').hide();
			}

        }//fim if ALMOCO

		//Mini cursos
		if(strings['mc']==1 && insPeriodos>0){
			var mc_count = 0;
			var mc_str = '';
			$A($$('#mcCheck input')).each(function(campo){
				if(campo.checked==true){ 
					mc_count++;
					mc_str += '<li>'+campo.next().innerHTML+'</li>';
				}
			});
			var valor_mc = parseFloat(strings['mc_valor']) * mc_count;
			
			// seta valor no HTML
			setInnerHTML($('valor_mc'), "+ "+ strings['moeda'] +" "+ valor_mc + strings['moeda_zeros']);
			
			// seta qde no HTML
			setInnerHTML($('qde_mc'), mc_count);
			
			// seta descrição do MC no HTML
			mc_str = (mc_str.length>0)?': <ul>'+mc_str+'</ul>':'';
			setInnerHTML($('desc_mc'), mc_str);
			
			// plural
			if(mc_count>1){
				$('etapa9_mc_plural').show();
			}else{
				$('etapa9_mc_plural').hide();
			}
			
		}//MC
		else{
			var valor_mc = 0;
		}			
		
		
		//Acompanhantes
		var acom_count = ($('acompanhantes_0').checked==true)? 0 : $$('#boxAcompanhantes input.acompanhante').length ;
		var valor_acom = parseFloat(strings['acom_valor']) * acom_count;
		//$('valor_acom').innerHTML = "+ "+ strings['moeda'] +" "+ valor_acom + strings['moeda_zeros'];
		setInnerHTML($('valor_acom'), "+ "+ strings['moeda'] +" "+ valor_acom + strings['moeda_zeros']);
		
		//Total
		var valor_total =   parseFloat(valor_ins) +
                            ( (strings['HI'])?0:parseFloat(valor_jantar) ) +
                            parseFloat(valor_mc) + parseFloat(valor_acom) +
                            ( (strings['HI'])?0:parseFloat(valor_almoco_total) );
		
		// seta valor no HTML
		setInnerHTML($('valor_total'), "+ "+ strings['moeda'] +" "+ valor_total + strings['moeda_zeros']);
		
		// seta qde no HTML
		setInnerHTML($('qde_acom'), acom_count);

		// plural
		if(acom_count>1){
			$$('.etapa9_acom_plural').invoke('show');
		}else{
			$$('.etapa9_acom_plural').invoke('hide');
		}		
		
	}

		
	/* Verifica a quantidade maxima de MC que podem ser selecionados */
	function setMcChecked(campo) {
		var checkeds = 0;
		var cursos = document.getElementsByName('form[mc][]');
		for(i = 0; i < cursos.length; i++) {
			(cursos[i].checked==true)? checkeds++ : null;
		}
		//alert('C: '+checkeds+'\nL: '+strings['mc_limite']);
			
		if(checkeds>strings['mc_limite']) {
			//mensagem de alerta
			//alert('Você pode escolher no máximo '+ strings['mc_limite'] +' minicursos!');
			alert( strings['alert_max_mc'] );


			//deseleciona o campo
			campo.checked = false;
		}
	}

	/* Verifica se o CPF do usuário faz parte da sociedade */
	function associado(sId, doc, tipoDoc){
		
		// DOC
		if(doc.value.length==0){
			if(verifica(doc)==false){
				enableSocios(0);
				doc.scrollTo(); 
				doc.activate();
			}
		}
		// Consulta
		else if(sId>0){
			
			var url = conUrl+'rpc/inscricoes_associado.php';
			var pars = 'sId='+sId+'&doc='+doc.value+'&tipoDoc='+tipoDoc.value;
			var myAjax = new Ajax.Request( url, {
				method: 'post',
				parameters: pars,
				onLoading: function() {
					// exibe load
					$('associado_load').show();
				},//onLoading
				onComplete: function(originalRequest) {
					// esconde loaddisable
					$('associado_load').hide();
					
					// facilita
					var resp = originalRequest.responseText;
					
					// debug
					//debug("RESP: "+resp+"\nTypeOf: "+typeof(resp));
					
					// acoes
					switch(resp){
						// OK
						case "2":
							enableSocios(1);
						break;
						
						// Cadastrado, mas nao está em dia
						case "1":
							enableSocios(0);
							alert("CPF encontrado na base de dados da SBMAC,\nporém nenhuma das anuidades referentes a 2008 ou 2009 está paga.\n\n= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =\nATENÇÃO:\nBasta que apenas uma das duas anuidades esteja paga para você escolher a opção de sócio da SBMAC.\n= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =");
						break;
						
						// NAO
						case "0":
							enableSocios(0);
							alert("CPF não encontrado na base de dados da SBMAC.\n\nAssocie-se agora em http://www.sbmac.org.br");
						break;
						
						// ERRO
						case "-1":
							enableSocios(0);
							alert("Erro (RPC): ID da Sociedade informada não existente.");
						break;
						
						// ERRO
						case "-2":
							enableSocios(0);
							alert("Erro (RPC): ao executar a query SQL.");
						break;
						
						default:
						break;
					}
					
					//Tipo de inscricao
					periodoInscricao();
					
				},//onComplete
				onFailure: function() {
					alert("Erro ao realizar a consulta do associado (AJAX).");
					enableSocios(0);
				}//onFailure
			});
			
		}else{
			enableSocios(0);
		}
		
	}// function


	/* Habilita/Desabilita opçõs de categoria de Inscrição conforme a classe */
	function enableSocios(ok){
		/***
		//loop dos periodos
		$$('#tableInsTipo tbody tr td label input').each(function(campo){
			if(campo.hasClassName('socio')==true && campo.hasClassName('atual')==true){
				//desabilita
				(ok==1)? campo.enable() : campo.disable() ;

				//deseleciona
				(ok!=1) ? campo.checked = false : null;
			}

			if(campo.hasClassName('naoSocio')==true && campo.hasClassName('atual')==true){
				//desabilita
				(ok==1)? campo.disable() : campo.enable();

				//deseleciona
				(ok==1) ? campo.checked = false : null;
			}
			
		});//fim do loop

		(ok!=1 && $('associado_0'))? $('associado_0').checked = true : null;
        ***/
	}


	/*
	Verifica se o tipo da inscrição selecionada é de estudante ou não
	*/
	function isEstudante(){
		ins_value = getValueFromRadio('form[insTipo]');
		return (ins_value==false)? false : $('insTipo_'+ins_value).hasClassName('estudante');
	}
	
	/*
	Define qual string com o valor do jantar deve ser exibida
	*/
	function jantarEstudante(){
		if(isEstudante()==true){
			Element.hide($('jantarEstudante0'));
			Element.show($('jantarEstudante1'));
		}else{
			Element.hide($('jantarEstudante1'));
			Element.show($('jantarEstudante0'));
		}
	}
	
	function periodoInscricao(){
		/*
		if(insPeriodos>0){
			//loop dos periodos
			insPeriodo.each(function(v, k){
				if(dataAtual<v[0] || dataAtual>v[1]){
					//deseleciona
					$$('.periodo'+k).invoke('writeAttribute', 'checked', false);
	
					//desabilita
					$$('.periodo'+k).invoke('disable');
					
					//txt riscado
					$$('.periodo'+k).invoke('up').invoke('addClassName', 'desabilitada');
				}
			});//fim do loop
		}
		*/
	}
	

	function hideMsgErro(tipo){ $(tipo+'_cep_erro').hide(); }
	function hideMsgOk(tipo) { $(tipo+'_cep_ok').hide(); }
	function getEndereco(campo_cep, tipo){


		//Busca CEP com 8 caracteres e sem logradouro preenchido e se a linguagem do site for BR
		//if($(tipo+'_logradouro').value==0 && campo_cep.value.length==8){
		if(campo_cep.value.length==8 && strings['lingua'] == 'br'){
			
			
			//AJAX
			var url = conUrl+'rpc/cep.php'; // colocar URL completa
			var pars = 'cep='+campo_cep.value;
			var myAjax = new Ajax.Request( url, {
				method: 'post',
				parameters: pars,
				onLoading: function() {
					// esconde msgs
					$(tipo+'_cep_ok').hide();
					$(tipo+'_cep_erro').hide();
					// exibe msg load
					$(tipo+'_cep_load').show();
					
				},//onLoading
				onComplete: function(originalRequest) {
					
					// facilita
					resp = originalRequest.responseText;
					// Debug
					//alert(resp);
					
					// JSON
					resp = resp.evalJSON();
					
					// esconde load
					$(tipo+'_cep_load').hide();
					
					if(resp.ok==1 && resp.log.strip().length>0){
						
						$(tipo+'_logradouro').value = resp.log;
						$(tipo+'_complemento').value = resp.comp;
						$(tipo+'_bairro').value = resp.bairro;
						$(tipo+'_cidade').value = resp.cidade;
						$(tipo+'_uf').value = resp.uf;
						$A($(tipo+'_pais').options).findAll(function(option){ return option.value=='BR'; })[0].selected = true;
						
						// exibe msg ok
						$(tipo+'_cep_ok').show();
						// Esconde dps
						setTimeout(((tipo=='pessoal')?"hideMsgOk('pessoal')":"hideMsgOk('cobranca')"),3000);
						
						// re-valida os campos
						[$(tipo+'_logradouro'), $(tipo+'_complemento'), $(tipo+'_bairro'), $(tipo+'_cidade'), $(tipo+'_uf'), $(tipo+'_pais')].each(function(campo){
							verifica(campo);
						});
						
						// focus no numero
						$(tipo+'_numero').activate();
						
					}else{
						// exibe msg ok
						$(tipo+'_cep_erro').show();
						// Esconde dps
						setTimeout(((tipo=='pessoal')?"hideMsgErro('pessoal')":"hideMsgErro('cobranca')"),6000);
						
						// focus no Logradouro
						$(tipo+'_logradouro').activate();
						
					}
					
					
				},//onComplete
				onFailure: function() {
					
				}//onFailure
			});
		
		}//IF cep.length
		
	}
	
	

	/* Exibe/Oculta Box dos Acompanhantes */
	function showBoxAcompanhantes(){
		if($('acompanhantes_1').checked==true){
			Element.show($('boxAcompanhantes'));
		}else{
			if($('boxAcompanhantes').visible()==true){
				Element.hide($('boxAcompanhantes'));
			}
		}
	}
	
	/* Exibe/Oculta Lista dos Acompanhantes */
	function showListaAcompanhantes(){
		if($$('#boxAcompanhantes #listaAcompanhanteStr #listaAcompanhante li').length>0){
			Element.show($('listaAcompanhanteStr'));
		}else{
			Element.hide($('listaAcompanhanteStr'));
		}
	}
	
	
	
	/* Adiciona Acompanhante na Lista */
	function acompanhanteAdd(nome, jantar, noFocus){
		
		//Nome
		var acom_nome = (nome)? nome : $F('acompanhanteAdd');
		//Jantar
		var acom_jantar = (jantar)? jantar : (($('acompanhanteAddJantar'))?(($('acompanhanteAddJantar').checked==1)?1:0):'');
		
		//msgs
		var msgs = getMsgField($('acompanhanteAdd'));
		var msgInfo = msgs['info'];
		var msgOk 	= msgs['ok'];
		var msgErro = msgs['erro'];
		
		
		//verifica se está preenchido
		if(acom_nome.length<=0){
			Element.hide(msgInfo);
			Element.show(msgErro);
			$('acompanhanteAdd').addClassName(campoClassNameErro);
			$('acompanhanteAdd').activate();
		}else{
			Element.hide(msgErro);
			
			//Remove classes
			$('acompanhanteAdd').removeClassName(campoClassNameErro);
			$('acompanhanteAdd').removeClassName(campoClassNameOk);
		
			//HTML
			var date = new Date();
			var novoId = "acompanhante"+date.getTime();
			var html = "\n<li id=\""+ novoId +"\">\n	\t<input type=\"hidden\" name=\"form[acompanhante][nome][]\" value=\""+ acom_nome +"\" class=\"acompanhante\" />\n	\t<input type=\"hidden\" name=\"form[acompanhante][jantar][]\" value=\""+acom_jantar+"\" class=\"acompanhanteJantar jantar"+acom_jantar+"\" />\n	\t<img src=\""+ strings['acom_remove_img'] +"\" alt=\""+ strings['acom_remove_str'] +"\" title=\""+ strings['acom_remove_str'] +"\" onClick=\"acompanhanteRemove('"+ novoId +"');\" class='acomRemove' />\n	\t"+ acom_nome + ((acom_jantar==1)?" ("+strings['acom_jantar']+")":" ("+strings['acom_sem_jantar']+")") +"\n</li>\n";
			
			//insere HTML no UL
			$('listaAcompanhante').insert(html); //Bottom
			
		
			// Exibe/Oculta lista
			showListaAcompanhantes();
			
			//limpa campo add e da focus
			$('acompanhanteAdd').value = "";
			if(noFocus!=1){
				window.setTimeout(function(){
					$('acompanhanteAdd').activate();	
				}, 100);
			}
			$('acompanhanteAddJantar').checked = false;
			// atualiza valor
			subTotal();
			
		}
		
	}

	
	/* Remove Acompanhante da Lista */
	function acompanhanteRemove(id){
		$(id).remove();
		
		// Exibe/Oculta lista
		showListaAcompanhantes();
		
		// atualiza valor
		subTotal();
		
	}
	

	/* Exibe/esconde campos do sacado, no caso de não ser a propria pessoa responsavel pelo pagamento*/
	function sacadoterceiros(){

		//default
		($('pgtoTerceiros_0').checked==false && $('pgtoTerceiros_1').checked==false)? Element.hide($('sacado_terceiros')) : null;
		
		//exibe se selecionar OUTROS/terceiros
		($('pgtoTerceiros_1').checked==true)? Element.show($('sacado_terceiros')) : Element.hide($('sacado_terceiros')) ;
		
	}

  
	/* Exibe o objeto que contem as instrucoes para preencher o campo */
	function showInstrucoes(form){
		
		//Esconde Todas
		$A($$('.msgField')).each(Element.hide);
		/*
		$A($$('.msgField')).each(function(msg){
			new Effect.Opacity(msg, {duration:0.1, from:1.0, to:0.0});
		});
		*/
		
		validacao(form, 0, 1);
	
		//pega todos elementos input da AREA faz um loop
		$A($$('#'+form+' input, #'+form+' select, #'+form+' textarea')).each(function(campo){
			
			//Vars
			var msgs		= getMsgField(campo);
			var msgInfo 	= msgs['info'];
			var msgOk 		= msgs['ok'];
			var msgErro 	= msgs['erro'];
			var msgErroDup 	= (msgs['erroDup']==undefined)? msgs['erro'] : msgs['erroDup'];
			
			if(msgInfo){
				
				//Exibir msg Info
				switch(campo.type){
					
					//Campos em grupo
					case 'radio':
					case 'checkbox':
						//Exibe msg Info
						Event.observe(campo.up(), 'mouseover', function(){ [msgOk, msgErro].each(Element.hide); showMsg(msgInfo); }, false);
						
						//Esconder msg Info
						Event.observe(campo.up(), 'mouseout', function(){ 
							hideMsg(msgInfo);
							(campo.hasClassName(campoClassNameErro) && msgErro) ? Element.show(msgErro) : null;
							(campo.hasClassName(campoClassNameOk) && msgOk) 	? Element.show(msgOk) 	: null;
						}, false);
					break;
					
					//Campos individuais **PADRAO**
					case 'text':
					case 'select':
					case 'select-one':
					case 'select-multiple':
					case 'password':
					case 'textarea':
						//Exibe msg Info
						Event.observe(campo, 'click', function(){ [msgOk, msgErro, msgErroDup].each(Element.hide); showMsg(msgInfo); }, false);
						Event.observe(campo, 'focus', function(){ [msgOk, msgErro, msgErroDup].each(Element.hide); showMsg(msgInfo); }, false);
										
						//Esconder msg Info
						Event.observe(campo, 'blur', function(){ 
							hideMsg(msgInfo);
							(campo.hasClassName(campoClassNameErro) && msgErro) ? Element.show(msgErro) : null;
							(campo.hasClassName(campoClassNameOk) && msgOk) 	? Element.show(msgOk) 	: null;
						}, false);
					break;
					
					//Button & Hidden - nao faz nd
					case 'button':
					case 'hidden':
					break;
					
					default:
						alert("showInstrucoes()\nTipo desconhecido\nCampo: "+campo.id+"\Tipo: "+campo.type);
					break;
					
				}//switch
				
			}//if
			
		});//each
	
	}//function
	
	
	/* Exibe msg de info/ok/erro do campo */
	function showMsg(msg){
		//new Effect.Opacity(msg, {duration:1, from:0.0, to:1.0});
		Element.show(msg);
	}

	/* Exibe msg de info/ok/erro do campo */
	function hideMsg(msg){
		//new Effect.Opacity(msg, {duration:1, from:1.0, to:0.0});
		Element.hide(msg);
	}
	
	

	function alertError(area, noScrool){
		//variaveis
		var etapaErro 	= $('etapaErro');
		var erros = 0;
		
		$$('#'+area+' input.'+campoClassNameErro+', #'+area+' select.'+campoClassNameErro+', #'+area+' textarea.'+campoClassNameErro).each(function(erro){
			if(erro.up(2).visible()==true){
				erros++;
			}
		});
		
		//Exibe ou Esconde
		if(erros>0){
			etapaErro.show();
			(noScrool!=1)? etapaErro.scrollTo() : null;
		}else{
			etapaErro.hide();
		}
	}
	

	function getValueFromRadio(name){
		var campoChecked;
		$A(document.getElementsByName(name)).each(function(campo){
				if(campo.checked==true){
					campoChecked = campo.value;
				}
		});
		//retorna
		return (campoChecked)?campoChecked:false;
	}//function
	


	function submitForm(botao){
		
		//trava botao
		//botao.disabled = true;

        //verifica senha
        if ($('editIns')){
            if ($F('senha') != '' || $F('senhac') != ''){
                alteraValidacaoSenha(1);
            }else{
                alteraValidacaoSenha(0);
            }
        }
        
		// Esconde botao e exibe loader
		botao.hide();
		$('submit_load').show();
				
		/*
		* VALIDACAO
		*/
		
		// valida campos
		var valida = validacao(formulario.id, 0, 0);
		// valida email - Duplicidade
		var validaMail 	= validaEmailDuplicado($('email'));
		// valida doc - Duplicidade
		var validaDoc 	= validaDocDuplicado($('docNumero'), $('docTipo'));
		
		// msg de erro
		alertError(formulario.id);
		
		/*
		* ENVIA
		*/
		//alert('valida: '+valida+'\nvalidaMail: '+validaMail+'\nvalidaDoc: '+validaDoc);
		
		if(valida==true && validaMail==true && validaDoc==true){
			// Submit
			formulario.submit();
			//alert('Formulário preenchido corretamente, porém como isso apenas é uma pré-visualização os dados não serão enviados!\nAtt, Jonas');
		}else{

            //Se estiver Editando
            if ($('editIns')){
                //Refaz validação e tenta submeter form.
                valida = validacao(formulario.id, 0, 0);
                if (valida==true){
                    // Submit
                    formulario.submit();
                }
            }
			//focus no erro
			//$$('#'+formulario.id+' input.'+campoClassNameErro+', #'+formulario.id+' select.'+campoClassNameErro+', #'+formulario.id+' textarea.'+campoClassNameErro)[0].activate();
			
			// Esconde loader e exibe botao
			$('submit_load').hide();
			botao.show();
			
		}

		//destrava
		//botao.disabled = false;
	}

	
	function boletoOption(){
		if($('pgtoTipo').value=='boleto' && $('pessoal_pais').value!='BR'){
			$('pgtoTipo').value = '';
			alert(strings['pgtoBoleto_erro']);
		}
	}

    function alteraValidacaoSenha(validacao){
        if (validacao == 1){
            $('senha').setAttribute("valida", "alfanum tamanho:6:12");
            $('senhac').setAttribute("valida", "comparacao:senha campo");
        }else{
            $A($$('.senhaBlank')).each(function(campo){
                campo.hide();
            });
            $('senha').setAttribute("valida", "");
            $('senhac').setAttribute("valida", "");
            $('senha').setAttribute("class", "");
            $('senhac').setAttribute("class", "");
        }//fim else
        
    }//fim function


    /**
    *  Função que seta valores e esconde campos para Inscrição Isenta
    */
    function formIsento(){

        /**
         * TAXA INSCRIÇÃO
         */
        //seta tipo de inscrição como isenta
        $('insTipo_0').checked = true;

        //oculta campos Tipo de Inscrição
        $('camposTipoIns').hide();

        /**
         * JANTAR
         */
        //seta jantar como "sim"
        $('jantar_1').checked = true;

        //ocultar campo jantar
        $('campos_jantar').hide();

        //oculta exibição dos valores
        $('valores_jantar').hide();

        /**
         * ALMOÇO
         */
        //seta 1 almoço para cada dia
        $('almoco1').value = 1;
        $('almoco2').value = 1;
        $('almoco3').value = 1;

        //oculta campos almoços
        $('fieldAlmoco').hide();

         //oculta exibição dos valores
        $('valores_almoco').hide();

        /**
         * DADOS COBRANÇA
         */
        $('pgtoTerceiros_0').checked = true;
        $('campos_cobranca').hide();

    }//fim function

    function atualizaTipoHidden(campo){
        if ( $('insTipoEdit') ){
            $('insTipoEdit').value = campo.value;
        }
    }

//alert('Fim do Arquivo: inscricoes.js');	