1(function($) 2{ 3 "use strict"; 4 5 $( function() 6 { 7 //global variables that are used on several ocassions 8 $.avia_utilities = $.avia_utilities || {}; 9 10 if( 'undefined' == typeof $.avia_utilities.isMobile ) 11 { 12 if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && 'ontouchstart' in document.documentElement) 13 { 14 $.avia_utilities.isMobile = true; 15 } 16 else 17 { 18 $.avia_utilities.isMobile = false; 19 } 20 } 21 22 //activate fixed bg fallback for mobile 23 if( $.fn.avia_mobile_fixed ) 24 { 25 $( '.avia-bg-style-fixed' ).avia_mobile_fixed(); 26 } 27 28 //calculate the browser height and append a css rule to the head 29 if( $.fn.avia_browser_height ) 30 { 31 $( '.av-minimum-height, .avia-fullscreen-slider, .av-cell-min-height' ).avia_browser_height(); 32 } 33 34 //calculate the element height in a layout container 35 if( $.fn.avia_container_height ) 36 { 37 $( '.av-column-min-height-pc' ).avia_container_height(); 38 } 39 40 //calculate the height of each video section 41 if( $.fn.avia_video_section ) 42 { 43 $( '.av-section-with-video-bg' ).avia_video_section(); 44 } 45 46 //creates team social icon tooltip 47 new $.AviaTooltip({'class': "avia-tooltip", data: "avia-tooltip", delay:0, scope: "body"}); 48 49 //creates icon element tooltip 50 new $.AviaTooltip({'class': "avia-tooltip avia-icon-tooltip", data: "avia-icon-tooltip", delay:0, scope: "body"}); 51 52 $.avia_utilities.activate_shortcode_scripts(); 53 54 //layer slider height helper 55 if( $.fn.layer_slider_height_helper ) 56 { 57 $( '.avia-layerslider' ).layer_slider_height_helper(); 58 } 59 60 //"ajax" portfolio 61 if( $.fn.avia_portfolio_preview ) 62 { 63 $( '.grid-links-ajax' ).avia_portfolio_preview(); 64 } 65 66 // activate the masonry script: sorting/loading/etc 67 if( $.fn.avia_masonry ) 68 { 69 $( '.av-masonry' ).avia_masonry(); 70 } 71 72 //activate the accordion 73 if( $.fn.aviaccordion ) 74 { 75 $( '.aviaccordion' ).aviaccordion(); 76 } 77 78 79 //activate the accordion 80 if( $.fn.avia_textrotator ) 81 { 82 $( '.av-rotator-container' ).avia_textrotator(); 83 } 84 85 //activates the tab section and slideshow section shortcode 86 if( $.fn.avia_sc_tab_section ) 87 { 88 $( '.av-tab-section-container' ).avia_sc_tab_section(); 89 } 90 91 //activates the hor gallery shortcode 92 if( $.fn.avia_hor_gallery ) 93 { 94 $( '.av-horizontal-gallery' ).avia_hor_gallery(); 95 } 96 97 // activate columns and cells with a link 98 if( $.fn.avia_link_column ) 99 { 100 $( '.avia-link-column' ).avia_link_column(); 101 } 102 103 if( $.fn.avia_delayed_animation_in_container ) 104 { 105 $( '.av-animation-delay-container' ).avia_delayed_animation_in_container(); 106 } 107 }); 108 109 110// ------------------------------------------------------------------------------------------- 111// ACTIVATE ALL SHORTCODES 112// ------------------------------------------------------------------------------------------- 113 114 $.avia_utilities = $.avia_utilities || {}; 115 $.avia_utilities.activate_shortcode_scripts = function( container ) 116 { 117 if( typeof container == 'undefined' ) 118 { 119 container = 'body'; 120 } 121 122 //activates the form shortcode 123 if( $.fn.avia_ajax_form ) 124 { 125 $( '.avia_ajax_form:not( .avia-disable-default-ajax )', container ).avia_ajax_form(); 126 } 127 128 activate_waypoints( container ); 129 130 //activate the video api 131 if( $.fn.aviaVideoApi ) 132 { 133 $( '.avia-slideshow iframe[src*="youtube.com"], .av_youtube_frame, .av_vimeo_frame, .avia-slideshow video' ).aviaVideoApi({}, 'li'); 134 } 135 136 //activates the toggle shortcode 137 if( $.fn.avia_sc_toggle ) 138 { 139 $( '.togglecontainer', container ).avia_sc_toggle(); 140 } 141 142 //activates the tabs shortcode 143 if( $.fn.avia_sc_tabs ) 144 { 145 $( '.top_tab', container ).avia_sc_tabs(); 146 $( '.sidebar_tab', container ).avia_sc_tabs({sidebar:true}); 147 } 148 149 //activates behavior and animation for gallery 150 if( $.fn.avia_sc_gallery ) 151 { 152 $( '.avia-gallery', container ).avia_sc_gallery(); 153 } 154 155 //activates animated number shortcode 156 if( $.fn.avia_sc_animated_number ) 157 { 158 $( '.avia-animated-number', container ).avia_sc_animated_number(); 159 } 160 161 //animation for elements that are not connected like icon shortcode 162 if( $.fn.avia_sc_animation_delayed ) 163 { 164 $( '.av_font_icon', container ).avia_sc_animation_delayed({delay:100}); 165 $( '.avia-image-container', container ).avia_sc_animation_delayed({delay:100}); 166 $( '.av-hotspot-image-container', container ).avia_sc_animation_delayed({delay:100}); 167 $( '.av-animated-generic', container ).avia_sc_animation_delayed({delay:100}); 168 169 // @since 5.0 - avoid conflict with already existing classes 170 $( '.av-animated-when-visible', container ).avia_sc_animation_delayed({delay:100}); 171 $( '.av-animated-when-almost-visible', container ).avia_sc_animation_delayed({delay:100}); 172 $( '.av-animated-when-visible-95', container ).avia_sc_animation_delayed({delay:100}); 173 } 174 175 //activates animation for iconlist 176 if( $.fn.avia_sc_iconlist ) 177 { 178 $( '.avia-icon-list.av-iconlist-big.avia-iconlist-animate', container ).avia_sc_iconlist(); 179 } 180 181 //activates animation for progress bar 182 if( $.fn.avia_sc_progressbar ) 183 { 184 $( '.avia-progress-bar-container', container ).avia_sc_progressbar(); 185 } 186 187 //activates animation for testimonial 188 if( $.fn.avia_sc_testimonial ) 189 { 190 $( '.avia-testimonial-wrapper', container ).avia_sc_testimonial(); 191 } 192 193 //activate the fullscreen slider 194 if( $.fn.aviaFullscreenSlider ) 195 { 196 $( '.avia-slideshow.av_fullscreen', container ).aviaFullscreenSlider(); 197 } 198 199 //activate the aviaslider 200 if( $.fn.aviaSlider ) 201 { 202 $( '.avia-slideshow:not(.av_fullscreen)', container ).aviaSlider(); 203 204 //content slider 205 $( '.avia-content-slider-active', container ).aviaSlider({wrapElement: '.avia-content-slider-inner', slideElement: '.slide-entry-wrap', fullfade: true}); 206 207 //testimonial slider 208 $( '.avia-slider-testimonials', container ).aviaSlider({wrapElement: '.avia-testimonial-row', slideElement: '.avia-testimonial', fullfade: true}); 209 } 210 211 //load magazine sorting 212 if( $.fn.aviaMagazine ) 213 { 214 $( '.av-magazine-tabs-active', container ).aviaMagazine(); 215 } 216 217 //load image hotspot 218 if( $.fn.aviaHotspots ) 219 { 220 $( '.av-hotspot-image-container', container ).aviaHotspots(); 221 } 222 223 //load countdown 224 if( $.fn.aviaCountdown ) 225 { 226 $( '.av-countdown-timer', container ).aviaCountdown(); 227 } 228 229 //load audio player 230 if( $.fn.aviaPlayer ) 231 { 232 $( '.av-player', container ).aviaPlayer(); 233 } 234 235 // load icon circles 236 if( $.fn.aviaIconCircles ) 237 { 238 $('.av-icon-circles-container').aviaIconCircles(); 239 } 240 241 // load icon grid 242 if( $.fn.avia_sc_icongrid ) 243 { 244 $('.avia-icon-grid-container').avia_sc_icongrid(); 245 } 246 247 }; 248 249 250 function activate_waypoints( container ) 251 { 252 //activates simple css animations of the content once the user scrolls to an elements 253 if( $.fn.avia_waypoints ) 254 { 255 if( typeof container == 'undefined' ) 256 { 257 container = 'body'; 258 } 259 260 $( '.avia_animate_when_visible', container ).avia_waypoints(); // 'bottom-in-view' 261 $( '.avia_animate_when_almost_visible', container ).avia_waypoints( { offset: '80%'} ); 262 263 // @since 5.0 - avoid conflict with already existing classes 264 $( '.av-animated-when-visible', container ).avia_waypoints(); 265 $( '.av-animated-when-almost-visible', container ).avia_waypoints( { offset: '80%'} ); 266 $( '.av-animated-when-visible-95', container ).avia_waypoints( { offset: '95%'} ); 267 268 // @since 5.3 - new offsets added to support filter 'avf_alb_element_animation' 269 // @since 5.3.1 - changed to dynamic % values und changed class because av-
269animated-when-visible-95 does not work with filter 270 var custom_animated = $( '*[class*="av-custom-animated-top-"]', container ); 271 272 custom_animated.each( function() 273 { 274 var element = $( this ), 275 classArray = element[ 0 ].className.split(/\s+/); 276 277 for( var i = 0; i < classArray.length; i++ ) 278 { 279 if( classArray[i].indexOf( 'av-custom-animated-top-' ) == 0 ) 280 { 281 var pct = parseInt( classArray[i].replace( 'av-custom-animated-top-', '' ) ); 282 283 if( ! isNaN( pct ) && pct < 100 ) 284 { 285 element.avia_waypoints( { offset: pct + '%'} ); 286 } 287 } 288 } 289 }); 290 291 var disable_mobile = $( 'body' ).hasClass( 'avia-mobile-no-animations' ); 292 293 if( container == 'body' && disable_mobile ) 294 { 295 container = '.avia_desktop body'; 296 } 297 298 $( '.av-animated-generic', container ).avia_waypoints( { offset: '95%'} ); 299 } 300 }; 301 302 303// ------------------------------------------------------------------------------------------- 304 305 306 307 // ------------------------------------------------------------------------------------------- 308 // Helper to allow fixed bgs on mobile 309 // ------------------------------------------------------------------------------------------- 310 $.fn.avia_mobile_fixed = function(options) 311 { 312 var isMobile = $.avia_utilities.isMobile; 313 314 if( ! isMobile ) 315 { 316 return; 317 } 318 319 return this.each( function() 320 { 321 var current = $(this).addClass('av-parallax-section'), 322 $background = current.attr('style'), 323 $attachment_class = current.data('section-bg-repeat'), 324 template = ""; 325 326 if($attachment_class == 'stretch' || $attachment_class == 'no-repeat' ) 327 { 328 $attachment_class = " avia-full-stretch"; 329 } 330 else 331 { 332 $attachment_class = ""; 333 } 334 335 template = "<div class='av-parallax " + $attachment_class + "' data-avia-parallax-ratio='0.0' style = '" + $background + "' ></div>"; 336 337 current.prepend(template); 338 current.attr('style',''); 339 }); 340 }; 341 342 343 344 // ------------------------------------------------------------------------------------------- 345 // shortcode javascript for delayed animation even when non connected elements are used 346 // ------------------------------------------------------------------------------------------- 347 $.fn.avia_sc_animation_delayed = function(options) 348 { 349 var global_timer = 0, 350 delay = options.delay || 50, 351 max_timer = 10, 352 new_max = setTimeout( function(){ max_timer = 20; }, 500); 353 354 return this.each(function() 355 { 356 var elements = $(this); 357 358 //trigger displaying of thumbnails 359 elements.on( 'avia_start_animation', function() 360 { 361 var element = $(this); 362 363 if( global_timer < max_timer ) 364 { 365 global_timer ++; 366 } 367 368 setTimeout( function() 369 { 370 element.addClass('avia_start_delayed_animation'); 371 if( global_timer > 0 ) 372 { 373 global_timer --; 374 } 375 376 }, ( global_timer * delay ) ); 377 378 }); 379 }); 380 }; 381 382 /*delayd animations when used within tab sections or similar elements. this way they get animated each new time a tab is shown*/ 383 $.fn.avia_delayed_animation_in_container = function( options ) 384 { 385 return this.each( function() 386 { 387 var elements = $(this); 388 389 elements.on( 'avia_start_animation_if_current_slide_is_active', function() 390 { 391 var current = $(this), 392 animate = current.find( '.avia_start_animation_when_active' ); 393 394 animate.addClass( 'avia_start_animation' ).trigger( 'avia_start_animation' ); 395 }); 396 397 elements.on( 'avia_remove_animation', function() 398 { 399 var current = $(this), 400 animate = current.find( '.avia_start_animation_when_active, .avia_start_animation' ); 401 402 animate.removeClass( 'avia_start_animation avia_start_delayed_animation' ); 403 }); 404 }); 405 }; 406 407 408 // ------------------------------------------------------------------------------------------- 409 // Section Height Helper 410 // ------------------------------------------------------------------------------------------- 411 $.fn.avia_browser_height = function() 412 { 413 if( ! this.length ) 414 { 415 return this; 416 } 417 418 // 5.6.3 modified to use vh and vw and support minimum container width - also improves animation when resize of window 419 420 var win = $(window), 421 html_el = $('html'), 422 headFirst = $( 'head' ).first(),
423 subtract = $('#wpadminbar, #header.av_header_top:not(.html_header_transparency #header), #main>.title_container'), 424 css_block = $("<style type='text/css' id='av-browser-height'></style>").appendTo( headFirst ), 425 sidebar_menu= $('.html_header_sidebar #top #header_main'), 426 full_slider = $('.html_header_sidebar .avia-fullscreen-slider.avia-builder-el-0.avia-builder-el-no-sibling').addClass('av-solo-full'), 427 pc_heights = [ 25, 50, 75 ], 428 calc_height = function() 429 { 430 let css = '', 431 wh100 = win.height(), 432 ww100 = win.width(), 433 wh100_mod = wh100, 434 whCover = (wh100 / 9) * 16, 435 wwCover = (ww100 / 16) * 9, 436 solo = 0; 437 438 if( sidebar_menu.length ) 439 { 440 solo = sidebar_menu.height(); 441 } 442 443 subtract.each( function() 444 { 445 wh100_mod -= this.offsetHeight - 1; 446 }); 447 448 let whCoverMod = ( wh100_mod / 9 ) * 16; 449 450 // since 5.6.3 added minimum height depending on browser width (we ignore this for slidehows to avoid breaking of layout) 451// let new_wh100 = height_opt == 'height' ? wh100 : ww100; 452// let unit = height_opt == 'height' ? 'vh' : 'vw'; 453 454 455 //fade in of section content with minimum height once the height has been calculated 456 css += ".avia-section.av-minimum-height .container{opacity: 1; }\n"; 457 458 //various section heights (100-25% as well as 100% - header/adminbar in case its the first builder element) 459// css += ".av-minimum-height-100:not(.av-slideshow-section) .container, .avia-fullscreen-slider .avia-slideshow, #top.avia-blank .av-minimum-height-100 .container, .av-cell-min-height-100 > .flex_cell{height:" + new_wh100 + "px;}\n"; 460 css += ".av-minimum-height-100:not(.av-slideshow-section) .container, .avia-fullscreen-slider .avia-slideshow, #top.avia-blank .av-minimum-height-100 .container, .av-cell-min-height-100 > .flex_cell{height: 100vh;}\n"; 461 css += ".av-minimum-height-100vw:not(.av-slideshow-section) .container, #top.avia-blank .av-minimum-height-100vw .container, .av-cell-min-height-100vw > .flex_cell{height: 100vw;}\n"; 462 463 css += ".av-minimum-height-100.av-slideshow-section .container { height:unset; }\n"; 464 css += ".av-minimum-height-100vw.av-slideshow-section .container { height:unset; }\n"; 465 466// css += ".av-minimum-height-100.av-slideshow-section {min-height:" + new_wh100 + "px;}\n"; 467 css += ".av-minimum-height-100.av-slideshow-section {min-height: 100vh;}\n"; 468 css += ".av-minimum-height-100vw.av-slideshow-section {min-height: 100vw;}\n"; 469 470 471 $.each( pc_heights, function( index, value ) 472 { 473// var wh = Math.round( new_wh100 * ( value / 100.0 ) ); 474// css += ".av-minimum-height-" + value + ":not(.av-slideshow-section) .container, .av-cell-min-height-" + value + " > .flex_cell {height:" + wh + "px;}\n"; 475// css += ".av-minimum-height-" + value + ".av-slideshow-section {min-height:" + wh + "px;}\n"; 476 477 css += ".av-minimum-height-" + value + ":not(.av-slideshow-section) .container, .av-cell-min-height-" + value + " > .flex_cell {height:" + value + "vh;}\n"; 478 css += ".av-minimum-height-" + value + ".av-slideshow-section {min-height:" + value + "vh;}\n"; 479 480 css += ".av-minimum-height-" + value + "vw:not(.av-slideshow-section) .container, .av-cell-min-height-" + value + "vw > .flex_cell {height:" + value + "vw;}\n"; 481 css += ".av-minimum-height-" + value + "vw.av-slideshow-section {min-height:" + value + "vw;}\n"; 482 }); 483 484 485 486 css += ".avia-builder-el-0.av-minimum-height-100:not(.av-slideshow-section) .container, .avia-builder-el-0.avia-fullscreen-slider .avia-slideshow, .avia-builder-el-0.av-cell-min-height-100 > .flex_cell{height:" + wh100_mod + "px;}\n"; 487 488 css += "#top .av-solo-full .avia-slideshow {min-height:" + solo + "px;}\n"; 489 490 //fullscreen video calculations 491 if( ww100 / wh100 < 16 / 9 ) 492 { 493 css += "#top .av-element-cover iframe, #top .av-element-cover embed, #top .av-element-cover object, #top .av-element-cover video{width:" + whCover + "px; left: -" + ( whCover - ww100 ) / 2 + "px;}\n"; 494 } 495 else 496 { 497 css += "#top .av-element-cover iframe, #top .av-element-cover embed, #top .av-element-cover object, #top .av-element-cover video{he
497ight:" + wwCover + "px; top: -"+( wwCover - wh100 ) / 2 + "px;}\n"; 498 } 499 500 if( ww100 / wh100_mod < 16 / 9 ) 501 { 502 css += "#top .avia-builder-el-0 .av-element-cover iframe, #top .avia-builder-el-0 .av-element-cover embed, #top .avia-builder-el-0 .av-element-cover object, #top .avia-builder-el-0 .av-element-cover video{width:" + whCoverMod + "px; left: -" + ( whCoverMod - ww100 ) / 2 + "px;}\n"; 503 } 504 else 505 { 506 css += "#top .avia-builder-el-0 .av-element-cover iframe, #top .avia-builder-el-0 .av-element-cover embed, #top .avia-builder-el-0 .av-element-cover object, #top .avia-builder-el-0 .av-element-cover video{height:" + wwCover + "px; top: -" + ( wwCover - wh100_mod ) / 2 + "px;}\n"; 507 } 508 509 //ie8 needs different insert method 510 try 511 { 512 css_block.text( css ); 513 } 514 catch(err) 515 { 516 css_block.remove(); 517 css_block = $( "<style type='text/css' id='av-browser-height'>" + css + "</style>" ).appendTo( headFirst ); 518 } 519 520 setTimeout(function() 521 { 522 win.trigger( 'av-height-change' ); /*broadcast the height change*/ 523 }, 100 ); 524 }; 525 526 this.each( function( index ) 527 { 528 let container = $( this ), 529 height = container.data( 'av_minimum_height_pc' ); 530 531 if( 'number' != typeof height ) 532 { 533 return this; 534 } 535 536 height = parseInt( height ); 537 538 if( ( -1 == $.inArray( height, pc_heights ) ) && ( height != 100 ) ) 539 { 540 pc_heights.push( height ); 541 } 542 543 return this; 544 }); 545 546 win.on( 'debouncedresize', calc_height ); 547 calc_height(); 548 }; 549 550 // ------------------------------------------------------------------------------------------- 551 // Layout container height helper 552 // ------------------------------------------------------------------------------------------- 553 $.fn.avia_container_height = function() 554 { 555 if( ! this.length ) 556 { 557 return this; 558 } 559 560 var win = $( window ), 561 calc_height = function() 562 { 563 var column = $( this ), 564 jsonHeight = column.data( 'av-column-min-height' ), 565 minHeight = parseInt( jsonHeight['column-min-pc'], 10 ), 566 container = null, 567 containerHeight = 0, 568 columMinHeight = 0; 569 570 if( isNaN( minHeight ) || minHeight == 0 ) 571 { 572 return; 573 } 574 575 // try to find a layout container, else take browser height 576 container = column.closest( '.avia-section' ); 577 if( ! container.length ) 578 { 579 container = column.closest( '.av-gridrow-cell' ); 580 } 581 if( ! container.length ) 582 { 583 // tab section and slideshow section 584 container = column.closest( '.av-layout-tab' ); 585 } 586 587 containerHeight = container.length ? container.outerHeight() : win.height(); 588 589 columMinHeight = containerHeight * ( minHeight / 100.0 ); 590 591 if( ! jsonHeight['column-equal-height'] ) 592 { 593 column.css( 'min-height', columMinHeight + 'px'); 594 column.css( 'height', 'auto'); 595 } 596 else 597 { 598 column.css( 'height', columMinHeight + 'px'); 599 } 600 601 setTimeout( function() 602 { 603 win.trigger( 'av-height-change' ); /*broadcast the height change*/ 604 }, 100 ); 605 }; 606 607 this.each( function( index ) 608 { 609 var column = $( this ), 610 jsonHeight = column.data( 'av-column-min-height' ); 611 612 if( 'object' != typeof jsonHeight ) 613 { 614 return this; 615 } 616 617 win.on( 'debouncedresize', calc_height.bind( column ) ); 618 calc_height.call( column ); 619 620 return this; 621 }); 622 623 }; 624 625 // ------------------------------------------------------------------------------------------- 626 // Video Section helper 627 // ------------------------------------------------------------------------------------------- 628 $.fn.avia_video_section = function() 629 { 630 if(!this.length) return; 631 632 var elements = this.length, content = "", 633 win = $(window), 634 headFirst = $( 'head' ).first(), 635 css_block = $("<style type='text/css' id='av-section-height'></style>").appendTo( headFirst ), 636 calc_height = function(section, counter) 637 { 638 if(counter === 0) { content = "";} 639 640 var css = "", 641 the_id = '#' +section.attr('id'), 642 wh100 = section.height(), 643 ww100 = section.width(), 644 aspect = section.data('sectionVideoRatio').split(':'), 645 video_w = aspect[0], 646 video_h = aspect[1], 647 whCover = (wh100 / video_h ) * video_w, 648 wwCover = (ww100 / video_w ) * video_h; 649 650 //fullscreen video calculations 651 if(ww100/wh100 < video_w/video_h) 652 {
653 css += "#top "+the_id+" .av-section-video-bg iframe, #top "+the_id+" .av-section-video-bg embed, #top "+the_id+" .av-section-video-bg object, #top "+the_id+" .av-section-video-bg video{width:"+whCover+"px; left: -"+(whCover - ww100)/2+"px;}\n"; 654 } 655 else 656 { 657 css += "#top "+the_id+" .av-section-video-bg iframe, #top "+the_id+" .av-section-video-bg embed, #top "+the_id+" .av-section-video-bg object, #top "+the_id+" .av-section-video-bg video{height:"+wwCover+"px; top: -"+(wwCover - wh100)/2+"px;}\n"; 658 } 659 660 content = content + css; 661 662 if(elements == counter + 1) 663 { 664 //ie8 needs different insert method 665 try{ 666 css_block.text(content); 667 } 668 catch(err){ 669 css_block.remove(); 670 css_block = $("<style type='text/css' id='av-section-height'>"+content+"</style>").appendTo( headFirst ); 671 } 672 } 673 }; 674 675 676 return this.each(function(i) 677 { 678 var self = $(this); 679 680 win.on( 'debouncedresize', function(){ calc_height(self, i); }); 681 calc_height(self, i); 682 }); 683 684 }; 685 686 687 /** 688 * Column or cell with a link 689 * 690 * @returns {jQuery} 691 */ 692 $.fn.avia_link_column = function() 693 { 694 return this.each( function() 695 { 696 $(this).on( 'click', function(e) 697 { 698 // if event is bubbled from an <a> link, do not activate link of column/cell 699 if( 'undefined' !== typeof e.target && 'undefined' !== typeof e.target.href ) 700 { 701 return; 702 } 703 704 var column = $(this), 705 url = column.data('link-column-url'), 706 target = column.data('link-column-target'), 707 link = window.location.hostname+window.location.pathname; 708 709 if( 'undefined' === typeof url || 'string' !== typeof url ) 710 { 711 return; 712 } 713 714 if( 'undefined' !== typeof target || '_blank' == target ) 715 { 716// in FF and other browsers this opens a new window and not only a new tab 717// window.open( url, '_blank', 'noopener noreferrer' ); 718 var a = document.createElement('a'); 719 a.href = url; 720 a.target = '_blank'; 721 a.rel = 'noopener noreferrer'; 722 a.click(); 723 return false; 724 } 725 else 726 { 727 // allow smoothscroll feature when on same page and hash exists - trigger only works for current page 728 if( column.hasClass('av-cell-link') || column.hasClass('av-column-link') ) 729 { 730 var reader = column.hasClass('av-cell-link') ? column.prev('a.av-screen-reader-only').first() : column.find('a.av-screen-reader-only').first(); 731 732 url = url.trim(); 733 if( ( 0 == url.indexOf("#") ) || ( ( url.indexOf( link ) >= 0 ) && ( url.indexOf("#") > 0 ) ) ) 734 { 735 reader.trigger('click'); 736 737 // fix a bug with tabsection not changeing tab 738 if( 'undefined' == typeof target || '_blank' != target ) 739 { 740 window.location.href = url; 741 } 742 743 return; 744 } 745 } 746 747 window.location.href = url; 748 } 749 750 e.preventDefault(); 751 return; 752 }); 753 }); 754 }; 755 756 757 // ------------------------------------------------------------------------------------------- 758 // HELPER FUNCTIONS 759 // ------------------------------------------------------------------------------------------- 760 761 762 //waipoint script when something comes into viewport 763 $.fn.avia_waypoints = function( options_passed ) 764 { 765 if( ! $('html').is('.avia_transform') ) 766 { 767 return; 768 } 769 770 var defaults = { 771 offset: 'bottom-in-view', 772 triggerOnce: true 773 }, 774 options = $.extend( {}, defaults, options_passed ), 775 isMobile = $.avia_utilities.isMobile; 776 777 return this.each( function() 778 { 779 var element = $(this), 780 force_animate = element.hasClass( 'animate-all-devices' ), 781 mobile_no_animations = $( 'body' ).hasClass( 'avia-mobile-no-animations' ); 782 783 setTimeout( function() 784 { 785 if( isMobile && mobile_no_animations && ! force_animate ) 786 { 787 element.addClass( 'avia_start_animation' ).trigger('avia_start_animation'); 788 } 789 else 790 { 791 element.waypoint( function( direction ) 792 { 793 var current = $(this.element), 794 parent = current.parents('.av-animation-delay-container').eq( 0 ); 795 796 if( parent.length ) 797 { 798 current.addClass( 'avia_start_animation_when_active' ).trigger( 'avia_start_animation_when_active' ); 799 } 800 801 if( ! parent.length || ( parent.length && parent.is( '.__av_init_open' ) ) || ( parent.length && parent.is( '.av-active-tab-content' ) ) ) 802 { 803 current.addClass( 'avia_start_animation' ).trigger( 'avia_start_animation' ); 804 } 805 }, options ); 806 } 807 }, 100 ); 808 809 }); 810 }; 811 812 813 // window resize script 814 var $event = $.event, $special, resizeTimeout; 815 816 $special = $event.special.debouncedresize = { 817 setup: function() { 818 $( this ).on( "resize", $special.handler ); 819 }, 820 teardown: function() { 821 $( this ).off( "resize", $special.handler ); 822 }, 823 handler: function( event, execAsap ) { 824 // Save the context 825 var context = this, 826 args = arguments, 827 dispatch = function() { 828 // set correct event type 829 event.type = "debouncedresize"; 830 $event.dispatch.apply( context, args ); 831 }; 832 833 if ( resizeTimeout ) { 834 clearTimeout( resizeTimeout ); 835 } 836 837 execAsap ? 838 dispatch() : 839 resizeTimeout = setTimeout( dispatch, $special.threshold ); 840 }, 841 threshold: 150 842 }; 843 844})( jQuery ); 845 846 847 848/*utility functions*/ 849 850 851(function($) 852{ 853 "use strict"; 854 855 $.avia_utilities = $.avia_utilities || {}; 856 857 /************************************************************************ 858 gloabl loading function 859 *************************************************************************/ 860 $.avia_utilities.loading = function(attach_to, delay){ 861 862 var loader = { 863 864 active: false, 865 866 show: function() 867 { 868 if(loader.active === false) 869 { 870 loader.active = true; 871 loader.loading_item.css({display:'block', opacity:0}
871); 872 } 873 874 loader.loading_item.stop().animate({opacity:1}); 875 }, 876 877 hide: function() 878 { 879 if(typeof delay === 'undefined'){ delay = 600; } 880 881 loader.loading_item.stop().delay( delay ).animate({opacity:0}, function() 882 { 883 loader.loading_item.css({display:'none'}); 884 loader.active = false; 885 }); 886 }, 887 888 attach: function() 889 { 890 if(typeof attach_to === 'undefined'){ attach_to = 'body';} 891 892 loader.loading_item = $('<div class="avia_loading_icon"><div class="av-siteloader"></div></div>').css({display:"none"}).appendTo(attach_to); 893 } 894 }; 895 896 loader.attach(); 897 return loader; 898 }; 899 900 /************************************************************************ 901 gloabl play/pause visualizer function 902 *************************************************************************/ 903 $.avia_utilities.playpause = function(attach_to, delay){ 904 905 var pp = { 906 907 active: false, 908 to1: "", 909 to2: "", 910 set: function(status) 911 { 912 pp.loading_item.removeClass('av-play av-pause'); 913 pp.to1 = setTimeout(function(){ pp.loading_item.addClass('av-' + status); },10); 914 pp.to2 = setTimeout(function(){ pp.loading_item.removeClass('av-' + status); },1500); 915 }, 916 917 attach: function() 918 { 919 if(typeof attach_to === 'undefined'){ attach_to = 'body';} 920 921 pp.loading_item = $('<div class="avia_playpause_icon"></div>').css({display:"none"}).appendTo(attach_to); 922 } 923 }; 924 925 pp.attach(); 926 return pp; 927 }; 928 929 930 931 /************************************************************************ 932 preload images, as soon as all are loaded trigger a special load ready event 933 *************************************************************************/ 934 $.avia_utilities.preload = function(options_passed) 935 { 936 new $.AviaPreloader(options_passed); 937 }; 938 939 $.AviaPreloader = function(options) 940 { 941 this.win = $(window); 942 this.defaults = 943 { 944 container: 'body', 945 maxLoops: 10, 946 trigger_single: true, 947 single_callback: function(){}, 948 global_callback: function(){} 949 950 }; 951 this.options = $.extend({}, this.defaults, options); 952 this.preload_images = 0; 953 954 this.load_images(); 955 }; 956 957 $.AviaPreloader.prototype = 958 { 959 load_images: function() 960 { 961 var _self = this; 962 963 if(typeof _self.options.container === 'string'){ _self.options.container = $(_self.options.container); } 964 965 _self.options.container.each(function() 966 { 967 var container = $(this); 968 969 container.images = container.find('img'); 970 container.allImages = container.images; 971 972 _self.preload_images += container.images.length; 973 setTimeout(function(){ _self.checkImage(container); }, 10); 974 }); 975 }, 976 977 checkImage: function(container) 978 { 979 var _self = this; 980 981 container.images.each(function() 982 { 983 if(this.complete === true) 984 { 985 container.images = container.images.not(this); 986 _self.preload_images -= 1; 987 } 988 }); 989 990 if(container.images.length && _self.options.maxLoops >= 0) 991 { 992 _self.options.maxLoops-=1; 993 setTimeout( function(){ _self.checkImage( container ); }, 500 ); 994 } 995 else 996 { 997 _self.preload_images = _self.preload_images - container.images.length; 998 _self.trigger_loaded(container); 999 } 1000 }, 1001 1002 trigger_loaded: function(container) 1003 { 1004 var _self = this; 1005 1006 if(_self.options.trigger_single !== false) 1007 { 1008 _self.win.trigger('avia_images_loaded_single', [container]); 1009 _self.options.single_callback.call(container); 1010 } 1011 1012 if(_self.preload_images === 0) 1013 { 1014 _self.win.trigger('avia_images_loaded'); 1015 _self.options.global_callback.call(); 1016 } 1017 1018 } 1019 }; 1020 1021 /************************************************************************ 1022 CSS Easing transformation table 1023 *************************************************************************/ 1024 /* 1025 Easing transform table from jquery.animate-enhanced plugin 1026 http://github.com/benbarnett/jQuery-Animate-Enhanced 1027 */ 1028 $.avia_utilities.css_easings = { 1029 linear: 'linear', 1030 swing: 'ease-in-out', 1031 bounce: 'cubic-bezier(0.0, 0.35, .5, 1.3)', 1032 easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)' , 1033 easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)' , 1034 easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)' , 1035 easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)' , 1036 easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)' , 1037 easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)' , 1038 easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)' , 1039 easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.04)' , 1040 easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)' , 1041 easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)' , 1042 easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)' , 1043 easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)' , 1044 easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)' , 1045 easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)' , 1046 easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)' , 1047 easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)' , 1048 easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)' , 1049 easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)' , 1050 easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)' , 1051 easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)' , 1052 easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)' , 1053 easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)' , 1054 easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)' , 1055 easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.55)' , 1056 easeInOutBounce:'cubic-bezier(0.580, -0.365, 0.490, 1.365)', 1057 easeOutBounce: 'cubic-bezier(0.760, 0.085, 0.490, 1.365)' 1058 }; 1059 1060 /************************************************************************ 1061 check if a css feature is supported and save it to the supported array 1062 *************************************************************************/ 1063 $.avia_utilities.supported = {}; 1064 $.avia_utilities.supports = (function() 1065 { 1066 var div = document.createElement('div'), 1067 vendors = ['Khtml', 'Ms','Moz','Webkit']; // vendors = ['Khtml', 'Ms','Moz','Webkit','O']; 1068 1069 return function(prop, vendor_overwrite) 1070 { 1071 if ( div.style[prop] !== undefined ) { return ""; }
1072 if (vendor_overwrite !== undefined) { vendors = vendor_overwrite; } 1073 1074 prop = prop.replace(/^[a-z]/, function(val) 1075 { 1076 return val.toUpperCase(); 1077 }); 1078 1079 var len = vendors.length; 1080 while(len--) 1081 { 1082 if ( div.style[vendors[len] + prop] !== undefined ) 1083 { 1084 return "-" + vendors[len].toLowerCase() + "-"; 1085 } 1086 } 1087 1088 return false; 1089 }; 1090 1091 }()); 1092 1093 /************************************************************************ 1094 animation function 1095 *************************************************************************/ 1096 $.fn.avia_animate = function(prop, speed, easing, callback) 1097 { 1098 if(typeof speed === 'function') {callback = speed; speed = false; } 1099 if(typeof easing === 'function'){callback = easing; easing = false;} 1100 if(typeof speed === 'string'){easing = speed; speed = false;} 1101 1102 if(callback === undefined || callback === false){ callback = function(){}; } 1103 if(easing === undefined || easing === false) { easing = 'easeInQuad'; } 1104 if(speed === undefined || speed === false) { speed = 400; } 1105 1106 if($.avia_utilities.supported.transition === undefined) 1107 { 1108 $.avia_utilities.supported.transition = $.avia_utilities.supports('transition'); 1109 } 1110 1111 1112 1113 if($.avia_utilities.supported.transition !== false ) 1114 { 1115 var prefix = $.avia_utilities.supported.transition + 'transition', 1116 cssRule = {}, 1117 cssProp = {}, 1118 thisStyle = document.body.style, 1119 end = (thisStyle.WebkitTransition !== undefined) ? 'webkitTransitionEnd' : (thisStyle.OTransition !== undefined) ? 'oTransitionEnd' : 'transitionend'; 1120 1121 //translate easing into css easing 1122 easing = $.avia_utilities.css_easings[easing]; 1123 1124 //create css transformation rule 1125 cssRule[prefix] = 'all '+(speed/1000)+'s '+easing; 1126 //add namespace to the transition end trigger 1127 end = end + ".avia_animate"; 1128 1129 //since jquery 1.10 the items passed need to be {} and not [] so make sure they are converted properly 1130 for (var rule in prop) 1131 { 1132 if (prop.hasOwnProperty(rule)) { cssProp[rule] = prop[rule]; } 1133 } 1134 prop = cssProp; 1135 1136 1137 1138 this.each(function() 1139 { 1140 var element = $(this), css_difference = false, rule, current_css; 1141 1142 for (rule in prop) 1143 { 1144 if (prop.hasOwnProperty(rule)) 1145 { 1146 current_css = element.css(rule); 1147 1148 if(prop[rule] != current_css && prop[rule] != current_css.replace(/px|%/g,"")) 1149 { 1150 css_difference = true; 1151 break; 1152 } 1153 } 1154 } 1155 1156 if(css_difference) 1157 { 1158 //if no transform property is set set a 3d translate to enable hardware acceleration 1159 if(!($.avia_utilities.supported.transition+"transform" in prop)) 1160 { 1161 prop[$.avia_utilities.supported.transition+"transform"] = "translateZ(0)"; 1162 } 1163 1164 var endTriggered = false; 1165 1166 element.on(end, function(event) 1167 { 1168 if(event.target != event.currentTarget) return false; 1169 1170 if(endTriggered == true) return false; 1171 endTriggered = true; 1172 1173 cssRule[prefix] = "none"; 1174 1175 element.off(end); 1176 element.css(cssRule); 1177 setTimeout(function(){ callback.call(element); }); 1178 }); 1179 1180 1181 //desktop safari fallback if we are in another tab to trigger the end event 1182 setTimeout(function(){ 1183 if(!endTriggered && !avia_is_mobile && $('html').is('.avia-safari') ) { 1184 element.trigger(end); 1185 $.avia_utilities.log('Safari Fallback '+end+' trigger'); 1186 } 1187 }, speed + 100); 1188 1189 setTimeout(function(){ element.css(cssRule);},10); 1190 setTimeout(function(){ element.css(prop); },20); 1191 } 1192 else 1193 { 1194 setTimeout(function(){ callback.call(element); }); 1195 } 1196 1197 }); 1198 } 1199 else // if css animation is not available use default JS animation 1200 { 1201 this.animate(prop, speed, easing, callback); 1202 } 1203 1204 return this; 1205 }; 1206 1207})( jQuery ); 1208 1209 1210 1211// ------------------------------------------------------------------------------------------- 1212// keyboard controls 1213// ------------------------------------------------------------------------------------------- 1214 1215(function($) 1216{ 1217 "use strict"; 1218 1219 /************************************************************************ 1220 keyboard arrow nav 1221 *************************************************************************/ 1222 $.fn.avia_keyboard_controls = function(options_passed) 1223 { 1224 var defaults = 1225 { 1226 37: '.prev-slide', // prev 1227 39: '.next-slide' // next 1228 }, 1229 1230 methods = { 1231 1232 mousebind: function(slider) 1233 { 1234 slider.on('mouseenter', function(){ 1235 slider.mouseover = true; }) 1236 .on('mouseleave', function(){ 1237 slider.mouseover = false; } 1238 ); 1239 }, 1240 1241 keybind: function(slider) 1242 { 1243 $(document).on('keydown', function(e) 1244 { 1245 if(slider.mouseover && typeof slider.options[e.keyCode] !== 'undefined') 1246 { 1247 var item; 1248 1249 if(typeof slider.options[e.keyCode] === 'string') 1250 { 1251 item = slider.find(slider.options[e.keyCode]); 1252 } 1253 else 1254 { 1255 item = slider.options[e.keyCode]; 1256 } 1257 1258 if(item.length) 1259 { 1260 item.trigger('click', ['keypress']); 1261 return false;
1262 } 1263 } 1264 }); 1265 } 1266 }; 1267 1268 1269 return this.each(function() 1270 { 1271 var slider = $(this); 1272 slider.options = $.extend({}, defaults, options_passed); 1273 slider.mouseover = false; 1274 1275 methods.mousebind(slider); 1276 methods.keybind(slider); 1277 1278 }); 1279 }; 1280 1281 1282 /************************************************************************ 1283 swipe nav 1284 *************************************************************************/ 1285 $.fn.avia_swipe_trigger = function( passed_options ) 1286 { 1287 var win = $(window), 1288 isMobile = $.avia_utilities.isMobile, 1289 isTouchDevice = $.avia_utilities.isTouchDevice, 1290 body = $( 'body' ), 1291 defaults = 1292 { 1293 prev: '.prev-slide', // selector | jQuery object | DOM element 1294 next: '.next-slide', 1295 delay_trigger: false, // currently only implemented for native function call 1296 event: { 1297 prev: 'click', // use e.g. native_click to use native function call element.click() 1298 next: 'click' 1299 }, 1300 beforeTrigger: null, 1301 afterTrigger: null, // callback when swipe trigger done (when delayed only timeout started) 1302 afterDelayedTrigger: null 1303 }, 1304 1305 methods = 1306 { 1307 activate_touch_control: function(slider) 1308 { 1309 var i, 1310 differenceX, 1311 differenceY; 1312 1313 slider.touchPos = {}; 1314 slider.hasMoved = false; 1315 1316 slider.on( 'touchstart', function(event) 1317 { 1318 slider.touchPos.X = event.originalEvent.touches[0].clientX; 1319 slider.touchPos.Y = event.originalEvent.touches[0].clientY; 1320 }); 1321 1322 slider.on( 'touchend', function(event) 1323 { 1324 slider.touchPos = {}; 1325 1326 if( slider.hasMoved ) 1327 { 1328 event.preventDefault(); 1329 } 1330 1331 slider.hasMoved = false; 1332 }); 1333 1334 slider.on( 'touchmove', function(event) 1335 { 1336 // skip if a slider has been moved 1337 if( body.hasClass( 'avia-swipe-executed' ) ) 1338 { 1339 return; 1340 } 1341 1342 if( ! slider.touchPos.X ) 1343 { 1344 slider.touchPos.X = event.originalEvent.touches[0].clientX; 1345 slider.touchPos.Y = event.originalEvent.touches[0].clientY; 1346 } 1347 else 1348 { 1349 differenceX = event.originalEvent.touches[0].clientX - slider.touchPos.X; 1350 differenceY = event.originalEvent.touches[0].clientY - slider.touchPos.Y; 1351 1352 //check if user is scrolling the window or moving the slider 1353 if( Math.abs( differenceX ) > Math.abs( differenceY ) ) 1354 { 1355 if( slider.touchPos !== event.originalEvent.touches[0].clientX ) 1356 { 1357 if( Math.abs(differenceX) > 50 ) 1358 { 1359 i = differenceX > 0 ? 'prev' : 'next'; 1360 1361 let element = slider.options[i]; 1362 if( element == null ) 1363 { 1364 return; 1365 } 1366 1367 if( typeof slider.options.beforeTrigger == 'function' ) 1368 { 1369 slider.options.beforeTrigger( slider, i ); 1370 } 1371 1372 if( typeof slider.options[i] === 'string' ) 1373 { 1374 slider.find( slider.options[i] ).trigger( slider.options.event[i], ['swipe'] ); 1375 } 1376 else 1377 { 1378 if( typeof element.jquery == 'string' ) 1379 { 1380 element.trigger( slider.options.event[i], ['swipe'] ); 1381 } 1382 else 1383 { 1384 let action = slider.options.event[i]; 1385 1386 if( action.indexOf( 'native_' ) < 0 ) 1387 { 1388 element.dispatchEvent( new Event( action ) ); 1389 } 1390 else 1391 { 1392 let func_action = action.replace( 'native_', '' ); 1393 1394 if( typeof element[ func_action ] == 'function' ) 1395 { 1396 if( slider.options.delay_trigger ) 1397 { 1398 setTimeout( function() 1399 { 1400 element[ func_action ](); 1401 1402 if( typeof slider.options.afterDelayedTrigger == 'function' ) 1403 { 1404 slider.options.afterDelayedTrigger( slider, i ); 1405 } 1406 }, 50 ); 1407 } 1408 else 1409 { 1410 element[ func_action ](); 1411 } 1412 } 1413 else 1414 { 1415 element.dispatchEvent( new Event( action ) ); 1416 } 1417 } 1418 } 1419 } 1420 1421 if( typeof slider.options.afterTrigger == 'function' ) 1422 { 1423 slider.options.afterTrigger( slider, i ); 1424 } 1425 1426 event.preventDefault(); 1427 event.stopImmediatePropagation(); 1428 1429 // set a class to block swipe when a slider has been moved (avoid post nav slides) 1430 body.addClass( 'avia-swipe-executed' ); 1431 setTimeout( function() 1432 { 1433 body.removeClass( 'avia-swipe-executed' ); 1434 }, 300 ); 1435 1436 slider.hasMoved = true; 1437 slider.touchPos = {}; 1438 return false;
vendor: 4,359 bytes, lines 1439-1620
1439 } 1440 } 1441 } 1442 } 1443 }); 1444 1445 } 1446 }; 1447 1448 return this.each( function() 1449 { 1450 if( isMobile || isTouchDevice ) 1451 { 1452 var slider = $(this); 1453 slider.options = $.extend( {}, defaults, passed_options ); 1454 methods.activate_touch_control( slider ); 1455 } 1456 }); 1457 }; 1458 1459}(jQuery)); 1460 1461/** 1462 * jQuery 3.x: JQMIGRATE: easing function âjQuery.easing.swingâ should use only first argument 1463 * https://stackoverflow.com/questions/39355019/jqmigrate-easing-function-jquery-easing-swing-should-use-only-first-argument 1464 * https://github.com/gdsmith/jquery.easing/blob/master/jquery.easing.js 1465 * 1466 * @since 4.8.4 1467 * @param {jQuery} $ 1468 */ 1469(function($) 1470{ 1471 // Preserve the original jQuery "swing" easing as "jswing" 1472 if( typeof $.easing !== 'undefined' ) 1473 { 1474 $.easing['jswing'] = $.easing['swing']; 1475 } 1476 1477 var pow = Math.pow, 1478 sqrt = Math.sqrt, 1479 sin = Math.sin, 1480 cos = Math.cos, 1481 PI = Math.PI, 1482 c1 = 1.70158, 1483 c2 = c1 * 1.525, 1484 c3 = c1 + 1, 1485 c4 = ( 2 * PI ) / 3, 1486 c5 = ( 2 * PI ) / 4.5; 1487 1488 // x is the fraction of animation progress, in the range 0..1 1489 function bounceOut(x) 1490 { 1491 var n1 = 7.5625, 1492 d1 = 2.75; 1493 if ( x < 1/d1 ) { 1494 return n1*x*x; 1495 } else if ( x < 2/d1 ) { 1496 return n1*(x-=(1.5/d1))*x + .75; 1497 } else if ( x < 2.5/d1 ) { 1498 return n1*(x-=(2.25/d1))*x + .9375; 1499 } else { 1500 return n1*(x-=(2.625/d1))*x + .984375; 1501 } 1502 } 1503 1504 $.extend( $.easing, 1505 { 1506 def: 'easeOutQuad', 1507 swing: function (x) { 1508 return $.easing[$.easing.def](x); 1509 }, 1510 easeInQuad: function (x) { 1511 return x * x; 1512 }, 1513 easeOutQuad: function (x) { 1514 return 1 - ( 1 - x ) * ( 1 - x ); 1515 }, 1516 easeInOutQuad: function (x) { 1517 return x < 0.5 ? 1518 2 * x * x : 1519 1 - pow( -2 * x + 2, 2 ) / 2; 1520 }, 1521 easeInCubic: function (x) { 1522 return x * x * x; 1523 }, 1524 easeOutCubic: function (x) { 1525 return 1 - pow( 1 - x, 3 ); 1526 }, 1527 easeInOutCubic: function (x) { 1528 return x < 0.5 ? 1529 4 * x * x * x : 1530 1 - pow( -2 * x + 2, 3 ) / 2; 1531 }, 1532 easeInQuart: function (x) { 1533 return x * x * x * x; 1534 }, 1535 easeOutQuart: function (x) { 1536 return 1 - pow( 1 - x, 4 ); 1537 }, 1538 easeInOutQuart: function (x) { 1539 return x < 0.5 ? 1540 8 * x * x * x * x : 1541 1 - pow( -2 * x + 2, 4 ) / 2; 1542 }, 1543 easeInQuint: function (x) { 1544 return x * x * x * x * x; 1545 }, 1546 easeOutQuint: function (x) { 1547 return 1 - pow( 1 - x, 5 ); 1548 }, 1549 easeInOutQuint: function (x) { 1550 return x < 0.5 ? 1551 16 * x * x * x * x * x : 1552 1 - pow( -2 * x + 2, 5 ) / 2; 1553 }, 1554 easeInSine: function (x) { 1555 return 1 - cos( x * PI/2 ); 1556 }, 1557 easeOutSine: function (x) { 1558 return sin( x * PI/2 ); 1559 }, 1560 easeInOutSine: function (x) { 1561 return -( cos( PI * x ) - 1 ) / 2; 1562 }, 1563 easeInExpo: function (x) { 1564 return x === 0 ? 0 : pow( 2, 10 * x - 10 ); 1565 }, 1566 easeOutExpo: function (x) { 1567 return x === 1 ? 1 : 1 - pow( 2, -10 * x ); 1568 }, 1569 easeInOutExpo: function (x) { 1570 return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? 1571 pow( 2, 20 * x - 10 ) / 2 : 1572 ( 2 - pow( 2, -20 * x + 10 ) ) / 2; 1573 }, 1574 easeInCirc: function (x) { 1575 return 1 - sqrt( 1 - pow( x, 2 ) ); 1576 }, 1577 easeOutCirc: function (x) { 1578 return sqrt( 1 - pow( x - 1, 2 ) ); 1579 }, 1580 easeInOutCirc: function (x) { 1581 return x < 0.5 ? 1582 ( 1 - sqrt( 1 - pow( 2 * x, 2 ) ) ) / 2 : 1583 ( sqrt( 1 - pow( -2 * x + 2, 2 ) ) + 1 ) / 2; 1584 }, 1585 easeInElastic: function (x) { 1586 return x === 0 ? 0 : x === 1 ? 1 : 1587 -pow( 2, 10 * x - 10 ) * sin( ( x * 10 - 10.75 ) * c4 ); 1588 }, 1589 easeOutElastic: function (x) { 1590 return x === 0 ? 0 : x === 1 ? 1 : 1591 pow( 2, -10 * x ) * sin( ( x * 10 - 0.75 ) * c4 ) + 1; 1592 }, 1593 easeInOutElastic: function (x) { 1594 return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? 1595 -( pow( 2, 20 * x - 10 ) * sin( ( 20 * x - 11.125 ) * c5 )) / 2 : 1596 pow( 2, -20 * x + 10 ) * sin( ( 20 * x - 11.125 ) * c5 ) / 2 + 1; 1597 }, 1598 easeInBack: function (x) { 1599 return c3 * x * x * x - c1 * x * x; 1600 }, 1601 easeOutBack: function (x) { 1602 return 1 + c3 * pow( x - 1, 3 ) + c1 * pow( x - 1, 2 ); 1603 }, 1604 easeInOutBack: function (x) { 1605 return x < 0.5 ? 1606 ( pow( 2 * x, 2 ) * ( ( c2 + 1 ) * 2 * x - c2 ) ) / 2 : 1607 ( pow( 2 * x - 2, 2 ) *( ( c2 + 1 ) * ( x * 2 - 2 ) + c2 ) + 2 ) / 2; 1608 }, 1609 easeInBounce: function (x) { 1610 return 1 - bounceOut( 1 - x ); 1611 }, 1612 easeOutBounce: bounceOut, 1613 easeInOutBounce: function (x) { 1614 return x < 0.5 ? 1615 ( 1 - bounceOut( 1 - 2 * x ) ) / 2 : 1616 ( 1 + bounceOut( 2 * x - 1 ) ) / 2; 1617 } 1618 }); 1619 1620}(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.