﻿

(function ($) {
    $.widget("nmk.kundkorg", {
        options: {
            identifier: "",
            session: "",
            id: 0,
            anlaggning: 0,
            typ: "",
            clickCallback: function (item) { },
            user: function (user) { },
            showvillkor: false
        },
        url: 'json/kundkorg.ashx',
        currentStatus: 0,
        refresh: function (options2) {
            if (options2)
                this.options = $.extend(this.options, options2);
            this._load();
        },
        _create: function () {
            this.randomnr = randomFromInterval(0, 99999);
            this._load();
        },
        _ajax: function (detta, item, callback) {
            if (item.title == undefined) {
                item.title = "";
            }
            item.session = detta.options.session;
            item.identifier = detta.options.identifier;
            item.grupp = detta.options.grupp;
            console.log(item);
            if (item.title.length > 0)
                loadingBar(true, 1, "Vänta...", item.title + "...");
            $.ajax({
                url: detta.url,
                error: function (xhr, textStatus, errorThrown) {
                    if (item.title.length > 0)
                        loadingBar(false, 1);
                },
                cache: false,
                data: item,
                type: "POST"
            }).done(function (data) {
                var obj = $.parseJSON(data);
                if (item.title.length > 0)
                    loadingBar(false, 1);
                callback(obj);
                if (obj.checkitem) {
                    detta.options.user(obj.checkitem.medlem);
                }
                if (obj.resultat == false) {
                    informationMessage(obj.text, "warning");
                }
            });
        },
        download: function (id) {
            this._download(this, id);
        },
        _download: function (detta, id) {
            $.fileDownload(this.url + "?command=getPDF&id=" + id + "&_=" + new Date().getTime());
        },
        _getPDF: function (detta, id) {
            var url = detta.url + "?command=getPDF&id=" + id + "&_=" + new Date().getTime();
            $.pdfviewer(url, "Förhandsgranska avtal", function () {
                console.log("Utskrift startad.");
            });
        },
        _printPDF: function (detta, id) {
            var url = detta.url + "?command=getPDF&id=" + id + "&_=" + new Date().getTime();
            $.pdfviewerPrint(url, "Förhandsgranska avtal", function () {
                console.log("Utskrift startad.");
            });
        },
        item: null,
        _load: function () {
            this.element.empty();

            var detta = this;
            if (detta.options.anlaggning == 0) {
                return;
            }
            var item = new Object();
            item.command = "getorder"
            item.id = detta.options.id;
            item.anlaggning = detta.options.anlaggning;
            detta._ajax(detta, item, function (obj) {
                console.log(obj);
                detta.element.empty();
                if (obj.resultat) {
                    if (obj.item.kundkorgstr.length == 0) {
                        return;
                    }
                    detta.item = obj.item;
                    //console.log("KUNDKORG:", detta.item);
                    var buyitems = $("<div/>").addClass("alert alert-info").appendTo(detta.element);
                    detta.buyitems = buyitems;
                    var heading = $("<div/>").appendTo(buyitems);
                    var grid = $("<div/>").addClass("row").appendTo(heading);

                    var buyitemstitle = $("<div/>").addClass("col-md-9").appendTo(grid).append($("<h2/>").html(detta.item.kundkorgstr));
                    var rad = $("<div/>").addClass("col-md-3 text-right").appendTo(grid);
                    if (detta.item.rader.length > 0) {
                        $("<button/>").attr("type", "button").appendTo(rad).addClass("btn btn-danger").html("Töm varukorg".translate()).attr("data-loading-text", "<i class='fa fa-circle-o-notch fa-spin'></i> " + "Tömmer varukorg...".translate()).click(function (e) {
                            var $thisrad = $(this).button('loading');

                            BootstrapDialog.show({
                                title: 'Bekräfta',
                                message: 'Bekräfta för att tömma varukorgen.'.translate(),
                                onhide: function () {
                                    $thisrad.button('reset');
                                },
                                buttons: [{
                                    label: 'Töm varukorg'.translate(),
                                    action: function (dialog) {
                                        var item = new Object();
                                        item.command = "emptyorder";
                                        item.id = detta.item.id;
                                        detta._ajax(detta, item, function (obj) {
                                            $thisrad.button('reset');
                                            if (obj.resultat == false) {
                                                BootstrapDialog.alert(obj.text);
                                                return;
                                            }
                                            detta.refresh();
                                            dialog.close();
                                            //$(location).attr('href', "default.html");
                                        });
                                    }
                                }, {
                                    label: 'Avbryt'.translate(),
                                    cssClass: "btn-danger",
                                    action: function (dialog) {
                                        dialog.close();
                                        $thisrad.button('reset');
                                    }
                                }]
                            });


                        });
                        rad.append(" ");
                    }

                    $("<button/>").attr("type", "button").appendTo(rad).addClass("btn btn-default").html("Visa varukorg".translate()).attr("data-loading-text", "<i class='fa fa-circle-o-notch fa-spin'></i> " + "Hämtar varukorg...".translate()).click(function (e) {
                        var $thisrad = $(this).button('loading');
                        buyitems.slideUp('slow', function () {
                            buyitems.empty();
                            buyitems.append(detta.showdetails(detta));
                            buyitems.slideDown('slow');

                        });
                    });
                }


            });

        },
        showdetails: function (detta) {
            var divOrderRader = $("<div/>");
            var divFooter = $("<div/>");
            var mainDiv = $("<div/>").css("padding", "5px");
            var mainGrid = $("<div/>").addClass("row text-right").css("padding", "5px").appendTo(mainDiv);

            var p = $("<div/>").addClass("col-md-12").appendTo(mainGrid);
            if (detta.item.rader.length > 0) {
                $("<button/>").attr("type", "button").appendTo(p).addClass("btn btn-danger").html("Töm varukorg".translate()).attr("data-loading-text", "<i class='fa fa-circle-o-notch fa-spin'></i> " + "Tömmer varukorg...".translate()).click(function (e) {
                    var $thisrad = $(this).button('loading');

                    BootstrapDialog.show({
                        title: 'Bekräfta',
                        message: 'Bekräfta för att tömma varukorgen.'.translate(),
                        onhide: function () {
                            $thisrad.button('reset');
                        },
                        buttons: [{
                            label: 'Töm varukorg'.translate(),
                            action: function (dialog) {
                                var item = new Object();
                                item.command = "emptyorder";
                                item.id = detta.item.id;
                                detta._ajax(detta, item, function (obj) {
                                    $thisrad.button('reset');
                                    if (obj.resultat == false) {
                                        BootstrapDialog.alert(obj.text);
                                        return;
                                    }
                                    detta.refresh();
                                    dialog.close();

                                    //$(location).attr('href', "default.html");
                                });
                            }
                        }, {
                            label: 'Avbryt'.translate(),
                            action: function (dialog) {
                                dialog.close();
                                $thisrad.button('reset');
                            }
                        }]
                    });


                });
                p.append(" ");
            }
            $("<button/>").attr("type", "button").appendTo(p).addClass("btn btn-default").html("Göm varukorg".translate()).attr("data-loading-text", "<i class='fa fa-circle-o-notch fa-spin'></i> " + "Gömmer varukorg...".translate()).click(function (e) {
                var $thisrad = $(this).button('loading');
                detta.buyitems.slideUp('slow', function () {
                    detta.refresh();
                });
            });

            mainGrid = $("<div/>").addClass("row").css("padding", "5px").appendTo(mainDiv);

            var mainDiv2 = $("<div/>").addClass("col-md-12").appendTo(mainGrid).mypanel({ header: { text: "Varukorg".translate() }, content: { text: divOrderRader }, footer: { text: divFooter } });

            var grid = $("<div/>").addClass("row").css("padding", "5px").appendTo(divOrderRader);

            $("<div/>").addClass("col-md-1").appendTo(grid);
            $("<div/>").addClass("col-md-5").append($("<div/>").append("PRODUKT".translate()).css({ color: "#C0C0C0", fontSize: "12px" })).appendTo(grid);
            $("<div/>").addClass("col-md-1 text-right-not-xs").append($("<div/>").append("ANTAL".translate()).css({ color: "#C0C0C0", fontSize: "12px" })).appendTo(grid);
            $("<div/>").addClass("col-md-2 text-right-not-xs").append($("<div/>").append("ATT BETALA PER PERIOD".translate()).css({ color: "#C0C0C0", fontSize: "12px" })).appendTo(grid);
            $("<div/>").addClass("col-md-3 text-right-not-xs").append($("<div/>").append("ATT BETALA IDAG".translate()).css({ color: "#C0C0C0", fontSize: "12px" })).appendTo(grid);


            for (var i = 0; i < detta.item.rader.length; i++) {
                var rad = detta.item.rader[i];
                grid = $("<div/>").css("padding", "5px").addClass("row").appendTo(divOrderRader);
                $("<div/>").addClass("col-md-1").append($("<button/>").attr("type", "button").addClass("btn btn-danger").html("Radera".translate()).attr("data-loading-text", "<i class='fa fa-circle-o-notch fa-spin'></i> " + "Raderar".translate()).bind('click', { item: rad, div: grid }, function (e) {
                    e.preventDefault();
                    var $thisrad = $(this).button('loading');
                    var item = new Object();
                    item.command = "removeradtoorder";
                    item.id = e.data.item.id;
                    detta._ajax(detta, item, function (obj) {
                        $thisrad.button('reset');
                        if (obj.resultat == false) {
                            BootstrapDialog.alert(obj.text);
                            return;
                        }
                        detta.refresh();
                    });
                })).appendTo(grid);
                $("<div/>").addClass("col-md-5").append(rad.text).appendTo(grid);
                $("<div/>").addClass("col-md-1 text-right-not-xs").append(rad.antal).appendTo(grid);
                $("<div/>").addClass("col-md-2 text-right-not-xs").append(rad.beloppperiod).appendTo(grid);
                $("<div/>").addClass("col-md-3 text-right-not-xs").append(rad.beloppinklmomsstr + "<br>").appendTo(grid).append($("<div/>").append(rad.avserperiod).css({ color: "#C0C0C0", fontSize: "12px" }));

            }

            grid = $("<div/>").addClass("row");
            $("<div/>").addClass("col-md-10 col-xs-6 text-right").append($("<h3/>").append("TOTALT".translate())).appendTo(grid);
            $("<div/>").addClass("col-md-2 col-xs-6 text-right").append($("<h3/>").append(detta.item.beloppstr)).appendTo(grid);
            divFooter.append(grid);

            return mainDiv;
        },
        destroy: function () {
            this.element.empty();
            // Call the base destroy function.
            $.Widget.prototype.destroy.call(this);
        }
    });
})(jQuery);