﻿

(function ($) {
    $.widget("nmk.artikel", {
        options: {
            identifier: "",
            session: "",
            id: 0,
            pris: -1,
            clickCallback: function (item) { },
            user: function (user) { },
            abonnemangsnamn: "artikel"
        },
        url: 'json/artikel.ashx',
        currentStatus: 0,
        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) {
            if (item.title == undefined) {
                item.title = "";
            }
            item.session = detta.options.session;
            item.identifier = detta.options.identifier;
            console.log(item);
            if (item.title.length > 0)
                loadingBar(true, 1, "Vänta".translate() + "...", 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");
                }
            });
        },
        item: null,
        _load: function () {
            this.element.empty();
            var detta = this;
            var item = new Object();
            item.command = "getartikel";
            item.id = detta.options.id;
            item.pris = detta.options.pris;
            var div = $("<div/>").appendTo(this.element).addClass('loader');

            detta._ajax(detta, item, function (obj) {
                console.log("ARTIKEL", obj);
                if (obj.resultat == false) {
                    informationMessage(obj.text, "warning");                 
                }
                div.hide();
                div.remove();
                detta.element.empty();
                if (obj.resultat) {
                    detta.item = obj.item;
                    var row = $("<div/>").addClass("row");
                    var col = $("<div/>").addClass("col-xs-4").appendTo(row);
                    var design = "default";
                    var button = $("<button/>").attr("type", "button").addClass("btn btn-primary").attr("data-loading-text", "<i class='fa fa-circle-o-notch fa-spin'></i> " + "Lägger produkten i kundkorgen".translate()).html("Köp".translate()).click(function (e) {
                        e.preventDefault();
                        $(this).button('loading');
                        detta.options.clickCallback($(this), detta.item);
                    }).appendTo(col);
                  
                    col = $("<div/>").addClass("col-xs-8 text-right").appendTo(row);
                    $("<h4/>").html(detta.item.pris).appendTo(col);
                    var content = $("<div/>");
                    if (obj.item.imagefiles.length > 0) {

                        var imageslideritems = [];
                        for (var i = 0; i < obj.item.imagefiles.length; i++) {
                            imageslideritems.push(obj.item.imagefiles[i]);
                        }
                        $("<div/>").imageslider({ images: imageslideritems }).appendTo(content);
                    }
                    content.append(obj.item.info);
                    detta.element.mypanel({
                        design: design,
                        header: { text: obj.item.rubrik }, content: { text: content }, footer: {
                            text: row
                        }
                    });
                }
            });

        },
        destroy: function () {
            this.element.empty();
            // Call the base destroy function.
            $.Widget.prototype.destroy.call(this);
        }
    });
})(jQuery);