checkFields = function() {
    var retorno = true;
    var erro = '';

    $('.required-input').each(
        function() {
            if($(this).val() == '') {
                retorno = false;
                erro += 'Campo '+$(this).attr('title')+' precisa ser preenchido!\n';
            }
        }
    );

    $('.required-email').each(
        function() {
            var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
            if( $(this).val().search(emailRegEx) == -1 ) {
                retorno = false;
                erro += 'Email invalido!\n';
            }
        }
    );

    if(!retorno)
        alert(erro);

    return retorno;
}

checkFieldsCandidato = function() {
    var retorno = true;
    var erro = '';

    $('.required-input').each(
        function() {
            if($(this).val() == '') {
                retorno = false;
                erro += 'Campo '+$(this).attr('title')+' precisa ser preenchido!\n';
            }
        }
    );
        
    $('.required-cpf').each(
        function() {
           var cpf = $(this).val();
           var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;
           flag = false;
           if(!filtro.test(cpf)){
               retorno = false;
               erro += 'CPF invalido, use a pontuacao!\n';
               flag = true;
           }

           cpf = remove(cpf, ".");
           cpf = remove(cpf, "-");

           if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" ||
                  cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" ||
                  cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" ||
                  cpf == "88888888888" || cpf == "99999999999"){
                  if(flag == false){
                      retorno = false;
                      erro += 'CPF invalido!\n';
                      flag = true;
                  }
           }

           soma = 0;
           for(i = 0; i < 9; i++)
                 soma += parseInt(cpf.charAt(i)) * (10 - i);
           resto = 11 - (soma % 11);
           if(resto == 10 || resto == 11)
                 resto = 0;
           if(resto != parseInt(cpf.charAt(9))){
                if(flag == false){
                    retorno = false;
                    erro += 'CPF invalido!\n';
                    flag = true;
                }
           }
           soma = 0;
           for(i = 0; i < 10; i ++)
                 soma += parseInt(cpf.charAt(i)) * (11 - i);
           resto = 11 - (soma % 11);
           if(resto == 10 || resto == 11)
                 resto = 0;
           if(resto != parseInt(cpf.charAt(10))){
                if(flag == false){
                    retorno = false;
                    erro += 'CPF invalido!\n';
                    flag = true;
                }
           }
        }
    );
        
    $('.required-data').each(
        function() {
            var DataRegEx = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
            if( $(this).val().search(DataRegEx) == -1 ) {
                retorno = false;
                erro += 'Data invalida!\n';
            }
        }
    );

    $('.required-email').each(
        function() {
            var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
            if( $(this).val().search(emailRegEx) == -1 ) {
                retorno = false;
                erro += 'Email invalido!\n';
            }
        }
    );

    if(!retorno)
        alert(erro);

    return retorno;
}

$(document).ready(function(){
	openAlert();
});

formSubmit = function(formName){
	$('form[name='+formName+']').submit();
	return false;
};

openAlert = function(){
	$(".mensagem-alert").dialog({
		bgiframe: true,
		modal: true,
		buttons: {
			Ok: function() {
				$(this).dialog('close');
			}
		}
	});
};

ajaxRequest = function(url,idDestino,data,type){
	$.ajaxSetup({async:false});
	
	if(type==null)
		type = "GET";
	if(data==null)
		data = "";
	
	$.ajax({
		url: url,
		type: type,
		cache: false,
		data: data,
		//beforeSend: function(){console.log('carregando...');},
		//error: function(){console.log('erro =/');},
		success: function(data){$('#'+idDestino).html(data);}
		//complete: function(){console.log('completo!');}
	});
	
	$.ajaxSetup({async:true});
};
var urlAjax = '';
initSelectBairro = function(url){
	
	ajaxRequest(url,'select_uf',null,'POST');
	//$.ajaxSetup({async:true});
	
	$('#select_uf:visible').change(function(){
		var data = 'cd_uf=' + this.value;
		//$.ajaxSetup({async:false});
		ajaxRequest(url,'select_cidade',data,'POST');
		//$.ajaxSetup({async:true});
	});
	$('#select_cidade:visible').change(function(){
		var data = 'cd_cidade=' + this.value;
		//$.ajaxSetup({async:false});
		ajaxRequest(url,'select_bairro',data,'POST');
		//$.ajaxSetup({async:true});
	});
}

pesquisaCandidatasOnChangeSelectEstado = function(srcEl)
{
	var idUf = $(srcEl).val();
	
	var currOptions = $('#cidade_busca_candidatas')[0].options;
	
	$(currOptions).each(function(iOption, currOption){
		$('#cidade_busca_candidatas')[0].options[iOption] = null;
	});

	if(idUf == '')
	{
		$('#cidade_busca_candidatas')[0].options[0] = new Option('- Selecione um estado -','');
		return false;
	}else{
		var urlBusca = homeSite + 'info/cidades/' +idUf;
		
		var currOptions = $('#cidade_busca_candidatas')[0].options;
		
		$(currOptions).each(function(iOption, currOption){
			if($('#cidade_busca_candidatas')[0].options.length > 0)
				$('#cidade_busca_candidatas')[0].options[$('#cidade_busca_candidatas')[0].options.length - 1] = null;
		});

		$('#submit_busca_candidatas').attr('disabled', 'disabled');
		
		$.getJSON(urlBusca, function(json){
			var retorno = json;
			
			$('#cidade_busca_candidatas')[0].options[0] = new Option('- - -','');
			
			$(retorno).each(function(i, curr){
				$('#cidade_busca_candidatas')[0].options[i+1] = new Option(curr.ds_cidade, curr.cd_cidade);
			});
			
			$('#submit_busca_candidatas').removeAttr('disabled');
		});
	}
}

checkAuth = function()
{
	var retornoValidacao = false;
	
	$.ajaxSetup({async:false});
	
	$.getJSON(homeSite + 'login/clienteautenticado/', function(json){
		retornoValidacao = json;
	});
	
	$.ajaxSetup({async:true});
	
	if(! retornoValidacao){
		displayLoginDialog();
	}	
	
	return retornoValidacao;
}

checkIntegrityFormPesquisa = function(formObject){
	if($('input:checked', $(formObject)).length == 0){
		alert('Atenção!\n\nVocê deve selecionar ao menos uma candidata para continuar.');
		return false;
	}
	
	if($('input:checked', $(formObject)).length > 5){
		alert('Atenção!\n\nVocê deve selecionar no máximo 5 candidatas.');
		return false;
	}
	
	/*
	var retornoAutenticacao = checkAuth();
	
	if(retornoAutenticacao){
		$.ajax({
			async	:	false,
			data	:	$(formObject).serialize(),
			success	:	function(data, textStatus, xhr){
				if(textStatus == 'success'){
					if(data == 'true'){
						alert('Solicitação enviada com sucesso.');
						document.location = homeSite + 'index/index';
					}else{
						alert('Atenção!\n\nSolicitação não pode ser enviada, por favor tente mais tarde.\n\nDetalhes do erro: ' + data);
					}
				}
				/*console.log(data);
				console.log(textStatus);
				console.log(xhr);* /
			},
			type	:	'POST',
			url		:	$(formObject).attr('action')
		});
		
		return false;
	} else 
		return false;*/
	
	return true;
}

displayLoginDialog = function(){
	$('#auth-form').dialog({
		'modal' : true
	});
	
	if(! $('#auth-form').dialog('isOpen')){
		$('#auth-form').dialog('open');
	}
}
votaEnquete = function(sourceObject){
    

     var formEl = sourceObject.form;
    var postElements = $(formEl).serialize();

    $.ajax({
            type: 'POST',
            url: homeSite+'index/salvaenquete',
            dataType : 'json',
            data:postElements,
            success: function(msg){
                    if(msg.status == 'sucess')
                    {
                         $('#show_enquete').html(msg.view);
                         $('#xml').val(msg.xml);
                    }
                    else
                    {
                            alert('Um erro ocorreu.');
                    }
            }
    });
}

addReferenciaProfisional = function(){
	var modelo = $('.modelo-referencia-profissional', $('#containerRefProf'));
	var clone = $(modelo).clone();
	var cloneStr = $(clone).html();
	
	var regExBusca = /(\$id\$)/gi;
	var indiceAtual = $('div.referencia-profissional-instancia', $('#containerRefProfPersistencia')).length;
	
	$(clone).html(cloneStr.replace(regExBusca, (indiceAtual + 1)));
	$(clone).removeClass('modelo-referencia-profissional');
	$(clone).addClass('referencia-profissional-instancia');
	$(clone).show();
	
	$('.pre-ui-calendar', $(clone)).addClass('ui-calendar');
	$('.ui-calendar', $(clone)).removeClass('pre-ui-calendar');
	
	$('#containerRefProfPersistencia').append(clone);
	
	initCalendar();
}


cadastroCandidataShowTodasFuncoes = function(){
	$('#cadastro-candidata-todasFuncoes').show();
	$('#cadastro-candidata-funcoesPrincipais').hide();
	
	var selecionadasPrincipais = $('input:checkbox:checked', $('#cadastro-candidata-funcoesPrincipais'));
	
	$(selecionadasPrincipais).each(function(i, curr){
		var itemNoContainerTodas = $('#' + $(curr).attr('id'), $('#cadastro-candidata-todasFuncoes'));
		$(itemNoContainerTodas).attr('checked', true);
	});
	
	$(selecionadasPrincipais).attr('checked', false);
}

cadastroCandidataShowTodosCursos = function(){
	$('#cadastro-candidata-todosCursos').show();
	$('#cadastro-candidata-cursosPrincipais').hide();
	
	var selecionadasPrincipais = $('input:checkbox:checked', $('#cadastro-candidata-cursosPrincipais'));
	
	$(selecionadasPrincipais).each(function(i, curr){
		var itemNoContainerTodas = $('#' + $(curr).attr('id'), $('#cadastro-candidata-todosCursos'));
		$(itemNoContainerTodas).attr('checked', true);
	});
	
	$(selecionadasPrincipais).attr('checked', false);
}

initCalendar = function(){
	$('.ui-calendar').datepicker();
}

formLoginEsqueciSenha = function(){
	$('#forgot-pass-form').dialog({
                'modal' : true,
		'buttons' : {
			'Enviar' : function() {
				esqueciSenhaEnviarFormulario(this);
			}
		}

        });

        if(! $('#forgot-pass-form').dialog('isOpen')){
                $('#forgot-pass-form').dialog('open');
        }	
}

esqueciSenhaEnviarFormulario = function(domNode){
	var perfilSelecionado	= $('#esqueci_senha-perfil_usuario').val();
	var cpfCnpjInformado	= $('#esqueci_senha-cpf_cnpj_usuario').val();

	if(perfilSelecionado == '' || $.trim(cpfCnpjInformado) == ''){
		alert('Informe os campos solicitados para continuar.');
		return false;
	}

	var perfilSelecionadoDom	= $('#esqueci_senha-perfil_usuario');
	var formEnvioSenha		= $(perfilSelecionadoDom)[0].form;

	$.ajax({
		type		: $(formEnvioSenha).attr('method'),
		url		: $(formEnvioSenha).attr('action'),
		dataType 	: 'json',
		data		: $(formEnvioSenha).serialize(),
		async		: false
	});

	alert('Verifique seu email, uma nova senha de acesso foi enviada.');
	$('#forgot-pass-form').dialog('close');
}

function remove(str, sub) {
   i = str.indexOf(sub);
   r = "";
   if (i == -1) return str;
   r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
   return r;
}
