if (typeof $ != 'undefined')
{
    /**** fonctions communes ****/
    function validateSearchParam(param)
    {
        if (typeof param == 'object')
            return param.item.id;
        else
            return param;
    }

    function executeLoading(input, param)
    {
        if (typeof param == 'object' && typeof input == 'object')
        {
            input.addClass('ui-autocomplete-loading');
            input.val(param.item.value);
        }
    }

    function executeRedirect(base_url, key, param)
    {
        var id = validateSearchParam(param);

        if (id != '')
        {

            $.ajax({
                url: base_url,
                data: key + '=' + id,
                success: function ajaxSuccess(response)
                {
                    // redirection vers l'url spécifiée
                    $(location).attr('href', response);

                    return true;
                }
            });
        }

        return false;
    }

    $(document).ready(function()
    {
        /*** Avocats ***/
        $('select#lfskill').change(function changeField(e)
        {
            e.preventDefault();
			//return;
            selectJuridictionSearch($(this).val());
        });

        /*** Archives ***/
        $('select#filterNews').change(function changeFilter(e)
        {
            e.preventDefault();

            if ($(this).hasClass('archives'))
                selectFilterNewsArchive($(this).val());
            else
                selectFilterNews($(this).val());
        });

        /*** Publications ***/
        $('select#filterPublis').change(function changeFilterPubli(e)
        {
            e.preventDefault();

            if ($(this).hasClass('archives'))
                selectFilterPublicationArchives($(this).val());
            else
                selectFilterPublications($(this).val());
        });

        $('select#lftype').change(function changeFilterType(e)
        {
            e.preventDefault();

            if ($(this).hasClass('archives'))
                selectFilterTypeArchives($(this).val());
            else
                selectFilterType($(this).val());
        });
    });

    /**** recherche "Avocats" ****/
    function selectAssociateSearch(ui)
    {
        executeLoading($('#autocomplete_lfname'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectAssociate', 'byname', ui);
    }

    function selectJuridictionSearch(ui)
    {
        executeLoading($('#autocomplete_lffield'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectAssociate', 'byskill', ui);
    }

    /**** filtrage "Actualités" ****/
    function selectFilterNews(ui)
    {
        executeLoading($('#autocomplete_lffield'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectNews', 'byskill', ui);
    }

    function selectFilterNewsArchive(ui)
    {
        executeLoading($('#autocomplete_lffield'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectNews?is_archives=1', 'byskill', ui);
    }

    /**** filtrage "Publications" ****/
    function selectFilterPublications(ui)
    {
        executeLoading($('#autocomplete_lffield'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectPublications', 'byskill', ui);
    }

    function selectFilterPublicationArchives(ui)
    {
        executeLoading($('#autocomplete_lffield'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectPublications?is_archives=1', 'byskill', ui);
    }

    function selectFilterAuthor(ui)
    {
        executeLoading($('#autocomplete_lfname'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectPublications', 'byname', ui);
    }

    function selectFilterArchivesAuthor(ui)
    {
        executeLoading($('#autocomplete_lfname'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectPublications?is_archives=1', 'byname', ui);
    }

    function selectFilterType(ui)
    {
        executeLoading($('#autocomplete_lffield'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectPublications', 'bytype', ui);
    }

    function selectFilterTypeArchives(ui)
    {
        executeLoading($('#autocomplete_lffield'), ui);
        /*** TODO: trouver un moyen de ne pas mettre la route en dur ***/
        return executeRedirect('/redirectPublications?is_archives=1', 'bytype', ui);
    }
}

