';strHtml += '
';strHtml += '';jQuery(this.container).find(".js-item-add-to-cart").append(jQuery(strHtml));jQuery(this.container).find(".add_to_cart_form").on("submit", function(){return onSubmit(jQuery(this));});} catch(ex){ecommerce.logException(ex);}}//for giftcardsAddToCartListView.prototype.createDenominationField = function(fltValue, onChange){try {var strHtml = '
';strHtml += '$';strHtml += '';strHtml += '';strHtml += '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".add-to-cart-list-view"));jQuery(this.container).find( "input[ name = 'Denomination' ]" ).keyup( function() {onChange(jQuery( this ).val());} );} catch(ex){ecommerce.logException(ex);}}//for giftcardsAddToCartListView.prototype.setDenominationField = function(fltValue){try {jQuery(this.container).find( "input[ name = 'Denomination' ]" ).val(fltValue);} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.getDenominationField = function(){try {return jQuery(this.container).find( "input[ name = 'Denomination' ]" ).val();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.setDenominationMessage = function(strMessage){try {return jQuery(this.container).find( ".denomination-validation-message" ).html(strMessage);} catch(ex){ecommerce.logException(ex);}}//create quantity fieldAddToCartListView.prototype.createQuantityField = function(onChange, quantityUnit, minimumOrderQuantity, maximumOrderQuantity, selectedQuantity){try {if ( this.showQuantityField ) {var strHtml = '
';strHtml += '';strHtml += '
'jQuery(this.container).find(".product-attributes-list-view").append(strHtml);var quantityField1 = '';var quantityField2 = '';jQuery( quantityField1 ).appendTo( jQuery(this.container).find( "#quantity-field-container-" + this.uniqueID ) ).on( "keyup change paste", function() {onChange( jQuery( this ).val() )} );jQuery( quantityField2 ).appendTo( jQuery(this.container).find( "#quantity-field-container-" + this.uniqueID ) ).on( "keyup change paste", function() {onChange( jQuery( this ).val() )} );selectedQuantity = this.updateQuantityField( minimumOrderQuantity, maximumOrderQuantity, selectedQuantity );if ( quantityUnit != '' ) {jQuery(this.container).find('select[name="quantity"]').after('' + quantityUnit + '');}onChange(selectedQuantity);} else {var defaultQuantity = minimumOrderQuantity != '' ? minimumOrderQuantity : 1;var strHtml = '';jQuery(this.container).find(".add-to-cart-list-view").append(strHtml);onChange(defaultQuantity);}} catch(ex){ecommerce.logException(ex);}}//update quantity fieldAddToCartListView.prototype.updateQuantityField = function(minimumOrderQuantity, maximumOrderQuantity, selectedQuantity){try {var showDropDownQuantityField = false;// If the difference between the maximum order quantity and the minimum order quantity is greater than 20,// display a text input box.// Otherwise, show a drop down.if ( maximumOrderQuantity != "" ) {var smallestQuantity = minimumOrderQuantity;if ( minimumOrderQuantity != "" ) {if ( maximumOrderQuantity - minimumOrderQuantity <= 20 ) {showDropDownQuantityField = true;}} else {if ( maximumOrderQuantity <= 20 ) {smallestQuantity = 1;showDropDownQuantityField = true;}}}if ( parseFloat( smallestQuantity ) > parseFloat( selectedQuantity ) ) {selectedQuantity = smallestQuantity;}jQuery( this.container ).find( ".minimum-quantity-label" ).remove();jQuery( this.container ).find( ".maximum-quantity-label" ).remove();if ( showDropDownQuantityField ) {jQuery( "#quantity-select-" + this.uniqueID ).empty();for ( var i = smallestQuantity; i <= maximumOrderQuantity; i ++ ) {strOption = '
';jQuery( "#quantity-select-" + this.uniqueID ).append( strOption );jQuery( "#quantity-select-" + this.uniqueID ).val( selectedQuantity );}jQuery( "#quantity-text-" + this.uniqueID ).prop( "disabled", "disabled" ).hide();jQuery( "#quantity-select-" + this.uniqueID ).prop("disabled", null).show();} else {jQuery( "#quantity-select-" + this.uniqueID ).prop( "disabled", "disabled" ).hide();jQuery( "#quantity-text-" + this.uniqueID ).prop("disabled", null).show().val( selectedQuantity );if ( minimumOrderQuantity != "" ) {var strHtml = '
';strHtml+= "Minimum of %quantity%".replace( "%quantity%", minimumOrderQuantity );strHtml+= '
';jQuery( strHtml ).appendTo( jQuery(this.container).find( "#quantity-field-container-" + this.uniqueID ) );}if ( maximumOrderQuantity != "" ) {var strHtml = '
';strHtml+= "Maximum of %quantity%".replace( "%quantity%", maximumOrderQuantity );strHtml+= '
';jQuery( strHtml ).appendTo( jQuery(this.container).find( "#quantity-field-container-" + this.uniqueID ) );}}return selectedQuantity;} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.showQtyField = function(onClick){try {this.showQuantityContainer();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.hideQtyField = function(onClick){try {this.hideQuantityContainer();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.updateAffiliates = function(productAffiliates){}AddToCartListView.prototype.showQuantityContainer = function() {try {jQuery(this.container).find("#quantity-field-container-" + this.uniqueID).show();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.hideQuantityContainer = function() {try {jQuery(this.container).find("#quantity-field-container-" + this.uniqueID).hide();} catch(ex){ecommerce.logException(ex);}}//create purchased in multiples of informationAddToCartListView.prototype.createPurchasedInMultiplesOf = function(purchasedInMultiplesOf){try {var strHtml = '
';strHtml+= "Purchase in multiples of %number%".replace("%number%", purchasedInMultiplesOf);strHtml+= '';jQuery(strHtml).appendTo(jQuery(this.container).find(".quantity-field-container"));} catch(ex){ecommerce.logException(ex);}}//delivery methodAddToCartListView.prototype.createDeliveryMethodDropdown = function(options){try {var strHtml = '
';strHtml += '';strHtml += '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".add-to-cart-list-view"));} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.getDeliveryMethod = function(){try {return jQuery(this.container).find( "select[ name = 'DeliveryMethodID' ]" ).val();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.resetForm = function(){try {jQuery(this.container).find('form[name="add_to_cart_form"]')[0].reset();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.clearAllSelectAttributes = function(){try {jQuery(this.container).find('[name="ProductAttributeOptionIDs"]').val("");jQuery(this.container).find('[name="ProductAttributeOptionIDs"]').trigger("change");} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.createClearAllAttributesButton = function(){try {var strHtml = 'Reset options';$clearAllAttributesButton = jQuery(strHtml);this.container.find(".add_to_cart_form_content").append($clearAllAttributesButton);return $clearAllAttributesButton;} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.createBottomClearAllAttributesButton = function(){try {var strHtml = '
';strHtml += 'Reset options';strHtml += '
';var $clearAllAttributesButton = jQuery(strHtml);this.container.find(".js-attributes-container").after($clearAllAttributesButton);return $clearAllAttributesButton;} catch(ex){ecommerce.logException(ex);}}//create attribute selection for custom optionsAddToCartListView.prototype.createAttributeSelection = function(productAttribute, onChange, openAttributeOptionSelectionWindow, showOptionPreview){try {var isInProductAttributeGrid = productAttribute.ISINPRODUCTATTRIBUTEGRID;var selectedOption = productAttribute.SELECTEDVALUE;var strHtml = '
';strHtml += '
' ;var strRequiredClass = "";if(productAttribute.ISREQUIRED){strRequiredClass = " attributeSelectionLabelRequired";}if (this.attributeDisplayMode == "image-list" && productAttribute.HASIMAGES){strHtml += '
';strHtml += '
';}else{strHtml += '';strHtml += '
';strHtml += '';if (productAttribute.HASIMAGES){strHtml += '
';strHtml += '';strHtml += '
';}strHtml += '
';}strHtml += '
';strHtml += '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".product-attributes-list-view"));jQuery(this.container).find("[data-productattributeid='" + productAttribute.PRODUCTATTRIBUTEID + "'] input[type='radio'].attributeoption, #ProductAttributeOptionID_" + productAttribute.PRODUCTATTRIBUTEID + '_' + this.uniqueID).on("keyup change paste", function(){onChange( productAttribute.PRODUCTATTRIBUTEID, jQuery(this).val() );});jQuery(this.container).find(".open-attribute-selection-window[data-attributeid='" + productAttribute.PRODUCTATTRIBUTEID + "']").on("click", function(){openAttributeOptionSelectionWindow( productAttribute.PRODUCTATTRIBUTEID, jQuery(this).val() );});if ( this.attributeDisplayMode != "image-list" && productAttribute.HASIMAGES){jQuery(this.container).find("#ProductAttributeOptionID_" + productAttribute.PRODUCTATTRIBUTEID).on("change", function(){showOptionPreview( productAttribute.PRODUCTATTRIBUTEID, jQuery(this).val() );});}if ("image-list" == "image-list" && productAttribute.HASIMAGES){var v = this;jQuery(this.container).find(".viewMoreAttributeOptions[data-attributeid='" + productAttribute.PRODUCTATTRIBUTEID +"']").click(function(){v.viewMoreAttributeOptions(productAttribute, onChange);return false;});jQuery(this.container).find(".hideMoreAttributeOptions[data-attributeid='" + productAttribute.PRODUCTATTRIBUTEID +"']").click(function(){v.hideMoreAttributeOptions(productAttribute);return false;});this.addAttributeOptionTooltips(productAttribute.PRODUCTATTRIBUTEID, false);if (selectedOption != ''){var strSelector = "[data-productattributeid='" + productAttribute.PRODUCTATTRIBUTEID + "'] input[type='radio'][value='" + selectedOption + "'].attributeoption";if (jQuery(this.container).find(strSelector).length > 0){jQuery(this.container).find(strSelector).attr("checked", "checked").trigger("change");}else{strHtml = '';//if not loaded yet, use a hidden input field to store value selectedjQuery(this.container).find(".add_to_cart_form").append(strHtml);$hiddenSelectedValue = jQuery(this.container).find('[name="ProductAttributeOptionIDs_' + productAttribute.PRODUCTATTRIBUTEID + '"].hiddenSelectedValue');$hiddenSelectedValue.change( function(){onChange(productAttribute.PRODUCTATTRIBUTEID, selectedOption);});$hiddenSelectedValue.trigger("change");}}}} catch(ex){ecommerce.logException(ex);}}//if selecting from the opener window an attribute( like ACHS )AddToCartListView.prototype.setAttributeOption = function(intProductAttributeID, intProductAttributeOptionID){try {jQuery(this.container).find("#ProductAttributeOptionID_"+intProductAttributeID).val(intProductAttributeOptionID).change();} catch(ex){ecommerce.logException(ex);}};//change the preview image based on the option selected(when not using swatches)AddToCartListView.prototype.showOptionPreview = function(intProductAttributeID, strImage){try {if (strImage != ''){jQuery(this.container).find("#option_preview_"+intProductAttributeID).attr("src", strImage).show();}else{jQuery(this.container).find("#option_preview_"+intProductAttributeID).hide();}} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.resetGridAttribute = function(intProductAttributeID){try {_$attributeControlContainer = jQuery(this.container).find(".attributeSelectionWithImages[data-productattributeid='" + intProductAttributeID + "' ]" );_$attributeControlContainer.find("li[data-optionid]").removeClass( 'not-eligible' );_$attributeControlContainer.find("input[type='radio'].attributeoption:checked").prop('checked', false).trigger("change");_$attributeControlContainer.find("input[type='radio']").prop('disabled', false);$attributeOptionList = _$attributeControlContainer.find( ".attributeOptionList" );$allOptions = $attributeOptionList.find(".attributeoptioncontainer");$allOptions.removeClass("attribute-option-hightlight");_$attributeControlContainer.find( ".attributeCaption[ data-attributeid='" + intProductAttributeID + "' ]" ).html("");} catch(ex){ecommerce.logException(ex);}}//change event for attribute optionAddToCartListView.prototype.updateAttributeOptionSelection = function(intProductAttributeID, intProductAttributeOptionID, strCaptionSelected){try {$attributeOptionList = jQuery(this.container).find(".attributeOptionList[data-productattributeid='" + intProductAttributeID + "' ]" );$allOptions = $attributeOptionList.find(".attributeoptioncontainer");$selectedOption = $allOptions.filter("[ data-optionid='" + intProductAttributeOptionID + "' ]");// fade out all options$attributeOptionList.parents(".attributeSelectionWithImages").addClass("attribute-option-selected");// highlight selected option$allOptions.removeClass("attribute-option-hightlight");$selectedOption.addClass("attribute-option-hightlight");jQuery( ".attributeCaption[ data-attributeid='" + intProductAttributeID + "' ]" ).html( strCaptionSelected );} catch(ex){ecommerce.logException(ex);}}//common ground, as to what to return to the controller, for the attributes selectedAddToCartListView.prototype.getProductAttributeSelectedValues = function(){try {var productAttributes = {};var selector = "select[name='ProductAttributeOptionIDs'], .attribute-type-dropdown-state-country select"+ ", input[type='radio'].attributeoption:checked, .attribute-type-singleline input[type='text'], .attribute-type-date input[type='text']"+ ", .attribute-type-textarea textarea, .product-attribute-file-upload input[type='file']";//map all attribute select dropdowns to their selected valuesif (jQuery("#UseAttributeGridField").length && jQuery("#UseAttributeGridField").attr("checked") == "checked"){jQuery(".attribute-grid-add-to-cart-container").filter(function(){var $attribute = jQuery(this);if ($attribute.hasClass("custom-options-attribute")&& $attribute.hasClass("attribute-grid-product-attribute")){return false;}return true;}).find(selector).each(function(){productAttributes[jQuery(this).data("attributeid")] = jQuery(this).val();});}else{jQuery(this.container).find(selector).each(function(){productAttributes[jQuery(this).data("attributeid")] = jQuery(this).val();});}return productAttributes;} catch(ex){ecommerce.logException(ex);}}//Create attribute option thumbnail, to selectAddToCartListView.prototype.createImageAttributeOption = function(productAttributeID, option, lazyLoaded){try {strHtml = '
';return strHtml;} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.addAttributeOptionTooltips = function(productAttributeID, lazyLoaded){try {var $attributeOptions = jQuery(this.container).find("#attributeOptionList_" + productAttributeID + " li.js-tooltip" + (lazyLoaded ? ".lazyLoadedOption" : ""));$attributeOptions.each(function(){jQuery(this).tooltipsy({offset: [1, 0],content: "
"});});setTimeout(function(){$attributeOptions.each(function(){( new Image() ).src = jQuery(this).data("tooltipimage");});}, 300);jQuery(window).scroll(function(){$attributeOptions.each(function(){jQuery(this).data("tooltipsy").hide();});});} catch(ex){ecommerce.logException(ex);}}//View all attribute optionsAddToCartListView.prototype.viewMoreAttributeOptions = function(productAttribute, onChange){try {var productAttributeID = productAttribute.PRODUCTATTRIBUTEID;var $attributeOptionList = jQuery(this.container).find("#attributeOptionList_" + productAttributeID);//if the rest of the options need to be rendered then do so.$attributeOptionList.data("expanded", true);if ($attributeOptionList.data("rendered") === false){var numberOfItemsBeforeExpanding = 4;var checkedOption = jQuery(this.container).find("[name='ProductAttributeOptionIDs_" + productAttributeID + "']:checked");var selectedValue = checkedOption.val();//remove hidden selected option since we will now show itjQuery("[name='ProductAttributeOptionIDs_" + productAttributeID + "'].hiddenSelectedValue").remove();var strHtml = "";for (var i = numberOfItemsBeforeExpanding; i < productAttribute.OPTIONS.length; i++){strHtml += this.createImageAttributeOption(productAttributeID, productAttribute.OPTIONS[i], true);}$attributeOptionList.append(strHtml);$attributeOptionList.find(".lazyLoadedOption input[type='radio']").change(function(){onChange(productAttributeID, jQuery(this).val());});if (selectedValue != ""){var strSelector = "[data-productattributeid='" + productAttribute.PRODUCTATTRIBUTEID + "'] input[type='radio'][value='" + selectedValue + "'].attributeoption";jQuery(this.container).find(strSelector).attr("checked", "checked").trigger("change");}jQuery(this.container).find("#attributeOptionList_" + productAttributeID + " .hideUnlessExpanded").hide();this.renderAttributeOptionImagesSlowly(productAttributeID);this.addAttributeOptionTooltips(productAttributeID, true);$attributeOptionList.data("rendered", true);}else{jQuery(this.container).find("#attributeOptionList_" + productAttributeID + " .hideUnlessExpanded").show();jQuery(this.container).find(".hideMoreAttributeOptions[data-attributeid='" + productAttributeID + "']").show();}jQuery(this.container).find(".viewMoreAttributeOptions[data-attributeid='" + productAttributeID + "']").hide();} catch(ex){ecommerce.logException(ex);}}//the purpose of this function, is to disallow showing attribute images before they are loaded//assuming we have a lot of options, with images that take a while to load.AddToCartListView.prototype.renderAttributeOptionImagesSlowly = function(productAttributeID){try {jQuery(this.container).find("[data-attributeid='" + productAttributeID + "'].spinner-loader-wrapper").show();if(typeof this.numImagesToWait == "undefined"){this.numImagesToWait = {};}if(typeof numImagesLoaded == "undefined"){this.numImagesLoaded = {};}var numImagesBeforeExpanding = 4;//find out how many images are waiting for loading for this product attributevar v = this;jQuery(document).ready(function(){var attributeLoaderIdentified = "p_" + productAttributeID;v.numImagesToWait[attributeLoaderIdentified] = jQuery(v.container).find("#attributeOptionList_" + productAttributeID + " img.track-loading").length;v.numImagesLoaded[attributeLoaderIdentified] = numImagesBeforeExpanding;if (v.numImagesToWait[attributeLoaderIdentified] == 0){//once the images we are waiting for are loaded//(except for the tooltip ones, lets not wait for those as well).//then hide the overlay and show the images.jQuery(v.container).find("#attributeOptionList_" + productAttributeID + " .hideUnlessExpanded").show();jQuery(".hideMoreAttributeOptions[data-attributeid='" + productAttributeID + "']").show();}jQuery(v.container).find("#attributeOptionList_" + productAttributeID + " img.track-loading").on("load",function(){//decrement the number of images we are waiting for loading.v.numImagesToWait[attributeLoaderIdentified]--;v.numImagesLoaded[attributeLoaderIdentified]++;if (v.numImagesToWait[attributeLoaderIdentified] == 0){//once the images we are waiting for are loaded//(except for the tooltip ones, lets not wait for those as well).//then hide the overlay and show the images.jQuery(v.container).find("#attributeOptionList_" + productAttributeID + " .hideUnlessExpanded").show();jQuery("[data-attributeID='" + productAttributeID + "'].spinner-loader-wrapper").hide();jQuery(".hideMoreAttributeOptions[data-attributeid='" + productAttributeID + "']").show();}//if a couple of rows managed to load, then show themelse if (v.numImagesLoaded[attributeLoaderIdentified] > numImagesBeforeExpanding&& v.numImagesLoaded[attributeLoaderIdentified] % (v.getAttributeOptionsPerRow() * 2) == 0){var startIndex = 0;var endIndex = v.numImagesLoaded[attributeLoaderIdentified] - v.getAttributeOptionsPerRow();jQuery(v.container).find("#attributeOptionList_" + productAttributeID + " .hideUnlessExpanded").slice(startIndex, endIndex).slideDown();}});});} catch(ex){ecommerce.logException(ex);}}//calculate how many children can fit per row.AddToCartListView.prototype.getAttributeOptionsPerRow = function(){try {if(!this.optionListTrimmed){var oneItemWidth = 0;var containerWidth = 0;if (typeof childrenPerRowOfOptionImages == "undefined"){//calculate how many attribute option images, can fit in a row, hide the rest.jQuery(this.container).find(".attributeSelectionWithImages ul").each(function(){if (jQuery(this).find("li").length > 1){//show just the first two, in order to be able to make calculations!jQuery(this).find("li:first").show();jQuery(this).find("li:eq(1)").show();firstChild = jQuery(this).find("li")[0];secondChild = jQuery(this).find("li")[1];containerWidth = jQuery(this).width();oneItemWidth = secondChild.offsetLeft - firstChild.offsetLeft;if (oneItemWidth == 0){oneItemWidth = jQuery(this).find("li:first").outerWidth(true);}return false;}});if (oneItemWidth > 0){var childrenPerRow = Math.floor(containerWidth / oneItemWidth);childrenPerRowOfOptionImages = childrenPerRow;}}if (typeof childrenPerRowOfOptionImages != "undefined"){//now that we know how many children can fit, hide the rest.jQuery(this.container).find(".attributeSelectionWithImages ul").each(function(){numberOfRows = 1;numberOfVisibleItems = childrenPerRowOfOptionImages * numberOfRows;jQuery(this).children("li").removeClass("hideUnlessExpanded");//add class hide unless expanded, to children under the first rowjQuery(this).children("li:gt(" + (numberOfVisibleItems - 1) + ")").addClass("hideUnlessExpanded");$loadedAttributeOptions = jQuery(this).children("li");$loadedAttributeOptions.show();blnShowExpandToggle = numberOfVisibleItems < jQuery(this).data("totaloptions");if ($loadedAttributeOptions.length < jQuery(this).data("totaloptions")){blnShowExpandToggle = true;}if (blnShowExpandToggle){if (jQuery(this).data("expanded")){jQuery(".viewMoreAttributeOptions[data-attributeid='" + jQuery(this).data("productattributeid") + "']").hide();jQuery(".hideMoreAttributeOptions[data-attributeid='" + jQuery(this).data("productattributeid") + "']").show();} else {//if this was not previously expanded and now it has been resized, hide all the hidden items, and shoe the view more option$loadedAttributeOptions.filter(".hideUnlessExpanded").hide();jQuery(".viewMoreAttributeOptions[data-attributeid='" + jQuery(this).data("productattributeid") + "']").show();jQuery(".hideMoreAttributeOptions[data-attributeid='" + jQuery(this).data("productattributeid") + "']").hide();}} else {//if all options can fit into the collapsed rows, then just hide the viewmore/hide options and just show everythingjQuery(".viewMoreAttributeOptions[data-attributeid='" + jQuery(this).data("productattributeid") + "']").hide();jQuery(".hideMoreAttributeOptions[data-attributeid='" + jQuery(this).data("productattributeid") + "']").hide();}});this.optionListTrimmed = true;return childrenPerRowOfOptionImages;}else{jQuery(this.container).find(".viewMoreAttributeOptions").hide();jQuery(this.container).find(".hideMoreAttributeOptions").hide();jQuery(this.container).find(".attributeSelectionWithImages ul li").show();}}else{return childrenPerRowOfOptionImages;}} catch(ex){ecommerce.logException(ex);}}//Collapse attribute optionsAddToCartListView.prototype.hideMoreAttributeOptions = function(productAttribute){try {var productAttributeID = productAttribute.PRODUCTATTRIBUTEID;jQuery(this.container).find("#attributeOptionList_" + productAttributeID).data("expanded", false);jQuery(this.container).find("#attributeOptionList_" + productAttributeID + " .hideUnlessExpanded").hide();jQuery(this.container).find(".viewMoreAttributeOptions[data-attributeid='" + productAttributeID + "']").show();jQuery(this.container).find(".hideMoreAttributeOptions[data-attributeid='" + productAttributeID + "']").hide();} catch(ex){ecommerce.logException(ex);}}//create single line text attributeAddToCartListView.prototype.createSingleLineTextAttribute = function(productAttribute){try {var strHtml = '
';strHtml+= '
';strHtml+= '';strHtml+= '';strHtml+= '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".product-attributes-list-view"));} catch(ex){ecommerce.logException(ex);}}//create state and country dropdownsAddToCartListView.prototype.createCountryDropdown = function(productAttribute, countries){try {this.createAttributeDropdown(productAttribute, countries);} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.createStateDropdown = function(productAttribute, states){try {this.createAttributeDropdown(productAttribute, states);} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.createAttributeDropdown = function(productAttribute, options){try {var strRequiredClass = "";if(productAttribute.ISREQUIRED){strRequiredClass = " attributeSelectionLabelRequired";}var strHtml = '
'strHtml += '';strHtml += '';strHtml += '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".product-attributes-list-view"));} catch(ex){ecommerce.logException(ex);}}//create text area attributeAddToCartListView.prototype.createTextAreaAttribute = function(productAttribute){try {var strRequiredClass = "";if(productAttribute.ISREQUIRED){strRequiredClass = " attributeSelectionLabelRequired";}var strHtml = '
';strHtml += '';strHtml += '';strHtml += '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".product-attributes-list-view"));} catch(ex){ecommerce.logException(ex);}}//create date attributeAddToCartListView.prototype.createDateAttribute = function(productAttribute){try {var strRequiredClass = "";if(productAttribute.ISREQUIRED){strRequiredClass = " attributeSelectionLabelRequired";}var strHtml = '
';strHtml += '';strHtml += '';strHtml += '
';strHtml += "'%name%' must be a valid date, format yyyy-mm-dd.".replace("%name%", productAttribute.Name);strHtml += '
';strHtml += '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".product-attributes-list-view"));jQuery(this.container).find(".attribute-datepicker").datepicker({dateFormat: 'yy-mm-dd',showOn: "both",buttonImage: "/core/public/shared/assets/images/calendar.gif",buttonImageOnly: true,buttonText: 'Click for Calendar',changeMonth: true,yearRange: "-100:+25",changeYear: true});} catch(ex){ecommerce.logException(ex);}}//create file upload attributeAddToCartListView.prototype.createFileUploadAttribute = function(productAttribute){try {var strHtml = '
';strHtml += '
';strHtml += '';strHtml += '';strHtml += '
';strHtml += '
';strHtml += 'Accepted Formats: ' + productAttribute.ACCEPTEDFORMATS;strHtml += '
';if (productAttribute.SPECIALINSTRUCTIONS != ''){strHtml += '
' + productAttribute.SPECIALINSTRUCTIONS + '
';}strHtml += '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".product-attributes-list-view"));} catch(ex){ecommerce.logException(ex);}}//update variant nameAddToCartListView.prototype.setVariantName = function(name){try {jQuery(this.container).find("#variant-name").html(name);} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.formatPrice = function(price){try {return "$" + price.toFixed(2);} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.updatePrice = function(prices, priceTiers, hasPrice, rangePriceStart, rangePriceEnd){try {//update the item pricevar strHtml = '';if (typeof priceTiers.FLTCROSSEDOUTPRICE != "undefined" ){strHtml += '' + this.formatPrice(priceTiers.FLTCROSSEDOUTPRICE) + '';strHtml += ' Sale ' + this.formatPrice(priceTiers.ARYTIERS[0].value) + ''}else if (typeof rangePriceStart != 'undefined'&& rangePriceStart != ''&& typeof rangePriceEnd != 'undefined'&& rangePriceEnd != ''){strHtml += '' + this.formatPrice(rangePriceStart) + ' - ' + this.formatPrice(rangePriceEnd) + '';}else if (hasPrice){strHtml += '' + this.formatPrice(priceTiers.ARYTIERS[0].value) + '';}jQuery(this.container).find(".item-prices").html(strHtml);} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.hideItemPrice = function(){//don't hide anything show the range insteadreturn;}AddToCartListView.prototype.getUseRewardPoints = function(){try {return jQuery(this.container).find("input[ name='PurchaseWithPoints' ]:checked").val();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.updateRewardPoints = function(points, pointsAtDefaultQuantity, hasPrice){try {//update the item pointsif ( pointsAtDefaultQuantity != '' ){var strHtml = ''if (hasPrice){strHtml += ' or ';}strHtml += pointsAtDefaultQuantitystrHtml += ' points'strHtml += '';jQuery(this.container).find(".item-prices").append(strHtml);}} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.updateSKUNumber = function(skunumber){return;}AddToCartListView.prototype.updateUPC = function(intUPC){return;}//update view based on new price(if we changed to a variant), images etc.AddToCartListView.prototype.updatePicturesView = function(productImages){try {var strImages = "";if (productImages.length){var productImage = productImages[0];var imagePath = '/media/products/' + productImage.IMAGE;// Set up the html inside the slidervar $img = jQuery(this.container).find(".item-image img");$img.attr("src", imagePath + '?dimensions=' + productImage.LargeDimensions);$img.attr("alt", productImage.IMAGEALTTEXT);$img.attr("title", productImage.IMAGEALTTEXT);} } catch(ex){ecommerce.logException(ex);}}//set subtotal on the view, after calculationsAddToCartListView.prototype.setSubtotalRow = function(subtotal, pointsSubtotal, hasPrice, includeRewardPointsSelect, hasRewardPoints){try {var strPrice = subtotal;if (includeRewardPointsSelect){var strPoints = pointsSubtotal;var strHtml = '
';strHtml += '
Subtotal
';strHtml += '
';strHtml += '
';strHtml += '
';strHtml += '
';strHtml += '
';jQuery(this.container).find(".subtotal_row").html(strHtml);}else{var strHtml = '
Subtotal
' + strPrice + ''jQuery(this.container).find(".subtotal_row").html(strHtml);}} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.hideSubtotalRow = function(){try {jQuery(this.container).find(".subtotal_row").hide();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.showSubtotalRow = function(){try {jQuery(this.container).find(".subtotal_row").show();} catch(ex){ecommerce.logException(ex);}}//create add to cart buttonAddToCartListView.prototype.createAddToCartButton = function(onClick){try {var strHtml = '
';strHtml+= '
';strHtml+= '';strHtml+= '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".add-to-cart-list-view"))jQuery(this.container).find("button[name='SubmitButton'][value='btn-add-to-cart']").click(function(){onClick("btn-add-to-cart");});} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.enableAddToCartButton = function(onClick){try {jQuery(this.container).find("#AddToCartButtonContainer button").prop("disabled", false);} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.disableAddToCartButton = function(onClick){try {jQuery(this.container).find("#AddToCartButtonContainer button").prop("disabled", true);} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.showAddToCartButton = function(onClick){try {jQuery(this.container).find("#AddToCartButtonContainer").show();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.hideAddToCartButton = function(onClick){try {jQuery(this.container).find("#AddToCartButtonContainer").hide();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.showAddedToCartMessage = function(){try {var strHtml = '
Added To Cart
';jQuery(this.container).find("#AddToCart").hide();jQuery(strHtml).appendTo(jQuery(this.container).find(".add-to-cart-list-view"));} catch(ex){ecommerce.logException(ex);}}//createSubtotalRowAddToCartListView.prototype.createSubtotalRow = function(){try {var strHtml = '
';strHtml+= '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".add-to-cart-list-view"));} catch(ex){ecommerce.logException(ex);}}//create wishlist buttonAddToCartListView.prototype.createWishlistButton = function(){try {var strHtml = '
';strHtml += '';strHtml += '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".add-to-cart-list-view"))jQuery(this.container).find("button[name='SubmitButton'][value='btn-wishlist']").click(function(){onClick("btn-wishlist");});} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.showWishlistButton = function(){try {jQuery(this.container).find("#WishListButtonContainer").show();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.hideWishlistButton = function(){try {jQuery(this.container).find("#WishListButtonContainer").hide();} catch(ex){ecommerce.logException(ex);}}//create view wishlist linkAddToCartListView.prototype.createViewWishlistLink = function(){return;}//create favorites buttonAddToCartListView.prototype.createFavoritesButton = function(){return;}AddToCartListView.prototype.showFavoritesButton = function(){}AddToCartListView.prototype.hideFavoritesButton = function(){}//create view favorites linkAddToCartListView.prototype.createViewFavoritesLink = function(){return;}//create out of stock messageAddToCartListView.prototype.createOutOfStockMessage = function() {try {var strHtml = '
';strHtml+= 'Out of stock';strHtml+= '
';jQuery(strHtml).appendTo(jQuery(this.container).find(".add-to-cart-list-view"));} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.showOutOfStockMessage = function() {try {jQuery(this.container).find("#OutOfStockContainer").show();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.hideOutOfStockMessage = function() {try {jQuery(this.container).find("#OutOfStockContainer").hide();} catch(ex){ecommerce.logException(ex);}}//Create availability informationAddToCartListView.prototype.createAvailabilityInformation = function(showOnlineAvailability, isAvailableOnline, onlineAvailabilityMessage, showStoreAvailability, isAvailableInStore, storeAvailabilityMessage){try {var strHtml = '';if (showOnlineAvailability || showStoreAvailability){strHtml += '
';}if (showOnlineAvailability){strHtml += '' + onlineAvailabilityMessage + '
';}if (showStoreAvailability){strHtml += '' + storeAvailabilityMessage + '
';}if (showOnlineAvailability || showStoreAvailability){strHtml += '
';}jQuery(strHtml).appendTo(jQuery(this.container).find(".add-to-cart-list-view"));} catch(ex){ecommerce.logException(ex);}}//show combination is invalid messageAddToCartListView.prototype.showCombinationIsInvalid = function() {try {jQuery(this.container).find(".not-available-combination").show();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.hideCombinationIsInvalid = function() {try {jQuery(this.container).find(".not-available-combination").hide();} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.showMessages = function( messages){try {alert(messages.join('\n'));} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.disableNonEligibleOptions = function(aryAllVariantExcludedOptionIDs,arySelectionUpperHierarchyAttributeIDs,intCurrentlyClickedProductAttributeID){try {// Clear all "greyed out"this.container.find( 'li[data-optionid]' ).removeClass( 'not-eligible' );this.container.find( 'li[data-optionid]' ).removeClass( 'not-eligible-and-disabled' );this.container.find( 'li[data-optionid] input' ).removeAttr('disabled');this.container.find( 'select.attributeSelection option' ).removeAttr('disabled');this.container.find( 'select.attributeSelection option' ).removeClass( 'not-eligible' );this.container.find( 'select.attributeSelection option' ).removeClass( 'not-eligible-and-disabled' );// "Grey out" all excluded optionsfor (var i = 0; i < aryAllVariantExcludedOptionIDs.length; i++) {if( !this.container.find( 'li[data-optionid="' + aryAllVariantExcludedOptionIDs[i] + '"]' ).hasClass( 'not-eligible' ) ){// "Grey out" imagesthis.container.find( 'li[data-optionid="' + aryAllVariantExcludedOptionIDs[i] + '"]' ).addClass( 'not-eligible' );this.container.find( 'li[data-optionid="' + aryAllVariantExcludedOptionIDs[i] + '"] input' ).attr('disabled','disabled');}if( !this.container.find( 'select.attributeSelection option[value="' + aryAllVariantExcludedOptionIDs[i] + '"]' ).hasClass( 'not-eligible' ) ){// "Grey out" dropdown optionsthis.container.find( 'select.attributeSelection option[value="' + aryAllVariantExcludedOptionIDs[i] + '"]' ).attr('disabled','disabled');this.container.find( 'select.attributeSelection option[value="' + aryAllVariantExcludedOptionIDs[i] + '"]' ).addClass( 'not-eligible' );}}} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.restoreAllAttributeSelectOptions = function(){try {this.container.find("select.attributeSelection").each(function(){jQuery(this).data("AttributeSelectOptions").reattachAll();})} catch(ex){ecommerce.logException(ex);}}AddToCartListView.prototype.detachNotEligibleOptions = function(){try {this.container.find("select.attributeSelection").each(function(){jQuery(this).data("AttributeSelectOptions").detachOptions(".not-eligible-and-disabled");})} catch(ex){ecommerce.logException(ex);}}
Adding to Cart...
Just added to your cart:
Price: Quantity:
Merchandise Total:
View Cart
Continue Shopping
Bandsaw blades by Olson, 80" fits Sears Craftsman® 12". 93-1/2" fits Delta® and Rockwell® 14" models. Hard edge flex back band saw blades designed for industry and the professional craftsman. These are not to be confused with light duty standard blades. Thicker gauge steel provides for longer blade life. Tooth hardness 62-63 RC. Back hardness 28-32 RC for maximum flexibility.
- Sort By
- Name
- Newest
- Price: High to Low
- Price: Low to High
Olson® 93-1/2" x 1/8"R Bandsaw blades
.025 Gauge,14 Teeth per inch
Regular Style
Fits Delta® & Rockwell® 14" Models
93-18R
Each - 17.50
Olson® 93-1/2" x 3/16"S Bandsaw blades
.025 Gauge,4 Teeth per inch
Skip Style
Fits Delta® & Rockwell® 14" Models
93-316S
Each - 16.50
Olson® 93-1/2" x 3/16"R Bandsaw blades
.025 Gauge,10 Teeth per inch
Reg Style
Fits Delta® & Rockwell® 14" Models
93-316R
Each - 15.95
Olson® 93-1/2" x 1/4"S Bandsaw blades
025 Gauge,6 Teeth per inch
Skip Style
Fits Delta® & Rockwell® 14" Models
93-14S
Each - 15.95
Olson® 93-1/2" x 1/4"R Bandsaw blades
.025 Gauge,14 Teeth per inch
Reg. Style
Fits Delta® & Rockwell® 14" Models
93-14R
Each - 15.95
Olson® 93-1/2" x 3/8"S Bandsaw blades
.025 Gauge,4 Teeth per inch
Skip Style
Fits Delta® & Rockwell® 14" Models
93-38S
Each - 16.50
Olson® 93-1/2" x 1/2"H Bandsaw blades
.020 Gauge,3 Teeth per inch
Hook Style
Fits Delta® & Rockwell® 14" Models
93-12H
Each - 15.95