/*
FUN��O DE ALERT PARA ERRO
*/
function erro(s){
	if(idioma == '0'){		
		alert('*** ATENÇÃO ***\n\n'+s);
	}
	else if(idioma == '1'){
		alert('*** ATTENTION ***\n\n'+s);
	}
	else{
		alert('*** ATENCIÓN ***\n\n'+s);
	}
}

window.addEvent('domready', function() {
	/*
	ADICIONA A MASCARA NO CAMPO DEFINIDO
	*/
	var classMask = new jsRegExpMaskClass('campoCpf');
	classMask.addMask('keyup', 'cpf');
	
	/*
	
	MASCARA CEP
	
	*/
	var classMask = new jsRegExpMaskClass('campoCep');
	classMask.addMask('keyup', 'cep');
	
	/*
	
	MASCARA NOS CAMPOS DE TELEFONE
	
	*/
	var camposTelefone = [
						  $('campoTelRes'),
						  $('campoTelCel'),
						  $('campoTelRec'),
						  $('campoTelCom')
						  ];
	camposTelefone.each(function(item){
		var classMask = new jsRegExpMaskClass(item);
			classMask.addMask('keyup', 'telefone');
	});
	
	/*
	MASCARA "ONLY NUMBERS" PARA OS CAMPOS DECLARADOS NA ARRAY
	*/
	var camposOnlyNumber = [
							$('campoNascimentoDia'),
							$('campoNascimentoMes'),
							$('campoNascimentoAno'),
							$('campoNumero'),
							$('campoForm1DataIniMes'),
							$('campoForm1DataIniAno'),
							$('campoForm2DataIniMes'),
							$('campoForm2DataIniAno'),
							$('campoForm3DataIniMes'),
							$('campoForm3DataIniAno'),
							$('campoExp1DataEntradaMes'),
							$('campoExp1DataEntradaAno'),
							$('campoExp2DataEntradaMes'),
							$('campoExp2DataEntradaAno'),
							$('campoExp3DataEntradaMes'),
							$('campoExp3DataEntradaAno'),
							$('campoExp4DataEntradaMes'),
							$('campoExp4DataEntradaAno'),
							$('campoExp1DataSaidaMes'),
							$('campoExp1DataSaidaAno'),
							$('campoExp2DataSaidaMes'),
							$('campoExp2DataSaidaAno'),
							$('campoExp3DataSaidaMes'),
							$('campoExp3DataSaidaAno'),
							$('campoExp4DataSaidaMes'),
							$('campoExp4DataSaidaAno')
							];
	camposOnlyNumber.each(function(item){
		var classMask = new jsRegExpMaskClass(item);
			classMask.addMask('keyup', 'numeros');
	});
	
	/*
	
	SETA NAME PRA QUEM N�O TEM BASEADO NO ID
	
	*/
	var noNames = $$('input', 'textarea', 'select');
	noNames.each(function(item, index){
		//seta o NAME de n�o tiver
		if(item.name == ''){
			item.name = item.id;
		}
	});
	
	/*
	CONFIGURA O EFEITO DE "LABEL" NOS CAMPOS
	*/
	var inputs = $$('input[type=text]', 'textarea');
	inputs.each(function(item, index){
		//seta o NAME de n�o tiver
		if(item.name == ''){
			item.name = item.id;
		}
		item.defaultValue = item.getProperty('value');
		if((index + 1) != inputs.length && inputs[(index + 1)].getParents('li')[0].getStyle('display') != 'none'){
			item.nextFocus = inputs[(index + 1)];
		}else{
			item.nextFocus = null;
		}
		item.addEvent('keyup', function(){
			if(this.getProperty('maxlength') != -1 && this.getProperty('maxlength') == this.getProperty('value').length && this.nextFocus != null){
				this.nextFocus.focus();
			}
		});
		item.addEvent('focus', function(){
			if(this.getProperty('value') == this.defaultValue){
				this.setProperty('value', '');
			}
		});
		item.addEvent('blur', function(){
			if(this.getProperty('value').length == '0'){
				this.setProperty('value', this.defaultValue);
			}
		});
	});
	
	/*
	EVENTOS PERSONALIZADAS PARA INPUTS
	*/
	/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
	var qtdMax = 500;
	$('campoResumoCurriculo').addEvent('keyup', textAreaChange);
	$('campoResumoCurriculo').addEvent('focus', textAreaChange);
	$('campoResumoCurriculo').addEvent('blur', textAreaChange);
	function textAreaChange(event){
		if(this.getProperty('value').length >= qtdMax){
			this.setProperty('value', this.getProperty('value').substring(0, qtdMax));
		}
		$('qtdChrResumoCurriculo').setProperty('text', (qtdMax - this.getProperty('value').length));
	}
	$('campoResumoCurriculo').fireEvent('keyup');
	/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
	$('campoAreaDesejada').addEvent('change', function(event){
		var qtdSelect = 0;
		for(i=0;i<this.options.length;i++){
			if(this.options[i].selected){
				qtdSelect++;
			}
			if(qtdSelect > 3){
				this.options[i].selected = false;
			}
		}
	});
	/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
	$('campoNivelHierarquico').addEvent('change', function(event){
		var qtdSelect = 0;
		for(i=0;i<this.options.length;i++){
			if(this.options[i].selected){
				qtdSelect++;
			}
			if(qtdSelect > 2){
				this.options[i].selected = false;
			}
		}
	});
	/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
	var locaisAdicionais = [$('selectsCidadesParaTrabalhar'), $('addMaisCidade')];
	$('campoCidadeParaTrabalhar').addEvent('click', function(event){	//campoCidadeParaTrabalharEstado / campoCidadeParaTrabalharCidade
		if(this.checked){
			locaisAdicionais.each(function(item){
				item.setStyle('display','none');
			});
		}else{
			locaisAdicionais.each(function(item){
				item.setStyle('display','block');
			});
		}
	});
	
	//Loader ajax que entra antes de cada combobox de estado e cidade
	function inOutLoaderAjax(element,boo){
		if(boo){
			var imgLoader = new Element('img',{
				'id':'imgLoaderAjax',
		//		'src': 'http://www.labclick.com.br/renk/img/form_curriculo/ajax-loader.gif',
				'styles':{
					'position':'absolute'
				}
			});
			imgLoader.inject(element, 'before');
			element.setStyle('visibility','hidden');
		}else{
			$('imgLoaderAjax').destroy();
			element.removeProperty('disabled');
			element.setStyle('visibility','visible');
		}
	}
	
	/*
	
	POPULANDO SELECT DE PA�SES E ADICIONANDO EVENTO PARA LOCALIDADE NACIONAL OU INTERNACIONAL
	
	*/
	inOutLoaderAjax($('campoPais'), true);	
	var requestEstados = new Request.JSON({
		url: 'http://www.renkzanini.com/trabalhe_conosco/retorna/paises',
		onComplete: function(jsonObj) {			
			jsonObj.paises.each(function(objPais){
				var newOption = new Element('option',{
					'value':objPais.id,
					'text':objPais.nome
			//		'value':'valor',
			//		'text':'texto'
				});
				$('campoPais').adopt(newOption);
			});
			inOutLoaderAjax($('campoPais'), false);
		}
	}).send();
	
	//liEndereco - liNumeroCompl - liBairroCep
	$('campoPais').addEvent('change',function(event){
		if(this.getProperty('value') == '30'){
			$('liCampoCidadeInternacional').setStyle('display','none');
			$('tels1').setStyle('display','block');
			$('tels2').setStyle('display','block');
			$('liCamposEstadoCidadeBrasil').setStyle('display','block');
			$('liEndereco').setStyle('display','block');
			$('liNumeroCompl').setStyle('display','block');
			$('liBairroCep').setStyle('display','block');
		}else if(this.getProperty('value') == '0'){
			$('liCampoCidadeInternacional').setStyle('display','none');
			$('liCamposEstadoCidadeBrasil').setStyle('display','none');
			$('tels1').setStyle('display','none');
			$('tels2').setStyle('display','none');
			$('liEndereco').setStyle('display','none');
			$('liNumeroCompl').setStyle('display','none');
			$('liBairroCep').setStyle('display','none');
		}else{
			$('liCampoCidadeInternacional').setStyle('display','block');
			$('liCamposEstadoCidadeBrasil').setStyle('display','none');
			$('tels1').setStyle('display','none');
			$('tels2').setStyle('display','none');
			$('liEndereco').setStyle('display','none');
			$('liNumeroCompl').setStyle('display','none');
			$('liBairroCep').setStyle('display','none');
		}
	});
	
	//Fun��o que liga os selects ESTADO e CIDADE
	function bindSelectsEstadoCidade(selEst, selCid){
		var selectEstado = selEst;
			inOutLoaderAjax(selectEstado, true);
		var selectCidade = selCid;
			selectCidade.setProperty('disabled','disabled');
		//Lista os estados no select respectivo
		var requestEstados = new Request.JSON({
			url: 'http://www.renkzanini.com/trabalhe_conosco/retorna/estados',
			onComplete: function(jsonObj) {
				jsonObj.estados.each(function(objEstado){
					var newOption = new Element('option',{
						'value':objEstado.id,
						'text':objEstado.estado
					});
					selectEstado.adopt(newOption);
				});
				inOutLoaderAjax(selectEstado, false);
			}
		}).send();
		//Adiciona o evento para listar as cidades do estado escolhido
		selectEstado.addEvent('change', function(event) {
			event.stop();
			//Apaga cidades j� listadas anteriormente
			selectCidade.getElements('option').each(function(elementOption){
				if(elementOption.getProperty('value') != '0'){
						elementOption.destroy();
				}
			});
			//Verifica se o que o usu�rio selecionou n�o � o primeiro "option" referente ao "label" do "select"
			if(selectEstado.getProperty('value') != '0'){
				//mostra uam imagem para loader de ajax e da um "visibility" no "select" das cidades
				inOutLoaderAjax(selectCidade, true);
				//requisita as cidades referente ao estado escolhido
				var requestCidades = new Request.JSON({
					url: 'http://www.renkzanini.com/trabalhe_conosco/retorna/cidades/'+selectEstado.getProperty('value'),
					onComplete: function(jsonObj) {
						jsonObj.cidades.each(function(objCidade){
							var newOption = new Element('option',{
								'value':objCidade.nome,
								'text':objCidade.nome
							});
							selectCidade.adopt(newOption);
						});
						inOutLoaderAjax(selectCidade, false);
					}
				}).send();
			}else{
				//se o usu�rio seleciona o "label", � disabilitado o "select" de cidades
				selectCidade.setProperty('disabled','disabled');
			}
		});
	}
	//FIM: Fun��o que liga os selects ESTADO e CIDADE
	
	/*
	POPULANDO E LIGANDO CAMPOS DE ESTADO E CIDADE
	*/
	//Select do estado e o que receber� a cidades
	var selectsEstadoCidade = [
							   {idEstado: 'campoEstado', idCidade: 'campoCidade'},
							   {idEstado: 'campoCidadeParaTrabalharEstado', idCidade: 'campoCidadeParaTrabalharCidade'}
							   ];
	//Inicio do loop para configurar e adicionar eventos aos selects acima
	selectsEstadoCidade.each(function(item){
		bindSelectsEstadoCidade($(item.idEstado), $(item.idCidade));
	});
	
	/*
	
	DUPLICA��O DOS CAMPOS DE ESTADO / CIDADE
	
	*/
	//ultimo campo duplicado
	var lastSelect = $('selectsCidadesParaTrabalhar')
	//Para identar os selects locais clonados
	var increment = 1;
	//quando se clica paara abrir mais estado/cidade
	$('addMaisCidade').addEvent('click', function(event){
		//ve se o estado/cidade anterior foi preenchido, se n�o d� um ALERT
		if(lastSelect.getElements('select')[0].getProperty('value') != '0' && lastSelect.getElements('select')[1].getProperty('value') != '0'){
			//clona e injeta o novo estado/cidade abaixo
			var clone = lastSelect.clone().injectAfter(lastSelect);
			//guarda o clone para quando o usuario selecionar que pode ser todos o brasil, esconder todos, inclusive os criados dinamicamente
			locaisAdicionais.push(clone);
			//guarda para o pr�ximo clone
			lastSelect = clone;
			//pegas os 2 elementos selects (estado e cidade)
			var selects = clone.getElements('select');
			//var que guardara os novos IDs dos selects (estado e cidade)
			var newSelects = [];
			//percore os dois selects setando os novos IDs e destruindo os option antigos herdados do clonado
			selects.each(function(item, index){
				var newID = 'campoCidadeParaTrabalhar' + increment.toString() + index;
				newSelects.push(newID);
				item.setProperty('id', newID);
				item.setProperty('name', newID);
				item.getElements('option').each(function(elementOption){
					if(elementOption.getProperty('value') != '0'){
							elementOption.destroy();
					}
				});
			});
			increment++;
			bindSelectsEstadoCidade($(newSelects[0]),$(newSelects[1]));
			
			//gravar no input hidden
			var localEstadoCidade = $('idsSelectsCidadesTrabalhar').getProperty('value').split('|');
				localEstadoCidade.push(newSelects);
			$('idsSelectsCidadesTrabalhar').setProperty('value', localEstadoCidade.join('|'));
		}else{	//	erro se o anterior n�o for preenchido
			erro('Selecione o estado e a cidade antes.');
		}
	});
	
	/*
	
	CHECA SE O USUARIO SELECIONOU OTRAS DEFICIENCIAS, SE SIM, APARECE O CAMPO ABERTO
	
	*/
	$('campoDeficienciasOutras').addEvent('click',function(event){
		if(this.checked){
			$('outrasLimitacoes').setStyle('display','block');
		}else{
			$('outrasLimitacoes').setStyle('display','none');
		}
	});
	
	/*
	
	SE O USU�RIO FOR DEFICIENTE, APARECE AS OP��ES PARA COMPLETAR O CADASTRO
	
	*/
	var camposExtrasPID = [
						   $('tituloPossuiLimitacoes'),
						   $('alternativasPossuiLimitacoes'),
						   $('tituloDocumentacao'),
						   $('alternativasDocumentacao'),
						   $('tituloAvaliacao'),
						   $('alternativasAvaliacao')
						   ];
	$('campoConsideraDeficienteSim').addEvent('click',function(event){
		camposExtrasPID.each(function(item){
			item.setStyle('display','block');
		});
		if($('campoDeficienciasOutras').checked){
			$('outrasLimitacoes').setStyle('display', 'block');
		}
	});
	$('campoConsideraDeficienteNao').addEvent('click',function(event){
		camposExtrasPID.each(function(item){
			item.setStyle('display','none');
		});
		if($('outrasLimitacoes').getStyle('display') == 'block'){
			$('outrasLimitacoes').setStyle('display', 'none');
		}
	});
	
	/*
	
	QUANDO CHECAR A L�NGUA, AUTO-SELECIONAR O N�VEL B�SICO
	
	*/
	$(document.body).getElements('tr.camposLingua').each(function(item){
		var checkBox = item.getElements('input[type=checkbox]')[0];
		var alternativas = item.getElements('input[type=radio]');
		
		checkBox.addEvent('click', function(event){
			if(this.checked){
				alternativas[0].checked = true;
			}else{
				alternativas.each(function(item){
					item.checked = false;
				});
			}
		});
		
		alternativas.each(function(item){
			item.addEvent('click', function(event){
				if(item.checked){
					checkBox.checked = true;
				}
			});
		});
	});
	
	/*
	
	SE O USU�RIO SETAR COMO TRABALHO ATUAL, A DATA DE SA�DA SOME
	
	*/
	var checkTrabalhoAtual = [
							  ['campoExp1EmpregoAtualSim','campoExp1EmpregoAtualNao','dataSaidaExp1'],
							  ['campoExp2EmpregoAtualSim','campoExp2EmpregoAtualNao','dataSaidaExp2'],
							  ['campoExp3EmpregoAtualSim','campoExp3EmpregoAtualNao','dataSaidaExp3'],
							  ['campoExp4EmpregoAtualSim','campoExp4EmpregoAtualNao','dataSaidaExp4']
							  ];
	checkTrabalhoAtual.each(function(item){
		var radioSim = $(item[0]);
		var radioNao = $(item[1]);
		var liSaida = $(item[2]);
		radioSim.addEvent('click',function(event){
			if(this.checked){
				liSaida.setStyle('display','none');
			}
		});
		radioNao.addEvent('click',function(event){
			if(this.checked){
				liSaida.setStyle('display','block');
			}
		});
	});
	
	/*
	
	SE O USU�RIO SELECIONAR "ENSINO M�DIO", N�O DEIXA ELE ESCREVER O NOME DO CURSO
	
	*/
	var formGrauCurso = [
						 [$('campoForm1GrauEscolaridade'),$('liCursoForm1')],
						 [$('campoForm2GrauEscolaridade'),$('liCursoForm2')],
						 [$('campoForm3GrauEscolaridade'),$('liCursoForm3')]
						 ];
	formGrauCurso.each(function(item){
		var selGrau = item[0];
		var inpCurs = item[1];
		
		selGrau.addEvent('change',function(event){
			switch(this.value){
				case '0':
					inpCurs.setStyle('display','none');
				break;
				case 'ensino m�dio':
					inpCurs.setStyle('display','none');
				break;
				default:
					inpCurs.setStyle('display','block');
				break;
			}
		});
	});
});
