function checkCPF($this,callback) {
	if(!$this.is('.fieldError')) {
		var $checking = $('<span> verificando...</span>');
		var $invalid = $this.parent().find('.dv_invalidField');
		
		$this.next().after($checking);
		
		$.postJSON(
			'/curriculo/checkCpf/' + $this.val().replace(/\D/gi,''),
			function(response) {
				$checking.remove();
				
				if(!response.exists) {
					if($invalid.length == 0)
						$invalid = $('<div class="dv_invalidField">'
							+'Não foi encontrado nenhum currículo com este CPF. Digite o número de CPF novamente.'
							+'</div>');
					
					$this
						.removeClass('fieldSuccess')
						.addClass('fieldError cpferror')
						.next().next()
						.after($invalid);
					
					$invalid.show();
				}
				else {
					$this.removeClass('cpferror');
					$invalid.remove();
				}
				
				if($.isFunction(callback)) {
					callback(response.exists);
				}
			}
		);
	}
}

function deleteItem(dados,self,parent,name) {
	if(dados[self] != undefined
		&& dados[self][parent] != undefined 
		&& dados[self][parent] != 'sim'
	) {
		delete dados[self][name];
	}
}

function sendQuestions() {
	var $this = $(this);
	var _text = $this.val();
	var $form = $('#fm_questionarioSuporteSoftware'),
		dados = {};
	
	if($(':maskedTo').maskedToNow(true).noValidSize() > 0) {
		alert('ATENÇÃO:\n\nPara enviar o questionário você precisa preencher todos os campos corretamente.');
	}
	else {
		checkCPF(
			$('#dadosPessoais_cpf'),
			function(cpf){
				if(!cpf) {
					alert('ATENÇÃO:\n\nVocê precisa preencher o campo CPF com um número válido e precisa ser o mesmo cadastrado no seu currículo.');
					return;
				}
				
				$form.find(
						'[name^=dadosPessoais_]:not(:radio),:radio:checked'
					).each(
						function(){
							var $this = $(this);
							var name = $this.attr('name').replace(/^[^_]+_(.+)$/,'$1');
							
							dados[name] = $this.val();
						}
					);
				
				for(var k in dados) {
					if(/_/.test(k)) {
						var parent = k.replace(/^([^_]+)_(.+)$/,'$1');
						var name = k.replace(/^[^_]+_(.+)$/,'$1');
						
						if(!dados[parent]) {
							dados[parent] = {};
						}
						
						dados[parent][name] = dados[k];
						delete dados[k];
					}
				}
				
				deleteItem(dados,'bebidaAlcoolica','bebe','frequencia');
				deleteItem(dados,'automovel','possui','qual');
				deleteItem(dados,'filhos','possui','quantidade');
				deleteItem(dados,'religiao','segue','qual');
				
				$this.val('Aguarde. Enviando questionário...');
				$.post('salvarQuestionarioSuporte',
					{
						data: JSON.phpArrayEncode(dados)
					},
					function(resp){
						if(resp.length == 0) {
							alert('SUCESSO!\n\nSeu questionário foi enviado com sucesso.'
								+'\n\nATENÇÂO:\n\nAo fechar este alerta, você será redirecionado para a página de contato.');
							location.href = '/contato';
						}
						else {
							alert('ERRO:\n\nErro desconhecido.');
							$this.val(_text);
						}
					}
				);
			}
		);
	}
}

$(function(){
	// Validar o CPF
	$('#dadosPessoais_cpf').blur(function(){
		var $this = $(this);
		setTimeout(function(){
			checkCPF($this);
		},3);
	});
	
	$('#sendQuestions').click(sendQuestions);
});
