PageSourceSearch

https://www.borderstates.com/_ui/responsive/common/js/acc.cartitem.js

js borderstates.com collected 2026-10-03 21:43:11 UTC 8,890 bytes, 264 lines download raw bytes

1ACC.cartitem = {
2
3	_autoload: [
4		"bindCartItem"
5	],
6	submitTriggered: false,
7	global_AjaxCartRequest_counter: 0,
8	bindCartItem: function ()
9	{
10		$('.js-execute-entry-action-button').on("click", function ()
11		{
12			var entryAction = $(this).data("entryAction");
13			var entryActionUrl =  $(this).data("entryActionUrl");
14			var entryProductCode =  $(this).data("entryProductCode");
15			var entryInitialQuantity =  $(this).data("entryInitialQuantity");
16			var actionEntryNumbers =  $(this).data("actionEntryNumbers");
17			var entryProductName =  $(this).data("entryProductName");
18			var entryProductPrice =  $(this).data("entryProductPrice");
19			var entryProductManufacturerData =  $(this).data("entryProductManufacturerData");
20
21			if(entryAction == 'REMOVE'){
22				ACC.gtm.removeFromCart_gtm(entryProductCode, entryProductName, entryProductPrice, entryProductManufacturerData, entryInitialQuantity);
23				if($('.js-execute-entry-action-button:visible').length == 1){
24					ACC.cart.emptyCart();
25				}else {
26					$(this).closest(".js-item-row").hide();
27					$('.js-cart-totals').hide();
28					$('.js-cart-totals-recalculating').show();
29					ACC.cartitem.lastProductCodeId = entryProductCode;
30					$.ajax({
31						url: entryActionUrl,
32						type: 'GET',
33						data: {entryProductCode: entryProductCode},
34						dataType: "html",
35						success: function (data) {
36							var entryInfo = $(data).find('#removeEntryInfo');
37							if (entryInfo.attr('code') == ACC.cartitem.lastProductCodeId) {
38								$('.js-cart-totals-recalculating').hide();
39								$('.js-cart-totals').html($(data).find('.js-cart-totals'))
40								$('.js-cart-totals').show();
41
42								$('.ajax-minicart').html($(data).find('.ajax-minicart'))
43
44								if (typeof ACC.minicart.updateMiniCartDisplay == 'function') {
45									ACC.minicart.updateMiniCartDisplay();
46								}
47
48								var newCount = $(data).find('.js-new-cart-count');
49								if (newCount != undefined) {
50									newCount = newCount.val()
51									var label = ACC.totalItemsLabel;
52									if (parseInt(newCount) <= 1) {
53										label = ACC.totalItemLabelOne;
54									}
55									if (newCount > 999) {
56										newCount = "999+";
57									}
58
59									$(".js-cart-items-total").text(label.replace("{0}", newCount));
60								}
61							}
62						}
63					});
64				}
65			}else{
66				var cartEntryActionForm = $("#cartEntryActionForm");
67				var entryNumbers = actionEntryNumbers.toString().split(';');
68				entryNumbers.forEach(function(entryNumber) {
69					var entryNumbersInput = $("<input>").attr("type", "hidden").attr("name", "entryNumbers").val(entryNumber);
70					cartEntryActionForm.append($(entryNumbersInput));
71				});
72				cartEntryActionForm.attr('action', entryActionUrl).submit();
73			}
74		});
75		$('.js-update-entry-quantity-input, .js-qty-selector-minus, .js-qty-selector-plus').on("blur", function (e)
76		{
77			//	$('.cart__buyingFor .loader-img').show();
78			ACC.cartitem.handleUpdateQuantity(this, e);
79
80		}).on("keyup", function (e)
81			{
82				if (!e.which === 9 && e.shiftKey || !e.which === 9) {
83					return ACC.cartitem.handleKeyEvent(this, e);
84				}
85			}
86		).on("keydown", function (e)
87			{
88				if (!e.which === 9 && e.shiftKey || !e.which === 9) {
89					return ACC.cartitem.handleKeyEvent(this, e);
90				}
91			}
92		);
93
94		$('#bse-item-quantity-reload').on("click", function (e)
95		{
96			ACC.cartitem.handleUpdateQuantity(this, e);
97		});
98	},
99
100	handleKeyEvent: function (elementRef, event)
101	{
102		if (event.which != 8 && event.which != 0 && (event.which < 48 || event.which > 57) && (event.which < 96 || event.which > 105))
103		{
104			event.preventDefault();
105		}
106
107		if (event.which == 13 && !ACC.cartitem.submitTriggered)
108		{
109			ACC.cartitem.submitTriggered = ACC.cartitem.handleUpdateQuantity(elementRef, event);
110			return false;
111		}
112		else
113		{
114			// Ignore all key events once submit was triggered
115			if (ACC.cartitem.submitTriggered)
116			{
117				return false;
118			}
119		}
120
121		return true;
122	},
123	addAjaxRequestCounter: function(){
124		ACC.cartitem.global_AjaxCartRequest_counter = ACC.cartitem.global_AjaxCartRequest_counter + 1;
125	},
126	decreaseAjaxRequestCounter: function(){
127		ACC.cartitem.global_AjaxCartRequest_counter = ACC.cartitem.global_AjaxCartRequest_counter - 1;
128	},
129	handleUpdateQuantity: function (elementRef, event)
130	{
131
132		var form = $(elementRef).closest('form');
133		var errMsg=$('.minqtycheck').text();
134		var productCode = form.find('input[name=productCode]').val();
135		var initialCartQuantity = form.find('input[name=initialQuantity]').val();
136		var newCartQuantity = form.find('input[name=quantity]').val();
137		var minCartQuantity = parseInt(form.find('input[name=minOrderQuantity]').val());
138		var ele=form.find("input[name=quantity]");
139		var productName = form.find('input[name=productName]').val();
140		var productPrice = form.find('input[name=productPrice]').val();
141		var productManufacturerData = form.find('input[name=productManufacturerData]').val();
142		var $qtySelector = $(document).find(elementRef).parents(".js-qty-selector");
143
144		var minusBtn = $qtySelector.find(".js-qty-selector-minus");
145
146		if(initialCartQuantity != newCartQuantity)
147		{
148
149			ACC.gtm.updateCart_gtm(productCode, productName, productPrice, productManufacturerData, initialCartQuantity, newCartQuantity);
150
151			if(parseInt(newCartQuantity)%minCartQuantity != 0){
152				var removeQuantity =parseInt(newCartQuantity)%minCartQuantity;
153				newCartQuantity =newCartQuantity-removeQuantity;
154				if(newCartQuantity<minCartQuantity)
155				{
156					newCartQuantity = minCartQuantity;
157				}
158				if(initialCartQuantity != newCartQuantity)
159				{
160					ACC.cartitem.callUpdateQuantity(form, newCartQuantity);
161				}
162				$(newCartQuantity).val(newCartQuantity);
163				$(ele).val(newCartQuantity);
164				$(ele).attr("title",errMsg +" "+ minCartQuantity +".");
165				$(ele).tooltip();
166				$(ele).trigger("mouseover");
167				$('.cart__buyingFor .loader-img').hide();
168				setTimeout(function(){$(ele).tooltip('destroy');},3000);
169			}else{
170				ACC.cartitem.callUpdateQuantity(form, newCartQuantity);
171			}
172			if (newCartQuantity == minCartQuantity) {
173				minusBtn.attr("disabled", "disabled")
174			}  else {
175				minusBtn.removeAttr("disabled")
176			}
177			return true;
178		}else{
179			$(ele).removeClass("alert-danger");
180			$('.cart__buyingFor .loader-img').hide();
181		}
182
183		return false;
184	},
185	callUpdateQuantity: function (form, newCartQuantity)
186	{
187		if(form.attr('submittedQuantity') == newCartQuantity)
188		{
189			return true;
190		}
191		ACC.cartitem.addAjaxRequestCounter();
192		$('.js-cart-totals').hide();
193		$('.js-cart-totals-recalculating').show();
194		form.find('input[name=initialQuantity]').val(newCartQuantity);
195
196		form.attr('submittedQuantity', newCartQuantity)
197		var formValues= form.serialize();
198		$.ajax({
199			type: 'post',
200			url: form.prop("action"),
201			data: formValues,
202			success: function (data) {
203				ACC.cartitem.decreaseAjaxRequestCounter();
204				if (ACC.cartitem.global_AjaxCartRequest_counter == 0) {
205
206					$('.js-cart-totals-recalculating').hide();
207
208					var cartSummary = $(data).find(".js-cart-summary");
209
210					if (cartSummary != undefined) {
211
212						$('.js-cart-totals').html($(data).find(".js-cart-summary"))
213						$('.js-cart-totals').show();
214
215					}
216				}
217				var newLine = $(data).find('.js-cart-new-item');
218				if (newLine != undefined) {
219					var entryNumber = $(data).find('.js-entryNumber').val();
220					var currentLine = $("#line" + entryNumber);
221
222					$(currentLine).find("#bse-cart-total-container").html($(newLine).find("#bse-cart-total-container").html());
223					$(currentLine).find(".bse-item-delivery").html($(newLine).find(".bse-item-delivery").html());
224				}
225			}
226		});
227	}
228};
229
230$(document).ready(function() {
231	$('.js-cartItemDetailBtn').click(function(event) {
232		event.stopPropagation();
233		var thisDetailGroup =  $(this).parent('.js-cartItemDetailGroup');
234		$(thisDetailGroup).toggleClass('open'); //only in its parent
235		if ( $(thisDetailGroup).hasClass('open') )  {
236			//close all if not this parent
237			$('.js-cartItemDetailGroup').not( thisDetailGroup ).removeClass('open');
238			//change aria
239			$('.js-cartItemDetailBtn').attr('aria-expanded', 'true');
240
241		} else {
242			$('.js-cartItemDetailBtn').attr('aria-expanded', 'false');
243		}
244		$(document).click( function(){
245			$(thisDetailGroup).removeClass('open');
246		}); // closes when clicking outside this div
247	});
248
249	//enable comment for this item only
250	$('.js-entry-comment-button').click(function(event) {
251		event.preventDefault();
252		var linkID = $(this).attr('href');
253		$( linkID ).toggleClass('in');
254		$( thisDetailGroup ).removeClass('open');
255	});
256
257	$('.item__list__cart .bse-cart-remove-wrapper .js-execute-entry-action-button').click(function () {
258		$('.cart__buyingFor .loader-img').show();
259	});
260
261    $('.js-addOrCreateWishListOnCartButton').click(function () {
262        ACC.myListAddTo.addToWishListOnCart($(this).data('product-code'), $(this).data('product-name'), $(this).data('product-price'), $(this).data('product-manufacturer'), $(this).data('quantity'));
263    });
264});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.