Tough Country Can-Am Defender Front Bumper (2024)

  • Description
  • Fits
  • Reviews
  • Warranty

The same protection you come to expect from Tough Country for your UTV. This bumper includes a 2 inch Receiver, Winch Mount, 5/8 inch Shackle Mounts & Black Wrinkle Finish.

2016 Can-Am Defender HD8
2016 Can-Am Defender HD10
2016 Can-Am Defender HD8 DPS
2016 Can-Am Defender HD10 DPS
2016 Can-Am Defender HD8 XT
2016 Can-Am Defender HD10 XT
2016 Can-Am Defender HD10 CAB
2017 Can-Am Defender HD10
2017 Can-Am Defender HD10 CAB
2017 Can-Am Defender HD10 DPS
2017 Can-Am Defender HD10 XT
2017 Can-Am Defender HD8 BASE
2017 Can-Am Defender HD8
2017 Can-Am Defender HD8 DPS
2017 Can-Am Defender HD8 XT
2017 Can-Am Defender MAX HD10 DPS
2017 Can-Am Defender MAX HD10 XT
2017 Can-Am Defender MAX HD8 DPS
2017 Can-Am Defender MAX HD8 XT
2018 Can-Am Defender HD10
2018 Can-Am Defender HD10 DPS
2018 Can-Am Defender HD10 XT
2018 Can-Am Defender HD10 CAB XT
2018 Can-Am Defender HD8
2018 Can-Am Defender HD8 DPS
2018 Can-Am Defender HD8 XT
2018 Can-Am Defender HD8 CAB XT
2018 Can-Am Defender HD5
2018 Can-Am Defender HD5 DPS
2018 Can-Am Defender MAX HD10 DPS
2018 Can-Am Defender MAX HD10 XT
2018 Can-Am Defender MAX HD10 CAB XT
2018 Can-Am Defender MAX HD8 DPS
2018 Can-Am Defender MAX HD8 XT
2018 Can-Am Defender MAX HD8
2018 Can-Am Defender HD10 XMR
2018 Can-Am Defender HD10 XTP
2018 Can-Am Defender Lone Star MAX
2019 Can-Am Defender HD10 DPS
2019 Can-Am Defender HD10 XT
2019 Can-Am Defender HD10 XTP
2019 Can-Am Defender HD10 XMR
2019 Can-Am Defender HD10 CAB
2019 Can-Am Defender HD8
2019 Can-Am Defender HD8 DPS
2019 Can-Am Defender HD8 XT
2019 Can-Am Defender HD8 CAB
2019 Can-Am Defender HD5
2019 Can-Am Defender HD5 DPS
2019 Can-Am Defender MAX HD10 DPS
2019 Can-Am Defender MAX HD10 XT
2019 Can-Am Defender MAX HD10 CAB
2019 Can-Am Defender MAX HD10 Lone Star
2019 Can-Am Defender MAX HD8 DPS
2019 Can-Am Defender MAX HD8 XT
2019 Can-Am Defender MAX HD8
2019 Can-Am Defender HD10 MAX XMR
2020 Can-Am Defender HD10 DPS
2020 Can-Am Defender HD10 XT
2020 Can-Am Defender HD10 XTP
2020 Can-Am Defender HD10 XMR
2020 Can-Am Defender HD10 CAB XT
2020 Can-Am Defender HD10 6x6 DPS
2020 Can-Am Defender HD8
2020 Can-Am Defender HD8 DPS
2020 Can-Am Defender HD8 XT
2020 Can-Am Defender HD8 CAB XT
2020 Can-Am Defender HD5
2020 Can-Am Defender HD5 DPS
2020 Can-Am Defender MAX HD10 DPS
2020 Can-Am Defender MAX HD10 XT
2020 Can-Am Defender MAX HD10 CAB XT
2020 Can-Am Defender MAX HD10 Lone Star
2020 Can-Am Defender MAX HD10 XMR
2020 Can-Am Defender MAX HD8 DPS
2020 Can-Am Defender MAX HD8 XT
2020 Can-Am Defender MAX HD8
2020 Can-Am Defender HD10 Mossy Oak Edition

Product Ratings and Reviews

Add a Review

Add a Review

0 out of 5 stars

Be the first to review this product.

';strInputsOutput = strTemp;if (!oProdInfo.showCart) {strTemp = strInputsOutput + '-';} else {if (bUseChildQtyControls) {strMax = ""if (oProdInfo.maxOrderQty > 0) {strMax = 'max="' + oProdInfo.maxOrderQty + '"';}//jsmotherman 3.8.2016 still need to add display for the child min/max/step.strTemp = strInputsOutput + '';} else {strTemp = strInputsOutput + '';}}strInputsOutput = strTemp;strTemp = strInputsOutput + '

' + oProdInfo.invMsg;if (bShowInvWatchLink && oProdInfo.invStatus == 'out') {strTemp = strTemp + '
' +buildModalLink(getInventoryWatchListUrl(strPKey, oProdInfo.nm, oProdInfo.sku),'Add to Inventory Watch List','Add to Watch List').html();}strInputsOutput = strTemp;strTemp = strInputsOutput + '' + sMatrixSkuLabel + oProdInfo.sku + ''strInputsOutput = strTemp + '

';if (iColCount == iTotalCol) {strTemp = strInputsOutput + '

';strInputsOutput = strTemp;iColCount = 0;} //- if (iColCount == iTotalCol)} //- for (strPKey in window.oChildProds)} catch (oError) {alert("fncDrawColorSizes" + oError.message);}sAtcHtml = '

Available Sizes

' + sHeadRow + strInputsOutput + '

';if (bUseProductAliases) {if (jQuery.trim(oProdInfo.pa_key) != '') {sAtcHtml += '';} //- if jQuery.trim(oProdInfo.pa_key) != '')} //- if (bUseProductAliases)if (bShowAtc) {sAtcHtml += '';} //- if (bShowAtc)sAtcHtml += '

';jQuery('#detail_mx1_sizeinfo').html(sAtcHtml);} catch (oError) {alert("fncDrawColorSizes" + oError.message);document.getElementById('detail_mx1_sizeinfo').innerHTML = 'Error loading sizes found in this color!';HideLoading()}HideLoading();} //- function fncDrawColorSizes()/** * Update Qty for "Select List" Addon Products */function fncUpdateAddonsSelectQty(oSelect) {sPKey = jQuery(oSelect).val();jQuery('#addon_qty_container').html('');}/** * Ajax to process parent-child product nested drop list displays * * @author dand * @internal refactored on 4/8/2010 - dand * * @param int vOptint of the option to processed (1-4) * @param bool vKeepGoingdetermines if function should recurse * @param int vLastthe total number of nested drop lists (1-4) */function fncGetOptDroplist(vOpt, vKeepGoing, vLast) {var oAjaxData = {opts: vOpt,maxopts: vLast,detailpageaction: 'ajaxcall',actiontype: 'getnestedopts',key: '6C97C561210C494C93FAD139E73F5F21',parent_atc: '1',parent_price: '1',use_child_pics: 'false',use_child_docs: 'false',use_child_product_flags: 'false',use_child_cart_opts: 'false',use_child_ds: 'false',parent_config_sections:'false'};switch (vOpt) {/* * Add mode case condition for 5 & 6 Droplist * @authorpijushb * @since5/17/2012 */case 6:var sOpt5Key = jQuery('#prod_opt5').val();var oOpt5Info = window.oChildProds[sOpt5Key];var sVal = escapeUriQueryParens(jQuery("#prod_opt5 option[value='" + sOpt5Key + "']").text());if (sChildProductOpt5 !== '') sVal = sChildProductOpt5oAjaxData.opt5 = sVal;//Drop Throughcase 5:var sOpt4Key = jQuery('#prod_opt4').val();var oOpt4Info = window.oChildProds[sOpt4Key];var sVal = escapeUriQueryParens(jQuery("#prod_opt4 option[value='" + sOpt4Key + "']").text());if (sChildProductOpt4 !== '') sVal = sChildProductOpt4oAjaxData.opt4 = sVal;//Drop Throughcase 4:var sOpt3Key = jQuery('#prod_opt3').val();var oOpt3Info = window.oChildProds[sOpt3Key];var sVal = escapeUriQueryParens(jQuery("#prod_opt3 option[value='" + sOpt3Key + "']").text());if (sChildProductOpt3 !== '') sVal = sChildProductOpt3oAjaxData.opt3 = sVal;//Drop Throughcase 3:var sOpt2Key = jQuery('#prod_opt2').val();var oOpt2Info = window.oChildProds[sOpt2Key];var sVal = escapeUriQueryParens(jQuery("#prod_opt2 option[value='" + sOpt2Key + "']").text());if (sChildProductOpt2 !== '') sVal = sChildProductOpt2oAjaxData.opt2 = sVal;//Drop Throughcase 2:var sVal = escapeUriQueryParens(jQuery('#prod_opt1').val());oAjaxData.opt1 = sVal;break;default:break;} //- switch (vOpt)tif (typeof runHook !== 'undefined') {runHook('ProductDetailActionBeforeGetOptDroplistAjaxCall', { oAjaxData: oAjaxData, vOpt: vOpt });}jQuery.ajax({url: 'i_i_pc_product_detail.asp',data: oAjaxData,cache: false,type: "GET",dataType: "json",beforeSend: ResizeLoadingBG,success: function (oData) {fncDrawOptDroplist(oData, vOpt, vKeepGoing, vLast)}});} //- function fncGetOptDroplist(vOpt, vKeepGoing, vLast)// EVENT FUNCTIONS ==================================================function fncDrawOptDroplist(oData, vOpt, bKeepGoing, vLast) {var iOpt = parseInt(vOpt);var iLastOpt = parseInt(vLast);var aUsedValues = new Array();var sProdKey = '';var sDisplayValue = '';var oProdInfo;window.oChildProds= oData;if (document.getElementById('prod_opt' + (iOpt - 1))) {document.getElementById('prod_opt' + (iOpt - 1)).disabled = false;}if (bKeepGoing) {bKeepGoing = true;} else {bKeepGoing = false;}if (iLastOpt == iOpt) {bKeepGoing = false;}try {// removes all previous optionsvar oOptSelect = document.getElementById('prod_opt' + iOpt);oOptSelect.options.length = 0;try {for (strPKey in window.oChildProds) {oProdInfo = window.oChildProds[strPKey];/* * Updated logic for building the droplist options if their is a sku in the * querystring that is an exact match to a child product sku so it can * preselect the correct options to load the child product sku searched for * johns - 06/27/2013 */if (sChildProductKey !== '') {switch (iOpt) {case 2 :sDisplayValue = sChildProductOpt2;break;case 3 :sDisplayValue = sChildProductOpt3;break;case 4 :sDisplayValue = sChildProductOpt4;break;case 5 :sDisplayValue = sChildProductOpt5;break;case 6 :sDisplayValue = sChildProductOpt6;break;}}if (sDisplayValue === oProdInfo.opt) {sProdKey = sChildProductKey;} else if ((!InArray (aUsedValues, oProdInfo.opt) && InArray (aUsedValues, sDisplayValue)) || sDisplayValue !== oProdInfo.opt) {sDisplayValue = oProdInfo.opt;sProdKey = strPKey;}if (!InArray (aUsedValues, sDisplayValue) && sProdKey !== '') {oOptSelect.options[oOptSelect.options.length] = new Option(jQuery('').html(sDisplayValue).text(), sProdKey);if (bValidateQtyControls && parseInt(vOpt) == parseInt(vLast)) {//jsmotherman set qty controls on the final product options//might remove this and use javascript to set it from window.ochildprods in fncProcessOptProduct insteadoOptSelect.options[oOptSelect.options.length - 1].setAttribute("data-min", window.oChildProds[sProdKey].min_order_qty);oOptSelect.options[oOptSelect.options.length - 1].setAttribute("data-max", window.oChildProds[sProdKey].max_order_qty);oOptSelect.options[oOptSelect.options.length - 1].setAttribute("data-step", window.oChildProds[sProdKey].qty_increment);oOptSelect.options[oOptSelect.options.length - 1].setAttribute("data-initval", window.oChildProds[sProdKey].initval);}aUsedValues[aUsedValues.length] = jQuery('').html(sDisplayValue).text();}}// johns - 06/27/2013 added code to preselect options based on an exact child sku match passed in the querystringif (sChildProductKey !== '') {oOptSelect.value = sChildProductKey;}// Recursively Call fncGetOptDroplist untilc we're done getting all the drop listsif (bKeepGoing) {if (iOpt == 5) {fncGetOptDroplist (iOpt + 1, false, iLastOpt);} else {fncGetOptDroplist (iOpt + 1, true, iLastOpt);}} else {fncProcessOptProduct (iOpt);HideLoading();} //- if (bKeepGoing)} catch (err) {alert("fncDrawOptDroplist-" + err.message);HideLoading();}if (oOptSelect.options.length < 1) {oOptSelect.options[oOptSelect.options.length] = new Option('No Sub-Options Found', '');oOptSelect.disabled = true;} else {oOptSelect.disabled = false;}} catch (err) {alert("fncDrawOptDroplist-" + err.message);} // Add Code to show/hide review message and buttons - pijushb 1/24/2012 if (bShowBackOrderMessage) {sPrevSku = jQuery("#previous_sku").val();bReviewMessage = $("#review_message_"+sPrevSku).is(":visible")if (bReviewMessage){$("#review_message_"+sPrevSku).hide();}bSubmitButton = $("#submit_button").is(":visible")if (!bSubmitButton){ $("#submit_button").show(); $("#check_stock_button").show(); $("#checkout_button").hide();} } //The child product only needs to load the first time this is called. //Blanking it out to prevent issues with multiple droplist. //[twalters 05/20/2016] sChildProductKey = '';} //- function fncDrawOptDroplist//================================================================/** * SearchString escape the parens in the uri query * * @param string sValstring containing the value to escape * @return stringstring with properly escaped parens for searchstring */function escapeUriQueryParens(sVal) { if (typeof sVal == 'undefined') {return;}sValue = sVal;sValue = sValue.replace(/%28/gi,"\(");sValue = sValue.replace(/%29/gi,"\)");sValue = sValue.replace(/\(/gi,"\\(");sValue = sValue.replace(/\)/gi,"\\)");return sValue;}function setImage($links, sImageUrl) {$links.filter('.' + sImageLinkClass).attr('href', sImageUrl);}function buildModalLink(sUrl, sText, sTitle) {sTitle = sTitle || sText;return jQuery('').attr('href', getModalUrl(sUrl)).addClass('global-modal').attr('title', sTitle).text(sText);}function getModalUrl(sUrl) {var sQueryStringChar = sUrl.indexOf('?') === -1 ? '?' : '&';sUrl = sUrl.replace(/\bi_i_/ig, '');return sUrl;}function getInventoryWatchListUrl(sProductKey, sProductName, sProductSku) {return 'prod_inv_watch_add.asp' + '?' +'p_id=' + sProductKey + '&' +'p_nm=' + encodeURIComponent(sProductName) + '&' +'p_sku=' + encodeURIComponent(sProductSku);}function addFavoritesLink(sProductKey) {if (jQuery('#addfavechild').length === 0) {jQuery('#idp_container').append('
');}var $favoritesListLink = buildModalLink('i_i_add_product_to_favorites.asp?p_id=' + (sProductKey || sPKey),'Add to Favorites');jQuery('#addfavechild').html($favoritesListLink);initModalLinks('#addfavechild');}function buildLinkedImage(sTitle, sSmallImageUrl, sLargeImageUrl) {var $image = $('Tough Country Can-Am Defender Front Bumper (2)').attr('src', sSmallImageUrl)// .attr(oImageAttributes);var oLinkAttributes = $.extend({href: sLargeImageUrl,title: sTitle}, oImageLinkAttributes);var $link = $('
').attr(oLinkAttributes).addClass(sImageLinkClass);return $link.append($image);}function fncProcessOptProduct(vOpt) {var bUseInlineBreaks = false;try {var sChildPKey = jQuery('#prod_opt' + vOpt).val();var oProdInfo = window.oChildProds[sChildPKey];if (bUseInlineBreaks) {jQuery.ajax({url: "i_i_pc_product_detail.asp?pageaction=getbreaks&key=" + sChildPKey,type: "GET",cache: false,dataType: "html",success: function(sResponse) {jQuery('#breaks_table_container').html(sResponse);},failure: function(sResponse) {alert('Server Error in fncProcessOptProduct: ' + sResponse);}});}//Global scope the pkeywindow.sChildPkey = sChildPKey;/* * Bail if no key or no product data */if (sChildPKey == '' || typeof oProdInfo == "undefined") {hideProductContainer();return false;}var qtyBoxElement = jQuery('#qty_box');if (qtyBoxElement.length > 0){qtyBoxElement.attr('name', 'qty_' + sChildPKey);/*#156734 - mrs_20180711: max quantity was not getting added the qty input for children products. i cannot find the logic for when children products qty available should be set on the qty_box, so i am adding it in the case that the max quantity is > 0. feel free to change the logic, if i missed the condition for when this should be set.#345865 - tschwab - 10/2020 - set to > instead of >=*/var maxQty = oProdInfo.max_order_qty;if(maxQty > 0){qtyBoxElement.attr('max', maxQty);}}jQuery('#keys').val(sChildPKey);/* * Update SKU */if (bShowSku) {jQuery('#sku_container').html(sSkuLabel + '' + oProdInfo.sku + '');/*'** ' Added link to sku on dropdown views ' @since 1/10/2004 ' @author jferguson'**/if (bDroplistChildSkuLink) {jQuery('#sku_container').wrapInner('');}}if (bShowName) {jQuery('#child_nm_container').html('Name: ' + oProdInfo.name);}if (bUseChildDescriptionMain && typeof oProdInfo.description != "undefined") {jQuery('#child_ds_container').html('Description: ' + oProdInfo.description);}/* * Cart */if (oProdInfo.showCart) {if (jQuery('#child_cart_section').length > 0)jQuery('#child_cart_section').show();/* * Handle Cart Options defined on Child Product */if (bUseChildCartOpts) {if (oProdInfo.cartOptions != '' && jQuery('#pc_cart_options_' + vOpt).length > 0) {buildCartOption(sChildPKey, oProdInfo.cartOptions, vOpt);} else {jQuery('#pc_cart_options_' + vOpt).html('');}} //- if (bUseChildCartOpts)/* * Cart Options defined on Parent (standard config) * need to know if this is the "last" droplist being displayed... */if (jQuery('#pc_cart_options_' + vOpt).length > 0) {jQuery('#pc_cart_options_' + vOpt).slideDown();// change the name of the hidden input so it will post to the item in the cartjQuery('#cart_option_6C97C561210C494C93FAD139E73F5F21').attr("name","cart_option_" + sChildPKey);} //- if (jQuery('#pc_cart_options_' + vOpt).length > 0)/* * Updating name of Tax Exempt with current key * @auther - vinayakj * @since - 2/5/2013 */} else {hideChildProductInputs();} //- if (oProdInfo.showCart)//Product Unit Displayif ('productUnit' in oProdInfo && oProdInfo.productUnit != '') jQuery('#product_unit_container').html('Unit: ' + oProdInfo.productUnit);// Single Unit of Measure (products.unit)if ('uomHTML' in oProdInfo && oProdInfo.uomHTML != '') {jQuery('#detail_atc_standalone').html(oProdInfo.uomHTML);jQuery('#child_cart_section').html(oProdInfo.uomHTML);}// Parent Addon Productsif (bShowParentAddonProds) {jQuery('#addon_product_container').slideDown();jQuery('#addon_products').attr('name','keys');} else {jQuery('#addon_product_container').slideUp();jQuery('#addon_products').attr('name','keys_no_post');}// Child Addon Productsif (bShowChildAddonProds && 'showChildAddonProds' in oProdInfo) {if (!oProdInfo.showChildAddonProds) {jQuery('#addon_product_container').slideUp();jQuery('#addon_products').attr('name','keys_no_post');} else {jQuery('#addon_product_container').slideDown();jQuery('#addon_products').attr('name','keys');}}// Price --------------------------------------------------------/* * Check for Price Display type * @authorpijushb * @since4/25/2011 */var bShowRegPrice= true;var bShowATCQty= false;var sShowMessage = '';if (sShowPriceDisplayTypeDropList) {switch (sPriceDisplayType) {case 'hide':bShowRegPrice= false;bShowATCQty= true;sShowMessage= '-';break;case 'show_message':bShowRegPrice= false;bShowATCQty= true;sShowMessage= sPriceMessage;break;case 'require_atc':bShowRegPrice= false;bShowATCQty= true;sShowMessage= sHelpText;break;case 'require_login_or_atc':bShowRegPrice= false;bShowATCQty= true;sShowMessage= sHelpTextbreak;case 'require_login_for_price_and_atc':bShowRegPrice= false;sShowMessage= sHelpTextLoginbreak;default:bShowRegPrice = true;break;} //- switch (sPriceDisplayType)} // if (sShowPriceDisplayTypeDropList)if (bShowRegPrice) {//Display standard} else {oProdInfo.showPrice=false;jQuery('#price_display_type_message').html('

' + sShowMessage + '

');if (!bShowATCQty) {jQuery('#child_cart_section').hide();}} //- if (bShowRegPrice)/* * Set Dangerous Price Ratio * @authorvinayakj * @since4/25/2011 */if (bShowHazmatRatio) {if (oProdInfo.dangerous_price_ratio > 0) {jQuery('#dangerous_price_ratio').show();jQuery('#dangerous_price_ratio_value').html(oProdInfo.dangerous_price_ratio);} else { jQuery('#dangerous_price_ratio').hide();}}if (oProdInfo.showPrice) {/* * Draw full UOM section (products.uom_std, products.uom_sales, * products.uom_sales_conversion and additional unit of measure * conversions from the unit_of_measure table) */sUomView = '';if (bShowSalesUOM || bOnlyShowSalesUOM || bShowAdditionalSalesUOM) {sUomView = fncDrawUOM (sChildPKey, oProdInfo);}if (sUomView != '') {jQuery('#child_cart_section').html(sUomView);jQuery('#child_cart_section').show();if (bShowChildQtyPricing) {if ('showPriceBreaks' in oProdInfo && oProdInfo.showPriceBreaks) {jQuery('#qtypricing').html(buildModalLink(getQtyPricingUrl(sChildPKey),sQtyPricingLinkLabel,'Qty Pricing'));jQuery('#qtypricing').show();} else {jQuery('#qtypricing').hide();}}} else {if (jQuery('#price_container').length > 0 ) {/* * Add Qty Pricing Link for Child Product */var sPriceBreakHTML = '';if (bShowChildQtyPricing && 'showPriceBreaks' in oProdInfo && oProdInfo.showPriceBreaks) {sPriceBreakHTML = '
  • ';}iRetailPrice = parseFloat(oProdInfo.retail_price.replace('$','').replace(',',''));iPrice = parseFloat(oProdInfo.price.replace('$','').replace(',',''));cRetailPrice = oProdInfo.retail_price;cListPrice = oProdInfo.listprice;cPrice = oProdInfo.price/* * code to compare final price to retail price or suggested retail price * depending on which values are populated and value are greater than * the final price returned by the oRs.GetPrice call * * @authorjohns * @since12/22/2011 * * * Modified code to always display the list price. * (if it's blank/zero, retail price is displayed * instead. * @authordcohen * @since11/4/2013 * @seetask #42616 */if (bShowPriceCompare) {if (oProdInfo.listprice != undefined) {iListPrice = parseFloat(oProdInfo.listprice.replace('$','').replace(',',''));} else {iListPrice = iRetailPrice;cListPrice = cRetailPrice;} //- if (oProdInfo.listprice)if (iPrice < iListPrice) {if (false) {iPercent= (iListPrice - iPrice) / iListPrice;iPercentSaved= (iPercent * 100).toFixed(2);sDollarAmtText = '';sYouSaveText = ''; if(false){sDollarAmtText = ' (' + (FormatCurrency(iListPrice - iPrice, true)) + ')';}if(bUseYouSaveStringReplacement){sYouSaveText = youSaveStringReplace(iPercentSaved, FormatCurrency(iListPrice - iPrice, true)); }else{sYouSaveText = 'You Save: ' + iPercentSaved + '%' + sDollarAmtText + ''}if (false) {jQuery('#price_container').html('
    • ' + FormatCurrency(oProdInfo.price, true) + 'USD' + cPrice + '
    • ' + sPriceBreakHTML + '
    • List Price: ' + cListPrice + '
    • ' + sYouSaveText + '
    ');} else {jQuery('#price_container').html('
    • ' + FormatCurrency(oProdInfo.price, true) + 'USD' + cPrice + '
    • ' + sPriceBreakHTML + '
    • List Price: ' + cListPrice + '
    • ' + sYouSaveText + '
    ');}} else {if (false) {jQuery('#price_container').html('
    • ' + FormatCurrency(oProdInfo.price, true) + 'USD' + cPrice + '
    • ' + sPriceBreakHTML + '
    • List Price: ' + cListPrice + '
    ');} else {jQuery('#price_container').html('
    • ' + FormatCurrency(oProdInfo.price, true) + 'USD' + cPrice + '
    • ' + sPriceBreakHTML + '
    • List Price: ' + cListPrice + '
    ');}}//- if (0)} else {jQuery('#price_container').html('
    • ' + FormatCurrency(oProdInfo.price, true) + 'USD' + FormatCurrency(oProdInfo.price, true) + '
    • ' + sPriceBreakHTML + '
    ');}} else {jQuery('#price_container').html('
    • ' + FormatCurrency(oProdInfo.price, true) + 'USD' + FormatCurrency(oProdInfo.price, true) + '
    • ' + sPriceBreakHTML + '
    ');} //- if (bShowPriceCompare)} //- if (jQuery('#price_container').length > 0)} //- if (sUomView != '')if (typeof runHook !== 'undefined') {runHook('ProductDetailActionAfterDroplistPriceDisplay', { bShowPriceCompare: bShowPriceCompare, oProdInfo: oProdInfo, sPriceBreakHTML: sPriceBreakHTML });}jQuery('#price_container').show();} else {jQuery('#price_container').hide();jQuery('#qtypricing').hide();}//- if (oProdInfo.showPrice)/* * Add hidden field for qty available to check back order. * @authorpijushb * @since9/28/2011 */if (bShowBackOrderMessage) {jQuery('.qtyavailable').remove();jQuery('#idp_container').parent().append('')} //- if (bShowBackOrderMessage)/* * Inventory */if (oProdInfo.showInventory) {jQuery('#idp_container').html(oProdInfo.invMsg);/** * if status = out then show "add product to watch list" link * * @authorjohns * @since12/11/2009 */if (bShowInvWatchLink && oProdInfo.invStatus != 'in') {if (!oProdInfo.showCart) {hideChildProductInputs();}var selected_prod = document.getElementById('prod_opt'+ vOpt).selectedIndex;var selected_prod_nm = document.getElementById('prod_opt'+ vOpt).options[selected_prod].text.replace('#','%23');var $inventoryWatchListLink = buildModalLink(getInventoryWatchListUrl(sChildPKey, selected_prod_nm, oProdInfo.sku),'Add to Inventory Watch List');jQuery('#idp_container').append('
    ').append($inventoryWatchListLink);if (bUseETADate){var today = new Date();var etaDay = new Date(oProdInfo.idpETADate);if(oProdInfo.idpETADate != "" && etaDay > today){//trim the time - this is more cross-browser reliable than converting to Date and using built in functions//sDate = oProdInfo.idpETADate.substring(0, oProdInfo.idpETADate.length - 7);jQuery('#idp_container').append('
    ETA Date: ' + oProdInfo.idpETADate + '');}else{jQuery('#idp_container').append('
    ETA Date: No ETA. Please Call.');}}initModalLinks('#idp_container');} // if (bShowInvWatchLink && oProdInfo.invStatus != 'in')} // if (oProdInfo.showInventory)if (bShowInvByWarehouse) {jQuery.ajax({url: "i_i_pc_product_detail.asp?pageaction=inventorybywarehouse&key=" + sChildPKey, cache: false, dataType: "text", success: function (sResponse) { $('select[id^="pw_id_"]').parent().parent().remove();jQuery('#idp_container').html(jQuery('#idp_container').html() + sResponse);}});}if (bShowFavoriteLink && bShowChildFavoriteLink) {addFavoritesLink(sChildPKey);}// Show the image container and hide the broken image containerjQuery('#detail_noimage_cotainer').hide();jQuery('#detail_photo_container').show();if (bUseChildPics) {/** * Main Image & View Larger Link */if (oProdInfo.pic && oProdInfo.pic != '') {// Build Image & View Larger Linkif (oProdInfo.lg_pic != '') {setImage(jQuery('#detail_photo_container a'), 'images/' + oProdInfo.lg_pic);}jQuery('#detail_photo_container img#prodpicthumb').attr('src', 'images/' + oProdInfo.pic);} else {setImage(jQuery('#detail_photo_container a'), sLargePic);jQuery('#detail_photo_container img#prodpicthumb').attr('src', sDetailPic);} //- if (oProdInfo.pic && oProdInfo.pic != '')/* * Additional Images */var $childImages = jQuery('.detail_multipic ul.child_prods');var $parentImages = jQuery('.detail_multipic ul').not('.child_prods');if (oProdInfo.additionalPics && oProdInfo.additionalPics.length > 0) {/* * Clear Child Additional Images */if ($childImages.length > 0) {$childImages.empty();} else {$childImages = $('
      ').hide();jQuery('.detail_multipic').append($childImages);} //- if ($childImages.length > 0)/* * Build Child Additional Images */for (var iCounter = 0; iCounter < oProdInfo.additionalPics.length; iCounter++) {oPics = oProdInfo.additionalPics[iCounter];var $imageListItem = $('
    • ').append(buildLinkedImage(oProdInfo.name,'images/' + oPics.thumb,'images/' + oPics.large).addClass('detail_multipic_img'));$childImages.append($imageListItem);}/* * Hide Parent Images & Show Child Images */$parentImages.hide();$childImages.fadeIn(1000);initImagePopup('.detail_multipic ul.child_prods');} else {/* * Hide Child Images & Show Parent Images */$parentImages.fadeIn(1000);$childImages.hide();} //- if (oProdInfo.additionalPics && oProdInfo.additionalPics.length > 0)} //- if (bUseChildPics)/* * Child Product Documents * * @authordand * @since4/6/2010 */if (bUseChildDocs) {if (oProdInfo.documents.length > 0) {/* * Clear Child Documents */if (jQuery("#child_doc_download").length > 0) {jQuery("#child_doc_download").html('Downloads:
      ');} else {jQuery("#doc_download").parent().append('
    • ');} //- if (jQuery("#child_doc_download").length > 0)/* * Build Child Documents */for (var iCounter = 0, goTo = oProdInfo.documents.length - 1; iCounter <= goTo; iCounter++) {oDocConfig = oProdInfo.documents[iCounter];jQuery("#child_doc_download").append('' + oDocConfig.link + '
      ');} //- for (var iCounter = 0, goTo = oProdInfo.documents.length - 1; iCounter <= goTo; iCounter++)/* * Hide Parent Docs & Show Child Docs */jQuery('#doc_download').hide();jQuery('#child_doc_download').show();} else {/* * Hide Child Docs */jQuery('#child_doc_download').hide();/* * Show Parent Docs - If there are any */if (jQuery('#doc_download').find('span').eq(1).html() == '') {jQuery('#doc_download').hide();} else {jQuery('#doc_download').show();} //- if (jQuery("#doc_download").find('span').eq(1).html() == '')} //- if (oProdInfo.documents.length > 0)} //- if (bUseChildDocs)//child product flagsif(bUseChildProductFlags){//remove existing flag iamge elements if they exist$('#detail_photo_container .product_flags').remove();//remove modals$('.detail_photo.clearfix .global-modal').remove();//add flagsfor (var i = 1; i < 5; i++) {if(oProdInfo["flag" + i] == "1" && oProdInfo["flag" + i + "_show"]){var flagImage = oProdInfo["flag" + i + "_pic"];if(oProdInfo["flag" + i + "_url"] == ""){$('#detail_photo_container').prepend('

      Tough Country Can-Am Defender Front Bumper (3)

      ');}else{var sFlagUrl = oProdInfo["flag" + i + "_url"];var sFlagTitle = oProdInfo["flag" + i + "_title"];var sModalClass = 'global-modal';var iFlagHeight = '600';var test = getModalUrl("i_i_" + sFlagUrl + ".asp");var sModalHtml = '';var sModalHtml = sModalHtml + '';var sModalHtml = sModalHtml + '';$('.detail_photo.clearfix').prepend(sModalHtml);}}}}/* * Child Product Qty Pricing * * @authorjohns * @since11/6/2010 */ if (bShowChildQtyPricing && 'showPriceBreaks' in oProdInfo && oProdInfo.showPriceBreaks) {jQuery('#qtypricing').html(buildModalLink(getQtyPricingUrl(sChildPKey),sQtyPricingLinkLabel,'Qty Pricing'));initModalLinks('#qtypricing');} //- if ( bShowChildQtyPricing )// Check for a child description overrideapplyChildDescription(oProdInfo);/* * Add Code to show/hide review message and buttons. * * @authorpijushb * @since1/24/2012 */if (bShowBackOrderMessage) {sPrevSku = jQuery('#previous_sku').val();bReviewMessage = jQuery('#review_message_' + sPrevSku).is(':visible')if (bReviewMessage) {jQuery("#review_message_"+sPrevSku).hide();} //- if (bReviewMessage)bSubmitButton = jQuery('#submit_button').is(':visible')if (!bSubmitButton) {jQuery('#submit_button').show();jQuery('#check_stock_button').show();jQuery('#checkout_button').hide();}} //- if (bShowBackOrderMessage)if (bUseProductAliases) {if ('pa_key' in oProdInfo) {if (oProdInfo.pa_key) {jQuery('#pa_id').html(oProdInfo.pa_key);} //- if (oProdInfo.pa_key)} //- if ('pa_key' in oProdInfo)} //- if (bUseProductAliases)/* * Displaying Config Data * @auther - vinayakj * @since - 5/2/2012 */if (bShowProdConfig) {if ('prod_config_droplist' in oProdInfo) {jQuery('#config_sections_container').html(htmlDecode(oProdInfo.prod_config_droplist));} else {jQuery('#config_sections_container').html('');}/* * Put Config Keys */if ('config_keys' in oProdInfo) {jQuery('#config_keys').val(oProdInfo.config_keys);if (jQuery('#qty_box').length > 0)jQuery('#qty_box').attr('name', 'qty_' + oProdInfo.config_keys);}/* * Put use_parent_key */if ('use_parent_key' in oProdInfo) {jQuery('#use_parent_key').val(oProdInfo.use_parent_key);}/* * Put show_config_sections */if ('show_config_sections' in oProdInfo) {jQuery('#show_config_sections').val(oProdInfo.show_config_sections);if (oProdInfo.show_config_sections == "1"){jQuery.ajax({url: '?pageaction=getconfigdata&config_key=' + jQuery('#config_keys').val() + '&key=', cache: false, dataType: "html", success: function (sResponse) { jQuery('#config_sections_container').html(htmlDecode(sResponse));}});} else {jQuery('#config_sections_container').html('');}}}if (bUsePromotions) {updateDroplistPromoDisplay(sChildPKey);}updateSmartListChildProduct();updateQtyControls(vOpt);if (typeof runHook !== 'undefined') {runHook('ProductDetailActionProcessOptProduct', { product: oProdInfo, opt: vOpt });}} catch (oError) {alert('fncProcessOptProduct(' + vOpt + '): ' + oError.message);hideProductContainer();}} //- function fncProcessOptProduct(vOpt)//jsmotherman 3.7.2015function updateQtyControls(vOpt) {var sQtyControlsText = "";if (bValidateQtyControls && bUseChildQtyControls) {var optionQtyMessage= jQuery('#qty_controls_msg');var optionStep = Number(jQuery('#prod_opt' + vOpt + ' :selected').attr("data-step"));var optionMin = Number(jQuery('#prod_opt' + vOpt + ' :selected').attr("data-min"));var optionMax = Number(jQuery('#prod_opt' + vOpt + ' :selected').attr("data-max"));var optionInitVal = Number(jQuery('#prod_opt' + vOpt + ' :selected').attr("data-initval"));if (optionMin > 0) {jQuery('#qty_box').attr("min", optionMin);sQtyControlsText += sMinQtyMessage.replace("", optionMin) + "
      "} else {jQuery('#qty_box').attr("min", "0");}if (optionMax > 0) {jQuery('#qty_box').attr("max", optionMax);sQtyControlsText += sMaxQtyMessage.replace("", optionMax) + "
      "} else {jQuery('#qty_box').attr("max", "");}if (optionStep > 0) {jQuery('#qty_box').attr("step", optionStep);if (optionStep != 1) {sQtyControlsText += sIncrementQtyMessage.replace("", optionStep);}} else {jQuery('#qty_box').attr("step", "0");}jQuery("#qty_box").val(optionInitVal);optionQtyMessage.html(sQtyControlsText);} //if (bValidateQtyControls && bUseChildQtyControls) {} //function updateQtyControls() {function initModalLinks(sContainer) {}// This function should not be called directly; it should be used through initModalLinks or initImagePopup.function initializeThickbox(sContainer) {var aContainers = (sContainer || 'body').split(',');for (var i = 0; i < aContainers.length; i++) {aContainers[i] += ' a.thickbox';}tb_init(aContainers.join(','));}function initImagePopup(sContainer) {if (bUseVenobox) {$(sContainer + ' .venobox').venobox();} else {initializeThickbox(sContainer);}}function htmlDecode(value) {if (value) {return $('').html(value).text();} else {return '';}}/** * Draw UOM Table * * @authorjohns * @since3/17/2011 * @paramsPKeystring - the key of the product we are looking at *oDataobject - object containing the data from the ajax call * * @returnUOM Table HTML */function fncDrawUOM(sPKey, oData) {try {/* * if the product price is blank, then exit the function */if (oData.price == '') {sUOMHtml = '';return sUOMHtml;}/* * var containing html table structure to displayed containing the data */var sUOMHtml = '';var sQtyPerUnitColumn = '';/* * make sure at least one of the show uom booleans is true */if (bShowSalesUOM || bOnlyShowSalesUOM || bShowAdditionalSalesUOM) {/* * display title and hidden fields for the product */sUOMHtml += '

      Add to Cart

      ';if ('uomStd' in oData) {sUOMHtml += '';}if ('uomSales' in oData) {sUOMHtml += '';sUOMHtml += '';sUOMHtml += '';}if (bShowNativeUOMinCart && 'uomSales' in oData) {sUOMHtml += '';}/* * determine whether or not to show the Qty Per Unit column */if (bShowQtyPerUnitColumn) {sQtyPerUnitColumn = 'Qty Per Unit';} //- if (bShowQtyPerUnitColumn)sUOMHtml += '';sUOMHtml += '' + sQtyPerUnitColumn + '';if (bShowSalesUOM && !bOnlyShowSalesUOM) {/* * determine whether or not to show the Qty Per Unit column */if (bShowQtyPerUnitColumn) {sQtyPerUnitColumn = '';} //- if (bShowQtyPerUnitColumn)/* * draw Standard UOM row */if ('uomStd' in oData) {sUOMHtml += '' + sQtyPerUnitColumn + '';} //- if ('uomStd' in oData)if ('uomSales' in oData) {if (oData.uomSales != '' && oData.uomSalesConversion > 1 && oData.uomSales != oData.uomStd) {/* * determine whether or not to show the Qty Per Unit column */if (bShowQtyPerUnitColumn) {sQtyPerUnitColumn = '';} //- if (bShowQtyPerUnitColumn)if (typeof oData.uomSalesUnitPrice == 'undefined') {iUnitPrice = 0;} else {iUnitPrice = oData.uomSalesUnitPrice} //- if (typeof oUomConfig.uomSalesUnitPrice == 'undefined')/* * draw UOM Sales row */sUOMHtml += '' + sQtyPerUnitColumn + ''} //- if ('uomSales' in oData && 'uomSalesConversion' in oData)3} //- if ('uomSales' in oData)if (bShowAdditionalSalesUOM) {if ('uomAdditional' in oData && oData.uomAdditional.length > 0) {/* * draw additional uom rows */for (var iCounter = 0, iGoTo = oData.uomAdditional.length; iCounter < iGoTo; iCounter++) {var oUomConfig= oData.uomAdditional[iCounter];var sQtyPerHTML= '';if (typeof oUomConfig != 'undefined' && typeof oUomConfig.conversion != 'undefined') {var sThisUom = iCounter + 1/* * determine whether or not to show the Qty Per Unit column */if (bShowQtyPerUnitColumn) {/* * calculating the qty per unit */if (iUOMConversion < 1) {iQty = 1 / iUOMConversion} else if (iUOMConversion >= 1) {iQty = iUOMConversion} //- if (iUOMConversion < 1)sQtyPerHTML= '';} else {sQtyPerHTML = ''} //- if (bShowQtyPerUnitColumn)if (typeof oUomConfig.unitPrice == 'undefined') {iUnitPrice = 0;} else {iUnitPrice = oUomConfig.unitPrice;} //- if (typeof oUomConfig.unitPrice == 'undefined')/* * build the html w/ hidden inputs */sUnitHTML= oUomConfig.unit + '';sPriceHTML= '$' + parseFloat(iUnitPrice).toFixed(2) + '';sUOMHtml += '' + sQtyPerHTML + ''} //- if (typeof oUomConfig != 'undefined' && typeof oUomConfig.conversion != 'undefined')} //- for (var i = 0, goTo = oProdInfo.documents.length - 1; i <= goTo; i++)} //- if ('uomAdditional' in oData)} //- if (bShowAdditionalSalesUOM)} else if (bOnlyShowSalesUOM) {// removed: !bShowSalesUOM &&// fixes issue preventing price table from displaying// when bShowSalesUOM and bOnlyShowSalesUOM are both true// dcohen - 06/20/2013/* * only draw UOM Sales row */if (bShowQtyPerUnitColumn) {sQtyPerUnitColumn = ''}sUOMHtml += '' + sQtyPerUnitColumn + ''} //- if (bShowSalesUOM)sUOMHtml += '
      ' + sUnitHeader + '' + sUnitPriceColumnLabel + 'Qty
      1
      ' + oData.uomStd + '' + oData.price + '';sUOMHtml += fncDrawQtyBox(sPKey, oData, '');sUOMHtml += '
      ' + oData.uomSalesConversion + '
      ' + oData.uomSales + '$' + parseFloat(iUnitPrice).toFixed(2) + '';sUOMHtml += fncDrawQtyBox(sPKey, oData, 'sales_');sUOMHtml += '
      ' + iQty.toFixed() + '
      ' + sUnitHTML + '' + sPriceHTML + '';sUOMHtml += fncDrawQtyBox(sPKey, oData, 'uom' + sThisUom + '_', oUomConfig.conversion);sUOMHtml += '
      1
      ' + oData.uomSales + '$' + parseFloat(oData.uomSalesUnitPrice * oData.uomSalesConversion).toFixed(2) + '';sUOMHtml += fncDrawQtyBox(sPKey, oData, '');sUOMHtml += '
      '/* * Add to Cart button */ if (bUseBootStrap) {sUOMBtn = "btn btn-primary" } else {sUOMBtn = "btn_addtocart chrome" }if (oData.showCart) {sUOMHtml += '';}} //- if (bShowSalesUOM || bOnlyShowSalesUOM || bShowAdditionalSalesUOM)return sUOMHtml;} catch (err) {alert('function: fncDrawUOM - ' + err.message);return '';}} //- function fncDrawUOM(sPKey, oData)/** * Draw Qty Box for UOM Table * * @authorjohns * @since3/17/2011 * * @returnsvoid */function fncDrawQtyBox(sPKey, oProdObject, sPrefix, UoMconversion) {try {var sQtyDisplayType = oProdObject.qtyDisplayType;var sEachField;if(sPrefix == 'sales_') {sEachField = oProdObject.uomSales;} else if(sPrefix.indexOf('uom') >= 0) {sEachField = UoMconversion;} else {sEachField = oProdObject.uomStd;}/** * Qty Input Display var */var sQtyInputHtml = '';var iVal = '';var sMinAttr = ' min="1"';var sMaxAttr = '';var sStepAttr = '';// Set initial qty to 1 if only one UOM is being displayedif (bOnlyShowSalesUOM) {iVal = '1';}if(oProdObject.min_order_qty > 0) {iVal = oProdObject.min_order_qty;sMinAttr = ' min="' + iVal +'"';}if(oProdObject.max_order_qty > 0) {sMaxAttr = ' max="' + oProdObject.max_order_qty +'"';}if(oProdObject.qty_increment > 0) {sStepAttr = ' step="' + oProdObject.qty_increment +'"';}if (bUseQtyByUnitQtyDisplay) {if (sQtyDisplayType == 'sets') {sQtyInputHtml += ' @';sQtyInputHtml += ' ' + sEachField + ' (s) each.';} else {sQtyInputHtml += ''} //- if (oData.qtyDisplayType == 'sets')} else {sQtyInputHtml += ''}return sQtyInputHtml;} catch (err) {alert('function: fncDrawQtyBox
      ' + err.message);return '';}} //- function fncDrawQtyBox(sPKey, oData, sEachField)/* * This will build out the Cart Options with comments * @auther - vinayakj * @since - 8/28/2012 */function buildCartOptWithComments(rowkey,sCartOptions,RowID) {if (jQuery('#parent_p_key').val() != '' && jQuery('#parent_p_key').val() !== undefined) {rowkey = jQuery('#parent_p_key').val();} else {rowkey = jQuery('#keys').val();}if (bUseChildCartOpts || bShowCartOpts) {buildCartOpt(rowkey);}} //- function buildCartOptWithComments(rowkey,sCartOptions,RowID)function buildCartOption(PKey, sOptions, Num) {/* * Get the cart options */aCartOpts = sOptions.split("|");/* * Clear the cart option container and start building it * with the new cart options */jQuery('#pc_cart_options_' + Num).remove('.atc').html('');var aOptInputs= Array();var aLimitIds= Array();/* * Loop all the cart options, and append each to the cart * option container. */for (var iOpt = 0, goTo = aCartOpts.length; iOpt < goTo; iOpt++) {aCartOpt = aCartOpts[iOpt].split('~');sDisplay= aCartOpt[0];sLabel= aCartOpt[1];sType= aCartOpt[2];sAnswers= aCartOpt[3];if (aCartOpt.length >= 4) {sCharLimit= aCartOpt[4];} //- if (aCartOpt.length >= 4)/* * Character Limit Logic */bUseLimit = (sCharLimit != '0' && sCharLimit != '' ? true : false);/* * Input Id */sOptId = 'cart_opt_' + iOpt + '_' + PKey;/* * Begin building this option */sHtml = '';/* * Append the option to the container */jQuery('#pc_cart_options_' + Num).append(sHtml);/* * Register char counter event listener */ if (bUseLimit) {jQuery('#' + sOptId).live('keyup', {optId: sOptId, optLimit: sCharLimit}, function (event) {limitChars(event.data.optId, event.data.optLimit, event.data.optId + '_limit');});}/* * Register input event listener */jQuery('#' + sOptId).live(sJsEvent, {optId: sOptId, pkey: PKey}, function (event) {buildCartOpt(event.data.pkey);});} //- for (var iOpt = 0, goTo = aCartOpts.length; iOpt < goTo; iOpt++)jQuery('#pc_cart_options_' + Num).append('');} //- function buildCartOption(PKey, sOptions, Num)function getCartOptOptions(sAnswers) {aAnswers = sAnswers.split(";");sHtml = '';for(i = 0, goTo = aAnswers.length; i < goTo; i++) {sHtml += '';}return sHtml;}//-getCartOptOptionsfunction limitChars(textid, limit, infodiv) {var text = jQuery('#' + textid).val();var textlength = text.length;if (textlength > limit) {jQuery('#' + infodiv).html('You cannot write more then '+limit+' characters!');jQuery('#' + textid).val(text.substr(0,limit));return false;} else {jQuery('#' + infodiv).html('You have '+ (limit - textlength) +' characters left.');return true;}}//-function limitCharsfunction fncProcessSizeProduct() {/* * if you need to use the thickbox for displaying, add the identifier to the list * at the bottom of this function to prevent "tb_init()" from being called multiple * times causing multiple instances of the window * @authorjohns * @since01/31/2013 * * @modifiedjohns * @since02/12/2013 * @noteIf you are just updating an anchor tag, then just add the selector * to the list at the bottom of this function. If you are actually * building the anchor tag, then call the initModalLinks/initImagePopup function *and pass the specific selector in a call to the initModalLinks/initImagePopup *function. */try{var sChildPKey = jQuery('#prod_opt2').val();var oProdInfo = window.oChildProds[sPKey];if (sPKey == '') {hideProductContainer();return false;}jQuery('#qty_box').attr('name', 'qty_' + sPKey);jQuery('#keys').val(sPKey);/* * Test if this is the "last" droplist being displayed */if (jQuery('#pc_cart_options_2').length > 0) {jQuery('#pc_cart_options_2').slideDown();/* * Change name to post item to the cart */jQuery('#cart_option_6C97C561210C494C93FAD139E73F5F21').attr('name','cart_option_' + sPKey);} //- if (jQuery('#pc_cart_options_2').length > 0)/* * SKU */if (bShowSku) {jQuery('#sku_container').html(sSkuLabel + '' + oProdInfo.sku + '');}if (bShowName) {jQuery('#child_nm_container').html('Name: ' + oProdInfo.name);}if (bUseChildDescriptionMain) {jQuery('#child_ds_container').html('Description: ' + oProdInfo.description);}/* * Cart */if (oProdInfo.showCart) {jQuery('#atc_container').show();} else {jQuery('#atc_container').hide();} //- if (oProdInfo.showCart)/* * Unit of Measure */if ('uomHTML' in oProdInfo && oProdInfo.uomHTML != '') jQuery('#detail_atc_standalone').html(oProdInfo.uomHTML);/* * Price */if (oProdInfo.showPrice) {iRetailPrice= parseFloat(oProdInfo.retail_price.replace('$',''));iPrice = parseFloat(oProdInfo.price.replace('$',''));if (iPrice < iRetailPrice) { if (false) {iPercent= (iRetailPrice - iPrice) / iRetailPrice;iPercentSaved= (iPercent * 100).toFixed(2);sDollarAmtText = '';if(false){sDollarAmtText = ' (' + (FormatCurrency(iListPrice - iPrice, true)) + ')';}if (false) {jQuery('#price_container').html('
      • ' + oProdInfo.price + '
      • List Price: ' + oProdInfo.retail_price + '
      • You Save: ' + iPercentSaved + '%'+ sDollarAmtText +'
      ');} else {jQuery('#price_container').html('
      • ' + oProdInfo.price + '
      • List Price: ' + oProdInfo.retail_price + '
      • You Save: ' + iPercentSaved + '%'+ sDollarAmtText +'
      ');}} else {if (false) {jQuery('#price_container').html('
      • ' + oProdInfo.price + '
      • List Price: ' + oProdInfo.retail_price + '
      ');} else {jQuery('#price_container').html('
      • ' + oProdInfo.price + '
      • List Price: ' + oProdInfo.retail_price + '
      ');}} //- if (0)} else {jQuery('#price_container').html('
      • ' + FormatCurrency(oProdInfo.price, true) + '
      ');} //- if (iPrice < iRetailPrice)} //- if (oProdInfo.showPrice)/* *Add hidden field for qty available to check back order. *@author pijushb *@since 9/28/2011 */ if (bShowBackOrderMessage) {jQuery('.qtyavailable').remove();jQuery('#idp_container').parent().append('') } //- if (bShowBackOrderMessage)// Check for a child description overrideapplyChildDescription(oProdInfo);if (bUseProductAliases && jQuery.trim(oProdInfo.pa_key) != '') {jQuery('#pa_id').val(oProdInfo.pa_key);jQuery('#pa_id').attr('name','pa_id_' + sPKey);} //- if (bUseProductAliases && jQuery.trim(oProdInfo.pa_key) != '')/* * Inventory */if (oProdInfo.showInventory) {jQuery('#idp_container').html(oProdInfo.invMsg);} //- if (oProdInfo.showInventory)if (bShowFavoriteLink && bShowChildFavoriteLink) {addFavoritesLink(sChildPkey);}/* * Displaying Config Data * @auther - vinayakj * @since - 5/2/2012 */if (bShowProdConfig) {if ('prod_config_droplist' in oProdInfo) {jQuery('#config_sections_container').html(htmlDecode(oProdInfo.prod_config_droplist));} else {jQuery('#config_sections_container').html('');}/* * Put Config Keys */if ('config_keys' in oProdInfo) {jQuery('#config_keys').val(oProdInfo.config_keys);}/* * Put use_parent_key */if ('use_parent_key' in oProdInfo) {jQuery('#use_parent_key').val(oProdInfo.use_parent_key);}/* * Put show_config_sections */if ('show_config_sections' in oProdInfo) {jQuery('#show_config_sections').val(oProdInfo.show_config_sections);}} //- if (bShowProdConfig)/* * reinitialize Thickbox after modifying the DOM; make this call only once to * prevent multiple instances of the window from showing * @authorjohns * @since01/31/2013 */if (bInitThickbox) {initModalLinks('#idp_container,#qtypricing');initImagePopup('#detail_photo_container');bInitThickbox = false;}updateQtyControls(2);} catch (oError) {alert("fncProcessSizeProduct-" + oError.message);hideProductContainer();}}//-function fncProcessSizeProductfunction fncSelectAddon() {//Update Design Key & Qtydocument.getElementById('design_keys_' + sGroup).value = sDesignKey;document.getElementById('design_qty_' + sGroup).name = 'ED8EF1597D7F4D0797F652145C64714C_' + sDesignKey + '_qty';}function InArray(vArray, vValue) {for (var iOpt = 0; iOpt < vArray.length; iOpt++) {if (vArray[iOpt] == vValue) {return true;}}return false;}function ResizeLoadingBG(bDisableDroplistForm) {if (bDisableDroplistForm === 'undefined') fncDisableDroplistForm();var oLBG = document.getElementById('detailloadingbg');var oLPic = document.getElementById('detailloadingpic');var popwidth = 200;if (window.innerHeight && window.scrollMaxY) {oLBG.style.width = document.body.scrollWidth;oLBG.style.height = window.innerHeight + window.scrollMaxY;} else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer MacoLBG.style.width = document.body.scrollWidth;oLBG.style.height = document.body.scrollHeight;} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and SafarioLBG.style.width = document.body.offsetWidth;oLBG.style.height = document.body.offsetHeight;}if (self.innerHeight) {// all except ExploreroLPic.style.left = (self.innerWidth / 2) - (popwidth / 2);oLPic.style.top = self.pageYOffset + (self.innerHeight / 4);} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict ModeoLPic.style.left = (document.documentElement.clientWidth / 2) - (popwidth / 2);oLPic.style.top = document.documentElement.scrollTop + (document.documentElement.clientHeight / 4);} else if (document.body) { // other ExplorersoLPic.style.left = (document.body.clientWidth / 2) - (popwidth / 2);oLPic.style.top = document.body.scrollTop + (document.body.clientHeight / 4);}oLBG.style.display = 'block';oLPic.style.display = 'block';}function HideLoading() {document.getElementById('detailloadingbg').style.display = 'none';document.getElementById('detailloadingpic').style.display = 'none';fncEnableDroplistForm();}function createXMLDoc(XMLFile) {// code for IEif (window.ActiveXObject) {xmlDoc = new ActiveXObject("Microsoft.XMLDOM");xmlDoc.loadXML(XMLFile);// code for Mozilla, Firefox, Opera, etc.} else if (document.implementation && document.implementation.createDocument) {//xmlDoc = document.implementation.createDocument("", "", null);var parser = new DOMParser();var xmlDoc = parser.parseFromString(XMLFile, "text/xml");} else {alert('Your browser cannot handle this script.');}return(xmlDoc);}function getNodeValue(xmlDoc, tagName, index) {if (xmlDoc.getElementsByTagName(tagName)[index].childNodes[0] != null)return xmlDoc.getElementsByTagName(tagName)[index].childNodes[0].nodeValue;elsereturn '';}function MakeAJAXRequest(fncHandleData, strPage, bAsync, aShow, aHide, bDisable, errorMsg, xmlDoc, vID) {ResizeLoadingBG();xmlHttp = GetXmlHttpObject();if (xmlHttp == null) {alert ("Your browser does not support AJAX.");return;}if (bDisable == null) {bDisable = false;}var i;try{if (aShow != null) {for (i = 0; i < aShow.length; i++) {if (bDisable == true) {document.getElementById(aHide[i]).disabled = false;} else {document.getElementById(aShow[i]).style.display = 'block';}}}}catch (err) {alert(err.message);}try{if (aHide != null) {for (i = 0; i < aHide.length; i++) {if (bDisable == true) {document.getElementById(aHide[i]).disabled = true;} else {document.getElementById(aHide[i]).style.display = 'none';}}}}catch (err) {alert(err.message);}xmlHttp.open('get', strPage + '&r_id=' + genID(), bAsync);xmlHttp.onreadystatechange = function () { HandleData(fncHandleData, errorMsg, vID) };if (xmlDoc == undefined) {xmlDoc = null;}xmlHttp.send(xmlDoc);}function HandleData(fncHandleData, errorMsg, vID) {if (errorMsg == undefined || errorMsg == "") errorMsg = "An error has occured." if (xmlHttp.readyState == 4) { //Finished loading the response//var xmlDoc = xmlHttp.responseXML.documentElement;//alert(xmlHttp.responseText);xmlDoc = createXMLDoc(xmlHttp.responseText);if (xmlDoc == null){alert(errorMsg);HideLoading()} else {fncHandleData(xmlDoc, vID);}}}function NumbersOnly(myfield, e) {var key;var keychar;if (window.event) { key = window.event.keyCode;} else if (e){ key = e.which;} else { return true;}keychar = String.fromCharCode(key);// control keysif ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 27)) {//alert('control keys');return true;// no enters} else if ((key == 13) || (key == 32)) {//alert('no enters');return false;// only one deicmal} else if ((keychar == '.' && myfield.value.indexOf('.')>-1) || (keychar == '.' && !bAllowDecimals)) {//alert('only one deicmal');return false;// numbers} else if (("0123456789.").indexOf(keychar) > -1) {//alert('numbers');return true;// isNaN} else if (isNaN(myfield.value)) {//alert('isNaN');myfield.value = '';return false;} else {//alert('Else');return false;}}// Open lightboxfunction fncDrawFindPopup(popwidth,popheight,searchtype,showsearch,key,qstring) {//document.getElementById('lb_open_type').value = searchtype;//var ckey = childkey.replace('?', '');lightbox_pageScrollX = document.body.scrollLeft;lightbox_pageScrollY = document.body.scrollTop;lightbox_bIsOpen = true;document.getElementById('popup').style.width=popwidth + 'px';document.getElementById('popup').style.height=popheight + 'px';document.getElementById('lostfocus').style.display = 'block';document.getElementById('popup').style.display = 'block';lightbox_Position();document.getElementById('searchtype').value=searchtype;//document.getElementById('lightbox_header').innerHTML=header;document.getElementById('popup_search_text').value='';document.getElementById('popupdesc').innerHTML='';if (showsearch == '0') {document.getElementById('popup_search_section').style.display='none';}// Fix IE for DTD 4.0if (ie && document.documentElement && document.compatMode == 'CSS1Compat') {document.getElementById('popup_search_results_container').style.height = (document.getElementById('popup_search_results_container').offsetHeight - 1 - (document.getElementById("popupheader").offsetHeight + document.getElementById("popupdesc").offsetHeight + document.getElementById("popup_search_section").offsetHeight)) + 'px';}document.getElementById('lostfocus').style.visibility = 'visible';document.getElementById('popup').style.visibility = 'visible';//document.getElementById('popup_search_results').innerHTML = '
  • Tough Country Can-Am Defender Front Bumper (2024)

    FAQs

    Are tough country bumpers good? ›

    Excellent quality bumper I'm rarely happy when I order blindly this was a nice surprise. My truck is whitetail protected!! Easy to install but don't drop it on your self it's heavy.

    Where are tough country bumpers made? ›

    Texas-Based Manufacturer of Truck, Jeep & UTV Bumpers & Accessories | 20 Years Strong | TAG US: #ToughCountry 💪

    Are polyurethane bumpers worth it? ›

    Urethane bumpers are ideal for applications that require outstanding shock absorption, rebound, and abrasion resistance. Urethane bumpers are used in a variety of applications, including automated manufacturing systems, far surpassing the performance of rubber and steel.

    Top Articles
    Latest Posts
    Article information

    Author: Dong Thiel

    Last Updated:

    Views: 6503

    Rating: 4.9 / 5 (79 voted)

    Reviews: 94% of readers found this page helpful

    Author information

    Name: Dong Thiel

    Birthday: 2001-07-14

    Address: 2865 Kasha Unions, West Corrinne, AK 05708-1071

    Phone: +3512198379449

    Job: Design Planner

    Hobby: Graffiti, Foreign language learning, Gambling, Metalworking, Rowing, Sculling, Sewing

    Introduction: My name is Dong Thiel, I am a brainy, happy, tasty, lively, splendid, talented, cooperative person who loves writing and wants to share my knowledge and understanding with you.