﻿
(function ($) {

    $.CardAddClick = function (evt) {
        var lid = $(this).attr("aId");
        var qtd = $.getCookie("cardQtd");
        var prc = $(this).attr("aPreco");
        var descr = $(this).attr("aTitulo");
        var aut = $(this).attr("aAutor");
        if (aut == null) aut = "";
        descr = encodeURIComponent(descr);
        var list = eval($.getCookie("cardList"));
        if (list == null)
            list = Array();

        qtd++;
        var encontrado = false;
        for (var i = 0; i < list.length; i++) {
            var itm = list[i];
            if (itm.IdArtigo == lid) {
                encontrado = true;
                itm.Quantidade++;
                break;
            }
        }

        if (!encontrado) {
            var item = { "IdArtigo": lid, "Quantidade": 1 };
            list.push(item);
        }
        //Serialize
        var aa = "";
        for (var j = 0; j < list.length; j++) {
            aa += ",{IdArtigo:" + list[j].IdArtigo + ",Quantidade:" + list[j].Quantidade + "}";
        }
        aa = aa.substring(1, aa.length);
        aa = "[" + aa + "]";
        //--

        $.setCookie("cardQtd", qtd, 1);
        $.setCookie("cardList", aa, 1);
        $.cardRefresh();
        $(".cardMsg").remove();

        $(this).parent().append("<div class='cardMsg' style='top:" + evt.clientY + "px;left:" + evt.clientX + "px'>Item adicionado</div>");
        $(".cardMsg").fadeIn().delay(1000).fadeOut(3000);

        //$("#cardMsg").remove();
    };

    $.RootPath = function () {
        return $("#headerLoggo").attr("href");
    }
    $.MapPath = function (path) {
        return $.RootPath() + path;
    }
    $.GetRelativePath = function (path) {
        return path.substring($.RootPath().length);
    }

    $.RefreshPager = function () {
        var page = $("#pageCurrent").attr("value");
        var total = $("#pageCount").attr("value");
        var start = page < 8 ? 1 : page - 7;
        var end = page < 8 ? 17 : start + 16;
        if (end > total) { end = total; }
        var bitem = "<a page='123' class='btPage123 pageNumber itemPager'>123</a>";
        var bnext = "<a page='123' class='pageNumber itemPager'>&gt;</a>";
        var bprev = "<a page='123' class='pageNumber itemPager'>&lt;</a>";

        $(".PageNumbers").html("");
        if (start == end) {
            $(".PageNumbers").css("display", "none");
            return;
        }
        $(".PageNumbers").css("display", "block");
        if (start > 1) {
            $(".PageNumbers").append(bprev.replace(/123/g, start - 1));
        }
        for (var i = start; i <= end; i++) {
            $(".PageNumbers").append(bitem.replace(/123/g, i));
        }
        if (end < total) {
            $(".PageNumbers").append(bnext.replace(/123/g, end + 1));
        }
        var currItem = ".btPage" + page;
        $(currItem).removeClass("itemPager");
        $(currItem).addClass("itemPagerCurrent");
        $(".addCard").unbind('click');
        $(".addCard").click($.CardAddClick);
        $(".pageNumber").click(function () {
            var page = $(this).attr("page");
            var ref = window.location.pathname;
            ref = $.GetRelativePath(ref);
            if (ref[0] == '/')
                ref = ref.substring(1, ref.length);

            if (window.location.search.length > 0) {
                ref = window.location.href;
                if (ref.indexOf("&") > 0)
                    ref = ref.substring(0, ref.indexOf("&"));
            } else {
                var parts = ref.split('/');
                ref = "";
                var nn = $.RootPath().split("/").length + 1;
                for (var i = 0; i < nn && i < parts.length; i++)
                    ref += "/" + parts[i];
                ref = $.MapPath(ref.substring(1));
            }
            if (ref.indexOf("?") >= 0) {
                ref += "&page=" + page + "&type=partial";
            } else {
                ref += "/" + page + "/partial";
            }
            $("#pageCurrent").attr("value", page);
            $("#ListaDeLivros").empty().html("<div class='espera'>&nbsp;</div>");
            $("#ListaDeLivros").load(ref, function () {
                $(".addCard").unbind('click');
                $(".addCard").click($.CardAddClick);
            });
            $.RefreshPager();
        });
    }

    $.getCookie = function (c_name) {
        if (document.cookie.length > 0) {
            c_start = document.cookie.indexOf(c_name + "=");
            if (c_start != -1) {
                c_start = c_start + c_name.length + 1;
                c_end = document.cookie.indexOf(";", c_start);
                if (c_end == -1) c_end = document.cookie.length;
                return unescape(document.cookie.substring(c_start, c_end));
            }
        }
        return "";
    }

    $.setCookie = function (c_name, value, expiredays) {
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + expiredays);
        document.cookie = c_name + "=" + escape(value) + ";path=/" +
        ((expiredays == null) ? "" : ";expires=" + exdate.toUTCString());
    }

    $.cardRefresh = function () {
        try {
            $("#cardList").each(function () {
                var p1 = escape($.getCookie("cardList"));
                $(this).load($.MapPath("EspacoCliente/VerCestoTop"), { listaCesto: p1 });
            });

            var qtd = $.getCookie("cardQtd");
            $("#cardQtd").html(qtd);
            if (qtd == 1) $("#cardQtdLabel").html("item");
            else $("#cardQtdLabel").html("itens");

        } catch (err) { alert(err); }
    };

    $.refreshCesto = function () {
        $("#cestoEditar").each(function () {
            var p1 = escape($.getCookie("cardList"));
            $(this).load($.MapPath("EspacoCliente/VerCestoPart"), { listaCesto: p1 }, function () {
                $(".cestoRemove").click(function (evt) {
                    var id = $(this).attr("idArtigo");
                    $(this).parent().parent().remove();
                    $.cestoRecalc();
                });
            });
        });
        $("#confirmarEncList").each(function () {
            var p1 = escape($.getCookie("cardList"));
            $(this).load($.MapPath("EspacoCliente/ConfirmarEncomendaPart"), { listaCesto: p1 }, function () {
                $(".cestoRemove").click(function (evt) {
                    var id = $(this).attr("idArtigo");
                    $(this).parent().parent().remove();
                    $.cestoRecalc();
                });
            });
        });

    };

    $.CobreTudo = function () {
        $("BODY").append("<div class=\"cobreTudo\"><img src=\"" + $.MapPath("Img/espera.gif") + "\" /></div>");
    }
    $.CobreTudoLimpa = function () {
        $(".cobreTudo").remove();
    }

    $.cestoRecalc = function () {
        var aa = "";
        var qtd = 0;
        $(".cestoQtdArtigo").each(function () {
            var nqtd = 0;
            if (isNaN(parseInt($(this).val(), 10)))
                nqtd = 1;
            else
                nqtd = parseInt($(this).val(), 10);
            if (nqtd > 0) {
                aa += ",{IdArtigo:" + $(this).attr("idArtigo") + ",Quantidade:" + nqtd + "}";
                qtd += nqtd;
            }

        });
        aa = aa.substring(1, aa.length);
        aa = "[" + aa + "]";
        $.setCookie("cardQtd", qtd, 1);
        $.setCookie("cardList", aa, 1);

        $.refreshCesto();

    };

})(jQuery);

$("document").ready(function () {

    /*$.getScript("/Scripts/SnowStorm/snowstorm.js");*/

    $(".lnkArtigo").click(function () {
        var id = $(this).attr("id");
        var ref = $.MapPath("Livro/Artigo/" + id);
        $("#diagArtigos").load(ref);
        $("#diagArtigos").dialog();
    });

    $("#btPesquisar").click(function () {
        var ref = $.MapPath("Livro/Pesquisa/?id=" + encodeURIComponent($("#tbPesquisa").attr("value")).replace(/ /ig, "_"));
        self.location = ref;
    });

    $("#cardFinalizar").click(function () {
        var qtd = $.getCookie("cardQtd");
        if (qtd <= 0) {
            alert("Cesto vazio. Envie o artigo para o cesto.");
            return false;
        }

    });



    $("#tbPesquisa").keydown(function (event) {
        if (event.keyCode == '13') {
            var ref = $.MapPath("Livro/Pesquisa/?id=" + encodeURIComponent($("#tbPesquisa").attr("value")).replace(/ /ig, "_"));
            self.location = ref;
        }
    });

    $(".cardClean").click(function (evt) {
        var resp = confirm("Deseja mesmo limpar o cesto?");
        if (resp) {
            $.setCookie("cardList", "", 1);
            $.setCookie("cardQtd", 0, 1);
            $("#cardQtd").html(0);
            $(".cardList").html("");
            $("#cestoEditar").html("");
        }
    });

    $("#confirmarEncomendaOK").click(function (evt) {
        var qtd = $.getCookie("cardQtd");
        if (qtd <= 0) {
            alert("Cesto vazio. Envie o artigo para o cesto.");
            return false;
        }
        $.CobreTudo();
        var p1 = escape($.getCookie("cardList"));
        var ent = $(this).attr("entidade");
        var mor = $(this).attr("morada");
        var obs = encodeURI($("#confirmarEncomendaOBS").val());
        jQuery.post($.MapPath("EspacoCliente/RegistarEncomenda"), { listaCesto: p1, entidade: ent, morada: mor, observacoes: obs }, function (dados) {
            if (dados.match("OK[0-9]*")) {
                $.setCookie("cardList", "", 1);
                $.setCookie("cardQtd", 0, 1);
                self.location = $.MapPath("EspacoCliente/VerEncomenda/" + dados.substring(2));
            } else {
                $.CobreTudoLimpa();
                alert(dados);
            }
        });
    });

    $(".cestoRecalc").click(function (evt) {
        $.cestoRecalc();
    });

    $(".indexGrupoPart").each(function () {
        var gr = $(this).attr("grupo");
        var ref = $.MapPath("Livro/Grupo/" + gr + "/1/partial");
        $(this).load(ref, function () {
            $(".addCard").unbind('click');
            $(".addCard").click($.CardAddClick);
        });
        $.RefreshPager();
    });

    $.refreshCesto();
    $.RefreshPager();
    $.cardRefresh();
});

