1//var _itemAddedAlert = null; 2$(function () { 3 //relateVariations($('#product-sku'), $('#variation-collarsize'), $('#variation-colour'), $('#add-to-basket')); 4 //enableAddToCartWhenSelected($('#add-to-basket'), $('.variant')); 5 wireupAddToCartButton($('#add-to-basket'), $('#catalog-id'), $('#product-sku'), $('#quantity-to-add')); 6 7 // Wire up related products 8 $('.add-to-basket').each(function () { 9 var quantity = $(this).data("moq"); 10 wireupRelatedAddToCartButton(this, quantity); 11 }); 12 13 wireupRatings($('.rating')); 14 15 //$("#quantity-to-add").change(function () { 16 // var valid = $("#quantity-to-add").valid() 17 // console.log(valid) 18 //}); 19 $(":input#quantity-to-add").bind('keyup mouseup', function () { 20 if (!$(this).valid()) { 21 } 22 23 }); 24 25}); 26//function relateVariations(sku) { 27// //updateVariationOptions(sku, size, colour, true); 28// //size.change(function () { 29// // Reset the colour options 30// //$('option:first', colour).attr('selected', true); 31// //updateVariationOptions(sku, size, colour, true); 32// }); 33// colour.change(function () { 34// updateVariationOptions(sku, size, colour, true); 35// }); 36//}; 37function enableAddToCartWhenSelected(addToCartButton, variantInputs) { 38 if (variantInputs.length == 0) 39 return; 40 41 addToCartButton.removeClass('btn-success').addClass('disabled'); 42 43 variantInputs.change(function () { 44 updateAddToCartButton(addToCartButton, variantInputs); 45 }); 46}; 47function updateAddToCartButton(addToCartButton, variantInputs) { 48 if (variantInputs.length == 0) 49 return; 50 51 var empty = variantInputs.filter(function () { return this.value === ""; }); 52 53 // If the user has made a valid selection enable the add to cart button 54 if (empty.length == 0) { 55 addToCartButton.removeClass('disabled').addClass('btn-success').removeAttr('disabled'); 56 } else { 57 addToCartButton.removeClass('btn-success').addClass('disabled').attr('disabled', 'disabled'); 58 } 59}; 60function wireupRatings(radios) { 61 $('#review-form').hide(); 62 $('label', radios).each(function () { 63 var t = $(this); 64 t.addClass('off'); 65 $('input:radio', t).hide(); 66 setStarHoverOutState($('i', t)); 67 t.hover(function () { 68 var parent = $(this); 69 var labels = parent.prevAll('label'); 70 setStarHoverState($('i', labels)); 71 setStarHoverState($('i', parent)); 72 }, function () { 73 var parent = $(this); 74 var labels = parent.prevAll('label'); 75 if (!parent.hasClass('selected')) { 76 setStarHoverOutState($('i', labels)); 77 setStarHoverOutState($('i', parent)); 78 } 79 }); 80 t.click(function () { 81 var parent = $(this); 82 parent.addClass('selected'); 83 $('#review-form').slideDown(); 84 }); 85 }); 86}; 87function setStarHoverState(label) { 88 label.addClass('icon-star').removeClass('icon-star-empty'); 89} 90function setStarHoverOutState(label) { 91 label.addClass('icon-star-empty').removeClass('icon-star'); 92} 93 94function wireupAddToCartButton(addToCartButton, catalogIdInput, skuInput, quantityInput) { 95 96 addToCartButton.click(function (e) { 97 if ($(":input#quantity-to-add").valid()) { 98 $.uCommerce.addToBasket( 99 { 100 catalogId: catalogIdInput.val(), 101 sku: skuInput.val(), 102 quantity: quantityInput.val() 103 }, 104 function () { 105 $.uCommerce.getBasket({}, function (data) { 106 $('#miniBasket .hoverContent').slideDown('slow').delay(1000).slideUp('slow'); 107 $('#MiniBasketOrderLineContent').trigger('UpdateMiniBasketContent', data); 108 $('#miniBasket .itemCount').css("display", "block"); 109 }); 110 } 111 ); 112 } 113 }); 114}; 115 116// Todo: This code is a duplicate of uCommerce.store.catalogpage.wireupAddToCartButton. Code should be consolidated. 117function wireupRelatedAddToCartButton(addToBasketContainer, quantity) { 118 var addToBasketButton = $('.add-to-basket-btn', addToBasketContainer); 119 120 var catalogIdInput = $('.catalog-id', addToBasketContainer); 121 var skuInput = $('.product-sku', addToBasketContainer); 122 123 addToBasketButton.click(function (e) { 124 $.uCommerce.addToBasket( 125 { 126 catalogId: catalogIdInput.val(), 127 sku: skuInput.val(), 128 quantity: quantity 129 }, 130 function () { 131 $.uCommerce.getBasket({}, function (data) { 132 $('#miniBasket .hoverContent').slideDown('slow').delay(1000).slideUp('slow'); 133 $('#MiniBasketOrderLineContent').trigger('UpdateMiniBasketContent', data); 134 $('#miniBasket .itemCount').css("display", "block"); 135 }); 136 } 137 ); 138 });
139}; 140 141function getObjectsByKey(obj, key, val) { 142 var objects = []; 143 for (var i in obj) { 144 if (!obj.hasOwnProperty(i)) continue; 145 if (typeof obj[i] == 'object') { 146 objects = objects.concat(getObjectsByKey(obj[i], key, val)); 147 } else if (i == key && obj[key] == val) { 148 objects.push(obj); 149 } 150 } 151 return objects; 152}
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.