    var timerPopup;
    
    var closeConfirmDelete = function(prefix) {
        try {
            $('#' + prefix + '_confirm_delete').jqmHide();
            $("#" + prefix + "_confirm_options").show();
            $("#" + prefix + "_confirm_wait").hide();
            $("#" + prefix + "_confirm_del_error").hide();
        }
        catch (err) {
        }
        return false;
    };


    /**
     * Javascript pour la suppression des données qui ne sont pas affichées par l'ajax
     *
     **/

    var showConfirmDelete = function(ctrl, prefix) {
        try {
            $('#' + prefix + '_confirm_delete')
            .jqmShow()
                .find('a.btn_oui')
                .unbind("click")
                .bind("click", function(){
                        deleteRecord(ctrl, prefix);
                        return false;
                    });
        }
        catch (err) {
            //alert(err);
        }
        return false;

    };


    var deleteRecord = function(ctrl, prefix) {

        try {
            var urlDelete = $(ctrl).attr("href");
            var id = $(ctrl).attr("rel");

            //On cache les boutons, on affiche la roue qui tourne.
            $("#" + prefix + "_confirm_options").hide();
            $("#" + prefix + "_confirm_wait").show();

            $.post(urlDelete, 'confirmed=true&' + $('#' + prefix + '_primary_key').val() + '=' + id, function(response) {
                if (response == "deleted") {
                    location.href = $('#' + prefix + '_reloadUrl').val();
                }
                else
                {
                    $("#" + prefix + "_confirm_wait").hide();
                    $("#" + prefix + "_confirm_del_error").show();
                    setTimeout('closeConfirmDelete("' + prefix + '")', 2000);
                }
            });
        } catch (err) {
            //alert(err);
            closeConfirmDelete(prefix);
        }
        return false;
    };
   
    
    //Évènement à déclencher au chargement de la page
    $(document).ready(function(){
            setTimeout('$(".getFocus:first").focus()', 150); //On le déclenche un peu plus tard car autocomplete ne fonctionne pas si on focus trop vite sur le contrôle.
        }
    );
    
    var getParentById = function(elementId, search) {
    	return $('#' + elementId).parents(search).filter(':first');
    }

    var getParentByElement = function(element, search) {
    	return $(element).parents(search).filter(':first');
    }

    /**
     *  @param object ctrl contrôle HTML sur lequel le clic a été fait.
     *  @param String containerSearch class Css ou Id ou tag du parent
     */
    var followLink = function(ctrl, containerSearch) {
        try {
            var parent = getParentByElement(ctrl, containerSearch);
            $('#' + parent.attr('id')).load($(ctrl).attr('href'));
        } catch (err) {
        }
        return false;
    };

  var insertAtCaret = function (textareaId, value) {
        var textarea = document.getElementById(textareaId);
        //IE support
        if (document.selection) {
            textarea.focus();
            sel = document.selection.createRange();
            sel.text = value;
            textarea.focus();
        }
        //MOZILLA/NETSCAPE support
        else if (textarea.selectionStart || textarea.selectionStart == '0') {
            var startPos = textarea.selectionStart;
            var endPos = textarea.selectionEnd;
            var scrollTop = textarea.scrollTop;
            textarea.value = textarea.value.substring(0, startPos)
                          + value
                  + textarea.value.substring(endPos,
                    textarea.value.length);
            textarea.focus();
            textarea.selectionStart = startPos + value.length;
            textarea.selectionEnd = startPos + value.length;
            textarea.scrollTop = scrollTop;
        } else {
            textarea.value += value;
            textarea.focus();
        }
    };
