$("#limpar-pesquisa").on('click', function(event) {
    event.preventDefault();
    $('#formulario input').each(function() {
        $(this).val('');
    });
    $('#formulario select').each(function() {
        $(this).val('');
    });
    $('#formulario select').each(function() {
        $(this).val('');
    });
    $('#formulario input').each(function() {
        $(this).attr('checked', false);
    });
});

var empty_option = '<option value="">----------</option>';

function limparSelect(select) {
    $(select).empty();
    $(select).append(empty_option);
}

var ficheiro_funcoes_de_selects_dependentes = '../src/funcoes_de_selects_dependentes.php';

/*******************************************************
* Distrito, Concelho e Freguesia
*******************************************************/
// obter os Distritos
$.getJSON(ficheiro_funcoes_de_selects_dependentes + '?getDistritos=1', function(data) {
    adicionarDistritosOptions(data);
    // se houver um distrito selecionado
    // atualizar os concelhos e freguesias possíveis de selecionar
    if (get_distrito != '') $('#pesquisa-distrito').trigger('change');
});

// ao selecionar um distrito diferente
// carregar os concelhos desse distrito
$('#pesquisa-distrito').on('change', function(e) {
    var distrito = e.target.value;
    $.getJSON(ficheiro_funcoes_de_selects_dependentes + '?getConcelhos=' + distrito, function(data) {
        adicionarConcelhosOptions(data);
        limparSelect('#pesquisa-freguesia');
        if (get_concelho != '') $('#pesquisa-concelho').trigger('change');
    });
});

// ao selecionar um concelho diferente
// carregar as freguesias desse concelho
$('#pesquisa-concelho').on('change', function(e) {
    var concelho = e.target.value;
    $.getJSON(ficheiro_funcoes_de_selects_dependentes + '?getFreguesias=' + concelho, function(data) {
        adicionarFreguesiasOptions(data);
    });
});

// se houver um distrito selecionado
// atualizar os concelhos e freguesias possíveis de selecionar
if (get_distrito != '') {
    $.getJSON(ficheiro_funcoes_de_selects_dependentes + '?getConcelhos=' + get_distrito, function(data) {
        adicionarConcelhosOptions(data);
        if (get_concelho != '') {
            $.getJSON(ficheiro_funcoes_de_selects_dependentes + '?getFreguesias=' + get_concelho, function(data) {
                adicionarFreguesiasOptions(data);
            });
        }
    });
}

function adicionarDistritosOptions(data) {
    limparSelect('#pesquisa-distrito');
    $.each(data, function(index, distrito) {
        if (distrito.id == get_distrito)
            $('#pesquisa-distrito').append('<option translate="no" value="' + distrito.id + '" selected>' + distrito.name + '</option>');
        else
            $('#pesquisa-distrito').append('<option translate="no" value="' + distrito.id + '">' + distrito.name + '</option>');
    });
}
function adicionarConcelhosOptions(data) {
    limparSelect('#pesquisa-concelho');
    $.each(data, function(index, concelho) {
        if (concelho.id == get_concelho)
            $('#pesquisa-concelho').append('<option translate="no" value="' + concelho.id + '" selected>' + concelho.name + '</option>');
        else
            $('#pesquisa-concelho').append('<option translate="no" value="' + concelho.id + '">' + concelho.name + '</option>');
    });
}
function adicionarFreguesiasOptions(data) {
    limparSelect('#pesquisa-freguesia');
    $.each(data, function(index, freguesia) {
        if (freguesia.id == get_freguesia)
            $('#pesquisa-freguesia').append('<option translate="no" value="' + freguesia.id + '" selected>' + freguesia.name + '</option>');
        else
            $('#pesquisa-freguesia').append('<option translate="no" value="' + freguesia.id + '">' + freguesia.name + '</option>');
    });
}

/*******************************************************
* Agência e Consultor
*******************************************************/
// ir buscar as lojas possíveis de selecionar
$.getJSON(ficheiro_funcoes_de_selects_dependentes + '?getLojas', function(data) {
    adicionarLojaOptions(data);
    // se houver uma loja selecionada
    // atualizar os consultores possíveis de selecionar
    if (get_loja != '') $('#pesquisa-loja').trigger('change');
});

// ao selecionar uma loja diferente
// ir buscar os consultores possíveis de selecionar
$('#pesquisa-loja').on('change', function(e) {
    var loja = e.target.value;
    $.getJSON(ficheiro_funcoes_de_selects_dependentes + '?getConsultores=' + loja, function(data) {
        adicionarConsultoresOptions(data);
    });
});

// se houver uma loja selecionada
// ir buscar os consultores possíveis de selecionar
if (get_loja != '') {
    $.getJSON(ficheiro_funcoes_de_selects_dependentes + '?getConsultores="' + get_loja + '"', function(data) {
        adicionarConsultoresOptions(data);
    });
}

function adicionarConsultoresOptions(data) {
    limparSelect('#pesquisa-user');
    $.each(data, function(index, user) {
        if (user.id == get_user)
            $('#pesquisa-user').append('<option translate="no" value="' + user.id + '" selected>' + user.nome + '</option>');
        else
            $('#pesquisa-user').append('<option translate="no" value="' + user.id + '">' + user.nome + '</option>');
    });
}
function adicionarLojaOptions(data) {
    limparSelect('#pesquisa-loja');
    $.each(data, function(index, loja) {
        var loja_titulo = loja.nome_comercial;
        if (loja_titulo === '')
            loja_titulo = loja.nome_social;

        if (loja.id == get_loja)
            $('#pesquisa-loja').append('<option value="' + loja.id + '" selected>' + loja_titulo + '</option>');
        else 
            $('#pesquisa-loja').append('<option value="' + loja.id + '">' + loja_titulo + '</option>');
    });
}
