K-Flex 6RX038068, Foam Pipe Insulation, 3/4" x 6', 3/8" W, Lennox 29P71 (2024)

Lennox International, inc.

Site mapCanada Accessibility PolicyPrivacy PolicyTerms of Use

"; // Converts HTML string to DOM Nodes var disabledProductPLPMessageContainer = createEmergencyProductAlert(disabledProductPLPMessage); // Insert after the shipping information insertCustomAlert(disabledProductPLPMessageContainer, shippingElement); } // Function to show PDP Messaging on PDP function generateDisabledProductMessagePDP(product) { // Find the product box var shippingElement = document.querySelector(".product-actions .OT-Product-Shipping-Pickup"); // Hide the shipping information shippingElement.style.display = "none"; let alertMessage = productAlertMessages[product] ?? defaultAlertMessage; // This is a Cirrus alert var disabledProductPDPMessage = "

Temporarily Restricted

" + alertMessage + "

"; // Converts HTML string to DOM Nodes var disabledProductPDPMessageContainer = createEmergencyProductAlert(disabledProductPDPMessage); // Insert after the shipping information insertCustomAlert(disabledProductPDPMessageContainer, shippingElement); } // Automatically create the alert on the quick order dropdown function createQuickOrderError() { // Find a place to insert the error message var errorPosition = document.getElementById("valueretention"); // This is a Cirrus alert var disabledQuickOrderMessage = "

Temporarily Restricted

Call Customer Service for availability at 1-800-4LENNOX.

"; // Converts HTML string to DOM Nodes var disabledQuickOrderMessageContainer = createEmergencyProductAlert(disabledQuickOrderMessage); disabledQuickOrderMessageContainer.style.display = "none"; disabledQuickOrderMessageContainer.id = "quick-order-product-error-box"; // Insert after the "Add more entry fields" link. Only insert the error message once! if(document.getElementById("quick-order-product-error-box") === null) { insertCustomAlert(disabledQuickOrderMessageContainer, errorPosition); } } // Automatically create the alert on the quick order page function createLargeQuickOrderError() { // Find a place to insert the error message var errorPosition = document.querySelector("#quickOrderForm .form-list"); // This is a Cirrus alert var disabledQuickOrderMessage = "

Temporarily Restricted

Call Customer Service for availability at 1-800-4LENNOX.

"; // Converts HTML string to DOM Nodes var disabledQuickOrderMessageContainer = createEmergencyProductAlert(disabledQuickOrderMessage); disabledQuickOrderMessageContainer.style.display = "none"; disabledQuickOrderMessageContainer.id = "quick-order-large-product-error-box"; // Insert after the list of input boxes. Only insert the error message once! if(document.getElementById("quick-order-large-product-error-box") === null) { insertCustomAlert(disabledQuickOrderMessageContainer, errorPosition); } } // Controls the showing of the specific alerts function showProductAlertMessage(el) { // Find the element and show it. if(document.getElementById(el) !== null) { document.getElementById(el).style.display = "block"; } } // Controls the hiding of the quick order dropdown alert function hideProductAlertMessage(el) { // Find the element and hide it. if(document.getElementById(el) !== null) { document.getElementById(el).style.display = "none"; } } /* ************************** Emergency Product App ************************** */ // Wait for the site to load window.addEventListener('load', function() { // If the emergency disabled products array is active, disable PDP/PLP/Cart page if(emergencyDisabledProducts.length > 0) { // Loop through all emergency products emergencyDisabledProducts.forEach(function(product) { // This ID is found on the PDP and PLP pages. It blocks the add to cart button var createButtonID = "#product-button-" + product; // If the element exists, begin blocking the product if(document.querySelector(createButtonID) !== null) { // Alert message here // Disable the Add To Cart button. There are multiple ajax requests that fire to activate this so its on an interval to overwrite them as they happen. // Could probably just delete the button (to remove the event listeners) and create a new one. This would remove the timer. setInterval(function() { if(document.querySelector(createButtonID) !== null) { document.querySelector(createButtonID).disabled = true; if($(createButtonID).parent().parent().find('input[type="checkbox"]') !='undefined'){$(createButtonID).parent().parent().find('input[type="checkbox"]').attr('disabled', true);} } }, 500); // Find the Product column on the PLP template and append the alert if(document.querySelector(".page-productListing") !== null) { generateDisabledProductMessagePLP(product); } // Find the Product column in the Search page template and append the alert if(document.querySelector(".page-search") !== null) { generateDisabledProductMessagePLP(product); } // Find the Product page template and append the alert if(document.querySelector(".page-productDetails .product-content #productStatus-" + product) !== null) { generateDisabledProductMessagePDP(product); } } // Find the related products carousel and remove the products from it. Removing the DOM elements prevents a layout issue with the product carousel if(document.querySelector(".page-productDetails .product-collateral [data-product-id='" + product + "']") !== null) { document.querySelector(".page-productDetails .product-collateral [data-product-id='" + product + "']").remove(); } // This class is on the cart page and will scan for a length if(document.querySelector(".page-cartPage [data-product-id='" + product + "']") !== null) { // OT Cart has custom cart code that needs to be scanned through before applying the alert bar if(document.getElementById("OT-Cart__OrderSummer") !== null) { // Loop through both checkout buttons and disable them document.querySelectorAll(".checkoutButtonForOT").forEach(function(el) { // Disables all click events el.addEventListener("click", function(e) {e.preventDefault();}); // CSS class for styling el.classList.add("disabled"); }); // Find all the specific product rows and append the alert after it // Some rows in the OT cart are not products if(document.querySelector("[data-code='" + product + "']") !== null) { document.querySelectorAll("[data-code='" + product + "']").forEach(function(targetRow) { // The `data-bundleitem` seems to denote product rows if(targetRow.getAttribute("data-bundleitem") !== null) { // Remove styling targetRow.style.border = "0"; // This is a Cirrus alert // OT Cart has 6 columns instead of 5 in the normal cart, so set the colspan to 6 var outOfStockAlert = "

Item Temporarily Restricted

Call Customer Service for availability at 1-800-4LENNOX. Remove the item to complete checkout.

"; // Converts HTML string to DOM Nodes var outOfStockAlertContainer = document.createElement("tr"); outOfStockAlertContainer.classList.add("cirrus"); outOfStockAlertContainer.innerHTML = outOfStockAlert; // Insert alert after the product row insertCustomAlert(outOfStockAlertContainer, targetRow); } }); } } else { // Loop through both checkout buttons and disable them document.querySelectorAll(".checkoutButton").forEach(function(el) { // Disables all click events el.addEventListener("click", function(e) {e.preventDefault();}); // CSS class for styling el.classList.add("disabled"); }); // Find all the specific product rows and append the alert after it // Mobile has a different cart view. It uses divs for some reason if(window.location.hostname.split(".")[0] === "m") { if(document.querySelector("[data-product-id='" + product + "']") !== null) { document.querySelectorAll("[data-product-id='" + product + "']").forEach(function(targetRow) { // Remove styling targetRow = targetRow.parentNode; targetRow.style.border = "0"; // This is a Cirrus alert var outOfStockAlert = "

Item Temporarily Restricted

Call Customer Service for availability at 1-800-4LENNOX. Remove the item to complete checkout.

"; // Converts HTML string to DOM Nodes var outOfStockAlertContainer = document.createElement("div"); outOfStockAlertContainer.classList.add("cirrus"); outOfStockAlertContainer.innerHTML = outOfStockAlert; // Insert alert after the product row insertCustomAlert(outOfStockAlertContainer, targetRow); }); } } else { if(document.querySelector("[data-code='" + product + "']") !== null) { document.querySelectorAll("[data-code='" + product + "']").forEach(function(targetRow) { // Remove styling targetRow.style.border = "0"; // This is a Cirrus alert var outOfStockAlert = "

Item Temporarily Restricted

Call Customer Service for availability at 1-800-4LENNOX. Remove the item to complete checkout.

"; // Converts HTML string to DOM Nodes var outOfStockAlertContainer = document.createElement("tr"); outOfStockAlertContainer.classList.add("cirrus"); outOfStockAlertContainer.innerHTML = outOfStockAlert; // Insert alert after the product row insertCustomAlert(outOfStockAlertContainer, targetRow); }); } } } } // Cross Sell Up Sell setInterval(function() { // Remove with CSS from Cross Sell Up Sell Add to Cart modal. The interval continues to fire so it can find ajax responses and hide them as well. // Setting the CSS property 'display' to 'none' does not seem to cause a layout issue with Cross Sell Up Sell. if(document.querySelector("#add-to-cart #product-tile-" + product) !== null) { document.querySelector("#add-to-cart #product-tile-" + product).style.display = "none"; } }, 500); // Mobile accessories button needs to filter through and remove the items. CSS alone will cause layout issues on mobile // This is on a timeout to allow for the DOM to finish loading ajax requests setTimeout(function() { if(window.location.hostname.split(".")[0] === "m") { // The accessory item is inside of a parent div so the entire element needs to be removed if(document.querySelector("[data-acc-product-id='" + product + "']") !== null) { document.querySelector("[data-acc-product-id='" + product + "']").parentNode.remove(); } // Some accessories are generated with AJX so this interval will remove them if detecting a click event if(document.querySelector(".page-productDetails #accessories") !== null) { document.querySelector(".page-productDetails #accessories").addEventListener("click", function() { setInterval(function() { if(document.querySelector("[data-acc-product-id='" + product + "']") !== null) { document.querySelector("[data-acc-product-id='" + product + "']").parentNode.remove(); } }, 500); }) } } else { // Remove the accessory element on desktop to prevent CSS layout issues if(document.querySelector("[data-acc-product-id='" + product + "']") !== null) { document.querySelector("[data-acc-product-id='" + product + "']").remove(); } // Some accessories are generated with AJX so this interval will remove them if detecting a click event if(document.querySelector(".page-productDetails #accessories") !== null) { document.querySelector(".page-productDetails #accessories").addEventListener("click", function() { setInterval(function() { if(document.querySelector("[data-acc-product-id='" + product + "']") !== null) { document.querySelector("[data-acc-product-id='" + product + "']").remove(); } }, 500); }) } } }, 500); }); // Block Quick Order // This is a placeholder variable so we can detect when it turns into an interval var scanForBlockedProducts = null; // Only fire when the quick order menu is available if(document.querySelector("[href='#quick-order-menu']") !== null) { document.querySelector("[href='#quick-order-menu']").addEventListener("click", function() { // The "shown" class doesnt appear immediately so use a timer and wait for that to finish setTimeout(function() { // Grab all the classes and convert from NodeList to an Array var listOfQuickOrderClasses = document.getElementById("quick-order-menu").classList; listOfQuickOrderClasses = Array.from(listOfQuickOrderClasses); // Generates the alert bar and appends it to the DOM. It is hidden by default createQuickOrderError(); // If the quick order page is visible, begin scanning every 500ms if(listOfQuickOrderClasses.includes("shown")) { scanForBlockedProducts = setInterval(function() { // Set base variable. If this is changed to "true" then the error will show. If not, the error will hide. var blockedProductExists = false; // Scan through all input fields. Initially this was an event listener but there are extra events that occur when the system tries to validate the catalog number document.querySelectorAll("#quick-order-menu input").forEach(function(el) { // If the item is in our emergency product list, turn the input field red if(emergencyDisabledProducts.includes(el.value.toUpperCase())) { blockedProductExists = true; el.classList.add("error"); } else { el.classList.remove("error"); } }); // If there is at least one blocked product, show the alert message if(blockedProductExists) { document.querySelector(".quick-order-menu").disabled = true; showProductAlertMessage("quick-order-product-error-box"); } else { document.querySelector(".quick-order-menu").disabled = false; hideProductAlertMessage("quick-order-product-error-box"); } // If the user clicks off or closes the quick order dropdown, clear the interval if(!Array.from(document.getElementById("quick-order-menu").classList).includes("shown")) { clearInterval(scanForBlockedProducts); } }, 500); } }, 500) }); } // Quick Order Page if(document.querySelector(".page-quickOrder") !== null) { // Create the alert message and append to the DOM. It is hidden by default createLargeQuickOrderError(); // Begin scanning the list for blocked products setInterval(function() { var blockedLargeProductExists = false; document.querySelectorAll("#quickOrderForm input").forEach(function(el) { // If the item is in our emergency product list, turn the input field red if(emergencyDisabledProducts.includes(el.value.toUpperCase())) { blockedLargeProductExists = true; el.classList.add("error"); } else { el.classList.remove("error"); } }); // If there is at least one blocked product, show the alert message if(blockedLargeProductExists) { document.querySelector(".quick-order-submit").disabled = true; showProductAlertMessage("quick-order-large-product-error-box"); } else { document.querySelector(".quick-order-submit").disabled = false; hideProductAlertMessage("quick-order-large-product-error-box") } }, 500); } } });

K-Flex 6RX038068, Foam Pipe Insulation, 3/4" x 6', 3/8" W, Lennox 29P71 (2024)

References

Top Articles
Latest Posts
Article information

Author: Virgilio Hermann JD

Last Updated:

Views: 5565

Rating: 4 / 5 (41 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Virgilio Hermann JD

Birthday: 1997-12-21

Address: 6946 Schoen Cove, Sipesshire, MO 55944

Phone: +3763365785260

Job: Accounting Engineer

Hobby: Web surfing, Rafting, Dowsing, Stand-up comedy, Ghost hunting, Swimming, Amateur radio

Introduction: My name is Virgilio Hermann JD, I am a fine, gifted, beautiful, encouraging, kind, talented, zealous person who loves writing and wants to share my knowledge and understanding with you.