var wdk_basket = { totalItems: 0, data: {"total":"0.00","currency":"£","cart":null,"items":0}, refresh: function() { $.getJSON("/shop/ajax/basket.php?json=true", function(data) { wdk_basket.data = data; wdk_basket.updateHTML(); }); }, updateHTML: function() { // Hide any baskets if total=0 if(wdk_basket.data.items == 0 && typeof livepreview != 'boolean') { if( $(".basket--side-column[data-basket-hidden='1']").length > 0 ) { $(".wdk_sidecolumn_container--basket").css({display: 'none', 'visibility': 'hidden'}); } // Display logic for the nav basket - N.B. This doesn’t work in live Preview // @TODO: This could be named better $(".wdk_basket_empty").show(); $(".wdk_basket_not_empty").hide(); } else { if( $(".basket--side-column[data-basket-hidden='1']").length > 0 ) { $(".wdk_sidecolumn_container--basket").css({display: 'block', 'visibility': 'visible'}); } // Display logic for the nav basket - N.B. This doesn’t work in live Preview // @TODO: This could be named better $(".wdk_basket_empty").hide(); $(".wdk_basket_not_empty").show(); } // Update the container which holds a list of the items in the basket $("[data-basket-id]").each(function() { wdk_basket.totalItems = 0; var basketId = $(this).attr("data-basket-id"); $(this).html(''); if(wdk_basket.data.cart) { for(var i=0; i <= (wdk_basket.data.cart.length-1); ++i) { $("[data-basket-id=" + basketId + "]").append(wdk_basket.buildCartRow(i, wdk_basket_row_html[basketId-1])); } } }); // Update the total amount $(".wdk_basket_total").html(this.data.currency + this.data.total); $(".wdk_basket_total_items").html(this.totalItems); // Old Quick basket compatibility $(".wdk_widget-shopbasket-newtotal").html("Total: " + this.data.currency + this.data.total).show(); // Sidecolumns if( typeof quickBasketHideSidecols != 'undefined' ) { quickBasketHideSidecols(); } }, buildCartRow: function(i, html) { var data = this.data.cart[i]; this.totalItems += parseFloat(data.qty); html = html.replace(/\<\!\-\-WDK\:basket\:item\:url\-\-\>/g, data.link); html = html.replace(/\<\!\-\-WDK\:basket\:item\:name\-\-\>/g, data.product); html = html.replace(/\<\!\-\-WDK\:basket\:item\:quantity\-\-\>/g, data.qty); html = html.replace(/\<\!\-\-WDK\:basket\:item\:price\-\-\>/g, this.data.currency + data.unit_price); html = html.replace(/\<\!\-\-WDK\:basket\:item\:subtotal\-\-\>/g, this.data.currency + data.subtotal); html = html.replace(/\<\!\-\-WDK\:basket\:item\:currency\-\-\>/g, this.data.currency); return html; } }; if(typeof wdk_basket_row_html == 'undefined') { var wdk_basket_row_html = new Array(); } $(function() { wdk_basket.updateHTML(); });