1//# ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // 2//# MAIN FUNCTIONS 3(function($) { 4 5 //# 6 preparePlyr = function() { 7 var $body = $('body'); 8 var plyrElements = 'audio, video, ins[data-type][data-video-id]'; 9 var events = { 10 click : 'click.initEvent' 11 }; 12 13 if ( $(plyrElements).length > 0 ) { 14 var $btnPlay = $('button[data-plyr="play"], div.plyr__video-wrapper'); 15 var $players = plyr.setup(plyrElements); 16 17 $body 18 .on(events.click, $btnPlay.selector, function(e) { 19 stopEvent(e); 20 pausePlayingPlayers(this); 21 }); 22 23 function pausePlayingPlayers(_this) { 24 $this = $(_this); 25 26 for ( var i=0; i<$players.length; i++ ) { 27 var isPlaying = ( !$players[i].isPaused() ); 28 var notCurrent = ( $($players[i].getContainer()).find($this).length == 0 ); 29 30 if ( notCurrent && isPlaying ) { 31 $players[i].pause(); 32 } 33 } 34 } 35 } 36 } 37 38 //# 39 prepereTopMenu = function() { 40 var $html = $('html'); 41 var $body = $('body'); 42 var $wrapheader = $('.wrapHeader'); 43 var classname = { 44 opened : 'Opened', 45 active : 'Active', 46 disablescroll : 'disableScroll' 47 }; 48 var events = { 49 click : 'click.initEvent' 50 }; 51 52 if ( $wrapheader.length > 0 ) { 53 var $hamburger = $wrapheader.find('.Hamburger'); 54 var $menu = { 55 wrapper : $wrapheader.find('.Col:eq(1)'), 56 list : $wrapheader.find('ul.Menu'), 57 item : $wrapheader.find('ul.Menu li a[data-action="click"]'), 58 active : $wrapheader.find('ul.Menu li.' + classname.active) 59 }; 60 61 $body 62 .on(events.click, $menu.item.selector, function(e) { 63 stopEvent(e); 64 visibilityMenuItem(this); 65 }) 66 .on(events.click, $hamburger.selector, function(e) { 67 stopEvent(e); 68 visibilityMenuWrapper(this); 69 }); 70 71 function visibilityMenuItem(_this) { 72 var $trigger = $(_this); 73 var $total = $menu.list.find('li'); 74 var $liitem = $trigger.parent('li'); 75 var $active = $liitem.parent('ul').find('> li.' + classname.active); 76 var $opened = $liitem.parent('ul').find('> li.' + classname.opened); 77 var $temporary = $(); 78 var isopen = $liitem.hasClass(classname.opened); 79 var isprime = $liitem.parent('ul').hasClass('Menu'); 80 81 if ( isopen ) { 82 $temporary = ( isprime ) ? $total : $liitem; 83 84 $temporary.removeClass(classname.opened).removeClass(classname.active); 85 86 $menu.active.map(function(index, el) { 87 var $el = $(el); 88 89 $el.addClass(classname.active); 90 }); 91 } 92 else { 93 $active.removeClass(classname.active); 94 $opened.removeClass(classname.opened).removeClass(classname.active); 95 $liitem.addClass(classname.opened).addClass(classname.active); 96 } 97 } 98 99 function visibilityMenuWrapper(_this) { 100 var $trigger = $(_this); 101 var $hidden = $menu.wrapper; 102 var isopen = $hidden.hasClass(classname.opened); 103 104 if ( isopen ) { 105 $html.removeClass(classname.disablescroll); 106 $trigger.removeClass(classname.active); 107 $hidden.removeClass(classname.opened); 108 } 109 else { 110 $html.addClass(classname.disablescroll); 111 $trigger.addClass(classname.active); 112 $hidden.addClass(classname.opened); 113 } 114 } 115 } 116 } 117 118 //# 119 prepareFilters = function() { 120 var $body = $('body'); 121 var $filters = $('.Filters'); 122 var classname = { 123 opened : 'Opened', 124 active : 'Active' 125 }; 126 var events = { 127 click : 'click.initEvent' 128 }; 129 130 if ( $filters.length > 0 ) { 131 var $trigger = $filters.find('p'); 132 var $hamburger = $('.wrapHeader .Hamburger'); 133 var triggertext = $trigger.text(); 134 var replatetext = triggertext.replace(':', '<s>:</s>'); 135 136 $trigger.html( replatetext ); 137 138 $body 139 .on(events.click, $trigger.selector, function(e) { 140 stopEvent(e); 141 manageVisibility(e, this); 142 }); 143 144 function manageVisibility(_e, _this) { 145 var $this = $(_this); 146 var $hidden = $this.parent().find('div'); 147 var ismobile = $hamburger.is(':visible'); 148 var isactive = $this.hasClass(classname.active); 149 150 if ( ismobile ) { 151 if ( isactive ) { 152 $this.removeAttr('class'); 153 $hidden.removeAttr('class'); 154 } 155 else { 156 $this.addClass(classname.active); 157 $hidden.addClass(classname.opened); 158 } 159 } 160 } 161 } 162 } 163 164 //# 165 prepareNews = function() { 166 var $news = $('.News'); 167 168 if ( $news.length > 0 ) { 169 $news 170 .map(function(index, el) { 171 var $el = $(el); 172 var $beam = $el.find('.Beam'); 173 var $list = $el.find('.List'); 174 var $item = $list.find('.Item'); 175 176 if ( $beam.length > 0 && $item.length > 0 ) { 177 $list.attr('data-items', $item.length); 178 } 179 }); 180 } 181 } 182 183 //# 184 prepareTeaser = function() { 185 var $window = $(window); 186 var $teaser = $('.Teaser'); 187 var $carousel = $teaser.find('.Carousel'); 188 var $hamburger = $('.wrapHeader .Hamburger'); 189 var classname = { 190 fakebg : 'fakeBg', 191 section : 'Section' 192 }; 193 var events = { 194 init : 'init.initEvent', 195 load : 'load.initEvent', 196 resizeend : 'resizeend.initEvent', 197 beforechange : 'beforeChange.initEvent', 198 afterchange : 'afterChange.initEvent' 199 }; 200 201 if ( $carousel.length > 0 ) { 202 $window 203 .on(events.load, function(e) { 204 manageSectionBg(e, this); 205 }) 206 .on(events.resizeend, function(e) { 207 manageSectionBg(e, this); 208 }); 209 210 $carousel
211 .on(events.init, function(e, slick) { 212 //: Empty 213 }) 214 .on(events.beforechange, function(e, slick, currentSlide, nextSlide) { 215 //: Empty 216 }) 217 .on(events.afterchange, function(e, slick, currentSlide) { 218 //: Empty 219 }) 220 .slick({ 221 autoplay : true, 222 infinite : true, 223 draggable : false, 224 adaptiveHeight : false, 225 slidesToShow : 1, 226 slidesToScroll : 1, 227 speed : 750, 228 autoplaySpeed : 5000, 229 prevArrow : '', 230 responsive : null 231 }); 232 233 function manageSectionBg(_e, _this) { 234 var $section = $teaser.parents('.' + classname.section); 235 var ismobile = $hamburger.is(':visible'); 236 237 if ( ismobile ) { 238 $section.addClass(classname.fakebg); 239 } 240 else { 241 $section.removeClass(classname.fakebg) 242 } 243 } 244 } 245 } 246 247 //# 248 prepareNextMatch = function() { 249 var $nextmatch = $('.nextMatch'); 250 var $beam = $nextmatch.find('.Beam'); 251 var $carousel = $nextmatch.find('.Carousel'); 252 var events = { 253 init : 'init.initEvent', 254 beforechange : 'beforeChange.initEvent', 255 afterchange : 'afterChange.initEvent', 256 }; 257 258 if ( $carousel.length > 0 ) { 259 $carousel 260 .on(events.init, function(e, slick) { 261 manageAutoplay(e, slick) 262 manageBeamText(e, slick, slick.currentSlide); 263 }) 264 .on(events.beforechange, function(e, slick, currentSlide, nextSlide) { 265 //: Empty 266 }) 267 .on(events.afterchange, function(e, slick, currentSlide) { 268 manageBeamText(e, slick, currentSlide); 269 }) 270 .slick({ 271 autoplay : false, 272 infinite : false, 273 draggable : false, 274 adaptiveHeight : true, 275 slidesToShow : 1, 276 slidesToScroll : 1, 277 speed : 750, 278 autoplaySpeed : 5000, 279 responsive : null 280 }); 281 282 function manageAutoplay(_e, _slick) { 283 var ap = _slick.options.autoplay; 284 var ah = _slick.options.adaptiveHeight; 285 286 if ( ap && ah ) { 287 _slick.options.adaptiveHeight = false; 288 } 289 } 290 291 function manageBeamText(_e, _slick, _currentslide) { 292 var $currslide = $(_slick.$slides[_currentslide]); 293 var currtext = $currslide.attr('data-text') || '---'; 294 295 $beam.find('s').text(currtext); 296 } 297 } 298 } 299 300 //# 301 preparePartners = function() { 302 var $window = $(window); 303 var $partners = $('.Partners'); 304 var $carousel = $partners.find('.Carousel'); 305 var events = { 306 load : 'load.initEvent', 307 init : 'init.initEvent', 308 beforechange : 'beforeChange.initEvent', 309 afterchange : 'afterChange.initEvent', 310 }; 311 312 if ( $carousel.length > 0 ) { 313 $carousel 314 .map(function(index, el) { 315 var $el = $(el); 316 var tmp = { 317 slidestoshow : $el.data('to-show') || 1, 318 speed : 650, 319 autoplayspeed : 2000 320 }; 321 322 $el 323 .on(events.init, function(e, slick) { 324 //: Empty 325 }) 326 .on(events.beforechange, function(e, slick, currentSlide, nextSlide) { 327 //: Empty 328 }) 329 .on(events.afterchange, function(e, slick, currentSlide) { 330 //: Empty 331 }) 332 .slick({ 333 autoplay : false, 334 infinite : true, 335 draggable : false, 336 adaptiveHeight : false, 337 arrows : false, 338 slidesToShow : tmp.slidestoshow, 339 slidesToScroll : 1, 340 speed : tmp.speed, 341 autoplaySpeed : tmp.autoplayspeed, 342 responsive : [ 343 { 344 breakpoint: 960, 345 settings: { 346 slidesToShow : ( tmp.slidestoshow > 1 ) ? 3 : 1 347 } 348 }, 349 { 350 breakpoint: 590, 351 settings: { 352 slidesToShow : ( tmp.slidestoshow > 1 ) ? 3 : 1 353 } 354 } 355 ] 356 }); 357 }); 358 359 $window 360 .on(events.load, function(e) { 361 playCarousels(e); 362 }); 363 364 function playCarousels(_e) { 365 $carousel 366 .map(function(index, el) { 367 var $el = $(el); 368 var se = $el.hasClass('slick-enabled'); 369 var ap = $el.slick('slickGetOption', 'autoplay'); 370 var aps = $el.slick('slickGetOption', 'autoplaySpeed'); 371 var int = ( aps / 10 ) * index; 372 373 if ( se && !ap ) { 374 setTimeout(function() { 375 $el.slick('play'); 376 }, int); 377 378 // consoleLog( se, ' | ', ap, ' | ', aps, ' | ', int ); //: Test 379 } 380 }); 381 } 382 } 383 } 384 385 //# 386 prepareTrainers = function() { 387 var $trainers = $('.Trainers'); 388 var $carousel = $trainers.find('.Carousel'); 389 var events = { 390 init : 'init.initEvent', 391 beforechange : 'beforeChange.initEvent', 392 afterchange : 'afterChange.initEvent', 393 }; 394 395 if ( $carousel.length > 0 ) { 396 $carousel
397 .on(events.init, function(e, slick) { 398 //: Empty 399 }) 400 .on(events.beforechange, function(e, slick, currentSlide, nextSlide) { 401 //: Empty 402 }) 403 .on(events.afterchange, function(e, slick, currentSlide) { 404 //: Empty 405 }) 406 .slick({ 407 autoplay : false, 408 infinite : false, 409 draggable : false, 410 adaptiveHeight : true, 411 slidesToShow : 4, 412 slidesToScroll : 4, 413 speed : 750, 414 autoplaySpeed : 5000, 415 responsive : [ 416 { 417 breakpoint: 960, 418 settings: { 419 slidesToShow : 3, 420 slidesToScroll : 3 421 } 422 }, 423 { 424 breakpoint: 590, 425 settings: { 426 slidesToShow : 1, 427 slidesToScroll : 1 428 } 429 } 430 ] 431 }); 432 } 433 } 434 435 //# 436 prepareHistory = function() { 437 var $history = $('.History'); 438 var $carousel = { 439 single : $history.find('.Carousel .Single'), 440 multiple : $('<div>', { class: 'Multiple' }), 441 details : $history.find('.Carousel .Details') 442 }; 443 var classname = { 444 item : 'Item', 445 opened : 'Opened', 446 slicktemp : 'slick-temp', 447 slicklist : 'slick-list', 448 slickarrows : 'slick-arrows' 449 }; 450 var events = { 451 init : 'init.initEvent', 452 beforechange : 'beforeChange.initEvent', 453 afterchange : 'afterChange.initEvent', 454 }; 455 456 if ( $carousel.single.length > 0 ) { 457 $carousel.single 458 .on(events.init, function(e, slick) { 459 manageDetailsText(e, slick, slick.currentSlide); 460 createMultipleSlick(e, slick, slick.currentSlide); 461 wrapSingleSlickArrows(e, slick, slick.currentSlide); 462 }) 463 .on(events.beforechange, function(e, slick, currentSlide, nextSlide) { 464 //: Empty 465 }) 466 .on(events.afterchange, function(e, slick, currentSlide) { 467 manageDetailsText(e, slick, currentSlide); 468 }) 469 .slick({ 470 autoplay : false, 471 infinite : false, 472 draggable : false, 473 adaptiveHeight : true, 474 slidesToShow : 1, 475 slidesToScroll : 1, 476 speed : 750, 477 autoplaySpeed : 5000, 478 asNavFor : $carousel.multiple, 479 responsive : null 480 }); 481 482 function manageDetailsText(_e, _slick, _currentslide) { 483 var $currslide = $(_slick.$slides[_currentslide]); 484 var currhidden = $currslide.find('p[data-type="hidden"]'); 485 var currtext = currhidden.text(); 486 487 if ( currtext.length > 0 ) { 488 $carousel.details.addClass(classname.opened); 489 } 490 else { 491 $carousel.details.removeClass(classname.opened); 492 } 493 494 $carousel.details.find('p').text(currtext); 495 } 496 497 function createMultipleSlick(_e, _slick, _currentslide) { 498 _slick.$slides 499 .map(function(index, el) { 500 var $el = $(el); 501 var $item = $('<div>', { class: classname.item }); 502 var date = { 503 start : $el.data('start'), 504 end : $el.data('end') 505 }; 506 507 $item.attr('data-start', date.start); 508 $item.attr('data-end', date.end); 509 $item.html('<p><s>' + date.start + ' - ' + date.end + '</s></p>'); 510 511 $carousel.multiple.append( $item ); 512 }); 513 514 _slick.$slider.after( $carousel.multiple ); 515 516 $carousel.multiple 517 .on(events.init, function(e, slick) { 518 wrapMultipleSlickList(e, slick); 519 }) 520 .on(events.beforechange, function(e, slick, currentSlide, nextSlide) { 521 //: Empty 522 }) 523 .on(events.afterchange, function(e, slick, currentSlide) { 524 //: Empty 525 }) 526 .slick({ 527 autoplay : false, 528 infinite : false, 529 draggable : false, 530 swipe : false, 531 adaptiveHeight : false, 532 arrows : false, 533 focusOnSelect : true, 534 initialSlide : _currentslide, 535 slidesToShow : 4, 536 slidesToScroll : 1, 537 speed : 750, 538 autoplaySpeed : 5000, 539 asNavFor : $carousel.single, 540 responsive : null 541 }); 542 } 543 544 function wrapSingleSlickArrows(_e, _slick) { 545 var $slickarrows = $('<div>', { class: classname.slickarrows }); 546 547 if ( _slick.$nextArrow.length > 0 && _slick.$prevArrow.length > 0 ) { 548 $slickarrows.append( _slick.$prevArrow, _slick.$nextArrow ); 549 $slickarrows.insertAfter( _slick.$list ); 550 } 551 } 552 553 function wrapMultipleSlickList(_e, _slick) {
554 var $slicktemp = $('<div>', { class: classname.slicktemp }); 555 556 _slick.$slider.find('.' + classname.slicklist).wrap( $slicktemp ); 557 } 558 } 559 } 560 561 //# 562 prepareGraphic = function() { 563 var $graphic = $('.Graphic'); 564 var $carousel = $graphic.find('.Carousel'); 565 var $picture = $graphic.find('.Picture'); 566 var events = { 567 init : 'init.initEvent', 568 beforechange : 'beforeChange.initEvent', 569 afterchange : 'afterChange.initEvent', 570 }; 571 572 if ( $carousel.length > 0 ) { 573 $carousel 574 .on(events.init, function(e, slick) { 575 //: Empty 576 }) 577 .on(events.beforechange, function(e, slick, currentSlide, nextSlide) { 578 pausePlyrVideo(slick, currentSlide); 579 }) 580 .on(events.afterchange, function(e, slick, currentSlide) { 581 //: Empty 582 }) 583 .slick({ 584 autoplay : false, 585 infinite : false, 586 draggable : false, 587 adaptiveHeight : true, 588 slidesToShow : 1, 589 slidesToScroll : 1, 590 speed : 750, 591 autoplaySpeed : 5000, 592 responsive : null 593 }); 594 595 function pausePlyrVideo(_slick, _currentslide) { 596 var $currvideo = $(_slick.$slides[_currentslide]).find('p .plyr--video'); 597 var $players = plyr.get( $currvideo[0] ); 598 599 for ( var i=0; i<$players.length; i++ ) { 600 var isPlaying = !$players[i].isPaused(); 601 602 if ( isPlaying ) { 603 $players[i].pause(); 604 } 605 } 606 } 607 } 608 } 609 610 //# 611 prepareParallax = function() { 612 var $content = $('.wrapMain .Content'); 613 var $background = $content.find('.Section[style]'); 614 var $translate = $content.find('.Section[style]:first'); 615 616 if ( $background.length > 0 && !isTouchDevice() ) { 617 $background.parallaxBackground({ 618 fixed : true, 619 speed : 6 620 }); 621 } 622 623 if ( $translate.length > 0 && !isTouchDevice() ) { 624 $translate.parallaxTranslate({ 625 speed : 6 626 }); 627 } 628 } 629 630 //# 631 prepareScrollMagic = function() { 632 var $window = $(window); 633 var $content = $('.wrapMain .Content'); 634 var $section = $content.find('.Section'); 635 var classname = { 636 smready : 'smrRady', 637 smcurrent : 'smCurrent', 638 smvisible : 'smVisible', 639 }; 640 var events = { 641 load : 'load.initEvent', 642 start : 'start.initEvent', 643 end : 'end.initEvent', 644 progress : 'progress.initEvent' 645 }; 646 647 if ( $section.length > 0 && !isTouchDevice() ) { 648 var scene = {}; 649 var controller = new ScrollMagic.Controller(); 650 651 $window 652 .on(events.load, function(e) { 653 $section.addClass(classname.smready); 654 }); 655 656 $section 657 .map(function(index, el) { 658 var id = $(el).data('id') || index; 659 var hook = $(el).data('hook') || 0.9; 660 var height = $(el).outerHeight(); 661 scene[id] = new $.ScrollMagic 662 .Scene({ triggerHook: hook, triggerElement: el, duration: height }) 663 .setClassToggle(el, classname.smcurrent) 664 // .addIndicators({ name: id }) 665 .addTo(controller); 666 667 scene[id] 668 .on(events.start, function(e) { 669 var te = this.triggerElement(); 670 var st = this.state(); 671 672 if ( st === 'BEFORE' ) { 673 $(te).removeClass(classname.smvisible); 674 } 675 else { 676 $(te).addClass(classname.smvisible); 677 } 678 679 // consoleLog( 'start: ', id, ' | ', te ); //: Test 680 }) 681 .on(events.end, function(e) { 682 var te = this.triggerElement(); 683 684 // consoleLog( 'end: ', id, ' | ', te ); //: Test 685 }) 686 .on(events.progress, function(e) { 687 var te = this.triggerElement(); 688 689 // consoleLog( 'progress: ', e.progress, ' | ', te ); //: Test 690 }); 691 }); 692 } 693 } 694 695})(jQuery); 696 697 698 699//# ----------------------------------------------------------------------------------------------------------- // 700//# INIT MAIN FUNCTIONS 701$(document).ready(function($) { 702 703 preparePlyr(); 704 prepereTopMenu(); 705 prepareFilters(); 706 prepareNews(); 707 prepareTeaser(); 708 prepareNextMatch(); 709 preparePartners(); 710 prepareTrainers(); 711 prepareHistory(); 712 prepareGraphic(); 713 prepareParallax(); 714 // prepareScrollMagic(); 715 716}); 717 718
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.