1/* ---------------------------------------------------------- 2 * Uncode App 3 * ---------------------------------------------------------- */ 4 5(function($) { 6 "use strict"; 7 var UNCODE = window.UNCODE || {}; 8 window.UNCODE = UNCODE; 9 10 window.requestAnimFrame = (function() { 11 return window.requestAnimationFrame || 12 window.webkitRequestAnimationFrame || 13 window.mozRequestAnimationFrame || 14 window.oRequestAnimationFrame || 15 window.msRequestAnimationFrame || 16 function(/* function */ callback, /* DOMElement */ element){ 17 window.setTimeout(callback, 1000 / 60); 18 }; 19})(); 20 21window.requestTimeout = function(fn, delay) { 22 if( !window.requestAnimationFrame && 23 !window.webkitRequestAnimationFrame && 24 !(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && // Firefox 5 ships without cancel support 25 !window.oRequestAnimationFrame && 26 !window.msRequestAnimationFrame) 27 return window.setTimeout(fn, delay); 28 29 var start = new Date().getTime(), 30 handle = new Object(); 31 32 function loop(){ 33 var current = new Date().getTime(), 34 delta = current - start; 35 36 delta >= delay ? fn.call() : handle.value = requestAnimFrame(loop); 37 }; 38 39 handle.value = requestAnimFrame(loop); 40 return handle; 41}; 42 43window.clearRequestTimeout = function(handle) { 44 if ( typeof handle !== 'undefined' ) { 45 window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) : 46 window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) : 47 window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : /* Support for legacy API */ 48 window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) : 49 window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) : 50 window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) : 51 clearTimeout(handle); 52 } 53}; 54 55function uncodeVisibilityChange() { 56 if (document.hidden) { 57 window.dispatchEvent(new CustomEvent('is-blur')); 58 } else { 59 window.dispatchEvent(new CustomEvent('is-focus')); 60 } 61 } 62document.addEventListener('visibilitychange', uncodeVisibilityChange, false); 63 64if ( SiteParameters.smoothScroll === 'on' && ! SiteParameters.is_frontend_editor ) { 65 window.lenis = new Lenis({ 66 duration: 1 67 }) 68 69 UNCODE.hDoc = Math.max( document.body.scrollHeight, document.body.offsetHeight, 70 document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ); 71 72 function raf(time) { 73 window.lenis.raf(time) 74 requestAnimationFrame(raf) 75 window.dispatchEvent(new CustomEvent('lenis-scroll')); 76 77 if ( SiteParameters.uncode_smooth_scroll_safe ) { 78 var newHdoc = Math.max( document.body.scrollHeight, document.body.offsetHeight, 79 document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ); 80 81 if ( UNCODE.hDoc !== newHdoc ) { 82 UNCODE.hDoc = newHdoc; 83 window.lenis.resize(); 84 //window.dispatchEvent(new CustomEvent('boxResized')); 85 } 86 } 87 } 88 89 requestAnimationFrame(raf) 90 91 $(window).on('unmodal-open uncode-sidecart-open', function(){ 92 window.lenis.stop(); 93 }); 94 95 $(window).on('uncode-sidecart-closed', function(){ 96 window.lenis.start(); 97 }); 98 99 $(document).on('unmodal-close', function(){ 100 window.lenis.start(); 101 }); 102 103} 104 105var checkScrollTriggerRefresh; 106 107$(function(){ 108 $(document).on('uncode-scrolltrigger-refresh', function(){ 109 clearRequestTimeout(checkScrollTriggerRefresh); 110 checkScrollTriggerRefresh = requestTimeout(function(){ 111 ScrollTrigger.refresh(); 112 $('.scroll-refresh-hidden').removeClass('opacity_0'); 113 }, 500); 114 }); 115}); 116 117UNCODE.checkImgLoad = function( src, cb, err, el ) { 118 var img = new Image(); 119 img.onload = function () { 120 var result = (img.width > 0) && (img.height > 0); 121 cb(el); 122 }; 123 img.onerror = function () { 124 err(); 125 }; 126 img.src = src 127}; 128 129UNCODE.betterResize = function() { 130 var setResize, 131 doubleResize = true, 132 oldW = UNCODE.wwidth, 133 oldH = UNCODE.wheight, 134 setCTA; 135 $(window).on( 'resize orientationchange', function(){ 136 if ( oldW === UNCODE.wwidth ) { 137 return; 138 } else { 139 oldW = UNCODE.wwidth; 140 $(window).trigger('wwResize'); 141 } 142 143 if ( oldH === UNCODE.wheight ) { 144 return; 145 } else { 146 oldH = UNCODE.wheight; 147 $(window).trigger('whResize'); 148 } 149 }); 150 151 $(window).on( 'resize orientationchange', function(){ 152 clearRequestTimeout(setCTA); 153 setCTA = requestTimeout( function(){ $(window).trigger('resize-int'); }, 100 ); 154 }); 155}; 156 157UNCODE.shuffle = function(array) { 158 var currentIndex = array.length, 159 randomIndex; 160 161 while (currentIndex > 0) { 162 randomIndex = Math.floor(Math.random() * currentIndex); 163 currentIndex--; 164 [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]]; 165 } 166 167 return array; 168}; 169 170Number.isInteger = Number.isInteger || function(value) { 171 return typeof value === "number" && 172 isFinite(value) && 173 Math.floor(value) === value; 174}; 175 176UNCODE.utils = function() { 177 $(document).on('mouseover', 'a', function () { 178 if (!$(this).hasClass('star')) { 179 $(this).attr('data-title', $(this).attr('title')); 180 $(this).removeAttr('title'); 181 } 182 }); 183 $(document).on('mouseout', 'a', function () { 184 if (!$(this).hasClass('star')) { 185 $(this).attr('title', $(this).attr('data-title')); 186 $(this).removeAttr('data-title'); 187 } 188 }); 189 190 this.get_scroll_offset = function(e) { 191 192 var scroll_offset = 0, 193 target, 194 trigger; 195 196 if ( Number.isInteger(e) !== true && typeof e !== 'undefined' && typeof e.target !== 'undefined' && typeof e.currentTarget !== 'undefined' ) { 197 target = e.target; 198 trigger = e.currentTarget; 199 } 200 201 if ($('.menu-hide').length || $('.menu-hide-vertical').length) { 202 if (UNCODE.bodyTop > UNCODE.wheight / 2) { 203 UNCODE.hideMenu(100); 204 } 205 } 206 207 if ( ! $('body').hasClass('vmenu') || UNCODE.wwidth < UNCODE.mediaQuery ) {
208 // if ( !( $('.menu-desktop-transparent').length && UNCODE.wwidth > UNCODE.mediaQuery ) && !( $('.menu-mobile-transparent').length && UNCODE.wwidth <= UNCODE.mediaQueryMobile ) ) { 209 if ( !( $('.menu-desktop-transparent').length && UNCODE.wwidth > UNCODE.mediaQuery ) ) { 210 if ( ( $('.menu-sticky').length && !$('.menu-hide').length && !UNCODE.isMobile ) || ( $('.menu-sticky-mobile').length && UNCODE.isMobile && ! $('.menu-mobile-transparent').length ) ) { 211 if ( !$('.menu-hided').length ) { 212 if ( $('body').hasClass('hmenu-center') ) { 213 scroll_offset += ~~$('.menu-sticky .menu-container').outerHeight(); 214 } else { 215 scroll_offset += ~~$('.logo-container:visible').outerHeight(); 216 } 217 } 218 } else if ( $('.menu-sticky .menu-container:not(.menu-hide)').length && ! $('.menu-shrink').length && UNCODE.wwidth > UNCODE.mediaQuery ) { 219 var shrink = typeof $('.navbar-brand').data('padding-shrink') !== 'undefined' ? $('.navbar-brand').data('padding-shrink')*2 : 36; 220 scroll_offset += (~~$('.menu-sticky .menu-container').outerHeight()) - ( $('.navbar-brand').data('minheight') + shrink ); 221 } else { 222 if ( ($('.menu-sticky').length && !$('.menu-hide').length) || ($('.menu-sticky-vertical').length && !$('.menu-hide-vertical').length) ) { 223 scroll_offset += UNCODE.menuMobileHeight; 224 } else { 225 if ( typeof target !== 'undefined' && target.closest('.main-menu-container') != null && UNCODE.wwidth < UNCODE.mediaQuery && ! $('body').hasClass('vmenu') && ! $('body').hasClass('menu-mobile-transparent') && ! $('.menu-sticky').length ) { 226 //scroll_offset += $('.main-menu-container > div:first-child()').height() - 2; 227 } else { 228 if ( $(trigger)[0] !== $(document)[0] && $(trigger).length && typeof $(trigger).offset() !== 'undefined' && window.scrollY > ($(trigger).offset().top + UNCODE.menuMobileHeight) ) { 229 scroll_offset += UNCODE.menuMobileHeight; 230 } 231 } 232 } 233 } 234 } 235 236 } 237 238 scroll_offset += UNCODE.bodyBorder; 239 240 return scroll_offset; 241 } 242 243 if ( !UNCODE.isFullPage ) { 244 $(document).on('click', 'a[href*="#"]:not(.woocommerce-review-link):not(.one-dot-link)', function(e) { 245 246 var hash = (e.currentTarget).hash, 247 is_scrolltop = $(e.currentTarget).hasClass('scroll-top') ? true : false, 248 anchor = ''; 249 if ($(e.currentTarget).data('toggle') == 'tab' || $(e.currentTarget).data('toggle') == 'collapse') return; 250 if ($(e.currentTarget).hasClass('woocommerce-review-link') && $('.wootabs .tab-content').length) { 251 e.preventDefault(); 252 if (!$('#tab-reviews').is(':visible')) { 253 $('a[href="#tab-reviews"]').trigger('click'); 254 } 255 var calc_scroll = $('.wootabs .tab-content').offset().top; 256 calc_scroll -= UNCODE.get_scroll_offset(e); 257 258 if ( !( $('.menu-desktop-transparent').length && UNCODE.wwidth > UNCODE.mediaQuery ) && !( $('.menu-mobile-transparent').length && UNCODE.wwidth <= UNCODE.mediaQueryMobile ) ) { 259 var shrink = typeof $('.navbar-brand').data('padding-shrink') !== 'undefined' ? $('.navbar-brand').data('padding-shrink')*2 : 36; 260 261 if ( $('.menu-sticky .menu-container:not(.menu-hide)').length && $('.menu-shrink').length ) { 262 scrollTo += UNCODE.menuHeight - ( $('.navbar-brand').data('minheight') + shrink ); 263 } 264 } 265 266 var bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 267 delta = bodyTop - calc_scroll, 268 scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed; 269 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 270 271 requestTimeout(function(){ 272 if (scrollSpeed == 0) { 273 $('html, body').scrollTop(calc_scroll); 274 UNCODE.scrolling = false; 275 } else { 276 $('html, body').on("scroll wheel DOMMouseScroll mousewheel touchmove", function(){ 277 $(this).stop(); 278 }).animate({ 279 scrollTop: calc_scroll 280 }, scrollSpeed, 'easeInOutCubic', function() { 281 $(this).off("scroll wheel DOMMouseScroll mousewheel touchmove"); 282 UNCODE.scrolling = false;
283 } 284 ); 285 } 286 }, 200); 287 return; 288 } 289 if (hash != undefined) { 290 var specialFormat = /[ !@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/; 291 var anchor = this.hash.slice(1); 292 if ( !specialFormat.test(hash) && location.pathname.replace(/^\//g,'') == this.pathname.replace(/^\//g,'') && location.hostname == this.hostname) { 293 if ( !specialFormat.test(hash) ) { 294 if ( $(hash).length ) 295 anchor = $(hash); 296 } 297 } 298 } 299 300 if (is_scrolltop || anchor != '') { 301 if (is_scrolltop) { 302 e.preventDefault(); 303 var bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 304 scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(bodyTop) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed; 305 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 306 307 if (scrollSpeed == 0) { 308 $('html, body').scrollTop(0); 309 UNCODE.scrolling = false; 310 } else { 311 $('html, body').on("scroll wheel DOMMouseScroll mousewheel touchmove", function(){ 312 $(this).stop(); 313 }).animate({ 314 scrollTop: 0 315 }, scrollSpeed, 'easeInOutCubic', function() { 316 $(this).off("scroll wheel DOMMouseScroll mousewheel touchmove"); 317 UNCODE.scrolling = false; 318 }); 319 } 320 } else { 321 var scrollSection = (typeof anchor === 'string') ? $('[data-name="' + anchor + '"]') : anchor; 322 $.each($('.menu-container .menu-item > a, .widget_nav_menu .menu-smart .menu-item > a, #uncode-mobile-menu-block .menu-item > a'), function(index, val) { 323 var get_href = $(val).attr('href'); 324 if (get_href != undefined) { 325 if (get_href.substring(get_href.indexOf('#')+1) == anchor) $(val).parent().addClass('active'); 326 else $(val).parent().removeClass('active'); 327 } 328 }); 329 if (scrollSection.length) { 330 if ( $('body').hasClass('uncode-scroll-no-history') ) { 331 e.preventDefault(); 332 } 333 334 if (UNCODE.menuOpened) { 335 if (UNCODE.wwidth < UNCODE.mediaQuery) { 336 window.dispatchEvent(UNCODE.menuMobileTriggerEvent); 337 } else { 338 $('.mmb-container-overlay .overlay-close').trigger('click'); 339 $('.mmb-container .trigger-overlay.close')[0].dispatchEvent(new Event("click"));; 340 } 341 } 342 343 var calc_scroll = scrollSection.offset().top, 344 getOffset = UNCODE.get_scroll_offset(e), 345 $logo = $('.logo-container:visible'), 346 logoH, 347 $menu = $('#masthead .menu-container'), 348 menuH; 349 350 calc_scroll -= isNaN(getOffset) ? 0 : getOffset; 351 352 var bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 353 delta = bodyTop - calc_scroll, 354 scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed; 355 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 356 357 if ( !( $('.menu-desktop-transparent').length && UNCODE.wwidth > UNCODE.mediaQuery ) && !( $('.menu-mobile-transparent').length && UNCODE.wwidth <= UNCODE.mediaQueryMobile ) ) { 358 if ( $('.menu-sticky .menu-container:not(.menu-hide)').length && ! $('.menu-shrink').length && ! $('body').hasClass('vmenu') && UNCODE.wwidth > UNCODE.mediaQuery ) { 359 logoH = $logo.outerHeight(), 360 menuH = $menu.outerHeight(); 361 if ( calc_scroll < ( logoH + menuH ) ) { 362 calc_scroll = 0; 363 } 364 } 365 } 366 367 if ( UNCODE.menuStickyMobileOverlay === false && UNCODE.isMobile ) { 368 calc_scroll = calc_scroll - parseFloat( $('.overlay.overlay-menu').outerHeight() ); 369 } 370 371 if (scrollSpeed == 0) { 372 $('html, body').scrollTop(calc_scroll); 373 UNCODE.scrolling = false; 374 } else { 375 $('html, body').on("scroll wheel DOMMouseScroll mousewheel touchmove", function(){ 376 $(this).stop(); 377 }).animate({ 378 scrollTop: (delta > 0) ? calc_scroll - 0.1 : calc_scroll 379 }, scrollSpeed, 'easeInOutCubic', function() { 380 $(this).off("scroll wheel DOMMouseScroll mousewheel touchmove"); 381 UNCODE.scrolling = false;
382 if ( ( getOffset != UNCODE.get_scroll_offset(e) && !( $('.menu-desktop-transparent').length && UNCODE.wwidth > UNCODE.mediaQuery ) && !( $('.menu-mobile-transparent').length && UNCODE.wwidth <= UNCODE.mediaQueryMobile ) ) 383 || 384 $('.menu-hided').length ) { 385 calc_scroll = scrollSection.offset().top; 386 getOffset = UNCODE.get_scroll_offset(e); 387 calc_scroll -= getOffset; 388 $('html, body').on("scroll wheel DOMMouseScroll mousewheel touchmove", function(){ 389 $(this).stop(); 390 }).animate({ 391 scrollTop: (delta > 0) ? calc_scroll - 0.1 : calc_scroll 392 }, scrollSpeed, 'easeInOutCubic', function() { 393 $(this).off("scroll wheel DOMMouseScroll mousewheel touchmove"); 394 UNCODE.scrolling = false; 395 } 396 ); 397 } 398 }); 399 } 400 } 401 } 402 } 403 }); 404 $('.header-scrolldown').on('click', function(event) { 405 406 event.preventDefault(); 407 408 var pageHeader = $(event.target).closest('#page-header'), 409 pageHeaderTop = pageHeader.offset().top, 410 pageHeaderHeight = pageHeader.outerHeight(), 411 scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(pageHeaderTop + pageHeaderHeight) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed; 412 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 413 414 var calc_scroll = pageHeaderTop + pageHeaderHeight, 415 getOffset = UNCODE.get_scroll_offset(event); 416 calc_scroll -= getOffset; 417 418 if ( !( $('.menu-desktop-transparent').length && UNCODE.wwidth > UNCODE.mediaQuery ) && !( $('.menu-mobile-transparent').length && UNCODE.wwidth <= UNCODE.mediaQueryMobile ) ) { 419 var shrink = typeof $('.navbar-brand').data('padding-shrink') !== 'undefined' ? $('.navbar-brand').data('padding-shrink')*2 : 36; 420 421 if ( $('.menu-sticky .menu-container:not(.menu-hide)').length && $('.menu-shrink').length ) { 422 scrollTo += UNCODE.menuHeight - ( $('.navbar-brand').data('minheight') + shrink ); 423 } 424 } 425 426 if (scrollSpeed == 0) { 427 $('html, body').scrollTop(calc_scroll); 428 UNCODE.scrolling = false; 429 } else { 430 $('html, body').on("scroll wheel DOMMouseScroll mousewheel touchmove", function(){ 431 $(this).stop(); 432 }).animate({ 433 scrollTop: calc_scroll 434 }, scrollSpeed, 'easeInOutCubic', function() { 435 $(this).off("scroll wheel DOMMouseScroll mousewheel touchmove"); 436 UNCODE.scrolling = false; 437 if (getOffset != UNCODE.get_scroll_offset(event) || $('.menu-hided').length) { 438 calc_scroll = pageHeaderTop + pageHeaderHeight; 439 getOffset = UNCODE.get_scroll_offset(event); 440 calc_scroll -= getOffset; 441 $('html, body').on("scroll wheel DOMMouseScroll mousewheel touchmove", function(){ 442 $(this).stop(); 443 }).animate({ 444 scrollTop: calc_scroll 445 }, scrollSpeed, 'easeInOutCubic', function() { 446 $(this).off("scroll wheel DOMMouseScroll mousewheel touchmove"); 447 UNCODE.scrolling = false; 448 } 449 ); 450 } 451 } 452 ); 453 } 454 }); 455 } 456 457 // Colomun hover effect 458 // ================= 459 $(document).on('mouseenter', '.col-link', function(e) { 460 var uncol = $(e.target).prev('.uncol'), 461 el = uncol.find('.column-background'); 462 if (el) { 463 $('.btn-container .btn', uncol).addClass('active'); 464 var elOverlay = $(el[0]).find('.block-bg-overlay'); 465 if (elOverlay.length) { 466 var getOpacity = $(elOverlay).css('opacity'); 467 if (getOpacity != 1) { 468 getOpacity = Math.round(getOpacity * 100) / 100; 469 var newOpacity = getOpacity + .1; 470 $(elOverlay).data('data-opacity', getOpacity); 471 $(elOverlay).css('opacity', newOpacity); 472 } 473 } 474 } 475 }).on('mouseleave', '.col-link', function(e) { 476 var uncol = $(e.target).prev('.uncol'), 477 el = uncol.find('.column-background'); 478 $('.btn-container .btn', uncol).removeClass('active'); 479 if (el) { 480 var elOverlay = $(el[0]).find('.block-bg-overlay'); 481 if (elOverlay.length) { 482 var getOpacity = $(elOverlay).data('data-opacity'); 483 $(elOverlay).css('opacity', getOpacity); 484 } 485 } 486 }); 487 488 // Admin bar 489 // ============ 490 var fixAdminBar = function() { 491 if ($('html').hasClass('admin-mode') && !SiteParameters.is_frontend_editor ) { 492 var getAdminBar = $('#wpadminbar'); 493 if (getAdminBar.length) { 494 if (getAdminBar.css('position') !== 'hidden') { 495 var getAdminBarHeight = getAdminBar.height(); 496 if (getAdminBar.css('position') === 'fixed') { 497 $('html').css({'margin-top':getAdminBarHeight + 'px','padding-top': UNCODE.bodyBorder+'px'}); 498 $('.body-borders .top-border').css({'margin-top':getAdminBarHeight+'px'}); 499 } else { 500 $('html').css({'padding-top':UNCODE.bodyBorder + 'px','margin-top':'0px'}); 501 $('.body-borders .top-border').css({'margin-top':'0px'}); 502 } 503 } 504 } 505 } 506 }; 507 window.addEventListener('load', fixAdminBar); 508 window.addEventListener('resize', fixAdminBar); 509 // Print 510 // =========== 511 var beforePrint = function() { 512 window.dispatchEvent(new CustomEvent('resize')); 513 window.dispatchEvent(UNCODE.boxEvent); 514 }; 515 516 if (window.matchMedia) { 517 var mediaQueryList = window.matchMedia('print'); 518 mediaQueryList.addListener(function(mql) { 519 if (mql.matches) { 520 beforePrint(); 521 } 522 }); 523 } 524 525 window.onbeforeprint = beforePrint; 526 527 // Safari srcset 528 var safariSrcSet = function(){ 529 if ( !SiteParameters.is_frontend_editor ) { 530 $('html.safari img[sizes]').each(function(){ 531 var $img = $(this), 532 sizeImg = parseInt($img.attr('sizes'));
533 if ( typeof(sizeImg) === 'number' ) { 534 $img.attr('sizes', (sizeImg) + 'px'); 535 } 536 }); 537 } 538 }; 539 window.addEventListener('load', safariSrcSet); 540} 541 542UNCODE.lettering = function() { 543 544 var setCTA; 545 var highlightStill = function(){ 546 547 var $heading_texts = $('.heading-text:not(.animate_inner_when_almost_visible)'); 548 549 $.each($heading_texts, function(key, el) { 550 var $heading = $(el); 551 552 if ( ! $('.heading-text-highlight-inner[data-animated="yes"]', $heading).length ) { 553 return; 554 } 555 556 if (UNCODE.isUnmodalOpen && !el.closest('#unmodal-content')) { 557 return; 558 } 559 560 var waypoint = new Waypoint({ 561 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 562 element: el, 563 handler: function() { 564 var $anims = $('.heading-text-highlight-inner[data-animated="yes"]', this.element), 565 anims_l = $anims.length; 566 $anims.each(function(_key_, _el_){ 567 var $anim = $(_el_); 568 569 if ( ! $anim.hasClass('heading-text-highlight-animated') ) { 570 $anim.addClass('heading-text-highlight-animated'); 571 572 if ( $heading.data('animate') === true ) { 573 $anim.css({ 574 '-webkit-transition-duration': '0ms', 575 '-moz-transition-duration': '0ms', 576 '-o-transition-duration': '0ms', 577 'transition-duration': '0ms', 578 }); 579 } else { 580 $anim.css({ 581 '-webkit-transition-delay': ((_key_ + 2) * 200) + 'ms', 582 '-moz-transition-delay': ((_key_ + 2) * 200) + 'ms', 583 '-o-transition-delay': ((_key_ + 2) * 200) + 'ms', 584 'transition-delay': ((_key_ + 2) * 200) + 'ms', 585 }); 586 } 587 } 588 589 }); 590 $anims.last().one('webkitTransitionEnd oTransitionEnd mozTransitionEnd msTransitionEnd transitionEnd', function(e) { 591 $heading.data('animate', true); 592 }); 593 $anims.removeAttr('data-animated'); 594 }, 595 offset: '100%' 596 }); 597 598 }); 599 600 Waypoint.refreshAll(); 601 $( document.body ).trigger('uncode_waypoints'); 602 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 603 $(document).trigger('uncode-scrolltrigger-refresh'); 604 } 605 606 } 607 608 requestTimeout(function(){ 609 highlightStill(); 610 $(window).on( 'wwResize', function(){ 611 clearRequestTimeout(setCTA); 612 setCTA = requestTimeout( highlightStill, 100 ); 613 }); 614 }, 400); 615 616}; 617 618UNCODE.isUnmodalOpen = false; 619 620var manageVideoSize = function(){ 621 622 var setVideoFit; 623 $('.wp-block-embed').each(function(){ 624 625 var $this = $(this); 626 627 if ( $('iframe', $this).length ) { 628 629 var $iframe = $('> iframe, > a > iframe', $this), 630 w = parseFloat($iframe.attr('width')), 631 h = parseFloat($iframe.attr('height')), 632 url = $iframe.attr('src'), 633 ratio, frW; 634 635 if ( typeof url != 'undefined' && url.indexOf('soundcloud') == -1 && h !== 0 ) { 636 637 ratio = h / w; 638 var setResizeiFto, 639 resizeiFrame = function(){ 640 frW = $iframe.width(); 641 $iframe.css({ 642 height: frW * ratio 643 }); 644 }; 645 resizeiFrame(); 646 $(window).on( 'wwResize load', function(){ 647 clearRequestTimeout(setResizeiFto); 648 setResizeiFto = requestTimeout( function() { 649 resizeiFrame(); 650 }, 10 ); 651 }); 652 653 } 654 655 } 656 657 }); 658 659}; 660 661manageVideoSize(); 662 663UNCODE.vivus = function(icon, time, delay, file) { 664 if (typeof Vivus !== 'undefined') { 665 var icon_options = { 666 type: 'delayed', 667 pathTimingFunction: Vivus.EASE_OUT, 668 animTimingFunction: Vivus.LINEAR, 669 duration: time, 670 } 671 672 if (delay) { 673 icon_options.delayStart = delay; 674 } 675 676 if (file) { 677 icon_options.file = file; 678 } 679 680 new Vivus(icon, icon_options); 681 } 682}; 683 684UNCODE.lastURL = ''; 685 686UNCODE.getURLParams = function(current_location, is_string) { 687 var params = {}; 688 if (is_string) { 689 var url = current_location.split('?')[1]; 690 } else { 691 var url = current_location.search; 692 url = url.substring(1); 693 } 694 if (url) { 695 var parts = url.split('&'); 696 for (var i = 0; i < parts.length; i++) { 697 var nv = parts[i].split('='); 698 if (!nv[0]) { 699 continue; 700 } 701 params[nv[0]] = nv[1] || true; 702 } 703 } 704 return params; 705} 706 707UNCODE.hasEqualURLParams = function(obj1, obj2) { 708 for (var i in obj1) { 709 if (obj1.hasOwnProperty(i)) { 710 if (!obj2.hasOwnProperty(i)) { 711 return false;
712 } 713 if (obj1[i] != obj2[i]) { 714 return false; 715 } 716 } 717 } 718 for (var i in obj2) { 719 if (obj2.hasOwnProperty(i)) { 720 if (!obj1.hasOwnProperty(i)) { 721 return false; 722 } 723 if (obj1[i] != obj2[i]) { 724 return false; 725 } 726 } 727 } 728 return true; 729} 730 731UNCODE.magnetic = function(){ 732 733 $(document).on('mousemove', '.un-magnetic-zone', function(e){ 734 735 var $zone = $(this), 736 zoneOff = $zone.offset(), 737 $mgntcEl = $('.un-magnetic-el', this), 738 elBound = this.getBoundingClientRect(), 739 maxSize = Math.max($zone.outerWidth(), $zone.outerHeight()); 740 741 var Xvalue = e.pageX - (zoneOff.left + maxSize / 2), 742 Yvalue = e.pageY - (zoneOff.top + maxSize / 2); 743 744 $mgntcEl.each(function(key, val){ 745 var magneticValue = $(val).attr('data-mgntc') || 0.5; 746 747 val.animate({ 748 transform: 'translate(' + (Xvalue * magneticValue) + '%, ' + (Yvalue * magneticValue) + '%)', 749 },{ 750 duration: 500, 751 fill: 'forwards', 752 }) 753 }); 754 }) 755 756 $(document).on('mouseleave', '.un-magnetic-zone', function(e){ 757 var $mgntcEl = $('.un-magnetic-el', this); 758 759 $mgntcEl.each(function(key, val){ 760 val.animate({ 761 transform: 'translate(0)', 762 },{ 763 duration: 500, 764 fill: 'forwards', 765 }) 766 }); 767 }) 768}; 769UNCODE.rowParallax = function(){ 770 771 if ( SiteParameters.is_frontend_editor || SiteParameters.smoothScroll !== 'on' ) { 772 return; 773 } 774 775 var $rows = $('.parallax-move'), 776 stableHeight = UNCODE.wheight; 777 $rows.each(function(){ 778 var $row = $(this), 779 _row = $row[0], 780 dataMove = $row.attr('data-parallax-move'), 781 dataSafe = $row.attr('data-parallax-safe'), 782 rowInViewport = false, 783 trans; 784 785 if ( $row.find('.parallax-move').length ) { 786 return; 787 } 788 789 dataSafe = typeof dataSafe === 'undefined' ? '' : dataSafe; 790 dataMove = typeof dataMove === 'undefined' || dataMove === '' ? 3 : dataMove; 791 dataMove = dataMove / 10; 792 793 if ( 'IntersectionObserver' in window ) { 794 var observer = new IntersectionObserver(function(entries) { 795 796 entries.forEach(function(entry){ 797 if ( entry.isIntersecting ) { 798 rowInViewport = true; 799 } else { 800 rowInViewport = false; 801 } 802 }); 803 804 }, { 805 root: document, 806 }); 807 808 observer.observe(_row); 809 } else { 810 rowInViewport = true; 811 } 812 813 var loopRAF = function() { 814 if( rowInViewport ) { 815 var bound = _row.getBoundingClientRect(), 816 bound_top = bound.top, 817 bound_height = bound.height, 818 move = true, 819 scrolled = window.pageYOffset || window.document.documentElement.scrollTop, 820 docH = Math.max( document.body.scrollHeight, document.body.offsetHeight, 821 document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ), 822 fromBottom = docH - (scrolled + bound_top + bound_height); 823 824 if ( bound_height > stableHeight && dataSafe === 'yes' ) { 825 $row.find('>div').css({ 826 'transform':'none' 827 }); 828 move = false; 829 } 830 831 if ( UNCODE.wwidth < SiteParameters.smoothScrollQuery ) { 832 $row.find('>div').css({ 833 'transform':'none' 834 }); 835 move = false; 836 } 837 838 if ( move ) { 839 840 if ( fromBottom < stableHeight ) { 841 //maybe Footer 842 trans = (stableHeight - (bound_top + bound_height + fromBottom))*(dataMove); 843 } else if ( scrolled + bound_top < stableHeight ) { 844 //maybe Header 845 trans = scrolled*(dataMove); 846 } else { 847 trans = (((stableHeight/2) - (bound_top + (bound_height/2)))*dataMove); 848 } 849 850 $row.find('>div').css({ 851 'transform':'translateY(' + (trans) + 'px) translateZ(0)', 852 }); 853 } 854 } 855 856 requestAnimationFrame(loopRAF); 857 }; 858 859 requestAnimationFrame(loopRAF); 860 861 }); 862 863 $(window).on( 'load resize', function(e) { 864 if ( ! UNCODE.isMobile ) { 865 stableHeight = UNCODE.wheight; 866 } 867 }); 868 869 $(window).on( 'load wwResize', function(e) { 870 if ( UNCODE.isMobile ) { 871 stableHeight = UNCODE.wheight; 872 } 873 }); 874 875} 876 877UNCODE.changeSkinOnScroll = function(){ 878 if ( UNCODE.isFullPage && ! UNCODE.isFullPageSnap ) { 879 return; 880 } 881 var $masthead = $('#masthead'), 882 transDesktop, 883 transMobile, 884 changeSkin, 885 886 checkTransparencyAndChange = function( $col ){
887 transDesktop = $masthead.hasClass('menu-desktop-transparent') && UNCODE.wwidth >= UNCODE.mediaQuery; 888 transMobile = $masthead.hasClass('menu-mobile-transparent') && UNCODE.wwidth < UNCODE.mediaQuery; 889 changeSkin = $masthead.hasClass('menu-change-skin'); 890 891 if ( ! transDesktop && ! transMobile ) { 892 return false; 893 } 894 895 if ( ! changeSkin ) { 896 return false; 897 } 898 899 if ( $col.hasClass('style-light') ){ 900 $masthead.removeClass('style-dark-override').addClass('style-light-override'); 901 return false; 902 } else if ( $col.hasClass('style-dark') ) { 903 $masthead.removeClass('style-light-override').addClass('style-dark-override'); 904 return false; 905 } 906 }; 907 908 var prev_row = 'normal', 909 odd = true, 910 $rows = $('.vc_row[data-parent]:visible:not(.overlay-menu *):not(#uncode-mobile-menu-block *)'); 911 $.each($rows, function(index, row){ 912 var $row = $(row), 913 $col = $('.uncol', $row).first(), 914 $slider = $('.uncode-slider', $row); 915 916 if ( $row.closest('li.menu-item').length ) { 917 return; 918 } 919 920 var wayDown = new Waypoint({ 921 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 922 element: row, 923 handler: function(direction) { 924 if ( direction == 'down' && ( prev_row !== 'normal' || !row.hasAttribute('data-bg-changer') ) ) { 925 if ( $slider.length ) { 926 $col = $('.owl-item.index-active .uncol', $slider).first(); 927 } 928 checkTransparencyAndChange($col); 929 } 930 if ( odd === false ) { 931 if ( row.hasAttribute('data-bg-changer') ) { 932 prev_row = 'bg-changer'; 933 } else { 934 prev_row = 'normal'; 935 } 936 odd = true; 937 } else { 938 odd = false; 939 } 940 }, 941 offset: function() { 942 return UNCODE.menuHeight / 2 943 } 944 }); 945 var wayUp = new Waypoint({ 946 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 947 element: row, 948 handler: function(direction) { 949 if ( direction == 'up' && ( prev_row !== 'normal' || !row.hasAttribute('data-bg-changer') ) ) { 950 if ( $slider.length ) { 951 $col = $('.owl-item.index-active .uncol', $slider).first(); 952 } 953 checkTransparencyAndChange($col); 954 } 955 if ( odd === false ) { 956 if ( row.hasAttribute('data-bg-changer') ) { 957 prev_row = 'bg-changer'; 958 } else { 959 prev_row = 'normal'; 960 } 961 odd = true; 962 } else { 963 odd = false; 964 } 965 }, 966 offset: function() { 967 return -row.clientHeight + ( UNCODE.menuHeight / 2 ) 968 } 969 }); 970 }); 971 972}; 973 974UNCODE.share = function() { 975 if (typeof Share !== 'undefined') { 976 var share_button_element = $('.share-button'); 977 var share_button_url = share_button_element.data('url'); 978 979 var share_button_config = { 980 ui: { 981 flyout: "top center", 982 button_font: false, 983 button_text: '', 984 icon_font: false 985 } 986 }; 987 988 if (share_button_url) { 989 share_button_config.url = share_button_url.replace("&", "%26"); 990 } 991 992 var share_button_top = new Share('.share-button', share_button_config); 993 994 $('li[data-network]', share_button_element).each(function(){ 995 var label = SiteParameters.uncode_share_label, 996 network = $(this).attr('data-network'); 997 label = label.replace("%", network); 998 $(this).attr('aria-label', label); 999 }); 1000 } 1001}; 1002 1003UNCODE.tooltip = function() { 1004 if (typeof jQuery.fn.tooltip !== 'undefined') { 1005 $('.btn-tooltip').tooltip(); 1006 } 1007}; 1008 1009UNCODE.counters = function() { 1010 var $counters = $('.uncode-counter:not(.counter-init)'); 1011 $counters.each(function(){ 1012 var $counter = $(this).addClass('counter-init'); 1013 if ( SiteParameters.is_frontend_editor ) { 1014 $counter.addClass('started'); 1015 } 1016 if ( $counter.closest( '.owl-carousel' ).length ) { 1017 return; 1018 } 1019 $counter.addClass('started').counterUp({ 1020 delay: 10, 1021 time: 1500 1022 }); 1023 }); 1024}; 1025 1026UNCODE.countdowns = function() { 1027 var $countdowns = $('[data-uncode-countdown]:not(.counter-init)'); 1028 $countdowns.each(function() { 1029 var $this = $(this).addClass('counter-init'), 1030 finalDate = $(this).data('uncode-countdown'); 1031 $this.countdown(finalDate, function(event) { 1032 $this.html(event.strftime('<span>%D <small>' + SiteParameters.days + '</small></span> <span>%H <small>' + SiteParameters.hours + '</small></span> <span>%M <small>' + SiteParameters.minutes + '</small></span> <span>%S <small>' + SiteParameters.seconds + '</small></span>')); 1033 }); 1034 }); 1035}; 1036 1037UNCODE.tabs = function() { 1038 1039 var tabSwitcher = function($el){ 1040 $('.tab-switch, .tab-active-anim, .nav-tabs.tab-no-border:not(.tabs-vert
1040ical):not(.tab-switch)', $el).each(function(key, value){ 1041 var $navs = $(value), 1042 $active = $('li.active', $navs), 1043 $active_a = $('> a', $active), 1044 $active_span = $('> span', $active_a), 1045 vertical = $navs.closest('.vertical-tab-menu').length; 1046 1047 if ( ! $('.switcher-cursor', $navs).length && ! vertical ) { 1048 $navs.append('<span class="switcher-cursor" aria-hidden="true" tabindex="-1" />'); 1049 } 1050 1051 var $cursor = $('.switcher-cursor', $navs), 1052 active_w = $('a', $active).outerWidth(), 1053 span_w = $active_span.outerWidth(), 1054 active_pos = $active.position(), 1055 active_a_pos = $active_a.position(), 1056 span_pos = $active_span.position(), 1057 cursor_w = $navs.hasClass('tab-no-border') && !$navs.hasClass('tab-switch') ? span_w : active_w, 1058 cursor_left = $navs.hasClass('tab-no-border') && !$navs.hasClass('tab-switch') ? active_pos.left + span_pos.left : active_pos.left; 1059 1060 cursor_left = cursor_left + active_a_pos.left + parseInt($active_a.css('marginLeft'), 10); 1061 1062 if ( ! vertical ) { 1063 $cursor.css({ 1064 left: cursor_left, 1065 width: cursor_w 1066 }); 1067 } 1068 1069 $navs.addClass('switch-init'); 1070 }); 1071 }; 1072 1073 var $body = $('body'); 1074 tabSwitcher($body); 1075 1076 var tabHoverIntent = function(){ 1077 var setHover; 1078 $('.tab-hover [data-toggle="tab"], .tab-hover [data-toggle="pill"]') 1079 .on('mouseover', function(e){ 1080 var $this = $(e.target); 1081 setHover = requestTimeout(function() { 1082 $this.trigger('hover-int'); 1083 }, 50); 1084 }) 1085 .on('mouseout', function(){ 1086 clearRequestTimeout(setHover); 1087 }); 1088 }; 1089 tabHoverIntent(); 1090 1091 var tabInit = function(){ 1092 $('[data-toggle="tab"], [data-toggle="pill"]').on('click.bs.tab.data-api hover-int', function(e) { 1093 e.preventDefault() 1094 var $el = $(this); 1095 $el.tab('show'); 1096 var $container = $el.closest('.uncode-tabs'); 1097 tabSwitcher($container); 1098 requestTimeout(function() { 1099 window.dispatchEvent(UNCODE.boxEvent); 1100 var $tabs = $(e.currentTarget).closest('.uncode-tabs'); 1101 1102 if ( $tabs.hasClass('tabs-trigger-box-resized') ) { 1103 window.dispatchEvent(new CustomEvent('boxResized')); 1104 } else if ( $tabs.hasClass('tabs-trigger-window-resize') ) { 1105 window.dispatchEvent(new Event('resize')); 1106 $(window).trigger('uncode.re-layout'); 1107 } 1108 1109 var $active_panel = $('.tab-pane.active', $tabs); 1110 1111 $.each($('.animate_when_almost_visible:not(.start_animation):not(.t-inside):not(.drop-image-separator), .index-scroll .animate_when_almost_visible, .tmb-media .animate_when_almost_visible:not(.start_animation), .animate_when_almost_visible.has-rotating-text, .custom-grid-container .animate_when_almost_visible:not(.start_animation)', $active_panel), function(index, val) { 1112 var element = $(val), 1113 delayAttr = element.attr('data-delay'); 1114 if (delayAttr == undefined) delayAttr = 0; 1115 requestTimeout(function() { 1116 element.addClass('start_animation'); 1117 }, delayAttr); 1118 }); 1119 1120 }, 300); 1121 1122 var $tabs = $(e.currentTarget).closest('.uncode-tabs'), 1123 $non_active_panel = $('.tab-pane:not(.active)', $tabs); 1124 $.each($('.start_animation:not(.t-inside):not(.drop-image-separator)', $non_active_panel), function(index, val) { 1125 var element = $(val); 1126 element.removeClass('start_animation'); 1127 }); 1128 1129 var $li = $el.closest('li'), 1130 mQuery = $el.closest('.tab-tablet-bp').length ? UNCODE.mediaQuery : UNCODE.mediaQueryMobile; 1131 $('li', $container).not($li).find('.tab-pane').slideUp(250) 1132 $('.tab-pane', $li).slideDown(250); 1133 var completeSlideDown = requestTimeout(function(){ 1134 if ( UNCODE.wwidth <= mQuery && typeof e.originalEvent !== 'undefined' ) { 1135 var pos = $el.offset(), 1136 rect = $el[0].getBoundingClientRect(), 1137 $masthead = $('#masthead > .menu-container'), 1138 considerMenu = $('.menu-wrapper .is_stuck').length && $('.menu-wrapper .is_stuck > div').offset().top > 50 ? UNCODE.menuMobileHeight : 0; 1139 1140 if ( ( ( rect.top ) - considerMenu ) < 0 || ( rect.bottom ) > (window.innerHeight || document.documentElement.clientHeight) ) { 1141 $('html, body').animate({ 1142 scrollTop: ( pos.top ) - considerMenu 1143 },{ 1144 easing: 'easeInOutQuad', 1145 duration: 250 1146 }); 1147 } 1148 } 1149 }, 260); 1150 }); 1151 } 1152 tabInit(); 1153 1154 var tabResponsive = function(){ 1155 if ( SiteParameters.is_frontend_editor ) { 1156 return true; 1157 } 1158 var $tabContainers = $('.tab-container.tabs-breakpoint'); 1159 $tabContainers.each(function(){ 1160 var $tabContainer = $(this), 1161 $tabContent = $('.tab-content', $tabContainer), 1162 $nav = $('.nav-tabs', $tabContainer), 1163 mQuery = $tabContainer.hasClass('tab-tablet-bp') ? UNCODE.mediaQuery : UNCODE.mediaQueryMobile; 1164 1165 $('> li', $nav).each(function(){ 1166 var $li = $(this), 1167 dataID = $li.attr('data-tab-id'); 1168 1169 if ( UNCODE.wwidth <= mQuery ) { 1170 if ( ! $('.tab-pane', $li ).length ) { 1171 var $append_pane = $('[data-id="' + dataID + '"], #' + dataID, $tabContent); 1172 $tabContainer.addClass('tabs-appended'); 1173 $li.append($append_pane); 1174 } 1175 1176 if ( $li.hasClass('active') ) { 1177 $('> a', $li).triggerHandler('click.bs.tab.data-api'); 1178 } 1179 } else { 1180 if ( ! $('[data-id="' + dataID + '"]', $tabContent ).length ) { 1181 var $append_pane = $('[data-id="' + dataID + '"], #' + dataID, $nav); 1182 $tabContainer.removeClass('tabs-appended');
1183 $tabContent.prepend($append_pane.removeAttr('style')); 1184 } 1185 } 1186 }); 1187 }); 1188 1189 } 1190 tabResponsive(); 1191 1192 $(window).on('wwResize', function(){ 1193 tabHoverIntent(); 1194 tabSwitcher($body); 1195 }); 1196 1197 var setCTA; 1198 $(window).on( 'resize', function(){ 1199 clearRequestTimeout(setCTA); 1200 setCTA = requestTimeout( tabResponsive, 100 ); 1201 }); 1202 1203 $('.nav-tabs').each(function(){ 1204 var $nav = $(this), 1205 $lis = $('> li:not(.active)', $nav), 1206 $links = $('.tab-excerpt-link', $nav); 1207 $('.tab-excerpt', $lis).slideUp(400, function(){ 1208 $(this).addClass('init'); 1209 }); 1210 1211 $links.each(function(){ 1212 var $link = $(this), 1213 $par_a = $link.closest('a'), 1214 href = $link.attr('data-href'), 1215 target = $link.attr('data-target'); 1216 $par_a.addClass('inner-link'); 1217 $link.on('click', function(){ 1218 var _link = document.createElement('a'); 1219 _link.href = href; 1220 _link.target = typeof target === 'undefined' || target === '' ? '_self' : target; 1221 _link.click(); 1222 }); 1223 }); 1224 $nav.addClass('tab-init'); 1225 }); 1226 1227 $('.uncode-tabs.tabs-no-lazy').each(function(){ 1228 var $tabs = $(this), 1229 $panes = $('.tab-pane:not(.active)', $tabs); 1230 $panes.each(function(){ 1231 var $pane = $(this), 1232 $imgs = $('img[loading="lazy"]', $pane); 1233 $imgs.removeAttr('loading'); 1234 $imgs.removeAttr('decoding'); 1235 }); 1236 }); 1237 1238}; 1239UNCODE.collapse = function() { 1240 $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function(e) { 1241 var $this = $(this), 1242 href 1243 var target = $this.attr('data-target') || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 1244 var $target = $(target) 1245 var parent = $this.attr('data-parent') 1246 var $parent = parent && $(parent) 1247 var $title = $(this).parent() 1248 var $accordion = $(e.target).closest('.uncode-accordion') 1249 var $group = $this.closest('.group') 1250 var $panel_group = $this.closest('.panel-group') 1251 if ($parent) { 1252 $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed') 1253 if ($title.hasClass('active') && ( $panel_group.attr('data-no-toggle') != true || e.type === 'click' ) ) { 1254 $title.removeClass('active'); 1255 $group.removeClass('active-group'); 1256 } else { 1257 if ( $panel_group.attr('data-no-toggle') != true ) { 1258 $parent.find('.panel-title').removeClass('active') 1259 $parent.find('.group').removeClass('active-group') 1260 } 1261 $title[!$target.hasClass('in') ? 'addClass' : ( $panel_group.attr('data-no-toggle') != true ) && 'removeClass']('active') 1262 $group[!$target.hasClass('in') ? 'addClass' : ( $panel_group.attr('data-no-toggle') != true ) && 'removeClass']('active-group') 1263 } 1264 } 1265 $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') 1266 requestTimeout(function() { 1267 var $accordion = $(e.target).closest('.uncode-accordion'); 1268 if ( $accordion.hasClass('tabs-trigger-box-resized') ) { 1269 window.dispatchEvent(new CustomEvent('boxResized')); 1270 } else if ( $accordion.hasClass('tabs-trigger-window-resize') ) { 1271 window.dispatchEvent(new Event('resize')); 1272 $(window).trigger('uncode.re-layout'); 1273 } 1274 1275 var $active_panel = $('.panel.active-group', $parent); 1276 1277 $.each($('.animate_when_almost_visible:not(.start_animation):not(.t-inside):not(.drop-image-separator), .index-scroll .animate_when_almost_visible, .tmb-media .animate_when_almost_visible:not(.start_animation), .animate_when_almost_visible.has-rotating-text, .custom-grid-container .animate_when_almost_visible:not(.start_animation)', $active_panel), function(index, val) { 1278 var element = $(val), 1279 delayAttr = element.attr('data-delay'); 1280 if (delayAttr == undefined) delayAttr = 0; 1281 requestTimeout(function() { 1282 element.addClass('start_animation'); 1283 }, delayAttr); 1284 }); 1285 1286 }, 500); 1287 1288 $group.find('.panel-title:not(.active) > a').trigger('blur'); 1289 1290 }); 1291 1292 $('.uncode-accordion.tabs-no-lazy').each(function(){ 1293 var $accordion = $(this), 1294 $panes = $('.panel:not(.active-group)', $accordion); 1295 $panes.each(function(){ 1296 var $pane = $(this), 1297 $imgs = $('img[loading="lazy"]', $pane); 1298 $imgs.removeAttr('loading'); 1299 $imgs.removeAttr('decoding'); 1300 }); 1301 }); 1302}; 1303 1304UNCODE.accessibility = function() { 1305 if ( ! SiteParameters.uncode_is_accessible ) { 1306 return; 1307 } 1308 1309 // 1310 1311}; 1312UNCODE.bigText = function(el) { 1313 var bigTextLaunch = function(){ 1314 if (el == undefined) { 1315 el = $('body'); 1316 } 1317 $.each($('.bigtext', el), function(index, val) { 1318 $(val).bigtext({ 1319 minfontsize: 24 1320 }); 1321 if (!$(val).parent().hasClass('blocks-animation') && !$(val).hasClass('animate_when_almost_visible')) $(val).css({ 1322 opacity: 1 1323 }); 1324 requestTimeout(function() { 1325 if ($(val).find('.animate_when_almost_visible').length != 0) { 1326 $(val).css({opacity: 1}); 1327 } 1328 }, 400); 1329 }); 1330 }; 1331 1332 if ( UNCODE.wwidth > UNCODE.mediaQuery ) { 1333 bigTextLaunch(); 1334 } 1335 $(window).on( 'load', bigTextLaunch ); 1336}; 1337 1338UNCODE.process_shortpixel_image = function(image) { 1339 var data = { 1340 action: 'shortpixel_manual_optimization', 1341 image_id: image,
1342 cleanup: true 1343 }; 1344 1345 $.get(SiteParameters.ajax_url, data); 1346}; 1347 1348UNCODE.animateSubInside = function( _this, remove ){ 1349 if ( typeof remove !== 'undefined' && remove === true ) { 1350 $(document).trigger('sub-menu-slide-up'); 1351 $('.animate_when_almost_visible, .translate_when_almost_visible', _this).each(function(){ 1352 $(this).removeClass('start_animation').css({ 'animation-delay': '0s', 'transition-delay': '0s'}); 1353 }); 1354 } else { 1355 $.each($('.translate_when_almost_visible:not(.start_animation), .animate_when_almost_visible:not(.start_animation):not(.t-inside):not(.drop-image-separator), .index-scroll .animate_when_almost_visible, .tmb-media .animate_when_almost_visible:not(.start_animation), .animate_when_almost_visible.has-rotating-text, .custom-grid-container .animate_when_almost_visible:not(.start_animation)', _this), function(index, val) { 1356 var element = $(val), 1357 delayAttr = element.attr('data-delay'); 1358 if (delayAttr == undefined) delayAttr = 0; 1359 element.css({ 'animation-delay': delayAttr + 'ms', 'transition-delay': delayAttr + 'ms'}); 1360 element.addClass('start_animation'); 1361 }); 1362 document.dispatchEvent(new CustomEvent('sub-menu-slide-down')); 1363 } 1364}; 1365 1366 1367UNCODE.menuSystem = function() { 1368 1369 function menuMobile() { 1370 var $body = $('body'), 1371 scrolltop, 1372 $mobileToggleButton = $('.mobile-menu-button, .uncode-close-offcanvas-mobile:not(.vc_element)'), 1373 $masthead = $('#masthead'), 1374 $menuBlock = $('#uncode-mobile-menu-block'), 1375 $box, 1376 $el, 1377 $el_transp, 1378 elHeight, 1379 offCanvasAnim, 1380 check, 1381 animating = false, 1382 stickyMobile = false, 1383 menuClose = new CustomEvent('menuMobileClose'), 1384 menuOpen = new CustomEvent('menuMobileOpen'); 1385 UNCODE.menuOpened = false; 1386 $mobileToggleButton.on('click', function(event) { 1387 event.stopPropagation(); 1388 var btn = this; 1389 if ($(btn).hasClass('overlay-close')) return; 1390 event.preventDefault(); 1391 $('.overlay-search.open .menu-close-dd', $masthead).trigger('click'); 1392 if (UNCODE.wwidth <= UNCODE.mediaQuery) { 1393 $box = $(this).closest('.box-container').find('.main-menu-container:not(.no-mobile):not(.main-wrapper *)'); 1394 $el = $(this).closest('.box-container').find('.menu-horizontal-inner:not(.row-brand):not(.main-wrapper *), .menu-sidebar-inner:not(.main-wrapper *)'); 1395 $el_transp = $('.menu-absolute.menu-transparent'); 1396 if (UNCODE.isMobile) { 1397 if ( $('.menu-wrapper.menu-sticky, .menu-wrapper.menu-hide-only, .main-header .menu-sticky-vertical, .main-header .menu-hide-only-vertical, .menu-mobile-centered, .menu-sticky-mobile').length ) { 1398 stickyMobile = true; 1399 elHeight = window.innerHeight - UNCODE.menuMobileHeight - (UNCODE.bodyBorder * 2) - UNCODE.adminBarHeight + 1; 1400 } else { 1401 elHeight = 0; 1402 $.each($box.find('> div'), function(index, val) { 1403 elHeight += $(val).outerHeight(); 1404 }); 1405 } 1406 } else { 1407 elHeight = 0; 1408 $.each($el, function(index, val) { 1409 elHeight += $(val).outerHeight(); 1410 }); 1411 } 1412 var open = function() { 1413 clearTimeout(offCanvasAnim); 1414 if (!animating) { 1415 $body.addClass('open-overlay-menu').addClass('opening-overlay-menu'); 1416 scrolltop = $(window).scrollTop(); 1417 window.dispatchEvent(menuOpen); 1418 animating = true; 1419 UNCODE.menuOpened = true; 1420 if ($('body[class*="vmenu-"], body.hmenu-center').length && ($('.menu-hide, .menu-sticky, .menu-transparent').length)) { 1421 if ( $body.hasClass('menu-sticky-mobile') || ( $('#masthead.menu-transparent').length && !UNCODE.isMobile ) ) { 1422 $('.main-header > .vmenu-container').css({position:'fixed', top: ($('.menu-container').outerHeight() + UNCODE.bodyBorder + UNCODE.adminBarHeight) + 'px'}); 1423 } 1424 if ($('body.menu-offcanvas').length) { 1425 $('.menu-container:not(.sticky-element):not(.grid-filters)').css({position:'fixed'}); 1426 $('.vmenu-container.menu-container:not(.sticky-element):not(.grid-filters)').css({position:'fixed', top: (UNCODE.menuMobileHeight + UNCODE.bodyBorder + UNCODE.adminBarHeight) + 'px'}); 1427 } else { 1428 if ( $('.menu-hide, .menu-sticky').length ) { 1429 if ( UNCODE.wwidth >= 960 && $('.menu-sticky').length ) { 1430 $('.menu-container:not(.sticky-element):not(.grid-filters)').css({position:'fixed'}); 1431 } 1432 } 1433 } 1434 } 1435 if ($('body.hmenu-center').length && ( (!UNCODE.isMobile && $('.menu-hide, .menu-sticky').length) || (UNCODE.isMobile && $('.menu-sticky-mobile').length) )) { 1436 //$("#masthead")[0].scrollIntoView(); 1437 $('.menu-container:not(.sticky-element):not(.grid-filters)').css({position:'fixed', top: (UNCODE.menuMobileHeight +
1437UNCODE.bodyBorder + UNCODE.adminBarHeight) + 'px'}); 1438 } 1439 $box.addClass('open-items'); 1440 if ($el_transp.length && $('body.menu-mobile-transparent').length) { 1441 $el_transp.addClass('is_mobile_open'); 1442 } 1443 if ( ! $('body').hasClass('menu-mobile-off-canvas') ) { 1444 btn.classList.add('close'); 1445 $box.animate({ 1446 height: elHeight 1447 }, 600, "easeInOutCirc", function() { 1448 animating = false; 1449 if (!stickyMobile) $box.css('height', 'auto'); 1450 }); 1451 } else { 1452 animating = false; 1453 } 1454 1455 if ( $menuBlock.length ) { 1456 UNCODE.animateSubInside($menuBlock); 1457 } 1458 } 1459 }; 1460 1461 var close = function() { 1462 clearTimeout(offCanvasAnim); 1463 if (!animating) { 1464 window.dispatchEvent(menuClose); 1465 animating = true; 1466 UNCODE.menuOpened = false; 1467 if ( ! $('body').hasClass('menu-mobile-off-canvas') ) { 1468 btn.classList.remove('close'); 1469 btn.classList.add('closing'); 1470 } 1471 $box.addClass('close'); 1472 requestTimeout(function() { 1473 $box.removeClass('close'); 1474 $box.removeClass('open-items'); 1475 btn.classList.remove('closing'); 1476 if ($el_transp.length) { 1477 $el_transp.removeClass('is_mobile_open'); 1478 } 1479 }, 500); 1480 $body.removeClass('opening-overlay-menu'); 1481 if ( ! $('body').hasClass('menu-mobile-off-canvas') ) { 1482 $box.animate({ 1483 height: 0 1484 }, { 1485 duration: 600, 1486 easing: "easeInOutCirc", 1487 complete: function(elements) { 1488 $(elements).css('height', ''); 1489 animating = false; 1490 if ($('body[class*="vmenu-"]').length && UNCODE.wwidth >= 960) { 1491 $('.main-header > .vmenu-container').add('.menu-container:not(.sticky-element):not(.grid-filters)').css('position','relative'); 1492 } 1493 $body.removeClass('open-overlay-menu'); 1494 if ( $menuBlock.length ) { 1495 UNCODE.animateSubInside($menuBlock, true); 1496 } 1497 } 1498 }); 1499 } else { 1500 animating = false; 1501 offCanvasAnim = setTimeout(function(){ 1502 $body.removeClass('open-overlay-menu'); 1503 if ( $menuBlock.length ) { 1504 UNCODE.animateSubInside($menuBlock, true); 1505 } 1506 }, 1000); 1507 } 1508 } 1509 }; 1510 check = (!UNCODE.menuOpened) ? open() : close(); 1511 } 1512 }); 1513 1514 $('html').on('click', function(event){ 1515 if ( $('body').hasClass('menu-mobile-off-canvas') && UNCODE.wwidth < 960 && UNCODE.menuOpened && event.clientX < SiteParameters.menu_mobile_offcanvas_gap ) { 1516 $('.uncode-close-offcanvas-mobile:visible').trigger('click'); 1517 } 1518 }); 1519 1520 window.addEventListener('menuMobileTrigged', function(e) { 1521 $('.mobile-menu-button.close, .opening-overlay-menu .uncode-close-offcanvas-mobile').trigger('click'); 1522 }); 1523 window.addEventListener('orientationchange', function(e) { 1524 $('#logo-container-mobile .mobile-menu-button.close').trigger('click'); 1525 }); 1526 window.addEventListener("resize", function() { 1527 if ($(window).width() < UNCODE.mediaQuery) { 1528 if (UNCODE.isMobile) { 1529 var $box = $('.box-container .main-menu-container'), 1530 $el = $('.box-container .menu-horizontal-inner:not(.no-mobile), .box-container .menu-sidebar-inner:not(.no-mobile)'); 1531 if ($($box).length && $($box).hasClass('open-items') && $($box).css('height') != 'auto' && ! $('body').hasClass('menu-mobile-off-canvas') ) { 1532 if ($('.menu-wrapper.menu-sticky, .menu-wrapper.menu-hide-only').length) { 1533 elHeight = 0; 1534 $.each($el, function(index, val) { 1535 elHeight += $(val).outerHeight(); 1536 }); 1537 elHeight = window.innerHeight - $('.menu-wrapper.menu-sticky .menu-container .row-menu-inner, .menu-wrapper.menu-hide-only .menu-container .row-menu-inner').height() - (UNCODE.bodyBorder * 2) + 1; 1538 $($box).css('height', elHeight + 'px'); 1539 } 1540 } 1541 } 1542 } else { 1543 $('.menu-hide-vertical').removeAttr('style'); 1544 $('.menu-container-mobile').removeAttr('style'); 1545 $('.vmenu-container.menu-container').removeAttr('style'); 1546 1547 if ( UNCODE.menuOpened ) { 1548 $('.open-items').removeClass('open-items'); 1549 $('.is_mobile_open').removeClass('is_mobile_open'); 1550 $('.open-overlay-menu').removeClass('open-overlay-menu'); 1551 $('.opening-overlay-menu').removeClass('opening-overlay-menu'); 1552 } 1553 } 1554 }); 1555 1556 $(window).on('scroll', function(){ 1557 if ( $body.hasClass('opening-overlay-menu') && $body.hasClass('menu-mobile-off-canvas') && UNCODE.wwidth < 960 ) { 1558 $(window).scrollTop(scrolltop); 1559 return false;
1560 } 1561 }); 1562 1563 }; 1564 1565 function menuOffCanvas() { 1566 var menuClose = new CustomEvent('menuCanvasClose'), 1567 menuOpen = new CustomEvent('menuCanvasOpen'); 1568 $('.menu-primary .menu-button-offcanvas:not(.menu-close-search)').on('click', function(event) { 1569 if ($(window).width() > UNCODE.mediaQuery) { 1570 if ( $('body.vmenu-offcanvas-overlay').length ) { 1571 if ($(event.currentTarget).hasClass('off-close')) { 1572 $(event.currentTarget).removeClass('off-close'); 1573 requestTimeout(function() { 1574 window.dispatchEvent(menuClose); 1575 }, 500); 1576 1577 } else { 1578 $(event.currentTarget).addClass('off-close'); 1579 window.dispatchEvent(menuOpen); 1580 } 1581 } else { 1582 if ($(event.currentTarget).hasClass('close')) { 1583 $(event.currentTarget).removeClass('close'); 1584 $(event.currentTarget).addClass('closing'); 1585 requestTimeout(function() { 1586 $(event.currentTarget).removeClass('closing'); 1587 window.dispatchEvent(menuClose); 1588 }, 500); 1589 1590 } else { 1591 $(event.currentTarget).addClass('close'); 1592 window.dispatchEvent(menuOpen); 1593 } 1594 } 1595 } 1596 1597 $('body').toggleClass('off-opened'); 1598 }); 1599 1600 $('body').on('click.menu-off-canvas-mobile', function(e){ 1601 if ( $(window).width() > UNCODE.mediaQuery && $('body.menu-offcanvas.vmenu-offcanvas-overlay.off-opened').length ) { 1602 var $vMenuCont = $('#masthead .vmenu-container'), 1603 $close_menu = $('.uncode-close-offcanvas-overlay', $vMenuCont), 1604 1605 vmenu_h = parseFloat( $vMenuCont.outerHeight() ), 1606 vmenu_w = parseFloat( $vMenuCont.outerWidth() ), 1607 vmenu_off = $vMenuCont.offset(), 1608 vmenu_l = parseFloat(vmenu_off.left), 1609 vmenu_t = parseFloat(vmenu_off.top), 1610 vmenu_r = vmenu_l + vmenu_w, 1611 vmenu_b = vmenu_t + vmenu_h, 1612 1613 close_h = parseFloat( $close_menu.outerHeight() ), 1614 close_w = parseFloat( $close_menu.outerWidth() ), 1615 close_off = $close_menu.offset(), 1616 close_l = parseFloat(close_off.left), 1617 close_t = parseFloat(close_off.top), 1618 close_r = close_l + close_w, 1619 close_b = close_t + close_h; 1620 if ( 1621 !( 1622 e.clientX > vmenu_l && 1623 e.clientX < vmenu_r 1624 ) 1625 || 1626 ( 1627 e.clientX > close_l && 1628 e.clientX < close_r 1629 ) 1630 ) { 1631 $('.menu-primary .menu-button-offcanvas:not(.menu-close-search)').trigger('click'); 1632 } 1633 } 1634 }); 1635 }; 1636 1637 function menuOverlay() { 1638 if ( $('.overlay').length ) { 1639 $('.overlay').removeClass('hidden'); 1640 } 1641 if ( ($('.overlay-sequential').length > 0 && UNCODE.wwidth >= UNCODE.mediaQuery) || ($('.menu-mobile-animated').length > 0 && UNCODE.wwidth < UNCODE.mediaQuery) ) { 1642 $('.overlay-sequential .menu-smart > li, .menu-sticky .menu-container .menu-smart > li, .menu-hide.menu-container .menu-smart > li, .vmenu-container .menu-smart > li, .uncode-menu-additional-text').each(function(index, el) { 1643 var transDelay = (index / 20) + 0.1; 1644 if ( $('body').hasClass('menu-mobile-centered') && $(window).width() < UNCODE.mediaQuery ) 1645 transDelay = transDelay + 0.3; 1646 $(this)[0].setAttribute('style', '-webkit-transition-delay:' + transDelay + 's; -moz-transition-delay:' + transDelay + 's; -ms-transition-delay:' + transDelay + 's; -o-transition-delay:' + transDelay + 's; transition-delay:' + transDelay + 's'); 1647 }); 1648 } 1649 }; 1650 1651 function menuToggleAnimation() { 1652 var $block = $('body'), 1653 $menuBlocks = $('.menu.unmenu-block', $block), 1654 $allSeqs = $('[data-delay-seq]', $block); 1655 1656 $allSeqs.each(function(key, seq){ 1657 $(seq).removeAttr('data-delay'); 1658 }); 1659 1660 $menuBlocks.each(function(key, menu){ 1661 1662 var $animatesHidden = $('.translate_when_almost_visible', menu).filter(':hidden'); 1663 $animatesHidden.each(function(key_, seq){ 1664 $(seq).removeClass('translate_when_almost_visible').addClass('not_translate_when_almost_visible'); 1665 }); 1666 1667 var $animatesVisibile = $('.not_translate_when_almost_visible', menu).filter(':visible'); 1668 $animatesVisibile.each(function(key_, seq){ 1669 $(seq).removeClass('not_translate_when_almost_visible').addClass('translate_when_almost_visible'); 1670 }); 1671 1672 var $delaySequentials = $('[data-delay-seq]', menu).filter(':visible'),
1673 delay = parseFloat( $delaySequentials.first().attr('data-delay-seq') ), 1674 interval = parseFloat( $delaySequentials.first().attr('data-interval') ); 1675 $delaySequentials.each(function(_key, seq){ 1676 $(seq).attr('data-delay', delay + (interval*_key)); 1677 }); 1678 }); 1679 } 1680 //menuToggleAnimation(); 1681 $(document).on('unblock-toggles-init', menuToggleAnimation); 1682 1683 var $secondary_parent; 1684 function menuAppend() { 1685 1686 var $menuBlock = $('#uncode-mobile-menu-block').length; 1687 if ( $menuBlock ) { 1688 return; 1689 } 1690 var $body = $('body'), 1691 $menuCont = $('.menu-container:not(.vmenu-container)'), 1692 $vMenuCont = $('.menu-container.vmenu-container'), 1693 $cta = $('.navbar-cta'), 1694 $socials = $('.navbar-social:not(.appended-navbar)'), 1695 $ul = $('.navbar-main ul.menu-primary-inner'), 1696 $ulCta, 1697 $ulSocials, 1698 $navLast, 1699 $firstMenu = $('.main-menu-container:first-child', $menuCont), 1700 $secondMenu = $('.main-menu-container:last-child', $menuCont), 1701 $firstNav = $('.navbar-nav:not(.uncode-close-offcanvas-mobile):first-child', $firstMenu), 1702 $secondNav = $('.navbar-nav:not(.uncode-close-offcanvas-mobile):first-child', $secondMenu), 1703 $ulFirst = $('> ul', $firstNav), 1704 setCTA, 1705 appendCTA = function(){ 1706 return true; 1707 }, 1708 appendSocials = function(){ 1709 return true; 1710 }, 1711 appendSplit = function(){ 1712 return true; 1713 }; 1714 1715 if ( ( $body.hasClass('menu-offcanvas') || $body.hasClass('menu-overlay') || $body.hasClass('hmenu-center-split') ) && $cta.length ) { 1716 $ulCta = $('> ul', $cta); 1717 $ulCta.parent().addClass('mobile-hidden').addClass('tablet-hidden'); 1718 1719 appendCTA = function(){ 1720 if (UNCODE.wwidth < UNCODE.mediaQuery) { 1721 $ul.after($ulCta); 1722 } else { 1723 $cta.append($ulCta); 1724 } 1725 } 1726 } 1727 1728 if ( ! $body.hasClass('cta-not-appended') ) { 1729 appendCTA(); 1730 } 1731 1732 var $smartSocial = $menuCont.add($vMenuCont).find('.menu-smart-social'); 1733 $smartSocial.each(function(){ 1734 var $_smartSocial = $(this); 1735 $('> li', $_smartSocial).each(function(){ 1736 var $li = $(this); 1737 if ( $li.hasClass('mobile-hidden') ) { 1738 $_smartSocial.addClass('mobile-hidden'); 1739 } else { 1740 $_smartSocial.removeClass('mobile-hidden'); 1741 return false; 1742 } 1743 }); 1744 1745 $('> li', $_smartSocial).each(function(){ 1746 var $li = $(this); 1747 if ( $li.hasClass('tablet-hidden') ) { 1748 $_smartSocial.addClass('tablet-hidden'); 1749 } else { 1750 $_smartSocial.removeClass('tablet-hidden'); 1751 return false; 1752 } 1753 }); 1754 }); 1755 1756 if ( ( $body.hasClass('hmenu-center-split') || $body.hasClass('menu-overlay-center') || $body.hasClass('menu-offcanvas') || $body.hasClass('vmenu') ) && $socials.length ) { 1757 $ulSocials = $('> ul', $socials).addClass('menu-smart-social'); 1758 if ( $body.hasClass('hmenu-center-split') ) { 1759 $navLast = $('.menu-horizontal-inner .navbar-nav-last', $menuCont); 1760 } else { 1761 $navLast = $('.navbar-nav-last', $vMenuCont); 1762 } 1763 1764 if ( ! $navLast.length ) { 1765 var _navLast = $('<div class="nav navbar-nav navbar-social navbar-nav-last appended-navbar" />'); 1766 if ( $body.hasClass('hmenu-center-split') ) { 1767 $('.menu-horizontal-inner', $menuCont).append(_navLast); 1768 $navLast = $('.menu-horizontal-inner .navbar-nav-last', $menuCont); 1769 } else { 1770 $('.menu-sidebar-inner', $vMenuCont).last().append(_navLast); 1771 $navLast = $('.navbar-nav-last', $vMenuCont); 1772 } 1773 } 1774 1775 appendSocials = function(){ 1776 if ( !$body.hasClass('menu-overlay-center') ) { 1777 // if ( !$navLast.find('ul.menu-smart-social').length ) { 1778 // $ulSocials = $('.menu-smart-social li.social-icon', $vMenuCont); 1779 // $navLast.append('<ul class="menu-smart menu-smart-social" />'); 1780 // $ulSocials.each(function(){ 1781 // var $li_social = $(this); 1782 // $navLast.find('ul.menu-smart-social').append($li_social); 1783 // }); 1784 // } 1785 // } else { 1786 if (UNCODE.wwidth < UNCODE.mediaQuery) { 1787 $socials.addClass('mobile-hidden').addClass('tablet-hidden') 1788 if ( ! $('> ul.menu-smart-social li', $socials).length ) { 1789 $('> ul.menu-smart-social li', $socials).remove(); 1790 } 1791 $navLast.append($ulSocials); 1792 } else { 1793 if ( ! $('> ul.menu-smart-social li', $navLast).length ) { 1794 $('> ul.menu-smart-social li', $navLast).remove(); 1795 } 1796 $socials.append($ulSocials); 1797 } 1798 } 1799 } 1800 appendSocials(); 1801 } 1802 1803 if ( $vMenuCont.length ) { 1804 var $accordion_secondary = $('.menu-accordion-secondary', $vMenuCont); 1805 } else { 1806 var $accordion_secondary = $('.menu-accordion-secondary', $menuCont); 1807 } 1808 if ( $accordion_secondary.length ) { 1809 var $accordion_secondary_ph = $vMenuCont.add($menuCont).find('.accordion-secondary-ph'); 1810 if (UNCODE.wwidth < UNCODE.mediaQuery) { 1811 if ( !$accordion_secondary_ph.length ) { 1812 $accordion_secondary.after('<span class="accordion-secondary-ph" />'); 1813 } 1814 if ( $vMenuCont.length ) { 1815 $('.menu-sidebar-inner', $vMenuCont).first().find('.menu-accordion:not(.menu-accordion-secondary):not(.menu-accordion-extra-icons)').last().after($accordion_secondary); 1816 } else { 1817 if ( $('.navbar-nav.navbar-cta:not(.mobile-hidden)', $menuCont).length ) { 1818 $('.navbar-nav.navbar-cta', $menuCont).after($accordion_secondary); 1819 } else { 1820 $('.navbar-nav.navbar-main', $menuCont).after($accordion_secondary); 1821 } 1822 } 1823 } else { 1824 if ( typeof $accordion_secondary_ph !== 'undefined' && $accordion_secondary_ph.length ) { 1825 $accordion_secondary_ph.before($accordion_secondary); 1826 } 1827 } 1828 } 1829 1830 if ( $vMenuCont.length ) { 1831 var $extra_icons = $('.menu-accordion-extra-icons', $vMenuCont); 1832 } else { 1833 var $extra_icons = $('.navbar-extra-icons', $menuCont); 1834 } 1835 1836 if ( $extra_icons.length ) { 1837 if ( $vMenuCont.length ) { 1838 if ( $('li:not(.social-icon)', $extra_icons).length ) { 1839 if (UNCODE.wwidth < UNCODE.mediaQuery) { 1840 var $not_social = $('> ul > li:not(.social-icon)', $extra_icons), 1841 $primary_after = $('.menu-accordion-primary-after', $vMenuCont); 1842 $not_social.each(function(){ 1843 if ( ! $primary_after.length ) { 1844 $('.menu-accordion-primary', $vMenuCont).after('<div class="menu-accordion menu-accordion-primary-after" />'); 1845 $primary_after = $('.menu-accordion-primary-after', $vMenuCont); 1846 $primary_after.append('<ul class="menu-smart sm sm-vertical menu-smart-social" />'); 1847 } 1848 var $extra_li = $(this); 1849 $primary_after.find('> ul').append($extra_li); 1850 }); 1851 } else { 1852 var $primary_after = $('.menu-accordion-primary-after', $vMenuCont), 1853 $not_social = $('> ul > li:not(.social-icon)', $primary_after); 1854 $not_social.each(function(){ 1855 var $extra_li = $(this); 1856 $extra_icons.find('> ul').append($extra_li); 1857 }); 1858 } 1859 } /*else { 1860 var $extra_icons_ph = $vMenuCont.add($menuCont).find('.extra-icons-ph'); 1861 if (UNCODE.wwidth < UNCODE.mediaQuery) { 1862 if ( !$extra_icons_ph.length ) { 1863 $extra_icons.after('<span class="extra-icons-ph" />'); 1864 } 1865 if ( $('.navbar-accordion-cta', $vMenuCont).length ) { 1866 $('.navbar-accordion-cta', $vMenuCont).after($extra_icons); 1867 } else { 1868 $('.menu-accordion-primary', $vMenuCont).after($extra_icons); 1869 } 1870 } else { 1871 if ( typeof $extra_icons_ph !== 'undefined' && $extra_icons_ph.length ) { 1872 $extra_icons_ph.before($extra_icons); 1873 } 1874 } 1875 }*/ 1876 } else { 1877 if ( ! $body.hasClass('hmenu-center-double') ) { 1878 if (UNCODE.wwidth < UNCODE.mediaQuery) { 1879 var $not_social = $('> ul > li:not(.social-icon)', $extra_icons), 1880 $primary_after = $('.nav.navbar-main-after', $menuCont); 1881 1882 if ( ! $primary_after.length && $not_social.length ) { 1883 if ( $('.navbar-nav.navbar-cta:not(.mobile-hidden)', $menuCont).length ) { 1884 $('.navbar-nav.navbar-cta', $menuCont).after('<div class="nav navbar-main-after" />'); 1885 } else { 1886 $('.navbar-nav.navbar-main', $menuCont).after('<div class="nav navbar-main-after" />'); 1887 } 1888 $primary_after = $('.nav.navbar-main-after', $menuCont); 1889 $primary_after.append('<ul class="menu-smart sm menu-smart-social" role="menu" />'); 1890 } 1891 var tablet_hidden = true, 1892 mobile_hidden = true; 1893 $not_social.each(function(){ 1894 var $extra_li = $(this); 1895 $primary_after.find('> ul').append($extra_li); 1896 if ( ! $extra_li.hasClass('tablet-hidden') ) { 1897 tablet_hidden = false;
1898 } 1899 if ( ! $extra_li.hasClass('mobile-hidden') ) { 1900 mobile_hidden = false; 1901 } 1902 }); 1903 if ( tablet_hidden === true && $not_social.length ) { 1904 $primary_after.addClass('tablet-hidden'); 1905 } 1906 if ( mobile_hidden === true && $not_social.length ) { 1907 $primary_after.addClass('mobile-hidden'); 1908 } 1909 } else { 1910 var $primary_after = $('.nav.navbar-main-after', $menuCont); 1911 1912 if ( $primary_after.length ) { 1913 var $not_social = $('> ul > li:not(.social-icon)', $primary_after); 1914 $not_social.each(function(){ 1915 var $extra_li = $(this); 1916 $extra_icons.find('> ul').append($extra_li); 1917 }); 1918 $primary_after.remove(); 1919 } 1920 } 1921 } 1922 } 1923 } 1924 1925 if ( ( $body.hasClass('hmenu-center-double') ) ) { 1926 appendSplit = function(){ 1927 if (UNCODE.wwidth < UNCODE.mediaQuery) { 1928 if ( $extra_icons.length ) { 1929 if ( $('li:not(.social-icon):not(.tablet-hidden):not(.mobile-hidden)', $extra_icons).length ) { 1930 var $not_social = $('> ul > li:not(.social-icon)', $extra_icons), 1931 $append_ul = $('<ul class="menu-smart sm sm-vertical append-extra-icons" />'); 1932 $not_social.each(function(){ 1933 var $extra_li = $(this); 1934 $append_ul.append($extra_li); 1935 }); 1936 if ( $secondNav.length ) { 1937 $secondNav.append($append_ul); 1938 } else { 1939 $('.menu-horizontal-inner', $menuCont).prepend($append_ul); 1940 } 1941 } 1942 } 1943 if ( $secondNav.length ) { 1944 $secondNav.prepend($ulFirst); 1945 } else { 1946 $('.menu-horizontal-inner', $menuCont).prepend($ulFirst); 1947 } 1948 $firstMenu.hide(); 1949 } else { 1950 $firstNav.append($ulFirst); 1951 var $append_ul = $('.menu-horizontal-inner ul.append-extra-icons', $menuCont).eq(0); 1952 if ( $append_ul.length ) { 1953 var $not_social = $('> li:not(.social-icon)', $append_ul); 1954 $not_social.each(function(){ 1955 var $extra_li = $(this); 1956 $extra_icons.find('> ul').append($extra_li); 1957 }); 1958 } 1959 $('.menu-horizontal-inner ul.append-extra-icons', $menuCont).remove(); 1960 $('.menu-horizontal-inner > .menu-primary-inner', $menuCont).remove(); 1961 $firstMenu.css({ 1962 'display': 'table-cell' 1963 }); 1964 } 1965 } 1966 } 1967 appendSplit(); 1968 1969 $(window).on( 'wwResize', function(){ 1970 clearRequestTimeout(setCTA); 1971 setCTA = requestTimeout( function() { 1972 appendCTA(); 1973 appendSocials(); 1974 appendSplit(); 1975 }, 10 ); 1976 }); 1977 } 1978 //menuMobileButton(); 1979 menuMobile(); 1980 menuOffCanvas(); 1981 menuAppend(); 1982 menuOverlay(); 1983 1984 var stickyDropdownSearch = function(){ 1985 var $masthead = $('#masthead'), 1986 $ddSearch = $('.overlay.overlay-search', $masthead), 1987 $styles = $('#stickyDropdownSearch').remove(); 1988 if ( $('body.hmenu-center.menu-sticky-mobile').length && $ddSearch.length ) { 1989 var $menuWrapper = $('.menu-wrapper'), 1990 $navbar = $('.menu-container-mobile', $menuWrapper), 1991 navbarH = $navbar.outerHeight(), 1992 //$topbar = $('.top-menu', $menuWrapper), 1993 //topbarH = $topbar.outerHeight(), 1994 _css; 1995 1996 _css = '<style id="stickyDropdownSearch">'; 1997 _css += '@media (max-width: 959px) {'; 1998 _css += 'body.hmenu-center.menu-sticky-mobile #masthead .overlay.overlay-search {'; 1999 _css += 'margin-top: ' + parseFloat(navbarH) + 'px !important;'; 2000 _css += '}'; 2001 _css += 'body.hmenu-center.menu-sticky-mobile .navbar.is_stuck + #masthead .overlay.overlay-search {'; 2002 _css += 'position: fixed;'; 2003 _css += 'top: 0;'; 2004 _css += '}'; 2005 _css += '</style>'; 2006 2007 $(_css).appendTo($('head')); 2008 } 2009 } 2010 stickyDropdownSearch(); 2011 2012 var setMenuOverlay; 2013 $(window).on( 'wwResize', function(){ 2014 if ( $('.overlay').length && $(window).width() > 1024 ) { 2015 $('.overlay').addClass('hidden'); 2016 } 2017 clearRequestTimeout(setMenuOverlay); 2018 setMenuOverlay = requestTimeout( function(){ 2019 menuOverlay(); 2020 menuAppend(); 2021 stickyDropdownSearch(); 2022 }, 150 ); 2023 }); 2024 UNCODE.menuMegaBlock(); 2025 UNCODE.menuSmartInit(); 2026 $(window).on('wwResize', function(){ 2027 UNCODE.menuSmartInit(); 2028 }); 2029 2030 $(window).on('menuOpen', function(){
2031 var $overlay = $('.overlay.overlay-unblock'); 2032 if ( $overlay.length ) { 2033 UNCODE.animateSubInside($overlay); 2034 } 2035 }); 2036 2037 $(window).on('menuClosed', function(){ 2038 var $overlay = $('.overlay.overlay-unblock'); 2039 if ( $overlay.length ) { 2040 UNCODE.animateSubInside($overlay, true); 2041 var $smartMenus = $overlay.find('.menu-smart'); 2042 $smartMenus.each(function(key, smartMenu){ 2043 $(smartMenu).smartmenus('menuHideAll'); 2044 }); 2045 } 2046 }); 2047}; 2048 2049UNCODE.menuSmartInit = function() { 2050 var $menusmart = $('[class*="menu-smart"]'), 2051 $masthead = $('#masthead'), 2052 $hMenu = $('.menu-horizontal-inner', $masthead), 2053 $focus = $('.overlay-menu-focus'), 2054 $uls_anim = $('> li> ul[role="menu"]', $menusmart), 2055 showTimeout = 50, 2056 hideTimeout = 50, 2057 showTimeoutFunc, hideTimeoutFunc, subMenuRT; 2058 2059 if ( typeof $masthead.attr('data-menu-anim') !== 'undefined' && $masthead.attr('data-menu-anim') !== '' ) { 2060 var menu_anim = $masthead.attr('data-menu-anim'); 2061 if ( UNCODE.wwidth >= UNCODE.mediaQuery ) { 2062 $uls_anim.each(function(){ 2063 var $ul_anim = $(this); 2064 if ( !$('> li[data-block]', $ul_anim).length ) { 2065 $ul_anim.addClass('animate_when_almost_visible'); 2066 $ul_anim.addClass(menu_anim); 2067 } else { 2068 var dataB = $('> li[data-block]', $ul_anim).attr('data-block'); 2069 if ( dataB !== 'no-anim' && !dataB.includes('slight-anim') ) { 2070 $ul_anim.addClass('animate_when_almost_visible'); 2071 $ul_anim.addClass(dataB); 2072 } 2073 } 2074 }); 2075 } else { 2076 $uls_anim.each(function(){ 2077 var $ul_anim = $(this); 2078 if ( !$('> li[data-block]', $ul_anim).length ) { 2079 $ul_anim.removeClass('animate_when_almost_visible'); 2080 $ul_anim.removeClass(menu_anim); 2081 } else { 2082 var dataB = $('> li[data-block]', $ul_anim).attr('data-block'); 2083 $ul_anim.removeClass('animate_when_almost_visible'); 2084 $ul_anim.removeClass(dataB); 2085 } 2086 }); 2087 } 2088 } 2089 2090 $('> li.menu-item-has-children', $menusmart).hover(function(){ 2091 $(this).data('hover', true); 2092 }, function(){ 2093 $(this).data('hover', false); 2094 }); 2095 2096 $('> li.menu-item-has-children', $menusmart).each(function(){ 2097 var $a = $('> a', this).attr('aria-haspopup', 'true').attr('aria-expanded', 'false') 2098 }); 2099 2100 $('> li.menu-item a[href="#"]', $menusmart).on('click', function(e){ 2101 e.preventDefault(); 2102 }); 2103 2104 if ( $(window).width() >= UNCODE.mediaQuery && $('.overlay-menu-focus').length ) { 2105 2106 var $notLis = $('> .nav > ul > li a', $hMenu), 2107 $menuA = $('a', $masthead).not($notLis), 2108 $hoverSelector = $('> .nav > ul > li', $hMenu).has('> ul'), 2109 showFuncCond = function() { return true }; 2110 2111 if ( $('body').hasClass('focus-megamenu') ) { 2112 $hoverSelector = $('> .nav > ul > li', $hMenu).has('.need-focus'); 2113 showFuncCond = function($ul) { return $ul.hasClass('need-focus') }; 2114 } else if ( $('body').hasClass('focus-links') ) { 2115 $hoverSelector = $('> .nav > ul > li', $hMenu).add($menuA); 2116 } 2117 2118 $hoverSelector.hover(function(){ 2119 clearRequestTimeout(hideTimeoutFunc); 2120 showTimeoutFunc = requestTimeout(function(){ 2121 $('body').addClass('navbar-hover'); 2122 }, showTimeout*2); 2123 }, function(){ 2124 hideTimeoutFunc = requestTimeout(function(){ 2125 if ( ! $('.overlay-search.open', $masthead).length ) { 2126 $('body').removeClass('navbar-hover'); 2127 } 2128 }, hideTimeout*2); 2129 }); 2130 } else { 2131 showFuncCond = function() { return false }; 2132 } 2133 2134 if ($menusmart.length > 0) { 2135 var objShowTimeout; 2136 $menusmart.smartmenus({ 2137 subIndicators: false, 2138 subIndicatorsPos: 'append', 2139 //subMenusMinWidth: '13em', 2140 showOnClick: SiteParameters.menuShowOnClick, 2141 subIndicatorsText: '', 2142 showTimeout: showTimeout, 2143 hideTimeout: hideTimeout, 2144 scrollStep: 8, 2145 showFunction: function($ul, complete) { 2146 $(document).trigger('un-menu-show', $ul); 2147 clearRequestTimeout(showTimeoutFunc); 2148 $ul.fadeIn(0, 'linear', function(){ 2149 complete(); 2150 if ( $ul.hasClass('vc_row') ) { 2151 $ul.css({ 2152 'display': 'table' 2153 }); 2154 } 2155 if ( $('.overlay-menu-focus').length && $ul.hasClass('need-focus') ) { 2156 $('body').addClass('open-megamenu'); 2157 } 2158 if ( $('.overlay-menu-focus').length && showFuncCond($ul) && $(window).width() >= UNCODE.mediaQuery && $ul.closest('.main-menu-container').length ) { 2159 $('body').addClass('navbar-hover'); 2160 } 2161 var showed = 0; 2162 $('.animate_when_almost_visible, .translate_when_almost_visible', $ul).each(function(index, val){ 2163 var $element = $(this), 2164 delayAttr = $element.attr('data-delay'); 2165 if ( !$element.closest('.owl-carousel').length && ! $element.closest('.cssgrid-animate-sequential').length ) { 2166 if (delayAttr == undefined) delayAttr = 0; 2167 requestTimeout(function() { 2168 $element.addClass('start_animation'); 2169 }, delayAttr); 2170 } else if ( $element.closest('.cssgrid-animate-sequential').length ) { 2171 var grid = $element.closest('.cssgrid-animate-sequential'); 2172
2173 var delay = index, 2174 delayAttr = parseInt($element.attr('data-delay')); 2175 if (isNaN(delayAttr)) delayAttr = 100; 2176 delay -= showed; 2177 objShowTimeout = requestTimeout(function() { 2178 $element.removeClass('zoom-reverse').addClass('start_animation'); 2179 showed = index; 2180 }, delay * delayAttr); 2181 } 2182 }); 2183 if ( $ul.is('.animate_when_almost_visible') ) { 2184 $ul.addClass('start_animation'); 2185 } 2186 }).addClass('open-animated'); 2187 }, 2188 hideFunction: function($ul, complete) { 2189 if ( $('.overlay-menu-focus').length && $ul.hasClass('need-focus') && ! $('.overlay-search.open', $masthead).length ) { 2190 $('body').removeClass('open-megamenu'); 2191 } 2192 var fixIE = $('html.ie').length; 2193 if (fixIE) { 2194 var $rowParent = $($ul).closest('.main-menu-container'); 2195 $rowParent.height('auto'); 2196 } 2197 $ul.fadeOut(0, 'linear', function(){ 2198 complete(); 2199 $ul.removeClass('open-animated'); 2200 if ( $ul.closest('li.menu-item-has-children').data('hover') === false ) { 2201 $('body').removeClass('open-submenu'); 2202 } 2203 $('.animate_when_almost_visible, .translate_when_almost_visible', $ul).each(function(){ 2204 $(this).removeClass('start_animation'); 2205 }); 2206 if ( $ul.is('.animate_when_almost_visible') ) { 2207 $ul.removeClass('start_animation'); 2208 } 2209 }); 2210 $ul.find('.start_animation').each(function(index, val) { 2211 clearRequestTimeout(subMenuRT); 2212 $(val).removeClass('start_animation'); 2213 }); 2214 $(document).trigger('un-menu-hide', $ul); 2215 clearRequestTimeout(objShowTimeout); 2216 }, 2217 collapsibleShowFunction: function($ul, complete) { 2218 $ul.slideDown(400, 'easeInOutCirc', function(){ 2219 UNCODE.animateSubInside($ul); 2220 complete(); 2221 }); 2222 }, 2223 collapsibleHideFunction: function($ul, complete) { 2224 $ul.slideUp(200, 'easeInOutCirc', function(){ 2225 complete(); 2226 }); 2227 $(document).trigger('sub-menu-slide-up'); 2228 }, 2229 hideOnClick: SiteParameters.menuHideOnClick, 2230 }); 2231 2232 if ( $('body').hasClass('menu-accordion-active') ) { 2233 $menusmart.each(function(key, menu){ 2234 $(menu).addClass('menu-smart-init'); 2235 $(menu).smartmenus( 'itemActivate', $(menu).find( '.current-menu-item > a' ).eq( -1 ) ); 2236 }); 2237 } 2238 2239 $menusmart.each(function(key, menu){ 2240 $(menu).on('beforecollapse.smapi', function( e, $sub ){ 2241 if ( $('> .trigger-window-resize', $sub).length ) { 2242 window.dispatchEvent(new Event('resize')); 2243 $(window).trigger('uncode.re-layout'); 2244 } else if ( $('> .trigger-box-resize', $sub).length ) { 2245 window.dispatchEvent(new CustomEvent('boxResized')); 2246 } 2247 return false; 2248 }); 2249 }); 2250 2251 $(document).on( 'uncode.smartmenu-appended', function(){ 2252 requestTimeout(function(){ 2253 $menusmart.smartmenus( 'refresh' ); 2254 }, 1000); 2255 }); 2256 2257 } 2258 2259 $('.main-menu-container').each(function(){ 2260 var $main_cont = $(this), 2261 $uls = $('ul:not(.nav-tabs)', $main_cont); 2262 2263 $uls.each(function(){ 2264 var $ul = $(this), 2265 mobile_hidden = true, 2266 tablet_hidden = true; 2267 $('> li:not(.hidden)', $ul).each(function(){ 2268 if ( !$(this).hasClass('mobile-hidden') ) { 2269 mobile_hidden = false; 2270 return false; 2271 } 2272 }); 2273 $('> li:not(.hidden)', $ul).each(function(){ 2274 if ( !$(this).hasClass('tablet-hidden') ) { 2275 tablet_hidden = false; 2276 return false; 2277 } 2278 }); 2279 if ( mobile_hidden ) { 2280 $ul.addClass('mobile-hidden'); 2281 } 2282 if ( tablet_hidden ) { 2283 $ul.addClass('tablet-hidden'); 2284 } 2285 }); 2286 2287 var $divUlsMB = $('div:has(>ul.mobile-hidden)'); 2288 2289 $divUlsMB.each(function(){ 2290 var $divUlMB = $(this), 2291 div_mobile_hidden = true, 2292 div_tablet_hidden = true; 2293 2294 $('> ul:not(.hidden)', $divUlMB).each(function(){ 2295 if ( !$(this).hasClass('mobile-hidden') ) { 2296 div_mobile_hidden = false; 2297 return false; 2298 } 2299 }); 2300 $('> ul:not(.hidden)', $divUlMB).each(function(){ 2301 if ( !$(this).hasClass('tablet-hidden') ) { 2302 div_tablet_hidden = false; 2303 return false; 2304 } 2305 }); 2306 if ( div_mobile_hidden ) { 2307 $divUlMB.addClass('mobile-hidden'); 2308 } 2309 if ( div_tablet_hidden ) { 2310 $divUlMB.addClass('tablet-hidden'); 2311 } 2312 }); 2313 }); 2314 2315 var overlaySearchButton = function(){ 2316 var $search_wrap = $('.overlay.overlay-search, .widget_search'); 2317 2318 $search_wrap.each(function(){ 2319 var $form = $('form', this), 2320 $icon = $('i', $form); 2321 2322 $icon.on('click', function(){ 2323 $form.submit(); 2324 }); 2325 }); 2326 }; 2327 overlaySearchButton(); 2328} 2329 2330UNCODE.menuMegaBlock = function() { 2331 var $megaBlocks = $('.megamenu-block-wrapper'); 2332 if ( ! $megaBlocks.length ) { 2333 return; 2334 } 2335 2336 $megaBlocks.each(function(){ 2337 var $megaLi = $(this), 2338 //$parentLi = $megaLi.closest('li.menu-item').addClass('mega-menu'), 2339 dataLi = $megaLi.attr('data-block'), 2340 $megaUl = $megaLi.closest('ul').addClass('block-wrapper-parent unmenu-inner-ul'), 2341 $innerUl = $megaLi.find('ul').addClass('unmenu-inner-ul'); 2342 $megaUl.addClass(dataLi); 2343 //$('.column_parent > .uncol .uncont:not(.uncont *)', $megaLi).addClass(dataLi); 2344 $('img', $megaLi).removeAttr('loading'); 2345 }); 2346} 2347 2348UNCODE.unBlockMenu = function(){ 2349 //Menu block 2350 var $unBlockMenus = $('.menu.unmenu-block'); 2351 2352 $unBlockMenus.each(function(){ 2353 var $unBlockMenu = $(this), 2354 $lastOnes; 2355 2356 if ( !$unBlockMenu.hasClass('first-grid') ) { 2357 $lastOnes = $('ul', $unBlockMenu).last(); 2358 $lastOnes.each(function(){ 2359 var _cols = $(this).css('grid-template-columns');
2360 if ( _cols.split(' ').length > 1 && !_cols.startsWith('repeat(1,')) { 2361 $unBlockMenu.addClass('has-last-ones'); 2362 $(this).addClass('last-one'); 2363 } else { 2364 var $parentLi = $(this).closest('li'), 2365 $siblingLi = $parentLi.next(); 2366 if ( !$siblingLi.length ) { 2367 $unBlockMenu.addClass('has-last-ones'); 2368 $(this).addClass('last-one'); 2369 } 2370 } 2371 }); 2372 } else { 2373 var checkGrids = function(){ 2374 $unBlockMenu.find('.last-ul').removeClass('last-one'); 2375 var _cols = $unBlockMenu.css('grid-template-columns'), 2376 cols = _cols.match(/^repeat\(\s*(\d+)\s*,/) ? parseInt(_cols.match[1], 10) : _cols.split(' ').length, 2377 $lis = $('> li', $unBlockMenu), 2378 totLi = $lis.length, 2379 lastRowCount = totLi - (totLi % cols || cols), 2380 $lastLis = $lis.slice(cols).addClass('last-lis'), 2381 $lastRowLis = $lis.slice(lastRowCount); 2382 $lastRowLis.each(function(){ 2383 var $lastRowLi = $(this); 2384 $lastRowLi.find('ul').last().addClass('last-one'); 2385 }); 2386 } 2387 $(window).on('wwResize', checkGrids); 2388 checkGrids(); 2389 2390 } 2391 2392 }); 2393 2394 //Accordion 2395 2396 var $tgglBlocks = $('.unmenu-collapse'); 2397 $tgglBlocks.each(function(key, val){ 2398 var $acc = $(val), 2399 $titles = $('.menu-item-has-children > *:first-child', $acc), 2400 run = true; 2401 2402 var checkRun = function(){ 2403 if ( $acc.hasClass('unmenu-collapse-mobile') && UNCODE.wwidth >= UNCODE.mediaQuery ) { 2404 run = false; 2405 } else { 2406 run = true; 2407 } 2408 2409 if ( $titles.length ) { 2410 $titles.each(function(_key, _val){ 2411 var $title = $(_val), 2412 $sub = $title.closest('li').find('> ul.un-submenu'); 2413 2414 $sub.each(function(key, val){ 2415 if ( run ) { 2416 2417 var total = $sub.length; 2418 var completed = 0; 2419 2420 $(val).slideUp({ 2421 duration: 1, 2422 complete: function() { 2423 $(this).addClass('toggle-init'); 2424 2425 completed++; 2426 2427 if ( completed === total ) { 2428 $(document).trigger('unblock-toggles-init'); 2429 $( document.body ).trigger( 'uncode_waypoints' ); 2430 } 2431 } 2432 }); 2433 } else { 2434 $(val).show(); 2435 } 2436 }); 2437 }); 2438 } 2439 } 2440 checkRun(); 2441 2442 $(window).on('wwResize menuClosed', checkRun); 2443 2444 if ( $titles.length ) { 2445 $titles.each(function(_key, _val){ 2446 var $title = $(_val), 2447 $sub = $title.closest('li').find('> ul.un-submenu'), 2448 $menu = $sub.closest('.menu.unmenu-block'), 2449 $ulS; 2450 2451 $title.off('click').on('click', function(e){ 2452 e.preventDefault(); 2453 $ulS = $menu.find('ul:visible').not($sub).not($sub.parents('ul')) 2454 if ( run ) { 2455 if ( $sub.is(':visible') ) { 2456 $sub.slideUp(200, 'easeInOutCirc', function(){ 2457 $.each($('.start_animation', $sub), function(index, val) { 2458 var element = $(val); 2459 element.removeClass('start_animation'); 2460 2461 }); 2462 $sub.parents('li').eq(0).addClass('un-submenu-closed').removeClass('un-submenu-open'); 2463 $(document).trigger('sub-menu-slide-up'); 2464 }); 2465 } else { 2466 $ulS.slideUp({ 2467 duration: 200, 2468 easing: 'easeInOutCirc', 2469 start: function(){ 2470 var _this = $(this); 2471 _this.parents('li').eq(0).addClass('un-submenu-closed').removeClass('un-submenu-open'); 2472 $(document).trigger('sub-menu-slide-up'); 2473 } 2474 }); 2475 2476 $sub.slideDown({ 2477 duration: 400, 2478 easing: 'easeInOutCirc', 2479 start: function() { 2480 var _this = $(this); 2481 _this.css('height', 0); 2482 if ( _this.hasClass('is-grid') ) { 2483 _this.css('display','grid'); 2484 } 2485 2486 UNCODE.animateSubInside(_this) 2487 _this.parents('li').eq(0).addClass('un-submenu-open').removeClass('un-submenu-closed'); 2488 } 2489 }); 2490 } 2491 2492 } 2493 }); 2494 }); 2495 2496 if ( $acc.closest('#masthead').length ) { 2497 $(window).on('menuMobileClose menuCanvasClose unmodal-close uncode-sidecart-closed', function(){ 2498 $acc.find('ul.un-submenu').slideUp(200, 'easeInOutCirc'); 2499 }); 2500 } 2501 } 2502 2503 }); 2504 2505}; 2506 2507UNCODE.mobileMenuBlockSkins = function(){ 2508 var $mobileBlock = $('#uncode-mobile-menu-block'), 2509 $parentDark = $mobileBlock.closest('.submenu-dark'), 2510 $parentLight = $mobileBlock.closest('.submenu-light'); 2511 2512 2513 if ( $parentDark.length ) { 2514 var $cols = $('.uncol.style-light:not(.style-spec):not(.style-run)', $mobileBlock); 2515 $cols.each(function(key, val){ 2516 var $col = $(val).removeClass('style-light').addClass('style-dark style-run'); 2517 }); 2518 } 2519 2520 if ( $parentLight.length ) {
2521 var $cols = $('.uncol.style-dark:not(.style-spec):not(.style-run)', $mobileBlock); 2522 $cols.each(function(key, val){ 2523 var $col = $(val).removeClass('style-dark').addClass('style-light style-run'); 2524 }); 2525 } 2526}; 2527UNCODE.okvideo = function(ev) { 2528 var BLANK_GIF = "data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw%3D%3D"; 2529 $.okvideo = function(options) { 2530 // if the option var was just a string, turn it into an object 2531 if (typeof options !== 'object') options = { 2532 'video': options 2533 }; 2534 var base = this; 2535 // kick things off 2536 base.init = function() { 2537 base.options = $.extend({}, $.okvideo.options, options); 2538 // support older versions of okvideo 2539 if (base.options.video === null) base.options.video = base.options.source; 2540 base.setOptions(); 2541 var target = base.options.target || $('body'); 2542 var position = target[0] == $('body')[0] ? 'fixed' : 'absolute'; 2543 var zIndex = base.options.controls === 3 ? -999 : "auto"; 2544 if ($('#okplayer-' + base.options.id).length == 0) { //base.options.id = String(Math.round(Math.random() * 100000)); 2545 var mask = '<div id="okplayer-mask-' + base.options.id + '" style="position:' + position + ';left:0;top:0;overflow:hidden;z-index:-998;height:100%;width:100%;"></div>'; 2546 if (OKEvents.utils.isMobile()) { 2547 target.append('<div id="okplayer-' + base.options.id + '" style="position:' + position + ';left:0;top:0;overflow:hidden;z-index:' + zIndex + ';height:100%;width:100%;"></div>'); 2548 } else { 2549 if (base.options.controls === 3) { 2550 target.append(mask) 2551 } 2552 if (base.options.adproof === 1) { 2553 target.append('<div id="okplayer-' + base.options.id + '" style="position:' + position + ';left:-10%;top:-10%;overflow:hidden;z-index:' + zIndex + ';height:120%;width:120%;"></div>'); 2554 } else { 2555 target.append('<div id="okplayer-' + base.options.id + '" style="position:' + position + ';left:0;top:0;overflow:hidden;z-index:' + zIndex + ';height:100%;width:100%;"></div>'); 2556 } 2557 } 2558 $("#okplayer-mask-" + base.options.id).css("background-image", "url(" + BLANK_GIF + ")"); 2559 if (base.options.playlist.list === null) { 2560 if (base.options.video.provider === 'youtube') { 2561 base.loadYouTubeAPI(); 2562 } else if (base.options.video.provider === 'vimeo') { 2563 base.options.volume /= 100; 2564 base.loadVimeoAPI(); 2565 } 2566 } else { 2567 base.loadYouTubeAPI(); 2568 } 2569 } 2570 }; 2571 // clean the options 2572 base.setOptions = function() { 2573 // exchange 'true' for '1' and 'false' for 3 2574 for (var key in this.options) { 2575 if (this.options[key] === true) this.options[key] = 1; 2576 if (this.options[key] === false) this.options[key] = 3; 2577 } 2578 if (base.options.playlist.list === null) { 2579 base.options.video = base.determineProvider(); 2580 } 2581 // pass options to the window 2582 $(window).data('okoptions-' + base.options.id, base.options); 2583 }; 2584 // insert js into the head and exectue a callback function 2585 base.insertJS = function(src, callback, provider){ 2586 var tag; 2587 if ( ev === 'uncode-more-items-loaded' && provider !== 'youtube' ) { 2588 delete UNCODE.insertedSripts[src]; 2589 var tags = document.getElementsByTagName('script'); 2590 for (var i = tags.length; i >= 0; i--){ 2591 if (tags[i] && tags[i].getAttribute('src') != null && tags[i].getAttribute('src').indexOf(src) != -1) { 2592 tags[i].parentNode.removeChild(tags[i]); 2593 } 2594 } 2595 } else { 2596 if (UNCODE.insertedSripts && UNCODE.insertedSripts[src]) { 2597 tag = UNCODE.insertedSripts[src]; 2598 if (callback){ 2599 if (tag.readyState){ //IE 2600 tag.onreadystatechange = function(){ 2601 if (tag.readyState === "loaded" || 2602 tag.readyState === "complete"){ 2603 tag.onreadystatechange = null; 2604 callback(); 2605 } 2606 }; 2607 } else { 2608 $(tag).on('load', callback); 2609 } 2610 } 2611 return; 2612 } 2613 } 2614 tag = document.createElement('script'); 2615 if (callback){ 2616 if (tag.readyState){ //IE 2617 tag.onreadystatechange = function(){ 2618 if (tag.readyState === "loaded" || tag.readyState === "complete"){ 2619 tag.onreadystatechange = null; 2620 callback(); 2621 } 2622 }; 2623 } else { 2624 tag.onload = function() { 2625 callback(); 2626 }; 2627 } 2628 } 2629 tag.src = src; 2630 var firstScriptTag = document.getElementsByTagName('script')[0]; 2631 firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 2632 if ( ! UNCODE.insertedSripts ) { 2633 UNCODE.insertedSripts = []; 2634 } 2635 UNCODE.insertedSripts[src] = tag; 2636 }; 2637 // load the youtube api 2638 base.loadYouTubeAPI = function(callback) { 2639 if ( ev === 'uncode-more-items-loaded' ) { 2640 onYouTubeIframeAPIReady(); 2641 } else { 2642 base.insertJS('https://www.youtube.com/player_api', false, 'youtube'); 2643 } 2644 }; 2645 base.loadYouTubePlaylist = function() { 2646 player.loadPlaylist(base.options.playlist.list, base.options.playlist.index, base.options.playlist.startSeconds, base.options.playlist.suggestedQuality); 2647 }; 2648 // load the vimeo api by replacing the div with an iframe and loading js 2649 base.loadVimeoAPI = function() { 2650 var source = '//player.vimeo.com/video/' + base.options.video.id + '?background=1&api=1&title=0&byline=0&portrait=0&playbar=0&loop=' + base.options.loop + '&autoplay=' + (base.options.autoplay === 1 ? 1 : 0) + '&player_id=okplayer-' + base.options.id + '&autopause=0', 2651 jIframe = $('<iframe data-src="'+source+'" frameborder="0" id="okplayer-' + base.options.id +'" style="visibility: hidden;" class="vimeo-background" webkitallowfullscreen mozallowfullscreen allowfullscreen >'); 2652 $(window).data('okoptions-' + base.options.id).jobject = jIframe; 2653 $('#okplayer-' + base.options.id).replaceWith(jIframe[0]); 2654 base.insertJS('//player.vimeo.com/api/player.js', function() { 2655 vimeoPlayerReady(base.options.id); 2656 }, 'vimeo'); 2657 }; 2658 // is it from youtube or vimeo? 2659 base.determineProvider = function() { 2660 var a = document.createElement('a'); 2661 a.href = base.options.video; 2662 if (/youtube.com/.test(base.options.video) || /youtu.be/.test(base.options.video)) { 2663 var videoid = a.href.split('/')[3].toString(); 2664 var query = videoid.substring(videoid.indexOf('?') + 1); 2665 if (query != '') { 2666 var vars = query.split('&'); 2667 for (var i = 0; i < vars.length; i++) { 2668 var pair = vars[i].split('='); 2669 if (pair[0] == 'v') { 2670 videoid = pair[1]; 2671 } 2672 } 2673 } 2674 return { 2675 "provider": "youtube", 2676 "id": videoid 2677 }; 2678 } else if (/vimeo.com/.test(base.options.video)) { 2679 return { 2680 "provider": "vimeo", 2681 "id": (a.href.split('/')[3].toString()).split('#')[0], 2682 }; 2683 } else if (/[-A-Za-z0-9_]+/.test(base.options.video)) { 2684 var id = new String(base.options.video.match(/[-A-Za-z0-9_]+/)); 2685 if (id.length == 11) { 2686 return { 2687 "provider": "youtube", 2688 "id": id.toString() 2689 }; 2690 } else { 2691 for (var i = 0; i < base.options.video.length; i++) { 2692 if (typeof parseInt(base.options.video[i]) !== "number") { 2693 throw 'not vimeo but thought it was for a sec'; 2694 } 2695 } 2696 return { 2697 "provider": "vimeo", 2698 "id": base.options.video 2699 }; 2700 } 2701 } else { 2702 throw "OKVideo: Invalid video source"; 2703 } 2704 }; 2705 base.init(); 2706 }; 2707 2708 var checkResize, 2709 newW = UNCODE.wwidth; 2710 2711 $.okvideo.options = { 2712 id: null, 2713 source: null, // Deprecate dis l8r 2714 video: null, 2715 playlist: { // eat ur heart out @brokyo 2716 list: null, 2717 index: 0, 2718 startSeconds: 0, 2719 suggestedQuality: "default" // options: small, medium, large, hd720, hd1080, highres, default 2720 }, 2721 disableKeyControl: 1, 2722 captions: 0, 2723 loop: 1, 2724 hd: 1, 2725 volume: 0, 2726 adproof: false, 2727 unstarted: null, 2728 onFinished: null, 2729 onReady: null, 2730 onPlay: null, 2731 onPause: null, 2732 buffering: null, 2733 controls: false, 2734 autoplay: true, 2735 annotations: true, 2736 cued: null 2737 }; 2738 $.fn.okvideo = function(options) { 2739 options.target = this; 2740 return this.each(function() { 2741 (new $.okvideo(options)); 2742 }); 2743 }; 2744 2745 var checkForVideos = function(){ 2746 $(".uncode-video-container.video").each(function(index, el) { 2747 var $this = $(this), 2748 mobile_ready = $this.hasClass('no-control-mobile-autoplay'), 2749 url = $this.attr('data-video'), 2750 id = $this.attr('data-id'), 2751 cloned = $this.closest('.owl-item'); 2752 2753 if ( mobile_ready || newW >= UNCODE.mediaQuery ) { 2754 if (!cloned.hasClass('cloned') || cloned.length == 0) { 2755 $this.okvideo({ 2756 id: id, 2757 source: url.split('#')[0], 2758 time: ((url).indexOf("#") > -1) ? (url).substring((url).indexOf('#') + 1) : null, 2759 autoplay: 1, 2760 controls: 0, 2761 volume: 0, 2762 adproof: 0, 2763 caller: $this, 2764 hd: 1, 2765 onReady: function(player) { 2766 var getPlayer = player.c || player.h || player, 2767 $iframe, 2768 getContainer = $(getPlayer).closest('.background-element'); 2769 if (getContainer.length) { 2770 UNCODE.initVideoComponent(getContainer[0], '.uncode-video-container.video:not(.drop-move)'); 2771 } 2772 2773 if ( $this.hasClass('drop-move') ) { 2774 2775 var $iframe = $(getPlayer), 2776 w = parseFloat($iframe.attr('width')), 2777 h = parseFloat($iframe.attr('height')), 2778 ratio = h / w, 2779 setResizeiFto, 2780 resizeiFrame = function(){ 2781 var dataW = $this.attr('data-w'), 2782 newW = UNCODE.wwidth / 12 * parseFloat( dataW ), 2783 newH = newW * ratio; 2784 $iframe.css({ 2785 width: newW, 2786 height: newH 2787 }); 2788 }; 2789 resizeiFrame(); 2790 $(window).on( 'load', resizeiFrame ); 2791 $(window).on( 'resize', function(){ 2792 clearRequestTimeout(setResizeiFto); 2793 setResizeiFto = requestTimeout( function() { 2794 resizeiFrame(); 2795 }, 10 ); 2796 }); 2797 2798 } 2799 2800 } 2801 }); 2802 } 2803 } 2804 }); 2805 }; 2806 2807 checkForVideos(); 2808 2809 $(window).on('load', function(){ 2810 $('.mejs-fullscreen-button button').on('click', function(){ 2811 var $button = $(this), 2812 $stuck = $button.closest('.is_stucked'); 2813 2814 if ( $stuck.length ) { 2815 $stuck = $(this).trigger("sticky_kit:detach"); 2816 window.scrollTo(0, 0); 2817 } 2818 }); 2819 }); 2820 2821 var checkVideoResize = function(){ 2822 clearRequestTimeout(checkResize); 2823 checkResize = requestTimeout(function(){ 2824 if ( newW !== UNCODE.wwidth ) { 2825 newW = UNCODE.wwidth; 2826 checkForVideos(); 2827 } 2828 }, 1000); 2829 }; 2830 2831 $(window).off('resize', checkVideoResize) 2832 .on( 'resize', checkVideoResize); 2833 2834}; 2835 2836$(document).on('uncode-ajax-filtered.videos', function(){ 2837 UNCODE.okvideo("uncode-more-items-loaded"); 2838}); 2839UNCODE.backgroundSelfVideos = function( $ctx ) { 2840 2841 var backgroundSelfVideosInit = function( $ctx ) { 2842 if ( SiteParameters.block_mobile_videos === true ) { 2843 return false;
2844 } 2845 if (typeof MediaElement === "function") { 2846 if ( typeof $ctx === 'undefined' ) { 2847 $ctx = document; 2848 } 2849 2850 $(".background-video-shortcode", $ctx).each(function(index, el) { 2851 if ( $(this).closest('mediaelementwrapper').length ) { 2852 return true; 2853 } 2854 var $video_el = $(this), 2855 $parent_carousel = $video_el.parents('.uncode-slider').eq(0), 2856 $parent_drop_move = $video_el.closest('.t-entry-drop.drop-move'), 2857 video_id = $video_el.attr('id'); 2858 2859 if ( SiteParameters.is_frontend_editor ) { 2860 video_id = video_id + '_' + index; 2861 $video_el.attr('id', video_id); 2862 } 2863 2864 var media = new MediaElement(video_id, { 2865 startVolume: 0, 2866 loop: true, 2867 success: function(mediaElement, domObject) { 2868 domObject.volume = 0; 2869 $(mediaElement).data('started', false); 2870 mediaElement.addEventListener('timeupdate', function(e) { 2871 if (!$(e.target).data('started')) { 2872 $(mediaElement).data('started', true); 2873 } 2874 }); 2875 mediaElement.addEventListener('loadedmetadata', function(e) { 2876 $('body').removeClass('video-not-supported'); 2877 mediaElement.play(); 2878 }); 2879 if (!UNCODE.isMobile) { 2880 requestTimeout(function() { 2881 UNCODE.initVideoComponent(document.body, '.uncode-video-container.video:not(.drop-move), .uncode-video-container.self-video:not(.drop-move)'); 2882 }, 100); 2883 } 2884 if ( ($('html.firefox').length) && !$parent_carousel.length ) { 2885 mediaElement.play(); 2886 } 2887 2888 if ( $parent_drop_move.length ) { 2889 var setResizeMEto, 2890 resizeMediaElement = function(){ 2891 var dataW = $parent_drop_move.attr('data-w'), 2892 videoW = domObject.width, 2893 videoH = domObject.height, 2894 newW = UNCODE.wwidth / 12 * parseFloat( dataW ), 2895 newH = newW / ( videoW / videoH ); 2896 2897 $(domObject).css({ 2898 'height': newH, 2899 'width': newW 2900 }); 2901 }; 2902 $(window).on( 'resize load', function(){ 2903 clearRequestTimeout(setResizeMEto); 2904 setResizeMEto = requestTimeout( function() { 2905 resizeMediaElement(); 2906 }, 10 ); 2907 }); 2908 } 2909 2910 mediaElement.addEventListener('play', function() { 2911 $(mediaElement).closest('.uncode-video-container:not(.t-entry-drop)').css('opacity', '1'); 2912 $(mediaElement).closest('#page-header').addClass('video-started'); 2913 $(mediaElement).closest('.background-wrapper').find('.block-bg-blend-mode.not-ie').css('opacity', '1'); 2914 }, true); 2915 2916 }, 2917 // fires when a problem is detected 2918 error: function() {} 2919 }); 2920 }); 2921 } else { 2922 2923 if ( typeof $ctx === 'undefined' ) { 2924 $ctx = document; 2925 } 2926 2927 const videos = $ctx.querySelectorAll(".background-video-shortcode:not(.started)"); 2928 Array.from(videos).forEach(function(video_el) { 2929 video_el.addEventListener('loadedmetadata', function(e) { 2930 $('body').removeClass('video-not-supported'); 2931 video_el.play(); 2932 }); 2933 if ( video_el.currentTime > 0 && video_el.readyState > 2 ) { 2934 video_el.muted = true; 2935 video_el.loop = true; 2936 $(video_el).closest('.uncode-video-container:not(.t-entry-drop)').css('opacity', '1'); 2937 $(video_el).addClass('started').closest('#page-header').addClass('video-started'); 2938 $(video_el).closest('.background-wrapper').find('.block-bg-blend-mode.not-ie').css('opacity', '1'); 2939 $('body').removeClass('video-not-supported'); 2940 video_el.play(); 2941 } else { 2942 requestTimeout(function(){ 2943 backgroundSelfVideosInit( $ctx ); 2944 }, 1000); 2945 } 2946 }); 2947 } 2948 }; 2949 2950 backgroundSelfVideosInit( $ctx ); 2951 2952 $(document).on('un-menu-show', function(){ 2953 setTimeout(function(){ 2954 UNCODE.initVideoComponent(document.body, '.un-submenu .uncode-video-container.video:not(.drop-move):not(.fluid-object), .un-submenu .uncode-video-container.self-video:not(.drop-move)'); 2955 }, 1); 2956 }); 2957 2958 2959 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 2960 window.parent.vc.events.on( 'shortcodeView:updated shortcodeView:ready', function(model){ 2961 var $el = model.view.$el, 2962 shortcode = model.attributes.shortcode; 2963 2964 if (typeof MediaElement === "function") { 2965 backgroundSelfVideosInit( $el ); 2966 } else { 2967 backgroundSelfVideosInit( $el[0] ); 2968 } 2969 }); 2970 } 2971}; 2972 2973UNCODE.is_scrolling = false;
2974 2975UNCODE.disableHoverScroll = function() { 2976 2977 if (!UNCODE.isMobile && !UNCODE.isFullPage && !SiteParameters.is_frontend_editor && (!SiteParameters.smoothScroll || SiteParameters.smoothScrollDisableHover )) { 2978 var body = document.body, 2979 timer; 2980 2981 window.addEventListener('scroll', function() { 2982 var delay = ( body.classList.contains('bg-changer-init') ) ? SiteParameters.bg_changer_time : 300; 2983 clearRequestTimeout(timer); 2984 if ( body.classList && !body.classList.contains('disable-hover') ) { 2985 body.classList.add('disable-hover'); 2986 window.dispatchEvent(new CustomEvent('disable-hover')); 2987 } 2988 UNCODE.is_scrolling = true; 2989 2990 timer = requestTimeout(function() { 2991 if ( body.classList ) { 2992 body.classList.remove('disable-hover'); 2993 window.dispatchEvent(new CustomEvent('enable-hover')); 2994 } 2995 UNCODE.is_scrolling = false; 2996 }, delay); 2997 }, false); 2998 } 2999}; 3000 3001UNCODE.isotopeLayout = function() { 3002 if ($('.isotope-layout').length > 0) { 3003 var isotopeContainersArray = [], 3004 typeGridArray = [], 3005 layoutGridArray = [], 3006 screenLgArray = [], 3007 screenMdArray = [], 3008 screenSmArray = [], 3009 transitionDuration = [], 3010 $filterItems = [], 3011 $filters = $('.isotope-system .isotope-filters'), 3012 $itemSelector = '.tmb-iso', 3013 $items, 3014 itemMargin, 3015 correctionFactor = 0, 3016 firstLoad = true, 3017 isOriginLeft = $('body').hasClass('rtl') ? false : true; 3018 $('[class*="isotope-container"]').each(function(index) { 3019 var _this = $(this); 3020 var isoData = _this.data(), 3021 $data_lg, 3022 $data_md, 3023 $data_sm; 3024 _this.children('.tmb').addClass('tmb-iso'); 3025 if (isoData.lg !== undefined) $data_lg = _this.attr('data-lg'); 3026 else $data_lg = '1000'; 3027 if (isoData.md !== undefined) $data_md = _this.attr('data-md'); 3028 else $data_md = '600'; 3029 if (isoData.sm !== undefined) $data_sm = _this.attr('data-sm'); 3030 else $data_sm = '480'; 3031 screenLgArray.push($data_lg); 3032 screenMdArray.push($data_md); 3033 screenSmArray.push($data_sm); 3034 transitionDuration.push($('.t-inside.animate_when_almost_visible', this).length > 0 ? 0 : '0.5s'); 3035 if (isoData.type == 'metro') typeGridArray.push(true); 3036 else typeGridArray.push(false); 3037 if (isoData.layout !== undefined) layoutGridArray.push(isoData.layout); 3038 else layoutGridArray.push('masonry'); 3039 isotopeContainersArray.push(_this); 3040 _this.attr('data-iso-index', index); 3041 }); 3042 var colWidth = function(index) { 3043 $(isotopeContainersArray[index]).width(''); 3044 var isPx = $(isotopeContainersArray[index]).parent().hasClass('px-gutter'), 3045 widthAvailable = $(isotopeContainersArray[index]).width(), 3046 columnNum = 12, 3047 columnWidth = 0, 3048 data_vp_height = $(isotopeContainersArray[index]).attr('data-vp-height'), 3049 consider_menu = $(isotopeContainersArray[index]).attr('data-vp-menu'), 3050 winHeight = UNCODE.wheight - UNCODE.adminBarHeight, 3051 $rowContainer, 3052 paddingRow, 3053 $colContainer, 3054 paddingCol; 3055 3056 if ( consider_menu ) 3057 winHeight = winHeight - UNCODE.menuHeight; 3058 3059 if ( data_vp_height === '1' ) { 3060 $rowContainer = $(isotopeContainersArray[index]).parents('.row-parent').eq(0), 3061 paddingRow = parseInt($rowContainer.css('padding-top')) + parseInt($rowContainer.css('padding-bottom')), 3062 $colContainer = $(isotopeContainersArray[index]).parents('.uncell').eq(0), 3063 paddingCol = parseInt($colContainer.css('padding-top')) + parseInt($colContainer.css('padding-bottom')); 3064 winHeight = winHeight - ( paddingRow + paddingCol ); 3065 } 3066 3067 if (isPx) { 3068 columnWidth = Math.ceil(widthAvailable / columnNum); 3069 $(isotopeContainersArray[index]).width(columnNum * Math.ceil(columnWidth)); 3070 } else { 3071 columnWidth = ($('html.firefox').length) ? Math.floor(widthAvailable / columnNum) : widthAvailable / columnNum; 3072 } 3073 $items = $(isotopeContainersArray[index]).find('.tmb-iso:not(.tmb-carousel)'); 3074 itemMargin = parseInt($(isotopeContainersArray[index]).find('.t-inside').css("margin-top")); 3075 for (var i = 0, len = $items.length; i < len; i++) { 3076 var $item = $($items[i]), 3077 multiplier_w = $item.attr('class').match(/tmb-iso-w(\d{0,2})/), 3078 multiplier_h = $item.attr('class').match(/tmb-iso-h(\d{0,3})/), 3079 multiplier_fixed = multiplier_h !== null ? multiplier_h[1] : 1; 3080 3081 3082 if (multiplier_w != null && multiplier_w[1] !== undefined && multiplier_w[1] == 15) { 3083 multiplier_w[1] = 2.4; // 20/(100/12) - 5 columns 3084 } 3085 3086 if (multiplier_h != null && multiplier_h[1] !== undefined && multiplier_h[1] == 15) { 3087 multiplier_h[1] = 2.4; // 20/(100/12) - 5 columns 3088 } 3089 3090 if (widthAvailable >= screenMdArray[index] && widthAvailable < screenLgArray[index]) { 3091 if (multiplier_w != null && multiplier_w[1] !== undefined) { 3092 switch (parseInt(multiplier_w[1])) { 3093 case (5): 3094 case (4): 3095 case (3): 3096 if (typeGridArray[index]) multiplier_h[1] = (6 * multiplier_h[1]) / multiplier_w[1]; 3097 multiplier_w[1] = 6; 3098 break; 3099 case (2): 3100 case (1): 3101 if (typeGridArray[index]) multiplier_h[1] = (3 * multiplier_h[1]) / multiplier_w[1]; 3102 multiplier_w[1] = 3; 3103 break; 3104 default: 3105 if (typeGridArray[index]) multiplier_h[1] = (12 * multiplier_h[1]) / multiplier_w[1]; 3106 multiplier_w[1] = 12; 3107 break; 3108 } 3109 3110 if (multiplier_w[1] == 2.4) { // 5 columns 3111 if (typeGridArray[index]) multiplier_h[1] = (6 * multiplier_h[1]) / multiplier_w[1]; 3112 multiplier_w[1] = 6; 3113 } 3114 } 3115 } else if (widthAvailable >= screenSmArray[index] && widthAvailable < screenMdArray[index]) { 3116 if (multiplier_w != null && multiplier_w[1] !== undefined) { 3117 switch (parseInt(multiplier_w[1])) { 3118 case (5): 3119 case (4): 3120 case (3): 3121 case (2): 3122 case (1): 3123 if (typeGridArray[index]) multiplier_h[1] = (6 * multiplier_h[1]) / multiplier_w[1]; 3124 multiplier_w[1] = 6; 3125 break; 3126 default: 3127 if (typeGridArray[index]) multiplier_h[1] = (12 * multiplier_h[1]) / multiplier_w[1]; 3128 multiplier_w[1] = 12; 3129 break; 3130 } 3131 3132 if (multiplier_w[1] == 2.4) { // 5 columns 3133 if (typeGridArray[index]) multiplier_h[1] = (6 * multiplier_h[1]) / multiplier_w[1]; 3134 multiplier_w[1] = 6; 3135 } 3136 } 3137 } else if (widthAvailable < screenSmArray[index]) { 3138 if (multiplier_w != null && multiplier_w[1] !== undefined) { 3139 //if (typeGridArray[index]) multiplier_h[1] = (12 * multiplier_h[1]) / multiplier_w[1]; 3140 multiplier_w[1] = 12; 3141 if (typeGridArray[index]) multiplier_h[1] = 12; 3142 } 3143 } 3144 var width = multiplier_w ? Math.floor(columnWidth * multiplier_w[1]) : columnWidth, 3145 height; 3146 3147 if ( data_vp_height === '1' && typeof multiplier_h[1] !== 'undefined' ) { 3148 height = multiplier_h ? Math['ceil'](winHeight / (100 / multiplier_fixed) ) - itemMargin : columnWidth; 3149 if ( widthAvailable < screenSmArray[index] ) { 3150 height = Math['ceil']((2 * Math.ceil(columnWidth / 2)) * 12) - itemMargin; 3151 } 3152 } else { 3153 height = multiplier_h ? Math['ceil']((2 * Math.ceil(columnWidth / 2)) * multiplier_h[1]) - itemMargin : columnWidth; 3154 } 3155 3156 if (width >= widthAvailable) { 3157 $item.css({ 3158 width: widthAvailable 3159 }); 3160 if (typeGridArray[index]) { 3161 $item.children().add($item.find('.backimg')).css({ 3162 height: height 3163 }); 3164 } 3165 } else { 3166 $item.css({ 3167 width: width 3168 }); 3169 if (typeGridArray[index]) { 3170 $item.children().add($item.find('.backimg')).css({ 3171 height: height 3172 }); 3173 } 3174 } 3175 } 3176 if (multiplier_w != null && multiplier_w[1] !== undefined && multiplier_w[1] == 2.4) { // 5 columns 3177 return columnWidth / 60; // least common multiple for 12 (regular columns) and 10 (5 columns) 3178 } else { 3179 return columnWidth; 3180 } 3181 }, 3182 init_isotope = function() { 3183 for (var i = 0, len = isotopeContainersArray.length; i < len; i++) { 3184 var isotopeSystem = $(isotopeContainersArray[i]).closest($('.isotope-system')), 3185 isotopeId = isotopeSystem.attr('id'), 3186 $layoutMode = layoutGridArray[i], 3187 setIsotopeFirstRowTimeOut, 3188 setIsotopeFirstRow = function(items){ 3189 var firstRow = true; 3190 $(items).each(function(index, val){ 3191 var el = items[index].element, 3192 el_top = items[index].position.y, 3193 $el = $(el); 3194 if ( index > 0 && el_top > 0 && firstRow ) { 3195 firstRow = false;
3196 } else if ( index == 0 && el_top == 0 ) { 3197 firstRow = true; 3198 } 3199 if ( firstRow ) { 3200 $el.removeClass('tmb-isotope-further-row'); 3201 } else { 3202 $el.addClass('tmb-isotope-further-row'); 3203 } 3204 }); 3205 }; 3206 $(isotopeContainersArray[i]).not('.un-isotope-init').addClass('un-isotope-init').isotope({ 3207 //resizable: true, 3208 itemSelector: $itemSelector, 3209 layoutMode: $layoutMode, 3210 transitionDuration: transitionDuration[i], 3211 masonry: { 3212 columnWidth: colWidth(i) 3213 }, 3214 vertical: { 3215 horizontalAlignment: 0.5, 3216 }, 3217 sortBy: 'original-order', 3218 isOriginLeft: isOriginLeft 3219 }) 3220 .on('layoutComplete', onLayout($(isotopeContainersArray[i]), 0)) 3221 .on('layoutComplete', function( event, items ){ 3222 if ( typeof items[0] !== 'undefined' ) { 3223 if ( $(items[0].element).closest('.off-grid-layout:not(.off-grid-forced)').length ) { 3224 setIsotopeFirstRow(items); 3225 } 3226 } 3227 }) 3228 .on('arrangeComplete', function( event, items ){ 3229 if ( typeof items[0] !== 'undefined' ) { 3230 if ( $(items[0].element).closest('.off-grid-layout:not(.off-grid-forced)').length ) { 3231 clearRequestTimeout(setIsotopeFirstRowTimeOut); 3232 setIsotopeFirstRowTimeOut = requestTimeout(function(){ 3233 setIsotopeFirstRow(items); 3234 }, 100); 3235 } 3236 } 3237 }); 3238 if ($(isotopeContainersArray[i]).hasClass('isotope-infinite') && $.fn.infinitescroll) { 3239 $(isotopeContainersArray[i]).infinitescroll({ 3240 navSelector: '#' + isotopeId + ' .loadmore-button', // selector for the pagination container 3241 nextSelector: '#' + isotopeId + ' .loadmore-button a', // selector for the NEXT link (to page 2) 3242 itemSelector: '#' + isotopeId + ' .isotope-layout .tmb, #' + isotopeId + ' .isotope-filters li.filter-cat, #' + isotopeId + ' .woocommerce-result-count-wrapper--default', // selector for all items you'll retrieve 3243 animate: false, 3244 behavior: 'local', 3245 debug: false, 3246 loading: { 3247 selector: '#' + isotopeId + '.isotope-system .isotope-footer-inner', 3248 speed: 0, 3249 finished: undefined, 3250 msg: $('#' + isotopeId + ' .loadmore-button'), 3251 }, 3252 errorCallback: function() { 3253 var isotope_system = $(this).closest('.isotope-system'); 3254 $('.loading-button', isotope_system).hide(); 3255 $('.loadmore-button', isotope_system).attr('style', 'display:none !important'); 3256 } 3257 }, 3258 // append the new items to isotope on the infinitescroll callback function. 3259 function(newElements, opts) { 3260 var $isotope = $(this), 3261 isotope_system = $isotope.closest('.isotope-system'), 3262 isotopeId = isotope_system.attr('id'), 3263 filters = new Array(), 3264 $loading_button = isotope_system.find('.loading-button'), 3265 $infinite_button = isotope_system.find('.loadmore-button'), 3266 $numPages = $('a', $infinite_button).data('pages'), 3267 $woo_results, 3268 delay = 300; 3269 $('a', $infinite_button).html($('a', $infinite_button).data('label')); 3270 $infinite_button.show(); 3271 $loading_button.hide(); 3272 if ( $numPages != undefined && opts.state.currPage == $numPages) $infinite_button.hide(); 3273 $('> li', $isotope).remove(); 3274 $('.isotope-container').find('.woocommerce-result-count-wrapper').remove(); 3275 $.each($(newElements), function (index, val) { 3276 if ($(val).hasClass('woocommerce-result-count-wrapper')) { 3277 $woo_results = $(val); 3278 delete newElements[index]; 3279 } else { 3280 $(val).addClass('tmb-iso'); 3281 if ($(val).is("li")) { 3282 filters.push($(val)[0]); 3283 } 3284 } 3285 $(val).addClass('uncode-appended'); 3286 }); 3287 newElements = newElements.filter(function(x) { 3288 return filters.indexOf(x) < 0 3289 }); 3290 $.each($(filters), function(index, val) { 3291 if ($('#' + isotopeId + ' a[data-filter="' + $('a', val).attr('data-filter') + '"]').length == 0) $('#' + isotopeId + ' .isotope-filters ul').append($(val)); 3292 }); 3293 if ($woo_results && $woo_results.length > 0) { 3294 var old_count = isotope_system.find('.woocommerce-result-count').text(); 3295 var new_count = $woo_results.find('.woocommerce-result-count').text(); 3296 var old_start = old_count.match(/(\d+)–(\d+)/)[1]; 3297 var new_end = new_count.match(/(\d+)–(\d+)/)[2]; 3298 function replaceMatch(match, p1, p2) { 3299 return old_start + '–' + new_end; 3300 } 3301 var new_count_text = old_count.replace(/(\d+)–(\d+)/, replaceMatch); 3302 isotope_system.find('.woocommerce-result-count').text(new_count_text); 3303 } 3304 $isotope.isotope('reloadItems', onLayout($isotope, newElements.length)); 3305 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 3306 var getLightbox = UNCODE.lightboxArray['ilightbox_' + isotopeId]; 3307 if (typeof getLightbox === 'object') { 3308 getLightbox.refresh(); 3309 } else { 3310 UNCODE.lightbox(); 3311 } 3312 } 3313 if ( typeof twttr !== 'undefined' ) 3314 twttr.widgets.load(isotopeContainersArray[i]); 3315 3316 requestTimeout(function() { 3317 Waypoint.refreshAll(); 3318 $isotope.trigger('more-items-loaded'); 3319 $(window).trigger('more-items-loaded'); 3320 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 3321 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 3322 $(document).trigger('uncode-scrolltrigger-refresh'); 3323 } 3324 }, 1000); 3325 3326 }); 3327 if ($(isotopeContainersArray[i]).hasClass('isotope-infinite-button')) { 3328 var $infinite_isotope = $(isotopeContainersArray[i]), 3329 $infinite_button = $infinite_isotope.closest('.isotope-system').find('.loadmore-button a'); 3330 $infinite_isotope.infinitescroll('pause'); 3331 $infinite_button.on('click', function(event) { 3332 event.preventDefault(); 3333 var $infinite_system = $(event.target).closest('.isotope-system'), 3334 $infinite_isotope = $infinite_system.find('.isotope-container'), 3335 isotopeId = $infinite_system.attr('id'); 3336 $(event.currentTarget).html(SiteParameters.loading); 3337 $infinite_isotope.infinitescroll('resume'); 3338 $infinite_isotope.infinitescroll('retrieve'); 3339 $infinite_isotope.infinitescroll('pause'); 3340 }); 3341 } 3342 } 3343 } 3344 }, 3345 onLayout = function(isotopeObj, startIndex, needsReload) { 3346 var needsReload = needsReload ? true : false;
3347 3348 if (typeof UNCODE.bigText !== 'undefined') { 3349 UNCODE.bigText(); 3350 } 3351 isotopeObj.css('opacity', 1); 3352 isotopeObj.closest('.isotope-system').find('.isotope-footer').css('opacity', 1); 3353 3354 requestTimeout(function() { 3355 if (startIndex > 0) { 3356 reloadIsotope(isotopeObj); 3357 if (SiteParameters.dynamic_srcset_active === '1') { 3358 UNCODE.refresh_dynamic_srcset_size(isotopeObj); 3359 UNCODE.adaptive_srcset(isotopeObj); 3360 } 3361 // window.dispatchEvent(UNCODE.boxEvent); 3362 } else if (needsReload) { 3363 reloadIsotope(isotopeObj); 3364 } 3365 3366 UNCODE.adaptive(); 3367 if (SiteParameters.dynamic_srcset_active === '1' && startIndex === 0) { 3368 UNCODE.refresh_dynamic_srcset_size(isotopeObj); 3369 } 3370 if (typeof MediaElement === "function") { 3371 $(isotopeObj).find('audio,video').each(function() { 3372 $(this).mediaelementplayer({ 3373 pauseOtherPlayers: false, 3374 }); 3375 }); 3376 } 3377 if ($(isotopeObj).find('.nested-carousel').length) { 3378 if (typeof UNCODE.carousel !== 'undefined') { 3379 UNCODE.carousel($(isotopeObj).find('.nested-carousel')); 3380 } 3381 requestTimeout(function() { 3382 boxAnimation($('.tmb-iso', isotopeObj), startIndex, true, isotopeObj); 3383 }, 200); 3384 } else { 3385 boxAnimation($('.tmb-iso', isotopeObj), startIndex, true, isotopeObj); 3386 } 3387 isotopeObj.trigger('isotope-layout-complete'); 3388 3389 }, 100); 3390 3391 }, 3392 boxAnimation = function(items, startIndex, sequential, container) { 3393 var $allItems = items.length - startIndex, 3394 showed = 0, 3395 index = 0; 3396 if (container.closest('.owl-item').length == 1) return false; 3397 $.each(items, function(index, val) { 3398 var $this = $(val), 3399 elInner = $('> .t-inside', val); 3400 if (UNCODE.isUnmodalOpen && !val.closest('#unmodal-content')) { 3401 return; 3402 } 3403 if (val[0]) val = val[0]; 3404 if (elInner.hasClass('animate_when_almost_visible') && !elInner.hasClass('force-anim')) { 3405 new Waypoint({ 3406 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 3407 element: val, 3408 handler: function() { 3409 var element = $('> .t-inside', this.element), 3410 parent = $(this.element), 3411 currentIndex = parent.index(); 3412 var delay = (!sequential) ? index : ((startIndex !== 0) ? currentIndex - $allItems : currentIndex), 3413 delayAttr = parseInt(element.attr('data-delay')); 3414 if (isNaN(delayAttr)) delayAttr = 100; 3415 delay -= showed; 3416 var objTimeout = requestTimeout(function() { 3417 element.removeClass('zoom-reverse').addClass('start_animation'); 3418 showed = parent.index(); 3419 if ( container.data('isotope') ) { 3420 container.isotope('layout'); 3421 } 3422 }, delay * delayAttr) 3423 parent.data('objTimeout', objTimeout); 3424 if (!UNCODE.isUnmodalOpen) { 3425 this.destroy(); 3426 } 3427 }, 3428 offset: '100%' 3429 }) 3430 } else { 3431 if (elInner.hasClass('force-anim')) { 3432 elInner.addClass('start_animation'); 3433 } else { 3434 elInner.css('opacity', 1); 3435 } 3436 container.isotope('layout'); 3437 } 3438 3439 index++; 3440 }); 3441 }, 3442 reloadIsotope = function(isotopeObj) { 3443 var isoIndex = $(isotopeObj).attr('data-iso-index'); 3444 var $layoutMode = ($(isotopeObj).data('layout')); 3445 if ($layoutMode === undefined) { 3446 $layoutMode = 'masonry'; 3447 } 3448 if (isotopeObj.data('isotope')) { 3449 isotopeObj.isotope({ 3450 itemSelector: $itemSelector, 3451 layoutMode: $layoutMode, 3452 transitionDuration: transitionDuration[isoIndex], 3453 masonry: { 3454 columnWidth: colWidth(isoIndex) 3455 }, 3456 vertical: { 3457 horizontalAlignment: 0.5, 3458 }, 3459 sortBy: 'original-order', 3460 isOriginLeft: isOriginLeft 3461 }); 3462 } 3463 } 3464 ; 3465 if ($('.isotope-pagination').length > 0) { 3466 $('.isotope-system').on('click', '.pagination a', function(evt) { 3467 evt.preventDefault(); 3468 3469 if (SiteParameters.index_pagination_disable_scroll !== '1') { 3470 var filterContainer = $(this).closest('.isotope-system').find('.isotope-filters'), 3471 container = $(this).closest('.isotope-system'), 3472 pagination_disable_scroll = container.attr('data-pagination-scroll'), 3473 calc_scroll = SiteParameters.index_pagination_scroll_to != false ? eval(SiteParameters.index_pagination_scroll_to) : container.closest('.row-parent').offset().top; 3474 calc_scroll -= UNCODE.get_scroll_offset(); 3475 3476 if ( pagination_disable_scroll !== 'disabled' ) { 3477 var menu_container = $('.menu-sticky'); 3478 var menu = menu_container.find('.menu-container'); 3479 3480 if (menu_container.length > 0 && menu.length > 0) { 3481 calc_scroll = calc_scroll - menu.outerHeight(); 3482 } 3483 3484 var bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 3485 delta = bodyTop - calc_scroll, 3486 scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed; 3487 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 3488 3489 if (!UNCODE.isFullPage) { 3490 if (scrollSpeed == 0) { 3491 $('html, body').scrollTop(calc_scroll); 3492 } else { 3493 $('html, body').animate({ 3494 scrollTop: calc_scroll 3495 }, {
3496 easing: 'easeInOutQuad', 3497 duration: scrollSpeed, 3498 complete: function () { 3499 UNCODE.scrolling = false; 3500 } 3501 }); 3502 } 3503 } 3504 } 3505 } 3506 3507 loadIsotope($(this), true); 3508 }); 3509 } 3510 $filters.on('click', 'a.isotope-nav-link', function(evt) { 3511 if ($(this).hasClass('no-isotope-filter')) { 3512 return; 3513 } 3514 var $filter = $(this), 3515 filterContainer = $filter.closest('.isotope-filters'), 3516 filterValue = $filter.attr('data-filter'), 3517 container = $filter.closest('.isotope-system').find($('.isotope-layout')), 3518 transitionDuration = container.data().isotope.options.transitionDuration, 3519 delay = 300, 3520 filterItems = []; 3521 3522 var filter_items = function(){ 3523 if (filterValue !== undefined) { 3524 container.addClass('grid-filtering'); 3525 $.each($('> .tmb-iso > .t-inside', container), function(index, val) { 3526 var parent = $(val).parent(), 3527 objTimeout = parent.data('objTimeout'); 3528 if (objTimeout) { 3529 $(val).removeClass('zoom-reverse').removeClass('start_animation') 3530 clearRequestTimeout(objTimeout); 3531 } 3532 if (transitionDuration == 0) { 3533 if ($(val).hasClass('animate_when_almost_visible')) { 3534 $(val).addClass('zoom-reverse').removeClass('start_animation'); 3535 } else { 3536 $(val).addClass('animate_when_almost_visible zoom-reverse zoom-anim force-anim'); 3537 } 3538 } 3539 }); 3540 requestTimeout(function(){ 3541 if ( filterValue == '*' ) { 3542 container.removeClass('isotope-filtered'); 3543 } else { 3544 container.addClass('isotope-filtered'); 3545 } 3546 container.isotope({ 3547 filter: function() { 3548 var block = $(this), 3549 filterable = (filterValue == '*') || block.hasClass(filterValue), 3550 lightboxElements = $('[data-lbox^=ilightbox]', block); 3551 if (filterable) { 3552 if (lightboxElements.length) { 3553 lightboxElements.removeClass('lb-disabled'); 3554 container.data('lbox', $(lightboxElements[0]).data('lbox')); 3555 } 3556 filterItems.push(block); 3557 } else { 3558 if (lightboxElements.length) lightboxElements.addClass('lb-disabled'); 3559 } 3560 container.trigger('more-items-loaded'); 3561 $(window).trigger('more-items-loaded'); 3562 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 3563 return filterable; 3564 } 3565 }); 3566 $('.t-inside.zoom-reverse', container).removeClass('zoom-reverse'); 3567 3568 }, delay); 3569 3570 /** once filtered - start **/ 3571 container.isotope('once', 'arrangeComplete', function() { 3572 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 3573 var getLightbox = UNCODE.lightboxArray[container.data('lbox')]; 3574 if (typeof getLightbox === 'object') { 3575 getLightbox.refresh(); 3576 } else { 3577 UNCODE.lightbox(); 3578 } 3579 } 3580 if (transitionDuration == 0) { 3581 requestTimeout(function() { 3582 boxAnimation(filterItems, 0, false, container); 3583 }, 100); 3584 } 3585 requestTimeout(function() { 3586 Waypoint.refreshAll(); 3587 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 3588 $(document).trigger('uncode-scrolltrigger-refresh'); 3589 } 3590 container.removeClass('grid-filtering'); 3591 }, 2000); 3592 }); 3593 /** once filtered - end **/ 3594 } else { 3595 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 3596 $.each(UNCODE.lightboxArray, function(index, val) { 3597 UNCODE.lightboxArray[index].destroy(); 3598 }); 3599 } 3600 $.each($('> .tmb-iso > .t-inside', container), function(index, val) { 3601 var parent = $(val).parent(), 3602 objTimeout = parent.data('objTimeout'); 3603 if (objTimeout) { 3604 $(val).removeClass('zoom-reverse').removeClass('start_animation') 3605 clearRequestTimeout(objTimeout); 3606 } 3607 if (transitionDuration == 0) { 3608 if ($(val).hasClass('animate_when_almost_visible')) { 3609 $(val).addClass('zoom-reverse').removeClass('start_animation'); 3610 } else { 3611 $(val).addClass('animate_when_almost_visible zoom-reverse zoom-anim force-anim'); 3612 } 3613 } 3614 }); 3615 container.parent().addClass('grid-loading'); 3616 loadIsotope($filter); 3617 } 3618 }; 3619 3620 if (!$filter.hasClass('active')) { 3621 /** Scroll top with filtering */ 3622 if (filterContainer.hasClass('filter-scroll')) { 3623 var calc_scroll = SiteParameters.index_pagination_scroll_to != false ? eval(SiteParameters.index_pagination_scroll_to) : container.closest('.row-parent').offset().top; 3624 calc_scroll -= UNCODE.get_scroll_offset(); 3625 3626 var bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 3627 delta = bodyTop - calc_scroll, 3628 scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed, 3629 filterTolerance = false, 3630 filter_timeout; 3631 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 3632 3633 if ( !UNCODE.isFullPage ) { 3634 if (scrollSpeed == 0) { 3635 $('html, body').scrollTop(calc_scroll); 3636 UNCODE.scrolling = false;
3637 filter_items(); 3638 } else { 3639 3640 if ( bodyTop <= (calc_scroll+20) && bodyTop >= (calc_scroll-20) ) { 3641 filter_items(); 3642 filterTolerance = true; 3643 } 3644 3645 $('html, body').animate({ 3646 scrollTop: calc_scroll 3647 },{ 3648 easing: 'easeInOutQuad', 3649 duration: scrollSpeed, 3650 complete: function(){ 3651 UNCODE.scrolling = false; 3652 if ( !filterTolerance ) { 3653 filter_timeout = setTimeout(function(){ 3654 clearTimeout(filter_timeout); 3655 filter_items(); 3656 }, 200); 3657 } 3658 } 3659 }); 3660 } 3661 } 3662 } else { 3663 filter_items(); 3664 } 3665 } 3666 evt.preventDefault(); 3667 }); 3668 3669 $(window).off('popstate.isotopegrid').on("popstate.isotopegrid", function(e) { 3670 var params = UNCODE.getURLParams(window.location); 3671 var old_params = UNCODE.getURLParams(UNCODE.lastURL, true); 3672 3673 UNCODE.lastURL = window.location.href; 3674 3675 if (UNCODE.hasEqualURLParams(params, old_params) || ($.isEmptyObject(params) && $.isEmptyObject(old_params)) || params.form !== undefined) { 3676 return; 3677 } 3678 3679 if (params.id === undefined) { 3680 $.each($('.isotope-system'), function(index, val) { 3681 loadIsotope($(val)); 3682 }); 3683 } else { 3684 if (!params.hasOwnProperty(SiteParameters.ajax_filter_key_unfilter)) { 3685 loadIsotope($('#' + params.id)); 3686 } 3687 } 3688 }); 3689 3690 var loadIsotope = function($href, $paginating) { 3691 var is_paginating = false; 3692 3693 if (undefined !== $paginating && $paginating) { 3694 var is_paginating = $paginating; 3695 } 3696 3697 var href = ($href.is("a") ? $href.attr('href') : location), 3698 isotopeSystem = ($href.is("a") ? $href.closest($('.isotope-system')) : $href), 3699 isotopeWrapper = isotopeSystem.find($('.isotope-wrapper')), 3700 isotopeFooter = isotopeSystem.find($('.isotope-footer-inner')), 3701 isotopeResultCount = isotopeSystem.find($('.woocommerce-result-count-wrapper')), 3702 isotopeContainer = isotopeSystem.find($('.isotope-layout')), 3703 isotopeId = isotopeSystem.attr('id'); 3704 if ( $href.is("a") && ! isotopeSystem.hasClass('un-no-history') ) { 3705 UNCODE.lastURL = href; 3706 history.pushState({ 3707 myIsotope: true 3708 }, document.title, href); 3709 } 3710 if (is_paginating) { 3711 isotopeWrapper.addClass('grid-filtering'); 3712 } 3713 $.ajax({ 3714 url: href 3715 }).done(function(data) { 3716 var $resultItems = $(data).find('#' + isotopeId + ' .isotope-layout').html(), 3717 $resultPagination = $(data).find('#' + isotopeId + ' .pagination')[0], 3718 $resultCount = $(data).find('#' + isotopeId + ' .woocommerce-result-count')[0]; 3719 isotopeWrapper.addClass('isotope-reloaded'); 3720 requestTimeout(function() { 3721 isotopeWrapper.removeClass('grid-loading'); 3722 isotopeWrapper.removeClass('isotope-reloaded'); 3723 isotopeWrapper.removeClass('grid-filtering'); 3724 }, 500); 3725 $.each($('> .tmb > .t-inside', isotopeContainer), function(index, val) { 3726 var parent = $(val).parent(), 3727 objTimeout = parent.data('objTimeout'); 3728 if (objTimeout) { 3729 $(val).removeClass('zoom-reverse').removeClass('start_animation') 3730 clearRequestTimeout(objTimeout); 3731 } 3732 if ($(val).hasClass('animate_when_almost_visible')) { 3733 $(val).addClass('zoom-reverse').removeClass('start_animation'); 3734 } else { 3735 $(val).addClass('animate_when_almost_visible zoom-reverse zoom-in force-anim'); 3736 } 3737 }); 3738 requestTimeout(function() { 3739 if (isotopeContainer.data('isotope')) { 3740 isotopeContainer.html($resultItems).children('.tmb').addClass('tmb-iso'); 3741 isotopeContainer.isotope('reloadItems', onLayout(isotopeContainer, 0, true)); 3742 UNCODE.adaptive(); 3743 if (SiteParameters.dynamic_srcset_active === '1') { 3744 UNCODE.adaptive_srcset(isotopeContainer); 3745 } 3746 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 3747 var getLightbox = UNCODE.lightboxArray['ilightbox_' + isotopeContainer.closest('.isotope-system').attr('id')]; 3748 if (typeof getLightbox === 'object') { 3749 getLightbox.refresh(); 3750 } else { 3751 UNCODE.lightbox(); 3752 } 3753 } 3754 } 3755 isotopeContainer.trigger('more-items-loaded'); 3756 $(window).trigger('more-items-loaded'); 3757 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 3758 }, 300); 3759 $('.pagination', isotopeFooter).remove(); 3760 isotopeFooter.append($resultPagination); 3761 3762 if (isotopeResultCount.length > 0) { 3763 $('.woocommerce-result-count', isotopeResultCount).remove(); 3764 isotopeResultCount.append($resultCount); 3765 } 3766 }); 3767 }; 3768 $filters.each(function(i, buttonGroup) { 3769 var $buttonGroup = $(buttonGroup); 3770 $buttonGroup.on('click', 'a:not(.no-isotope-filter)', function() { 3771 $buttonGroup.find('.active').removeClass('active'); 3772 $(this).addClass('active'); 3773 3774 }); 3775 3776 var $cats_mobile_trigger = $('.menu-smart--filter-cats_mobile-toggle-trigger', $buttonGroup), 3777 $cats_mobile_toggle = $('.menu-smart--filter-cats_mobile-toggle', $buttonGroup), 3778 $cats_filters = $('.menu-smart--filter-cats', $buttonGroup); 3779 $buttonGroup.on('click', 'a.menu-smart--filter-cats_mobile-toggle-trigger', function(e) { 3780 e.preventDefault(); 3781 $cats_filters.slideToggle(400, 'easeInOutCirc'); 3782 }); 3783 3784 }); 3785 window.addEventListener('boxResized', function(e) { 3786 if (UNCODE.printDialogOpen !== false) { 3787 return false;
3788 } 3789 $.each($('.isotope-layout'), function(index, val) { 3790 var $layoutMode = ($(this).data('layout')); 3791 if ($layoutMode === undefined) $layoutMode = 'masonry'; 3792 if ($(this).data('isotope')) { 3793 $(this).isotope({ 3794 itemSelector: $itemSelector, 3795 layoutMode: $layoutMode, 3796 transitionDuration: transitionDuration[index], 3797 masonry: { 3798 columnWidth: colWidth(index) 3799 }, 3800 vertical: { 3801 horizontalAlignment: 0.5, 3802 }, 3803 sortBy: 'original-order', 3804 isOriginLeft: isOriginLeft 3805 }); 3806 $(this).isotope('unbindResize'); 3807 if (SiteParameters.dynamic_srcset_active === '1') { 3808 UNCODE.refresh_dynamic_srcset_size($(this)); 3809 } 3810 } 3811 $(this).find('.mejs-video,.mejs-audio').each(function() { 3812 $(this).trigger('resize'); 3813 }); 3814 }); 3815 }, false); 3816 3817 init_isotope(); 3818 }; 3819} 3820 3821UNCODE.lightbox = function() { 3822 if ( SiteParameters.lbox_enhanced ) { 3823 return true; 3824 } 3825 UNCODE.lightboxArray = {}; 3826 requestTimeout(function() { 3827 var groupsArr = {}; 3828 $('[data-lbox^=ilightbox]:not(.lb-disabled):not([data-lbox-init]), .uncode-lbox:not(.lb-disabled):not([data-lbox-init])').each(function() { 3829 var group = this.getAttribute("data-lbox"), 3830 values = $(this).data(); 3831 $(this).attr('data-lbox-init','true') 3832 groupsArr[group] = values; 3833 }); 3834 for (var i in groupsArr) { 3835 var skin = groupsArr[i].skin || 'black', 3836 path = groupsArr[i].dir || 'horizontal', 3837 thumbs = !groupsArr[i].notmb || false, 3838 arrows = !groupsArr[i].noarr || false, 3839 social = groupsArr[i].social || false, 3840 deeplink = groupsArr[i].deep || false, 3841 $els = $('[data-lbox="' + i + '"]:not(.lb-disabled), .uncode-lbox:not(.lb-disabled)'), 3842 counter = $els.length, 3843 dataAlbum = $els.attr('data-album'); 3844 if (social) social = { 3845 facebook: true, 3846 twitter: true, 3847 reddit: true, 3848 digg: true 3849 }; 3850 UNCODE.lightboxArray[i] = $els.iLightBox({ 3851 selector: '[data-lbox="' + i + '"]:not(.lb-disabled), .uncode-lbox:not(.lb-disabled)', 3852 skin: skin, 3853 path: path, 3854 linkId: deeplink, 3855 infinite: false, 3856 //fullViewPort: 'fit', 3857 smartRecognition: false, 3858 fullAlone: true, 3859 maxScale: 1, 3860 minScale: .02, 3861 //fullStretchTypes: 'flash, video', 3862 overlay: { 3863 opacity: .94 3864 }, 3865 controls: { 3866 arrows: (counter > 1 || ( typeof dataAlbum !== 'undefined' ) ? arrows : false), 3867 fullscreen: true, 3868 thumbnail: thumbs, 3869 slideshow: (counter > 1 || ( typeof dataAlbum !== 'undefined' ) ? true : false) 3870 }, 3871 show: { 3872 speed: 200 3873 }, 3874 hide: { 3875 speed: 200 3876 }, 3877 social: { 3878 start: false, 3879 buttons: social 3880 }, 3881 caption: { 3882 start: false 3883 }, 3884 styles: { 3885 nextOpacity: 1, 3886 nextScale: 1, 3887 prevOpacity: 1, 3888 prevScale: 1 3889 }, 3890 effects: { 3891 switchSpeed: 400 3892 }, 3893 slideshow: { 3894 pauseTime: 5000 3895 }, 3896 thumbnails: { 3897 maxWidth: 60, 3898 maxHeight: 60, 3899 activeOpacity: .2 3900 }, 3901 html5video: { 3902 preload: true 3903 }, 3904 callback: { 3905 onOpen: function(){ 3906 $(window).trigger('uncode-custom-cursor'); 3907 if ( $('body').hasClass('ilb-no-bounce') && typeof iNoBounce !== 'undefined' ) { 3908 iNoBounce.enable(); 3909 } 3910 }, 3911 onHide: function(){ 3912 if ( $('body').hasClass('ilb-no-bounce') && typeof iNoBounce !== 'undefined' ) { 3913 iNoBounce.disable() 3914 } 3915 }, 3916 } 3917 }); 3918 3919 $(document).on('infinite-loaded', function(){ 3920 UNCODE.lightboxArray[i].refresh(); 3921 }); 3922 3923 $(window).on('gdprOpen', function(){ 3924 UNCODE.lightboxArray[i].close(); 3925 }); 3926 }; 3927 }, 100); 3928 3929 $(document).on('click', '.lb-disabled', function(e){ 3930 e.preventDefault(); 3931 }); 3932}; 3933 3934UNCODE.lightgallery = function( $el ) { 3935 var createSelectors = function(){ 3936 $('a[data-lbox]:not([data-lbox-init]):not([data-album])' + SiteParameters.uncode_lb_add_items).each(function(){ 3937 if ( !$(this).closest('.nested-carousel').length && !$(this).closest('.owl-item.cloned').length && !$(this).hasClass('lb-disabled') ) { 3938 $(this).addClass('lbox-trigger-item'); 3939 } else if ( $(this).closest('.nested-carousel').length && !$(this).closest('.owl-item.cloned').length && !$(this).hasClass('lb-disabled') ) { 3940 $(this).addClass('lbox-nested-item'); 3941 } else { 3942 $(this).removeClass('lbox-trigger-item'); 3943 $(this).removeClass('lbox-nested-item'); 3944 } 3945 }); 3946 }; 3947 3948 createSelectors(); 3949 3950 var galleries = [], 3951 nested_a = $('a[data-lbox]:not(.lb-disabled):not([data-lbox-init]):not([data-album])').filter(function( index ) { 3952 return !$(this).closest('.nested-carousel').length; 3953 }), 3954 $_galleries = $('.isotope-container:not([data-lbox-init]), .owl-carousel:not([data-lbox-init]), .custom-grid-container:not([data-lbox-init]), .index-scroll-wrapper:not([data-lbox-init]), .justified-gallery:not([data-lbox-init]), .linear-container:not([data-lbox-init]), .uncode-single-media-wrapper:not([data-lbox-init]), .woocommerce-product-gallery:not([data-lbox-init]), .icon-box .icon-box-icon:not([data-lbox-init]), .icon-box .icon-box-content:not([data-lbox-init]), .grid-container:not([data-lbox-init]), .btn-container:not([data-lbox-init])' + SiteParameters.uncode_lb_add_galleries).has('.lbox-trigger-item').not('.isotope-container *, .owl-carousel *, .index-scroll-wrapper *, .justified-gallery *, .woocommerce-product-gallery *, .grid-container *, .linear-container *'), 3955 $galleries = $_galleries.filter(function( index ) { 3956 return !$(this).closest('.owl-carousel').length || $(this).is('.owl-carousel'); 3957 }), 3958 $nested = $('.nested-carousel:not([data-lbox-init])').has('.lbox-nested-item'); 3959 3960 if ( typeof $el === 'undefined' ) { 3961 $el = $galleries.add( $nested ); 3962 } 3963 3964 var $disabled = $('a.lb-disabled'); 3965 $disabled.on('click', function(e){ 3966 e.preventDefault(); 3967 }); 3968 3969 var beforeSlide = function(event) { 3970 var detail = event.detail, 3971 info = detail.info, 3972 item = detail.item, 3973 $slide = $(detail.currentSlide.selector), 3974 $video = $('video', $slide), 3975 $previous = $(detail.previousSlide.selector), 3976 $prevVideo = $('video', $previous), 3977 isAudio = false;
3978 3979 if ( typeof info.src !== 'undefined' ) { 3980 isAudio = info.src.search(/.mp3|.m4a/i) > -1; 3981 } 3982 3983 if ( ! $video.length && ( info.video || isAudio ) ) { 3984 if ( info.video ) { 3985 if ( typeof info.video === 'object' ) { 3986 var infoJson = info.video; 3987 } else { 3988 var infoJson = JSON.parse(info.video); 3989 } 3990 var src = infoJson.source[0].src, 3991 autoplay = $(item).attr('data-autoplay') || event.target.autoplay === true || $(item).closest('[data-lb-autoplay=yes]').length || $(event.target).attr('data-lb-autoplay') === 'yes', 3992 muted = $(item).closest('[data-lb-muted=yes]').length || $(event.target).attr('data-lb-muted') === 'yes', 3993 loop = $(item).attr('data-loop'); 3994 3995 } else if ( isAudio ) { 3996 var src = info.src, 3997 autoplay = true, 3998 loop = false; 3999 } 4000 if ( typeof src !== 'undefined' ) { 4001 $slide.addClass('has-html5'); 4002 var video = document.createElement('video'); 4003 video.src = src; 4004 video.preload = 'auto'; 4005 video.controls = 'controls'; 4006 video.controlsList = 'nodownload'; 4007 if ( autoplay ) { 4008 video.autoplay = 'autoplay'; 4009 } 4010 if ( muted ) { 4011 video.muted = 'muted'; 4012 } 4013 if ( loop ) { 4014 video.loop = 'loop'; 4015 } 4016 $(video).appendTo($slide); 4017 } 4018 } else { 4019 var $video = $('video', $slide); 4020 if ( $video.length ) { 4021 $video[0].currentTime = 0; 4022 if ( $video[0].autoplay ) { 4023 $video[0].play(); 4024 } 4025 } 4026 } 4027 if ( $prevVideo.length ) { 4028 $prevVideo[0].currentTime = 0; 4029 $prevVideo[0].pause(); 4030 } 4031 }; 4032 4033 var beforeOpen = function(event) { 4034 var detail = event.detail, 4035 items = detail.items, 4036 galleryItems = detail.galleryItems, 4037 outer = detail.outer.selector, 4038 i, ii; 4039 for ( i = 0; i < galleryItems.length; i++ ) { 4040 var item = galleryItems[i]; 4041 if ( typeof item.video !== 'undefined' || item.oembed === 'video' ) { 4042 $(outer).find('.lg-thumb-item[data-lg-item-id="' + i + '"]').addClass('thumbnail-video'); 4043 } 4044 } 4045 for ( ii = 0; ii < items.length; ii++ ) { 4046 var item = items[ii]; 4047 if ( $(item).attr('data-icon') === 'video' ) { 4048 $(outer).find('.lg-thumb-item[data-lg-item-id="' + ii + '"]').addClass('thumbnail-video'); 4049 } 4050 } 4051 4052 }; 4053 4054 //caption builder 4055 var captionBuilder = function($el){ 4056 $el.each( function( index, val ) { 4057 var $gallery = $(this).attr('data-lbox-init','true'), 4058 $_a = '.lbox-trigger-item', 4059 $_nested_a = '.lbox-nested-item'; 4060 4061 $gallery.find($_a).add($_nested_a).each(function(){ 4062 var $a = $(this), 4063 $img = $('img', $a).first(), 4064 imgw = $img.attr('data-width'), 4065 imgh = $img.attr('data-height'), 4066 caption = $a.attr('data-caption'), 4067 title = $a.attr('data-title'); 4068 4069 if ( $img.length && $img.attr('data-crop') != true ) { 4070 if ( typeof $img.attr('data-guid') !== 'undefined' && $img.attr('data-guid') !== '' ) { 4071 $a.attr('data-external-thumb-image', $img.attr('data-guid')); 4072 } else if ( $img[0].src && typeof $img.attr('data-srcset') == 'undefined' && $a.attr('data-external-thumb-image') == '' ) { 4073 $a.attr('data-external-thumb-image', $img[0].src); 4074 } 4075 } 4076 4077 if ( typeof title !== 'undefined' && title !== '' ) { 4078 title = '<h6>' + title + '</h6>'; 4079 } else { 4080 title = ''; 4081 } 4082 4083 if ( typeof caption !== 'undefined' && caption !== '' ) { 4084 caption = '<p>' + caption + '</p>'; 4085 title += caption; 4086 } 4087 4088 if ( title !== '' ) { 4089 $a.attr( 'title', title ); 4090 } 4091 4092 if ( $img.attr('data-crop') != true && typeof imgw !== 'undefined' && typeof imgh !== 'undefined' && imgw !== '' && imgh !== '' && ( typeof $a.attr('data-lg-size') === 'undefined' || !$a.attr('data-lg-size') ) ) { 4093 $a.attr('data-lg-size', imgw + '-' + imgh); 4094 } 4095 }); 4096 }); 4097 }; 4098 captionBuilder($el); 4099 4100 //regular galleries 4101 $el.each( function( index, val ) { 4102 var $gallery = $(this), 4103 $_a = '.lbox-trigger-item', 4104 $_nested_a = '.lbox-nested-item', 4105 $_first = !$gallery.hasClass( 'nested-carousel' ) ? $($_a, $gallery).first() : $($_nested_a, $gallery).first(), 4106 galleryID = $_first.attr('data-lbox'), 4107 $_connected_a = $_a + '[data-lbox="' + galleryID + '"]', 4108 tmb = $_first.attr('data-notmb'), 4109 social = $_first.attr('data-social'), 4110 deep = $_first.attr('data-deep'), 4111 zoom = $_first.attr('data-zoom-origin'), 4112 actual = $_first.attr('data-actual-size'), 4113 download = $_first.attr('data-download'), 4114 controls = $_first.attr('data-arrows') !== 'no', 4115 fullScreen = $_first.attr('data-full'),
4116 counter = $_first.attr('data-counter'), 4117 transition = typeof $_first.attr('data-transition') !== 'undefined' ? $_first.attr('data-transition') : 'lg-slide', 4118 containerClass = $_first.closest('[data-skin="white"]').length ? 'lg-light-skin' : '', 4119 connect = $_first.attr('data-connect'), 4120 lgPlugins = [lgVideo], 4121 itemsLoadedTimeOut; 4122 4123 if ( typeof galleryID === 'undefined' ) { 4124 galleryID = $gallery.attr('id'); 4125 } 4126 4127 containerClass += $_first.attr('data-transparency') === 'opaque' ? ' lg-opaque' : ''; 4128 containerClass += controls && $_first.attr('data-arrows-bg') === 'semi-transparent' ? ' lg-semi-transparent-arrows' : ''; 4129 4130 if ( typeof tmb == 'undefined' || !tmb ) { 4131 lgPlugins.push(lgThumbnail); 4132 } 4133 if ( ( typeof actual != 'undefined' && actual != '' ) || $gallery.is('.woocommerce-product-gallery') ) { 4134 lgPlugins.push(lgZoom); 4135 } 4136 if ( typeof deep != 'undefined' && deep != '' ) { 4137 lgPlugins.push(lgHash); 4138 } 4139 if ( typeof fullScreen != 'undefined' && fullScreen != '' ) { 4140 lgPlugins.push(lgFullscreen); 4141 } 4142 if ( social ) { 4143 lgPlugins.push(lgShare); 4144 } 4145 4146 if ( galleries.indexOf( galleryID ) !== -1 ) { 4147 return true; 4148 } 4149 4150 galleries.push( galleryID ); 4151 var $triggerGal = connect ? $('.page-wrapper') : $gallery, 4152 $selector = !$triggerGal.hasClass( 'nested-carousel' ) ? ( connect ? $_connected_a : $_a ) : $_nested_a; 4153 var gallery = lightGallery( $triggerGal[0], { 4154 addClass: containerClass, 4155 plugins: lgPlugins, 4156 mode: transition, 4157 selector: $selector, 4158 galleryId: galleryID, 4159 thumbnail: ( typeof tmb == 'undefined' || !tmb ), 4160 iframeWidth: '848px', 4161 iframeMaxWidth: '90%', 4162 iframeMaxHeight: '90%', 4163 exThumbImage: 'data-external-thumb-image', 4164 loadYouTubeThumbnail: false, 4165 autoplayVideoOnSlide: ( $gallery.attr('data-lb-autoplay') === 'yes' || $gallery.closest('[data-lb-autoplay=yes]').length ), 4166 // autoplayFirstVideo: false, 4167 pager: false, 4168 startClass: 'lg-start-opacity', 4169 zoomFromOrigin: zoom, 4170 controls: controls, 4171 download: ( typeof download != 'undefined' && download != '' ), 4172 thumbWidth: 50, 4173 thumbHeight: '50px', 4174 counter: $triggerGal.find($selector).length > 1 ? counter : false, 4175 loadYouTubePoster: false, 4176 enableDrag: $triggerGal.find($selector).length > 1, 4177 mobileSettings: { 4178 showCloseIcon: $('body').hasClass('lightgallery-hide-close') ? false : true, 4179 }, 4180 }); 4181 4182 $('.owl-item.cloned', $gallery).find(nested_a).on('click', function(e){ 4183 e.preventDefault(); 4184 var index = $(this).closest('.owl-item.cloned').attr('data-index'); 4185 gallery.openGallery(index-1); 4186 }); 4187 4188 $gallery.on('uncode-gallery-trigger', function(){ 4189 gallery.openGallery(0); 4190 }); 4191 4192 $triggerGal.on('more-items-loaded', function(e, items) { 4193 clearRequestTimeout(itemsLoadedTimeOut); 4194 itemsLoadedTimeOut = requestTimeout(function(){ 4195 createSelectors(); 4196 captionBuilder($triggerGal); 4197 gallery.refresh(); 4198 }, 100); 4199 }); 4200 4201 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 4202 window.parent.vc.events.once('shortcodeView:beforeUpdate', function(model) { 4203 $el = model.view.$el; 4204 if ( $el.find($triggerGal).length ) { 4205 gallery.destroy(); 4206 } 4207 }); 4208 } 4209 4210 $triggerGal[0].addEventListener('lgBeforeSlide', beforeSlide); 4211 $triggerGal[0].addEventListener('lgBeforeOpen', beforeOpen); 4212 $triggerGal[0].addEventListener('lgAfterOpen', function(){ 4213 $(window).trigger('uncode-custom-cursor'); 4214 }); 4215 4216 }); 4217 4218 if ( typeof $el !== 'undefined' ) { 4219 4220 //album galleries 4221 $('a[data-album]:not([data-lbox-init])').each(function(index, val) { 4222 var album = val, 4223 galleryID = index, 4224 $album = $(album), 4225 params = $album.attr('data-album'), 4226 tmb = $(val).attr('data-notmb'), 4227 social = $(val).attr('data-social'), 4228 deep = $(val).attr('data-deep'), 4229 actual = $(val).attr('data-actual-size'), 4230 download = $(val).attr('data-download'), 4231 controls = $(val).attr('data-arrows') !== 'no', 4232 fullScreen = $(val).attr('data-full'), 4233 counter = $(val).attr('data-counter'), 4234 transition = typeof $(val).attr('data-transition') !== 'undefined' ? $(val).attr('data-transition') : 'lg-slide', 4235 containerClass = $(val).closest('[data-skin="white"]').length ? 'lg-light-skin' : '', 4236 lgPlugins = [lgVideo]; 4237 4238 $(val).attr('data-lbox-init','true'); 4239 4240 containerClass += $(val).attr('data-transparency') === 'opaque' ? ' lg-opaque' : '';
4241 containerClass += controls && $(val).attr('data-arrows-bg') === 'semi-transparent' ? ' lg-semi-transparent-arrows' : ''; 4242 4243 if ( typeof tmb == 'undefined' || !tmb ) { 4244 lgPlugins.push(lgThumbnail); 4245 } 4246 if ( typeof actual != 'undefined' && actual != '' ) { 4247 lgPlugins.push(lgZoom); 4248 } 4249 if ( typeof deep != 'undefined' && deep != '' ) { 4250 lgPlugins.push(lgHash); 4251 } 4252 if ( typeof fullScreen != 'undefined' && fullScreen != '' ) { 4253 lgPlugins.push(lgFullscreen); 4254 } 4255 if ( social ) { 4256 lgPlugins.push(lgShare); 4257 } 4258 4259 var gallery = window.lightGallery(album, { 4260 dynamic: true, 4261 plugins: lgPlugins, 4262 dynamicEl: JSON.parse(params), 4263 galleryId: galleryID, 4264 addClass: containerClass, 4265 mode: transition, 4266 thumbnail: ( typeof tmb == 'undefined' || !tmb ), 4267 iframeWidth: '848px', 4268 iframeMaxWidth: '90%', 4269 iframeMaxHeight: '90%', 4270 loadYouTubeThumbnail: false, 4271 autoplayVideoOnSlide: ( $album.attr('data-lb-autoplay') === 'yes' ), 4272 // autoplayFirstVideo: false, 4273 pager: false, 4274 startClass: 'lg-start-opacity', 4275 zoomFromOrigin: false, 4276 controls: controls, 4277 download: ( typeof download != 'undefined' && download != '' ), 4278 thumbWidth: 50, 4279 thumbHeight: '50px', 4280 loadYouTubePoster: false, 4281 counter: counter, 4282 exThumbImage: 'data-external-thumb-image', 4283 loadYouTubePoster: false, 4284 mobileSettings: { 4285 showCloseIcon: $('body').hasClass('lightgallery-hide-close') ? false : true, 4286 }, 4287 }); 4288 4289 $album.on('click', function(){ 4290 gallery.openGallery(0); 4291 }); 4292 4293 album.addEventListener('lgBeforeSlide', beforeSlide); 4294 album.addEventListener('lgBeforeOpen', beforeOpen); 4295 album.addEventListener('lgAfterOpen', function(){ 4296 $(window).trigger('uncode-custom-cursor'); 4297 }); 4298 4299 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 4300 window.parent.vc.events.once('shortcodeView:beforeUpdate', function(model) { 4301 $el = model.view.$el; 4302 if ( $el.find($album).length ) { 4303 gallery.destroy(); 4304 } 4305 }); 4306 } 4307 4308 }); 4309 4310 //single images 4311 $('.uncode-lbox:not(.lb-disabled):not([data-lbox-init])').each(function(index, val) { 4312 var gallery = lightGallery( $('.page-wrapper')[0], { 4313 selector: '.uncode-lbox:not(.lb-disabled):not([data-lbox-init])', 4314 iframeWidth: '848px', 4315 iframeMaxWidth: '90%', 4316 iframeMaxHeight: '90%', 4317 loadYouTubeThumbnail: false, 4318 // autoplayFirstVideo: false, 4319 startClass: 'lg-start-opacity', 4320 thumbWidth: 50, 4321 thumbHeight: '50px', 4322 download: false, 4323 loadYouTubePoster: false, 4324 counter: false 4325 }); 4326 4327 $('.page-wrapper')[0].addEventListener('lgBeforeSlide', beforeSlide); 4328 $('.page-wrapper')[0].addEventListener('lgBeforeOpen', beforeOpen); 4329 }); 4330 } 4331 4332 var galleryButtons = function(){ 4333 var $buttons = $('.btn-gallery-trigger'); 4334 $buttons.each(function(key, val){ 4335 var $button = $(val), 4336 target = $button.attr('data-target'), 4337 $gallery = $('.un-media-gallery').first(), 4338 $row = $button.closest('.vc_row[data-parent]'); 4339 if ( typeof target !== 'undefined' && target !== '' && $('.un-media-gallery#' + target).length ) { 4340 $gallery = $('.un-media-gallery#' + target); 4341 } else if ( $('.un-media-gallery', $row).length ) { 4342 $gallery = $('.un-media-gallery', $row).first(); 4343 } 4344 4345 $button.on('click', 'a', function(e){ 4346 e.preventDefault(); 4347 $gallery.find('[data-lbox-init]').first().trigger('uncode-gallery-trigger'); 4348 }); 4349 }); 4350 }; 4351 galleryButtons(); 4352}; 4353 4354UNCODE.carousel = function(container) { 4355 var $owlContainers = $('.owl-carousel-container:not(.test-init)', container); 4356 $owlContainers.each(function() { 4357 var $owlContainer = $(this).addClass('test-init'), 4358 $owlWrapper = $owlContainer.closest('.owl-carousel-wrapper'), 4359 $owlSelector = $('> [class*="owl-carousel"]', $owlContainer), 4360 values = {}, 4361 tempTimeStamp, 4362 newWidth = UNCODE.wwidth, 4363 $owlInsideEqual = []; 4364 $owlSelector.each(function() { 4365 var itemID = $(this).attr('id'), 4366 $elSelector = $(('#' + itemID).toString()); 4367 values['id'] = itemID; 4368 values['items'] = 1;
4369 values['columns'] = 3; 4370 values['fade'] = false; 4371 values['nav'] = false; 4372 values['navmobile'] = false; 4373 values['navskin'] = 'light'; 4374 values['navspeed'] = 400; 4375 values['dots'] = false; 4376 values['dotsmobile'] = false; 4377 values['loop'] = false; 4378 values['autoplay'] = false; 4379 values['timeout'] = 3000; 4380 values['autoheight'] = false; 4381 values['stagepadding'] = 0; 4382 values['margin'] = 0; 4383 values['lg'] = 1; 4384 values['md'] = 1; 4385 values['sm'] = 1; 4386 $.each($(this).data(), function(i, v) { 4387 values[i] = v; 4388 }); 4389 4390 if ($(this).closest('.uncode-slider').length) { 4391 values['navskin'] = ''; 4392 values['navmobile'] = false; 4393 //values['dotsmobile'] = true; 4394 } else { 4395 values['navskin'] = ' style-'+values['navskin']+' style-override'; 4396 } 4397 4398 var setIndexActive = function(event, init){ 4399 var init = typeof init === 'undefined' ? false : init, 4400 thiis = $(event.currentTarget); 4401 if (tempTimeStamp != event.timeStamp && ( init || ( !UNCODE.isFullPage || ( UNCODE.isFullPage && thiis.closest('.fp-section').hasClass('uncode-scroll-active') ) ) ) ) { 4402 var scrolltop = $(document).scrollTop(), 4403 size = event.page.size, 4404 i; 4405 var setIndex = requestTimeout(function() { 4406 for ( i = 0; i < size; i++ ) { 4407 var itemCont = event.item.index != null ? (event.item.index + i) : i; 4408 var currentItem = thiis.find("> .owl-stage-outer > .owl-stage > .owl-item")[itemCont]; 4409 if (thiis.closest('.row-slider').length) { 4410 if (currentItem == undefined) { 4411 currentItem = thiis.children()[i]; 4412 } 4413 if ($(currentItem).closest('#page-header').length) { 4414 if ($('.row-container > .row > .row-inner > div > .style-dark', currentItem).closest('.uncode-slider').length) { 4415 UNCODE.switchColorsMenu(scrolltop, 'dark'); 4416 } else if ($('.row-container > .row > .row-inner > div > .style-light', currentItem).closest('.uncode-slider').length) { 4417 UNCODE.switchColorsMenu(scrolltop, 'light'); 4418 } 4419 } 4420 var owlCustomNav = $elSelector.closest('.owl-carousel-wrapper-nav').find('.uncode-owl-nav-out.skin-inherit'); 4421 if (owlCustomNav.length) { 4422 if ($('.row-container > .row > .row-inner > div > .style-dark', currentItem).closest('.uncode-slider').length) { 4423 owlCustomNav.addClass('style-dark').removeClass('style-light'); 4424 } else if ($('.row-container > .row > .row-inner > div > .style-light', currentItem).closest('.uncode-slider').length) { 4425 owlCustomNav.addClass('style-light').removeClass('style-dark'); 4426 } 4427 } 4428 } 4429 var itendIndex = $(currentItem).attr('data-index'); 4430 if ( isNaN(itendIndex) ) { 4431 itendIndex = 1; 4432 } 4433 $elSelector.find('.owl-item:not(.new-indexed)').removeClass('index-active'); 4434 $elSelector.find('.owl-item[data-index="' + itendIndex + '"]').addClass('index-active').addClass('new-indexed'); 4435 if ($.fn.counterUp) { 4436 $elSelector.find('.owl-item[data-index="' + itendIndex + '"] .uncode-counter').each(function(){ 4437 var $counter = $(this); 4438 $counter.addClass('started').counterUp({ 4439 delay: 10, 4440 time: 1500 4441 }); 4442 }); 4443 } 4444 } 4445 $elSelector.find('.owl-item.new-indexed').removeClass('new-indexed'); 4446 }, 200); 4447 } 4448 tempTimeStamp = event.timeStamp; 4449 } 4450 4451 /** Initialize */ 4452 $elSelector.on('initialize.owl.carousel', function(event) { 4453 if (typeof UNCODE.owlNav !== 'undefined') { 4454 UNCODE.owlNav(itemID, event); 4455 } 4456 4457 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 4458 window.parent.vc.events.on('shortcodeView:beforeUpdate shortcodeView:destroy', function(model) { 4459 var shortcode = model.attributes.shortcode, 4460 $el = model.view.$el, 4461 $row_wrap = $el.closest('.row'); 4462 if ( shortcode === 'uncode_carousel_nav' && typeof UNCODE.owlNav !== 'undefined') { 4463 $row_wrap.find('.owl-carousel-wrapper-nav .uncode-owl-nav-out').remove(); 4464 } 4465 }); 4466 window.parent.vc.events.on('shortcodeView:updated', function(model) { 4467 var shortcode = model.attributes.shortcode; 4468 if ( shortcode === 'uncode_carousel_nav' && typeof UNCODE.owlNav !== 'undefined') { 4469 tempTimeStamp = Math.floor(Date.now() / 1000); 4470 } 4471 }); 4472 window.parent.vc.events.on('shortcodeView:updated shortcodeView:ready', function(model) { 4473 var shortcode = model.attributes.shortcode; 4474 if ( shortcode === 'uncode_carousel_nav' && typeof UNCODE.owlNav !== 'undefined') { 4475 UNCODE.owlNav(itemID, event); 4476 $elSelector.trigger('refresh.owl.carousel'); 4477 } 4478 }); 4479 } 4480 // if ( $elSelector.closest('.mega-menu-inner').length ) { 4481 // $elSelector.closest('.mega-menu-inner').css({ 4482 // visibility: 'hidden', 4483 // display: 'block' 4484 // }); 4485 // $elSelector.data('owl.carousel'); 4486 // $elSelector.trigger('refresh.owl.carousel'); 4487 // $elSelector.closest('.mega-menu-inner').css({ 4488 // display: 'none', 4489 // visibility: '', 4490 // }); 4491 // } 4492 // $elSelector.closest('[class*="menu-smart"]').on('show.smapi', function(e, p){
4493 // $elSelector.trigger("to.owl.carousel", 0); 4494 // }); 4495 }); 4496 4497 /** Initialized */ 4498 $elSelector.on('initialized.owl.navigation', function(event) { 4499 $('.owl-dot', event.currentTarget).each(function(key, val){ 4500 $(val).attr('aria-label', SiteParameters.uncode_slide_label + ' ' + (key+1)); 4501 }); 4502 }); 4503 4504 $elSelector.on('initialized.owl.carousel', function(event) { 4505 4506 if ( $('.isotope-container', event.currentTarget).length ) { 4507 window.dispatchEvent(UNCODE.boxEvent); 4508 } 4509 4510 $('.owl-dot.active', $elSelector).on('click', function(){ 4511 return false; 4512 }); 4513 4514 var thiis = $(event.currentTarget), 4515 // get the time from the data method 4516 time = thiis.data("timer-id"), 4517 rowParent = thiis.closest('.row-parent'); 4518 4519 if ( typeof rowParent[0] !== 'undefined' ) { 4520 rowParent[0].dispatchEvent(new CustomEvent('owl-carousel-initialized')); 4521 } 4522 4523 if (time) { 4524 clearRequestTimeout(time); 4525 } 4526 4527 thiis.addClass('showControls'); 4528 var new_time = requestTimeout(function() { 4529 thiis.closest('.owl-carousel-container').removeClass('owl-carousel-loading'); 4530 if (thiis.hasClass('owl-height-viewport')) 4531 setItemsRelHeight(thiis); 4532 if (thiis.hasClass('owl-height-equal')) 4533 setItemsHeight(thiis); 4534 if (!UNCODE.isMobile && !$elSelector.closest('.header-wrapper').length) navHover($elSelector.parent()); 4535 if (thiis.closest('.unequal, .unexpand').length) { 4536 UNCODE.setRowHeight(rowParent[0], true); 4537 } 4538 if (SiteParameters.dynamic_srcset_active === '1') { 4539 UNCODE.refresh_dynamic_srcset_size(thiis); 4540 } 4541 }, 350); 4542 // save the new time 4543 thiis.data("timer-id", new_time); 4544 4545 var scrolltop = $(document).scrollTop(); 4546 thiis.closest('.uncode-slider').find('video').removeAttr('poster'); 4547 4548 //if (!UNCODE.isMobile) { 4549 /** fix autoplay when visible **/ 4550 $(window).on('load', function(){ 4551 if (thiis.data('autoplay')) { 4552 if ( !thiis.closest('.sticky-element').length || thiis.closest('.un-submenu').length || thiis.closest('.overlay').length ) { 4553 thiis.trigger('stop.owl.autoplay'); 4554 } else { 4555 thiis.trigger('play.owl.autoplay'); 4556 } 4557 } 4558 if (UNCODE.isUnmodalOpen && !thiis.closest('#unmodal-content')) { 4559 return; 4560 } 4561 if ( ! thiis.closest('.sticky-element').length && ! thiis.closest('.un-submenu').length && ! thiis.closest('.overlay').length ) { 4562 var carouselInView = new Waypoint.Inview({ 4563 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 4564 element: thiis[0], 4565 exited: function() { 4566 var el = $(this.element); 4567 if (el.data('autoplay') ) { 4568 el.trigger('stop.owl.autoplay'); 4569 el.data('stopped','true'); 4570 } 4571 }, 4572 enter: function(direction) { 4573 var el = $(this.element); 4574 requestTimeout(function() { 4575 if (el.data('autoplay')) { 4576 el.trigger('play.owl.autoplay'); 4577 el.data('stopped','false'); 4578 } 4579 }, 100); 4580 } 4581 }); 4582 } 4583 if ( typeof window.lenis !== 'undefined' && window.lenis !== null ) { 4584 setTimeout(function(){ 4585 window.lenis.resize(); 4586 }, 1000); 4587 } 4588 4589 }); 4590 //} 4591 4592 // $(window).on('frontend:carousel_updated', function(){ 4593 // Waypoint.refreshAll(); 4594 // }); 4595 4596 if (!thiis.closest('.isotope-system').length && !thiis.closest('.megamenu-block-wrapper').length && !thiis.closest('.overlay').length) { 4597 requestTimeout(function() { 4598 animate_thumb($('.t-inside', el), event); 4599 }, 400); 4600 } 4601 if (thiis.closest('.isotope-system').length ) { 4602 requestTimeout(function() { 4603 thiis.closest('.isotope-container').isotope('layout'); 4604 }, 400); 4605 } 4606 if (thiis.closest('.megamenu-block-wrapper').length ) { 4607 $(document).on('un-menu-show', function(e, $ul){ 4608 if ( thiis.closest($ul).length ) { 4609 animate_thumb($('.t-inside', el), event); 4610 } 4611 }); 4612 } 4613 if (thiis.closest('.overlay').length ) { 4614 $(window).on('menuOpen', function(e, $ul){ 4615 animate_thumb($('.t-inside', el), event); 4616 }); 4617 } 4618 4619 var currentItem = thiis.find("> .owl-stage-outer > .owl-stage > .owl-item")[event.item.index], 4620 currentIndex = $(currentItem).attr('data-index'); 4621 4622 $.each($('.owl-item:not(.active) .start_animation', $(event.target)), function(index, val) { 4623 if ($(val).closest('.uncode-slider').length) { 4624 $(val).removeClass('start_animation'); 4625 } 4626 }); 4627 $.each($('.owl-item:not(.active) .already-animated', $(event.target)), function(index, val) { 4628 if ($(val).closest('.uncode-slider').length) { 4629 $(val).removeClass('already-animated'); 4630 } 4631 }); 4632 4633 $.each($('.owl-item:not(.active) [data-animated="yes"]', $(event.target)), function(index, val) { 4634 if ($(val).closest('.uncode-slider').length) { 4635 $(val).removeAttr('data-animated'); 4636 } 4637 }); 4638 4639 $.each($('.owl-item.cloned', thiis), function(index, val) {
4640 $('.t-entry-visual-cont > a', $(val)).attr('data-lbox-clone', true); 4641 }); 4642 4643 $.each($('.owl-item:not(.active)', thiis), function(index, val) { 4644 if ($(val).attr('data-index') != currentIndex) { 4645 $('.start_animation:not(.t-inside)', val).removeClass('start_animation'); 4646 $('.already-animated:not(.t-inside)', val).removeClass('already-animated'); 4647 } 4648 if ($(val).attr('data-index') != currentIndex) { 4649 $('[data-animated="yes"]:not(.t-inside)', val).removeAttr('data-animated'); 4650 } 4651 if ($(val).attr('data-index') == currentIndex) { 4652 $('.animate_when_almost_visible:not(.t-inside), .animate_inner_when_almost_visible:not(.t-inside)', val).addClass('start_animation'); 4653 } 4654 }); 4655 4656 if (thiis.closest('.uncode-slider').length) { 4657 var el = thiis.closest('.row-parent')[0], 4658 section = thiis.closest('.vc_section'); 4659 if ( section.length ) { 4660 el = $('> .row-parent', section)[0]; 4661 } 4662 if ($(el).data('imgready')) { 4663 firstLoaded(el, event); 4664 } else { 4665 el.addEventListener("imgLoaded", function(el) { 4666 firstLoaded(el.target, event); 4667 }, false); 4668 } 4669 var transHeight = $('.hmenu .menu-transparent.menu-primary .menu-container').height() - UNCODE.bodyBorder; 4670 if (transHeight != null) { 4671 requestTimeout(function() { 4672 thiis.closest('.uncode-slider').find('.owl-prev, .owl-next').css('paddingTop', transHeight / 2 + 'px'); 4673 }, 100); 4674 } 4675 } else { 4676 var el = thiis; 4677 el.closest('.uncode-slider').addClass('slider-loaded'); 4678 } 4679 4680 requestTimeout(function() { 4681 if (typeof UNCODE.bigText !== 'undefined') { 4682 UNCODE.bigText(thiis); 4683 } 4684 if (thiis.closest('.uncode-slider').length || thiis.closest('.row').find('.uncode-owl-nav-in').length) { 4685 if (thiis.data('autoplay')) pauseOnHover(thiis); 4686 } 4687 }, 500); 4688 4689 if (thiis.closest('.unequal').length) { 4690 $owlInsideEqual.push(thiis.closest('.row-parent')); 4691 } 4692 4693 var containerClasses = '', 4694 containerStyle = ''; 4695 if ( $('.owl-dots-classes', $owlContainer).length ) { 4696 containerClasses = $('.owl-dots-classes', $owlContainer).attr('class'); 4697 containerStyle = $('.owl-dots-classes', $owlContainer).attr('style'); 4698 $('.owl-dots-classes', $owlContainer).remove(); 4699 } 4700 4701 if ( containerClasses !== '' ) { 4702 requestTimeout(function() { 4703 if ( containerClasses !== '' ) 4704 $('.owl-dots', $owlContainer).attr('style', containerStyle); 4705 if ( containerStyle !== '' ) 4706 $('.owl-dots', $owlContainer).addClass(containerClasses); 4707 }, 100); 4708 } 4709 4710 $.each($('.column_child.pos-bottom', thiis), function(index, val) { 4711 $(val).closest('.row-inner').css({ 4712 'margin-top': '-1px' 4713 }); 4714 }); 4715 4716 if ($.fn.isotope) { 4717 if ( thiis.closest('.isotope-container').length ) { 4718 if (thiis.closest('.isotope-container').data('isotope')) { 4719 requestTimeout(function(){ 4720 thiis.closest('.isotope-container').isotope('layout'); 4721 }, 300); 4722 } 4723 $(window).on('load', function(){ 4724 if (thiis.closest('.isotope-container').data('isotope')) { 4725 thiis.closest('.isotope-container').isotope('layout'); 4726 } 4727 }); 4728 } 4729 } 4730 4731 if (thiis.data('autoplay')) { 4732 $(window).on('menuOpen', function(){ 4733 if ( thiis.closest('.overlay').length ) { 4734 thiis.trigger('play.owl.autoplay'); 4735 thiis.data('stopped','false'); 4736 } else { 4737 thiis.trigger('stop.owl.autoplay'); 4738 thiis.data('stopped','true'); 4739 } 4740 }); 4741 $(window).on('menuClose', function(){ 4742 if ( thiis.closest('.overlay').length ) { 4743 thiis.trigger('stop.owl.autoplay'); 4744 thiis.data('stopped','true'); 4745 } else { 4746 thiis.trigger('play.owl.autoplay'); 4747 thiis.data('stopped','false'); 4748 } 4749 }); 4750 } 4751 4752 setIndexActive(event, true); 4753 4754 var nested_a = $('a[data-lbox]:not(.lb-disabled):not([data-lbox-init]):not([data-album])').filter(function( index ) { 4755 return !$(this).closest('.nested-carousel').length; 4756 }), 4757 $_galleries = $('.isotope-container:not([data-lbox-init]), .owl-carousel:not([data-lbox-init]), .custom-grid-container:not([data-lbox-init]), .index-scroll-wrapper:not([data-lbox-init]), .justified-gallery:not([data-lbox-init]), .uncode-single-media-wrapper:not([data-lbox-init]), .woocommerce-product-gallery:not([data-lbox-init]), .icon-box:not([data-lbox-init]), .grid-container:not([data-lbox-init])', thiis).has(nested_a), 4758 $galleries = $_galleries.filter(function( index ) { 4759 return !$(this).closest('.owl-carousel').length || $(this).is('.owl-carousel'); 4760 }); 4761 4762 if (typeof UNCODE.lightgallery !== 'undefined' && SiteParameters.lbox_enhanced) { 4763 UNCODE.lightgallery( $galleries ); 4764 } 4765 4766 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 4767 $(document).trigger('uncode-scrolltrigger-refresh'); 4768 } 4769 4770 if (thiis.closest('.overlay').length && thiis.data('autoplay')) { 4771 thiis.trigger('stop.owl.autoplay'); 4772 thiis.data('stopped','true'); 4773 } 4774 4775 if (thiis.closest('.un-submenu').length && thiis.data('autoplay')) { 4776 thiis.trigger('stop.owl.autoplay'); 4777 thiis.data('stopped','false'); 4778 $(document).on('un-menu-show', function(){ 4779 thiis.trigger('play.owl.autoplay'); 4780 thiis.data('stopped','false'); 4781 }).on('un-menu-hide', function(){ 4782 thiis.trigger('stop.owl.autoplay'); 4783 thiis.data('stopped','true'); 4784 }); 4785 } 4786 }); 4787 4788 $elSelector.on('resized.owl.carousel', function(event) { 4789 $('.owl-dot', event.currentTarget).each(function(key, val){ 4790 $(val).attr('aria-label', SiteParameters.uncode_slide_label + ' ' + (key+1)); 4791 }); 4792 }); 4793 4794 $elSelector.on('resized.owl.carousel', function(event) { 4795 var thiis = $(event.currentTarget); 4796 // if ($(this).closest('.nested-carousel').length) { 4797 // requestTimeout(function() { 4798 // window.dispatchEvent(UNCODE.boxEvent); 4799 // }, 200); 4800 // } 4801 if ( thiis.hasClass('owl-height-equal') ) 4802 setItemsHeight(thiis); 4803 4804 if ( UNCODE.wwidth > UNCODE.mediaQuery || ( UNCODE.wwidth <= UNCODE.mediaQuery && newWidth !== UNCODE.wwidth ) ) { 4805 newWidth = UNCODE.wwidth; 4806 setItemsRelHeight($elSelector); 4807 } 4808 4809 setIndexActive(event); 4810
4811 if (SiteParameters.dynamic_srcset_active === '1') { 4812 UNCODE.refresh_dynamic_srcset_size(thiis); 4813 } 4814 4815 if ($.fn.isotope) { 4816 $(window).on('load', function(){ 4817 if ($(event.currentTarget).closest('.isotope-container').data('isotope')) { 4818 $(event.currentTarget).closest('.isotope-container').isotope('layout'); 4819 } 4820 }); 4821 } 4822 4823 if ( typeof window.lenis !== 'undefined' && window.lenis !== null ) { 4824 setTimeout(function(){ 4825 window.lenis.resize(); 4826 }, 1000); 4827 } 4828 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 4829 $(document).trigger('uncode-scrolltrigger-refresh'); 4830 } 4831 }); 4832 4833 $elSelector.on('refreshed.owl.carousel', function(event) { 4834 setIndexActive(event); 4835 }); 4836 4837 /** detect resize window for fluid height layout */ 4838 var setFluidResize; 4839 function manageFluidCarouseHeight() { 4840 clearRequestTimeout(setFluidResize); 4841 setFluidResize = requestTimeout(function(){ 4842 if ( UNCODE.wwidth > UNCODE.mediaQuery || ( UNCODE.wwidth <= UNCODE.mediaQuery && newWidth !== UNCODE.wwidth ) ) { 4843 newWidth = UNCODE.wwidth; 4844 setItemsRelHeight($elSelector); 4845 } 4846 }, 100); 4847 } 4848 window.addEventListener('resize', manageFluidCarouseHeight); 4849 4850 /** Change */ 4851 $elSelector.on('change.owl.carousel', function(event) { 4852 if (!UNCODE.isMobile) UNCODE.owlStopVideo(event.currentTarget); 4853 }); 4854 4855 /** Changed */ 4856 $elSelector.on('changed.owl.carousel', function(event) { 4857 var $row = $elSelector.parents('.row')[0]; 4858 if ( typeof $row !== 'undefined' ) { 4859 $row.dispatchEvent(new CustomEvent('owl-carousel-changed')); 4860 } 4861 setIndexActive(event); 4862 }); 4863 4864 var checkDrag = function(e) { 4865 $elSelector.addClass('owl-dragging'); 4866 }; 4867 $elSelector.on('drag.owl.carousel', function(event) { 4868 document.addEventListener("mousemove", checkDrag); 4869 }); 4870 4871 $elSelector.on('dragged.owl.carousel', function(event) { 4872 $elSelector.removeClass('owl-dragging'); 4873 document.removeEventListener("mousemove", checkDrag); 4874 }); 4875 4876 $elSelector.on('translate.owl.carousel', function(event) { 4877 if (UNCODE.isMobile) { 4878 $(event.currentTarget).addClass('owl-translating'); 4879 } 4880 }); 4881 4882 /** Translated */ 4883 $elSelector.on('translated.owl.carousel', function(event) { 4884 4885 var thiis = $(event.currentTarget), 4886 currentItem = thiis.find("> .owl-stage-outer > .owl-stage > .owl-item")[event.item.index], 4887 currentIndex = $(currentItem).attr('data-index'), 4888 stagePadding = thiis.data('stagepadding'); 4889 4890 stagePadding = (stagePadding == undefined || stagePadding == 0) ? false : true; 4891 4892 if (!UNCODE.isMobile) { 4893 UNCODE.owlPlayVideo(thiis); 4894 } 4895 4896 requestTimeout(function(){ 4897 var lastDelayElems = animate_elems($('.owl-item.index-active', thiis)); 4898 var lastDelayThumb = animate_thumb($('.owl-item' + (stagePadding ? '' : '.active') + ' .t-inside', thiis), event); 4899 if (thiis.closest('.uncode-slider').length && thiis.data('autoplay')) { 4900 if (lastDelayElems == undefined) lastDelayElems = 0; 4901 if (lastDelayThumb == undefined) lastDelayThumb = 0; 4902 var maxDelay = Math.max(lastDelayElems, lastDelayThumb); 4903 thiis.trigger('stop.owl.autoplay'); 4904 requestTimeout(function() { 4905 if (!thiis.hasClass('owl-mouseenter') && thiis.data('stopped') != 'true') thiis.trigger('play.owl.autoplay'); 4906 }, maxDelay); 4907 } 4908 }, 200); 4909 4910 $.each($('.owl-item:not(.active) .start_animation', $(event.target)), function(index, val) { 4911 if ($(val).closest('.uncode-slider').length) { 4912 $(val).removeClass('start_animation'); 4913 } 4914 }); 4915 4916 $.each($('.owl-item:not(.active) .already-animated', $(event.target)), function(index, val) { 4917 if ($(val).closest('.uncode-slider').length) { 4918 $(val).removeClass('already-animated'); 4919 } 4920 }); 4921 4922 $.each($('.owl-item:not(.active) [data-animated="yes"]', $(event.target)), function(index, val) { 4923 if ($(val).closest('.uncode-slider').length) { 4924 $(val).removeAttr('data-animated'); 4925 } 4926 }); 4927 4928 $.each($('.owl-item:not(.active)', thiis), function(index, val) { 4929 if ($(val).attr('data-index') != currentIndex) { 4930 $('.start_animation:not(.t-inside)', val).removeClass('start_animation'); 4931 $('.already-animated:not(.t-inside)', val).removeClass('already-animated'); 4932 } 4933 if ($(val).attr('data-index') != currentIndex) { 4934 $('[data-animated="yes"]:not(.t-inside)', val).removeClass('start_animation'); 4935 } 4936 if ($(val).attr('data-index') == currentIndex) { 4937 $('.animate_when_almost_visible:not(.t-inside), .animate_inner_when_almost_visible:not(.t-inside)', val).addClass('start_animation'); 4938 } 4939 }); 4940 4941 if (UNCODE.isMobile) { 4942 thiis.removeClass('owl-translating'); 4943 } 4944 4945 setIndexActive(event); 4946 }); 4947 4948 if (UNCODE.wwidth < UNCODE.mediaQuery && $(this).data('stagepadding') > 25) values['stagepadding'] = 25; 4949 4950 /** Init carousel */ 4951 $elSelector.not('.showControls').owlCarousel({ 4952 items: values['items'], 4953 animateIn: (values['fade'] == true) ? 'fadeIn' : null, 4954 animateOut: (values['fade'] == true) ? 'fadeOut' : null, 4955 nav: values['nav'], 4956 dots: values['dots'], 4957 loop: values['loop'], 4958 stagePadding: values['stagepadding'], 4959 margin: 0, 4960 video: true, 4961 autoWidth: false, 4962 autoplay: false, 4963 autoplayTimeout: values['timeout'], 4964 autoplaySpeed: values['navspeed'], 4965 autoplayHoverPause: $(this).closest('.uncode-slider').length || $(this).closest('.carousel-no-hover').length ? false : true, 4966 autoHeight: ( $(this).hasClass('owl-height-equal') ? false : values['autoheight'] ), 4967 itemSelector: SiteParameters.uncode_carousel_itemSelector, 4968 rtl: $('body').hasClass('rtl') ? true : false, 4969 fluidSpeed: true, 4970 navSpeed: values['navspeed'], 4971 dotsSpeed: values['navspeed'] / values['items'], 4972 navElement: ['button type="button" aria-label="' + SiteParameters.uncode_prev_label + '"', 'button type="button" aria-label="' + SiteParameters.uncode_next_label + '"'], 4973 navClass: [ 'owl-prev'+values['navskin'], 'owl-next'+values['navskin'] ], 4974 navText: ['<div class="owl-nav-container btn-default btn-hover-nobg" tabindex="0"><i class="fa fa-fw fa-angle-left"></i></div>', '<div class="owl-nav-container btn-default btn-hover-nobg" aria-label="' + SiteParameters.uncode_next_label + '" tabindex="0"><i class="fa fa-fw fa-angle-right"></i></div>'], 4975 navContainer: values['nav'] && ! SiteParameters.is_frontend_editor ? $elSelector : false, 4976 responsiveClass: true, 4977 responsiveBaseElement: '.box-container', 4978 responsive: { 4979 0: { 4980 items: values['sm'], 4981 nav: values['navmobile'], 4982 dots: values['dotsmobile'], 4983 dotsSpeed: values['navspeed'] / values['sm'], 4984 }, 4985 480: { 4986 items: values['sm'], 4987 nav: values['navmobile'], 4988 dots: values['dotsmobile'], 4989 dotsSpeed: values['navspeed'] / values['sm'], 4990 }, 4991 570: { 4992 items: values['md'], 4993 nav: values['navmobile'], 4994 dots: values['dotsmobile'], 4995 dotsSpeed: values['navspeed'] / values['md'], 4996 }, 4997 960: { 4998 items: values['lg'], 4999 dotsSpeed: values['navspeed'] / values['lg'], 5000 } 5001 } 5002 }); 5003 5004 var transDuration = parseFloat(values['navspeed']) * 0.3; 5005 var transDuration2 = parseFloat(values['navspeed']) * 0.8; 5006 5007 $('.owl-item .tmb', $elSelector).css({ 5008 '-webkit-transition-delay': transDuration + 'ms', 5009 '-moz-transition-delay': transDuration + 'ms', 5010 '-o-transition-delay': transDuration + 'ms', 5011 'transition-delay': transDuration + 'ms', 5012 '-webkit-transition-duration': transDuration2 + 'ms', 5013 '-moz-transition-duration': transDuration2 + 'ms', 5014 '-o-transition-duration': transDuration2 + 'ms', 5015 'transition-duration': transDuration2 + 'ms', 5016 }); 5017 5018 requestTimeout(function() { 5019 for (var i = $owlInsideEqual.length - 1; i >= 0; i--) { 5020 UNCODE.setRowHeight($owlInsideEqual[i]); 5021 }; 5022 }, 300); 5023 5024 $(window).on('load', function(){ 5025 var $elCarousel = $elSelector.data('owl.carousel'); 5026 if ( typeof $elCarousel !== 'undefined' ) { 5027 $elCarousel.trigger('refreshed'); 5028 for (var i = $owlInsideEqual.length - 1; i >= 0; i--) { 5029 UNCODE.setRowHeight($owlInsideEqual[i]); 5030 }; 5031 } 5032 }); 5033 5034 $( document.body ).on( 'added-owl-item', function( e, carousel_id, $new_slide, randId ) { 5035 if ( $('#' + carousel_id).data( 'added-id' ) != randId ) { 5036 $('#' + carousel_id).data( 'added-id', randId ).trigger( 'add.owl.carousel', $new_slide ).trigger('refresh.owl.carousel'); 5037 $('#' + carousel_id).find('.owl-item').each( function() { 5038 var $item = $(this), 5039 index = ( $item.index() + 1 ); 5040 $item.attr('data-index', index); 5041 }); 5042 } 5043 }); 5044 5045 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 5046 window.parent.vc.events.on( 'removed-owl-item', function( carousel_id, item_index, randId ) { 5047 if ( $('#' + carousel_id).data( 'added-id' ) != randId ) { 5048 $('#' + carousel_id).data( 'added-id', randId ).trigger('remove.owl.carousel', [ (item_index-1) ]).trigger('refresh.owl.carousel'); 5049 $('#' + carousel_id).find('.owl-item').each( function() { 5050 var $item = $(this), 5051 index = ( $item.index() + 1 ); 5052 $item.attr('data-index', index); 5053 }); 5054 } 5055 }); 5056 } 5057 5058 }); 5059 5060 function firstLoaded(el, event) { 5061 var el = $(el), 5062 uncode_slider = el.find('.uncode-slider'); 5063 el.find('.owl-carousel').css('opacity', 1); 5064 uncode_slider.addClass('slider-loaded'); 5065 if (typeof UNCODE.bigText !== 'undefined') { 5066 UNCODE.bigText(el.find('.owl-item.active')); 5067 } 5068 //if (!UNCODE.isMobile) { 5069 requestTimeout(function() { 5070 var lastDelayElems = animate_elems(el.find('.owl-item.index-active')); 5071 var lastDelayThumb = animate_thumb(el.find('.owl-item.active .t-inside'), event); 5072 if (uncode_slider.length && el.find('.owl-carousel').data('autoplay')) { 5073 if (lastDelayElems == undefined) lastDelayElems = 0; 5074 if (lastDelayThumb == undefined) lastDelayThumb = 0; 5075 var maxDelay = Math.max(lastDelayElems, lastDelayThumb); 5076 $('> .owl-carousel', uncode_slider).trigger('stop.owl.autoplay'); 5077 requestTimeout(function() { 5078 $('> .owl-carousel', uncode_slider).trigger('play.owl.autoplay'); 5079 }, maxDelay); 5080 } 5081 }, 500); 5082 5083 //} 5084 } 5085 5086 function navHover(el) { 5087 var $owlCont = el, 5088 $owlPrev = $owlCont.find('.owl-prev'), 5089 $owlNext = $owlCont.find('.owl-next'), 5090 $owlDots = $owlCont.find('.owl-dots-inside .owl-dots'), 5091 $owlPagination = $owlCont.next(), 5092 owlPrevW = $owlPrev.outerWidth(), 5093 owlNextW = $owlNext.outerWidth(), 5094 owlDotsH = $owlDots.innerHeight(), 5095 owlTime = 400, 5096 owlNested = $owlCont.parent().parent().hasClass('nested-carousel'); 5097 if ( $('body').hasClass('rtl') ) { 5098 $owlPrev.css("margin-right", -owlPrevW); 5099 $owlNext.css("margin-left", -owlNextW); 5100 } else { 5101 $owlPrev.css("margin-left", -owlPrevW); 5102 $owlNext.css("margin-right", -owlNextW); 5103 } 5104 if (!owlNested) $owlDots.css("bottom", -owlDotsH); 5105 $owlCont.mouseenter(function() { 5106 owlNested = $owlCont.parent().parent().hasClass('nested-carousel'); 5107 $owlPrev.add($owlNext).css({ 5108 marginLeft: 0, 5109 marginRight: 0 5110 }); 5111 if (!owlNested) { 5112 $owlDots.css({ 5113 opacity: 1, 5114 bottom: 0 5115 }); 5116 } 5117 }).mouseleave(function() { 5118 owlNested = $owlCont.parent().parent().hasClass('nested-carousel'); 5119 if ( $('body').hasClass('rtl') ) { 5120 $owlPrev.css("margin-right", -owlPrevW); 5121 $owlNext.css("margin-left", -owlNextW); 5122 } else { 5123 $owlPrev.css("margin-left", -owlPrevW); 5124 $owlNext.css("margin-right", -owlNextW); 5125 } 5126 if (!owlNested) { 5127 $owlDots.css({ 5128 opacity: 1, 5129 bottom: -owlDotsH 5130 }); 5131 } 5132 }); 5133 }; 5134 5135 function animate_elems($this) { 5136 var lastDelay; 5137 $.each($('.animate_when_almost_visible:not(.t-inside), .animate_inner_when_almost_visible:not(.t-inside), .animate_when_parent_almost_visible:not(.t-inside)', $this), function(index, val) { 5138 var element = $(val), 5139 delayAttr = element.attr('data-delay'), 5140 $first_item = element.closest('.owl-item[data-index="1"]'); 5141 5142 if ( $first_item.length && $first_item.attr('data-already-reached') !== 'true' && !$first_item.closest('#page-header').length ) { 5143 return false;
5144 } 5145 5146 if (delayAttr == undefined) delayAttr = 0; 5147 requestTimeout(function() { 5148 element.addClass('start_animation'); 5149 }, delayAttr); 5150 lastDelay = delayAttr; 5151 }); 5152 return lastDelay; 5153 } 5154 5155 function animate_thumb(items, event) { 5156 var lastDelay, 5157 itemIndex, 5158 thiis = $(event.currentTarget), 5159 tempIndex = (thiis.data('tempIndex') == undefined) ? $('.owl-item.active', thiis).first().index() : thiis.data('tempIndex'), 5160 numActives = $('.owl-item.active', thiis).length, 5161 stagePadding = thiis.data('stagepadding'); 5162 5163 stagePadding = (stagePadding == undefined || stagePadding == 0) ? false : true; 5164 5165 thiis.data('tempIndex', event.item.index); 5166 $.each(items, function(index, val) { 5167 var parent = $(val).closest('.owl-item'); 5168 if (UNCODE.isUnmodalOpen && !val.closest('#unmodal-content')) { 5169 return; 5170 } 5171 if (!$(val).hasClass('start_animation')) { 5172 if (parent.hasClass('active') || stagePadding || $owlWrapper.hasClass('carousel-animation-first')) { 5173 var thumbInView = new Waypoint.Inview({ 5174 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 5175 element: val, 5176 enter: function(direction) { 5177 var element = $(this.element), 5178 delayAttr = parseInt(element.attr('data-delay')), 5179 itemIndex = element.closest('.owl-item').index() + 1, 5180 menuIndex = parseFloat(element.closest('.owl-item').attr('data-index')), 5181 diffItem = Math.abs(itemIndex - tempIndex) - 1; 5182 if ( thiis.closest('.megamenu-block-wrapper').length ) { 5183 diffItem = menuIndex; 5184 } else { 5185 if (itemIndex > tempIndex) { 5186 thiis.data('tempIndex', itemIndex); 5187 } 5188 } 5189 if (isNaN(delayAttr)) delayAttr = 100; 5190 if (stagePadding) { 5191 var objTimeout = requestTimeout(function() { 5192 if ( !element.closest('.overlay:not(.open)').length ) { 5193 element.addClass('start_animation'); 5194 } 5195 }, index * delayAttr); 5196 lastDelay = index * delayAttr; 5197 } else { 5198 $('.owl-item.cloned[data-index="'+(element.closest('.owl-item').data('index'))+'"] .t-inside', thiis).addClass('start_animation'); 5199 var objTimeout = requestTimeout(function() { 5200 element.attr('data-test', diffItem + ' ' + delayAttr).addClass('start_animation'); 5201 }, diffItem * delayAttr); 5202 lastDelay = diffItem * delayAttr; 5203 } 5204 parent.data('objTimeout', objTimeout); 5205 if (!UNCODE.isUnmodalOpen) { 5206 this.destroy(); 5207 } 5208 } 5209 }); 5210 } 5211 } 5212 }); 5213 return lastDelay; 5214 } 5215 5216 function setItemsHeight(item) { 5217 $.each($('.owl-item', item), function(index, val) { 5218 var availableThumbHeight = $('.t-inside', $(val)).height(), 5219 innerThumbHeight = $('.t-entry-text-tc', $(val)).outerHeight(), 5220 difference = availableThumbHeight - innerThumbHeight; 5221 if ($('.tmb-content-under', val).length) { 5222 var visualPart = $('.t-entry-visual', val); 5223 if (visualPart.length) { 5224 difference -= $('.t-entry-visual', val).height(); 5225 } 5226 } 5227 if (! $('.tmb-content-lateral', val).length) 5228 $('.t-entry > *:last-child', val).css( 'transform', 'translateY('+difference+'px)' ); 5229 }); 5230 } 5231 5232 function setItemsRelHeight(item) { 5233 $.each($('.owl-item', item), function(index, val) { 5234 var $rowContainer = $(item).parents('.row-parent').eq(0), 5235 paddingRow = parseInt($rowContainer.css('padding-top')) + parseInt($rowContainer.css('padding-bottom')), 5236 $colContainer = $(item).parents('.uncell').eq(0), 5237 paddingCol = parseInt($colContainer.css('padding-top')) + parseInt($colContainer.css('padding-bottom')), 5238 winHeight = UNCODE.wheight, 5239 multiplier_h = parseInt($(item).attr('data-vp-height')), 5240 data_viewport_h, 5241 consider_menu = $(item).data('vp-menu'); 5242 5243 if ( consider_menu ) { 5244 winHeight = winHeight - UNCODE.menuHeight; 5245 } 5246 5247 data_viewport_h = Math.ceil(winHeight / (100 / multiplier_h) ) - ( paddingRow + paddingCol ); 5248 $('.t-inside', val).css( 'height', data_viewport_h ); 5249 }); 5250 } 5251 5252 function pauseOnHover(slider) { 5253 var $owlCustomNavSels = slider.closest('.row').find('.uncode-nav-dots, .uncode-nav-prev, .uncode-nav-next'); 5254 $('.owl-dots, .owl-prev, .owl-next', slider).add($owlCustomNavSels).on({ 5255 mouseenter: function () { 5256 $(slider).addClass('owl-mouseenter'); 5257 $(slider).trigger('stop.owl.autoplay'); 5258 }, 5259 mouseleave: function () { 5260 $(slider).removeClass('owl-mouseenter'); 5261 $(slider).trigger('play.owl.autoplay'); 5262 } 5263 }); 5264 } 5265 }); 5266}; 5267 5268UNCODE.owlPlayVideo = function(carousel) { 5269 var player, iframe; 5270 $('.owl-item.active .uncode-video-container', carousel).each(function(index, val) { 5271 var content = $(val).html(); 5272 if (content == '') { 5273 var getCloned = $('.owl-item:not(.active) .uncode-video-container[data-id="'+$(this).attr('data-id')+'"]').children().first().clone(); 5274 $(val).append(getCloned); 5275 } 5276 if ($(this).attr('data-provider') == 'vimeo') { 5277 iframe = $(this).find('iframe'); 5278 player = new Vimeo.Player(iframe[0]); 5279 player.play(); 5280 } else if ($(this).attr('data-provider') == 'youtube') { 5281 if (youtubePlayers[$(this).attr('data-id')] != undefined) youtubePlayers[$(this).attr('data-id')].playVideo(); 5282 } else { 5283 var player = $(this).find('video'); 5284 if (player.length) { 5285 $(this).find('video')[0].volume = 0; 5286 $(this).find('video')[0].play(); 5287 $(val).css('opacity', 1); 5288 } 5289 } 5290 }); 5291}; 5292 5293UNCODE.owlStopVideo = function(carousel) { 5294 $('.owl-item .uncode-video-container', carousel).each(function(index, val) { 5295 var player, iframe; 5296 if ($(this).attr('data-provider') == 'vimeo') { 5297 iframe = $(this).find('iframe'); 5298 player = new Vimeo.Player(iframe[0]); 5299 player.pause(); 5300 } else if ($(this).attr('data-provider') == 'youtube') { 5301 if (youtubePlayers[$(this).attr('data-id')] != undefined) youtubePlayers[$(this).attr('data-id')].pauseVideo(); 5302 } else { 5303 var player = $(this).find('video'); 5304 if (player.length) { 5305 $(this).find('video')[0].volume = 0; 5306 $(this).find('video')[0].play(); 5307 } 5308 } 5309 }); 5310}; 5311 5312UNCODE.animations = function() { 5313 5314 var runWaypoints_TO, 5315 runWaypoints_carousel_TO, 5316 runWaypoints_delay = 0, 5317 highlightComplexFunc = function($wrap, ev){ 5318 5319 var $lines = $('.heading-line-wrap', $wrap), 5320 not_animate = false;
5321 5322 if ( $wrap.data('animate') === true ) { 5323 not_animate = true; 5324 } 5325 5326 var $rotatingTxt = $('.uncode-rotating-text-start', $wrap); 5327 if ( $rotatingTxt.length && $rotatingTxt.attr('data-animated') !== 'true' ) { 5328 return; 5329 } 5330 5331 $lines.each(function(_key, _value){ 5332 var $line = $(_value), 5333 $inners = $('.split-word-inner', $line), 5334 $highlights = $('.heading-text-highlight-inner', $line); 5335 5336 var highlitInnerFunc = function(ev){ 5337 var delay = 0; 5338 $highlights.each(function(h_key, high){ 5339 var $highlight = $(high), 5340 $split = $highlight.closest('.split-word:not(.uncode-rotating-span)'), 5341 $nextSplit = $split.nextUntil(), 5342 $next = $('.heading-text-highlight-inner', $nextSplit), 5343 countCh = $split.text().length; 5344 5345 $highlight.css({ 5346 '-webkit-transition-duration': (30 * countCh) + 'ms', 5347 '-moz-transition-duration': (30 * countCh) + 'ms', 5348 '-o-transition-duration': (30 * countCh) + 'ms', 5349 'transition-duration': (30 * countCh) + 'ms', 5350 }); 5351 5352 delay += (30 * countCh); 5353 5354 $next.css({ 5355 '-webkit-transition-delay': delay + 'ms', 5356 '-moz-transition-delay': delay + 'ms', 5357 '-o-transition-delay': delay + 'ms', 5358 'transition-delay': delay + 'ms', 5359 }); 5360 }); 5361 $highlights.removeAttr('data-animated'); 5362 if ( _key+1 === $lines.length ) { 5363 $wrap.data('animate', true); 5364 } 5365 }; 5366 5367 if ( $('.heading-text-highlight-inner[data-animated="yes"]', $line).length ) { 5368 if ( not_animate ) { 5369 $highlights.each(function(h_key, high){ 5370 var $highlight = $(high); 5371 $highlight.css({ 5372 '-webkit-transition-duration': '0ms', 5373 '-moz-transition-duration': '0ms', 5374 '-o-transition-duration': '0ms', 5375 'transition-duration': '0ms', 5376 }); 5377 }); 5378 $highlights.removeAttr('data-animated'); 5379 } else { 5380 if ( typeof ev !== 'undefined' && ev.type === 'defer-highlights' ) { 5381 highlitInnerFunc(); 5382 } else { 5383 $inners.last().one('webkitAnimationEnd oanimationend mozAnimationEnd msAnimationEnd animationEnd', highlitInnerFunc); 5384 } 5385 } 5386 } 5387 }); 5388 }; 5389 5390 $.each($('.header-content-inner'), function(index, val) { 5391 var element = $(val), 5392 transition = ''; 5393 if (element.hasClass('top-t-bottom')) transition = 'top-t-bottom'; 5394 if (element.hasClass('bottom-t-top')) transition = 'bottom-t-top'; 5395 if (element.hasClass('left-t-right')) transition = 'left-t-right'; 5396 if (element.hasClass('right-t-left')) transition = 'right-t-left'; 5397 if (element.hasClass('zoom-in')) transition = 'zoom-in'; 5398 if (element.hasClass('zoom-out')) transition = 'zoom-out'; 5399 if (element.hasClass('alpha-anim')) transition = 'alpha-anim'; 5400 if (element.hasClass('slight-anim')) transition = 'slight-anim'; 5401 if (transition != '') { 5402 $(val).removeClass(transition); 5403 var container = element, 5404 containerDelay = container.attr('data-delay'), 5405 containerSpeed = container.attr('data-speed'), 5406 items = $('.header-title > *, .post-info', container); 5407 $.each(items, function(index, val) { 5408 var element = $(val), 5409 //speedAttr = (containerSpeed == undefined) ? containerSpeed : '', 5410 delayAttr = (containerDelay != undefined) ? containerDelay : 400; 5411 if (!element.hasClass('animate_when_almost_visible') && !element.hasClass('translate_when_almost_visible')) { 5412 delayAttr = Number(delayAttr) + (400 * index); 5413 if (containerSpeed != undefined) element.attr('data-speed', containerSpeed); 5414 element.addClass(transition + ' animate_when_almost_visible').attr('data-delay', delayAttr); 5415 } 5416 }); 5417 container.css('opacity', 1); 5418 } 5419 }); 5420 5421 function animate_css_grids_on_load() { 5422 $('.cssgrid-system').each(function() { 5423 var grid = $(this); 5424 var sequential = grid.hasClass('cssgrid-animate-sequential') ? true : false; 5425 UNCODE.animate_css_grids(grid, grid.find('.tmb-grid'), 0, sequential, false); 5426 }); 5427 } 5428 5429 var delayAdd = 0; 5430 5431 window.waypoint_animation = function(ev) { 5432 $.each($('.translate_when_almost_visible:not(.start_animation), .animate_when_almost_visible:not(.start_animation):not(.t-inside):not(.drop-image-separator), .tmb-linear .animate_when_almost_visible:not(.start_animation), .index-scroll .animate_when_almost_visible, .tmb-media .animate_when_almost_visible:not(.start_animation), .animate_when_almost_visible.has-rotating-text, .custom-grid-container .animate_when_almost_visible:not(.start_animation)').filter(function(){ 5433 var $el = $(this); 5434 if (!$el.is('[data-delay-seq]')) return true; 5435 return $el.is('[data-delay]'); 5436 }), function(index, val) { 5437 if ( $(val).hasClass('el-text-split') || ( ( $(val).closest('.unscroll-horizontal').length || $(val).closest('.index-scroll').length || $(val).closest('.tab-pane:not(.active)').length || $(val).closest('.panel:not(.active-group)').length || $(val).closest('.un-submenu').length || $(val).closest('#uncode-mobile-menu-block').length || $(val).closest('.has-unblock').length ) && !SiteParameters.is_frontend_editor ) ) { 5438 return true; 5439 } 5440 if (UNCODE.isUnmodalOpen && !val.closest('#unmodal-content')) { 5441 return; 5442 } 5443 var run = true, 5444 $carousel = $(val).closest('.owl-carousel'), 5445 marquee = $(val).closest('.tmb-linear').length; 5446 if ( $carousel.length ) { 5447 run = false;
5448 } 5449 if ( $(val).closest('.megamenu-block-wrapper').length ) { 5450 run = false; 5451 } 5452 if (run) { 5453 new Waypoint({ 5454 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 5455 element: val, 5456 handler: function() { 5457 var element = $(this.element), 5458 index = element.index(), 5459 delayAttr = element.attr('data-delay'); 5460 if (delayAttr == undefined) delayAttr = 0; 5461 // delayAttr = parseFloat(delayAttr) + delayAdd; 5462 // if ( marquee ) { 5463 // delayAdd += 50; 5464 // } else { 5465 // delayAdd = 0; 5466 // } 5467 requestTimeout(function() { 5468 element.addClass('start_animation'); 5469 }, delayAttr); 5470 if (!UNCODE.isUnmodalOpen) { 5471 this.destroy(); 5472 } 5473 }, 5474 offset: UNCODE.isFullPage ? '100%' : '90%' 5475 }); 5476 } 5477 }); 5478 $.each($('.animate_inner_when_almost_visible'), function(index, val) { 5479 if (UNCODE.isUnmodalOpen && !val.closest('#unmodal-content')) { 5480 return; 5481 } 5482 var run = true, 5483 $carousel = $(val).closest('.owl-carousel'); 5484 if ( $carousel.length ) { 5485 run = false; 5486 } 5487 if (run) { 5488 new Waypoint({ 5489 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 5490 element: val, 5491 handler: function() { 5492 var $element = $(this.element), 5493 $childs = $('.animate_when_parent_almost_visible', $element); 5494 $childs.each(function(key,el){ 5495 var $child = $(el), 5496 delaySpeed = $child.attr('data-speed'), 5497 delayAttr = $child.attr('data-delay'), 5498 intervalAttr = $child.attr('data-interval'); 5499 if (delayAttr == undefined) { 5500 delayAttr = 50*key; 5501 } 5502 requestTimeout(function() { 5503 $child.addClass('start_animation'); 5504 if ( $child.hasClass('anim-line-checker') ) { 5505 $child.on('webkitAnimationEnd oanimationend mozAnimationEnd msAnimationEnd animationEnd', function(e) { 5506 var $line = $child.closest('.heading-line-wrap'); 5507 }); 5508 } 5509 var $wrapText = $child.closest('.animate_inner_when_almost_visible'); 5510 highlightComplexFunc($wrapText, ev); 5511 if ( $child.hasClass('anim-tot-checker') ) { 5512 $child.on('webkitAnimationEnd oanimationend mozAnimationEnd msAnimationEnd animationEnd', function(e) { 5513 if ( $child.hasClass('anim-tot-checker') ) { 5514 $wrapText.addClass('already-animated'); 5515 $element.trigger('already-animated'); 5516 } 5517 }); 5518 } 5519 }, delayAttr ); 5520 }); 5521 $element.addClass('start_animation'); 5522 if (!UNCODE.isUnmodalOpen) { 5523 this.destroy(); 5524 } 5525 }, 5526 offset: UNCODE.isFullPage ? '100%' : '90%' 5527 }); 5528 } 5529 }); 5530 } 5531 window.waypoint_carousel_animation = function(ev) { 5532 $.each($('.owl-carousel').find('.animate_when_almost_visible:not(.start_animation):not(.t-inside):not(.drop-image-separator), .tmb-media .animate_when_almost_visible:not(.start_animation)'), function(index, val) { 5533 if ( $(val).hasClass('el-text-split') ) { 5534 return true; 5535 } 5536 if (UNCODE.isUnmodalOpen && !val.closest('#unmodal-content')) { 5537 return; 5538 } 5539 var run = true, 5540 $carousel = $(val).closest('.owl-carousel'), 5541 $first_item = $(val).closest('.owl-item[data-index="1"]'), 5542 $all_first = $('.owl-item[data-index="1"]', $carousel); 5543 if ( ! ( $first_item.length && $first_item.attr('data-already-reached') !== 'true' ) && $carousel.attr('data-front-edited') !== 'true' ) { 5544 run = false; 5545 } 5546 if (run) { 5547 new Waypoint({ 5548 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 5549 element: val, 5550 handler: function() { 5551 var element = $(this.element), 5552 index = element.index(), 5553 delayAttr = element.attr('data-delay'); 5554 if (delayAttr == undefined) delayAttr = 0; 5555 requestTimeout(function() { 5556 if ( $first_item.length && $first_item.attr('data-already-reached') !== 'true' ) { 5557 $all_first.attr('data-already-reached', 'true'); 5558 } 5559 element.addClass('start_animation'); 5560 }, delayAttr); 5561 if (!UNCODE.isUnmodalOpen) { 5562 this.destroy(); 5563 } 5564 }, 5565 offset: UNCODE.isFullPage ? '100%' : '90%' 5566 }); 5567 } 5568 }); 5569 $.each($('.owl-carousel').find('.animate_inner_when_almost_visible'), function(index, val) { 5570 if (UNCODE.isUnmodalOpen && !val.closest('#unmodal-content')) { 5571 return; 5572 } 5573 var run = true, 5574 $carousel = $(val).closest('.owl-carousel'), 5575 $first_item = $(val).closest('.owl-item[data-index="1"]'), 5576 $all_first = $('.owl-item[data-index="1"]', $carousel); 5577 if ( ! ( $first_item.length && $first_item.attr('data-already-reached') !== 'true' ) && $carousel.attr('data-front-edited') !== 'true' ) { 5578 run = false;
5579 } 5580 if (run) { 5581 new Waypoint({ 5582 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 5583 element: val, 5584 handler: function() { 5585 var $element = $(this.element), 5586 $childs = $('.animate_when_parent_almost_visible', $element); 5587 $childs.each(function(key,el){ 5588 var $child = $(el), 5589 delaySpeed = $child.attr('data-speed'), 5590 delayAttr = $child.attr('data-delay'), 5591 intervalAttr = $child.attr('data-interval'); 5592 if (delayAttr == undefined) { 5593 delayAttr = 50*key; 5594 } 5595 requestTimeout(function() { 5596 if ( $first_item.length && $first_item.attr('data-already-reached') !== 'true' ) { 5597 $all_first.attr('data-already-reached', 'true'); 5598 } 5599 $child.addClass('start_animation'); 5600 if ( $child.hasClass('anim-line-checker') ) { 5601 $child.on('webkitAnimationEnd oanimationend mozAnimationEnd msAnimationEnd animationEnd', function(e) { 5602 var $line = $child.closest('.heading-line-wrap'); 5603 }); 5604 } 5605 var $wrapText = $child.closest('.animate_inner_when_almost_visible'); 5606 highlightComplexFunc($wrapText, ev); 5607 if ( $child.hasClass('anim-tot-checker') ) { 5608 $child.on('webkitAnimationEnd oanimationend mozAnimationEnd msAnimationEnd animationEnd', function(e) { 5609 if ( $child.hasClass('anim-tot-checker') ) { 5610 $wrapText.addClass('already-animated'); 5611 } 5612 }); 5613 } 5614 }, delayAttr ); 5615 }); 5616 $element.addClass('start_animation'); 5617 if (!UNCODE.isUnmodalOpen) { 5618 this.destroy(); 5619 } 5620 }, 5621 offset: UNCODE.isFullPage ? '100%' : '90%' 5622 }); 5623 } 5624 }); 5625 } 5626 5627 var runWaypoints = function(ev){ 5628 if ( typeof runWaypoints_TO !== 'undefined' && runWaypoints_TO !== '' ) { 5629 runWaypoints_delay = 400; 5630 } 5631 clearRequestTimeout(runWaypoints_TO); 5632 runWaypoints_TO = requestTimeout(function() { 5633 window.waypoint_animation(ev); 5634 }, runWaypoints_delay); 5635 5636 clearRequestTimeout(runWaypoints_carousel_TO); 5637 runWaypoints_carousel_TO = requestTimeout(function() { 5638 window.waypoint_carousel_animation(ev); 5639 }, 400); 5640 }; 5641 runWaypoints(); 5642 animate_css_grids_on_load(); 5643 5644 $( document.body ).on( 'uncode_waypoints defer-highlights', function(ev) { 5645 runWaypoints(ev); 5646 }); 5647 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 5648 window.parent.vc.events.on( 'shortcodeView:updated', runWaypoints ); 5649 window.parent.vc.events.on( 'shortcodeView:ready', runWaypoints ); 5650 } 5651}; 5652 5653UNCODE.animate_css_grids = function(container, elements, startIndex, sequential, filtering) { 5654 var $allItems = elements.length - startIndex, 5655 showed = 0, 5656 index = 0, 5657 use_index = false 5658 ; 5659 5660 if (filtering) { 5661 if (sequential) { 5662 use_index = true; 5663 } 5664 sequential = false; 5665 } 5666 5667 $.each(elements, function(index, val) { 5668 var $this = $(val), 5669 elInner = $('> .t-inside', val); 5670 5671 if ( ( UNCODE.isUnmodalOpen && !val.closest('#unmodal-content') ) || $(val).closest('.un-submenu').length || $(val).closest('uncode-mobile-menu-block').length ) { 5672 return; 5673 } 5674 if (val[0]) val = val[0]; 5675 5676 if (elInner.hasClass('animate_when_almost_visible') && !elInner.hasClass('force-anim')) { 5677 new Waypoint({ 5678 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 5679 element: val, 5680 handler: function() { 5681 var element = $('> .t-inside', this.element), 5682 parent = $(this.element); 5683 var _index = use_index? index : 0; 5684 5685 var delay = (!sequential) ? _index : ((startIndex !== 0) ? index - $allItems : index), 5686 delayAttr = parseInt(element.attr('data-delay')); 5687 if (isNaN(delayAttr)) delayAttr = 100; 5688 if (sequential || use_index) { 5689 delay -= showed; 5690 } 5691 var objTimeout = requestTimeout(function() { 5692 element.removeClass('zoom-reverse').addClass('start_animation'); 5693 showed = index; 5694 }, delay * delayAttr); 5695 parent.data('objTimeout', objTimeout); 5696 if (!UNCODE.isUnmodalOpen) { 5697 this.destroy(); 5698 } 5699 }, 5700 offset: UNCODE.isFullPage ? '100%' : '90%' 5701 }); 5702 } 5703 5704 index++; 5705 }); 5706}; 5707 5708UNCODE.tapHover = function() { 5709 5710 var isTouch = ( 5711 'ontouchstart' in window || 5712 navigator.maxTouchPoints > 0 || 5713 navigator.msMaxTouchPoints > 0 5714 ); 5715 5716 if (isTouch) {
5717 var $el = $('.tmb:not(.tmb-no-double-tap)').find('.t-entry-visual-cont > a, .drop-hover-link'), 5718 elClass = "hover"; 5719 5720 $(window).on('click', function() { 5721 $el.removeClass(elClass); 5722 }); 5723 5724 $el.on('click', function(e) { 5725 e.stopPropagation(); 5726 var link = $(this); 5727 if ( ! link.hasClass(elClass)) { 5728 e.preventDefault(); 5729 link.addClass("hover"); 5730 $el.not(this).removeClass(elClass); 5731 return false; 5732 } 5733 }); 5734 } 5735}; 5736 5737UNCODE.onePage = function(isMobile) { 5738 var current = 0, 5739 last = 0, 5740 lastScrollTop = 0, 5741 forceScroll = false, 5742 lastScrolled = 0, 5743 isSectionscroller = ($('.main-onepage').length) ? true : false, 5744 isOnePage = false, 5745 getOffset = function () { 5746 var calculateOffset = (($('.menu-sticky .menu-container:not(.menu-hide):not(.vmenu-container)').length && ($(window).width() > UNCODE.mediaQuery)) ? $('.menu-sticky .menu-container:not(.menu-hide):not(.vmenu-container').outerHeight() : 0); 5747 return calculateOffset; 5748 } 5749 5750 isMobile = SiteParameters.uncode_force_onepage_dots ? false : isMobile; 5751 5752 // if ( UNCODE.isFullPage || UNCODE.isFullPageSnap ) 5753 // return false; 5754 5755 function init_onepage() { 5756 if (isSectionscroller && !isMobile && !$('body').hasClass('uncode-scroll-no-dots') && !UNCODE.isFullPageSnap) { 5757 $("<ul class='onepage-pagination'></ul>").prependTo("body"); 5758 } 5759 last = $('.onepage-pagination li').last().find('a').data('index'); 5760 $.each($('div[data-parent="true"]'), function(index, val) { 5761 $(this).attr('data-section', index); 5762 if (isMobile) return; 5763 if (UNCODE.isUnmodalOpen && !val.closest('#unmodal-content')) { 5764 return; 5765 } 5766 var sectionDown = new Waypoint({ 5767 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 5768 element: val, 5769 handler: function(direction) { 5770 if (direction == 'down') { 5771 changeMenuActive(this.element, index); 5772 } 5773 }, 5774 offset: function() { 5775 return 5 + getOffset() 5776 } 5777 }); 5778 var sectionUp = new Waypoint({ 5779 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 5780 element: val, 5781 handler: function(direction) { 5782 if (direction == 'up') { 5783 changeMenuActive(this.element, index); 5784 } 5785 }, 5786 offset: function() { 5787 return -5 - getOffset() 5788 } 5789 }); 5790 5791 if (isSectionscroller) { 5792 var label; 5793 if ($(this).attr('data-label') != undefined) label = $(this).attr('data-label'); 5794 else label = ''; 5795 var getName = $(this).attr('data-name'); 5796 if (getName == undefined) getName = index; 5797 if (label != '') { 5798 isOnePage = true; 5799 label = '<span class="cd-label style-accent-bg border-accent-color">' + label + '</span>'; 5800 $('ul.onepage-pagination').append("<li><a class='one-dot-link' aria-label='" + label + "' data-index='" + (index) + "' href='#" + (getName) + "'><span class='cd-dot-cont'><span class='cd-dot'></span></span>"+label+"</a></li>"); 5801 } 5802 } 5803 }); 5804 5805 if (isSectionscroller) { 5806 $.each($('ul.onepage-pagination li'), function(index, val) { 5807 var $this = $(val), 5808 $a = ('a', $this); 5809 $a.on('click', function(evt) { 5810 if ( $('.is-selected', $this).length || UNCODE.scrolling ) { 5811 return false; 5812 } 5813 if ( $('body').hasClass('uncode-scroll-no-history') ) { 5814 evt.preventDefault(); 5815 } 5816 Waypoint.refreshAll(); 5817 var el = $('a', evt.currentTarget); 5818 current = lastScrolled = parseInt(el.attr('data-index')); 5819 lastScrolled += 1; 5820 scrollBody(current); 5821 }); 5822 }); 5823 } 5824 5825 var goToSection = parseInt((window.location.hash).replace(/[^\d.]/g, '')); 5826 if (isNaN(goToSection) && window.location.hash != undefined && window.location.hash != '' ) { 5827 goToSection = String(window.location.hash).replace(/^#/, ""); 5828 goToSection = Number($('[data-name="' + goToSection + '"]').attr('data-section')); 5829 } 5830 5831 if (typeof goToSection === 'number' && !isNaN(goToSection) && !$('body').hasClass('uncode-no-hash-scroll') ) { 5832 current = lastScrolled = goToSection; 5833 $(window).on('load', function(){ 5834 if ( $('.owl-carousel').length ) { 5835 requestTimeout(function(){ 5836 scrollBody(goToSection); 5837 }, 400); 5838 } else { 5839 scrollBody(goToSection); 5840 } 5841 }); 5842 } 5843 5844 } 5845 5846 function changeMenuActive(section, index) { 5847 current = lastScrolled = parseInt($(section).attr('data-section')); 5848 if (isOnePage) { 5849 var newSection = $('.onepage-pagination li a[data-index="' + index + '"]'); 5850 if (newSection.length) { 5851 $('ul.onepage-pagination li a').removeClass('is-selected'); 5852 newSection.addClass('is-selected'); 5853 } 5854 var getName = $('[data-section="' + index + '"]').attr('data-name'); 5855 if (getName != undefined && getName !== '') { 5856 $.each($('.menu-container .menu-item > a, .widget_nav_menu .menu-smart .menu-item > a'), function(i, val) { 5857 var get_href = $(val).attr('href'); 5858 if (get_href != undefined && get_href.substring(get_href.indexOf('#')+1) == getName) { 5859 $(val).closest('.menu-smart').find('.active').removeClass('active'); 5860 $(val).parent().addClass('active'); 5861 } 5862 }); 5863 } 5864 } 5865 } 5866 5867 if (isOnePage) { 5868 $(window).on('scroll', function() { 5869 var bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop']; 5870 if (bodyTop == 0) { 5871 $('ul.onepage-pagination li a').removeClass('is-selected'); 5872 $('.onepage-pagination li a[data-index="0"]').addClass('is-selected'); 5873 var getName = $('[data-section=0]').attr('data-name'); 5874 if (getName != undefined && getName !== '') { 5875 $.each($('.menu-container .menu-item > a'), function(i, val) { 5876 var get_href = $(val).attr('href'); 5877 if (get_href != undefined && get_href.substring(get_href.indexOf('#')+1) == getName) { 5878 $(val).closest('ul').find('.active').removeClass('active'); 5879 $(val).parent().addClass('active'); 5880 } 5881 }); 5882 } 5883 } else if ((window.innerHeight + bodyTop) >= $('.box-container').height()) { 5884 var lastSection = $('.onepage-pagination li a[data-index="' + last +'"]'); 5885 if (lastSection.length) { 5886 $('ul.onepage-pagination li a').removeClass('is-selected'); 5887 lastSection.addClass('is-selected'); 5888 } 5889 } 5890 }); 5891 } 5892 5893 var scrollBody = function(index) { 5894 $('ul.onepage-pagination li a').removeClass('is-selected'); 5895 $('.onepage-pagination li a[data-index="' + index + '"]').addClass('is-selected'); 5896 5897 var getSection = $('[data-section=' + index + ']'), 5898 scrollTo; 5899 5900 if (getSection == undefined) return; 5901 5902 var body = $("html, body"), 5903 bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 5904 delta = bodyTop - ($('[data-section="' + index + '"]').length ? $('[data-section="' + index + '"]').offset().top : 0), 5905 getOffset = UNCODE.get_scroll_offset(index); 5906 if ( typeof getSection.offset() === 'undefined' ) 5907 return; 5908 scrollTo = getSection.offset().top; 5909
5910 // if ( !( $('.menu-desktop-transparent').length && UNCODE.wwidth > UNCODE.mediaQuery ) && !( $('.menu-mobile-transparent').length && UNCODE.wwidth <= UNCODE.mediaQueryMobile ) ) { 5911 if ( !( $('.menu-desktop-transparent').length && UNCODE.wwidth > UNCODE.mediaQuery ) ) { 5912 var shrink = typeof $('.navbar-brand').data('padding-shrink') !== 'undefined' ? $('.navbar-brand').data('padding-shrink')*2 : 36; 5913 if ( $('.menu-sticky .menu-container:not(.menu-hide)').length && $('.menu-shrink').length ) { 5914 scrollTo += UNCODE.menuHeight - ( $('.navbar-brand').data('minheight') + shrink ); 5915 } 5916 5917 if ( $('.menu-sticky .menu-container:not(.menu-hide)').length && ! $('.menu-shrink').length && $('.body').hasClass('vmenu') ) { 5918 if ( index === 0 ) { 5919 scrollTo = 0; 5920 } else { 5921 scrollTo -= $('.menu-sticky .menu-container').outerHeight(); 5922 } 5923 } else { 5924 scrollTo -= getOffset; 5925 } 5926 } 5927 5928 var scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed; 5929 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 5930 5931 if (index != 0) { 5932 UNCODE.scrolling = true; 5933 } 5934 5935 if (scrollSpeed == 0) { 5936 body.scrollTop((delta > 0) ? scrollTo - 0.1 : scrollTo); 5937 UNCODE.scrolling = false; 5938 } else { 5939 body.on("scroll wheel DOMMouseScroll mousewheel touchmove", function(){ 5940 $(this).stop(); 5941 }).animate({ 5942 scrollTop: (delta > 0) ? scrollTo - 0.1 : scrollTo 5943 }, scrollSpeed, 'easeInOutCubic', function() { 5944 $(this).off("scroll wheel DOMMouseScroll mousewheel touchmove"); 5945 UNCODE.scrolling = false; 5946 if ( ( scrollTo != UNCODE.get_scroll_offset(index) && !( $('.menu-desktop-transparent').length && UNCODE.wwidth > UNCODE.mediaQuery ) && !( $('.menu-mobile-transparent').length && UNCODE.wwidth <= UNCODE.mediaQueryMobile ) ) 5947 || 5948 $('.menu-hided').length ) { 5949 scrollTo = getSection.offset().top; 5950 getOffset = UNCODE.get_scroll_offset(index); 5951 scrollTo -= getOffset; 5952 body.on("scroll wheel DOMMouseScroll mousewheel touchmove", function(){ 5953 $(this).stop(); 5954 }).animate({ 5955 scrollTop: (delta > 0) ? scrollTo - 0.1 : scrollTo 5956 }, scrollSpeed, 'easeInOutCubic', function() { 5957 $(this).off("scroll wheel DOMMouseScroll mousewheel touchmove"); 5958 UNCODE.scrolling = false; 5959 } 5960 ); 5961 } 5962 }); 5963 } 5964 5965 }; 5966 5967 init_onepage(); 5968}; 5969 5970UNCODE.stickyElements = function() { 5971 var isMobile_wide = UNCODE.isMobile && UNCODE.wwidth < 1024; 5972 if (!isMobile_wide ) { 5973 5974 var $pageHeader = $('#page-header'), 5975 $headerRow = $('.vc_row', $pageHeader), 5976 $headerSection = $headerRow.closest('section[data-parent]'), 5977 startSticky = false; 5978 5979 if ( $headerRow.hasClass('sticky-element') && !$headerSection.length ) { 5980 $headerRow.removeClass('sticky-element'); 5981 $pageHeader.addClass('sticky-element'); 5982 startSticky = true; 5983 } 5984 5985 var calculateOffset = function(el) { 5986 var getRowPadding = (!$(el).hasClass('with-bg')) ? $(el).closest('.row-parent').css("padding-top") : 0, 5987 sideOffset = (getRowPadding != undefined && getRowPadding != 0) ? parseInt(getRowPadding.replace("px", "")) : 0, 5988 shrink = typeof $('.navbar-brand').data('padding-shrink') !== 'undefined' ? $('.navbar-brand').data('padding-shrink')*2 : 0, 5989 elTop = window.pageYOffset + el.getBoundingClientRect().top; 5990 5991 sideOffset += UNCODE.bodyBorder; 5992 5993 if (UNCODE.adminBarHeight > 0) sideOffset += UNCODE.adminBarHeight; 5994 if ($('.menu-sticky .menu-container:not(.menu-hide)').length && elTop > sideOffset) { 5995 if ($('.menu-shrink').length) { 5996 sideOffset += parseFloat( $('.navbar-brand').data('minheight') ) + shrink; 5997 } else { 5998 sideOffset += ($('body.hmenu-center').length ? $('#masthead .menu-container').outerHeight() : parseInt(UNCODE.menuMobileHeight)); 5999 } 6000 } 6001 6002 return sideOffset; 6003 6004 }, 6005 6006 initStickyElement = function($els) { 6007 if ( $('body').hasClass('vc-safe-mode') ) { 6008 return true; 6009 } 6010 if ( typeof $els === 'undefined' ) { 6011 $els = $('.sticky-element'); 6012 } 6013 $.each($els, function(index, element) { 6014 if ($(element).closest('.tab-pane').length) { 6015 var $paneParent = $(element).closest('.tab-pane'); 6016 if ( !$paneParent.hasClass('active') ) { 6017 return true; 6018 } 6019 } 6020 $(element).stick_in_parent({ 6021 sticky_class: 'is_stucked', 6022 offset_top: calculateOffset(element), 6023 bottoming: true, 6024 inner_scrolling: SiteParameters.sticky_elements === 'on' 6025 }); 6026 }); 6027 }; 6028 6029 var oldW = UNCODE.wwidth, 6030 oldH = UNCODE.wHeight; 6031 6032 requestTimeout(function() { 6033 if ($('.sticky-element').length) { 6034 6035 if ($(window).width() > UNCODE.mediaQuery) { 6036 initStickyElement(); 6037
6038 if ( startSticky === true ) { 6039 $('#page-header').trigger('sticky_kit:recalc'); 6040 } 6041 } 6042 6043 $(window).on('resize lateral_resize', function(event) { 6044 if ( oldW !== UNCODE.wwidth || oldH !== UNCODE.wHeight ) { 6045 $(".sticky-element").trigger("sticky_kit:detach"); 6046 if ($(window).width() > UNCODE.mediaQuery) { 6047 initStickyElement(); 6048 } 6049 oldW = UNCODE.wwidth; 6050 oldH = UNCODE.wHeight; 6051 } 6052 }); 6053 } 6054 }, 1000); 6055 6056 if ($('.sticky-element').length) { 6057 $(window).on('uncode_wc_variation_gallery_loaded', function (event) { 6058 requestTimeout(function() { 6059 $(document.body).trigger("sticky_kit:recalc"); 6060 }, 100); 6061 }); 6062 } 6063 6064 var $panels = $('.panel-collapse'); 6065 if ( $panels.length ) { 6066 $panels.each(function(){ 6067 var $panel = $(this); 6068 $panel.on('shown.bs.collapse hidden.bs.collapse', function(){ 6069 $(document.body).trigger("sticky_kit:recalc"); 6070 }); 6071 }); 6072 } 6073 6074 $('.nav-tabs a').on('shown.bs.tab', function(e){ 6075 var $tabs = $(e.target).closest('.tab-container'), 6076 $panel = $('.tab-pane.active', $tabs), 6077 $els = $(e.target).nextAll(".sticky-element"); 6078 6079 $els.trigger("sticky_kit:detach"); 6080 initStickyElement($els); 6081 }); 6082 6083 $(window).on('vc-safe-mode-on', function(){ 6084 $(".sticky-element").trigger("sticky_kit:detach"); 6085 }); 6086 6087 $(window).on('vc-safe-mode-off', function(){ 6088 initStickyElement(); 6089 }); 6090 } 6091}; 6092 6093UNCODE.twentytwenty = function() { 6094 6095 if (!$('.twentytwenty-container').length) return; 6096 6097// DOM.event.move 6098// 6099// 2.0.0 6100// 6101// Stephen Band 6102// 6103// Triggers 'movestart', 'move' and 'moveend' events after 6104// mousemoves following a mousedown cross a distance threshold, 6105// similar to the native 'dragstart', 'drag' and 'dragend' events. 6106// Move events are throttled to animation frames. Move event objects 6107// have the properties: 6108// 6109// pageX: 6110// pageY: Page coordinates of pointer. 6111// startX: 6112// startY: Page coordinates of pointer at movestart. 6113// distX: 6114// distY: Distance the pointer has moved since movestart. 6115// deltaX: 6116// deltaY: Distance the finger has moved since last event. 6117// velocityX: 6118// velocityY: Average velocity over last few events. 6119 6120 6121(function(fn) { 6122 if (typeof define === 'function' && define.amd) { 6123 define([], fn); 6124 } else if ((typeof module !== "undefined" && module !== null) && module.exports) { 6125 module.exports = fn; 6126 } else { 6127 fn(); 6128 } 6129})(function(){ 6130 var assign = Object.assign || window.jQuery && jQuery.extend; 6131 6132 // Number of pixels a pressed pointer travels before movestart 6133 // event is fired. 6134 var threshold = 8; 6135 6136 // Shim for requestAnimationFrame, falling back to timer. See: 6137 // see http://paulirish.com/2011/requestanimationframe-for-smart-animating/ 6138 var requestFrame = (function(){ 6139 return ( 6140 window.requestAnimationFrame || 6141 window.webkitRequestAnimationFrame || 6142 window.mozRequestAnimationFrame || 6143 window.oRequestAnimationFrame || 6144 window.msRequestAnimationFrame || 6145 function(fn, element){ 6146 return window.setTimeout(function(){ 6147 fn(); 6148 }, 25); 6149 } 6150 ); 6151 })(); 6152 6153 // Shim for customEvent 6154 // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill 6155 (function () { 6156 if ( typeof window.CustomEvent === "function" ) return false; 6157 function CustomEvent ( event, params ) { 6158 params = params || { bubbles: false, cancelable: false, detail: undefined }; 6159 var evt = document.createEvent( 'CustomEvent' ); 6160 evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail ); 6161 return evt; 6162 } 6163 6164 CustomEvent.prototype = window.Event.prototype; 6165 window.CustomEvent = CustomEvent; 6166 })(); 6167 6168 var ignoreTags = { 6169 textarea: true, 6170 input: true, 6171 select: true, 6172 button: true 6173 }; 6174 6175 var mouseevents = { 6176 move: 'mousemove', 6177 cancel: 'mouseup dragstart', 6178 end: 'mouseup' 6179 }; 6180 6181 var touchevents = { 6182 move: 'touchmove', 6183 cancel: 'touchend', 6184 end: 'touchend' 6185 }; 6186 6187 var rspaces = /\s+/; 6188 6189 6190 // DOM Events 6191 6192 var eventOptions = { bubbles: true, cancelable: true }; 6193 6194 var eventsSymbol = typeof Symbol === "function" ? Symbol('events') : {}; 6195 6196 function createEvent(type) { 6197 return new CustomEvent(type, eventOptions); 6198 } 6199 6200 function getEvents(node) { 6201 return node[eventsSymbol] || (node[eventsSymbol] = {}); 6202 } 6203 6204 function on(node, types, fn, data, selector) {
6205 types = types.split(rspaces); 6206 6207 var events = getEvents(node); 6208 var i = types.length; 6209 var handlers, type; 6210 6211 function handler(e) { fn(e, data); } 6212 6213 while (i--) { 6214 type = types[i]; 6215 handlers = events[type] || (events[type] = []); 6216 handlers.push([fn, handler]); 6217 node.addEventListener(type, handler); 6218 } 6219 } 6220 6221 function off(node, types, fn, selector) { 6222 types = types.split(rspaces); 6223 6224 var events = getEvents(node); 6225 var i = types.length; 6226 var type, handlers, k; 6227 6228 if (!events) { return; } 6229 6230 while (i--) { 6231 type = types[i]; 6232 handlers = events[type]; 6233 if (!handlers) { continue; } 6234 k = handlers.length; 6235 while (k--) { 6236 if (handlers[k][0] === fn) { 6237 node.removeEventListener(type, handlers[k][1]); 6238 handlers.splice(k, 1); 6239 } 6240 } 6241 } 6242 } 6243 6244 function trigger(node, type, properties) { 6245 // Don't cache events. It prevents you from triggering an event of a 6246 // given type from inside the handler of another event of that type. 6247 var event = createEvent(type); 6248 if (properties) { assign(event, properties); } 6249 node.dispatchEvent(event); 6250 } 6251 6252 6253 // Constructors 6254 6255 function Timer(fn){ 6256 var callback = fn, 6257 active = false, 6258 running = false; 6259 6260 function trigger(time) { 6261 if (active){ 6262 callback(); 6263 requestFrame(trigger); 6264 running = true; 6265 active = false; 6266 } 6267 else { 6268 running = false; 6269 } 6270 } 6271 6272 this.kick = function(fn) { 6273 active = true; 6274 if (!running) { trigger(); } 6275 }; 6276 6277 this.end = function(fn) { 6278 var cb = callback; 6279 6280 if (!fn) { return; } 6281 6282 // If the timer is not running, simply call the end callback. 6283 if (!running) { 6284 fn(); 6285 } 6286 // If the timer is running, and has been kicked lately, then 6287 // queue up the current callback and the end callback, otherwise 6288 // just the end callback. 6289 else { 6290 callback = active ? 6291 function(){ cb(); fn(); } : 6292 fn ; 6293 6294 active = true; 6295 } 6296 }; 6297 } 6298 6299 6300 // Functions 6301 6302 function noop() {} 6303 6304 function preventDefault(e) { 6305 e.preventDefault(); 6306 } 6307 6308 function isIgnoreTag(e) { 6309 return !!ignoreTags[e.target.tagName.toLowerCase()]; 6310 } 6311 6312 function isPrimaryButton(e) { 6313 // Ignore mousedowns on any button other than the left (or primary) 6314 // mouse button, or when a modifier key is pressed. 6315 return (e.which === 1 && !e.ctrlKey && !e.altKey); 6316 } 6317 6318 function identifiedTouch(touchList, id) { 6319 var i, l; 6320 6321 if (touchList.identifiedTouch) { 6322 return touchList.identifiedTouch(id); 6323 } 6324 6325 // touchList.identifiedTouch() does not exist in 6326 // webkit yet… we must do the search ourselves... 6327 6328 i = -1; 6329 l = touchList.length; 6330 6331 while (++i < l) { 6332 if (touchList[i].identifier === id) { 6333 return touchList[i]; 6334 } 6335 } 6336 } 6337 6338 function changedTouch(e, data) { 6339 var touch = identifiedTouch(e.changedTouches, data.identifier); 6340 6341 // This isn't the touch you're looking for. 6342 if (!touch) { return; } 6343 6344 // Chrome Android (at least) includes touches that have not 6345 // changed in e.changedTouches. That's a bit annoying. Check 6346 // that this touch has changed. 6347 if (touch.pageX === data.pageX && touch.pageY === data.pageY) { return; } 6348 6349 return touch; 6350 } 6351 6352 6353 // Handlers that decide when the first movestart is triggered 6354 6355 function mousedown(e){ 6356 // Ignore non-primary buttons 6357 if (!isPrimaryButton(e)) { return; } 6358 6359 // Ignore form and interactive elements 6360 if (isIgnoreTag(e)) { return; } 6361 6362 on(document, mouseevents.move, mousemove, e); 6363 on(document, mouseevents.cancel, mouseend, e); 6364 } 6365 6366 function mousemove(e, data){ 6367 checkThreshold(e, data, e, removeMouse); 6368 } 6369 6370 function mouseend(e, data) { 6371 removeMouse(); 6372 } 6373 6374 function removeMouse() { 6375 off(document, mouseevents.move, mousemove); 6376 off(document, mouseevents.cancel, mouseend); 6377 } 6378 6379 function touchstart(e) { 6380 // Don't get in the way of interaction with form elements 6381 if (ignoreTags[e.target.tagName.toLowerCase()]) { return; } 6382 6383 var touch = e.changedTouches[0]; 6384 6385 // iOS live updates the touch objects whereas Android gives us copies. 6386 // That means we can't trust the touchstart object to stay the same, 6387 // so we must copy the data. This object acts as a template for 6388 // movestart, move and moveend event objects. 6389 var data = { 6390 target: touch.target, 6391 pageX: touch.pageX, 6392 pageY: touch.pageY, 6393 identifier: touch.identifier, 6394 6395 // The only way to make handlers individually unbindable is by 6396 // making them unique. 6397 touchmove: function(e, data) { touchmove(e, data); }, 6398 touchend: function(e, data) { touchend(e, data); } 6399 }; 6400 6401 on(document, touchevents.move, data.touchmove, data); 6402 on(document, touchevents.cancel, data.touchend, data); 6403 } 6404 6405 function touchmove(e, data) { 6406 var touch = changedTouch(e, data); 6407 if (!touch) { return; } 6408 checkThreshold(e, data, touch, removeTouch); 6409 } 6410 6411 function touchend(e, data) { 6412 var touch = identifiedTouch(e.changedTouches, data.identifier); 6413 if (!touch) { return; } 6414 removeTouch(data); 6415 } 6416 6417 function removeTouch(data) { 6418 off(document, touchevents.move, data.touchmove); 6419 off(document, touchevents.cancel, data.touchend); 6420 } 6421 6422 function checkThreshold(e, data, touch, fn) { 6423 var distX = touch.pageX - data.pageX; 6424 var distY = touch.pageY - data.pageY; 6425
6426 // Do nothing if the threshold has not been crossed. 6427 if ((distX * distX) + (distY * distY) < (threshold * threshold)) { return; } 6428 6429 triggerStart(e, data, touch, distX, distY, fn); 6430 } 6431 6432 function triggerStart(e, data, touch, distX, distY, fn) { 6433 var touches = e.targetTouches; 6434 var time = e.timeStamp - data.timeStamp; 6435 6436 // Create a movestart object with some special properties that 6437 // are passed only to the movestart handlers. 6438 var template = { 6439 altKey: e.altKey, 6440 ctrlKey: e.ctrlKey, 6441 shiftKey: e.shiftKey, 6442 startX: data.pageX, 6443 startY: data.pageY, 6444 distX: distX, 6445 distY: distY, 6446 deltaX: distX, 6447 deltaY: distY, 6448 pageX: touch.pageX, 6449 pageY: touch.pageY, 6450 velocityX: distX / time, 6451 velocityY: distY / time, 6452 identifier: data.identifier, 6453 targetTouches: touches, 6454 finger: touches ? touches.length : 1, 6455 enableMove: function() { 6456 this.moveEnabled = true; 6457 this.enableMove = noop; 6458 e.preventDefault(); 6459 } 6460 }; 6461 6462 // Trigger the movestart event. 6463 trigger(data.target, 'movestart', template); 6464 6465 // Unbind handlers that tracked the touch or mouse up till now. 6466 fn(data); 6467 } 6468 6469 6470 // Handlers that control what happens following a movestart 6471 6472 function activeMousemove(e, data) { 6473 var timer = data.timer; 6474 6475 data.touch = e; 6476 data.timeStamp = e.timeStamp; 6477 timer.kick(); 6478 } 6479 6480 function activeMouseend(e, data) { 6481 var target = data.target; 6482 var event = data.event; 6483 var timer = data.timer; 6484 6485 removeActiveMouse(); 6486 6487 endEvent(target, event, timer, function() { 6488 // Unbind the click suppressor, waiting until after mouseup 6489 // has been handled. 6490 setTimeout(function(){ 6491 off(target, 'click', preventDefault); 6492 }, 0); 6493 }); 6494 } 6495 6496 function removeActiveMouse() { 6497 off(document, mouseevents.move, activeMousemove); 6498 off(document, mouseevents.end, activeMouseend); 6499 } 6500 6501 function activeTouchmove(e, data) { 6502 var event = data.event; 6503 var timer = data.timer; 6504 var touch = changedTouch(e, event); 6505 6506 if (!touch) { return; } 6507 6508 // Stop the interface from gesturing 6509 e.preventDefault(); 6510 6511 event.targetTouches = e.targetTouches; 6512 data.touch = touch; 6513 data.timeStamp = e.timeStamp; 6514 6515 timer.kick(); 6516 } 6517 6518 function activeTouchend(e, data) { 6519 var target = data.target; 6520 var event = data.event; 6521 var timer = data.timer; 6522 var touch = identifiedTouch(e.changedTouches, event.identifier); 6523 6524 // This isn't the touch you're looking for. 6525 if (!touch) { return; } 6526 6527 removeActiveTouch(data); 6528 endEvent(target, event, timer); 6529 } 6530 6531 function removeActiveTouch(data) { 6532 off(document, touchevents.move, data.activeTouchmove); 6533 off(document, touchevents.end, data.activeTouchend); 6534 } 6535 6536 6537 // Logic for triggering move and moveend events 6538 6539 function updateEvent(event, touch, timeStamp) { 6540 var time = timeStamp - event.timeStamp; 6541 6542 event.distX = touch.pageX - event.startX; 6543 event.distY = touch.pageY - event.startY; 6544 event.deltaX = touch.pageX - event.pageX; 6545 event.deltaY = touch.pageY - event.pageY; 6546 6547 // Average the velocity of the last few events using a decay 6548 // curve to even out spurious jumps in values. 6549 event.velocityX = 0.3 * event.velocityX + 0.7 * event.deltaX / time; 6550 event.velocityY = 0.3 * event.velocityY + 0.7 * event.deltaY / time; 6551 event.pageX = touch.pageX; 6552 event.pageY = touch.pageY; 6553 } 6554 6555 function endEvent(target, event, timer, fn) { 6556 timer.end(function(){ 6557 trigger(target, 'moveend', event); 6558 return fn && fn(); 6559 }); 6560 } 6561 6562 6563 // Set up the DOM 6564 6565 function movestart(e) { 6566 if (e.defaultPrevented) { return; } 6567 if (!e.moveEnabled) { return; } 6568 6569 var event = { 6570 startX: e.startX, 6571 startY: e.startY, 6572 pageX: e.pageX, 6573 pageY: e.pageY, 6574 distX: e.distX, 6575 distY: e.distY, 6576 deltaX: e.deltaX, 6577 deltaY: e.deltaY, 6578 velocityX: e.velocityX, 6579 velocityY: e.velocityY, 6580 identifier: e.identifier, 6581 targetTouches: e.targetTouches, 6582 finger: e.finger 6583 }; 6584 6585 var data = { 6586 target: e.target, 6587 event: event, 6588 timer: new Timer(update), 6589 touch: undefined, 6590 timeStamp: e.timeStamp 6591 }; 6592 6593 function update(time) { 6594 updateEvent(event, data.touch, data.timeStamp); 6595 trigger(data.target, 'move', event); 6596 } 6597 6598 if (e.identifier === undefined) { 6599 // We're dealing with a mouse event. 6600 // Stop clicks from propagating during a move 6601 on(e.target, 'click', preventDefault); 6602 on(document, mouseevents.move, activeMousemove, data); 6603 on(document, mouseevents.end, activeMouseend, data); 6604 } 6605 else { 6606 // In order to unbind correct handlers they have to be unique 6607 data.activeTouchmove = function(e, data) { activeTouchmove(e, data); }; 6608 data.activeTouchend = function(e, data) { activeTouchend(e, data); }; 6609 6610 // We're dealing with a touch. 6611 on(document, touchevents.move, data.activeTouchmove, data); 6612 on(document, touchevents.end, data.activeTouchend, data); 6613 } 6614 } 6615 6616 on(document, 'mousedown', mousedown); 6617 on(document, 'touchstart', touchstart); 6618 on(document, 'movestart', movestart); 6619 6620 6621 // jQuery special events 6622 // 6623 // jQuery event objects are copies of DOM event objects. They need 6624 // a little help copying the move properties across. 6625 6626 if (!window.jQuery) { return; } 6627 6628 var properties = ("startX startY pageX pageY distX distY deltaX deltaY velocityX velocityY").split(' '); 6629 6630 function enableMove1(e) { e.enableMove(); } 6631 function enableMove2(e) { e.enableMove(); } 6632 function enableMove3(e) { e.enableMove(); } 6633 6634 function add(handleObj) { 6635 var handler = handleObj.handler; 6636 6637 handleObj.handler = function(e) { 6638 // Copy move properties across from originalEvent 6639 var i = properties.length; 6640 var property; 6641 6642 while(i--) { 6643 property = properties[i]; 6644 e[property] = e.originalEvent[property]; 6645 } 6646 6647 handler.apply(this, arguments); 6648 }; 6649 } 6650 6651 jQuery.event.special.movestart = { 6652 setup: function() { 6653 // Movestart must be enabled to allow other move events 6654 on(this, 'movestart', enableMove1); 6655 6656 // Do listen to DOM events 6657 return false;
6658 }, 6659 6660 teardown: function() { 6661 off(this, 'movestart', enableMove1); 6662 return false; 6663 }, 6664 6665 add: add 6666 }; 6667 6668 jQuery.event.special.move = { 6669 setup: function() { 6670 on(this, 'movestart', enableMove2); 6671 return false; 6672 }, 6673 6674 teardown: function() { 6675 off(this, 'movestart', enableMove2); 6676 return false; 6677 }, 6678 6679 add: add 6680 }; 6681 6682 jQuery.event.special.moveend = { 6683 setup: function() { 6684 on(this, 'movestart', enableMove3); 6685 return false; 6686 }, 6687 6688 teardown: function() { 6689 off(this, 'movestart', enableMove3); 6690 return false; 6691 }, 6692 6693 add: add 6694 }; 6695}); 6696 6697 $.fn.twentytwenty = function(options) { 6698 var options = $.extend({ 6699 default_offset_pct: 0.5, 6700 orientation: 'horizontal', 6701 before_label: 'Before', 6702 after_label: 'After', 6703 no_overlay: false, 6704 move_slider_on_hover: false, 6705 move_with_handle_only: true, 6706 click_to_move: false 6707 }, options); 6708 6709 return this.each(function() { 6710 6711 var sliderPct = options.default_offset_pct; 6712 var container = $(this); 6713 var sliderOrientation = options.orientation; 6714 var beforeDirection = (sliderOrientation === 'vertical') ? 'down' : 'left'; 6715 var afterDirection = (sliderOrientation === 'vertical') ? 'up' : 'right'; 6716 6717 6718 container.wrap("<div class='twentytwenty-wrapper twentytwenty-" + sliderOrientation + "'></div>"); 6719 if(!options.no_overlay) { 6720 container.append("<div class='twentytwenty-overlay'></div>"); 6721 var overlay = container.find(".twentytwenty-overlay"); 6722 overlay.append("<div class='twentytwenty-before-label' data-content='"+options.before_label+"'></div>"); 6723 overlay.append("<div class='twentytwenty-after-label' data-content='"+options.after_label+"'></div>"); 6724 } 6725 var beforeImg = container.find("img:first"); 6726 var afterImg = container.find("img:last"); 6727 container.append("<div class='twentytwenty-handle style-accent-bg border-accent-color'></div>"); 6728 var slider = container.find(".twentytwenty-handle"); 6729 slider.append("<span class='twentytwenty-" + beforeDirection + "-arrow'></span>"); 6730 slider.append("<span class='twentytwenty-" + afterDirection + "-arrow'></span>"); 6731 container.addClass("twentytwenty-container"); 6732 beforeImg.addClass("twentytwenty-before"); 6733 afterImg.addClass("twentytwenty-after"); 6734 6735 var calcOffset = function(dimensionPct) { 6736 var w = beforeImg.width(); 6737 var h = beforeImg.height(); 6738 return { 6739 w: w+"px", 6740 h: h+"px", 6741 cw: (dimensionPct*w)+"px", 6742 ch: (dimensionPct*h)+"px" 6743 }; 6744 }; 6745 6746 var adjustContainer = function(offset) { 6747 if (sliderOrientation === 'vertical') { 6748 beforeImg.css("clip", "rect(0,"+offset.w+","+offset.ch+",0)"); 6749 afterImg.css("clip", "rect("+offset.ch+","+offset.w+","+offset.h+",0)"); 6750 } 6751 else { 6752 beforeImg.css("clip", "rect(0,"+offset.cw+","+offset.h+",0)"); 6753 afterImg.css("clip", "rect(0,"+offset.w+","+offset.h+","+offset.cw+")"); 6754 } 6755 container.css("height", offset.h); 6756 }; 6757 6758 var adjustSlider = function(pct) { 6759 var offset = calcOffset(pct); 6760 slider.css((sliderOrientation==="vertical") ? "top" : "left", (sliderOrientation==="vertical") ? offset.ch : offset.cw); 6761 adjustContainer(offset); 6762 }; 6763 6764 // Return the number specified or the min/max number if it outside the range given. 6765 var minMaxNumber = function(num, min, max) { 6766 return Math.max(min, Math.min(max, num)); 6767 }; 6768 6769 // Calculate the slider percentage based on the position. 6770 var getSliderPercentage = function(positionX, positionY) { 6771 var sliderPercentage = (sliderOrientation === 'vertical') ? 6772 (positionY-offsetY)/imgHeight : 6773 (positionX-offsetX)/imgWidth; 6774 6775 return minMaxNumber(sliderPercentage, 0, 1); 6776 }; 6777 6778 6779 $(window).on("resize.twentytwenty", function(e) { 6780 adjustSlider(sliderPct); 6781 }); 6782 6783 var offsetX = 0; 6784 var offsetY = 0; 6785 var imgWidth = 0; 6786 var imgHeight = 0; 6787 var onMoveStart = function(e) { 6788 if (((e.distX > e.distY && e.distX < -e.distY) || (e.distX < e.distY && e.distX > -e.distY)) && sliderOrientation !== 'vertical') { 6789 e.preventDefault(); 6790 } 6791 else if (((e.distX < e.distY && e.distX < -e.distY) || (e.distX > e.distY && e.distX > -e.distY)) && sliderOrientation === 'vertical') { 6792 e.preventDefault(); 6793 } 6794 container.addClass("active"); 6795 offsetX = container.offset().left; 6796 offsetY = container.offset().top; 6797 imgWidth = beforeImg.width(); 6798 imgHeight = beforeImg.height(); 6799 }; 6800 var onMove = function(e) { 6801 if (container.hasClass("active")) { 6802 sliderPct = getSliderPercentage(e.pageX, e.pageY); 6803 adjustSlider(sliderPct); 6804 } 6805 }; 6806 var onMoveEnd = function() { 6807 container.removeClass("active"); 6808 }; 6809 6810 var moveTarget = options.move_with_handle_only ? slider : container; 6811 moveTarget.on("movestart",onMoveStart); 6812 moveTarget.on("move",onMove); 6813 moveTarget.on("moveend",onMoveEnd); 6814 6815 if (options.move_slider_on_hover) { 6816 container.on("mouseenter", onMoveStart); 6817 container.on("mousemove", onMove); 6818 container.on("mouseleave", onMoveEnd); 6819 } 6820 6821 slider.on("touchmove", function(e) { 6822 e.preventDefault(); 6823 }); 6824 6825 container.find("img").on("mousedown", function(event) { 6826 event.preventDefault(); 6827 }); 6828 6829 if (options.click_to_move) { 6830 container.on('click', function(e) { 6831 offsetX = container.offset().left; 6832 offsetY = container.offset().top; 6833 imgWidth = beforeImg.width(); 6834 imgHeight = beforeImg.height(); 6835 6836 sliderPct = getSliderPercentage(e.pageX, e.pageY); 6837 adjustSlider(sliderPct); 6838 }); 6839 } 6840 6841 $(window).trigger("resize.twentytwenty"); 6842 }); 6843 }; 6844 6845 6846 $(window).on("load", function(e) { 6847 $('.twentytwenty-container').each(function(){ 6848 var $container = $(this); 6849 if ( ! $('.twentytwenty-wrapper', $container).length ) { 6850 $container.twentytwenty(); 6851 } 6852 $('img', $container).on('async-done', function(){ 6853 if ( ! $('.twentytwenty-wrapper', $container).length ) { 6854 $container.twentytwenty(); 6855 } 6856 }); 6857 }); 6858 }); 6859} 6860 6861UNCODE.justifiedGallery = function() { 6862 6863 var breakPointMe = function( val ) { 6864 val = parseInt( val ); 6865 if ( isNaN(val) ) { 6866 return false;
6867 } 6868 if ( val >= 1500 ) { 6869 return 1; 6870 } else if ( val < 1500 && val >= 960 ) { 6871 return 2; 6872 } else if ( val < 960 && val >= 570 ) { 6873 return 3; 6874 } else if ( val < 570 ) { 6875 return 4; 6876 } 6877 } 6878 6879 var gutterByBreakpoint = function( bp, gutter ) { 6880 var ret; 6881 switch(gutter) { 6882 case 'no-gutter': 6883 ret = 0; 6884 break; 6885 case 'px-gutter': 6886 ret = 1; 6887 break; 6888 case 'half-gutter': 6889 ret = 18; 6890 break; 6891 case 'double-gutter': 6892 switch(bp) { 6893 case 3: 6894 case 4: 6895 ret = 36; 6896 break; 6897 default: 6898 ret = 72; 6899 break; 6900 } 6901 break; 6902 case 'triple-gutter': 6903 switch(bp) { 6904 case 3: 6905 case 4: 6906 ret = 36; 6907 break; 6908 default: 6909 ret = 108; 6910 break; 6911 } 6912 break; 6913 case 'quad-gutter': 6914 switch(bp) { 6915 case 2: 6916 ret = 108; 6917 break; 6918 case 3: 6919 ret = 72; 6920 break; 6921 case 4: 6922 ret = 36; 6923 break; 6924 default: 6925 ret = 144; 6926 break; 6927 } 6928 break; 6929 default: 6930 ret = 36;//single-gutter 6931 } 6932 return ret; 6933 } 6934 6935 if ($('.justified-layout').length > 0) { 6936 var justifiedContainersArray = [], 6937 typeGridArray = [], 6938 layoutGridArray = [], 6939 transitionDuration = [], 6940 $filterItems = [], 6941 $filters = $('.justified-system .isotope-filters'), 6942 $itemSelector = '.tmb', 6943 $items, 6944 itemMargin, 6945 correctionFactor = 0, 6946 firstLoad = true, 6947 isOriginLeft = $('body').hasClass('rtl') ? false : true, 6948 prevW = breakPointMe(UNCODE.wwidth); 6949 $('[class*="justified-container"]').each(function() { 6950 var isoData = $(this).data(); 6951 transitionDuration.push($('.t-inside.animate_when_almost_visible', this).length > 0 ? 0 : '0.5s'); 6952 if (isoData.type == 'metro') typeGridArray.push(true); 6953 else typeGridArray.push(false); 6954 if (isoData.layout !== undefined) layoutGridArray.push(isoData.layout); 6955 else layoutGridArray.push('justified'); 6956 justifiedContainersArray.push($(this)); 6957 }); 6958 var init_justifiedGallery = function() { 6959 for (var i = 0, len = justifiedContainersArray.length; i < len; i++) { 6960 var justifiedSystem = $(justifiedContainersArray[i]).closest($('.justified-system')), 6961 justifiedId = justifiedSystem.attr('id'), 6962 $layoutMode = layoutGridArray[i], 6963 gutter = $(justifiedContainersArray[i]).data('gutter'), 6964 rowHeight = $(justifiedContainersArray[i]).data('row-height'), 6965 maxRowHeight = $(justifiedContainersArray[i]).data('max-row-height'), 6966 lastRow = $(justifiedContainersArray[i]).data('last-row'), 6967 margins; 6968 6969 rowHeight = typeof rowHeight === 'undefined' || rowHeight === '' ? 250 : parseFloat(rowHeight); 6970 maxRowHeight = typeof maxRowHeight === 'undefined' || maxRowHeight === '' ? false : parseFloat(maxRowHeight); 6971 lastRow = typeof lastRow === 'undefined' || lastRow === '' ? 'nojustify' : lastRow; 6972 6973 margins = gutterByBreakpoint(prevW, gutter); 6974 6975 $(justifiedContainersArray[i]).justifiedGallery({ 6976 rowHeight: rowHeight, 6977 maxRowHeight: maxRowHeight, 6978 margins: margins, 6979 cssAnimation: true, 6980 lastRow: lastRow, 6981 waitThumbnailsLoad: false 6982 }).one('jg.complete', function(){ onLayout($(this), 0); } ); 6983 6984 if ($(justifiedContainersArray[i]).hasClass('isotope-infinite') && $.fn.infinitescroll) { 6985 $(justifiedContainersArray[i]).infinitescroll({ 6986 navSelector: '#' + justifiedId + ' .loadmore-button', // selector for the pagination container 6987 nextSelector: '#' + justifiedId + ' .loadmore-button a', // selector for the NEXT link (to page 2) 6988 itemSelector: '#' + justifiedId + ' .justified-layout .tmb, #' + justifiedId + ' .isotope-filters li', // selector for all items you'll retrieve 6989 animate: false, 6990 behavior: 'local', 6991 debug: false, 6992 loading: { 6993 selector: '#' + justifiedId + '.justified-system .justified-footer-inner', 6994 speed: 0, 6995 finished: undefined, 6996 msg: $('#' + justifiedId + ' .loadmore-button'), 6997 }, 6998 errorCallback: function() { 6999 var justified_system = $(this).closest('.justified-system'); 7000 $('.loading-button', justified_system).hide(); 7001 $('.loadmore-button', justified_system).attr('style', 'display:none !important'); 7002 } 7003 }, 7004 // append the new items to galleryJustified on the infinitescroll callback function. 7005 function(newElements, opts) { 7006 var $galleryJustified = $(this), 7007 justifiedId = $galleryJustified.closest('.justified-system').attr('id'), 7008 filters = new Array(), 7009 $loading_button = $galleryJustified.closest('.justified-system').find('.loading-button'), 7010 $infinite_button = $galleryJustified.closest('.justified-system').find('.loadmore-button'), 7011 $numPages = $('a', $infinite_button).data('pages'),
7012 delay = 300; 7013 $('a', $infinite_button).html($('a', $infinite_button).data('label')); 7014 $infinite_button.show(); 7015 $loading_button.hide(); 7016 if ( $numPages != undefined && opts.state.currPage == $numPages) $infinite_button.hide(); 7017 $('> li', $galleryJustified).remove(); 7018 $.each($(newElements), function(index, val) { 7019 $(val).addClass('tmb-iso'); 7020 if ($(val).is("li")) { 7021 filters.push($(val)[0]); 7022 } 7023 $(val).addClass('uncode-appended'); 7024 }); 7025 newElements = newElements.filter(function(x) { 7026 return filters.indexOf(x) < 0 7027 }); 7028 $.each($(filters), function(index, val) { 7029 if ($('#' + justifiedId + ' a[data-filter="' + $('a', val).attr('data-filter') + '"]').length == 0) $('#' + justifiedId + ' .isotope-filters ul').append($(val)); 7030 }); 7031 $galleryJustified.justifiedGallery('norewind', onLayout($galleryJustified, newElements.length)); 7032 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 7033 var getLightbox = UNCODE.lightboxArray['ilightbox_' + justifiedId]; 7034 if (typeof getLightbox === 'object') { 7035 getLightbox.refresh(); 7036 } else { 7037 UNCODE.lightbox(); 7038 } 7039 } 7040 if ( typeof twttr !== 'undefined' ) 7041 twttr.widgets.load(justifiedContainersArray[i]); 7042 7043 requestTimeout(function() { 7044 $galleryJustified.trigger('more-items-loaded'); 7045 $(window).trigger('more-items-loaded'); 7046 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 7047 }, 1000); 7048 }); 7049 if ($(justifiedContainersArray[i]).hasClass('isotope-infinite-button')) { 7050 var $infinite_justified = $(justifiedContainersArray[i]), 7051 $infinite_button = $infinite_justified.closest('.justified-system').find('.loadmore-button a'); 7052 $infinite_justified.infinitescroll('pause'); 7053 $infinite_button.on('click', function(event) { 7054 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 7055 $.each(UNCODE.lightboxArray, function(index, val) { 7056 UNCODE.lightboxArray[index].destroy(); 7057 }); 7058 } 7059 event.preventDefault(); 7060 var $justified_system = $(event.target).closest('.justified-system'), 7061 $infinite_justified = $justified_system.find('.justified-container'), 7062 justifiedId = $justified_system.attr('id'); 7063 $(event.currentTarget).html(SiteParameters.loading); 7064 $infinite_justified.infinitescroll('resume'); 7065 $infinite_justified.infinitescroll('retrieve'); 7066 $infinite_justified.infinitescroll('pause'); 7067 $infinite_justified.trigger('more-items-loaded'); 7068 $(window).trigger('more-items-loaded'); 7069 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 7070 }); 7071 } 7072 } 7073 } 7074 }, 7075 onLayout = function(justifiedObj, startIndex) { 7076 justifiedObj.css('opacity', 1); 7077 justifiedObj.closest('.justified-system').find('.justified-footer').css('opacity', 1); 7078 $('.tmb', justifiedObj).addClass('justified-object-loaded'); 7079 7080 requestTimeout(function() { 7081 // window.dispatchEvent(UNCODE.boxEvent); 7082 UNCODE.adaptive(); 7083 if (SiteParameters.dynamic_srcset_active === '1') { 7084 UNCODE.refresh_dynamic_srcset_size(justifiedObj); 7085 } 7086 if (typeof MediaElement === "function") { 7087 $(justifiedObj).find('audio,video').each(function() { 7088 $(this).mediaelementplayer({ 7089 pauseOtherPlayers: false, 7090 }); 7091 }); 7092 } 7093 if ($(justifiedObj).find('.nested-carousel').length) { 7094 if (typeof UNCODE.carousel !== 'undefined') { 7095 UNCODE.carousel($(justifiedObj).find('.nested-carousel')); 7096 } 7097 requestTimeout(function() { 7098 boxAnimation($('.tmb', justifiedObj), startIndex, true, justifiedObj); 7099 justifiedObj.addClass('justified-gallery-finished') 7100 Waypoint.refreshAll(); 7101 }, 200); 7102 } else { 7103 requestTimeout(function() { 7104 boxAnimation($('.tmb', justifiedObj), startIndex, true, justifiedObj); 7105 justifiedObj.addClass('justified-gallery-finished') 7106 Waypoint.refreshAll(); 7107 }, 300); 7108 } 7109 }, 100); 7110 7111 }, 7112 boxAnimation = function(items, startIndex, sequential, container) { 7113 var $allItems = items.length - startIndex, 7114 showed = 0, 7115 index = 0; 7116 if (container.closest('.owl-item').length == 1) return false;
7117 $.each(items, function(index, val) { 7118 var elInner = $('> .t-inside', val); 7119 if (UNCODE.isUnmodalOpen && !val.closest('#unmodal-content')) { 7120 return; 7121 } 7122 if (val[0]) val = val[0]; 7123 if (elInner.hasClass('animate_when_almost_visible') && !elInner.hasClass('force-anim')) { 7124 new Waypoint({ 7125 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 7126 element: val, 7127 handler: function() { 7128 var element = $('> .t-inside', this.element), 7129 parent = $(this.element), 7130 currentIndex = parent.index(); 7131 var delay = (!sequential) ? index : ((startIndex !== 0) ? currentIndex - $allItems : currentIndex), 7132 delayAttr = parseInt(element.attr('data-delay')); 7133 if (isNaN(delayAttr)) delayAttr = 100; 7134 delay -= showed; 7135 var objTimeout = requestTimeout(function() { 7136 element.removeClass('zoom-reverse').addClass('start_animation'); 7137 showed = parent.index(); 7138 }, delay * delayAttr); 7139 parent.data('objTimeout', objTimeout); 7140 if (!UNCODE.isUnmodalOpen) { 7141 this.destroy(); 7142 } 7143 }, 7144 offset: '100%' 7145 }) 7146 } else { 7147 elInner.removeClass('animate_when_almost_visible'); 7148 $(val).addClass('no-waypoint-animation'); 7149 /*if (elInner.hasClass('force-anim')) { 7150 elInner.addClass('start_animation'); 7151 } else { 7152 elInner.css('opacity', 1); 7153 }*/ 7154 } 7155 index++; 7156 }); 7157 }; 7158 $filters.on('click', 'a[data-filter]', function(evt) { 7159 var $filter = $(this), 7160 filterContainer = $filter.closest('.isotope-filters'), 7161 filterValue = $filter.attr('data-filter'), 7162 container = $filter.closest('.justified-system').find($('.justified-layout')), 7163 lastRow = container.data('last-row'), 7164 transitionDuration = 0, 7165 delay = 300, 7166 filterItems = []; 7167 7168 lastRow = typeof lastRow === 'undefined' || lastRow === '' ? 'nojustify' : lastRow; 7169 7170 var filter_items = function(){ 7171 if (filterValue !== undefined) { 7172 $.each($('> .tmb > .t-inside', container), function(index, val) { 7173 var parent = $(val).parent(), 7174 objTimeout = parent.data('objTimeout'); 7175 if (objTimeout) { 7176 $(val).removeClass('zoom-reverse'); 7177 clearRequestTimeout(objTimeout); 7178 } 7179 if (transitionDuration == 0) { 7180 if ($(val).hasClass('animate_when_almost_visible')) { 7181 $(val).addClass('zoom-reverse').removeClass('start_animation'); 7182 } else { 7183 $(val).addClass('animate_when_almost_visible zoom-reverse zoom-anim force-anim'); 7184 } 7185 } 7186 }); 7187 7188 requestTimeout(function() { 7189 var $block, 7190 selector, 7191 lightboxElements, 7192 $boxes; 7193 7194 if ( filterValue !== '' && filterValue !== '*' ) { 7195 $('[data-lbox^=ilightbox]', container).addClass('lb-disabled'); 7196 selector = '.' + filterValue; 7197 $.each($(selector, container), function(index, block) { 7198 lightboxElements = $('[data-lbox^=ilightbox]', block); 7199 if (lightboxElements.length) { 7200 lightboxElements.removeClass('lb-disabled'); 7201 container.data('lbox', $(lightboxElements[0]).data('lbox')); 7202 } 7203 filterItems.push(block); 7204 }); 7205 container.justifiedGallery({ 7206 filter: selector, 7207 lastRow: 'nojustify' 7208 }); 7209 } else { 7210 container.justifiedGallery({ 7211 filter: false, 7212 lastRow: lastRow 7213 }); 7214 $('[data-lbox^=ilightbox]', $block).removeClass('lb-disabled'); 7215 filterItems = $('> .tmb', container); 7216 } 7217 container.trigger('more-items-loaded'); 7218 $(window).trigger('more-items-loaded'); 7219 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 7220 7221 $('.t-inside.zoom-reverse', container).removeClass('zoom-reverse'); 7222 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 7223 var getLightbox = UNCODE.lightboxArray[container.data('lbox')]; 7224 if (typeof getLightbox === 'object') { 7225 getLightbox.refresh(); 7226 } else { 7227 UNCODE.lightbox(); 7228 } 7229 } 7230 7231 if (transitionDuration == 0) { 7232 requestTimeout(function() { 7233 boxAnimation(filterItems, 0, false, container); 7234 }, 100); 7235 } 7236 requestTimeout(function() { 7237 Waypoint.refreshAll(); 7238 container.trigger('more-items-loaded'); 7239 $(window).trigger('more-items-loaded'); 7240 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 7241 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 7242 $(document).trigger('uncode-scrolltrigger-refresh'); 7243 } 7244 }, 2000); 7245 7246 }, delay); 7247 } else { 7248 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 7249 $.each(UNCODE.lightboxArray, function(index, val) { 7250 UNCODE.lightboxArray[index].destroy(); 7251 }); 7252 } 7253 $.each($('> .tmb > .t-inside', container), function(index, val) { 7254 var parent = $(val).parent(), 7255 objTimeout = parent.data('objTimeout'); 7256 if (objTimeout) { 7257 $(val).removeClass('zoom-reverse').removeClass('start_animation') 7258 clearRequestTimeout(objTimeout); 7259 } 7260 if (transitionDuration == 0) { 7261 if ($(val).hasClass('animate_when_almost_visible')) { 7262 $(val).addClass('zoom-reverse').removeClass('start_animation'); 7263 } else { 7264 $(val).addClass('animate_when_almost_visible zoom-reverse zoom-anim force-anim'); 7265 } 7266 } 7267 }); 7268 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 7269 UNCODE.lightbox(); 7270 } 7271 container.parent().addClass('justified-loading'); 7272 container.trigger('more-items-loaded'); 7273 $(window).trigger('more-items-loaded'); 7274 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 7275 } 7276 }; 7277 7278 if (!$filter.hasClass('active')) { 7279 /** Scroll top with filtering */ 7280 if (filterContainer.hasClass('filter-scroll')) { 7281 var calc_scroll = SiteParameters.index_pagination_scroll_to != false ? eval(SiteParameters.index_pagination_scroll_to) : container.closest('.row-parent').offset().top; 7282 calc_scroll -= UNCODE.get_scroll_offset(); 7283 7284 var bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 7285 delta = bodyTop - calc_scroll, 7286 scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed, 7287 filterTolerance = false, 7288 filter_timeout; 7289 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 7290 7291 if ( !UNCODE.isFullPage ) { 7292 if (scrollSpeed == 0) { 7293 $('html, body').scrollTop(calc_scroll); 7294 UNCODE.scrolling = false;
7295 filter_items(); 7296 } else { 7297 7298 if ( bodyTop <= (calc_scroll+20) && bodyTop >= (calc_scroll-20) ) { 7299 filter_items(); 7300 filterTolerance = true; 7301 } 7302 7303 $('html, body').animate({ 7304 scrollTop: calc_scroll 7305 },{ 7306 easing: 'easeInOutQuad', 7307 duration: scrollSpeed, 7308 complete: function(){ 7309 UNCODE.scrolling = false; 7310 if ( !filterTolerance ) { 7311 filter_timeout = setTimeout(function(){ 7312 clearTimeout(filter_timeout); 7313 filter_items(); 7314 }, 200); 7315 } 7316 } 7317 }); 7318 } 7319 } 7320 } else { 7321 filter_items(); 7322 } 7323 } 7324 evt.preventDefault(); 7325 }); 7326 7327 $filters.each(function(i, buttonGroup) { 7328 var $buttonGroup = $(buttonGroup); 7329 $buttonGroup.on('click', 'a', function() { 7330 $buttonGroup.find('.active').removeClass('active'); 7331 $(this).addClass('active'); 7332 }); 7333 7334 var $cats_mobile_trigger = $('.menu-smart--filter-cats_mobile-toggle-trigger', $buttonGroup), 7335 $cats_mobile_toggle = $('.menu-smart--filter-cats_mobile-toggle', $buttonGroup), 7336 $cats_filters = $('.menu-smart--filter-cats', $buttonGroup); 7337 $buttonGroup.on('click', 'a.menu-smart--filter-cats_mobile-toggle-trigger', function(e) { 7338 e.preventDefault(); 7339 $cats_filters.slideToggle(400, 'easeInOutCirc'); 7340 }); 7341 }); 7342 window.addEventListener('boxResized', function(e) { 7343 if ( prevW !== breakPointMe(UNCODE.wwidth) ) { 7344 prevW = breakPointMe(UNCODE.wwidth); 7345 $.each($('.justified-layout'), function(index, val) { 7346 var gutter = $(this).data('gutter'), 7347 margins = gutterByBreakpoint( prevW, gutter); 7348 $(this).justifiedGallery({ 7349 margins: margins 7350 }); 7351 $(this).find('.mejs-video,.mejs-audio').each(function() { 7352 $(this).trigger('resize'); 7353 }); 7354 }); 7355 } 7356 }, false); 7357 7358 init_justifiedGallery(); 7359 }; 7360}; 7361 7362UNCODE.cssGrid = function() { 7363 if ($('.cssgrid-layout').length > 0) { 7364 var cssGridContainersArray = []; 7365 var transitionDuration = []; 7366 var $filters = $('.cssgrid-system .cssgrid-filters'); 7367 7368 $('[class*="cssgrid-container"]').each(function() { 7369 cssGridContainersArray.push($(this)); 7370 transitionDuration.push($('.t-inside.animate_when_almost_visible', this).length > 0 ? 0 : '0.5s'); 7371 }); 7372 7373 var init_cssGridAjax = function() { 7374 for (var i = 0, len = cssGridContainersArray.length; i < len; i++) { 7375 var cssGridSystem = $(cssGridContainersArray[i]).closest($('.cssgrid-system')), 7376 cssGridId = cssGridSystem.attr('id'); 7377 7378 cssGridSystem.data('transitionDuration', transitionDuration[i]); 7379 7380 if ($(cssGridContainersArray[i]).hasClass('cssgrid-infinite') && $.fn.infinitescroll) { 7381 $(cssGridContainersArray[i]).infinitescroll({ 7382 navSelector: '#' + cssGridId + ' .loadmore-button', // selector for the pagination container 7383 nextSelector: '#' + cssGridId + ' .loadmore-button a', // selector for the NEXT link (to page 2) 7384 itemSelector: '#' + cssGridId + ' .cssgrid-layout .tmb, #' + cssGridId + ' .grid-filters li.filter-cat, #' + cssGridId + ' .woocommerce-result-count-wrapper--default', // selector for all items you'll retrieve 7385 animate: false, 7386 behavior: 'local', 7387 debug: false, 7388 loading: { 7389 selector: '#' + cssGridId + '.cssgrid-system .cssgrid-footer-inner', 7390 speed: 0, 7391 finished: undefined, 7392 msg: $('#' + cssGridId + ' .loadmore-button'), 7393 }, 7394 errorCallback: function() { 7395 var cssgrid_system = $(this).closest('.cssgrid-system'); 7396 $('.loading-button', cssgrid_system).hide(); 7397 $('.loadmore-button', cssgrid_system).attr('style', 'display:none !important'); 7398 } 7399 }, 7400 // append the new items to cssGrid on the infinitescroll callback function. 7401 function(newElements, opts) { 7402 var $cssGrid = $(this), 7403 cssGridSystemCont = $cssGrid.closest('.cssgrid-system'), 7404 cssGridId = cssGridSystemCont.attr('id'), 7405 filters = new Array(), 7406 $loading_button = cssGridSystemCont.find('.loading-button'), 7407 $infinite_button = cssGridSystemCont.find('.loadmore-button'), 7408 $numPages = $('a', $infinite_button).data('pages'), 7409 $woo_results,
7410 delay = 300; 7411 $('a', $infinite_button).html($('a', $infinite_button).data('label')); 7412 $infinite_button.show(); 7413 $loading_button.hide(); 7414 if ( $numPages != undefined && opts.state.currPage == $numPages) $infinite_button.hide(); 7415 $('> li', $cssGrid).remove(); 7416 $('.cssgrid-container').find('.woocommerce-result-count-wrapper').remove(); 7417 $.each($(newElements), function (index, val) { 7418 if ($(val).hasClass('woocommerce-result-count-wrapper')) { 7419 $woo_results = $(val); 7420 delete newElements[index]; 7421 } else { 7422 $(val).addClass('tmb-grid'); 7423 if ($(val).is("li")) { 7424 filters.push($(val)[0]); 7425 } 7426 } 7427 $(val).addClass('uncode-appended'); 7428 }); 7429 newElements = newElements.filter(function(x) { 7430 return filters.indexOf(x) < 0 7431 }); 7432 $.each($(filters), function(index, val) { 7433 if ($('#' + cssGridId + ' a[data-filter="' + $('a', val).attr('data-filter') + '"]').length == 0) $('#' + cssGridId + ' .grid-filters ul').append($(val)); 7434 }); 7435 if ($woo_results && $woo_results.length > 0) { 7436 var old_count = cssGridSystemCont.find('.woocommerce-result-count').text(); 7437 var new_count = $woo_results.find('.woocommerce-result-count').text(); 7438 var old_start = old_count.match(/(\d+)–(\d+)/)[1]; 7439 var new_end = new_count.match(/(\d+)–(\d+)/)[2]; 7440 function replaceMatch(match, p1, p2) { 7441 return old_start + '–' + new_end; 7442 } 7443 var new_count_text = old_count.replace(/(\d+)–(\d+)/, replaceMatch); 7444 cssGridSystemCont.find('.woocommerce-result-count').text(new_count_text); 7445 } 7446 7447 var filterValue = cssGridSystemCont.find('.grid-nav-link.active').attr('data-filter');
7448 var sequential = cssGridSystemCont.hasClass('cssgrid-animate-sequential') ? true : false; 7449 if (filterValue !== undefined && filterValue != '*') { 7450 $(newElements).hide(); 7451 var els_to_show = $(); 7452 $(newElements).each(function() { 7453 var el = $(this); 7454 if (el.hasClass(filterValue)) { 7455 els_to_show = els_to_show.add(el); 7456 el.show(); 7457 } 7458 }); 7459 UNCODE.animate_css_grids(cssGridSystemCont, els_to_show, els_to_show.length, sequential, true); 7460 } else { 7461 UNCODE.animate_css_grids(cssGridSystemCont, $(newElements), $(newElements).length, sequential, true); 7462 } 7463 7464 UNCODE.adaptive(); 7465 if (SiteParameters.dynamic_srcset_active === '1') { 7466 UNCODE.refresh_dynamic_srcset_size($cssGrid); 7467 } 7468 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 7469 var getLightbox = UNCODE.lightboxArray['ilightbox_' + cssGridId]; 7470 if (typeof getLightbox === 'object') { 7471 getLightbox.refresh(); 7472 } else { 7473 UNCODE.lightbox(); 7474 } 7475 } 7476 if ( typeof twttr !== 'undefined' ) { 7477 twttr.widgets.load(cssGridContainersArray[i]); 7478 } 7479 7480 UNCODE.carousel($(newElements)); 7481 requestTimeout(function() { 7482 $cssGrid.trigger('more-items-loaded'); 7483 $(window).trigger('more-items-loaded'); 7484 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 7485 }, 1000); 7486 7487 }); 7488 if ($(cssGridContainersArray[i]).hasClass('cssgrid-infinite-button')) { 7489 var $cssgrid_el = $(cssGridContainersArray[i]), 7490 $infinite_button = $cssgrid_el.closest('.cssgrid-system').find('.loadmore-button a'); 7491 $cssgrid_el.infinitescroll('pause'); 7492 $infinite_button.on('click', function(event) { 7493 event.preventDefault(); 7494 var $cssgrid_system = $(event.target).closest('.cssgrid-system'), 7495 $cssgrid_el = $cssgrid_system.find('.cssgrid-container'), 7496 cssGridId = $cssgrid_system.attr('id'); 7497 $(event.currentTarget).html(SiteParameters.loading); 7498 $cssgrid_el.infinitescroll('resume'); 7499 $cssgrid_el.infinitescroll('retrieve'); 7500 $cssgrid_el.infinitescroll('pause'); 7501 }); 7502 } 7503 } 7504 } 7505 }; 7506 7507 init_cssGridAjax(); 7508 7509 if ($('.cssgrid-pagination').length > 0) { 7510 $('.cssgrid-system').on('click', '.pagination a', function(evt) { 7511 evt.preventDefault(); 7512 7513 if (SiteParameters.index_pagination_disable_scroll !== '1') { 7514 var container = $(this).closest('.cssgrid-system'), 7515 pagination_disable_scroll = container.attr('data-pagination-scroll'), 7516 calc_scroll = SiteParameters.index_pagination_scroll_to != false ? eval(SiteParameters.index_pagination_scroll_to) : container.closest('.row-parent').offset().top; 7517 7518 if ( pagination_disable_scroll !== 'disabled' ) { 7519 calc_scroll -= UNCODE.get_scroll_offset(); 7520 7521 var menu_container = $('.menu-sticky'); 7522 var menu = menu_container.find('.menu-container'); 7523 7524 if (menu_container.length > 0 && menu.length > 0) { 7525 calc_scroll = calc_scroll - menu.outerHeight(); 7526 } 7527 7528 var bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 7529 delta = bodyTop - calc_scroll, 7530 scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed; 7531 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 7532 7533 if ( !UNCODE.isFullPage ) { 7534 if (scrollSpeed == 0) { 7535 $('html, body').scrollTop(calc_scroll); 7536 } else { 7537 $('html, body').animate({ 7538 scrollTop: calc_scroll 7539 },{ 7540 easing: 'easeInOutQuad', 7541 duration: scrollSpeed, 7542 complete: function(){ 7543 UNCODE.scrolling = false; 7544 } 7545 }); 7546 } 7547 } 7548 } 7549 } 7550 7551 loadCssGrid($(this), true); 7552 }); 7553 } 7554 7555 $filters.on('click', 'a.grid-nav-link', function(evt) { 7556 if ($(this).hasClass('no-grid-filter')) { 7557 return; 7558 } 7559 var $filter = $(this), 7560 filterContainer = $filter.closest('.cssgrid-filters'), 7561 filterValue = $filter.attr('data-filter'), 7562 containerSystem = $filter.closest('.cssgrid-system'), 7563 container = containerSystem.find($('.cssgrid-layout')), 7564 transitionDuration = containerSystem.data('transitionDuration'),
7565 delay = 300, 7566 filterItems = [], 7567 all_thumbs = container.find('.tmb-grid'); 7568 7569 var filter_items = function(){ 7570 if (filterValue !== undefined) { 7571 $.each($('> .tmb-grid > .t-inside', container), function(index, val) { 7572 var parent = $(val).parent(), 7573 objTimeout = parent.data('objTimeout'); 7574 if (objTimeout) { 7575 $(val).removeClass('zoom-reverse').removeClass('start_animation') 7576 clearRequestTimeout(objTimeout); 7577 } 7578 if (transitionDuration == 0) { 7579 if ($(val).hasClass('animate_when_almost_visible')) { 7580 $(val).addClass('zoom-reverse').removeClass('start_animation'); 7581 } else { 7582 $(val).addClass('animate_when_almost_visible zoom-reverse zoom-anim force-anim'); 7583 } 7584 } 7585 }); 7586 requestTimeout(function(){ 7587 if ( filterValue == '*' ) { 7588 all_thumbs.show(); 7589 all_thumbs.each(function(index, val) { 7590 $(val).find('[data-lbox^=ilightbox]').removeClass('lb-disabled'); 7591 filterItems.push($(this)); 7592 }); 7593 } else { 7594 all_thumbs.each(function() { 7595 var _tmb = $(this); 7596 if (_tmb.hasClass(filterValue)) { 7597 _tmb.show(); 7598 _tmb.find('[data-lbox^=ilightbox]').removeClass('lb-disabled'); 7599 filterItems.push(_tmb); 7600 } else { 7601 _tmb.find('[data-lbox^=ilightbox]').addClass('lb-disabled'); 7602 _tmb.hide(); 7603 } 7604 }); 7605 } 7606 7607 $('.t-inside.zoom-reverse', container).removeClass('zoom-reverse'); 7608 7609 var sequential = containerSystem.hasClass('cssgrid-animate-sequential') ? true : false; 7610 UNCODE.animate_css_grids(containerSystem, filterItems, 0, sequential, true); 7611 var lightboxElements = $('[data-lbox^=ilightbox]', container); 7612 if (lightboxElements.length) { 7613 container.data('lbox', $(lightboxElements[0]).data('lbox')); 7614 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 7615 var getLightbox = UNCODE.lightboxArray['ilightbox_' + container.closest('.cssgrid-system').attr('id')]; 7616 if (typeof getLightbox === 'object') { 7617 getLightbox.refresh(); 7618 } else { 7619 UNCODE.lightbox(); 7620 } 7621 } 7622 } 7623 container.trigger('more-items-loaded'); 7624 $(window).trigger('more-items-loaded'); 7625 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 7626 }, delay); 7627 } else { 7628 $.each($('> .tmb-grid > .t-inside', container), function(index, val) { 7629 var parent = $(val).parent(), 7630 objTimeout = parent.data('objTimeout'); 7631 if (objTimeout) { 7632 $(val).removeClass('zoom-reverse').removeClass('start_animation') 7633 clearRequestTimeout(objTimeout); 7634 } 7635 if (transitionDuration == 0) { 7636 if ($(val).hasClass('animate_when_almost_visible')) { 7637 $(val).addClass('zoom-reverse').removeClass('start_animation'); 7638 } else { 7639 $(val).addClass('animate_when_almost_visible zoom-reverse zoom-anim force-anim'); 7640 } 7641 } 7642 }); 7643 loadCssGrid($filter); 7644 } 7645 }; 7646 7647 if (!$filter.hasClass('active')) { 7648 /** Scroll top with filtering */ 7649 if (filterContainer.hasClass('filter-scroll')) { 7650 var calc_scroll = SiteParameters.index_pagination_scroll_to != false ? eval(SiteParameters.index_pagination_scroll_to) : container.closest('.row-parent').offset().top; 7651 calc_scroll -= UNCODE.get_scroll_offset(); 7652 7653 var bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 7654 delta = bodyTop - calc_scroll, 7655 scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed, 7656 filterTolerance = false, 7657 filter_timeout; 7658 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 7659 7660 if ( !UNCODE.isFullPage ) { 7661 if (scrollSpeed == 0) { 7662 $('html, body').scrollTop(calc_scroll); 7663 UNCODE.scrolling = false; 7664 filter_items(); 7665 } else { 7666 7667 if ( bodyTop <= (calc_scroll+20) && bodyTop >= (calc_scroll-20) ) { 7668 filter_items(); 7669 filterTolerance = true; 7670 } 7671 7672 $('html, body').animate({ 7673 scrollTop: calc_scroll 7674 },{ 7675 easing: 'easeInOutQuad', 7676 duration: scrollSpeed, 7677 complete: function(){ 7678 UNCODE.scrolling = false;
7679 if ( !filterTolerance ) { 7680 filter_timeout = setTimeout(function(){ 7681 clearTimeout(filter_timeout); 7682 filter_items(); 7683 }, 200); 7684 } 7685 } 7686 }); 7687 } 7688 } 7689 } else { 7690 filter_items(); 7691 } 7692 } 7693 evt.preventDefault(); 7694 }); 7695 7696 $(window).off('popstate.cssgrid').on("popstate.cssgrid", function(e) { 7697 var params = UNCODE.getURLParams(window.location); 7698 var old_params = UNCODE.getURLParams(UNCODE.lastURL, true); 7699 7700 UNCODE.lastURL = window.location.href; 7701 7702 if (UNCODE.hasEqualURLParams(params, old_params) || ($.isEmptyObject(params) && $.isEmptyObject(old_params)) || params.form !== undefined) { 7703 return; 7704 } 7705 7706 if (params.id === undefined) { 7707 $.each($('.cssgrid-system'), function(index, val) { 7708 loadCssGrid($(val)); 7709 }); 7710 } else { 7711 if (!params.hasOwnProperty(SiteParameters.ajax_filter_key_unfilter)) { 7712 loadCssGrid($('#' + params.id)); 7713 } 7714 } 7715 }); 7716 7717 var loadCssGrid = function($href, $paginating) { 7718 var is_paginating = false; 7719 7720 if (undefined !== $paginating && $paginating) { 7721 var is_paginating = $paginating; 7722 } 7723 7724 var href = ($href.is("a") ? $href.attr('href') : location), 7725 cssgridSystem = ($href.is("a") ? $href.closest($('.cssgrid-system')) : $href), 7726 cssgridWrapper = cssgridSystem.find($('.cssgrid-wrapper')), 7727 cssgridFooter = cssgridSystem.find($('.cssgrid-footer-inner')), 7728 cssgridResultCount = cssgridSystem.find($('.woocommerce-result-count-wrapper')), 7729 cssgridContainer = cssgridSystem.find($('.cssgrid-layout')), 7730 cssgridId = cssgridSystem.attr('id'); 7731 if ( $href.is("a") && ! cssgridSystem.hasClass('un-no-history') ) { 7732 UNCODE.lastURL = href; 7733 history.pushState({ 7734 myCSSgrid: true 7735 }, document.title, href); 7736 } 7737 cssgridWrapper.addClass('cssgrid-loading'); 7738 if (is_paginating) { 7739 cssgridWrapper.addClass('grid-filtering'); 7740 } 7741 $.ajax({ 7742 url: href 7743 }).done(function(data) { 7744 var $resultItems = $(data).find('#' + cssgridId + ' .cssgrid-layout').html(), 7745 $resultPagination = $(data).find('#' + cssgridId + ' .pagination')[0], 7746 $resultCount = $(data).find('#' + cssgridId + ' .woocommerce-result-count')[0]; 7747 requestTimeout(function() { 7748 cssgridContainer.html($resultItems); 7749 cssgridWrapper.removeClass('cssgrid-loading'); 7750 cssgridWrapper.removeClass('grid-filtering'); 7751 var sequential = cssgridSystem.hasClass('cssgrid-animate-sequential') ? true : false; 7752 UNCODE.animate_css_grids(cssgridSystem, cssgridContainer.find('.tmb-grid'), 0, sequential, false); 7753 UNCODE.adaptive(); 7754 if (SiteParameters.dynamic_srcset_active === '1') { 7755 UNCODE.refresh_dynamic_srcset_size(cssgridContainer); 7756 } 7757 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 7758 var getLightbox = UNCODE.lightboxArray['ilightbox_' + cssgridContainer.closest('.cssgrid-system').attr('id')]; 7759 if (typeof getLightbox === 'object') { 7760 getLightbox.refresh(); 7761 } else { 7762 UNCODE.lightbox(); 7763 } 7764 } 7765 cssgridContainer.trigger('more-items-loaded'); 7766 $(window).trigger('more-items-loaded'); 7767 window.dispatchEvent(new CustomEvent('uncode-more-items-loaded')); 7768 }, 300); 7769 7770 $('.pagination', cssgridFooter).remove(); 7771 cssgridFooter.append($resultPagination); 7772 7773 if (cssgridResultCount.length > 0) { 7774 $('.woocommerce-result-count', cssgridResultCount).remove(); 7775 cssgridResultCount.append($resultCount); 7776 } 7777 }); 7778 }; 7779 7780 $filters.each(function(i, buttonGroup) { 7781 var $buttonGroup = $(buttonGroup); 7782 $buttonGroup.on('click', 'a:not(.no-grid-filter)', function() { 7783 $buttonGroup.find('.active').removeClass('active'); 7784 $(this).addClass('active'); 7785 7786 }); 7787 7788 var $cats_mobile_trigger = $('.menu-smart--filter-cats_mobile-toggle-trigger', $buttonGroup), 7789 $cats_mobile_toggle = $('.menu-smart--filter-cats_mobile-toggle', $buttonGroup), 7790 $cats_filters = $('.menu-smart--filter-cats', $buttonGroup); 7791 $buttonGroup.on('click', 'a.menu-smart--filter-cats_mobile-toggle-trigger', function(e) { 7792 e.preventDefault(); 7793 $cats_filters.slideToggle(400, 'easeInOutCirc'); 7794 }); 7795 7796 }); 7797 }; 7798}; 7799 7800UNCODE.linearGrid = function(){ 7801 $('.linear-wrapper').each(function(){ 7802 var $wrap = $(this), 7803 $system = $wrap.closest('.linear-system'), 7804 $dragger = $('[data-dragger]', $system), 7805 $row = $wrap.closest('.vc_row[data-parent]'),
7806 _row = $row[0], 7807 $cont = $('.linear-container.cont-leader:not(.cont-appended)', $wrap), 7808 vertical = $cont.hasClass('linear-or-vertical'), 7809 clone = $wrap.attr('data-infinite') === 'yes' || vertical, 7810 freezedDesktop = $wrap.attr('data-freeze') === 'always' || $wrap.attr('data-freeze') === 'desktop', 7811 freezedMobile = $wrap.attr('data-freeze') === 'always' || $wrap.attr('data-freeze') === 'mobile', 7812 dataSpeed = parseFloat( $wrap.attr('data-speed') ), 7813 isInMenu = $wrap.closest('.megamenu-block-wrapper').length, 7814 isInViewport = false, 7815 isHover = false, 7816 init = false, 7817 stableHeight = UNCODE.wheight, 7818 wCont, hCont, docH, marqueeTL; 7819 7820 if ( ! $('.tmb', $cont).length ) { 7821 return; 7822 } 7823 7824 dataSpeed = isNaN(dataSpeed) ? 0 : dataSpeed; 7825 var dataX = dataSpeed; 7826 7827 dataSpeed += 5; 7828 7829 var checkLinearGridSize = function(){ 7830 if ( !$wrap.is(':visible') ) { 7831 return; 7832 } 7833 $wrap.find('.cont-appended').remove(); 7834 7835 if ( vertical ) { 7836 if ( ! SiteParameters.is_frontend_editor ) { 7837 hCont = $cont.outerHeight(); 7838 docH = Math.max($row.outerHeight(), stableHeight) + ( hCont * dataSpeed ); 7839 if ( hCont < docH ) { 7840 var res = docH - hCont * 3, 7841 times = 2 * Math.round((res/hCont+1) / 2); 7842 } 7843 for ( var i = 0; i < times; i++ ) { 7844 var $cloneCont = $cont.clone(), 7845 $cloneCont2 = $cont.clone(), 7846 trans = ( (i+2) ) * 100; 7847 $wrap.append($cloneCont.addClass('cont-appended').css({'transform':'translateY('+ trans +'%)'})); 7848 $wrap.append($cloneCont2.addClass('cont-appended').css({'transform':'translateY(-'+ trans +'%)'})); 7849 $cloneCont.find('a[data-lbox]').each(function(){ 7850 var dataLbox = $(this).attr('data-lbox'); 7851 $(this).attr('data-lbox', dataLbox + '_' + i); 7852 }); 7853 $cloneCont.find('.wp-video-shortcode').each(function(){ 7854 var thisID = $(this).attr('id'); 7855 $(this).attr('id', thisID + '_' + i); 7856 }); 7857 $cloneCont2.find('a[data-lbox]').each(function(){ 7858 var dataLbox = $(this).attr('data-lbox'); 7859 $(this).attr('data-lbox', dataLbox + '_2' + i); 7860 }); 7861 $cloneCont2.find('.wp-video-shortcode').each(function(){ 7862 var thisID = $(this).attr('id'); 7863 $(this).attr('id', thisID + '__' + i); 7864 }); 7865 if ( $('.lbox-trigger-item', $cloneCont).length ) { 7866 UNCODE.lightgallery($cloneCont); 7867 UNCODE.lightgallery($cloneCont2); 7868 } 7869 } 7870 } 7871 } else { 7872 wCont = $cont.outerWidth(); 7873 if ( (wCont) < UNCODE.wwidth*2 ) { 7874 var res = UNCODE.wwidth*2 - (wCont), 7875 times = 2 * Math.round((res/wCont+1) / 2); 7876 } 7877 for ( var i = 0; i < times; i++ ) { 7878 var $cloneCont = $cont.clone(), 7879 $cloneCont2 = $cont.clone(), 7880 trans = ( (i+2) ) * 100; 7881 $wrap.append($cloneCont.addClass('cont-appended').css({'transform':'translateX('+ trans +'%)'})); 7882 $wrap.append($cloneCont2.addClass('cont-appended').css({'transform':'translateX(-'+ trans +'%)'})); 7883 $cloneCont.find('a[data-lbox]').each(function(){ 7884 var dataLbox = $(this).attr('data-lbox'); 7885 $(this).attr('data-lbox', dataLbox + '_' + i); 7886 }); 7887 $cloneCont.find('[id]').each(function(){ 7888 var thisID = $(this).attr('id'); 7889 $(this).attr('id', thisID + '_' + i); 7890 }); 7891 $cloneCont2.find('a[data-lbox]').each(function(){ 7892 var dataLbox = $(this).attr('data-lbox'); 7893 $(this).attr('data-lbox', dataLbox + '_2' + i); 7894 }); 7895 $cloneCont2.find('[id]').each(function(){ 7896 var thisID = $(this).attr('id'); 7897 $(this).attr('id', thisID + '__' + i); 7898 }); 7899 if ( $('.lbox-trigger-item', $cloneCont).length ) { 7900 UNCODE.lightgallery($cloneCont); 7901 UNCODE.lightgallery($cloneCont2); 7902 } 7903 } 7904 } 7905 }; 7906 if ( clone ) { 7907 checkLinearGridSize(); 7908 $(window).on('resize.linearGrid', function(){ 7909 checkLinearGridSize(); 7910 }); 7911 } 7912 7913 var continuousLinearMarquee = function(_xStrt){ 7914 if ( !$wrap.is(':visible') ) { 7915 return; 7916 } 7917 var ease = 'none'; 7918 wCont = $cont.outerWidth(); 7919 hCont = $cont.outerHeight(); 7920 7921 var xStrt = typeof _xStrt === 'undefined' ? 0 : _xStrt, 7922 xEnd = vertical ? hCont : wCont, 7923 direction = $wrap.attr('data-animation').indexOf('opposite') > 0 ? -1 : 1, 7924 speed = (xEnd + xStrt) / (dataSpeed*dataSpeed*dataSpeed) / 5*dataSpeed, 7925 speedSlow = (xEnd + xStrt) / 45, 7926 freezed = freezedDesktop && UNCODE.wwidth >= UNCODE.mediaQuery || freezedMobile && UNCODE.wwidth < UNCODE.mediaQuery; 7927 7928 marqueeTL = new TimelineMax({paused:true, reversed:true}); 7929 7930 if ( (isInViewport && !isHover && !freezed) || isInMenu ) { 7931 marqueeTL.play(); 7932 7933 if ( $wrap.attr('data-hover') === 'yes' || $wrap.attr('data-hover') === 'pause' ) { 7934 var $column = $wrap.closest('.wpb_column'), 7935 $col_link = $('.col-link', $column), 7936 $hover_sel = $wrap; 7937 7938 if ( $col_link.length ) { 7939 $hover_sel = $wrap.add($column); 7940 } 7941 7942 $hover_sel.on('mouseover', function(){ 7943 if ( $wrap.attr('data-hover') === 'yes' ) { 7944 //speed = ( 10 - dataSpeed ) * 5; 7945 ease = 'power2.out'; 7946 marqueeTL.duration( speedSlow ); 7947 } else { 7948 marqueeTL.pause(); 7949 } 7950 isHover = true; 7951 }).on('mouseout', function(){ 7952 if ( $wrap.attr('data-hover') === 'yes' ) { 7953 speed = (xEnd + xStrt) / (dataSpeed*dataSpeed*dataSpeed) / 5*dataSpeed; 7954 ease = 'power2.in'; 7955 marqueeTL.duration( speed ); 7956 } else { 7957 marqueeTL.play(); 7958 } 7959 isHover = false;
7960 }); 7961 } 7962 7963 $(document).on('sub-menu-slide-up', function(){ 7964 if ( isInMenu ) { 7965 marqueeTL.pause(); 7966 } 7967 }); 7968 7969 } 7970 7971 gsap.killTweensOf($wrap); 7972 if ( vertical ) { 7973 marqueeTL.fromTo( $wrap, { 7974 y: xStrt * direction 7975 }, 7976 { 7977 duration: speed, 7978 y: xEnd * direction * -1, 7979 onComplete: function(){ 7980 continuousLinearMarquee(); 7981 }, 7982 ease: ease, 7983 paused: freezed 7984 }); 7985 } else { 7986 marqueeTL.fromTo( $wrap, { 7987 x: xStrt * direction 7988 }, 7989 { 7990 duration: speed, 7991 x: xEnd * direction * -1, 7992 onComplete: function(){ 7993 continuousLinearMarquee(); 7994 }, 7995 ease: ease, 7996 paused: freezed 7997 }); 7998 } 7999 }; 8000 8001 var dragLinearContinuous = function(){ 8002 if ( !$wrap.is(':visible') ) { 8003 return; 8004 } 8005 var matrix, _x, _y, 8006 dragAction = false; 8007 Draggable.create($wrap[0], { 8008 type: vertical ? "y" : "x", 8009 bounds: document.getElementById("container"), 8010 inertia: false, 8011 onPress: function (e) { 8012 }, 8013 onRelease: function (e) { 8014 if ( dragAction === true ) { 8015 matrix = $wrap.css('transform').replace(/[^0-9\-.,]/g, '').split(','); 8016 _x = matrix[12] || matrix[4]; 8017 _y = matrix[13] || matrix[5]; 8018 if ( vertical ) { 8019 continuousLinearMarquee(_y * -1); 8020 } else { 8021 continuousLinearMarquee(_x * -1); 8022 } 8023 $wrap.removeClass('linear-dragging'); 8024 } 8025 }, 8026 onDrag: function (e) { 8027 dragAction = true; 8028 $wrap.addClass('linear-dragging'); 8029 }, 8030 onDragEnd: function (e) { 8031 matrix = $wrap.css('transform').replace(/[^0-9\-.,]/g, '').split(','); 8032 _x = matrix[12] || matrix[4]; 8033 _y = matrix[13] || matrix[5]; 8034 wCont = $cont.outerWidth(); 8035 hCont = $cont.outerHeight(); 8036 if ( vertical ) { 8037 if ( Math.abs(_y) > hCont ) { 8038 if ( _y < 0 ) { 8039 _y = hCont + parseFloat( _y ); 8040 } else { 8041 _y = parseFloat( _y ) - hCont; 8042 } 8043 } 8044 continuousLinearMarquee(_y * -1); 8045 } else { 8046 if ( Math.abs(_x) > wCont ) { 8047 if ( _x < 0 ) { 8048 _x = wCont + parseFloat( _x ); 8049 } else { 8050 _x = parseFloat( _x ) - wCont; 8051 } 8052 } 8053 continuousLinearMarquee(_x * -1); 8054 } 8055 $wrap.removeClass('linear-dragging'); 8056 dragAction = false; 8057 }, 8058 }); 8059 }; 8060 8061 var runScrollLinear = function(){ 8062 var freezed = freezedDesktop && UNCODE.wwidth >= UNCODE.mediaQuery || freezedMobile && UNCODE.wwidth < UNCODE.mediaQuery; 8063 if ( (!$wrap.is(':visible') || freezed) ) { 8064 return; 8065 } 8066 var direction = $wrap.attr('data-animation').indexOf('opposite') > 0 ? -1 : 1, 8067 dataMove = dataX >= 0 ? 1 + dataX : -1 * ( 5 / (dataX - 0.5) * 0.25); 8068 8069 var linearGridScroll = function(){ 8070 if ( isInViewport ) { 8071 var bound = _row.getBoundingClientRect(); 8072 8073 var bound_top = bound.top, 8074 gsap_calc = parseFloat( ( ( stableHeight * 0.35 - bound_top ) * dataMove ) * 0.5 * direction ); 8075 8076 if ( vertical ) { 8077 $wrap.css({ 'transform': 'translateY(' + gsap_calc * -1 + 'px) translateZ(0px)'}) 8078 } else { 8079 $wrap.css({ 'transform': 'translateX(' + gsap_calc * -1 + 'px) translateZ(0px)'}) 8080 } 8081 if ( 'IntersectionObserver' in window && ! UNCODE.isMobile ) { 8082 requestAnimationFrame(linearGridScroll); 8083 } 8084 } 8085 if ( ! ( 'IntersectionObserver' in window && ! UNCODE.isMobile ) ) { 8086 window.addEventListener("scroll", linearGridScroll); 8087 } 8088 }; 8089 8090 $(window).on( 'load wwResize', function(e) { 8091 stableHeight = UNCODE.wheight; 8092 linearGridScroll(); 8093 }); 8094 if ( 'IntersectionObserver' in window && ! UNCODE.isMobile ) { 8095 requestAnimationFrame(linearGridScroll); 8096 } 8097 }; 8098 8099 var dragLinear = function(){ 8100 if ( !$wrap.is(':visible') ) { 8101 return; 8102 } 8103 var matrix, _x, _y; 8104 Draggable.create($dragger[0], { 8105 type: vertical ? "y" : "x", 8106 bounds: document.getElementById("container"), 8107 inertia: false, 8108 onPress: function (e) { 8109 }, 8110 onRelease: function (e) { 8111 }, 8112 onDrag: function (e) { 8113 $wrap.addClass('linear-dragging'); 8114 }, 8115 onDragEnd: function (e) { 8116 matrix = $dragger.css('transform').replace(/[^0-9\-.,]/g, '').split(','); 8117 _x = matrix[12] || matrix[4]; 8118 _y = matrix[13] || matrix[5]; 8119 wCont = $cont.outerWidth(); 8120 hCont = $cont.outerHeight(); 8121 if ( vertical ) { 8122 if ( Math.abs(_y) > hCont ) { 8123 if ( _y < 0 ) { 8124 _y = hCont + parseFloat( _y ); 8125 } else { 8126 _y = parseFloat( _y ) - hCont; 8127 } 8128 gsap.to( $dragger[0], { 8129 duration: 0, 8130 y: _y, 8131 }); 8132 } 8133 } else { 8134 if ( Math.abs(_x) > wCont ) { 8135 if ( _x < 0 ) { 8136 _x = wCont + parseFloat( _x ); 8137 } else { 8138 _x = parseFloat( _x ) - wCont; 8139 } 8140 gsap.to( $dragger[0], { 8141 duration: 0, 8142 x: _x, 8143 }); 8144 } 8145 } 8146 $wrap.removeClass('linear-dragging'); 8147 }, 8148 }); 8149 }; 8150 8151 if ( ! $('body').hasClass('compose-mode') ) { 8152 if ( $wrap.attr('data-animation') === 'marquee' || $wrap.attr('data-animation') === 'marquee-opposite' ) { 8153 continuousLinearMarquee(); 8154 $(window).on( 'wwResize', function(e) { 8155 continuousLinearMarquee(); 8156 });
8157 $(document).on('sub-menu-slide-down', function(){ 8158 if ( isInMenu ) { 8159 continuousLinearMarquee(); 8160 } 8161 }); 8162 if ( $wrap.attr('data-draggable') === 'yes' ) { 8163 dragLinearContinuous(); 8164 } 8165 } 8166 8167 if ( $wrap.attr('data-animation') === 'marquee-scroll' || $wrap.attr('data-animation') === 'marquee-scroll-opposite' ) { 8168 runScrollLinear(); 8169 if ( $wrap.attr('data-draggable') === 'yes' ) { 8170 dragLinear(); 8171 } 8172 } 8173 8174 if( 'IntersectionObserver' in window && ! UNCODE.isMobile ) { 8175 var observer = new IntersectionObserver(function(entries) { 8176 8177 entries.forEach(function(entry){ 8178 if ( entry.isIntersecting ) { 8179 isInViewport = true; 8180 if ( !init ) { 8181 init = true; 8182 continuousLinearMarquee(); 8183 } else { 8184 if ( typeof marqueeTL !== 'undefined' ) { 8185 marqueeTL.play(); 8186 } 8187 } 8188 if ( $wrap.attr('data-animation') === 'marquee-scroll' || $wrap.attr('data-animation') === 'marquee-scroll-opposite' ) { 8189 requestAnimFrame(runScrollLinear); 8190 } 8191 } else { 8192 isInViewport = false; 8193 if ( typeof marqueeTL !== 'undefined' ) { 8194 marqueeTL.pause(); 8195 } 8196 } 8197 }); 8198 }, { 8199 root: document, 8200 }); 8201 8202 observer.observe(_row); 8203 8204 } else { 8205 8206 var checkVisible = function( el, off ) { 8207 if (typeof jQuery === "function" && el instanceof jQuery) { 8208 el = el[0]; 8209 } 8210 8211 off = typeof off=='undefined' ? 50 : off; 8212 8213 var rect = el.getBoundingClientRect(); 8214 8215 return ( 8216 ( 8217 ( rect.top >= 0 && (rect.top + off) <= (window.innerHeight || document.documentElement.clientHeight) ) || 8218 ( rect.bottom >= off && (rect.bottom) <= (window.innerHeight || document.documentElement.clientHeight) ) || 8219 ( rect.top <= 0 && (rect.bottom) >= (window.innerHeight || document.documentElement.clientHeight) ) 8220 ) 8221 ); 8222 }; 8223 8224 var checkVisibility = function(){ 8225 8226 if ( checkVisible($row) ) { 8227 isInViewport = true; 8228 if ( typeof marqueeTL !== 'undefined' ) { 8229 marqueeTL.play(); 8230 } 8231 } else { 8232 isInViewport = false; 8233 if ( typeof marqueeTL !== 'undefined' ) { 8234 marqueeTL.pause(); 8235 } 8236 } 8237 } 8238 8239 window.addEventListener("scroll", checkVisibility); 8240 checkVisibility(); 8241 8242 } 8243 } 8244 }); 8245}; 8246UNCODE.preventDoubleTransition = function() { 8247 $('.sticky-element .animate_when_almost_visible').each(function(){ 8248 var $el = $(this).one('webkitAnimationEnd mozAnimationEnd oAnimationEnd animationEnd', function(e){ 8249 $el.addClass('do_not_reanimate'); 8250 }); 8251 }); 8252}; 8253 8254UNCODE.checkScrollForTabs = function(){ 8255 var goToSection = window.location.hash.replace('#', ''), 8256 $index; 8257 8258 goToSection = goToSection.replace(/[^-A-Za-z0-9+&@#/%?=~_]/g, ""); 8259 goToSection = encodeURIComponent(goToSection); 8260 $index = $('[data-id="' + goToSection + '"]').closest('.uncode-tabs, .uncode-accordion'); 8261 8262 $index.attr('data-parent', 'parent-' + goToSection); 8263 8264 if (window.location.hash != undefined && window.location.hash != '') { 8265 requestTimeout(function() { 8266 scrollBody('parent-' + goToSection); 8267 }, 500); 8268 } 8269 8270 $('.page-body a[href^="#"]').not('[data-tab-history]').not('.scroll-top').click(function(e) { 8271 var hash = (e.currentTarget).hash; 8272 if ( $('.uncode-tabs a[href="' + hash + '"][data-tab-history]').length ) { 8273 $('a[href="' + hash + '"][data-tab-history]').click(); 8274 scrollBody(hash); 8275 } 8276 }); 8277 8278 var scrollBody = function(index) { 8279 8280 var getSection = $('a[href="' + index + '"][data-tab-history]'), 8281 scrollTo, 8282 safeGap = 27; 8283 8284 if ( ! getSection.length ) { 8285 getSection = $('div[data-parent="' + index + '"]'); 8286 8287 if ( getSection.attr('data-target') == 'row' ) { 8288 getSection = getSection.closest('.vc_row'); 8289 safeGap = 0; 8290 } 8291 } 8292 8293 if (typeof getSection === 'undefined' || ! getSection.length ) { 8294 return; 8295 } 8296 8297 var body = $("html, body"), 8298 bodyTop = document.documentElement['scrollTop'] || document.body['scrollTop'], 8299 delta = bodyTop - (getSection.length ? getSection.offset().top : 0), 8300 getOffset = UNCODE.get_scroll_offset(); 8301 if ( typeof getSection.offset() === 'undefined' ) 8302 return; 8303 scrollTo = getSection.offset().top - safeGap; 8304 scrollTo -= getOffset; 8305 8306 var scrollSpeed = (SiteParameters.constant_scroll == 'on') ? Math.abs(delta) / parseFloat(SiteParameters.scroll_speed) : SiteParameters.scroll_speed; 8307 if (scrollSpeed < 1000 && SiteParameters.constant_scroll == 'on') scrollSpeed = 1000; 8308 8309 if (index != 0) { 8310 UNCODE.scrolling = true; 8311 } 8312 8313 if (scrollSpeed == 0) { 8314 body.scrollTop((delta > 0) ? scrollTo - 0.1 : scrollTo); 8315 UNCODE.scrolling = false;
8316 } else { 8317 body.animate({ 8318 scrollTop: (delta > 0) ? scrollTo - 0.1 : scrollTo 8319 }, scrollSpeed, 'easeInOutQuad', function() { 8320 requestTimeout(function() { 8321 UNCODE.scrolling = false; 8322 if (getOffset != UNCODE.get_scroll_offset()) { 8323 scrollBody(index); 8324 } 8325 }, 100); 8326 }); 8327 } 8328 8329 }; 8330}; 8331 8332UNCODE.printScreen = function() { 8333 var inlineMediaStyle = null, 8334 setResize; 8335 8336 function changeMediaStyle() { 8337 clearRequestTimeout(setResize); 8338 setResize = requestTimeout(function(){ 8339 var $head = document.getElementsByTagName('head')[0], 8340 $newStyle = document.createElement('style'), 8341 winW = window.innerWidth, 8342 printH = window.innerHeight; 8343 8344 $newStyle.setAttribute('type', 'text/css'); 8345 $newStyle.setAttribute('media', 'print'); 8346 $newStyle.appendChild(document.createTextNode('@page { size: ' + winW + 'px ' + printH + 'px; margin: 0; }')); 8347 8348 if (inlineMediaStyle != null) { 8349 $head.replaceChild($newStyle, inlineMediaStyle) 8350 } else { 8351 $head.appendChild($newStyle); 8352 } 8353 inlineMediaStyle = $newStyle; 8354 }, 1000); 8355 } 8356 8357 changeMediaStyle(); 8358 window.addEventListener('resize', changeMediaStyle); 8359}; 8360 8361UNCODE.fullPage = function() { 8362 if ( ( !UNCODE.isFullPage && !UNCODE.isFullPageSnap ) || SiteParameters.is_frontend_editor ) { 8363 $('body').removeClass('uncode-fullpage').removeClass('uncode-fullpage-slide').removeClass('fp-waiting'); 8364 return false; 8365 } else { 8366 requestTimeout(function() { 8367 window.scrollTo(0, 0); 8368 }, 10); 8369 } 8370 8371 var $masthead = $('#masthead'), 8372 $logo = $('#logo-container-mobile'), 8373 $logolink = $('[data-minheight]', $logo), 8374 logoMinScale = $logolink.data('minheight'), 8375 logoMaxScale = $('[data-maxheight]', $logo).data('maxheight'), 8376 $container = $('.main-container .post-content'), 8377 $rows = $container.find('.vc_row[data-parent]').addClass('uncode-scroll-lock fp-auto-height'), 8378 $header = $('#page-header').addClass('uncode-scroll-lock fp-auto-height'), 8379 headerName = $('.vc_row[data-name]', $header).attr('data-name'), 8380 headerLabel = $('.vc_row[data-label]', $header).attr('data-label'), 8381 headerWithOpacity = $('.header-scroll-opacity', $header).length, 8382 menuHidden = ! $('body').hasClass('vmenu') && $('body').hasClass('uncode-fp-menu-hide') ? true : false, 8383 $footer = $('#colophon').addClass('uncode-scroll-lock fp-auto-height'), 8384 scrollBar = true, 8385 effect, 8386 animationEndTimeOut, 8387 fp_anim_time = 900, 8388 fp_easing = 'cubic-bezier(0.37, 0.31, 0.2, 0.85)', 8389 is_scrolling = false, 8390 dataNames = [], 8391 is_first = true, 8392 no_history = $('body').hasClass('uncode-scroll-no-history'), 8393 theres_footer = true; 8394 8395 if ( $('> div', $footer).outerHeight() < 2 || !$footer.length ) { 8396 $('> div', $footer).each(function(index, el){ 8397 if ( $(el).outerHeight() < 2 ) 8398 theres_footer = false; 8399 else 8400 theres_footer = true; 8401 }); 8402 } 8403 8404 if ( !$footer.length ) 8405 theres_footer = false; 8406 8407 if ( !UNCODE.isFullPageSnap ) { 8408 8409 if ( $('body').hasClass('uncode-fullpage-zoom') ) 8410 effect = 'scaleDown'; 8411 else if ( $('body').hasClass('uncode-fullpage-parallax') ) 8412 effect = 'moveparallax'; 8413 else 8414 effect = 'movecurtain'; 8415 } 8416 8417 if ( $('body').hasClass('uncode-fullpage-trid') ) 8418 fp_anim_time = fp_anim_time*2; 8419 8420 if ( $header.length ) { 8421 if ( headerName !== '' ) 8422 $header.attr('data-name', headerName); 8423 if ( headerLabel !== '' ) 8424 $header.attr('data-label', headerLabel); 8425 $container.prepend($header); 8426 } 8427 if ( theres_footer ) { 8428 $container.append($footer); 8429 $footer.attr('data-anchor', SiteParameters.slide_footer).data('name', SiteParameters.slide_footer); 8430 $('aside.widget ul', $footer).addClass('no-list'); 8431 } 8432 8433 var $all = $rows.add($header); 8434 8435 if ( theres_footer ) 8436 $all = $all.add($footer); 8437 8438 $all.each(function(index, row) { 8439 if( index === 0 ) 8440 $(row).addClass('uncode-scroll-active'); 8441 }); 8442 8443 var isMobile = SiteParameters.uncode_force_onepage_dots ? false : UNCODE.isMobile; 8444 8445 if ( !isMobile && !$('body').hasClass('uncode-scroll-no-dots') ) { 8446 $("<ul class='onepage-pagination'></ul>").prependTo("body"); 8447 } 8448 8449 $all.each(function(index, val) { 8450 var getName = $(val).data('name'), 8451 label; 8452 8453 if (typeof getName == 'undefined' || getName == 'undefined') 8454 getName = SiteParameters.slide_name + '-' + index; 8455 8456 //if ( dataNames.includes(getName) ) { 8457 if ( dataNames.indexOf(getName) > 0 ) { 8458 getName += '_' + index; 8459 $(val).data('name', getName); 8460 } 8461 8462 dataNames.push(getName); 8463 8464 $(val).attr('data-section', (index+1)).attr('data-anchor', getName); 8465 8466 if (typeof $(val).attr('data-label') !== 'undefined') 8467 label = $(val).attr('data-label'); 8468 else label = ''; 8469 8470 if ( $(val).is($footer) ) 8471 return; 8472 8473 if (label != '' ) { 8474 label = '<span class="cd-label style-accent-bg border-accent-color">' + label + '</span>'; 8475 $('ul.onepage-pagination').append("<li><a class='one-dot-link' aria-label='" + label + "' data-index='" + (index) + "' href='#" + (getName) + "'><span class='cd-dot-cont'><span class='cd-dot'></span></span>"+label+"</a></li>"); 8476 } else if ( label == '' && $('body').hasClass('uncode-empty-dots') ) { 8477 $('ul.onepage-pagination').append("<li><a class='one-dot-link' aria-label='" + SiteParameters.uncode_one_dot_label + " " + index + "' data-index='" + (index) + "' href='#" + (getName) + "'><span class='cd-dot-cont'><span class='cd-dot'></span></span></a></li>"); 8478 } 8479 }); 8480 8481 var checkVisible = function( el, off ) { 8482 if (typeof jQuery === "function" && el instanceof jQuery) { 8483 el = el[0]; 8484 } 8485 8486 off = typeof off=='undefined' ? 50 : off; 8487 8488 var rect = el.getBoundingClientRect(); 8489 8490 return ( 8491 ( 8492 ( rect.top >= 0 && (rect.top + off) <= (window.innerHeight || document.documentElement.clientHeight) ) || 8493 ( rect.bottom >= off && (rect.bottom) <= (window.innerHeight || document.documentElement.clientHeight) ) || 8494 ( rect.top <= 0 && (rect.bottom) >= (window.innerHeight || document.documentElement.clientHeight) ) 8495 ) 8496 ); 8497 }; 8498 8499 var animationEndAction = function( index, nextIndex ) { 8500 var $currentSlide = $('.uncode-scroll-lock[data-section="' + index + '"]', $container), 8501 $nextSlide = $('.uncode-scroll-lock[data-section="' + nextIndex + '"]', $container), 8502 player, iframe; 8503 8504 if ( !$nextSlide.is($footer) ) { 8505 $('.no-scrolloverflow').removeClass('no-scrolloverflow'); 8506 } 8507 8508 if ( !UNCODE.isFullPageSnap ) { 8509 activateKBurns( nextIndex ); 8510 } 8511 8512 $('body:not(.uncode-fullpage-zoom) .background-video-shortcode, .uncode-video-container.video', $currentSlide).each(function(index, val) { 8513 if ($(this).attr('data-provider') == 'vimeo') { 8514 iframe = $(this).find('iframe'); 8515 player = new Vimeo.Player(iframe[0]); 8516 player.pause(); 8517 } else if ($(this).attr('data-provider') == 'youtube') { 8518 if (youtubePlayers[$(this).attr('data-id')] != undefined) youtubePlayers[$(this).attr('data-id')].pauseVideo(); 8519 } else { 8520 if ($(this).is('video')) { 8521 $(this)[0].volume = 0; 8522 $(this)[0].pause(); 8523 } 8524 } 8525 }); 8526 8527 if ( ! UNCODE.isMobile && headerWithOpacity ) { 8528 if ( $nextSlide.is($header) ) 8529 $header.removeClass('header-scrolled'); 8530 } 8531 8532 var $otherEl = $('.uncode-scroll-lock:not(.hidden-scroll)', $container).not($nextSlide); 8533 $otherEl.each(function(){ 8534 var $otherThis = $(this), 8535 $bgwrapperOther = $('.background-inner', $otherThis); 8536 if ( !checkVisible($otherThis) ) 8537 $bgwrapperOther.removeClass('uncode-kburns').removeClass('uncode-zoomout'); 8538 8539 }); 8540 8541 if ( !checkVisible($currentSlide) ) { 8542 $currentSlide.removeClass('uncode-scroll-visible'); 8543 var currentScroll = $('.fp-scrollable', $currentSlide).data('iscrollInstance'); 8544 if ( typeof currentScroll != 'undefined' && !UNCODE.isFullPageSnap )
8545 currentScroll.scrollTo(0, 0, 0); 8546 } 8547 8548 clearRequestTimeout(animationEndTimeOut); 8549 animationEndTimeOut = requestTimeout(function(){ 8550 Waypoint.refreshAll(); 8551 $( document.body ).trigger('uncode_waypoints'); 8552 var eventFP = new CustomEvent('fp-slide-changed'); 8553 window.dispatchEvent(eventFP); 8554 is_scrolling = false; 8555 8556 if ( is_first ) { 8557 $('ul.onepage-pagination a').removeClass('is-selected'); 8558 $('ul.onepage-pagination a[data-index="' + (nextIndex-1) + '"]').addClass('is-selected'); 8559 is_first = false; 8560 } 8561 8562 }, 500); 8563 }; 8564 8565 var postLeaveActions = function( nextIndex ){ 8566 if ( menuHidden && ! UNCODE.isMobile ) 8567 return false; 8568 8569 var $el = $('.uncode-scroll-lock[data-section="' + nextIndex + '"]', $container), 8570 $cols = $('.uncol', $el), 8571 anchor = $el.data('anchor'); 8572 8573 if ( ! UNCODE.isFullPageSnap ) { 8574 $.each($cols, function(index, val){ 8575 if ( $(val).hasClass('style-light') ){ 8576 $masthead.removeClass('style-dark-override').addClass('style-light-override'); 8577 return false; 8578 } else if ( $(val).hasClass('style-dark') ) { 8579 $masthead.removeClass('style-light-override').addClass('style-dark-override'); 8580 return false; 8581 } 8582 }); 8583 } 8584 8585 if ( typeof anchor !== 'undefined' && anchor !== '' && $('.menu-item > a[href*="#' + anchor + '"]' ).length ) { 8586 $('.menu-item' ).removeClass('active'); 8587 $('.menu-item > a[href*="#' + anchor + '"]' ).closest('.menu-item').addClass('active'); 8588 } 8589 8590 if ( !UNCODE.isFullPageSnap ) { 8591 activateBackWash( nextIndex ); 8592 } 8593 }; 8594 8595 var activateBackWash = function( nextIndex ){ 8596 var $el = $('.uncode-scroll-lock[data-section="' + nextIndex + '"]', $container), 8597 $bgwrapper; 8598 8599 if ( $el.length ) { 8600 if ( $el.hasClass('with-zoomout') ) { 8601 $bgwrapper = $('.background-inner:nth-child(1)', $el); 8602 } else if ( $('.with-zoomout', $el).length ) { 8603 $bgwrapper = $('.with-zoomout .background-inner:nth-child(1)', $el); 8604 } else { 8605 return false; 8606 } 8607 } else { 8608 return false; 8609 } 8610 8611 $bgwrapper.addClass('uncode-zoomout'); 8612 8613 }; 8614 8615 var activateKBurns = function( nextIndex ){ 8616 var $el = $('.uncode-scroll-lock[data-section="' + nextIndex + '"]', $container), 8617 $bgwrapper; 8618 8619 if ( $el.length ) { 8620 if ( $el.hasClass('with-kburns') ) { 8621 $bgwrapper = $('.background-inner:nth-child(1)', $el); 8622 } else if ( $('.with-kburns', $el).length ) { 8623 $bgwrapper = $('.with-kburns .background-inner:nth-child(1)', $el); 8624 } else { 8625 return false; 8626 } 8627 } else { 8628 return false; 8629 } 8630 8631 $bgwrapper.addClass('uncode-kburns'); 8632 8633 }; 8634 8635 var activateParallax = function( nextIndex, direction ){ 8636 8637 var $el = $('.uncode-scroll-lock[data-section="' + nextIndex + '"]', $container), 8638 $cell = $('.fp-tableCell', $el), 8639 animationEnd = 'webkitAnimationEnd animationend', 8640 cellAnim; 8641 8642 switch( direction ) { 8643 case 'up': 8644 cellAnim = 'moveFromTopInner'; 8645 break; 8646 default: 8647 cellAnim = 'moveFromBottomInner'; 8648 } 8649 8650 $cell.css({ 8651 'animation-name': cellAnim, 8652 'animation-duration': fp_anim_time + 'ms', 8653 'animation-delay': '', 8654 'animation-timing-function': fp_easing, 8655 'animation-fill-mode': 'both', 8656 }).off(animationEnd) 8657 .on(animationEnd, function(event) { 8658 if ( event.originalEvent.animationName === cellAnim ) { 8659 $cell 8660 .css({ 8661 'animation-name': '', 8662 'animation-duration': '', 8663 'animation-delay': '', 8664 'animation-timing-function': '', 8665 'animation-fill-mode': '', 8666 }); 8667 } 8668 }); 8669 }; 8670 8671 var scrollHashes = function(){ 8672 var hash = window.location.hash.replace('#', '').split('/'), 8673 hashInd; 8674 if ( hash[0] !== '' && hash[0] !== SiteParameters.slide_footer ) { 8675 if ( $('.uncode-scroll-lock[data-anchor="' + hash[0] + '"]').length ) { 8676 hashInd = $('.uncode-scroll-lock[data-anchor="' + hash[0] + '"]').index('[data-anchor]'); 8677 $.fn.fullpage.moveTo(hashInd+1); 8678 } 8679 } else if( hash[0] === '' ) { 8680 $.fn.fullpage.moveTo(1); 8681 } 8682 }; 8683 8684 var hideMenu = function( index, nextIndex ){ 8685 if ( $('body').hasClass('vmenu') || UNCODE.isFullPageSnap || !$('body').hasClass('uncode-fp-menu-hide') ) 8686 return false; 8687 8688 var hMenu = UNCODE.menuHeight, 8689 transTime = hMenu * 2; 8690 8691 if ( index === 1 && nextIndex > 1 ) { 8692 hMenu = hMenu * -1; 8693 } else if ( index !== 1 && nextIndex === 1 ) { 8694 hMenu = 0; 8695 } else { 8696 return false;
8697 } 8698 8699 $masthead.css({ 8700 '-webkit-transform': 'translate3d(0, ' + hMenu + 'px, 0)', 8701 'transform': 'translate3d(0, ' + hMenu + 'px, 0)', 8702 '-webkit-transition': 'transform 0.5s ease-in-out', 8703 'transition': 'transform 0.5s ease-in-out' 8704 }); 8705 }; 8706 8707 var shrinkMenu = function( index, nextIndex ){ 8708 if ( $('body').hasClass('vmenu') || !$('body').hasClass('uncode-fp-menu-shrink') ) 8709 return false; 8710 8711 if ( index === 1 && nextIndex > 1 ) { 8712 $logo.addClass('shrinked'); 8713 $('div', $logo).each(function(index, val){ 8714 $(val).css({ 8715 'height': logoMinScale, 8716 'line-height': logoMinScale 8717 }); 8718 if ($(val).hasClass('text-logo')) { 8719 $(val).css({ 8720 'font-size': logoMinScale + 'px' 8721 }); 8722 } 8723 }); 8724 requestTimeout(function() { 8725 UNCODE.menuMobileHeight = $masthead.outerHeight(); 8726 }, 300); 8727 } else if ( index !== 1 && nextIndex === 1 ) { 8728 $logo.removeClass('shrinked'); 8729 $('div', $logo).each(function(index, val){ 8730 $(val).css({ 8731 'height': logoMaxScale, 8732 'line-height': logoMaxScale 8733 }); 8734 if ($(val).hasClass('text-logo')) { 8735 $(val).css({ 8736 'font-size': logoMaxScale + 'px' 8737 }); 8738 } 8739 }); 8740 requestTimeout(function() { 8741 UNCODE.menuMobileHeight = $masthead.outerHeight(); 8742 }, 300); 8743 } else { 8744 return false; 8745 } 8746 8747 }; 8748 8749 var anchorLink = function(){ 8750 8751 $container.add('.menu-item').find('a[href*="#"]').on('click', function(e) { 8752 var $this = $(e.currentTarget), 8753 hash = e.currentTarget.href.split('#'), 8754 current = window.location.href.split('#'), 8755 ind, 8756 currentMenuOpened = UNCODE.menuOpened, 8757 go = false; 8758 8759 var hash_url = hash[0].replace(/\/?$/, '/'), 8760 current_url = current[0].replace(/\/?$/, '/'); 8761 8762 if ( ( hash_url == current_url || hash_url == '' ) && hash[1] != '' ) { 8763 hash = '#'+hash[1]; 8764 e.preventDefault(); 8765 go = true; 8766 } 8767 8768 if ( go ) { 8769 8770 if ( $(hash).length ) { 8771 ind = $(hash).closest('.fp-section').index(); 8772 } else { 8773 hash = hash.slice(1); 8774 ind = $('.fp-section[data-anchor="' + hash + '"]').index('.fp-section'); 8775 } 8776 8777 if ( typeof $this.attr('data-filter') !== 'undefined' && $this.attr('data-filter') != '' ) 8778 ind = $this.closest('.fp-section').index(); 8779 8780 UNCODE.menuOpened = false; 8781 8782 $.fn.fullpage.moveTo(ind+1); 8783 8784 UNCODE.menuOpened = currentMenuOpened; 8785 if (UNCODE.menuOpened) { 8786 if (UNCODE.wwidth < UNCODE.mediaQuery) { 8787 window.dispatchEvent(UNCODE.menuMobileTriggerEvent); 8788 } else { 8789 $('.mmb-container-overlay .overlay-close').trigger('click'); 8790 $('.mmb-container .trigger-overlay.close')[0].dispatchEvent(new Event("click"));; 8791 } 8792 } 8793 8794 } 8795 8796 }); 8797 8798 $('.header-scrolldown').on('click', function(event) { 8799 event.preventDefault(); 8800 var scrollDown = $(this), 8801 ind = scrollDown.closest('.fp-section').index(); 8802 8803 $.fn.fullpage.moveTo(ind+2); 8804 }); 8805 8806 var anchor = $('.fp-section.active').data('anchor'); 8807 8808 if ( typeof anchor !== 'undefined' && anchor !== '' && $('.menu-item > a[href="#' + anchor + '"]' ).length ) { 8809 $('.menu-item').removeClass('active'); 8810 $('.menu-item > a[href="#' + anchor + '"]' ).closest('.menu-item').addClass('active'); 8811 } 8812 8813 }; 8814 8815 var slideLeave = function( index, nextIndex, direction ) { 8816 var $currentSlide = $('.uncode-scroll-lock[data-section="' + index + '"]', $container), 8817 $nextSlide = $('.uncode-scroll-lock[data-section="' + nextIndex + '"]', $container), 8818 animationEnd = 'webkitAnimationEnd animationend', 8819 transitionEnd = 'webkitTransitionEnd transitionend', 8820 animOut = effect != 'scaleDown' ? effect + direction : effect, 8821 animIn, 8822 isFooter = false, 8823 isFooterNext = false, 8824 footerH = $footer.outerHeight(), 8825 timeout, 8826 player, iframe, 8827 footerCoeff; 8828 switch( direction ) { 8829 case 'up': 8830 animIn = 'moveFromTop'; 8831 break; 8832 default: 8833 animIn = 'moveFromBottom'; 8834 } 8835 8836 if ( $('body').hasClass('uncode-fullpage-trid') ) { 8837 animOut = animIn + 'trid'; 8838 animIn = animOut + 'In'; 8839 } else if ( UNCODE.isFullPageSnap ) { 8840 animIn = animOut = 'none'; 8841 } 8842 8843 hideMenu(index, nextIndex); 8844 shrinkMenu(index, nextIndex); 8845 8846 $('.uncode-fullpage-zoom .background-video-shortcode, .uncode-video-container.video', $currentSlide).each(function(index, val) { 8847 if ($(this).attr('data-provider') == 'vimeo') { 8848 iframe = $(this).find('iframe'); 8849 player = new Vimeo.Player(iframe[0]); 8850 player.pause(); 8851 } else if ($(this).attr('data-provider') == 'youtube') { 8852 if (youtubePlayers[$(this).attr('data-id')] != undefined) youtubePlayers[$(this).attr('data-id')].pauseVideo(); 8853 } else { 8854 if ($(this).is('video')) { 8855 $(this)[0].volume = 0; 8856 $(this)[0].pause(); 8857 } 8858 } 8859 }); 8860 8861 $('.background-video-shortcode, .uncode-video-container.video', $nextSlide).each(function(index, val) { 8862 if ($(this).attr('data-provider') == 'vimeo') { 8863 iframe = $(this).find('iframe'); 8864 iframe.on('load', function(){ 8865 player = new Vimeo.Player(iframe); 8866 player.setVolume(0); 8867 player.play(); 8868 }); 8869 player = new Vimeo.Player(iframe); 8870 player.setVolume(0); 8871 player.play(); 8872 } else if ($(this).attr('data-provider') == 'youtube') { 8873 if (youtubePlayers[$(this).attr('data-id')] != undefined) youtubePlayers[$(this).attr('data-id')].playVideo(); 8874 } else { 8875 if ($(this).is('video')) { 8876 $(this)[0].volume = 0; 8877 $(this)[0].play(); 8878 } 8879 } 8880 }); 8881 8882 if ( $currentSlide.is($footer) ) 8883 isFooter = true; 8884 8885 if ( $nextSlide.is($footer) ) 8886 isFooterNext = true; 8887 8888 if ( ! UNCODE.isMobile && headerWithOpacity ) { 8889 if ( $currentSlide.is($header) ) 8890 $header.addClass('header-scrolled'); 8891 } 8892 8893 footerCoeff = footerH; 8894 8895 if ( UNCODE.isFullPageSnap ) { 8896 postLeaveActions( nextIndex ); 8897 activateBackWash( nextIndex ); 8898 activateKBurns( nextIndex ); 8899 requestTimeout(function(){ 8900 animationEndAction( index, nextIndex ); 8901 }, fp_anim_time+150); 8902 } else { 8903 if ( isFooterNext ) { 8904 8905 var $iscrollWrapper = $currentSlide.find('.fp-scrollable'); 8906 $iscrollWrapper.addClass('no-scrolloverflow'); 8907 8908 $nextSlide 8909 .add($currentSlide) 8910 .addClass('uncode-scroll-front') 8911 .addClass('uncode-scroll-active') 8912 .addClass('uncode-scroll-visible'); 8913 $container.css({ 8914 '-webkit-transform': 'translate3d(0, -' + ( footerCoeff ) + 'px, 0)', 8915 'transform': 'translate3d(0, -' + ( footerCoeff ) + 'px, 0)', 8916 '-webkit-transition': 'transform ' + (( footerCoeff )*2) + 'ms ' + fp_easing, 8917 'transition': 'transform ' + (( footerCoeff )*2) + 'ms ' + fp_easing, 8918 }).off(transitionEnd) 8919 .one(transitionEnd, function(){ 8920 animationEndAction( index, nextIndex ); 8921 }); 8922 8923 } else if ( isFooter ) { 8924 8925 $('.uncode-scroll-lock[data-section="' + (index-1) + '"]', $container) // so it is always the section above the footer to be animated first 8926 .add($currentSlide) 8927 .addClass('uncode-scroll-front') 8928 .addClass('uncode-scroll-active') 8929 .addClass('uncode-scroll-visible'); 8930 $container.css({ 8931 '-webkit-transform': 'translate3d(0, 0, 0)', 8932 'transform': 'translate3d(0, 0, 0)', 8933 '-webkit-transition': 'transform ' + (( footerCoeff )*2) + 'ms ' + fp_easing, 8934 'transition': 'transform ' + (( footerCoeff )*2) + 'ms ' + fp_easing, 8935 }) 8936 .one(transitionEnd, function(){ 8937 if ( nextIndex !== index-1 ) { // if a bullet triggered a slide different than the one above the footer 8938 clearRequestTimeout(timeout); 8939 timeout = requestTimeout(function(){ 8940 $.fn.fullpage.moveTo(nextIndex); 8941 slideLeave( index-1, nextIndex, 'up' ); 8942 $container.off(transitionEnd); 8943 }, 50); 8944 } 8945 animationEndAction( index, nextIndex ); 8946 }); 8947 8948 } else { 8949 8950 postLeaveActions( nextIndex ); 8951 8952 if ( !$('body').hasClass('uncode-fullpage-trid') ) 8953 activateParallax( nextIndex, direction ); 8954 8955 var $outBg = $('.background-wrapper', $currentSlide); 8956 8957 $nextSlide 8958 .addClass('uncode-scroll-front') 8959 .addClass('uncode-scroll-active') 8960 .addClass('uncode-scroll-visible') 8961 .addClass('uncode-scroll-animating-in') 8962 .css({ 8963 'z-index':4, 8964 'animation-name': animIn, 8965 'animation-duration': fp_anim_time + 'ms', 8966 'animation-delay': '', 8967 'animation-timing-function': fp_easing, 8968 'animation-fill-mode': 'both', 8969 'transition': 'initial', 8970 }).off(animationEnd) 8971 .on(animationEnd, function(event) { 8972 if ( event.originalEvent.animationName === animIn ) { 8973 $(this) 8974 .addClass('uncode-scroll-already') 8975 .removeClass('uncode-scroll-front') 8976 .removeClass('uncode-scroll-animating-in') 8977 .css({ 8978 'animation-name': '', 8979 'animation-duration': '', 8980 'animation-delay': '', 8981 'animation-timing-function': '', 8982 'animation-fill-mode': '', 8983 'transition': 'initial', 8984 }); 8985 8986 $currentSlide 8987 .removeClass('uncode-scroll-active') 8988 .add($outBg) 8989 .css({ 8990 'animation-name': '', 8991 'animation-duration': '', 8992 'animation-delay': '', 8993 'animation-timing-function': '', 8994 'animation-fill-mode': '', 8995 'transition': 'initial', 8996 }); 8997 8998 animationEndAction( index, nextIndex ); 8999 9000 } 9001 9002 if ( nextIndex > 1 ) 9003 $('body').addClass('window-scrolled'); 9004 else 9005 $('body').removeClass('window-scrolled'); 9006 }); 9007 9008 $currentSlide 9009 .addClass('uncode-scroll-animating-out') 9010 .removeClass('uncode-scroll-front') 9011 .css({ 9012 'z-index':'1', 9013 'animation-name': animOut, 9014 'animation-duration': fp_anim_time + 'ms', 9015 'animation-delay': '', 9016 'animation-timing-function': fp_easing, 9017 'animation-fill-mode': 'both', 9018 'transition': 'initial', 9019 'will-change': 'auto' 9020 }).off(animationEnd) 9021 .on(animationEnd, function(event) { 9022 if ( event.originalEvent.animationName === animOut ) { 9023 $currentSlide.removeClass('uncode-scroll-animating-out'); 9024 } 9025 }); 9026 9027 if ( $('body').hasClass('uncode-fp-opacity') ) { 9028 $currentSlide.find('> div').css({ 9029 'animation-name': 'opacityout', 9030 'animation-duration': fp_anim_time + 'ms', 9031 'animation-delay': '', 9032 'animation-timing-function': fp_easing, 9033 'animation-fill-mode': 'both', 9034 'transition': 'initial', 9035 }).off(animationEnd) 9036 .on(animationEnd, function(event) { 9037 if ( event.originalEvent.animationName === 'opacityout' ) { 9038 $(event.currentTarget).css({ 9039 'animation-name': '', 9040 'animation-duration': '', 9041 'animation-delay': '', 9042 'animation-timing-function': '', 9043 'animation-fill-mode': '', 9044 'transition': '', 9045 }); 9046 } 9047 }); 9048 } 9049 } 9050 } 9051 9052 $('.scroll-top').on('click', function(e){ 9053 $.fn.fullpage.moveTo(1); 9054 return false;
9055 }); 9056 9057 }; 9058 9059 var init_fullPage = function(mode){ 9060 9061 // if ( typeof mode !== 'undefined' && mode === 'mobile' ) { 9062 // scrollBar = false; 9063 // } 9064 9065 var checkFPeffects; 9066 9067 $container.fullpage({ 9068 sectionSelector: '.uncode-scroll-lock', 9069 scrollOverflow: true, 9070 scrollOverflowOptions: { 9071 click: false, 9072 preventDefaultException: { tagName:/.*/ } 9073 }, 9074 normalScrollElements: ".masthead-vertical", 9075 navigation: false, 9076 scrollBar: scrollBar, 9077 scrollingSpeed: fp_anim_time, 9078 verticalCentered: true, 9079 anchors: no_history ? false : dataNames, 9080 recordHistory: !no_history, 9081 afterRender: function(){ 9082 $('body').removeClass('fp-waiting'); 9083 $('.uncode-scroll-lock', $container).not(':visible').each(function(){ 9084 var $invisible = $(this).addClass('hidden-scroll');//, 9085 }); 9086 $('.uncode-scroll-lock.active', $container).filter(':visible').each(function(){ 9087 var $visible = $(this).addClass('uncode-scroll-visible'), 9088 visIndex = $visible.index('.uncode-scroll-lock:not(.hidden-scroll)'); 9089 $('ul.onepage-pagination a[data-index="' + visIndex + '"]').addClass('is-selected'); 9090 }); 9091 9092 $('ul.onepage-pagination a').on('click', function(e){ 9093 e.preventDefault(); 9094 var $a = $(this), 9095 toIndex = $a.data('index'); 9096 9097 $.fn.fullpage.moveTo(toIndex+1); 9098 }); 9099 9100 requestTimeout(function(){ 9101 scrollHashes(); 9102 }, 1000); 9103 9104 $(window).on('hashchange', function(e){ 9105 requestTimeout(function(){ 9106 scrollHashes(); 9107 }, 500); 9108 }); 9109 9110 anchorLink(); 9111 9112 if ( $('body').hasClass('uncode-fp-opacity') ) { 9113 $all.each(function(index, row) { 9114 var testmatch = $(row)[0].className.match(/\bstyle-.*?-bg\b/g, ''), 9115 classBg; 9116 9117 if ( typeof testmatch !== 'undefined' && testmatch !== null ) { 9118 classBg = testmatch[0]; 9119 $(row).removeClass(classBg).find('.fp-tableCell').addClass(classBg); 9120 } 9121 }); 9122 } 9123 9124 if ( !$('body').hasClass('vmenu') && !$('body').hasClass('menu-offcanvas') ) { 9125 $(window).on('menuOpen gdprOpen', function(){ 9126 $.fn.fullpage.setAutoScrolling(false); 9127 }).on('menuClose gdprClose', function(){ 9128 $.fn.fullpage.setAutoScrolling(true); 9129 }); 9130 } 9131 9132 $(window).on('menuMobileOpen menuCanvasOpen unmodal-open uncode-sidecart-open', function(){ 9133 requestTimeout(function(){ 9134 $.fn.fullpage.setAutoScrolling(false); 9135 }, 1000); 9136 }).on('menuMobileClose menuCanvasClose unmodal-close uncode-sidecart-closed', function(){ 9137 $.fn.fullpage.setAutoScrolling(true); 9138 }); 9139 9140 if ( !UNCODE.isFullPageSnap ) { 9141 clearRequestTimeout(checkFPeffects); 9142 checkFPeffects = requestTimeout(function(){ 9143 activateBackWash( 1 ); 9144 activateKBurns( 1 ); 9145 }, 100); 9146 } 9147 9148 }, 9149 onLeave: function( index, nextIndex, direction ){ 9150 9151 if ( UNCODE.menuOpened || is_scrolling ) 9152 return false; 9153 9154 is_scrolling = true; 9155 9156 var event = new CustomEvent('fp-slide-leave'); 9157 window.dispatchEvent(event); 9158 9159 slideLeave( index, nextIndex, direction ); 9160 9161 if ( $('.uncode-scroll-lock', $container).eq(nextIndex-1).hasClass('hidden-scroll') ) { 9162 if ( direction === 'up' ) { 9163 $.fn.fullpage.moveTo(nextIndex-1); 9164 } else { 9165 $.fn.fullpage.moveTo(nextIndex+1); 9166 } 9167 return false; 9168 } 9169 9170 $('ul.onepage-pagination a').removeClass('is-selected'); 9171 $('ul.onepage-pagination a[data-index="' + (nextIndex-1) + '"]').addClass('is-selected'); 9172 9173 } 9174 }); 9175 }; 9176 9177 init_fullPage(); 9178 $(window).on('load', function(){ 9179 requestTimeout(function(){ 9180 $.fn.fullpage.reBuild(); 9181 }, 3000); 9182 }); 9183 9184 var addScrollingClass, 9185 removeScrollingClass; 9186 9187 window.addEventListener("fp-slide-scroll", function(){ 9188 addScrollingClass = requestTimeout( function(){ 9189 $('body').addClass('fp-slide-scrolling'); 9190 }, 10 ); 9191 9192 clearRequestTimeout(removeScrollingClass); 9193 removeScrollingClass = requestTimeout( function(){ 9194 $('body').removeClass('fp-slide-scrolling'); 9195 }, 150 ); 9196 9197 Waypoint.refreshAll(); 9198 }, false); 9199 9200 var setFPheight = function(){ 9201 var $body = document.body, 9202 $footer = document.getElementById('colophon'), 9203 $maincontainer = document.querySelector('.main-wrapper'), 9204 $boxcontainer = document.querySelector('.box-container'), 9205 $sections = document.querySelectorAll('.fp-section'), 9206 rect = $maincontainer.getBoundingClientRect(), 9207 rect2 = $boxcontainer.getBoundingClientRect(), 9208 $masthead = document.getElementById('masthead'), 9209 _hideMenu = false, 9210 menuHeight = UNCODE.menuHeight; 9211 $body.style.height = UNCODE.wheight + 'px'; 9212 9213 if ( !document.body.classList.contains('vmenu') && document.body.classList.contains('uncode-fp-menu-hide') ) { 9214 _hideMenu = true; 9215 } 9216 if ( $masthead.classList.contains('menu-transparent') || _hideMenu === true ) { 9217 menuHeight = 0 9218 } 9219 9220 9221 if ( theres_footer ) 9222 $footer.style.top = (rect.height || rect2.height) + 'px'; 9223 9224 for (var i = 0; i < $sections.length; i++) { 9225 $sections[i].style.maxHeight = UNCODE.wheight - menuHeight + 'px'; 9226 } 9227 }; 9228 9229 setFPheight(); 9230 9231 window.addEventListener('resize', setFPheight, false); 9232 window.addEventListener('orientationchange', setFPheight, false); 9233 9234}; 9235 9236UNCODE.particles = function() { 9237 $(".vc-particles-background").each(function() { 9238 var $particle = $(this); 9239 var $parent = $particle.closest('[data-parent]'); 9240
9241 $parent.prepend($particle); 9242 // $(window).trigger('resize'); 9243 }) 9244}; 9245 9246 9247UNCODE.readMoreCol = function( $el ){ 9248 if ( typeof $el === 'undefined' || $el === null ) { 9249 $el = $('body'); 9250 } 9251 var $readMoreCols = $('.uncont.overflow-hidden-mask[data-ov-height]', $el); 9252 $readMoreCols.each(function(){ 9253 var $uncont = $(this), 9254 $row = $uncont.closest('.row-container'), 9255 max_h = $uncont.attr('data-ov-height'), 9256 max_h_mobile = $uncont.attr('data-ov-height-mobile'), 9257 actual_max_h = $uncont.outerHeight(), 9258 inner_h, 9259 $read_more = $('+ .btn-more-wrap', $uncont), 9260 read_more_resize = $read_more.hasClass('trigger-resize'), 9261 marginClosedBtn = $uncont.attr('data-margin-closed'), 9262 marginClosed = 0, 9263 marginOpenBtn = $uncont.attr('data-margin-open'), 9264 marginOpen = 0, 9265 anim_t = 250, 9266 resized = false; 9267 9268 max_h_mobile = typeof max_h_mobile === 'undefined' || max_h_mobile === null ? '' : max_h_mobile; 9269 9270 switch (marginClosedBtn) { 9271 case 'sm': 9272 marginClosed = 18 9273 break; 9274 9275 case 'std': 9276 marginClosed = 36 9277 break; 9278 9279 case 'lg': 9280 marginClosed = 72 9281 break; 9282 9283 case '': 9284 default: 9285 marginClosed = 0 9286 break; 9287 9288 } 9289 9290 switch (marginOpenBtn) { 9291 case 'sm': 9292 marginOpen = 18 9293 break; 9294 9295 case 'std': 9296 marginOpen = 36 9297 break; 9298 9299 case 'lg': 9300 marginOpen = 72 9301 break; 9302 9303 case 'no': 9304 marginOpen = 0 9305 break; 9306 9307 } 9308 9309 var checkToggleMobile = function(){ 9310 if ( UNCODE.wwidth <= UNCODE.mediaQuery && max_h_mobile !== '' ) { 9311 resized = true; 9312 if ( $read_more.hasClass('state-closed') ) { 9313 $uncont[0].style.height = ''; 9314 $uncont[0].style.maxHeight = max_h_mobile; 9315 } 9316 } if ( resized === true && UNCODE.wwidth > UNCODE.mediaQuery ) { 9317 if ( $read_more.hasClass('state-closed') ) { 9318 $uncont[0].style.height = ''; 9319 $uncont[0].style.maxHeight = max_h; 9320 } 9321 resized = false; 9322 } 9323 } 9324 checkToggleMobile(); 9325 $(window).on('resize', function() { 9326 checkToggleMobile(); 9327 }); 9328 9329 $('a', $read_more).on('click', function(e){ 9330 e.preventDefault(); 9331 9332 var $a = $(this); 9333 9334 if ( $read_more.hasClass('state-closed') ) { 9335 9336 $read_more 9337 .removeClass('state-closed') 9338 .addClass('state-open'); 9339 9340 $uncont.css({ 9341 'max-height': 'none', 9342 'height': 'auto', 9343 }); 9344 9345 inner_h = parseFloat( $uncont.outerHeight() ); 9346 9347 $uncont.css({ 9348 'height': ( UNCODE.wwidth <= UNCODE.mediaQuery && max_h_mobile !== '' ) ? max_h_mobile : max_h 9349 }); 9350 9351 anim_t = inner_h - actual_max_h; 9352 if ( anim_t < 250 ) { 9353 anim_t = 250; 9354 } else if ( anim_t > 1000 ) { 9355 anim_t = 1000; 9356 } 9357 9358 $uncont.css({ 9359 'transition-duration' : anim_t + 'ms' 9360 }).addClass('overflow-mask-animation').animate({ 9361 'height': inner_h 9362 }, anim_t, 'easeInOutCubic', function(){ 9363 $uncont.css({ 9364 'height' : 'auto' 9365 }).removeClass('overflow-mask'); 9366 if ( read_more_resize === true ) { 9367 window.dispatchEvent(new Event('resize')); 9368 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 9369 ScrollTrigger.refresh(true); 9370 } 9371 } 9372 }); 9373 9374 if ( marginOpen != '' ) { 9375 $read_more.animate({ 9376 'margin-top' : marginOpen 9377 }, anim_t, 'easeInOutCubic'); 9378 } 9379 9380 } else { 9381 $read_more 9382 .removeClass('state-open') 9383 .addClass('state-closed'); 9384 9385 $uncont.addClass('overflow-mask').removeClass('overflow-mask-animation').animate({ 9386 'height': ( UNCODE.wwidth <= UNCODE.mediaQuery && max_h_mobile !== '' ) ? max_h_mobile : max_h 9387 }, anim_t, 'easeInOutCubic', function(){ 9388 if ( read_more_resize === true ) { 9389 window.dispatchEvent(new Event('resize')); 9390 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 9391 ScrollTrigger.refresh(true); 9392 } 9393 } 9394 }); 9395 9396 if ( marginClosed !== '' ) { 9397 $read_more.animate({ 9398 'margin-top' : marginClosed 9399 }, anim_t, 'easeInOutCubic'); 9400 } 9401 9402 if ( $a.hasClass('toggle-scroll') ) { 9403 var $masthead = $('#masthead > div:first-child'), 9404 headH = $masthead.outerHeight(), 9405 rectTop = $row[0].getBoundingClientRect().top, 9406 checkNavBar = $a.hasClass('toggle-navbar'), 9407 checkNavBarMobile = $a.hasClass('toggle-navbar-mobile'), 9408 offCont = ( $row.offset().top ); 9409 9410 if ( UNCODE.wwidth <= UNCODE.mediaQuery ) { 9411 checkNavBar = checkNavBarMobile; 9412 } 9413 9414 if ( checkNavBar ) { 9415 offCont = offCont - headH; 9416 } 9417 9418 if ( rectTop < headH ) { 9419 $('html, body').on("scroll wheel DOMMouseScroll mousewheel touchmove", function(){ 9420 $(this).stop(); 9421 }).animate({ 9422 scrollTop: offCont 9423 }, anim_t, 'easeInOutCubic'); 9424 } 9425 } 9426 9427 } 9428 }); 9429 }); 9430} 9431UNCODE.filters = function() { 9432 var $systems = $('.isotope-system, .cssgrid-system'); 9433 9434 $systems.each(function(index, val){ 9435 var $system = $(this), 9436 $widget_trgr = $('.uncode-woocommerce-toggle-widgetized-cb__link', $system), 9437 $widgets = $('.widgetized-cb-wrapper', $system), 9438 $sorting_trgr = $('.uncode-woocommerce-sorting__link', $system), 9439 $sorting_dd = $('.uncode-woocommerce-sorting-dropdown', $system), 9440 $cats_trigger = $('.menu-smart--filter-cats_mobile-toggle-trigger', $system), 9441 $cats_filters = $('.menu-smart--filter-cats-mobile-dropdown', $system); 9442 9443 if ($system.hasClass('isotope-processed')) { 9444 return; 9445 } 9446 9447 $cats_trigger.on('click', function(e) { 9448 if ( ! $('html').hasClass('screen-sm') ) { 9449 // $widgets.add($sorting_dd).slideUp(400); 9450 e.preventDefault(); 9451 $widgets.slideUp(400, 'easeInOutCirc'); 9452 } 9453 }); 9454 9455 $('.filters-toggle-trigger', $system).on('click', function(e) { 9456 e.preventDefault(); 9457 var $filters = $('.isotope-filters .menu-horizontal', $system); 9458 $filters.slideToggle(400, 'easeInOutCirc');
9459 $widgets.add($cats_filters).slideUp(400, 'easeInOutCirc'); 9460 }); 9461 9462 $widget_trgr.on('click', function(e) { 9463 e.preventDefault(); 9464 $widgets.slideToggle(400, 'easeInOutCirc'); 9465 if (!$('html').hasClass('screen-sm')) { 9466 $cats_filters.slideUp(400, 'easeInOutCirc'); 9467 } 9468 window.dispatchEvent(new CustomEvent('boxResized')); 9469 }); 9470 9471 $sorting_trgr.on('click', function(e) { 9472 e.preventDefault(); 9473 if (!$('html').hasClass('screen-sm')) { 9474 $widgets.add($cats_filters).slideUp(400, 'easeInOutCirc'); 9475 } 9476 }); 9477 9478 $system.addClass('isotope-processed'); 9479 }); 9480 9481}; 9482 9483UNCODE.widgets = function() { 9484 var widget_collapses = $('.widget-collapse'); 9485 9486 widget_collapses.each(function(){ 9487 var widget_collapse = $(this), 9488 widget_title = widget_collapse.find('.widget-title'), 9489 widget = widget_title.closest('.widget'), 9490 content = widget.children().not('.widget-title'), 9491 setCTA; 9492 9493 if ( widget_collapse.hasClass( 'widget-tablet-collapse-open' ) && UNCODE.wwidth <= UNCODE.mediaQuery && UNCODE.wwidth > UNCODE.mediaQueryMobile ) { 9494 widget_title.toggleClass('open'); 9495 } 9496 9497 widget_title.each(function() { 9498 var _this = $(this); 9499 var content = _this.closest('.widget').find('.widget-collapse-content'); 9500 9501 $(window).on('load resize', function(){ 9502 clearRequestTimeout(setCTA); 9503 setCTA = requestTimeout( function() { 9504 if ( content.is(':visible') ) { 9505 _this.addClass( 'open' ); 9506 } else { 9507 _this.removeClass( 'open' ); 9508 } 9509 }, 10 ); 9510 }) 9511 9512 _this.on( 'click', function(){ 9513 9514 // Get content of :after element (+ icon) to check the visibility 9515 var icon_content = window.getComputedStyle(_this[0], ':after').getPropertyValue('content'); 9516 9517 if (icon_content === 'none' || !icon_content) { 9518 return false; 9519 } 9520 9521 _this.toggleClass('open'); 9522 var isOpen = _this.hasClass('open'), 9523 hasBorder = _this.closest('.widget-no-separator').length ? 9 : 27; 9524 content.animate({ 9525 height: 'toggle', 9526 padding: 'toggle', 9527 opacity: 'toggle', 9528 top: isOpen ? 0 : hasBorder 9529 }, { 9530 duration: 400, 9531 easing: "easeInOutCirc", 9532 }); 9533 9534 return false; 9535 9536 }); 9537 }); 9538 }); 9539 9540 var $widgets_without_title = $('.collapse-init').removeClass('collapse-init'); 9541}; 9542 9543UNCODE.unmodal = function() { 9544 $(document).off('click', '.open-unmodal').on('click', '.open-unmodal', function() { 9545 $('.unmodal-overlay').fadeIn(); 9546 $('.unmodal-overlay').addClass('loading'); 9547 $('body').addClass('uncode-unmodal-overlay-visible'); 9548 $(window).trigger('unmodal-open'); 9549 }); 9550 9551 $(document).off('click', '.unmodal-overlay').on('click', '.unmodal-overlay, .unmodal-close', function() { 9552 $('.unmodal-overlay').fadeOut(); 9553 $('.unmodal').fadeOut(); 9554 $('body').removeClass('uncode-unmodal-overlay-visible'); 9555 $('body').removeClass('uncode-unmodal-open'); 9556 $('html').removeClass('uncode-unmodal-body-disable-scroll'); 9557 $(document).trigger('unmodal-close'); 9558 UNCODE.isUnmodalOpen = false; 9559 }); 9560 9561 $(document).on('uncode-unmodal-show-content', function() { 9562 $('.unmodal-overlay').removeClass('loading'); 9563 $('.unmodal').show(); 9564 $('.unmodal').addClass('show-unmodal-with-animation'); 9565 $('.unmodal-content')[0].scrollTop = 0; 9566 $('body').addClass('uncode-unmodal-open'); 9567 UNCODE.isUnmodalOpen = true; 9568 9569 if ($('body').hasClass('qw-body-scroll-disabled')) { 9570 $('html').addClass('uncode-unmodal-body-disable-scroll'); 9571 } 9572 9573 if ($('.unmodal').hasClass('auto-height')) { 9574 set_modal_height(); 9575 } 9576 }); 9577 9578 var set_modal_height = function() { 9579 var modal = $('.unmodal').css({height: 'auto'}); 9580 var window_height = $(window).outerHeight(); 9581 var modal_height = modal.outerHeight(); 9582 9583 modal.css('height', 'auto'); 9584 9585 if (modal_height > window_height) { 9586 modal.outerHeight(window_height); 9587 } 9588 } 9589 9590 if ($('.unmodal').hasClass('auto-height')) { 9591 var setCTA; 9592 9593 $(window).on('resize', function() { 9594 clearRequestTimeout(setCTA); 9595 setCTA = requestTimeout(function() { 9596 set_modal_height(); 9597 }, 100); 9598 }); 9599 } 9600}; 9601 9602UNCODE.bgChanger = function() { 9603 var $bg_changers = $('.vc_row[data-bg-changer]:visible'), 9604 $bg_first = $('.vc_row[data-bg-remove]'), 9605 bg_remove = $bg_first.attr('data-bg-remove'), 9606 $first = $bg_changers.first(), 9607 $last = $bg_changers.last(), 9608 $bg_wrapper = $('#changer-back-color'), 9609 $bg_changings = $('div[data-bg-changing]', $bg_wrapper), 9610 setCTA, localH = UNCODE.wheight, 9611 isScrolling; 9612 9613 $bg_first.removeClass(bg_remove); 9614 9615 var bgChange = function($col, bgColor, skin, tmbskin){ 9616 $bg_wrapper.attr( 'class', bgColor ); 9617 var menuskin; 9618 if ( typeof skin !== 'undefined' ) { 9619 menuskin = skin.replace('style', 'menu') 9620 } 9621 9622 if ( $col.length ) { 9623 $('.uncol[data-skin-change]').each(function(){ 9624 var $isoFooter = $('.isotope-footer', this); 9625 $(this).add($isoFooter).removeClass('style-dark').removeClass('style-light').addClass(skin); 9626 if ( menuskin !== '' ) {
9627 $(this).find('.isotope-filters:not(.with-bg)').removeClass('menu-dark').removeClass('menu-light').addClass(menuskin); 9628 } 9629 }); 9630 9631 $('.tmb[data-skin-change]').each(function(){ 9632 $(this).removeClass('tmb-dark').removeClass('tmb-light').addClass(tmbskin); 9633 }); 9634 } 9635 }; 9636 9637 var $masthead = $('#masthead'), 9638 transDesktop, 9639 transMobile, 9640 changeSkin, 9641 9642 checkTransparencyAndChange = function( skin ){ 9643 transDesktop = $masthead.hasClass('menu-desktop-transparent') && UNCODE.wwidth >= UNCODE.mediaQuery; 9644 transMobile = $masthead.hasClass('menu-mobile-transparent') && UNCODE.wwidth < UNCODE.mediaQuery; 9645 changeSkin = $masthead.hasClass('menu-change-skin'); 9646 9647 if ( ! transDesktop && ! transMobile ) { 9648 return false; 9649 } 9650 9651 if ( ! changeSkin ) { 9652 return false; 9653 } 9654 9655 if ( skin === 'style-light' ){ 9656 $masthead.removeClass('style-dark-override').addClass('style-light-override'); 9657 return false; 9658 } else if ( skin === 'style-dark' ) { 9659 $masthead.removeClass('style-light-override').addClass('style-dark-override'); 9660 return false; 9661 } 9662 }; 9663 9664 var bg_waypoints = function(){ 9665 if ( $bg_changers.length && !SiteParameters.is_frontend_editor ) { 9666 9667 $.each($bg_changers, function(index, row) { 9668 9669 var $row = $(row), 9670 $col = $('.uncol[data-skin-change]', $row).eq(0), 9671 skin, 9672 $tmbs, 9673 tmbskin, 9674 bgColor = $row.attr('data-bg-color'); 9675 9676 if ( ! $row.is(':visible') ) { 9677 return false; 9678 } 9679 9680 if ( $col.length ) { 9681 skin = $col.attr('data-skin-change'); 9682 $tmbs = $('.tmb[data-skin-change]', $row); 9683 tmbskin = skin.replace('style', 'tmb'); 9684 } 9685 9686 if ( ! $row.hasClass('unscroll-horizontal') ) { 9687 $row.waypoint(function( dir ) { 9688 if ( dir === 'down' ) { 9689 bgChange($col, bgColor, skin, tmbskin); 9690 checkTransparencyAndChange(skin); 9691 } else { 9692 return; 9693 } 9694 }, {
9695 offset: '50%' 9696 }); 9697 9698 $row.waypoint(function( dir ) { 9699 if ( dir === 'up' ) { 9700 bgChange($col, bgColor, skin, tmbskin); 9701 checkTransparencyAndChange(skin); 9702 } else { 9703 return; 9704 } 9705 }, { 9706 offset: function() { 9707 var clH = this.element.clientHeight, 9708 wH = window.innerHeight, 9709 ret = clH > 200 ? -100 : clH * -0.5; 9710 return ( wH / 2 ) - clH; 9711 } 9712 }); 9713 } 9714 9715 }); 9716 9717 $('body').addClass('bg-changer-init'); 9718 9719 } 9720 }; 9721 9722 var body = document.body, 9723 edges = false; 9724 9725 var throttle = function(fn, wait) { 9726 var time = Date.now(); 9727 return function() { 9728 if ((time + wait - Date.now()) < 0) { 9729 fn(); 9730 time = Date.now(); 9731 } 9732 } 9733 } 9734 9735 var $wrapper = document.querySelector(".main-wrapper"), 9736 currentPixel = window.pageYOffset || window.document.documentElement.scrollTop; 9737 9738 var $title = document.querySelector('#rotating'); 9739 if ( $title !== null ) { 9740 $title.style.whiteSpace = 'nowrap'; 9741 $title.style.transition = 'transform 200ms linear'; 9742 } 9743 9744 window.addEventListener( 'scroll', throttle( function() { 9745 window.clearRequestTimeout( isScrolling ); 9746 9747 isScrolling = requestTimeout(function() { //trick to make understand Waypoints when it reaches a small first or last row 9748 9749 var scrolled = window.pageYOffset || window.document.documentElement.scrollTop, 9750 body = document.body, 9751 html = document.documentElement, 9752 docH = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ), 9753 $row = false, 9754 firstOff, 9755 lastOff; 9756 9757 if ( scrolled < 100 && $first.length ) { 9758 firstOff = $first.offset().top; 9759 if ( firstOff < 100 ) { 9760 var $row = $first; 9761 } 9762 } else if ( ( scrolled + UNCODE.wheight ) > ( docH - 100 ) && $last.length ) { 9763 lastOff = $last.offset().top + $last.outerHeight(); 9764 if ( lastOff > ( docH - 100 ) ) { 9765 var $row = $last; 9766 } 9767 } 9768 9769 if ( $row.length ) { 9770 var $col = $('.uncol[data-skin-change]', $row).eq(0), 9771 skin, 9772 $tmbs, 9773 tmbskin, 9774 bgColor = $row.attr('data-bg-color'); 9775 9776 if ( $col.length ) { 9777 skin = $col.attr('data-skin-change'); 9778 $tmbs = $('.tmb[data-skin-change]', $row); 9779 tmbskin = skin.replace('style', 'tmb'); 9780 } 9781 9782 bgChange($col, bgColor, skin, tmbskin); 9783 checkTransparencyAndChange(skin); 9784 edges = true; 9785 } 9786 9787 }, 150); 9788 9789 if ( edges === true ) { //trick to make understand Waypoints when, after reaching a small first or last row, it has to start detecting again 9790 bg_waypoints(); 9791 Waypoint.refreshAll(); 9792 edges = false; 9793 } 9794 9795 }, 100), false); 9796 9797 $(window).on('resize', function() { 9798 clearRequestTimeout(setCTA); 9799 setCTA = requestTimeout(function() { 9800 if ( localH != UNCODE.wheight ) { 9801 localH = UNCODE.wheight; 9802 bg_waypoints(); 9803 Waypoint.refreshAll(); 9804 } 9805 }, 100); 9806 }); 9807 9808 bg_waypoints(); 9809 9810}; 9811 9812UNCODE.skewIt = function() { 9813 9814 if ( $('body').hasClass('compose-mode') ) { 9815 return; 9816 } 9817 9818 var justscrolled = false; 9819 9820 var loadSkewIt = function(){ 9821 9822 var $pageHeader = $('#page-header'), 9823 $page_body = $('.page-body'), 9824 $header_skew = $('.uncode-skew.vc_row[data-parent]', $pageHeader); 9825 9826 if ( $header_skew.length ) { 9827 $pageHeader.addClass('uncode-skew').css({ 9828 position: 'relative', 9829 zIndex: 1 9830 }); 9831 $header_skew.removeClass('uncode-skew'); 9832 $page_body.css({ 9833 position: 'relative', 9834 zIndex: 0 9835 }); 9836 } 9837 9838 var $skew = $('.uncode-skew'), 9839 $horizontal = $skew.hasClass('index-scroll') ? $skew : $skew.closest('.index-scroll'), 9840 horizontal = $horizontal.length, 9841 stopSkewing, 9842 lastOffset = 0, 9843 lastDate = Date.now(); 9844 9845 if ( ! $skew.length ) { 9846 return; 9847 } 9848 9849 var dropSkew = function(){ 9850 if ( UNCODE.wwidth < UNCODE.mediaQuery ) 9851 return; 9852 9853 $skew.each(function(){ 9854 var $this = $(this), 9855 $drop = $('.t-entry-drop:not(.drop-parent)', $this); 9856 9857 if ( $drop.length ) { 9858 $this.css({ 9859 'transform': 'skew(0)' 9860 }); 9861 var bound = $this[0].getBoundingClientRect(); 9862 $drop.css({ 9863 left: bound.x * -1, 9864 top: bound.y * -1, 9865 }); 9866 } 9867 }); 9868 }; 9869 dropSkew(); 9870 9871 $(window).on('resize', dropSkew); 9872 9873 window.addEventListener( 'scroll', function() { 9874 9875 if ( justscrolled !== true ) { 9876 justscrolled = true; 9877 return; 9878 } 9879 9880 window.clearRequestTimeout( stopSkewing ); 9881 9882 var now = Date.now(), 9883 delayInMs = now - lastDate, 9884 offset = window.pageYOffset || window.document.documentElement.scrollTop, 9885 newOffset = offset - lastOffset, 9886 speed = Math.pow((newOffset / delayInMs), 3) * -1, 9887 body = document.body, 9888 html = document.documentElement, 9889 docH = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ), 9890 wait = 50, 9891 maxSpeed = UNCODE.wwidth > UNCODE.mediaQuery ? 1 : 2; 9892 9893 if ((lastDate + wait - now) < 0) { 9894 9895 lastDate = now; 9896 lastOffset = offset; 9897 9898 if ( speed > 6 ) { 9899 speed = 6; 9900 } else if ( speed < -6 ) { 9901 speed = -6; 9902 } 9903 9904 if ( speed > 2 && offset < UNCODE.wheight ) { 9905 speed = 2; 9906 } else if ( speed < -2 && ( offset + (UNCODE.wheight*2) ) > docH ) { 9907 speed = -2; 9908 } 9909 9910 var speedY = speed, 9911 speedX = speed * 1.25; 9912 9913 if ( horizontal ) { 9914 speedY = 0; 9915 if ( $horizontal.hasClass('row-scroll-no-md') && UNCODE.wwidth <= UNCODE.mediaQuery ) { 9916 speedX = 0; 9917 return; 9918 } else if ( $horizontal.hasClass('row-scroll-no-sm') && UNCODE.wwidth <= UNCODE.mediaQueryMobile ) { 9919 speedX = 0; 9920 return; 9921 } 9922 } else { 9923 speedX = 0; 9924 } 9925 9926 if ( ! $skew.closest('.enter-st').length ) { 9927 speedX = 0; 9928 } 9929 9930 gsap.killTweensOf($skew); 9931 gsap.to( $skew, { 9932 duration: 0.2, 9933 skewY: (speedY * maxSpeed) + "deg", 9934 skewX: (speedX * maxSpeed) + "deg", 9935 ease: Power0.easeNone, 9936 transformOrigin: 'center', 9937 }); 9938 9939 } 9940 9941 stopSkewing = requestTimeout(function() { 9942 gsap.killTweensOf($skew); 9943 gsap.to( $skew, { 9944 duration: 0.5, 9945 skewY: "0deg", 9946 skewX: "0deg", 9947 transformOrigin: 'center', 9948 ease: Expo.easeOut, 9949 }); 9950 9951 $skew.each(function(){ 9952 var $this = $(this), 9953 $drop = $('.t-entry-drop:not(.drop-parent)', $this); 9954 9955 if ( $drop.length ) { 9956 var bound = $this[0].getBoundingClientRect() 9957 $drop.css({ 9958 left: bound.x * -1, 9959 top: bound.y * -1, 9960 }); 9961 } 9962 }); 9963 9964 }, 200); 9965 9966 }, false); 9967 9968 }; 9969 9970 $(window).on('load', loadSkewIt); 9971 9972}; 9973 9974UNCODE.rotateIt = function() { 9975 9976 if ( $('body').hasClass('compose-mode') ) { 9977 return; 9978 } 9979 9980 var frameRotate = false;
9981 var loadRotateIt = function(){ 9982 9983 var $toRotate = $('.uncode-rotate'); 9984 9985 $toRotate.each(function(){ 9986 var $rotate = $(this), 9987 deg = 0, 9988 dir = true, 9989 coeff = 1, 9990 lastOffset = 0, 9991 lastDate = Date.now(); 9992 9993 var checkScroll = function($rotate){ 9994 // if ( ! $rotate.length ) { 9995 // return; 9996 // } 9997 9998 var now = Date.now(), 9999 delayInMs = now - lastDate, 10000 offset = window.pageYOffset || window.document.documentElement.scrollTop, 10001 newOffset = offset - lastOffset, 10002 speed = (newOffset / delayInMs) * 5, 10003 body = document.body, 10004 html = document.documentElement, 10005 docH = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ); 10006 10007 lastDate = now; 10008 lastOffset = offset; 10009 10010 if ( Math.abs(deg) > 359 || isNaN(deg) ) { 10011 deg = 0; 10012 } 10013 10014 if ( $rotate.hasClass('uncode-rotate-scroll') || $rotate.hasClass('uncode-rotate-speed') ) { 10015 deg = parseFloat(deg) + parseFloat(speed); 10016 } 10017 10018 if ( $rotate.hasClass('uncode-rotate-hover') ) { 10019 $rotate.hover(function(){ 10020 coeff = 1.75; 10021 }, function(){ 10022 coeff = 1; 10023 }); 10024 } 10025 10026 // if ( speed > 0 ) { 10027 // dir = true 10028 // } else if ( speed < 0 ) { 10029 // dir = false 10030 // } 10031 10032 if ( ! $rotate.hasClass('uncode-rotate-scroll') ) { 10033 deg = deg+coeff; 10034 // if ( dir ) { 10035 // deg = deg+coeff; 10036 // } else { 10037 // deg = deg-coeff; 10038 // } 10039 } 10040 10041 if ( $rotate.closest('.un-text-marquee').length && UNCODE.wwidth <= UNCODE.mediaQuery ) { 10042 return false; 10043 } 10044 10045 if ( $rotate.closest('.un-text-marquee').length && ! $rotate.closest('.un-marquee-scroll, .un-marquee-opposite').length ) { 10046 var undeg = deg*-1; 10047 $rotate[0].style.transform = 'rotate(' + undeg + 'deg)'; 10048 } else { 10049 $rotate[0].style.transform = 'rotate(' + deg + 'deg)'; 10050 } 10051 10052 requestAnimationFrame(function() { 10053 if ( frameRotate === true ) { 10054 frameRotate = false; 10055 return; 10056 } 10057 checkScroll($rotate); 10058 }); 10059 }; 10060 10061 checkScroll($rotate); 10062 10063 }); 10064 10065 }; 10066 10067 $(window).on('load', loadRotateIt); 10068 10069 var checkRotate; 10070 var resizeRotate = function(){ 10071 var $inlineRotates = $('.inline-rotate'); 10072 $inlineRotates.each(function(){ 10073 $(this).addClass('inline-rotate-standby'); 10074 }); 10075 clearTimeout(checkRotate); 10076 checkRotate = setTimeout(function(){ 10077 $('.inline-rotate').each(function(){ 10078 $(this).removeClass('inline-rotate-standby'); 10079 frameRotate = true; 10080 }); 10081 loadRotateIt(); 10082 }, 500); 10083 }; 10084 10085 $(window).off('resize.inline-rotate', resizeRotate) 10086 .on('resize.inline-rotate', resizeRotate); 10087 10088}; 10089 10090var marqueeAttempts = 0, 10091 marqueeTO, 10092 marqueeCheckResize, 10093 initMarquee; 10094 10095UNCODE.textMarquee = function( $titles ) { 10096 10097 var isInitMarque = false; 10098 10099 var initTextMarquee = function( $titles ){ 10100 10101 if ( typeof $titles == 'undefined' ) { 10102 $titles = $('.un-text-marquee'); 10103 } 10104 10105 if ( ! $titles.length ) { 10106 return; 10107 } 10108 10109 isInitMarque = true; 10110 10111 var stableHeight = UNCODE.wheight; 10112 10113 $titles.each(function(){ 10114 var $title = $(this), 10115 $span = $('> span, > i > span', $title), 10116 txt, 10117 first = true, 10118 dataSpeed = parseFloat( $title.closest('.heading-text').attr('data-marquee-speed') ), 10119 dataSpace = parseFloat( $title.closest('.heading-text').attr('data-marquee-space') ), 10120 dataTrigger = $title.closest('.heading-text').attr('data-marquee-trigger'), 10121 hasSticky = false, 10122 dataNavBar = $title.closest('.heading-text').attr('data-marquee-navbar'), 10123 dataNavBarMobile = $title.closest('.heading-text').attr('data-marquee-navbar-mobile'), 10124 newW = UNCODE.wwidth, 10125 marqueeTL, inview, 10126 isInMenu = $title.closest('.megamenu-block-wrapper').length; 10127 10128 if ( $title.closest('.sticky-trigger').length || $title.closest('.sticky-element').length || $title.closest('.pin-spacer').length ) { 10129 hasSticky = true; 10130 dataTrigger = 'row'; 10131 } 10132 10133 if ( UNCODE.wwidth <= UNCODE.mediaQuery ) { 10134 dataNavBar = dataNavBarMobile; 10135 } 10136 10137 dataSpeed = isNaN(dataSpeed) ? 0 : dataSpeed; 10138 dataSpace = isNaN(dataSpace) ? 'default' : dataSpace; 10139 var dataX = dataSpeed; 10140 10141 dataSpeed += 5; 10142 10143 $('.marquee-clone-wrap', $title).remove(); 10144 10145 txt = $span.html(); 10146 10147 if ( ! $('.marquee-original-core', $span).length ) { 10148 txt = $span.html(); 10149 $span = $('> span, > i > span', $title).wrapInner('<span class="marquee-original-core" />').addClass('marquee-original'); 10150 } else { 10151 txt = $('.marquee-original-core', $span).html(); 10152 } 10153 10154 var spanW, 10155 $prepended = $('<span class="marquee-clone-wrap wrap-prepended" />'), 10156 $appended = $('<span class="marquee-clone-wrap wrap-appended" />'), 10157 speed = 10 - dataSpeed; 10158 10159 $span.prepend($prepended); 10160 $span.append($appended); 10161 10162 var continuousTextMarquee = function () { 10163 var bound = $title 10164 .css({ 10165 transform: "none", 10166 opacity: 0, 10167 }) 10168 .offset(), 10169 ease = "none"; 10170 10171 var xStrt = 10172 first || $title.hasClass("un-marquee-infinite") 10173 ? 0 10174 : UNCODE.wwidth - bound.left, 10175 xEnd = $title.hasClass("un-marquee-infinite") 10176 ? spanW 10177 : spanW + bound.left, 10178 xSpeed = 10179 ((xEnd + xStrt) / (dataSpeed * dataSpeed * dataSpeed) / 5) * 10180 dataSpeed, 10181 direction = $title.hasClass("un-marquee-opposite") ? 1 : -1, 10182 speedSlow = (xEnd + xStrt) / 45, 10183 transFormVal, 10184 translX; 10185 10186 marqueeTL = new TimelineMax({ paused: true, reversed: true }); 10187 marqueeTL.play(); 10188 10189 var inViewElement = 10190 dataTrigger === "row" ? ( hasSticky ? $title.closest('.sticky-trigger, .sticky-element').parent()[0] : $title.closest(".vc_row")[0] ) : $title[0], 10191 wayOff = 10192 dataTrigger === "row" && dataNavBar === "yes" 10193 ? UNCODE.menuHeight 10194 : 0; 10195 10196 if ( isInMenu ) { 10197 $(document).on('un-menu-show.marquee', function(e, $ul){ 10198 marqueeTL.restart(); 10199 }); 10200 $(document).on('un-menu-hide.marquee', function(e, $ul){ 10201 marqueeTL.pause(); 10202 }); 10203 } else { 10204 inview = new Waypoint.Inview({ 10205 element: inViewElement, 10206 offset: wayOff, 10207 enter: function (direction) { 10208 marqueeTL.play(); 10209 }, 10210 exited: function (direction) { 10211 if (!$title.closest(".pin-spacer").length) { 10212 marqueeTL.pause(); 10213 } 10214 }, 10215 }); 10216 } 10217 10218 if ($title.hasClass("un-marquee-hover")) { 10219 var $column = $title.closest(".wpb_column"), 10220 $col_link = $(".col-link", $column), 10221 $hover_sel = $title; 10222 10223 if ($col_link.length) { 10224 $hover_sel = $title.add($column); 10225 } 10226 $hover_sel 10227 .on("mouseover", function () { 10228 ease = "power2.out";
10229 transFormVal = $title.css("transform").split(/[()]/)[1]; 10230 translX = transFormVal.split(",")[4]; 10231 speedSlow = (xEnd + (xStrt - translX)) / 45; 10232 marqueeTL.duration(speedSlow); 10233 }) 10234 .on("mouseout", function () { 10235 ease = "power2.in"; 10236 transFormVal = $title.css("transform").split(/[()]/)[1]; 10237 translX = transFormVal.split(",")[4]; 10238 speedSlow = 10239 ((xEnd + (xStrt - translX)) / 10240 (dataSpeed * dataSpeed * dataSpeed) / 10241 5) * 10242 dataSpeed; 10243 marqueeTL.duration(speedSlow); 10244 }); 10245 } 10246 10247 gsap.killTweensOf($title); 10248 marqueeTL.fromTo( $title, { 10249 opacity: 1, 10250 x: xStrt * direction * -1 10251 }, 10252 { 10253 duration: xSpeed, 10254 x: xEnd * direction, 10255 onComplete: function(){ 10256 first = false; 10257 if ( isInMenu ) { 10258 marqueeTL.restart(); 10259 } else { 10260 continuousTextMarquee(); 10261 } 10262 }, 10263 onUpdate: function(){ 10264 if ( ! $title[0].isConnected ) { 10265 marqueeTL.kill(); 10266 initTextMarquee(); 10267 } 10268 }, 10269 ease: ease 10270 }); 10271 10272 }; 10273 10274 var runTextMarquee = function(){ 10275 var time = Date.now(); 10276 10277 var textMarqueeScroll = function(){ 10278 var $row = $title.closest('.vc_row'); 10279 if ( hasSticky ) { 10280 $row = $title.closest('.sticky-trigger, .sticky-element').parent(); 10281 } 10282 var $bound = (dataTrigger === 'row' || dataTrigger === 'row-middle') ? $row : $title; 10283 10284 if ( !$bound.length ) { 10285 return; 10286 } 10287 10288 var bound = $bound[0].getBoundingClientRect(), 10289 wait = 100, 10290 direction = $title.hasClass('un-marquee-scroll-opposite') ? -1 : 1, 10291 dataMove = dataX >= 0 ? 1 + dataX : -1 * ( 5 / (dataX - 0.5) * 0.25); 10292 10293 if ( bound.top === 0 && bound.bottom === 0 && bound.left === 0 && bound.right === 0 && 10294 bound.height === 0 && bound.width === 0 && bound.x === 0 && bound.y === 0 && 10295 marqueeAttempts < 2 ) { 10296 10297 clearRequestTimeout(marqueeTO); 10298 10299 marqueeTO = requestTimeout(function(){ 10300 marqueeAttempts++; 10301 runTextMarquee(); 10302 }, 100); 10303 } 10304 10305 10306 var bound_top = bound.top, 10307 gsap_calc = ( ( stableHeight * 0.35 - bound_top ) * dataMove ) * 0.5 * direction; 10308 10309 if ( dataTrigger === 'row' || dataTrigger === 'row-middle' ) { 10310 if ( dataTrigger === 'row-middle' ) { 10311 bound_top = (bound.top + bound.height*0.5) - (stableHeight * 0.5) 10312 } 10313 if ( dataNavBar === 'yes' ) { 10314 bound_top = bound_top - UNCODE.menuHeight; 10315 } 10316 gsap_calc = ( bound_top * dataMove ) * 0.5 * direction; 10317 } 10318 10319 gsap.killTweensOf($title); 10320 gsap.to( $title, { 10321 duration: 0.24, 10322 x: gsap_calc, 10323 }); 10324 }; 10325 10326 textMarqueeScroll(); 10327 $(window).on( 'load scroll', function(e) { 10328 textMarqueeScroll(); 10329 }); 10330 10331 }; 10332 10333 var cloneSpan = function($_title, cntnt){ 10334 10335 if ( $_title.hasClass('un-marquee-infinite') ) { 10336 $('> span.marquee-clone-wrap', $_title).text(''); 10337 } 10338 10339 gsap.to( $_title, { 10340 duration: 0, 10341 x: 0 10342 }); 10343 spanW = $span.outerWidth(); 10344 10345 10346 if ( !spanW ) { 10347 return; 10348 } 10349 10350 var part = Math.ceil( UNCODE.wwidth / spanW ) * 2, 10351 spaceSpan = dataSpace !== 'default' ? '<span class="marquee-space-' + dataSpace + '">\u00A0</span>' : "\u00A0"; 10352 10353 if ( $_title.hasClass('un-marquee-infinite') ) { 10354 10355 for ( var i = 0; i < part; i++ ) { 10356 $prepended.append(cntnt + spaceSpan); 10357 $appended.append(cntnt + spaceSpan); 10358 } 10359 } 10360 10361 if ( $('body').hasClass('compose-mode') ) { 10362 $('.uncode_fe_safe').remove(); 10363 return; 10364 } 10365 10366 if ( $title.closest('.marquee-freezed').length ) { 10367 return; 10368 } 10369 10370 if ( $_title.hasClass('un-marquee') || $_title.hasClass('un-marquee-opposite') ) { 10371 continuousTextMarquee(); 10372 } 10373 10374 if ( $_title.hasClass('un-marquee-scroll') || $_title.hasClass('un-marquee-scroll-opposite') ) { 10375 runTextMarquee(); 10376 } 10377 10378 }; 10379 10380 var marqueeResize = function(e){ 10381 if ( isInMenu ) { 10382 return; 10383 } 10384 var tOut = 1000; 10385 if ( isInMenu ) { 10386 gsap.killTweensOf($title); 10387 if ( typeof inview !== 'undefined' && inview !== null ) { 10388 inview.destroy(); 10389 } 10390 if ( typeof marqueeTL !== 'undefined' && marqueeTL !== null ) { 10391 marqueeTL.kill(); 10392 } 10393 first = true; 10394 initTextMarquee(); 10395 } else { 10396 clearRequestTimeout(marqueeCheckResize); 10397 marqueeCheckResize = requestTimeout(function(){ 10398 if ( newW !== UNCODE.wwidth ) { 10399 gsap.killTweensOf($title); 10400 if ( typeof inview !== 'undefined' && inview !== null ) { 10401 inview.destroy(); 10402 } 10403 if ( typeof marqueeTL !== 'undefined' && marqueeTL !== null ) { 10404 marqueeTL.kill(); 10405 } 10406 first = true; 10407 initTextMarquee(); 10408 newW = UNCODE.wwidth; 10409 } 10410 }, tOut); 10411 } 10412 }; 10413 10414 $(window).off('resize', marqueeResize) 10415 .on( 'resize', marqueeResize); 10416 $(window).off('uncode.re-layout', marqueeResize) 10417 .on( 'uncode.re-layout', marqueeResize); 10418 10419 cloneSpan($title, txt); 10420 10421 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 10422 window.parent.vc.events.on( 'shortcodeView:updated', function( e ){ 10423 var $_titles = $('.un-text-marquee',e.view.$el); 10424 clearRequestTimeout(marqueeCheckResize); 10425 marqueeCheckResize = requestTimeout(function(){ 10426 initTextMarquee($_titles); 10427 }, 1000); 10428 }); 10429 } 10430 }); 10431 10432 $(window).on( 'load wwResize', function(e) { 10433 stableHeight = UNCODE.wheight; 10434 }); 10435 10436 }; 10437 10438 document.addEventListener("DOMContentLoaded", function() { 10439 if ( isInitMarque !== true ) { 10440 initTextMarquee(); 10441 } 10442 }); 10443 10444 $(window).on('focus load resize',function(){ 10445 clearTimeout(initMarquee); 10446 initMarquee = setTimeout(function(){ 10447 if ( isInitMarque !== true ) { 10448 initTextMarquee(); 10449 } 10450 }, 500); 10451 }); 10452 10453 $(document).on('pumAfterOpen pumAfterClose uncode-scrolltrigger-refresh', function(args){ 10454 initTextMarquee(); 10455 }); 10456 10457}; 10458 10459UNCODE.parallax = function() { 10460 if (!UNCODE.isFullPage && !UNCODE.isFullPageSnap && (UNCODE.wwidth > UNCODE.mediaQuery || SiteParameters.mobile_parallax_animation === '1')) { 10461 if ($('.parallax-el').length > 0) { 10462 var parallax_elements = new Rellax('.parallax-el'); 10463 $( document.body ).trigger('uncode_parallax_done', parallax_elements); 10464 window.addEventListener('boxResized', function(e) { 10465 parallax_elements.refresh(); 10466 }, false); 10467 $(window).on('uncode_wc_variation_gallery_loaded', function (event) { 10468 requestTimeout(function() { 10469 parallax_elements.refresh(); 10470 }, 100); 10471 }); 10472 10473 if ( typeof UNCODE.hDoc === 'undefined' ) { 10474 UNCODE.hDoc = Math.max( document.body.scrollHeight, document.body.offsetHeight, 10475 document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ); 10476 } 10477 10478 function paralraf(time) { 10479 requestAnimationFrame(paralraf) 10480 10481 var newHdoc = Math.max( document.body.scrollHeight, document.body.offsetHeight, 10482 document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ); 10483 10484 if ( UNCODE.hDoc !== newHdoc ) { 10485 UNCODE.hDoc = newHdoc; 10486 parallax_elements.refresh(); 10487 } 10488 } 10489 10490 requestAnimationFrame(paralraf) 10491 10492 } 10493 } 10494}; 10495 10496UNCODE.magicCursor = function(){ 10497 var $customCursor = $('#uncode-custom-cursor'), 10498 $customPilot = $('#uncode-custom-cursor-pilot'), 10499 $tooltip = $('.title-tooltip', $customCursor),
10500 $cursorSpan = $('> span', $tooltip), 10501 currentBg = false, 10502 fromTitle = false, 10503 setTime, 10504 mouseEvent; 10505 10506 var spanW, spanH, 10507 maxW = false; 10508 10509 function delayChangeCursor(cursorType, cursorTitle, cursorBg, delayt_time, dataTitle, fontClass){ 10510 if ( currentBg !== false && cursorBg === false && cursorType === 'auto' ) { 10511 $tooltip.css({opacity: 0}); 10512 delayt_time += 400; 10513 } 10514 clearRequestTimeout(setTime); 10515 setTime = requestTimeout(function() { 10516 10517 $tooltip.css({opacity: ''}); 10518 10519 $customCursor.find('> span:first-child').add($tooltip).removeClass('tooltip-boing'); 10520 10521 if ( cursorTitle !== '' ) { 10522 if ( fromTitle && dataTitle === 'boing' ) { 10523 setTimeout(function(){ 10524 $customCursor.find('> span:first-child').add($tooltip).addClass('tooltip-boing'); 10525 }, 5); 10526 } 10527 $cursorSpan.attr('class', fontClass).html( cursorTitle ); 10528 } else { 10529 if ( cursorType !== 'auto' ) { 10530 $cursorSpan.html(''); 10531 } 10532 } 10533 10534 $cursorSpan.addClass('in-tooltip'); 10535 10536 $customCursor.attr('data-cursor', cursorType); 10537 10538 if ( fromTitle ) { 10539 $customCursor.addClass('from-tooltip-title'); 10540 } else { 10541 $customCursor.removeClass('from-tooltip-title'); 10542 } 10543 10544 if ( cursorBg !== false ) { 10545 $customCursor.attr('data-bg', 'transparent'); 10546 } else { 10547 $customCursor.removeAttr('data-bg'); 10548 } 10549 10550 currentBg = cursorBg; 10551 10552 if ( cursorTitle !== '' ) { 10553 fromTitle = true; 10554 $customCursor.attr('data-cursor', cursorType); 10555 $customCursor.attr('data-title', 'true'); 10556 $cursorSpan.css({width: ''}); 10557 } else { 10558 fromTitle = false; 10559 $customCursor.removeAttr('data-title'); 10560 } 10561 spanW = $cursorSpan.outerWidth(); 10562 10563 if ( spanW >= maxW && maxW !== false ) { 10564 $customCursor.find('> span:first-child').add($tooltip).addClass('max-width'); 10565 $customCursor.find('> span:first-child').add($tooltip).add($cursorSpan).css({ 10566 width: maxW 10567 }); 10568 spanW = maxW; 10569 } else { 10570 $customCursor.find('> span:first-child').removeClass('max-width'); 10571 } 10572 spanH = $cursorSpan.outerHeight(); 10573 if ( spanW && spanH && cursorTitle !== '' && cursorType.indexOf('icon-') >= 0 ) { 10574 $customCursor.find('> span:first-child').add($tooltip).css({ 10575 width: spanW, 10576 height: spanH 10577 }); 10578 } else { 10579 $customCursor.find('> span:first-child').add($tooltip).removeAttr("style"); 10580 } 10581 if ( $customPilot.length ) { 10582 $customPilot.attr('data-cursor', cursorType); 10583 } 10584 }, delayt_time); 10585 } 10586 10587 function changeCursor($wrap){ 10588 $wrap = typeof $wrap === 'undefined' ? $('body') : $wrap; 10589 var href = SiteParameters.custom_cursor_selector != '' ? SiteParameters.custom_cursor_selector : '[href], a[data-lbox]', 10590 $href = $wrap.find(href), 10591 cursorType, 10592 cursorTitle = '', 10593 tooltip_class = '', 10594 cursorBg = false; 10595 10596 $wrap.filter(":not(.cursor-init)").on("mouseenter.cursor", href, function (e) { 10597 var $this = $(this).addClass("cursor-init"), 10598 $tmb = $this.closest('.tmb'), 10599 data_cursor = $this.closest('[data-cursor]').attr('data-cursor') || $this.attr('data-cursor'), 10600 cursor_bg = $this.closest('[data-cursor]').attr('data-cursor-transparent') || $this.attr('data-cursor-transparent'), 10601 data_title = $this.closest('[data-cursor]').attr('data-cursor-title') || $this.attr('data-cursor-title'), 10602 data_class = $this.closest('[data-cursor]').attr('data-tooltip-class') || $this.attr('data-tooltip-class'), 10603 custom_text = ($this.closest('[data-cursor]').attr('data-tooltip-text') || $this.attr('data-tooltip-text')), 10604 $title = $('.t-entry-title', $tmb), 10605 is_frontend_editor = $this.closest('.vc_controls').length, 10606 hasSrcOrClck = $('[src]', $this).length || $('.t-background-cover', $this).length || $this.closest('.tmb-click-row').length, 10607 $parent_cursor = $this.closest('[class*="custom-cursor"]'); 10608 10609 if ( is_frontend_editor ) { 10610 cursorType = 'auto'; 10611 } else if ( typeof data_cursor !== 'undefined' && data_cursor !== '' && hasSrcOrClck ) { 10612 cursorType = data_cursor; 10613 } else if ( $parent_cursor.length ) { 10614 if ( $parent_cursor.hasClass('custom-cursor-light') ) { 10615 cursorType = 'icon-light'; 10616 } else if ( $parent_cursor.hasClass('custom-cursor-diff') ) { 10617 cursorType = 'icon-diff'; 10618 } else if ( $parent_cursor.hasClass('custom-cursor-accent') ) { 10619 cursorType = 'icon-accent'; 10620 } else { 10621 cursorType = 'icon-dark'; 10622 } 10623 } else { 10624 cursorType = 'pointer'; 10625 } 10626 10627 if ( typeof data_title !== 'undefined' && data_title !== '' ) { 10628 if ( typeof custom_text !== 'undefined' && custom_text !== '' ) { 10629 cursorTitle = custom_text; 10630 } else { 10631 cursorTitle = $title.clone(); 10632 $('a', cursorTitle).replaceWith(function() { 10633 return this.childNodes; 10634 }); 10635 $('*', cursorTitle).replaceWith(function(){ 10636 return $(this).removeAttr('class'); 10637 });
10638 cursorTitle = cursorTitle.html(); 10639 } 10640 } else { 10641 cursorTitle = ''; 10642 } 10643 10644 if ( typeof data_class !== 'undefined' && data_class !== '' ) { 10645 tooltip_class = data_class; 10646 } else { 10647 tooltip_class = ''; 10648 } 10649 10650 if ( cursor_bg == 'true' ) { 10651 cursorBg = true; 10652 } else { 10653 cursorBg = false; 10654 } 10655 10656 delayChangeCursor(cursorType, cursorTitle, cursorBg, 0, data_title, tooltip_class); 10657 }).on("mouseleave.cursor", href, function(e) { 10658 var outTime = 150; 10659 if ( currentBg !== false && cursorBg === false ) { 10660 outTime = 0; 10661 } 10662 delayChangeCursor('auto', '', false, outTime, false, ''); 10663 }); 10664 10665 $(window).on('disable-hover', function(event) { 10666 document.addEventListener("mousemove", function(e) { 10667 mouseEvent = e; 10668 }); 10669 delayChangeCursor('auto', cursorTitle, cursorBg, 0, false, ''); 10670 }); 10671 10672 $(window).on('enable-hover', function(event) { 10673 if ( typeof mouseEvent !== 'undefined' ) { 10674 var x = mouseEvent.clientX, 10675 y = mouseEvent.clientY; 10676 10677 var elements = document.elementsFromPoint(x, y), 10678 $element = $(elements[0]); 10679 10680 $element.closest(href).trigger('mouseenter'); 10681 } 10682 }); 10683 10684 } 10685 10686 $(window).on('load uncode-custom-cursor uncode-quick-view-loaded', function(event) { 10687 changeCursor(); 10688 }); 10689 10690 $(document).ajaxComplete(function( event, xhr, settings ) { 10691 changeCursor(); 10692 }); 10693 10694 $('.isotope-container').on('isotope-layout-complete', function() { 10695 var $this = $(this); 10696 changeCursor($this); 10697 }); 10698 10699}; 10700 10701UNCODE.magneticCursor = function(){ 10702 function magneticCursor($wrap){ 10703 $wrap = typeof $wrap === 'undefined' ? $('body') : $wrap; 10704 var $magnetics = $wrap.find('.tmb-image-anim-magnetic .t-entry-visual').has('img:not(.avatar), .t-background-cover, .dummy.secondary-dummy-image, .t-secondary-background-cover').add($('.magnetic').has('.background-inner, .header-bg')); 10705 10706 $magnetics.on('mousemove', function(e){ 10707 var $this = $(this), 10708 $el, 10709 bound = e.currentTarget.getBoundingClientRect(), 10710 coeff = 30, 10711 hor = (bound.width / 2) - (e.clientX - bound.left), 10712 ver = (bound.height / 2) - (e.clientY - bound.top), 10713 toX = hor / bound.width * coeff, 10714 toY = ver / bound.height * coeff, 10715 scaleX = ((bound.width + coeff + 5) / bound.width).toFixed(2), 10716 scaleY = ((bound.height + coeff + 5) / bound.height).toFixed(2), 10717 toScale = Math.max(scaleX, scaleY); 10718 10719 if ( $this.hasClass('magnetic') ) { 10720 $el = $('.background-inner, .header-bg', $this); 10721 } else { 10722 $el = $('img:not(.avatar), .t-background-cover, .fluid-object, .dummy.secondary-dummy-image, .t-secondary-background-cover', $this); 10723 } 10724 10725 gsap.killTweensOf($el); 10726 gsap.to( $el, { 10727 duration: 0.75, 10728 x: toX, 10729 y: toY, 10730 scale: toScale, 10731 ease: Power1.easeOut, 10732 transformPerspective: 900, 10733 transformOrigin: 'center', 10734 force3D: true 10735 }); 10736 }).on('mouseout', function(e){ 10737 var $this = $(this), 10738 $el 10739 if ( $this.hasClass('magnetic') ) { 10740 $el = $('.background-inner, .header-bg', $this); 10741 } else { 10742 $el = $('img:not(.avatar), .t-background-cover, .fluid-object, .dummy.secondary-dummy-image, .t-secondary-background-cover', $this); 10743 } 10744 gsap.killTweensOf($el); 10745 gsap.to( $el, { 10746 duration: 0.6, 10747 y: 0, 10748 x: 0, 10749 scale: 1, 10750 ease: Power1.easeOut, 10751 transformPerspective: 900, 10752 transformOrigin: 'center', 10753 force3D: true 10754 }); 10755 }); 10756 }; 10757 10758 $(window).on('load uncode-custom-cursor uncode-quick-view-loaded', function(event) { 10759 magneticCursor(); 10760 }); 10761 10762 $(document).ajaxComplete(function( event, xhr, settings ) { 10763 magneticCursor(); 10764 }); 10765 10766 $('.isotope-container').on('isotope-layout-complete', function() { 10767 var $this = $(this); 10768 magneticCursor($this); 10769 }); 10770 10771}; 10772 10773UNCODE.dropImage = function() { 10774 10775 /**************************** 10776 * Image hover * 10777 ****************************/ 10778 function imageHover(){ 10779 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 10780 return; 10781 } 10782 10783 var $postLists = $('.uncode-post-titles'); 10784 $postLists.each(function(){ 10785 var $list = $(this), 10786 timing = parseFloat( $list.attr('data-timing') ), 10787 default_image = $list.hasClass('uncode-post-titles-default-image'), 10788 default_title = $list.hasClass('uncode-post-titles-default-title'), 10789 $tmbs = $('.tmb', $list), 10790 $drop_moves = $('.t-entry-drop:not(.drop-parent)', $tmbs), 10791 clientX, 10792 clientY, 10793 $row_parent = $list.closest('.vc_row'), 10794 $drop_row_parents = $('.drop-parent.drop-parent-row', $list), 10795 $col_parent = $list.closest('.uncell'), 10796 $drop_col_parents = $('.drop-parent.drop-parent-column', $list), 10797 stoppedScrolling = true, 10798 setCTA; 10799 10800 timing *= 0.001; 10801 10802 var drop_bgs = function(){ 10803 $drop_row_parents.add($drop_col_parents).filter('[data-bgset]').each(function(e){ 10804 var $drop = $(this), 10805 srcset = $drop.attr('data-bgset'), 10806 setArr = srcset.split(","), 10807 setArrOrder = [], 10808 biggest = 0, 10809 checkBg = false, 10810 desktopBG = $drop.data('[data-background-image]'), 10811 mobileBG = $drop.data('[data-mobile-background-image]'); 10812 10813 if ( $drop.hasClass('srcset-bg-async') ) { 10814 10815 if ( ( UNCODE.wwidth < UNCODE.mediaQuery && typeof mobileBG !== 'undefined' && mobileBG !== '' ) || ( UNCODE.wwidth >= UNCODE.mediaQuery && typeof desktopBG !== 'undefined' && desktopBG !== '' ) ) { 10816 return; 10817 } 10818 10819 } 10820 10821 if ( SiteParameters.uncode_adaptive == true ) { 10822 if ( typeof setArr[0] !== 'undefined' && setArr[0] !== null ) { 10823 $drop.css({ 10824 'background-image' : 'url(' + setArr[0] + ')' 10825 }); 10826 } 10827 } else { 10828 for ( var i = 0; i < setArr.length; i++ ) { 10829 var setLoop = setArr[i].trim().split(" ");
10830 if ( typeof setLoop[1] !== 'undefined' && setLoop[1] !== '' ) { 10831 var parseSet = parseFloat(setLoop[1]); 10832 if ( biggest < parseSet ) { 10833 biggest = parseSet; 10834 } 10835 setArrOrder[parseSet] = setLoop[0]; 10836 if ( screenInfo.width <= parseSet && typeof setLoop[0] !== 'undefined' && setLoop[0] !== null ) { 10837 checkBg = true; 10838 $drop.css({ 10839 'background-image' : 'url(' + setLoop[0] + ')' 10840 }); 10841 } 10842 } 10843 } 10844 10845 if ( !checkBg && typeof setArrOrder[biggest] !== 'undefined' && setArrOrder[biggest] !== null ) { 10846 $drop.css({ 10847 'background-image' : 'url(' + setArrOrder[biggest] + ')' 10848 }); 10849 } 10850 } 10851 10852 }); 10853 }; 10854 10855 drop_bgs(); 10856 10857 var dropMovesSize = function(){ 10858 if ( UNCODE.wwidth < UNCODE.mediaQuery ) { 10859 return; 10860 } 10861 $drop_moves.each(function(){ 10862 var $drop_move = $(this), 10863 dataW = $drop_move.attr('data-w'), 10864 $anim_parent = $drop_move.closest('.animate_when_almost_visible:not(.uncode-skew):not(.t-inside), .parallax-el'); 10865 if ( typeof dataW !== 'undefined' && dataW !== null ) { 10866 dataW = screenInfo.width / 12 * parseFloat( dataW ); 10867 } 10868 $drop_moves.css({ 10869 width: dataW 10870 }); 10871 10872 if ( $anim_parent.length && $anim_parent.css('transform') !== '' && $anim_parent.css('transform') !== 'none' ) { 10873 $anim_parent.on('animationend', function(){ 10874 var bound = $anim_parent[0].getBoundingClientRect(); 10875 $drop_move.css({ 10876 left: bound.x * -1, 10877 top: bound.y * -1, 10878 }); 10879 }); 10880 } 10881 }); 10882 10883 10884 }; 10885 10886 dropMovesSize(); 10887 10888 $(window).on( 'resize', function(){ 10889 clearRequestTimeout(setCTA); 10890 setCTA = requestTimeout( function() { 10891 drop_bgs(); 10892 dropMovesSize(); 10893 }, 100 ); 10894 }); 10895 10896 if ( $drop_row_parents.length ) { 10897 $row_parent.addClass( 'drop-added' ); 10898 } 10899 10900 $drop_row_parents.each(function(index, val){ 10901 var $drop = $(val); 10902 $row_parent.prepend($drop); 10903 manageVideos($drop, false); 10904 if ( typeof UNCODE.initVideoComponent !== 'undefined' ) { 10905 UNCODE.initVideoComponent($row_parent[0], '.uncode-video-container.video, .uncode-video-container.self-video'); 10906 } 10907 if ( default_image && index == 0 ) { 10908 manageVideos($drop, true); 10909 var bg_img = $drop.css('background-image').match(/url\(["']?([^"']*)["']?\)/)[1], 10910 image_ph = new Image(); 10911 if ( typeof bg_img !== 'undefined' && bg_img !== null ) { 10912 image_ph.onload = function() { 10913 $drop.addClass('active'); 10914 if ( default_title ) { 10915 $list.addClass('drop-hover'); 10916 $tmbs.first().addClass('drop-active'); 10917 } 10918 }; 10919 image_ph.src = bg_img; 10920 } 10921 } 10922 }); 10923 10924 if ( $drop_col_parents.length ) { 10925 $col_parent.addClass( 'drop-added' ); 10926 } 10927 10928 $drop_col_parents.each(function(index, val){ 10929 var $drop = $(this); 10930 $col_parent.prepend($drop); 10931 manageVideos($drop, false); 10932 if ( typeof UNCODE.initVideoComponent !== 'undefined' ) { 10933 UNCODE.initVideoComponent($col_parent[0], '.uncode-video-container.video, .uncode-video-container.self-video'); 10934 } 10935 if ( default_image && index == 0 ) { 10936 manageVideos($drop, true); 10937 var bg_img = $drop.css('background-image').match(/url\(["']?([^"']*)["']?\)/)[1], 10938 image_ph = new Image(); 10939 if ( typeof bg_img !== 'undefined' && bg_img !== null ) { 10940 image_ph.onload = function() { 10941 $drop.addClass('active'); 10942 if ( default_title ) { 10943 $list.addClass('drop-hover'); 10944 $tmbs.first().addClass('drop-active'); 10945 } 10946 }; 10947 image_ph.src = bg_img; 10948 } 10949 } 10950 }); 10951 10952 function manageVideos( $el, start ) { 10953 var videoElem = $('video', $el), 10954 $iframe = $('iframe', $el), 10955 iframeID = $iframe.attr('id'); 10956 if ( videoElem.length ) { 10957 if ( Object.prototype.toString.call( videoElem[0].setCurrentTime) == '[object Function]') { 10958 if ( start ) { 10959 videoElem[0].setCurrentTime(0); 10960 videoElem[0].play(); 10961 } else { 10962 videoElem[0].pause(); 10963 videoElem[0].setCurrentTime(0); 10964 } 10965 } else { 10966 if ( start ) { 10967 videoElem[0].currentTime = 0; 10968 videoElem[0].play(); 10969 } else { 10970 videoElem[0].pause(); 10971 videoElem[0].currentTime = 0; 10972 } 10973 } 10974 } 10975 10976 $el.data('active', start); 10977 10978 if ( $el.attr('data-provider') === 'vimeo' && typeof iframeID !== 'undefined' && iframeID !== null ) { 10979 var iframeIDv = iframeID.replace('okplayer-', ''), 10980 optionsV = $(window).data('okoptions-' + iframeIDv), 10981 vimeo = $iframe[0], 10982 playerV = new Vimeo.Player(vimeo), 10983 timeV = 0; 10984 10985 if (optionsV.time != null) { 10986 var timeArr = (optionsV.time).replace('t=', '').split(/([^\d.-])/); 10987 for ( var i = 0; i < timeArr.length; i++ ) { 10988 if ( timeArr[i] === 'h' ) { 10989 timeV += parseFloat(timeArr[i-1]) * 3600; 10990 } else if ( timeArr[i] === 'm' ) { 10991 timeV += parseFloat(timeArr[i-1]) * 60; 10992 } else if ( timeArr[i] === 's' ) { 10993 timeV += parseFloat(timeArr[i-1]); 10994 } 10995 } 10996 } 10997 playerV.setCurrentTime(timeV); 10998 if ( start ) { 10999 playerV.setVolume(0); 11000 playerV.play(); 11001 } else { 11002 playerV.pause(); 11003 } 11004 } else if ( $el.attr('data-provider') === 'youtube' ) { 11005 if ( start ) { 11006 $el.trigger('uncode-resume'); 11007 } else { 11008 $el.trigger('uncode-pause'); 11009 } 11010 } 11011 11012 } 11013 11014 if ( UNCODE.wwidth >= UNCODE.mediaQuery ) { 11015 11016 document.addEventListener("mousemove", function(e) { 11017 $drop_moves.each(function(){ 11018 var $drop_move = $(this), 11019 duration = 0.4; 11020 11021 if ( $('#uncode-custom-cursor:not(.in-content)').length ) { 11022 duration = 0.8; 11023 } 11024 11025 clientX = e.clientX; 11026 clientY = e.clientY; 11027 11028 gsap.to( $drop_move, { 11029 duration: duration, 11030 x: clientX, 11031 y: clientY, 11032 ease: Power1.easeOut, 11033 }); 11034 }); 11035 }); 11036 11037 } else { 11038 11039 $(window).on("touchend scroll", function(e) { 11040 $list.removeClass('drop-hover'); 11041 $drop_moves.removeClass('active'); 11042 $tmbs.removeClass('drop-active'); 11043 }); 11044 11045 $drop_moves.each(function(){ 11046 var $drop_move = $(this), 11047 $tmb = $drop_move.closest('.tmb'), 11048 $anim_parent = $drop_move.closest('.animate_when_almost_visible, .uncode-skew, .parallax-el'); 11049 11050 if ( $anim_parent.hasClass('uncode-skew') ) { 11051 $anim_parent.css({ 11052 'transform': 'skew(0)' 11053 }); 11054 } 11055 11056 $tmb.on('touchend', function(e){ 11057 e.stopPropagation(); 11058 11059 $drop_moves.removeClass('active'); 11060 $tmbs.removeClass('drop-active'); 11061 11062 $list.addClass('drop-hover'); 11063 $tmb.addClass('drop-active'); 11064 $drop_move.addClass('active'); 11065 manageVideos($drop_move, true); 11066 clientX = e.changedTouches[0].clientX; 11067 clientY = e.changedTouches[0].clientY; 11068 11069 if ( $anim_parent.length && $anim_parent.css('transform') !== '' && $anim_parent.css('transform') !== 'none' ) { 11070 var bound = $anim_parent[0].getBoundingClientRect(); 11071 clientX = clientX - bound.x; 11072 clientY = clientY - bound.y; 11073 } 11074 11075 $drop_move.css({ 11076 left: clientX, 11077 top: clientY 11078 }); 11079 }); 11080 }); 11081 11082 } 11083 11084 $tmbs.each(function(e){ 11085 var $tmb = $(this), 11086 // $trgr = $('a', $tmb), 11087 $trgr = $tmb, 11088 $drop_move = $('.t-entry-drop:not(.drop-parent)', $tmb), 11089 $anim_parent = $drop_move.closest('.animate_when_almost_visible:not(.uncode-skew):not
11089(.t-inside), .parallax-el'), 11090 $video = $('video', $tmb), 11091 $iframe = $('iframe', $tmb), 11092 $entryTxt = $('.t-entry-text', $tmb), 11093 stopBounding; 11094 11095 $entryTxt.add($drop_move).css({ 11096 'transition-duration': timing + 's' 11097 }); 11098 11099 if ( $video.length ) { 11100 var vidH = $video[0].videoHeight, 11101 vidW = $video[0].videoWidth; 11102 $video.css({ 11103 'height': vidH, 11104 'width': vidW 11105 }); 11106 } 11107 11108 if ( $iframe.length ) { 11109 var vidH = $drop_move.attr('data-height'), 11110 vidW = $drop_move.attr('data-width'); 11111 $iframe.css({ 11112 'height': vidH, 11113 'width': vidW 11114 }); 11115 } 11116 11117 $iframe.each(function(){ 11118 var $video = $(this), 11119 vidH = $video[0].videoHeight, 11120 vidW = $video[0].videoWidth; 11121 $video.css({ 11122 'height': vidH, 11123 'width': vidW 11124 }); 11125 }); 11126 11127 if ( $drop_move.length && UNCODE.wwidth >= UNCODE.mediaQuery ) { 11128 $trgr.on('mouseenter',function(e){ 11129 11130 $list.addClass('drop-hover'); 11131 $tmbs.removeClass('drop-active'); 11132 $tmb.addClass('drop-active'); 11133 $drop_move.addClass('active'); 11134 manageVideos($drop_move, true); 11135 11136 var clientX = e.clientX, 11137 clientY = e.clientY; 11138 $drop_move.css({ 11139 'transform': 'translate3d(' + clientX + 'px, ' + clientY + 'px, 0px)' 11140 }); 11141 11142 }) 11143 .on('mouseleave', function(e){ 11144 $list.removeClass('drop-hover'); 11145 $drop_move.css({ 11146 'transition-duration': ( timing*1.25 ) + 's' 11147 }); 11148 $drop_move.removeClass('active'); 11149 $tmb.removeClass('drop-active'); 11150 $drop_move.on('transitionend', function(e){ 11151 $drop_move.off('transitionend'); 11152 $drop_move.css({ 11153 'transition-duration': timing + 's' 11154 }); 11155 manageVideos($drop_move,false); 11156 }); 11157 }); 11158 11159 document.addEventListener('visibilitychange', function(){ 11160 if ( document.visibilityState == 'hidden' && $drop_move.data('active') === true ) { 11161 $drop_move.css({ 11162 'transition-duration': '0s' 11163 }); 11164 $drop_move.removeClass('active'); 11165 manageVideos($drop_move, false); 11166 } 11167 }); 11168 11169 document.addEventListener('scroll', function(){ 11170 window.clearRequestTimeout( stopBounding ); 11171 if ( stoppedScrolling ) { 11172 stoppedScrolling = false; 11173 if ( $drop_move.hasClass('active') ) { 11174 $list.removeClass('drop-hover'); 11175 $tmbs.removeClass('drop-active'); 11176 $drop_move.removeClass('active'); 11177 $drop_move.on('transitionend', function(e){ 11178 $drop_move.off('transitionend'); 11179 $drop_move.css({ 11180 'transition-duration': timing + 's' 11181 }); 11182 manageVideos($drop_move,false); 11183 }); 11184 } 11185 } 11186 11187 stopBounding = requestTimeout(function() { 11188 if ( $anim_parent.length && $anim_parent.css('transform') !== '' && $anim_parent.css('transform') !== 'none' ) { 11189 var bound = $anim_parent[0].getBoundingClientRect(); 11190 $drop_move.css({ 11191 left: bound.x * -1, 11192 top: bound.y * -1, 11193 }); 11194 } 11195 stoppedScrolling = true; 11196 }, 500); 11197 }); 11198 } 11199 11200 var datatarget = $trgr.closest('[data-drop-target]').attr('data-drop-target'), 11201 $drop = $('[data-drop="' + datatarget + '"]', $row_parent); 11202 11203 $drop.css({ 11204 'transition-duration': timing + 's' 11205 }); 11206 11207 if ( ( $drop_row_parents.length || $drop_col_parents.length ) && $drop.length ) { 11208 $trgr.on('mouseenter',function(e){ 11209 $row_parent.add($col_parent).addClass('drop-list-loaded'); 11210 $list.addClass('drop-hover'); 11211 11212 if ( !$tmb.hasClass('drop-active') ) { 11213 $tmbs.removeClass('drop-active'); 11214 $tmb.addClass('drop-active'); 11215 if ( default_image && !$drop.hasClass('active') ) { 11216 var $prev = $('[data-drop].active', $row_parent); 11217 $prev.css({ 11218 'transition-duration': (timing*1.5) + 's' 11219 }); 11220 $prev.removeClass('active'); 11221 $prev.on('transitionend', function(e){ 11222 $prev.off('transitionend'); 11223 manageVideos($prev,false); 11224 }); 11225 } 11226 $drop.css({ 11227 'transition-duration': timing + 's' 11228 }); 11229 $drop.off('transitionend'); 11230 $drop.addClass('active'); 11231 manageVideos($drop, true); 11232 } 11233 }) 11234 .on('mouseleave', function(e){ 11235 if ( ( default_image && !default_title ) || !default_image ) { 11236 $list.removeClass('drop-hover'); 11237 $tmb.removeClass('drop-active'); 11238 } 11239 if ( ! default_image ) { 11240 $drop.css({ 11241 'transition-duration': (timing*1.5) + 's' 11242 }); 11243 $drop.removeClass('active'); 11244 11245 $drop.on('transitionend', function(e){ 11246 $drop.off('transitionend'); 11247 manageVideos($drop,false); 11248 }); 11249 } 11250 }); 11251 11252 document.addEventListener('visibilitychange', function(){ 11253 if ( document.visibilityState == 'hidden' && $drop.data('active') === true && ! default_image ) { 11254 $drop.css({ 11255 'transition-duration': '0s' 11256 }); 11257 $drop.removeClass('active'); 11258 manageVideos($drop, false); 11259 } 11260 }); 11261 } 11262 }); 11263 11264 }); 11265 }; 11266 11267 $(window).on('load', function(event) { 11268 imageHover(); 11269 }); 11270 11271 var drop_wp_animation = function() { 11272 var $postLists = $('.uncode-post-titles'); 11273 $postLists.each(function(){ 11274 $.each($('.t-inside.animate_when_almost_visible', $postLists), function(index, val) { 11275 new Waypoint({ 11276 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 11277 element: val, 11278 handler: function() { 11279 var element = $(this.element), 11280 parent = element.closest('.tmb'), 11281 currentIndex = parent.index(),
11282 delay = currentIndex, 11283 delayAttr = parseInt(element.attr('data-delay')); 11284 if (isNaN(delayAttr)) delayAttr = 100; 11285 var objTimeout = requestTimeout(function() { 11286 element.addClass('start_animation'); 11287 11288 var nextTimeout = requestTimeout(function() { 11289 $('.drop-image-separator', parent).addClass('start_animation'); 11290 }, 50); 11291 11292 }, delay * delayAttr); 11293 if (!UNCODE.isUnmodalOpen) { 11294 this.destroy(); 11295 } 11296 }, 11297 offset: UNCODE.isFullPage ? '100%' : '90%' 11298 }) 11299 }); 11300 }); 11301 } 11302 11303 var runWaypoints_TO, 11304 runWaypoints_delay = 0; 11305 11306 var runWaypoints = function(){ 11307 if ( typeof runWaypoints_TO !== 'undefined' && runWaypoints_TO !== '' ) { 11308 runWaypoints_delay = 400; 11309 } 11310 clearRequestTimeout(runWaypoints_TO); 11311 runWaypoints_TO = requestTimeout(function() { 11312 drop_wp_animation(); 11313 }, runWaypoints_delay); 11314 }; 11315 runWaypoints(); 11316 $( document.body ).on( 'uncode_waypoints', runWaypoints ); 11317 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 11318 window.parent.vc.events.on( 'shortcodeView:ready shortcodeView:updated', function(){ 11319 // imageHover(); 11320 runWaypoints(); 11321 }); 11322 } 11323}; 11324 11325UNCODE.postTable = function() { 11326 11327 var clickRow = function(){ 11328 var $postLists = $('.uncode-post-table'); 11329 11330 $postLists.each(function(){ 11331 var $postList = $(this), 11332 $tmbClicks = $('.tmb.tmb-click-row', $postList); 11333 11334 $tmbClicks.each(function(){ 11335 var $tmb = $(this), 11336 $click = $('.table-click-row', $tmb); 11337 $('*:not(.table-click-row)', $tmb).on('click', function(e){ 11338 e.preventDefault(); 11339 e.stopPropagation(); 11340 $click[0].click(); 11341 return false; 11342 }); 11343 }); 11344 11345 }) 11346 }; 11347 11348 clickRow(); 11349 11350 var hoverRow = function(){ 11351 var $postLists = $('.uncode-post-table.uncode-post-table-hover'); 11352 11353 $postLists.on('mouseenter', function(){ 11354 $(this).addClass('post-table-hover'); 11355 }); 11356 $postLists.on('mouseleave', function(){ 11357 $(this).removeClass('post-table-hover'); 11358 }); 11359 } 11360 11361 hoverRow(); 11362 11363 var drop_wp_animation = function() { 11364 var $postLists = $('.uncode-post-table'); 11365 $postLists.each(function(){ 11366 $.each($('.t-inside.animate_when_almost_visible', $postLists), function(index, val) { 11367 new Waypoint({ 11368 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 11369 element: val, 11370 handler: function() { 11371 var element = $(this.element), 11372 parent = element.closest('.tmb'), 11373 currentIndex = parent.index(), 11374 delay = currentIndex, 11375 delayAttr = parseInt(element.attr('data-delay')); 11376 if (isNaN(delayAttr)) delayAttr = 100; 11377 var objTimeout = requestTimeout(function() { 11378 element.addClass('start_animation'); 11379 }, delay * delayAttr); 11380 if (!UNCODE.isUnmodalOpen) { 11381 this.destroy(); 11382 } 11383 }, 11384 offset: UNCODE.isFullPage ? '100%' : '90%' 11385 }) 11386 }); 11387 }); 11388 } 11389 11390 var runWaypoints_TO, 11391 runWaypoints_delay = 0; 11392 11393 var runWaypoints = function(){ 11394 if ( typeof runWaypoints_TO !== 'undefined' && runWaypoints_TO !== '' ) { 11395 runWaypoints_delay = 400; 11396 } 11397 clearRequestTimeout(runWaypoints_TO); 11398 runWaypoints_TO = requestTimeout(function() { 11399 drop_wp_animation(); 11400 }, runWaypoints_delay); 11401 }; 11402 runWaypoints(); 11403 $( document.body ).on( 'uncode_waypoints', runWaypoints ); 11404 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 11405 window.parent.vc.events.on( 'shortcodeView:ready shortcodeView:updated', function(){ 11406 runWaypoints(); 11407 // clickRow(); 11408 }); 11409 } 11410}; 11411 11412UNCODE.rotatingTxt = function($ctxt) { 11413 11414 if ( $('body').hasClass('compose-mode') ) { 11415 return; 11416 } 11417 11418 $ctxt = typeof $ctxt == 'undefined' ? $('body') : $ctxt; 11419 var setCTA; 11420 11421 $('.el-text', $ctxt).has('.uncode-rotating-text-start[data-text]').each(function(){ 11422 var $heading = $(this), 11423 // debug = 0, 11424 cycle = 0, 11425 $trgt, 11426 $toMove, 11427 $highl, 11428 $col = $heading.closest('.uncont'), 11429 txt, 11430 arrTxt, 11431 textFadeIn, textFadeOut, 11432 removeWraps; 11433 11434 var defineObjs = function() { 11435 $('.uncode-rotating-text-start[data-text]', $heading).each(function(){ 11436 var $rtx = $(this), 11437 fx = $rtx.attr('data-fx'), 11438 wait = $rtx.attr('data-wait'), 11439 $prev = $(this).prev().addClass('prev-rotating-start'), 11440 splitToMove = [], 11441 splitArray = [], 11442 lineArray = [], 11443 lineIndex = 0, 11444 lineStart = true, 11445 lineEnd = false, 11446 startSplit = false, 11447 $line_wrap = $rtx.closest('.heading-line-wrap'), 11448 same_line = true, 11449 $splits = $rtx.closest('.el-text').find('.split-word').removeClass('empty-span-hidden'), 11450 indexRtx = $splits.index($rtx); 11451 11452 fx = typeof fx === 'undefined' ? '' : fx;
11453 wait = typeof wait === 'undefined' ? '' : wait; 11454 11455 $splits.each(function(key, val){ 11456 var $split = $(this), 11457 $new_line_wrap = $split.closest('.heading-line-wrap'); 11458 11459 if ( $split.text() == '' && !$split.hasClass('uncode-rotating-text-end') && !$split.hasClass('uncode-rotating-text-start') && !splitArray.length ) { 11460 splitArray.push( $split ); 11461 } 11462 11463 if ( $split.hasClass('uncode-rotating-text-end') && startSplit === true ) { 11464 startSplit = false; 11465 } 11466 11467 if ( ! $split.hasClass('uncode-rotating-text-end') && startSplit === true ) { 11468 splitArray.push( $split ); 11469 11470 if ( same_line && ( !$new_line_wrap.length || $line_wrap[0] == $new_line_wrap[0] ) ) { 11471 same_line = true; 11472 } else { 11473 same_line = false; 11474 } 11475 } 11476 11477 if ( key == indexRtx ) { 11478 if ( /\S/.test($split.text()) ) { 11479 startSplit = true; 11480 $line_wrap = $split.closest('.heading-line-wrap'); 11481 splitArray.push( $split ); 11482 } else { 11483 indexRtx++; 11484 } 11485 } 11486 11487 $line_wrap = $new_line_wrap; 11488 }); 11489 11490 $toMove = $($.map(splitToMove, function(el){return el.get();})); 11491 $trgt = $($.map(splitArray, function(el){return el.get();})); 11492 11493 if ( same_line ) { 11494 $trgt.wrapAll('<span class="uncode-rotating-wrap" data-fx="' + fx + '" data-wait="' + wait + '" />'); 11495 $trgt.wrapAll('<span class="uncode-rotating-wrap-inner" />'); 11496 } 11497 11498 if ( $prev.hasClass('split-word-empty') && $rtx.is(':last-child') ) { 11499 $prev.addClass('empty-span-hidden'); 11500 } 11501 11502 $highl = $('.heading-text-highlight-inner', $trgt); 11503 11504 $rtx.attr('data-animated', 'true'); 11505 if ( cycle == 0 ) { 11506 $( document.body ).trigger('defer-highlights'); 11507 cycle++; 11508 defineObjs(); 11509 return; 11510 } 11511 cycle++; 11512 11513 txt = $rtx.attr('data-text'); 11514 arrTxt = txt.split("|"); 11515 11516 textFadeOut($trgt); 11517 11518 }); 11519 }; 11520 11521 removeWraps = function(){ 11522 11523 // if ( debug == 1 ) return; 11524 var $wraps = $heading[0].querySelectorAll('.uncode-rotating-wrap, .uncode-rotating-wrap-inner'); 11525 for (var wrap_k = 0; wrap_k < $wraps.length; wrap_k++) { 11526 11527 11528 var $temp_highl = $($wraps[wrap_k]).find('> .heading-text-highlight-inner').clone(), 11529 $splitFlow = $($wraps[wrap_k]).find('.split-word-flow'); 11530 11531 $($wraps[wrap_k]).find('> .heading-text-highlight-inner').remove(); 11532 11533 $splitFlow.each(function(){ 11534 $(this).append($temp_highl); 11535 }); 11536 11537 var $line_wrap = $wraps[wrap_k]; 11538 var $parent_wrap = $line_wrap.parentNode; 11539 if ( $parent_wrap !== null ) { 11540 while ( $line_wrap.firstChild ) { 11541 $parent_wrap.insertBefore($line_wrap.firstChild, $line_wrap); 11542 } 11543 $parent_wrap.removeChild($line_wrap); 11544 } 11545 } 11546 // debug++; 11547 defineObjs(); 11548 }; 11549 11550 var loop = 0; 11551 textFadeIn = function($trgt){ 11552 var word = arrTxt[loop].split(" "), 11553 worsSpan = '', 11554 $wrap = $trgt.closest('.uncode-rotating-wrap'), 11555 $wrap_inner = $trgt.closest('.uncode-rotating-wrap-inner'), 11556 fx = $trgt.closest('.uncode-rotating-wrap').attr('data-fx'); 11557 11558 for (var w = 0; w < word.length; w++) { 11559 var highl; 11560 if ( $highl.length ) { 11561 highl = $highl[0].outerHTML; 11562 } else { 11563 highl = ''; 11564 } 11565 11566 if ( w > 0 ) { 11567 worsSpan += '<span class="split-word"><span class="split-word-flow"><span class="split-word-inner split-empty-inner"> </span>' + highl + '</span></span>'; 11568 } 11569 var charachters = word[w].split(''); 11570 worsSpan += '<span class="split-word"><span class="split-word-flow"><span class="split-word-inner">'; 11571 if ( ! SiteParameters.uncode_has_ligatures ) { 11572 for (var c = 0; c < charachters.length; c++) { 11573 worsSpan += '<span class="split-char">' + charachters[c] + '</span>'; 11574 } 11575 } else { 11576 worsSpan += word[w]; 11577 } 11578 worsSpan += '</span>' + highl + '</span></span>'; 11579 } 11580 11581 if ( $wrap.length && $wrap_inner.length ) { 11582 var words_w = $wrap_inner.outerWidth(); 11583 $wrap.css({ 11584 width: words_w 11585 }); 11586 11587 $highl = $('.heading-text-highlight-inner', $wrap); 11588 $highl.prependTo($wrap); 11589 11590 $wrap_inner.css({ 11591 opacity: 0 11592 }); 11593 11594 $wrap_inner.html(worsSpan); 11595 $('.heading-text-highlight-inner', $wrap_inner).remove(); 11596 words_w = $wrap_inner.innerWidth(); 11597 11598 var duration = 0.45; 11599 11600 $heading.removeClass('auto-width'); 11601 if ( words_w > $col.width() ) { 11602 $heading.addClass('auto-width'); 11603 words_w = 'auto'; 11604 duration = 0; 11605 } 11606 11607 $wrap.css({ 11608 'width': words_w, 11609 'transition': 'width ' + (duration*1000) + 'ms cubic-bezier(0.16, 1, 0.3, 1)', 11610 }); 11611 11612 var $word_inner = $('.split-word-inner', $wrap_inner), 11613 $extra_wrap_inner = $wrap_inner.closest('.uncode-rotating-wrap-inner'); 11614 11615 var $target_fx = fx === 'zoom' ? $wrap_inner : $word_inner; 11616 11617 if ( !$target_fx.length ) { 11618 return; 11619 } 11620 11621 gsap.killTweensOf($target_fx); 11622 11623 if ( fx !== 'zoom' ) { 11624 gsap.fromTo( $target_fx, { 11625 y: fx === 'opacity' ? '0%' : '-10%' 11626 },{ 11627 delay: duration, 11628 duration: 0.25, 11629 y: '0%', 11630 ease: Circ.easeOut, 11631 }); 11632 11633 if ( !$wrap_inner.length ) { 11634 return; 11635 } 11636 11637 gsap.fromTo( $wrap_inner, { 11638 opacity: 0, 11639 },{ 11640 delay: duration, 11641 duration: 0.25, 11642 opacity: 1, 11643 ease: Circ.easeOut, 11644 onComplete: function(){ 11645 $('> .heading-text-highlight-inner', $wrap).remove(); 11646 $wrap_inner.html(worsSpan); 11647 removeWraps(); 11648 } 11649 }) 11650 11651 } else { 11652 gsap.fromTo( $target_fx, { 11653 transformOrigin: '50%', 11654 opacity: 0, 11655 scale: 0.875, 11656 },{ 11657 opacity: 1, 11658 delay: duration, 11659 duration: 0.25, 11660 scale: 1, 11661 ease: Circ.easeOut, 11662 onComplete: function(){ 11663 $('> .heading-text-highlight-inner', $wrap).remove(); 11664 $wrap_inner.html(worsSpan); 11665 removeWraps(); 11666 } 11667 }); 11668 } 11669 11670 } else { 11671 11672 if ( !$wrap_inner.length ) { 11673 return; 11674 } 11675 11676 gsap.to( $wrap_inner, { 11677 duration: 0.4, 11678 opacity: 0, 11679 ease: Power1.easeOut, 11680 onComplete: function(){ 11681 $wrap_inner.html(worsSpan); 11682 words_w = $wrap_inner.innerWidth(); 11683 11684 gsap.to( $wrap_inner, { 11685 duration: 0.2, 11686 opacity: 1, 11687 ease: Power1.easeOut, 11688 onComplete: function(){ 11689 $('> .heading-text-highlight-inner', $wrap).remove(); 11690 $wrap_inner.html(worsSpan); 11691 removeWraps(); 11692 } 11693 }) 11694 } 11695 }); 11696 } 11697 11698 if ( loop < arrTxt.length-1 ) { 11699 loop++; 11700 } else { 11701 loop = 0; 11702 } 11703 11704 }; 11705 11706 textFadeOut = function($trgt){ 11707 var $word_inner = $('.split-word-inner', $trgt), 11708 $wrap = $trgt.closest('.uncode-rotating-wrap'), 11709 $wrap_inner = $trgt.closest('.uncode-rotating-wrap-inner'), 11710 fx = $trgt.closest('.uncode-rotating-wrap').attr('data-fx'), 11711 wait = $trgt.closest('.uncode-rotating-wrap').attr('data-wait'); 11712 11713 wait = typeof wait === 'undefined' || wait === '' ? 3 : parseFloat(wait)/1000; 11714 11715 var gsap_param = { 11716 delay: wait, 11717 duration: 0.25, 11718 y: fx === '' ? '10%' : '0%', 11719 opacity: 0, 11720 ease: Circ.easeOut, 11721 onStart: function(){ 11722 if ( $wrap.length && $wrap_inner.length && fx === 'zoom' ) { 11723 $highl = $('.heading-text-highlight-inner', $wrap); 11724 $highl.prependTo($wrap); 11725 } 11726 }, 11727 onComplete: textFadeIn, 11728 onCompleteParams: [$trgt] 11729 }; 11730 11731 var $target_fx = fx === 'zoom' ? $wrap_inner : $word_inner; 11732 11733 if ( fx === '' ) { 11734 gsap_param.y = '10%'; 11735 } else if ( fx === 'zoom' ) { 11736 gsap_param.scale = '1.045'; 11737 } 11738 11739 if ( !$target_fx.length ) { 11740 return; 11741 } 11742 11743 if ( $heading.data('waypoint') !== true ) { 11744 var textInView = new Waypoint.Inview({ 11745 context: UNCODE.isUnmodalOpen ? document.getElementById('unmodal-content') : window, 11746 element: $heading[0], 11747 enter: function(direction) { 11748 $heading.data('waypoint',true); 11749 gsap.fromTo( $target_fx, { 11750 transformOrigin: '50%' 11751 }, gsap_param ); 11752 } 11753 }); 11754 } else { 11755 gsap.fromTo( $target_fx, { 11756 transformOrigin: '50%' 11757 }, gsap_param ); 11758 } 11759 }; 11760 11761 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 11762 window.parent.vc.events.on( 'shortcodeView:updated shortcodeView:ready', function(model){ 11763 var $el = model.view.$el, 11764 shortcode = model.attributes.shortcode; 11765 11766 UNCODE.rotatingTxt($el); 11767 }); 11768 } else { 11769 if ( $heading.hasClass('animate_inner_when_almost_visible') ) { 11770 $heading.on('already-animated', function(){ 11771 removeWraps(); 11772 window.addEventListener('removeOldLines', function(){ 11773 clearRequestTimeout(setCTA); 11774 setCTA = requestTimeout( removeWraps, 150 ); 11775 }); 11776 }); 11777 } else { 11778 $(window).on('load', function(){ 11779 removeWraps(); 11780 window.addEventListener('removeOldLines', function(){ 11781 clearRequestTimeout(setCTA); 11782 setCTA = requestTimeout( removeWraps, 150 ); 11783 }); 11784 }); 11785 } 11786 } 11787 }); 11788 11789}; 11790 11791UNCODE.verticalText = function() { 11792 $(window).on('menuCanvasOpen', function(){ 11793 $('.vertical-text--fixed').fadeOut(500); 11794 $('.horizontal-text--fixed').fadeOut(500); 11795 }).on('menuCanvasClose', function(){ 11796 $('.vertical-text--fixed').fadeIn(500); 11797 $('.horizontal-text--fixed').fadeIn(500); 11798 }); 11799 11800 var hideOnBottomVerticalTexts = $('.vertical-text--vis-hide-bottom'); 11801 var showOnTopVerticalTexts = $('.vertical-text--vis-show-top'); 11802 var hideOnBottomHorizontalTexts = $('.horizontal-text--vis-hide-bottom'); 11803 var showOnTopHorizontalTexts = $('.horizontal-text--vis-show-top'); 11804 11805 if (hideOnBottomVerticalTexts.length > 0 || showOnTopVerticalTexts.length > 0 || hideOnBottomHorizontalTexts.length > 0 || showOnTopHorizontalTexts.length > 0) { 11806 window.addEventListener('scroll', function(e) { 11807 var totalPageHeight = document.body.scrollHeight; 11808 var scrollPoint = window.scrollY + window.innerHeight; 11809 11810 if (window.scrollY > 0) { 11811 showOnTopVerticalTexts.fadeOut(); 11812 showOnTopHorizontalTexts.fadeOut(); 11813 } else { 11814 showOnTopVerticalTexts.fadeIn(); 11815 showOnTopHorizontalTexts.fadeIn(); 11816 } 11817 11818 if (scrollPoint >= totalPageHeight) { 11819 hideOnBottomVerticalTexts.fadeOut(); 11820 hideOnBottomHorizontalTexts.fadeOut(); 11821 } else { 11822 hideOnBottomVerticalTexts.fadeIn(); 11823 hideOnBottomHorizontalTexts.fadeIn(); 11824 } 11825 }, false); 11826 } 11827}; 11828 11829UNCODE.stickyScroll = function( $el ) { 11830 if ( typeof $el === 'undefined' || $el === null ) { 11831 $el = $('body'); 11832 } 11833 var checkVisible = function( el, dir ) { 11834 if (typeof jQuery === "function" && el instanceof jQuery) { 11835 el = el[0]; 11836 } 11837 11838 var off = 50; 11839 dir = typeof dir=='undefined' ? 'right' : dir; 11840 var rect = el.getBoundingClientRect(); 11841 11842 return ( 11843 ( 11844 ( rect.top >= 0 && (rect.top + off) <= (window.innerHeight || document.documentElement.clientHeight) ) || 11845 ( rect.bottom >= off && (rect.bottom) <= (window.innerHeight || document.documentElement.clientHeight) ) || 11846 ( rect.top <= 0 && (rect.bottom) >= (window.innerHeight || document.documentElement.clientHeight) ) 11847 ) && 11848 ( 11849 ( rect.left >= 0 && (rect.left + (window.innerWidth || document.documentElement.clientWidth)/2) <= (window.innerWidth || document.documentElement.clientWidth) ) || 11850 ( rect.left >= 0 && rect.right <= (window.innerWidth || document.documentElement.clientWidth) ) || 11851 ( rect.right <= window.innerWidth && (rect.right - off) >= 0 ) || 11852 ( rect.right <= window.innerWidth && rect.left >= 0 ) 11853 ) 11854 ); 11855 }; 11856 11857 var setItemsRelHeight = function(reset) { 11858 var $_el = $el; 11859 if ( $el.is('.index-scroll') ) { 11860 var $_el = $el.closest('.uncont'); 11861 } 11862 // $('.index-scroll:not(.hor-scroll-vh) .index-row', $_el).each(function(i, item){ 11863 // $.each($('.tmb', item), function(index, val) { 11864 // if ( reset === true ) { 11865 // $(val).css( 'visibility', 'hidden' ); 11866 // } else { 11867 // $(val).css( 'visibility', 'visible' ); 11868 // } 11869 // }); 11870 // }); 11871 $('.index-scroll.hor-scroll-vh .index-row', $_el).each(function(i, item){ 11872 $.each($('.tmb', item), function(index, val) { 11873 if ( reset === true ) { 11874 $(val).css( 'visibility', 'hidden' ); 11875 $('img:not(.avatar), picture, .t-background-cover', val).css( 'height', 'auto' ); 11876 } else { 11877 var $rowParent = $(item).closest('.row-parent'), 11878 rowRatio = $rowParent.attr('data-height-ratio'), 11879 $rowInner = $(item).closest('.row-child'), 11880 rowRatioInner = $rowInner.attr('data-height'), 11881 paddingRow = parseInt($rowParent.css('padding-top')) + parseInt($rowParent.css('padding-bottom')), 11882 $colContainer = $(item).closest('.uncell'), 11883 $uncont = $(item).closest('.uncont'), 11884 paddingCol = parseInt($colContainer.css('padding-top')) + parseInt($colContainer.css('padding-bottom')), 11885 safe_heigth = $(item).data('safe-height'), 11886 winHeight = safe_heigth ? UNCODE.wheight : $('#vh_layout_help').outerHeight(), 11887 offSet = $(item).offset().top - $uncont.offset().top, 11888 multiplier_h, 11889 data_viewport_h, 11890 body_border = $('.body-borders .top-border').outerHeight() * 2, 11891 remove_menu = $(item).data('vp-menu'); 11892 11893 if ( rowRatio === 'full' || rowRatio === '' ) { 11894 rowRatio = 1; 11895 } else { 11896 rowRatio = rowRatio / 100; 11897 } 11898 11899 if ( typeof rowRatioInner === 'undefined' || rowRatioInner === 'full' || rowRatioInner === '' || rowRatioInner == null ) { 11900 rowRatio = rowRatio; 11901 } else { 11902 rowRatio = rowRatio * rowRatioInner / 100; 11903 } 11904 11905 winHeight = winHeight * rowRatio; 11906 11907 if ( UNCODE.wwidth >= UNCODE.mediaQuery ) { 11908 multiplier_h = parseInt($(item).attr('data-vp-height')); 11909 } else if ( UNCODE.wwidth < UNCODE.mediaQuery && UNCODE.wwidth >= UNCODE.mediaQueryMobile ) { 11910 multiplier_h = parseInt($(item).attr('data-vp-height-md')); 11911 } else if ( UNCODE.wwidth < UNCODE.mediaQueryMobile ) { 11912 multiplier_h = parseInt($(item).attr('data-vp-height-sm')); 11913 } 11914 11915 if ( typeof multiplier_h !== 'undefined' && multiplier_h !== null && multiplier_h > 0) { 11916 data_viewport_h = winHeight*(multiplier_h/100) - ( paddingRow + paddingCol + body_border + offSet ); 11917 if ( remove_menu === true ) { 11918 data_viewport_h = data_viewport_h - UNCODE.menuHeight; 11919 } 11920 $('img:not(.avatar), picture, .t-background-cover, .fluid-object', val).css( 'height', data_viewport_h ); 11921 } else { 11922 $('img:not(.avatar), picture, .t-background-cover, .fluid-object', val).css( 'height', 'auto' ); 11923 } 11924 11925 } 11926 }); 11927 }); 11928 $('.index-scroll', $_el).each(function(i, item){ 11929 var $uncoltable = $(item).closest('.uncoltable'), 11930 $rowParent = $(item).closest('.row-parent'), 11931 paddingRow = parseInt($rowParent.css('padding-top')) + parseInt($rowParent.css('padding-bottom')), 11932 body_border = $('.body-borders .top-border').outerHeight() * 2, 11933 $index_row = $('.index-row', item), 11934 safe_heigth = $index_row.data('safe-height'), 11935 winHeight = safe_heigth ? UNCODE.wheight : $('#vh_layout_help').outerHeight(); 11936 if ( UNCODE.wwidth < UNCODE.mediaQuery ) { 11937 var data_viewport_h = winHeight - ( paddingRow + body_border ); 11938 $uncoltable.css({ 11939 'min-height': data_viewport_h 11940 }); 11941 } else { 11942 $uncoltable.css({ 11943 'min-height': 'auto' 11944 }); 11945 } 11946 }); 11947 11948 } 11949 setItemsRelHeight(); 11950 11951 var $index_scrolls = $('.index-scroll', $el); 11952
11953 $index_scrolls.each(function(key, value){ 11954 var $index = $(this), 11955 $parent_row = $index.closest('.vc_row[data-parent]'), 11956 $index_row = $('.index-row', $index), 11957 dir = $index_row.attr('data-direction'); 11958 dir = typeof dir === 'undefined' ? 'right' : dir; 11959 11960 $parent_row.addClass('unscroll-horizontal').attr('data-direction', dir); 11961 11962 if ( $('.animate_when_almost_visible', $index).length ) { 11963 $index.addClass('opacity_0').addClass('scroll-refresh-hidden'); 11964 } 11965 11966 }); 11967 11968 var $horScrolls = $('.unscroll-horizontal', $el); 11969 11970 if ( $horScrolls.length ) { 11971 11972 $('body').addClass('scrolling-trigger'); 11973 11974 $horScrolls.each(function(key, value){ 11975 var $section = $(this), 11976 $index_scroll = $('.index-scroll', $section), 11977 $index_row = $('.index-row', $index_scroll), 11978 dir = $section.attr('data-direction'), 11979 wrap = $index_row.attr('data-wrap'), 11980 $pinWrap, 11981 $pinTrigger; 11982 11983 dir = typeof dir === 'undefined' ? 'right' : dir; 11984 $pinTrigger = $('<div class="pin-trigger" data-direction="' + dir + '" />'); 11985 $pinWrap = $('<div class="pin-wrap" />'); 11986 if ( SiteParameters.is_frontend_editor ) { 11987 var gutterClass = $('.index-wrapper', $index_scroll).attr('class').match(/\b([^\s]+)-gutter\b/g, ''); 11988 $('.index-wrapper', $index_scroll).wrapInner($pinWrap.addClass(gutterClass[0])); 11989 } else { 11990 if ( wrap === 'column' ) { 11991 $index_scroll.wrapInner( $pinWrap ); 11992 } else { 11993 $('> .row', $section).wrap( $pinWrap ); 11994 } 11995 $section.wrapInner( $pinTrigger ); 11996 } 11997 11998 }); 11999 12000 var $pinWraps = $('.pin-wrap', $el); 12001 12002 var horScrollSizes = function(){ 12003 12004 $pinWraps.each(function(key, val){ 12005 var $pinWrap = $(this).attr('id','pin_wrap_' + key), 12006 $pinTrigger = $pinWrap.closest('.pin-trigger'), 12007 dir = $pinTrigger.length ? $pinTrigger.attr('data-direction') : $pinWrap.closest('[data-direction]').attr('data-direction'), 12008 $index_scroll = SiteParameters.is_frontend_editor ? $pinWrap.closest('.index-scroll') : $('.index-scroll', $pinTrigger), 12009 $boxContainer = $('.box-container'), 12010 box_m = $boxContainer.css('margin-left'), 12011 st_active = true; 12012 12013 var setHorW, 12014 horWidth = function(){ 12015 $index_scroll.each(function(){ 12016 var $this = $(this), 12017 $index_row = $('.index-row', $this), 12018 $rowContainer = $index_row.closest('.vc_row'), 12019 $rowInner = $index_row.closest('.wpb_row'), 12020 $rowParent = $index_row.closest('.row-parent'), 12021 $tmbs = $('.tmb', $index_row), 12022 padding_tmb = parseFloat( $tmbs.first().css('padding-right') ), 12023 $uncont = $index_row.closest('.uncont'), 12024 $parent_col = $index_row.closest('.wpb_column'), 12025 col_w = $uncont.width(), 12026 data_lg = parseFloat( $index_row.attr('data-lg') ), 12027 data_md = $this.hasClass('row-scroll-no-md') ? 1 : parseFloat( $index_row.attr('data-md') ), 12028 data_sm = $this.hasClass('row-scroll-no-sm') ? 1 : parseFloat( $index_row.attr('data-sm') ), 12029 tmb_w; 12030 12031 col_w = col_w > UNCODE.wwidth ? UNCODE.wwidth : col_w; 12032 tmb_w = ( col_w + padding_tmb ) / data_lg; 12033 12034 if ( typeof data_sm !== 'undefined' && data_sm !== '' && UNCODE.wwidth < 570 ) { 12035 tmb_w = ( col_w + padding_tmb ) / data_sm; 12036 } else if ( typeof data_md !== 'undefined' && data_md !== '' && UNCODE.wwidth >= 570 && UNCODE.wwidth < 960 ) { 12037 tmb_w = ( col_w + padding_tmb ) / data_md; 12038 } 12039 12040 if ( !isNaN(tmb_w) ) { 12041 $tmbs.css({ 12042 'width': tmb_w 12043 }); 12044 } 12045 12046 $tmbs.css({ 12047 'visibility': 'visible' 12048 }); 12049 12050 }); 12051 }; 12052 12053 horWidth(); 12054 clearRequestTimeout(setHorW); 12055 setHorW = requestTimeout( function(){ 12056 setItemsRelHeight(); 12057 horWidth(); 12058 }, 100 ); 12059 12060 if ( SiteParameters.is_frontend_editor ) { 12061 return; 12062 } 12063 12064 var $vmenu = $('body.vmenu .vmenu-container'), 12065 vmenuW = $vmenu.length && UNCODE.wwidth > UNCODE.mediaQuery ? $vmenu.width() : 0, 12066 winWidth = window.innerWidth - vmenuW, 12067 $tmb = $('.tmb', $index_scroll).eq(0), 12068 paddingRight = parseFloat( $tmb.css('padding-right') ), 12069 stickyScrollLength = ( $('.index-row', $index_scroll).width() - ( $index_
12069scroll.width() + paddingRight ) ), 12070 remove_menu = $('.index-row', $index_scroll).data('vp-menu'), 12071 scroll_anim; 12072 12073 if ( $('body').hasClass('rtl') ) { 12074 if ( dir === 'left' ) { 12075 scroll_anim = gsap.fromTo( $pinWrap, { 12076 x: stickyScrollLength 12077 },{ 12078 x: 0, 12079 ease: "none" 12080 }); 12081 } else { 12082 scroll_anim = gsap.fromTo( $pinWrap, { 12083 x: 0 12084 },{ 12085 x: stickyScrollLength, 12086 ease: "none" 12087 }); 12088 } 12089 } else { 12090 if ( dir === 'left' ) { 12091 scroll_anim = gsap.fromTo( $pinWrap, { 12092 x: -stickyScrollLength 12093 },{ 12094 x: 0, 12095 ease: "none" 12096 }); 12097 } else { 12098 scroll_anim = gsap.fromTo( $pinWrap, { 12099 x: 0 12100 },{ 12101 x: -stickyScrollLength, 12102 ease: "none" 12103 }); 12104 } 12105 } 12106 12107 if ( typeof ScrollTrigger.getById("stickySectionScrolling" + key) !== 'undefined' ) { 12108 ScrollTrigger.getById("stickySectionScrolling" + key).kill(true); 12109 } 12110 12111 var animationIncrease; 12112 12113 var checkForAnimations = function(){ 12114 animationIncrease = 0 12115 $('.animate_when_almost_visible:not(.start_animation)', $pinTrigger).each(function(){ 12116 var _this = this; 12117 if ( ScrollTrigger.isInViewport($pinTrigger[0]) && ScrollTrigger.isInViewport(_this, 0.5, true) ) { 12118 var delayAttr = parseFloat( $(_this).attr('data-delay') ); 12119 if (delayAttr == undefined || isNaN(delayAttr)) delayAttr = 0; 12120 requestTimeout(function() { 12121 $(_this).addClass('start_animation'); 12122 }, delayAttr + animationIncrease); 12123 animationIncrease += 150; 12124 } 12125 $(_this).on([ 12126 'webkitAnimationEnd', 12127 'mozAnimationEnd', 12128 'MSAnimationEnd', 12129 'oanimationend', 12130 'animationend' 12131 ].join(' '), function(e) { 12132 $(e.currentTarget).removeClass('animate_when_almost_visible'); 12133 }); 12134 }); 12135 12136 var batchTime = 0; 12137 12138 var resetBatch = function(){ 12139 batchTime = 0; 12140 } 12141 12142 if (ScrollTrigger.isScrolling()) { 12143 resetBatch(); 12144 } 12145 12146 $('.tmb-mask-reveal', $pinTrigger).each(function(){ 12147 var _this = this, 12148 $this = $(_this), 12149 $inside = $('.t-inside', $this), 12150 delay = parseFloat( $inside.attr('data-delay') ), 12151 speed = parseFloat( $inside.attr('data-speed') ), 12152 easing = $inside.attr('data-easing'), 12153 bgDelay = parseFloat( $inside.attr('data-bg-delay') ); 12154 12155 delay = (isNaN(delay) || delay == null || typeof delay === 'undefined') ? 0 : delay/1000; 12156 speed = (isNaN(speed) || speed == null || typeof speed === 'undefined') ? 0.4 : speed/1000; 12157 easing = (easing === '' || easing == null || typeof easing === 'undefined') ? CustomEase.create("custom", "0.76, 0, 0.24, 1") : easing; 12158 bgDelay = (isNaN(bgDelay) || bgDelay == null || typeof bgDelay === 'undefined') ? '' : bgDelay; 12159 12160 if ( ScrollTrigger.isInViewport($pinTrigger[0]) && ScrollTrigger.isInViewport(_this, 0.1, true) && !$this.hasClass('tmb-mask-init') ) { 12161 $this.addClass('tmb-mask-init'); 12162 if ( $this.hasClass('tmb-has-hex') && bgDelay !== '' ) { 12163 gsap.to($('.t-entry-visual-tc', $this), speed, { 12164 clipPath: 'inset(0% 0% 0% 0%)', 12165 delay: delay + batchTime, 12166 ease: easing, 12167 }); 12168 gsap.to($('.t-entry-visual-cont', $this), speed, { 12169 clipPath: 'inset(0% 0% 0% 0%)', 12170 scale: 1, 12171 delay: delay + batchTime + (speed*bgDelay), 12172 ease: easing, 12173 onComplete: resetBatch, 12174 }); 12175 } else { 12176 gsap.to($('.t-entry-visual-cont', $this), speed, { 12177 clipPath: 'inset(0% 0% 0% 0%)', 12178 scale: 1, 12179 delay: delay + batchTime, 12180 ease: easing, 12181 onComplete: resetBatch, 12182 }); 12183 } 12184 batchTime += 0.1; 12185 } 12186 }); 12187 12188 }; 12189 checkForAnimations(); 12190 12191 // var start = $index_scroll.length ? parseFloat($index_scroll.position().top) : 0; 12192 var start = 0; 12193 12194 var horST = ScrollTrigger.create({ 12195 id: "stickySectionScrolling" + key, 12196 scrub: true, 12197 trigger: $pinTrigger[0], 12198 pin: true, 12199 anticipatePin: 1, 12200 start: function() { return "top top+=" + parseFloat( $('.top-border').height() + ( remove_menu === true ? UNCODE.menuHeight : 0 ) ); }, 12201 end: function() { return "+="+stickyScrollLength; }, 12202 animation: scroll_anim, 12203 ease: Sine.easeOut, 12204 onUpdate: checkForAnimations, 12205 invalidateOnRefresh: true, 12206 onEnter: function(){ 12207 $pinTrigger.addClass('enter-st'); 12208 }, 12209 onEnterBack: function(){ 12210 $pinTrigger.addClass('enter-st'); 12211 }, 12212 onLeave: function(){ 12213 $pinTrigger.removeClass('enter-st'); 12214 }, 12215 onLeaveBack: function(){ 12216 $pinTrigger.removeClass('enter-st'); 12217 } 12218 }); 12219
12220 window.dispatchEvent(new CustomEvent('dynamic_srcset_load')); 12221 window.dispatchEvent(new CustomEvent('boxResized')); 12222 12223 var testSecondTrigger = function(){ 12224 animationIncrease = 0 12225 $('.animate_when_almost_visible:not(.start_animation)', $pinTrigger).each(function(){ 12226 var _this = this; 12227 if ( checkVisible(_this) ) { 12228 var delayAttr = parseFloat( $(_this).attr('data-delay') ); 12229 if (delayAttr == undefined || isNaN(delayAttr)) delayAttr = 0; 12230 requestTimeout(function() { 12231 $(_this).addClass('start_animation'); 12232 }, delayAttr + animationIncrease); 12233 animationIncrease += 150; 12234 } 12235 }); 12236 12237 }; 12238 12239 var verST = ScrollTrigger.create({ 12240 id: "verticalSectionScrolling" + key, 12241 trigger: $pinTrigger[0], 12242 start: "top center", 12243 end: function() { return "+="+UNCODE.wheight; }, 12244 onUpdate: testSecondTrigger, 12245 invalidateOnRefresh: true 12246 }); 12247 12248 var setCTA, 12249 12250 dis_enable_ST = function(){ 12251 if ( $('.row-scroll-no-md', $pinTrigger).length && UNCODE.wwidth <= UNCODE.mediaQuery ) { 12252 horST.kill(); 12253 verST.kill(); 12254 $pinTrigger.addClass('disabled'); 12255 st_active = false; 12256 } else if ( $('.row-scroll-no-sm', $pinTrigger).length && UNCODE.wwidth <= UNCODE.mediaQueryMobile ) { 12257 horST.kill(); 12258 verST.kill(); 12259 $pinTrigger.addClass('disabled'); 12260 st_active = false; 12261 } 12262 }; 12263 12264 $(window).on('resize load', function() { 12265 clearRequestTimeout(setCTA); 12266 setCTA = requestTimeout(function() { 12267 dis_enable_ST(); 12268 checkForAnimations(); 12269 }, 500); 12270 }); 12271 12272 }); 12273 }; 12274 12275 $(window).on( 'load', function(){ 12276 horScrollSizes(); 12277 }); 12278 var setResize, 12279 setReLayout, 12280 doubleResize = true; 12281 $(window).on( 'load', function(){ 12282 if ( $('.body-borders .top-border').outerHeight() > 0 ) { 12283 var $row_inners = document.querySelectorAll('.pin-spacer .row-inner'); 12284 Array.prototype.forEach.call($row_inners, function(el) { 12285 el.style.height = ''; 12286 el.style.marginBottom = ''; 12287 }); 12288 setItemsRelHeight(); 12289 horScrollSizes(); 12290 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 12291 $(document).trigger('uncode-scrolltrigger-refresh'); 12292 } 12293 } 12294 var carousel = document.querySelector(".owl-carousel"), 12295 grid = document.querySelector(".isotope-container"), 12296 stickyAll = document.querySelectorAll(".index-scroll"); 12297 12298 if ( stickyAll.length ) { 12299 var sticky = stickyAll[(stickyAll.length-1)]; 12300 } 12301 12302 if ( typeof sticky !== "undefined" ) { 12303 12304 if ( typeof carousel !== "undefined" && carousel !== null ) { 12305 var carousel_position = sticky.compareDocumentPosition(carousel); 12306 } 12307 if ( typeof grid !== "undefined" && grid !== null ) { 12308 var grid_position = sticky.compareDocumentPosition(grid); 12309 } 12310 12311 if ( carousel_position === 2 || grid_position === 2 ) { 12312 setTimeout(function(){ 12313 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 12314 $(document).trigger('uncode-scrolltrigger-refresh'); 12315 } 12316 }, 500); 12317 } 12318 12319 } 12320 12321 }); 12322 var iPhone = /iPhone/.test(navigator.userAgent) && !window.MSStream, 12323 android = /Android/.test(navigator.userAgent) && !window.MSStream; 12324 $(window).on( 'resize orientationchange', function(e){ 12325 if ( e.type === 'resize' && ( iPhone || (android && Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0) < 750) ) ) { 12326 return; 12327 } 12328 setItemsRelHeight(true); 12329 var $row_inners = document.querySelectorAll('.pin-spacer .row-inner'); 12330 Array.prototype.forEach.call($row_inners, function(el) { 12331 el.style.height = ''; 12332 el.style.marginBottom = ''; 12333 }); 12334 clearRequestTimeout(setResize); 12335 setResize = requestTimeout( function(){ 12336 setItemsRelHeight(); 12337 horScrollSizes(); 12338 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 12339 $(document).trigger('uncode-scrolltrigger-refresh'); 12340 } 12341 if ( doubleResize === true ) { 12342 window.dispatchEvent(new Event('resize')); 12343 doubleResize = false; 12344 } else { 12345 doubleResize = true; 12346 } 12347 UNCODE.setRowHeight(document.querySelectorAll('.page-wrapper .row-parent'), false, true); 12348 }, 100 ); 12349 }); 12350 12351 var show_pins = function(){ 12352 $('.index-scroll').css({'opacity':'1'}); 12353 }; 12354 ScrollTrigger.addEventListener("refresh", show_pins); 12355 $(window).on( 'uncode.re-layout', function(){ 12356 //$('.index-scroll').css({'opacity':'0'}); 12357 $('.pin-spacer').each(function(){ 12358 var space_h = $(this).outerHeight(), 12359 $row = $(this).closest('.row-container'); 12360 $row.css({ 12361 'height': space_h, 12362 'overflow': 'hidden' 12363 }); 12364 }); 12365 if ( typeof ScrollTrigger !== 'undefined' && ScrollTrigger !== null ) { 12366 ScrollTrigger.refresh(true); 12367 } 12368 clearRequestTimeout(setReLayout); 12369 setReLayout = requestTimeout( function(){ 12370 $('.row-container').each(function(){ 12371 $(this).css({ 12372 'height': '', 12373 'overflow': '' 12374 }); 12375 }); 12376 }, 1000); 12377 }); 12378 } 12379 12380}; 12381 12382UNCODE.stickyTrigger = function( $el ) { 12383 if ( SiteParameters.is_frontend_editor ) { 12384 return false;
12385 } 12386 12387 var stickyTrigger = function(){ 12388 var stickyTrick = $('.sticky-trigger').each(function(){ 12389 var $sticky = $(this), 12390 $inside = $('> div', $sticky), 12391 insideH = $inside.outerHeight(), 12392 $row = $sticky.closest('.vc_row'), 12393 $uncont = $sticky.closest('.uncont'), 12394 rowBottom, 12395 uncontBottom, 12396 diffBottom; 12397 12398 ScrollTrigger.create({ 12399 trigger: $sticky, 12400 start: function(){ return "top center-=" + insideH/2; }, 12401 endTrigger: $row, 12402 end: function(){ 12403 rowBottom = $row.offset().top + $row.outerHeight(); 12404 uncontBottom = $uncont.offset().top + $uncont.outerHeight(); 12405 diffBottom = rowBottom - uncontBottom; 12406 return "bottom center+=" + ( insideH/2 + diffBottom ); 12407 }, 12408 anticipatePin: true, 12409 pin: true, 12410 pinSpacing: false, 12411 scrub: true, 12412 invalidateOnRefresh: true, 12413 }); 12414 12415 }); 12416 }, 12417 setResizeSticky; 12418 12419 $(window).on( 'load', function(){ 12420 stickyTrigger(); 12421 var carousel = document.querySelector(".owl-carousel"), 12422 grid = document.querySelector(".isotope-container"), 12423 stickyAll = document.querySelectorAll(".sticky-trigger"); 12424 12425 if ( stickyAll.length ) { 12426 var sticky = stickyAll[(stickyAll.length-1)]; 12427 } 12428 12429 if ( typeof sticky !== "undefined" ) { 12430 12431 if ( typeof carousel !== "undefined" && carousel !== null ) { 12432 var carousel_position = sticky.compareDocumentPosition(carousel); 12433 } 12434 if ( typeof grid !== "undefined" && grid !== null ) { 12435 var grid_position = sticky.compareDocumentPosition(grid); 12436 } 12437 12438 if ( carousel_position === 2 || grid_position === 2 ) { 12439 setTimeout(function(){ 12440 $(document).trigger('uncode-scrolltrigger-refresh'); 12441 }, 500); 12442 } 12443 12444 } 12445 }); 12446 12447 var oldW = UNCODE.wwidth; 12448 $(window).on( 'resize uncode.re-layout', function(e){ 12449 clearRequestTimeout(setResizeSticky); 12450 if ( e.type === 'resize' && oldW === UNCODE.wwidth ) { 12451 return; 12452 } else { 12453 oldW = UNCODE.wwidth; 12454 } 12455 setResizeSticky = requestTimeout( function(){ 12456 stickyTrigger(); 12457 $(document).trigger('uncode-scrolltrigger-refresh'); 12458 }, 1000 ); 12459 }); 12460 12461 12462}; 12463 12464UNCODE.areaTextReveal = function() { 12465 if ( ! $('.text-reveal, .scroll-trigger-el').length ) { 12466 return; 12467 } 12468 if ( ! SiteParameters.is_frontend_editor ) { 12469 var iPhone = /iPhone/.test(navigator.userAgent) && !window.MSStream, 12470 android = /Android/.test(navigator.userAgent) && !window.MSStream, 12471 prevW = Math.max( document.body.scrollWidth, document.body.offsetWidth, document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth ), 12472 prevH = Math.max( document.body.scrollHeight, document.body.offsetHeight, 12473 document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ), 12474 firstObs = true, 12475 isMobileUsing = false; 12476 12477 var observer = new ResizeObserver(function(){ 12478 var newW = Math.max( document.body.scrollWidth, document.body.offsetWidth, document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth ), 12479 newH = Math.max( document.body.scrollHeight, document.body.offsetHeight, 12480 document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ), 12481 set = false; 12482 if ( prevW !== newW && ( iPhone || (android && Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0) < 750) ) ) { 12483 set = true; 12484 prevW = newW; 12485 } else if ( prevH !== newH && !iPhone && !(android && Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0) < 750) ) { 12486 set = true; 12487 prevH = newH; 12488 } 12489 if ( set || firstObs ) { 12490 window.dispatchEvent(new CustomEvent('uncode-sticky-trigger-observe')); 12491 firstObs = false;
12492 } 12493 }).observe(document.body); 12494 12495 if ( iPhone || (android && Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0) < 750) ) { 12496 window.scrollTo = function() { 12497 return; 12498 }; 12499 isMobileUsing = true; 12500 12501 $('html, body').css({ 12502 'overscroll-behavior': 'none' 12503 }); 12504 } 12505 12506 var setTriggerObserve; 12507 12508 ScrollTrigger.observe({ 12509 trigger: 'body', 12510 type: "touch,pointer", // comma-delimited list of what to listen for ("wheel,touch,scroll,pointer") 12511 onUp: function() { ScrollTrigger.update(); }, 12512 }); 12513 } 12514 12515 var textReveal = function(){ 12516 12517 if ( SiteParameters.is_frontend_editor ) { 12518 return; 12519 } 12520 12521 var setTxtReveal, 12522 txtTrggrStart = false; 12523 12524 function headingReveal($sel){ 12525 txtTrggrStart = true; 12526 $('.text-reveal', $sel).each(function(val, key){ 12527 var $txtReveal = $(this).attr('data-init-reveal', true), 12528 $trigger = $txtReveal, 12529 $rowParent = $txtReveal.closest('.row-container[data-parent]'), 12530 hReveal = $txtReveal.outerHeight(), 12531 $pin = $txtReveal.closest('.scroll-trigger-el[data-anim-sticky="yes"], .scroll-trigger-el[data-sticky-trigger="inner-rows"]'), 12532 $sticky = $txtReveal.closest('.sticky-element'), 12533 dataReveal = $('[data-reveal]', $txtReveal).attr('data-reveal'), 12534 dataRevealOpacity = $('[data-reveal]', $txtReveal).attr('data-reveal-opacity'), 12535 dataTop = parseFloat($('[data-reveal-top]', $txtReveal).attr('data-reveal-top')), 12536 $lines = $('.heading-line-wrap', $txtReveal), 12537 $words = $('.split-word-inner', $txtReveal), 12538 $chars = $('.split-char', $txtReveal), 12539 $elToReveal = $words; 12540 12541 if ( $pin.length ) { 12542 return; 12543 } else if ( $sticky.length ) { 12544 hReveal = $sticky.parent().outerHeight() - (window.innerHeight - window.innerHeight/100*dataTop); 12545 $trigger = $sticky.parent(); 12546 } 12547 12548 if ( dataReveal === 'chars' ) { 12549 $elToReveal = $chars; 12550 } else if ( dataReveal === 'lines' ) { 12551 $elToReveal = $lines; 12552 } 12553 12554 var tl = gsap.timeline({ 12555 scrollTrigger: { 12556 trigger: $trigger, 12557 start: "top +=" + (window.innerHeight/100*dataTop) + "px", 12558 end: "+=" + hReveal + "px", 12559 id: "txt_reveal_" + key, 12560 scrub: true, 12561 } 12562 }); 12563 gsap.set( 12564 $elToReveal, { 12565 opacity: dataRevealOpacity, 12566 } 12567 ) 12568 tl.fromTo($elToReveal, { 12569 opacity: dataRevealOpacity, 12570 duration: 1, 12571 }, { 12572 opacity: 1, 12573 stagger: 0.05, 12574 duration: 1, 12575 12576 }); 12577 $(window).on('uncode.tl-refresh', function(){ 12578 if ( tl !== null && tl !== 'undefined' && tl.scrollTrigger !== null ) { 12579 tl.scrollTrigger.refresh(); 12580 } 12581 }); 12582 12583 $rowParent.one( 'uncodeWordLines', function(){ 12584 clearRequestTimeout(setTxtReveal); 12585 setTxtReveal = requestTimeout( function(){ 12586 gsap.set($elToReveal, {clearProps: true}); 12587 tl.kill(true); 12588 if ( typeof ScrollTrigger.getById('txt_reveal_' + key) !== 'undefined' ) { 12589 ScrollTrigger.getById("txt_reveal_" + key).kill(true); 12590 } 12591 headingReveal($sel) 12592 }, 100); 12593 }); 12594 12595 }); 12596 }; 12597 12598 window.addEventListener("load", function (e) { 12599 if (!txtTrggrStart) { 12600 headingReveal($("body")); 12601 $(window).trigger("resize"); 12602 } 12603 }); 12604
12605 $('.row-container[data-parent]').each(function(){ 12606 if (!txtTrggrStart) { 12607 var $this = $(this); 12608 $this.on('uncodeWordLines', function(){ 12609 headingReveal($this); 12610 }); 12611 } 12612 }); 12613 12614 $(window).on('uncode-sticky-trigger-observe', function(e){ 12615 clearRequestTimeout(setTriggerObserve); 12616 setTriggerObserve = requestTimeout( function(){ 12617 $(window).trigger('uncode.tl-refresh'); 12618 }, 2000 ); 12619 }); 12620 12621 }; 12622 textReveal(); 12623 12624 var areaReveal = function(){ 12625 if ( SiteParameters.is_frontend_editor ) { 12626 return; 12627 } 12628 12629 $('.scroll-trigger-el').each(function(){ 12630 var $scrollTrgrEl = $(this), 12631 $row = $('> .row', $scrollTrgrEl), 12632 $row_in = $('> .row-inner', $row), 12633 cardL = $('.vc_row.row-internal:not(.row-no-card)', $scrollTrgrEl).length, 12634 stickyCards = cardL && $scrollTrgrEl.attr('data-sticky-trigger') === 'inner-rows', 12635 animLast = $scrollTrgrEl.attr('data-no-anim-last') !== 'yes', 12636 stickyOpts = stickyCards ? $scrollTrgrEl.attr('data-anim-inner-rows-options') : false, 12637 $animateTrgrEl = $scrollTrgrEl, 12638 noMobile = $scrollTrgrEl.attr('data-sticky-no-mobile') === 'yes', 12639 noTablet = $scrollTrgrEl.attr('data-sticky-no-tablet'), 12640 els = $scrollTrgrEl.attr('data-anim-els'), 12641 sticky = $scrollTrgrEl.attr('data-anim-sticky'), 12642 noSpace = $scrollTrgrEl.attr('data-anim-no-space'), 12643 state = $scrollTrgrEl.attr('data-anim-state'), 12644 target = $scrollTrgrEl.attr('data-anim-target'), 12645 origin = $scrollTrgrEl.attr('data-anim-origin'), 12646 mask = $scrollTrgrEl.attr('data-anim-mask'), 12647 _scale = $scrollTrgrEl.attr('data-anim-scale'), 12648 stepScale = stickyCards && $scrollTrgrEl.attr('data-anim-scale-step') === 'yes', 12649 opacity = $scrollTrgrEl.attr('data-anim-opacity'), 12650 radius = $scrollTrgrEl.attr('data-anim-radius'), 12651 radius_unit = $scrollTrgrEl.attr('data-anim-radius-unit'), 12652 clip_path = $scrollTrgrEl.attr('data-clip-path'), 12653 animation_x = $scrollTrgrEl.attr('data-anim-x'), 12654 animation_x_alt = $scrollTrgrEl.attr('data-anim-x-alt'), 12655 animation_y = $scrollTrgrEl.attr('data-anim-y'), 12656 blur = $scrollTrgrEl.attr('data-anim-blur'), 12657 perspective = $scrollTrgrEl.attr('data-anim-perspective'), 12658 rotate = $scrollTrgrEl.attr('data-anim-rotate'), 12659 rotate_alt = $scrollTrgrEl.attr('data-anim-rotate-alt'), 12660 topBottom = $scrollTrgrEl.attr('data-anim-start'), 12661 offTop = $scrollTrgrEl.attr('data-anim-top'), 12662 offBottom = $scrollTrgrEl.attr('data-anim-bottom'), 12663 safe = $scrollTrgrEl.attr('data-anim-safe') === 'yes' ? (window.innerHeight/100*(100-offTop)) : 0, 12664 animation_rows_start = $scrollTrgrEl.attr('data-anim-start-point'), 12665 mobile_rows_start = $scrollTrgrEl.attr('data-mobile-start-point'), 12666 mobile_start_add = $scrollTrgrEl.attr('data-mobile-start-point-add'), 12667 easeOut = $scrollTrgrEl.attr('data-anim-ease'), 12668 offSetCard = $scrollTrgrEl.attr('data-anim-rows-offset'), 12669 stickyLast = $scrollTrgrEl.attr('data-anim-sticky-last') === 'yes' && stickyCards, 12670 $lastEl = $('.vc_row.row-internal:not(.row-no-card)', $scrollTrgrEl).last(), 12671 setTxtReveal, 12672 txtTrggrStart = false, 12673 alreadyareaAnimateScrollTl = false; 12674 12675 _scale = _scale === '' ? 0 : parseFloat( _scale ); 12676 perspective = perspective === '' ? 0.001 : parseFloat(perspective) + 0.001; 12677 offTop = offTop === '' ? 0 : parseFloat( offTop ); 12678 offBottom = offBottom === '' ? 0 : parseFloat( offBottom ); 12679 offSetCard = offSetCard === '' ? 0 : parseFloat( offSetCard ); 12680 12681 function areaAnimateScrollTl($el, id, last) { 12682 alreadyareaAnimateScrollTl = true; 12683 12684 var pTop = parseFloat( $row.css('padding-top') ), 12685 innerGap = pTop + offSetCard * id, 12686 scale = _scale, 12687 rows_start = animation_rows_start; 12688 12689 if ( isMobileUsing && typeof mobile_rows_start !== 'undefined' ) { 12690 rows_start = mobile_rows_start; 12691 innerGap = 0 + parseFloat(mobile_start_add); 12692 } 12693 12694 if ( stepScale ) { 12695 if ( _scale < 100 ) { 12696 scale = _scale + ( ( 100 - _scale ) / (cardL) * (id) ); 12697 } 12698 } 12699 12700 if ( els === 'content' ) { 12701 $animateTrgrEl = $('> .row', $scrollTrgrEl); 12702 } else if ( els === 'bg' ) { 12703 $animateTrgrEl = $('> .row-background, > .uncode-multi-bgs', $scrollTrgrEl); 12704 } else { 12705 $animateTrgrEl = $el; 12706 } 12707 12708 if ( rotate_alt === 'yes') { 12709 rotate *= -1; 12710 perspective *= -1; 12711 } 12712 12713 if ( animation_x_alt === 'yes') { 12714 animation_x *= -1; 12715 } 12716 12717 var $parentDiv = $el.closest('div[data-sticky]'); 12718 12719 var start_topBottom = topBottom === 'bottom' ? "bottom bottom-=" + (window.innerHeight/100*offTop) + "px" : "top top+=" + (window.innerHeight/100*offTop) + "px"; 12720 12721 var scrllTrggr = { 12722 trigger: $parentDiv, 12723 end: function(){ 12724 return ("+=" + (offBottom === 0 ? $scrollTrgrEl.outerHeight() - safe : (window.innerHeight/100*offBottom))) 12725 }, 12726 start: stickyCards ? "top top+=" + (innerGap) : start_topBottom,
12727 pin: sticky === 'yes' || stickyCards ? true : false, 12728 pinSpacing: ((noSpace !== "yes" && !stickyCards) || (state !== 'end' && last)) && !(stickyCards && state !== 'end' && !animLast && id === 0), 12729 scrub: true, 12730 id: 'sticky_' + id, 12731 anticipatePin: 1, 12732 invalidateOnRefresh: true, 12733 // markers: { 12734 // indent: 150 * id 12735 // }, 12736 onToggle: function(){ 12737 $scrollTrgrEl.attr('data-revealed', true); 12738 }, 12739 }; 12740 12741 12742 if ( !stickyLast && state === 'end' ) { 12743 last = false; 12744 } 12745 12746 if ( stickyCards ) { 12747 if ( state !== 'end' ) { 12748 if ( rows_start === 'center' ) { 12749 scrllTrggr.start = "center center"; 12750 scrllTrggr.end = "bottom bottom-=" + (window.innerHeight); 12751 } else if ( rows_start === 'bottom' ) { 12752 if ( stickyOpts !== 'no' ) { 12753 scrllTrggr.start = "bottom bottom-=" + (innerGap-1) 12754 scrllTrggr.end = "bottom bottom"; 12755 } 12756 } else { 12757 scrllTrggr.end = "bottom bottom-=" + (window.innerHeight/2); 12758 } 12759 if ( stickyOpts === 'no' ) { 12760 scrllTrggr.endTrigger = $el; 12761 scrllTrggr.end = "+=100%"; 12762 } else { 12763 scrllTrggr.endTrigger = $row; 12764 } 12765 } else { 12766 if ( rows_start === 'center' ) { 12767 scrllTrggr.start = "center center"; 12768 } else if ( rows_start === 'bottom' ) { 12769 scrllTrggr.start = "bottom bottom"; 12770 } 12771 if ( stickyOpts !== 'no' ) { 12772 scrllTrggr.end = "top top+=" + (pTop + offSetCard * (cardL-1)); 12773 scrllTrggr.endTrigger = $lastEl; 12774 } else { 12775 scrllTrggr.end = "bottom bottom"; 12776 } 12777 } 12778 } 12779 12780 var tl = gsap.timeline({ 12781 scrollTrigger: scrllTrggr 12782 }); 12783 12784 // var mark = last ? { 12785 // startColor:"blue", 12786 // endColor:"orange", 12787 // } : false; 12788 12789 if ( !stickyCards ) { 12790 var tlConds = tl; 12791 } else { 12792 var scrllTrggrConds = { 12793 trigger: $parentDiv, 12794 end: function(){ 12795 return ("+=" + (offBottom === 0 || stickyCards ? window.innerHeight - safe : (window.innerHeight/100*offBottom))) 12796 }, 12797 pin: (state === 'end' && last), 12798 pinSpacing: false, 12799 scrub: true, 12800 id: 'card_' + id, 12801 invalidateOnRefresh: true, 12802 // markers: true, 12803 }; 12804 12805 if ( stickyCards ) { 12806 if ( state !== 'end' ) { 12807 if ( stickyOpts === '' ) { 12808 scrllTrggrConds.end = "bottom bottom-=100%"; 12809 scrllTrggrConds.endTrigger = $row_in; 12810 } 12811 12812 if ( rows_start === 'bottom' ) { 12813 if ( stickyOpts !== 'no') { 12814 scrllTrggrConds.start = "top top+=" + window.innerHeight; 12815 scrllTrggrConds.end = "bottom bottom"; 12816 } 12817 } else if ( rows_start === 'center' ) { 12818 scrllTrggrConds.start = "center center"; 12819 } else { 12820 scrllTrggrConds.start = "top top+=" + (innerGap + 1); 12821 } 12822 12823 } else { 12824 if ( stickyOpts === '' ) { 12825 if ( animLast ) { 12826 scrllTrggrConds.end = "bottom bottom-=100%"; 12827 } else { 12828 scrllTrggrConds.end = "bottom bottom"; 12829 } 12830 scrllTrggrConds.endTrigger = $lastEl; 12831 } 12832 12833 if ( rows_start === 'bottom' && stickyOpts !== 'no' ) { 12834 if ( UNCODE.wwidth <= UNCODE.mediaQuery ) { 12835 scrllTrggrConds.start = "bottom bottom"; 12836 } else { 12837 scrllTrggrConds.start = "top top+=" + $el.outerHeight(); 12838 } 12839 } else if ( rows_start === 'center' ) { 12840 if ( UNCODE.wwidth <= UNCODE.mediaQuery ) { 12841 scrllTrggrConds.start = "center center"; 12842 } else { 12843 scrllTrggrConds.start = "top+=" + ($el.outerHeight()/2) + " top+="
12843+ window.innerHeight/2; 12844 } 12845 } else { 12846 if ( UNCODE.wwidth <= UNCODE.mediaQuery ) { 12847 scrllTrggrConds.start = "top top"; 12848 } else { 12849 scrllTrggrConds.start = "top top+=" + (innerGap + 1); 12850 } 12851 } 12852 12853 } 12854 12855 } else { 12856 scrllTrggrConds.start = start_topBottom; 12857 } 12858 12859 var tlConds = gsap.timeline({ 12860 scrollTrigger: scrllTrggrConds 12861 }); 12862 } 12863 12864 if ( !(stickyCards && state !== 'end' && !animLast && id === 0) ) { 12865 if ( target === 'mask' ) { 12866 if ( state !== 'end' ) { 12867 if ( mask === 'auto' ) { 12868 gsap.set( 12869 $animateTrgrEl, { 12870 clipPath: 'inset(0% ' + (( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) )/2) + 'px round ' + radius + radius_unit + ')', 12871 opacity: parseFloat(opacity)/100, 12872 filter: 'blur(' + blur + 'px)', 12873 visibility: 'visible', 12874 } 12875 ) 12876 tlConds.fromTo($animateTrgrEl, { 12877 clipPath: 'inset(0% ' + (( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) )/2) + 'px round ' + radius + radius_unit + ')', 12878 opacity: parseFloat(opacity)/100, 12879 filter: 'blur(' + blur + 'px)', 12880 duration: 1, 12881 }, { 12882 opacity: 1, 12883 clipPath: 'inset(0% 0px round 0' + radiu
12883s_unit + ')', 12884 filter: 'blur(0px)', 12885 duration: 1, 12886 ease: easeOut, 12887 //delay: 0.1 12888 }); 12889 } else { 12890 tlConds.fromTo($animateTrgrEl, { 12891 opacity: parseFloat(opacity)/100, 12892 clipPath: clip_path, 12893 filter: 'blur(' + blur + 'px)', 12894 duration: 1, 12895 }, { 12896 opacity: 1, 12897 clipPath: 'inset(0% 0% 0% 0% round 0' + radius_unit + ')', 12898 filter: 'blur(0px)', 12899 duration: 1, 12900 ease: easeOut, 12901 //delay: 0.1 12902 }); 12903 } 12904 } else { 12905 if ( mask === 'auto' ) { 12906 tlConds.fromTo($animateTrgrEl, { 12907 opacity: 1, 12908 clipPath: 'inset(0% 0px round 0' + radiu
12908s_unit + ')', 12909 filter: 'blur(0px)', 12910 duration: 1, 12911 },{ 12912 opacity: parseFloat(opacity)/100, 12913 clipPath: 'inset(0% ' + (( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) )/2) + 'px round ' + radius + radius_unit + ')', 12914 filter: 'blur(' + blur + 'px)', 12915 ease: easeOut, 12916 duration: 1, 12917 //delay: 0.1 12918 }); 12919 } else { 12920 tlConds.fromTo($animateTrgrEl, { 12921 opacity: 1, 12922 clipPath: 'inset(0% 0% 0% 0% round 0' + radius_unit + ')', 12923 filter: 'blur(0px)', 12924 duration: 1, 12925 },{ 12926 opacity: parseFloat(opacity)/100, 12927 clipPath: clip_path, 12928 filter: 'blur(' + blur + 'px)', 12929 duration: 1, 12930 ease: easeOut, 12931 //delay: 0.1 12932 }); 12933 } 12934 } 12935 } else { 12936 if ( state !== 'end' ) { 12937 if ( scale === 'auto' ) { 12938 if ( radius ) { 12939 gsap.set( 12940 $animateTrgrEl, { 12941 scaleX: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 12942 scaleY: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 12943 x: animation_x + 'vw', 12944 y: animation_y + 'vh', 12945 filter: 'blur(' + blur + 'px)', 12946 rotation: rotate, 12947 rotationX: rotate == 0 ? perspective : 0, 12948 transformPerspective: '100vw', 12949 opacity: parseFloat(opacity)/100, 12950 transformOrigin: origin, 12951 borderRadius: radius + radius_unit, 12952 visibility: 'visible', 12953 } 12954 ) 12955 tlConds.fromTo($animateTrgrEl, { 12956 scaleX: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 12957 scaleY: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 12958 x: animation_x + 'vw', 12959 y: animation_y + 'vh', 12960 filter: 'blur(' + blur + 'px)', 12961 rotation: rotate, 12962 rotationX: rotate == 0 ? perspective : 0, 12963 transformPerspective: '100vw', 12964 opacity: parseFloat(opacity)/100, 12965 borderRadius: radius + radius_unit, 12966 transformOrigin: origin, 12967 duration: 1, 12968 }, { 12969 scaleX: 1, 12970 scaleY: 1, 12971 x: 0, 12972 y: 0, 12973 filter: 'blur(0px)', 12974 rotation: 0, 12975 rotationX: 0, 12976 opacity: 1, 12977 borderRadius: 0 + radius_unit, 12978 transformOrigin: origin, 12979 duration: 1, 12980 ease: easeOut, 12981 //delay: 0.1 12982 }); 12983 } else { 12984 gsap.set( 12985 $animateTrgrEl, { 12986 scaleX: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 12987 scaleY: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 12988 x: animation_x + 'vw', 12989 y: animation_y + 'vh', 12990 filter: 'blur(' + blur + 'px)', 12991 rotation: rotate, 12992 rotationX: rotate == 0 ? perspective : 0, 12993 transformPerspective: '100vw', 12994 opacity: parseFloat(opacity)/100, 12995 transformOrigin: origin, 12996 visibility: 'visible', 12997 } 12998 ) 12999 tlConds.fromTo($animateTrgrEl, { 13000 scaleX: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 13001 scaleY: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 13002 x: animation_x + 'vw', 13003 y: animation_y + 'vh', 13004 filter: 'blur(' + blur + 'px)', 13005 rotation: rotate, 13006 rotationX: rotate == 0 ? perspective : 0, 13007 transformPerspective: '100vw', 13008 opacity: parseFloat(opacity)/100, 13009 transformOrigin: origin, 13010 duration: 1, 13011 }, { 13012 scaleX: 1, 13013 scaleY: 1, 13014 x: 0, 13015 y: 0, 13016 filter: 'blur(0px)', 13017 rotation: 0, 13018 rotationX: 0, 13019 opacity: 1, 13020 transformOrigin: origin, 13021 duration: 1, 13022 ease: easeOut, 13023 //delay: 0.1 13024 }); 13025 } 13026 } else {
13027 if ( radius ) { 13028 gsap.set( 13029 $animateTrgrEl, { 13030 scaleX: parseFloat( scale ) / 100, 13031 scaleY: parseFloat( scale ) / 100, 13032 opacity: parseFloat(opacity)/100, 13033 x: animation_x + 'vw', 13034 y: animation_y + 'vh', 13035 filter: 'blur(' + blur + 'px)', 13036 rotation: rotate, 13037 rotationX: rotate == 0 ? perspective : 0, 13038 transformPerspective: '100vw', 13039 transformOrigin: origin, 13040 borderRadius: radius + radius_unit, 13041 visibility: 'visible', 13042 } 13043 ) 13044 tlConds.fromTo($animateTrgrEl, { 13045 scaleX: parseFloat( scale ) / 100, 13046 scaleY: parseFloat( scale ) / 100, 13047 opacity: parseFloat(opacity)/100, 13048 x: animation_x + 'vw', 13049 y: animation_y + 'vh', 13050 filter: 'blur(' + blur + 'px)', 13051 rotation: rotate, 13052 rotationX: rotate == 0 ? perspective : 0, 13053 transformPerspective: '100vw', 13054 borderRadius: radius + radius_unit, 13055 transformOrigin: origin, 13056 duration: 1, 13057 }, { 13058 scaleX: 1, 13059 scaleY: 1, 13060 opacity: 1, 13061 x: 0, 13062 y: 0, 13063 filter: 'blur(0px)', 13064 rotation: 0, 13065 rotationX: 0, 13066 transformOrigin: origin, 13067 ease: easeOut, 13068 duration: 1, 13069 borderRadius: 0 + radius_unit, 13070 //delay: 0.1 13071 }); 13072 } else { 13073 gsap.set( 13074 $animateTrgrEl, { 13075 scaleX: parseFloat( scale ) / 100, 13076 scaleY: parseFloat( scale ) / 100, 13077 opacity: parseFloat(opacity)/100, 13078 x: animation_x + 'vw', 13079 y: animation_y + 'vh', 13080 filter: 'blur(' + blur + 'px)', 13081 rotation: rotate, 13082 rotationX: rotate == 0 ? perspective : 0, 13083 transformPerspective: '100vw', 13084 transformOrigin: origin, 13085 visibility: 'visible', 13086 } 13087 ) 13088 tlConds.fromTo($animateTrgrEl, { 13089 scaleX: parseFloat( scale ) / 100, 13090 scaleY: parseFloat( scale ) / 100, 13091 opacity: parseFloat(opacity)/100, 13092 x: animation_x + 'vw', 13093 y: animation_y + 'vh', 13094 filter: 'blur(' + blur + 'px)', 13095 rotation: rotate, 13096 rotationX: rotate == 0 ? perspective : 0, 13097 transformPerspective: '100vw', 13098 transformOrigin: origin, 13099 duration: 1, 13100 }, { 13101 scaleX: 1, 13102 scaleY: 1, 13103 opacity: 1, 13104 x: 0, 13105 y: 0, 13106 filter: 'blur(0px)', 13107 rotation: 0, 13108 rotationX: 0, 13109 transformOrigin: origin, 13110 duration: 1, 13111 ease: easeOut, 13112 //delay: 0.1 13113 }); 13114 } 13115 } 13116 } else { 13117 if ( scale === 'auto' ) { 13118 tlConds.fromTo($animateTrgrEl, { 13119 scaleX: 1, 13120 scaleY: 1, 13121 opacity: 1, 13122 x: 0, 13123 y: 0, 13124 filter: 'blur(0px)', 13125 rotation: 0, 13126 rotationX: 0, 13127 transformOrigin: origin, 13128 duration: 1, 13129 }, { 13130 scaleX: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 13131 scaleY: 1 - ( ( UNCODE.wwidth - parseFloat(SiteParameters.uncode_limit_width) ) /UNCODE.wwidth ), 13132 opacity: parseFloat(opacity)/100, 13133 x: animation_x + 'vw', 13134 y: animation_y + 'vh', 13135 filter: 'blur(' + blur + 'px)', 13136 rotation: rotate, 13137 rotationX: rotate == 0 ? perspective : 0, 13138 transformPerspective: '100vw', 13139 transformOrigin: origin, 13140 duration: 1, 13141 ease: easeOut, 13142 //delay: 0.1 13143 }) 13144 } else { 13145 tlConds.fromTo($animateTrgrEl, { 13146 scaleX: 1, 13147 scaleY: 1, 13148 opacity: 1, 13149 x: 0, 13150 y: 0, 13151 filter: 'blur(0px)', 13152 rotation: 0, 13153 rotationX: 0, 13154 transformPerspective: '100vw', 13155 transformOrigin: origin, 13156 borderRadius: 0 + radius_unit, 13157 duration: 1, 13158 }, { 13159 scaleX: parseFloat( scale ) / 100, 13160 scaleY: parseFloat( scale ) / 100, 13161 opacity: parseFloat(opacity)/100, 13162 x: animation_x + 'vw', 13163 y: animation_y + 'vh', 13164 filter: 'blur(' + blur + 'px)', 13165 rotation: rotate, 13166 rotationX: rotate == 0 ? perspective : 0, 13167 transformPerspective: '100vw', 13168 transformOrigin: origin, 13169 borderRadius: radius + radius_unit, 13170 duration: 1, 13171 ease: easeOut, 13172 //delay: 0.1 13173 }) 13174 } 13175 } 13176 } 13177 } 13178 13179 function headingReveal($el){ 13180 txtTrggrStart = true; 13181 $('.text-reveal', $el).each(function(_key, _val){ 13182 var $txtReveal = $(_val), 13183 dataReveal = $('[data-reveal]', $txtReveal).attr('data-reveal'), 13184 dataRevealOpacity = $('[data-reveal]', $txtReveal).attr('data-reveal-opacity'), 13185 $lines = $('.heading-line-wrap', $txtReveal), 13186 $words = $('.split-word-inner', $txtReveal), 13187 $chars = $('.split-char', $txtReveal), 13188 _setTxtReveal, 13189 $elToReveal = $words; 13190 13191 if ( !(sticky === 'yes' || stickyCards) ) { 13192 return; 13193 } 13194 13195 easeOut = easeOut !== 'none' ? easeOut + '.out' : easeOut; 13196 13197 if ( dataReveal === 'chars' ) { 13198 $elToReveal = $chars; 13199 } else if ( dataReveal === 'lines' ) { 13200 $elToReveal = $lines; 13201 } 13202 13203 var scrllTrggrTxt = typeof scrllTrggrConds !== 'undefined' || scrllTrggr; 13204 scrllTrggrTxt.id = "txt_reveal_" + _key;
13205 scrllTrggrTxt.pin = false; 13206 13207 gsap.set($elToReveal, {opacity: dataRevealOpacity}); 13208 var _tl = gsap.timeline({ 13209 scrollTrigger: scrllTrggrTxt 13210 }); 13211 _tl.fromTo($elToReveal, { 13212 opacity: dataRevealOpacity, 13213 }, { 13214 opacity: 1, 13215 stagger: 0.05 13216 }); 13217 13218 $scrollTrgrEl.one( 'uncodeWordLines', function(){ 13219 clearRequestTimeout(_setTxtReveal); 13220 _setTxtReveal = requestTimeout( function(){ 13221 gsap.set($elToReveal, {clearProps: true}); 13222 _tl.kill(true); 13223 if ( typeof ScrollTrigger.getById('txt_reveal_' + _key) !== 'undefined' ) { 13224 ScrollTrigger.getById("txt_reveal_" + _key).kill(true); 13225 } 13226 headingReveal($el) 13227 }, 100); 13228 }); 13229 13230 }); 13231 }; 13232 13233 if (!txtTrggrStart) { 13234 headingReveal($el); 13235 } 13236 13237 $scrollTrgrEl.one( 'uncodeWordLines', function(){ 13238 if (!txtTrggrStart) { 13239 headingReveal($el); 13240 } 13241 }); 13242 13243 var _height = Math.max( document.body.scrollHeight, document.body.offsetHeight, 13244 document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ); 13245 var _width = Math.max( document.body.scrollWidth, document.body.offsetWidth, 13246 document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth ); 13247 13248 $(window).on('uncode-sticky-trigger-observe', function(e){ 13249 var __height = Math.max( document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ); 13250 var __width = Math.max( document.body.scrollWidth, document.body.offsetWidth, document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth ); 13251 $('.pin-spacer, [data-sticky]', $scrollTrgrEl).css({height: false, maxHeight: false}); 13252 //$('.tmb, .row-inner[style*=height]', $scrollTrgrEl).removeAttr('style'); 13253 if ( stickyCards ) { 13254 $('.tmb', $scrollTrgrEl).removeAttr('style'); 13255 } 13256 var scrollnow = document.body.scrollTop || document.documentElement.scrollTop; 13257 clearRequestTimeout(setTxtReveal); 13258 setTxtReveal = requestTimeout( function(){ 13259 $(document).trigger('uncode-scrolltrigger-refresh'); 13260 if ( isMobileUsing ) { 13261 if ( typeof tl !== 'undefined' ) { 13262 tl.scrollTrigger.refresh(); 13263 } 13264 if ( typeof tlConds !== 'undefined' ) { 13265 tlConds.scrollTrigger.refresh(); 13266 } 13267 $(window).trigger('scroll'); 13268 _width = __width; 13269 } else if ( _width !== __width && ( isMobileUsing ) ) { 13270 window.dispatchEvent(new CustomEvent('vc-resize')); 13271 if ( typeof window.lenis !== 'undefined' && window.lenis !== null ) { 13272 window.lenis.scrollTo(0, {duration: 0.01, onComplete: function(){ 13273 if ( typeof tl !== 'undefined' ) { 13274 tl.scrollTrigger.refresh(); 13275 } 13276 if ( typeof tlConds !== 'undefined' ) { 13277 tlConds.scrollTrigger.refresh(); 13278 } 13279 window.lenis.scrollTo(scrollnow, {duration: 0.01}); 13280 }}); 13281 } else { 13282 if ( typeof tl !== 'undefined' ) { 13283 tl.scrollTrigger.refresh(); 13284 } 13285 if ( typeof tlConds !== 'undefined' ) { 13286 tlConds.scrollTrigger.refresh(); 13287 } 13288 $(window).trigger('scroll'); 13289 } 13290 _height = __height; 13291 } 13292 }, 500); 13293 }); 13294 13295 13296 $(window).on('load ', function(e){ 13297 var ___height = Math.max( document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight ); 13298 if ( _height !== ___height ) { 13299 $scrollTrgrEl.attr('data-toggled', true); 13300 $(window).trigger('resize'); 13301 if ( typeof tl !== 'undefined' ) { 13302 tl.scrollTrigger.refresh(); 13303 } 13304 if ( typeof tlConds !== 'undefined' ) { 13305 tlConds.scrollTrigger.refresh(); 13306 } 13307 _height = ___height; 13308 } 13309 13310 13311 13312 $(document).trigger('uncode-scrolltrigger-refresh'); 13313 13314 }); 13315 13316 }; 13317 13318 var callAreaAnimateScrollTl = function() { 13319 if ( stickyCards ) { 13320 $('.vc_row.row-internal:not(.row-no-card)', $scrollTrgrEl).each(function(key, val){ 13321 if ( key+1 < cardL || animLast || state !== 'end' ) { 13322 var $this = $(val), 13323 last = key+1===cardL; 13324 areaAnimateScrollTl($this, key, last); 13325 } 13326 }); 13327 } else {
13328 areaAnimateScrollTl($scrollTrgrEl, 0, false); 13329 } 13330 }; 13331 13332 $(window).on('wwResize', function(){ 13333 if ( !alreadyareaAnimateScrollTl ) { 13334 if ( noMobile ) { 13335 if ( noTablet && UNCODE.wwidth <= UNCODE.mediaQuery ) { 13336 return; 13337 } else if ( UNCODE.wwidth <= UNCODE.mediaQueryMobile ) { 13338 return; 13339 } 13340 } 13341 13342 callAreaAnimateScrollTl(); 13343 } 13344 }) 13345 13346 if ( noMobile ) { 13347 if ( noTablet && UNCODE.wwidth <= UNCODE.mediaQuery ) { 13348 return; 13349 } else if ( UNCODE.wwidth <= UNCODE.mediaQueryMobile ) { 13350 return; 13351 } 13352 } 13353 13354 callAreaAnimateScrollTl(); 13355 13356 }); 13357 13358 }; 13359 13360 areaReveal(); 13361 13362}; 13363UNCODE.thumbsReveal = function() { 13364 var recalc = false, 13365 revealThumbs = function( $el ){ 13366 if ( typeof $el === 'undefined' || $el === null || !$el.length ) { 13367 $el = $('body'); 13368 } 13369 $('.grid-wrapper, .custom-grid-container, .single-wrapper, .owl-carousel-wrapper, .linear-wrapper', $el).has('.tmb-mask').each(function(){ 13370 var $container = $(this), 13371 $stickys = $('.tmb-mask:not(.tmb-mask-init)', $container), 13372 isContainer = false; 13373 13374 if ( !$('body').hasClass('compose-mode') || typeof window.parent.vc === 'undefined' ) { 13375 $stickys.each(function(){ 13376 var $sticky = $(this).addClass('tmb-mask-init'), 13377 $rellax = $sticky.closest('.parallax-el'), 13378 $inside = $('.t-inside', $sticky), 13379 $media = $('img, video, .fluid-object', $sticky).attr('loading', ''), 13380 val = parseFloat( $inside.attr('data-scroll-val') ); 13381 13382 if ( $rellax.length ) { 13383 recalc = true; 13384 } 13385 13386 val = (isNaN(val) || val == null || val == 0 || typeof val === 'undefined') ? 5 : val; 13387 13388 if ( $sticky.hasClass('tmb-mask-scroll') ) { 13389 13390 var zoom = ($sticky.hasClass('tmb-mask-scroll-zoom') || $sticky.hasClass('tmb-mask-scroll-both')) 13391 ? val*0.05 : 0; 13392 var parax = ($sticky.hasClass('tmb-mask-scroll-parallax') || $sticky.hasClass('tmb-mask-scroll-both')) 13393 ? val*4 : 0; 13394 var extra = ($sticky.hasClass('tmb-mask-scroll-parallax') || $sticky.hasClass('tmb-mask-scroll-both')) ? parax*0.01 : 0; 13395 13396 var tl = gsap.timeline({ 13397 scrollTrigger: { 13398 trigger: $sticky, 13399 scrub: true, 13400 } 13401 }); 13402 13403 tl.fromTo($media, { 13404 yPercent: -(parax), 13405 scale: 1 + zoom + extra, 13406 }, { 13407 yPercent: parax, 13408 scale: 1 + extra, 13409 ease: "none", 13410 }); 13411 13412 if ( recalc ) { 13413 $(window).on('uncode-thumbsreveal-refresh', function(){ 13414 if ( tl !== null && tl !== 'undefined' && tl.scrollTrigger !== null ) { 13415 tl.scrollTrigger.refresh(); 13416 } 13417 }); 13418 } 13419 } 13420 }); 13421 } 13422 13423 if ( $container.has('.tmb-mask-reveal') ) { 13424 var $markTrigger = ".tmb-mask-reveal .t-entry-visual", 13425 staggerTime = 0.1; 13426 13427 $('.t-inside', $container).each(function(){ 13428 var checkEasing = $(this).attr('data-easing'); 13429 if (checkEasing === '' || checkEasing == null || typeof checkEasing === 'undefined') { 13430 gsap.registerPlugin(CustomEase); 13431 return false;
13432 } 13433 }); 13434 13435 if ( $container.hasClass('cssgrid-system') && !$container.hasClass('cssgrid-animate-sequential') ) { 13436 $markTrigger = $container; 13437 isContainer = true; 13438 staggerTime = 0; 13439 } 13440 13441 ScrollTrigger.batch( $markTrigger, { 13442 start: function( el ){ 13443 /*if ( el.trigger.offsetHeight < (window.innerHeight/2) ) { 13444 return "bottom bottom"; 13445 } else {*/ 13446 return "top 96%"; 13447 //} 13448 }, 13449 onEnter: function(batch){ 13450 var $inside = $(batch).closest('.t-inside'); 13451 13452 if ( isContainer ) { 13453 var $inside = $(batch).find('.t-inside').first(); 13454 } 13455 13456 var delay = parseFloat( $inside.attr('data-delay') ), 13457 speed = parseFloat( $inside.attr('data-speed') ), 13458 easing = $inside.attr('data-easing'), 13459 bgDelay = parseFloat( $inside.attr('data-bg-delay') ); 13460 13461 delay = (isNaN(delay) || delay == null || typeof delay === 'undefined') ? 0 : delay/1000; 13462 speed = (isNaN(speed) || speed == null || typeof speed === 'undefined') ? 0.4 : speed/1000; 13463 easing = (easing === '' || easing == null || typeof easing === 'undefined') ? CustomEase.create("custom", "0.76, 0, 0.24, 1") : easing; 13464 bgDelay = (isNaN(bgDelay) || bgDelay == null || typeof bgDelay === 'undefined') ? '' : bgDelay; 13465 13466 if ( $(batch).closest('.tmb-has-hex').length && bgDelay !== '' ) { 13467 gsap.to($('.t-entry-visual-tc', batch), speed, { 13468 clipPath: 'inset(0% 0% 0% 0%)', 13469 stagger: staggerTime, 13470 delay: delay, 13471 ease: easing, 13472 }); 13473 gsap.to($('.t-entry-visual-cont, .uncode-single-media-wrapper', batch), speed, { 13474 clipPath: 'inset(0% 0% 0% 0%)', 13475 stagger: staggerTime, 13476 scale: 1, 13477 delay: delay + (speed*bgDelay), 13478 ease: easing, 13479 }); 13480 } else { 13481 gsap.to($('.t-entry-visual-cont, .uncode-single-media-wrapper', batch), speed, { 13482 clipPath: 'inset(0% 0% 0% 0%)', 13483 stagger: staggerTime, 13484 scale: 1, 13485 delay: delay, 13486 ease: easing, 13487 }); 13488 } 13489 13490 } 13491 }); 13492 } 13493 13494 }); 13495 13496 function raf(time) { 13497 requestAnimationFrame(raf) 13498 $(window).trigger('uncode-thumbsreveal-refresh'); 13499 } 13500 13501 if ( recalc ) { 13502 requestAnimationFrame(raf) 13503 } 13504 13505 }; 13506 $(window).on( 'load more-items-loaded', function(){ 13507 revealThumbs(); 13508 }); 13509 13510 $(document).on('uncode-ajax-filtered', function(){ 13511 revealThumbs(); 13512 }); 13513 13514 if ( $('body').hasClass('compose-mode') && typeof window.parent.vc !== 'undefined' ) { 13515 window.parent.vc.events.on( 'shortcodeView:updated shortcodeView:ready', function(model){ 13516 var $el = model.view.$el, 13517 shortcode = model.attributes.shortcode; 13518 13519 if ( $el.is('.custom-grid-container') ) { 13520 $el = $el.parent(); 13521 } 13522 13523 if (shortcode === 'uncode_index' || shortcode === 'vc_gallery' || shortcode === 'vc_single_image') { 13524 revealThumbs($el); 13525 } 13526 }); 13527 } 13528 13529}; 13530 13531UNCODE.revslider = function() { 13532 var revSlider6In = function(){ 13533 $('rs-module').each(function(){ 13534 var $slider = $(this); 13535 13536 $slider.on('revolution.slide.onloaded', function(e, data){ 13537 if ( $(e.currentTarget).closest(".header-revslider").length ) { 13538 var style = $(e.currentTarget).find("rs-slide").eq(0).attr("data-skin"), 13539 scrolltop = $(document).scrollTop(); 13540 if ( style != undefined ) { 13541 UNCODE.switchColorsMenu(scrolltop, style); 13542 } 13543 } 13544 }); 13545 13546 $slider.on('revolution.slide.onchange', function(e, data){ 13547 if ( $(e.currentTarget).closest(".header-revslider").length ) { 13548 var style = $(e.currentTarget).find("rs-slide").eq(data.slideIndex - 1).attr("data-skin"), 13549 scrolltop = $(document).scrollTop(); 13550 if ( style != undefined ) { 13551 UNCODE.switchColorsMenu(scrolltop, style); 13552 } 13553 } 13554 }); 13555 13556 }); 13557 13558 }; 13559 revSlider6In(); 13560 $(window).on("load", revSlider6In ); 13561 13562 document.addEventListener("sr.module.ready", function(e) { 13563 var $slider = $('#'+e.id), 13564 settings = SR7.JSON[e.id]; 13565 13566 if ( typeof settings !== 'undefined' && settings !== null ) { 13567 if ( $slider.closest(".header-revslider").length ) { 13568 var style = settings.slides[1].slide.attr.data, 13569 scrolltop = $(document).scrollTop(); 13570 style = style.match(/data-skin=[\'|\"](.*)[\'|\"]/); 13571 style = style[1]; 13572 if ( style[1] != undefined ) { 13573 UNCODE.switchColorsMenu(scrolltop, style); 13574 } 13575 } 13576 } 13577 }); 13578 13579 document.addEventListener("sr.slide.afterChange", function(e) { 13580 var $slider = $('#'+e.id), 13581 settings = SR7.JSON[e.id]; 13582 13583 if ( typeof settings !== 'undefined' && settings !== null ) { 13584 if ( $slider.closest(".header-revslider").length ) { 13585 var style = settings.slides[e.current.id].slide.attr.data, 13586 scrolltop = $(document).scrollTop(); 13587 style = style.match(/data-skin=[\'|\"](.*)[\'|\"]/); 13588 style = style[1]; 13589 if ( style != undefined ) { 13590 UNCODE.switchColorsMenu(scrolltop, style); 13591 } 13592 } 13593 } 13594 }); 13595 13596}; 13597UNCODE.layerslider = function() { 13598 $(window).on("load", function() { 13599 13600 $('.ls-wp-container').on('slideTimelineDidStart', function( event, slider ) { 13601 13602 var slideData = slider.slides.current.data, 13603 scrolltop = $(document).scrollTop(); 13604 if( slideData && slideData.skin ) { 13605 13606 UNCODE.switchColorsMenu(scrolltop, slideData.skin); 13607 13608 } 13609 }); 13610 13611 }); 13612}; 13613 13614UNCODE.ajax_filters = function () { 13615 var isAjaxing = false;
13616 13617/************************* 13618 * 13619 * Filters Menu and Widgets Area 13620 * 13621 ************************/ 13622 13623 var clear_clicked = false; 13624 13625 var init_ajax_grid = function(){ 13626 13627 var $grids = $('.ajax-grid-system:not(.init-ajax-grid)'); 13628 $grids.each(function(index, val){ 13629 var $body = $('body'), 13630 $grid = $(val).addClass('init-ajax-grid'), 13631 starting_point = $grid.attr('data-toggle'), 13632 $trigger = $('.uncode-toggle-ajax-filters', $grid), 13633 $sidebar_wrapper = $('.ajax-filter-sidebar-wrapper', $grid), 13634 $isotope_wrapper = $('.isotope-wrapper', $grid), 13635 $sidebar = $('.ajax-filter-sidebar', $sidebar_wrapper), 13636 $sorting_trgr = $('.uncode-woocommerce-sorting__link', $grid), 13637 $footprint = $('.ajax-filter-footprint', $grid), 13638 sidebar_w, 13639 data_w = parseFloat( $sidebar.attr('data-max-width') ), 13640 $firstCol = $grid.closest('.uncol.style-light, .uncol.style-dark'), 13641 skin = $firstCol.hasClass('style-light') ? 'style-light' : 'style-dark', 13642 $positioned_top = $('.ajax-filter-position-horizontal', $grid), 13643 overlay_desktop = $('.ajax-filter-position-left-overlay, .ajax-filter-position-right-overlay', $grid).length, 13644 $close_btn = $('.close-ajax-filter-sidebar', $sidebar_wrapper), 13645 $vc_row = $('.vc_row', $sidebar_wrapper).eq(0), 13646 sidew, 13647 $inside_row = $('> .row-parent', $vc_row), 13648 bg_row, 13649 $side_header = $('.ajax-filter-sidebar-header', $sidebar_wrapper), 13650 $side_footer = $('.ajax-filter-sidebar-footer', $sidebar_wrapper), 13651 $apply_filters = $('.ajax-filter-sidebar__button', $side_footer), 13652 sidebar_overlay = false, 13653 sidebar_hover = false, 13654 switchMobile = false, 13655 scrollTop; 13656 13657 if ( $vc_row.attr('class') ) { 13658 bg_row = $vc_row.attr('class').match(/style-color-([^-]+)-bg/); 13659 } 13660 13661 if ( bg_row != null ) { 13662 $side_header.add($side_footer).addClass(bg_row[0]); 13663 } 13664 13665 $trigger.add($apply_filters).on('click', function(e){ 13666 e.preventDefault(); 13667 e.stopPropagation(); 13668 $grid = $('.ajax-grid-system').eq(0); 13669 $positioned_top = $('.ajax-filter-position-horizontal', $grid); 13670 overlay_desktop = $('.ajax-filter-position-left-overlay, .ajax-filter-position-right-overlay', $grid).length, 13671 $sidebar_wrapper = $('.ajax-filter-sidebar-wrapper').eq(0); 13672 sidebar_w = $sidebar_wrapper.width(); 13673 $sidebar = $('.ajax-filter-sidebar', $sidebar_wrapper); 13674 if ($(this).hasClass('ajax-filter-sidebar__button--clear')) { 13675 $(this).trigger('uncode-ajax-clear-filters'); 13676 } 13677 if ( $positioned_top.length && UNCODE.wwidth >= UNCODE.mediaQuery ) { 13678 $grid.toggleClass('ajax-hide-filters-blanks'); 13679 $sidebar.slideToggle({ 13680 duration: 400, 13681 easing: 'easeOutQuad', 13682 }); 13683 } else { 13684 $grid.removeClass('ajax-hide-filters-blanks'); 13685 $grid.toggleClass('ajax-hide-filters'); 13686 if ( $grid.hasClass('ajax-hide-filters') ) { 13687 $body.addClass('ajax-hide-filters'); 13688 } else { 13689 scrollTop = $('html, body').scrollTop(); 13690 $body.removeClass('ajax-hide-filters'); 13691 } 13692 } 13693 if ( overlay_desktop || UNCODE.wwidth < UNCODE.mediaQuery ) { 13694 $('html, body').scrollTop(scrollTop); 13695 } 13696 return false; 13697 }); 13698 13699 $close_btn.on('click', function(e){ 13700 e.preventDefault(); 13701 $grid = $('.ajax-grid-system').eq(0); 13702 $grid.addClass('ajax-hide-filters'); 13703 if ( $grid.hasClass('ajax-hide-filters') ) { 13704 $body.addClass('ajax-hide-filters'); 13705 } else { 13706 scrollTop = $('html, body').scrollTop(); 13707 $body.removeClass('ajax-hide-filters'); 13708 } 13709 $('html, body').scrollTop(scrollTop); 13710 }); 13711 13712 $sidebar_wrapper.on('mouseover',function(){ 13713 sidebar_hover = true; 13714 }).on('mouseout', function(){ 13715 sidebar_hover = false; 13716 }); 13717 13718 $body.off('click.ajax-filter-sidebar').on('click.ajax-filter-sidebar', function( e, from ){ 13719 if ( $(e.target).closest('.ajax-filter-sidebar').length ) { 13720 return; 13721 } 13722 if (undefined !== from && from === 'select_active_attributes') { 13723 return; 13724 } 13725 if ($(e.target).closest('.select2-container--open').length ) { 13726 return; 13727 } 13728 if ( ! $body.hasClass('ajax-hide-filters') && !sidebar_hover && $body.hasClass('ajax-filter-sidebar-overlay') ) { 13729 $grid.add($body).addClass('ajax-hide-filters'); 13730 } 13731 }); 13732 13733 $sorting_trgr.on('click', function(e) { 13734 e.preventDefault(); 13735 }); 13736 13737 var inside_width = function(){ 13738 $sidebar_wrapper = $('.ajax-filter-sidebar-wrapper').eq(0); 13739 $sidebar = $('.ajax-filter-sidebar', $sidebar_wrapper); 13740 $vc_row = $('.vc_row', $sidebar_wrapper).eq(0); 13741 $inside_row = $('> .row-parent', $vc_row); 13742 if ( ( UNCODE.wwidth < UNCODE.mediaQuery ) || overlay_desktop ) { 13743 sidew = $sidebar.width(); 13744 $inside_row.css({ 13745 width: sidew 13746 }); 13747 } else { 13748 $inside_row.css({ 13749 width: '' 13750 }); 13751 } 13752 }; 13753 inside_width(); 13754 13755 var ajax_sidebar_position = function(e, f_editor){ 13756 $grid = $('.ajax-grid-system').eq(0); 13757 $sidebar_wrapper = $('.ajax-filter-sidebar-wrapper').eq(0); 13758 $positioned_top = $('.ajax-filter-position-horizontal', $grid); 13759 $sidebar = $('.ajax-filter-sidebar', $sidebar_wrapper); 13760 $vc_row = $('.vc_row', $sidebar_wrapper).eq(0); 13761 $inside_row = $('> .row-parent', $vc_row); 13762 scrollTop = $('html, body').scrollTop(); 13763 if ( f_editor !== true && ( ( UNCODE.wwidth < UNCODE.mediaQuery) || overlay_desktop ) ) { 13764 if ( switchMobile !== true ) { 13765 $grid.add($body).addClass('ajax-hide-filters'); 13766 $sidebar_wrapper.after('<span class="ajax-sidebar-placeholder" />'); 13767 $body.append($sidebar_wrapper.addClass('main-container ajax-filter-sidebar--offcanvas'));
13768 sidebar_overlay = true; 13769 $body.addClass('ajax-filter-sidebar-overlay'); 13770 $sidebar_wrapper.addClass(skin); 13771 var sideHeadH = $side_header.outerHeight(), 13772 sideFooterH = $side_footer.outerHeight(); 13773 if ( data_w !== '' && data_w > 0 ) { 13774 if ( UNCODE.wwidth >= UNCODE.mediaQuery ) { 13775 $sidebar.css({ 13776 'max-width': data_w 13777 }); 13778 } else { 13779 $sidebar.css({ 13780 'max-width':'none' 13781 }); 13782 } 13783 } 13784 $vc_row.css({ 13785 'padding-top':sideHeadH, 13786 'padding-bottom':sideFooterH 13787 }).attr('data-lenis-prevent', true); 13788 var sidew = $sidebar.width(); 13789 $inside_row.css({ 13790 width: sidew 13791 }); 13792 switchMobile = true; 13793 } 13794 } else { 13795 if ( ( typeof e !== 'undefined' && e.type === 'wwResize' && starting_point === 'hidden' ) || f_editor === true ) { 13796 scrollTop = $('html, body').scrollTop(); 13797 $grid.add($body).removeClass('ajax-hide-filters'); 13798 } 13799 if ( typeof e !== 'undefined' && e.type === 'wwResize' && $positioned_top.length && UNCODE.wwidth < UNCODE.mediaQuery ) { 13800 $grid.addClass('ajax-hide-filters-blanks'); 13801 $sidebar.hide(); 13802 } 13803 $('.ajax-sidebar-placeholder', $grid).after($sidebar_wrapper.removeClass('main-container ajax-filter-sidebar--offcanvas')); 13804 $('.ajax-sidebar-placeholder', $grid).remove(); 13805 sidebar_overlay = false; 13806 $body.removeClass('ajax-filter-sidebar-overlay'); 13807 $sidebar_wrapper.removeClass(skin); 13808 if ( data_w !== '' && data_w > 0 ) { 13809 $sidebar.css({ 13810 'max-width':'none' 13811 }); 13812 } 13813 $vc_row.css({ 13814 'padding-top':0, 13815 'padding-bottom':0, 13816 }).removeAttr('data-lenis-prevent'); 13817 13818 $inside_row.css({ 13819 width: '' 13820 }); 13821 13822 if ( f_editor === true ) { 13823 UNCODE.ajax_filters(); 13824 } 13825 13826 switchMobile = false; 13827 } 13828 if ( overlay_desktop || UNCODE.wwidth < UNCODE.mediaQuery ) { 13829 $('html, body').scrollTop(scrollTop); 13830 } 13831 }; 13832 13833 var sidebar_width = function(){ 13834 if ( ! $body.hasClass('ajax-filter-sidebar-overlay') && ! $positioned_top.length && UNCODE.wwidth >= UNCODE.mediaQuery ) { 13835 sidebar_w = $footprint.width(); 13836 $sidebar.css({ width: sidebar_w }); 13837 } else { 13838 $sidebar.css({ width: '' }); 13839 } 13840 }; 13841 sidebar_width(); 13842 13843 if ( SiteParameters.is_frontend_editor ) { 13844 ajax_sidebar_position(); 13845 } 13846 13847 $(window).off('load.ajax_filters wwResize.ajax_filters').on('load.ajax_filters wwResize.ajax_filters', function(e){ 13848 if ( ! SiteParameters.is_frontend_editor || e.type === 'wwResize' ) { 13849 ajax_sidebar_position(e); 13850 } 13851 sidebar_width(); 13852 }); 13853 13854 $(window).off('uncode.ajax_filters').one('uncode.ajax_filters', function(e){ 13855 ajax_sidebar_position(e, true); 13856 }); 13857 13858 $isotope_wrapper.on('transitionend', function(e){ 13859 if ( $(e.target).hasClass('isotope-wrapper') ) { 13860 window.dispatchEvent(new CustomEvent('boxResized')); 13861 } 13862 return false; 13863 }); 13864 13865 if ( UNCODE.wwidth < UNCODE.mediaQuery && $body.hasClass('ajax-hide-filters') ) { 13866 var $grid = $('.ajax-grid-system').eq(0); 13867 $grid.addClass('ajax-hide-filters'); 13868 } 13869 13870 }); 13871 }; 13872 13873 init_ajax_grid(); 13874 $(document).on('uncode-ajax-filtered', init_ajax_grid); 13875 13876/************************* 13877 * 13878 * Hover hack 13879 * 13880 ************************/ 13881 var widget_hover_hack = function() { 13882 $('.widget, .uncode_widget').each(function(){ 13883 var $widget = $(this), 13884 class_w = $widget.attr('class'), 13885 $lis = $('ul:not(.menu-horizontal) > li', $widget).has('a'), 13886 $footer = $widget.closest('#colophon'); 13887 13888 if ( class_w.indexOf('widget_yith') > 0 ) { 13889 return true; 13890 } 13891 13892 $lis.each(function(){ 13893 var $li = $(this), 13894 $a = $('a', $li), 13895 $label = $a.closest('label'); 13896 13897 if ( !$footer.length ) { 13898 $li.addClass('no-evts'); 13899 } 13900 13901 if ( ! $('span', $a).length ) { 13902 $li.addClass( 'li-hover' ); 13903 } 13904 13905 $('li', $li).hover(function(e){ 13906 $(e.target).parents('li').each(function(){ 13907 $(this).addClass( 'parent-li-hover' ); 13908 }); 13909 }, function (e) { 13910 $(e.target).parents('li').each(function(key, val){ 13911 if ( key === 0) { 13912 $(val).removeClass( 'parent-li-hover' ); 13913 } 13914 }); 13915 }); 13916 13917 $li.off('mouseup').on('mouseup', function (e) { 13918 if (e.which !== 3) { 13919 e.stopPropagation(); 13920 var $a = $('a', this).first(); 13921 $a[0].click(); 13922 } 13923 }); 13924 }); 13925 }); 13926 } 13927 13928 var ajax_filters_button_mode = $('body').hasClass('ajax-filters-button-mode'); 13929 13930 if (!ajax_filters_button_mode && SiteParameters.disable_hover_hack !== '1') { 13931 widget_hover_hack(); 13932 $(document).on('uncode-ajax-filtered', widget_hover_hack); 13933 } 13934 13935/************************* 13936 * 13937 * Init Filters 13938 * 13939 ************************/ 13940 13941 function init_filters() { 13942 $(document).on('click', '.term-filter-link', function(e) { 13943 var _this = $(this); 13944 var widget = _this.closest('.uncode_widget'); 13945 var container = get_filters_container(); 13946 13947 if (widget.hasClass('widget-ajax-filters--no-ajax')) { 13948 return true; 13949 } 13950 13951 e.preventDefault(); 13952 13953 if (widget.hasClass('widget-ajax-filters--checkbox')) { 13954 _this.parent().find('input[type="checkbox"]').trigger('click'); 13955 } else { 13956 if (_this.hasClass('term-filter-link--active')) { 13957 _this.removeClass('term-filter-link--active'); 13958 } else { 13959 _this.addClass('term-filter-link--active'); 13960 13961 if (widget.hasClass('widget-ajax-filters--single')) { 13962 widget.find('.term-filter-link').not(_this).removeClass('term-filter-link--active'); 13963 } 13964 } 13965 13966 if (!ajax_filters_button_mode) { 13967 var url = _this.attr('href'); 13968 13969 reload_items(container, url, true); 13970 } 13971 } 13972 }); 13973 13974 $(document).on('click', '.term-filter input[type="checkbox"]', function(e) { 13975 var _this = $(this); 13976 var widget = _this.closest('.uncode_widget'); 13977 var link = _this.closest('.term-filter').find('.term-filter-link'); 13978 var url = link.attr('href'); 13979 var container = get_filters_container(); 13980 13981 if (!ajax_filters_button_mode && widget.hasClass('widget-ajax-filters--no-ajax')) { 13982 window.location = url; 13983 return; 13984 } 13985 13986 if (widget.hasClass('widget-ajax-filters--single')) { 13987 widget.find('input[type="checkbox"]').each(function() { 13988 if (_this.attr('id') !== $(this).attr('id')) { 13989 $(this).prop('checked', false); 13990 $(this).closest('.term-filter').find('.term-filter-link').removeClass('term-filter-link--active'); 13991 } 13992 }); 13993 } 13994 13995 if (_this.prop('checked')) { 13996 link.addClass('term-filter-link--active'); 13997 } else { 13998 link.removeClass('term-filter-link--active'); 13999 } 14000 14001 if (!ajax_filters_button_mode) { 14002 reload_items(container, url, true); 14003 } 14004 }); 14005 14006 $(document).on('change', 'select.select--term-filters', function(e) { 14007 var _this = $(this); 14008 var selected = _this.find('option:selected'); 14009 var option = $(selected); 14010 var url = option.attr('data-term-filter-url'); 14011 var container = get_filters_container(); 14012 var widget = _this.closest('.uncode_widget'); 14013 14014 if (!ajax_filters_button_mode) { 14015 if (widget.hasClass('widget-ajax-filters--no-ajax')) { 14016 window.location = url; 14017 } else { 14018 reload_items(container, url, true); 14019 } 14020 } 14021 }); 14022 14023 $(document).on('click', '.filter-list__link', function(e) { 14024 if (SiteParameters.is_frontend_editor) { 14025 return false;
14026 } 14027 14028 e.preventDefault(); 14029 14030 var _this = $(this); 14031 var container = get_filters_container(); 14032 var url = _this.attr('href'); 14033 reload_items(container, url, true); 14034 }); 14035 14036 $('.ajax-filter-sidebar__button--clear').on('uncode-ajax-clear-filters', function(e) { 14037 var _this = $(this); 14038 var container = get_filters_container(); 14039 var url = _this.attr('href'); 14040 reload_items(container, url, true); 14041 }); 14042 14043 $(document).on('click', '.uncode-woocommerce-sorting-dropdown__link', function(e) { 14044 14045 var _this = $(this); 14046 var container = get_filters_container(); 14047 var url = _this.attr('href'); 14048 14049 if ( container.length ) { 14050 e.preventDefault(); 14051 reload_items(container, url, true); 14052 } 14053 }); 14054 14055 $(document).on('click', '.uncode_woocommerce_widget--price-filter .button', function(e) { 14056 var _this = $(this); 14057 var container = get_filters_container(); 14058 14059 if (container.length > 0) { 14060 e.preventDefault(); 14061 14062 var min_price = $('#min_price').val(); 14063 var max_price = $('#max_price').val(); 14064 var location = window.location; 14065 var url = location.href; 14066 var page_uri = location.origin + location.pathname; 14067 var is_filtered = page_uri !== url; 14068 14069 if (is_filtered) { 14070 url = remove_parameter_from_url(url, 'min_price'); 14071 url = remove_parameter_from_url(url, 'max_price'); 14072 } 14073 14074 var concat = page_uri === url ? '?' : '&'; 14075 var params = {'min_price': min_price, 'max_price': max_price}; 14076 14077 url = url + concat + $.param(params); 14078 14079 reload_items(container, url, true); 14080 } 14081 }); 14082 14083 if (!ajax_filters_button_mode && !window._uncode_search_bound) { 14084 window._uncode_search_bound = true; 14085 var search_timeout = parseInt(SiteParameters.ajax_filter_search_timeout, 10); 14086 14087 $(document).on('input', '.term-filters-search-input', function () { 14088 var _this = $(this); 14089 var container = get_filters_container(); 14090 var value = _this.val(); 14091 14092 if (window._uncode_search_timer) { 14093 clearTimeout(window._uncode_search_timer); 14094 } 14095 14096 window._uncode_search_timer = setTimeout(function () { 14097 update_search_url(container, value); 14098 }, search_timeout); 14099 }); 14100 } 14101 14102 $(document).on('click', '.btn-ajax-filters-trigger', function (e) { 14103 var container = get_filters_container(); 14104 14105 if (container.length) { 14106 e.preventDefault(); 14107 var paramMap = {}; 14108 14109 $('.term-filter-link--active').each(function () { 14110 collect_from_query(paramMap, this.href.split('?')[1] || ''); 14111 }); 14112 14113 $('.select--term-filters').each(function () { 14114 var select = $(this); 14115 var val = select.val(); 14116 14117 if (!val) { 14118 return 14119 }; 14120 14121 var selected_option = select.find('option:selected'); 14122 var qUrl = selected_option.data('term-filter-url') || ''; 14123 14124 collect_from_query(paramMap, qUrl.split('?')[1] || ''); 14125 }); 14126 14127 var search = $('.term-filters-search-input'); 14128 14129 if (search.length > 0) { 14130 var search_value = search.val().trim(); 14131 if (search_value) { 14132 paramMap[SiteParameters.ajax_filter_key_search] = {}; 14133 paramMap[SiteParameters.ajax_filter_key_search][search_value] = 1; 14134 } 14135 } 14136 14137 var qsParts = []; 14138 $.each(paramMap, function (key, valSet) { 14139 var vals = Object.keys(valSet); 14140 qsParts.push(key + '=' + vals.join(',')); 14141 }); 14142 14143 var final_url = window.location.origin + window.location.pathname; 14144 14145 if (qsParts.length > 0) { 14146 qsParts.push('unfilter=1'); 14147 14148 var qs = qsParts.join('&'); 14149 final_url = '?' + qs; 14150 } 14151 14152 reload_items(container, final_url, true); 14153 } 14154 }); 14155 } 14156 14157 function collect_from_query(paramMap, query) { 14158 $.each(query.split('&'), function (_, pair) { 14159 if (!pair) { 14160 return 14161 }; 14162 14163 var kv = pair.split('='); 14164 var key = kv[0]; 14165 var val = kv[1] || ''; 14166 14167 if (key === 'unfilter') { 14168 return; 14169 } 14170 if (!paramMap[key]) { 14171 paramMap[key] = {} 14172 }; 14173 14174 paramMap[key][val] = 1; 14175 }); 14176 } 14177 14178 function update_search_url(container, search_value) { 14179 var location = window.location; 14180 var url = location.href; 14181 var page_uri = location.origin + location.pathname; 14182 var is_filtered = page_uri !== url; 14183 var key_search = SiteParameters.ajax_filter_key_search; 14184 var key_unfilter = SiteParameters.ajax_filter_key_unfilter; 14185 14186 if (is_filtered) { 14187 url = remove_parameter_from_url(url, key_search); 14188 url = remove_parameter_from_url(url, key_unfilter); 14189 } 14190 14191 if (search_value) { 14192 var concat = page_uri === url ? '?' : '&'; 14193 var params = {}; 14194 14195 params[key_search] = search_value; 14196 params[key_unfilter] = 1; 14197 url = url + concat + $.param(params); 14198 } else { 14199 url = remove_parameter_from_url(url, key_search); 14200 } 14201 14202 reload_items(container, url, true); 14203 } 14204 14205 function remove_parameter_from_url(url, parameter) { 14206 return url.replace(new RegExp('[?&]' + parameter + '=[^&#]*(#.*)?$'), '$1').replace(new RegExp('([?&])' + parameter + '=[^&]*&'), '$1'); 14207 } 14208 14209 function get_filters_container() { 14210 var container = $('.ajax-grid-system'); 14211 14212 if (container.length == 0) { 14213 container = $('.ajax-filters'); 14214 } 14215 14216 if (container.length == 0) { 14217 container = $('.ajax-filters-target'); 14218 } 14219 14220 return container; 14221 } 14222 14223 function update_widgets_state(widgets_states, container) { 14224 for (var i = widgets_states.length - 1; i >= 0; i--) { 14225 var state = widgets_states[i]; 14226 14227 if (!state.collapse) { 14228 continue; 14229 } 14230 14231 var new_widget = container.find('.uncode_widget[data-id="' + state.id + '"'); 14232 14233 if (state.open) { 14234 new_widget.find('.widget-title').addClass('open'); 14235 if (state.css) { 14236 new_widget.find('.widget-collapse-content').attr('style', state.css); 14237 } 14238 } else { 14239 new_widget.find('.widget-title').removeClass('open'); 14240 if (state.css) { 14241 new_widget.find('.widget-collapse-content').attr('style', state.css); 14242 } 14243 } 14244 } 14245 } 14246 14247 // Find filters container 14248 function find_filters_container(context) { 14249 const widget = context.find('.widget-ajax-filters'); 14250 14251 // Try first: closest .ajax-filters-sidebar 14252 const sidebar = widget.closest('.ajax-filters-sidebar'); 14253 if (sidebar.length) { 14254 return sidebar.find('.uncol').last(); 14255 } 14256 14257 // Fallback: closest .row-parent 14258 const rowParent = widget.closest('.row-parent'); 14259 if (rowParent.length) { 14260 return rowParent.find('.uncol').last(); 14261 } 14262 14263 return $(); 14264 } 14265 14266 // Reload items via AJAX 14267 function reload_items(container, url, push) { 14268 if (isAjaxing) { 14269 return 14270 }; 14271 14272 isAjaxing = true; 14273
14274 container.addClass('grid-filtering'); 14275 14276 $.ajax({ 14277 url : url, 14278 success : function(response) { 14279 if (!response) { 14280 return; 14281 } 14282 14283 $(document).trigger('uncode-ajax-pre-filtered'); 14284 14285 var container_id = container.attr('id'); 14286 var pagination = $('.row-navigation'); 14287 var filters_container; 14288 14289 var isTargetFilterMode = container.hasClass('ajax-filters-target'); 14290 14291 if (isTargetFilterMode) { 14292 filters_container = find_filters_container($(document)); 14293 } 14294 14295 if (container_id) { 14296 var container_to_append = $(response).find('#' + container_id); 14297 var pagination_to_append = $(response).find('.row-navigation'); 14298 var filters_to_append; 14299 var offcanvas_sidebar_wrapper = $('.ajax-filter-sidebar--offcanvas'); 14300 14301 if (isTargetFilterMode) { 14302 filters_to_append = find_filters_container($(response)); 14303 } 14304 14305 // Remember open/closed widgets 14306 var widgets = $('.uncode_widget'); 14307 var widgets_container = widgets.closest('.ajax-filter-sidebar--offcanvas').length > 0 ? $('.ajax-filter-sidebar--offcanvas') : container_to_append; 14308 var widgets_states = []; 14309 14310 widgets.each(function() { 14311 var widget = $(this); 14312 var id = widget.attr('data-id'); 14313 var state = { 14314 'id': id, 14315 'collapse': false, 14316 'open': false, 14317 'css': false, 14318 }; 14319 14320 var collapse_wrapper = widget.find('.widget-collapse-content'); 14321 14322 if (collapse_wrapper.length > 0) { 14323 state.collapse = true; 14324 14325 var collapse_wrapper_css = collapse_wrapper.attr('style'); 14326 var title = widget.find('.widget-title'); 14327 14328 state.css = collapse_wrapper_css; 14329 14330 if (title.hasClass('open')) { 14331 state.open = true; 14332 } else { 14333 state.open = false; 14334 } 14335 } 14336 14337 widgets_states.push(state); 14338 }); 14339 14340 // Update widgets state when it is not in target mode 14341 if (! isTargetFilterMode && offcanvas_sidebar_wrapper.length === 0) { 14342 update_widgets_state(widgets_states, container_to_append); 14343 } 14344 14345 // Update default sidebar state 14346 if (!container.hasClass('ajax-hide-filters')) { 14347 container_to_append.removeClass('ajax-hide-filters'); 14348 } 14349 14350 // Update horizontal sidebar 14351 if (!container.hasClass('ajax-hide-filters-blanks')) { 14352 container_to_append.removeClass('ajax-hide-filters-blanks'); 14353 } 14354 var horizontal_sidebar_wrapper = $('.ajax-filter-position-horizontal'); 14355 if (horizontal_sidebar_wrapper.length > 0) { 14356 var horizontal_sidebar_wrapper = horizontal_sidebar_wrapper.find('.ajax-filter-sidebar'); 14357 var horizontal_sidebar_wrapper_style = horizontal_sidebar_wrapper.attr('style'); 14358 var horizontal_sidebar_row = horizontal_sidebar_wrapper.find('.ajax-filter-sidebar-body .vc_row').eq(0); 14359 var horizontal_sidebar_row_style = horizontal_sidebar_row.attr('style'); 14360 14361 container_to_append.find('.ajax-filter-position-horizontal .ajax-filter-sidebar').attr('style', horizontal_sidebar_wrapper_style); 14362 container_to_append.find('.ajax-filter-position-horizontal .ajax-filter-sidebar-body .vc_row').eq(0).attr('style', horizontal_sidebar_row_style); 14363 } 14364 14365 // Append container 14366 container.replaceWith(container_to_append); 14367 14368 // Hide first thumbnail until the new srcset is loaded 14369 if (SiteParameters.dynamic_srcset_active === '1') { 14370 container_to_append.find('.tmb-woocommerce-variable-product').addClass('srcset-lazy-animations'); 14371 } 14372 14373 // Remove loading attribute to images 14374 container_to_append.find('img').attr('loading', ''); 14375 14376 // Append pagination 14377 if (pagination.length > 0) { 14378 if (pagination_to_append.length > 0) { 14379 pagination.html(pagination_to_append.html()); 14380 } else { 14381 pagination.html(''); 14382 } 14383 } else { 14384 if (pagination_to_append.length > 0) { 14385 $('.post-wrapper').append(pagination_to_append); 14386 } 14387 } 14388 14389 // Append filters 14390 if (isTargetFilterMode && filters_container.length > 0) { 14391 filters_container.html(filters_to_append.html()); 14392 } 14393 14394 // Update widgets state when it is in target mode 14395 if (isTargetFilterMode && filters_container.length > 0) { 14396 update_widgets_state(widgets_states, filters_container); 14397 } 14398 14399 // Update off canvas sidebar (mobile and overlay) 14400 var offcanvas_sidebar_wrapper = $('.ajax-filter-sidebar--offcanvas'); 14401 14402 if (offcanvas_sidebar_wrapper.length > 0 || UNCODE.wwidth < UNCODE.mediaQuery) { 14403 var sidebar_container = offcanvas_sidebar_wrapper.find('.vc_row').eq(0); 14404 var sidebar_to_append = $(response).find('.ajax-filter-sidebar-body').find('.vc_row').eq(0); 14405 container_to_append.find('.ajax-filter-sidebar-wrapper').after('<span class="ajax-sidebar-placeholder" />'); 14406 container_to_append.find('.ajax-filter-sidebar-wrapper').remove(); 14407 14408 // Update widgets state 14409 update_widgets_state(widgets_states, sidebar_to_append); 14410 14411 // Update sidebar 14412 sidebar_container.html(sidebar_to_append.html()); 14413 } 14414 14415 if (push) { 14416 UNCODE.lastURL = url; 14417 window.history.pushState( 14418 { pageTitle: document.title }, 14419 '', 14420 url 14421 ); 14422 } 14423 14424 if (typeof UNCODE.isotopeLayout !== 'undefined') { 14425 UNCODE.isotopeLayout(); 14426 } 14427 if (typeof UNCODE.justifiedGallery !== 'undefined') { 14428 UNCODE.justifiedGallery(); 14429 } 14430 if (typeof UNCODE.cssGrid !== 'undefined') { 14431 UNCODE.cssGrid(); 14432 } 14433 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 14434 UNCODE.lightbox(); 14435 } 14436 if (typeof UNCODE.lightgallery !== 'undefined' && SiteParameters.lbox_enhanced) { 14437 UNCODE.lightgallery(); 14438 } 14439 if (typeof UNCODE.carousel !== 'undefined') { 14440 UNCODE.carousel($('body')); 14441 } 14442 UNCODE.animations(); 14443 if (typeof UNCODE.filters !== 'undefined') { 14444 UNCODE.filters(); 14445 } 14446 if (typeof UNCODE.widgets !== 'undefined' && !(isTargetFilterMode && filters_container.length > 0)) { 14447 UNCODE.widgets(); 14448 } 14449
14450 if (SiteParameters.dynamic_srcset_active === '1') { 14451 UNCODE.refresh_dynamic_srcset_size(); 14452 } 14453 14454 if (typeof UNCODE.menuSmartInit !== 'undefined') { 14455 UNCODE.menuSmartInit(); 14456 } 14457 14458 if (typeof UNCODE.parallax !== 'undefined') { 14459 UNCODE.parallax(); 14460 } 14461 14462 maybe_scroll_to_top(); 14463 14464 var woo_select2_cats = $('.dropdown_product_cat'); 14465 14466 if (woo_select2_cats.length > 0) { 14467 woo_select2_cats.on( 'change', function() { 14468 if ( $(this).val() != '' ) { 14469 var this_page = ''; 14470 var home_url = UncodeWCParameters.uncode_wc_widget_product_categories_home_url; 14471 if ( home_url.indexOf( '?' ) > 0 ) { 14472 this_page = home_url + '&product_cat=' + $(this).val(); 14473 } else { 14474 this_page = home_url + '?product_cat=' + $(this).val(); 14475 } 14476 location.href = this_page; 14477 } else { 14478 location.href = UncodeWCParameters.uncode_wc_widget_product_categories_shop_url; 14479 } 14480 }); 14481 14482 if ( $().selectWoo ) { 14483 var wc_product_cat_select = function() { 14484 woo_select2_cats.selectWoo( { 14485 placeholder: UncodeWCParameters.uncode_wc_widget_product_categories_placeholder, 14486 minimumResultsForSearch: 5, 14487 width: '100%', 14488 allowClear: true, 14489 language: { 14490 noResults: function() { 14491 return UncodeWCParameters.uncode_wc_widget_product_categories_no_results; 14492 } 14493 } 14494 } ); 14495 }; 14496 wc_product_cat_select(); 14497 } 14498 } 14499 14500 $(document).trigger('uncode-ajax-filtered'); 14501 $(document.body).trigger('init_price_filter'); 14502 window.dispatchEvent(new CustomEvent('uncode-ajax-filtered')); 14503 window.document.dispatchEvent(new Event("DOMContentLoaded", { 14504 bubbles: true, 14505 cancelable: true 14506 })); 14507 14508 isAjaxing = false; 14509 } 14510 }, 14511 error: function() { 14512 container.removeClass('grid-filtering'); 14513 14514 isAjaxing = false; 14515 14516 if (SiteParameters.enable_debug == true) { 14517 // This console log is disabled by default 14518 // So nothing is printed in a typical installation 14519 // 14520 // It can be enabled for debugging purposes setting 14521 // the 'uncode_enable_debug_on_js_scripts' filter to true 14522 console.log('There was an error retrieving the products'); 14523 } 14524 } 14525 }); 14526 } 14527 14528 // Scroll to top after filtering 14529 function maybe_scroll_to_top() { 14530 var offcanvas_sidebar_wrapper = $('.ajax-filter-sidebar--offcanvas'); 14531 14532 if (offcanvas_sidebar_wrapper.length > 0) { 14533 return; 14534 } 14535 14536 var container = get_filters_container(); 14537 var bound = container[0].getBoundingClientRect(); 14538 14539 if (bound.y < 0) { 14540 $(window).scrollTop(container.offset().top); 14541 } 14542 } 14543 14544 // Back/forward browser buttons 14545 $(window).on("popstate.ajaxfilters", function(e) { 14546 var location = window.location; 14547 var url = location.href; 14548 var params = UNCODE.getURLParams(window.location); 14549 var old_params = UNCODE.getURLParams(UNCODE.lastURL, true); 14550 14551 UNCODE.lastURL = url; 14552 14553 if (UNCODE.hasEqualURLParams(params, old_params) || ($.isEmptyObject(params) && $.isEmptyObject(old_params)) || params.form !== undefined) { 14554 return; 14555 } 14556 14557 var container = get_filters_container(); 14558 14559 reload_items(container, url, false); 14560 }); 14561 14562 // Destroy load more before to init a new one 14563 $(window).on('uncode-ajax-pre-filtered', function() { 14564 if ($.fn.infinitescroll) { 14565 $('.cssgrid-infinite, .isotope-infinite').infinitescroll('destroy'); 14566 } 14567 }); 14568 14569 init_filters(); 14570}; 14571 14572UNCODE.videoThumbs = function() { 14573 var checkResize, 14574 newW = UNCODE.wwidth; 14575 var checkForVideos = function(){ 14576 14577 $(window).on('okevents.y.change', function(e, y){ 14578 var $video = $(y.target.g), 14579 $video_wrap = $video.closest('.fluid-object.is-no-control.play-on-hover'), 14580 $mobile_video_wrap = $video.closest('.fluid-object.is-no-control.no-control-mobile-autoplay'), 14581 restart = !$video_wrap.hasClass('play-pause'), 14582 $tmb = $video.closest('.tmb-all-hover.tmb-content-under').length ? $video.closest('.t-inside') : $video.closest('.t-entry-visual, .un-inline-image'), 14583 setTime; 14584 if ( newW >= UNCODE.mediaQuery ) { 14585 14586 if( $video_wrap.length && $video_wrap.data('hovered') !== true ) { 14587 $video_wrap.data('hovered', true); 14588 $video_wrap.addClass('played-on'); 14589 y.target.pauseVideo(); 14590 $tmb.on('mouseenter', function(){ 14591 if ( restart ) { 14592 y.target.seekTo(0); 14593 } 14594 y.target.playVideo(); 14595 }).on('mouseleave', function(){ 14596 clearTimeout(setTime); 14597 setTime = setTimeout(function(){ 14598 y.target.pauseVideo(); 14599 }, 300); 14600 }); 14601 } 14602 14603 } else { 14604 if( $mobile_video_wrap.length ) { 14605 $video_wrap.addClass('played-on'); 14606 y.target.playVideo(); 14607 } 14608 } 14609 14610 }); 14611 14612 $(window).on('okevents.v.loaded', function(e, playerV){ 14613 var $video = $(playerV.element), 14614 $video_wrap = $video.closest('.fluid-object.is-no-control.play-on-hover'), 14615 $mobile_video_wrap = $video.closest('.fluid-object.is-no-control.no-control-mobile-autoplay'), 14616 restart = !$video_wrap.hasClass('play-pause'), 14617 $tmb = $video.closest('.tmb-all-hover.tmb-content-under').length ? $video.closest('.t-inside')
14617: $video.closest('.t-entry-visual, .un-inline-image'), 14618 setTime; 14619 14620 if ( newW >= UNCODE.mediaQuery ) { 14621 14622 if( $video_wrap.length ) { 14623 14624 var playPromise = playerV.play(); 14625 if (playPromise !== undefined) { 14626 playPromise.then(function( value ) { 14627 playerV.pause(); 14628 }); 14629 } 14630 $video_wrap.addClass('played-on'); 14631 $tmb.on('mouseenter', function(){ 14632 if ( restart ) { 14633 playerV.setCurrentTime(0) 14634 } 14635 playerV.play(); 14636 }).on('mouseleave', function(){ 14637 clearTimeout(setTime); 14638 setTime = setTimeout(function(){ 14639 playerV.pause(); 14640 }, 300); 14641 }); 14642 } 14643 14644 } else { 14645 14646 if( $mobile_video_wrap.length ) { 14647 var playPromise = playerV.play(); 14648 if (playPromise !== undefined) { 14649 playPromise.then(function( value ) { 14650 playerV.play(); 14651 }); 14652 } 14653 $video_wrap.addClass('played-on'); 14654 } 14655 } 14656 }); 14657 14658 $('.fluid-object.self-video.is-no-control video').each(function(key, video){ 14659 var $video = $(video), 14660 $noscript = $('noscript', $video), 14661 $video_wrap = $video.closest('.fluid-object.is-no-control.play-on-hover'), 14662 restart = !$video_wrap.hasClass('play-pause'), 14663 $mobile_video_wrap = $video.closest('.fluid-object.is-no-control.no-control-mobile-autoplay'), 14664 $tmb = $video.closest('.tmb-all-hover.tmb-content-under').length ? $video.closest('.t-inside') : $video.closest('.t-entry-visual, .un-inline-image'), 14665 setTime, 14666 manageVideo = function(){ 14667 video.currentTime = 0; 14668 video.pause(); 14669 if ( newW >= UNCODE.mediaQuery ) { 14670 if ( $video_wrap.length ) { 14671 $video_wrap.addClass('played-on'); 14672 $tmb.on('mouseenter', function(){ 14673 if ( restart ) { 14674 video.currentTime = 0; 14675 } 14676 video.play(); 14677 }).on('mouseleave', function(){ 14678 clearTimeout(setTime); 14679 setTime = setTimeout(function(){ 14680 video.pause(); 14681 }, 300); 14682 }); 14683 } else { 14684 video.play(); 14685 } 14686 } else { 14687 if ( $mobile_video_wrap.length ) { 14688 $mobile_video_wrap.addClass('played-on'); 14689 video.play(); 14690 } 14691 } 14692 14693 }; 14694 if ( $noscript.length && newW >= UNCODE.mediaQuery ) { 14695 $noscript.each(function(key, val){ 14696 $noscript.after(val.textContent || val.innerText || val.innerHTML); 14697 $noscript.remove(); 14698 }); 14699 } 14700 14701 if (typeof MediaElement === "function") { 14702 $video.has('source[src]').mediaelementplayer({ 14703 pauseOtherPlayers: false, 14704 }); 14705 } 14706 if (video.readyState > 0) { 14707 manageVideo(); 14708 } else { 14709 window.addEventListener("pageshow", function (event) { 14710 if (event.persisted) { 14711 manageVideo(); 14712 } 14713 }); 14714 $video.on("loadedmetadata", function(_event) { 14715 manageVideo(); 14716 }); 14717 }; 14718 }); 14719 14720 }; 14721 14722 checkForVideos(); 14723 14724 var checkVideoResize = function(){ 14725 clearRequestTimeout(checkResize); 14726 checkResize = requestTimeout(function(){ 14727 if ( newW !== UNCODE.wwidth ) { 14728 checkForVideos(); 14729 newW = UNCODE.wwidth; 14730 } 14731 }, 1000); 14732 }; 14733 14734 $(window).off('resize.videos', checkVideoResize) 14735 .on( 'resize.videos', checkVideoResize); 14736 14737 $(window).off('more-items-loaded.videos', checkForVideos) 14738 .on('more-items-loaded.videos', checkForVideos); 14739 14740 $(document).off('uncode-ajax-filtered.videos', checkForVideos) 14741 .on('uncode-ajax-filtered.videos', checkForVideos); 14742 14743}; 14744UNCODE.inlineImgs = function() { 14745 var linkInlineImgs = function(){ 14746 $('.un-inline-image').each(function(){ 14747 var $img = $(this), 14748 href = $(this).attr('data-link-href'), 14749 dataImg = $img.data(); 14750 if ( dataImg != '' && href != null && href !== '' ) { 14751 var class_stra_a = 'unline-image-link'; 14752 if ( $(this).hasClass('un-inline-space-over') ) { 14753 class_stra_a += ' un-inline-space-over'; 14754 } else if ( $(this).hasClass('un-inline-space-gutter') ) { 14755 class_stra_a += ' un-inline-space-gutter'; 14756 } 14757 var str_a = '<a class="' + class_stra_a + '" '; 14758 for (var key in dataImg) { 14759 if (dataImg.hasOwnProperty(key) && key.startsWith("link")) { 14760 str_a += " " + key.slice(4).toLowerCase() + "=\"" + dataImg[key] + "\""; 14761 } 14762 } 14763 str_a += ' />'; 14764 $img.wrap(str_a); 14765 } 14766 }); 14767 }; 14768 $(window).on('load', linkInlineImgs ); 14769}; 14770UNCODE.lottie = function() { 14771 if ( SiteParameters.is_frontend_editor ) { 14772 var $lottie_wraps = $('div.uncode-lottie-wrap'); 14773 $lottie_wraps.each(function(){ 14774 var $lottie_wrap = $(this), 14775 $div_player = $('div.uncode-lottie-player', $lottie_wrap), 14776 $player_clone = $div_player.clone(), 14777 player_id = $div_player.attr('data-id'), 14778 $lottie_players = $('lottie-player', $lottie_wrap).remove(); 14779 if ( $div_player.attr('data-init') !== true && $player_clone.length ) { 14780 if ( $('#'+player_id).length ) { 14781 player_id += '_' + Math.floor(Math.random() * 10000000000000000); 14782 } 14783 $player_clone.attr('id', player_id); 14784 $player_clone = $player_clone[0].outerHTML.replace("<div", "<lottie-player").replace("</div", "</lottie-player"); 14785 $div_player.after($player_clone); 14786 $div_player.attr('data-init',true); 14787 } 14788 }); 14789 } 14790 var $players = $('.uncode-lottie-wrap lottie-player'); 14791 $players.each(function(){ 14792 var player = this, 14793 this_id = $(player).attr('id'), 14794 _player = document.getElementById(this_id), 14795 trigger = $(player).attr('data-trigger'), 14796 pFrames = $(player).attr('data-frames').split(','), 14797 srcPlayer = $(player).attr('src'); 14798 14799 _player.load(srcPlayer); 14800 14801 _player.addEventListener("ready", function() { 14802 14803 var $_shadow = _player.shadowRoot; 14804 $($_shadow).find('.error').remove(); 14805 14806 var tFrames = _player.getLottie().totalFrames / 100, 14807 pFrame_from = Math.round(tFrames * pFrames[0]), 14808 pFrame_to = Math.round( tFrames * pFrames[1] ) - 1, 14809 loop = $(player).attr('loop'), 14810 mode, 14811 actions; 14812 14813 if ( typeof trigger !== 'undefined' && typeof LottieInteractivity !== 'undefined' ) { 14814 if ( trigger === 'scroll' ) { 14815 mode = 'scroll'; 14816 actions = [ 14817 { 14818 visibility:[0, 1.0], 14819 type: "seek",
14820 frames: [pFrame_from, pFrame_to], 14821 } 14822 ]; 14823 } else if ( trigger === 'viewport') { 14824 mode = 'scroll'; 14825 actions = [ 14826 { 14827 visibility: [0.20, 1.0], 14828 frames: [pFrame_from, pFrame_to], 14829 type: loop ? "loop" : "play" 14830 } 14831 ]; 14832 } else if ( trigger === 'hover') { 14833 $(player).on('mouseenter', function(){ 14834 _player.play(); 14835 }).on('mouseleave', function(){ 14836 _player.pause(); 14837 }); 14838 if ( pFrame_from > 0 && pFrame_from < 99 ) { 14839 _player.seek(pFrame_from); 14840 _player.addEventListener("frame", function(){ 14841 if ( _player.getLottie().currentFrame >= pFrame_to ) { 14842 _player.seek(pFrame_from); 14843 } 14844 }); 14845 } 14846 } 14847 LottieInteractivity.create({
14848 player: '#' + this_id, 14849 mode: mode, 14850 actions: actions 14851 }); 14852 } else { 14853 if ( pFrame_from > 0 && pFrame_from < 99 ) { 14854 _player.seek(pFrame_from); 14855 _player.addEventListener("frame", function(){ 14856 if ( _player.getLottie().currentFrame >= pFrame_to ) { 14857 _player.seek(pFrame_from); 14858 } 14859 }); 14860 } 14861 } 14862 }); 14863 14864 $(window).on('unlottie-destroy', function(){ 14865 _player.destroy(); 14866 }); 14867 }); 14868}; 14869 14870UNCODE.animatedBgGradient = function( _el ) { 14871 14872 var ev; 14873 14874 if ( typeof _el === 'undefined' || _el === null ) { 14875 _el = document; 14876 ev = false; 14877 } else { 14878 _el = _el[0]; 14879 ev = 'shortcode:update'; 14880 } 14881 14882 var simplex = new SimplexNoise(); 14883 14884 var Uncode_BG_Animated_Gradient = function(blockOverlay, canvasWrap) { 14885 this.block = blockOverlay; 14886 this.wrap = canvasWrap; 14887 this.config(); 14888 this.checker(); 14889 this.loopRAF(); 14890 this.animLoader(); 14891 }; 14892 14893 var AnimGradient = Uncode_BG_Animated_Gradient.prototype; 14894 14895 AnimGradient.config = function() { 14896 this.canvas = document.createElement('canvas'); 14897 this.wrap.appendChild(this.canvas); 14898 this.ctx = this.canvas.getContext('2d'); 14899 this.count = 0; 14900 this.isOrientationChanged = false; 14901 this.res = UNCODE.isMobile ? 90 : 110; 14902 this.resPercent = 100/this.res; 14903 this.resAround = this.resPercent/100; 14904 this.size = typeof this.block.getAttribute('data-bg-noise-size') !== 'undefined' && this.block.getAttribute('data-bg-noise-size') !== null && this.block.getAttribute('data-bg-noise-size') !== '' ? this.block.getAttribute('data-bg-noise-size') : 1; 14905 14906 this.canvas.classList.add('uncode-bg-animated-gradient'); 14907 this.canvas.setAttribute('height', this.res); 14908 this.canvas.setAttribute('width', this.res); 14909 this.canvas.style = 'height: 100%; position: relative; width:100%;'; 14910 14911 this.imgdata = this.ctx.getImageData(0, 0, this.canvas.width, this.canvas.height); 14912 14913 this.cx = this.canvas.width/2; 14914 this.cy = this.canvas.height/2; 14915 this.data = this.imgdata.data; 14916 14917 this.opts = { 14918 col_1st: typeof this.block.getAttribute('data-bg-noise-1') !== 'undefined' && this.block.getAttribute('data-bg-noise-1') !== null && this.block.getAttribute('data-bg-noise-1') !== '' ? this.block.getAttribute('data-bg-noise-1') : false, 14919 col_2nd: typeof this.block.getAttribute('data-bg-noise-2') !== 'undefined' && this.block.getAttribute('data-bg-noise-2') !== null && this.block.getAttribute('data-bg-noise-2') !== '' ? this.block.getAttribute('data-bg-noise-2') : false, 14920 time: typeof this.block.getAttribute('data-bg-noise-speed') !== 'undefined' && this.block.getAttribute('data-bg-noise-speed') !== null && this.block.getAttribute('data-bg-noise-speed') !== '' ? parseFloat(this.block.getAttribute('data-bg-noise-speed')) : 250,//100,250,1500 14921 }; 14922 14923 this.lavaTime = 1; 14924 this.bg_colors = []; 14925 14926 if ( this.opts.col_1st === false && this.opts.col_2nd === false ) { 14927 return; 14928 } 14929 14930 if( this.opts.col_1st === this.opts.col_2nd || this.opts.col_2nd == false ) { 14931 this.singleColor = true; 14932 } 14933 14934 if( this.opts.col_1st ) { 14935 14936 var rgbColor1 = this.hexToRGB(this.opts.col_1st); 14937 14938 this.bg_colors.push({ 14939 r: rgbColor1.r, 14940 g: rgbColor1.g, 14941 b: rgbColor1.b 14942 }); 14943 } 14944 14945 if( this.opts.col_2nd ) { 14946 14947 var rgbColor2 = this.hexToRGB(this.opts.col_2nd); 14948 14949 this.bg_colors.push({ 14950 r: rgbColor2.r, 14951 g: rgbColor2.g, 14952 b: rgbColor2.b 14953 }); 14954 } 14955 14956 }; 14957 14958 AnimGradient.checker = function() { 14959 var scope = this; 14960 this.checkInViewPort(); 14961 14962 window.addEventListener('resize', function() { 14963 if(UNCODE.isMobile && !scope.isOrientationChanged) { 14964 return; 14965 } 14966 scope.ratioCalc(); 14967 }); 14968 14969 window.addEventListener("orientationchange", function() { 14970 scope.isOrientationChanged = true; 14971 }); 14972 14973 this.ratioCalc(); 14974 }; 14975 14976 AnimGradient.ratioCalc = function() { 14977 14978 var blockW = this.block.clientWidth, 14979 blockH = this.block.clientHeight; 14980 14981 if ( blockH == 0 || blockW == 0 ) 14982 return; 14983 14984 var blockRatio = blockH/blockW; 14985 14986 if(blockRatio < 1) { 14987 this.ratioParam = { 14988 x: 1.4, 14989 y: blockRatio*1.4 14990 } 14991 } else { 14992 this.ratioParam = { 14993 x: blockRatio/3, 14994 y: 1 14995 } 14996 } 14997 14998 }; 14999 15000 AnimGradient.checkInViewPort = function() { 15001 var scope = this; 15002 if ( $(scope.block).closest('.unmenu-inner-ul').length ) { 15003 scope.isInViewport = true; 15004 } else if( 'IntersectionObserver' in window ) { 15005 var observer = new IntersectionObserver(function(entries) { 15006
15007 entries.forEach(function(entry){ 15008 if ( entry.isIntersecting ) { 15009 scope.isInViewport = true; 15010 } else { 15011 scope.isInViewport = false; 15012 } 15013 }); 15014 15015 }, { 15016 root: document, 15017 }); 15018 15019 observer.observe(scope.block); 15020 } 15021 }; 15022 15023 AnimGradient.hexToRGB = function(hexval) { 15024 var hexecuted = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexval); 15025 if (!hexecuted) { 15026 return false; 15027 } 15028 return { 15029 r: parseInt(hexecuted[1], 16), 15030 g: parseInt(hexecuted[2], 16), 15031 b: parseInt(hexecuted[3], 16) 15032 } 15033 }; 15034 15035 AnimGradient.factor = function(val_1, val_2, lava) { 15036 return val_1 * (1 - lava) + val_2 * lava; 15037 }; 15038 15039 AnimGradient.factorNoise = function(wave_l, x, y, noise) { 15040 if (this.singleColor) { 15041 return this.bg_colors[0][wave_l]; 15042 } 15043 return this.factor(this.bg_colors[0][wave_l], this.bg_colors[1][wave_l], (this.lava(x,y,this.count*this.lavaTime) * this.resAround*3.5)*noise/2 ); 15044 // return this.factor(this.bg_colors[0][channel], this.bg_colors[1][channel], (this.lava(x,y,this.count*this.lavaTime) * this.resAround*2) ); 15045 }; 15046 15047 AnimGradient.lava = function(x, y, grade) { 15048 var radians = (Math.PI / 180) * grade, 15049 cos = Math.cos(radians), 15050 sin = Math.sin(radians), 15051 nx = (cos * (x - this.cx)) + (sin * (y - this.cy)) + this.cx; 15052 return nx; 15053 }; 15054 15055 AnimGradient.loopRAF = function() { 15056 15057 var scope = this; 15058 15059 if( this.isInViewport && typeof this.ratioParam !== 'undefined' ) { 15060 for (var x = 0; x < this.res; x++) { 15061 for (var y = 0; y < this.res; y++) { 15062 15063 var noise = simplex.noise3D((x / this.res * this.ratioParam.x)*this.size, (y / this.res * this.ratioParam.y)*this.size, this.count/this.opts.time); //original 15064 15065 this.data[(x + y * this.res) * 4 + 0] = this.factorNoise('r', x, y, noise); 15066 this.data[(x + y * this.res) * 4 + 1] = this.factorNoise('g', x, y, noise); 15067 this.data[(x + y * this.res) * 4 + 2] = this.factorNoise('b', x, y, noise); 15068 this.data[(x + y * this.res) * 4 + 3] = noise*265; 15069 15070 } 15071 } 15072 15073 this.count++; 15074 15075 this.ctx.putImageData(this.imgdata, 0, 0); 15076 15077 } 15078 15079 requestAnimationFrame(function() { 15080 scope.loopRAF(); 15081 }); 15082 }; 15083 15084 AnimGradient.animLoader = function() { 15085 this.wrap.classList.add('uncode-canvas-bg-noise-wrap-loaded'); 15086 }; 15087 15088 var anim_init = function() { 15089 var bgs = _el.querySelectorAll('.block-bg-overlay'); 15090 15091 bgs.forEach(function(blockOverlay) { 15092 var canvasWrap = blockOverlay.querySelector('.uncode-canvas-bg-noise-wrap'); 15093 if( !blockOverlay || !canvasWrap ) { 15094 return; 15095 } 15096 new Uncode_BG_Animated_Gradient(blockOverlay, canvasWrap); 15097 }); 15098 } 15099 15100 $(window).on('load', function(){ 15101 anim_init(); 15102 }); 15103 15104 if ( ev === 'shortcode:update' ) { 15105 anim_init(); 15106 } 15107 15108}; 15109UNCODE.multibg = function(){ 15110 var $bgsWraps = $('.uncode-multi-bgs'), 15111 $body = $('body'); 15112 $bgsWraps.each(function(){ 15113 var $bgWrap = $(this), 15114 transition = $bgWrap.attr('data-transition'), 15115 transitionTime = $bgWrap.attr('data-transition-time'), 15116 dataPace = $bgWrap.attr('data-transition-pace'), 15117 dataThreshold = $bgWrap.attr('data-transition-threshold'), 15118 dataTime = $bgWrap.attr('data-carousel-time'), 15119 dataMobileCarousel = $bgWrap.attr('data-carousel-mobile'), 15120 random = $bgWrap.attr('data-multi-random'), 15121 _bgWrap = $bgWrap[0], 15122 $multiBgs = $('.multi-background', $bgWrap), 15123 imgFirst, 15124 bgAmount = $multiBgs.length, 15125 isInViewport = false, 15126 lastScrollTop = 0, 15127 counter = 0, 15128 totMove = 0, 15129 autoScroll = typeof dataPace === 'undefined' && transition === 'scroll', 15130 pace = typeof dataPace !== 'undefined' && dataPace !== '' ? parseFloat(dataPace) : ( transition === 'scroll' ? 20 : 200 ), 15131 threshold = typeof dataThreshold !== 'undefined' && dataThreshold !== '' ? parseFloat(dataThreshold) : 0, 15132 offX, offY, 15133 wait = typeof transitionTime !== 'undefined' && transitionTime !== '' ? parseFloat(transitionTime)+1 : 250, 15134 carouselTime = typeof dataTime !== 'undefined' && dataTime !== '' ? parseFloat(dataTime) : 5000, 15135 requestCarousel, 15136 is_header = $bgWrap.closest('#page-header').length, 15137 startTime = new Date(); 15138 15139 transition = typeof transition === 'undefined' ? '' : transition; 15140 15141 if ( random === 'true' ) { 15142 UNCODE.shuffle($multiBgs); 15143 } 15144 15145 $multiBgs.find('.background-inner').attr('data-active','false'); 15146 15147 imgFirst = $multiBgs.first().find('.background-inner').attr('data-active','true').css('background-image').replace('url(','').replace(')','').replace(/\"/gi, ""); 15148 15149 var loadFirst = function(){
15150 $multiBgs.first().attr('data-load', 'loaded').stop(true,false).animate({ 15151 opacity: 1 15152 }, 250, 'easeInQuad').css({ 15153 zIndex: 1 15154 }); 15155 } 15156 15157 var loadError = function(){ 15158 console.log('Multi BG loading error'); 15159 } 15160 15161 if ( imgFirst && imgFirst !== 'none' ) { 15162 UNCODE.checkImgLoad( imgFirst, loadFirst, loadError ); 15163 } else { 15164 loadFirst(); 15165 } 15166 15167 var loadSlides = function( $thisBg ){ 15168 $thisBg.attr('data-load', 'loaded'); 15169 } 15170 15171 $multiBgs.not('[data-load="loaded"]').each(function(ind, val){ 15172 var $thisBg = $(val); 15173 15174 if ( typeof $thisBg !== 'undefined' && $thisBg.length ) { 15175 15176 var _imgBg = $(val).find('.background-inner').css('background-image'); 15177 15178 if ( typeof _imgBg === 'undefined' || _imgBg === '' || _imgBg === 'none' ) { 15179 $thisBg.attr('data-load', 'loaded'); 15180 } else { 15181 _imgBg = _imgBg.replace('url(','').replace(')','').replace(/\"/gi, ""); 15182 if ( typeof _imgBg !== 'undefined' ) { 15183 UNCODE.checkImgLoad( _imgBg, loadSlides, loadError, $thisBg ); 15184 } 15185 } 15186 } 15187 }); 15188
15189 var multiCarousel = function(e) { 15190 15191 clearRequestTimeout(requestCarousel); 15192 15193 var checkTime = new Date(); 15194 if ( checkTime - startTime >= carouselTime && isInViewport ) { 15195 var $checkEl = $multiBgs.eq((counter+1)%bgAmount); 15196 15197 if ( $checkEl.attr('data-load') !== 'loaded' ) { 15198 requestTimeout(function(){ 15199 multiCarousel(); 15200 }, 100); 15201 return; 15202 } 15203 15204 counter++; 15205 15206 $multiBgs.each(function(ind, val){ 15207 if ( ind === counter%bgAmount ) { 15208 $(val).stop(true,false).animate({ 15209 opacity: 1 15210 }, wait, 'easeInQuad').css({ 15211 zIndex: 1 15212 }).find('.background-inner').attr('data-active','true'); 15213 } else { 15214 $(val).stop(true,false).animate({ 15215 opacity: 0 15216 }, wait, 'easeInQuad', function(){ 15217 $(val).find('.background-inner').attr('data-active','false'); 15218 }).css({ 15219 zIndex: 0 15220 }); 15221 } 15222 }); 15223 15224 } 15225 15226 if ( transition === '' || UNCODE.wwidth <= UNCODE.mediaQueryMobile ) { 15227 requestCarousel = requestTimeout(multiCarousel, carouselTime); 15228 } 15229 15230 }; 15231 15232 var multiMove = function(e) { 15233 if ( $body.hasClass('navbar-hover') ) { 15234 return; 15235 } 15236 var checkTime = new Date(), 15237 bound = $bgWrap[0].getBoundingClientRect(), 15238 windowTop = (window.clientYOffset || document.documentElement.scrollTop); 15239 if (offX) { 15240 totMove += Math.sqrt( 15241 Math.pow(offY - e.clientY, 2) + Math.pow(offX - e.clientX, 2) 15242 ); 15243 } 15244 if ( 15245 totMove >= pace && 15246 checkTime - startTime >= wait && 15247 e.clientX <= (bound.left + bound.width) && 15248 e.clientX >= bound.left && 15249 e.clientY <= (bound.top + bound.height) && 15250 e.clientY >= bound.top 15251 ) { 15252 counter++; 15253 startTime = checkTime; 15254 $multiBgs.each(function(ind, val){ 15255 if ( ind === counter%bgAmount ) { 15256 $(val).stop(true,false).animate({ 15257 opacity: 1 15258 }, wait, 'easeInQuad').css({ 15259 zIndex: 1 15260 }).find('.background-inner').attr('data-active','true'); 15261 } else { 15262 $(val).stop(true,false).animate({ 15263 opacity: 0 15264 }, wait, 'easeInQuad', function(){ 15265 $(val).find('.background-inner').attr('data-active','false'); 15266 }).css({ 15267 zIndex: 0 15268 }); 15269 } 15270 }); 15271 15272 totMove = 0; 15273 } 15274 15275 offX = e.clientX; 15276 offY = e.clientY; 15277 15278 }; 15279 15280 if ( transition === 'mouse' && UNCODE.wwidth > UNCODE.mediaQueryMobile ) { 15281 document.addEventListener("mousemove", multiMove); 15282 } 15283 15284 window.addEventListener('resize', function() { 15285 if ( transition === 'mouse' && UNCODE.wwidth > UNCODE.mediaQueryMobile ) { 15286 document.removeEventListener("mousemove", multiMove); 15287 document.addEventListener("mousemove", multiMove); 15288 } 15289 }); 15290 15291 var lightLoopRAF = function() { 15292 15293 var scrollTop = (window.clientYOffset || document.documentElement.scrollTop) - (document.documentElement.clientTop || 0), 15294 checkTime = new Date(), 15295 bound = $bgWrap[0].getBoundingClientRect(), 15296 thresholdHeader = is_header ? 100 : threshold, 15297 rePace = ((bound.height - bound.height * threshold / 100) / 100 * pace)+((bound.height - bound.height * thresholdHeader / 100) / 100 * pace); 15298 if ( Math.abs(lastScrollTop - scrollTop) >= rePace ) { 15299 counter++; 15300 lastScrollTop = scrollTop; 15301 startTime = checkTime; 15302 15303 $multiBgs.each(function(ind, val){ 15304 if ( ind === counter%bgAmount ) { 15305 $(val).stop(true,false).animate({ 15306 opacity: 1 15307 }, wait, 'easeInQuad').css({ 15308 zIndex: 1 15309 }).find('.background-inner').attr('data-active','true'); 15310 } else { 15311 $(val).stop(true,false).animate({ 15312 opacity: 0 15313 }, wait, 'easeInQuad', function(){ 15314 $(val).find('.background-inner').attr('data-active','false'); 15315 }).css({ 15316 zIndex: 0 15317 }); 15318 } 15319 }); 15320 15321 } 15322 15323 requestAnimationFrame(function() { 15324 if ( isInViewport ) { 15325 lightLoopRAF(); 15326 } 15327 }); 15328 }; 15329 15330 var currentInd = 0; 15331 15332 var loopRAF = function() { 15333 15334 var multiBgRotate = function(slideInd){ 15335 currentInd = slideInd; 15336 $multiBgs.each(function(ind, val){ 15337 if ( ind === slideInd ) {
15338 $(val).stop(true,false).animate({ 15339 opacity: 1 15340 }, wait, 'easeInQuad').css({ 15341 zIndex: 1 15342 }).find('.background-inner').attr('data-active','true'); 15343 } else { 15344 $(val).stop(true,false).animate({ 15345 opacity: 0 15346 }, wait, 'easeInQuad', function(){ 15347 $(val).find('.background-inner').attr('data-active','false'); 15348 }).css({ 15349 zIndex: 0 15350 }); 15351 } 15352 }); 15353 }; 15354 var bound = $bgWrap[0].getBoundingClientRect(), 15355 thresholdPX = UNCODE.wheight * threshold / 100, 15356 totMove = (UNCODE.wheight + bound.height) - (thresholdPX * (parseFloat(2 - is_header))), 15357 movePX = totMove / bgAmount, 15358 moving = UNCODE.wheight - (bound.top + thresholdPX), 15359 slideInd = 0; 15360 15361 if ( (UNCODE.wheight-bound.top) < thresholdPX && 0 !== currentInd ) { 15362 multiBgRotate(0); 15363 } else if ( bound.top + bound.height < thresholdPX && bgAmount-1 !== currentInd ) { 15364 multiBgRotate(bgAmount-1); 15365 } else { 15366 slideInd = Math.ceil(moving/movePX) - 1; 15367 if ( slideInd < 0 ) { 15368 slideInd = 0; 15369 } else if ( slideInd >= bgAmount ) { 15370 slideInd = bgAmount-1; 15371 } 15372 if ( slideInd !== currentInd ) { 15373 multiBgRotate(slideInd); 15374 } 15375 } 15376 15377 requestAnimationFrame(function() { 15378 if ( isInViewport ) { 15379 loopRAF(); 15380 } 15381 }); 15382 }; 15383 15384 if( 'IntersectionObserver' in window ) { 15385 var observer = new IntersectionObserver(function(entries) { 15386 15387 entries.forEach(function(entry){ 15388 if ( entry.isIntersecting ) { 15389 isInViewport = true; 15390 if ( transition === 'scroll' ) { 15391 if ( autoScroll ) { 15392 loopRAF(); 15393 } else { 15394 lightLoopRAF(); 15395 } 15396 } else {
15397 multiCarousel(); 15398 } 15399 } else { 15400 isInViewport = false; 15401 } 15402 }); 15403 15404 }, { 15405 root: document, 15406 rootMargin: is_header ? '-' + threshold + '% 0px 100% 0px' : '-' + threshold + '% 0px' 15407 }); 15408 15409 if ( transition !== 'mouse' || ( transition === 'mouse' && UNCODE.wwidth <= UNCODE.mediaQueryMobile && dataMobileCarousel === "yes" ) ) { 15410 observer.observe(_bgWrap); 15411 } 15412 15413 window.addEventListener('resize', function() { 15414 observer.unobserve(_bgWrap); 15415 if ( transition !== 'mouse' || ( transition === 'mouse' && UNCODE.wwidth <= UNCODE.mediaQueryMobile && dataMobileCarousel === "yes" ) ) { 15416 observer.observe(_bgWrap); 15417 } 15418 }); 15419 15420 } 15421 15422 }); 15423} 15424 15425UNCODE.owlNav = function(target, ev) { 15426 target = target.replace(/#\S+/g, ''); 15427 var $carousel = $('#'+target), 15428 $slider = $carousel.closest('.uncode-slider'), 15429 $checkNavs = $('.uncode-owl-nav'); 15430 if ( !$checkNavs.length ) { 15431 return; 15432 } 15433 15434 if ( $slider.length ){ 15435 target = $slider.attr('id'); 15436 } 15437 15438 var $navs = $('.uncode-owl-nav[data-target="#' + target + '"]'), 15439 $row; 15440 15441 if ( ! $navs.length ) { 15442 $row = $carousel.closest('.vc_row.row-container'); 15443 $navs = $('.uncode-owl-nav:not([data-target])', $row); 15444 } 15445 15446 if ( ! $navs.length ) { 15447 return; 15448 } 15449 15450 $navs.each(function(){ 15451 var $nav = $(this), 15452 $outer = $nav.closest('.uncode-owl-nav-out'), 15453 $inner = $nav.find('.uncode-owl-nav-in'), 15454 $navDots = $('.uncode-nav-dots', $nav), 15455 $navCounter = $('.uncode-nav-counter', $nav), 15456 $counterIndex = $('.uncode-nav-counter-index', $navCounter), 15457 $counterTotal = $('.uncode-nav-counter-total', $navCounter), 15458 skinInherit = $nav.hasClass('skin-inherit'), 15459 digit = parseFloat($nav.attr('data-digit')), 15460 counterDigit = parseFloat($nav.attr('data-counter-digit')), 15461 navSpeed = parseFloat($carousel.attr('data-navspeed')); 15462 navSpeed = typeof navSpeed !== 'undefined' && navSpeed !== '' ? navSpeed : 400; 15463 15464 if ( $nav.hasClass('pos-abs') ){ 15465 if ( ! $carousel.closest('.owl-carousel-wrapper-nav').length ) { 15466 $carousel.closest('.owl-carousel-wrapper').wrap('<div class="owl-carousel-wrapper-nav" />'); 15467 } 15468 $carousel.closest('.owl-carousel-wrapper-nav').append($outer); 15469 } 15470 15471 $carousel.on('refreshed.owl.carousel', counter); 15472 $carousel.on('resized.owl.carousel', counter); 15473 $carousel.on('changed.owl.carousel', counter); 15474 15475 if ( $carousel.closest('.un-submenu').length ) { 15476 $carousel.on('initialized.owl.carousel', counter); 15477 } 15478 15479 var totalSlides = 0; 15480 15481 function counter(event) { 15482 if (!event.namespace) { 15483 return; 15484 } 15485 var slides = event.relatedTarget, 15486 current = slides._current, 15487 loop = SiteParameters.is_frontend_editor && slides.closest('.uncode-slider').length ? false : slides.settings.loop, 15488 item = event.item, 15489 page = event.page, 15490 countPages = Math.ceil(item.count / page.size), 15491 $currentSlide = $carousel.find('.owl-item').eq(current), 15492 itemIndex = Math.floor($currentSlide.attr('data-index')) , 15493 activeSlide = Math.ceil(itemIndex / page.size), 15494 $prev = $nav.find('.uncode-nav-prev'), 15495 $next = $nav.find('.uncode-nav-next'), 15496 $col = $currentSlide.find('.uncol').first(); 15497 15498 if ( totalSlides != countPages ) { 15499 totalSlides = countPages; 15500 $navDots.html(''); 15501 var nav_html = ''; 15502 for (var sl_ind = 0; sl_ind < countPages; sl_ind++) { 15503 var padN = sl_ind+1; 15504 if ( digit && digit > 1 ) { 15505 padN = String(padN).padStart(digit, '0'); 15506 } 15507 nav_html += '<button class="uncode-nav-index" data-key="' + Math.floor(sl_ind*page.size) + '" tabindex="0"><span>' + padN + '</span></button>'; 15508 } 15509 $navDots.html(nav_html); 15510 15511 var totalSlidesDigit = totalSlides; 15512 15513 if ( counterDigit && counterDigit > 1 ) { 15514 totalSlidesDigit = String(totalSlidesDigit).padStart(counterDigit, '0'); 15515 } 15516 $counterTotal.html(totalSlidesDigit); 15517 } 15518 15519 if ( loop !== true ) { 15520 $nav.find('.uncode-nav-disabled').removeClass('uncode-nav-disabled'); 15521 if ( itemIndex === 1 ) { 15522 $prev.addClass('uncode-nav-disabled'); 15523 } else if ( ( itemIndex - 1 + page.size ) >= item.count ) { 15524 $next.addClass('uncode-nav-disabled');
15525 activeSlide = Math.ceil(item.count / page.size); 15526 } 15527 } 15528 15529 $nav.find('.uncode-nav-index').removeClass('active-index').eq(activeSlide-1).addClass('active-index'); 15530 var activeSlideDigit = activeSlide; 15531 15532 if ( counterDigit && counterDigit > 1 ) { 15533 activeSlideDigit = String(activeSlideDigit).padStart(counterDigit, '0'); 15534 } 15535 $counterIndex.html(activeSlideDigit); 15536 15537 if ( skinInherit ) { 15538 if ( $col.hasClass('style-light') ){ 15539 $nav.removeClass('style-dark').addClass('style-light'); 15540 } else if ( $col.hasClass('style-dark') ) { 15541 $nav.removeClass('style-light').addClass('style-dark'); 15542 } 15543 } 15544 15545 $inner.removeClass('uncode-owl-nav-waiting'); 15546 15547 if ( $nav.hasClass('outer-width') ) { 15548 var navW = $nav.outerWidth(), 15549 nexW = $next.outerWidth(), 15550 prevW = $prev.outerWidth(), 15551 margins = Math.abs( parseFloat( $next.css('margin-left') ) ) + Math.abs( parseFloat( $next.css('margin-right') ) ); 15552 15553 if ( $nav.hasClass('h-align-justify') ) { 15554 $inner.css({'max-width': 'calc(100vw - ' + (nexW + prevW + (margins*2)) + 'px)'}); 15555 if ( navW + nexW + prevW + (margins*2) > UNCODE.wwidth ) { 15556 $inner.css({'margin': 'auto'}); 15557 } else { 15558 $inner.css({'margin': ''}); 15559 } 15560 } else { 15561 $inner.css({'max-width': 'calc(100vw - ' + (2*(nexW + prevW + margins)) + 'px)'}); 15562 if ( navW + (2*(nexW + prevW + margins)) > UNCODE.wwidth ) { 15563 $inner.css({'margin': 'auto'}); 15564 } else { 15565 $inner.css({'margin': ''}); 15566 } 15567 } 15568 } 15569 } 15570 15571 $nav.on('click', '.uncode-nav-index', function(){ 15572 var $bullet = $(this), 15573 slide_index = parseFloat( $bullet.attr('data-key') ); 15574 $carousel.trigger("to.owl.carousel", [slide_index, navSpeed, true]); 15575 }); 15576 $nav.on('click', '.uncode-nav-prev', function(){ 15577 $carousel.trigger('prev.owl.carousel', [navSpeed]); 15578 }); 15579 $nav.on('click', '.uncode-nav-next', function(){ 15580 $carousel.trigger('next.owl.carousel', [navSpeed]); 15581 }); 15582 15583 if ( $nav.hasClass('animated-arrows') ) { 15584 $('.uncode-nav-prev, .uncode-nav-next', $nav).on('mouseenter', function(){ 15585 $(this).addClass("hover"); 15586 }).on('animationend', function(){ 15587 $(this).removeClass("hover"); 15588 }); 15589 } 15590 15591 var positionNav = function(){ 15592 if ( $nav.hasClass('window-width') ) { 15593 var navOff = parseFloat( $nav.offset().left ) * -1; 15594 if ( navOff > 0 ) { 15595 $inner.css({ transform: 'translateX(' + navOff + 'px)' }); 15596 } else { 15597 $inner.css({ transform: 'none' }); 15598 } 15599 } 15600 } 15601 positionNav(); 15602 $(window).on('resize', positionNav); 15603 $(document).on('un-menu-show', positionNav); 15604 }); 15605 15606 $carousel.closest('.owl-carousel-container').find('.uncode-owl-nav').addClass('appended'); 15607}; 15608 15609 UNCODE.init = function() { 15610 var wfl_check = false, wfl_request, waypoint_request; 15611 UNCODE.preventDoubleTransition(); 15612 UNCODE.betterResize(); 15613 UNCODE.utils(); 15614 UNCODE.unBlockMenu(); 15615 UNCODE.mobileMenuBlockSkins(); 15616 UNCODE.magnetic(); 15617 if (typeof UNCODE.accessibility !== 'undefined') { 15618 UNCODE.accessibility(); 15619 } 15620 if (typeof UNCODE.rowParallax !== 'undefined') { 15621 UNCODE.rowParallax(); 15622 } 15623 if (typeof UNCODE.changeSkinOnScroll !== 'undefined') { 15624 UNCODE.changeSkinOnScroll(); 15625 } 15626 if (typeof UNCODE.share !== 'undefined') { 15627 UNCODE.share(); 15628 } 15629 if (typeof UNCODE.tooltip !== 'undefined') { 15630 UNCODE.tooltip(); 15631 } 15632 if (typeof UNCODE.counters !== 'undefined') { 15633 UNCODE.counters(); 15634 } 15635 if (typeof UNCODE.countdowns !== 'undefined') { 15636 UNCODE.countdowns(); 15637 } 15638 if (typeof UNCODE.tabs !== 'undefined') { 15639 UNCODE.tabs(); 15640 } 15641 if (typeof UNCODE.collapse !== 'undefined') { 15642 UNCODE.collapse(); 15643 } 15644 if (typeof UNCODE.bigText !== 'undefined') { 15645 UNCODE.bigText(); 15646 } 15647 UNCODE.menuSystem(); 15648 if (typeof UNCODE.bgChanger !== 'undefined') { 15649 UNCODE.bgChanger(); 15650 } 15651 if (typeof UNCODE.magicCursor !== 'undefined') { 15652 UNCODE.magicCursor(); 15653 } 15654 if (typeof UNCODE.magneticCursor !== 'undefined') { 15655 UNCODE.magneticCursor(); 15656 } 15657 if (typeof UNCODE.dropImage !== 'undefined') { 15658 UNCODE.dropImage(); 15659 } 15660 if (typeof UNCODE.postTable !== 'undefined') { 15661 UNCODE.postTable(); 15662 } 15663 if (typeof UNCODE.rotatingTxt !== 'undefined') { 15664 UNCODE.rotatingTxt(); 15665 } 15666 if (typeof UNCODE.okvideo !== 'undefined') { 15667 UNCODE.okvideo(); 15668 window.addEventListener( "uncode-more-items-loaded", function() { 15669 UNCODE.okvideo("uncode-more-items-loaded"); 15670 }); 15671 } 15672 if (typeof UNCODE.backgroundSelfVideos !== 'undefined') { 15673 UNCODE.backgroundSelfVideos(); 15674 } 15675 UNCODE.tapHover(); 15676 if (typeof UNCODE.isotopeLayout !== 'undefined') { 15677 UNCODE.isotopeLayout(); 15678 } 15679 if (typeof UNCODE.justifiedGallery !== 'undefined') { 15680 UNCODE.justifiedGallery(); 15681 } 15682 if (typeof UNCODE.cssGrid !== 'undefined') { 15683 UNCODE.cssGrid(); 15684 } 15685 if (typeof UNCODE.linearGrid !== 'undefined') { 15686 UNCODE.linearGrid(); 15687 } 15688 if (typeof UNCODE.lightbox !== 'undefined' && !SiteParameters.lbox_enhanced) { 15689 UNCODE.lightbox(); 15690 } 15691 if (typeof UNCODE.lightgallery !== 'undefined' && SiteParameters.lbox_enhanced) { 15692 $(window).on('load more-items-loaded',function(){ 15693 UNCODE.lightgallery(); 15694 }); 15695 } 15696 if (typeof UNCODE.carousel !== 'undefined') { 15697 UNCODE.carousel($('body')); 15698 } 15699 if (typeof UNCODE.lettering !== 'undefined') { 15700 UNCODE.lettering(); 15701 } 15702 UNCODE.animations(); 15703 if (typeof UNCODE.stickyElements !== 'undefined' && !SiteParameters.is_frontend_editor) { 15704 UNCODE.stickyElements(); 15705 } 15706 if (typeof UNCODE.twentytwenty !== 'undefined') { 15707 UNCODE.twentytwenty(); 15708 } 15709 UNCODE.disableHoverScroll(); 15710 UNCODE.printScreen(); 15711 if (typeof UNCODE.particles !== 'undefined') { 15712 UNCODE.particles(); 15713 } 15714 if (typeof UNCODE.filters !== 'undefined') { 15715 UNCODE.filters(); 15716 } 15717 if (typeof UNCODE.ajax_filters !== 'undefined') { 15718 UNCODE.ajax_filters(); 15719 } 15720 if (typeof UNCODE.widgets !== 'undefined') { 15721 UNCODE.widgets(); 15722 } 15723 if (typeof UNCODE.unmodal !== 'undefined') { 15724 UNCODE.unmodal(); 15725 } 15726 if (typeof UNCODE.checkScrollForTabs !== 'undefined') { 15727 if ( !UNCODE.isFullPage ) { 15728 UNCODE.checkScrollForTabs(); 15729 } 15730 } 15731 if (typeof UNCODE.onePage !== 'undefined') { 15732 UNCODE.onePage(UNCODE.isMobile); 15733 } 15734 if (typeof UNCODE.fullPage !== 'undefined') { 15735 $(document).ready(function(){ 15736 UNCODE.fullPage(); 15737 }); 15738 } 15739 if (typeof UNCODE.skewIt !== 'undefined') { 15740 UNCODE.skewIt(); 15741 } 15742 if (typeof UNCODE.rotateIt !== 'undefined') { 15743 UNCODE.rotateIt(); 15744 } 15745 if (typeof UNCODE.textMarquee !== 'undefined') { 15746 UNCODE.textMarquee(); 15747 } 15748 if (typeof UNCODE.stickyScroll !== 'undefined') { 15749 UNCODE.stickyScroll(); 15750 } 15751 if (typeof UNCODE.stickyTrigger !== 'undefined') { 15752 UNCODE.stickyTrigger(); 15753 } 15754 if (typeof UNCODE.areaTextReveal !== 'undefined') { 15755 UNCODE.areaTextReveal(); 15756 }
15757 if (typeof UNCODE.thumbsReveal !== 'undefined') { 15758 UNCODE.thumbsReveal(); 15759 } 15760 if (typeof UNCODE.verticalText !== 'undefined') { 15761 UNCODE.verticalText(); 15762 } 15763 if (typeof UNCODE.videoThumbs !== 'undefined') { 15764 UNCODE.videoThumbs(); 15765 } 15766 if (typeof UNCODE.revslider !== 'undefined') { 15767 UNCODE.revslider(); 15768 } 15769 if (typeof UNCODE.layerslider !== 'undefined') { 15770 UNCODE.layerslider(); 15771 } 15772 if (typeof UNCODE.lottie !== 'undefined') { 15773 UNCODE.lottie(); 15774 } 15775 if (typeof UNCODE.inlineImgs !== 'undefined') { 15776 UNCODE.inlineImgs(); 15777 } 15778 if (typeof UNCODE.animatedBgGradient !== 'undefined') { 15779 UNCODE.animatedBgGradient(); 15780 } 15781 if (typeof UNCODE.readMoreCol !== 'undefined') { 15782 UNCODE.readMoreCol(); 15783 } 15784 if (typeof UNCODE.multibg !== 'undefined') { 15785 UNCODE.multibg(); 15786 } 15787 if (typeof UNCODE.flexEqual !== 'undefined') { 15788 UNCODE.flexEqual(); 15789 } 15790 $(window).on('load',function(){ 15791 clearRequestTimeout(waypoint_request); 15792 waypoint_request = requestTimeout( function(){ 15793 Waypoint.refreshAll(); 15794 }, 1000); 15795 }); 15796 $(window).one('load',function(){ 15797 if (typeof UNCODE.parallax !== 'undefined') { 15798 UNCODE.parallax(); 15799 } 15800 }); 15801 } 15802 15803 if ( ! SiteParameters.is_frontend_editor ) { 15804 UNCODE.init(); 15805 } 15806 15807 15808})(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.