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.