﻿/// <reference path="jquery-1.5.1-vsdoc.js" />
var dlgWeekInfo;
var dlgRegisterSimple;
var dlgPayInvoice;
var dlgRecipeRank;
var dlgSubscriptionDetails;
var dlgSubscriptionForm;
var dlgOrderInfo;
var dlgProductInfo;
var dlgOrder;



$(window).resize(function () { setWrapperHeight(); });



function setWrapperHeight() {

    $("#wrapper").css("min-height", $(window).height() - 230);
}

$(document).ready(function () {
    $("#showINvoiceAddress").click(function (e) {
        $("#invoiceAddressContainer").slideToggle();
        e.preventDefault();

    });


    $(".fsInfo legend").click(function (e) {
        var parent = $(this).parent();
        $(".fsContent", parent).slideToggle("500");
        e.preventDefault();

    });

    $(".btnWithIcon").button();

    hookWeekHeaderInfo();
    setWrapperHeight();


    $(".galleryItem").each(function () {
        var href = $(this).attr("href");

        if (href != undefined && href != '') {
            $(this).attr("title", "Gå vidare: Klicka här");
            $(this).addClass('link');
            $(this).click(function (e) {
                location.href = href;
                e.preventDefault();

            });
        }
    });


    $(".moduleInvoices tr").hover(
        function () {
            $("td", this).addClass("hoverRowYellow");

        },
        function () {
            $("td", this).removeClass("hoverRowYellow");

        });


    // Enkel registering - dialogruta


    // Recept

        $(".trRecipeName").click(function (e) {

            $(".trRecipeDetails").hide();
        $(this).next(".trRecipeDetails").show();
        e.preventDefault();

    });

    $(".registerSimpleTrigger").click(function (e) {

        dlgRegisterSimple = $("#dialogRegisterSimple").dialog({
            title: 'Bli kund',
            modal: true,
            autoOpen: true,
            draggable: true,
            resizable: false,
            width: 340, height: 450,
            open: function (event, ui) { }

        });

        e.preventDefault();

    });



    $("#" + txtEmail).blur(function () {

        validateRegisterSimple($("#" + txtEmail).val());

    });

    $("#btnRegistrSimple").click(function (e) {

        $("#regResult").html();
        $("#regResult").attr("class", "");
        registerSimple($("#" + txtEmail).val(), $("#" + txtFirstName).val(), $("#" + txtLastName).val());

        e.preventDefault();

    });

    // Varannan rad i .tbl

    $(".tbl tr.data:odd, .alteringRows tr:odd").addClass("odd");
    $(".tbl tr.details:odd").addClass("odd");

    $(".tbl tr.data").hover(
        function () {
            $(this).addClass("over");

        },
        function () {
            $(this).removeClass("over");
        });

        $(".tblRecipe tr").hover(
        function () {
            $(this).addClass("over");

        },
        function () {
            $(this).removeClass("over");
        });

    $("#tblInvoices tr.data").click(function (e) {
        $(this).toggleClass("noBorder");
        $(this).next("tr").slideToggle();
        e.preventDefault();

    });


    // logga in via annan länk på sidan
    $(".loginTrigger").click(function (e) {

        $("#logInBox").css("padding", "20px");
        $("#logInBox").css("border", "1px solid black");

        showLoginBox();

        $("#logInBox").animate({ left: 0, top: e.pageY - 20 });


        e.preventDefault();

    });

    $("#showForgotPwd").click(function (e) {

        $("#logInBox").animate({ height: '270' });


        $("#forgotPassword").show();

    });

    $("#phone").click(function (e) {
        $("#callEcoviva").fadeToggle();

        setTimeout('closePhone();', 10000);
        e.preventDefault();

    });

    $("#email").click(function (e) {
        $("#msgResult").html('');
        $("#sendMessage").slideToggle();
        e.preventDefault();

    });


    $("#sendMessage #close").click(function (e) {
        $("#sendMessage").slideUp();
        $("#msgResult").html('');
        e.preventDefault();

    });


    $("#btnSendMsg").click(function (e) {
        $("#msgResult").html("<img src='/gfx/loaderGreen.gif' alt='Skickar...'/>");

        $.ajax({
            type: "POST",
            url: "/Services/CustomerService.asmx/SaveMessage",
            data: "{'name':'" + $("#txtMsgName").val() + "','email':'" + $("#txtMsgEmail").val() + "','message':'" + $("#txtMsgMessage").val() + "','IP':'" + globID + "','userName':'" + globCurrentUserName + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                $("#msgResult").html("");
                $("#sendMessage").slideUp();
            },
            error: function (msg) { alert(msg.responseText); }
        });





        e.preventDefault();

    });


    $(".payInvoice").click(function (e) {


        var url = $(this).attr("href");
        $("#ifrPayInvoice").attr("src", url);
        dlgPayInvoice.dialog("open");
        e.stopPropagation();
        e.preventDefault();

    });


    dlgPayInvoice = $("#dlgPayInvoice").dialog({
        title: 'Betala faktura',
        autoOpen: false,
        draggable: false,
        resizable: false,
        modal: true,
        width: 530, height: 560,
        open: function (event, ui) { }

    });


    /* Ranka recept     });
    */


    $(".RankStars").hover(
    function () {
        $(".rankTime").slideUp(1);

    },
    function () {
        for (var i = 1; i <= 7; i++) {
            $(".stars", this).removeClass("rank" + i);
        }
    }
);

    $(".RankStars .stars div").click(function (e) {
        $("#" + drpRankId).val($(this).attr("rel"));
        var tr = $(this).closest("tr");
        var recipeId = $(tr).attr("rel");
        var recipeName = $("td:first", tr).html();
        $("#recipeToRank").html(recipeName);
        $("#" + hidRecipeId).val(recipeId);
        opendlgRecipeRank();
        e.preventDefault();

    });


    $(".RankStars .stars div").hover(
    function () {
        var rank = $(this).attr("rel");

        var stars = $(this).parent();
        var rankText = $(".rankText", $(stars).parent());
        var theRankText = "";
        switch (rank) {
            case "1":
                theRankText = "Uselt";
                break;
            case "2":
                theRankText = "Blä";
                break;
            case "3":
                theRankText = "Nja";
                break;
            case "4":
                theRankText = "OK";
                break;
            case "5":
                theRankText = "Bra";
                break;
            case "6":
                theRankText = "Jättegott";
                break;
            case "7":
                theRankText = "Fantastiskt";
                break;
            default:
                theRankText = "-";
        }

        // $(rankText).html(theRankText);

        for (var i = 1; i <= 7; i++) {
            stars.removeClass("rank" + i);
        }
        stars.addClass("rank" + rank);

    },
    function () {
        // out
    });


    $(".addComment").click(function (e) {
        var tr = $(this).closest("tr");
        var recipeId = $(tr).attr("rel");
        var recipeName = $("td:first", tr).html();
        $("#recipeToRank").html(recipeName);
        $("#" + hidRecipeId).val(recipeId);
        opendlgRecipeRank();
        e.preventDefault();

    });

    function opendlgRecipeRank() {

        dlgRecipeRank = $("#dlgRecipeRank").dialog({
            title: 'Ranka recept',
            autoOpen: false,
            draggable: false,
            resizable: false,
            modal: true,
            width: 500, height: 400,
            open: function (event, ui) { }

        });
        updateCufon();
        dlgRecipeRank.parent().appendTo(jQuery("form:first"));
        dlgRecipeRank.dialog("open");
    }



    $(".rankTimeTrigger0").hover(
        function () {
            var td = $(this).parent();
            $(".rankTime").slideUp(1);

            $(".rankTime", td).unbind();
            $(".rankTime", td).slideDown();
            $(".rankTime li", td).click(function (e) {
                $(".rankTime", td).slideToggle();

                $("#" + drpRankTimeId).val($(this).attr("rel"));

                var tr = $(this).closest("tr");
                var recipeId = $(tr).attr("rel");
                var recipeName = $("td:first", tr).html();
                opendlgRecipeRank();



            });


        },
        function () {

        });





    /*
    $(".selectRankTime").click(function (e) {

    var td = $(this).parent();


    $(".rankTime", td).unbind();
    $(".rankTime", td).slideToggle();
    $(".rankTime", td).click(function () {
    $(".rankTime", td).slideToggle();
    alert($(this).html());

    });
    e.preventDefault();

    });
    */
    $("#sendPwd").click(function (e) {


        $.ajax({
            type: "POST",
            url: "/Services/CustomerService.asmx/SendPassword",
            data: "{'email':'" + $("#txtUserName").val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {

                if (msg.d == '') {
                    $("#forgotPassword p").html("Lösenordet har skickats!");
                    $("#forgotPassword p").addClass("validCheck");
                }
                else {
                    $("#forgotPassword p").html(msg.d);
                    $("#forgotPassword p").addClass("validError");
                }
            },
            error: function (msg) { alert(msg.responseText); }
        });



        e.preventDefault();

    });


    // Hämtar nya veckor
    $(".nextWeeks").click(function () {

        GetNewStartYearWeek(false);

    });

    // Hämtar nya veckor
    $(".prevWeeks").click(function () {

        GetNewStartYearWeek(true);

    });


    $(".subscriptionNo, .subscriptionYes").each(function () {

        var productId = $(this).attr("id").replace("productID", "");
        var parent = $(this).parent();
        var subscriptiondId = parseInt($(parent).attr("rel"));
        var subscriptionForm = $("#subscriptionForm" + productId);
        var subscriptionValidationResult = $(".subscriptionValidationResult", subscriptionForm);
        $(subscriptionValidationResult).html('');
        $(".saveLoader", subscriptionForm).hide();
        $(".subscrEnd", subscriptionForm).hide();
        $(".subscrSave", subscriptionForm).show();
        $(".subscrSave", subscriptionForm).unbind();
        $(".subscrSave", subscriptionForm).click(function () {
            $(".saveLoader", subscriptionForm).show();
        });

        if (subscriptiondId > 0) {
            // Visa avslutaknapp
            $(".subscrEnd", subscriptionForm).show();
            $(".subscrEnd", subscriptionForm).click(function (e) {
                dlgSubscriptionForm.dialog("close");
                dlgSubscriptionDetails = $("#dlgSubscriptionDetails").dialog({ modal: true, width: 600, title: 'Avsluta prenumeration' });

                $("#endSubscriptionContainer").hide();
                updateSubscriptionInfo(subscriptiondId);
                $("#endSubscriptionContainer").slideDown();


                e.preventDefault();

            });

        }



        $("#productID" + productId).click(function () {

            dlgSubscriptionForm = $("#subscriptionForm" + productId).dialog({
                title: 'Prenumerera',
                autoOpen: false,
                modal: true,
                draggable: true,
                resizable: false,
                width: 400, height: 400,
                open: function (event, ui) { }

            });

            updateProductName(productId, "#subscriptionForm" + productId + " h3");
            updateCufon();
            dlgSubscriptionForm.parent().appendTo(jQuery("form:first"));
            dlgSubscriptionForm.dialog("open");

            var btn = $("#subscriptionForm" + productId).find(".subscrSave").first();
            if (subscriptiondId > 0) btn.val("Uppdatera prenumeration");
            else {
                btn.val("Starta prenumeration");
            }

            if (subscriptiondId >= 0) {


                var subscriptionInfo = $("#subscriptionForm" + productId).find(".subscriptionInfo").first();

                $.ajax({
                    type: "POST",
                    url: "/Services/CustomerService.asmx/getSubscription",
                    data: "{'CustomerUID':'" + globCurrentCustomerUid + "','SubscriptionId': " + subscriptiondId + "}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        var subscription = msg.d;

                        var drpStartweek = $(".drpStartweek", subscriptionForm);
                        var drpNoOfOrdes = $(".drpNoOfOrdes", subscriptionForm);
                        var rdoEveryWeek = $("input[type='radio'][value='0']", subscriptionForm);
                        var rdoEveryOtherWeek = $("input[type='radio'][value='1']", subscriptionForm);


                        if (subscription != null) {
                            $(drpStartweek).val(subscription.StartYear + ";" + subscription.StartWeek);
                            $(drpNoOfOrdes).val(subscription.NoOfOrders);

                            if (subscription.SubscriptionTypeID == 0)
                                $(rdoEveryWeek).attr("checked", "checked");
                            else {
                                $(rdoEveryOtherWeek).attr("checked", "checked");
                            }

                        }


                        var NoOfOrdersA = parseInt($(drpNoOfOrdes).val());
                        var startYearA = parseInt($(drpStartweek).val().split(";")[0]);
                        var startWeekA = parseInt($(drpStartweek).val().split(";")[1]);
                        var SubscriptionTypeIDA = 0;

                        if ($(':checked', rdoEveryOtherWeek))
                            SubscriptionTypeIDA = 1;

                        SubscriptionTypeIDA = parseInt($(':checked', subscriptionForm).val());

                        validateSubscription(productId, startYearA, startWeekA, SubscriptionTypeIDA, NoOfOrdersA, -1, subscriptionValidationResult, btn);




                        $("input[type='radio']", subscriptionForm).click(function () {

                            var NoOfOrders = parseInt($(drpNoOfOrdes).val());
                            var startYear = parseInt($(drpStartweek).val().split(";")[0]);
                            var startWeek = parseInt($(drpStartweek).val().split(";")[1]);
                            var SubscriptionTypeID = 0;

                            if ($(':checked', rdoEveryOtherWeek))
                                SubscriptionTypeID = 1;

                            SubscriptionTypeID = parseInt($(':checked', subscriptionForm).val());

                            validateSubscription(productId, startYear, startWeek, SubscriptionTypeID, NoOfOrders, -1, subscriptionValidationResult, btn);

                        });

                        $(drpStartweek, drpNoOfOrdes).change(function () {

                            var NoOfOrders = parseInt($(drpNoOfOrdes).val());
                            var startYear = parseInt($(drpStartweek).val().split(";")[0]);
                            var startWeek = parseInt($(drpStartweek).val().split(";")[1]);
                            var SubscriptionTypeID = 0;

                            if ($(':checked', rdoEveryOtherWeek))
                                SubscriptionTypeID = 1;

                            SubscriptionTypeID = parseInt($(':checked', subscriptionForm).val());

                            validateSubscription(productId, startYear, startWeek, SubscriptionTypeID, NoOfOrders, -1, subscriptionValidationResult, btn);

                        });





                    },
                    error: function (msg) { alert(msg.responseText); }
                });

            }







        });

    });





    // Lägg till div i linkbutton för design
    $("a.btnYellow, a.btnTransp").prepend("<div></div>");


    // Visa LogInbox om felaktigt cred. angivits
    $("#loginError").ready(function () {

        if ($("#loginError").hasClass("validError"))
            showLoginBox();

    });

    $("#showLogin").click(function () {

        showLoginBox();

    });
    $("#imgCLoseLogin").click(function () {

        hideLoginBox();

    });



    // Awards på startsidan - animera mouseover

    $(".awardImg").hover(
  function () {
      $(this).rotate({ duration: 50, angle: 0, animateTo: 10, easing: $.easing.easeInOutExpo
      });

  },
  function () {
      $(this).rotate({ angle: 10, animateTo: 0, easing: $.easing.easeInOutExpo });

  }
);



    dlgWeekInfo = $("#dlgWeekInfo").dialog({
        autoOpen: false,
        draggable: false,
        resizable: false,
        width: 190, height: 30,
        open: function (event, ui) {
            var dlgParent = $("#dlgWeekInfo").parent();
            var titleBar = $(".ui-dialog-titlebar", dlgParent);
            $(titleBar).hide();
        }

    });

    dlgProductInfo = $("#dlgInfo").dialog({
        autoOpen: false,
        draggable: true,
        resizable: true,
        width: 500, height: 550, open: function (event, ui) {
            // $(".ui-dialog-titlebar-close").hide();
        }
    });

    dlgOrder = $("#dlgOrder").dialog({
        autoOpen: false,
        draggable: true,
        resizable: true,
        width: 510, modal: true
    });

    dlgOrderInfo = $("#dlgOrderInfo").dialog({
        autoOpen: false,
        draggable: true,
        resizable: true,
        width: 430, open: function (event, ui) {
            // $(".ui-dialog-titlebar-close").hide();
        }
    });

    //$(".StandardPage #headerInfo").fadeIn(2000);

    //$(".StandardPage #headerInfo").addClass("ui-state-error");

    $(".tdProduct .imgInfo").click(function () {

        var productId = $(this).attr("rel");
        updateProductInfoDialog(productId);
        dlgProductInfo.dialog("open");

    });

    $(".CustomerSubscriptions .imgInfo").click(function () {

        var productId = $(this).attr("rel");
        updateProductInfoDialog(productId);
        dlgProductInfo.dialog("open");

    });

    /*
    $(".CustomerSubscriptions .imgInfo").mouseover(function () {

    var productId = $(this).attr("rel");
    updateProductInfoDialog(productId);


    }).mousemove(function (event) {
    dlgProductInfo.dialog("option", "position", {
    my: "left top",
    at: "right bottom",
    of: event,
    offset: "2 2"
    });
    }).mouseout(function () {
    dlgProductInfo.dialog("close");
    });


    */



    /* INFO om beställning per vecka */


    //    $(".tdPren").click(function (e) {

    //        var subscriptionId = parseInt($(this).attr("rel"));

    //        if (subscriptionId > 0) {
    //            dlgSubscriptionDetails = $("#dlgSubscriptionDetails").dialog({ modal: true, width: 600, title: 'Prenumerera' });

    //            $("#endSubscriptionContainer").hide();
    //            updateSubscriptionInfo($(this).attr("rel"));
    //            $("#subscrEnd").unbind("click");
    //            $("#subscrEnd").click(function () {

    //                $("#endSubscriptionContainer").slideDown();

    //            });
    //            $("#subscrSave").unbind("click");
    //            $("#subscrSave").click(function () {

    //                updateSubscription(subscriptionId, parseInt($("#noOfOrders").val()));

    //            });


    //        }
    //    });
    function hideLoginBox() {


        $("#logInBox").slideUp(500, "", function () {

            $("#leaves").animate({ left: '540' });
            $("#logInBox").attr("style", "");
        });



    }

    function showLoginBox() {

        $("#logInBox").show(1, "", function () {

            $("#leaves").animate({ left: '489' });

        });

        $("#logInBox").animate({ top: '0' });

    }

    function updateSubscriptionInfo(subscriptionId) {
        $("#subscrDetais").hide();
        $("#updateSubscriptionResult").hide();
        $("#subscrLoader").html("<img class='loader' src='/gfx/EcovivaLoader.gif' alt='Loading'>");
        $("#subscrLoader").show();
        $.ajax({
            type: "POST",
            url: "/Services/CustomerService.asmx/getSubscription",
            data: "{'CustomerUID':'" + globCurrentCustomerUid + "','SubscriptionId': " + subscriptionId + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                var subscription = msg.d;
                updateProductName(subscription.ProductID, "#productInfo");
                $("#subscrType span").html(subscription.SubscriptionType + " vecka");
                $("#subscrNoOfOrders select").val(subscription.NoOfOrders);
                $("#subscrDetais").fadeIn();
                $("#subscrLoader").hide();

                $("#subscrEndConfirm").unbind("click");
                $("#subscrEndConfirm").click(function () {

                    endSubscription(subscriptionId, $("#subscrEndMessage").val());

                });

            },
            error: function (msg) { alert(msg.responseText); }
        });

    }


    function validateSubscription(ProductID, StartYear, StartWeek, SubscriptionTypeID, NoOfOrders, DeliveryDay, selector, btn) {
        $.ajax({
            type: "POST",
            url: "/Services/CustomerService.asmx/ValidateSubscription",
            data: "{'CustomerUID':'" + globCurrentCustomerUid + "','ProductID': " + ProductID + ",'StartYear':" + StartYear + ",'StartWeek':" + StartWeek + ",'SubscriptionTypeID':" + SubscriptionTypeID + ",'NoOfOrders':" + NoOfOrders + ",'DeliveryDay':" + DeliveryDay + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                if (msg.d == '' || msg.d == null)
                    $(btn).show();
                else {
                    $(btn).hide();
                }
                $(selector).html(msg.d);
            },
            error: function (msg) { alert(msg.responseText); }
        });

    }

    function updateSubscription(subscriptionId, noOfOrders) {

        $.ajax({
            type: "POST",
            url: "/Services/CustomerService.asmx/UpdateSubscription",
            data: "{'CustomerUID':'" + globCurrentCustomerUid + "','SubscriptionId': " + subscriptionId + ",'userUid':'" + globCurrentCustomerUid + "','noOfOrdsers':" + noOfOrders + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {

                if (msg.d == "") {
                    $("#updateSubscriptionResult").html("<p class='messageOk'>Din prenumeration har uppdaterats!</p>");
                    $("#updateSubscriptionResult").slideDown(200);
                    setTimeout('location.reload();', 5000);
                }
                else {
                    $("#updateSubscriptionResult").html("<p class='messageError'>" + msg.d + "</p>");
                    $("#updateSubscriptionResult").slideDown(200);
                }




            },
            error: function (msg) { alert(msg.responseText); }
        });
    }

    function endSubscription(subscriptionId, endReason) {

        $.ajax({
            type: "POST",
            url: "/Services/CustomerService.asmx/EndSubscription",
            data: "{'CustomerUID':'" + globCurrentCustomerUid + "','SubscriptionId': " + subscriptionId + ",'userUid':'" + globCurrentCustomerUid + "','endReason':'" + endReason + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {

                if (msg.d == "") {
                    $("#endSubscriptionMessage").html("Din prenumeration har avslutats! Välkommen åter!");
                    // setTimeout('dlgSubscriptionDetails.dialog("close");', 3000);
                    setTimeout('location.reload();', 3000);
                }
                else {
                    $("#endSubscriptionMessage").html(msg.d);
                }




            },
            error: function (msg) { alert(msg.responseText); }
        });
    }
    hookWeekCells();
});


function hookWeekHeaderInfo() {

    $(".tdWeek").unbind("mouseover");

    /* VECKO info */
    $(".tdWeek").mouseover(function () {


        var weekInfo = $(this).attr("title");


        $("#dlgWeekInfo").html(weekInfo);
        dlgWeekInfo.dialog("open");

    }).mousemove(function (event) {
        dlgWeekInfo.dialog("option", "position", {
            my: "left top",
            at: "right bottom",
            of: event,
            offset: "20 20"
        });
    }).mouseout(function () {
        dlgWeekInfo.dialog("close");
    });

}

function hookWeekCells() {

    $(".productWeek").unbind("mouseover");
    $(".productWeek").unbind("click");

    $(".productWeek").mouseover(function () {

        var lastCancelDate = $(this).attr("lastCanceldate");
        var deliveryDate = $(this).attr("deliverydate");
        var year = $(this).attr("year");
        var week = $(this).attr("week");
        var productId = $(this).attr("productid");
        var productName = $(this).attr("productname");
        var allowChange = $(this).attr("allowChange");
        var blockReason = $(this).attr("blockreason");
        var weekBlocked = $(this).attr("weekblocked");
        var subscribed = $(this).attr("subscribed");
        var orderId = $(this).attr("orderId");
        var cancelled = $(this).attr("cancelled");
        var subscribeTx = "Ingår i prenumeration";
        if (subscribed == "False")
            subscribeTx = "Ingår inte i prenumeration";

        var noOfOrders = $(this).attr("noOfOrders");
        var price = $(this).attr("price");
        var priceDefault = $(this).attr("priceDefault");
        var discountDescription = $(this).attr("discountDescription");

        $("#allowChange").removeAttr("class");


        $("#allowChange").html('');
        $("#orderInSubscription").html('');
        $("#orderInfoPrice").html('');
        $("#orderInfoYearWeek").html('');
        
        
        if (weekBlocked == "True") {

            if (blockReason != "")
                $("#allowChange").html(blockReason);
            else {
                $("#allowChange").html("Denna vecka går inte att boka, ändra eller avboka.");
            }
            $("#allowChange").addClass("messageError");


        }
        else {

            $("#orderInfoYearWeek").html(" v." + week + "-" + year + "<br>Leveransdag: " + deliveryDate + "<br>Sista beställning/avbeställning: " + lastCancelDate);
            $("#orderProductInfo").html(productName);
            $("#orderInSubscription").html(subscribeTx);
            if (price == priceDefault)
                $("#orderInfoPrice").html(priceDefault + " kr/st. Antal: " + noOfOrders);
            else {
                var priceTx = price + " kr. Antal: " + noOfOrders;
                if (discountDescription != "")
                    priceTx += " (" + discountDescription + ")";
                $("#orderInfoPrice").html("Pris: " + priceDefault + " kr/st<br /> Pris denna order: " + priceTx);
            }


            if (cancelled == "True") {

                if (allowChange != "True") {
                    if (blockReason != "")
                        $("#allowChange").html(blockReason);
                    else {
                        $("#allowChange").html("Denna vecka går inte att ändra eller avboka.");
                    }
                    $("#allowChange").addClass("messageError");
                }
                else {
                    $("#allowChange").html("Denna order är avbeställd");
                    $("#allowChange").addClass("validWarning");
                }

            }
            else {

                if (allowChange != "True") {
                    if (blockReason != "")
                        $("#allowChange").html(blockReason);
                    else {
                        $("#allowChange").html("Denna vecka går inte att ändra eller avboka.");
                    }
                    $("#allowChange").addClass("messageError");

                }

            }
        }
        //        if (allowChange == "True") {
        //            //var tx = "Klicka för att beställa";
        //            var tx = "";
        //            //            if ((parseInt(orderId) > 0 || subscribed == "True") && cancelled != "True")
        //            //                tx = "Klicka för att ändra eller avbeställa";
        //            $("#allowChange").html(tx);
        //            $("#allowChange").addClass("messageOk");
        //        }
        //        else if (cancelled == "True") {
        //            $("#allowChange").html("Denna order är avbeställd");
        //            $("#allowChange").addClass("validWarning");
        //        }
        //        else {
        //            $("#allowChange").html("Denna vecka går inte att ändra eller avboka.");
        //            $("#allowChange").addClass("messageError");
        //        }
        dlgOrderInfo.dialog('option', 'title', 'Info: ' + productName);
        $("#orderResult").html('');
        $("#orderResult").hide();
        dlgOrderInfo.dialog("open");

    }).mousemove(function (event) {
        dlgOrderInfo.dialog("option", "position", {
            my: "left top",
            at: "right bottom",
            of: event,
            offset: "20 20"
        });
    }).mouseout(function () {
        dlgOrderInfo.dialog("close");
    });



    $(".productWeek").click(function () {

        var year = $(this).attr("year");
        var week = $(this).attr("week");
        var productId = $(this).attr("productid");
        var productName = $(this).attr("productName");
        var allowChange = $(this).attr("allowChange");

        if (allowChange == "True") {

            $("#orderProductName").html(productName);
            $("#orderYear").html(year);
            $("#orderWeek").html(week);
            updateCufon();
            dlgOrder.dialog('option', 'title', 'Ändra/beställ');
            $("#orderResult").html('');
            $("#orderResult").hide();
            dlgOrder.dialog("open");
            updateOrderInfo(productId, year, week);

            updatePrice(productId, year, week, "#orderPrice span", parseInt($("#orderNoOfOrders").val()), 1);
        }
    });

}



function updateProductName(ProductId, sel) {


    $.ajax({
        type: "POST",
        url: "/Services/ProductService.asmx/GetProduct",
        data: "{'productId': " + parseInt(ProductId) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {

            var product = msg.d;

            if (product != null)
                $(sel).html(product.ProductLineAndProductName);
        },
        error: function (msg) {
            alert(msg.responseText);
            return null;
        }
    });

}

function updatePrice(productId, year, week, selector, noOfOrders, handleAsOrderNo) {
    $("#dlgOrder #loader").show();
    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/calculatePriceForProductByCustomer",
        data: "{'CustomerUID':'" + globCurrentCustomerUid + "','ProductID': " + parseInt(productId) + ",'OrderYear': " + parseInt(year) + ",'OrderWeek': " + parseInt(week) + ",'NoOfOrders': " + parseInt(noOfOrders) + ",'HandleAsOrderNo': " + parseInt(handleAsOrderNo) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {

            $(selector).html(msg.d + " kr");
            $("#dlgOrder #loader").hide();


        },
        error: function (msg) {
            $("#dlgOrder #loader").hide();
            alert(msg.responseText);
            return null;
        }
    });
}

function updateCell(productId, year, week, selector) {
    $("#dlgOrder #loader").show();
    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/getDeliveryStatusTableCell",
        data: "{'CustomerUID':'" + globCurrentCustomerUid + "','ProductID': " + parseInt(productId) + ",'OrderYear': " + parseInt(year) + ",'OrderWeek': " + parseInt(week) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {


            $("td[productid='" + productId + "'][year='" + year + "'][week='" + week + "']").replaceWith(msg.d);
            hookWeekCells();



        },
        error: function (msg) {
            $("#dlgOrder #loader").hide();
            alert(msg.responseText);
            return null;
        }
    });
}


function updateOrderInfo(productId, year, week) {
    $("#dlgOrder #loader").show();
    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/GetOrderInfo",
        data: "{'CustomerUID':'" + globCurrentCustomerUid + "','ProductID': " + parseInt(productId) + ",'OrderYear': " + parseInt(year) + ",'OrderWeek': " + parseInt(week) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            $('#orderDeliveryDayOfWeek').empty();
            var orderInfo = msg.d;
            var tx = orderInfo.PossibleDeliverydays.toString();
            var days = tx.split(",");

            for (var i = 0; i < days.length; i++) {
                var dayName = '';
                switch (parseInt(days[i])) {
                    case 0:
                        dayName = "Måndag";
                        break;
                    case 1:
                        dayName = "Tisdag";
                        break;
                    case 2:
                        dayName = "Onsdag";
                        break;
                    case 3:
                        dayName = "Torsdag";
                        break;
                    case 4:
                        dayName = "Fredag";
                        break;
                    case 5, -2:
                        dayName = "Lördag";
                        break;


                    default:
                        dayName = "Söndag";
                }

                var o = new Option(dayName, days[i]); /// jquerify the DOM object 'o' so we can use the html method 
                //$(o).html("option text");
                $("#orderDeliveryDayOfWeek").append(o);
            }
            $("#orderNoOfOrders").val(orderInfo.NoOfOrders);
            $("#orderNoOfOrders").unbind("change");
            $("#orderNoOfOrders").change(function (e) {
                updatePrice(productId, year, week, "#orderPrice span", parseInt($("#orderNoOfOrders").val()), 1);

            });

            $("#btnOrderSave").unbind("click");
            $("#btnOrderDelete").unbind("click");

            $("#btnOrderDelete").hide();


            if (orderInfo.AllowChangeOrder) {

                $("#btnOrderSave").click(function (e) {
                    orderProduct(productId, year, week, parseInt($("#orderNoOfOrders").val()), parseInt($("#orderDeliveryDayOfWeek").val()));

                });

                if (orderInfo.DeliveryStatus) {
                    $("#btnOrderDelete").show();
                    $("#btnOrderDelete").click(function (e) {
                        cancelOrder(productId, year, week);

                    });
                }
                else {
                    $("#btnOrderDelete").hide();
                }

                $("#orderBtnChange").show();
                $("#orderInfo").html('');
                $("#orderNoOfOrders").removeAttr("disabled");
                $("#orderDeliveryDayOfWeek").removeAttr("disabled");
            }
            else {
                $("#orderBtnChange").hide();
                $("#orderInfo").html('Det går inte att ändra denna order');
                $("#orderInfo").addClass('messageError');
                $("#orderNoOfOrders").attr("disabled", "disabled");
                $("#orderDeliveryDayOfWeek").attr("disabled", "disabled");
            }
            $("#dlgOrder #loader").hide();

        },
        error: function (msg) {
            $("#dlgOrder #loader").hide();
            alert(msg.responseText);
            return null;
        }
    });

}

function updateProductInfoDialog(productId) {

    $("#dlgInfo").html("<img class='loader' src='/gfx/EcovivaLoader.gif' alt='Loading'>");
    $.ajax({
        type: "POST",
        url: "/Services/ProductService.asmx/GetProduct",
        data: "{'productId': " + productId + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            var product = msg.d;
            var infoHtml = "<img src='/gfx/products/" + productId + ".png' class='productImage' alt='Bild' />";
            infoHtml += "<h2>" + product.ProductName + "</h2><p>" + product.ProductDescription + "</p><p><b>Pris: </b>" + product.ProductPrice + ":-</p><div id='moreProdInfo'></div>";
           // $("#dlgInfo").html(infoHtml);
            productInfo(product.ProductUrl, "#dlgInfo");
            dlgProductInfo.dialog('option', 'title', product.ProductName);
            dlgProductInfo.dialog("open");
        },
        error: function (msg) { alert(msg.responseText); }
    });

}

function cancelOrder(productId, year, week) {
    $("#orderResult").html('');
    $("#orderResult").hide();
    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/cancelOrder",
        data: "{'CustomerUID':'" + globCurrentCustomerUid + "','ProductID': " + parseInt(productId) + ",'OrderYear': " + parseInt(year) + ",'OrderWeek': " + parseInt(week) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            if (msg.d == "") {
                $("#orderResult").html("<p class='messageOk'>Avbokningen har genomförts!</p>");
                $("#orderResult").slideDown(200);
                //updateCell(productId, year, week, "");
                updateWeekHeader();
                setTimeout('dlgOrder.dialog("close");', 2000);
            }
            else {
                $("#orderResult").html("<p class='messageError'>" + msg.d + "</p>");
                $("#orderResult").slideDown(200);
            }
        },
        error: function (msg) { alert(msg.responseText); }
    });
}

function orderProduct(productId, year, week, noOfOrders, deliveryDay) {
    $("#orderResult").html('');
    $("#orderResult").hide();
    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/orderProduct",
        data: "{'CustomerUID':'" + globCurrentCustomerUid + "','ProductID': " + parseInt(productId) + ",'OrderYear': " + parseInt(year) + ",'OrderWeek': " + parseInt(week) + ",'NoOfOrders':" + noOfOrders + ",'DeliveryDay':" + deliveryDay + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            if (msg.d == "") {
                $("#orderResult").html("<p class='messageOk'>Din beställning har sparats!</p>");
                $("#orderResult").slideDown(200);
                //updateCell(productId, year, week, "");
                updateWeekHeader();
                setTimeout('dlgOrder.dialog("close");', 2000);
            }
            else {
                $("#orderResult").html("<p class='messageError'>" + msg.d + "</p>");
                $("#orderResult").slideDown(200);
            }
        },
        error: function (msg) { alert(msg.responseText); }
    });
}


function updateWeeks(productId) {


    for (var i = 1; i <= pageWeekCount; i++) {


        $("#productRow" + productId).append("<td class='productWeek'>x</td>");

    }


}

function updateWeekHeader() {



    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/getDeliveryStatusHeaderCells",
        data: "{'StartYear': " + parseInt(pageCurrentStartYear) + ",'StartWeek': " + parseInt(pageCurrentStartWeek) + ",'NoOfWeeks': " + parseInt(pageWeekCount) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {

            $(".tblMySubscriptions thead tr").each(function () {

                $(".tdWeek", this).remove();
                $(this).append(msg.d);
            });

            hookWeekHeaderInfo();

            // Uppdatera alla veckor
            $(".productRow").each(function () {

                var productId = $(this).attr("id").replace("productRow", "");
                $("td.productWeek", this).remove();
                updateWeekCellsForProduct(productId);

            });


        },
        error: function (msg) {
            $("#dlgOrder #loader").hide();
            alert(msg.responseText);
            return null;
        }
    });


}

function GetNewStartYearWeek(previous) {
    var weekCount = parseInt(pageWeekCount);

    if (previous == true)
        weekCount = 0 - parseInt(pageWeekCount);

    $("#dlgOrder #loader").show();
    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/GetNewStartYearWeek",
        data: "{'StartYear': " + parseInt(pageCurrentStartYear) + ",'StartWeek': " + parseInt(pageCurrentStartWeek) + ",'NoOfWeeks': " + weekCount + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {

            pageCurrentStartYear = msg.d.Year;
            pageCurrentStartWeek = msg.d.Week;


            updateWeekHeader();

        },
        error: function (msg) {
            $("#dlgOrder #loader").hide();
            alert(msg.responseText);
            return null;
        }
    });
}



function updateWeekCellsForProduct(productId) {
    $("#dlgOrder #loader").show();
    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/getDeliveryStatusTableCellsInWeeks",
        data: "{'CustomerUID':'" + globCurrentCustomerUid + "','ProductID': " + parseInt(productId) + ",'StartYear': " + parseInt(pageCurrentStartYear) + ",'StartWeek': " + parseInt(pageCurrentStartWeek) + ",'NoOfWeeks': " + parseInt(pageWeekCount) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {

            $("#productRow" + productId).append(msg.d);

            hookWeekCells();



        },
        error: function (msg) {
            $("#dlgOrder #loader").hide();
            alert(msg.responseText);
            return null;
        }
    });
}

function closePhone() {

    $("#callEcoviva").fadeOut();
}
function validateRegisterSimple(email) {
    $("#emailValid").attr("class", "");
    if (email == '') {
        $("#emailValid").html("Ange en e-postadress");
        $("#emailValid").addClass("validError");
        $("#emailValid").fadeIn(1000);
        $("#btnRegistrSimple").hide();
        return;
    }

    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/CheckEmailExists",
        data: "{'Email': '" + email + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            if (msg.d != "") {
                $("#emailValid").html(msg.d);
                $("#emailValid").addClass("validError");
                $("#emailValid").fadeIn(1000);
                $("#btnRegistrSimple").hide();
            }
            else {
                $("#emailValid").html("E-postadress OK!");
                $("#emailValid").addClass("validCheck");
                $("#emailValid").fadeIn(1000);
                $("#btnRegistrSimple").fadeIn(1000);
            }

        },
        error: function (msg) { alert(msg.responseText); }
    });

}

function registerSimple(email, firstName, lastName) {
    $("#dialogRegisterSimple #newCustomerMoreInfo").hide();
    $("#loader").fadeIn(1000);
    $.ajax({
        type: "POST",
        url: "/Services/CustomerService.asmx/RegisterSimple",
        data: "{'Email': '" + email + "','FirstName': '" + firstName + "','LastName': '" + lastName + "','IP': '" + globID + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            $("#loader").fadeOut(1000);
            if (msg.d != "") {
                $("#regResult").html(msg.d);
                $("#regResult").addClass("validError");


            }
            else {
                $("#regResult").html("Välkommen som kund");
                $("#regResult").addClass("validCheck");
                $("#dialogRegisterSimple #newCustomerMoreInfo").fadeIn(1000);
                $("#dialogRegisterSimple #inputForm").slideUp();
                $("#dialogRegisterSimple #newCustomerMoreInfo").click(function (e) {
                    location.href = globNewCustomerInfo;
                    e.preventDefault();

                });
            }

        },
        error: function (msg) { alert(msg.responseText); $("#loader").fadeOut(1000); }
    });

}

/* ProductInfo */

function productInfo(productUrl, selector) {




    $.get(productUrl, {},
                function (data) {
                   $(selector).html(jQuery(data).find('#leftColumn .columnContent').html());
                });



}

function updateCufon() {

    Cufon.replace('h1, h2, h3, h4, h5', { fontFamily: 'Glypha' });
    Cufon.replace('.btnYellow,.recipeBoxheader', { fontFamily: 'Glypha' });
    Cufon.replace('.caption, #footerContent', { fontFamily: 'Glypha' });
    Cufon.replace('#topMenu a, #customerMenu a, #subMenu a, .navigateWeeks div', { fontFamily: 'Glypha' });

}
