﻿var PRX_Basket_Utils = {

    refresh: function () {
        $.ajax({ url: '/ajax/cart.ashx', dataType: 'json', cache: false, success: this.buildCart }); //JSON call to get cart data, all data needed to repopulate mini-cart   
    },
    buildCart: function (data) {
        PRX_Basket = data; //update the global basket object we have in footer, use that to rebuild on. 
        $('#header .inner .shopping_cart a').html('Shopping Cart (' + PRX_Basket.items.length + ') - <small>$' + PRX_Basket.summary.LineSubTotal.toFixed(2) + '</small>');
        $('#header .inner .shopping_cart').next().text('Your PetCareRx Points (' + PRX_Basket.summary.PointsAvailable + ')');
        $('#header .mini_cart_sec .mid_bg .top_row span').text(PRX_Basket.summary.DiscountMessageInner);
        $('#header .inner h2').text(PRX_Basket.summary.DiscountMessageOuter);        
        $('span', $('#header .mini_cart_sec .mid_bg ul.pro_list').next()).text('$' + PRX_Basket.summary.LineSubTotal.toFixed(2));
        $('#header .mini_cart_sec .mid_bg ul.pro_list').empty(); //remove items so we can rebuild them, stronger, better, faster.
        var pAcc = 0.0;
        $(PRX_Basket.items).each(function (i, v) {
            $('<li><div class="col01"><a href="' + v.PageURL + '" class="thumb"><img height="55" width="55" alt="" onerror="this.src=\'//cdn.petcarerx.com/img/PrdImg/no_image_s.jpg\';" src="' + v.ImageURL + '"/></a><span><strong>' + v.DisplayName + '</strong>' + v.DisplayOptions + '</span></div><div class="col02"><span>' + v.Quantity + '</span></div><div class="col03"><span>$' + v.UnitPrice.toFixed(2) + '</span></div><div class="col04"><span class="red"><strong>$' + v.LineItemTotal.toFixed(2) + '</strong></span></div></li>')
                    .appendTo($('#header .mini_cart_sec .mid_bg ul.pro_list'));
            pAcc += (v.PointsEarned * v.PointsMultiplier);
        });
        $('em', $('#header .mini_cart_sec .mid_bg ul.pro_list').next()).text((pAcc - PRX_Basket.summary.DiscountTotal).toFixed(0));

        $('#header .mini_cart_sec .mid_bg ul.pro_list li:last').addClass('last');
        var contentHeight = 71 * (PRX_Basket.items.length > 3 ? 3 : PRX_Basket.items.length);
        $('#header .mini_cart_sec .mid_bg ul.pro_list').css('height', contentHeight + 'px');

    },
    addItem: function (s, q, c, fx, cb) {
        $.ajax({ url: '/ajax/cart.ashx', async: false, data: { op: 'add', sku: s, qty: q, customize: c }, dataType: 'json', cache: false, context: this, success: function (data) {
            if (!data.success) {
                PRX_Utils.doRedAlert('Cart Error', data.message);
            }
            else {
                //if success, and message exists, we want to display it:
                if (data.message.length > 0) PRX_Utils.doAlert('Message from PetCareRx', data.message);
                this.buildCart(data);
                if (fx != false) {
                    $(".inner .mini_cart_sec")
                    .slideDown()
                    .delay(3000)
                    .slideUp('slow', function () { if ($.isArray(cb)) { for (var i = 0; i < cb.length; i++) { if ($.isFunction(cb[i])) { cb[i](); } } } });
                }
                else { if ($.isArray(cb)) { for (var i = 0; i < cb.length; i++) { if ($.isFunction(cb[i])) { cb[i](); } } } }
            }
        }
        });
    }

};
