PageSourceSearch

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

js borderstates.com collected 2026-10-03 21:43:56 UTC 11,328 bytes, 295 lines download raw bytes

1ACC.savedcarts = {
2
3    _autoload: [
4        ["bindRestoreSavedCartClick", $(".js-restore-saved-cart").length != 0],
5        ["bindDeleteSavedCartLink", $('.js-delete-saved-cart').length != 0],
6        ["bindDeleteConfirmLink", $('.js-savedcart_delete_confirm').length != 0],
7        ["bindSaveCartForm", $(".js-save-cart-link").length != 0 || $(".js-update-saved-cart").length != 0],
8        ["bindUpdateUploadingSavedCarts", $(".js-uploading-saved-carts-update").length != 0]
9    ],
10    
11    $savedCartRestoreBtn: {},
12    $currentCartName: {},
13
14    bindRestoreSavedCartClick: function () {
15        $(".js-restore-saved-cart").click(function (event) {
16                    
17            event.preventDefault();
18            var popupTitle = $(this).data('restore-popup-title');
19            var cartId = $(this).data('savedcart-id');
20            var url = ACC.config.encodedContextPath +'/my-account/saved-carts/'+encodeURIComponent(cartId)+'/restore';
21
22            var popupTitleHtml = ACC.common.encodeHtml(popupTitle);
23            $.get(url, undefined, undefined, 'html').done(function (data) {
24                ACC.colorbox.open(popupTitleHtml, {
25                    html: data,
26                    width: 500,
27                    onComplete: function () {
28                        ACC.common.refreshScreenReaderBuffer();
29                        ACC.savedcarts.bindRestoreModalHandlers();
30                        ACC.savedcarts.bindPostRestoreSavedCartLink();
31                    },
32                    onClosed: function () {
33                        ACC.common.refreshScreenReaderBuffer();
34                    }
35                });
36            });
37        });
38    },
39
40    bindRestoreModalHandlers: function () {
41
42        ACC.savedcarts.$savedCartRestoreBtn= $('.js-save-cart-restore-btn');
43        ACC.savedcarts.$currentCartName= $('.js-current-cart-name');
44
45        $(".js-prevent-save-active-cart").on('change', function (event) {
46            if($(this).prop('checked') === true){
47                ACC.savedcarts.$currentCartName.attr('disabled', 'disabled');
48                ACC.savedcarts.$savedCartRestoreBtn.removeAttr('disabled');
49            } else {
50                ACC.savedcarts.$currentCartName.removeAttr('disabled');
51                var inputVal = ACC.savedcarts.$currentCartName.val();
52                if (inputVal == "" && inputVal.length === 0) {
53                    ACC.savedcarts.$savedCartRestoreBtn.attr('disabled', 'disabled');
54                }
55            }
56        });
57
58        ACC.savedcarts.$currentCartName.on('focus', function (event) {
59            $('.js-restore-current-cart-form').removeClass('has-error');
60            $('.js-restore-error-container').html('');
61        });
62
63        ACC.savedcarts.$currentCartName.on('blur', function (event) {
64            if (this.value == "" && this.value.length === 0) {
65                ACC.savedcarts.$savedCartRestoreBtn.attr('disabled', 'disabled');
66            } else {
67                ACC.savedcarts.$savedCartRestoreBtn.removeAttr('disabled');
68            }
69        });
70    },
71
72    bindPostRestoreSavedCartLink: function () {
73        var keepRestoredCart = true;
74        var preventSaveActiveCart = false;
75
76        $(document).on("click", '.js-keep-restored-cart', function (event) {
77            keepRestoredCart = $(this).prop('checked');
78        });
79
80        $(document).on("click", '.js-prevent-save-active-cart', function (event) {
81            preventSaveActiveCart = $(this).prop('checked');
82        });
83
84        $(document).on("click", '.js-save-cart-restore-btn', function (event) {
85        	
86            event.preventDefault();
87            var cartName = $('#activeCartName').val();
88            var url = $(this).data('restore-url');
89            var postData = {preventSaveActiveCart: preventSaveActiveCart, keepRestoredCart: keepRestoredCart, cartName: cartName};
90            $.post(url, postData, undefined, 'html').done(function (result, data, status) {
91                result = ACC.sanitizer.sanitize(result);
92                if (result == "200") {
93                    var url = ACC.config.encodedContextPath + "/cart"
94                    window.location.replace(url);
95                } else {
96                    var errorMsg = status.responseText.slice(1, -1);
97                    $('.js-restore-current-cart-form').addClass('has-error');
98                    $('.js-restore-error-container').html(errorMsg);
99                    $('.js-savedcart_restore_confirm_modal').colorbox.resize();
100                }
101            });
102        });
103
104        $(document).on("click", '.js-cancel-restore-btn', function (event) {
105            ACC.colorbox.close();
106        });
107    },
108
109    bindDeleteSavedCartLink: function () {
110        $(document).on("click", '.js-delete-saved-cart', function (event) {
111            event.preventDefault();
112            var cartId = $(this).data('savedcart-id');
113            var popupTitle = $(this).data('delete-popup-title');
114            var popupTitleHtml = ACC.common.encodeHtml(popupTitle);
115
116            ACC.colorbox.open(popupTitleHtml, {
117                inline: true,
118                className: "js-savedcart_delete_confirm_modal",
119                href: "#popup_confirm_savedcart_delete_" + cartId,
120                width: '500px',
121                onComplete: function () {
122                    $(this).colorbox.resize();
123                }
124            });
125        });
126    },
127
128    bindDeleteConfirmLink: function () {
129        $(document).on("click", '.js-savedcart_delete_confirm', function (event) {
130            event.preventDefault();
131            var cartId = $(this).data('savedcart-id');
132            var url = ACC.config.encodedContextPath + '/my-account/saved-carts/' + encodeURIComponent(cartId) + '/delete';
133            $.ajax({
134                url: url,
135                type: 'DELETE',
136                success: function (response) {
137                    ACC.colorbox.close();
138                    var url = ACC.config.encodedContextPath + "/my-account/saved-carts"
139                    window.location.replace(url);
140                }
141            });
142        });
143
144        $(document).on("click", '.js-savedcart_delete_confirm_cancel', function (event) {
145            ACC.colorbox.close();
146        });
147    },
148    
149    bindSaveCartForm: function ()
150	{
151    	ACC.savedcarts.charactersLeftInit();
152		var form = $('#saveCartForm');
153		var saveCart = false;
154        var showSaveCartFormCallback = function () {
155        var title = $('#saveCart').data("saveCartTitle");
156        var titleHtml = ACC.common.encodeHtml(title);  
157            ACC.colorbox.open(titleHtml, {
158                href: "#saveCart",
159                inline: true,
160                width: "620px",
161                onOpen: function () {
162                    if ($('#saveCartName').val()) {
163                        ACC.savedcarts.disableSaveCartButton(false);
164                    }
165                },
166                onComplete: function () {
167                    $(this).colorbox.resize();
168                    saveCart = false;
169                },
170                onClosed: function () {
171
172                    if (saveCart) {
173                        form.submit();
174                    }
175                    document.getElementById("saveCartForm").reset();
176                    ACC.savedcarts.disableSaveCartButton(true);
177                    ACC.savedcarts.charactersLeftInit();
178                }
179            });
180        };
181
182        $(document).on("click",".js-save-cart-link, .js-update-saved-cart",function(e){
183            e.preventDefault();
184            ACC.common.checkAuthenticationStatusBeforeAction(showSaveCartFormCallback);
185		});
186		
187		$(document).on("click",'#saveCart #cancelSaveCartButton', function (e) {
188			e.preventDefault();
189			$.colorbox.close();
190		});
191		
192		$('#saveCartName').keyup(function() {		
193			// enable the save cart button
194	 		$('#saveCart #saveCartButton').prop('disabled', this.value.trim() == "" ? true : false);  	
195			// limit the text length 
196            var maxchars = 255;
197			var value=$('#localized_val').attr('value');
198			var tlength = $(this).val().length;
199			remain = maxchars - parseInt(tlength);
200        	$('#remain').text(value+' : '+remain);
201		});
202		
203         $('#saveCartDescription').keyup(function() {
204			var maxchars = 255;
205			var value=$('#localized_val').attr('value');
206			var tlength = $(this).val().length;
207			remain = maxchars - parseInt(tlength);
208        	$('#remainTextArea').text(value+' : '+remain);
209		});
210		
211		$(document).on("click",'#saveCart #saveCartButton', function (e) {
212			e.preventDefault();
213			saveCart = true;
214			$.colorbox.close();
215		});
216	},
217	
218	charactersLeftInit: function() {
219	    $('#remain').text($('#localized_val').attr('value')+' : 255');
220     	$('#remainTextArea').text($('#localized_val').attr('value')+' : 255');
221	},
222	
223	disableSaveCartButton: function(value) {
224		$('#saveCart #saveCartButton').prop('disabled', value);
225	},
226	
227
228	bindUpdateUploadingSavedCarts : function() {
229		var cartIdRowMapping = $(".js-uploading-saved-carts-update").data("idRowMapping");
230		var refresh = $(".js-uploading-saved-carts-update").data("refreshCart");
231		if (cartIdRowMapping && refresh) {
232			var interval = $(".js-uploading-saved-carts-update").data("refreshInterval");
233			var arrCartIdAndRow = cartIdRowMapping.split(',');
234			var mapCartRow = new Object();
235			var cartCodes = [];
236			for (i = 0; i < arrCartIdAndRow.length; i++) {
237				var arrValue = arrCartIdAndRow[i].split(":");
238				if (arrValue != "") {
239					mapCartRow[arrValue[0]] = arrValue[1];
240					cartCodes.push(arrValue[0]);
241				}
242			}
243
244			if (cartCodes.length > 0) {
245				setTimeout(function() {ACC.savedcarts.refreshWorker(cartCodes, mapCartRow, interval)}, interval);
246			}	
247		}
248	},
249	
250
251	refreshWorker : function(cartCodes, mapCartRow, interval) {
252		$.ajax({
253			dataType : "json",
254			url : ACC.config.encodedContextPath	+ '/my-account/saved-carts/uploadingCarts',
255			data : {
256				cartCodes : cartCodes
257			},
258			type : "GET",
259			traditional : true,
260			success : function(data) {
261				if (data != undefined) {
262					var hidden = "hidden";
263					var rowId = "#row-";
264					for (i = 0; i < data.length; i++) {
265						var cart = data[i];
266
267						var index = $.inArray(cart.code, cartCodes);
268						if (index > -1) {
269							cartCodes.splice(index, 1)
270						}	
271						var rowIdIndex = mapCartRow[cart.code]; 
272						if (rowIdIndex != undefined) {
273							var rowSelector = rowId + rowIdIndex;
274							$(document).find(rowSelector + " .js-saved-cart-name").removeClass("not-active");
275							$(document).find(rowSelector + " .js-saved-cart-date").removeClass("hidden");
276							$(document).find(rowSelector + " .js-file-importing").remove();
277							$(document).find(rowSelector + " .js-saved-cart-description").text(cart.description);
278							var numberOfItems = cart.entries.length;
279							$(document).find(rowSelector + " .js-saved-cart-number-of-items").text(numberOfItems);
280							$(document).find(rowSelector + " .js-saved-cart-total").text(cart.totalPrice.formattedValue);
281							if (numberOfItems > 0) {
282								$(document).find(rowSelector + " .js-restore-saved-cart").removeClass(hidden);
283							}
284							$(document).find(rowSelector + " .js-delete-saved-cart").removeClass(hidden);
285						}
286					}
287				};
288				
289				if (cartCodes.length > 0) {
290					setTimeout(function() {ACC.savedcarts.refreshWorker(cartCodes, mapCartRow, interval)}, interval);
291				}
292			}
293		})
294	}
295}

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.