(function ($) {

    var Config = {
        ServerURL: "/Controller/PreventivoPdf.ashx",
        ClientURL: "/Plugins/modPreventivoPdf/PreventivoPdf.htm",
        PdfTemplateURL: "/Plugins/modPreventivoPdf/PreventivoPdf.tmpl",
        StyleURL: "/Plugins/modPreventivoPdf/PreventivoPdf.css",
        Container: "",
        FormData: {},
        NomePdf: "",
        SizeX: 800,
        SizeY: 600
    };


    $.fn.PreventivoPdf = function (options) {
        // integro le configurazioni con quelle passate (injection di parametri)
        if (options) {
            Config = $.extend(Config, options);
        }

        // setto il container
        Config.Container = $(this);

        // lancio la funzione di ingresso
        Init();
    };


    function Init() {
        // carico la pagina html
        Config.Container.load(Config.ClientURL, function () {

            Bindings();

            // rilancio l'evento "pagina pronta"            
            $(Config.Container).trigger("ModuleLoaded");

        });
    }

    $.fn.PreventivoPdf.Destroy = function () {
        // distruzione degli oggetti interni al plugin
        Config.NomePdf = "";
    };


    function Bindings() {
        //pulsante CONCLUDI
        $("#pdfButton").css({ "cursor": "pointer" }).bind("click", doCreaPdf);
    }


    function ShowLoaderSmall() {
        $("#loaderSmall").dialog({
            width: 130,
            height: 130,
            title: "Caricamento...",
            modal: true,
            draggable: false,
            close: function () {
                $(this).dialog("destroy");
            }
        });
        $("#loaderSmall").dialog('open');
    }

    function CloseLoaderSmall() {
        $("#loaderSmall").dialog("close");
    }


    function doCreaPdf() {
        var parameters = {};
        parameters.action = "CreaPdf";
        parameters.TemplatePath = Config.PdfTemplateURL;
        Config.NomePdf = "";
        ShowLoaderSmall();

        //FABIO 18/05/2011
        //async=false non fa scattare il popupblocker del browser, async=true si.
        //dal momento che il meccanismo dell'F5 (refresh) funziona ancora con alcume limitazioni
        //e' meglio lasciarlo a false anche se cosi' con explorer non si vede il loader
        $.ajax({
            async: false,
            cache: false,
            url: Config.ServerURL,
            data: parameters,
            success: function (returnData) {
                if (returnData != "-1") {
                    Config.NomePdf = returnData;
                    if (Config.NomePdf != "") {
                        window.open("/Docs/Preventivi/" + Config.NomePdf, "Download", "location=0,status=1,scrollbars=1, width=800,height=600");
                    }
                }
            },
            complete: function (returnData) {
                CloseLoaderSmall();
                Config.NomePdf = "";
            }
        });
    }





})(jQuery);
