1"use strict"; 2 3var sisu = sisu || {}; 4 5sisu = $.extend(sisu, { 6 nav: { 7 $container: null, 8 $toggle: null, 9 init: function () { 10 sisu.nav.$container = $(".nav-desktop, .nav-mobile"); 11 sisu.nav.$toggle = $(".js-toggle-mobile-nav"); 12 sisu.nav.assignEventhandlers(); 13 sisu.nav.update(); 14 }, 15 assignEventhandlers: function () { 16 sisu.nav.$toggle.on("click", function () { 17 sisu.nav.$toggle.toggleClass("active"); 18 }); 19 20 $(".nav-mobile strong.submenu").on("click", function (e) { 21 $(e.currentTarget).toggleClass("active").next("ul").slideToggle(); 22 }); 23 24 $(window).on("scroll", sisu.nav.update); 25 }, 26 update: function (e) { 27 const $el = e ? $(e.currentTarget) : $(window); 28 const pixelsScrolled = $el.scrollTop(); 29 const overContentClass = "is-over-content"; 30 31 if (pixelsScrolled > 50) { 32 sisu.nav.$container.addClass(overContentClass); 33 } else { 34 sisu.nav.$container.removeClass(overContentClass); 35 } 36 }, 37 }, 38 slider: { 39 init: function () { 40 const rsceSlider = $(".rsce_slider"); 41 if (rsceSlider && rsceSlider.length > 0) { 42 $(rsceSlider).each(function (i, el) { 43 sisu.slider.initContentSlider($(el)); 44 }); 45 } 46 47 const quoteSlider = $(".rsce_quoteSlider"); 48 if (quoteSlider && quoteSlider.length > 0) { 49 $(quoteSlider).each(function (i, el) { 50 sisu.slider.initQuoteSlider($(el)); 51 }); 52 } 53 54 const newsTeaserSlider = $(".rsce_newsTeaserSlider"); 55 if (newsTeaserSlider && newsTeaserSlider.length > 0) { 56 $(newsTeaserSlider).each(function (i, el) { 57 sisu.slider.initNewsTeaserSlider($(el)); 58 }); 59 } 60 61 const pageTeaserSlider = $(".rsce_pageTeaserSlider_slider"); 62 if (pageTeaserSlider && pageTeaserSlider.length > 0) { 63 $(pageTeaserSlider).each(function (i, el) { 64 sisu.slider.initNewsTeaserSlider($(el)); 65 }); 66 } 67 }, 68 initContentSlider: function ($el) { 69 const sliderOptions = JSON.parse($el.attr("data-sliderOptions")); 70 71 $el.slick({ 72 arrows: sliderOptions.nav_arrows === "1", 73 autoplay: sliderOptions.autoplay === "1", 74 autoplaySpeed: 3000, 75 dots: sliderOptions.nav_dots === "1", 76 infinite: true, 77 }); 78 }, 79 initQuoteSlider: function ($el) { 80 const sliderOptions = JSON.parse($el.attr("data-sliderOptions")); 81 82 $el.slick({ 83 arrows: sliderOptions.nav_arrows === "1", 84 autoplay: sliderOptions.autoplay === "1", 85 autoplaySpeed: 3000, 86 dots: sliderOptions.nav_dots === "1", 87 infinite: true, 88 }); 89 }, 90 initNewsTeaserSlider: function ($el) { 91 $el.slick({ 92 arrows: true, 93 autoplay: false, 94 dots: false, 95 infinite: false, 96 slidesToShow: 3.8, 97 responsive: [ 98 { 99 breakpoint: 1200, 100 settings: { 101 slidesToShow: 3.2, 102 } 103 }, 104 { 105 breakpoint: 1000, 106 settings: { 107 slidesToShow: 2.2, 108 } 109 }, 110 { 111 breakpoint: 800, 112 settings: { 113 slidesToShow: 1.5, 114 } 115 }, 116 { 117 breakpoint: 600, 118 settings: { 119 slidesToShow: 1, 120 dots: true, 121 } 122 } 123 ] 124 }); 125 } 126 }, 127 gallery: { 128 init: function () { 129 const gallery = $(".rsce_gallery"); 130 if (gallery && gallery.length > 0) { 131 $(gallery).each(function (i, el) { 132 const $el = $(el); 133 const $imageContainer = $(".images", $el); 134 135 $imageContainer.magnificPopup({ 136 delegate: "a", 137 type: "image", 138 gallery: { 139 enabled: true, 140 tCounter: "" 141 }, 142 removalDelay: 300 143 }); 144 145 $(".js-show-all", $el).on("click", function (e) { 146 $imageContainer.removeClass("reduce"); 147 }); 148 149 $(".js-show-less", $el).on("click", function (e) { 150 $imageContainer.addClass("reduce"); 151 }); 152 }); 153 } 154 }, 155 }, 156 image: { 157 init: function () { 158 const lightbox = $(".js-lightbox"); 159 if (lightbox && lightbox.length > 0) { 160 $(lightbox).each(function (i, el) { 161 const $el = $(el); 162 163 $el.magnificPopup({ 164 delegate: "a", 165 type: "image", 166 }); 167 }); 168 } 169 } 170 }, 171 cookiebox: { 172 $anchorlinks: null, 173 init: function () { 174 sisu.cookiebox.$anchorlinks = $("#_dr_toc_content a"); 175 176 $(sisu.cookiebox.$anchorlinks).click(function (e) { 177 e.preventDefault(); 178 179 $('html, body').animate({ 180 scrollTop: $('[id="' + $.attr(this, 'href').substr(1) + '"]').offset().top - 100 181 }, 500); 182 183 return false; 184 }); 185 } 186 }, 187 accordion: { 188 init: function (accordionSelector, headerSelector, contentSelector) { 189 if (!accordionSelector) { 190 accordionSelector = ".accordion"; 191 } 192 if (!headerSelector) { 193 headerSelector = ".accordion-header"; 194 } 195 if (!contentSelector) { 196 contentSelector = ".accordion-content"; 197 } 198 199 if (accordionSelector && accordionSelector.length > 0) { 200 $(accordionSelector).each(function (i, accordion) { 201 const $accordion = $(accordion); 202 const $header = $(headerSelector, $accordion); 203 const $content = $(contentSelector, $accordion); 204 205 $header.on("click", function (e) { 206 $content.slideToggle(200); 207 $header.toggleClass("active"); 208 }); 209 }); 210 } 211 }, 212 }, 213 counter: { 214 counters: [], 215 init: function () { 216 const conterbox = $(".js-counter-box"); 217 218 if (conterbox && conterbox.length > 0) { 219 $(conterbox).each(function (i, el) { 220 const $el = $(el); 221 const instance = JSON.parse($el.attr("data-config"));
222 instance.done = false; 223 instance.$el = $el; 224 instance.current = instance.start; 225 226 if (instance.stop > instance.start) { 227 instance.step = (instance.stop - instance.start) / (instance.duration / 16.666); 228 } else { 229 instance.step = -(instance.start - instance.stop) / (instance.duration / 16.666); 230 } 231 232 sisu.counter.counters.push(instance); 233 234 $(el).sisu_scrollAnimation(function (progress) { 235 if (progress > 10) { 236 this.$target.addClass("active"); 237 } 238 }); 239 }); 240 241 sisu.counter.count(); 242 } 243 }, 244 count: function () { 245 for (var i in sisu.counter.counters) { 246 if (sisu.counter.counters[i].done !== true && sisu.counter.counters[i].$el.hasClass("active")) { 247 sisu.counter.counters[i].current += sisu.counter.counters[i].step; 248 249 if ( 250 ( 251 sisu.counter.counters[i].step > 0 && 252 sisu.counter.counters[i].current >= sisu.counter.counters[i].stop 253 ) 254 || 255 ( 256 sisu.counter.counters[i].step < 0 && 257 sisu.counter.counters[i].current <= sisu.counter.counters[i].stop 258 ) 259 ) { 260 sisu.counter.counters[i].current = sisu.counter.counters[i].stop; 261 sisu.counter.counters[i].done = true; 262 } 263 264 var value = parseInt(sisu.counter.counters[i].current) + ""; 265 if (sisu.counter.counters[i].separator) { 266 value = value.replace(/\B(?=(\d{3})+(?!\d))/g, sisu.counter.counters[i].separator); 267 } 268 $(".value", sisu.counter.counters[i].$el).html(value); 269 } 270 } 271 272 for (var i in sisu.counter.counters) { 273 if (sisu.counter.counters[i].done !== true) { 274 requestAnimationFrame(sisu.counter.count); 275 return; 276 } 277 } 278 } 279 }, 280 search: { 281 init: function () { 282 const navAsSearchForm = $(".nav-as-search-form"); 283 if (navAsSearchForm && navAsSearchForm.length > 0) { 284 $(navAsSearchForm).each(function () { 285 const navToggle = $('.search-toggle', this); 286 287 $(navToggle).on('click', function (e,) { 288 $(this).closest(".nav-as-search-form").toggleClass('search-active'); 289 }); 290 }); 291 } 292 }, 293 }, 294 utilities: { 295 debounce: function (func, waitTime, immediate) { 296 var timeoutHandle; 297 return function () { 298 const context = this, args = arguments; 299 const postponeFunction = function () { 300 timeoutHandle = null; 301 if (!immediate) func.apply(context, args); 302 }; 303 const callNow = immediate && !timeoutHandle; 304 clearTimeout(timeoutHandle); 305 timeoutHandle = setTimeout(postponeFunction, waitTime); 306 if (callNow) func.apply(context, args); 307 }; 308 }, 309 }, 310 training: { 311 lazyLoadTrainingDetail: function () { 312 const offset = 10; 313 var completedCount = 0; 314 315 $(".js-lazy-load").each(function (i, el) { 316 const $container = $(el); 317 318 setTimeout(function () { 319 $.getJSON("/ric-academy-lazy-load.php", { "id": $container.attr("data-lazy-id") }, function (data) { 320 $("[data-lazy]", $container).each(function (j, el) { 321 const $el = $(el);
322 const key = $el.attr("data-lazy"); 323 if (data[key] || key === "byAppointment") { 324 switch (key) { 325 case "picture": 326 $el.css({ "background-image": "url('" + data[key] + "')" }); 327 break; 328 case "link": 329 $el.attr("href", data[key]); 330 break; 331 case "canceled": 332 break; 333 case "extendedDates": 334 if (data[key].length > 0) { 335 const $list = $el.find(".field-extended-dates"); 336 for (var i in data[key]) { 337 $list.append("<li><strong>" + data[key][i]["termin"] + "</strong> <span>" + data[key][i]["uhrzeit"] + " Uhr</span>" + data[key][i]["ort"] + "</li>"); 338 } 339 } else { 340 $el.remove(); 341 } 342 break; 343 case "byAppointment": 344 if (data[key] === "1") { 345 $el.siblings(".field-dates, .field-location, .fa-map-marker, [data-lazy=extendedDates]").remove(); 346 } else { 347 $el.remove(); 348 } 349 break; 350 case "time": 351 $el.children(".value").html(data[key].replace("-", "â") + " Uhr"); 352 break; 353 case "nextEvent": case "start": case "end": 354 var now = new Date(); 355 now.setHours(0); 356 const convertedDate = new Date(parseInt(data[key]) * 1000); 357 if (convertedDate < now) { 358 $container.addClass("disabled"); 359 } else { 360 data[key] = sisu.training.dateToString(convertedDate); 361 if (key === "nextEvent" || key === "start") { 362 $container.attr("data-order", convertedDate.getTime()); 363 } 364 } 365 case "freeSlots": 366 if (data[key] < 1) { 367 $el.addClass("no-free-slots"); 368 } 369 $el.children(".value").html(data[key]); 370 break; 371 default: 372 $el.children(".value").html(data[key]); 373 } 374 if ($container.attr("data-lazy-ignore-canceled") === "true" || !data.canceled) { 375 $container.addClass("loaded"); 376 $el.addClass("loaded"); 377 } else { 378 $container.addClass("disabled"); 379 } 380 } else { 381 switch (key) { 382 case "canceled": 383 break; 384 case "nextEvent": case "start": case "end": 385 $container.addClass("disabled"); 386 } 387 } 388 }); 389 }); 390 }, offset * i); 391 }); 392 }, 393 form: { 394 $form: null, 395 init: function () { 396 $(".js-news-filter-input").on("change", function (e) { 397 const $form = $(e.currentTarget).closest("form"); 398 $($form).trigger("submit"); 399 }); 400 401 sisu.training.form.$form = $(".training-form>form"); 402 403 $("form .checkbox_container label a").attr("target", "_blank"); 404 405 $("input[name=type]", sisu.training.form.$form).on("change", function (e) { 406 const $input = $(e.currentTarget); 407 408 switch ($input.val()) { 409 case "company": 410 sisu.training.form.show(".js-if-type-company"); 411 break; 412 case "private": 413 sisu.training.form.hide(".js-if-type-company"); 414 break; 415 416 } 417 }); 418 419 $("input[name=participant_addpeople]", sisu.training.form.$form).on("change", function (e) { 420 const $list = $(".person-list", sisu.training.form.$form); 421 422 if ($(e.currentTarget).is(":checked")) { 423 $list.show(); 424 $("input, select", $list).each(function (i, el) { 425 const $el = $(el); 426 $el.attr("name", $el.attr("data-name")).attr("data-name", null); 427 $el.attr("required", $el.attr("data-required")).attr("data-required", null); 428 }); 429 } else { 430 $list.hide(); 431 $("input, select", $list).each(function (i, el) { 432 const $el = $(el); 433 $el.attr("data-name", $el.attr("name")).attr("name", null); 434 $el.attr("data-required", $el.attr("required")).attr("required", null); 435 }); 436 } 437 }).trigger("change"); 438 439 sisu.training.form.assignSubscriberEvents(); 440 }, 441 hide: function (selector) { 442 const $elements = $(selector); 443 444 $elements.each(function (i, el) { 445 const $el = $(el); 446 447 $el.attr("data-value", $el.attr("value")).attr("value", null); 448 $el.attr("data-required", $el.attr("required")).attr("required", null); 449 $el.closest(".widget").hide(); 450 }); 451 }, 452 show: function (selector) { 453 const $elements = $(selector); 454 455 $elements.each(function (i, el) { 456 const $el = $(el); 457 458 $el.attr("value", $el.attr("data-value")).attr("data-value", null); 459 $el.attr("required", $el.attr("data-required")).attr("data-required", null); 460 $el.closest(".widget").show(); 461 }); 462 }, 463 assignSubscriberEvents: function () { 464 const $list = $(".person-list", sisu.training.$form); 465 const $btnRemove = $(".js-remove", $list); 466 const $btnAdd = $(".js-add", $list); 467 468 $btnRemove.off("click").on("click", function (e) { 469 e.preventDefault(); 470 const $btn = $(e.currentTarget); 471 472 if ($(".row", $list).length > 1) { 473 $btn.closest(".row").remove(); 474 } else { 475 $btn.closest(".row").find("input").val(""); 476 } 477 478 sisu.training.form.assignSubscriberEvents(); 479 sisu.training.form.updateSubscriberIndices(); 480 }); 481 482 $btnAdd.off("click").on("click", function (e) { 483 e.preventDefault(); 484 const $btn = $(e.currentTarget); 485 486 $(".row", $list).first().clone(true).insertBefore($btn.parent()).find("input").val(""); 487 488 sisu.training.form.assignSubscriberEvents(); 489 sisu.training.form.updateSubscriberIndices(); 490 }); 491 }, 492 updateSubscriberIndices: function () { 493 const $list = $(".person-list", sisu.training.$form); 494 495 $(".row", $list).each(function (index, row) { 496 const $row = $(row); 497 498 $("input, select", $row).each(function (j, input) { 499 const $input = $(input); 500 const name = $input.attr("name"); 501 if (name) { 502 $input.attr("name", name.replace(/\[.\]\[/, "[" + index + "][")); 503 } 504 }); 505 }); 506 } 507 }, 508 filter: { 509 init: function () { 510 const $filterYear = $(".training-filter .filter-targetgroup"); 511 512 $filterYear.on("change", function (e) { 513 const value = $("option:selected", $filterYear).val(); 514 515 const paramsString = window.location.search; 516 const searchParams = new URLSearchParams(paramsString); 517 if (value !== "-") { 518 searchParams.set("targetgroup", value); 519 } else { 520 searchParams.delete("targetgroup"); 521 } 522 523 window.location = window.location.origin + window.location.pathname + "?" + searchParams.toString(); 524 }); 525 526 const $filterSearch = $(".training-filter input.js-filter-search"); 527 528 $filterSearch.on("keyup", function (e) { 529 const $el = $(e.currentTarget); 530 const value = $el.val(); 531 532 const paramsString = window.location.search; 533 const searchParams = new URLSearchParams(paramsString); 534 if (value) { 535 searchParams.set("search", value); 536 } else { 537 searchParams.delete("search"); 538 } 539 540 setTimeout(function () { 541 console.dir(value + " === " + $el.val()); 542 if ($el.val() === value) { 543 window.location = window.location.origin + window.location.pathname + "?" + searchParams.toString(); 544 } 545 }, 500); 546 }); 547 } 548 }, 549 dateToString: function (date) { 550 var d = date.getDate(); 551 var m = date.getMonth() + 1; 552 var y = date.getFullYear(); 553 return (d <= 9 ? "0" + d : d) + "." + (m <= 9 ? "0" + m : m) + "." + y; 554 } 555 }, 556 print3d: { 557 $form: null, 558 init: function () { 559 sisu.print3d.initForm(); 560 }, 561 initForm: function () { 562 sisu.print3d.$form = $(".form-3d-print"); 563 $(".js-input", sisu.print3d.$form).off("input").on("input", function (e) { 564 sisu.print3d.updateVolumePrice(); 565 }); 566 sisu.print3d.updateVolumePrice(); 567 }, 568 updateVolumePrice: function () { 569 $(".js-input", sisu.print3d.$form).each(function (i, el) { 570 const $el = $(el); 571 const volume = parseFloat($el.val()); 572 573 if (!Number.isNaN(volume)) { 574 const price = ((parseFloat($el.val()) * 70) / 100).toFixed(2); 575 $el.val(volume); 576 $(".output", sisu.print3d.$form).html(price + " â¬"); 577 } 578 }); 579 } 580 }, 581 news: { 582 init: function () { 583 sisu.news.initFilter(); 584 }, 585 initFilter: function () { 586 const $filterYear = $(".mod_newslist .filter-year"); 587 588 $filterYear.on("change", function (e) { 589 const value = $("option:selected", $filterYear).val(); 590 591 const paramsString = window.location.search; 592 const searchParams = new URLSearchParams(paramsString); 593 searchParams.set("year", value); 594 console.dir(window.location.origin + window.location.pathname + "?" + searchParams.toString()); 595 window.location = window.location.origin + window.location.pathname + "?" + searchParams.toString() 596 }); 597 } 598 }, 599 stickyAnchorNav: { 600 $nav: null, 601 $anchorTargets: null, 602 $anchorLinks: null, 603 init: function () { 604 sisu.stickyAnchorNav.$nav = $('.rsce_stickyAnchorNavigation'); 605 sisu.stickyAnchorNav.$anchorTargets = $('.sisu-anchor-target'); 606 sisu.stickyAnchorNav.$anchorLinks = $('.js-sticky-anchor-link'); 607 608 if (sisu.stickyAnchorNav.$nav && sisu.stickyAnchorNav.$nav.length > 0) { 609 const footer = document.querySelector('#footer'); 610 if (footer) { 611 footer.style.paddingBottom = sisu.stickyAnchorNav.$nav[0].clientHeight + 'px'; 612 } 613 614 $(sisu.stickyAnchorNav.$anchorLinks).on('click', function (e) { 615 e.preventDefault(); 616 const aid = $(this).attr("data-id"); 617 if (aid) {
618 sisu.stickyAnchorNav.scrollToAnchor(aid); 619 } 620 }); 621 622 $(window).on("scroll", sisu.utilities.debounce(sisu.stickyAnchorNav.scrollActiveState, 30)); 623 } 624 }, 625 scrollToAnchor: function (aid) { 626 const destination = $("#" + aid); 627 628 if (destination) { 629 $('html,body').animate({ 630 scrollTop: destination.offset().top - 100 631 }, 'slow'); 632 } 633 }, 634 scrollActiveState: function () { 635 var current = ""; 636 637 $(sisu.stickyAnchorNav.$anchorTargets).each(function (i, section) { 638 const sectionTop = section.offsetTop; 639 if (window.pageYOffset >= sectionTop + 30) { 640 current = section.getAttribute("id"); 641 } 642 }); 643 644 $(sisu.stickyAnchorNav.$anchorLinks).each(function (i, el) { 645 el.classList.remove("active"); 646 if (el.getAttribute("data-id") == current) { 647 el.classList.add("active"); 648 } 649 }); 650 }, 651 }, 652 aos: { 653 init: function () { 654 AOS.init({ 655 // Global settings: 656 disable: false, // accepts following values: 'phone', 'tablet', 'mobile', boolean, expression or function 657 startEvent: 'DOMContentLoaded', // name of the event dispatched on the document, that AOS should initialize on 658 initClassName: 'aos-init', // class applied after initialization 659 animatedClassName: 'aos-animate', // class applied on animation 660 useClassNames: false, // if true, will add content of `data-aos` as classes on scroll 661 disableMutationObserver: false, // disables automatic mutations' detections (advanced) 662 debounceDelay: 50, // the delay on debounce used while resizing window (advanced) 663 throttleDelay: 99, // the delay on throttle used while scrolling the page (advanced) 664 665 // Settings that can be overridden on per-element basis, by `data-aos-*` attributes: 666 offset: 50, // offset (in px) from the original trigger point 667 delay: 0, // values from 0 to 3000, with step 50ms 668 duration: 800, // values from 0 to 3000, with step 50ms 669 easing: 'ease', // default easing for AOS animations 670 once: false, // whether animation should happen only once - while scrolling down 671 mirror: false, // whether elements should animate out while scrolling past them 672 anchorPlacement: 'top-bottom', // defines which position of the element regarding to window should trigger the animation 673 674 }); 675 } 676 }, 677 powertrains: { 678 init: function () { 679 if ($(".powertrains-list").length > 0) { 680 sisu.powertrains.initFilter(); 681 } 682 }, 683 initFilter: function () { 684 const $module = $(".powertrains-filter"); 685 const $filter = $(".filters", $module); 686 687 $(".filter-widget input[type=range]", $module).on("input", function (e) { 688 const $el = $(e.currentTarget); 689 const val = $el.val(); 690 $el.parents(".filter-widget").find(".js-live-value").html(val); 691 }); 692 $(".filter-widget input", $module).on("change", function (e) { 693 e.preventDefault(); 694 e.stopPropagation(); 695 696 sisu.powertrains.applyFilter(true); 697 }); 698 $(".js-filter-remove", $module).on("click", function (e) { 699 e.preventDefault(); 700 e.stopPropagation(); 701 702 const $el = $(e.currentTarget); 703 $(".filter-widget input[name=" + $el.attr("data-filter") + "][value=" + $el.attr("data-option") + "]").trigger("click"); 704 }); 705 706 // sisu.powertrains.applyFilter(); 707 }, 708 applyFilter: function (forceReset) { 709 // Rotax.layout.removePagination(); 710 var filter = {}; 711 $(".filter-widget input[type=checkbox]").each(function (i, el) { 712 const $el = $(el); 713 const filterName = $el.attr("name"); 714 const filterValue = $el.val(); 715 if (!filter[filterName]) { 716 filter[filterName] = { 717 _type: $el.attr("type"), 718 _active: false 719 }; 720 } 721 const checked = $(el).is(":checked"); 722 filter[filterName][filterValue] = checked; 723 if (checked) { 724 filter[filterName]["_active"] = true; 725 } 726 }); 727 $(".filter-widget input[type=range]").each(function (i, el) { 728 const $el = $(el); 729 const filterName = $el.attr("name"); 730 const filterValue = $el.val(); 731 filter[filterName] = { 732 _type: $el.attr("type"), 733 _active: true, 734 min: parseInt(filterValue), 735 max: parseInt($el.attr("max")) 736 }; 737 }); 738 $(".powertrains-list>li").each(function (i, el) { 739 const $el = $(el); 740 var show = true; 741 for (var key in filter) { 742 if (filter[key]._active) { 743 switch (filter[key]._type) { 744 case "checkbox": 745 var _show = false; 746 for (var val in filter[key]) { 747 if (val !== "_type" && val !== "_active" && filter[key][val]) { 748 _show = _show || $el.attr("data-" + key).includes(";" + val + ";"); 749 } 750 } 751 show = show && _show; 752 break; 753 case "range": 754 const max = filter[key].max; 755 const min = filter[key].min; 756 const current = parseInt($el.attr("data-" + key).replace(";", "")); 757 show = show && (current >= min && current <= max); 758 break; 759 } 760 } 761 } 762 if (show) { 763 $el.show(); 764 } else { 765 $el.hide(); 766 } 767 }); 768 // Rotax.layout.applyPagination(forceReset); 769 } 770 }, 771 extendText: { 772 onClick: function (button) { 773 $(button).closest(".extend").toggleClass("extended"); 774 $(button).toggleClass("less"); 775 776 } 777 } 778}); 779 780$(window).on("load", function () { 781 sisu.counter.init();
782 sisu.image.init(); 783 sisu.gallery.init(); 784 sisu.cookiebox.init(); 785 sisu.accordion.init(); 786 sisu.search.init(); 787 sisu.training.lazyLoadTrainingDetail(); 788 sisu.training.form.init(); 789 sisu.training.filter.init(); 790 sisu.print3d.init(); 791 sisu.news.init(); 792 sisu.powertrains.init(); 793}); 794 795$(document).ready(function () { 796 sisu.nav.init(); 797 sisu.slider.init(); 798 sisu.stickyAnchorNav.init(); 799 sisu.aos.init(); 800 801 setInterval(function () { 802 // fix defective dynamic datareporter links as soon as they pop anywhere 803 $("a[href^='#dr_']").each(function (i, el) { 804 // fix missing path 805 $(el).attr("href", window.location.pathname + $(el).attr("href")); 806 807 // remove faulty click handler 808 $(el).unbind("click"); 809 }); 810 }, 1000); 811});
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.