﻿(function ($) {

    var Config = {
        ServerUtilityURL: "/Controller/Utility.ashx",
        isAgenziaLoggata: false,
        inizializzato: false
    };


    $.fn.Utility = function (options) {
        // integro le configurazioni con quelle passate (injection di parametri)
        if (options) {
            Config = $.extend(Config, options);
        }

        // lancio la funzione di ingresso
        Init();
    };



    function Init() {
        //verifico e mi memorizzo se l'agenzia e' in sessione
        $.fn.Utility.IsAgenziaLoggata();

        Config.inizializzato = true;

        Bindings();
    }



    function Bindings() {
        $(document).bind("login logout", function () { $.fn.Utility.Destroy(); });
    }


    $.fn.Utility.Destroy = function () {
        // resetto gli oggetti interni al plugin
        Config.inizializzato = false;
        Config.isAgenziaLoggata = false;
    }

    $.fn.Utility.ApriPopUp = function (title, $content, width, height) {
        $(Config.Container).append($content);
        $($content).dialog({
            width: width,
            height: height,
            title: title,
            modal: true,
            draggable: true,
            buttons: {
                "Chiudi": function () { $(this).dialog("close"); }
            },
            close: function () {
                $(this).dialog("destroy");
            }
        });
        $($content).dialog('open');
    }



    $.fn.Utility.ShowMessage = function (title, msg) {
        var msgBox = $("<div/>");
        $(Config.Container).append(msgBox);
        $(msgBox).html(msg).dialog({
            width: 500,
            title: title,
            modal: true,
            draggable: true,
            buttons: {
                "Chiudi": function () { $(this).dialog("close"); }
            },
            close: function () {
                $(this).dialog("destroy");
            }
        });
        $(msgBox).dialog('open');
    }



    $.fn.Utility.IsAgenziaLoggata = function () {
        var parameters = {};
        parameters.action = "CheckAgenziaInSessione";

        //        if (!Config.inizializzato) {
        $.ajax({
            async: false,
            cache: false,
            url: Config.ServerUtilityURL,
            data: parameters,
            success: function (returnData) {
                Config.isAgenziaLoggata = (returnData == 1 ? true : false);
            }
        });
        //        }

        return Config.isAgenziaLoggata;

    }


    $.fn.Utility.Analytics = function (method, p1, p2, p3) {
        switch (method.toUpperCase()) {
            case "PAGEVIEW":
                _gaq.push(['_trackPageview', p1]);
                break;

            case "EVENT":
                _gaq.push(['_trackEvent', p1, p2, p3]);
                break;
        }
    }


})(jQuery);

