1var ACC = ACC || {}; // make sure ACC is available 2 3//if ($("#quickOrder").length > 0) { 4 ACC.quickorder = { 5 _autoload: [ 6 "bindClearQuickOrderRow", 7 "bindAddSkuInputRow", 8 "bindResetFormBtn", 9 "bindAddToCartClick" 10 ], 11 12 $quickOrderContainer: $('.js-quick-order-container'), 13 $quickOrderMinRows: Number($('.js-quick-order-container').data('quickOrderMinRows')), 14 $quickOrderMaxRows: Number($('.js-quick-order-container').data('quickOrderMaxRows')), 15 $productExistsInFormMsg: $('.js-quick-order-container').data('productExistsInFormMsg'), 16 $quickOrderLeavePageMsg: $('#quickOrder').data('gridConfirmMessage'), 17 $hiddenSkuInput: 'input.js-hidden-sku-field', 18 $addToCartBtn: $('#js-add-to-cart-quick-order-btn-top, #js-add-to-cart-quick-order-btn-bottom'), 19 $resetFormBtn: $('#js-reset-quick-order-form-btn-top, #js-reset-quick-order-form-btn-bottom'), 20 $productInfoContainer: '.js-product-info', 21 $skuInputField: '.js-sku-input-field', 22 $qtyInputField: '.js-quick-order-qty', 23 $unitSelectField: '.js-packagingUnits', 24 $jsLiContainer: 'li.js-li-container', 25 $removeQuickOrderRowBtn: '.js-remove-quick-order-row', 26 $skuValidationContainer: '.js-sku-validation-container', 27 $qtyValidationContainer: '.js-qty-validation-container', 28 $productItemTotal: '.js-quickorder_total_price', 29 $productItemPrice: '.js-quickorder_item_price', 30 $classHasError: 'has-error', 31 32 bindResetFormBtn: function () { 33 ACC.quickorder.$resetFormBtn.on("click", ACC.quickorder.clearForm); 34 }, 35 36 bindAddToCartClick: function () { 37 ACC.quickorder.$addToCartBtn.on("click", ACC.quickorder.addToCart); 38 }, 39 40 bindAddSkuInputRow: function () { 41 $(ACC.quickorder.$skuInputField).on("focusin", ACC.quickorder.addInputRow) 42 .on("focusout keyup paste", ACC.quickorder.handleSearchSkuInput); 43 }, 44 45 bindClearQuickOrderRow: function () { 46 $(ACC.quickorder.$removeQuickOrderRowBtn).on("mousedown", ACC.quickorder.clearQuickOrderRow); 47 }, 48 49 addToCart: function () { 50 $("#quickOrder .loader-img").show(); 51 $.ajax({ 52 url: ACC.quickorder.$quickOrderContainer.data('quickOrderAddToCartUrl'), 53 type: 'POST', 54 dataType: 'json', 55 contentType: 'application/json', 56 data: ACC.quickorder.getJSONDataForAddToCart(), 57 async: false, 58 success: function (response) { 59 ACC.quickorder.handleAddToCartSuccess(response); 60 }, 61 error: function (jqXHR, textStatus, errorThrown) { 62 // log the error to the console 63 $("#quickOrder .loader-img").hide(); 64 console.log("The following error occurred: " + textStatus, errorThrown); 65 } 66 }); 67 }, 68 69 handleAddToCartSuccess: function (response) { 70 if ($(response.quickOrderErrorData).length > 0) { 71 ACC.quickorder.disableBeforeUnloadEvent(); 72 } 73 var lookup = {}; 74 response.quickOrderErrorData.forEach(function (el) { 75 lookup[el.sku] = el.errorMsg; 76 }); 77 78 $(ACC.quickorder.$qtyInputField).each(function () { 79 var parentLi = ACC.quickorder.getCurrentParentLi(this); 80 var sku = ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuInputField).val(); 81 var errorMsg = lookup[sku]; 82 83 if (errorMsg) { 84 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuValidationContainer).text(errorMsg); 85 } 86 else { 87 ACC.quickorder.findElement(parentLi, ACC.quickorder.$removeQuickOrderRowBtn).trigger("mousedown"); 88 } 89 }); 90 91 ACC.quickorder.handleBeforeUnloadEvent(); 92 93 if(window.location.href && window.location.href.substring(window.location.href.lastIndexOf('/') + 1) === "quickOrder") 94 window.location.href = "/cart"; 95 else 96 ACC.product.displayAddToCartPopup(response); 97 }, 98 99 getJSONDataForAddToCart: function () { 100 var skusAsJSON = []; 101 $(ACC.quickorder.$qtyInputField).each(function () { 102 var qty = Number($(this).val()); 103 if (qty > 0) { 104 var sku = jQuery.trim(ACC.quickorder.findElementInCurrentParentLi(this, ACC.quickorder.$skuInputField).val()); 105 var ttlQty = Number(ACC.quickorder.findElementInCurrentParentLi(this, ACC.quickorder.$unitSelectField).val()) * qty; 106 skusAsJSON.push({"product": {"code": sku}, "quantity": ttlQty}); 107 } 108 }); 109 return JSON.stringify({"cartEntries": skusAsJSON}); 110 }, 111 112 handleSearchSkuInput: function (event) { 113 if (event.type == "focusout" || event.keyCode == $.ui.keyCode.TAB) { 114 ACC.quickorder.handleGetProduct(event); 115 ACC.quickorder.handleBeforeUnloadEvent(); 116 } 117 else 118 { 119 $(event.target).autocomplete({ 120 delay: 100, 121 minLength: 3, 122 create: function (event, ui) { 123 124 }, 125 source: function (request, response) { 126 $.getJSON({url: "/search/quickordersearch/"}, {term: request.term.toLowerCase()}, function (data) { 127 response(data); 128 }); 129 }, 130 select: function (event, ui) { 131 event.preventDefault(); 132 $(event.target).val(ui.item.code); 133 $('#selection-ajax').html('You selected: ' 134 + ui.item.code); 135 ACC.quickorder.handleGetProduct(event); 136 ACC.quickorder.handleBeforeUnloadEvent(); 137 }, 138 focus: function (event, ui) { 139 event.preventDefault(); 140 $(event.target).val(ui.item.code); 141 } 142 }).on('focus', function () {
143 $(this).keydown(); 144 }) 145 .on('keyup', function (event) { 146 if ($(event.target).val().length == 0) $('#selection-ajax').html(''); 147 }).data('ui-autocomplete')._renderItem = function (ul, item) { 148 var manufacturerPartNumber = ""; 149 var customerPartNumber = ""; 150 if (ACC && ACC.sanitizer && ACC.sanitizer.sanitize(item.manufacturerPartNumber) != '') { 151 manufacturerPartNumber = ',' + ACC && ACC.sanitizer && ACC.sanitizer.sanitize(item.manufacturerPartNumber); 152 } 153 if (ACC && ACC.sanitizer && ACC.sanitizer.sanitize(item.customerPartNumber) != '') { 154 customerPartNumber = ',' + ACC && ACC.sanitizer && ACC.sanitizer.sanitize(item.customerPartNumber); 155 } 156 var imageUrl = (item.images && item.images.length > 0) ? item.images[0].url : "/_ui/responsive/theme-lambda/images/null_product_image_96x96.jpg"; 157 158 var $div = $("<div class='quick-order-autocomplete'></div>") 159 .append($("<div>").addClass("thumb").append($("<img>").attr("src", imageUrl))) 160 .append($("<div>").addClass("name") 161 .append($("<div>").addClass("product-name").html(ACC && ACC.sanitizer && ACC.sanitizer.sanitize(item.name))) 162 .append($("<div>").addClass("number") 163 .html((manufacturerPartNumber && ("Mfg #:" + manufacturerPartNumber)) + (ACC && ACC.sanitizer && ACC.sanitizer.sanitize(item.code) && '| BOR #:') + '<span class="product_code">' + (ACC && ACC.sanitizer && ACC.sanitizer.sanitize(item.code)) + '</span>' + (customerPartNumber && ('| Customer #:' + customerPartNumber)))) 164 ); 165 ul.addClass('ui-quickOrder-autocomplete'); 166 return $("<li></li>").append($div).appendTo(ul); 167 }; 168 } 169 }, 170 171 handleFocusOutOnQtyInput: function (event) { 172 var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0; 173 if (key == 13) { 174 event.preventDefault(); 175 var parentLi = ACC.quickorder.getCurrentParentLi(event.target); 176 parentLi.next().find(ACC.quickorder.$skuInputField).focus(); 177 $(event.target).focusout(); 178 } 179 if (event.type == "focusout") { 180 ACC.quickorder.validateAndUpdateItemTotal(event); 181 ACC.quickorder.enableDisableAddToCartBtn(); 182 } 183 }, 184 185 handleChangeUnit: function (event) { 186 var sapPriceWsDTO = {}; 187 var priceWs = [ ]; 188 var parentLi = ACC.quickorder.getCurrentParentLi(event.target) 189 var productCode = ACC.quickorder.findElement(parentLi,'#productCode').val(); 190 var optionAttr = ACC.quickorder.findElement(parentLi,'option:selected').attr('uom'); 191 var isDefaultUnit = ACC.quickorder.findElement(parentLi,'option:selected').hasClass('defaultuom'); 192 var minOrderQuantity = isDefaultUnit ? jQuery.trim(ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).data('minDefaultQty')) : 1; 193 194 sapPriceWsDTO.productCode = productCode; 195 sapPriceWsDTO.minOrderQuantity = 1; 196 sapPriceWsDTO.unit = optionAttr; 197 priceWs.push(sapPriceWsDTO); 198 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuInputField).addClass('loading'); 199 $.ajax({ 200 type: 'POST', 201 url: ACC.config.encodedContextPath + '/c/priceStockWs', 202 contentType: 'application/json', 203 data:JSON.stringify(priceWs), 204 success: function (response) { 205 ACC.quickorder.productCodeResponse(response, parentLi, minOrderQuantity); 206 }, 207 error: function(){ 208 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuInputField).removeClass('loading'); 209 } 210 }); 211 },
212 productCodeResponse: function (response, parentLi, minOrderQuantity) { 213 if(response.length>0){ 214 var prdPrice = response[0].price; 215 var stockLevel = response[0].stock.stockLevel; 216 var stockLevelStatus = response[0].stock.stockLevelStatus.code; 217 //Price 218 ACC.quickorder.findElement(parentLi, ACC.quickorder.$productItemPrice).html(prdPrice.formattedValue); 219 ACC.quickorder.findElement(parentLi, '.js-product-price').data('productPrice', prdPrice.value); 220 ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).val(minOrderQuantity); 221 var qtyValue = parseFloat(ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).val()); 222 var itemPrice = parseFloat(ACC.quickorder.findElement(parentLi, '.js-product-price').data('productPrice')); 223 ACC.quickorder.findElement(parentLi, ACC.quickorder.$productItemTotal) 224 .html(ACC.productorderform.formatTotalsCurrency(itemPrice * qtyValue)); 225 //Stock 226 ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).data('maxProductQty', stockLevel); 227 ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).data('minProductQty', minOrderQuantity); 228 ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).data('stockLevelStatus', stockLevelStatus); 229 230 ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).removeClass(ACC.quickorder.$classHasError); 231 ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyValidationContainer).text(''); 232 233 if (stockLevel > 0) { 234 ACC.quickorder.findElement(parentLi, '.stock-available-number').removeClass('not-available'); 235 ACC.quickorder.findElement(parentLi, '.stock').removeClass('not-available'); 236 ACC.quickorder.findElement(parentLi,'.stock img').attr("src", ACC.config.commonResourcePath + "/images/available.svg"); 237 ACC.quickorder.findElement(parentLi, '.stock-available-number').html(stockLevel + " In Stock"); 238 } 239 else{ 240 ACC.quickorder.findElement(parentLi, '.stock-available-number').addClass('not-available'); 241 ACC.quickorder.findElement(parentLi, '.stock').addClass('not-available'); 242 ACC.quickorder.findElement(parentLi,'.stock img').attr("src", ACC.config.commonResourcePath + "/images/not-available.svg"); 243 ACC.quickorder.findElement(parentLi, '.stock-available-number').html("Not Available"); 244 } 245 } 246 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuInputField).removeClass('loading'); 247 }, 248 249 clearForm: function () { 250 window.location.reload(); 251 }, 252 253 validateAndUpdateItemTotal: function (event) { 254 var parentLi = ACC.quickorder.getCurrentParentLi(event.target); 255 var qtyValue = jQuery.trim(ACC.productorderform.filterSkuEntry($(event.target).val())); 256 var minQty = jQuery.trim(ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).data('minProductQty')); 257 258 //Min Quantity Restriction 259 if (isNaN(qtyValue)) { 260 qtyValue = minQty; 261 $(event.target).removeClass(ACC.quickorder.$classHasError); 262 ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyValidationContainer).text(''); 263 $(event.target).val(minQty); 264 } 265 else if(qtyValue % minQty != 0){ 266 var removeQuantity =parseInt(qtyValue)%minQty; 267 qtyValue = (qtyValue - removeQuantity) > minQty ? qtyValue - removeQuantity : minQty; 268 $(event.target).val(qtyValue); 269 270 var qtyValidationContainer = ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyValidationContainer); 271 var element=$(event.target); 272 element.attr("title",qtyValidationContainer.data('minProductQtyMsg') + " " + minQty); 273 element.tooltip(); 274 element.trigger("mouseover"); 275 setTimeout(function(){element.tooltip('destroy');},3000); 276 } 277 else{ 278 $(event.target).val(qtyValue); 279 $(event.target).removeClass(ACC.quickorder.$classHasError); 280 ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyValidationContainer).text(''); 281 } 282 283 // Stock Restriction Code 284 // else { 285 // qtyValue = Number(qtyValue); 286 // $(event.target).val(qtyValue); 287 // var maxQty = jQuery.trim(ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).data('maxProductQty')); 288 // var stockLevelStatus = jQuery.trim(ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField).data('stockLevelStatus')); 289 // maxQty = ($.isEmptyObject(maxQty) && stockLevelStatus == "inStock") ? "FORCE_IN_STOCK" : Number(maxQty); 290 // if (!isNaN(maxQty) && qtyValue > maxQty) { 291 // $(event.target).addClass(ACC.quickorder.$classHasError); 292 // var qtyValidationContainer = ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyValidationContainer); 293 // qtyValidationContainer.text(qtyValidationContainer.data('maxProductQtyMsg')); 294 // qtyValue = maxQty; 295 // $(event.target).val(maxQty); 296 // } 297 // else { 298 // $(event.target).removeClass(ACC.quickorder.$classHasError); 299 // ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyValidationContainer).text(''); 300 // } 301 // } 302 303 if (qtyValue > 0) { 304 var itemPrice = parseFloat(ACC.quickorder.findElement(parentLi, '.js-product-price').data('productPrice')); 305 ACC.quickorder.findElement(parentLi, ACC.quickorder.$productItemTotal) 306 .html(ACC.productorderform.formatTotalsCurrency(itemPrice * qtyValue)); 307 } 308 else { 309 ACC.quickorder.findElement(parentLi, ACC.quickorder.$productItemTotal).text(''); 310 } 311 }, 312 313 clearQuickOrderRow: function () { 314 var quickOrderMinRows = ACC.quickorder.$quickOrderMinRows; 315 var parentLi = ACC.quickorder.getCurrentParentLi(this); 316 if ($('.js-ul-container li.js-li-container').length > quickOrderMinRows) { 317 parentLi.remove(); 318 ACC.quickorder.bindClearQuickOrderRow(); 319 } 320 else { 321 ACC.quickorder.findElement(parentLi, ACC.quickorder.$productInfoContainer).remove(); 322 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuValidationContainer).text(''); 323 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuInputField).val(''); 324 ACC.quickorder.findElement(parentLi, ACC.quickorder.$hiddenSkuInput).val(''); 325 } 326 ACC.quickorder.enableDisableAddToCartBtn(); 327 ACC.quickorder.handleBeforeUnloadEvent(); 328 }, 329 330 addInputRow: function (event) { 331 332 if ($('.js-quick-order-container li.js-li-container:last-child').find(ACC.quickorder.$skuInputField).is($(event.target)) && 333 $(ACC.quickorder.$jsLiContainer).length < ACC.quickorder.$quickOrderMaxRows) { 334 var liClone = $('.js-quick-order-container li.js-li-container:first').clone(); 335 ACC.quickorder.findElement(liClone, ACC.quickorder.$productInfoContainer).remove(); 336 ACC.quickorder.findElement(liClone, ACC.quickorder.$skuValidationContainer).text(''); 337 ACC.quickorder.findElement(liClone, ACC.quickorder.$hiddenSkuInput).val(''); 338 var currentSkuInputField = ACC.quickorder.findElement(liClone, ACC.quickorder.$skuInputField); 339 currentSkuInputField.val(''); 340 currentSkuInputField.focusin(ACC.quickorder.addInputRow).focusout(ACC.quickorder.handleSearchSkuInput).keyup(ACC.quickorder.handleSearchSkuInput) 341 .bind("paste", ACC.quickorder.handleSearchSkuInput); 342 ACC.quickorder.findElement(liClone, ACC.quickorder.$removeQuickOrderRowBtn).click(ACC.quickorder.clearQuickOrderRow); 343 $('.js-ul-container').append(liClone); 344 } 345 }, 346 347 handleGetProduct: function (event) { 348 var parentLi = ACC.quickorder.getCurrentParentLi(event.target);
349 var productCode = $.trim(event.target.value).toUpperCase(); 350 $(event.target).val(productCode); 351 if (!ACC.quickorder.isCurrentSkuSameAsPrevious(parentLi, productCode)) { 352 if (productCode.length > 0) { 353 $(event.target).addClass('loading'); 354 ACC.quickorder.findElement(parentLi, ACC.quickorder.$productInfoContainer).remove(); 355 356 if (ACC.quickorder.isDuplicateSku(event.target, productCode)) { 357 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuValidationContainer).text(ACC.quickorder.$productExistsInFormMsg); 358 $(event.target).removeClass('loading'); 359 } 360 else { 361 ACC.quickorder.getAndDisplayProductInfo(event, parentLi, productCode); 362 } 363 ACC.quickorder.findElement(parentLi, ACC.quickorder.$hiddenSkuInput).val(productCode); 364 } 365 else { 366 $(event.target).removeClass(ACC.quickorder.$classHasError); 367 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuValidationContainer).text(''); 368 ACC.quickorder.findElement(parentLi, ACC.quickorder.$productInfoContainer).remove(); 369 ACC.quickorder.findElement(parentLi, ACC.quickorder.$hiddenSkuInput).val(""); 370 } 371 } 372 }, 373 374 isCurrentSkuSameAsPrevious: function (parentLi, productCode) { 375 return ACC.quickorder.findElement(parentLi, ACC.quickorder.$hiddenSkuInput).val() == productCode; 376 }, 377 378 isDuplicateSku: function (currentInput, productCode) { 379 var exists = false; 380 $(ACC.quickorder.$skuInputField).each(function () { 381 if ($(this).val() == productCode && !$(this).is($(currentInput))) { 382 exists = true; 383 return false 384 } 385 }); 386 return exists; 387 }, 388 389 getAndDisplayProductInfo: function (event, parentLi, productCode) { 390 var url = ACC.config.encodedContextPath + '/quickOrder/productInfo?code=' + encodeURIComponent(productCode); 391 $.getJSON(url, function (result) { 392 if (result.errorMsg != null && result.errorMsg.length > 0) { 393 $(event.target).addClass(ACC.quickorder.$classHasError); 394 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuValidationContainer).text(result.errorMsg); 395 $(event.target).removeClass('loading'); 396 } 397 else { 398 if (ACC.quickorder.isDuplicateSku(event.target, result.productData.code)) { 399 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuValidationContainer).text(ACC.quickorder.$productExistsInFormMsg); 400 $(event.target).removeClass('loading'); 401 } 402 else { 403 $(event.target).removeClass(ACC.quickorder.$classHasError); 404 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuValidationContainer).text(''); 405 ACC.quickorder.findElement(parentLi, ACC.quickorder.$skuInputField).val(result.productData.code); 406 $('#quickOrderRowTemplate').tmpl(result.productData).insertAfter(ACC.quickorder.findElement(parentLi, '.js-sku-container')); 407 var qtyInputField = ACC.quickorder.findElement(parentLi, ACC.quickorder.$qtyInputField); 408 qtyInputField.focusout(ACC.quickorder.handleFocusOutOnQtyInput).keydown(ACC.quickorder.handleFocusOutOnQtyInput); 409 var unitSelectField = ACC.quickorder.findElement(parentLi, ACC.quickorder.$unitSelectField); 410 unitSelectField.change(ACC.quickorder.handleChangeUnit); 411 var stockLevelStatus = result.productData.stock.stockLevelStatus.code; 412 if (stockLevelStatus == "outOfStock") { 413 qtyInputField.val(0); 414 qtyInputField.prop('disabled', true); 415 } else { 416 qtyInputField.focus().select(); 417 } 418 $(event.target).removeClass('loading'); 419 ACC.quickorder.enableDisableAddToCartBtn(); 420 } 421 } 422 }); 423 }, 424 425 handleBeforeUnloadEvent: function () { 426 if (ACC.quickorder.isAnySkuPresent()) { 427 ACC.quickorder.disableBeforeUnloadEvent(); 428 ACC.quickorder.enableBeforeUnloadEvent(); 429 } 430 else { 431 ACC.quickorder.disableBeforeUnloadEvent(); 432 } 433 }, 434 435 disableBeforeUnloadEvent: function () { 436 $(window).off('beforeunload', ACC.quickorder.beforeUnloadHandler); 437 }, 438 439 enableBeforeUnloadEvent: function () { 440 $(window).on('beforeunload', ACC.quickorder.beforeUnloadHandler); 441 }, 442 443 beforeUnloadHandler: function () { 444 return ACC.quickorder.$quickOrderLeavePageMsg; 445 }, 446 447 enableDisableAddToCartBtn: function () { 448 var addToCartButtonEnabled = ACC.quickorder.shouldAddToCartBeEnabled(); 449 450 // if there are no items to add, disable addToCartBtn, otherwise, enable it 451 if (addToCartButtonEnabled) { 452 ACC.quickorder.$addToCartBtn.removeAttr('disabled'); 453 } else { 454 ACC.quickorder.$addToCartBtn.attr('disabled', 'disabled'); 455 } 456 }, 457 458 shouldAddToCartBeEnabled: function () { 459 var sum = 0; 460 var enable = false;
461 $(ACC.quickorder.$qtyInputField).each(function () { 462 var str = this.value.trim(); // .trim() may need a shim 463 if (str) { // don't send blank values to `parseInt` 464 sum = parseInt(str, 10); 465 } 466 if (sum >= 1) { 467 enable = true; 468 } 469 else{ 470 enable = false; 471 return false; 472 } 473 }); 474 return enable; 475 }, 476 477 isAnySkuPresent: function () { 478 var present = false; 479 $(ACC.quickorder.$skuInputField).each(function () { 480 var str = jQuery.trim(this.value); // .trim() may need a shim 481 if (str) { 482 present = true; 483 return false; 484 } 485 }); 486 return present; 487 }, 488 489 getCurrentParentLi: function (currentElement) { 490 return $(currentElement).closest(ACC.quickorder.$jsLiContainer); 491 }, 492 493 findElement: function (currentElement, toFind) { 494 return $(currentElement).find(toFind); 495 }, 496 497 findElementInCurrentParentLi: function (currentElement, toFind) { 498 return $(currentElement).closest(ACC.quickorder.$jsLiContainer).find(toFind); 499 } 500 }; 501//}
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.