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