1var jwsThemeModule; 2 3(function($) { 4 "use strict"; 5 6 $(window).load(function() { 7 setTimeout(function() { 8 $('.jws-preloading').addClass('loaded'); 9 $('.jws-preloading .loading_logo').css('opacity', '0'); 10 $('.loaded').fadeOut(1000); 11 }, 300); 12 13 }); 14 jwsThemeModule = (function() { 15 return { 16 init: function() { 17 this.header_sticky(); 18 this.header_topbar_slider(); 19 this.vertical_header(); 20 this.scrollTop(); 21 this.menu_mobile(); 22 this.projects_filter(); 23 this.backToTop(); 24 this.hoverActive(); 25 this.post_slider_related(); 26 this.search_ajax(); 27 this.case_study_gallery(); 28 this.menu_offsets(); 29 this.menu_nav(); 30 this.related_slider(); 31 this.project_gallery(); 32 this.handleGallery(); 33 this.mobile_default(); 34 this.post_format(); 35 this.video_popup(); 36 this.post_audio_play(); 37 this.jws_theme_time_popup(); 38 this.popup_newsletter(); 39 this.share_button(); 40 this.scrollTop(); 41 if($('.check_activity').length) { 42 this.check_agencys(); 43 } 44 this.input_pocus(); 45 46 47 48 }, 49 50 51 input_pocus: function() { 52 $('.comment-form').find("input, textarea").focus(function(){ 53 $(this).parent().parent().addClass('active'); 54 }).blur(function(){ 55 var cval = $(this).val() 56 if(cval.length < 1) {$(this).parent().parent().removeClass('active');} 57 }) 58 }, 59 60 61 scrollTop: function() { 62 //Check to see if the window is top if not then display button 63 $(window).scroll(function() { 64 if ($(this).scrollTop() > 100) { 65 $('.backToTop').addClass('totop-show'); 66 } else { 67 $('.backToTop').removeClass('totop-show'); 68 } 69 }); 70 //Click event to scroll to top 71 $('.backToTop').on("click", function() { 72 $('html, body').animate({ 73 scrollTop: 0 74 }, 800); 75 return false; 76 }); 77 }, 78 //header sticky 79 header_sticky: function() { 80 if ($('.cafe-row-sticky')[0]) { 81 82 $('.cafe-row-sticky').each(function() { 83 var $this = $(this); 84 var $parent = $(this).parent(); 85 var current_width = 0; 86 87 $(window).resize(function() { 88 if (current_width != $(window).outerWidth()) { 89 current_width = $(window).outerWidth(); 90 $parent.height(''); 91 if (current_width >= 1025 && $this.hasClass('desktop-sticky')) { 92 93 $parent.height($this.outerHeight()); 94 95 } else if (current_width < 1025 && current_width > 768 && $this.hasClass('tablet-sticky')) { 96 97 $parent.height($this.outerHeight()); 98 99 } else if (current_width < 768 && $this.hasClass('mobile-sticky')) { 100 101 $parent.height($this.outerHeight()); 102 103 } else { 104 $this.removeClass('is-sticky'); 105 $this.find('.elementor-widget-clever-site-logo').removeClass('header-is-sticky'); 106 } 107 } 108 }).resize(); 109 var HeaderTop = $parent.offset().top - $('body').offset().top; 110 var old_top_position = 0; 111 $(window).on('scroll', function() { 112 var top = $(window).scrollTop(); 113 if ($this.hasClass('cafe-scroll-up-sticky')) { 114 top = top - $parent.outerHeight(); 115 if (old_top_position > top && top > $parent.outerHeight() * 3) { 116 $this.not('.active-sticky').addClass('active-sticky'); 117 $this.removeClass('no-active-sticky'); 118 } else { 119 $this.removeClass('active-sticky'); 120 if ($this.hasClass('is-sticky')) { 121 $this.addClass('no-active-sticky'); 122 } 123 } 124 old_top_position = top; 125 } 126 if (current_width >= 1025 && $this.hasClass('desktop-sticky')) { 127 if (HeaderTop < top) { 128 $this.not('.is-sticky').addClass('is-sticky'); 129 $this.find('.elementor-widget-clever-site-logo:not(.header-is-sticky)').addClass('header-is-sticky'); 130 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').removeClass('toggle-active'); 131 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').find('.wrap-menu-inner').slideUp(); 132 } else { 133 $this.removeClass('is-sticky'); 134 $this.removeClass('no-active-sticky'); 135 $this.find('.elementor-widget-clever-site-logo').removeClass('header-is-sticky'); 136 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').addClass('toggle-active'); 137 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').find('.wrap-menu-inner').slideDown(); 138 } 139 } else if (current_width < 1025 && current_width > 768.98 && $this.hasClass('tablet-sticky')) { 140 if (HeaderTop < top) { 141 $this.not('.is-sticky').addClass('is-sticky'); 142 $this.find('.elementor-widget-clever-site-logo').addClass('header-is-sticky'); 143 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').removeClass('toggle-active'); 144 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').find('.wrap-menu-inner').slideUp(); 145 } else { 146 $this.removeClass('is-sticky'); 147 $this.removeClass('no-active-sticky'); 148 $this.find('.elementor-widget-clever-site-logo').removeClass('header-is-sticky'); 149 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').addClass('toggle-active'); 150 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').find('.wrap-menu-inner').slideDown(); 151 } 152 } else if (current_width < 768.98 && $this.hasClass('mobile-sticky')) { 153 if (HeaderTop < top) { 154 $this.not('.is-sticky').addClass('is-sticky'); 155 $this.find('.elementor-widget-clever-site-logo:not(.header-is-sticky)').addClass('header-is-sticky'); 156 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').removeClass('toggle-active'); 157 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').find('.wrap-menu-inner').slideUp(); 158 } else { 159 $this.removeClass('is-sticky'); 160 $this.removeClass('no-active-sticky'); 161 $this.find('.elementor-widget-clever-site-logo.header-is-sticky').removeClass('header-is-sticky'); 162 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').addClass('toggle-active'); 163 $('.cafe-wrap-menu .toggle .arrow.on-scroll').parents('.cafe-wrap-menu').find('.wrap-menu-inner').slideDown(); 164 } 165 } 166 }); 167 }); 168 169 } 170 }, 171 //Related Product 172 header_topbar_slider: function() { 173 $('.top-header-slider .slider-listing-items').not('.slick-initialized').slick({
174 arrows: false, 175 dots: false, 176 autoplay: true, 177 autoplaySpeed: 15000, 178 }); 179 $('.close-header-top').click(function() { 180 $('.top-header-slider').remove(); 181 }); 182 }, 183 jws_theme_time_popup: function() { 184 var _send_mail = $('#jws-newsletter-popup'); 185 if (_send_mail.length === 0 || typeof $.cookie === undefined) return; 186 if ($.cookie('ckie_popup') !== 'true') { 187 setTimeout(function() { 188 _send_mail.fadeIn(); 189 }, 15000); 190 } 191 _send_mail.find('#tb-hide-popup').on('change', function() { 192 if ($(this).is(':checked')) { 193 $.cookie('ckie_popup', true, { 194 expires: 30, 195 path: '/' 196 }); 197 } else { 198 $.cookie('ckie_popup', false, { 199 expires: -50, 200 path: '/' 201 }); 202 } 203 }); 204 }, 205 popup_newsletter: function() { 206 $('.tb-close-lightbox').on('click', function(e) { 207 e.preventDefault(); 208 if ($('#jws-newsletter-popup').length) { 209 $('#jws-newsletter-popup').fadeOut(); 210 } 211 }); 212 $('.tb-open-lightbox').on('click', function(e) { 213 e.preventDefault(); 214 var _parent = $($(this).attr('href')); 215 if (_parent.length) { 216 _parent.fadeIn(); 217 if (_parent.hasClass('jws-newsletter-popup-inner')) { 218 if (typeof $.cookie == 'function' && $.cookie('ckie_popup') === 'true') { 219 _parent.find('#tb-hide-popup').prop('checked', true); 220 } 221 } 222 } 223 }); 224 $('#jws-newsletter-popup').on('click', function(e) { 225 e.stopPropagation(); 226 $(this).fadeOut(); 227 }).on('click', '.jws-newsletter-popup-inner', function(e) { 228 e.stopPropagation(); 229 }); 230 231 }, 232 233 /** 234 *------------------------------------------------------------------------------------------------------------------------------------------- 235 * post fomart 236 *--------o----------------------------------------------------------------------------------------------------------------------------------- 237 */ 238 post_format: function() { 239 $('.jws-post-gallery').not('.slick-initialized').slick({ 240 dots: false, 241 arrows: true, 242 prevArrow: '<button class="slick-arrow slick-prev"><i aria-hidden="true" class="eva eva-arrow-back-outline"></i></button>', 243 nextArrow: '<button class="slick-arrow slick-next"><i aria-hidden="true" class="eva eva-arrow-forward-outline"></i></button>' 244 }); 245 }, 246 /** 247 *------------------------------------------------------------------------------------------------------------------------------------------- 248 * post audio 249 *--------o----------------------------------------------------------------------------------------------------------------------------------- 250 */ 251 post_audio_play: function() { 252 var players = $('audio.blog-audio-player'); 253 254 if (players.length) { 255 players.mediaelementplayer({ 256 audioWidth: '100%' 257 }); 258 } 259 }, 260 /** 261 *------------------------------------------------------------------------------------------------------------------------------------------- 262 * Vertical header 263 *------------------------------------------------------------------------------------------------------------------------------------------- 264 */ 265 vertical_header: function() { 266 if ($('.jws_header').hasClass('vertical-header')) { 267 $('.site-content').addClass('vertical-header-body'); 268 269 $(window).on('load resize ', function() { 270 if (screen.height < 768) { 271 var height_product = parseInt($(window).height() - $('.jws_header.vertical-header').height()); 272 $('.product-list .full-height-style').css('height', height_product); 273 } 274 }); 275 276 277 278 } 279 }, 280 /** 281 *------------------------------------------------------------------------------------------------------------------------------------------- 282 * video popup 283 *------------------------------------------------------------------------------------------------------------------------------------------- 284 */ 285 video_popup: function() { 286 $('.video_format').eq(0).each(function() { 287 $('.video_format').magnificPopup({ 288 delegate: 'a', 289 type: 'image', 290 removalDelay: 500, //delay removal by X to allow out-animation 291 callbacks: { 292 beforeOpen: function() { 293 this.st.mainClass = 'mfp-zoom-in'; 294 }, 295 elementParse: function(item) { 296 item.type = 'iframe', 297 item.iframe = { 298 patterns: { 299 youtube: { 300 index: 'youtube.com/', // String that detects type of video (in this case YouTube). Simply via url.indexOf(index). 301 id: 'v=', // String that splits URL in a two parts, second part should be %id% 302 // Or null - full URL will be returned 303 // Or a function that should return %id%, for example: 304 // id: function(url) { return 'parsed id'; } 305 src: '//www.youtube.com/embed/%id%?autoplay=1' // URL that will be set as a source for iframe. 306 }, 307 vimeo: { 308 index: 'vimeo.com/', 309 id: '/', 310 src: '//player.vimeo.com/video/%id%?autoplay=1' 311 } 312 } 313 }; 314 } 315 }, 316 }); 317 }); 318 }, 319 320 /** 321 *------------------------------------------------------------------------------------------------------------------------------------------- 322 * Svg Animation 323 *------------------------------------------------------------------------------------------------------------------------------------------- 324 */ 325 search_ajax: function() { 326 var xhr = null, 327 searchCache = {}, 328 $modal = $('.search-popup'), 329 $form = $modal.find('form'), 330 $search = $form.find('input.search-input'), 331 $results = $modal.find('.search-results'); 332 333 $('.search-by-category').on('click', 'li', function() { 334 $(this).find('input').prop("checked", true); 335 }); 336 $modal.on('submit', '.jws-ajax-search', function(e) { 337 338 e.preventDefault();
339 var valid = false; 340 341 if (typeof e.which == 'undefined') { 342 valid = true; 343 } else if (typeof e.which == 'number' && e.which > 0) { 344 valid = !e.ctrlKey && !e.metaKey && !e.altKey; 345 } 346 347 if (!valid) { 348 return; 349 } 350 351 if (xhr) { 352 xhr.abort(); 353 } 354 355 search(); 356 }).on('change', '.search-by-category input', function() { 357 if (xhr) { 358 xhr.abort(); 359 } 360 361 search(); 362 }).on('focusout', '.search-input', function() { 363 if ($search.val().length < 2) { 364 $results.find('.woocommerce, .buttons').slideUp(function() { 365 $modal.removeClass('searching searched actived found-products found-no-product invalid-length'); 366 }); 367 } 368 }); 369 /** 370 * LazyLoad 371 */ 372 373 /** 374 * Private function for search 375 */ 376 function search() { 377 var keyword = $search.val(), 378 cat = ''; 379 if ($modal.find('.search-by-category').length > 0) { 380 cat = $modal.find('.search-by-category input:checked').val(); 381 } 382 if (keyword.length < 1) { 383 $modal.removeClass('searching found-products found-no-product').addClass('invalid-length'); 384 return; 385 } 386 $modal.removeClass('found-products found-no-product').addClass('searching'); 387 388 var keycat = keyword + cat; 389 if (keycat in searchCache) { 390 var result = searchCache[keycat]; 391 392 $modal.removeClass('searching'); 393 394 $modal.addClass('found-products'); 395 396 $results.find('.woocommerce').html(result.products); 397 398 $(document.body).trigger('jws_ajax_search_request_success', [$results]); 399 400 $results.find('.woocommerce, .buttons').slideDown(function() { 401 $modal.removeClass('invalid-length'); 402 }); 403 404 $modal.addClass('actived'); 405 } else { 406 xhr = $.ajax({ 407 url: MS_Ajax.ajaxurl, 408 dataType: 'json', 409 method: 'post', 410 data: { 411 action: 'jws_search_products', 412 nonce: MS_Ajax.nextNonce, 413 term: keyword, 414 cat: cat 415 }, 416 success: function(response) { 417 var $products = response.data; 418 if (response.success === true) { 419 console.log('success'); 420 } 421 $modal.addClass('found-products'); 422 423 $results.find('.woocommerce').html($products); 424 425 $results.find('.woocommerce, .buttons').slideDown(function() { 426 $modal.removeClass('invalid-length'); 427 }); 428 429 $(document.body).trigger('jws_ajax_search_request_success', [$results]); 430 431 // Cache 432 searchCache[keycat] = { 433 found: true, 434 products: $products 435 }; 436 437 438 $modal.addClass('actived'); 439 }, 440 error: function(e) { 441 console.log(e.message + "false ajax"); 442 console.log("false"); 443 } 444 }); 445 } 446 } 447 }, 448 449 450 451 menu_nav: function() { 452 var mainMenu = $('.elementor_jws_menu_layout_menu_horizontal').find('.jws_nav'), 453 lis = mainMenu.find(' > li.menu_has_shortcode'); 454 var dropDownCat = $(".elementor_jws_menu_layout_menu_horizontal .sub-menu .menu-item-has-children"), 455 elementIcon = '<button class="bt-sub-menu eva eva-chevron-right"></button>'; 456 $(elementIcon).insertAfter(dropDownCat.find('> a')); 457 var setOffset = function(li) { 458 var dropdown = li.find(' > .sub-menu-dropdown'); 459 dropdown.attr('style', ''); 460 461 var dropdownWidth = dropdown.outerWidth(), 462 dropdownOffset = dropdown.offset(), 463 screenWidth = $(window).width(), 464 465 //bodyRight = siteWrapper.outerWidth() + siteWrapper.offset().left, 466 viewportWidth = screenWidth, 467 extraSpace = 10; 468 469 if (!dropdownWidth || !dropdownOffset) return; 470 if (dropdownOffset.left + dropdownWidth >= viewportWidth && li.hasClass('menu_has_shortcode')) { 471 // If right point is not in the viewport 472 473 var toRight = dropdownOffset.left + dropdownWidth - viewportWidth; 474 dropdown.css({ 475 left: -toRight - extraSpace 476 }); 477 } 478 }; 479 lis.each(function() { 480 setOffset($(this)); 481 $(this).addClass('with-offsets'); 482 }); 483 484 //mega menu 485 var mega_item = mainMenu.find(' > li.menu-item-design-mega_menu_full_width'); 486 487 if (mega_item.length > 0) { 488 $('.jws_header').addClass('has-mega-full'); 489 } 490 if ($('.elementor_jws_menu_layout_menu_horizontal').hasClass('elementor-jws-menu-change-background-yes')) { 491 mega_item.mouseenter(function() { 492 $('.jws_header.has-mega-full').addClass('mega-has-hover'); 493 }); 494 495 mega_item.mouseleave(function() { 496 $('.jws_header.has-mega-full').removeClass('mega-has-hover'); 497 }); 498 } 499 }, 500 501 menu_offsets: function() { 502 var mainMenu = $('.elementor_jws_menu_layout_menu_horizontal').find('.jws_nav'), 503 lis = mainMenu.find(' > li.menu-item-has-children'); 504 $(window).resize(function() { 505 lis.find('.sub-menu').removeAttr('style'); 506 }); 507 mainMenu.on('hover', ' > li.menu-item-has-children', function() { 508 setOffset($(this)); 509 }); 510 var setOffset = function(li) { 511 var clientWidth = document.body.clientWidth; 512 var dropdown = li.find('> .sub-menu').outerWidth(), 513 dropdown2 = li.find('> .sub-menu .sub-menu').outerWidth(), 514 515 dropdown3 = li.find('> .sub-menu .sub-menu .sub-menu').outerWidth(); 516 517 if (!(dropdown2)) { 518 dropdown2 = 0; 519 } 520 if (!(dropdown3)) { 521 dropdown3 = 0; 522 } 523 var 524 dropdownOffset = li.find('> .sub-menu').offset().left, 525 extraSpace = 20; 526 if (!dropdown || !dropdownOffset) { 527 return false;
528 } 529 if (dropdown + dropdown2 + dropdown3 + dropdownOffset >= clientWidth && li.hasClass('menu-item-has-children')) { 530 // If right point is not in the viewport 531 532 li.find('.sub-menu').css({ 533 right: 0 534 }); 535 li.find('.sub-menu .sub-menu').css({ 536 left: -dropdown2 + extraSpace 537 }); 538 li.find('.sub-menu .sub-menu .sub-menu').css({ 539 left: -dropdown3 + extraSpace 540 }); 541 542 } 543 }; 544 lis.each(function() { 545 setOffset($(this)); 546 $(this).addClass('with-offsets'); 547 548 }); 549 550 551 552 }, 553 case_study_gallery: function() { 554 555 $('.single-case-study .case-study-gallery').slick({ 556 infinite: false, 557 slidesToShow: 1, 558 slidesToScroll: 1, 559 prevArrow: '<button class="slick-arrow slick-prev"><i aria-hidden="true" class="fas fa-arrow-left"></i></button>', 560 nextArrow: '<button class="slick-arrow slick-next"><i aria-hidden="true" class="fas fa-arrow-right"></i></button>' 561 }); 562 563 }, 564 post_slider_related: function() { 565 var n = $(".jws-post-related-slider .post-item").length; 566 var slidesToScroll = $(".jws-post-related-slider").attr("data-slidesToShow"), 567 isdots = ''; 568 if (n <= slidesToScroll) { 569 isdots = false; 570 } else { 571 isdots = true; 572 } 573 $('.jws-post-related-slider').not('.slick-initialized').slick({ 574 arrows: false, 575 dots: isdots, 576 }); 577 578 }, 579 backToTop: function() { 580 581 $(window).scroll(function() { 582 583 var scroll = $(window).scrollTop(); 584 585 var height = $('.backToTop').height() + 100; 586 587 if (scroll >= height) { 588 589 $(".backToTop").addClass("totopshow"); 590 591 } else { 592 593 $(".backToTop").removeClass("totopshow"); 594 595 } 596 597 }); 598 599 600 }, 601 602 hoverActive: function() { 603 604 $('.hover-active .elementor-inner-column').hover(function() { 605 $('.hover-active .elementor-inner-column').removeClass("active"); 606 $(this).addClass("active"); 607 }); 608 609 $('.click-active .hover-pricing-home2').hover(function() { 610 $('.click-active .hover-pricing-home2').removeClass("active"); 611 $(this).addClass("active"); 612 }); 613 614 }, 615 616 projects_filter: function() { 617 $('.nxl_projects_filter').each(function() { 618 var $this = $(this); 619 var $container = $this.find('.nxl_projects_filter_content'), 620 $filter = $this.find(".nxl_nav_filter"); 621 $(window).on("load resize", function() { 622 $container.isotope({ 623 itemSelector: ".nxl_projects_item", 624 layoutMode: 'masonry', 625 hiddenStyle: { 626 transform: 'rotateY(-180deg)', 627 opacity: '0' 628 }, 629 visibleStyle: { 630 transform: 'rotateY(0deg)', 631 opacity: '1' 632 }, 633 transitionDuration: "0.7s" 634 }); 635 $filter.find("a").click(function(e) { 636 var $t = $(this), 637 selector = $t.data("filter"); 638 // Don't proceed if already selected 639 if ($t.hasClass("filter-active")) 640 return false; 641 $filter.find("a").removeClass("filter-active"); 642 $t.addClass("filter-active"); 643 $container.isotope({ 644 filter: selector 645 }); 646 e.stopPropagation(); 647 e.preventDefault(); 648 }); 649 }); 650 }); 651 }, 652 653 menu_mobile: function() { 654 if ($('.elementor-widget-Offcanvas .jws-offcanvas .jws-offcanvas-menu li').hasClass('current-menu-item')) { 655 $('.elementor-widget-Offcanvas .jws-offcanvas .jws-offcanvas-menu li.current-menu-item').parents('.menu_has_shortcode').addClass('current-menu-parent'); 656 } 657 var dropDownCat = $(".elementor_jws_menu_layout_menu_vertical .menu-item-has-children ,.elementor_jws_menu_layout_menu_vertical .menu_has_shortcode"), 658 elementIcon = '<button class="bt-sub-menu eva eva-chevron-right"></button>'; 659 $(elementIcon).insertAfter(dropDownCat.find('> a')); 660 $(document).on("click", ".bt-sub-menu", function() { 661 662 663 if ($(this).parent().hasClass("active")) { 664 $(this).parent().removeClass("active").find("> ul").slideUp(400); 665 $(this).parent().removeClass("active").find(".sub-menu-dropdown, .sub-menu").slideUp(400); 666 } else { 667 var s = $(this).parent().children("li.active"); 668 $(s).removeClass("active").children(">.mega-menu , >.sub-menu").slideDown(400); 669 $(this).parent().addClass("active").find("> ul").slideDown(400); 670 $(this).parent().addClass("active").find(">
670.sub-menu-dropdown, >.sub-menu").slideDown(400); 671 } 672 }); 673 }, 674 share_button: function() { 675 $('.jws-share button').click(function() { 676 var parents = $(this).parent('.jws-share'); 677 parents.toggleClass('opened'); 678 if (parents.hasClass('opened')) { 679 parents.find(".addthis_inline_share_toolbox a").delay(100).each(function(i) { 680 $(this).delay(100 * i).queue(function() { 681 $(this).addClass("show"); 682 $(this).dequeue(); 683 }); 684 }); 685 } else { 686 parents.find(".addthis_inline_share_toolbox a").removeClass('show'); 687 } 688 }); 689 690 }, 691 //Related Product 692 related_slider: function() { 693 $('.related-slider').not('.slick-initialized').slick({ 694 prevArrow: "<span class='fas fa-chevron-left'></span>", 695 nextArrow: "<span class='fas fa-chevron-right'></span>", 696 responsive: [{ 697 breakpoint: 767, 698 settings: { 699 slidesToShow: 2, 700 slidesToScroll: 2, 701 } 702 }, { 703 breakpoint: 360, 704 settings: { 705 slidesToShow: 1, 706 slidesToScroll: 1, 707 } 708 }, 709 710 ] 711 }); 712 }, 713 project_gallery: function() { 714 715 var $this = $('.project_gallery'), 716 $container = $this.find('.jws_gallery'); 717 //init flickity 718 var pageDots = false; 719 if ($container.hasClass('has-dots')) { 720 pageDots = true; 721 } 722 if ($container.hasClass('slider')) { 723 $container.not('.slick-initialized').slick({ 724 prevArrow: "<button class='prev'><span class='btn-icon-custom'></span></button>", 725 nextArrow: "<button class='next'><span class='btn-icon-custom'></span></button>" 726 }); 727 } 728 if (!$container.hasClass('slider')) { 729 $(window).on("load", function() { 730 if ($container.hasClass('metro')) { 731 $container.isotope({ 732 itemSelector: ".jws_gallery_item", 733 layoutMode: 'packery', 734 }); 735 } else { 736 $container.isotope({ 737 itemSelector: ".jws_gallery_item", 738 layoutMode: 'packery', 739 transitionDuration: "0.3s", 740 }); 741 } 742 }); 743 } 744 }, 745 /* ## Theme popup */ 746 handlePopup: function(data) { 747 $(data).each(function() { 748 // Activate popup 749 $(this).addClass('visible'); 750 $(this).find('.btn-loading-disabled').addClass('btn-loading'); 751 }); 752 }, 753 /* ## Gallery */ 754 handleGallery: function() { 755 // Open popup 756 $('body').on('click', '[data-gallery-item] .jws-popup-global', function(e) { 757 e.stopPropagation(); 758 e.preventDefault(); 759 var gallery = $(this).closest('[data-gallery]'), 760 popup = $('#' + gallery.attr('data-gallery')), 761 images = gallery.find('[data-gallery-image]'); 762 jwsThemeModule.handlePopup(popup); 763 764 var image; 765 if ($('.single-product').length > 0) { 766 image = $(this).parents('.woo_c-product-image-slider').find('.gimg').eq(0); 767 } else { 768 image = $(this).parents('[data-gallery-image]').find('img').eq(0); 769 } 770 771 772 773 // Create slider 774 var slider = $(document.createElement('div')).addClass('slider'); 775 popup.find('.clb-popup-holder').append(slider); 776 // Generated slider 777 images.each(function() { 778 779 var div = $(document.createElement('div')); 780 var url = $(this).find('.jws-popup-global').attr("href"); 781 782 div.fadeOut(); 783 $(this).find('img').eq(0).clone().attr("src", url).load(function() { 784 div.addClass('image-wrap').append($(this)).fadeIn(); 785 }); 786 787 var imgDetails = $(this).find('.clb-gallery-img-details'); 788 if (imgDetails.length) { 789 var description = imgDetails.clone(); 790 div.append(description).addClass('with-description'); 791 792 if ($(window).width() > 787) { 793 setTimeout(function() { 794 div.find('.image-wrap').css('height', 'calc(100% - ' + (description.outerHeight() - 5) + 'px)'); 795 }, 10); 796 } 797 } 798 slider.append(div); 799 800 }); 801 var imageNumber; 802 if (gallery.find('.grid-sizer').length >= 1) { 803 imageNumber = $(this).parents('[data-gallery-item]').attr('data-gallery-item'); 804 } else { 805 imageNumber = $(this).parents('[data-gallery-item]').index(); 806 } 807 slider.slick({ 808 infinite: false, 809 centerPadding: '0px', 810 adaptiveHeight: true, 811 slidesToShow: 3, 812 centerMode: true, 813 initialSlide: imageNumber, 814 prevArrow: popup.find('.nav_left'), 815 nextArrow: popup.find('.nav_right'), 816 responsive: [{ 817 breakpoint: 600, 818 settings: { 819 slidesToShow: 1, 820 } 821 }] 822 }); 823 slider.slick('slickGoTo', imageNumber); 824 825 826 slider.find('.clb-slider-nav-btn .btn-round').removeClass('btn-round-light'); 827 828 // Move tmp image 829 setTimeout(function() { 830 831 slider.addClass('ready'); 832 // Open slider, remove tmp image 833 setTimeout(function() { 834 slider.addClass('visible'); 835 }, 500); 836 837 }, 100); 838
839 popup.expanded = false; 840 841 var expand = function() { 842 if (popup.expanded) { 843 document.webkitCancelFullScreen(); 844 $(this).find('.ion').addClass('ion-md-expand').removeClass('ion-md-contract'); 845 popup.expanded = false; 846 } else { 847 popup.expanded = true; 848 popup[0].webkitRequestFullscreen(); 849 $(this).find('.ion').removeClass('ion-md-expand').addClass('ion-md-contract'); 850 } 851 }; 852 853 $(popup).find('.expand').on('click', expand); 854 $(popup).find('.clb-close').on('click', function() { 855 if (popup.expanded) { 856 document.webkitCancelFullScreen(); 857 popup.expanded = false; 858 } 859 setTimeout(function() { 860 popup.removeClass('visible'); 861 popup.find('.clb-popup-holder').empty(); 862 popup.find('.clb-popup-holder').removeClass().addClass('clb-popup-holder'); 863 }, 200); 864 }); 865 }); 866 }, 867 mobile_default: function() { 868 $('body').on('click', '.jws-tiger-mobile,.overlay', function() { 869 $(this).parents('.elemetor-menu-mobile').toggleClass('active'); 870 }); 871 }, 872 873 874 875 876 877 878 879 880 check_agencys : function(){ 881 882 883 var input = document.getElementById('pac-input'); 884 885 var autocomplete = new google.maps.places.Autocomplete(input); 886 google.maps.event.addListener(autocomplete, 'place_changed', function() { 887 888 var input_value = $('#pac-input').val(); 889 890 $.ajax({ 891 type: "post", 892 url: MS_Ajax.ajaxurl, 893 data: { 894 action: "address_to_zipcode", 895 address: input_value, 896 }, 897 beforeSend: function () { 898 $('.zip_code').parents('.field_wap').addClass('active'); 899 }, 900 success: function (response) { 901 902 $('.zip_code').val(response); 903 904 }, 905 complete: function () { 906 $('.zip_code').parents('.field_wap').removeClass('active'); 907 }, 908 }) 909 return false; 910 911 912 913 }); 914 915 916 $( "#pac-input" ).on( "change", function() { 917 if($(this).val() != '') { 918 $('.form_check_agencys button').addClass('active'); 919 }else { 920 $('.form_check_agencys button').removeClass('active'); 921 } 922 923 }); 924 925 926 927 928 function load_content() { 929 var keyword = $('.form_check_agencys .adress').val(); 930 $.ajax({ 931 type: "post", 932 url: MS_Ajax.ajaxurl, 933 dataType: 'json', 934 data: { 935 action: "location_agencies", 936 agencies_location: keyword, 937 938 }, 939 beforeSend: function () { 940 $('.form_check_agencys button').addClass('form_loading'); 941 $('.form_contact2').removeClass('active'); 942 $('.form_contact').removeClass('active'); 943 }, 944 success: function (data, textStatus, jqXHR) { 945 946 if(data.status == 'yes') { 947 $('.form_contact').addClass('active'); 948 $(".results_miles").html(data.content); 949 }else { 950 $('.form_contact2').addClass('active'); 951 } 952 }, 953 error: function(jqXHR, textStatus, errorThrown) { 954 /* Handle errors here*/ 955 console.log('ERRORS: ' + textStatus); 956 $('.form_check_agencys button').removeClass('form_loading'); 957 958 }, 959 complete: function () { 960 $('.form_check_agencys button').removeClass('form_loading'); 961 }, 962 }) 963 return false; 964 965 } 966 967 $(document).on('click','.form_check_agencys button', function (e) { 968 e.preventDefault(); 969 var input_value = $('#pac-input').val(); 970 if(input_value != '') { 971 load_content(); 972 } 973 }); 974 975 $('.form_client .wpcf7-radio input:checked').prev('span').addClass("checked"); 976 $(document).on('change','.form_client .wpcf7-radio input', function (e) { 977 $('.form_client .wpcf7-radio input').prev('span').removeClass("checked"); 978 if($(this).is(":checked")){ 979 $(this).prev('span').addClass("checked"); 980 } 981 }); 982 983 984 985 986 }, 987 988 989 }; 990 }()); 991 $.fn.lettering = function(name) { 992 var t = this.text(), 993 tl = t.length, 994 r = ''; 995 for (var i = 0; i < tl; i++) { 996 r += '<span class="' + name + '-' + i + '">' + t[i] + '</span>'; 997 } 998 this.html(r); 999 }; 1000 1001 1002 $.fn.rotate = function(children) { 1003 this.css({ 1004 transform: 'rotate(-' + parseInt((360 / 80) * ((children.text().length - 1) / 2)) + 'deg)' 1005 }); 1006 }; 1007 1008 var parent = $('.circle'); 1009 var children = parent.children('.text'); 1010 1011 parent.rotate(children); 1012 children.lettering('char'); 1013 1014})(jQuery); 1015 1016 1017 1018jQuery(document).ready(function() { 1019
1020 jwsThemeModule.init(); 1021 1022}); 1023 1024 1025jQuery(document).ready(function($) { 1026 $('.hover-3d').liquidHover3d(); 1027}); 1028 1029(function($, window, document, undefined) { 1030 'use strict'; 1031 1032 var pluginName = 'liquidHoverPosition'; 1033 var defaults = {}; 1034 1035 function Plugin(element, options) { 1036 this.element = element; 1037 this.options = $.extend({}, defaults, options); 1038 this._defaults = defaults; 1039 this._name = pluginName; 1040 this.build(); 1041 } 1042 1043 Plugin.prototype = { 1044 build: function build() { 1045 this.$icon = $(this.element); 1046 1047 if (!this.$icon.length) { 1048 return; 1049 } 1050 1051 this.width = this.$icon.outerWidth(); 1052 this.height = this.$icon.outerHeight(); 1053 this.maxRotation = 8; 1054 this.maxTranslation = 4; 1055 this.init(); 1056 $(window).on('load resize', this.onWindowLoad.bind(this)); 1057 this.$icon.addClass('hover-3d-applied'); 1058 }, 1059 init: function init() { 1060 this.eventHandlers(); 1061 }, 1062 onWindowLoad: function onWindowLoad() { 1063 this.width = this.$icon.outerWidth(); 1064 this.height = this.$icon.outerHeight(); 1065 }, 1066 eventHandlers: function eventHandlers() { 1067 var self = this; 1068 self.$icon.on('mousemove', function(e) { 1069 self.hover.call(self, e); 1070 }).on('mouseleave', function(e) { 1071 self.leave.call(self, e); 1072 }); 1073 }, 1074 appleTvAnimate: function appleTvAnimate(element, config) { 1075 1076 var translate = " translate(" + config.xTranslationPercentage * -1 * config.maxTranslationX + "px," + config.yTranslationPercentage * -1 * config.maxTranslationY + "px)"; 1077 anime.remove(element.get(0)); // causing move issues 1078 1079 element.css({ 1080 transition: 'all 0.25s ease-out', 1081 transform: translate 1082 }); 1083 }, 1084 calculateRotationPercentage: function calculateRotationPercentage(offset, dimension) { 1085 return -2 / dimension * offset + 1; 1086 }, 1087 calculateTranslationPercentage: function calculateTranslationPercentage(offset, dimension) { 1088 return -2 / dimension * offset + 1; 1089 }, 1090 hover: function hover(e) { 1091 var that = this; 1092 var mouseOffsetInside = { 1093 x: e.pageX - this.$icon.offset().left, 1094 y: e.pageY - this.$icon.offset().top 1095 }; 1096 that.$icon.addClass('mouse-in'); 1097 var xRotationPercentage = this.calculateRotationPercentage(mouseOffsetInside.y, this.height); 1098 var yRotationPercentage = this.calculateRotationPercentage(mouseOffsetInside.x, this.width) * -1; 1099 var xTranslationPercentage = this.calculateTranslationPercentage(mouseOffsetInside.x, this.width); 1100 var yTranslationPercentage = this.calculateTranslationPercentage(mouseOffsetInside.y, this.height); 1101 this.$icon.find('[data-stacking-factor]').each(function(index, element) { 1102 var stackingFactor = $(element).attr('data-stacking-factor'); 1103 that.appleTvAnimate($(element), { 1104 maxTranslationX: that.maxTranslation * stackingFactor, 1105 maxTranslationY: that.maxTranslation * stackingFactor, 1106 maxRotationX: that.maxRotation * stackingFactor, 1107 maxRotationY: that.maxRotation * stackingFactor, 1108 xRotationPercentage: xRotationPercentage, 1109 yRotationPercentage: yRotationPercentage, 1110 xTranslationPercentage: xTranslationPercentage, 1111 yTranslationPercentage: yTranslationPercentage 1112 }); 1113 }); 1114 }, 1115 leave: function leave() { 1116 var that = this; 1117 that.$icon.removeClass('mouse-in'); 1118 this.$icon.find('[data-stacking-factor]').each(function(index, element) { 1119 that.appleTvAnimate($(element), { 1120 maxTranslationX: 0, 1121 maxTranslationY: 0, 1122 maxRotationX: 0, 1123 maxRotationY: 0, 1124 xRotationPercentage: 0, 1125 yRotationPercentage: 0, 1126 xTranslationPercentage: 0, 1127 yTranslationPercentage: 0 1128 }); 1129 }); 1130 } 1131 }; 1132 $.fn[pluginName] = function(options) { 1133 return this.each(function() { 1134 var pluginOptions = $(this).data('hover3d-options'); 1135 var opts = null; 1136 1137 if (pluginOptions) { 1138 opts = $.extend(true, {}, options, pluginOptions); 1139 } 1140 1141 if (!$.data(this, "plugin_" + pluginName)) { 1142 $.data(this, "plugin_" + pluginName, new Plugin(this, opts)); 1143 } 1144 }); 1145 }; 1146})(jQuery, window, document); 1147 1148 1149(function($, window, document, undefined) { 1150 'use strict'; 1151 1152 var pluginName = 'liquidHover3d'; 1153 var defaults = {}; 1154 1155 function Plugin(element, options) { 1156 this.element = element; 1157 this.options = $.extend({}, defaults, options); 1158 this._defaults = defaults; 1159 this._name = pluginName; 1160 this.build(); 1161 } 1162 1163 Plugin.prototype = { 1164 build: function build() { 1165 this.$icon = $(this.element); 1166 1167 if (!this.$icon.length) { 1168 return; 1169 } 1170 1171 this.width = this.$icon.outerWidth(); 1172 this.height = this.$icon.outerHeight(); 1173 this.maxRotation = 8; 1174 this.maxTranslation = 4; 1175 this.init(); 1176 $(window).on('load resize', this.onWindowLoad.bind(this)); 1177 this.$icon.addClass('hover-3d-applied'); 1178 },
1179 init: function init() { 1180 this.eventHandlers(); 1181 }, 1182 onWindowLoad: function onWindowLoad() { 1183 this.width = this.$icon.outerWidth(); 1184 this.height = this.$icon.outerHeight(); 1185 }, 1186 eventHandlers: function eventHandlers() { 1187 var self = this; 1188 self.$icon.on('mousemove', function(e) { 1189 self.hover.call(self, e); 1190 }).on('mouseleave', function(e) { 1191 self.leave.call(self, e); 1192 }); 1193 }, 1194 appleTvAnimate: function appleTvAnimate(element, config) { 1195 var rotate = "rotateX(" + config.xRotationPercentage * -1 * config.maxRotationX + "deg)" + " rotateY(" + config.yRotationPercentage * -1 * config.maxRotationY + "deg)"; 1196 var translate = " translate3d(" + config.xTranslationPercentage * -1 * config.maxTranslationX + "px," + config.yTranslationPercentage * -1 * config.maxTranslationY + "px, 0px)"; 1197 anime.remove(element.get(0)); // causing move issues 1198 1199 element.css({ 1200 transition: 'all 0.25s ease-out', 1201 transform: rotate + translate 1202 }); 1203 }, 1204 calculateRotationPercentage: function calculateRotationPercentage(offset, dimension) { 1205 return -2 / dimension * offset + 1; 1206 }, 1207 calculateTranslationPercentage: function calculateTranslationPercentage(offset, dimension) { 1208 return -2 / dimension * offset + 1; 1209 }, 1210 hover: function hover(e) { 1211 var that = this; 1212 var mouseOffsetInside = { 1213 x: e.pageX - this.$icon.offset().left, 1214 y: e.pageY - this.$icon.offset().top 1215 }; 1216 that.$icon.addClass('mouse-in'); 1217 var xRotationPercentage = this.calculateRotationPercentage(mouseOffsetInside.y, this.height); 1218 var yRotationPercentage = this.calculateRotationPercentage(mouseOffsetInside.x, this.width) * -1; 1219 var xTranslationPercentage = this.calculateTranslationPercentage(mouseOffsetInside.x, this.width); 1220 var yTranslationPercentage = this.calculateTranslationPercentage(mouseOffsetInside.y, this.height); 1221 this.$icon.find('[data-stacking-factor]').each(function(index, element) { 1222 var stackingFactor = $(element).attr('data-stacking-factor'); 1223 that.appleTvAnimate($(element), { 1224 maxTranslationX: that.maxTranslation * stackingFactor, 1225 maxTranslationY: that.maxTranslation * stackingFactor, 1226 maxRotationX: that.maxRotation * stackingFactor, 1227 maxRotationY: that.maxRotation * stackingFactor, 1228 xRotationPercentage: xRotationPercentage, 1229 yRotationPercentage: yRotationPercentage, 1230 xTranslationPercentage: xTranslationPercentage, 1231 yTranslationPercentage: yTranslationPercentage 1232 }); 1233 }); 1234 }, 1235 leave: function leave() { 1236 var that = this; 1237 that.$icon.removeClass('mouse-in'); 1238 this.$icon.find('[data-stacking-factor]').each(function(index, element) { 1239 anime.remove(element); 1240 that.appleTvAnimate($(element), { 1241 maxTranslationX: 0, 1242 maxTranslationY: 0, 1243 maxRotationX: 0, 1244 maxRotationY: 0, 1245 xRotationPercentage: 0, 1246 yRotationPercentage: 0, 1247 xTranslationPercentage: 0, 1248 yTranslationPercentage: 0 1249 }); 1250 }); 1251 } 1252 }; 1253 $.fn[pluginName] = function(options) { 1254 return this.each(function() { 1255 var pluginOptions = $(this).data('hover3d-options'); 1256 var opts = null; 1257 1258 if (pluginOptions) { 1259 opts = $.extend(true, {}, options, pluginOptions); 1260 } 1261 1262 if (!$.data(this, "plugin_" + pluginName)) { 1263 $.data(this, "plugin_" + pluginName, new Plugin(this, opts)); 1264 } 1265 }); 1266 }; 1267 1268})(jQuery, window, document); 1269 1270 1271jQuery(document).ready(function($) { 1272 $('.hover-3d').liquidHover3d(); 1273});
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.