1(function($) { 2 "use strict"; 3 4 window.edgtf = {}; 5 edgtf.modules = {}; 6 7 edgtf.scroll = 0; 8 edgtf.window = $(window); 9 edgtf.document = $(document); 10 edgtf.windowWidth = $(window).width(); 11 edgtf.windowHeight = $(window).height(); 12 edgtf.body = $('body'); 13 edgtf.html = $('html, body'); 14 edgtf.htmlEl = $('html'); 15 edgtf.menuDropdownHeightSet = false; 16 edgtf.defaultHeaderStyle = ''; 17 edgtf.minVideoWidth = 1500; 18 edgtf.videoWidthOriginal = 1280; 19 edgtf.videoHeightOriginal = 720; 20 edgtf.videoRatio = 1280/720; 21 22 edgtf.edgtfOnDocumentReady = edgtfOnDocumentReady; 23 edgtf.edgtfOnWindowResize = edgtfOnWindowResize; 24 edgtf.edgtfOnWindowScroll = edgtfOnWindowScroll; 25 26 $(document).ready(edgtfOnDocumentReady); 27 $(window).resize(edgtfOnWindowResize); 28 $(window).scroll(edgtfOnWindowScroll); 29 30 /* 31 All functions to be called on $(document).ready() should be in this function 32 */ 33 function edgtfOnDocumentReady() { 34 edgtf.scroll = $(window).scrollTop(); 35 36 //set global variable for header style which we will use in various functions 37 if(edgtf.body.hasClass('edgtf-dark-header')){ edgtf.defaultHeaderStyle = 'edgtf-dark-header';} 38 if(edgtf.body.hasClass('edgtf-light-header')){ edgtf.defaultHeaderStyle = 'edgtf-light-header';} 39 40 } 41 42 /* 43 All functions to be called on $(window).resize() should be in this function 44 */ 45 function edgtfOnWindowResize() { 46 edgtf.windowWidth = $(window).width(); 47 edgtf.windowHeight = $(window).height(); 48 } 49 50 /* 51 All functions to be called on $(window).scroll() should be in this function 52 */ 53 function edgtfOnWindowScroll() { 54 edgtf.scroll = $(window).scrollTop(); 55 } 56 57 58 59 //set boxed layout width variable for various calculations 60 61 switch(true){ 62 case edgtf.body.hasClass('edgtf-grid-1300'): 63 edgtf.boxedLayoutWidth = 1350; 64 break; 65 case edgtf.body.hasClass('edgtf-grid-1200'): 66 edgtf.boxedLayoutWidth = 1250; 67 break; 68 case edgtf.body.hasClass('edgtf-grid-1000'): 69 edgtf.boxedLayoutWidth = 1050; 70 break; 71 case edgtf.body.hasClass('edgtf-grid-800'): 72 edgtf.boxedLayoutWidth = 850; 73 break; 74 default : 75 edgtf.boxedLayoutWidth = 1150; 76 break; 77 } 78 79})(jQuery); 80(function($) { 81 "use strict"; 82 83 var common = {}; 84 edgtf.modules.common = common; 85 86 common.edgtfIsTouchDevice = edgtfIsTouchDevice; 87 common.edgtfDisableSmoothScrollForMac = edgtfDisableSmoothScrollForMac; 88 common.edgtfFluidVideo = edgtfFluidVideo; 89 common.edgtfPreloadBackgrounds = edgtfPreloadBackgrounds; 90 common.edgtfPrettyPhoto = edgtfPrettyPhoto; 91 common.edgtfCheckHeaderStyleOnScroll = edgtfCheckHeaderStyleOnScroll; 92 common.edgtfInitParallax = edgtfInitParallax; 93 //common.edgtfSmoothScroll = edgtfSmoothScroll; 94 common.edgtfEnableScroll = edgtfEnableScroll; 95 common.edgtfDisableScroll = edgtfDisableScroll; 96 common.edgtfWheel = edgtfWheel; 97 common.edgtfKeydown = edgtfKeydown; 98 common.edgtfPreventDefaultValue = edgtfPreventDefaultValue; 99 // common.edgtfOwlSlider = edgtfOwlSlider; 100 common.edgtfSlickSlider = edgtfSlickSlider; 101 common.edgtfInitSelfHostedVideoPlayer = edgtfInitSelfHostedVideoPlayer; 102 common.edgtfSelfHostedVideoSize = edgtfSelfHostedVideoSize; 103 common.edgtfInitBackToTop = edgtfInitBackToTop; 104 common.edgtfBackButtonShowHide = edgtfBackButtonShowHide; 105 common.edgtfSmoothTransition = edgtfSmoothTransition; 106 107 common.edgtfOnDocumentReady = edgtfOnDocumentReady; 108 common.edgtfOnWindowLoad = edgtfOnWindowLoad; 109 common.edgtfOnWindowResize = edgtfOnWindowResize; 110 common.edgtfOnWindowScroll = edgtfOnWindowScroll; 111 112 $(document).ready(edgtfOnDocumentReady); 113 $(window).on('load', edgtfOnWindowLoad); 114 $(window).resize(edgtfOnWindowResize); 115 $(window).scroll(edgtfOnWindowScroll); 116 117 /* 118 All functions to be called on $(document).ready() should be in this function 119 */ 120 function edgtfOnDocumentReady() { 121 edgtfIsTouchDevice(); 122 edgtfDisableSmoothScrollForMac(); 123 edgtfFluidVideo();
124 edgtfPreloadBackgrounds(); 125 edgtfPrettyPhoto(); 126 edgtfInitAnchor().init(); 127 edgtfInitVideoBackground(); 128 edgtfInitVideoBackgroundSize(); 129 edgtfSetContentBottomMargin(); 130 //edgtfSmoothScroll(); 131 //edgtfOwlSlider(); 132 edgtfSlickSlider(); 133 edgtfInitSelfHostedVideoPlayer(); 134 edgtfSelfHostedVideoSize(); 135 edgtfInitBackToTop(); 136 edgtfBackButtonShowHide(); 137 } 138 139 /* 140 All functions to be called on $(window).load() should be in this function 141 */ 142 function edgtfOnWindowLoad() { 143 edgtfCheckHeaderStyleOnScroll(); //called on load since all content needs to be loaded in order to calculate row's position right 144 edgtfInitParallax(); 145 edgtfSmoothTransition(); 146 edgtfInitElementsAnimations(); 147 edgtfInitOverlapingAnimation(); 148 edgtfElementorGlobal(); 149 } 150 151 /* 152 All functions to be called on $(window).resize() should be in this function 153 */ 154 function edgtfOnWindowResize() { 155 edgtfInitVideoBackgroundSize(); 156 edgtfSelfHostedVideoSize(); 157 } 158 159 /* 160 All functions to be called on $(window).scroll() should be in this function 161 */ 162 function edgtfOnWindowScroll() { 163 164 } 165 166 /* 167 ** Disable shortcodes animation on appear for touch devices 168 */ 169 function edgtfIsTouchDevice() { 170 if(Modernizr.touch && !edgtf.body.hasClass('edgtf-no-animations-on-touch')) { 171 edgtf.body.addClass('edgtf-no-animations-on-touch'); 172 } 173 } 174 175 /* 176 ** Disable smooth scroll for mac if smooth scroll is enabled 177 */ 178 function edgtfDisableSmoothScrollForMac() { 179 var os = navigator.appVersion.toLowerCase(); 180 181 if (os.indexOf('mac') > -1 && edgtf.body.hasClass('edgtf-smooth-scroll')) { 182 edgtf.body.removeClass('edgtf-smooth-scroll'); 183 } 184 } 185 186 function edgtfFluidVideo() { 187 fluidvids.init({ 188 selector: ['iframe'], 189 players: ['www.youtube.com', 'player.vimeo.com'] 190 }); 191 } 192 193 /** 194 * Init Owl Carousel 195 */ 196 /*function edgtfOwlSlider() { 197 198 var sliders = $('.edgtf-owl-slider'); 199 200 if (sliders.length) { 201 sliders.each(function(){ 202 203 var slider = $(this); 204 slider.owlCarousel({ 205 singleItem: true, 206 transitionStyle: 'fadeUp', 207 navigation: true, 208 autoHeight: true, 209 pagination: false, 210 navigationText: [ 211 '<span class="edgtf-prev-icon"><i class="fa fa-angle-left"></i></span>', 212 '<span class="edgtf-next-icon"><i class="fa fa-angle-right"></i></span>' 213 ] 214 }); 215 216 }); 217 } 218 219 }*/ 220 221 /** 222 * Init Slick Carousel 223 */ 224 function edgtfSlickSlider() { 225 226 var sliders = $('.edgtf-slick-slider'); 227 228 if (sliders.length) { 229 sliders.each(function(){ 230 var slider = $(this); 231 slider.waitForImages(function(){ 232 slider.slick({ 233 infinite: true, 234 autoplay: true, 235 slidesToShow : 1, 236 arrows: true, 237 dots: false, 238 adaptiveHeight: true, 239 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 240 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 241 customPaging: function(slider, i) { 242 return '<span class="edgtf-slick-dot-inner"></span>'; 243 } 244 }); 245 }); 246 }); 247 } 248 249 } 250 251 252 /* 253 * Preload background images for elements that have 'edgtf-preload-background' class 254 */ 255 function edgtfPreloadBackgrounds(){ 256 257 $(".edgtf-preload-background").each(function() {
258 var preloadBackground = $(this); 259 if(preloadBackground.css("background-image") !== "" && preloadBackground.css("background-image") != "none") { 260 261 var bgUrl = preloadBackground.attr('style'); 262 263 bgUrl = bgUrl.match(/url\(["']?([^'")]+)['"]?\)/); 264 bgUrl = bgUrl ? bgUrl[1] : ""; 265 266 if (bgUrl) { 267 var backImg = new Image(); 268 backImg.src = bgUrl; 269 $(backImg).on('load', function(){ 270 preloadBackground.removeClass('edgtf-preload-background'); 271 }); 272 } 273 }else{ 274 $(window).on('load', function(){ preloadBackground.removeClass('edgtf-preload-background'); }); //make sure that edgtf-preload-background class is removed from elements with forced background none in css 275 } 276 }); 277 } 278 279 function edgtfPrettyPhoto() { 280 /*jshint multistr: true */ 281 var markupWhole = '<div class="pp_pic_holder"> \ 282 <div class="ppt"> </div> \ 283 <div class="pp_top"> \ 284 <div class="pp_left"></div> \ 285 <div class="pp_middle"></div> \ 286 <div class="pp_right"></div> \ 287 </div> \ 288 <div class="pp_content_container"> \ 289 <div class="pp_left"> \ 290 <div class="pp_right"> \ 291 <div class="pp_content"> \ 292 <div class="pp_loaderIcon"></div> \ 293 <div class="pp_fade"> \ 294 <a href="#" class="pp_expand" title="Expand the image">Expand</a> \ 295 <div class="pp_hoverContainer"> \ 296 <a class="pp_next" href="#"><span class="fa fa-angle-right"></span></a> \ 297 <a class="pp_previous" href="#"><span class="fa fa-angle-left"></span></a> \ 298 </div> \ 299 <div id="pp_full_res"></div> \ 300 <div class="pp_details"> \ 301 <div class="pp_nav"> \ 302 <a href="#" class="pp_arrow_previous">Previous</a> \ 303 <p class="currentTextHolder">0/0</p> \ 304 <a href="#" class="pp_arrow_next">Next</a> \ 305 </div> \ 306 <p class="pp_description"></p> \ 307 {pp_social} \ 308 <a class="pp_close" href="#">Close</a> \ 309 </div> \ 310 </div> \ 311 </div> \ 312 </div> \ 313 </div> \ 314 </div> \ 315 <div class="pp_bottom"> \ 316 <div class="pp_left"></div> \ 317 <div class="pp_middle"></div> \ 318 <div class="pp_right"></div> \ 319 </div> \ 320 </div> \ 321 <div class="pp_overlay"></div>'; 322 323 $("a[data-rel^='prettyPhoto']").prettyPhoto({ 324 hook: 'data-rel', 325 animation_speed: 'normal', /* fast/slow/normal */ 326 slideshow: false, /* false OR interval time in ms */ 327 autoplay_slideshow: false, /* true/false */ 328 opacity: 0.80, /* Value between 0 and 1 */ 329 show_title: true, /* true/false */ 330 allow_resize: true, /* Resize the photos bigger than viewport. true/false */ 331 horizontal_padding: 0, 332 default_width: 960, 333 default_height: 540, 334 counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */ 335 theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */ 336 hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */ 337 wmode: 'opaque', /* Set the flash wmode attribute */ 338 autoplay: true, /* Automatically start videos: True/False */ 339 modal: false, /* If set to true, only the close button will close the window */ 340 overlay_gallery: false, /* If set to true, a gallery will overlay the fullscreen image on mouse over */ 341 keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */ 342 deeplinking: false, 343 custom_markup: '', 344 social_tools: false, 345 markup: markupWhole 346 }); 347 } 348 349 /* 350 * Check header style on scroll, depending on row settings 351 */ 352 function edgtfCheckHeaderStyleOnScroll(){ 353 354 if($('[data-edgtf_header_style]').length > 0 && edgtf.body.hasClass('edgtf-header-style-on-scroll')) { 355 356 var waypointSelectors = $('.wpb_row.edgtf-section'); 357 var changeStyle = function(element){ 358 (element.data("edgtf_header_style") !== undefined) ? edgtf.body.removeClass('edgtf-dark-header edgtf-light-header').addClass(element.data("edgtf_header_style")) : edgtf.body.removeClass('edgtf-dark-header edgtf-light-header').addClass(''+edgtf.defaultHeaderStyle); 359 }; 360
361 waypointSelectors.waypoint( function(direction) { 362 if(direction === 'down') { changeStyle($(this.element)); } 363 }, { offset: 0}); 364 365 waypointSelectors.waypoint( function(direction) { 366 if(direction === 'up') { changeStyle($(this.element)); } 367 }, { offset: function(){ 368 return -$(this.element).outerHeight(); 369 } }); 370 } 371 } 372 373 /* 374 * Start animations on elements 375 */ 376 function edgtfInitElementsAnimations(){ 377 378 var touchClass = $('.edgtf-no-animations-on-touch'), 379 noAnimationsOnTouch = true, 380 elements = $('.edgtf-grow-in, .edgtf-fade-in-down, .edgtf-element-from-fade, .edgtf-element-from-left, .edgtf-element-from-right, .edgtf-element-from-top, .edgtf-element-from-bottom, .elementor-editor-active .edgtf-elementor-admin-edgtf-element-from-fade, .elementor-editor-active .edgtf-elementor-admin-edgtf-element-from-left, .elementor-editor-active .edgtf-elementor-admin-edgtf-element-from-right, .elementor-editor-active .edgtf-elementor-admin-edgtf-element-from-top, .elementor-editor-active .edgtf-elementor-admin-edgtf-element-from-bottom, .edgtf-flip-in, .edgtf-x-rotate, .edgtf-z-rotate, .edgtf-y-translate, .edgtf-fade-in, .edgtf-fade-in-left-x-rotate'), 381 clasess, 382 animationClass, 383 animationData, 384 helperHolder, 385 delay = 0; 386 387 if (touchClass.length) { 388 noAnimationsOnTouch = false; 389 } 390 391 if(elements.length > 0 && noAnimationsOnTouch){ 392 elements.each(function(){ 393 394 //Elementor admin fx 395 helperHolder = $(this).find('.edgtf-section-animation-helper-holder'); 396 if( helperHolder.length ){ 397 delay = helperHolder.data('delay'); 398 var elementorAnimationDiv = $(this).find('.elementor-container > div'); 399 if( typeof delay !== 'undefined' && elementorAnimationDiv.length){ 400 delay += 'ms'; 401 elementorAnimationDiv.css({'transition-delay':delay, '-webkit-animation-delay':delay, 'animation-delay':delay}) 402 } 403 } 404 $(this).appear(function() { 405 if(helperHolder.length){ 406 animationData = helperHolder.data('animation'); 407 } else{ 408 animationData = $(this).data('animation'); 409 } 410 411 if(typeof animationData !== 'undefined' && animationData !== '') { 412 animationClass = animationData; 413 $(this).addClass(animationClass+'-on'); 414 } 415 },{accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount}); 416 }); 417 } 418 419 } 420 421 422/* 423 ** Sections with parallax background image 424 */ 425function edgtfInitParallax(){ 426 427 if($('.edgtf-parallax-section-holder').length){ 428 $('.edgtf-parallax-section-holder').each(function() { 429 var parallaxElement = $(this), 430 helperHolder = parallaxElement.find('.edgtf-parallax-helper-holder'), 431 speed; 432 433 if(parallaxElement.hasClass('edgtf-full-screen-height-parallax')){ 434 parallaxElement.height(edgtf.windowHeight); 435 parallaxElement.find('.edgtf-parallax-content-outer').css('padding',0); 436 } 437 438 if( helperHolder.length ){ 439 speed = helperHolder.data('parallax-bg-speed') * 0.4; 440 } else{ 441 speed = parallaxElement.data('edgtf-parallax-speed')*0.4; 442 } 443 444 parallaxElement.parallax("50%", speed); 445 }); 446 } 447} 448 449/* 450 ** Anchor functionality 451 */ 452var edgtfInitAnchor = edgtf.modules.common.edgtfInitAnchor = function() { 453 454 /** 455 * Set active state on clicked anchor 456 * @param anchor, clicked anchor 457 */ 458 var setActiveState = function(anchor){ 459 460 $('.edgtf-main-menu .edgtf-active-item, .edgtf-mobile-nav .edgtf-active-item, .edgtf-vertical-menu .edgtf-active-item, .edgtf-fullscreen-menu .edgtf-active-item').removeClass('edgtf-active-item'); 461 anchor.parent().addClass('edgtf-active-item'); 462 463 $('.edgtf-main-menu a, .edgtf-mobile-nav a, .edgtf-vertical-menu a, .edgtf-fullscreen-menu a').removeClass('current'); 464 anchor.addClass('current'); 465 }; 466 467 /** 468 * Check anchor active state on scroll 469 */ 470 var checkActiveStateOnScroll = function(){ 471 472 $('[data-edgtf-anchor]').waypoint( function(direction) { 473 if(direction === 'down') {
474 setActiveState($("a[href='"+window.location.href.split('#')[0]+"#"+$(this.element).data("edgtf-anchor")+"']")); 475 } 476 }, { offset: '50%' }); 477 478 $('[data-edgtf-anchor]').waypoint( function(direction) { 479 if(direction === 'up') { 480 setActiveState($("a[href='"+window.location.href.split('#')[0]+"#"+$(this.element).data("edgtf-anchor")+"']")); 481 } 482 }, { offset: function(){ 483 return -($(this.element).outerHeight() - 150); 484 } }); 485 486 }; 487 488 /** 489 * Check anchor active state on load 490 */ 491 var checkActiveStateOnLoad = function(){ 492 var hash = window.location.hash.split('#')[1]; 493 494 if(hash !== "" && $('[data-edgtf-anchor="'+hash+'"]').length > 0){ 495 //triggers click which is handled in 'anchorClick' function 496 var linkURL = window.location.href.split('#')[0]+"#"+hash; 497 if($("a[href='"+linkURL+"']").length){ //if there is a link on page with such href 498 $("a[href='"+linkURL+"']").trigger( "click" ); 499 }else{ //than create a fake link and click it 500 var link = $('<a/>').attr({'href':linkURL,'class':'edgtf-anchor'}).appendTo('body'); 501 link.trigger('click'); 502 } 503 } 504 }; 505 506 /** 507 * Calculate header height to be substract from scroll amount 508 * @param anchoredElementOffset, anchorded element offest 509 */ 510 var headerHeihtToSubtract = function(anchoredElementOffset, anchoredElementPosition){ 511 512 var headerHeight; 513 if(edgtf.windowWidth > 1000) { 514 515 if (edgtf.modules.header.behaviour == 'edgtf-sticky-header-on-scroll-down-up') { 516 (anchoredElementOffset > edgtf.modules.header.stickyAppearAmount) ? edgtf.modules.header.isStickyVisible = true : edgtf.modules.header.isStickyVisible = false; 517 } 518 519 if (edgtf.modules.header.behaviour == 'edgtf-sticky-header-on-scroll-up') { 520 (anchoredElementOffset > edgtf.scroll) ? edgtf.modules.header.isStickyVisible = false : ''; 521 } 522 523 headerHeight = edgtf.modules.header.isStickyVisible ? edgtfGlobalVars.vars.edgtfStickyHeaderTransparencyHeight :edgtfPerPageVars.vars.edgtfHeaderTransparencyHeight; 524 } 525 526 else { 527 if (anchoredElementPosition === 'down') { 528 headerHeight = anchoredElementOffset > edgtf.modules.header.stickyMobileAppearAmount ? 0 : edgtf.modules.header.stickyMobileAppearAmount; 529 } 530 else { 531 headerHeight = edgtfGlobalVars.vars.edgtfMobileHeaderHeight; 532 } 533 } 534 return headerHeight; 535 }; 536 537 /** 538 * Handle anchor click 539 */ 540 var anchorClick = function() { 541 edgtf.document.on("click", ".edgtf-main-menu a, .edgtf-vertical-menu a, .edgtf-fullscreen-menu a, .edgtf-btn, .edgtf-anchor, .edgtf-mobile-nav a", function() { 542 var scrollAmount; 543 var anchor = $(this); 544 var hash = anchor.prop("hash").split('#')[1]; 545 546 if(hash !== "" && $('[data-edgtf-anchor="' + hash + '"]').length > 0 /*&& anchor.attr('href').split('#')[0] == window.location.href.split('#')[0]*/) { 547 548 var anchoredElementOffset = $('[data-edgtf-anchor="' + hash + '"]').offset().top; 549 var anchoredElementPosition = anchoredElementOffset > edgtf.scroll ? 'down' : 'up'; 550 scrollAmount = $('[data-edgtf-anchor="' + hash + '"]').offset().top - headerHeihtToSubtract(anchoredElementOffset, anchoredElementPosition); 551
552 setActiveState(anchor); 553 554 edgtf.html.stop().animate({ 555 scrollTop: Math.round(scrollAmount) 556 }, 2000, 'easeInOutCubic', function() { 557 //change hash tag in url 558 if(history.pushState) { history.pushState(null, null, '#'+hash); } 559 }); 560 return false; 561 } 562 }); 563 }; 564 565 return { 566 init: function() { 567 if($('[data-edgtf-anchor]').length) { 568 anchorClick(); 569 checkActiveStateOnScroll(); 570 $(window).on('load', function() { checkActiveStateOnLoad(); }); 571 } 572 } 573 }; 574 575}; 576 577/* 578 ** Video background initialization 579 */ 580function edgtfInitVideoBackground(){ 581 582 $('.edgtf-section .edgtf-video-wrap .edgtf-video').mediaelementplayer({ 583 enableKeyboard: false, 584 iPadUseNativeControls: false, 585 pauseOtherPlayers: false, 586 // force iPhone's native controls 587 iPhoneUseNativeControls: false, 588 // force Android's native controls 589 AndroidUseNativeControls: false 590 }); 591 592 //mobile check 593 if(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|IEMobile|Opera Mini)/)){ 594 edgtfInitVideoBackgroundSize(); 595 $('.edgtf-section .edgtf-mobile-video-image').show(); 596 $('.edgtf-section .edgtf-video-wrap').remove(); 597 } 598} 599 600 /* 601 ** Calculate video background size 602 */ 603 function edgtfInitVideoBackgroundSize(){ 604 605 $('.edgtf-section .edgtf-video-wrap').each(function(){ 606 607 var element = $(this); 608 var sectionWidth = element.closest('.edgtf-section').outerWidth(); 609 element.width(sectionWidth); 610 611 var sectionHeight = element.closest('.edgtf-section').outerHeight(); 612 edgtf.minVideoWidth = edgtf.videoRatio * (sectionHeight+20); 613 element.height(sectionHeight); 614 615 var scaleH = sectionWidth / edgtf.videoWidthOriginal; 616 var scaleV = sectionHeight / edgtf.videoHeightOriginal; 617 var scale = scaleV; 618 if (scaleH > scaleV) 619 scale = scaleH; 620 if (scale * edgtf.videoWidthOriginal < edgtf.minVideoWidth) {scale = edgtf.minVideoWidth / edgtf.videoWidthOriginal;} 621 622 element.find('video, .mejs-overlay, .mejs-poster').width(Math.ceil(scale * edgtf.videoWidthOriginal +2)); 623 element.find('video, .mejs-overlay, .mejs-poster').height(Math.ceil(scale * edgtf.videoHeightOriginal +2)); 624 element.scrollLeft((element.find('video').width() - sectionWidth) / 2); 625 element.find('.mejs-overlay, .mejs-poster').scrollTop((element.find('video').height() - (sectionHeight)) / 2); 626 element.scrollTop((element.find('video').height() - sectionHeight) / 2); 627 }); 628 629 } 630 631 /* 632 ** Set content bottom margin because of the uncovering footer 633 */ 634 function edgtfSetContentBottomMargin() { 635 var uncoverFooter = $('body:not(.error404) .edgtf-footer-uncover'); 636 637 if(uncoverFooter.length && edgtf.windowWidth > 1024){ 638 var footer = $('footer'), 639 footerHeight = footer.find('.edgtf-footer-inner').outerHeight(), 640 content = $('.edgtf-content'); 641 642 var uncoveringCalcs = function() { 643 content.css('margin-bottom', footerHeight); 644 footer.css('height', footerHeight); 645 }; 646 647 //set 648 uncoveringCalcs(); 649 content.css('background-color', edgtf.body.css('background-color')); 650 651 $(window).resize(function(){ 652 //recalc 653 footerHeight = footer.find('.edgtf-footer-inner').outerHeight(); 654 uncoveringCalcs(); 655 }); 656 } 657 } 658 659 function edgtfDisableScroll() { 660 661 if (window.addEventListener) { 662 window.addEventListener('wheel', edgtfWheel, {passive: false}); 663 } 664 // window.onmousewheel = document.onmousewheel = edgtfWheel; 665 document.onkeydown = edgtfKeydown; 666 667 if(edgtf.body.hasClass('edgtf-smooth-scroll')){ 668 window.removeEventListener('mousewheel', smoothScrollListener, false); 669 window.removeEventListener('wheel', smoothScrollListener, {passive: false}); 670 } 671 } 672 673 function edgtfEnableScroll() { 674 if (window.removeEventListener) { 675 window.removeEventListener('wheel', edgtfWheel, {passive: false}); 676 } 677 window.onmousewheel = document.onmousewheel = document.onkeydown = null; 678 679 if(edgtf.body.hasClass('edgtf-smooth-scroll')){ 680 window.addEventListener('mousewheel', smoothScrollListener, false); 681 window.addEventListener('wheel', smoothScrollListener, {passive: false}); 682 } 683 } 684 685 function edgtfWheel(e) { 686 edgtfPreventDefaultValue(e); 687 } 688 689 function edgtfKeydown(e) { 690 var keys = [37, 38, 39, 40]; 691 692 for (var i = keys.length; i--;) { 693 if (e.keyCode === keys[i]) { 694 edgtfPreventDefaultValue(e); 695 return; 696 } 697 } 698 } 699 700 function edgtfPreventDefaultValue(e) { 701 e = e || window.event; 702 if (e.preventDefault) { 703 e.preventDefault(); 704 } 705 e.returnValue = false;
706 } 707 708 function edgtfInitSelfHostedVideoPlayer() { 709 710 var players = $('.edgtf-self-hosted-video'); 711 players.mediaelementplayer({ 712 audioWidth: '100%' 713 }); 714 } 715 716 function edgtfSelfHostedVideoSize(){ 717 718 $('.edgtf-self-hosted-video-holder .edgtf-video-wrap').each(function(){ 719 var thisVideo = $(this); 720 721 var videoWidth = thisVideo.closest('.edgtf-self-hosted-video-holder').outerWidth(); 722 var videoHeight = videoWidth / edgtf.videoRatio; 723 724 if(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|IEMobile|Opera Mini)/)){ 725 thisVideo.parent().width(videoWidth); 726 thisVideo.parent().height(videoHeight); 727 } 728 729 thisVideo.width(videoWidth); 730 thisVideo.height(videoHeight); 731 732 thisVideo.find('video, .mejs-overlay, .mejs-poster').width(videoWidth); 733 thisVideo.find('video, .mejs-overlay, .mejs-poster').height(videoHeight); 734 }); 735 } 736 737 function edgtfToTopButton(a) { 738 739 var b = $("#edgtf-back-to-top"); 740 b.removeClass('off on'); 741 if (a === 'on') { b.addClass('on'); } else { b.addClass('off'); } 742 } 743 744 function edgtfBackButtonShowHide(){ 745 edgtf.window.scroll(function () { 746 var b = $(this).scrollTop(); 747 var c = $(this).height(); 748 var d; 749 if (b > 0) { d = b + c / 2; } else { d = 1; } 750 if (d < 1e3) { edgtfToTopButton('off'); } else { edgtfToTopButton('on'); } 751 }); 752 } 753 754 function edgtfInitBackToTop(){ 755 var backToTopButton = $('#edgtf-back-to-top'); 756 backToTopButton.on('click',function(e){ 757 e.preventDefault(); 758 edgtf.html.animate({scrollTop: 0}, edgtf.window.scrollTop()/2, 'easeInOutCubic'); 759 }); 760 } 761 762 function edgtfSmoothTransition() { 763 764 if (edgtf.body.hasClass('edgtf-smooth-page-transitions')) { 765 766 //check for preload animation 767 if (edgtf.body.hasClass('edgtf-smooth-page-transitions-preloader')) { 768 var loader = $('body > .edgtf-smooth-transition-loader.edgtf-mimic-ajax'); 769 loader.fadeOut(500); 770 $(window).on("pageshow", function (event) { 771 if (event.originalEvent.persisted) { 772 loader.fadeOut(500); 773 } 774 }); 775 } 776 777 // if back button is pressed, than reload page to avoid state where content is on display:none 778 779 window.addEventListener( "pageshow", function ( event ) { 780 var historyPath = event.persisted || ( typeof window.performance != "undefined" && window.performance.navigation.type === 2 ); 781 if ( historyPath ) { 782 window.location.reload(); 783 } 784 }); 785 786 //check for fade out animation 787 if(edgtf.body.hasClass('edgtf-smooth-page-transitions-fadeout')) { 788 if ($('a').parent().hasClass('edgtf-blog-load-more-button') || $('a').parent().hasClass('edgtf-ptf-list-load-more')) { 789 return false; 790 } 791 $('a').on('click',function (e) { 792 var a = $(this); 793 if ( 794 e.which == 1 && // check if the left mouse button has been pressed 795 a.attr('href').indexOf(window.location.host) >= 0 && // check if the link is to the same domain 796 (typeof a.data('rel') === 'undefined') && //Not pretty photo link 797 (typeof a.attr('rel') === 'undefined') && //Not VC pretty photo link 798 !a.hasClass('edgtf-like') && //Not like link 799 !a.hasClass('edgtf-no-link') && //Not edgtf-no-link class 800 (typeof a.attr('target') === 'undefined' || a.attr('target') === '_self') && // check if the link opens in the same window 801 (a.attr('href').split('#')[0] !== window.location.href.split('#')[0]) // check if it is an anchor aiming for a different page 802 ) { 803 e.preventDefault(); 804 $('.edgtf-wrapper-inner').fadeOut(1000, function () { 805 window.location = a.attr('href'); 806 }); 807 } 808 }); 809 } 810 } 811 } 812 /* 813 * Animations for overlapping content 814 */ 815 function edgtfInitOverlapingAnimation(){ 816 817 var touchClass = $('.edgtf-no-animations-on-touch'), 818 noAnimationsOnTouch = true, 819 elements = $('.edgtf-overlapping-content-holder'); 820 821 if (touchClass.length) { 822 noAnimationsOnTouch = false;
823 } 824 825 if(elements.length){ 826 elements.each(function(){ 827 var element = $(this); 828 if(noAnimationsOnTouch) { 829 element.appear(function() { 830 setTimeout(function(){ 831 element.addClass('edgtf-animated'); 832 },100); 833 },{accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount + 200}); 834 } else { 835 element.addClass('edgtf-appeared'); 836 } 837 }); 838 } 839 840 } 841 842 function edgtfElementorGlobal(){ 843 $(window).on('elementor/frontend/init', function () { 844 elementorFrontend.hooks.addAction( 'frontend/element_ready/global', function() { 845 edgtfInitParallax(); 846 edgtfInitElementsAnimations(); 847 }); 848 }); 849 } 850 851})(jQuery); 852 853 854 855(function($) { 856 'use strict'; 857 858 var ajax = {}; 859 860 edgtf.modules.ajax = ajax; 861 862 var animation = {}; 863 ajax.animation = animation; 864 865 ajax.edgtfFetchPage = edgtfFetchPage; 866 ajax.edgtfInitAjax = edgtfInitAjax; 867 ajax.edgtfHandleLinkClick = edgtfHandleLinkClick; 868 ajax.edgtfInsertFetchedContent = edgtfInsertFetchedContent; 869 ajax.edgtfInitBackBehavior = edgtfInitBackBehavior; 870 ajax.edgtfSetActiveState = edgtfSetActiveState; 871 ajax.edgtfReinitiateAll = edgtfReinitiateAll; 872 ajax.edgtfHandleMeta = edgtfHandleMeta; 873 874 ajax.edgtfOnDocumentReady = edgtfOnDocumentReady; 875 ajax.edgtfOnWindowLoad = edgtfOnWindowLoad; 876 ajax.edgtfOnWindowResize = edgtfOnWindowResize; 877 ajax.edgtfOnWindowScroll = edgtfOnWindowScroll; 878 879 $(document).ready(edgtfOnDocumentReady); 880 $(window).on('load', edgtfOnWindowLoad); 881 $(window).resize(edgtfOnWindowResize); 882 $(window).scroll(edgtfOnWindowScroll); 883 884 /* 885 All functions to be called on $(document).ready() should be in this function 886 */ 887 function edgtfOnDocumentReady() { 888 edgtfInitAjax(); 889 } 890 891 /* 892 All functions to be called on $(window).load() should be in this function 893 */ 894 function edgtfOnWindowLoad() { 895 edgtfHandleAjaxFader(); 896 } 897 898 /* 899 All functions to be called on $(window).resize() should be in this function 900 */ 901 function edgtfOnWindowResize() { 902 } 903 904 /* 905 All functions to be called on $(window).scroll() should be in this function 906 */ 907 function edgtfOnWindowScroll() { 908 } 909 910 911 var loadedPageFlag = true; // Indicates whether the page is loaded 912 var firstLoad = true; // Indicates whether this is the first loaded page, for back button functionality 913 animation.type = null; 914 animation.time = 500; // Duration of animation for the content to be changed 915 animation.simultaneous = true; // False indicates that the new content should wait for the old content to disappear, true means that it appears at the same time as the old content disappears 916 animation.loader = null; 917 animation.loaderTime = 500; 918 919 /** 920 * Fetching the targeted page 921 */ 922 function edgtfFetchPage(params, destinationSelector, targetSelector) { 923 924 function setDefaultParam(key,value) { 925 params[key] = typeof params[key] !== 'undefined' ? params[key] : value; 926 } 927 928 destinationSelector = typeof destinationSelector !== 'undefined' ? destinationSelector : '.edgtf-content'; 929 targetSelector = typeof targetSelector !== 'undefined' ? targetSelector : '.edgtf-content'; 930 931 // setting default ajax parameters 932 params = typeof params !== 'undefined' ? params : {}; 933 934 setDefaultParam('url', window.location.href); 935 setDefaultParam('type', 'POST'); 936 setDefaultParam('success', function(response) { 937 var jResponse = $(response); 938 939 var meta = jResponse.find('.edgtf-meta'); 940 if (meta.length) { edgtfHandleMeta(meta); } 941 942 var new_content = jResponse.find(targetSelector); 943 if (!new_content.length) { 944 loadedPageFlag = true; 945 return false; 946 } 947 else { 948 edgtfInsertFetchedContent(params.url, new_content, destinationSelector); 949 } 950 }); 951 952 // setting data parameters 953 setDefaultParam('ajaxReq', 'yes'); 954 //setDefaultParam('hasHeader', edgtf.body.find('header').length ? true : false); 955 //setDefaultParam('hasFooter', edgtf.body.find('footer').length ? true : false); 956 957 $.ajax({ 958 url: params.url, 959 type: params.type, 960 data: { 961 ajaxReq: params.ajaxReq 962 //hasHeader: params.hasHeader, 963 //hasFooter: params.hasFooter 964 }, 965 success: params.success 966 }); 967 } 968 969 function edgtfHandleAjaxFader() { 970 var isElementorEditMode = false;
971 972 if( typeof elementorFrontend !== 'undefined'){ 973 isElementorEditMode = Boolean(elementorFrontend.isEditMode()); 974 } 975 976 if (animation.loader !== null && animation.loader.length) { 977 animation.loader.fadeOut(animation.loaderTime); 978 $(window).on("pageshow", function(event) { 979 if (event.originalEvent.persisted) { 980 animation.loader.fadeOut(animation.loaderTime); 981 } 982 }); 983 } 984 985 if(isElementorEditMode && animation.loader !== null){ 986 animation.loader.fadeOut(animation.loaderTime); 987 } 988 } 989 990 function edgtfInitAjax() { 991 edgtf.body.removeClass('page-not-loaded'); // Might be necessary for ajax calls 992 animation.loader = $('body > .edgtf-smooth-transition-loader.edgtf-ajax'); 993 if (animation.loader !== null && animation.loader.length) { 994 995 if(edgtf.body.hasClass('woocommerce') || edgtf.body.hasClass('woocommerce-page')) { 996 return false; 997 } 998 else { 999 edgtfInitBackBehavior(); 1000 $(document).on('click', 'a[target!="_blank"]:not(.no-ajax):not(.no-link)', function(click) { 1001 var link = $(this); 1002 1003 if(click.ctrlKey == 1) { // Check if CTRL key is held with the click 1004 window.open(link.attr('href'), '_blank'); 1005 return false; 1006 } 1007 1008 if(link.parents('.edgtf-ptf-load-more').length){ return false; } // Don't initiate ajax for portfolio load more link 1009 1010 if(link.parents('.edgtf-blog-load-more-button').length){ return false; } // Don't initiate ajax for blog load more link 1011 1012 if(link.parents('edgtf-post-info-comments').length){ // If it's a comment link, don't load any content, just scroll to the comments section 1013 var hash = link.attr('href').split("#")[1]; 1014 $('html, body').scrollTop( $("#"+hash).offset().top ); 1015 return false; 1016 } 1017 1018 if(window.location.href.split('#')[0] == link.attr('href').split('#')[0]){ return false; } // If the link leads to the same page, don't use ajax 1019 1020 if(link.closest('.edgtf-no-animation').length === 0){ // If no parents are set to no-animation... 1021 1022 if(document.location.href.indexOf("?s=") >= 0){ // Don't use ajax if currently on search page 1023 return true; 1024 } 1025 if(link.attr('href').indexOf("wp-admin") >= 0){ // Don't use ajax for wp-admin 1026 return true; 1027 } 1028 if(link.attr('href').indexOf("wp-content") >= 0){ // Don't use ajax for wp-content 1029 return true; 1030 } 1031 1032 if(jQuery.inArray(link.attr('href').split('#')[0], edgtfGlobalVars.vars.no_ajax_pages) !== -1){ // If the target page is a no-ajax page, don't use ajax 1033 document.location.href = link.attr('href'); 1034 return false; 1035 } 1036 1037 if((link.attr('href') !== "http://#") && (link.attr('href') !== "#")){ // Don't use ajax if the link is empty 1038 //disableHashChange = true; 1039 1040 var url = link.attr('href'); 1041 var start = url.indexOf(window.location.protocol + '//' + window.location.host); // Check if the link leads to the same domain 1042 if(start === 0){ 1043 if(!loadedPageFlag){ return false; } //if page is not loaded don't load next one 1044 click.preventDefault(); 1045 click.stopImmediatePropagation(); 1046 click.stopPropagation(); 1047 if (!link.is('.current')) { 1048 edgtfHandleLinkClick(link); 1049 } 1050 } 1051 1052 }else{ 1053 return false;
1054 } 1055 } 1056 }); 1057 } 1058 } 1059 } 1060 1061 function edgtfInitBackBehavior() { 1062 if (window.history.pushState) { 1063 /* the below code is to override back button to get the ajax content without reload*/ 1064 $(window).on('popstate', function() { 1065 "use strict"; 1066 1067 var url = location.href; 1068 if (!firstLoad && loadedPageFlag) { 1069 loadedPageFlag = false; 1070 edgtfFetchPage({ 1071 url: url 1072 }); 1073 } 1074 }); 1075 } 1076 } 1077 1078 function edgtfHandleLinkClick(link) { 1079 loadedPageFlag = false; 1080 animation.loader.fadeIn(animation.loaderTime); 1081 edgtfFetchPage({ 1082 url: link.attr('href') 1083 }); 1084 } 1085 1086 function edgtfSetActiveState(url) { 1087 var me = $("nav a[href='"+url+"'], .widget_nav_menu a[href='"+url+"']"); 1088 1089 $('.edgtf-main-menu a, .edgtf-mobile-nav a, .edgtf-mobile-nav h4, .edgtf-vertical-menu a, .popup_menu a, .widget_nav_menu a').removeClass('current').parent().removeClass('edgtf-active-item'); 1090 //$('.main_menu a, .mobile_menu a, .mobile_menu h4, .vertical_menu a, .popup_menu a').parent().removeClass('active'); 1091 $('.widget_nav_menu ul.menu > li').removeClass('current-menu-item'); 1092 1093 me.each(function() { 1094 var me = $(this); 1095 1096 if(me.closest('.edgtf-menu-second').length === 0){ 1097 me.parent().addClass('edgtf-active-item'); 1098 }else{ 1099 me.closest('.edgtf-menu-second').parent().addClass('edgtf-active-item'); 1100 } 1101 1102 if(me.closest('.edgtf-mobile-nav').length > 0){ 1103 me.closest('.level0').addClass('edgtf-active-item'); 1104 me.closest('.level1').addClass('edgtf-active-item'); 1105 me.closest('.level2').addClass('edgtf-active-item'); 1106 } 1107 1108 if(me.closest('.widget_nav_menu').length > 0){ 1109 me.closest('.widget_nav_menu').find('.menu-item').addClass('current-menu-item'); 1110 } 1111 1112 1113 //$('.edgtf-main-menu a, .edgtf-mobile-nav a, .edgtf-vertical-menu a, .popup_menu a').removeClass('current'); 1114 me.addClass('current'); 1115 }); 1116 } 1117 1118 /** 1119 * Reinitialize all functions 1120 * 1121 * @param modulesToExclude - array of modules to exclude from reinitialization 1122 */ 1123 function edgtfReinitiateAll( modulesToExclude ) { 1124 $(document).off(); // Remove all event handlers before reinitialization 1125 $(window).off(); 1126 edgtf.body.off().find('*').off(); // Remove all event handlers before reinitialization 1127 1128 edgtf.edgtfOnDocumentReady(); // Trigger all functions upon new page load 1129 edgtf.edgtfOnWindowLoad(); // Trigger all functions upon new page load 1130 $(window).resize(edgtf.edgtfOnWindowResize); // Reassign handles for resize and scroll events 1131 $(window).scroll(edgtf.edgtfOnWindowScroll); // Reassign handles for resize and scroll events 1132 1133 var defaultModules = ['common', 'ajax', 'header', 'title', 'shortcodes', 'woocommerce', 'portfolio', 'blog', 'like']; 1134 var modules = []; 1135 1136 if ( typeof modulesToExclude !== 'undefined' && modulesToExclude.length ) { 1137 defaultModules.forEach(function(key) { 1138 if (-1 === modulesToExclude.indexOf(key)) { 1139 modules.push(key); 1140 } 1141 }, this); 1142 } else { 1143 modules = defaultModules; 1144 } 1145 1146 for (var i=0; i<modules.length; i++) { 1147 if (typeof edgtf.modules[modules[i]] !== 'undefined') { 1148 edgtf.modules[modules[i]].edgtfOnDocumentReady(); // Trigger all functions upon new page load 1149 edgtf.modules[modules[i]].edgtfOnWindowLoad(); // Trigger all functions upon new page load 1150 $(window).resize(edgtf.modules[modules[i]].edgtfOnWindowResize); // Reassign handles for resize and scroll events 1151 $(window).scroll(edgtf.modules[modules[i]].edgtfOnWindowScroll); // Reassign handles for resize and scroll events 1152 } 1153 } 1154 } 1155 1156 function edgtfHandleMeta(meta_data) { 1157 // set up title, meta description and meta keywords 1158 var newTitle = meta_data.find(".edgtf-seo-title").text(); 1159 var pageTransition = meta_data.find(".edgtf-page-transition").text(); 1160 var newDescription = meta_data.find(".edgtf-seo-description").text(); 1161 var newKeywords = meta_data.find(".edgtf-seo-keywords").text(); 1162 if (typeof pageTransition !== 'undefined') { 1163 animation.type = pageTransition; 1164 } 1165 if ($('head meta[name="description"]').length) { 1166 $('head meta[name="description"]').attr('content', newDescription); 1167 } else if (typeof newDescription !== 'undefined') { 1168 $('<meta name="description" content="'+newDescription+'">').prependTo($('head')); 1169 } 1170 if ($('head meta[name="keywords"]').length) { 1171 $('head meta[name="keywords"]').attr('content', newKeywords); 1172 } else if (typeof newKeywords !== 'undefined') { 1173 $('<meta name="keywords" content="'+newKeywords+'">').prependTo($('head')); 1174 } 1175 document.title = newTitle; 1176 1177 var newBodyClasses = meta_data.find(".edgtf-body-classes").text(); 1178 var myArray = newBodyClasses.split(','); 1179 edgtf.body.removeClass(); 1180 for(var i=0;i<myArray.length;i++){ 1181 if (myArray[i] !== "edgtf-page-not-loaded"){ 1182 edgtf.body.addClass(myArray[i]); 1183 } 1184 } 1185 1186 if($("#wp-admin-bar-edit").length > 0){ 1187 // set up edit link when wp toolbar is enabled 1188 var pageId = meta_data.find("#edgtf-page-id").text(); 1189 var old_link = $('#wp-admin-bar-edit a').attr("href"); 1190 var new_link = old_link.replace(/(post=).*?(&)/,'$1' + pageId + '$2'); 1191 $('#wp-admin-bar-edit a').attr("href", new_link); 1192 } 1193 } 1194 1195 function edgtfInsertFetchedContent(url, new_content, destinationSelector) { 1196 destinationSelector = typeof destinationSelector !== 'undefined' ? destinationSelector : '.edgtf-content'; 1197 var destination = edgtf.body.find(destinationSelector); 1198 1199 new_content.height(destination.height()).css({'position': 'absolute', 'opacity': 0, 'overflow': 'hidden'}).insertBefore(destination); 1200 1201 new_content.waitForImages(function() { 1202 if (url.indexOf('#') !== -1) { 1203 $('<a class="edgtf-temp-anchor edgtf-anchor" href="'+url+'" style="display: none"></a>').appendTo('body'); 1204 } 1205 edgtfReinitiateAll(); 1206 1207 if (animation.type == "fade") { 1208 destination.stop().fadeTo(animation.time, 0, function() { 1209 destination.remove(); 1210 if (window.history.pushState) { 1211 if(url!==window.location.href){ 1212 window.history.pushState({path:url},'',url); 1213 } 1214 1215 //does Google Analytics code exists on page? 1216 if(typeof _gaq !== 'undefined') { 1217 //add new url to Google Analytics so it can be tracked
1218 _gaq.push(['_trackPageview', url]); 1219 } 1220 } else { 1221 document.location.href = window.location.protocol + '//' + window.location.host + '#' + url.split(window.location.protocol + '//' + window.location.host)[1]; 1222 } 1223 edgtfSetActiveState(url); 1224 edgtf.body.animate({scrollTop: 0}, animation.time, 'swing'); 1225 }); 1226 setTimeout(function() { 1227 new_content.css('position','relative').height('').stop().fadeTo(animation.time, 1, function() { 1228 loadedPageFlag = true; 1229 firstLoad = false; 1230 animation.loader.fadeOut(animation.loaderTime, function() { 1231 var anch = $('.edgtf-temp-anchor'); 1232 if (anch.length) { 1233 anch.trigger('click').remove(); 1234 } 1235 }); 1236 }); 1237 }, !animation.simultaneous * animation.time); 1238 } 1239 }); 1240 } 1241 1242 1243})(jQuery); 1244(function($) { 1245 "use strict"; 1246 1247 var header = {}; 1248 edgtf.modules.header = header; 1249 1250 header.isStickyVisible = false; 1251 header.stickyAppearAmount = 0; 1252 header.stickyMobileAppearAmount = 0; 1253 header.behaviour; 1254 header.edgtfSideArea = edgtfSideArea; 1255 header.edgtfSideAreaScroll = edgtfSideAreaScroll; 1256 header.edgtfFullscreenMenu = edgtfFullscreenMenu; 1257 header.edgtfInitMobileNavigation = edgtfInitMobileNavigation; 1258 header.edgtfMobileHeaderBehavior = edgtfMobileHeaderBehavior; 1259 header.edgtfSetDropDownMenuPosition = edgtfSetDropDownMenuPosition; 1260 header.edgtfDropDownMenu = edgtfDropDownMenu; 1261 header.edgtfSearch = edgtfSearch; 1262 1263 header.edgtfOnDocumentReady = edgtfOnDocumentReady; 1264 header.edgtfOnWindowLoad = edgtfOnWindowLoad; 1265 header.edgtfOnWindowResize = edgtfOnWindowResize; 1266 header.edgtfOnWindowScroll = edgtfOnWindowScroll; 1267 1268 $(document).ready(edgtfOnDocumentReady); 1269 $(window).on('load', edgtfOnWindowLoad); 1270 $(window).resize(edgtfOnWindowResize); 1271 $(window).scroll(edgtfOnWindowScroll); 1272 1273 /* 1274 All functions to be called on $(document).ready() should be in this function 1275 */ 1276 function edgtfOnDocumentReady() { 1277 edgtfHeaderBehaviour(); 1278 edgtfSideArea(); 1279 edgtfSideAreaScroll(); 1280 edgtfFullscreenMenu(); 1281 edgtfInitMobileNavigation(); 1282 edgtfMobileHeaderBehavior(); 1283 edgtfSetDropDownMenuPosition(); 1284 edgtfSearch(); 1285 edgtfVerticalMenu().init(); 1286 edgtfShopDropDownMenu(); 1287 } 1288 1289 /* 1290 All functions to be called on $(window).load() should be in this function 1291 */ 1292 function edgtfOnWindowLoad() { 1293 edgtfSetDropDownMenuPosition(); 1294 edgtfDropDownMenu(); 1295 } 1296 1297 /* 1298 All functions to be called on $(window).resize() should be in this function 1299 */ 1300 function edgtfOnWindowResize() { 1301 edgtfDropDownMenu(); 1302 } 1303 1304 /* 1305 All functions to be called on $(window).scroll() should be in this function 1306 */ 1307 function edgtfOnWindowScroll() { 1308 1309 } 1310 1311 1312 1313 /* 1314 ** Show/Hide sticky header on window scroll 1315 */ 1316 function edgtfHeaderBehaviour() { 1317 1318 var header = $('.edgtf-page-header'); 1319 var stickyHeader = $('.edgtf-sticky-header'); 1320 var fixedHeaderWrapper = $('.edgtf-fixed-wrapper'); 1321 1322 var headerMenuAreaOffset = $('.edgtf-page-header').find('.edgtf-fixed-wrapper').length ? $('.edgtf-page-header').find('.edgtf-fixed-wrapper').offset().top : null; 1323 1324 var stickyAppearAmount; 1325 1326 1327 switch(true) { 1328 // sticky header that will be shown when user scrolls up 1329 case edgtf.body.hasClass('edgtf-sticky-header-on-scroll-up'): 1330 edgtf.modules.header.behaviour = 'edgtf-sticky-header-on-scroll-up'; 1331 var docYScroll1 = $(document).scrollTop(); 1332 stickyAppearAmount = edgtfGlobalVars.vars.edgtfTopBarHeight + edgtfGlobalVars.vars.edgtfLogoAreaHeight + edgtfGlobalVars.vars.edgtfMenuAreaHeight + edgtfGlobalVars.vars.edgtfStickyHeaderHeight; 1333 1334 var headerAppear = function(){ 1335 var docYScroll2 = $(document).scrollTop(); 1336 1337 if((docYScroll2 > docYScroll1 && docYScroll2 > stickyAppearAmount) || (docYScroll2 < stickyAppearAmount)) { 1338 edgtf.modules.header.isStickyVisible= false;
1339 stickyHeader.removeClass('header-appear').find('.edgtf-main-menu .edgtf-menu-second').removeClass('edgtf-drop-down-start'); 1340 }else { 1341 edgtf.modules.header.isStickyVisible = true; 1342 stickyHeader.addClass('header-appear'); 1343 } 1344 1345 docYScroll1 = $(document).scrollTop(); 1346 }; 1347 headerAppear(); 1348 1349 $(window).scroll(function() { 1350 headerAppear(); 1351 }); 1352 1353 break; 1354 1355 // sticky header that will be shown when user scrolls both up and down 1356 case edgtf.body.hasClass('edgtf-sticky-header-on-scroll-down-up'): 1357 edgtf.modules.header.behaviour = 'edgtf-sticky-header-on-scroll-down-up'; 1358 1359 if(edgtfPerPageVars.vars.edgtfStickyScrollAmount !== 0){ 1360 edgtf.modules.header.stickyAppearAmount = edgtfPerPageVars.vars.edgtfStickyScrollAmount; 1361 }else{ 1362 edgtf.modules.header.stickyAppearAmount = edgtfGlobalVars.vars.edgtfStickyScrollAmount !== 0 ? edgtfGlobalVars.vars.edgtfStickyScrollAmount : edgtfGlobalVars.vars.edgtfTopBarHeight + edgtfGlobalVars.vars.edgtfLogoAreaHeight + edgtfGlobalVars.vars.edgtfMenuAreaHeight; 1363 } 1364 1365 var headerAppear = function(){ 1366 if(edgtf.scroll < edgtf.modules.header.stickyAppearAmount) { 1367 edgtf.modules.header.isStickyVisible = false; 1368 stickyHeader.removeClass('header-appear').find('.edgtf-main-menu .edgtf-menu-second').removeClass('edgtf-drop-down-start'); 1369 }else{ 1370 edgtf.modules.header.isStickyVisible = true; 1371 stickyHeader.addClass('header-appear'); 1372 } 1373 }; 1374 1375 headerAppear(); 1376 1377 $(window).scroll(function() { 1378 headerAppear(); 1379 }); 1380 1381 break; 1382 1383 // on scroll down, part of header will be sticky 1384 case edgtf.body.hasClass('edgtf-fixed-on-scroll'): 1385 edgtf.modules.header.behaviour = 'edgtf-fixed-on-scroll'; 1386 var headerFixed = function(){ 1387 if(edgtf.scroll < headerMenuAreaOffset){ 1388 fixedHeaderWrapper.removeClass('fixed'); 1389 header.css('margin-bottom',0);} 1390 else{ 1391 fixedHeaderWrapper.addClass('fixed'); 1392 header.css('margin-bottom',fixedHeaderWrapper.height()); 1393 } 1394 }; 1395 1396 headerFixed(); 1397 1398 $(window).scroll(function() { 1399 headerFixed(); 1400 }); 1401 1402 break; 1403 } 1404 } 1405 1406 /** 1407 * Show/hide side area 1408 */ 1409 function edgtfSideArea() { 1410 1411 var wrapper = $('.edgtf-wrapper'), 1412 sideMenu = $('.edgtf-side-menu'), 1413 sideMenuButtonOpen = $('a.edgtf-side-menu-button-opener'), 1414 cssClass, 1415 //Flags 1416 slideFromRight = false, 1417 slideWithContent = false, 1418 slideUncovered = false; 1419 1420 if (edgtf.body.hasClass('edgtf-side-menu-slide-from-right')) { 1421 $('.edgtf-cover').remove(); 1422 cssClass = 'edgtf-right-side-menu-opened'; 1423 wrapper.prepend('<div class="edgtf-cover"/>'); 1424 slideFromRight = true; 1425 1426 } else if (edgtf.body.hasClass('edgtf-side-menu-slide-with-content')) { 1427 1428 cssClass = 'edgtf-side-menu-open'; 1429 slideWithContent = true; 1430 1431 } else if (edgtf.body.hasClass('edgtf-side-area-uncovered-from-content')) { 1432 1433 cssClass = 'edgtf-right-side-menu-opened'; 1434 slideUncovered = true; 1435 1436 } 1437 1438 $('a.edgtf-side-menu-button-opener, a.edgtf-close-side-menu').on('click', function(e) { 1439 e.preventDefault(); 1440 1441 if(!sideMenuButtonOpen.hasClass('opened')) { 1442 1443 sideMenuButtonOpen.addClass('opened'); 1444 edgtf.body.addClass(cssClass); 1445 1446 if (slideFromRight) { 1447 $('.edgtf-wrapper .edgtf-cover').on('click',function() { 1448 edgtf.body.removeClass('edgtf-right-side-menu-opened'); 1449 sideMenuButtonOpen.removeClass('opened'); 1450 }); 1451 } 1452 1453 if (slideUncovered) { 1454 sideMenu.css({ 1455 'visibility' : 'visible' 1456 }); 1457 } 1458 1459 var currentScroll = $(window).scrollTop(); 1460 $(window).scroll(function() { 1461 if(Math.abs(edgtf.scroll - currentScroll) > 400){ 1462 edgtf.body.removeClass(cssClass); 1463 sideMenuButtonOpen.removeClass('opened'); 1464 if (slideUncovered) { 1465 var hideSideMenu = setTimeout(function(){ 1466 sideMenu.css({'visibility':'hidden'}); 1467 clearTimeout(hideSideMenu); 1468 },400); 1469 } 1470 } 1471 }); 1472 1473 } else { 1474 1475 sideMenuButtonOpen.removeClass('opened'); 1476 edgtf.body.removeClass(cssClass); 1477 if (slideUncovered) { 1478 var hideSideMenu = setTimeout(function(){ 1479 sideMenu.css({'visibility':'hidden'}); 1480 clearTimeout(hideSideMenu); 1481 },400); 1482 } 1483 1484 } 1485 1486 if (slideWithContent) { 1487 1488 e.stopPropagation(); 1489 wrapper.on('click',function() { 1490 e.preventDefault(); 1491 sideMenuButtonOpen.removeClass('opened'); 1492 edgtf.body.removeClass('edgtf-side-menu-open'); 1493 }); 1494 1495 } 1496 1497 }); 1498 1499 } 1500 1501 /* 1502 ** Smooth scroll functionality for Side Area 1503 */ 1504 function edgtfSideAreaScroll(){ 1505 1506 var sideMenu = $('.edgtf-side-menu'); 1507 1508 if(sideMenu.length){ 1509 sideMenu.niceScroll({ 1510 scrollspeed: 60, 1511 mousescrollstep: 40, 1512 cursorwidth: 0, 1513 cursorborder: 0,
1514 cursorborderradius: 0, 1515 cursorcolor: "transparent", 1516 autohidemode: false, 1517 horizrailenabled: false 1518 }); 1519 } 1520 } 1521 1522 /** 1523 * Init Fullscreen Menu 1524 */ 1525 function edgtfFullscreenMenu() { 1526 1527 if ($('a.edgtf-fullscreen-menu-opener').length) { 1528 1529 var popupMenuOpener = $( 'a.edgtf-fullscreen-menu-opener'), 1530 popupMenuHolderOuter = $(".edgtf-fullscreen-menu-holder-outer"), 1531 cssClass, 1532 //Flags for type of animation 1533 fadeRight = false, 1534 fadeTop = false, 1535 //Widgets 1536 widgetAboveNav = $('.edgtf-fullscreen-above-menu-widget-holder'), 1537 widgetBelowNav = $('.edgtf-fullscreen-below-menu-widget-holder'), 1538 //Menu 1539 menuItems = $('.edgtf-fullscreen-menu-holder-outer nav > ul > li > a'), 1540 menuItemWithChild = $('.edgtf-fullscreen-menu > ul li.edgtf-has-sub > a'), 1541 menuItemWithoutChild = $('.edgtf-fullscreen-menu ul li:not(.edgtf-has-sub) a'); 1542 1543 1544 //set height of popup holder and initialize nicescroll 1545 popupMenuHolderOuter.height(edgtf.windowHeight).niceScroll({ 1546 scrollspeed: 30, 1547 mousescrollstep: 20, 1548 cursorwidth: 0, 1549 cursorborder: 0, 1550 cursorborderradius: 0, 1551 cursorcolor: "transparent", 1552 autohidemode: false, 1553 horizrailenabled: false 1554 }); //200 is top and bottom padding of holder 1555 1556 //set height of popup holder on resize 1557 $(window).resize(function() { 1558 popupMenuHolderOuter.height(edgtf.windowHeight); 1559 }); 1560 1561 if (edgtf.body.hasClass('edgtf-fade-push-text-right')) { 1562 cssClass = 'edgtf-push-nav-right'; 1563 fadeRight = true; 1564 } else if (edgtf.body.hasClass('edgtf-fade-push-text-top')) { 1565 cssClass = 'edgtf-push-text-top'; 1566 fadeTop = true; 1567 } 1568 1569 //Appearing animation 1570 if (fadeRight || fadeTop) { 1571 if (widgetAboveNav.length) { 1572 widgetAboveNav.children().css({ 1573 '-webkit-animation-delay' : 0 + 'ms', 1574 '-moz-animation-delay' : 0 + 'ms', 1575 'animation-delay' : 0 + 'ms' 1576 }); 1577 } 1578 menuItems.each(function(i) { 1579 $(this).css({ 1580 '-webkit-animation-delay': (i+1) * 70 + 'ms', 1581 '-moz-animation-delay': (i+1) * 70 + 'ms', 1582 'animation-delay': (i+1) * 70 + 'ms' 1583 }); 1584 }); 1585 if (widgetBelowNav.length) { 1586 widgetBelowNav.children().css({ 1587 '-webkit-animation-delay' : (menuItems.length + 1)*70 + 'ms', 1588 '-moz-animation-delay' : (menuItems.length + 1)*70 + 'ms', 1589 'animation-delay' : (menuItems.length + 1)*70 + 'ms' 1590 }); 1591 } 1592 } 1593 1594 // Open popup menu 1595 popupMenuOpener.on('click',function(e){ 1596 e.preventDefault(); 1597 1598 if (!popupMenuOpener.hasClass('opened')) { 1599 popupMenuOpener.addClass('opened'); 1600 edgtf.body.addClass('edgtf-fullscreen-menu-opened'); 1601 edgtf.body.removeClass('edgtf-fullscreen-fade-out').addClass('edgtf-fullscreen-fade-in'); 1602 edgtf.body.removeClass(cssClass); 1603 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 1604 edgtf.modules.common.edgtfDisableScroll(); 1605 } 1606 $(document).keyup(function(e){ 1607 if (e.keyCode == 27 ) { 1608 popupMenuOpener.removeClass('opened'); 1609 edgtf.body.removeClass('edgtf-fullscreen-menu-opened'); 1610 edgtf.body.removeClass('edgtf-fullscreen-fade-in').addClass('edgtf-fullscreen-fade-out'); 1611 edgtf.body.addClass(cssClass); 1612 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 1613 edgtf.modules.common.edgtfEnableScroll(); 1614 } 1615 $("nav.edgtf-fullscreen-menu ul.sub_menu").slideUp(200, function(){ 1616 $('nav.popup_menu').getNiceScroll().resize(); 1617 }); 1618 } 1619 }); 1620 } else { 1621 popupMenuOpener.removeClass('opened'); 1622 edgtf.body.removeClass('edgtf-fullscreen-menu-opened'); 1623 edgtf.body.removeClass('edgtf-fullscreen-fade-in').addClass('edgtf-fullscreen-fade-out'); 1624 edgtf.body.addClass(cssClass); 1625 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 1626 edgtf.modules.common.edgtfEnableScroll(); 1627 } 1628 $("nav.edgtf-fullscreen-menu ul.sub_menu").slideUp(200, function(){ 1629 $('nav.popup_menu').getNiceScroll().resize(); 1630 }); 1631 } 1632 }); 1633 1634 //logic for open sub menus in popup menu 1635 menuItemWithChild.on('tap click', function(e) { 1636 e.preventDefault(); 1637 1638 if ($(this).parent().hasClass('edgtf-has-sub')) { 1639 var submenu = $(this).parent().find('> ul.sub_menu'); 1640 if (submenu.is(':visible')) { 1641 submenu.slideUp(200, function() { 1642 popupMenuHolderOuter.getNiceScroll().resize(); 1643 }); 1644 $(this).parent().removeClass('open_sub'); 1645 } else { 1646 if($(this).parent().siblings().hasClass('open_sub')) { 1647 $(this).parent().siblings().each(function() { 1648 var sibling = $(this); 1649 if(sibling.hasClass('open_sub')) { 1650 var openedUl = sibling.find('> ul.sub_menu') 1651 openedUl.slideUp(200, function () { 1652 popupMenuHolderOuter.getNiceScroll().resize(); 1653 }); 1654 sibling.removeClass('open_sub'); 1655 } 1656 if(sibling.find('.open_sub')) { 1657 var openedUlUl = sibling.find('.open_sub').find('> ul.sub_menu') 1658 openedUlUl.slideUp(200, function () { 1659 popupMenuHolderOuter.getNiceScroll().resize(); 1660 }); 1661 sibling.find('.open_sub').removeClass('open_sub'); 1662 } 1663 }); 1664 } 1665 1666 $(this).parent().addClass('open_sub'); 1667 submenu.slideDown(200, function() { 1668 popupMenuHolderOuter.getNiceScroll().resize(); 1669 }); 1670 } 1671 } 1672 return false;
1673 }); 1674 1675 //if link has no submenu and if it's not dead, than open that link 1676 menuItemWithoutChild.on('click',function (e) { 1677 1678 if(($(this).attr('href') !== "http://#") && ($(this).attr('href') !== "#")){ 1679 1680 if (e.which == 1) { 1681 popupMenuOpener.removeClass('opened'); 1682 edgtf.body.removeClass('edgtf-fullscreen-menu-opened'); 1683 edgtf.body.removeClass('edgtf-fullscreen-fade-in').addClass('edgtf-fullscreen-fade-out'); 1684 edgtf.body.addClass(cssClass); 1685 $("nav.edgtf-fullscreen-menu ul.sub_menu").slideUp(200, function(){ 1686 $('nav.popup_menu').getNiceScroll().resize(); 1687 }); 1688 edgtf.modules.common.edgtfEnableScroll(); 1689 } 1690 }else{ 1691 return false; 1692 } 1693 1694 }); 1695 1696 } 1697 1698 1699 1700 } 1701 1702 function edgtfInitMobileNavigation() { 1703 var navigationOpener = $('.edgtf-mobile-header .edgtf-mobile-menu-opener'); 1704 var navigationHolder = $('.edgtf-mobile-header .edgtf-mobile-nav'); 1705 var dropdownOpener = $('.edgtf-mobile-nav .mobile_arrow, .edgtf-mobile-nav h4, .edgtf-mobile-nav a[href*="#"]'); 1706 var animationSpeed = 200; 1707 1708 //whole mobile menu opening / closing 1709 if(navigationOpener.length && navigationHolder.length) { 1710 navigationOpener.on('tap click', function(e) { 1711 e.stopPropagation(); 1712 e.preventDefault(); 1713 1714 if(navigationHolder.is(':visible')) { 1715 navigationHolder.slideUp(animationSpeed); 1716 } else { 1717 navigationHolder.slideDown(animationSpeed); 1718 } 1719 }); 1720 } 1721 1722 //dropdown opening / closing 1723 if(dropdownOpener.length) { 1724 dropdownOpener.each(function() { 1725 $(this).on('tap click', function(e) { 1726 var dropdownToOpen = $(this).nextAll('ul').first(); 1727 1728 if(dropdownToOpen.length) { 1729 e.preventDefault(); 1730 e.stopPropagation(); 1731 1732 var openerParent = $(this).parent('li'); 1733 if(dropdownToOpen.is(':visible')) { 1734 dropdownToOpen.slideUp(animationSpeed); 1735 openerParent.removeClass('edgtf-opened'); 1736 } else { 1737 dropdownToOpen.slideDown(animationSpeed); 1738 openerParent.addClass('edgtf-opened'); 1739 } 1740 } 1741 1742 }); 1743 }); 1744 } 1745 1746 $('.edgtf-mobile-nav a, .edgtf-mobile-logo-wrapper a').on('click tap', function(e) { 1747 if($(this).attr('href') !== 'http://#' && $(this).attr('href') !== '#') { 1748 navigationHolder.slideUp(animationSpeed); 1749 } 1750 }); 1751 } 1752 1753 function edgtfMobileHeaderBehavior() { 1754 if(edgtf.body.hasClass('edgtf-sticky-up-mobile-header')) { 1755 var stickyAppearAmount; 1756 var topBar = $('.edgtf-top-bar'); 1757 var mobileHeader = $('.edgtf-mobile-header'); 1758 var adminBar = $('#wpadminbar'); 1759 var mobileHeaderHeight = mobileHeader.length ? mobileHeader.height() : 0; 1760 var topBarHeight = topBar.is(':visible') ? topBar.height() : 0; 1761 var adminBarHeight = adminBar.length ? adminBar.height() : 0; 1762 1763 var docYScroll1 = $(document).scrollTop(); 1764 edgtf.modules.header.stickyMobileAppearAmount = topBarHeight + mobileHeaderHeight + adminBarHeight; 1765 stickyAppearAmount = edgtf.modules.header.stickyMobileAppearAmount; 1766 1767 $(window).scroll(function() { 1768 var docYScroll2 = $(document).scrollTop(); 1769 1770 if(docYScroll2 > stickyAppearAmount) { 1771 mobileHeader.addClass('edgtf-animate-mobile-header'); 1772 mobileHeader.css('margin-bottom', mobileHeaderHeight); 1773 } else { 1774 mobileHeader.removeClass('edgtf-animate-mobile-header'); 1775 mobileHeader.css('margin-bottom', 0); 1776 } 1777 1778 if((docYScroll2 > docYScroll1 && docYScroll2 > stickyAppearAmount) || (docYScroll2 < stickyAppearAmount)) { 1779 mobileHeader.removeClass('mobile-header-appear'); 1780 if(adminBar.length) { 1781 mobileHeader.find('.edgtf-mobile-header-inner').css('top', 0); 1782 } 1783 } else { 1784 mobileHeader.addClass('mobile-header-appear'); 1785 1786 } 1787 1788 docYScroll1 = $(document).scrollTop(); 1789 }); 1790 } 1791 } 1792 1793 /** 1794 * Set dropdown position 1795 */ 1796 function edgtfSetDropDownMenuPosition(){ 1797 1798 var menuItems = $(".edgtf-drop-down > ul >
1798 li.edgtf-menu-narrow"); 1799 menuItems.each( function(i) { 1800 1801 var browserWidth = edgtf.windowWidth-16; // 16 is width of scroll bar 1802 var menuItemPosition = $(this).offset().left; 1803 var dropdownMenuWidth = $(this).find('.edgtf-menu-second .edgtf-menu-inner ul').width(); 1804 1805 var menuItemFromLeft = 0; 1806 if(edgtf.body.hasClass('boxed')){ 1807 menuItemFromLeft = edgtf.boxedLayoutWidth - (menuItemPosition - (browserWidth - edgtf.boxedLayoutWidth )/2); 1808 } else { 1809 menuItemFromLeft = browserWidth - menuItemPosition; 1810 } 1811 1812 var dropDownMenuFromLeft; //has to stay undefined beacuse 'dropDownMenuFromLeft < dropdownMenuWidth' condition will be true 1813 1814 if($(this).find('li.edgtf-sub').length > 0){ 1815 dropDownMenuFromLeft = menuItemFromLeft - dropdownMenuWidth; 1816 } 1817 1818 if(menuItemFromLeft < dropdownMenuWidth || dropDownMenuFromLeft < dropdownMenuWidth){ 1819 $(this).find('.edgtf-menu-second').addClass('right'); 1820 $(this).find('.edgtf-menu-second .edgtf-menu-inner ul').addClass('right'); 1821 } 1822 }); 1823 1824 } 1825 1826 1827 function edgtfDropDownMenu() { 1828 1829 var menu_items = $('.edgtf-drop-down > ul > li'); 1830 1831 menu_items.each(function(i) { 1832 if($(menu_items[i]).find('.edgtf-menu-second').length > 0) { 1833 1834 var dropDownSecondDiv = $(menu_items[i]).find('.edgtf-menu-second'); 1835 1836 if($(menu_items[i]).hasClass('edgtf-menu-wide')) { 1837 1838 var dropdown = $(this).find('.edgtf-menu-inner > ul'); 1839 var dropdownPadding = parseInt(dropdown.css('padding-left').slice(0, -2)) + parseInt(dropdown.css('padding-right').slice(0, -2)); 1840 var dropdownWidth = dropdown.outerWidth(); 1841 1842 if(!$(this).hasClass('edgtf-menu-left-position') && !$(this).hasClass('edgtf-menu-right-position')) { 1843 dropDownSecondDiv.css('left', 0); 1844 } 1845 1846 //set columns to be same height - start 1847 var tallest = 0; 1848 $(this).find('.edgtf-menu-second > .edgtf-menu-inner > ul > li').each(function() { 1849 var thisHeight = $(this).height(); 1850 if(thisHeight > tallest) { 1851 tallest = thisHeight; 1852 } 1853 }); 1854 $(this).find('.edgtf-menu-second > .edgtf-menu-inner > ul > li').css("height", ""); // delete old inline css - via resize 1855 $(this).find('.edgtf-menu-second > .edgtf-menu-inner > ul > li').height(tallest); 1856 //set columns to be same height - end 1857 1858 if(!$(this).hasClass('wide-background')) { 1859 if(!$(this).hasClass('edgtf-menu-left-position') && !$(this).hasClass('edgtf-menu-right-position')) { 1860 var left_position = (edgtf.windowWidth - 2 * (edgtf.windowWidth - dropdown.offset().left)) / 2 + (dropdownWidth + dropdownPadding) / 2; 1861 dropDownSecondDiv.css('left', -left_position); 1862 } 1863 } else { 1864 if(!$(this).hasClass('edgtf-menu-left-position') && !$(this).hasClass('edgtf-menu-right-position')) { 1865 var left_position = dropdown.offset().left; 1866 1867 dropDownSecondDiv.css('left', -left_position); 1868 dropDownSecondDiv.css('width', edgtf.windowWidth); 1869 1870 } 1871 } 1872 } 1873 1874 if(!edgtf.menuDropdownHeightSet) { 1875 $(menu_items[i]).data('original_height', dropDownSecondDiv.height() + 'px'); 1876 dropDownSecondDiv.height(0); 1877 } 1878 1879 if(navigator.userAgent.match(/(iPod|iPhone|iPad)/)) { 1880 $(menu_items[i]).on("touchstart mouseenter", function() { 1881 dropDownSecondDiv.css({ 1882 'height': $(menu_items[i]).data('original_height'), 1883 'overflow': 'visible', 1884 'visibility': 'visible', 1885 'opacity': '1' 1886 }); 1887 }).on("mouseleave", function() { 1888 dropDownSecondDiv.css({ 1889 'height': '0px', 1890 'overflow': 'hidden', 1891 'visibility': 'hidden', 1892 'opacity': '0' 1893 }); 1894 }); 1895 1896 } else { 1897 if(edgtf.body.hasClass('edgtf-dropdown-animate-height')) { 1898 1899 $(menu_items[i]).mouseenter(function() { 1900 dropDownSecondDiv.css({ 1901 'visibility': 'visible', 1902 'height': '0px', 1903 'opacity': '0' 1904 }); 1905 dropDownSecondDiv.stop().animate({ 1906 'height': $(menu_items[i]).data('original_height'), 1907 opacity: 1 1908 }, 300, function() { 1909 dropDownSecondDiv.css('overflow', 'visible'); 1910 }); 1911 }).mouseleave(function() { 1912 dropDownSecondDiv.stop().animate({ 1913 'height': '0px' 1914 }, 0, function() { 1915 dropDownSecondDiv.css({ 1916 'overflow': 'hidden', 1917 'visibility': 'hidden' 1918 }); 1919 }); 1920 }); 1921 1922 } else { 1923 var config = { 1924 interval: 0, 1925 over: function() { 1926 setTimeout(function() { 1927 dropDownSecondDiv.addClass('edgtf-drop-down-start'); 1928 dropDownSecondDiv.stop().css({'height': $(menu_items[i]).data('original_height')}); 1929 }, 150); 1930 }, 1931 timeout: 150, 1932 out: function() { 1933 dropDownSecondDiv.stop().css({'height': '0px'}); 1934 dropDownSecondDiv.removeClass('edgtf-drop-down-start'); 1935 } 1936 }; 1937 $(menu_items[i]).hoverIntent(config); 1938 } 1939 } 1940 } 1941 });
1942 $('.edgtf-drop-down ul li.edgtf-menu-wide ul li a').on('click', function(e) { 1943 if (e.which == 1){ 1944 var $this = $(this); 1945 setTimeout(function() { 1946 $this.mouseleave(); 1947 }, 500); 1948 } 1949 }); 1950 1951 edgtf.menuDropdownHeightSet = true; 1952 } 1953 1954 function edgtfShopDropDownMenu() { 1955 if (edgtf.body.hasClass('edgtf-dropdown-animate-height')) { 1956 var shoppingCart = $('.edgtf-shopping-cart-outer'); 1957 1958 shoppingCart.mouseenter(function() { 1959 var shopMenu = $(this).find(".edgtf-shopping-cart-dropdown"), 1960 shopMenuHeight = shopMenu.height(); 1961 1962 shopMenu.css({ 1963 'visibility': 'visible', 1964 'height': '0px', 1965 'opacity': '0' 1966 }); 1967 1968 shopMenu.stop().animate({ 1969 'height': shopMenuHeight, 1970 'opacity': '1' 1971 }, 600 ,'easeInOutQuint'); 1972 1973 }).mouseleave(function() { 1974 1975 var shopMenu = $(this).find(".edgtf-shopping-cart-dropdown"); 1976 1977 shopMenu.css({ 1978 'height': 'auto' 1979 }); 1980 1981 var shopMenuHeight = shopMenu.height(); 1982 1983 $(".edgtf-shopping-cart-dropdown").stop().animate({ 1984 'opacity': '0', 1985 'height': shopMenuHeight 1986 }, 0, function() { 1987 shopMenu.css({ 1988 'overflow': 'hidden', 1989 'visibility': 'hidden' 1990 }); 1991 }); 1992 }); 1993 } 1994 } 1995 1996 /** 1997 * Init Search Types 1998 */ 1999 function edgtfSearch() { 2000 2001 var searchOpener = $('a.edgtf-search-opener'), 2002 searchClose, 2003 touch = false; 2004 2005 if ( $('html').hasClass( 'touch' ) ) { 2006 touch = true; 2007 } 2008 2009 if ( searchOpener.length > 0 ) { 2010 2011 searchOpener.each(function(){ 2012 var thisSearchOpener = $(this); 2013 2014 //Check for type of search 2015 if ( edgtf.body.hasClass( 'edgtf-fullscreen-search' ) ) { 2016 2017 var fullscreenSearchFade = false, 2018 fullscreenSearchFromCircle = false; 2019 2020 searchClose = $( '.edgtf-fullscreen-search-close' ); 2021 2022 if (edgtf.body.hasClass('edgtf-search-fade')) { 2023 fullscreenSearchFade = true; 2024 } else if (edgtf.body.hasClass('edgtf-search-from-circle')) { 2025 fullscreenSearchFromCircle = true; 2026 } 2027 edgtfFullscreenSearch( fullscreenSearchFade, fullscreenSearchFromCircle ); 2028 2029 } else if ( edgtf.body.hasClass( 'edgtf-search-covers-header' ) ) { 2030 2031 edgtfSearchCoversHeader(); 2032 2033 } 2034 2035 //Check for hover color of search 2036 if(typeof thisSearchOpener.data('hover-color') !== 'undefined') { 2037 var changeSearchColor = function(event) { 2038 event.data.searchOpener.css('color', event.data.color); 2039 }; 2040 2041 var originalColor = thisSearchOpener.css('color'); 2042 var hoverColor = thisSearchOpener.data('hover-color'); 2043 2044 thisSearchOpener.on('mouseenter', { searchOpener: thisSearchOpener, color: hoverColor }, changeSearchColor); 2045 thisSearchOpener.on('mouseleave', { searchOpener: thisSearchOpener, color: originalColor }, changeSearchColor); 2046 } 2047 2048 }); 2049 } 2050 2051 /** 2052 * Search covers header type of search 2053 */ 2054 function edgtfSearchCoversHeader() { 2055 2056 searchOpener.on('click', function(e) { 2057 e.preventDefault(); 2058 var searchFormHeight, 2059 searchFormHolder = $('.edgtf-search-cover .edgtf-form-holder-outer'), 2060 searchFormHolderPosition = $('.edgtf-search-cover .edgtf-form-holder-outer'), 2061 searchClose = searchFormHolder.find('.edgtf-search-close'), 2062 searchForm, 2063 searchFormLandmark; // there is one more div element if header is in grid 2064 2065 if($(this).closest('.edgtf-grid').length){ 2066 searchForm = $(this).closest('.edgtf-grid').children().first(); 2067 searchFormLandmark = searchForm.parent(); 2068 } 2069 else{
2070 searchForm = $(this).closest('.edgtf-menu-area').children().first(); 2071 searchFormLandmark = searchForm; 2072 } 2073 2074 if ( $(this).closest('.edgtf-sticky-header').length > 0 ) { 2075 searchForm = $(this).closest('.edgtf-sticky-header').children().first(); 2076 searchFormLandmark = searchForm.parent(); 2077 searchFormHolderPosition = $(this).closest('.edgtf-sticky-header').find('.edgtf-form-holder-outer'); 2078 } 2079 if ( $(this).closest('.edgtf-mobile-header').length > 0 ) { 2080 searchForm = $(this).closest('.edgtf-mobile-header').children().children().first(); 2081 } 2082 2083 //Find search form position in header and height 2084 if ( searchFormLandmark.parent().hasClass('edgtf-logo-area') ) { 2085 searchFormHeight = edgtfGlobalVars.vars.edgtfLogoAreaHeight; 2086 } else if ( searchFormLandmark.parent().hasClass('edgtf-top-bar') ) { 2087 searchFormHeight = edgtfGlobalVars.vars.edgtfTopBarHeight; 2088 } else if ( searchFormLandmark.parent().hasClass('edgtf-menu-area') ) { 2089 searchFormHeight = edgtfGlobalVars.vars.edgtfMenuAreaHeight - edgtfGlobalVars.vars.edgtfTopBarHeight; 2090 } else if ( searchFormLandmark.hasClass('edgtf-sticky-header') ) { 2091 searchFormHeight = edgtfGlobalVars.vars.edgtfStickyHeaderHeight; 2092 } else if ( searchFormLandmark.parent().hasClass('edgtf-mobile-header') ) { 2093 searchFormHeight = $('.edgtf-mobile-header-inner').height(); 2094 } 2095 2096 2097 searchFormHolder.height(searchFormHeight); 2098 searchForm.stop(true).fadeIn(400, 'easeInOutQuint'); 2099 2100 searchClose.css({'left':searchOpener.offset().left - searchFormHolderPosition.offset().left,'right':'auto'}); 2101 $('.edgtf-search-cover input[type="text"]').focus(); 2102 $('.edgtf-search-close, .edgtf-content, footer').on('click',function(e){ 2103 e.preventDefault(); 2104 searchForm.stop(true).fadeOut(250, 'easeInOutQuint'); 2105 }); 2106 searchForm.blur(function() { 2107 searchForm.stop(true).fadeOut(250, 'easeInOutQuint'); 2108 }); 2109 //Close on escape 2110 $(document).keyup(function(e){ 2111 if (e.keyCode == 27 ) { //KeyCode for ESC button is 27 2112 searchForm.stop(true).fadeOut(250, 'easeInOutQuint'); 2113 } 2114 }); 2115 }); 2116 2117 } 2118 2119 /** 2120 * Fullscreen search (two types: fade and from circle) 2121 */ 2122 function edgtfFullscreenSearch( fade, fromCircle ) { 2123 2124 var searchHolder = $( '.edgtf-fullscreen-search-holder'), 2125 searchOverlay = $( '.edgtf-fullscreen-search-overlay' ); 2126 2127 searchOpener.on('click', function(e) { 2128 e.preventDefault(); 2129 var samePosition = false; 2130 if ( $(this).data('icon-close-same-position') === 'yes' ) { 2131 var closeTop = $(this).offset().top; 2132 var closeLeft = $(this).offset().left; 2133 samePosition = true; 2134 } 2135 //Fullscreen search fade 2136 if ( fade ) { 2137 if ( searchHolder.hasClass( 'edgtf-animate' ) ) { 2138 edgtf.body.removeClass('edgtf-fullscreen-search-opened'); 2139 edgtf.body.addClass( 'edgtf-search-fade-out' ); 2140 edgtf.body.removeClass( 'edgtf-search-fade-in' ); 2141 searchHolder.removeClass( 'edgtf-animate' ); 2142 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 2143 edgtf.modules.common.edgtfEnableScroll(); 2144 } 2145 } else { 2146 edgtf.body.addClass('edgtf-fullscreen-search-opened'); 2147 edgtf.body.removeClass('edgtf-search-fade-out'); 2148 edgtf.body.addClass('edgtf-search-fade-in'); 2149 searchHolder.addClass('edgtf-animate'); 2150 if (samePosition) { 2151 searchClose.css({ 2152 'top' : closeTop - edgtf.scroll, // Distance from top of viewport ( distance from top of window - scroll distance ) 2153 'left' : closeLeft 2154 }); 2155 } 2156 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 2157 edgtf.modules.common.edgtfDisableScroll(); 2158 } 2159 } 2160 searchClose.on('click', function(e) { 2161 e.preventDefault(); 2162 edgtf.body.removeClass('edgtf-fullscreen-search-opened'); 2163 searchHolder.removeClass('edgtf-animate'); 2164 edgtf.body.removeClass('edgtf-search-fade-in'); 2165 edgtf.body.addClass('edgtf-search-fade-out'); 2166 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 2167 edgtf.modules.common.edgtfEnableScroll(); 2168 } 2169 }); 2170 //Close on escape 2171 $(document).keyup(function(e){ 2172 if (e.keyCode == 27 ) { //KeyCode for ESC button is 27 2173 edgtf.body.removeClass('edgtf-fullscreen-search-opened'); 2174 searchHolder.removeClass('edgtf-animate'); 2175 edgtf.body.removeClass('edgtf-search-fade-in'); 2176 edgtf.body.addClass('edgtf-search-fade-out'); 2177 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 2178 edgtf.modules.common.edgtfEnableScroll(); 2179 } 2180 } 2181 }); 2182 } 2183 //Fullscreen search from circle 2184 if ( fromCircle ) { 2185 if( searchOverlay.hasClass('edgtf-animate') ) { 2186 searchOverlay.removeClass('edgtf-animate'); 2187 searchHolder.css({ 2188 'opacity': 0, 2189 'display':'none' 2190 }); 2191 searchClose.css({ 2192 'opacity' : 0, 2193 'visibility' : 'hidden' 2194 }); 2195 searchOpener.css({ 2196 'opacity': 1 2197 }); 2198 } else { 2199 searchOverlay.addClass('edgtf-animate'); 2200 searchHolder.css({ 2201 'display':'block' 2202 }); 2203 setTimeout(function(){ 2204 searchHolder.css('opacity','1'); 2205 searchClose.css({ 2206 'opacity' : 1, 2207 'visibility' : 'visible', 2208 'top' : closeTop - edgtf.scroll, // Distance from top of viewport ( distance from top of window - scroll distance ) 2209 'left' : closeLeft 2210 }); 2211 if (samePosition) { 2212 searchClose.css({ 2213 'top' : closeTop - edgtf.scroll, // Distance from top of viewport ( distance from top of window - scroll distance ) 2214 'left' : closeLeft 2215 }); 2216 } 2217 searchOpener.css({ 2218 'opacity' : 0 2219 }); 2220 },200); 2221 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 2222 edgtf.modules.common.edgtfDisableScroll(); 2223 } 2224 } 2225 searchClose.on('click',function(e) { 2226 e.preventDefault(); 2227 searchOverlay.removeClass('edgtf-animate'); 2228 searchHolder.css({ 2229 'opacity' : 0, 2230 'display' : 'none' 2231 }); 2232 searchClose.css({ 2233 'opacity':0, 2234 'visibility' : 'hidden' 2235 }); 2236 searchOpener.css({ 2237 'opacity' : 1 2238 }); 2239 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 2240 edgtf.modules.common.edgtfEnableScroll(); 2241 } 2242 }); 2243 //Close on escape 2244 $(document).keyup(function(e){ 2245 if (e.keyCode == 27 ) { //KeyCode for ESC button is 27 2246 searchOverlay.removeClass('edgtf-animate'); 2247 searchHolder.css({ 2248 'opacity' : 0, 2249 'display' : 'none' 2250 }); 2251 searchClose.css({ 2252 'opacity':0, 2253 'visibility' : 'hidden' 2254 }); 2255 searchOpener.css({ 2256 'opacity' : 1 2257 }); 2258 if(!edgtf.body.hasClass('page-template-full_screen-php')){ 2259 edgtf.modules.common.edgtfEnableScroll(); 2260 } 2261 } 2262 }); 2263 } 2264 }); 2265 2266 //Text input focus change 2267 $('.edgtf-fullscreen-search-holder .edgtf-search-field').focus(function(){ 2268 $('.edgtf-fullscreen-search-holder .edgtf-field-holder .edgtf-line').css("width","100%"); 2269 }); 2270 2271 $('.edgtf-fullscreen-search-holder .edgtf-search-field').blur(function(){ 2272 $('.edgtf-fullscreen-search-holder .edgtf-field-holder .edgtf-line').css("width","0"); 2273 }); 2274 2275 } 2276 2277 } 2278 2279 /** 2280 * Function object that represents vertical menu area. 2281 * @returns {{init: Function}} 2282 */ 2283 var edgtfVerticalMenu = function() { 2284 /** 2285 * Main vertical area object that used through out function 2286 * @type {jQuery object} 2287 */ 2288 var verticalMenuObject = $('.edgtf-vertical-menu-area'); 2289 2290 /** 2291 * Resizes vertical area. Called whenever height of navigation area changes 2292 * It first check if vertical area is scrollable, and if it is resizes scrollable area 2293 */ 2294 //var resizeVerticalArea = function() { 2295 // if(verticalAreaScrollable()) { 2296 // verticalMenuObject.getNiceScroll().resize(); 2297 // } 2298 //}; 2299 2300 /** 2301 * Checks if vertical area is scrollable (if it has edgtf-with-scroll class) 2302 * 2303 * @returns {bool} 2304 */ 2305 //var verticalAreaScrollable = function() { 2306 // return verticalMenuObject.hasClass('.edgtf-with-scroll'); 2307 //}; 2308 2309 /** 2310 * Initialzes navigation functionality. It checks navigation type data attribute and calls proper functions 2311 */ 2312 var initNavigation = function() { 2313 var verticalNavObject = verticalMenuObject.find('.edgtf-vertical-menu'); 2314 var navigationType = typeof verticalNavObject.data('navigation-type') !== 'undefined' ? verticalNavObject.data('navigation-type') : ''; 2315 2316 switch(navigationType) { 2317 default:
2318 dropdownFloat(); 2319 break; 2320 } 2321 2322 /** 2323 * Initializes floating navigation type (it comes from the side as a dropdown) 2324 */ 2325 function dropdownFloat() { 2326 var menuItems = verticalNavObject.find('ul li.menu-item-has-children'); 2327 var allDropdowns = menuItems.find(' > .edgtf-menu-second, > ul'); 2328 2329 menuItems.each(function() { 2330 var elementToExpand = $(this).find(' > .edgtf-menu-second, > ul'); 2331 var menuItem = this; 2332 2333 if(Modernizr.touch) { 2334 var dropdownOpener = $(this).find('> a'); 2335 2336 dropdownOpener.on('click tap', function(e) { 2337 e.preventDefault(); 2338 e.stopPropagation(); 2339 2340 if(elementToExpand.hasClass('edgtf-float-open')) { 2341 elementToExpand.removeClass('edgtf-float-open'); 2342 $(menuItem).removeClass('open'); 2343 } else { 2344 if(!$(this).parents('li').hasClass('open')) { 2345 menuItems.removeClass('open'); 2346 allDropdowns.removeClass('edgtf-float-open'); 2347 } 2348 2349 elementToExpand.addClass('edgtf-float-open'); 2350 $(menuItem).addClass('open'); 2351 } 2352 }); 2353 } else { 2354 //must use hoverIntent because basic hover effect doesn't catch dropdown 2355 //it doesn't start from menu item's edge 2356 $(this).hoverIntent({ 2357 over: function() { 2358 elementToExpand.addClass('edgtf-float-open'); 2359 $(menuItem).addClass('open'); 2360 }, 2361 out: function() { 2362 elementToExpand.removeClass('edgtf-float-open'); 2363 $(menuItem).removeClass('open'); 2364 }, 2365 timeout: 300 2366 }); 2367 } 2368 }); 2369 } 2370 2371 }; 2372 2373 2374 return { 2375 /** 2376 * Calls all necessary functionality for vertical menu area if vertical area object is valid 2377 */ 2378 init: function() { 2379 if(verticalMenuObject.length) { 2380 initNavigation(); 2381 } 2382 } 2383 }; 2384 }; 2385 2386})(jQuery); 2387(function($) { 2388 "use strict"; 2389 2390 var title = {}; 2391 edgtf.modules.title = title; 2392 2393 title.edgtfParallaxTitle = edgtfParallaxTitle; 2394 2395 title.edgtfOnDocumentReady = edgtfOnDocumentReady; 2396 title.edgtfOnWindowLoad = edgtfOnWindowLoad; 2397 title.edgtfOnWindowResize = edgtfOnWindowResize; 2398 title.edgtfOnWindowScroll = edgtfOnWindowScroll; 2399 2400 $(document).ready(edgtfOnDocumentReady); 2401 $(window).on('load', edgtfOnWindowLoad); 2402 $(window).resize(edgtfOnWindowResize); 2403 $(window).scroll(edgtfOnWindowScroll); 2404 2405 /* 2406 All functions to be called on $(document).ready() should be in this function 2407 */ 2408 function edgtfOnDocumentReady() { 2409 edgtfParallaxTitle(); 2410 } 2411 2412 /* 2413 All functions to be called on $(window).load() should be in this function 2414 */ 2415 function edgtfOnWindowLoad() { 2416 2417 } 2418 2419 /* 2420 All functions to be called on $(window).resize() should be in this function 2421 */ 2422 function edgtfOnWindowResize() { 2423 2424 } 2425 2426 /* 2427 All functions to be called on $(window).scroll() should be in this function 2428 */ 2429 function edgtfOnWindowScroll() { 2430 2431 } 2432 2433 2434 /* 2435 ** Title image with parallax effect 2436 */ 2437 function edgtfParallaxTitle(){ 2438 if($('.edgtf-title.edgtf-has-parallax-background').length > 0 && $('.touch').length === 0){ 2439
2440 var parallaxBackground = $('.edgtf-title.edgtf-has-parallax-background'); 2441 var parallaxBackgroundWithZoomOut = $('.edgtf-title.edgtf-has-parallax-background.edgtf-zoom-out'); 2442 2443 var backgroundSizeWidth = parseInt(parallaxBackground.data('background-width').match(/\d+/)); 2444 var titleHolderHeight = parallaxBackground.data('height'); 2445 var titleRate = (titleHolderHeight / 10000) * 7; 2446 var titleYPos = -(edgtf.scroll * titleRate); 2447 2448 //set position of background on doc ready 2449 parallaxBackground.css({'background-position': 'center '+ (titleYPos+edgtfGlobalVars.vars.edgtfAddForAdminBar) +'px' }); 2450 parallaxBackgroundWithZoomOut.css({'background-size': backgroundSizeWidth-edgtf.scroll + 'px auto'}); 2451 2452 //set position of background on window scroll 2453 $(window).scroll(function() { 2454 titleYPos = -(edgtf.scroll * titleRate); 2455 parallaxBackground.css({'background-position': 'center ' + (titleYPos+edgtfGlobalVars.vars.edgtfAddForAdminBar) + 'px' }); 2456 parallaxBackgroundWithZoomOut.css({'background-size': backgroundSizeWidth-edgtf.scroll + 'px auto'}); 2457 }); 2458 2459 } 2460 } 2461 2462})(jQuery); 2463 2464(function($) { 2465 'use strict'; 2466 2467 var shortcodes = {}; 2468 2469 edgtf.modules.shortcodes = shortcodes; 2470 2471 shortcodes.edgtfInitCounter = edgtfInitCounter; 2472 shortcodes.edgtfInitProgressBars = edgtfInitProgressBars; 2473 shortcodes.edgtfInitCountdown = edgtfInitCountdown; 2474 shortcodes.edgtfInitMessages = edgtfInitMessages; 2475 shortcodes.edgtfInitMessageHeight = edgtfInitMessageHeight; 2476 shortcodes.edgtfInitTestimonials = edgtfInitTestimonials; 2477 shortcodes.edgtfInitCarousels = edgtfInitCarousels; 2478 shortcodes.edgtfInitPieChart = edgtfInitPieChart; 2479 shortcodes.edgtfInitPieChartDoughnut = edgtfInitPieChartDoughnut; 2480 shortcodes.edgtfInitTabs = edgtfInitTabs; 2481 shortcodes.edgtfInitTabIcons = edgtfInitTabIcons; 2482 shortcodes.edgtfInitBlogListMasonry = edgtfInitBlogListMasonry; 2483 shortcodes.edgtfInitBlogSlider = edgtfInitBlogSlider; 2484 shortcodes.edgtfCustomFontTypeOut = edgtfCustomFontTypeOut; 2485 shortcodes.edgtfCustomFontResize = edgtfCustomFontResize; 2486 shortcodes.edgtfInitImageGallery = edgtfInitImageGallery; 2487 shortcodes.edgtfProjectPresentationSlider = edgtProjectPresentationSlider; 2488 shortcodes.edgtfInitAccordions = edgtfInitAccordions; 2489 shortcodes.edgtfShowGoogleMap = edgtfShowGoogleMap; 2490 shortcodes.edgtfInitPortfolioListMasonry = edgtfInitPortfolioListMasonry; 2491 shortcodes.edgtfInitPortfolioListPinterest = edgtfInitPortfolioListPinterest; 2492 shortcodes.edgtfInitPortfolio = edgtfInitPortfolio; 2493 shortcodes.edgtfInitPortfolioMasonryFilter = edgtfInitPortfolioMasonryFilter; 2494 shortcodes.edgtfInitPortfolioSlider = edgtfInitPortfolioSlider; 2495 shortcodes.edgtfInitPortfolioLoadMore = edgtfInitPortfolioLoadMore; 2496 shortcodes.edgtfCheckSliderForHeaderStyle = edgtfCheckSliderForHeaderStyle; 2497 shortcodes.edgtfInitShopListMasonry = edgtfInitShopListMasonry; 2498 shortcodes.edgtfItemShowcase = edgtfItemShowcase; 2499 shortcodes.edgtfAnimationsHolder = edgtfAnimationsHolder; 2500 shortcodes.edgtfInitImageGalleryMasonry = edgtfInitImageGalleryMasonry; 2501 shortcodes.edgtfReservationFormDatePicker = edgtfReservationFormDatePicker; 2502 shortcodes.edgtfBanner = edgtfBanner; 2503 shortcodes.edgtfInitGiveSlider = edgtfInitGiveSlider; 2504 shortcodes.edgtfInitMasonryGallery = edgtfInitMasonryGallery; 2505 2506 shortcodes.edgtfOnDocumentReady = edgtfOnDocumentReady; 2507 shortcodes.edgtfOnWindowLoad = edgtfOnWindowLoad; 2508 shortcodes.edgtfOnWindowResize = edgtfOnWindowResize; 2509 shortcodes.edgtfOnWindowScroll = edgtfOnWindowScroll; 2510 2511 $(document).ready(edgtfOnDocumentReady); 2512 $(window).on('load', edgtfOnWindowLoad); 2513 $(window).resize(edgtfOnWindowResize); 2514 $(window).scroll(edgtfOnWindowScroll); 2515 2516 /* 2517 All functions to be called on $(document).ready() should be in this function 2518 */ 2519 function edgtfOnDocumentReady() { 2520 edgtfInitCounter(); 2521 edgtfInitProgressBars(); 2522 edgtfInitCountdown(); 2523 edgtfIcon().init(); 2524 edgtfInitMessages(); 2525 edgtfInitMessageHeight(); 2526 edgtfInitTestimonials(); 2527 edgtfInitCarousels(); 2528 edgtfInitPieChart(); 2529 edgtfInitPieChartDoughnut(); 2530 edgtfInitTabs(); 2531 edgtfInitElementsHolderResponsiveStyle(); 2532 edgtfInitTabIcons(); 2533 edgtfButton().init(); 2534 edgtfInitBlogListMasonry(); 2535 edgtfInitBlogSlider(); 2536 edgtfCustomFontResize(); 2537 edgtfInitImageGallery(); 2538 edgtProjectPresentationSlider(); 2539 edgtfInitAccordions(); 2540 edgtfShowGoogleMap(); 2541 edgtfInitPortfolioListMasonry(); 2542 edgtfInitPortfolioListPinterest(); 2543 edgtfInitPortfolio(); 2544 edgtfInitPortfolioMasonryFilter(); 2545 edgtfInitPortfolioSlider(); 2546 edgtfInitPortfolioLoadMore(); 2547 edgtfSlider().init(); 2548 edgtfSocialIconWidget().init(); 2549 edgtfInitIconList().init(); 2550 edgtfInitShopListMasonry(); 2551 edgtfInitMasonryGallery(); 2552 edgtfItemShowcase(); 2553 edgtfCustomFontTypeOut(); 2554 edgtfInitImageGalleryMasonry(); 2555 edgtfReservationFormDatePicker(); 2556 edgtfBanner(); 2557 } 2558 2559 /* 2560 All functions to be called on $(window).load() should be in this function 2561 */ 2562 function edgtfOnWindowLoad() { 2563 edgtfAnimationsHolder(); 2564 edgtfInitGiveSlider(); 2565 } 2566 2567 /* 2568 All functions to be called on $(window).resize() should be in this function 2569 */ 2570 function edgtfOnWindowResize() { 2571 edgtfInitBlogListMasonry(); 2572 //edgtfInitBlogSlider(); 2573 edgtfCustomFontResize(); 2574 edgtfInitPortfolioListMasonry(); 2575 edgtfInitPortfolioListPinterest(); 2576 edgtfInitMessageHeight(); 2577 } 2578 2579 /* 2580 All functions to be called on $(window).scroll() should be in this function 2581 */ 2582 function edgtfOnWindowScroll() { 2583 2584 } 2585 2586 2587 /** 2588 * Counter Shortcode 2589 */ 2590 function edgtfInitCounter() { 2591 2592 var counters = $('.edgtf-counter'); 2593 2594 2595 if (counters.length) { 2596 counters.each(function() { 2597 var counter = $(this);
2598 counter.appear(function() { 2599 counter.parent().addClass('edgtf-counter-holder-show'); 2600 2601 //Counter zero type 2602 if (counter.hasClass('zero')) { 2603 var max = parseFloat(counter.text()); 2604 counter.countTo({ 2605 from: 0, 2606 to: max, 2607 speed: 1500, 2608 refreshInterval: 100 2609 }); 2610 } else { 2611 counter.absoluteCounter({ 2612 speed: 2000, 2613 fadeInDelay: 1000 2614 }); 2615 } 2616 2617 },{accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount}); 2618 }); 2619 2620 var counterTitle = $('.edgtf-counter-title'); 2621 if(counterTitle.length){ 2622 counterTitle.each(function(){ 2623 var thisTitle = $(this); 2624 if(typeof thisTitle.data('hover-color') !== 'undefined') { 2625 var changeTitleColor = function(event) { 2626 event.data.thisTitle.css('color', event.data.color); 2627 }; 2628 2629 var originalColor = thisTitle.css('color'); 2630 var hoverColor = thisTitle.data('hover-color'); 2631 2632 thisTitle.on('mouseenter', { thisTitle: thisTitle, color: hoverColor }, changeTitleColor); 2633 thisTitle.on('mouseleave', { thisTitle: thisTitle, color: originalColor }, changeTitleColor); 2634 } 2635 }); 2636 } 2637 } 2638 2639 } 2640 2641 /* 2642 ** Elements Holder responsive style 2643 */ 2644 function edgtfInitElementsHolderResponsiveStyle(){ 2645 2646 var elementsHolder = $('.edgtf-elements-holder'); 2647 2648 if(elementsHolder.length){ 2649 elementsHolder.each(function() { 2650 var thisElementsHolder = $(this), 2651 elementsHolderItem = thisElementsHolder.children('.edgtf-elements-holder-item'), 2652 style = '', 2653 responsiveStyle = ''; 2654 2655 elementsHolderItem.each(function() { 2656 var thisItem = $(this), 2657 itemClass = '', 2658 largeLaptop = '', 2659 smallLaptop = '', 2660 ipadLandscape = '', 2661 ipadPortrait = '', 2662 mobileLandscape = '', 2663 mobilePortrait = ''; 2664 2665 if (typeof thisItem.data('item-class') !== 'undefined' && thisItem.data('item-class') !== false) { 2666 itemClass = thisItem.data('item-class'); 2667 } 2668 if (typeof thisItem.data('1280-1600') !== 'undefined' && thisItem.data('1280-1600') !== false) { 2669 largeLaptop = thisItem.data('1280-1600'); 2670 } 2671 if (typeof thisItem.data('1024-1280') !== 'undefined' && thisItem.data('1024-1280') !== false) { 2672 smallLaptop = thisItem.data('1024-1280'); 2673 } 2674 if (typeof thisItem.data('768-1024') !== 'undefined' && thisItem.data('768-1024') !== false) { 2675 ipadLandscape = thisItem.data('768-1024'); 2676 } 2677 if (typeof thisItem.data('600-768') !== 'undefined' && thisItem.data('600-768') !== false) { 2678 ipadPortrait = thisItem.data('600-768'); 2679 } 2680 if (typeof thisItem.data('480-600') !== 'undefined' && thisItem.data('480-600') !== false) { 2681 mobileLandscape = thisItem.data('480-600'); 2682 } 2683 if (typeof thisItem.data('480') !== 'undefined' && thisItem.data('480') !== false) { 2684 mobilePortrait = thisItem.data('480'); 2685 } 2686 2687 if(largeLaptop.length || smallLaptop.length || ipadLandscape.length || ipadPortrait.length || mobileLandscape.length || mobilePortrait.length) { 2688 2689 if(largeLaptop.length) { 2690 responsiveStyle += "@media only screen and (min-width: 1280px) and (max-width: 1600px) {.edgtf-elements-holder-item-content."+item
2690Class+" { padding: "+largeLaptop+" !important; } }"; 2691 } 2692 if(smallLaptop.length) { 2693 responsiveStyle += "@media only screen and (min-width: 1024px) and (max-width: 1280px) {.edgtf-elements-holder-item-content."+itemClass+" { padding: "+smallLaptop+" !important; } }"; 2694 } 2695 if(ipadLandscape.length) { 2696 responsiveStyle += "@media only screen and (min-width: 768px) and (max-width: 1024px) {.edgtf-elements-holder-item-content."+itemClass+" { padding: "+ipadLandscape+" !important; } }"; 2697 } 2698 if(ipadPortrait.length) { 2699 responsiveStyle += "@media only screen and (min-width: 600px) and (max-width: 768px) {.edgtf-elements-holder-item-content."+itemClass+" { padding: "+ipadPortrait+" !important; } }"; 2700 } 2701 if(mobileLandscape.length) { 2702 responsiveStyle += "@media only screen and (min-width: 480px) and (max-width: 600px) {.edgtf-elements-holder-item-content."+itemClass+" { padding: "+mobileLandscape+" !important; } }"; 2703 } 2704 if(mobilePortrait.length) { 2705 responsiveStyle += "@media only screen and (max-width: 480px) {.edgtf-elements-holder-item-content."+itemClass+" { padding: "+mobilePortrait+" !important; } }"; 2706 } 2707 } 2708 }); 2709 2710 if(responsiveStyle.length) { 2711 style = '<style type="text/css" data-type="goodwish_style_handle_shortcodes_custom_css">'+responsiveStyle+'</style>'; 2712 } 2713 2714 if(style.length) { 2715 $('head').append(style); 2716 } 2717 }); 2718 } 2719 } 2720 2721 /* 2722 ** Horizontal progress bars shortcode 2723 */ 2724 function edgtfInitProgressBars(){ 2725 2726 var progressBar = $('.edgtf-progress-bar'); 2727 2728 if(progressBar.length){ 2729 2730 progressBar.each(function() { 2731 2732 var thisBar = $(this); 2733 2734 thisBar.appear(function() { 2735 edgtfInitToCounterProgressBar(thisBar); 2736 if(thisBar.find('.edgtf-floating.edgtf-floating-inside') !== 0){ 2737 var floatingInsideMargin = thisBar.find('.edgtf-progress-content').height(); 2738 floatingInsideMargin += parseFloat(thisBar.find('.edgtf-progress-title-holder').css('padding-bottom')); 2739 floatingInsideMargin += parseFloat(thisBar.find('.edgtf-progress-title-holder').css('margin-bottom')); 2740 thisBar.find('.edgtf-floating-inside').css('margin-bottom',-(floatingInsideMargin)+'px'); 2741 } 2742 var percentage = thisBar.find('.edgtf-progress-content').data('percentage'), 2743 progressContent = thisBar.find('.edgtf-progress-content'), 2744 progressNumber = thisBar.find('.edgtf-progress-number'); 2745 2746 progressContent.css('width', '0%'); 2747 progressContent.animate({'width': percentage+'%'}, 1500); 2748 progressNumber.css('left', '0%'); 2749 progressNumber.animate({'left': percentage+'%'}, 1500); 2750 2751 }); 2752 }); 2753 } 2754 } 2755 2756 /* 2757 ** Counter for horizontal progress bars percent from zero to defined percent 2758 */ 2759 function edgtfInitToCounterProgressBar(progressBar){ 2760 var percentage = parseFloat(progressBar.find('.edgtf-progress-content').data('percentage')); 2761 var percent = progressBar.find('.edgtf-progress-number .edgtf-percent'); 2762 if(percent.length) { 2763 percent.each(function() { 2764 var thisPercent = $(this); 2765 thisPercent.parents('.edgtf-progress-number-wrapper').css('opacity', '1'); 2766 thisPercent.countTo({ 2767 from: 0, 2768 to: percentage, 2769 speed: 1500, 2770 refreshInterval: 50 2771 }); 2772 }); 2773 } 2774 } 2775 2776 /* 2777 ** Function to close message shortcode 2778 */ 2779 function edgtfInitMessages(){ 2780 var message = $('.edgtf-message'); 2781 if(message.length){ 2782 message.each(function(){ 2783 var thisMessage = $(this); 2784 thisMessage.find('.edgtf-close').on('click',function(e){ 2785 e.preventDefault(); 2786 $(this).parent().parent().fadeOut(500); 2787 }); 2788 }); 2789 } 2790 } 2791 2792 /* 2793 ** Init message height 2794 */ 2795 function edgtfInitMessageHeight(){ 2796 var message = $('.edgtf-message.edgtf-with-icon'); 2797 if(message.length){ 2798 message.each(function(){ 2799 var thisMessage = $(this); 2800 var textHolderHeight = thisMessage.find('.edgtf-message-text-holder').height();
2801 var iconHolderHeight = thisMessage.find('.edgtf-message-icon-holder').height(); 2802 2803 if(textHolderHeight > iconHolderHeight) { 2804 thisMessage.find('.edgtf-message-icon-holder').height(textHolderHeight); 2805 } else { 2806 thisMessage.find('.edgtf-message-text-holder').height(iconHolderHeight); 2807 } 2808 }); 2809 } 2810 } 2811 2812 /** 2813 * Countdown Shortcode 2814 */ 2815 function edgtfInitCountdown() { 2816 2817 var countdowns = $('.edgtf-countdown'), 2818 date = new Date(), 2819 currentMonth = date.getMonth(), 2820 currentYear = date.getFullYear(), 2821 year, 2822 month, 2823 day, 2824 hour, 2825 minute, 2826 timezone, 2827 monthLabel, 2828 dayLabel, 2829 hourLabel, 2830 minuteLabel, 2831 secondLabel; 2832 2833 if (countdowns.length) { 2834 2835 countdowns.each(function(){ 2836 2837 //Find countdown elements by id-s 2838 var countdownId = $(this).attr('id'), 2839 countdown = $('#'+countdownId), 2840 digitFontSize, 2841 labelFontSize, 2842 digitColor, 2843 labelColor; 2844 2845 //Get data for countdown 2846 year = countdown.data('year'); 2847 month = countdown.data('month'); 2848 day = countdown.data('day'); 2849 hour = countdown.data('hour'); 2850 minute = countdown.data('minute'); 2851 timezone = countdown.data('timezone'); 2852 monthLabel = countdown.data('month-label'); 2853 dayLabel = countdown.data('day-label'); 2854 hourLabel = countdown.data('hour-label'); 2855 minuteLabel = countdown.data('minute-label'); 2856 secondLabel = countdown.data('second-label'); 2857 digitFontSize = countdown.data('digit-size'); 2858 labelFontSize = countdown.data('label-size'); 2859 digitColor = countdown.data('digit-color'); 2860 labelColor = countdown.data('label-color'); 2861 2862 if( currentMonth !== month || currentYear !== year ) { 2863 month = month - 1; 2864 } 2865 2866 //Initialize countdown 2867 countdown.countdown({ 2868 until: new Date(year, month, day, hour, minute, 44), 2869 labels: ['Years', monthLabel, 'Weeks', dayLabel, hourLabel, minuteLabel, secondLabel], 2870 format: 'ODHMS', 2871 timezone: timezone, 2872 padZeroes: true, 2873 onTick: setCountdownStyle 2874 }); 2875 2876 function setCountdownStyle() { 2877 countdown.find('.countdown-amount').css({ 2878 'font-size' : digitFontSize+'px' 2879 }); 2880 countdown.find('.countdown-amount').css({ 2881 'color' : digitColor 2882 }); 2883 countdown.find('.countdown-period').css({ 2884 'font-size' : labelFontSize+'px' 2885 }); 2886 countdown.find('.countdown-period').css({ 2887 'color' : labelColor 2888 }); 2889 } 2890 2891 }); 2892 2893 } 2894 2895 } 2896 2897 /** 2898 * Object that represents icon shortcode 2899 * @returns {{init: Function}} function that initializes icon's functionality 2900 */ 2901 var edgtfIcon = edgtf.modules.shortcodes.edgtfIcon = function() { 2902 //get all icons on page 2903 var icons = $('.edgtf-icon-shortcode'); 2904 2905 /** 2906 * Function that triggers icon animation and icon animation delay 2907 */ 2908 var iconAnimation = function(icon) { 2909 if(icon.hasClass('edgtf-icon-animation')) { 2910 icon.appear(function() { 2911 icon.parent('.edgtf-icon-animation-holder').addClass('edgtf-icon-animation-show'); 2912 }, {accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount}); 2913 } 2914 }; 2915 2916 /** 2917 * Function that triggers icon hover color functionality 2918 */ 2919 var iconHoverColor = function(icon) { 2920 if(typeof icon.data('hover-color') !== 'undefined') { 2921 var changeIconColor = function(event) { 2922 event.data.icon.css('color', event.data.color); 2923 }; 2924 2925 var iconElement = icon.find('.edgtf-icon-element'); 2926 var hoverColor = icon.data('hover-color'); 2927 var originalColor = iconElement.css('color'); 2928 2929 if(hoverColor !== '') { 2930 icon.on('mouseenter', {icon: iconElement, color: hoverColor}, changeIconColor); 2931 icon.on('mouseleave', {icon: iconElement, color: originalColor}, changeIconColor); 2932 } 2933 } 2934 }; 2935 2936 /** 2937 * Function that triggers icon holder background color hover functionality 2938 */
2939 var iconHolderBackgroundHover = function(icon) { 2940 if(typeof icon.data('hover-background-color') !== 'undefined') { 2941 var changeIconBgColor = function(event) { 2942 event.data.icon.css('background-color', event.data.color); 2943 }; 2944 2945 var hoverBackgroundColor = icon.data('hover-background-color'); 2946 var originalBackgroundColor = icon.css('background-color'); 2947 2948 if(hoverBackgroundColor !== '') { 2949 icon.on('mouseenter', {icon: icon, color: hoverBackgroundColor}, changeIconBgColor); 2950 icon.on('mouseleave', {icon: icon, color: originalBackgroundColor}, changeIconBgColor); 2951 } 2952 } 2953 }; 2954 2955 /** 2956 * Function that initializes icon holder border hover functionality 2957 */ 2958 var iconHolderBorderHover = function(icon) { 2959 if(typeof icon.data('hover-border-color') !== 'undefined') { 2960 var changeIconBorder = function(event) { 2961 event.data.icon.css('border-color', event.data.color); 2962 }; 2963 2964 var hoverBorderColor = icon.data('hover-border-color'); 2965 var originalBorderColor = icon.css('border-color'); 2966 2967 if(hoverBorderColor !== '') { 2968 icon.on('mouseenter', {icon: icon, color: hoverBorderColor}, changeIconBorder); 2969 icon.on('mouseleave', {icon: icon, color: originalBorderColor}, changeIconBorder); 2970 } 2971 } 2972 }; 2973 2974 return { 2975 init: function() { 2976 if(icons.length) { 2977 icons.each(function() { 2978 iconAnimation($(this)); 2979 iconHoverColor($(this)); 2980 iconHolderBackgroundHover($(this)); 2981 iconHolderBorderHover($(this)); 2982 }); 2983 2984 } 2985 } 2986 }; 2987 }; 2988 2989 /** 2990 * Object that represents social icon widget 2991 * @returns {{init: Function}} function that initializes icon's functionality 2992 */ 2993 var edgtfSocialIconWidget = edgtf.modules.shortcodes.edgtfSocialIconWidget = function() { 2994 //get all social icons on page 2995 var icons = $('.edgtf-social-icon-widget-holder'); 2996 2997 /** 2998 * Function that triggers icon hover color functionality 2999 */ 3000 var socialIconHoverColor = function(icon) { 3001 if(typeof icon.data('hover-color') !== 'undefined') { 3002 var changeIconColor = function(event) { 3003 event.data.icon.css('color', event.data.color); 3004 }; 3005 3006 var iconElement = icon; 3007 var hoverColor = icon.data('hover-color'); 3008 var originalColor = iconElement.css('color'); 3009 3010 if(hoverColor !== '') { 3011 icon.on('mouseenter', {icon: iconElement, color: hoverColor}, changeIconColor); 3012 icon.on('mouseleave', {icon: iconElement, color: originalColor}, changeIconColor); 3013 } 3014 } 3015 }; 3016 3017 return { 3018 init: function() { 3019 if(icons.length) { 3020 icons.each(function() { 3021 socialIconHoverColor($(this)); 3022 }); 3023 3024 } 3025 } 3026 }; 3027 }; 3028 3029 /** 3030 * Init testimonials shortcode 3031 */ 3032 function edgtfInitTestimonials(){ 3033 3034 var testimonial = $('.edgtf-testimonials'); 3035 if(testimonial.length){ 3036 testimonial.each(function(){ 3037 3038 var thisTestimonial = $(this); 3039 3040 thisTestimonial.waitForImages(function() { 3041 thisTestimonial.css('visibility','visible'); 3042 }); 3043 3044 var auto = true; 3045 var controlNav = true; 3046 var directionNav = true; 3047 var animationSpeed = 1000; 3048 var responsive; 3049 var slidesToShow = 1; 3050 3051 if(typeof thisTestimonial.data('animation-speed') !== 'undefined' && thisTestimonial.data('animation-speed') !== false) { 3052 animationSpeed = thisTestimonial.data('animation-speed'); 3053 } 3054 3055 if(typeof thisTestimonial.data('dots-navigation') !== 'undefined') { 3056 controlNav = thisTestimonial.data('dots-navigation'); 3057 } 3058 if(typeof thisTestimonial.data('arrows-navigation') !== 'undefined') { 3059 directionNav = thisTestimonial.data('arrows-navigation'); 3060 } 3061 3062 if(thisTestimonial.hasClass('edgtf-testimonials-type-carousel')){ 3063 slidesToShow = 3; 3064 3065 responsive = [ 3066 { 3067 breakpoint: 1024, 3068 settings: { 3069 slidesToShow: 2, 3070 slidesToScroll: 1, 3071 infinite: true, 3072 dots: false 3073 } 3074 }, 3075 { 3076 breakpoint: 600, 3077 settings: { 3078 slidesToShow: 1, 3079 slidesToScroll: 1 3080 } 3081 } 3082 ] 3083 } 3084 3085 thisTestimonial.slick({ 3086 infinite: true, 3087 autoplay: auto, 3088 slidesToShow : slidesToShow, 3089 arrows: directionNav, 3090 dots: controlNav, 3091 dotsClass: 'edgtf-slick-dots', 3092 adaptiveHeight: true, 3093 speed: animationSpeed, 3094 easing:'easeOutCubic', 3095 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 3096 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 3097 customPaging: function(slider, i) { 3098 return '<span class="edgtf-slick-dot-inner"></span>'; 3099 }, 3100 responsive: responsive, 3101 }); 3102 }); 3103 3104 } 3105 3106 } 3107 3108 /** 3109 * Init Carousel shortcode 3110 */ 3111 function edgtfInitCarousels() { 3112 3113 var carouselHolders = $('.edgtf-carousel-holder'), 3114 carousel, 3115 numberOfItems, 3116 arrowsNavigation, 3117 dotsNavigation; 3118 3119 if (carouselHolders.length) { 3120 carouselHolders.each(function(){ 3121 carousel = $(this).children('.edgtf-carousel'); 3122 numberOfItems = carousel.data('items'); 3123 arrowsNavigation = (carousel.data('arrows-navigation') == 'yes') ? true : false;
3124 dotsNavigation = (carousel.data('dots-navigation') == 'yes') ? true : false; 3125 3126 //Responsive breakpoints 3127 3128 carousel.slick({ 3129 infinite: true, 3130 autoplay: true, 3131 slidesToShow : numberOfItems, 3132 arrows: arrowsNavigation, 3133 dots: dotsNavigation, 3134 dotsClass: 'edgtf-slick-dots', 3135 adaptiveHeight: true, 3136 easing:'easeOutCubic', 3137 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 3138 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 3139 customPaging: function(slider, i) { 3140 return '<span class="edgtf-slick-dot-inner"></span>'; 3141 }, 3142 responsive: [ 3143 { 3144 breakpoint: 1024, 3145 settings: { 3146 slidesToShow: 3, 3147 slidesToScroll: 1 3148 } 3149 }, 3150 { 3151 breakpoint: 600, 3152 settings: { 3153 slidesToShow: 2, 3154 slidesToScroll: 1 3155 } 3156 }, 3157 { 3158 breakpoint: 480, 3159 settings: { 3160 slidesToShow: 1, 3161 slidesToScroll: 1 3162 } 3163 } 3164 ] 3165 }); 3166 3167 3168 }); 3169 } 3170 3171 } 3172 3173 /** 3174 * Init Pie Chart and Pie Chart With Icon shortcode 3175 */ 3176 function edgtfInitPieChart() { 3177 3178 var pieCharts = $('.edgtf-pie-chart-holder, .edgtf-pie-chart-with-icon-holder'); 3179 3180 if (pieCharts.length) { 3181 3182 pieCharts.each(function () { 3183 3184 var pieChart = $(this), 3185 percentageHolder = pieChart.children('.edgtf-percentage, .edgtf-percentage-with-icon'), 3186 barColor = '#ffb422', 3187 trackColor = '#f6f4ee', 3188 lineWidth = 6, 3189 size = 180; 3190 3191 if(typeof percentageHolder.data('bar-color') !== 'undefined' && percentageHolder.data('bar-color') !== '') { 3192 barColor = percentageHolder.data('bar-color'); 3193 } 3194 3195 if(typeof percentageHolder.data('track-color') !== 'undefined' && percentageHolder.data('track-color') !== '') { 3196 trackColor = percentageHolder.data('track-color'); 3197 } 3198 3199 percentageHolder.appear(function() { 3200 initToCounterPieChart(pieChart); 3201 percentageHolder.css('opacity', '1'); 3202 3203 percentageHolder.easyPieChart({ 3204 barColor: barColor, 3205 trackColor: trackColor, 3206 scaleColor: false, 3207 lineCap: 'butt', 3208 lineWidth: lineWidth, 3209 animate: 1500, 3210 size: size 3211 }); 3212 },{accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount}); 3213 3214 }); 3215 3216 } 3217 3218 } 3219 3220 /* 3221 ** Counter for pie chart number from zero to defined number 3222 */ 3223 function initToCounterPieChart( pieChart ){ 3224 3225 pieChart.css('opacity', '1'); 3226 var counter = pieChart.find('.edgtf-to-counter'), 3227 max = parseFloat(counter.text()); 3228 counter.countTo({ 3229 from: 0, 3230 to: max, 3231 speed: 1500, 3232 refreshInterval: 50 3233 }); 3234 3235 } 3236 3237 /** 3238 * Init Pie Chart shortcode 3239 */ 3240 function edgtfInitPieChartDoughnut() { 3241 3242 var pieCharts = $('.edgtf-pie-chart-doughnut-holder, .edgtf-pie-chart-pie-holder'); 3243 3244 pieCharts.each(function(){ 3245 3246 var pieChart = $(this), 3247 canvas = pieChart.find('canvas'), 3248 chartID = canvas.attr('id'), 3249 chart = document.getElementById(chartID).getContext('2d'), 3250 type, 3251 values = [], 3252 backgroundColors = [], 3253 borderWidth = [], 3254 jqChart = $(chart.canvas); //Convert canvas to JQuery object and get data parameters 3255 3256 for (var i = 1; i <= 10; i++) { 3257 3258 var value = jqChart.data('value-' + i), 3259 color = jqChart.data('color-' + i); 3260 3261 if (typeof value !== 'undefined' && typeof color !== 'undefined') { 3262 values.push(value); 3263 backgroundColors.push(color); 3264 borderWidth.push(0); 3265 } 3266 3267 } 3268 3269 if (canvas.hasClass('edgtf-pie')) { 3270 type = 'pie'; 3271 } else { 3272 type = 'doughnut'; 3273 } 3274 3275 var chartOptions = { 3276 type: type, 3277 data: { 3278 datasets: [{ 3279 data: values, 3280 backgroundColor: backgroundColors, 3281 borderWidth: borderWidth, 3282 }], 3283 }, 3284 } 3285 3286 if ( ! canvas.hasClass( 'edgtf--initialized' ) ) { 3287 chart = new Chart( 3288 canvas, 3289 chartOptions 3290 ); 3291 3292 canvas.addClass( 'edgtf--initialized' ); 3293 } 3294 3295 }); 3296 3297 } 3298 3299 /* 3300 ** Init tabs shortcode 3301 */ 3302 function edgtfInitTabs(){ 3303 3304 var tabs = $('.edgtf-tabs'); 3305 if(tabs.length){ 3306 tabs.each(function(){ 3307 var thisTabs = $(this); 3308 3309 thisTabs.children('.edgtf-tab-container').each(function(index){ 3310 index = index + 1; 3311 var that = $(this), 3312 link = that.attr('id'), 3313 navItem = that.parent().find('.edgtf-tabs-nav li:nth-child('+index+') a'), 3314 navLink = navItem.attr('href'); 3315 3316 link = '#'+link; 3317 3318 if(link.indexOf(navLink) > -1) { 3319 navItem.attr('href',link); 3320 } 3321 }); 3322 3323 if(thisTabs.hasClass('edgtf-horizontal-tab')){ 3324 thisTabs.tabs(); 3325 } else if(thisTabs.hasClass('edgtf-vertical-tab')){
3326 thisTabs.tabs().addClass( 'ui-tabs-vertical ui-helper-clearfix' ); 3327 thisTabs.find('.edgtf-tabs-nav > ul >li').removeClass( 'ui-corner-top' ).addClass( 'ui-corner-left' ); 3328 } 3329 }); 3330 } 3331 } 3332 3333 /* 3334 ** Generate icons in tabs navigation 3335 */ 3336 function edgtfInitTabIcons(){ 3337 3338 var tabContent = $('.edgtf-tab-container'); 3339 if(tabContent.length){ 3340 3341 tabContent.each(function(){ 3342 var thisTabContent = $(this); 3343 3344 var id = thisTabContent.attr('id'); 3345 var icon = ''; 3346 if(typeof thisTabContent.data('icon-html') !== 'undefined' || thisTabContent.data('icon-html') !== 'false') { 3347 icon = thisTabContent.data('icon-html'); 3348 } 3349 3350 var tabNav = thisTabContent.parents('.edgtf-tabs').find('.edgtf-tabs-nav > li > a[href="#'+id+'"]'); 3351 3352 if(typeof(tabNav) !== 'undefined') { 3353 tabNav.children('.edgtf-icon-frame').append(icon); 3354 } 3355 }); 3356 } 3357 } 3358 3359 /** 3360 * Button object that initializes whole button functionality 3361 * @type {Function} 3362 */ 3363 var edgtfButton = edgtf.modules.shortcodes.edgtfButton = function() { 3364 //all buttons on the page 3365 var buttons = $('.edgtf-btn'); 3366 3367 /** 3368 * Initializes button hover color 3369 * @param button current button 3370 */ 3371 var buttonHoverColor = function(button) { 3372 if(typeof button.data('hover-color') !== 'undefined') { 3373 var changeButtonColor = function(event) { 3374 event.data.button.css('color', event.data.color); 3375 }; 3376 3377 var originalColor = button.css('color'); 3378 var hoverColor = button.data('hover-color'); 3379 3380 button.on('mouseenter', { button: button, color: hoverColor }, changeButtonColor); 3381 button.on('mouseleave', { button: button, color: originalColor }, changeButtonColor); 3382 } 3383 }; 3384 3385 3386 3387 /** 3388 * Initializes button hover background color 3389 * @param button current button 3390 */ 3391 var buttonHoverBgColor = function(button, hoverEl) { 3392 if(typeof button.data('hover-bg-color') !== 'undefined') { 3393 var changeButtonBg = function(event) { 3394 event.data.button.css('background-color', event.data.color); 3395 }; 3396 3397 var originalBgColor = button.css('background-color'); 3398 var hoverBgColor = button.data('hover-bg-color'); 3399 3400 if(hoverEl){ 3401 button.find('.edgtf-btn-hover').css('background-color',hoverBgColor); 3402 } 3403 else{ 3404 button.on('mouseenter', { button: button, color: hoverBgColor }, changeButtonBg); 3405 button.on('mouseleave', { button: button, color: originalBgColor }, changeButtonBg); 3406 } 3407 } 3408 }; 3409 3410 /** 3411 * Initializes button border color 3412 * @param button 3413 */ 3414 var buttonHoverBorderColor = function(button) { 3415 if(typeof button.data('hover-border-color') !== 'undefined') { 3416 var changeBorderColor = function(event) { 3417 event.data.button.css('border-color', event.data.color); 3418 }; 3419 3420 var originalBorderColor = button.css('borderTopColor'); //take one of the four sides 3421 var hoverBorderColor = button.data('hover-border-color'); 3422 button.on('mouseenter', { button: button, color: hoverBorderColor }, changeBorderColor); 3423 button.on('mouseleave', { button: button, color: originalBorderColor }, changeBorderColor); 3424 } 3425 }; 3426 3427 return { 3428 init: function() { 3429 if(buttons.length) { 3430 buttons.each(function() { 3431 var thisBtn = $(this); 3432 buttonHoverColor(thisBtn); 3433 if(thisBtn.hasClass('edgtf-btn-animated')){ 3434 buttonHoverBgColor(thisBtn, true); 3435 }else{ 3436 buttonHoverBgColor(thisBtn,false); 3437 // border color transition exists only for non animated buttons 3438 buttonHoverBorderColor(thisBtn); 3439 } 3440 }); 3441 } 3442 } 3443 }; 3444 }; 3445 3446 /* 3447 ** Init blog list masonry type 3448 */ 3449 function edgtfInitBlogListMasonry(){ 3450 var blogList = $('.edgtf-blog-list-holder.edgtf-masonry .edgtf-blog-list'); 3451 if(blogList.length) { 3452 blogList.each(function() { 3453 var thisBlogList = $(this); 3454 blogList.waitForImages(function() { 3455 thisBlogList.isotope({ 3456 layoutMode: 'packery', 3457 itemSelector: '.edgtf-blog-list-masonry-item', 3458 packery: { 3459 columnWidth: '.edgtf-blog-list-masonry-grid-sizer', 3460 gutter: '.edgtf-blog-list-masonry-grid-gutter' 3461 } 3462 }); 3463 thisBlogList.addClass('edgtf-appeared'); 3464 }); 3465 }); 3466 3467 } 3468 } 3469 3470 /** 3471 * Initializes portfolio slider 3472 */ 3473 3474 function edgtfInitBlogSlider(){ 3475 var blogSlider = $('.edgtf-blog-slider'); 3476 if(blogSlider.length){ 3477 blogSlider.each(function(){ 3478 var thisBlogSlider = $(this); 3479 var navigation = true; 3480 var responsive; 3481 var slides = 1; 3482 3483 if (typeof thisBlogSlider.data('type') !== 'undefined' && thisBlogSlider.data('type') !== false && thisBlogSlider.data('type') == 'carousel') { 3484 3485 responsive = [ 3486 { 3487 breakpoint: 1025, 3488 settings: { 3489 slidesToShow: 2, 3490 slidesToScroll: 1, 3491 infinite: true, 3492 dots: true 3493 } 3494 }, 3495 { 3496 breakpoint: 768, 3497 settings: { 3498 slidesToShow: 1, 3499 slidesToScroll: 1 3500 } 3501 } 3502 ] 3503 slides = 3; 3504 } 3505 3506 thisBlogSlider.on('init', function(slick){ 3507 thisBlogSlider.css('opacity', 1); 3508 }); 3509 thisBlogSlider.waitForImages(function() { 3510 thisBlogSlider.slick({ 3511 infinite: true, 3512 autoplay: false, 3513 slidesToShow : slides, 3514 arrows: navigation, 3515 dots: true, 3516 dotsClass: 'edgtf-slick-dots', 3517 adaptiveHeight: true, 3518 easing:'easeOutCubic', 3519 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 3520 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 3521 customPaging: function(slider, i) { 3522 return '<span class="edgtf-slick-dot-inner"></span>'; 3523 }, 3524 responsive: responsive 3525 }); 3526 }); 3527 3528 }); 3529 } 3530 } 3531 3532 /* 3533 ** Custom Font resizing 3534 */ 3535 function edgtfCustomFontResize(){ 3536 var customFont = $('.edgtf-custom-font-holder'); 3537 if (customFont.length){ 3538 customFont.each(function(){ 3539 var thisCustomFont = $(this); 3540 var fontSize; 3541 var lineHeight; 3542 var coef1 = 1; 3543 var coef2 = 1; 3544 3545 if (edgtf.windowWidth < 1200){ 3546 coef1 = 0.8; 3547 } 3548 3549 if (edgtf.windowWidth < 1024){ 3550 coef1 = 0.7; 3551 } 3552 3553 if (edgtf.windowWidth < 768){ 3554 coef1 = 0.6; 3555 coef2 = 0.7; 3556 } 3557 3558 if (edgtf.windowWidth < 600){ 3559 coef1 = 0.5; 3560 coef2 = 0.6; 3561 } 3562 3563 if (edgtf.windowWidth < 480){ 3564 coef1 = 0.4; 3565 coef2 = 0.5; 3566 } 3567 3568 if (typeof thisCustomFont.data('font-size') !== 'undefined' && thisCustomFont.data('font-size') !== false) { 3569 fontSize = parseInt(thisCustomFont.data('font-size')); 3570 3571 if (fontSize > 70) { 3572 fontSize = Math.round(fontSize*coef1); 3573 } 3574 else if (fontSize > 35) { 3575 fontSize = Math.round(fontSize*coef2); 3576 } 3577 3578 thisCustomFont.css('font-size',fontSize + 'px'); 3579 } 3580 3581 if (typeof thisCustomFont.data('line-height') !== 'undefined' && thisCustomFont.data('line-height') !== false) { 3582 lineHeight = parseInt(thisCustomFont.data('line-height')); 3583 3584 if (lineHeight > 70 && edgtf.windowWidth < 1200) { 3585 lineHeight = '1.2em'; 3586 } 3587 else if (lineHeight > 35 && edgtf.windowWidth < 768) { 3588 lineHeight = '1.2em'; 3589 } 3590 else{ 3591 lineHeight += 'px'; 3592 } 3593 3594 thisCustomFont.css('line-height', lineHeight); 3595 } 3596 }); 3597 } 3598 } 3599 3600 /* 3601 ** Show Google Map 3602 */ 3603 function edgtfShowGoogleMap(){ 3604 3605 if($('.edgtf-google-map').length){ 3606 $('.edgtf-google-map').each(function(){ 3607 3608 var element = $(this); 3609 3610 var customMapStyle; 3611 if(typeof element.data('custom-map-style') !== 'undefined') { 3612 customMapStyle = element.data('custom-map-style'); 3613 } 3614 3615 var colorOverlay; 3616 if(typeof element.data('color-overlay') !== 'undefined' && element.data('color-overlay') !== false) { 3617 colorOverlay = element.data('color-overlay'); 3618 } 3619 3620 var saturation; 3621 if(typeof element.data('saturation') !== 'undefined' && element.data('saturation') !== false) { 3622 saturation = element.data('saturation'); 3623 } 3624 3625 var lightness; 3626 if(typeof element.data('lightness') !== 'undefined' && element.data('lightness') !== false) { 3627 lightness = element.data('lightness'); 3628 } 3629 3630 var zoom; 3631 if(typeof element.data('zoom') !== 'undefined' && element.data('zoom') !== false) { 3632 zoom = element.data('zoom'); 3633 } 3634 3635 var pin; 3636 if(typeof element.data('pin') !== 'undefined' && element.data('pin') !== false) { 3637 pin = element.data('pin'); 3638 } 3639 3640 var mapHeight; 3641 if(typeof element.data('height') !== 'undefined' && element.data('height') !== false) { 3642 mapHeight = element.data('height'); 3643 } 3644 3645 var uniqueId; 3646 if(typeof element.data('unique-id') !== 'undefined' && element.data('unique-id') !== false) { 3647 uniqueId = element.data('unique-id'); 3648 } 3649 3650 var scrollWheel; 3651 if(typeof element.data('scroll-wheel') !== 'undefined') { 3652 scrollWheel = element.data('scroll-wheel'); 3653 } 3654 var addresses; 3655 if(typeof element.data('addresses') !== 'undefined' && element.data('addresses') !== false) { 3656 addresses = element.data('addresses'); 3657 } 3658 3659 var map = "map_"+ uniqueId; 3660 var geocoder = "geocoder_"+ uniqueId; 3661 var holderId = "edgtf-map-"+ uniqueId; 3662 3663 edgtfInitializeGoogleMap(customMapStyle, colorOverlay, saturation, lightness, scrollWheel, zoom, holderId, mapHeight, pin, map, geocoder, addresses); 3664 }); 3665 } 3666 3667 } 3668 /* 3669 ** Init Google Map 3670 */ 3671 function edgtfInitializeGoogleMap(customMapStyle, color, saturation, lightness, wheel, zoom, holderId, height, pin, map, geocoder, data){ 3672 3673 var mapStyles = [ 3674 { 3675 stylers: [ 3676 {hue: color }, 3677 {saturation: saturation}, 3678 {lightness: lightness}, 3679 {gamma: 1} 3680 ] 3681 } 3682 ]; 3683 3684 var googleMapStyleId; 3685 3686 if(customMapStyle){ 3687 googleMapStyleId = 'edgtf-style'; 3688 } else { 3689 googleMapStyleId = google.maps.MapTypeId.ROADMAP; 3690 } 3691 3692 var qoogleMapType = new google.maps.StyledMapType(mapStyles, 3693 {name: "Edge Google Map"}); 3694 3695 geocoder = new google.maps.Geocoder(); 3696 var latlng = new google.maps.LatLng(-34.397, 150.644); 3697 3698 if (!isNaN(height)){ 3699 height = height + 'px'; 3700 } 3701 3702 var myOptions = { 3703 3704 zoom: zoom, 3705 scrollwheel: wheel, 3706 center: latlng, 3707 zoomControl: true, 3708 zoomControlOptions: { 3709 style: google.maps.ZoomControlStyle.SMALL, 3710 position: google.maps.ControlPosition.RIGHT_CENTER 3711 }, 3712 scaleControl: false, 3713 scaleControlOptions: { 3714 position: google.maps.ControlPosition.LEFT_CENTER 3715 }, 3716 streetViewControl: false, 3717 streetViewControlOptions: { 3718 position: google.maps.ControlPosition.LEFT_CENTER 3719 }, 3720 panControl: false, 3721 panControlOptions: { 3722 position: google.maps.ControlPosition.LEFT_CENTER 3723 }, 3724 mapTypeControl: false, 3725 mapTypeControlOptions: { 3726 mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'edgtf-style'], 3727 style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, 3728 position: google.maps.ControlPosition.LEFT_CENTER 3729 }, 3730 mapTypeId: googleMapStyleId 3731 }; 3732 3733 map = new google.maps.Map(document.getElementById(holderId), myOptions); 3734 map.mapTypes.set('edgtf-style', qoogleMapType); 3735 3736 var index; 3737 3738 for (index = 0; index < data.length; ++index) { 3739 edgtfInitializeGoogleAddress(data[index], pin, map, geocoder); 3740 } 3741 3742 var holderElement = document.getElementById(holderId); 3743 holderElement.style.height = height; 3744 } 3745 /* 3746 ** Init Google Map Addresses 3747 */ 3748 function edgtfInitializeGoogleAddress(data, pin, map, geocoder){ 3749 if (data === '') 3750 return; 3751 var contentString = '<div id="content">'+ 3752 '<div id="siteNotice">'+ 3753 '</div>'+ 3754 '<div id="bodyContent">'+ 3755 '<p>'+data+'</p>'+ 3756 '</div>'+ 3757 '</div>'; 3758 var infowindow = new google.maps.InfoWindow({ 3759 content: contentString 3760 }); 3761 geocoder.geocode( { 'address': data}, function(results, status) { 3762 if (status === google.maps.GeocoderStatus.OK) { 3763 map.setCenter(results[0].geometry.location); 3764 var marker = new google.maps.Marker({ 3765 map: map, 3766 position: results[0].geometry.location, 3767 icon: pin, 3768 title: data['store_title'] 3769 }); 3770 google.maps.event.addListener(marker, 'click', function() { 3771 infowindow.open(map,marker); 3772 }); 3773 3774 window.addEventListener('resize', function () { 3775 map.setCenter(results[0].geometry.location); 3776 }); 3777 } 3778 }); 3779 } 3780 3781 function edgtfInitAccordions(){ 3782 var accordion = $('.edgtf-accordion-holder'); 3783 if(accordion.length){ 3784 accordion.each(function(){ 3785 3786 var thisAccordion = $(this); 3787 3788 if(thisAccordion.hasClass('edgtf-accordion')){ 3789 3790 thisAccordion.accordion({ 3791 animate: "swing", 3792 collapsible: true, 3793 active: 0, 3794 icons: "", 3795 heightStyle: "content" 3796 }); 3797 } 3798 3799 if(thisAccordion.hasClass('edgtf-toggle')){ 3800 3801 var toggleAccordion = $(this); 3802 var toggleAccordionTitle = toggleAccordion.find('.edgtf-title-holder'); 3803 var toggleAccordionContent = toggleAccordionTitle.next(); 3804 3805 toggleAccordion.addClass("accordion ui-accordion ui-accordion-icons ui-widget ui-helper-reset"); 3806 toggleAccordionTitle.addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-top ui-corner-bottom"); 3807 toggleAccordionContent.addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide(); 3808 3809 toggleAccordionTitle.each(function(){ 3810 var thisTitle = $(this); 3811 thisTitle.on('mouseenter mouseleave',function(){ 3812 thisTitle.toggleClass("ui-state-hover"); 3813 }); 3814 3815 thisTitle.on('click',function(){ 3816 thisTitle.toggleClass('ui-accordion-header-active ui-state-active ui-state-default ui-corner-bottom'); 3817 thisTitle.next().toggleClass('ui-accordion-content-active').slideToggle(400); 3818 }); 3819 }); 3820 } 3821 }); 3822 } 3823 } 3824 3825 function edgtfInitImageGallery() { 3826 3827
3827 var galleries = $('.edgtf-image-gallery'); 3828 3829 if (galleries.length) { 3830 galleries.each(function () { 3831 var gallery = $(this).children('.edgtf-image-gallery-slider'), 3832 animation = (gallery.data('animation') == 'fade'), 3833 navigation = (gallery.data('navigation') == 'yes'), 3834 pagination = (gallery.data('pagination') == 'yes'), 3835 autoPlay = false, 3836 autoPlaySpeed = 1; 3837 if(gallery.data('autoplay') != ''){ 3838 autoPlay = true; 3839 autoPlaySpeed = gallery.data('autoplay') * 1000; 3840 } 3841 3842 gallery.slick({ 3843 autoplay: autoPlay, 3844 autoPlaySpeed: autoPlaySpeed * 1000, 3845 arrows: navigation, 3846 adaptiveHeight: true, 3847 fade: animation, 3848 dotsClass: 'edgtf-slick-dots', 3849 dots: pagination, 3850 speed: 600, 3851 easing:'easeOutCubic', 3852 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 3853 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 3854 customPaging: function(slider, i) { 3855 return '<span class="edgtf-slick-dot-inner"></span>'; 3856 } 3857 }); 3858 }); 3859 } 3860 3861 var carousels = $('.edgtf-image-gallery-carousel-wrapper'); 3862 3863 if (carousels.length) { 3864 carousels.each(function () { 3865 var carousel = $(this).children('.edgtf-image-gallery-carousel'), 3866 navigation = (carousel.data('navigation') == 'yes'), 3867 pagination = (carousel.data('pagination') == 'yes'), 3868 autoPlay = false, 3869 slidesToShow = 1, 3870 centerMode = true, 3871 variableWidth = true, 3872 autoPlaySpeed = 1; 3873 if(carousel.data('autoplay') != ''){ 3874 autoPlay = true; 3875 autoPlaySpeed = carousel.data('autoplay') * 1000; 3876 } 3877 3878 var responsive = [ 3879 { 3880 breakpoint: 1024, 3881 settings: { 3882 slidesToShow: 3, 3883 slidesToScroll: 1, 3884 infinite: true, 3885 dots: true 3886 } 3887 }, 3888 { 3889 breakpoint: 768, 3890 settings: { 3891 slidesToShow: 2, 3892 slidesToScroll: 1, 3893 infinite: true, 3894 dots: true 3895 } 3896 }, 3897 { 3898 breakpoint: 600, 3899 settings: { 3900 slidesToShow: 1, 3901 slidesToScroll: 1 3902 } 3903 } 3904 ] 3905 3906 carousel.slick({ 3907 autoplay: autoPlay, 3908 autoPlaySpeed: autoPlaySpeed * 1000, 3909 arrows: navigation, 3910 dots: pagination, 3911 dotsClass: 'edgtf-slick-dots', 3912 speed: 600, 3913 easing:'easeOutCubic', 3914 slidesToShow : slidesToShow, 3915 variableWidth: variableWidth, 3916 centerMode: centerMode, 3917 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 3918 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 3919 responsive:responsive, 3920 customPaging: function(slider, i) { 3921 return '<span class="edgtf-slick-dot-inner"></span>'; 3922 } 3923 }); 3924 }); 3925 } 3926 3927 } 3928 3929 /** 3930 * Init Image Masonry Gallery 3931 */ 3932 function edgtfInitImageGalleryMasonry(){ 3933 var masonryGallery = $('.edgtf-image-gallery-masonry'); 3934 3935 if(masonryGallery.length) { 3936 masonryGallery.each(function () { 3937 var thisGallery = $(this); 3938 thisGallery.waitForImages(function () { 3939 var size = thisGallery.find('.edgtf-image-masonry-grid-sizer').width(); 3940 edgtfImageResizeMasonry(size,thisGallery); 3941 edgtfInitImageMasonry(thisGallery); 3942 3943 }); 3944 $(window).resize(function(){ 3945 var size = thisGallery.find('.edgtf-image-masonry-grid-sizer').width(); 3946 edgtfImageResizeMasonry(size,thisGallery); 3947 edgtfInitImageMasonry(thisGallery); 3948 }); 3949 }); 3950 } 3951 } 3952 3953 function edgtfInitImageMasonry(container){ 3954 container.animate({opacity: 1}); 3955 container.isotope({ 3956 itemSelector: '.edgtf-gallery-image', 3957 masonry: { 3958 columnWidth: '.edgtf-image-masonry-grid-sizer' 3959 } 3960 }); 3961 } 3962 3963 3964 function edgtfImageResizeMasonry(size,container){ 3965 3966 var defaultMasonryItem = container.find('.edgtf-size-square'); 3967 var largeWidthMasonryItem = container.find('.edgtf-size-landscape'); 3968 var largeHeightMasonryItem = container.find('.edgtf-size-portrait'); 3969 var largeWidthHeightMasonryItem = container.find('.edgtf-size-big-square'); 3970 3971 defaultMasonryItem.css('height', size); 3972 largeHeightMasonryItem.css('height', Math.round(2*size)); 3973 3974 if(edgtf.windowWidth > 768){ 3975 largeWidthHeightMasonryItem.css('height', Math.round(2*size)); 3976 largeWidthMasonryItem.css('height', size); 3977 }else{ 3978 largeWidthHeightMasonryItem.css('height', size); 3979 largeWidthMasonryItem.css('height', Math.round(size/2)); 3980 } 3981 } 3982 3983 /** 3984 * Initializes project presentation slider 3985 */ 3986 3987 function edgtProjectPresentationSlider() { 3988 3989 var sliders = $('.edgtf-pp-gallery'); 3990 3991 if (sliders.length) { 3992 sliders.each(function () { 3993 var slider = $(this).children('.edgtf-pp-gallery-slider'), 3994 animation = (slider.data('animation') == 'fade'), 3995 navigation = false, 3996 pagination = (slider.data('pagination') == 'yes'), 3997 autoPlay = false, 3998 autoplaySpeed = 1; 3999 if(slider.data('autoplay') != 'disable'){ 4000 autoPlay = true; 4001 autoplaySpeed = slider.data('autoplay') * 1000; 4002 } 4003 4004 slider.on('afterChange', function(slick){ 4005 $('.edgtf-project-presentation .slick-slider .slick-track').css('height', '100%'); 4006 }); 4007 4008 slider.slick({ 4009 autoplay: autoPlay,
4010 autoplaySpeed: autoplaySpeed, 4011 arrows: navigation, 4012 adaptiveHeight: true, 4013 fade: true, 4014 dots: pagination, 4015 easing:'easeOutCubic', 4016 dotsClass: 'edgtf-slick-dots', 4017 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 4018 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 4019 customPaging: function(slider, i) { 4020 return '<span class="edgtf-slick-dot-inner"></span>'; 4021 } 4022 }); 4023 4024 }); 4025 } 4026 } 4027 4028 /** 4029 * Initializes portfolio list 4030 */ 4031 function edgtfInitPortfolio(){ 4032 var portList = $('.edgtf-portfolio-list-holder-outer.edgtf-ptf-standard:not(.edgtf-portfolio-slider-holder), .edgtf-portfolio-list-holder-outer.edgtf-ptf-gallery:not(.edgtf-portfolio-slider-holder), .edgtf-portfolio-list-holder-outer.edgtf-ptf-gallery-with-space:not(.edgtf-portfolio-slider-holder)'); 4033 if(portList.length){ 4034 portList.each(function(){ 4035 var thisPortList = $(this); 4036 edgtfInitPortMixItUp(thisPortList); 4037 if(thisPortList.hasClass('edgtf-follow')){ 4038 thisPortList.find('article').each(function(){ 4039 $(this).hoverdir({ 4040 hoverElem:'div.edgtf-item-text-overlay', 4041 speed: 330, 4042 hoverDelay: 35, 4043 easing: 'ease' 4044 }); 4045 }); 4046 } 4047 }); 4048 } 4049 } 4050 /** 4051 * Initializes mixItUp function for specific container 4052 */ 4053 function edgtfInitPortMixItUp(container){ 4054 var filterClass = ''; 4055 if(container.hasClass('edgtf-ptf-has-filter')){ 4056 filterClass = container.find('.edgtf-portfolio-filter-holder-inner ul li').data('class'); 4057 filterClass = '.'+filterClass; 4058 } 4059 4060 var holderInner = container.find('.edgtf-portfolio-list-holder'); 4061 holderInner.mixItUp({ 4062 callbacks: { 4063 onMixLoad: function(){ 4064 holderInner.find('article').css('visibility','visible'); 4065 edgtf.modules.common.edgtfInitParallax(); 4066 }, 4067 onMixStart: function(){ 4068 holderInner.find('article').css('visibility','visible'); 4069 }, 4070 onMixBusy: function(){ 4071 holderInner.find('article').css('visibility','visible'); 4072 } 4073 }, 4074 selectors: { 4075 filter: filterClass 4076 }, 4077 animation: { 4078 effects: 'fade', 4079 duration: 600 4080 } 4081 4082 }); 4083 4084 } 4085 /* 4086 ** Init portfolio list masonry type 4087 */ 4088 function edgtfInitPortfolioListMasonry(){ 4089 var portList = $('.edgtf-portfolio-list-holder-outer.edgtf-ptf-masonry,.edgtf-portfolio-list-holder-outer.edgtf-ptf-masonry-with-space'); 4090 if(portList.length) { 4091 portList.each(function() { 4092 var thisPortList = $(this).children('.edgtf-portfolio-list-holder'); 4093 var size = thisPortList.find('.edgtf-portfolio-list-masonry-grid-sizer').width(); 4094 edgtfResizeMasonry(size,thisPortList); 4095 4096 edgtfInitMasonry(thisPortList); 4097 $(window).resize(function(){ 4098 edgtfResizeMasonry(size,thisPortList); 4099 edgtfInitMasonry(thisPortList); 4100 }); 4101 }); 4102 } 4103 } 4104 4105 function edgtfInitMasonry(container){ 4106 container.waitForImages(function() { 4107 container.isotope({ 4108 layoutMode: 'packery', 4109 itemSelector: '.edgtf-portfolio-item', 4110 packery: { 4111 columnWidth: '.edgtf-portfolio-list-masonry-grid-sizer' 4112 } 4113 }); 4114 container.addClass('edgtf-appeared'); 4115 $(window).on('load', function(){ 4116 ptfListAppear(container) 4117 }); 4118 }); 4119 } 4120 4121 function edgtfResizeMasonry(size,container){ 4122 4123 var defaultMasonryItem = container.find('.edgtf-default-masonry-item'); 4124 var largeWidthMasonryItem = container.find('.edgtf-large-width-masonry-item'); 4125 var largeHeightMasonryItem = container.find('.edgtf-large-height-masonry-item'); 4126 var largeWidthHeightMasonryItem = container.find('.edgtf-large-width-height-masonry-item'); 4127 4128 defaultMasonryItem.css('height', size); 4129 largeHeightMasonryItem.css('height', Math.round(2*size)); 4130 4131 if(edgtf.windowWidth > 600){ 4132 largeWidthHeightMasonryItem.css('height', Math.round(2*size)); 4133 largeWidthMasonryItem.css('height', size); 4134 }else{ 4135 largeWidthHeightMasonryItem.css('height', size); 4136 largeWidthMasonryItem.css('height', Math.round(size/2)); 4137 4138 } 4139 } 4140 /** 4141 * Initializes portfolio pinterest 4142 */ 4143 function edgtfInitPortfolioListPinterest(){ 4144 4145 var portList = $('.edgtf-portfolio-list-holder-outer.edgtf-ptf-pinterest,.edgtf-portfolio-list-holder-outer.edgtf-ptf-pinterest-with-space'); 4146 if(portList.length) { 4147 portList.each(function() { 4148 var thisPortList = $(this).children('.edgtf-portfolio-list-holder'); 4149 edgtfInitPinterest(thisPortList); 4150 $(window).resize(function(){ 4151 edgtfInitPinterest(thisPortList); 4152 }); 4153 }); 4154 4155 } 4156 } 4157 4158 function edgtfInitPinterest(container){ 4159 container.waitForImages(function() { 4160 container.isotope({ 4161 itemSelector: '.edgtf-portfolio-item', 4162 masonry: { 4163 columnWidth: '.edgtf-portfolio-list-masonry-grid-sizer', 4164 gutter:'.edgtf-portfolio-list-masonry-grid-gutter' 4165 } 4166 }); 4167 }); 4168 container.addClass('edgtf-appeared'); 4169 $(window).on('load', function(){ 4170 ptfListAppear(container) 4171 }); 4172 } 4173 4174 /* 4175 * Appear FX 4176 */ 4177 function ptfListAppear(container) { 4178 if (container.parent().hasClass('edgtf-appear-fade-scale')) { 4179 var articles = container.find('article'), 4180 animateCycle = 1 + Math.floor(Math.random() * 6), 4181 animateCycleCounter = 0; 4182 4183 if (articles.length) { 4184 articles.each(function(){ 4185 var article = $(this); 4186 4187 setTimeout(function(){ 4188 article.appear(function(){ 4189 animateCycleCounter ++; 4190 4191 if(animateCycleCounter == animateCycle) { 4192 animateCycleCounter = 0; 4193 } 4194 4195 setTimeout(function(){ 4196 if (!article.hasClass('edgtf-appeared')) { 4197 article.addClass('edgtf-appeared'); 4198 } 4199 },animateCycleCounter * 280); 4200 },{accX: 0, accY: 0}); 4201 },30); 4202 }); 4203 } 4204 } 4205 } 4206 /** 4207 * Initializes portfolio masonry filter 4208 */ 4209 function edgtfInitPortfolioMasonryFilter(){ 4210 4211 var filterHolder = $('.edgtf-portfolio-filter-holder.edgtf-masonry-filter'); 4212 4213 if(filterHolder.length){ 4214 filterHolder.each(function(){ 4215 4216 var thisFilterHolder = $(this); 4217 4218 var portfolioIsotopeAnimation = null; 4219 4220 var filter = thisFilterHolder.find('ul li').data('class'); 4221 4222 thisFilterHolder.find('.filter:first').addClass('current'); 4223 4224 thisFilterHolder.find('.filter').on('click',function(){ 4225 4226 var currentFilter = $(this); 4227 clearTimeout(portfolioIsotopeAnimation); 4228 4229 $('.isotope, .isotope .isotope-item').css('transition-duration','0.8s'); 4230 4231 portfolioIsotopeAnimation = setTimeout(function(){ 4232 $('.isotope, .isotope .isotope-item').css('transition-duration','0s'); 4233 },700); 4234 4235 var selector = $(this).attr('data-filter'); 4236 thisFilterHolder.siblings('.edgtf-portfolio-list-holder-outer').find('.edgtf-portfolio-list-holder').isotope({ filter: selector }); 4237 4238 thisFilterHolder.find('.filter').removeClass('current'); 4239 currentFilter.addClass('current'); 4240 4241 return false;
4242 4243 }); 4244 4245 }); 4246 } 4247 } 4248 /** 4249 * Initializes portfolio slider 4250 */ 4251 4252 function edgtfInitPortfolioSlider(){ 4253 var portSlider = $('.edgtf-portfolio-list-holder-outer.edgtf-portfolio-slider-holder'); 4254 if(portSlider.length){ 4255 portSlider.each(function(){ 4256 var thisPortSlider = $(this); 4257 var sliderWrapper = thisPortSlider.children('.edgtf-portfolio-list-holder'); 4258 var numberOfItems = thisPortSlider.data('items'); 4259 var navigation = false; 4260 4261 //Responsive breakpoints 4262 var responsive = [ 4263 { 4264 breakpoint: 1024, 4265 settings: { 4266 slidesToShow: 3, 4267 slidesToScroll: 1, 4268 infinite: true, 4269 } 4270 }, 4271 { 4272 breakpoint: 768, 4273 settings: { 4274 slidesToShow: 2, 4275 slidesToScroll: 1, 4276 infinite: true, 4277 } 4278 }, 4279 { 4280 breakpoint: 600, 4281 settings: { 4282 slidesToShow: 1, 4283 slidesToScroll: 1 4284 } 4285 } 4286 ]; 4287 4288 sliderWrapper.on('init', function(slick){ 4289 var slides = sliderWrapper.find('.slick-slide'); 4290 4291 var dragStart, clickable = false; 4292 4293 var handleDragStart = function(event) { 4294 event = typeof event.originalEvent !== 'undefined' ? event.originalEvent : event; 4295 event = event.type == 'touchstart' ? event.touches[0] : event; 4296 dragStart = { 4297 x: event.clientX, 4298 y: event.clientY 4299 }; 4300 }; 4301 4302 var handleDragStop = function(event) { 4303 event = typeof event.originalEvent !== 'undefined' ? event.originalEvent : event; 4304 event = event.type == 'touchend' ? event.changedTouches[0] : event; 4305 var dragEnd = { 4306 x: event.clientX, 4307 y: event.clientY 4308 }; 4309 if (Math.abs(dragEnd.x - dragStart.x) < 10) { 4310 clickable = true; 4311 } 4312 }; 4313 4314 var handleClick = function(event) { 4315 if (clickable) { 4316 clickable = false; 4317 } 4318 else { 4319 event.preventDefault(); 4320 event.stopImmediatePropagation(); 4321 } 4322 }; 4323 4324 slides.find('a') 4325 .on('dragstart', function(event) { 4326 event.stopImmediatePropagation(); 4327 event.preventDefault(); 4328 }) 4329 .on('click', handleClick) 4330 .on('mousedown touchstart', handleDragStart) 4331 .on('mouseup touchend', handleDragStop); 4332 }); 4333 4334 sliderWrapper.slick({ 4335 infinite: true, 4336 autoplay: true, 4337 autoplaySpeed: 3000, 4338 arrows: navigation, 4339 dots: false, 4340 dotsClass: 'edgtf-slick-dots', 4341 speed: 600, 4342 easing:'easeOutCubic', 4343 slidesToShow:numberOfItems, 4344 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 4345 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 4346 responsive:responsive, 4347 customPaging: function(slider, i) { 4348 return '<span class="edgtf-slick-dot-inner"></span>'; 4349 } 4350 }); 4351 }); 4352 } 4353 } 4354 /** 4355 * Initializes portfolio load more function 4356 */ 4357 function edgtfInitPortfolioLoadMore(){ 4358 var portList = $('.edgtf-portfolio-list-holder-outer.edgtf-ptf-load-more'); 4359 if(portList.length){ 4360 portList.each(function(){ 4361 4362 var thisPortList = $(this); 4363 var thisPortListInner = thisPortList.find('.edgtf-portfolio-list-holder'); 4364 var nextPage; 4365 var maxNumPages; 4366 var loadMoreButton = thisPortList.find('.edgtf-ptf-list-load-more a'); 4367 var loadMoreSpinner = thisPortList.find('.edgtf-3d-cube-holder'); 4368 4369 if (typeof thisPortList.data('max-num-pages') !== 'undefined' && thisPortList.data('max-num-pages') !== false) { 4370 maxNumPages = thisPortList.data('max-num-pages'); 4371 } 4372
4373 loadMoreButton.on('click', function (e) { 4374 var loadMoreDatta = edgtfGetPortfolioAjaxData(thisPortList); 4375 nextPage = loadMoreDatta.nextPage; 4376 e.preventDefault(); 4377 e.stopPropagation(); 4378 loadMoreButton.hide(); 4379 loadMoreSpinner.fadeIn(500); 4380 if(nextPage <= maxNumPages){ 4381 var ajaxData = edgtfSetPortfolioAjaxData(loadMoreDatta); 4382 $.ajax({ 4383 type: 'POST', 4384 data: ajaxData, 4385 url: edgtCoreAjaxUrl, 4386 success: function (data) { 4387 nextPage++; 4388 thisPortList.data('next-page', nextPage); 4389 var response = $.parseJSON(data); 4390 var responseHtml = edgtfConvertHTML(response.html); //convert response html into jQuery collection that Mixitup can work with 4391 setTimeout(function() { 4392 if(thisPortList.hasClass('edgtf-ptf-masonry') || thisPortList.hasClass('edgtf-ptf-masonry-with-space') || thisPortList.hasClass('edgtf-ptf-pinterest') || thisPortList.hasClass('edgtf-ptf-pinterest-with-space')){ 4393 thisPortList.waitForImages(function(){ 4394 thisPortListInner.isotope().append( responseHtml ).isotope( 'appended', responseHtml ).isotope('reloadItems'); 4395 ptfListAppear(thisPortListInner); 4396 loadMoreSpinner.fadeOut(100, function() { 4397 loadMoreButton.show() 4398 }); 4399 }); 4400 } else { 4401 thisPortList.waitForImages(function(){ 4402 thisPortListInner.mixItUp('append',responseHtml); 4403 loadMoreSpinner.fadeOut(100, function() { 4404 loadMoreButton.show() 4405 }); 4406 }); 4407 } 4408 if(nextPage > maxNumPages){ 4409 loadMoreButton.hide(); 4410 loadMoreButton.closest('.edgtf-ptf-list-paging').hide(); 4411 loadMoreSpinner.fadeOut(0); 4412 } 4413 if(thisPortList.hasClass('edgtf-follow')){ 4414 thisPortList.find('article').each(function(){ 4415 $(this).hoverdir({ 4416 hoverElem:'div.edgtf-item-text-overlay'}); 4417 }); 4418 } 4419 },400); 4420 } 4421 }); 4422 } 4423 }); 4424 4425 }); 4426 } 4427 } 4428 4429 function edgtfConvertHTML ( html ) { 4430 var newHtml = $.trim( html ), 4431 $html = $(newHtml ), 4432 $empty = $(); 4433 4434 $html.each(function ( index, value ) { 4435 if ( value.nodeType === 1) { 4436 $empty = $empty.add ( this ); 4437 } 4438 }); 4439 4440 return $empty; 4441 } 4442 4443 /** 4444 * Initializes portfolio load more data params 4445 * @param portfolio list container with defined data params 4446 * return array 4447 */ 4448 function edgtfGetPortfolioAjaxData(container){ 4449 var returnValue = {}; 4450 4451 returnValue.type = ''; 4452 returnValue.columns = ''; 4453 returnValue.gridSize = ''; 4454 returnValue.orderBy = ''; 4455 returnValue.order = ''; 4456 returnValue.number = ''; 4457 returnValue.imageSize = ''; 4458 returnValue.filter = ''; 4459 returnValue.filterOrderBy = ''; 4460 returnValue.category = ''; 4461 returnValue.selectedProjectes = ''; 4462 returnValue.showLoadMore = ''; 4463 returnValue.titleTag = ''; 4464 returnValue.nextPage = ''; 4465 returnValue.maxNumPages = ''; 4466 4467 if (typeof container.data('type') !== 'undefined' && container.data('type') !== false) { 4468 returnValue.type = container.data('type'); 4469 } 4470 if (typeof container.data('grid-size') !== 'undefined' && container.data('grid-size') !== false) { 4471 returnValue.gridSize = container.data('grid-size'); 4472 } 4473 if (typeof container.data('columns') !== 'undefined' && container.data('columns') !== false) { 4474 returnValue.columns = container.data('columns'); 4475 } 4476 if (typeof container.data('order-by') !== 'undefined' && container.data('order-by') !== false) { 4477 returnValue.orderBy = container.data('order-by'); 4478 } 4479 if (typeof container.data('order') !== 'undefined' && container.data('order') !== false) { 4480 returnValue.order = container.data('order'); 4481 } 4482 if (typeof container.data('number') !== 'undefined' && container.data('number') !== false) { 4483 returnValue.number = container.data('number'); 4484 } 4485 if (typeof container.data('image-size') !== 'undefined' && container.data('image-size') !== false) { 4486 returnValue.imageSize = container.data('image-size'); 4487 } 4488 if (typeof container.data('filter') !== 'undefined' && container.data('filter') !== false) { 4489 returnValue.filter = container.data('filter'); 4490 } 4491 if (typeof container.data('filter-order-by') !== 'undefined' && container.data('filter-order-by') !== false) { 4492 returnValue.filterOrderBy = container.data('filter-order-by'); 4493 } 4494 if (typeof container.data('category') !== 'undefined' && container.data('category') !== false) { 4495 returnValue.category = container.data('category'); 4496 } 4497 if (typeof container.data('selected-projects') !== 'undefined' && container.data('selected-projects') !== false) { 4498 returnValue.selectedProjectes = container.data('selected-projects'); 4499 } 4500 if (typeof container.data('show-load-more') !== 'undefined' && container.data('show-load-more') !== false) { 4501 returnValue.showLoadMore = container.data('show-load-more'); 4502 } 4503 if (typeof container.data('title-tag') !== 'undefined' && container.data('title-tag') !== false) { 4504 returnValue.titleTag = container.data('title-tag'); 4505 } 4506 if (typeof container.data('next-page') !== 'undefined' && container.data('next-page') !== false) { 4507 returnValue.nextPage = container.data('next-page'); 4508 } 4509 if (typeof container.data('max-num-pages') !== 'undefined' && container.data('max-num-pages') !== false) { 4510 returnValue.maxNumPages = container.data('max-num-pages'); 4511 } 4512 return returnValue; 4513 } 4514 /** 4515 * Sets portfolio load more data params for ajax function 4516 * @param portfolio list container with defined data params 4517 * return array 4518 */ 4519 function edgtfSetPortfolioAjaxData(container){ 4520 var returnValue = { 4521 action: 'edgt_core_portfolio_ajax_load_more', 4522 type: container.type, 4523 columns: container.columns, 4524 gridSize: container.gridSize, 4525 orderBy: container.orderBy, 4526 order: container.order, 4527 number: container.number, 4528 imageSize: container.imageSize, 4529 filter: container.filter, 4530 filterOrderBy: container.filterOrderBy, 4531 category: container.category, 4532 selectedProjectes: container.selectedProjectes, 4533 showLoadMore: container.showLoadMore, 4534 titleTag: container.titleTag, 4535 nextPage: container.nextPage 4536 }; 4537 return returnValue; 4538 } 4539 4540 /** 4541 * Slider object that initializes whole slider functionality 4542 * @type {Function} 4543 */ 4544 var edgtfSlider = edgtf.modules.shortcodes.edgtfSlider = function() { 4545 4546 //all sliders on the page 4547 var sliders = $('.edgtf-slider .carousel'); 4548 //image regex used to extract img source 4549 var imageRegex = /url\(["']?([^'")]+)['"]?\)/; 4550 4551 /*** Functionality for translating image in slide - START ***/ 4552 4553 var matrixArray = { zoom_center : '1.2, 0, 0, 1.2, 0, 0', zoom_top_left: '1.2, 0, 0, 1.2, -150, -150', zoom_top_right : '1.2, 0, 0, 1.2, 150, -150', zoom_bottom_left: '1.2, 0, 0, 1.2, -150, 150', zoom_bottom_right: '1.2, 0, 0, 1.2, 150, 150'}; 4554 4555 // regular expression for parsing out the matrix components from the matrix string 4556 var matrixRE = /\([0-9epx\.\, \t\-]+/gi; 4557 4558 // parses a matrix string of the form "matrix(n1,n2,n3,n4,n5,n6)" and 4559 // returns an array with the matrix components 4560 var parseMatrix = function (val) { 4561 return val.match(matrixRE)[0].substr(1). 4562 split(",").map(function (s) { 4563 return parseFloat(s); 4564 }); 4565 }; 4566 4567 // transform css property names with vendor prefixes; 4568 // the plugin will check for values in the order the names are listed here and return as soon as there 4569 // is a value; so listing the W3 std name for the transform results in that being used if its available 4570 var transformPropNames = [ 4571 "transform", 4572 "-webkit-transform" 4573 ]; 4574 4575 var getTransformMatrix = function (el) { 4576 // iterate through the css3 identifiers till we hit one that yields a value 4577 var matrix = null; 4578 transformPropNames.some(function (prop) { 4579 matrix = el.css(prop); 4580 return (matrix !== null && matrix !== ""); 4581 }); 4582 4583 // if "none" then we supplant it with an identity matrix so that our parsing code below doesn't break 4584 matrix = (!matrix || matrix === "none") ? 4585 "matrix(1,0,0,1,0,0)" : matrix; 4586 return parseMatrix(matrix); 4587 }; 4588 4589 // set the given matrix transform on the element; note that we apply the css transforms in reverse order of how its given 4590 // in "transformPropName" to ensure that the std compliant prop name shows up last
4591 var setTransformMatrix = function (el, matrix) { 4592 var m = "matrix(" + matrix.join(",") + ")"; 4593 for (var i = transformPropNames.length - 1; i >= 0; --i) { 4594 el.css(transformPropNames[i], m + ' rotate(0.01deg)'); 4595 } 4596 }; 4597 4598 // interpolates a value between a range given a percent 4599 var interpolate = function (from, to, percent) { 4600 return from + ((to - from) * (percent / 100)); 4601 }; 4602 4603 $.fn.transformAnimate = function (opt) { 4604 // extend the options passed in by caller 4605 var options = { 4606 transform: "matrix(1,0,0,1,0,0)" 4607 }; 4608 $.extend(options, opt); 4609 4610 // initialize our custom property on the element to track animation progress 4611 this.css("percentAnim", 0); 4612 4613 // supplant "options.step" if it exists with our own routine 4614 var sourceTransform = getTransformMatrix(this); 4615 var targetTransform = parseMatrix(options.transform); 4616 options.step = function (percentAnim, fx) { 4617 // compute the interpolated transform matrix for the current animation progress 4618 var $this = $(this); 4619 var matrix = sourceTransform.map(function (c, i) { 4620 return interpolate(c, targetTransform[i], 4621 percentAnim); 4622 }); 4623 4624 // apply the new matrix 4625 setTransformMatrix($this, matrix); 4626 4627 // invoke caller's version of "step" if one was supplied; 4628 if (opt.step) { 4629 opt.step.apply(this, [matrix, fx]); 4630 } 4631 }; 4632 4633 // animate! 4634 return this.stop().animate({ percentAnim: 100 }, options); 4635 }; 4636 4637 /*** Functionality for translating image in slide - END ***/ 4638 4639 4640 /** 4641 * Calculate heights for slider holder and slide item, depending on window width, but only if slider is set to be responsive 4642 * @param slider, current slider 4643 * @param defaultHeight, default height of slider, set in shortcode 4644 * @param responsive_breakpoint_set, breakpoints set for slider responsiveness 4645 * @param reset, boolean for reseting heights 4646 */ 4647 var setSliderHeight = function(slider, defaultHeight, responsive_breakpoint_set, reset) { 4648 var sliderHeight = defaultHeight; 4649 if(!reset) { 4650 if(edgtf.windowWidth > responsive_breakpoint_set[0]) { 4651 sliderHeight = defaultHeight; 4652 } else if(edgtf.windowWidth > responsive_breakpoint_set[1]) { 4653 sliderHeight = defaultHeight * 0.75; 4654 } else if(edgtf.windowWidth > responsive_breakpoint_set[2]) { 4655 sliderHeight = defaultHeight * 0.6; 4656 } else if(edgtf.windowWidth > responsive_breakpoint_set[3]) { 4657 sliderHeight = defaultHeight * 0.55; 4658 } else if(edgtf.windowWidth <= responsive_breakpoint_set[3]) { 4659 sliderHeight = defaultHeight * 0.45; 4660 } 4661 } 4662 4663 slider.css({'height': (sliderHeight) + 'px'}); 4664 slider.find('.edgtf-slider-preloader').css({'height': (sliderHeight) + 'px'}); 4665 slider.find('.edgtf-slider-preloader .edgtf-ajax-loader').css({'display': 'block'}); 4666 slider.find('.item').css({'height': (sliderHeight) + 'px'}); 4667 if(edgtfPerPageVars.vars.edgtfStickyScrollAmount === 0) { 4668 edgtf.modules.header.stickyAppearAmount = sliderHeight; //set sticky header appear amount if slider there is no amount entered on page itself 4669 } 4670 }; 4671 4672 /** 4673 * Calculate heights for slider holder and slide item, depending on window size, but only if slider is set to be full height 4674 * @param slider, current slider 4675 */ 4676 var setSliderFullHeight = function(slider) { 4677 var mobileHeaderHeight = edgtf.windowWidth < 1025 ? edgtfGlobalVars.vars.edgtfMobileHeaderHeight + $('.edgtf-top-bar').height() : 0; 4678 slider.css({'height': (edgtf.windowHeight - mobileHeaderHeight) + 'px'}); 4679 slider.find('.edgtf-slider-preloader').css({'height': (edgtf.windowHeight - mobileHeaderHeight) + 'px'}); 4680 slider.find('.edgt-slider-preloader .edgtf-ajax-loader').css({'display': 'block'}); 4681 slider.find('.item').css({'height': (edgtf.windowHeight - mobileHeaderHeight) + 'px'}); 4682 if(edgtfPerPageVars.vars.edgtfStickyScrollAmount === 0) { 4683 edgtf.modules.header.stickyAppearAmount = edgtf.windowHeight; //set sticky header appear amount if slider there is no amount entered on page itself 4684 } 4685 }; 4686 4687 var setElementsResponsiveness = function(slider) { 4688 // Basic text styles responsiveness 4689 slider 4690 .find('.edgtf-slide-element-text-small, .edgtf-slide-element-text-normal, .edgtf-slide-element-text-large, .edgtf-slide-element-text-extra-large') 4691 .each(function() { 4692 var element = $(this); 4693 if (typeof element.data('default-font-size') === 'undefined') { element.data('default-font-size', parseInt(element.css('font-size'),10)); } 4694 if (typeof element.data('default-line-height') === 'undefined') { element.data('default-line-height', parseInt(element.css('line-height'),10)); } 4695 if (typeof element.data('default-letter-spacing') === 'undefined') { element.data('default-letter-spacing', parseInt(element.css('letter-spacing'),10)); } 4696 }); 4697 // Advanced text styles responsiveness 4698 slider.find('.edgtf-slide-element-responsive-text').each(function() { 4699 if (typeof $(this).data('default-font-size') === 'undefined') { $(this).data('default-font-size', parseInt($(this).css('font-size'),10)); } 4700 if (typeof $(this).data('default-line-height') === 'undefined') { $(this).data('default-line-height', parseInt($(this).css('line-height'),10)); } 4701 if (typeof $(this).data('default-letter-spacing') === 'undefined') { $(this).data('default-letter-spacing', parseInt($(this).css('letter-spacing'),10)); } 4702 }); 4703 // Button responsiveness 4704 slider.find('.edgtf-slide-element-responsive-button').each(function() { 4705 if (typeof $(this).data('default-font-size') === 'undefined') { $(this).data('default-font-size', parseInt($(this).find('a').css('font-size'),10)); } 4706 if (typeof $(this).data('default-line-height') === 'undefined') { $(this).data('default-line-height', parseInt($(this).find('a').css('line-height'),10)); } 4707 if (typeof $(this).data('default-letter-spacing') === 'undefined') { $(this).data('default-letter-spacing', parseInt($(this).find('a').css('letter-spacing'),10)); } 4708 if (typeof $(this).data('default-ver-padding') === 'undefined') { $(this).data('default-ver-padding', parseInt($(this).find('a').css('padding-top'),10)); } 4709 if (typeof $(this).data('default-hor-padding') === 'undefined') { $(this).data('default-hor-padding', parseInt($(this).find('a').css('padding-left'),10)); } 4710 }); 4711 // Margins for non-custom layouts 4712 slider.find('.edgtf-slide-element').each(function() { 4713 var element = $(this); 4714 if (typeof element.data('default-margin-top') === 'undefined') { element.data('default-margin-top', parseInt(element.css('margin-top'),10)); } 4715 if (typeof element.data('default-margin-bottom') === 'undefined') { element.data('default-margin-bottom', parseInt(element.css('margin-bottom'),10)); } 4716 if (typeof element.data('default-margin-left') === 'undefined') { element.data('default-margin-left', parseInt(element.css('margin-left'),10)); } 4717 if (typeof element.data('default-margin-right') === 'undefined') { element.data('default-margin-right', parseInt(element.css('margin-right'),10)); } 4718 }); 4719 adjustElementsSizes(slider); 4720 }; 4721 4722 var adjustElementsSizes = function(slider) { 4723 var boundaries = {
4724 // These values must match those in map.php (for slider), slider.php and edgt.layout.inc 4725 mobile: 600, 4726 tabletp: 800, 4727 tabletl: 1024, 4728 laptop: 1440 4729 }; 4730 slider.find('.edgtf-slider-elements-container').each(function() { 4731 var container = $(this); 4732 var target = container.filter('.edgtf-custom-elements').add(container.not('.edgtf-custom-elements').find('.edgtf-slider-elements-holder-frame')).not('.edgtf-grid'); 4733 if (target.length) { 4734 if (boundaries.mobile >= edgtf.windowWidth && container.attr('data-width-mobile').length) { 4735 target.css('width', container.data('width-mobile') + '%'); 4736 } 4737 else if (boundaries.tabletp >= edgtf.windowWidth && container.attr('data-width-tablet-p').length) { 4738 target.css('width', container.data('width-tablet-p') + '%'); 4739 } 4740 else if (boundaries.tabletl >= edgtf.windowWidth && container.attr('data-width-tablet-l').length) { 4741 target.css('width', container.data('width-tablet-l') + '%'); 4742 } 4743 else if (boundaries.laptop >= edgtf.windowWidth && container.attr('data-width-laptop').length) { 4744 target.css('width', container.data('width-laptop') + '%'); 4745 } 4746 else if (container.attr('data-width-desktop').length){ 4747 target.css('width', container.data('width-desktop') + '%'); 4748 } 4749 } 4750 }); 4751 slider.find('.item').each(function() { 4752 var slide = $(this); 4753 var def_w = slide.find('.edgtf-slider-elements-holder-frame').data('default-width'); 4754 var elements = slide.find('.edgtf-slide-element'); 4755 4756 // Adjusting margins for all elements 4757 elements.each(function() { 4758 var element = $(this); 4759 var def_m_top = element.data('default-margin-top'), 4760 def_m_bot = element.data('default-margin-bottom'), 4761 def_m_l = element.data('default-margin-left'), 4762 def_m_r = element.data('default-margin-right'); 4763 var scale_data = (typeof element.data('resp-scale') !== 'undefined') ? element.data('resp-scale') : undefined; 4764 var factor; 4765 4766 if (boundaries.mobile >= edgtf.windowWidth) { 4767 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.mobile); 4768 } 4769 else if (boundaries.tabletp >= edgtf.windowWidth) { 4770 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.tabletp); 4771 } 4772 else if (boundaries.tabletl >= edgtf.windowWidth) { 4773 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.tabletl); 4774 } 4775 else if (boundaries.laptop >= edgtf.windowWidth) { 4776 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.laptop); 4777 } 4778 else { 4779 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.desktop); 4780 } 4781 4782 element.css({ 4783 'margin-top': Math.round(factor * def_m_top )+ 'px', 4784 'margin-bottom': Math.round(factor * def_m_bot )+ 'px', 4785 'margin-left': Math.round(factor * def_m_l )+ 'px', 4786 'margin-right': Math.round(factor * def_m_r) + 'px' 4787 }); 4788 }); 4789 4790 // Adjusting responsiveness 4791 elements 4792 .filter('.edgtf-slide-element-responsive-text, .edgtf-slide-element-responsive-button, .edgtf-slide-element-responsive-image') 4793 .add(elements.find('a.edgtf-slide-element-responsive-text, span.edgtf-slide-element-responsive-text')) 4794 .each(function() { 4795 var element = $(this); 4796 var scale_data = (typeof element.data('resp-scale') !== 'undefined') ? element.data('resp-scale') : undefined, 4797 left_data = (typeof element.data('resp-left') !== 'undefined') ? element.data('resp-left') : undefined, 4798 top_data = (typeof element.data('resp-top') !== 'undefined') ? element.data('resp-top') : undefined; 4799 var factor, new_left, new_top; 4800 4801 if (boundaries.mobile >= edgtf.windowWidth) { 4802 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.mobile); 4803 new_left = (typeof left_data === 'undefined') ? (typeof element.data('left') !== 'undefined' ? element.data('left')+'%' : '') : (left_data.mobile != '' ? left_data.mobile+'%' : element.data('left')+'%'); 4804 new_top = (typeof top_data === 'undefined') ? (typeof element.data('top') !== 'undefined' ? element.data('top')+'%' : '') : (top_data.mobile != '' ? top_data.mobile+'%' : element.data('top')+'%'); 4805 } 4806 else if (boundaries.tabletp >= edgtf.windowWidth) { 4807 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.tabletp); 4808 new_left = (typeof left_data === 'undefined') ? (typeof element.data('left') !== 'undefined' ? element.data('left')+'%' : '') : (left_data.tabletp != '' ? left_data.tabletp+'%' : element.data('left')+'%'); 4809 new_top = (typeof top_data === 'undefined') ? (typeof element.data('top') !== 'undefined' ? element.data('top')+'%' : '') : (top_data.tabletp != '' ? top_data.tabletp+'%' : element.data('top')+'%'); 4810 } 4811 else if (boundaries.tabletl >= edgtf.windowWidth) { 4812 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.tabletl); 4813 new_left = (typeof left_data === 'undefined') ? (typeof element.data('left') !== 'undefined' ? element.data('left')+'%' : '') : (left_data.tabletl != '' ? left_data.tabletl+'%' : element.data('left')+'%'); 4814 new_top = (typeof top_data === 'undefined') ? (typeof element.data('top') !== 'undefined' ? element.data('top')+'%' : '') : (top_data.tabletl != '' ? top_data.tabletl+'%' : element.data('top')+'%'); 4815 } 4816 else if (boundaries.laptop >= edgtf.windowWidth) { 4817 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.laptop); 4818 new_left = (typeof left_data === 'undefined') ? (typeof element.data('left') !== 'undefined' ? element.data('left')+'%' : '') : (left_data.laptop != '' ? left_data.laptop+'%' : element.data('left')+'%'); 4819 new_top = (typeof top_data === 'undefined') ? (typeof element.data('top') !== 'undefined' ? element.data('top')+'%' : '') : (top_data.laptop != '' ? top_data.laptop+'%' : element.data('top')+'%'); 4820 } 4821 else { 4822 factor = (typeof scale_data === 'undefined') ? edgtf.windowWidth / def_w : parseFloat(scale_data.desktop); 4823 new_left = (typeof left_data === 'undefined') ? (typeof element.data('left') !== 'undefined' ? element.data('left')+'%' : '') : (left_data.desktop != '' ? left_data.desktop+'%' : element.data('left')+'%'); 4824 new_top = (typeof top_data === 'undefined') ? (typeof element.data('top') !== 'undefined' ? element.data('top')+'%' : '') : (top_data.desktop != '' ? top_data.desktop+'%' : element.data('top')+'%'); 4825 } 4826 4827 if (!factor) { 4828 element.hide(); 4829 } 4830 else { 4831 element.show(); 4832 var def_font_size, 4833 def_line_h, 4834 def_let_spac, 4835 def_ver_pad, 4836 def_hor_pad; 4837 4838 if (element.is('.edgtf-slide-element-responsive-button')) { 4839 def_font_size = element.data('default-font-size'); 4840 def_line_h = element.data('default-line-height'); 4841 def_let_spac = element.data('default-letter-spacing'); 4842 def_ver_pad = element.data('default-ver-padding'); 4843 def_hor_pad = element.data('default-hor-padding'); 4844 4845 element.css({ 4846 'left': new_left, 4847 'top': new_top 4848 }) 4849 .find('.edgtf-btn').css({ 4850 'font-size': Math.round(factor * def_font_size) + 'px', 4851 'line-height': Math.round(factor * def_line_h) + 'px', 4852 'letter-spacing': Math.round(factor * def_let_spac) + 'px', 4853 'padding-left': Math.round(factor * def_hor_pad) + 'px', 4854 'padding-right': Math.round(factor * def_hor_pad) + 'px', 4855 'padding-top': Math.round(factor * def_ver_pad) + 'px', 4856 'padding-bottom': Math.round(factor * def_ver_pad) + 'px' 4857 }); 4858 } 4859 else if (element.is('.edgtf-slide-element-responsive-image')) { 4860 if (factor != edgtf.windowWidth / def_w) { // if custom factor has been set for this screen width 4861 var up_w = element.data('upload-width'), 4862 up_h = element.data('upload-height'); 4863 4864 element.filter('.custom-image').css({ 4865 'left': new_left, 4866 'top': new_top 4867 }) 4868 .add(element.not('.custom-image').find('img')) 4869 .css({ 4870 'width': Math.round(factor * up_w) + 'px', 4871 'height': Math.round(factor * up_h) + 'px' 4872 }); 4873 } 4874 else { 4875 var w = element.data('width'); 4876 4877 element.filter('.custom-image').css({ 4878 'left': new_left, 4879 'top': new_top 4880 }) 4881 .add(element.not('.custom-image').find('img')) 4882 .css({ 4883 'width': w + '%', 4884 'height': '' 4885 }); 4886 } 4887 } 4888 else { 4889 def_font_size = element.data('default-font-size'); 4890 def_line_h = element.data('default-line-height'); 4891 def_let_spac = element.data('default-letter-spacing'); 4892 4893 element.css({ 4894 'left': new_left, 4895 'top': new_top, 4896 'font-size': Math.round(factor * def_font_size) + 'px', 4897 'line-height': Math.round(factor * def_line_h) + 'px', 4898 'letter-spacing': Math.round(factor * def_let_spac) + 'px' 4899 }); 4900 } 4901 } 4902 }); 4903 }); 4904 var nav = slider.find('.carousel-indicators'); 4905 slider.find('.edgtf-slide-element-section-link').css('bottom', nav.length ? parseInt(nav.css('bottom'),10) + nav.outerHeight() + 10 + 'px' : '20px'); 4906 }; 4907 4908 var checkButtonsAlignment = function(slider) { 4909 slider.find('.item').each(function() { 4910 var inline_buttons = $(this).find('.edgtf-slide-element-button-inline'); 4911 inline_buttons.css('display', 'inline-block').wrapAll('<div class="edgtf-slide-elements-buttons-wrapper" style="text-align: ' + inline_buttons.eq(0).css('text-align') + ';"/>'); 4912 }); 4913 }; 4914 4915 /** 4916 * Set heights for slider and elemnts depending on slider settings (full height, responsive height od set height) 4917 * @param slider, current slider 4918 */ 4919 var setHeights = function(slider) { 4920 4921 var responsiveBreakpointSet = [1600,1200,900,650,500,320]; 4922 4923 setElementsResponsiveness(slider); 4924 4925 if(slider.hasClass('edgtf-full-screen')){ 4926 4927 setSliderFullHeight(slider); 4928 4929 $(window).resize(function() { 4930 setSliderFullHeight(slider); 4931 adjustElementsSizes(slider); 4932 }); 4933 4934 }else if(slider.hasClass('edgtf-responsive-height')){ 4935 4936 var defaultHeight = slider.data('height'); 4937 setSliderHeight(slider, defaultHeight, responsiveBreakpointSet, false); 4938 4939 $(window).resize(function() { 4940 setSliderHeight(slider, defaultHeight, responsiveBreakpointSet, false); 4941 adjustElementsSizes(slider); 4942 }); 4943 4944 }else { 4945 var defaultHeight = slider.data('height'); 4946 4947 slider.find('.edgtf-slider-preloader').css({'height': (sl
4947ider.height()) + 'px'}); 4948 slider.find('.edgtf-slider-preloader .edgtf-ajax-loader').css({'display': 'block'}); 4949 4950 edgtf.windowWidth < 1025 ? setSliderHeight(slider, defaultHeight, responsiveBreakpointSet, false) : setSliderHeight(slider, defaultHeight, responsiveBreakpointSet, true); 4951 4952 $(window).resize(function() { 4953 if(edgtf.windowWidth < 1025){ 4954 setSliderHeight(slider, defaultHeight, responsiveBreakpointSet, false); 4955 }else{ 4956 setSliderHeight(slider, defaultHeight, responsiveBreakpointSet, true); 4957 } 4958 adjustElementsSizes(slider); 4959 }); 4960 } 4961 }; 4962 4963 /** 4964 * Set prev/next numbers on navigation arrows 4965 * @param slider, current slider 4966 * @param currentItem, current slide item index 4967 * @param totalItemCount, total number of slide items 4968 */ 4969 var setPrevNextNumbers = function(slider, currentItem, totalItemCount) { 4970 if(currentItem == 1){ 4971 slider.find('.left.carousel-control .prev').html(totalItemCount); 4972 slider.find('.right.carousel-control .next').html(currentItem + 1); 4973 }else if(currentItem == totalItemCount){ 4974 slider.find('.left.carousel-control .prev').html(currentItem - 1); 4975 slider.find('.right.carousel-control .next').html(1); 4976 }else{ 4977 slider.find('.left.carousel-control .prev').html(currentItem - 1); 4978 slider.find('.right.carousel-control .next').html(currentItem + 1); 4979 } 4980 }; 4981 4982 /** 4983 * Set video background size 4984 * @param slider, current slider 4985 */ 4986 var initVideoBackgroundSize = function(slider){ 4987 var min_w = 1500; // minimum video width allowed 4988 var video_width_original = 1920; // original video dimensions 4989 var video_height_original = 1080; 4990 var vid_ratio = 1920/1080; 4991 4992 slider.find('.item .edgtf-video .edgtf-video-wrap').each(function(){ 4993 4994 var slideWidth = edgtf.windowWidth; 4995 var slideHeight = $(this).closest('.carousel').height(); 4996 4997 $(this).width(slideWidth); 4998 4999 min_w = vid_ratio * (slideHeight+20); 5000 $(this).height(slideHeight); 5001 5002 var scale_h = slideWidth / video_width_original; 5003 var scale_v = (slideHeight - edgtfGlobalVars.vars.edgtfMenuAreaHeight) / video_height_original; 5004 var scale = scale_v; 5005 if (scale_h > scale_v) 5006 scale = scale_h; 5007 if (scale * video_width_original < min_w) {scale = min_w / video_width_original;} 5008 5009 $(this).find('video, .mejs-overlay, .mejs-poster').width(Math.ceil(scale * video_width_original +2)); 5010 $(this).find('video, .mejs-overlay, .mejs-poster').height(Math.ceil(scale * video_height_original +2)); 5011 $(this).scrollLeft(($(this).find('video').width() - slideWidth) / 2); 5012 $(this).find('.mejs-overlay, .mejs-poster').scrollTop(($(this).find('video').height() - slideHeight) / 2); 5013 $(this).scrollTop(($(this).find('video').height() - slideHeight) / 2); 5014 }); 5015 }; 5016 5017 /** 5018 * Init video background 5019 * @param slider, current slider 5020 */ 5021 var initVideoBackground = function(slider) { 5022 $('.item .edgtf-video-wrap .edgtf-video-element').mediaelementplayer({ 5023 enableKeyboard: false, 5024 iPadUseNativeControls: false, 5025 pauseOtherPlayers: false, 5026 // force iPhone's native controls 5027 iPhoneUseNativeControls: false, 5028 // force Android's native controls 5029 AndroidUseNativeControls: false 5030 }); 5031 5032 initVideoBackgroundSize(slider); 5033 $(window).resize(function() { 5034 initVideoBackgroundSize(slider); 5035 }); 5036 5037 //mobile check 5038 if(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|IEMobile|Opera Mini)/)){ 5039 $('.edgtf-slider .edgtf-mobile-video-image').show(); 5040 $('.edgtf-slider .edgtf-video-wrap').remove(); 5041 } 5042 }; 5043 5044 var initPeek = function(slider) { 5045 if (slider.hasClass('edgtf-slide-peek')) { 5046 5047 var navArrowHover = function(arrow, entered) { 5048 var dir = arrow.is('.left') ? 'left' : 'right'; 5049 var targ_peeker = peekers.filter('.'+dir); 5050 if (entered) { 5051 arrow.addClass('hovered'); 5052 var targ_item = (items.index(items.filter('.active')) + (dir=='left' ? -1 : 1) + items.length) % items.length; 5053 targ_peeker.find('.edgtf-slider-peeker-inner').css({ 5054 'background-image': items.eq(targ_item).find('.edgtf-image, .edgtf-mobile-video-image').css('background-image'), 5055 'width': itemWidth + 'px' 5056 }); 5057 targ_peeker.addClass('shown'); 5058 } 5059 else { 5060 arrow.removeClass('hovered'); 5061 peekers.removeClass('shown'); 5062 } 5063 }; 5064 5065 var navBulletHover = function(bullet, entered) { 5066 if (entered) { 5067 bullet.addClass('hovered'); 5068 5069 var targ_item = bullet.data('slide-to'); 5070 var cur_item = items.index(items.filter('.active')); 5071 if (cur_item != targ_item) { 5072 var dir = (targ_item < cur_item) ? 'left' : 'right'; 5073 var targ_peeker = peekers.filter('.'+dir); 5074 targ_peeker.find('.edgtf-slider-peeker-inner').css({ 5075 'background-image': items.eq(targ_item).find('.edgtf-image, .edgtf-mobile-video-image').css('background-image'), 5076 'width': itemWidth + 'px' 5077 }); 5078 targ_peeker.addClass('shown'); 5079 } 5080 } 5081 else { 5082 bullet.removeClass('hovered'); 5083 peekers.removeClass('shown'); 5084 } 5085 }; 5086 5087 var handleResize = function() { 5088 itemWidth = items.filter('.active').width(); 5089 itemWidth += (itemWidth % 2) ? 1 : 0; // To make it even 5090 items.children('.edgtf-image, .edgtf-video').css({ 5091 'position': 'absolute', 5092 'width': itemWidth + 'px', 5093 'height': '110%', 5094 'left': '50%', 5095 'transform': 'translateX(-50%)' 5096 }); 5097 }; 5098 5099 var items = slider.find('.item'); 5100 var itemWidth; 5101 handleResize(); 5102 $(window).resize(handleResize); 5103 5104 slider.find('.carousel-inner').append('<div class="edgtf-slider-peeker left"><div class="edgtf-slider-peeker-inner"></div></div><div class="edgtf-slider-peeker right"><div class="edgtf-slider-peeker-inner"></div></div>'); 5105 var peekers = slider.find('.edgtf-slider-peeker'); 5106 var nav_arrows = slider.find('.carousel-control'); 5107 var nav_bullets = slider.find('.carousel-indicators > li'); 5108 5109 nav_arrows.on('mouseenter', function () { 5110 navArrowHover($(this), true); 5111 }); 5112 nav_arrows.on('mouseleave', function () { 5113 navArrowHover($(this), false); 5114 }); 5115 5116 nav_bullets.on('mouseenter', function () { 5117 navBulletHover($(this), true); 5118 }); 5119 nav_bullets.on('mouseleave', function () { 5120 navBulletHover($(this), false); 5121 }); 5122 5123 slider.on('slide.bs.carousel', function() { 5124 setTimeout(function() { 5125 peekers.addClass('edgtf-slide-peek-in-progress').removeClass('shown'); 5126 }, 500); 5127 }); 5128 5129 slider.on('slid.bs.carousel', function() { 5130 nav_arrows.filter('.hovered').each(function() { 5131 navArrowHover($(this), true); 5132 }); 5133 setTimeout(function() { 5134 nav_bullets.filter('.hovered').each(function() { 5135 navBulletHover($(this), true); 5136 }); 5137 }, 200); 5138 peekers.removeClass('edgtf-slide-peek-in-progress'); 5139 }); 5140 } 5141 }; 5142 5143 var updateNavigationThumbs = function(slider) { 5144 if (slider.hasClass('edgtf-slider-thumbs')) { 5145 var src, prev_image, next_image; 5146 var all_items_count = slider.find('.item').length; 5147 var curr_item = slider.find('.item').index($('.item.active')[0]) + 1; 5148 setPrevNextNumbers(slider, curr_item, all_items_count); 5149 5150 // prev thumb 5151 if(slider.find('.item.active').prev('.item').length){ 5152 if(slider.find('.item.active').prev('div').find('.edgtf-image').length){ 5153 src = imageRegex.exec(slider.find('.active').prev('div').find('.edgtf-image').attr('style')); 5154 prev_image = new Image(); 5155 prev_image.src = src[1]; 5156 //prev_image = '<div class="thumb-image" style="background-image: url('+src[1]+')"></div>'; 5157 }else{ 5158 prev_image = slider.find('.active').prev('div').find('> .edgtf-video').clone(); 5159 prev_image.find('.edgtf-video-overlay, .mejs-offscreen').remove(); 5160 prev_image.find('.edgtf-video-wrap').width(150).height(84); 5161 prev_image.find('.mejs-container').width(150).height(84); 5162 prev_image.find('video').width(150).height(84); 5163 } 5164 slider.find('.left.carousel-control .img .old').fadeOut(300,function(){ 5165 $(this).remove(); 5166 }); 5167 slider.find('.left.carousel-control .img').append(prev_image).find('div.thumb
5167-image, > img, div.edgtf-video').fadeIn(300).addClass('old'); 5168 5169 }else{ 5170 if(slider.find('.carousel-inner .item:last-child .edgtf-image').length){ 5171 src = imageRegex.exec(slider.find('.carousel-inner .item:last-child .edgtf-image').attr('style')); 5172 prev_image = new Image(); 5173 prev_image.src = src[1]; 5174 //prev_image = '<div class="thumb-image" style="background-image: url('+src[1]+')"></div>'; 5175 }else{ 5176 prev_image = slider.find('.carousel-inner .item:last-child > .edgtf-video').clone(); 5177 prev_image.find('.edgtf-video-overlay, .mejs-offscreen').remove(); 5178 prev_image.find('.edgtf-video-wrap').width(150).height(84); 5179 prev_image.find('.mejs-container').width(150).height(84); 5180 prev_image.find('video').width(150).height(84); 5181 } 5182 slider.find('.left.carousel-control .img .old').fadeOut(300,function(){ 5183 $(this).remove(); 5184 }); 5185 slider.find('.left.carousel-control .img').append(prev_image).find('div.thumb-image, > img, div.edgtf-video').fadeIn(300).addClass('old'); 5186 } 5187 5188 // next thumb 5189 if(slider.find('.active').next('div.item').length){ 5190 if(slider.find('.active').next('div').find('.edgtf-image').length){ 5191 src = imageRegex.exec(slider.find('.active').next('div').find('.edgtf-image').attr('style')); 5192 next_image = new Image(); 5193 next_image.src = src[1]; 5194 //next_image = '<div class="thumb-image" style="background-image: url('+src[1]+')"></div>'; 5195 }else{ 5196 next_image = slider.find('.active').next('div').find('> .edgtf-video').clone(); 5197 next_image.find('.edgtf-video-overlay, .mejs-offscreen').remove(); 5198 next_image.find('.edgtf-video-wrap').width(150).height(84); 5199 next_image.find('.mejs-container').width(150).height(84); 5200 next_image.find('video').width(150).height(84); 5201 } 5202 5203 slider.find('.right.carousel-control .img .old').fadeOut(300,function(){ 5204 $(this).remove(); 5205 }); 5206 slider.find('.right.carousel-control .img').append(next_image).find('div.thumb-image, > img, div.edgtf-video').fadeIn(300).addClass('old'); 5207 5208 }else{ 5209 if(slider.find('.carousel-inner .item:first-child .edgtf-image').length){ 5210 src = imageRegex.exec(slider.find('.carousel-inner .item:first-child .edgtf-image').attr('style')); 5211 next_image = new Image(); 5212 next_image.src = src[1]; 5213 //next_image = '<div class="thumb-image" style="background-image: url('+src[1]+')"></div>'; 5214 }else{ 5215 next_image = slider.find('.carousel-inner .item:first-child > .edgtf-video').clone(); 5216 next_image.find('.edgtf-video-overlay, .mejs-offscreen').remove(); 5217 next_image.find('.edgtf-video-wrap').width(150).height(84); 5218 next_image.find('.mejs-container').width(150).height(84); 5219 next_image.find('video').width(150).height(84); 5220 } 5221 slider.find('.right.carousel-control .img .old').fadeOut(300,function(){ 5222 $(this).remove(); 5223 }); 5224 slider.find('.right.carousel-control .img').append(next_image).find('div.thumb-image, > img, div.edgtf-video').fadeIn(300).addClass('old'); 5225 } 5226 } 5227 }; 5228 5229 /** 5230 * initiate slider 5231 * @param slider, current slider 5232 * @param currentItem, current slide item index 5233 * @param totalItemCount, total number of slide items 5234 * @param slideAnimationTimeout, timeout for slide change 5235 */ 5236 var initiateSlider = function(slider, totalItemCount, slideAnimationTimeout) { 5237 5238 //set active class on first item 5239 slider.find('.carousel-inner .item:first-child').addClass('active'); 5240 //check for header style 5241 edgtfCheckSliderForHeaderStyle($('.carousel .active'), slider.hasClass('edgtf-header-effect')); 5242 // setting numbers on carousel controls 5243 if(slider.hasClass('edgtf-slider-numbers')) { 5244 setPrevNextNumbers(slider, 1, totalItemCount); 5245 } 5246 // set video background if there is video slide 5247 if(slider.find('.item video').length){
5248 //initVideoBackgroundSize(slider); 5249 initVideoBackground(slider); 5250 } 5251 5252 // update thumbs 5253 updateNavigationThumbs(slider); 5254 5255 // initiate peek 5256 initPeek(slider); 5257 5258 // enable link hover color for slide elements with links 5259 slider.find('.edgtf-slide-element-wrapper-link') 5260 .mouseenter(function() { 5261 $(this).removeClass('inheriting'); 5262 }) 5263 .mouseleave(function() { 5264 $(this).addClass('inheriting'); 5265 }) 5266 ; 5267 5268 //init slider 5269 if(slider.hasClass('edgtf-auto-start')){ 5270 slider.carousel({ 5271 interval: slideAnimationTimeout, 5272 pause: false 5273 }); 5274 5275 //pause slider when hover slider button 5276 slider.find('.slide_buttons_holder .qbutton') 5277 .mouseenter(function() { 5278 slider.carousel('pause'); 5279 }) 5280 .mouseleave(function() { 5281 slider.carousel('cycle'); 5282 }); 5283 } else { 5284 slider.carousel({ 5285 interval: 0, 5286 pause: false 5287 }); 5288 } 5289 5290 $(window).scroll(function() { 5291 if(slider.hasClass('edgtf-full-screen') && edgtf.scroll > edgtf.windowHeight && edgtf.windowWidth > 1024){ 5292 slider.carousel('pause'); 5293 }else if(!slider.hasClass('edgtf-full-screen') && edgtf.scroll > slider.height() && edgtf.windowWidth > 1024){ 5294 slider.carousel('pause'); 5295 }else{ 5296 slider.carousel('cycle'); 5297 } 5298 }); 5299 5300 5301 //initiate image animation 5302 if($('.carousel-inner .item:first-child').hasClass('edgtf-animate-image') && edgtf.windowWidth > 1024){ 5303 slider.find('.carousel-inner .item.edgtf-animate-image:first-child .edgtf-image').transformAnimate({ 5304 transform: "matrix("+matrixArray[$('.carousel-inner .item:first-child').data('edgtf_animate_image')]+")", 5305 duration: 30000 5306 }); 5307 } 5308 }; 5309 5310 return { 5311 init: function() { 5312 if(sliders.length) { 5313 sliders.each(function() { 5314 var $this = $(this); 5315 var slideAnimationTimeout = $this.data('slide_animation_timeout'); 5316 var totalItemCount = $this.find('.item').length; 5317 5318 checkButtonsAlignment($this); 5319 5320 setHeights($this); 5321 5322 /*** wait until first video or image is loaded and than initiate slider - start ***/ 5323 if(edgtf.htmlEl.hasClass('touch')){ 5324 if($this.find('.item:first-child .edgtf-mobile-video-image').length > 0){ 5325 var src = imageRegex.exec($this.find('.item:first-child .edgtf-mobile-video-image').attr('style')); 5326 }else{ 5327 var src = imageRegex.exec($this.find('.item:first-child .edgtf-image').attr('style')); 5328 } 5329 if(src) { 5330 var backImg = new Image(); 5331 backImg.src = src[1]; 5332 $(backImg).on('load', function(){ 5333 $('.edgtf-slider-preloader').fadeOut(500); 5334 initiateSlider($this,totalItemCount,slideAnimationTimeout); 5335 }); 5336 } 5337 } else { 5338 if($this.find('.item:first-child video').length > 0){ 5339 $this.find('.item:first-child video').eq(0).one('loadeddata',function(){ 5340 $('.edgtf-slider-preloader').fadeOut(500); 5341 initiateSlider($this,totalItemCount,slideAnimationTimeout); 5342 }); 5343 }else{ 5344 var src = imageRegex.exec($this.find('.item:first-child .edgtf-image').attr('style')); 5345 if (src) { 5346 var backImg = new Image(); 5347 backImg.src = src[1]; 5348 $(backImg).on('load', function(){ 5349 $('.edgtf-slider-preloader').fadeOut(500); 5350 initiateSlider($this,totalItemCount,slideAnimationTimeout); 5351 }); 5352 } 5353 } 5354 } 5355 /*** wait until first video or image is loaded and than initiate slider - end ***/ 5356 5357 /* before slide transition - start */ 5358 $this.on('slide.bs.carousel', function () { 5359 $this.addClass('edgtf-in-progress'); 5360 $this.find('.active .edgtf-slider-elements-holder-frame, .active .edgtf-slide-element-section-link').fadeTo(250,0); 5361 }); 5362 /* before slide transition - end */ 5363 5364 /* after slide transition - start */ 5365 $this.on('slid.bs.carousel', function () { 5366 $this.removeClass('edgtf-in-progress'); 5367 $this.find('.active .edgtf-slider-elements-holder-frame, .active .edgtf-slide-element-section-link').fadeTo(0,1); 5368 5369 // setting numbers on carousel controls 5370 if($this.hasClass('edgtf-slider-numbers')) { 5371 var currentItem = $('.item').index($('.item.active')[0]) + 1; 5372 setPrevNextNumbers($this, currentItem, totalItemCount); 5373 } 5374 5375 // initiate image animation on active slide and reset all others 5376 $('.item.edgtf-animate-image .edgtf-image').stop().css({'transform':'', '-webkit-transform':''}); 5377 if($('.item.active').hasClass('edgtf-animate-image') && edgtf.windowWidth > 1025){ 5378 $('.item.edgtf-animate-image.active .edgtf-image').transformAnimate({ 5379 transform: "matrix("+matrixArray[$('.item.edgtf-animate-image.active').data('edgtf_animate_image')]+")", 5380 duration: 30000 5381 }); 5382 } 5383 5384 // setting thumbnails on navigation controls 5385 if($this.hasClass('edgtf-slider-thumbs')) { 5386 updateNavigationThumbs($this); 5387 } 5388 }); 5389 /* after slide transition - end */ 5390 5391 /* swipe functionality - start */ 5392 $this.swipe( { 5393 swipeLeft: function(){ $this.carousel('next'); }, 5394 swipeRight: function(){ $this.carousel('prev'); }, 5395 threshold:20 5396 }); 5397 /* swipe functionality - end */ 5398 5399 }); 5400 5401 //adding parallax functionality on slider 5402 if($('.no-touch .carousel').length){ 5403 var skrollr_slider = skrollr.init({ 5404 smoothScrolling: false, 5405 forceHeight: false 5406 }); 5407 skrollr_slider.refresh(); 5408 } 5409 5410 $(window).scroll(function(){ 5411 //set control class for slider in order to change header style 5412 if($('.edgtf-slider .carousel').height() < edgtf.scroll){ 5413 $('.edgtf-slider .carousel').addClass('edgtf-disable-slider-header-style-changing'); 5414 }else{ 5415 $('.edgtf-slider .carousel').removeClass('edgtf-disable-slider-header-style-changing'); 5416 edgtfCheckSliderForHeaderStyle($('.edgtf-slider .carousel .active'),$('.edgtf-slider .carousel').hasClass('edgtf-header-effect')); 5417 } 5418 5419 //hide slider when it is out of viewport 5420 if($('.edgtf-slider .carousel').hasClass('edgtf-full-screen') && edgtf.scroll > edgtf.windowHeight && edgtf.windowWidth > 1025){ 5421 $('.edgtf-slider .carousel').find('.carousel-inner, .carousel-indicators').hide(); 5422 }else if(!$('.edgtf-slider .carousel').hasClass('edgtf-full-screen') && edgtf.scroll > $('.edgtf-slider .carousel').height() && edgtf.windowWidth > 1025){ 5423 $('.edgtf-slider .carousel').find('.carousel-inner, .carousel-indicators').hide(); 5424 }else{ 5425 $('.edgtf-slider .carousel').find('.carousel-inner, .carousel-indicators').show(); 5426 } 5427 }); 5428 } 5429 } 5430 }; 5431 }; 5432 5433 /** 5434 * Check if slide effect on header style changing 5435 * @param slide, current slide 5436 * @param headerEffect, flag if slide 5437 */ 5438 5439 function edgtfCheckSliderForHeaderStyle(slide, headerEffect) { 5440 5441 if($('.edgtf-slider .carousel').not('.edgtf-disable-slider-header-style-changing').length > 0) { 5442 5443 var slideHeaderStyle = ""; 5444 if (slide.hasClass('light')) { slideHeaderStyle = 'edgtf-light-header'; } 5445 if (slide.hasClass('dark')) { slideHeaderStyle = 'edgtf-dark-header'; } 5446 5447 if (slideHeaderStyle !== "") { 5448 if (headerEffect) { 5449 edgtf.body.removeClass('edgtf-dark-header edgtf-light-header').addClass(slideHeaderStyle); 5450 } 5451 } else { 5452 if (headerEffect) { 5453 edgtf.body.removeClass('edgtf-dark-header edgtf-light-header').addClass(edgtf.defaultHeaderStyle); 5454 } 5455 5456 } 5457 } 5458 } 5459 5460 /** 5461 * List object that initializes list with animation 5462 * @type {Function} 5463 */ 5464 var edgtfInitIconList = edgtf.modules.shortcodes.edgtfInitIconList = function() { 5465 var iconList = $('.edgtf-animate-list'); 5466 5467 /** 5468 * Initializes icon list animation 5469 * @param list current list shortcode 5470 */ 5471 var iconListInit = function(list) { 5472 setTimeout(function(){ 5473 list.appear(function(){ 5474 list.addClass('edgtf-appeared'); 5475 },{accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount}); 5476 },30); 5477 }; 5478 5479 return { 5480 init: function() { 5481 if(iconList.length) { 5482 iconList.each(function() { 5483 iconListInit($(this)); 5484 }); 5485 } 5486 } 5487 }; 5488 }; 5489 5490 /** 5491 * Masonry gallery, init masonry and resize pictures in grid 5492 */ 5493 function edgtfInitMasonryGallery(){ 5494 5495 5496 resizeMasonryGallery($('.edgtf-masonry-gallery-grid-sizer').width()); 5497 5498 if($('.edgtf-masonry-gallery-holder').length){ 5499 $('.edgtf-masonry-gallery-holder').each(function(){ 5500 var holder = $(this); 5501 holder.waitForImages(function(){ 5502 holder.animate({opacity:1}); 5503 holder.isotope({ 5504 itemSelector: '.edgtf-masonry-gallery-item', 5505 masonry: { 5506 columnWidth: '.edgtf-masonry-gallery-grid-sizer' 5507 } 5508 }); 5509 }); 5510 }); 5511 $(window).resize(function(){ 5512 resizeMasonryGallery($('.edgtf-masonry-gallery-grid-sizer').width()); 5513 $('.edgtf-masonry-gallery-holder').isotope('reloadItems'); 5514 }); 5515 } 5516 } 5517 5518 function resizeMasonryGallery(size){ 5519 5520 var rectangle_portrait = $('.edgtf-masonry-gallery-holder .edgtf-mg-rectangle-portrait'); 5521 var rectangle_landscape = $('.edgtf-masonry-gallery-holder .edgtf-mg-rectangle-landscape'); 5522 var square_big = $('.edgtf-masonry-gallery-holder .edgtf-mg-square-big'); 5523 var square_small = $('.edgtf-masonry-gallery-holder .edgtf-mg-square-small'); 5524 5525 rectangle_portrait.css('height', 2*size); 5526 if (window.innerWidth < 600) { 5527 rectangle_landscape.css('height', size/2); 5528 } 5529 else { 5530 rectangle_landscape.css('height', size); 5531 } 5532 square_big.css('height', 2*size); 5533 if (window.innerWidth < 600) { 5534 square_big.css('height', square_big.width()); 5535 } 5536 square_small.css('height', size); 5537 } 5538 5539 /* 5540 ** Init shop list masonry type 5541 */ 5542 function edgtfInitShopListMasonry(){ 5543 var shopList = $('.edgtf-shop-masonry'); 5544 if(shopList.length) { 5545 shopList.each(function() { 5546 var thisShopList = $(this).children('.edgtf-shop-list-masonry'); 5547 var size = thisShopList.find('.edgtf-shop-list-masonry-grid-sizer').width(); 5548 edgtfResizeShopMasonry(size,thisShopList); 5549 5550 edgtfInitMasonryLayout(thisShopList); 5551 $(window).resize(function(){ 5552 size = thisShopList.find('.edgtf-shop-list-masonry-grid-sizer').width(); 5553 edgtfResizeShopMasonry(size,thisShopList); 5554 edgtfInitMasonryLayout(thisShopList); 5555 }); 5556 }); 5557 } 5558 } 5559 5560 function edgtfInitMasonryLayout(container){ 5561 container.animate({opacity: 1}); 5562 container.isotope({ 5563 layoutMode: 'packery', 5564 itemSelector: '.edgtf-shop-product', 5565 packery: { 5566 columnWidth: '.edgtf-shop-list-masonry-grid-sizer' 5567 } 5568 }); 5569 } 5570 5571 function edgtfResizeShopMasonry(size,container){ 5572 5573 var defaultMasonryItem = container.find('.edgtf-default-masonry-item'); 5574 var largeWidthMasonryItem = container.find('.edgtf-large-width-masonry-item'); 5575 var largeHeightMasonryItem = container.find('.edgtf-large-height-masonry-item'); 5576 var largeWidthHeightMasonryItem = container.find('.edgtf-large-width-height-masonry-item'); 5577 5578 defaultMasonryItem.css('height', size); 5579 largeHeightMasonryItem.css('height', Math.round(2*size)); 5580 5581 var breakpoint = edgtf.body.hasClass('page-template-full-width') ? 480 : 600; 5582 5583 if(edgtf.windowWidth > breakpoint){ 5584 largeWidthHeightMasonryItem.css('height', Math.round(2*size)); 5585 largeWidthMasonryItem.css('height', size); 5586 }else{ 5587 largeWidthHeightMasonryItem.css('height', size); 5588 largeWidthMasonryItem.css('height', Math.round(size/2)); 5589 5590 } 5591 } 5592 5593 /** 5594 * Initializes shop masonry filter 5595 */ 5596 function edgtfInitShopMasonryFilter(){ 5597 5598 var filterHolder = $('.edgtf-shop-filter-holder.edgtf-masonry-filter'); 5599 5600 if(filterHolder.length){ 5601 filterHolder.each(function(){ 5602 5603 var thisFilterHolder = $(this); 5604 5605 var shopIsotopeAnimation = null; 5606 5607 thisFilterHolder.find('.filter:first').addClass('current'); 5608 5609 thisFilterHolder.find('li').on('click',function(){ 5610 5611 var currentFilter = $(this); 5612 clearTimeout(shopIsotopeAnimation); 5613 5614 $('.isotope, .isotope .isotope-item').css('transition-duration','0.8s'); 5615 5616 shopIsotopeAnimation = setTimeout(function(){ 5617 $('.isotope, .isotope .isotope-item').css('transition-duration','0s'); 5618 },700); 5619 5620 var selector = $(this).attr('data-filter'); 5621 thisFilterHolder.parent().find('.edgtf-shop-list-masonry').isotope({ filter: selector }); 5622 5623 thisFilterHolder.find('.filter').removeClass('current'); 5624 currentFilter.addClass('current'); 5625 5626 return false;
5627 5628 }); 5629 5630 }); 5631 } 5632 } 5633 5634 /** 5635 * Check if slide effect on header style changing 5636 */ 5637 function edgtfItemShowcase() { 5638 var itemShowcase = $('.edgtf-item-showcase'); 5639 if (itemShowcase.length) { 5640 itemShowcase.each(function(){ 5641 var thisItemShowcase = $(this), 5642 leftItems = thisItemShowcase.find('.edgtf-item-left'), 5643 rightItems = thisItemShowcase.find('.edgtf-item-right'), 5644 itemImage = thisItemShowcase.find('.edgtf-item-image'); 5645 5646 //logic 5647 leftItems.wrapAll( "<div class='edgtf-item-showcase-holder edgtf-holder-left' />"); 5648 rightItems.wrapAll( "<div class='edgtf-item-showcase-holder edgtf-holder-right' />"); 5649 thisItemShowcase.animate({opacity:1},200); 5650 setTimeout(function(){ 5651 thisItemShowcase.appear(function(){ 5652 itemImage.addClass('edgtf-appeared'); 5653 thisItemShowcase.on('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', 5654 function(e) { 5655 if(edgtf.windowWidth > 1200) { 5656 itemAppear('.edgtf-holder-left .edgtf-item'); 5657 itemAppear('.edgtf-holder-right .edgtf-item'); 5658 } else { 5659 itemAppear('.edgtf-item'); 5660 } 5661 }); 5662 },{accX: 0, accY: 0}); 5663 },100); 5664 5665 //appear animation trigger 5666 function itemAppear(itemCSSClass) { 5667 thisItemShowcase.find(itemCSSClass).each(function(i){ 5668 var thisListItem = $(this); 5669 setTimeout(function(){ 5670 thisListItem.appear(function(){ 5671 $(this).addClass('edgtf-appeared'); 5672 },{accX: 0, accY: 0}); 5673 }, i*150); 5674 }); 5675 } 5676 }); 5677 5678 } 5679 } 5680 5681 /* 5682 * Type out functionality for Custom Font 5683 */ 5684 function edgtfCustomFontTypeOut() { 5685 5686 var edgtfTyped = $('.edgtf-typed'); 5687 5688 if (edgtfTyped.length) { 5689 edgtfTyped.each(function(){ 5690 5691 //vars 5692 var thisTyped = $(this), 5693 typedWrap = thisTyped.parent('.edgtf-typed-wrap'), 5694 customFontHolder = typedWrap.parent('.edgtf-custom-font-holder'), 5695 originalText = customFontHolder.find('.edgtf-custom-font-original'), 5696 str = typedWrap.data( 'strings' ); 5697 5698 var options = { 5699 strings: str, 5700 typeSpeed: 90, 5701 backDelay: 700, 5702 loop: true, 5703 contentType: 'text', 5704 loopCount: false, 5705 cursorChar: "_", 5706 }; 5707 5708 //ampersand 5709 if(originalText.text().indexOf('&') != -1) { 5710 originalText.html(originalText.text().replace('&', '<span class="edgtf-amp">&</span>')); 5711 } 5712 5713 //typeout 5714 setTimeout(function(){ 5715 customFontHolder.appear(function() { 5716 if ( ! thisTyped.hasClass( 'edgtf--initialized' ) ) { 5717 5718 var typed = new Typed( 5719 thisTyped[0], 5720 options 5721 ); 5722 thisTyped.addClass( 'edgtf--initialized' ); 5723 } 5724 },{accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount}); 5725 }, 100); 5726 5727 }); 5728 } 5729 } 5730 5731 /* 5732 * Animations Holder 5733 */ 5734 function edgtfAnimationsHolder() { 5735 var animationsHolderElements = $('.edgtf-animations-holder'); 5736 5737 if (animationsHolderElements.length) { 5738 animationsHolderElements.appear(function(){ 5739 var animationsHolderElement = $(this); 5740 5741 animationsHolderElement.addClass('edgtf-appeared'); 5742 5743 },{accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount}); 5744 } 5745 } 5746 5747 /* 5748 * Reservation Form 5749 */ 5750 function edgtfReservationFormDatePicker() { 5751 5752 var datepicker = $('.edgtf-ot-date'); 5753 5754 if(datepicker.length) { 5755 datepicker.each(function() { 5756 $(this).datepicker({ 5757 prevText: '<span class="arrow_carrot-left"></span>', 5758 nextText: '<span class="arrow_carrot-right"></span>' 5759 }); 5760 }); 5761 } 5762 } 5763 5764 /* 5765 * Give Slider Init 5766 */ 5767 function edgtfInitGiveSlider(){ 5768 var giveSliders = $('.edgtf-give-forms-slider'); 5769 5770 if (giveSliders.length){ 5771 giveSliders.each(function(){ 5772 var thisGiveSlider = $(this); 5773 5774 thisGiveSlider.slick({ 5775 infinite: true, 5776 autoplay: true, 5777 slidesToShow : 1, 5778 autoplaySpeed: 2500, 5779 fade: true,
5780 arrows: false, 5781 dots: true, 5782 dotsClass: 'edgtf-slick-dots', 5783 adaptiveHeight: true, 5784 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 5785 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 5786 customPaging: function(slider, i) { 5787 return '<span class="edgtf-slick-dot-inner"></span>'; 5788 } 5789 }); 5790 5791 thisGiveSlider.addClass("edgtf-give-forms-slider-loaded"); 5792 }); 5793 } 5794 5795 } 5796 5797 /* 5798 * Banner 5799 */ 5800 function edgtfBanner() { 5801 var banners = $('.edgtf-banner'); 5802 5803 if (banners.length) { 5804 banners.each(function(){ 5805 var banner = $(this); 5806 5807 if(banner.find('.edgtf-banner-read-more').length) { 5808 var button = banner.find('.edgtf-banner-read-more'); 5809 5810 button.mouseenter(function(){ 5811 banner.addClass('edgtf-hovered'); 5812 }).mouseleave(function(){ 5813 banner.removeClass('edgtf-hovered'); 5814 }); 5815 } 5816 }); 5817 } 5818 } 5819 5820 5821})(jQuery); 5822 5823(function($) { 5824 'use strict'; 5825 5826 $(window).on('load', edgtfOnWindowLoad); 5827 5828 /* 5829 All functions to be called on $(window).load() should be in this function 5830 */ 5831 function edgtfOnWindowLoad() { 5832 edgtfElementorInitAccordions(); 5833 edgtfElementorBanner(); 5834 edgtfElementorInitBlogListMasonry(); 5835 edgtfElementorInitBlogSlider(); 5836 edgtfElementorButton(); 5837 edgtfElementorInitCountdown(); 5838 edgtfElementorInitCounter(); 5839 edgtfElementorCustomFont(); 5840 edgtfElementorShowGoogleMap(); 5841 edgtfElementorIcon(); 5842 edgtfElementorIconWithText(); 5843 edgtfElementorInitImageGallery(); 5844 edgtfElementorInitMessages(); 5845 edgtfElementorItemShowcase(); 5846 edgtfElementorInitPieChart(); 5847 edgtfElementorInitPieChartDoughnut(); 5848 edgtfElementorInitProgressBars(); 5849 edgtElementorProjectPresentationSlider(); 5850 edgtfElementorReservationFormDatePicker(); 5851 edgtfElementorInitShopListMasonry(); 5852 edgtfElementorInitTabs(); 5853 edgtfElementorIconList(); 5854 qodefElementorVideoButton(); 5855 edgtfElementorInitGiveSlider(); 5856 edgtfElementorInitCarousels(); 5857 edgtfElementorInitEvents(); 5858 edgtfElementorInitMasonryGallery(); 5859 edgtfElementorInitPortfolioList(); 5860 edgtfElementorInitPortfolioSlider(); 5861 edgtfElementorInitTestimonials(); 5862 } 5863 5864 5865 function edgtfElementorInitAccordions(){ 5866 $(window).on('elementor/frontend/init', function () { 5867 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_accordion.default', function() { 5868 edgtf.modules.shortcodes.edgtfInitAccordions(); 5869 } ); 5870 }); 5871 } 5872 5873 function edgtfElementorBanner(){ 5874 $(window).on('elementor/frontend/init', function () { 5875 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_banner.default', function() { 5876 edgtf.modules.shortcodes.edgtfBanner(); 5877 } ); 5878 }); 5879 } 5880 5881 function edgtfElementorInitBlogListMasonry(){ 5882 $(window).on('elementor/frontend/init', function () { 5883 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_blog_list.default', function() { 5884 edgtf.modules.shortcodes.edgtfInitBlogListMasonry(); 5885 } ); 5886 }); 5887 } 5888 5889 function edgtfElementorInitBlogSlider(){ 5890 $(window).on('elementor/frontend/init', function () { 5891 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_blog_slider.default', function() { 5892 edgtf.modules.shortcodes.edgtfInitBlogSlider(); 5893 } ); 5894 }); 5895 } 5896 5897 function edgtfElementorButton(){ 5898 $(window).on('elementor/frontend/init', function () { 5899 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_button.default', function() { 5900 edgtf.modules.shortcodes.edgtfButton().init(); 5901 } ); 5902 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_call_to_action.default', function() { 5903 edgtf.modules.shortcodes.edgtfButton().init(); 5904 } ); 5905 }); 5906 } 5907 5908 function edgtfElementorInitCountdown(){ 5909 $(window).on('elementor/frontend/init', function () { 5910 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_countdown.default', function() { 5911 edgtf.modules.shortcodes.edgtfInitCountdown(); 5912 } ); 5913 }); 5914 } 5915 5916 function edgtfElementorInitCounter(){ 5917 $(window).on('elementor/frontend/init', function () { 5918 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_counter.default', function() { 5919 edgtf.modules.shortcodes.edgtfInitCounter(); 5920 } ); 5921 }); 5922 } 5923 5924 function edgtfElementorCustomFont(){ 5925 $(window).on('elementor/frontend/init', function () { 5926 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_custom_font.default', function() { 5927 edgtf.modules.shortcodes.edgtfCustomFontResize(); 5928 edgtf.modules.shortcodes.edgtfCustomFontTypeOut(); 5929 } ); 5930 }); 5931 } 5932 5933 function edgtfElementorShowGoogleMap(){ 5934 $(window).on('elementor/frontend/init', function () { 5935 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_google_map.default', function() { 5936 edgtf.modules.shortcodes.edgtfShowGoogleMap(); 5937 } ); 5938 }); 5939 } 5940 5941 function edgtfElementorIcon(){ 5942 $(window).on('elementor/frontend/init', function () { 5943 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_icon.default', function() { 5944 edgtf.modules.shortcodes.edgtfIcon().init(); 5945 } ); 5946 }); 5947 } 5948 5949 function edgtfElementorIconWithText(){ 5950 $(window).on('elementor/frontend/init', function () { 5951 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_icon_with_text.default', function() { 5952 edgtf.modules.shortcodes.edgtfIcon().init(); 5953 } ); 5954 }); 5955 } 5956 5957 function edgtfElementorInitImageGallery(){ 5958 $(window).on('elementor/frontend/init', function () { 5959 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_image_gallery.default', function() { 5960 edgtf.modules.shortcodes.edgtfInitImageGallery(); 5961 edgtf.modules.shortcodes.edgtfInitImageGalleryMasonry(); 5962 } ); 5963 }); 5964 } 5965 5966 function edgtfElementorItemShowcase(){ 5967 $(window).on('elementor/frontend/init', function () { 5968 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_item_showcase.default', function() { 5969 edgtf.modules.shortcodes.edgtfItemShowcase(); 5970 } ); 5971 }); 5972 } 5973 5974 function edgtfElementorInitMessages(){ 5975 $(window).on('elementor/frontend/init', function () { 5976 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_message.default', function() { 5977 edgtf.modules.shortcodes.edgtfInitMessages(); 5978 edgtf.modules.shortcodes.edgtfInitMessageHeight(); 5979 } ); 5980 }); 5981 } 5982 5983 function edgtfElementorInitPieChart(){ 5984 $(window).on('elementor/frontend/init', function () { 5985 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_pie_chart.default', function() { 5986 edgtf.modules.shortcodes.edgtfInitPieChart(); 5987 } ); 5988 5989 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_pie_chart_with_icon.default', function() { 5990 edgtf.modules.shortcodes.edgtfInitPieChart(); 5991 } ); 5992 }); 5993 } 5994 5995 function edgtfElementorInitPieChartDoughnut(){ 5996 $(window).on('elementor/frontend/init', function () { 5997 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_pie_chart_doughnut.default', function() { 5998 edgtf.modules.shortcodes.edgtfInitPieChartDoughnut(); 5999 } ); 6000 6001 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_pie_chart_pie.default', function() { 6002 edgtf.modules.shortcodes.edgtfInitPieChartDoughnut(); 6003 } ); 6004 }); 6005 } 6006 6007 function edgtfElementorInitProgressBars(){ 6008 $(window).on('elementor/frontend/init', function () { 6009 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_progress_bar.default', function() { 6010 edgtf.modules.shortcodes.edgtfInitProgressBars(); 6011 } ); 6012 }); 6013 6014 $(window).on('elementor/frontend/init', function () { 6015 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_cause_list.default', function() { 6016 edgtf.modules.shortcodes.edgtfInitProgressBars(); 6017 6018 } ); 6019 }); 6020 } 6021 6022 function edgtElementorProjectPresentationSlider(){ 6023 $(window).on('elementor/frontend/init', function () { 6024 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_project_presentation.default', function() { 6025 edgtf.modules.shortcodes.edgtfProjectPresentationSlider(); 6026 } ); 6027 }); 6028 } 6029 6030 function edgtfElementorReservationFormDatePicker(){ 6031 $(window).on('elementor/frontend/init', function () { 6032 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_reservation_form.default', function() { 6033 edgtf.modules.shortcodes.edgtfReservationFormDatePicker(); 6034 } ); 6035 }); 6036 } 6037 6038 function edgtfElementorInitShopListMasonry(){ 6039 $(window).on('elementor/frontend/init', function () { 6040 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_shop_masonry.default', function() { 6041 edgtf.modules.shortcodes.edgtfInitShopListMasonry(); 6042 } ); 6043 }); 6044 } 6045 6046 function edgtfElementorInitTabs(){ 6047 $(window).on('elementor/frontend/init', function () { 6048 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_tabs.default', function() { 6049 edgtf.modules.shortcodes.edgtfInitTabs(); 6050 edgtf.modules.shortcodes.edgtfInitTabIcons(); 6051 } ); 6052 }); 6053 } 6054 6055 function edgtfElementorIconList(){ 6056 $(window).on('elementor/frontend/init', function () { 6057 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_unordered_list.default', function() { 6058 edgtf.modules.shortcodes.edgtfInitIconList().init(); 6059 } ); 6060 }); 6061 } 6062 6063 function qodefElementorVideoButton(){ 6064 $(window).on('elementor/frontend/init', function () { 6065 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_video_button.default', function() { 6066 edgtf.modules.common.edgtfPrettyPhoto(); 6067 } ); 6068 }); 6069 } 6070 6071 function edgtfElementorInitGiveSlider(){ 6072 $(window).on('elementor/frontend/init', function () { 6073 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_cause_slider.default', function() { 6074 edgtf.modules.shortcodes.edgtfInitGiveSlider(); 6075 edgtf.modules.shortcodes.edgtfInitProgressBars(); 6076 } ); 6077 }); 6078 } 6079 6080 function edgtfElementorInitCarousels(){ 6081 $(window).on('elementor/frontend/init', function () { 6082 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_carousel.default', function() { 6083 edgtf.modules.shortcodes.edgtfInitCarousels(); 6084 } ); 6085 }); 6086 } 6087 6088 function edgtfElementorInitEvents(){ 6089 $(window).on('elementor/frontend/init', function () { 6090 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_event_list.default', function() { 6091 edgtf.modules.events.edgtfTitleFullWidthResize(); 6092 edgtf.modules.events.edgtfTitleFullWidthResize(); 6093 edgtf.modules.events.edgtfEventAppearFx(); 6094 edgtf.modules.events.edgtfInitEventListCarousel(); 6095 } ); 6096 }); 6097 } 6098 6099 function edgtfElementorInitMasonryGallery(){ 6100 $(window).on('elementor/frontend/init', function () { 6101 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_masonry_gallery.default', function() { 6102 edgtf.modules.shortcodes.edgtfInitMasonryGallery(); 6103 } ); 6104 }); 6105 } 6106 6107 function edgtfElementorInitPortfolioList(){ 6108 $(window).on('elementor/frontend/init', function () { 6109 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_portfolio_list.default', function() { 6110 edgtf.modules.shortcodes.edgtfInitPortfolioListMasonry(); 6111 edgtf.modules.shortcodes.edgtfInitPortfolioListPinterest(); 6112 edgtf.modules.shortcodes.edgtfInitPortfolio(); 6113 edgtf.modules.shortcodes.edgtfInitPortfolioMasonryFilter(); 6114 edgtf.modules.shortcodes.edgtfInitPortfolioLoadMore(); 6115 } ); 6116 }); 6117 } 6118 6119 function edgtfElementorInitPortfolioSlider(){ 6120 $(window).on('elementor/frontend/init', function () { 6121 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_portfolio_slider.default', function() { 6122 edgtf.modules.shortcodes.edgtfInitPortfolioSlider(); 6123 } ); 6124 }); 6125 } 6126 6127 function edgtfElementorInitTestimonials(){ 6128 $(window).on('elementor/frontend/init', function () { 6129 elementorFrontend.hooks.addAction( 'frontend/element_ready/edgtf_testimonials.default', function() { 6130 edgtf.modules.shortcodes.edgtfInitTestimonials(); 6131 } ); 6132 }); 6133 } 6134 6135})(jQuery); 6136(function($) { 6137 'use strict'; 6138 6139 var woocommerce = {}; 6140 edgtf.modules.woocommerce = woocommerce; 6141 6142 woocommerce.edgtfInitQuantityButtons = edgtfInitQuantityButtons; 6143 woocommerce.edgtfInitSelect2 = edgtfInitSelect2; 6144 6145 woocommerce.edgtfOnDocumentReady = edgtfOnDocumentReady; 6146 woocommerce.edgtfOnWindowLoad = edgtfOnWindowLoad; 6147 woocommerce.edgtfOnWindowResize = edgtfOnWindowResize; 6148 6149 $(document).ready(edgtfOnDocumentReady); 6150 $(window).on('load', edgtfOnWindowLoad); 6151 $(window).resize(edgtfOnWindowResize); 6152 6153 /* 6154 All functions to be called on $(document).ready() should be in this function 6155 */ 6156 function edgtfOnDocumentReady() { 6157 edgtfInitQuantityButtons(); 6158 edgtfInitSelect2(); 6159 edgtfAddedToCartButton(); 6160 edgtfInitSingleProductLightbox(); 6161 } 6162 6163 /* 6164 All functions to be called on $(window).load() should be in this function 6165 */ 6166 function edgtfOnWindowLoad() { 6167 6168 } 6169 6170 /* 6171 All functions to be called on $(window).resize() should be in this function 6172 */ 6173 function edgtfOnWindowResize() { 6174 6175 } 6176 6177 6178 function edgtfInitQuantityButtons() { 6179 6180 $(document).on( 'click', '.edgtf-quantity-minus, .edgtf-quantity-plus', function(e) { 6181 e.stopPropagation(); 6182 6183 var button = $(this), 6184 $inputField = button.parents('.edgtf-quantity-buttons').find('.edgtf-quantity-input'), 6185 step = parseFloat($inputField.data('step')), 6186 max = parseFloat($inputField.data('max')), 6187 min = parseFloat($inputField.data('min')), 6188 minus = false, 6189 inputValue = typeof Number.isNaN === 'function' && Number.isNaN(parseFloat($inputField.val())) ? min : parseFloat($inputField.val()), 6190 newInputValue; 6191 6192 if (button.hasClass('edgtf-quantity-minus')) { 6193 minus = true; 6194 } 6195 6196 if (minus) { 6197 newInputValue = inputValue - step; 6198 if (newInputValue >= min) { 6199 $inputField.val(newInputValue); 6200 } else { 6201 $inputField.val(min); 6202 } 6203 } else { 6204 newInputValue = inputValue + step; 6205 if (max === undefined) { 6206 $inputField.val(newInputValue); 6207
6207 } else { 6208 if (newInputValue >= max) { 6209 $inputField.val(max); 6210 } else { 6211 $inputField.val(newInputValue); 6212 } 6213 } 6214 } 6215 6216 $inputField.trigger( 'change' ); 6217 6218 }); 6219 6220 } 6221 6222 function edgtfInitSelect2() { 6223 6224 if ($('.woocommerce-ordering .orderby').length || $('#calc_shipping_country').length ) { 6225 6226 $('.woocommerce-ordering .orderby').select2({ 6227 minimumResultsForSearch: Infinity 6228 }); 6229 6230 $('#calc_shipping_country, .dropdown_product_cat, .dropdown_layered_nav_color').select2(); 6231 6232 } 6233 6234 } 6235 6236 /* 6237 ** Init Product Single Pretty Photo attributes 6238 */ 6239 function edgtfInitSingleProductLightbox() { 6240 var item = $('.edgtf-woocommerce-single-page .edgtf-single-product-wrapper-top .images .woocommerce-product-gallery__image'); 6241 6242 if(item.length) { 6243 item.each(function() { 6244 var thisItem = $(this).children('a'); 6245 6246 thisItem.attr('data-rel', 'prettyPhoto[woo_single_pretty_photo]'); 6247 6248 if (typeof edgtf.modules.common.edgtfPrettyPhoto === "function") { 6249 edgtf.modules.common.edgtfPrettyPhoto(); 6250 } 6251 }); 6252 } 6253 } 6254 6255 6256 6257 6258 function edgtfAddedToCartButton(){ 6259 $('body').on("added_to_cart", function( data ) { 6260 6261 var btn = $('a.added_to_cart:not(.edgtf-btn)'); 6262 btn.addClass('edgtf-btn').html("<span class='edgtf-icon-font-elegant icon_check'></span><span class='edgtf-btn-text'>"+btn.html()+"</span>"); 6263 }); 6264 } 6265 6266 6267})(jQuery); 6268(function($) { 6269 'use strict'; 6270 6271 var portfolio = {}; 6272 edgtf.modules.portfolio = portfolio; 6273 6274 portfolio.edgtfOnDocumentReady = edgtfOnDocumentReady; 6275 portfolio.edgtfOnWindowLoad = edgtfOnWindowLoad; 6276 portfolio.edgtfOnWindowResize = edgtfOnWindowResize; 6277 portfolio.edgtfOnWindowScroll = edgtfOnWindowScroll; 6278 portfolio.edgtfPortfolioSingleMasonry = edgtfPortfolioSingleMasonry; 6279 6280 $(document).ready(edgtfOnDocumentReady); 6281 $(window).on('load', edgtfOnWindowLoad); 6282 $(window).resize(edgtfOnWindowResize); 6283 $(window).scroll(edgtfOnWindowScroll); 6284 6285 /* 6286 All functions to be called on $(document).ready() should be in this function 6287 */ 6288 function edgtfOnDocumentReady() { 6289 edgtfPortfolioSingleMasonry(); 6290 } 6291 6292 /* 6293 All functions to be called on $(window).load() should be in this function 6294 */ 6295 function edgtfOnWindowLoad() { 6296 edgtfPortfolioSingleFollow().init(); 6297 } 6298 6299 /* 6300 All functions to be called on $(window).resize() should be in this function 6301 */ 6302 function edgtfOnWindowResize() { 6303 6304 } 6305 6306 /* 6307 All functions to be called on $(window).scroll() should be in this function 6308 */ 6309 function edgtfOnWindowScroll() { 6310 6311 } 6312 6313 6314 6315 var edgtfPortfolioSingleFollow = function() { 6316 6317 var info = $('.edgtf-follow-portfolio-info .small-images.edgtf-portfolio-single-holder .edgtf-portfolio-info-holder, ' + 6318 '.edgtf-follow-portfolio-info .small-slider.edgtf-portfolio-single-holder .edgtf-portfolio-info-holder'); 6319 6320 if (info.length) { 6321 var infoHolder = info.parent(), 6322 infoHolderOffset = infoHolder.offset().top, 6323 infoHolderHeight = infoHolder.height(), 6324 mediaHolder = $('.edgtf-portfolio-media'), 6325 mediaHolderHeight = mediaHolder.height(), 6326 header = $('.header-appear, .edgtf-fixed-wrapper'), 6327 headerHeight = (header.length) ? header.height() : 0; 6328 } 6329 6330 var infoHolderPosition = function() { 6331 6332 if(info.length) { 6333 6334 if (mediaHolderHeight > infoHolderHeight) { 6335 if(edgtf.scroll > infoHolderOffset) { 6336 var marginTop = edgtf.scroll - infoHolderOffset + edgtfGlobalVars.vars.edgtfAddForAdminBar + headerHeight + 20; //20 px is for styling, spacing between header and info holder 6337 // if scroll is initially positioned below mediaHolderHe
6337ight 6338 if(marginTop + infoHolderHeight > mediaHolderHeight){ 6339 marginTop = mediaHolderHeight - infoHolderHeight; 6340 } 6341 info.animate({ 6342 marginTop: marginTop 6343 }); 6344 } 6345 } 6346 6347 } 6348 }; 6349 6350 var recalculateInfoHolderPosition = function() { 6351 6352 if (info.length) { 6353 if(mediaHolderHeight > infoHolderHeight) { 6354 if(edgtf.scroll > infoHolderOffset) { 6355 6356 if(edgtf.scroll + headerHeight + edgtfGlobalVars.vars.edgtfAddForAdminBar + infoHolderHeight + 100 < infoHolderOffset + mediaHolderHeight) { //70 to prevent mispositioning 6357 6358 //Calculate header height if header appears 6359 if ($('.header-appear, .edgtf-fixed-wrapper').length) { 6360 headerHeight = $('.header-appear, .edgtf-fixed-wrapper').height(); 6361 } 6362 info.stop().animate({ 6363 marginTop: (edgtf.scroll - infoHolderOffset + edgtfGlobalVars.vars.edgtfAddForAdminBar + headerHeight + 20) //20 px is for styling, spacing between header and info holder 6364 }); 6365 //Reset header height 6366 headerHeight = 0; 6367 } 6368 else{ 6369 info.stop().animate({ 6370 marginTop: mediaHolderHeight - infoHolderHeight 6371 }); 6372 } 6373 } else { 6374 info.stop().animate({ 6375 marginTop: 0 6376 }); 6377 } 6378 } 6379 } 6380 }; 6381 6382 return { 6383 6384 init : function() { 6385 6386 infoHolderPosition(); 6387 $(window).scroll(function(){ 6388 recalculateInfoHolderPosition(); 6389 }); 6390 6391 } 6392 6393 }; 6394 6395 }; 6396 6397 /** 6398 * Init Portfolio Single Masonry 6399 */ 6400 function edgtfPortfolioSingleMasonry(){ 6401 var gallery = $('.edgtf-portfolio-single-holder.small-masonry .edgtf-portfolio-media, .edgtf-portfolio-single-holder.big-masonry .edgtf-portfolio-media'); 6402 6403 if(gallery.length) { 6404 gallery.each(function () { 6405 var thisGallery = $(this); 6406 thisGallery.waitForImages(function () { 6407 var size = thisGallery.find('.edgtf-single-masonry-grid-sizer').width(); 6408 edgtfPortfolioSingleResizeMasonry(size,thisGallery); 6409 edgtfInitSingleMasonry(thisGallery); 6410 6411 }); 6412 $(window).resize(function(){ 6413 var size = thisGallery.find('.edgtf-single-masonry-grid-sizer').width(); 6414 edgtfPortfolioSingleResizeMasonry(size,thisGallery); 6415 edgtfInitSingleMasonry(thisGallery); 6416 }); 6417 }); 6418 } 6419 } 6420 6421 function edgtfInitSingleMasonry(container){ 6422 container.animate({opacity: 1}); 6423 container.isotope({ 6424 layoutMode: 'packery', 6425 itemSelector: '.edgtf-portfolio-single-media', 6426 packery: { 6427 columnWidth: '.edgtf-single-masonry-grid-sizer' 6428 } 6429 }); 6430 } 6431 6432 6433 function edgtfPortfolioSingleResizeMasonry(size,container){ 6434 6435 var defaultMasonryItem = container.find('.edgtf-default-masonry-item'); 6436 var largeWidthMasonryItem = container.find('.edgtf-large-width-masonry-item'); 6437 var largeHeightMasonryItem = container.find('.edgtf-large-height-masonry-item'); 6438 var largeWidthHeightMasonryItem = container.find('.edgtf-large-width-height-masonry-item'); 6439 6440 defaultMasonryItem.css('height', size); 6441 largeHeightMasonryItem.css('height', Math.round(2*size)); 6442 6443 if(edgtf.windowWidth > 600){ 6444 largeWidthHeightMasonryItem.css('height', Math.round(2*size)); 6445 largeWidthMasonryItem.css('height', size); 6446 }else{ 6447 largeWidthHeightMasonryItem.css('height', size); 6448 largeWidthMasonryItem.css('height', Math.round(size)); 6449 largeHeightMasonryItem.css('height', Math.round(size)); 6450 } 6451 } 6452 6453})(jQuery); 6454(function($) { 6455 'use strict'; 6456 6457 var events = {}; 6458 edgtf.modules.events = events; 6459 6460 events.edgtfOnDocumentReady = edgtfOnDocumentReady; 6461 events.edgtfOnWindowLoad = edgtfOnWindowLoad; 6462 events.edgtfOnWindowResize = edgtfOnWindowResize; 6463 events.edgtfOnWindowScroll = edgtfOnWindowScroll; 6464 6465 events.edgtfEventImagesSlider = edgtfEventImagesSlider; 6466 events.edgtfEventsRelatedProducts = edgtfEventsRelatedProducts; 6467 events.edgtfTitleFullWidthResize = edgtfTitleFullWidthResize; 6468 events.edgtfInitEventsLoadMore = edgtfInitEventsLoadMore; 6469 events.edgtfEventAppearFx = edgtfEventAppearFx; 6470 events.edgtfInitEventListCarousel = edgtfInitEventListCarousel; 6471 6472 $(document).ready(edgtfOnDocumentReady); 6473 $(window).on('load', edgtfOnWindowLoad); 6474 $(window).resize(edgtfOnWindowResize); 6475 $(window).scroll(edgtfOnWindowScroll); 6476 6477 /* 6478 All functions to be called on $(document).ready() should be in this function 6479 */ 6480 function edgtfOnDocumentReady() { 6481 edgtfTitleFullWidthResize(); 6482 edgtfEventImagesSlider(); 6483 edgtfEventsRelatedProducts(); 6484 edgtfInitEventsLoadMore(); 6485 edgtfInitEventListCarousel(); 6486 } 6487 6488 /* 6489 All functions to be called on $(window).load() should be in this function 6490 */ 6491 function edgtfOnWindowLoad() { 6492 edgtfInitFullWidthParallax(); 6493 edgtfEventAppearFx(); 6494 } 6495 6496 /* 6497 All functions to be called on $(window).resize() should be in this function 6498 */ 6499 function edgtfOnWindowResize() { 6500 edgtfTitleFullWidthResize(); 6501 6502 } 6503 6504 /* 6505 All functions to be called on $(window).scroll() should be in this function 6506 */ 6507 function edgtfOnWindowScroll() { 6508 6509 } 6510 6511 /* 6512 ** Event List Full Width Title resizing 6513 */ 6514 function edgtfTitleFullWidthResize(){ 6515 var title = $('.edgtf-event-list-full-width .edgtf-el-item-title'); 6516 if (title.length){ 6517 title.each(function(){ 6518 var thisTitle = $(this); 6519 var fontSize; 6520 var coef1 = 1; 6521 var coef2 = 1; 6522 6523 if (edgtf.windowWidth < 1300){ 6524 coef1 = 0.8; 6525 } 6526 6527 if (edgtf.windowWidth < 1200){ 6528 coef1 = 0.75; 6529 } 6530 6531 if (edgtf.windowWidth < 1000){ 6532 coef1 = 0.7; 6533 } 6534 6535 if (edgtf.windowWidth < 768){ 6536 coef1 = 0.6; 6537 coef2 = 0.7; 6538 } 6539 6540 if (edgtf.windowWidth < 600){ 6541 coef1 = 0.5; 6542 coef2 = 0.6; 6543 } 6544 6545 if (edgtf.windowWidth < 480){ 6546 coef1 = 0.4; 6547 coef2 = 0.5; 6548 } 6549 6550 if (typeof thisTitle.data('font-size') !== 'undefined' && thisTitle.data('font-size') !== false) { 6551 fontSize = parseInt(thisTitle.data('font-size')); 6552 6553 if (fontSize > 70) { 6554 fontSize = Math.round(fontSize*coef1); 6555 } 6556 else if (fontSize > 35) { 6557 fontSize = Math.round(fontSize*coef2); 6558 } 6559 6560 thisTitle.css('font-size',fontSize + 'px'); 6561 } 6562 }); 6563 } 6564 } 6565 6566 function edgtfEventAppearFx() { 6567 var appearFxList = $('.edgtf-event-list-appear-fx'); 6568 6569 if (appearFxList.length && !edgtf.htmlEl.hasClass('touch')) { 6570 appearFxList.each(function(){ 6571 var currentList = $(this), 6572 eventItems = currentList.find('.edgtf-el-item'), 6573 animateCycle = 2, // rewind delay 6574 animateCycleCounter = 0; 6575 6576 eventItems.appear(function(){ 6577 var eventItem = $(this); 6578 animateCycleCounter ++; 6579 if(animateCycleCounter == animateCycle) { 6580 animateCycleCounter = 0; 6581 } 6582 setTimeout(function(){ 6583 eventItem.addClass('edgtf-appeared'); 6584 }, animateCycleCounter*200); 6585 },{accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount}); 6586 }); 6587 } 6588 } 6589 6590 function edgtfEventsRelatedProducts(){ 6591 var relatedProducts = $('.edgtf-event-related-slider'); 6592 6593 if (relatedProducts.length){ 6594 6595 var responsive = [ 6596 { 6597 breakpoint: 769, 6598 settings: { 6599 slidesToShow: 2, 6600 } 6601 }, 6602 { 6603 breakpoint: 481, 6604 settings: { 6605 slidesToShow: 1, 6606 } 6607 }, 6608 ]; 6609 6610 relatedProducts.slick({ 6611 infinite: true, 6612 autoplay: true, 6613 slidesToShow : 3, 6614 centerMode: true, 6615 centerPadding: '15.1%', 6616 arrows: true, 6617 dots: false, 6618 adaptiveHeight: true, 6619 responsive: responsive, 6620 easing: 'easeInOutQuint', 6621 speed: 1000, 6622 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_left"></span></span>', 6623 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_right"></span></span>' 6624 }); 6625 } 6626 } 6627 6628 6629 function edgtfEventImagesSlider(){ 6630 var eventImagesSlider = $('.edgtf-event-images-slider'); 6631 6632 if (eventImagesSlider.length){ 6633 6634 var element; 6635 6636 eventImagesSlider.on('init', function(slick){ 6637 eventImagesSlider.addClass('edgtf-appeared'); 6638 6639 element = eventImagesSlider.find('.slick-slide'); 6640 6641 element.each(function(){ 6642 var thisElement = $(this), 6643 flag = 0, 6644 mousedownFlag = 0, 6645 moved = false;
6646 6647 thisElement.on("mousedown", function(){ 6648 flag = 0; 6649 mousedownFlag = 1; 6650 moved = false; 6651 }); 6652 6653 thisElement.on("mousemove", function(){ 6654 if (mousedownFlag == 1){ 6655 if (moved){ 6656 flag = 1; 6657 } 6658 moved = true; 6659 } 6660 }); 6661 6662 thisElement.on("mouseleave", function(){ 6663 flag = 0; 6664 }); 6665 6666 thisElement.on("mouseup", function(e){ 6667 if(flag === 1){ 6668 thisElement.find('a[data-rel^="prettyPhoto"]').off('click'); 6669 } 6670 else{ 6671 edgtf.modules.common.edgtfPrettyPhoto(); 6672 } 6673 flag = 0; 6674 mousedownFlag = 0; 6675 }); 6676 }); 6677 6678 }); 6679 6680 eventImagesSlider.slick({ 6681 infinite: true, 6682 autoplay: true, 6683 slidesToShow : 1, 6684 centerMode: true, 6685 centerPadding: '16%', 6686 arrows: true, 6687 dots: false, 6688 adaptiveHeight: true, 6689 easing: 'easeInOutQuint', 6690 speed: 1000, 6691 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_left"></span></span>', 6692 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_right"></span></span>' 6693 }); 6694 } 6695 } 6696 6697 function edgtfInitFullWidthParallax(){ 6698 var parallaxBackgroundItems = $('.edgtf-event-list-full-width.edgtf-event-list-parallax .edgtf-el-item-background'); 6699 6700 if(parallaxBackgroundItems.length){ 6701 parallaxBackgroundItems.each(function() { 6702 6703 var parallaxElement = $(this); 6704 var speed = 0.4; 6705 parallaxElement.parallax("50%", speed); 6706 }); 6707 } 6708 } 6709 6710 /** 6711 * Initializes events load more function 6712 */ 6713 function edgtfInitEventsLoadMore(){ 6714 var eventList = $('.edgtf-event-list-holder.edgtf-event-list-show-more'); 6715 6716 if(eventList.length){ 6717 6718 eventList.each(function(){ 6719 6720 var thisEventList = $(this); 6721 var thisEventListInner = thisEventList.find('.edgtf-event-list-holder-inner'); 6722 var nextPage; 6723 var maxNumPages; 6724 var loadMoreButton = thisEventList.find('.edgtf-el-list-load-more a'); 6725 var buttonText = loadMoreButton.children(".edgtf-btn-text"); 6726 6727 if (typeof thisEventList.data('max-num-pages') !== 'undefined' && thisEventList.data('max-num-pages') !== false) { 6728 maxNumPages = thisEventList.data('max-num-pages'); 6729 } 6730 6731 if (thisEventList.hasClass('edgtf-event-list-load-button')) { 6732 6733 loadMoreButton.on('click', function (e) { 6734 var loadMoreDatta = edgtfGetEventAjaxData(thisEventList); 6735 nextPage = loadMoreDatta.nextPage; 6736 e.preventDefault(); 6737 e.stopPropagation(); 6738 if (nextPage <= maxNumPages) { 6739 var ajaxData = edgtfSetEventAjaxData(loadMoreDatta); 6740 buttonText.text(edgtfGlobalVars.vars.edgtfLoadingMoreText); 6741 $.ajax({ 6742 type: 'POST', 6743 data: ajaxData, 6744 url: edgtCoreAjaxUrl, 6745 success: function (data) { 6746 nextPage++; 6747 thisEventList.data('next-page', nextPage); 6748 var response = $.parseJSON(data); 6749 var responseHtml = edgtfConvertHTML(response.html); //convert response html into jQuery collection that Mixitup can work with 6750 thisEventList.waitForImages(function () { 6751 thisEventListInner.append(responseHtml); 6752 edgtfTitleFullWidthResize(); 6753 edgtfEventAppearFx(); 6754 6755 buttonText.text(edgtfGlobalVars.vars.edgtfLoadMoreText); 6756 6757 if(nextPage > maxNumPages){ 6758 loadMoreButton.hide(); 6759 } 6760 }); 6761 } 6762 }); 6763 } 6764 }); 6765 6766 } else if (thisEventList.hasClass('edgtf-event-list-infinite-scroll')) {
6767 loadMoreButton.appear(function(e) { 6768 var loadMoreDatta = edgtfGetEventAjaxData(thisEventList); 6769 nextPage = loadMoreDatta.nextPage; 6770 e.preventDefault(); 6771 e.stopPropagation(); 6772 loadMoreButton.css('visibility', 'visible'); 6773 if(nextPage <= maxNumPages){ 6774 var ajaxData = edgtfSetEventAjaxData(loadMoreDatta); 6775 $.ajax({ 6776 type: 'POST', 6777 data: ajaxData, 6778 url: edgtCoreAjaxUrl, 6779 success: function (data) { 6780 nextPage++; 6781 thisEventList.data('next-page', nextPage); 6782 var response = $.parseJSON(data); 6783 var responseHtml = edgtfConvertHTML(response.html); //convert response html into jQuery collection that Mixitup can work with 6784 thisEventList.waitForImages(function(){ 6785 thisEventListInner.append(responseHtml); 6786 loadMoreButton.css('visibility','hidden'); 6787 edgtfTitleFullWidthResize(); 6788 edgtfEventAppearFx(); 6789 }); 6790 } 6791 }); 6792 } 6793 if(nextPage === maxNumPages){ 6794 setTimeout(function() { 6795 loadMoreButton.fadeOut(400); 6796 }, 400); 6797 } 6798 6799 },{ one: false, accX: 0, accY: edgtfGlobalVars.vars.edgtfElementAppearAmount}); 6800 } 6801 6802 }); 6803 } 6804 } 6805 6806 function edgtfConvertHTML ( html ) { 6807 var newHtml = $.trim( html ), 6808 $html = $(newHtml ), 6809 $empty = $(); 6810 6811 $html.each(function ( index, value ) { 6812 if ( value.nodeType === 1) { 6813 $empty = $empty.add ( this ); 6814 } 6815 }); 6816 6817 return $empty; 6818 } 6819 6820 /** 6821 * Initializes events load more data params 6822 * @param event list container with defined data params 6823 * return array 6824 */ 6825 function edgtfGetEventAjaxData(container){ 6826 var returnValue = {}; 6827 6828 returnValue.type = ''; 6829 returnValue.columns = ''; 6830 returnValue.orderBy = ''; 6831 returnValue.order = ''; 6832 returnValue.eventStatus = ''; 6833 returnValue.number = ''; 6834 returnValue.category = ''; 6835 returnValue.selectedProjectes = ''; 6836 returnValue.showMore = ''; 6837 returnValue.titleTag = ''; 6838 returnValue.titleSize = ''; 6839 returnValue.paddingTopBottom = ''; 6840 returnValue.parallax = ''; 6841 returnValue.appearFx = ''; 6842 returnValue.nextPage = ''; 6843 returnValue.maxNumPages = ''; 6844 6845 if (typeof container.data('type') !== 'undefined' && container.data('type') !== false) { 6846 returnValue.type = container.data('type'); 6847 } 6848 if (typeof container.data('columns') !== 'undefined' && container.data('columns') !== false) { 6849 returnValue.columns = container.data('columns'); 6850 } 6851 if (typeof container.data('order-by') !== 'undefined' && container.data('order-by') !== false) { 6852 returnValue.orderBy = container.data('order-by'); 6853 } 6854 if (typeof container.data('order') !== 'undefined' && container.data('order') !== false) { 6855 returnValue.order = container.data('order'); 6856 } 6857 if (typeof container.data('event-status') !== 'undefined' && container.data('event-status') !== false) { 6858 returnValue.eventStatus = container.data('event-status'); 6859 } 6860 if (typeof container.data('number') !== 'undefined' && container.data('number') !== false) { 6861 returnValue.number = container.data('number'); 6862 } 6863 if (typeof container.data('category') !== 'undefined' && container.data('category') !== false) { 6864 returnValue.category = container.data('category'); 6865 } 6866 if (typeof container.data('selected-projects') !== 'undefined' && container.data('selected-projects') !== false) { 6867 returnValue.selectedProjectes = container.data('selected-projects'); 6868 } 6869 if (typeof container.data('show-more') !== 'undefined' && container.data('show-more') !== false) { 6870 returnValue.showMore = container.data('show-more'); 6871 } 6872 if (typeof container.data('title-tag') !== 'undefined' && container.data('title-tag') !== false) { 6873 returnValue.titleTag = container.data('title-tag'); 6874 } 6875 if (typeof container.data('parallax') !== 'undefined' && container.data('parallax') !== false) { 6876 returnValue.parallax = container.data('parallax'); 6877 } 6878 if (typeof container.data('appear-fx') !== 'undefined' && container.data('appear-fx') !== false) { 6879 returnValue.appearFx = container.data('appear-fx'); 6880 } 6881 if (typeof container.data('title-size') !== 'undefined' && container.data('title-size') !== false) { 6882 returnValue.titleSize = container.data('title-size'); 6883 } 6884 if (typeof container.data('padding-top-bottom') !== 'undefined' && container.data('padding-top-bottom') !== false) { 6885 returnValue.paddingTopBottom = container.data('padding-top-bottom'); 6886 } 6887 if (typeof container.data('next-page') !== 'undefined' && container.data('next-page') !== false) { 6888 returnValue.nextPage = container.data('next-page'); 6889 } 6890 if (typeof container.data('max-num-pages') !== 'undefined' && container.data('max-num-pages') !== false) { 6891 returnValue.maxNumPages = container.data('max-num-pages'); 6892 } 6893 return returnValue; 6894 } 6895 /** 6896 * Sets events load more data params for ajax function 6897 * @param event list container with defined data params 6898 * return array 6899 */ 6900 function edgtfSetEventAjaxData(container){ 6901 var returnValue = { 6902 action: 'edgt_core_event_ajax_load_more', 6903 type: container.type, 6904 columns: container.columns, 6905 orderBy: container.orderBy, 6906 order: container.order, 6907 eventStatus: container.eventStatus, 6908 number: container.number, 6909 category: container.category, 6910 selectedProjectes: container.selectedProjectes, 6911 showMore: container.showMore, 6912 titleTag: container.titleTag, 6913 titleSize: container.titleSize, 6914 paddingTopBottom: container.paddingTopBottom, 6915 parallax: container.parallax, 6916 appearFx: container.appearFx, 6917 nextPage: container.nextPage 6918 }; 6919 return returnValue; 6920 } 6921 6922 /** 6923 * Initializes portfolio slider 6924 */ 6925 6926 function edgtfInitEventListCarousel(){ 6927 var eventSlider = $('.edgtf-event-list-holder.edgtf-event-list-carousel'); 6928 if(eventSlider.length){ 6929 eventSlider.each(function(){ 6930 var thisEventSlider = $(this); 6931 var sliderWrapper = thisEventSlider.children('.edgtf-event-list-holder-inner'); 6932 6933 //Responsive breakpoints 6934 var responsive = [ 6935 { 6936 breakpoint: 1025, 6937 settings: { 6938 slidesToShow: 2, 6939 slidesToScroll: 1, 6940 infinite: true, 6941 } 6942 }, 6943 { 6944 breakpoint: 601,
6945 settings: { 6946 slidesToShow: 1, 6947 slidesToScroll: 1 6948 } 6949 } 6950 ]; 6951 6952 sliderWrapper.on('init', function(slick){ 6953 var slides = sliderWrapper.find('.slick-slide'); 6954 6955 var dragStart, clickable = false; 6956 6957 var handleDragStart = function(event) { 6958 event = typeof event.originalEvent !== 'undefined' ? event.originalEvent : event; 6959 event = event.type == 'touchstart' ? event.touches[0] : event; 6960 dragStart = { 6961 x: event.clientX, 6962 y: event.clientY 6963 }; 6964 }; 6965 6966 var handleDragStop = function(event) { 6967 event = typeof event.originalEvent !== 'undefined' ? event.originalEvent : event; 6968 event = event.type == 'touchend' ? event.changedTouches[0] : event; 6969 var dragEnd = { 6970 x: event.clientX, 6971 y: event.clientY 6972 }; 6973 if (Math.abs(dragEnd.x - dragStart.x) < 10) { 6974 clickable = true; 6975 } 6976 }; 6977 6978 var handleClick = function(event) { 6979 if (clickable) { 6980 clickable = false; 6981 } 6982 else { 6983 event.preventDefault(); 6984 event.stopImmediatePropagation(); 6985 } 6986 }; 6987 6988 slides.find('a') 6989 .on('dragstart', function(event) { 6990 event.stopImmediatePropagation(); 6991 event.preventDefault(); 6992 }) 6993 .on('click', handleClick) 6994 .on('mousedown touchstart', handleDragStart) 6995 .on('mouseup touchend', handleDragStop); 6996 }); 6997 6998 sliderWrapper.slick({ 6999 infinite: true, 7000 autoplay: true, 7001 autoplaySpeed: 3000, 7002 arrows: false, 7003 dots: true, 7004 dotsClass: 'edgtf-slick-dots', 7005 speed: 600, 7006 easing:'easeOutCubic', 7007 slidesToShow: 3, 7008 prevArrow: '<span class="edgtf-slick-prev edgtf-prev-icon"><span class="arrow_carrot-left"></span></span>', 7009 nextArrow: '<span class="edgtf-slick-next edgtf-next-icon"><span class="arrow_carrot-right"></span></span>', 7010 responsive:responsive, 7011 customPaging: function(slider, i) { 7012 return '<span class="edgtf-slick-dot-inner"></span>'; 7013 } 7014 }); 7015 }); 7016 } 7017 } 7018 7019})(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.