Sansin SDF Naturals Topcoat (2023)

Related Products

  • (Video) How To Stain Siding Or Shingles Easily - Environmentally Friendly - Sansin

    ADD-2 Mildewcide Additive

    Options »
  • (Video) Sansin WoodForce Weathering Intermix System for Exteriors – Overview
  • Sansin Foundation

    (Video) Sansin on IPE

    Options »
  • Sansin SDF Wood Finish

    Options »

';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 + '

(Video) Best Practices: Protecting Log & Timbers with Sansin and Davidson Log & Timber Artisans

' + 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: '8D85518C44E149D7A02D6ABDF00E5D82',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 = $('Sansin SDF Naturals Topcoat (8)').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.*/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_8D85518C44E149D7A02D6ABDF00E5D82').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 + '

(Video) How to Choose the Best Finish for Outdoor Projects

');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 (true) {iPercent= (iListPrice - iPrice) / iListPrice;iPercentSaved= (iPercent * 100).toFixed(0);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 (true) {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 (true) {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 (1)} 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('

      Sansin SDF Naturals Topcoat (9)

      ');}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);} 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_8D85518C44E149D7A02D6ABDF00E5D82').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 (true) {iPercent= (iRetailPrice - iPrice) / iRetailPrice;iPercentSaved= (iPercent * 100).toFixed(0);sDollarAmtText = '';if(false){sDollarAmtText = ' (' + (FormatCurrency(iListPrice - iPrice, true)) + ')';}if (true) {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 (true) {jQuery('#price_container').html('
      • ' + oProdInfo.price + '
      • List Price: ' + oProdInfo.retail_price + '
      ');} else {jQuery('#price_container').html('
      • ' + oProdInfo.price + '
      • List Price: ' + oProdInfo.retail_price + '
      ');}} //- if (1)} 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 = '
  • FAQs

    How long does it take for sansin SDF to dry? ›

    Sansin SDF Wood Finish
    Application Temp:Apply in proper conditions; ideal temperature of 50-75ºF with relative humidity of approximately 50%.
    Drying Time:At 68ºF: Between Coats: 24 hours. To Touch: 4-6 hours. Longer drying time needed in high humidity or low temperature.
    8 more rows

    What temperature can you apply sansin stain? ›

    Apply in proper conditions, ideal temperature of 21ºC (70ºF) and relative humidity of approximately 50%. For best results, apply a flood coat of Sansin SDF Topcoat, to a point of maximum absorption. Always back-brush the surface a few minutes after application.

    How long does it take for sansin to dry? ›

    Allow 1 hour for drying in proper conditions when the temperature is 70°F (21°C) and the relative humidity is higher than 50%. For deeper color request a stronger formula from your dealer. When using a tinted product be sure to stir well before and during application.

    What is the difference between sansin classic and SDF? ›

    Sansin offers a range of choices: Classic is a deep-penetrating finish that delivers a superior oil-like finish for teak furniture; SDF is a beautiful one-coat penetrating finish that is easy to apply and maintain; and ENS is a two-coat barrier finish that offers exceptional UV protection.

    How quickly does SDF turn black? ›

    How long does it take for SDF to turn black? The cavity will darken to nearly black permanently within seconds, it can get darker over the course of the next 24 hours. SDF may cause short-term irritation of the gums and may temporarily stain lips, cheeks or gums, usually fading in 2-3 weeks.

    Do you rinse SDF after application? ›

    Apply SDF to a lesion for 2-3 minutes. A rubbing motion is not necessary, but the lesion must be kept moist with the SDF for the entire 2-3 minutes. 7. At the end of 2-3 minutes, it is fine to rinse teeth with water, but it is not necessary.

    Videos

    1. Sansin Oil Rub Stain Demo
    (H & S Wudwerx)
    2. How To Treat and Stain Western Red Cedar
    (DunnLumber1907)
    3. Bunkie Life: How to Stain a Bunkie
    (Bunkie Life)
    4. How to Apply Log Home Stain
    (Perma-Chink Systems)
    5. BC LTBIA Seminar 5 - July 22, 2021 - Wood Finishing and the Maintenance Cycle
    (BC LOG and TIMBER Building Industry Association)
    6. WHITE WAX vs WHITE WASH vs PICKLED? 3 ways to get a lighter wood finish!
    (Transcend Furniture Gallery)

    References

    Top Articles
    Latest Posts
    Article information

    Author: Madonna Wisozk

    Last Updated: 08/28/2023

    Views: 6570

    Rating: 4.8 / 5 (68 voted)

    Reviews: 83% of readers found this page helpful

    Author information

    Name: Madonna Wisozk

    Birthday: 2001-02-23

    Address: 656 Gerhold Summit, Sidneyberg, FL 78179-2512

    Phone: +6742282696652

    Job: Customer Banking Liaison

    Hobby: Flower arranging, Yo-yoing, Tai chi, Rowing, Macrame, Urban exploration, Knife making

    Introduction: My name is Madonna Wisozk, I am a attractive, healthy, thoughtful, faithful, open, vivacious, zany person who loves writing and wants to share my knowledge and understanding with you.