COMING SOON

This slant block sponge is a versatile sanding tool suitable for all woodworking and drywall finishing jobs. It provides a line-free finish with superior grain retention. Available in dual-angle or single-angle designs for convenient corner access, its flexible foam construction allows for effective use on curved or flat surfaces.

Slant Block Sponges

Option Unit Purchase
VA DBL SLANT BLOCK MED BULK VA ABRASIVE BULK PK - QTY 24
452-VB200060
$0.00/EA
Register to see Discount In Stock
DBL SLANT BLOCK MED/FINE BULK 3X5X1- CASE QTY 24-BULK
452-VB206010
$0.00/EA
Register to see Discount In Stock
VA DBL SLANT BLOCK FINE BULK VA ABRASIVE BULK PK - QTY 24
452-VB200100
$0.00/EA
Register to see Discount In Stock

/** * Product Page Enhancement Script * * This script: * 1. Moves content from a specified heading to underneath the gallery (vanilla JS) * 2. Manages product browsing history (jQuery) */ // ===== PART 1: Content Mover (Vanilla JS) ===== (() => { // Function to move content from a heading to below the gallery const moveContentBelowGallery = (headingSelector, gallerySelector) => { // Find the target heading const heading = document.querySelector(headingSelector); if (!heading) return; // Exit if heading not found // Find the gallery element const gallery = document.querySelector(gallerySelector); if (!gallery) return; // Exit if gallery not found // Create a container for the content to be moved const movedContentContainer = document.createElement('div'); movedContentContainer.className = 'moved-content-container'; // Collect the heading and all its following siblings const contentToMove = [heading]; let currentElement = heading.nextElementSibling; while (currentElement) { contentToMove.push(currentElement); currentElement = currentElement.nextElementSibling; } // Add all content to the new container contentToMove.forEach(element => { // Clone the element to avoid reference issues const clonedElement = element.cloneNode(true); movedContentContainer.appendChild(clonedElement); // Remove the original element element.parentNode.removeChild(element); }); // Insert the new container after the gallery gallery.insertAdjacentElement('afterend', movedContentContainer); return movedContentContainer; }; // Add a custom contains selector for case-insensitive text matching if (!Element.prototype.matches) { Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; } // Override the querySelector method to support :contains() const originalQuerySelector = Document.prototype.querySelector; Document.prototype.querySelector = function(selector) { if (selector.includes(':contains(')) { // Extract the text content from the selector const match = selector.match(/:contains\("([^"]+)"\)/); if (match) { const textToFind = match[1]; const baseSelector = selector.replace(/:contains\("([^"]+)"\)/, ''); // Find all elements that match the base selector const elements = document.querySelectorAll(baseSelector); // Return the first one that contains the text for (const element of elements) { if (element.textContent.includes(textToFind)) { return element; } } return null; } } // Fall back to the original method for standard selectors return originalQuerySelector.call(this, selector); }; // Make the function globally available if needed window.moveContentBelowGallery = moveContentBelowGallery; // Execute the function when DOM is fully loaded document.addEventListener('DOMContentLoaded', () => { // Call with specific selectors for this page moveContentBelowGallery('h2:contains("See the BOSS 4-in-1 Ultra Floor System in Action:")', '.gallery'); }); })(); // ===== PART 2: Product History Management (jQuery) ===== $(function() { // Check and clear redirect flag if it exists if (sessionStorage['has-redirect']) { sessionStorage.removeItem('has-redirect'); } // Product History jQuery plugin $.fn.productHistory = function(historyItem) { if (historyItem != null) add(historyItem); var history = getHistory(historyItem); if (history.length > 0) { $(this).append(`
Recently Viewed Products
`); const historyContainer = $('
'); history.forEach(item => { var template = ``; historyContainer.append(template); }); $(this).append(historyContainer); } }; // Add an item to history function add(historyItem) { var history = getHistory(historyItem); history.splice(0, 0, historyItem); history = history.slice(0, 5); setHistory(history); }; // Get product history from cookies function getHistory(historyItem) { var history = decodeURIComponent(document.cookie?.split('; ')?.find(x => x?.startsWith('productHistory'))?.substring(15)); if (history === 'null' || history === 'undefined' || !history) return []; try { history = JSON.parse(history); var filteredHistory = $.grep(history, function(h) { return h.url != historyItem.url; }); return filteredHistory; } catch (e) { console.error("Error parsing product history:", e); return []; } } // Save product history to cookies function setHistory(productHistoryCollection) { let history = encodeURIComponent(JSON.stringify(productHistoryCollection)); const d = new Date(); d.setTime(d.getTime() + (24 * 60 * 60 * 1000)); //24 hour expire let expires = "expires=" + d.toUTCString(); document.cookie = "productHistory=" + history + ";" + expires + ";path=/"; } // Setup product history tracking var historyItem = { url: window.location.href, image: $('#product-rail .gallery .primary img').attr('src'), description: $('#product-inner h1,#product-main h1').first().text().trim() }; if ($('#product-history-container').length < 1) { $('#related-product-sets').after(''); } if ($('#product-history-container').text().trim().length < 1) { $('#product-history-container').productHistory(historyItem); } }); // Move in-stock labels on window load $(window).on('load', function() { if (document.querySelector('.mono-item-product')) { $('span[class*="stock"]').appendTo('#product-items .product-item .purchase'); } });