diff --git a/themes/blueprint/js/cart.js b/themes/blueprint/js/cart.js index 578cd15d00c6e033406d4a5e884854bba663537c..f7de4238b0f12d6550d8673479af7b1e935658b3 100644 --- a/themes/blueprint/js/cart.js +++ b/themes/blueprint/js/cart.js @@ -4,59 +4,6 @@ var _CART_COOKIE = 'vufind_cart'; var _CART_COOKIE_SOURCES = 'vufind_cart_src'; var _CART_COOKIE_DELIM = "\t"; -function registerUpdateCart($form) { - if($form) { - $("#updateCart, #bottom_updateCart").unbind('click').click(function(){ - var elId = this.id; - var selectedBoxes = $("input[name='ids[]']:checked", $form); - var selected = []; - $(selectedBoxes).each(function(i) { - selected[i] = this.value; - }); - - if (selected.length > 0) { - var inCart = 0; - var msg = ""; - var orig = getItemsFromCartCookie(); - $(selected).each(function(i) { - for (var x in orig) { - if (this == orig[x]) { - inCart++; - return; - } - } - addItemToCartCookie(this); - }); - var updated = getItemsFromCartCookie(); - var added = updated.length - orig.length; - msg += added + " " + vufindString.itemsAddBag + "<br />"; - if (inCart > 0 && orig.length > 0) { - msg += inCart + " " + vufindString.itemsInBag + "<br />"; - } - if (updated.length >= vufindString.bookbagMax) { - msg += vufindString.bookbagFull + "<br />"; - } - cartHelp(msg, elId); - } else { - cartHelp(vufindString.bulk_noitems_advice, elId); - } - redrawCartStatus(); - return false; - }); - } -} - -function cartHelp(msg, elId) { - contextHelp.flash('#' + elId, '10', '1', 'down', 'right', msg, 5000); -} - -function redrawCartStatus() { - var items = getItemsFromCartCookie(); - removeCartCheckbox(); - updateRecordState(items); - updateCartSummary(items); -} - function getItemsFromCartCookie() { var ids = $.cookie(_CART_COOKIE); if (ids) { @@ -87,6 +34,10 @@ function getItemsFromCartCookie() { return []; } +function cartHelp(msg, elId) { + contextHelp.flash('#' + elId, '10', '1', 'down', 'right', msg, 5000); +} + // return unique values from the given array function uniqueValues(array) { var o = {}, i, l = array.length, r = []; @@ -99,26 +50,6 @@ function uniqueValues(array) { return r; } -function addItemToCartCookie(item) { - var items = getItemsFromCartCookie(); - if(items.length < vufindString.bookbagMax) { - items.push(item); - } - items = uniqueValues(items); - saveCartCookie(items); - return items; -} - -function removeItemFromCartCookie(item) { - var items = getItemsFromCartCookie(); - var index = $.inArray(item, items); - if (index != -1) { - items.splice(index, 1); - } - saveCartCookie(items); - return items; -} - function saveCartCookie(items) { // No items? Clear cookies: if (items.length == 0) { @@ -155,6 +86,26 @@ function saveCartCookie(items) { $.cookie(_CART_COOKIE_SOURCES, sources.join(_CART_COOKIE_DELIM), { path: '/' }); } +function addItemToCartCookie(item) { + var items = getItemsFromCartCookie(); + if(items.length < vufindString.bookbagMax) { + items.push(item); + } + items = uniqueValues(items); + saveCartCookie(items); + return items; +} + +function removeItemFromCartCookie(item) { + var items = getItemsFromCartCookie(); + var index = $.inArray(item, items); + if (index != -1) { + items.splice(index, 1); + } + saveCartCookie(items); + return items; +} + function updateRecordState(items) { var cartRecordId = $('#cartId').val(); if (cartRecordId != undefined) { @@ -184,6 +135,55 @@ function removeCartCheckbox() { }); } +function redrawCartStatus() { + var items = getItemsFromCartCookie(); + removeCartCheckbox(); + updateRecordState(items); + updateCartSummary(items); +} + +function registerUpdateCart($form) { + if($form) { + $("#updateCart, #bottom_updateCart").unbind('click').click(function(){ + var elId = this.id; + var selectedBoxes = $("input[name='ids[]']:checked", $form); + var selected = []; + $(selectedBoxes).each(function(i) { + selected[i] = this.value; + }); + + if (selected.length > 0) { + var inCart = 0; + var msg = ""; + var orig = getItemsFromCartCookie(); + $(selected).each(function(i) { + for (var x in orig) { + if (this == orig[x]) { + inCart++; + return; + } + } + addItemToCartCookie(this); + }); + var updated = getItemsFromCartCookie(); + var added = updated.length - orig.length; + msg += added + " " + vufindString.itemsAddBag + "<br />"; + if (inCart > 0 && orig.length > 0) { + msg += inCart + " " + vufindString.itemsInBag + "<br />"; + } + if (updated.length >= vufindString.bookbagMax) { + msg += vufindString.bookbagFull + "<br />"; + } + cartHelp(msg, elId); + } else { + cartHelp(vufindString.bulk_noitems_advice, elId); + } + redrawCartStatus(); + return false; + }); + } +} + $(document).ready(function() { var cartRecordId = $('#cartId').val(); $('#cartItems').hide();