(function ($) {

    $.jPopup = function (message, errorLevel, callback, options, buttons) {
        var defaults = {
            message: message,
            errorLevel: errorLevel,
            wrapperClass: "jpopup",
            show: "drop",
            minHeight: 5
        };
        options = $.extend(defaults, options);

        var dialogCSS = "ui-state-error";
        var iconCSS = " ui-icon-alert";

        switch (options.errorLevel) {
            case "highlight":

                dialogCSS = " ui-state-highlight";
                iconCSS = "  ui-icon-notice";

                break;

            case "error":

                dialogCSS = "";
                iconCSS = " ui-icon-alert";

                break;
            case "Question":

                dialogCSS = "__CelluleAffichage";
                iconCSS = " ui-icon-help";

                break;
            case "Avertissement":

                dialogCSS = "__CelluleAffichage";
                iconCSS = " ui-icon-alert";

                break;
            case "Erreur":

                dialogCSS = "__CelluleAffichage";
                iconCSS = " ui-icon-circle-close";

                break;
            case "Information":

                dialogCSS = "__CelluleAffichage";
                iconCSS = " ui-icon-info";

                break;
            default:

                dialogCSS = "";
                iconCSS = " ui-icon-info";

                break;
        }
        //init :        var dialog = $("<table><tr><th valign=\"middle\"><span class=\"ui-icon" + iconCSS + "\"></span></th><td class=\"" + dialogCSS + "\" style=\"border: none; background: transparent;\" valign=\"middle\">" + options.message + "</td></tr></table>");
        var dialog = $("<table><tr><th valign=\"middle\" class=\"" + options.wrapperIconCSS + "\"><span class=\"ui-icon" + iconCSS + "\"></span></th><td class=\"" + dialogCSS + "\" style=\"border: none; background: transparent;\" valign=\"middle\">" + options.message + "</td></tr></table>");
        //var dialog = $("<table><tr><td class=\"__CelluleIconeGauche\"><span class=\"ui-icon" + iconCSS + "\"></span></td><td>" + options.message + "</td></tr></table>");

        var dialogOptions = {
            bgiframe: true,
            dialogClass: options.wrapperClass + dialogCSS,
            resizable: false,
            minHeight: options.minHeight,
            modal: true,
            buttons: buttons,
            close: function (event, ui) {
                dialog.remove();
            }
        }
        options = $.extend(dialogOptions, options);

        dialog.dialog(options);
    };

    $.jConfirm = function (message, errorLevel, callback, options) {
        var buttons = {
            'Ok': function () {
                $(this).dialog('close');
                if (callback) {
                    callback(true);
                }
            },
            Annuler: function () {
                $(this).dialog('close');
                if (callback) {
                    callback(false);
                }
            }
        };

        $.jPopup(message, errorLevel, callback, options, buttons);
    };

    $.jAlert = function (message, errorLevel, callback, options) {
        var buttons = {
            'Ok': function () {
                $(this).dialog('close');
                if (callback) {
                    callback(true);
                }
            }
        };

        $.jPopup(message, errorLevel, callback, options, buttons);
    };


})(jQuery);

// Définition du namespace Client
var Client = {
    // Affiche les messages d'informations ou d'avertissement transmis par le serveur
    AfficherMessages: function () {
        var loMessages = $("#ListeMessages:hidden");
        if (loMessages.length > 0) {
            var loListeMessages = $.parseJSON(loMessages.val());
            $.jAlert(loListeMessages.join("<br />"));

        }
        loMessages.remove();
        loMessages = $("#ListeErreurs:hidden");
        if (loMessages.length > 0) {
            var loListeMessages = $.parseJSON(loMessages.val());
            $.jAlert(loListeMessages.join("<br />"), 'error');
        }
        loMessages.remove();

        loMessages = $("#ListeMessagesCourts:hidden");
        if (loMessages.length > 0) {
            var loListeMessages = $.parseJSON(loMessages.val());

            $(".messageCourt").hide();
            $(".messageCourt").html(loListeMessages.join("<br />"));
            $(".messageCourt").show('highlight', {}, 400, function () {
                setTimeout(function () {
                    $(".messageCourt").fadeOut('slow');

                }, 100);
            });

        }
        loMessages.remove();
    },
    AfficherMessageCourt: function () {


    }

}
// Gestionnaire de chargement des pages :
// -> Gestion des chargements synchrone via jQuuery
$(Client.AfficherMessages);
// -> Gestion des chargements asynchrones effectués via UpdatePanel
if (typeof (Sys) != undefined) {
    Sys.Application.add_load(function (poSource, poEvenement) {
        //poEvenement
        if (poEvenement.get_isPartialLoad()) {
            Client.AfficherMessages();
        }
    });

}




