1/*jslint browser: true, white: true, plusplus: true, regexp: true, indent: 4, maxerr: 50, es5: true */ 2/*jshint multistr: true, latedef: nofunc */ 3/*global jQuery, $, Swiper*/ 4 5// console.log(Date.now()); 6if ($('body').hasClass('tpl-counter') || $('.sticky_counter').length > 0) { 7 8 //Display Layout function 9 function updateCounterDisplay(counterElement, value) { 10 let formattedValue = "$" + formatNumberWithSpaces(value.toFixed(0)); 11 counterElement.innerHTML = formattedValue; 12 } 13 //Regular expression for Layout function 14 function formatNumberWithSpaces(numberString) { 15 return numberString.replace(/\B(?=(\d{3})+(?!\d))/g, " "); 16 } 17 18 // var current_date = new Date(); 19 let current_time = Date.now(); 20 let start_date = new Date('2015-12-12'); 21 // var end_date = new Date('2022-11-30'); 22 let end_date = new Date('2025-12-12'); 23 24// var day_increment = 14610441210.2163; 25 let day_increment = 40471098850; 26 let milisec_per_day = 86400000; 27 let mili_increment = day_increment / milisec_per_day; 28 let sec_increment = mili_increment * 1000; 29 30 let current_diff = current_time - start_date; 31 let current_value = current_diff * mili_increment; 32 33 let end_diff = end_date - start_date; 34 let end_value = end_diff * mili_increment; 35 //Creating the elements of counter for top panel and pop-up 36 const counterEl = document.createElement('div'); 37 counterEl.classList.add('counter'); 38 const counterTopEl = counterEl.cloneNode(); 39 const counterElWrapper = $('.counter__wrapper'); 40 const counterTopPanel = $('.top_panel__counter__content .content h1'); 41 42 if (current_time < end_date) { 43 setInterval(function () { 44 current_value = current_value + sec_increment; 45 if ($('body').hasClass('tpl-counter')) { 46 let counter_top_panel = counterTopEl; 47 counterTopPanel.after(counter_top_panel); 48 updateCounterDisplay(counter_top_panel, current_value); 49 } 50 51 if ($('.sticky_counter').length > 0) { 52 counterEl.classList.add('h3'); 53 counterElWrapper.append(counterEl); 54 let counter_sticky = counterEl; 55 updateCounterDisplay(counter_sticky, current_value); 56 57 } 58 59 }, 1000); 60 } else { 61 if ($('body').hasClass('tpl-counter')) { 62 63 let counter_top_panel = document.querySelector(".top_panel__counter .counter"); 64 if (counter_top_panel) { 65 counter_top_panel.innerHTML = "$" + end_value.toFixed(0); 66 67 counter_top_panel.innerHTML = counter_top_panel.textContent.replace(/ (-|#|@){1}/g, s => s[1] + s[0]).replace(/(\S*)/g, m => { 68 return m.replace(/\S(-|#|@)?/g, "<span class='counter_number'>$&</span>"); 69 }); 70 } 71 72 } 73 74 if ($('.sticky_counter').length > 0) { 75 76 let counter_sticky = document.querySelector(".sticky_counter .counter"); 77 if (counter_sticky) { 78 counter_sticky.innerHTML = "$" + end_value.toFixed(0); 79 80 counter_sticky.innerHTML = counter_sticky.textContent.replace(/ (-|#|@){1}/g, s => s[1] + s[0]).replace(/(\S*)/g, m => { 81 return m.replace(/\S(-|#|@)?/g, "<span class='counter_number'>$&</span>"); 82 }); 83 } 84 } 85 86 } 87 88 89// console.log((end_date - start_date)*mili_increment); 90 91} 92 93 94// control :focus when using mouse/keyboard 95document.body.addEventListener('mousedown', function () { 96 document.body.classList.add('is_using_mouse'); 97}); 98document.body.addEventListener('keydown', function () { 99 document.body.classList.remove('is_using_mouse'); 100}); 101 102 103$(document).ready(function () { 104 'use strict'; 105 106 // variables 107 const body = $('body'); 108 const header = $('header'); 109 const menu__toggle = $('.menu__toggle'); 110 const menu__primary = $('.menu__primary'); 111 const menu__a_has_children = menu__primary.find('.menu-item-has-children > a'); 112 113 114 // hamburger + menu 115 menu__toggle.on('click', function () { 116 $(this).toggleClass('is_active'); 117 menu__primary.stop().toggleClass('is_open'); 118 body.toggleClass('is_overflow'); 119 }); 120 // close menu with Esc key 121 body.on('keyup', function (e) { 122 if (e.keyCode === 27 && menu__toggle.hasClass('is_active')) { 123 $('.menu__toggle.is_active').click(); 124 $('a[href="#skip_to_content"]').focus(); 125 } 126 }); 127 128 // hide all sub-menu links from tabbing unless sub-menu is open 129 menu__primary.find('.sub-menu').each(function () { 130 let sub_menu_links = $(this).find('> li > a'), 131 last_sub_menu_link = sub_menu_links.last(); 132 133 last_sub_menu_link.on('blur', function () { 134 $(this).parents('.sub-menu').prev().click(); 135 }); 136 137 $(this).find('a').attr({ 138 'aria-hidden': 'true', 139 'tabindex': -1 140 }); 141 }); 142 143 // open/close sub-menu actions 144 function sub_menu_actions(elem) { 145 let _exp = elem.attr('aria-expanded'); 146 (_exp === 'false') 147 ? elem.attr('aria-expanded', 'true').next().find('a').attr({'aria-hidden': 'false', 'tabindex': 0}) 148 : elem.attr('aria-expanded', 'false').next().find('a').attr({'aria-hidden': 'true', 'tabindex': -1}); 149 elem.toggleClass('is_open').next().stop().toggleClass('is_mob_shown').toggleClass('is_desk_shown'); 150 } 151 152 menu__a_has_children.on('click', function () { 153 sub_menu_actions($(this)); 154 }).attr({ 155 'aria-label': 'Sub-menu toggle', 156 'aria-expanded': 'false', 157 'href': 'javascript:;', 158 }); 159 160 161 // header 162 $(window).on('scroll', function () { 163 if ($(this).scrollTop() > 5) { 164 header.addClass('is_sticky'); 165 } else { 166 header.removeClass('is_sticky'); 167 } 168 }); 169 if ($(this).scrollTop() > 4) header.addClass('is_sticky'); 170 171 172 // contact form 7 173 $(this).on('click', '.wpcf7-not-valid-tip', function () { 174 $(this).prev().trigger('focus'); 175 $(this).fadeOut(250, function () { 176 $(this).remove(); 177 }); 178 $(this).parents('.wpcf7-form').find('.wpcf7-response-output').addClass('is_temp_hidden'); 179 }); 180 $(this).on('focus', '.wpcf7-form-control.wpcf7-not-valid', function () { 181 $(this).next('.wpcf7-not-valid-tip').fadeOut(250, function () { 182 $(this).remove(); 183 }); 184 $(this).parents('.wpcf7-form').find('.wpcf7-response-output').addClass('is_temp_hidden'); 185 }); 186 document.addEventListener('wpcf7submit', function (event) { 187 $('.wpcf7-response-output').removeClass('is_temp_hidden'); 188 }, false); 189 190 191 // custom select 192 if ($('select').length > 0) { 193 $('select').selectric({ 194 disableOnMobile: false, 195 nativeOnMobile: false, 196 arrowButtonMarkup: '<span class="select_arrow i_chevron_down_alt"></span>' 197 }); 198 // $('select.wpcf7-form-control').each(function () { 199 // $(this).find('option').first().val(''); 200 // }); 201 } 202 203 204 // fancybox 205 $('[data-fancybox]').fancybox({ 206 touch: { 207 vertical: false, 208 momentum: true 209 }, 210 smallBtn: false, 211 beforeLoad: function (instance, slide) { 212 // fix if header is sticky 213 header.addClass('compensate-for-scrollbar'); 214 }, 215 afterClose: function (instance, slide) { 216 // fix if header is sticky 217 header.removeClass('compensate-for-scrollbar'); 218 // remove body class after event 219 if (body.hasClass('is_searching')) { 220 body.removeClass('is_searching'); 221 } 222 } 223 }); 224 225 226 // add body class on event 227 $('.search_toggle').on('click', function () { 228 body.addClass('is_searching'); 229 }); 230 231 // scroll to 232 $('a[data-scrollto]').on('click', function () { 233 let anchor = $(this).data('scrollto'); 234 235 if ($(anchor).length > 0) { 236 $('html, body').animate({ 237 scrollTop: $(anchor).offset().top - header.outerHeight() 238 }, 700); 239 } 240 }); 241 242 243 // block - accordion 244 function acc_action(elem) { 245 let exp = elem.attr('aria-expanded'); 246 let hid = elem.next().attr('aria-hidden'); 247 (exp === 'false') ? elem.attr('aria-expanded', 'true') : elem.attr('aria-expanded', 'false'); 248 (hid === 'true') ? elem.next().attr('aria-hidden', 'false') : elem.next().attr('aria-hidden', 'true'); 249 elem.toggleClass('is_open').next().toggle(); 250 elem.find('.i_plus_alt').toggleClass('is_active'); 251 } 252 253 $('.acc_title').on('click', function () { 254 acc_action($(this)); 255 }).on('keyup', function (e) { 256 if (e.keyCode === 13) { 257 acc_action($(this)); 258 } 259 }); 260 261 262 // wrap tables for responsive design 263 if ($('.content table').length > 0) { 264 $('.content table').wrap('<div class="table_wrapper"></div>'); 265 } 266 267 //Clear empty container in a default_content 268 $('.container.is_8 .content').each(function () { 269 if ($(this).children().length === 0) { 270 $(this).parent().remove(); 271 } 272 }); 273 274 //counter page slider 275 function counter_slide_action(elem) { 276 let exp = elem.attr('aria-expanded'); 277 let hid = elem.find('.hidden_content').attr('aria-hidden'); 278 (exp === 'false') ? elem.attr('aria-expanded', 'true') : elem.attr('aria-expanded', 'false'); 279 (hid === 'true') ? elem.find('.hidden_content').attr('aria-hidden', 'false') : elem.find('.hidden_content').attr('aria-hidden', 'true'); 280 elem.find('.hidden_content').toggleClass('is_active'); 281 } 282 283 $('.counter__slider .swiper-slide').on('click', function () { 284 counter_slide_action($(this)); 285 }).on('keyup', function (e) { 286 if (e.keyCode === 13) { 287 counter_slide_action($(this)); 288 } 289 }); 290 291 //Counter popup 292 $('.sticky_counter__toggle').on('click', function () { 293 $(this).hide(); 294 $('.sticky_counter__popup').addClass('is_active'); 295 }); 296 297 $('.sticky_counter__popup .i_close_thin').on('click', function () { 298 $('.sticky_counter__toggle').show(); 299 $('.sticky_counter__popup').removeClass('is_active'); 300 }); 301 302 $(window).on('scroll', function () { 303 if ($(this).scrollTop() > 5) { 304 $('.sticky_counter__popup').removeClass('is_active'); 305 $('.sticky_counter__toggle').show(); 306 } 307 }); 308 309 310}); 311 312 313$(window).on('load', function () { 314 'use strict'; 315 316 // swiper - block__custom_slider 317 $('.block__custom_slider').each(function () { 318 let slider_holder = $(this), 319 swiper_instance = slider_holder.find('.swiper'), 320 next = slider_holder.find('.sw_next'), 321 prev = slider_holder.find('.sw_prev'), 322 pagination = slider_holder.find('.sw_pagination'); 323 324 let block_slider = new Swiper(swiper_instance[0], { 325 navigation: { 326 nextEl: next[0], 327 prevEl: prev[0] 328 }, 329 pagination: { 330 el: pagination[0], 331 type: 'progressbar', 332 }, 333 loop: true, 334 loopAdditionalSlides: 1, 335 speed: 600,
336 grabCursor: true, 337 threshold: 10, 338 spaceBetween: 0, 339 effect: "creative", 340 creativeEffect: { 341 prev: { 342 translate: ["-98%", "0%", 0], 343 scale: 0.9, 344 }, 345 next: { 346 translate: ["98%", "0%", 0], 347 scale: 0.9, 348 }, 349 }, 350 breakpoints: { 351 1025: { 352 creativeEffect: { 353 prev: { 354 translate: ["-97%", "0%", 0], 355 }, 356 next: { 357 translate: ["97%", "0%", 0], 358 }, 359 }, 360 } 361 }, 362 363 }); 364 }); 365 366 //swiper - posts 367 $('.posts_slider').each(function () { 368 let slider_holder = $(this), 369 swiper_instance = slider_holder.find('.swiper'), 370 next = slider_holder.find('.sw_next'), 371 prev = slider_holder.find('.sw_prev'); 372 373 let posts_slider = new Swiper(swiper_instance[0], { 374 navigation: { 375 nextEl: next[0], 376 prevEl: prev[0] 377 }, 378 slidesPerView: 1.25, 379 speed: 600, 380 cssMode: true, 381 grabCursor: true, 382 threshold: 10, 383 spaceBetween: 0, 384 breakpoints: { 385 640: { 386 slidesPerView: 2.25, 387 }, 388 1025: { 389 slidesPerView: 3.75, 390 freeMode: true, 391 cssMode: false 392 } 393 } 394 }); 395 396 }); 397 398 //swiper - counter page 399 $('.counter__slider').each(function () { 400 let slider_holder = $(this), 401 swiper_instance = slider_holder.find('.swiper'), 402 next = slider_holder.find('.sw_next'), 403 prev = slider_holder.find('.sw_prev'); 404 405 let counter_slider = new Swiper(swiper_instance[0], { 406 navigation: { 407 nextEl: next[0], 408 prevEl: prev[0] 409 }, 410 freeMode: true, 411 slidesPerView: 'auto', 412 speed: 600, 413 grabCursor: true, 414 threshold: 10, 415 spaceBetween: 24 416 }); 417 418 }); 419 420 // custom class for video in content (iframe) 421 $('.content iframe').each(function (i) { 422 let t = $(this), 423 p = t.parent(); 424 if ((p.is('p') || p.is('span')) && !p.hasClass('full_frame')) { 425 p.addClass('full_frame'); 426 } 427 }); 428 429}); 430 431 432// close on click outside 433// $(document).on('mouseup', function(e) { 434// let menu = $('.menu__primary'); 435// 436// if (!menu.is(e.target) && !$('.menu__toggle.is_active').is(e.target) && menu.has(e.target).length === 0 && menu.hasClass('is_open')) { 437// $('.menu__toggle.is_active').click(); 438// } 439// }); 440 441 442// proper resize event 443// $(window).resizeEnd(function() { 444// 'use strict'; 445// 446// }); 447
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.