Dupont R-22 Refrigerant, 30lb Cylinder, 18P02 (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 = "

"; // 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); } } });

Dupont R-22 Refrigerant, 30lb Cylinder, 18P02 (2024)

References

Top Articles
Deposit Slip Template - PDF Templates | Jotform
Novelty Bank Statement Generator PDF | PDFSimpli
Tripadvisor Antigua Forum
What to Do For Dog Upset Stomach
Gma Deals And Steals December 5 2022
Steve Wallis Wife Age
Caremount Medical Flu Shots 2022
Craiglist Mohave
Navicent Human Resources Phone Number
Craiglist Tulsa Ok
PK | Rotten Tomatoes
20 of the Funniest Obituaries That Will Have You Dying Laughing
8 Restaurant-Style Dumpling Dipping Sauces You Can Recreate At Home
Zulrah Strat Osrs
Eggy Car Unblocked - Chrome Web Store
Wsisd Calendar
Craiglist Tulsa Ok
Dirty Old Man Birthday Meme
Brianna Aerial Forum
Roilog Com Payment
Amanda Balionis makes announcement as Erica Stoll strides fairways with Rory McIlroy
Rick Steves Forum
Milanka Kudel Telegram
Sheetz Unlimited Drinks Ending
E41.Ultipro.com
Frostbite Blaster
Class B Permit Jobs
Vision Government Solutions Stamford Ct
Www.statefarm
Spiral Roll Unblocked Games Premium
Point After Salon
Kemono Party Only Fans
Timon Meaning In Swahili
Pokemon TCG: Best Japanese Card Sets
Patient Portal Bayfront
10-5 Study Guide And Intervention Tangents Answer Key
Switchback Travel | Best Camping Chairs of 2024
Current Students - Pace University Online
Below Her Mouth | Rotten Tomatoes
Spacebar Counter - Space Bar Clicker Test
Morning Call Obits Today Legacy
Ice Quartz Osrs
Monte Carlo Poker Club Coin Pusher
O'reilly's In Mathis Texas
Promiseb Discontinued
Sound Of Freedom Showtimes Near Wellborne Cinema
Rubrankings Austin
100.2华氏度是多少摄氏度
Bretnie Hall Ashland Ky
19 BEST Stops on the Drive from Te Anau to Milford Sound +Road Trip Tips!
Union Corners Obgyn
Auctionzipauctions
Latest Posts
Article information

Author: Greg O'Connell

Last Updated:

Views: 6458

Rating: 4.1 / 5 (62 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Greg O'Connell

Birthday: 1992-01-10

Address: Suite 517 2436 Jefferey Pass, Shanitaside, UT 27519

Phone: +2614651609714

Job: Education Developer

Hobby: Cooking, Gambling, Pottery, Shooting, Baseball, Singing, Snowboarding

Introduction: My name is Greg O'Connell, I am a delightful, colorful, talented, kind, lively, modern, tender person who loves writing and wants to share my knowledge and understanding with you.