﻿

(function ($) {
    $.widget("nmk.minkolista", {
        options: {
            identifier: "",
            session: "",
            user: function (user) { },
        },
        url: 'json/bokning.ashx',
        refresh: function (options2) {
            if (options2)
                this.options = $.extend({}, options2);
            this._load();
        },
        _create: function () {
            this.randomnr = randomFromInterval(0, 99999);
            this._load();
        },
        _ajax: function (detta, item, callback) {
            loadingBar(true, 1, "Vänta...", item.title + "...");
            item.session = detta.options.session;
            item.identifier = detta.options.identifier;
            $.ajax({
                url: detta.url,
                error: function (xhr, textStatus, errorThrown) {
                    loadingBar(false, 1);
                },
                cache: false,
                data: item,
                type: "POST"
            }).done(function (data) {
                var obj = $.parseJSON(data);
                loadingBar(false, 1);
                callback(obj);
                if (obj.checkitem) {
                    detta.options.user(obj.checkitem.medlem);
                }
                //if (obj.resultat == false) {
                //    informationMessage(obj.text, "warning");
                //}
            });
        },

        _load: function () {
            var detta = this;
            detta.element.empty();
            detta.element.show();
            var loading = $("<div/>").addClass("loading").appendTo(detta.element);
            var item = new Object();
            item.command = "minaque";
            item.title = "Laddar tillfällen...";
            detta._ajax(detta, item, function (obj) {

                loading.hide();
                if (obj.resultat == false) {
                    BootstrapDialog.alert(obj.text);
                    detta.element.hide();
                    return;
                }

                detta.element.addClass("panel panel-default");
                var div1 = $("<div/>").appendTo(detta.element).addClass("panel-heading");
                var divRow = $("<div/>").appendTo(div1).addClass("row");
                var divItems = $("<div/>").appendTo(divRow).addClass("col-sm-12");
                console.log(obj);
              
                var divSubitems = $("<div/>").appendTo(divItems).css({ paddingTop: '10px' });
                   var div = $("<div/>").appendTo(divSubitems); //.css({ padding: '10px' });
                var title = $("<h4/>").html("Min kölista".translate()).appendTo(div);
                    var ul = $("<div/>").appendTo(divSubitems).addClass("list-group");
                    if (obj.items.length > 0) {
                        for (var a = 0; a < obj.items.length; a++) {
                            var tillfalle = obj.items[a];
                            var li = $("<a/>").addClass("list-group-item list-group-item-action").appendTo(ul).css("cursor", "pointer");
                            li.append(tillfalle.tid + ", " + tillfalle.langd + ", <i>" + tillfalle.title + "</i>, " + tillfalle.instruktor);
                            for (var b = 0; b < tillfalle.buttons.length; b++) {
                                $("<button/>").text(tillfalle.buttons[b].text.translate()).appendTo(li).addClass(tillfalle.buttons[b].cssClass).bind('click', { item: tillfalle.buttons[b], tillfalle: tillfalle }, function (e) {
                                    e.preventDefault();
                                    e.stopPropagation();
                                    switch (e.data.item.function) {
                                        case "avboka":
                                            BootstrapDialog.confirm('Bekräfta för att avboka'.translate() + ' ' + e.data.tillfalle.tid + ", " + e.data.tillfalle.langd + ", <i>" + e.data.tillfalle.title + "</i>.", function (result) {
                                                if (result) {
                                                    var item = new Object();
                                                    item.command = "avboka";
                                                    item.id = e.data.tillfalle.bokningsitem;
                                                    item.title = "Avbokar".translate();
                                                    detta._ajax(detta, item, function (obj) {
                                                        if (obj.resultat == false) {
                                                            BootstrapDialog.alert(obj.text);
                                                            return;
                                                        }
                                                        informationMessage(obj.text, "success");
                                                        detta.refresh();
                                                    });
                                                }
                                            });

                                            break;

                                    }
                                });
                                li.append(" ");
                            }
                          
                            li.bind('click', { item: tillfalle }, function (e) {
                                $("<div/>").tillfalle({
                                    id: e.data.item.id, session: detta.options.session, callbackReload: function () {
                                        detta.refresh();
                                    }
                                });

                            });
                            for (var b = 0; b < tillfalle.badges.length; b++) {
                                $("<span/>").text(tillfalle.badges[b].text).addClass(tillfalle.badges[b].cssClass).appendTo(li);
                            }
                            if (tillfalle.installt) {
                                //$("<span/>").text("INSTÄLLT").addClass("badge badge-warning").appendTo(cell);
                                li.css("background-color", "pink");
                            }
                        }
                    } else {
                        var li = $("<a/>").addClass("list-group-item list-group-item-action").appendTo(ul);
                        li.append("Inga bokningar".translate());
                    }
                

            });

        },
        destroy: function () {
            this.element.empty();
            // Call the base destroy function.
            $.Widget.prototype.destroy.call(this);
        }
    });
})(jQuery);