1(function ($) { 2 "use strict"; 3 /* ================================= 4 === slider ==== 5 =================================== */ 6 function homefeatured() { 7 var recentareaSlider = new Swiper('.recentarea-slider', { 8 direction: 'vertical', 9 loop: true, 10 slidesPerView: 4, 11 spaceBetween: 30, 12 autoplay: true, 13 // Navigation arrows 14 navigation: { 15 nextEl: '.swiper-button-next', 16 prevEl: '.swiper-button-prev' 17 }, 18 breakpoints: { 19 // when window width is <= 320px 20 768: { 21 allowTouchMove: 0, 22 }, 23 } 24 }); 25 } 26 homefeatured(); 27 28 function homemain() { 29 var homemain = new Swiper('.homemain', { 30 direction: 'horizontal', 31 loop: true, 32 autoplay: { 33 delay: 3000, 34 }, 35 speed: 500, 36 slidesPerView: 1, 37 // Navigation arrows 38 navigation: { 39 nextEl: '.swiper-button-next', 40 prevEl: '.swiper-button-prev' 41 }, 42 43 }); 44 } 45 homemain(); 46 /* ================================= 47 === Crousel ==== 48 =================================== */ 49 function postcrousel() { 50 const postcrousel = new Swiper('.postcrousel', { 51 direction: 'horizontal', 52 loop: true, 53 autoplay: { 54 delay: $(".postcrousel").attr("storySpeed"), 55 }, 56 slidesPerView: 1, 57 // Navigation arrows 58 navigation: { 59 nextEl: '.swiper-button-next', 60 prevEl: '.swiper-button-prev' 61 }, 62 pagination: { 63 el: ".crousel-swiper-pagination", 64 clickable: true, 65 }, 66 breakpoints: { 67 640: { 68 slidesPerView: 1, 69 }, 70 768: { 71 slidesPerView: 2, 72 spaceBetween: 30, 73 }, 74 1024: { 75 slidesPerView: 4, 76 spaceBetween: 30, 77 }, 78 } 79 }); 80 } 81 postcrousel(); 82 83 /* ================================= 84 === BLOG SLIDER ==== 85 =================================== */ 86 function blogslider() { 87 const Blogslider = new Swiper('.blog-slider', { 88 direction: 'horizontal', 89 loop: true, 90 autoplay: true, 91 slidesPerView: 1, 92 // Navigation arrows 93 navigation: { 94 nextEl: '.swiper-button-next', 95 prevEl: '.swiper-button-prev' 96 } 97 }); 98 } 99 blogslider(); 100 101 /* ================================= 102 === SCROLL TOP ==== 103 =================================== */ 104 document.addEventListener("DOMContentLoaded", function () { 105 var scrollToTopBtn = document.querySelector(".bs_upscr"); 106 var rootElement = document.documentElement || document.body; // Ensure cross-browser support 107 108 function handleScroll() { 109 var scrollTotal = rootElement.scrollHeight - rootElement.clientHeight; 110 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; 111 112 if (scrollTop / scrollTotal > 0.05) { 113 // Show button 114 scrollToTopBtn.classList.add("showBtn"); 115 } else { 116 // Hide button 117 scrollToTopBtn.classList.remove("showBtn"); 118 } 119 } 120 function scrollToTop(event) { 121 event.preventDefault(); // Prevent default anchor behavior 122 window.scrollTo({ 123 top: 0, 124 behavior: "smooth" 125 }); 126 } 127 if (scrollToTopBtn) { 128 scrollToTopBtn.addEventListener("click", scrollToTop); 129 document.addEventListener("scroll", handleScroll); 130 } 131 }); 132 133 /* ================================= 134 === STICKY HEADER ==== 135 =================================== */ 136 137 document.addEventListener('DOMContentLoaded', function () { 138 let stickyHeader = document.querySelector(".bs-menu-full.sticky-header"); 139 if (stickyHeader) { 140 let scrollDownElement = stickyHeader.offsetTop; 141 142 window.addEventListener("scroll", function () { 143 if (window.scrollY > scrollDownElement) { 144 stickyHeader.classList.add("header-sticky"); 145 } else { 146 stickyHeader.classList.remove("header-sticky"); 147 } 148 } 149 ); 150 } 151 }); 152 153 var elements = document.getElementsByClassName('bs-sticky'); 154 155 for (var i = 0; i < elements.length; i++) { 156 new hcSticky(elements[i], { 157 stickTo: elements[i].parentNode, 158 top: 0, 159 bottomEnd: 0, 160 });
161 } 162 163 jQuery('#load-more-btn').on('click', function () { 164 var $hiddenContents = $('.hide-content'); 165 var $btn = $(this); 166 // Check if there is hidden content to show 167 var loop_off = 0; 168 if ($hiddenContents.length) { 169 // Show the hidden content 170 $hiddenContents.each(function () { 171 if (loop_off < 5) { $(this).removeClass('hide-content'); loop_off++; } 172 }); 173 // You can also remove the "Load More" button if there's no more hidden content 174 if (loop_off < 5) { 175 $btn.parent().remove(); 176 } 177 } else { 178 $btn.parent().remove(); 179 } 180 }); 181 jQuery(document).ready(function () { 182 jQuery('.sm').smartmenus({ 183 subMenusSubOffsetX: 1, 184 subMenusSubOffsetY: -8 185 }); 186 }); 187 188 /*--------------------------------------- 189 Off Canvas 190 -----------------------------------------*/ 191 let clickableAddElementRight = document.querySelectorAll('[bs-data-clickable-end]'); 192 let clickableRemoveElement = document.querySelector('[bs-data-removable]'); 193 let clickableRemoveElementTwo = document.querySelector('[bs-remove-overlay]'); 194 let targetElement = document.querySelector('[bs-data-targeted]'); 195 let targetBody = document.querySelector('body'); 196 197 // Function to handle the click event 198 function handleClickRight() { 199 targetElement.classList.add('from-right'); 200 clickableRemoveElementTwo.classList.add('show'); 201 targetBody.style.overflow = 'hidden'; 202 targetBody.style.paddingRight = '17px'; 203 if (clickableRemoveElement) { 204 clickableRemoveElement.focus(); 205 } 206 } 207 208 function handleClickRemove(event) { 209 event.preventDefault(); 210 targetElement.classList.remove('from-right'); 211 clickableRemoveElementTwo.classList.remove('show'); 212 targetBody.style.overflow = null; 213 targetBody.style.paddingRight = null; 214 if (clickableAddElementRight.length > 0) { 215 clickableAddElementRight[0].focus(); 216 } 217 } 218 219 // Attach the handleClick function to the click event of the clickable element 220 if( (clickableAddElementRight !== null) && (clickableAddElementRight !== undefined)) { 221 clickableAddElementRight.forEach(function(element) { 222 element.addEventListener('click', handleClickRight); 223 }); 224 } 225 226 // Safety checks for the removal elements 227 if (clickableRemoveElement) { 228 clickableRemoveElement.addEventListener('click', handleClickRemove); 229 } 230 if (clickableRemoveElementTwo) { 231 clickableRemoveElementTwo.addEventListener('click', handleClickRemove); 232 } 233 document.addEventListener('keydown', function(e) { 234 if (e.key === 'Escape' && targetElement.classList.contains('from-right')) { 235 handleClickRemove(e); 236 } 237 }); 238 239 document.addEventListener('keydown', function(e) { 240 241 if (e.key === 'Tab' && targetElement.classList.contains('from-right')) { 242 243 const firstElement = document.querySelector('[bs-data-removable]'); 244 const lastElement = document.querySelector('.empty-sidebar-widget-text a'); 245 // const lastElement = document.querySelector('[bs-data-last]'); 246 247 if (!firstElement || !lastElement) return; 248 249 if (document.activeElement === lastElement && !e.shiftKey) { 250 e.preventDefault(); 251 firstElement.focus(); 252 } 253 254 if (document.activeElement === firstElement && e.shiftKey) { 255 e.preventDefault(); 256 lastElement.focus(); 257 } 258 } 259 }); 260 261 262 /*--------------------------------------- 263 Search 264 -----------------------------------------*/ 265 let clickAddElementSearch = document.querySelectorAll('[bs-search-clickable]'); 266 let targetSearchElement = document.querySelector('[bs-search-targeted]'); 267 let targetHideSearch = document.querySelector('[bs-dismiss-search]'); 268 269 // Function to handle the click event 270 function openSearch(event) { 271 event.preventDefault(); 272 273 clickableRemoveElementTwo.classList.add('show'); 274 targetSearchElement.classList.add('show-search'); 275 targetBody.style.overflow = 'hidden'; 276 targetBody.style.paddingRight = '17px'; 277 278 setTimeout(function () { 279 const closeBtn = targetSearchElement.querySelector('[bs-dismiss-search]'); 280 281 if (closeBtn) { 282 closeBtn.setAttribute('tabindex', '0'); 283 closeBtn.focus(); 284 285 // console.log(document.activeElement === closeBtn); 286 // console.log(document.activeElement); 287 } 288 }, 350); 289 } 290 function hideSearch() { 291 clickableRemoveElementTwo.classList.remove('show'); 292 targetSearchElement.classList.remove('show-search'); 293 targetBody.style.overflow = null; 294 targetBody.style.paddingRight = null; 295 if (clickAddElementSearch.length > 0) { 296 clickAddElementSearch[0].focus(); 297 } 298 } 299 if(clickAddElementSearch){
300 clickAddElementSearch.forEach(function(element) { 301 element.addEventListener('click', openSearch); 302 }); 303 } 304 // clickableRemoveElementTwo.addEventListener('click', hideSearch); 305 if (targetHideSearch) { 306 targetHideSearch.addEventListener('click', hideSearch); 307 } 308 clickAddElementSearch.forEach(function(element) { 309 element.addEventListener('keydown', function(e) { 310 if (e.key === 'Enter') { 311 e.preventDefault(); 312 openSearch(e); 313 } 314 }); 315 }); 316 317 document.addEventListener('keydown', function(e) { 318 if (e.key === 'Escape' && targetSearchElement.classList.contains('show-search')) { 319 hideSearch(); 320 } 321 }); 322 document.addEventListener('keydown', function(e) { 323 324 if (e.key !== 'Tab') return; 325 if (!targetSearchElement.classList.contains('show-search')) return; 326 327 const firstElement = targetSearchElement.querySelector('[bs-dismiss-search]'); 328 const lastElement = targetSearchElement.querySelector('.search-popup-content .search-form .search-submit'); 329 330 if (!firstElement || !lastElement) return; 331 332 if (document.activeElement === lastElement && !e.shiftKey) { 333 e.preventDefault(); 334 firstElement.focus(); 335 } 336 if (document.activeElement === firstElement && e.shiftKey) { 337 e.preventDefault(); 338 lastElement.focus(); 339 } 340 341 }); 342 343 $(document).ready(function () { 344 $(".menu-btn").click(function () { 345 $(this).toggleClass("on"); 346 $("#main-nav").slideToggle(); 347 $("#menu-header-menu").css("transition", "all 0.8s"); 348 }); 349 }); 350 351 function addKeydownListener() { 352 document.addEventListener('keydown', keydownHandler); 353 } 354 355 function removeKeydownListener() { 356 document.removeEventListener('keydown', keydownHandler); 357 } 358 359 function keydownHandler(event) { 360 if (event.key === 'Tab') { 361 var focusedElement = document.activeElement; 362 var parentElement = document.getElementById('main-nav'); 363 var ulParent = parentElement.querySelector("ul.sm.sm-clean"); 364 var lastChild = ulParent.lastElementChild.firstElementChild; 365 366 // Check if the focused element is the last child 367 if (focusedElement === lastChild) { 368 // Prevent the default tab behavior 369 event.preventDefault(); 370 371 // Perform your actions here 372 const returnFocus = document.querySelector('button.menu-btn'); 373 returnFocus.click(); 374 returnFocus.focus(); 375 } 376 } 377 } 378 379 function checkWindowSize() { 380 if (window.innerWidth < 992) { 381 addKeydownListener(); 382 } else { 383 removeKeydownListener(); 384 document.getElementById('main-nav').style.display = ''; 385 } 386 } 387 388 // Check window size on initial load 389 checkWindowSize(); 390 391 // Check window size on resize 392 window.addEventListener('resize', checkWindowSize); 393 394 document.addEventListener('DOMContentLoaded', function () { 395 var pageTitle = document.querySelector('.bs-card-box.page-entry-title + .row .page-title'); 396 if (pageTitle) { 397 pageTitle.remove(); 398 } 399 }); 400})(jQuery); 401 402 403(function () { 404 405 jQuery(document).ready(function () { 406 407 /* ---------------------------------------------- /* 408 * Scroll top 409 /* ---------------------------------------------- */ 410 411 jQuery(window).scroll(function () { 412 if (jQuery(this).scrollTop() > 100) { 413 jQuery('.page-scroll-up').fadeIn(); 414 } else { 415 jQuery('.page-scroll-up').fadeOut(); 416 } 417 }); 418 419 jQuery('.page-scroll-up').click(function () { 420 jQuery("html, body").animate({ 421 scrollTop: 0 422 }, 700); 423 return false; 424 }); 425 }); 426})(jQuery);
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.