GET BIS CERTIFICATION FOR CHLORINATED POLYVINYL CHLORIDE (CPVC) PIPES FOR POTABLE HOT AND COLD WATER DISTRIBUTION SUPPLIES IS 15778:2007
Chlorinated polyvinyl chloride is a thermoplastic produced by chlorination of polyvinyl chloride resin. CPVC is significantly more flexible than PVC, and can also withstand higher temperatures. Uses include hot and cold water delivery pipes and industrial liquid handling CPVC, like PVC, is deemed safe for the transport and use of potable water.
BIS is a statutory institution established under the Bureau of Indian Standards Act,1986 to promote harmonious development of the activities of standardization, marking and quality certification of goods and attending to connected matters in the country.
Chlorinated polyvinyl chloride (CPVC) pipes for potable hot and cold water distribution supplies product has been specified in IS 15778:2007 by Bureau of Indian Standards.
SCOPE :
This standard specifies requirements, test methods and methods of marking for chlorinated polyvinyl chloride plastic pipes for hot and cold water distribution supplies, made in three standard dimension ratios and intended for water service up to and including 82°C.
REFERENCES :
IS No. Title
4905 : 1968 Methods for random sampling
4985 : 2000 Unplasticized PVC pipes for potable water supplies – Specification
12235 Thermoplastic pipes and fittings –
Part 1 Measurement of dimensions
Part 2 Determination of Vicat Softening temperature
Part 3 Test for opacity
Part 5 Longitudinal Reversion
15225 : 2002 Chlorinated polyvinyl chloride compounds used for pipes and fittings - Specification
RAW MATERIALS :
· Resin and/or resin compound
TESTING PARAMETERS :
· Chloride Content
· Compound Properties
· Verification of the Malfunction Temperature
· Density
· Dimensions
· Diameter
· Diameter at any point
· Wall thickness
· Effective Length
· Pipe Ends
· Visual Appearance
· Opacity
· Effect on water
· Reversion Test
· Vicat Softning Temperature
· Density
· Tensile Strength
· Flattening Test
40) { header.classList.add('scrolled'); } else { header.classList.remove('scrolled'); } let winScroll = document.body.scrollTop || document.documentElement.scrollTop; let height = document.documentElement.scrollHeight - document.documentElement.clientHeight; let scrolled = (winScroll / height) * 100; progressBar.style.width = scrolled + "%"; }); // 1.b Hide Floating Button when Offcanvas opens const offcanvasForm = document.getElementById('expertFormOffcanvas'); const sideBtn = document.querySelector('.side-contact-btn'); if(offcanvasForm && sideBtn) { offcanvasForm.addEventListener('show.bs.offcanvas', () => { sideBtn.style.opacity = '0'; sideBtn.style.pointerEvents = 'none'; }); offcanvasForm.addEventListener('hidden.bs.offcanvas', () => { sideBtn.style.opacity = '1'; sideBtn.style.pointerEvents = 'auto'; }); } // 2. Dynamic ToC Generation (Replaces hardcoded HTML) const articleContainer = document.querySelector('.article-content'); const desktopTocContainer = document.getElementById('toc-nav'); const mobileTocContainer = document.querySelector('.mobile-toc-nav'); if (articleContainer) { // Find the intro div and all h2/h3 elements const headings = articleContainer.querySelectorAll('#section-intro, h2, h3'); if (desktopTocContainer) desktopTocContainer.innerHTML = ''; if (mobileTocContainer) mobileTocContainer.innerHTML = ''; headings.forEach((heading) => { // Auto-generate ID if missing if (!heading.id) { heading.id = heading.textContent.trim().toLowerCase().replace(/[^a-z0-9]+/g, '-'); } // Create Desktop Link (direct to match your CSS) const desktopLink = document.createElement('a'); desktopLink.href = `#${heading.id}`; desktopLink.textContent = heading.id === 'section-intro' ? 'Introduction' : heading.textContent; desktopLink.className = 'toc-link'; // Indent h3 tags for nested visual hierarchy if (heading.tagName.toLowerCase() === 'h3') { desktopLink.style.paddingLeft = '30px'; desktopLink.style.fontSize = '12.5px'; } if (desktopTocContainer) desktopTocContainer.appendChild(desktopLink); // Create Mobile Offcanvas Link const mobileLink = document.createElement('a'); mobileLink.href = `#${heading.id}`; mobileLink.textContent = desktopLink.textContent; mobileLink.className = 'toc-link text-decoration-none text-dark'; mobileLink.setAttribute('data-bs-dismiss', 'offcanvas'); if (heading.tagName.toLowerCase() === 'h3') { mobileLink.style.paddingLeft = '30px'; mobileLink.style.fontSize = '14px'; } if (mobileTocContainer) mobileTocContainer.appendChild(mobileLink); }); } // 3. Smooth Scrolling for ToC Links document.querySelectorAll('.toc-link').forEach(anchor => { anchor.addEventListener('click', function (e) { if(this.getAttribute('href').startsWith('#')) { e.preventDefault(); const targetId = this.getAttribute('href'); const targetElement = document.querySelector(targetId); if(targetElement){ const headerOffset = 100; const elementPosition = targetElement.getBoundingClientRect().top; const offsetPosition = elementPosition + window.pageYOffset - headerOffset; window.scrollTo({ top: offsetPosition, behavior: "smooth" }); } } }); }); // 4. Intersection Observer for the "Soft Pill" Active State const sections = document.querySelectorAll('.article-content h2, .article-content h3, #section-intro'); const navLinks = document.querySelectorAll('.toc-aside .toc-link'); const navContainer = document.getElementById('toc-nav'); const observerOptions = { root: null, rootMargin: '-120px 0px -60% 0px', threshold: 0 }; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { navLinks.forEach(link => link.classList.remove('active')); const activeId = entry.target.getAttribute('id'); const activeLink = document.querySelector(`.toc-aside .toc-link[href="#${activeId}"]`); if (activeLink) { activeLink.classList.add('active'); // Move the pseudo-element pill highlight const linkRect = activeLink.getBoundingClientRect(); const containerRect = navContainer.getBoundingClientRect(); const relativeTop = linkRect.top - containerRect.top; navContainer.style.setProperty('--pill-top', `${relativeTop}px`); navContainer.style.setProperty('--pill-height', `${linkRect.height}px`); navContainer.style.setProperty('--pill-opacity', `1`); } } }); }, observerOptions); sections.forEach(section => observer.observe(section)); // Initialize pill on load setTimeout(() => { const firstLink = navLinks[0]; if(firstLink) { firstLink.classList.add('active'); const linkRect = firstLink.getBoundingClientRect(); const containerRect = navContainer.getBoundingClientRect(); navContainer.style.setProperty('--pill-top', `${linkRect.top - containerRect.top}px`); navContainer.style.setProperty('--pill-height', `${linkRect.height}px`); navContainer.style.setProperty('--pill-opacity', `1`); } }, 100); });