﻿

(function ($) {
    $.widget("nmk.integrityoptions", {
        options: {
            type: "delete-account",
            identifier: "",
            session: "",
            foretag: 0,
            clickCallback: function (item) { },
            callbackRefresh: function () { },
            user: function (user) { },
            showvillkor: false,
            datum: "",
            format: "HTML"
        },
        url: 'json/integrityoptions.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;
            if (item.title.length > 0)
                loadingBar(true, 1, "Vänta...", item.title + "...");
            $.ajax({
                url: detta.url,
                error: function (xhr, textStatus, errorThrown) {
                    informationMessage(textStatus, "warning");

                    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);
                }
            });
        },
        //download: function (id) {
        //    this._download(this, id);
        //},
        //_download: function (detta, id) {
        //    $.fileDownload(detta.url + '?command=downloadabonnemang&a=' + id + '&_=' + new Date().getTime() + '&session=' + detta.options.session);
        //},
        _getPDF: function (detta, id) {
            var url = detta.url + '?command=integrityoptions&type=' + detta.options.type + '&f=' + id + '&_=' + new Date().getTime() + '&session=' + detta.options.session +'&format=' + detta.options.format  ;
            $.pdfviewer(url, "Integritetspolicy", function () {
                //console.log("Utskrift startad.");
            }, [{
                label: 'Stäng',
                action: function (dialog) {
                    dialog.close();

                }
            }]);
        },
        //_printPDF: function (detta, id) {
        //    var url = this.url + '?command=downloadabonnemang&a=' + id + '&_=' + new Date().getTime() + '&session=' + detta.options.session;
        //    $.pdfviewerPrint(url, "Förhandsgranska avtal", function () {
        //        console.log("Utskrift startad.");
        //    });
        //},
        item: null,
        _load: function () {
            this.element.empty();
            var detta = this;
            if (detta.options.format == 'PDF') {

                detta._getPDF(detta, detta.options.foretag);
            }
            else if (detta.options.format == "HTML") {
                var item = new Object();
                item.command = 'integrityoptions';
                item.f = detta.options.foretag;
                item.type = detta.options.type;
                item.format = detta.options.format;
                $("<div/>").addClass("loader").appendTo(detta.element);
                detta._ajax(detta, item, function (obj) {
                    console.log(obj);
                    detta.element.empty();
                    var mainDiv = $("<div/>").appendTo(detta.element);
                    //var titleDiv = $("<div/>").addClass("pageheader").appendTo(mainDiv);
                    $("<p/>").html(obj.data).addClass("tecknaTitle").appendTo(mainDiv);                   

                });
            }
            else if (detta.options.format == 'json') {
                var item = new Object();
                item.command = 'integrityoptions';
                item.f = detta.options.foretag;
                item.type = detta.options.type;
                item.format = detta.options.format;
                $("<div/>").addClass("loader").appendTo(detta.element);
                
                detta._ajax(detta, item, function (obj) {
                    console.log(obj);
                    detta.element.empty();
                    for (var i = 0; i < obj.length; i++) {
                        var mainDiv = $("<div/>").appendTo(detta.element);
                        var titleDiv = $("<div/>").addClass("pageheader").appendTo(mainDiv);
                        $("<h1/>").html(obj[i].title).addClass("tecknaTitle").appendTo(titleDiv);

                        var p = $("<p/>").css("fontSize", "18px").addClass("tecknaTitle").html("Giltigt från " + obj[i].datumfrom).appendTo(mainDiv);
                        $("<span/>").css("fontSize", "25px").addClass("tecknaTitle").css("paddingBottom", "10px").css("cursor", "pointer").addClass("fa fa-file-pdf-o").appendTo(mainDiv).click(function () {
                            $("<div/>").integritetspolicy({
                                type: "PDF",
                                session: session,
                                user: function (user) {
                                    detta.options.user(user);
                                }
                            });

                        });

                        for (var a = 0; a < obj[i].rows.length; a++) {
                            p = $("<p/>").addClass("tecknaTitle").html(obj[i].rows[a].text).appendTo(mainDiv);
                            if (obj[i].rows[a].bold) {
                                p.css("fontWeight", "bold");
                            }
                        }
                    }

                });
            }

        },
        destroy: function () {
            this.element.empty();
            // Call the base destroy function.
            $.Widget.prototype.destroy.call(this);
        }
    });
})(jQuery);