﻿window.Shop = {
};

Shop.AddProduct = function(ProductId, ProductPropertyId, Amount) {
    $.ajax({
        type: "POST",
        url: "/shop_controls/AddProduct.ashx",
        data: 'product_id=' + ProductId + '&product_property_id=' + ProductPropertyId + '&amount=' + Amount,
        success: function(responseMessage) {
            eval(responseMessage);
            if (ResponseObject.Success) {
                Shop.UpdateSmallBasket();
            }
            else {
                if (ResponseObject.Error == "SYSTEM_ERROR") {
                    alert("Produkten kunde ej läggas i varukorgen!")
                }
            }
        }
    });
}

Shop.UpdateSmallBasket = function() {
    $.ajax({
        type: "POST",
        url: "/shop_controls/UpdateSmallBasket.ashx",
        data: '',
        success: function(responseMessage) {
            eval(responseMessage);
            if (ResponseObject.Success) {
                $("#BasketHolder").html('<a href="' + BASKET_PAGE + '" class="basket">' + ResponseObject.BasketCount + ' artikel, ' + ResponseObject.BasketSummery + ' kr inkl. moms</a>');
                if (!$("#BasketHolder").is(":visible")) {
                    $("#BasketHolder").slideDown("slow");
                }
            }
            else {
                if (ResponseObject.Error == "SYSTEM_ERROR") {
                    alert("Produkten kunde ej läggas i varukorgen!")
                }
            }
            var options = {};
            $("#BasketHolder").effect("pulsate", options, 500);
        }
    });
}
Shop.RemoveProduct = function(basketItemId) {
    var productText = $("#" + basketItemId + " td.product").html();
    if (confirm(productText + " kommer att plockas bort från kundvagnen!")) {
        $.ajax({
            type: "POST",
            url: "/shop_controls/RemoveProduct.ashx",
            data: 'product_id=' + basketItemId,
            success: function(responseMessage) {
                eval(responseMessage);
                if (ResponseObject.Success) {
                    $("#" + basketItemId).remove();
                    Shop.getBasketSummery();
                }
                else {
                    if (ResponseObject.Error == "SYSTEM_ERROR") {
                        alert("Produkten kunde ej raderas från varukorgen!")
                    }
                }
            }
        });
    }
};
Shop.getBasketItems = function() {
    $.ajax({
        type: "POST",
        url: "/shop_controls/Basket_Items.aspx",
        data: '',
        success: function(responseMessage) {
            var responseObj = $(responseMessage)
            $("#BasketItems").empty().append(responseMessage)
        }
    });
}
Shop.getBasketSummery = function() {
    $.ajax({
        type: "POST",
        url: "/shop_controls/Basket_Summery.aspx",
        data: '',
        success: function(responseMessage) {
            $("#BasketSummery").html(responseMessage);
        }
    });
}
Shop.SetBaksetPageOptions = function() {
    $('input.transform').checkbox({ cls: 'jquery-safari-checkbox' });

    $('#' + chkDeliveryAddress_ClientID).click(function() {
        if ($('#DeliveryBox').is(":visible")) {
            $('#DeliveryBox').slideUp("fast");
        }
        else {
            $('#DeliveryBox').slideDown("fast");
        }
    });
    $('#' + chkDeliveryBusinessAddress_ClientID).click(function() {
        if ($('#DeliveryBusinessBox').is(":visible")) {
            $('#DeliveryBusinessBox').slideUp("fast");
        }
        else {
            $('#DeliveryBusinessBox').slideDown("fast");
        }
    });
    $('#' + chkMemberLogin_ClientID).click(function() {
        $('#CustomerMemberOptions').show();
        if (!$('#CustomerLogin').is(":visible")) {
            if ($('#CustomerNewMember').is(":visible")) {
                $('#CustomerNewMember').slideUp("fast", function() {
                    $('#CustomerLogin').slideDown();
                });
            }
            else {
                $('#CustomerLogin').slideDown("fast");
            }
        }
    });
    $('#' + chkMemberNew_ClientID).click(function() {
        $('#CustomerMemberOptions').show();
        if (!$('#CustomerNewMember').is(":visible")) {
            if ($('#CustomerLogin').is(":visible")) {
                $('#CustomerLogin').slideUp("fast", function() {
                    $('#CustomerNewMember').slideDown();
                });
            }
            else {
                $('#CustomerNewMember').slideDown("fast");
            }
        }
    });
    $('#' + chkMemberNone_ClientID).click(function() {
        $('#CustomerLogin').hide();
        $('#CustomerNewMember').hide();
        $('#CustomerMemberOptions').hide();
    });

    $('#CustomerType').tabs({
        select: function(event, ui) {
            $("#" + hidCustomerType_ClientID).val(ui.index);
            if (ui.index == 0) {
                $('#PaymentOptions').tabs('select', 0).data('disabled.tabs', [1]);
            }
            if (ui.index == 1)
                $('#PaymentOptions').data('disabled.tabs', []);
        }
    });
    $("#PaymentOptions").tabs({
        select: function(event, ui) {
            $("#" + hidPaymentOption_ClientID).val(ui.index);
        },
        disabled: [1]
    });

    $("#BasketItems a.trashcan").live('click', function(e) {
        e.preventDefault();
        Shop.RemoveProduct($(this).parent().parent().attr("id"));
    });

    $("#btnSendOrder").click(function(e) {
        e.preventDefault();
        if (!$(this).hasClass("disabled")) {
            $(this).addClass("disabled");
        }
        else {
            alert("Din order håller på att behandlas, vargod vänta!")
        }
    });

    $("input.editable").live('blur', function(e) {
        var parentelement = $(this).parent();
        var currentValue = $(this).val();
        var defaultValue = $("input[type=hidden]", parentelement).val();

        if (currentValue != defaultValue) {
            $(this).addClass("textbox-info")
        }
    });

    $("input.editable").live("keypress", function(e) {
        if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
            return false;
        }
    });

    $("#btnUpdateBasket").click(function(e) {
        e.preventDefault();
        var changedValues = new Array();
        var i = 0;
        $("#Basket input[type=text]").each(function() {
            var parentelement = $(this).parent();
            var currentValue = $(this).val();
            var defaultValue = $("input[type=hidden]", parentelement).val();
            if (currentValue != defaultValue) {
                changedValues[i] = this;
                $("input[type=hidden]", parentelement).val(currentValue)
                i++;
            }
        });

        for (var ii = 0; ii < changedValues.length; ii++) {
            $.ajax({
                type: "POST",
                async: false,
                url: "/shop_controls/ChangeProduct.ashx",
                data: 'basket_item_id=' + $(changedValues[ii]).parent().parent().attr("id") + '&amount=' + $(changedValues[ii]).val(),
                success: function(responseMessage) {
                    Shop.getBasketSummery();

                }
            });
        }
        $("#Basket input[type=text]").removeClass("textbox-info");
    });

    $("#" + txtNewUsername_ClientID).blur(function() {
        var currentUsername = $(this);
        $("#UsernameValidationMessage").html("");
        try {
            currentUsername.qtip("destroy");
        }
        catch (err) {

        }
        currentUsername.removeClass("textbox-error");
        var patt1 = new RegExp(/^[a-zA-Z0-9_]{3,16}$/);
        if (currentUsername.val().length > 0 && !patt1.test(currentUsername.val())) {
            $("#UsernameValidationMessage").append("Användarnamnet måste vara minst 3 tecken och bara innehålla A-Z, 0-9 och _");
            currentUsername.addClass("textbox-error");
            currentUsername.qtip({
                content: 'Användarnamnet måste vara minst 3 tecken och bara innehålla A-Z, 0-9 och _',
                style: 'errortip',
                position: { corner: { tooltip: 'bottomMiddle', target: 'topMiddle'} }
            });

            return;
        }
        if (currentUsername.val() != "") {
            $.ajax({
                type: "POST",
                async: false,
                url: "/shop_controls/CheckUsername.ashx",
                data: 'username=' + currentUsername.val(),
                success: function(responseMessage) {
                    eval(responseMessage);
                    if (!ResponseObject.Success) {
                        $("#UsernameValidationMessage").append("Användarnamnet är upptaget, försök med ett annat användarnamn!");
                        currentUsername.addClass("textbox-error");
                        currentUsername.qtip({
                            content: 'Användarnamnet är upptaget, försök med ett annat användarnamn!',
                            style: 'errortip',
                            position: { corner: { tooltip: 'bottomMiddle', target: 'topMiddle'} }
                        });
                    }
                    else {
                        $("#UsernameValidationMessage").append('<img src="/images/ok.png" alt="Användarnamnet är INTE upptaget!"/>');
                    }
                },
                error: function(responseMessage) {
                    $("#UsernameValidationMessage").append("Ett fel har inträffat, tyvärr kan du inte bli medlem just nu!");
                }
            });
        }
    });
};

Shop.SetDescriptionText = function(textKey, selector) {
    $(selector).qtip(
    {
        content: {
            title: {
                text: 'Information',
                button: 'Stäng'
            },
            url: '/shop_controls/GetDescriptionText.aspx',
            data: { key: textKey, node_id: currentNodeId },
            method: 'post'

        },
        position: {
            target: $(document.body), // Position it via the document body...
            corner: 'center' // ...at the center of the viewport
        },
        show: {
            when: 'click', // Show it on click
            solo: true // And hide all other tooltips
        },
        hide: false,
        style: {
            width: { min: 350, max: 600 },
            height: { min: 200, max: 600 },
            padding: '14px',
            border: {
                width: 9,
                radius: 9,
                color: '#666666'
            },
            name: 'light'
        },
        api: {
            beforeShow: function() {
                // Fade in the modal "blanket" using the defined show speed
                //$('#qtip-blanket').fadeIn(this.options.show.effect.length);
            },
            beforeHide: function() {
                // Fade out the modal "blanket" using the defined hide speed
                //$('#qtip-blanket').fadeOut(this.options.hide.effect.length);
            }
        }
    });

//    $('<div id="qtip-blanket">')
//    .css({
//        position: 'absolute',
//        top: 0, // Use document scrollTop so it's on-screen even if the window is scrolled
//        left: 0,
//        height: $(document).height()+50, // Span the full document height...
//        width: '100%', // ...and full width

//        opacity: 0.7, // Make it slightly transparent
//        backgroundColor: 'white',
//        zIndex: 5000  // Make sure the zIndex is below 6000 to keep it below tooltips!
//    })
//    .appendTo(document.body) // Append to the document body
//    .hide(); // Hide it initially
}