/* 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');

	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);
		
		
	/*
	//CEP - Webservice
	if(formulario){
		
		//observers
		$A($$('.CEP')).each(function(campo){
			Event.observe(campo, 'blur', function(event){ getEndereco(Event.element(event)); }, 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')); }, false);
		

	
	//Etapa 4 - Tipo de inscricao

		// Associados
		$A(document.getElementsByName('form[associado]')).each(function(campo){
			if(campo.checked==true){
				associado(campo.value, $('docNumero'));
			}
			Event.observe(campo, 'click', function(event){ associado(campo.value, $('docNumero')); }, false);
		});
		
		enableSocios(0);

		//Jantar
		if(jantar==1){
			jantarEstudante();
			$A(document.getElementsByName('form[insTipo]')).each(function(campo){
				Event.observe(campo, 'click', function(event){ jantarEstudante(); }, false);
			});
		}
		
		//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
		$A(document.getElementsByName('form[mc][]')).each(function(campo){
			Event.observe(campo, 'click', function(event){ setMcChecked(Event.element(event));});
		});
		
	// Crachá - preview
	if($('crachaPreView')){
		// nome
		$('cracha_nome').observe('keyup',function(){
			setInnerHTML($('crachaPreView_nome'), $F('cracha_nome'));
		});
		// inst
		$('cracha_inst').observe('keyup',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');
		//metodo de pgto
		var pgto = $$('#pgtoTipo');
		
		var produtos = new Array();
		produtos = produtos.concat(aIns).concat(aJantar).concat(aMC).concat(aAcomAdd).concat(aAcomRemove).concat(pgto);
		
		//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);
		});
		

		// 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
	
//alert('/Função: inicial');
	
}//inicial


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.titulacao;
					$('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("Erro ao realizar a busca de pré-registro.\n\nPor favor, tente novamente, caso o erro persistir entre em contato com o desenvolvedor do sistema!");
			}//onFailure
		});
		
	}// else
	
}// buscaPreRegistro()


function visibleForm(show){
	if(show==1){
		formularioLoad.hide();
		formulario.show();
	}
}



	/* 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]);
		//$('valor_ins').innerHTML = "+ "+ strings['moeda'] +" "+ valor_ins + strings['moeda_zeros'];
		setInnerHTML($('valor_ins'), "+ "+ strings['moeda'] +" "+ valor_ins + strings['moeda_zeros'])
		
		//Jantar 
		if(jantar==1){
			var valor_jantar = 0;
			var ins_jantar = getValueFromRadio('form[jantar]');
			valor_jantar = (ins_jantar==false)? 0 : parseFloat(strings['jantarValor_'+ ( (ins_jantar==1)?  ((isEstudante()==true)?2:1) : 0) ]);
			//$('valor_jantar').innerHTML = "+ "+ strings['moeda'] +" "+ valor_jantar + strings['moeda_zeros'];
			setInnerHTML($('valor_jantar'), "+ "+ strings['moeda'] +" "+ valor_jantar + strings['moeda_zeros'])
		}else{
			var valor_jantar = 0;
		}

		
		//Mini cursos
		if(strings['mc']==1){
			var mc_count = 0;
			$A($$('#mcCheck input')).each(function(campo){
				if(campo.checked==true){ mc_count++; }
			});
			var valor_mc = parseFloat(strings['mc_valor']) * mc_count;
			//$('valor_mc').innerHTML = "+ "+ strings['moeda'] +" "+ valor_mc + strings['moeda_zeros'];
			setInnerHTML($('valor_mc'), "+ "+ strings['moeda'] +" "+ valor_mc + strings['moeda_zeros'])
		}//MC
		else{
			var valor_mc = 0;
		}
		
		
		//Acompanhantes
		
			// obtem o valor do acompanhante
			if(ins_tipo){
				var evento = String($('insTipo_'+ins_tipo).className.match(/evento\d/)).replace(/evento/,'');
				var acom_valor = strings['acom_valor_P'+insPeriodoAtual+'_E'+evento];
			}else{
				var evento = '';
				var acom_valor = 0;
			}
			
			// atualiza no html
			if(acom_valor>0){
				setInnerHTML($('acompanhante_valor'), acom_valor);
				$('acompanhante_valor_str').show();
			}else{
				$('acompanhante_valor_str').hide();
			}
			
			// calcula valor total dos acompanhantes
			acom_count = ($('acompanhantes_0').checked==true)? 0 : $$('#boxAcompanhantes input.acompanhante').length ;
			var valor_acom = parseFloat(acom_valor) * parseFloat(acom_count);
			//$('valor_acom').innerHTML = "+ "+ strings['moeda'] +" "+ valor_acom + strings['moeda_zeros'];
			setInnerHTML($('valor_acom'), "+ "+ strings['moeda'] +" "+ valor_acom + strings['moeda_zeros']);
			
			// Taxas
			//                 <li id="taxas_label" display='none;'><span id="valor_taxas"></span> - {ETAPA9_TAXAS}</li>
			if($F('pgtoTipo')=='transferencia'){
				var taxas_valor = 50;
				// add valor
				setInnerHTML($('valor_taxas'), "+ "+ strings['moeda'] +" "+taxas_valor + strings['moeda_zeros']);

				// exibe linha
				$('taxas_label').show();
			}else{
				var taxas_valor = 0;
				
				// oculta linha
				$('taxas_label').hide();
			}


		
		//Total
		var valor_total = parseFloat(valor_ins) + parseFloat(valor_jantar) + parseFloat(valor_mc) + parseFloat(valor_acom) + parseFloat(taxas_valor);
		//$('valor_total').innerHTML = "+ "+ strings['moeda'] +" "+ valor_total + strings['moeda_zeros'];
		setInnerHTML($('valor_total'), "+ "+ strings['moeda'] +" "+ valor_total + strings['moeda_zeros']);
		
	}


	/* 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;
		}
			
		if(checkeds>strings['mc_limite']) {
			//mensagem de alerta
			alert('Você pode escolher no máximo '+ strings['mc_limite'] +' minicursos!');
			//deseleciona o campo
			campo.checked = false;
		}
	}

	/* Verifica se o CPF do usuário faz paste da sociedade */
	function associado(sId, doc){
		
		debug("sId:"+sId+"\ndoc: "+doc.value);
		
		sId = (sId)?sId:false;
		doc = (doc)?doc:false;
		
		// 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;
			var myAjax = new Ajax.Request( url, {
				method: 'post',
				parameters: pars,
				onLoading: function() {
					// exibe load
					$('associado_load').show();
				},//onLoading
				onComplete: function(originalRequest) {
					// esconde load
					$('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 2007 ou 2008 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(){
		
		//loop dos periodos
		insPeriodo.each(function(v, k){
			if(dataAtual<v[0] || dataAtual>v[1]){
				//deseleciona
				$$('.periodo'+k).invoke('writeAttribute', 'checked', false);

				//desabilita
				/*
					Comentado para o PNCS visualizar
					$$('.periodo'+k).invoke('disable');
				 */
				
				//txt riscado
				$$('.periodo'+k).invoke('up').invoke('addClassName', 'desabilitada');
			}
		});//fim do loop
		
	}
	

	/*
	function getEndereco(campo_cep){
		
		cep = campo_cep.value;
		
		//Busca CEP com 8 caracteres
		if(cep.length==8){
			
			//AJAX
			var url = './rpc/cep.php'; // colocar URL completa
			var pars = 'cep='+cep;
			var myAjax = new Ajax.Request( url, {
				method: 'post',
				parameters: pars,
				onLoading: function() {
					
				},//onLoading
				onComplete: function(originalRequest) {
					
					alert(originalRequest.responseText);
					
				},//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']+")":"") +"\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){
				$('acompanhanteAdd').activate();
			}
			
			// atualiza valores
			subTotal();
		}
		
	}

	
	/* Remove Acompanhante da Lista */
	function acompanhanteRemove(id){
		$(id).remove();
		
		// Exibe/Oculta lista
		showListaAcompanhantes();
		
		// atualiza valores
		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
		$$('.msgField').each(Element.hide);
		/*
		$A($$('.msgField')).each(function(msg){
			new Effect.Opacity(msg, {duration:0.1, from:1.0, to:0.0});
		});
		*/
		
		validacao(form, 1, 1);
		
		//pega todos elementos input da AREA faz um loop
		$$('#'+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'];

			//alert(msgErro+"\n"+msgErroDup);
			
			if(msgInfo){
				
				debug("campo: "+campo.id+"\nTipo: "+campo.type);
				
				//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++;
			}
		});
		
		//alert("ERROS: "+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){
				debug("getValueFromRadio()\nCampo: "+campo.id+"\nValue:"+campo.value+"\nChecked:"+campo.checked);
				if(campo.checked==true){
					campoChecked = campo.value;
				}
		});
		//retorna
		return (campoChecked)?campoChecked:false;
	}//function
	


	function submitForm(botao){
		
		//trava botao
		botao.disabled = true;
				
		/*
		* VALIDACAO
		*/
		
		// valida campos
		var valida = validacao(formulario.id);
		// valida email - Duplicidade
		var validaMail 	= validaEmailDuplicado($('email'));
		// valida doc - Duplicidade
		var validaDoc 	= validaDocDuplicado($('docNumero'), $('docTipo'));
		
		// msg de erro
		alertError(formulario.id);
		
		// debug
		debug('valida: '+valida+"\nvalidaMail: "+validaMail+"\nvalidaDoc: "+validaDoc);

		
		/*
		* ENVIA
		*/
		if(valida==true && validaMail==true && validaDoc==true){
			// Submit
			formulario.submit();
		}else{
			//focus no erro
			//$$('#'+formulario.id+' input.'+campoClassNameErro+', #'+formulario.id+' select.'+campoClassNameErro+', #'+formulario.id+' textarea.'+campoClassNameErro)[0].activate();
		}
		
		//destrava
		botao.disabled = false;
	}


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