1var $ = jQuery; 2function getHeaderHeight() { 3 const header = document.getElementById("mainHeader"); 4 if (header) { 5 const headerHeight = header.offsetHeight; 6 document.body.style.setProperty('--header', `${headerHeight}px`); 7 return headerHeight; 8 } 9 return null; 10} 11document.addEventListener("DOMContentLoaded", () => { 12 getHeaderHeight(); 13}); 14window.addEventListener('resize', getHeaderHeight); 15/**** Donate Form slider */ 16document.addEventListener("DOMContentLoaded", function () { 17 const wrapper = document.querySelector(".custom-Tabslider"); 18 if (!wrapper) return; 19 let initialized = false; 20 let current = 0; 21 function getPerView() { 22 return window.innerWidth <= 767 ? 1 : 2; 23 } 24 function initSlider() { 25 if (initialized || window.innerWidth > 1200) return; 26 const tabsHeading = wrapper.querySelector(".e-n-tabs-heading"); 27 const contentWrapper = wrapper.querySelector(".e-n-tabs-content"); 28 if (!contentWrapper) return; 29 const contents = [...contentWrapper.children]; 30 const headings = wrapper.querySelectorAll(".e-n-tab-title"); 31 if (tabsHeading) { 32 tabsHeading.style.display = "none"; 33 } 34 const slider = document.createElement("div"); 35 slider.className = "cts-slider"; 36 contents.forEach((content, index) => { 37 const slide = document.createElement("div"); 38 slide.className = "cts-slide"; 39 const title = document.createElement("div"); 40 title.className = "cts-title"; 41 title.textContent = 42 headings[index]?.querySelector(".e-n-tab-title-text")?.textContent || ""; 43 slide.appendChild(title); 44 slide.appendChild(content); 45 slider.appendChild(slide); 46 }); 47 contentWrapper.appendChild(slider); 48 const prev = document.createElement("button"); 49 prev.className = "cts-prev"; 50 prev.innerHTML = ` 51 <svg width="15" height="24" viewBox="0 0 15 24" fill="none"> <path d="M5.6 12L14.8 21.2L12 24L0 12L12 0L14.8 2.8L5.6 12Z" fill="white"/> </svg> 52 `; 53 const next = document.createElement("button"); 54 next.className = "cts-next"; 55 next.innerHTML = ` 56 <svg width="15" height="24" viewBox="0 0 15 24" fill="none"> <path d="M9.2 12L0 2.8L2.8 0L14.8 12L2.8 24L0 21.2L9.2 12Z" fill="white"/> </svg> 57 `; 58 wrapper.appendChild(prev); 59 wrapper.appendChild(next); 60 function updateSlider() { 61 const perView = getPerView(); 62 const slideWidth = 100 / perView; 63 slider.style.transform = 64 `translateX(-${current * slideWidth}%)`; 65 slider.querySelectorAll(".cts-slide").forEach((slide, index) => { 66 slide.style.minWidth = `${slideWidth}%`; 67 slide.classList.remove("active"); 68 if (index === current) { 69 slide.classList.add("active"); 70 } 71 }); 72 } 73 function nextSlide() { 74 const max = contents.length - getPerView(); 75 if (current < max) { 76 current++; 77 } else{current = 0;} 78 updateSlider(); 79 } 80 function prevSlide() { 81 const max = contents.length - getPerView(); 82 if (current > 0) { 83 current--; 84 } else{current = max;} 85 updateSlider(); 86 } 87 next.addEventListener("click", nextSlide); 88 prev.addEventListener("click", prevSlide); 89 let startX = 0; 90 slider.addEventListener("touchstart", function (e) { 91 startX = e.touches[0].clientX; 92 }); 93 slider.addEventListener("touchend", function (e) { 94 let endX = e.changedTouches[0].clientX; 95 let diff = startX - endX; 96 if (Math.abs(diff) > 50) { 97 if (diff > 0) { 98 nextSlide(); 99 } else{prevSlide();} 100 } 101 }); 102 updateSlider(); 103 initialized = true; 104 } 105 function destroySlider() { 106 if (!initialized) return; 107 const slider = wrapper.querySelector(".cts-slider"); 108 const contentWrapper = wrapper.querySelector(".e-n-tabs-content"); 109 const tabsHeading = wrapper.querySelector(".e-n-tabs-heading"); 110 if (slider && contentWrapper) { 111 const slides = slider.querySelectorAll(".cts-slide");
112 slides.forEach((slide) => { 113 const tabContent = slide.querySelector("[role='tabpanel']"); 114 if (tabContent) { 115 contentWrapper.appendChild(tabContent); 116 } 117 }); 118 slider.remove(); 119 } 120 wrapper 121 .querySelectorAll(".cts-prev, .cts-next") 122 .forEach(btn => btn.remove()); 123 124 if (tabsHeading) { 125 tabsHeading.style.display = ""; 126 } 127 initialized = false; 128 current = 0; 129 } 130 function handleResize() { 131 if (window.innerWidth <= 1200) { 132 initSlider(); 133 } else { 134 destroySlider(); 135 } 136 } 137 handleResize(); 138 let resizeTimer; 139 window.addEventListener("resize", function () { 140 clearTimeout(resizeTimer); 141 resizeTimer = setTimeout(() => { 142 destroySlider(); 143 handleResize(); 144 }, 200); 145 }); 146}); 147/** Animation */ 148document.addEventListener("DOMContentLoaded", function () { 149 const elements = document.querySelectorAll( 150 '.fadeInUp, .fadeInDown, .fadeInLeft, .fadeInRight, .zoomIn' 151 ); 152 const observer = new IntersectionObserver((entries) => { 153 entries.forEach((entry) => { 154 if (entry.isIntersecting) { 155 entry.target.classList.add('animated'); 156 } 157 }); 158 }, { 159 threshold: 0.15, 160 rootMargin: "0px 0px -100px 0px" 161 }); 162 elements.forEach((el) => { 163 observer.observe(el); 164 }); 165}); 166document.addEventListener("DOMContentLoaded", function () { 167 var dropdown = document.getElementById('orgDropdown'); 168 var trigger = document.getElementById('orgTrigger'); 169 var label = document.getElementById('orgTriggerLabel'); 170 var list = document.getElementById('orgList'); 171 if (!dropdown || !trigger || !list) return; 172 var currentHost = window.location.hostname; 173 list.querySelectorAll('a').forEach(function (link) { 174 var linkHost = new URL(link.href).hostname; 175 if (linkHost === currentHost) { 176 link.classList.add('active'); 177 link.parentElement.classList.add('active'); 178 label.textContent = link.getAttribute('data-label'); 179 } else { 180 link.setAttribute('target', '_blank'); 181 link.setAttribute('rel', 'noopener noreferrer'); 182 } 183 }); 184 trigger.addEventListener('click', function (e) { 185 e.stopPropagation(); 186 var isOpen = dropdown.classList.toggle('open'); 187 trigger.setAttribute('aria-expanded', isOpen); 188 }); 189 document.addEventListener('click', function () { 190 dropdown.classList.remove('open'); 191 trigger.setAttribute('aria-expanded', false); 192 }); 193 list.addEventListener('click', function (e) { 194 e.stopPropagation(); 195 }); 196 list.querySelectorAll('a').forEach(function (link) { 197 link.addEventListener('click', function () { 198 dropdown.classList.remove('open'); 199 trigger.setAttribute('aria-expanded', false); 200 }); 201 }); 202});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.