﻿(function ($) {

    var Config = {
        ServerUtilityURL: "/Controller/Utility.ashx",
        isAgenziaLoggata: false,
        isSkypeInstalled: 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,
            zIndex: 99999,
            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');
        return $(msgBox);
    }



    $.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.CaricaBanner = function (element, absPathToFile) {
        $(element).load(absPathToFile);
    }


    function IsSkypeInstalled() {
        if (!Config.inizializzato) {
            if ($.browser.safari || $.browser.opera) {
                Config.isSkypeInstalled = true;
            } else if ($.browser.msie) {
                try {
                    if (new ActiveXObject("Skype.Detection")) Config.isSkypeInstalled = true;
                } catch (e) { }
            } else {
                if (typeof (navigator.mimeTypes["application/x-skype"]) == "object") {
                    Config.isSkypeInstalled = true;
                }
            }
            Config.isSkypeInstalled = false;
        }
        
        return Config.isSkypeInstalled;
    }


    $.fn.Utility.UpdateSkypeLinks = function() {
        bSkype = IsSkypeInstalled();
        if (!bSkype) {
            $('a[href^="skype:"]').click(function () {
                $(this).attr("href", "http://www.skype.com/intl/it/get-skype/")
            });
        }
    }

    $.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);

