- Description
- Fits
- Reviews
- Warranty
- Warning
Lifting your ATV is the ultimate statement in off-roading. This lift kit will meet your style and needs by providing unstoppable performance on the trails while making you stand out. This trail friendly lift system is built to help you hit the gnarly holes you've dreamed of and get you in and OUT of deep mud.
Built with the stability and quality you have come to expect from High Lifter, we provide a precision-engineered lift system to give you that true, full lift and create a ride perfectly suited to you. Ride higher knowing you can tackle any challenges from rough to deep terrain.
Our engineers have spent over 21 years perfecting the ultimate lift to provide maximum performance, durability, and strength while keeping installation simple and easy. Discover for yourself the reason off-road enthusiasts keep choosing High Lifter lift kits. When you do, you'll have the confidence to ride harder and go deeper.
2" Signature Series Lift Kit Features:
- Zinc plating or powder coat finishes for long life in rugged conditions
- All installation hardware included
- Detailed step by step photo instructions
- Signature Series include High Lifter logo precision laser cut
- Backed by High Lifter Lifetime Warranty
Tire Fitment:
Up to 28"
Our stated tire fitment guide is a general fitment and is in no way guaranteed. Tires and lifts vary by manufacture and tire fitment can be affected by other modifications. Always verify your brand of tires, lift, and other modifications prior to making a buying decision.
Note: NOT compatible with FXR models
2016 Kawasaki Mule PRO-FXT
2016 Kawasaki Mule PRO-FXT EPS
2016 Kawasaki Mule PRO-FXT EPS LE
2016 Kawasaki Mule PRO-FX EPS LE
2016 Kawasaki Mule PRO-FX EPS
2016 Kawasaki Mule PRO-FX
2016 Kawasaki Mule PRO-DXT EPS LE
2016 Kawasaki Mule PRO-DXT EPS
2016 Kawasaki Mule PRO-DXT
2016 Kawasaki Mule PRO-DX EPS LE
2016 Kawasaki Mule PRO-DX
2022 Kawasaki Mule PRO-FX
2022 Kawasaki Mule PRO-FX EPS
2022 Kawasaki Mule PRO-FX EPS LE
2022 Kawasaki Mule PRO-FXT
2022 Kawasaki Mule PRO-FXT EPS
2022 Kawasaki Mule PRO-FXT EPS LE
2022 Kawasaki Mule PRO-FXT RANCH
2022 Kawasaki Mule PRO-FXT Ranch Platinum
2022 Kawasaki Mule PRO-FXT EPS Camo
2023 Kawasaki Mule PRO-FX
2023 Kawasaki Mule PRO-FX EPS
2023 Kawasaki Mule PRO-FX EPS LE
2023 Kawasaki Mule PRO-FXT
2023 Kawasaki Mule PRO-FXT EPS
2023 Kawasaki Mule PRO-FXT EPS Camo
2023 Kawasaki Mule PRO-FXT EPS LE
2023 Kawasaki Mule PRO-FXT RANCH
2023 Kawasaki Mule PRO-FXT Ranch Platinum
2022 Kawasaki Mule Pro-DX
2022 Kawasaki Mule Pro-DXT
2022 Kawasaki Mule Pro-DXT EPS
2022 Kawasaki Mule Pro-DXT EPS FE
2023 Kawasaki Mule PRO-DXT EPS Diesel FE
2015 Kawasaki Mule PRO-FXT EPS
2015 Kawasaki Mule PRO-FXT EPS LE
2015 Kawasaki Mule PRO-FXT
2017 Kawasaki Mule PRO-FXT
2017 Kawasaki Mule PRO-FXT EPS
2017 Kawasaki Mule PRO-FXT EPS LE
2017 Kawasaki Mule PRO-FX EPS LE
2017 Kawasaki Mule PRO-FX EPS
2017 Kawasaki Mule PRO-FX
2017 Kawasaki Mule PRO-DXT EPS LE
2017 Kawasaki Mule PRO-DXT EPS
2017 Kawasaki Mule PRO-DXT
2017 Kawasaki Mule PRO-DX EPS LE
2017 Kawasaki Mule PRO-DX EPS
2017 Kawasaki Mule PRO-DX
2017 Kawasaki Mule PRO-FXT RANCH
2018 Kawasaki Mule PRO-FXT
2018 Kawasaki Mule PRO-FXT EPS
2018 Kawasaki Mule PRO-FXT EPS LE
2018 Kawasaki Mule PRO-FX RANCH
2018 Kawasaki Mule PRO-FXT RANCH
2018 Kawasaki Mule PRO-FX EPS LE
2018 Kawasaki Mule PRO-FX EPS
2018 Kawasaki Mule PRO-FX
2018 Kawasaki Mule PRO-DXT EPS LE
2018 Kawasaki Mule PRO-DXT EPS
2018 Kawasaki Mule PRO-DXT
2018 Kawasaki Mule PRO-DX EPS LE
2018 Kawasaki Mule PRO-DX EPS
2018 Kawasaki Mule PRO-DX
2019 Kawasaki Mule PRO-FXT RANCH
2019 Kawasaki Mule PRO-FX
2019 Kawasaki Mule PRO-FXT EPS
2019 Kawasaki Mule PRO-FXT EPS LE
2019 Kawasaki Mule PRO-FX EPS LE
2019 Kawasaki Mule PRO-FX EPS
2020 Kawasaki Mule PRO-FX
2020 Kawasaki Mule PRO-FX EPS
2020 Kawasaki Mule PRO-FX EPS LE
2020 Kawasaki Mule PRO-FXT
2020 Kawasaki Mule PRO-FXT EPS
2020 Kawasaki Mule PRO-FXT EPS LE
2020 Kawasaki Mule PRO-FXT RANCH
2020 Kawasaki Mule PRO-DX EPS
2021 Kawasaki Mule PRO-FX
2021 Kawasaki Mule PRO-FX EPS
2021 Kawasaki Mule PRO-FX EPS LE
2021 Kawasaki Mule PRO-FXT
2021 Kawasaki Mule PRO-FXT EPS
2021 Kawasaki Mule PRO-FXT EPS LE
2021 Kawasaki Mule PRO-FXT RANCH
2021 Kawasaki Mule PRO-FXT EPS Camo
2021 Kawasaki Mule PRO-DX EPS Diesel
2021 Kawasaki Mule PRO-DXT Diesel
2021 Kawasaki Mule PRO-DXT EPS Diesel
2021 Kawasaki Mule PRO-DXT EPS Diesel FE
Product Ratings and Reviews
Add a Review
Add a Review
4.8 out of 5 stars
- Tuesday, March 23, 2021
- Jacob Owens
This is a great bracket lift. I had a competitors 4in lift on my mule and it does not space the shocks out like the highlifter does, so it sags BAD! The mule pros have a lot of body roll due to no sway bar anyways. The highlifter 2in raised my mule higher than the Competitors 4in and eliminated most of the body roll. If you are looking for a lift, this is the only one to buy. I paired mine with the forward and rear A arms, running 33s no problem.
- Friday, January 1, 2021
- Ernie Freebury
The 2" lift kit provided almost a 4" lift. Heavy built materials. You will need second person to help align holes but is a simple install
- Friday, July 24, 2020
- bill doherty
instructions were mostly clear (drawings can be better than pictures in this case) and parts were exactly what stated and fit perfectly! perhaps add an indicator on what size wrenches are needed for the bolts you provide (they are not the same size as existing bolts)...
- Sunday, October 27, 2019
- Steve Kane
Installed 2†lift and the results are better tighter turn radius, better overall ride, actual lift 3.5 inches. Great lift kit. Kawasaki Mule Pro FXR 2018
- Wednesday, January 18, 2017
Worked perfect. Took us less than two hours to install. Had room for 28" tires!!
Click here for High Lifter's Limited Lifetime Warranty.
WARNING:This product can expose you to chemicals including Chromium, which is known in the State of California to cause cancer and birth defects, or other reproductive harm. For more information go towww.p65warnings.ca.gov
Related Products
- Options »
Millar LED Bluetooth Rock Lights
- In Stock
High Lifter Pro Series Tire Sealant - 32 oz. Bottle
';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 + '
Available Sizes
';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: '41B399B8DAF3419CA068DE1B764BB7A7',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('' + 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 = '- ' + FormatCurrency(oProdInfo.price, true) + 'USD' + cPrice + ' ' + sPriceBreakHTML + '
- List Price: ' + cListPrice + '
- ' + sYouSaveText + '
- ' + FormatCurrency(oProdInfo.price, true) + 'USD' + cPrice + ' ' + sPriceBreakHTML + '
- List Price: ' + cListPrice + '
- ' + sYouSaveText + '
- ' + FormatCurrency(oProdInfo.price, true) + 'USD' + cPrice + ' ' + sPriceBreakHTML + '
- List Price: ' + cListPrice + '
- ' + FormatCurrency(oProdInfo.price, true) + 'USD' + cPrice + ' ' + sPriceBreakHTML + '
- List Price: ' + cListPrice + '
- ' + FormatCurrency(oProdInfo.price, true) + 'USD' + FormatCurrency(oProdInfo.price, true) + ' ' + sPriceBreakHTML + '
- ' + FormatCurrency(oProdInfo.price, true) + 'USD' + FormatCurrency(oProdInfo.price, true) + ' ' + sPriceBreakHTML + '
').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 + ' - ' + oProdInfo.price + '
- List Price: ' + oProdInfo.retail_price + '
- You Save: ' + iPercentSaved + '%'+ sDollarAmtText +'
- ' + oProdInfo.price + '
- List Price: ' + oProdInfo.retail_price + '
- You Save: ' + iPercentSaved + '%'+ sDollarAmtText +'
- ' + oProdInfo.price + '
- List Price: ' + oProdInfo.retail_price + '
- ' + oProdInfo.price + '
- List Price: ' + oProdInfo.retail_price + '
- ' + FormatCurrency(oProdInfo.price, true) + '
');} //- 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('');}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("
"} else {jQuery('#qty_box').attr("min", "0");}if (optionMax > 0) {jQuery('#qty_box').attr("max", optionMax);sQtyControlsText += sMaxQtyMessage.replace("
"} else {jQuery('#qty_box').attr("max", "");}if (optionStep > 0) {jQuery('#qty_box').attr("step", optionStep);if (optionStep != 1) {sQtyControlsText += sIncrementQtyMessage.replace("
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 = '' + sUnitHeader + ' | ' + sQtyPerUnitColumn + '' + sUnitPriceColumnLabel + ' | Qty | 1 | ';} //- if (bShowQtyPerUnitColumn)/* * draw Standard UOM row */if ('uomStd' in oData) {sUOMHtml += '
' + oData.uomStd + ' | ' + sQtyPerUnitColumn + '' + oData.price + ' | ';sUOMHtml += fncDrawQtyBox(sPKey, oData, '');sUOMHtml += ' | ' + oData.uomSalesConversion + ' | ';} //- if (bShowQtyPerUnitColumn)if (typeof oData.uomSalesUnitPrice == 'undefined') {iUnitPrice = 0;} else {iUnitPrice = oData.uomSalesUnitPrice} //- if (typeof oUomConfig.uomSalesUnitPrice == 'undefined')/* * draw UOM Sales row */sUOMHtml += '
' + oData.uomSales + ' | ' + sQtyPerUnitColumn + '$' + parseFloat(iUnitPrice).toFixed(2) + ' | ';sUOMHtml += fncDrawQtyBox(sPKey, oData, 'sales_');sUOMHtml += ' | ' + iQty.toFixed() + ' | ';} 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 += '
' + sUnitHTML + ' | ' + sQtyPerHTML + '' + sPriceHTML + ' | ';sUOMHtml += fncDrawQtyBox(sPKey, oData, 'uom' + sThisUom + '_', oUomConfig.conversion);sUOMHtml += ' | 1 | '}sUOMHtml += '
' + oData.uomSales + ' | ' + sQtyPerUnitColumn + '$' + parseFloat(oData.uomSalesUnitPrice * oData.uomSalesConversion).toFixed(2) + ' | ';sUOMHtml += fncDrawQtyBox(sPKey, oData, '');sUOMHtml += ' |
' + 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_41B399B8DAF3419CA068DE1B764BB7A7').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('