/* Minification failed. Returning unminified contents.
(257,53-54): run-time error JS1195: Expected expression: >
(257,90-91): run-time error JS1004: Expected ';': )
(289,26-27): run-time error JS1195: Expected expression: )
(293,17-18): run-time error JS1002: Syntax error: }
(299,55-56): run-time error JS1195: Expected expression: )
(299,57-58): run-time error JS1004: Expected ';': {
(335,2-3): run-time error JS1195: Expected expression: )
(341,2-3): run-time error JS1197: Too many errors. The file might not be a JavaScript file: (
 */

jQuery.extend({
    postJSON: function (params) {
        return jQuery.ajax(jQuery.extend(params, {
            type: "POST",
            data: JSON.stringify(params.data),
            dataType: "json",
            contentType: "application/json",
            processData: false
        }));
    }
});


    // basket checkout option changes
var recalculateBasket = function()
{
    var action = $('.fullbasket').data('recalculateaction');

    var items = [];

    $('.fullbasket .basket_items tr').each(function () {
        var _line = {
            ID: $(this).data('id'),
            Qty: $(this).find('.basket_col_quantity input').val()
        };
        items.push(_line);
    });

    var _data = {
        ReqId: ++reqId,
        DeliveryService_ID: $('#DeliveryService_ID').val(),
        BasketItems: items
    };

    $('.basket_checkoutcontinue').addClass('pending');

    $.postJSON({
        url: action, data: _data, success: function (data) {
            $('.basket_checkoutcontinue').removeClass('pending');
            if (data.ReqId == reqId) {
                  
                if (data.Result) {
                    $('.fullbasket').html(data.BasketView);
                    $('#DeliveryService_ID').select2();
                    //$('.deliverycost').html(data.DeliveryCharge);
                    //$('.basket_row_granddetail').html(data.OrderTotal);
                    //$('.basket-discountamount').html(data.DiscountTotal);
                    //if (data.HasDiscounts)
                    //    $('.basket-discountamountrow').removeClass('hidden');
                    //else
                    //    $('.basket-discountamountrow').addClass('hidden');
                }
            }
        }
    });

       
}

$('body').on('change','.basket_col_quantity input', recalculateBasket);

    
    
$('body').on('change keyup', '#DeliveryService_ID', recalculateBasket);
if ($('.basket_col_quantity, #DeliveryService_ID').length > 0) {
    recalculateBasket();
}

$(document).on('submit', '.ecom_outofstock', function (e) {
    e.preventDefault();
    var action = $(this).attr('action');

    var _data = {
        OutOfStockEmail: $(this).find('input[name=OutOfStockEmail]').val()
    };

    $.postJSON({
        url: action, data: _data, success: function (result) {
            if (result.Result) {
                $('.ecom_outofstock').addClass('hidden');
                $('.ecom_outofstockthanks').removeClass('hidden');
            }
        }
    });

});
    

var reqId = 0;
;
var isPlusMinusClick = false;

//product plus minus
function proPlusQuantity(txt) {
    var productList = [];
    var objThis = $(txt).closest('tr');

    productList.push({
        'name': objThis.find(".jq-product-name").text(),
        'id': objThis.data("productcode"),
        'price': objThis.find(".jq_unitprice").text().replace(/\r?\n|\r/g, '').replace(/ +/g, '').substring(1),
        'category': objThis.find("#hdnProductCatName").val(),
        'quantity': 1
    });

    isPlusMinusClick = true;
    addToCart(productList);
    
    $('.proPlus').addClass('disable');
    var $input = $(txt).parent().find('input');
    $input.val(parseInt($input.val()) + 1);
    $input.change();
}

function proMinusQuantity(txt, shoppingBasketItemId) {
    var productList = [];
    var objThis = $(txt).closest('tr');

    productList.push({
        'name': objThis.find(".jq-product-name").text(),
        'id': objThis.data("productcode"),
        'price': objThis.find(".jq_unitprice").text().replace(/\r?\n|\r/g, '').replace(/ +/g, '').substring(1),
        'category': objThis.find("#hdnProductCatName").val(),
        'quantity': 1
    });

    isPlusMinusClick = true;
    removeFromCart(productList);
    
    $('.proMinus').addClass('disable');
    var $input = $(txt).parent().find('input');
    var count = parseInt($input.val()) - 1;
    count = count < 1 ? 0 : count;
    if (count == 0) {
        window.location.href = '/BillingShipping/Remove?id='+shoppingBasketItemId;
    }
    else {
        $input.val(count);
        $input.change();
    }    
}

jQuery.extend({
    postJSON: function (params) {
        return jQuery.ajax(jQuery.extend(params, {
            type: "POST",
            data: JSON.stringify(params.data),
            dataType: "json",
            contentType: "application/json",
            processData: false
        }));
    }
});

var reqId = 0;

// basket checkout option changes
var recalculateBasket = function () {
    var action = $('.fullbaskettable').data('recalculateaction');

    var items = [];

    $('.fullbaskettable .basket_items tr').each(function () {
        //var optC = $('.basket-pro-desc');
        var opts = $(this).find('.basket-pro-desc select') //optC.find('select,input');

        var options = [];

        var i = 0;
        opts.each(function () {
            var _t = $(this);
            switch (this.tagName.toLowerCase()) {
                case 'input':
                    if (_t.is('[type=checkbox]')) {
                        var val = _t.is(':checked');
                        options.push({ ProductOption_ID: _t.attr('rel'), Checked: val });
                    }
                    else {
                        options.push({ ProductOption_ID: _t.attr('rel'), Value: _t.val() });
                    }
                    break;
                case 'select':
                    options.push({ ProductOption_ID: _t.attr('rel'), ProductOptionItem_ID: _t.val() });
                    break;
                //case 'label':
                //    options.push({ ProductOption_ID: _t.attr('data-productoption-id'), ProductOptionItem_ID: _t.attr('data-productoptionitem-id') });
                //    break;
            }
            i++;
        });

        var proDiv = $(this).find('.adding-pro input').closest('.adding-pro');
        var _line = {
            Product_ID: $(this).data('product_id'),
            ProductCode: $(this).data('productcode'),
            ID: $(this).data('id'),
            Qty: $(this).find('.adding-pro input').val(),
            PrevQty: proDiv.data('quantity'),
            Options: options
        };

        proDiv.data('quantity', $(this).find('.adding-pro input').val());

        items.push(_line);
    });


    var _data = {
        ReqId: ++reqId,
        DeliveryService_ID: $('input[name=DeliveryService_ID]:checked').val(),
        BasketItems: items
    };
   
    $('.basket_checkoutcontinue').addClass('pending');
    $('#errorMessageText').html('');
    $.postJSON({
        url: action, data: _data, success: function (data) {
            // $('.basket_checkoutcontinue').removeClass('pending');
            if (data.ReqId == reqId) {
                if (data.Result) {
                    $('.fullbaskettable').html(data.BasketView);
                    //$('#DeliveryService_ID').select2();
                    $('.deliverycost').html(data.DeliveryCharge);
                    $('.basket_row_granddetail').text(data.OrderTotal);
                    $('.basket_row_ordergranddetail').text(data.GrandTotal);
                    $('.basket-discountamount').text(data.DiscountTotal);
                    if (data.HasDiscounts) {
                        $('.basket-discountamountrow').removeClass('hidden');
                    }
                    else {
                        $('.basket-discountamountrow').addClass('hidden');
                        $("#discountSuccessMessageTxt").html("");
                        $("#discountInvalidMessageTxt").html("");
                        $("#voucherMessage").html("");
                    }

                    if (data.DiscountCodes !== null || data.DiscountCodes !== "") {

                        var discountHtml = '<div id="discountCodeText">' + data.DiscountCodes + '</div>';
                        if ($("#discountCodeText").length == 0) {
                            $(discountHtml).insertAfter($('#dvDiscountAmount'));
                        }
                    }
                    $("#voucherMessage").html(data.DiscountErrorMessage)
                    if ($('.proPlus').hasClass('disable')) {
                        $('.proPlus').removeClass('disable');
                    }
                    else if ($('.proMinus').hasClass('disable')) {
                        $('.proMinus').addClass('disable');
                    }
                }
                else {
                    if ($('.jq-checkout-basket').length && data.ErrorMessage != '') {
                        $.each(data.ErrorList, function (index, item) {
                            var objTr = $('.fullbaskettable .basket_items tr[data-id="' + item.ShoppingBasketItem_ID + '"]');
                            let obj = items.find(o => o.ID === item.ShoppingBasketItem_ID);
                            var currentData = obj.PrevQty;
                            var prodQuantity = objTr.find('.jq-quantity').val();
                            objTr.find('.jq-checkout-product').data('quantity', obj.PrevQty);
                            objTr.find('.jq-quantity').val(obj.PrevQty);

                            //ecommerce tracking
                            var productList = [];
                            if (prodQuantity > currentData) {
                                currentData = prodQuantity - currentData;
                                productList.push({
                                    'name': objTr.find(".jq-product-name").text(),
                                    'id': objTr.data("productcode"),
                                    'price': objTr.find(".jq_unitprice").text().replace(/\r?\n|\r/g, '').replace(/ +/g, '').substring(1),
                                    'category': objTr.find("#hdnProductCatName").val(),
                                    'quantity': currentData
                                });

                                removeFromCart(productList);
                            }
                            else {
                                currentData = currentData - prodQuantity;
                                productList.push({
                                    'name': objTr.find(".jq-product-name").text(),
                                    'id': objTr.data("productcode"),
                                    'price': objTr.find(".jq_unitprice").text().replace(/\r?\n|\r/g, '').replace(/ +/g, '').substring(1),
                                    'category': objTr.find("#hdnProductCatName").val(),
                                    'quantity': currentData
                                });

                                addToCart(productList);
                            }
                        });

                        $('#errorMessageText').html(data.ErrorMessage);
                    }
                }
            }
        }
    });
}

$('body').on('change', '.adding-pro input', function () {
    var objThis = $(this);
    var data = objThis.val();
    var objTr = $(this).closest('tr');
    var addingDiv = $(this).closest('.adding-pro');
    var prodQuantity = addingDiv.data('quantity');
    if (data != prodQuantity && !isPlusMinusClick) {
        var productList = [];
        if (prodQuantity > data) {
            data = prodQuantity - data;
            productList.push({
                'name': objTr.find(".jq-product-name").text(),
                'id': objTr.data("productcode"),
                'price': objTr.find(".jq_unitprice").text().replace(/\r?\n|\r/g, '').replace(/ +/g, '').substring(1),
                'category': objTr.find("#hdnProductCatName").val(),
                'quantity': data
            });

            removeFromCart(productList);
        }
        else {
            data = data - prodQuantity;
            productList.push({
                'name': objTr.find(".jq-product-name").text(),
                'id': objTr.data("productcode"),
                'price': objTr.find(".jq_unitprice").text().replace(/\r?\n|\r/g, '').replace(/ +/g, '').substring(1),
                'category': objTr.find("#hdnProductCatName").val(),
                'quantity': data
            });

            addToCart(productList);
        }
    }

    isPlusMinusClick = false;
    recalculateBasket();   
});

$('body').on('change', '.color-block select', recalculateBasket);

$('body').on('change', '#DeliveryService_ID', recalculateBasket);

$('#DeliveryService_ID').change(function () {
    recalculateBasket();
});

function GetParameterValues(param) {
    var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < url.length; i++) {
        var urlparam = url[i].split('=');
        if (urlparam[0] == param) {
            return urlparam[1];
        }
    }
}  

function SetCountryToDefault() {
    $('#Registration_DeliveryAddress_Country').val("");
}

$('#discountForm').on('keyup keypress', function (e) {
    var keyCode = e.keyCode || e.which;
    if (keyCode === 13) {
        e.preventDefault();
        return false;
    }
});
//if ($('.basket_col_quantity, #DeliveryService_ID').length > 0) {
//    recalculateBasket();
//}

//$(document).on('submit', '.ecom_outofstock', function (e) {
//    e.preventDefault();
//    var action = $(this).attr('action');

//    var _data = {
//        OutOfStockEmail: $(this).find('input[name=OutOfStockEmail]').val()
//    };

//    $.postJSON({
//        url: action, data: _data, success: function (result) {
//            if (result.Result) {
//                $('.ecom_outofstock').addClass('hidden');
//                $('.ecom_outofstockthanks').removeClass('hidden');
//            }
//        }
//    });

//});
;
