(function ($) {

    var Config = {
        ClientURL: "/Plugins/modOfferteBanners2/OfferteBanners2.htm",
        ServerURL: "/Controller/Offerte.ashx",
        StyleURL: "/Plugins/modOfferteBanners2/OfferteBanners2.css",
        Container: "",
        HistoryBack: "",
        IdArea: 0,
        NumMaxOfferte: 5,
        TplOfferta: "",
        Offerte: []
    };


    // costruttore
    $.fn.OfferteBanners2 = function (options) {
        if (options) {
            Config = $.extend({}, Config, options);
        }
        Config.Container = $(this);
        Init();
    };


    // distruttore
    $.fn.OfferteBanners2.Destroy = function () { }


    // funzione di ingresso
    function Init() {

        // carico le offerte             
        CaricaOfferte();

        // renderizzo le offerte        
        RenderizzaOfferte();

        // rilancio l'evento "Modulo Pronto"              
        Config.Container.trigger("ModuleLoaded");
    }


    function CaricaOfferte() {
        var parameters = {};
        parameters.action = "SelOfferteBanner";
        parameters.idArea = Config.IdArea;
        parameters.numMaxOfferte = Config.NumMaxOfferte;
        $.ajax({
            async: false,
            cache: false,
            url: Config.ServerURL,
            data: parameters,
            success: function (returnData) {
                Config.Offerte = (returnData != "-1" && returnData != "") ? $.parseJSON(returnData) : [];
            }
        });
    }


    function CaricaTemplateOfferta() {
        $.ajax({
            async: false,
            cache: false,
            url: Config.ClientURL,
            success: function (returnData) {
                Config.TplOfferta = returnData;
            }
        });
    }


    function RenderizzaOfferte() {
        if (Config.Offerte.length > 0) {

            // carico il template dell'offerta
            CaricaTemplateOfferta();

            // renderizzo ciascuna offerta
            $.each(Config.Offerte, function (i) {
                var tplOfferta = $(Config.TplOfferta).clone();
                var Offerta = Config.Offerte[i];

                if (i % 3 == 0) {
                    $(tplOfferta).css({ "clear": "both" });
                }

                // inseriso i dati nel template
                $(tplOfferta).find(".header .destinazione").html(Offerta.DestinazionePadre);
                $(tplOfferta).find(".header .struttura").html(Offerta.Destinazione);
                $(tplOfferta).find(".header .sconto").html(Offerta.CostiExtra);
                $(tplOfferta).find(".image img").attr("src", Offerta.Immagine);
                //$(tplOfferta).find(".footer .info").html("partenza: " + Offerta.DataPartenza.split("T")[0] + " da: " + Offerta.Partenza);
                $(tplOfferta).find(".footer .info").html(Offerta.Partenza);
                $(tplOfferta).find(".footer .prezzo").html(Offerta.Prezzo);

                // bind click
                $(tplOfferta).find(".header, .image img, .footer").css({ "cursor": "pointer" }).bind("click", function () { ApriOfferta(Offerta.Link); });

                // appendo l'offerta all'elenco
                Config.Container.append($(tplOfferta));
            });

        } else {
            Config.Container.html("Nessuna Offerta Disponibile");
        }
    }


    function ApriOfferta(url) {
        var plugin = url.split("?")[0].replace(".htm", "").capitalize();
        var parameters = url.split("?")[1].split("&");
        var FormData = {};
        // riempio l'oggetto con i parametri passati tramite il link
        $.each(parameters, function (i) {
            var name = parameters[i].split("=")[0];
            var value = parameters[i].split("=")[1];
            switch (name) {
                case "idProdotto":
                    name = "IdProdotto";
                    break;
                case "idAeroporti":
                    name = "IdAeroporti";
                    break;
                case "dataPartenza":
                    name = "DataPartenza";
                    break;
            }
            eval("FormData." + name + "= '" + value + "';");
        });
        // aggiungo all'oggetto la pagina di provenienza
        FormData.HistoryBack = Config.HistoryBack;
        eval("$.fn.Travelmind.LoadPlugin('" + plugin + "', FormData);");
    }

})(jQuery);
 
  
