1var players = {}; 2 3function pauseMainBanner() { 4 // $(".banners-big .owl-carousel").trigger("stop.owl.autoplay"); 5 $(".banners-big .main-slider").data("swiper").autoplay.stop(); 6} 7 8function playMainBanner() { 9 /*$(".banners-big .owl-carousel").trigger("play.owl.autoplay"); 10 if ($(".banners-big .owl-carousel").is(":hover")) { 11 $(".banners-big .owl-carousel").trigger("mouseover.owl.autoplay"); 12 } 13 */ 14 if ($(".banners-big .main-slider").data("swiper").params.autoplay.enabled) { 15 $(".banners-big .main-slider").data("swiper").autoplay.start(); 16 } 17} 18 19function startMainBannerSlideVideo($slide) { 20 var slideActiveIndex = $slide.attr("data-slide_index"); 21 var $slides = $slide.closest(".main-slider").find('.main-slider__item[data-slide_index="' + slideActiveIndex + '"]'); // current slide & cloned 22 var videoSource = $slide.attr("data-video_source"); 23 24 if (videoSource) { 25 $slides.addClass("loading"); 26 pauseMainBanner(); 27 28 // var $slider = $slide.closest(".owl-carousel"); 29 var $slider = $slide.closest(".main-slider"); 30 var slidesIndexesWithVideo = $slider.data("slidesIndexesWithVideo"); 31 if (typeof slidesIndexesWithVideo === "undefined") { 32 slidesIndexesWithVideo = []; 33 } 34 slidesIndexesWithVideo.push(slideActiveIndex); 35 $slider.data("slidesIndexesWithVideo", slidesIndexesWithVideo); 36 37 var videoPlayerSrc = $slide.attr("data-video_src"); 38 var videoSoundDisabled = $slide.attr("data-video_disable_sound"); 39 var bVideoSoundDisabled = videoSoundDisabled == 1; 40 var videoLoop = $slide.attr("data-video_loop"); 41 var bVideoLoop = videoLoop == 1; 42 var videoCover = $slide.attr("data-video_cover"); 43 var bVideoCover = videoCover == 1; 44 var videoUnderText = $slide.attr("data-video_under_text"); 45 var bVideoUnderText = videoUnderText == 1; 46 var videoPlayer = $slide.attr("data-video_player"); 47 var bVideoPlayerYoutube = videoPlayer === "YOUTUBE"; 48 var bVideoPlayerVimeo = videoPlayer === "VIMEO"; 49 var bVideoPlayerRutube = videoPlayer === "RUTUBE"; 50 var bVideoPlayerHtml5 = videoPlayer === "HTML5"; 51 var videoWidth = bVideoPlayerHtml5 ? false : $slide.attr("data-video_width"); 52 var videoHeight = bVideoPlayerHtml5 ? false : $slide.attr("data-video_height"); 53 54 if (videoPlayerSrc && !$slide.find(".video").length) { 55 var InitPlayer = function () { 56 // prepare videoID 57 var videoIDs = []; 58 for (var i = 0; i < $slides.length; ++i) { 59 var videoID = getRandomInt(100, 1000); 60 videoIDs.push(videoID); 61 } 62 63 // console.log("InitPlayer", videoIDs); 64 65 $slides.each(function (i, node) { 66 var $_slide = $(node); 67 var videoID = videoIDs[i]; 68 var videoClass = $_slide.attr("id") + " player_" + videoID + (bVideoCover ? " cover" : ""); 69 70 if (!$_slide.find(".video." + videoClass).length) { 71 if (bVideoPlayerYoutube) { 72 $_slide.prepend( 73 '<div class="wrapper_video"><iframe id="player_' + 74 videoID + 75 '" class="video ' + 76 videoClass + 77 '" src="' + 78 videoPlayerSrc + 79 '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="accelerometer; encrypted-media; gyroscope; fullscreen;"' + 80 (videoWidth && videoHeight ? ' data-video_proportion="' + videoWidth / videoHeight + '"' : "") + 81 "></iframe></div>" 82 ); 83 } else if (bVideoPlayerVimeo) { 84 $_slide.prepend( 85 '<div class="wrapper_video"><iframe id="player_' + 86 videoID + 87 '" class="video ' + 88 videoClass + 89 '" src="' + 90 videoPlayerSrc + 91 '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="accelerometer; encrypted-media; gyroscope; fullscreen;"' + 92 (videoWidth && videoHeight ? ' data-video_proportion="' + videoWidth / videoHeight + '"' : "") + 93 "></iframe></div>" 94 ); 95 } else if (bVideoPlayerRutube) { 96 videoPlayerSrc = videoPlayerSrc + "&playerid=" + videoID; 97 $_slide.prepend( 98 '<div class="wrapper_video"><iframe id="player_' + 99 videoID + 100 '" class="video ' + 101 videoClass + 102 '" src="' + 103 videoPlayerSrc + 104 '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="encrypted-media; gyroscope; fullscreen;"' + 105 (videoWidth && videoHeight ? ' data-video_proportion="' + videoWidth / videoHeight + '"' : "") + 106 "></iframe></div>" 107 ); 108 } else if (bVideoPlayerHtml5) { 109 $_slide.prepend( 110 '<div class="wrapper_video"><video autobuffer playsinline webkit-playsinline id="player_' + 111 videoID + 112 '" class="video ' + 113 videoClass + 114 '"' + 115 (bVideoLoop ? " loop " : "") + 116 (bVideoSoundDisabled ? " muted " : "") + 117 '><source src="' + 118 videoPlayerSrc + 119 '" type=\'video/mp4; codecs="avc1.42E01E, mp4a.40.2"\' /><p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video</p></iframe></div>' 120 ); 121 } 122 } 123 124 if (typeof players !== "undefined" && players) { 125 players[videoID] = { 126 id: "player_" + videoID, 127 mute: bVideoSoundDisabled, 128 loop: bVideoLoop, 129 cover: bVideoCover, 130 videoPlayer: videoPlayer, 131 slideIndex: slideActiveIndex, 132 playing: false, 133 clones: videoIDs, 134 videoWidth: videoWidth, 135 videoHeight: videoHeight, 136 videoProportion: videoWidth && videoHeight ? videoWidth / videoHeight : false, 137 src: videoPlayerSrc, 138 }; 139 140 if (bVideoPlayerYoutube) { 141 window[players[videoID].id] = new YT.Player(players[videoID].id, { 142 events: { 143 onReady: function (e) {
144 if (videoID) { 145 var mute = players[videoID].mute; 146 var cover = players[videoID].cover; 147 var $slide = $("#player_" + videoID).closest(".main-slider__item"); 148 var hidden = !$("#player_" + videoID).closest(".swiper-slide-active").length; 149 // var hidden = !$("#player_" + videoID).closest(".owl-item.active").length; 150 // console.log("onReady", videoID, hidden); 151 152 // mute sound 153 if (mute || hidden) { 154 window[players[videoID].id].mute(); 155 } 156 157 // cover video 158 if (cover) { 159 // get video`s original size 160 if (!players[videoID].videoProportion) { 161 var embedHtml = e.target.getVideoEmbedCode(); 162 if (embedHtml.length) { 163 var match = embedHtml.match(/width="(\d*)"[^>]*height="(\d*)"/); 164 if (match !== null) { 165 var videoWidth = match[1]; 166 var videoHeight = match[2]; 167 168 players[videoID].videoWidth = videoWidth; 169 players[videoID].videoHeight = videoHeight; 170 players[videoID].videoProportion = videoWidth / videoHeight; 171 172 $slide.find(".video").attr("data-video_proportion", players[videoID].videoProportion); 173 } 174 } 175 } 176 177 CoverPlayer(); 178 } 179 180 if (hidden) { 181 // not start hidden video playing 182 // console.log("pause hidden", videoID); 183 setTimeout(function () { 184 e.target.pauseVideo(); 185 }, 100); 186 } else { 187 // stop slider 188 // console.log("play visible", videoID); 189 pauseMainBanner(); 190 window[players[videoID].id].seekTo(0, true); 191 //e.target.playVideo(); 192 } 193 194 // update slide class 195 $slide.addClass("started"); 196 // $slide.removeClass('loading') 197 } 198 }, 199 onStateChange: function (e) { 200 if (videoID) { 201 var loop = players[videoID].loop; 202 var $slide = $("#player_" + videoID).closest(".main-slider__item"); 203 var hidden = !$("#player_" + videoID).closest(".swiper-slide-active").length; 204 // var hidden = !$("#player_" + videoID).closest(".owl-item.active").length; 205 // console.log("onStateChange", videoID, hidden, e.data); 206 207 if (!hidden) { 208 if (e.data === YT.PlayerState.PLAYING) { 209 players[videoID].playing = true; 210 211 $("#player_" + videoID) 212 .closest(".main-slider__item") 213 // .find(".banners-big__inner") 214 .addClass("loading"); 215 $("#player_" + videoID) 216 .closest(".main-slider__item") 217 .find(".banners-big__inner .btn-video") 218 .addClass("loading"); 219 220 // stop slider 221 pauseMainBanner(); 222 223 var videoClones = players[videoID].clones; 224 for (var j in videoClones) { 225 if (videoClones[j] != videoID) { 226 if (players[videoClones[j]].playing) { 227 // console.log("pause one of clone", videoClones[j]);
228 window[players[videoClones[j]].id].pauseVideo(); 229 } 230 } 231 } 232 233 //e.target.playVideo(); 234 } else if (e.data === YT.PlayerState.PAUSED) { 235 players[videoID].playing = false; 236 237 // sync time in cloned players & pause 238 var time = Math.floor(window[players[videoID].id].getCurrentTime() * 10) / 10; 239 240 $("#player_" + videoID) 241 .closest(".main-slider__item") 242 // .find(".banners-big__inner") 243 .removeClass("loading"); 244 $("#player_" + videoID) 245 .closest(".main-slider__item") 246 .find(".banners-big__inner .btn-video") 247 .removeClass("loading"); 248 249 window[players[videoID].id].seekTo(time, true); 250 251 var videoClones = players[videoID].clones; 252 for (var j in videoClones) { 253 if (videoClones[j] != videoID) { 254 if (players[videoClones[j]].playing) { 255 // console.log("pause one of clone", videoClones[j]); 256 window[players[videoClones[j]].id].pauseVideo(); 257 } 258 259 if ("getCurrentTime" in window[players[videoClones[j]].id]) { 260 window[players[videoClones[j]].id].seekTo(time, true); 261 } 262 } 263 } 264 265 playMainBanner(); 266 } else if (e.data === YT.PlayerState.ENDED) { 267 players[videoID].playing = false; 268 if (loop) { 269 e.target.playVideo(); 270 } else { 271 // play slider 272 playMainBanner(); 273 } 274 } else if (e.data === YT.PlayerState.UNSTARTED) { 275 players[videoID].playing = false; 276 $("#player_" + videoID) 277 .closest(".main-slider__item") 278 .find(".banners-big__inner .btn-video") 279 .removeClass("loading"); 280 // window[players[videoID].id].mute() 281 e.target.playVideo(); 282 } 283 } else { 284 players[videoID].playing = false; 285 $("#player_" + videoID) 286 .closest(".main-slider__item") 287 // .find(".banners-big__inner") 288 .removeClass("loading"); 289 $("#player_" + videoID) 290 .closest(".main-slider__item") 291 .find(".banners-big__inner .btn-video") 292 .removeClass("loading"); 293 } 294 } 295 }, 296 }, 297 }); 298 } else if (bVideoPlayerVimeo) { 299 window[players[videoID].id] = new Vimeo.Player(document.getElementById(players[videoID].id), { 300 autopause: false, 301 byline: false, 302 loop: false, 303 title: false, 304 }); 305 window[players[videoID].id].on("loaded", onVimeoPlayerReady); 306 window[players[videoID].id].on("play", onVimeoPlayerStateChange); 307 window[players[videoID].id].on("pause", onVimeoPlayerStateChange); 308 window[players[videoID].id].on("ended", onVimeoPlayerStateChange); 309 } else if (bVideoPlayerRutube) { 310 document.getElementById(players[videoID].id).onload = function (e) { 311 var videoID = this.id.replace("player_", ""); 312 players[videoID].contentWindow = this.contentWindow; 313 onRutubePlayerReady(videoID); 314 }; 315 } else if (bVideoPlayerHtml5) { 316 document.getElementById(players[videoID].id).addEventListener("loadeddata", onHtml5PlayerReady); 317 document.getElementById(players[videoID].id).addEventListener("play", onHtml5PlayerStateChange); 318 document.getElementById(players[videoID].id).addEventListener("pause", onHtml5PlayerStateChange); 319 document.getElementById(players[videoID].id).addEventListener("ended", onHtml5PlayerStateChange); 320 } 321 } 322 }); 323 }; 324 325 if (!bVideoPlayerHtml5) { 326 var obPlayerVariable = ""; 327 var fnPlayerVariable = "";
328 if (typeof window["YoutubePlayerScriptLoaded"] === "undefined") { 329 window["YoutubePlayerScriptLoaded"] = false; 330 } 331 if (typeof window["VimeoPlayerScriptLoaded"] === "undefined") { 332 window["VimeoPlayerScriptLoaded"] = false; 333 } 334 if (typeof window["RutubePlayerListnersAdded"] === "undefined") { 335 window["RutubePlayerListnersAdded"] = false; 336 } 337 338 // load script 339 if (bVideoPlayerYoutube) { 340 obPlayerVariable = "YT"; 341 fnPlayerVariable = "Player"; 342 if (!window["YoutubePlayerScriptLoaded"]) { 343 var script = document.createElement("script"); 344 script.src = "https://www.youtube.com/iframe_api"; 345 var firstScriptTag = document.getElementsByTagName("script")[0]; 346 firstScriptTag.parentNode.insertBefore(script, firstScriptTag); 347 window["YoutubePlayerScriptLoaded"] = true; 348 } 349 } else if (bVideoPlayerVimeo) { 350 obPlayerVariable = "Vimeo"; 351 if (!window["VimeoPlayerScriptLoaded"]) { 352 var script = document.createElement("script"); 353 script.src = "https://player.vimeo.com/api/player.js"; 354 (document.head || document.documentElement).appendChild(script); 355 window["VimeoPlayerScriptLoaded"] = true; 356 } 357 } else if (bVideoPlayerRutube) { 358 if (!window["RutubePlayerListnersAdded"]) { 359 window.addEventListener("message", function (e) { 360 if (e.origin.indexOf("rutube.ru") !== -1) { 361 var message = JSON.parse(e.data); 362 if (typeof message === "object" && message) { 363 if (typeof message.type !== "undefined" && message.type) { 364 var videoID = false; 365 366 for (var j in players) { 367 if (typeof players[j].contentWindow !== "undefined") { 368 if (players[j].contentWindow == e.source) { 369 videoID = j; 370 break; 371 } 372 } 373 } 374 375 if (videoID) { 376 switch (message.type) { 377 case "player:changeState": 378 onRutubePlayerStateChange(videoID, message.data.state); 379 break; 380 case "player:currentTime": 381 onRutubePlayerCurrentTime(videoID, message.data.time); 382 break; 383 } 384 } 385 } 386 } 387 } 388 }); 389 } 390 } 391 392 if (!obPlayerVariable.length) { 393 InitPlayer(); 394 } else { 395 // wait player class 396 if (typeof window[obPlayerVariable] === "object") { 397 if ( 398 !fnPlayerVariable.length || 399 (fnPlayerVariable.length && typeof window[obPlayerVariable][fnPlayerVariable] === "function") 400 ) { 401 InitPlayer(); 402 } 403 } else { 404 var waitPlayerInterval = setInterval(function () { 405 if (typeof window[obPlayerVariable] === "object") { 406 if ( 407 !fnPlayerVariable.length || 408 (fnPlayerVariable.length && typeof window[obPlayerVariable][fnPlayerVariable] === "function") 409 ) { 410 clearInterval(waitPlayerInterval); 411 412 InitPlayer(); 413 } 414 } 415 }, 50); 416 } 417 } 418 } else { 419 InitPlayer(); 420 } 421 } else { 422 // console.log(players); 423 // pause video 424 if (typeof players !== "undefined" && players) { 425 for (var j in players) { 426 if (typeof window[players[j].id] == "object") { 427 if (players[j].playing) { 428 if (players[j].videoPlayer === "YOUTUBE") { 429 // console.log("pause", j); 430 window[players[j].id].pauseVideo(); 431 } else if (players[j].videoPlayer === "VIMEO") { 432 window[players[j].id].pause(); 433 } else if (players[j].videoPlayer === "RUTUBE") { 434 document.getElementById(players[j].id).contentWindow.postMessage( 435 JSON.stringify({ 436 type: "player:pause", 437 data: {}, 438 }), 439 "*" 440 ); 441 } else if (players[j].videoPlayer === "HTML5") { 442 document.getElementById(players[j].id).pause(); 443 } 444 } else if (players[j].slideIndex == slideActiveIndex) { 445 if (players[j].videoPlayer === "YOUTUBE") { 446 if (typeof window[players[j].id]["playVideo"] == "function") { 447 window[players[j].id].playVideo(); 448 } 449 } else if (players[j].videoPlayer === "VIMEO") { 450 window[players[j].id].play(); 451 } else if (players[j].videoPlayer === "RUTUBE") { 452 document.getElementById(players[j].id).contentWindow.postMessage( 453 JSON.stringify({ 454 type: "player:play", 455 data: {}, 456 }), 457 "*" 458 ); 459 } else if (players[j].videoPlayer === "HTML5") { 460 document.getElementById(players[j].id).play(); 461 } 462 } 463 } 464 } 465 } 466 } 467 } 468} 469 470var CoverPlayer = function () { 471 $(".banners-big .video.cover:visible").each(function () { 472 var $slide = $(this).closest(".main-slider__item"); 473 var slideHeight = $slide[0].getBoundingClientRect().height; // outer height with padding 474 var slideWidth = $slide[0].getBoundingClientRect().width; 475 var videoProportion = $(this).attr("data-video_proportion"); 476 if (videoProportion === undefined) { 477 videoProportion = 16 / 9; 478 } 479 480 // set video width = 100% of slide width 481 var videoWidth = slideWidth; 482 // calculate video height proportional 483 var videoHeight = slideWidth / videoProportion; 484 // video minimal height = 100% slide height 485 if (videoHeight < slideHeight) { 486 // increase video width proportional 487 videoWidth = slideHeight * videoProportion; 488 videoHeight = slideHeight; 489 } 490 491 $(this).width(videoWidth).height(videoHeight); 492 }); 493}; 494 495function onVimeoPlayerReady(e) {
496 var videoID = this.element.id.replace("player_", ""); 497 if (videoID) { 498 var mute = players[videoID].mute; 499 var cover = players[videoID].cover; 500 //var clone = players[videoID].clone; 501 var $slide = $("#player_" + videoID).closest(".main-slider__item"); 502 var clone = $("#player_" + videoID).closest(".main-slider__item:not(.swiper-slide-active)").length; 503 // var clone = $("#player_" + videoID).closest(".owl-item:not(.active)").length; 504 505 // mute sound 506 if (mute || clone) { 507 window[players[videoID].id].setVolume(0); 508 } 509 510 // cover video 511 if (cover) { 512 // get video`s original size 513 if (!players[videoID].videoProportion) { 514 var widthPromise = window[players[videoID].id].getVideoWidth(); 515 var heightPromise = window[players[videoID].id].getVideoHeight(); 516 widthPromise.then(function (value) { 517 var videoWidth = value; 518 519 heightPromise.then(function (value) { 520 var videoHeight = value; 521 522 players[videoID].videoWidth = videoWidth; 523 players[videoID].videoHeight = videoHeight; 524 players[videoID].videoProportion = videoWidth / videoHeight; 525 526 $slide.find(".video").attr("data-video_proportion", players[videoID].videoProportion); 527 528 CoverPlayer(); 529 }); 530 }); 531 } 532 } 533 534 // not start clone video playing 535 if (clone) { 536 setTimeout(function () { 537 window[players[videoID].id].pause(); 538 }, 100); 539 } else { 540 // stop slider 541 pauseMainBanner(); 542 543 // start video 544 var promise = window[players[videoID].id].play(); 545 if (typeof promise !== "undefined") { 546 promise.catch(function () { 547 setTimeout(function () { 548 window[players[videoID].id].setVolume(0); 549 window[players[videoID].id].play(); 550 }, 100); 551 }); 552 } 553 } 554 555 // update slide class 556 $slide.addClass("started"); 557 // $slide.removeClass('loading') 558 } 559} 560 561function onVimeoPlayerStateChange(e) { 562 var videoID = this.element.id.replace("player_", ""); 563 if (videoID) { 564 var cover = players[videoID].cover; 565 //var clone = players[videoID].clone; 566 var loop = players[videoID].loop; 567 var slideIndex = players[videoID].slideIndex; 568 var clone = $("#player_" + videoID).closest(".main-slider__item:not(.swiper-slide-active)").length; 569 // var clone = $("#player_" + videoID).closest(".owl-item:not(.active)").length; 570 571 window[players[videoID].id].getPaused().then(function (paused) { 572 if (paused) { 573 players[videoID].playing = false; 574 575 $("#player_" + videoID) 576 .closest(".main-slider__item") 577 // .find(".banners-big__inner") 578 .removeClass("loading"); 579 $("#player_" + videoID) 580 .closest(".main-slider__item") 581 .find(".banners-big__inner .btn-video") 582 .removeClass("loading"); 583 584 // sync time in cloned players & pause 585 window[players[videoID].id].getCurrentTime().then(function (seconds) { 586 var time = Math.floor(seconds * 10) / 10; 587 window[players[videoID].id].setCurrentTime(time).then(function (seconds) { 588 for (var j in players) { 589 if ( 590 players[j].slideIndex == slideIndex && 591 (j != videoID || (clone && j == videoID)) && 592 window[players[j].id] 593 ) { 594 window[players[j].id].pause(); 595 window[players[j].id].setCurrentTime(time).then(function (seconds) {}); 596 } 597 } 598 }); 599 }); 600 } else { 601 $("#player_" + videoID) 602 .closest(".main-slider__item") 603 // .find(".banners-big__inner") 604 .addClass("loading"); 605 $("#player_" + videoID) 606 .closest(".main-slider__item") 607 .find(".banners-big__inner .btn-video") 608 .addClass("loading"); 609 window[players[videoID].id].getEnded().then(function (ended) { 610 if (ended) { 611 players[videoID].playing = false; 612 if (loop) { 613 window[players[videoID].id].play(); 614 } else { 615 // play slider 616 playMainBanner(); 617 } 618 } else { 619 players[videoID].playing = true; 620 621 // stop slider 622 pauseMainBanner(); 623 } 624 }); 625 } 626 }); 627 } 628} 629 630function onRutubePlayerReady(videoID) {
631 if (videoID) { 632 var mute = players[videoID].mute; 633 var cover = players[videoID].cover; 634 //var clone = players[videoID].clone; 635 var player = document.getElementById(players[videoID].id); 636 var $slide = $("#player_" + videoID).closest(".main-slider__item"); 637 var clone = $(player).closest(".main-slider__item:not(.swiper-slide-active)").length; 638 // var clone = $(player).closest(".owl-item:not(.active)").length; 639 640 // mute sound 641 if (mute || clone) { 642 player.contentWindow.postMessage( 643 JSON.stringify({ 644 type: "player:mute", 645 data: {}, 646 }), 647 "*" 648 ); 649 } 650 651 // cover video 652 if (cover) { 653 CoverPlayer(); 654 } 655 656 // not start clone video playing 657 if (clone) { 658 setTimeout(function () { 659 player.contentWindow.postMessage( 660 JSON.stringify({ 661 type: "player:pause", 662 data: {}, 663 }), 664 "*" 665 ); 666 }, 100); 667 } else { 668 // stop slider 669 pauseMainBanner(); 670 671 player.contentWindow.postMessage( 672 JSON.stringify({ 673 type: "player:play", 674 data: {}, 675 }), 676 "*" 677 ); 678 } 679 680 // update slide class 681 $slide.addClass("started"); 682 // $slide.removeClass('loading') 683 } 684} 685 686function onRutubePlayerCurrentTime(videoID, time) { 687 if (videoID) { 688 players[videoID].time = time; 689 } 690} 691 692function onRutubePlayerStateChange(videoID, state) { 693 if (videoID) { 694 //var clone = players[videoID].clone; 695 var loop = players[videoID].loop; 696 var slideIndex = players[videoID].slideIndex; 697 var player = document.getElementById(players[videoID].id); 698 var clone = $(player).closest(".main-slider__item:not(.swiper-slide-active)").length; 699 // var clone = $(player).closest(".owl-item:not(.active)").length; 700 701 if (state === "playing") { 702 $("#" + videoID) 703 .closest(".main-slider__item") 704 // .find(".banners-big__inner") 705 .addClass("loading"); 706 $("#" + videoID) 707 .closest(".main-slider__item") 708 .find(".banners-big__inner .btn-video") 709 .addClass("loading"); 710 711 players[videoID].playing = true; 712 713 // stop slider 714 pauseMainBanner(); 715 } else if (state === "paused") { 716 $("#" + videoID) 717 .closest(".main-slider__item") 718 // .find(".banners-big__inner") 719 .removeClass("loading"); 720 $("#" + videoID) 721 .closest(".main-slider__item") 722 .find(".banners-big__inner .btn-video") 723 .removeClass("loading"); 724 725 players[videoID].playing = false; 726 727 // sync time in cloned players & pause 728 var time = Math.floor(players[videoID].time * 10) / 10; 729 player.contentWindow.postMessage( 730 JSON.stringify({ 731 type: "player:setCurrentTime", 732 data: { time: time }, 733 }), 734 "*" 735 ); 736 for (var j in players) { 737 if ( 738 players[j].slideIndex == slideIndex && 739 (j != videoID || (clone && j == videoID)) && 740 document.getElementById(players[j].id) 741 ) { 742 document.getElementById(players[j].id).contentWindow.postMessage( 743 JSON.stringify({ 744 type: "player:pause", 745 data: {}, 746 }), 747 "*" 748 ); 749 document.getElementById(players[j].id).contentWindow.postMessage( 750 JSON.stringify({ 751 type: "player:setCurrentTime", 752 data: { time: time }, 753 }), 754 "*" 755 ); 756 } 757 } 758 } else if (state === "stopped") { 759 $("#" + videoID) 760 .closest(".main-slider__item") 761 // .find(".banners-big__inner") 762 .removeClass("loading"); 763 $("#" + videoID) 764 .closest(".main-slider__item") 765 .find(".banners-big__inner .btn-video") 766 .removeClass("loading"); 767 768 players[videoID].playing = false; 769 if (loop) { 770 player.contentWindow.postMessage( 771 JSON.stringify({ 772 type: "player:play", 773 data: {}, 774 }), 775 "*" 776 ); 777 } else { 778 // play slider 779 playMainBanner(); 780 } 781 } 782 } 783} 784 785function onHtml5PlayerReady(e) { 786 var videoID = e.target.id.replace("player_", "");
787 if (videoID) { 788 var mute = players[videoID].mute; 789 var cover = players[videoID].cover; 790 var clone = $(e.target).closest(".main-slider__item:not(.swiper-slide-active)").length; 791 // var clone = $(e.target).closest(".owl-item:not(.active)").length; 792 var $slide = $("#player_" + videoID).closest(".main-slider__item"); 793 794 // mute sound 795 if (mute || clone) { 796 $("#" + players[videoID].id).prop("muted", true); 797 } 798 799 // cover video 800 if (cover) { 801 // get video`s original size 802 if (!players[videoID].videoProportion) { 803 var videoWidth = $slide.find(".video")[0].videoWidth; 804 var videoHeight = $slide.find(".video")[0].videoHeight; 805 806 players[videoID].videoWidth = videoWidth; 807 players[videoID].videoHeight = videoHeight; 808 players[videoID].videoProportion = videoWidth / videoHeight; 809 810 $slide.find(".video").attr("data-video_proportion", players[videoID].videoProportion); 811 } 812 813 CoverPlayer(); 814 } 815 816 // not start clone video playing 817 if (clone) { 818 // console.log("stop clone"); 819 e.target.pause(); 820 } else { 821 // stop slider 822 pauseMainBanner(); 823 824 var promise = e.target.play(); 825 if (typeof promise !== "undefined") { 826 promise.catch(function () { 827 setTimeout(function () { 828 $("#" + players[videoID].id).prop("muted", true); 829 e.target.play(); 830 }, 100); 831 }); 832 } 833 } 834 835 // update slide class 836 $slide.addClass("started"); 837 // $slide.removeClass('loading') 838 } 839} 840 841function onHtml5PlayerStateChange(e) { 842 var videoID = e.target.id.replace("player_", ""); 843 if (videoID) { 844 var cover = players[videoID].cover; 845 var clone = $(e.target).closest(".main-slider__item:not(.swiper-slide-active)").length; 846 // var clone = $(e.target).closest(".owl-item:not(.active)").length; 847 var loop = players[videoID].loop; 848 var slideIndex = players[videoID].slideIndex; 849 850 if (e.target.paused && !e.target.ended) { 851 players[videoID].playing = false; 852 853 $("#player_" + videoID) 854 .closest(".main-slider__item") 855 // .find(".banners-big__inner") 856 .removeClass("loading"); 857 $("#player_" + videoID) 858 .closest(".main-slider__item") 859 .find(".banners-big__inner .btn-video") 860 .removeClass("loading"); 861 862 // sync time in cloned players & pause 863 var time = Math.floor(e.target.currentTime * 10) / 10; 864 e.target.currentTime = time; 865 for (var j in players) { 866 if ( 867 players[j].slideIndex == slideIndex && 868 (j != videoID || (clone && j == videoID)) && 869 document.getElementById(players[j].id) 870 ) { 871 // console.log("stop some clone"); 872 document.getElementById(players[j].id).pause(); 873 document.getElementById(players[j].id).currentTime = time; 874 } 875 } 876 pauseMainBanner(); //need for correct autoplay timeout 877 playMainBanner(); 878 } else if (e.target.ended) { 879 players[videoID].playing = false; 880 if (loop) { 881 $("#player_" + videoID) 882 .closest(".main-slider__item") 883 // .find(".banners-big__inner") 884 .addClass("loading"); 885 $("#player_" + videoID) 886 .closest(".main-slider__item") 887 .find(".banners-big__inner .btn-video") 888 .addClass("loading"); 889 890 e.target.play(); 891 } else { 892 // play slider 893 pauseMainBanner(); //need for correct autoplay timeout 894 playMainBanner(); 895 } 896 } else { 897 players[videoID].playing = true; 898 899 $("#player_" + videoID) 900 .closest(".main-slider__item") 901 // .find(".banners-big__inner") 902 .addClass("loading"); 903 $("#player_" + videoID) 904 .closest(".main-slider__item") 905 .find(".banners-big__inner .btn-video") 906 .addClass("loading"); 907 // stop slider 908 pauseMainBanner(); 909 } 910 } 911} 912 913waitYTPlayer = function (delay, callback) { 914 if (typeof YT !== "undefined" && YT && YT.Player) { 915 if (typeof callback == "function") callback(); 916 } else { 917 setTimeout(function () { 918 waitYTPlayer(delay, callback); 919 }, delay); 920 } 921}; 922 923// click on HTML5 video 924$(document).on("click", "video.video", function (e) { 925 var videoID = e.target.id.replace("player_", "");
926 if (videoID) { 927 if (players[videoID].playing) { 928 e.target.pause(); 929 } else { 930 e.target.play(); 931 } 932 } 933}); 934 935// START VIDEO BUTTON 936$(document).on("click", ".banners-big .btn-video", function (e) { 937 e.stopPropagation(); 938 startMainBannerSlideVideo($(this).closest(".main-slider__item")); 939}); 940 941// START VIDEO BY BANNER OR GOTO LINK 942$(document).on("click", ".banners-big .banners-big__item", function (e) { 943 var $item = $(this); 944 var vvideo = $item.hasClass("vvideo"); 945 var wurl = $item.hasClass("wurl"); 946 947 if (!$(e.target).hasClass("btn")) { 948 if (wurl) { 949 var href = $item.find(".target").attr("href"); 950 if (href.length) { 951 var target = $item.find(".target").attr("target"); 952 if (typeof target === "undefined" || target === "_self") { 953 location.href = href; 954 } else { 955 window.open(href); 956 } 957 } 958 } else { 959 if (vvideo) { 960 e.stopPropagation(); 961 $(this).find(".btn-video").trigger("click"); 962 } 963 } 964 } 965}); 966 967getRandomInt = function (min, max) { 968 return Math.floor(Math.random() * (max - min)) + min; 969}; 970 971var ignoreResize = []; 972 973BX.addCustomEvent("onWindowResize", function (eventdata) { 974 try { 975 CoverPlayer(); 976 } catch (e) { 977 } finally { 978 ignoreResize.pop(); 979 } 980}); 981 982BX.addCustomEvent("onSlideEnd", function (eventdata) { 983 try { 984 ignoreResize.push(true); 985 if (eventdata) { 986 var slider = eventdata.slider; 987 if (slider) { 988 setTimeout(function () { 989 $(".banners-big.front .btn-video, .banners-big.front .banners-big__item").removeClass("loading"); 990 }, 300); 991 } 992 } 993 } catch (e) { 994 } finally { 995 ignoreResize.pop(); 996 } 997}); 998 999BX.addCustomEvent("onSlide", function (eventdata) { 1000 try { 1001 ignoreResize.push(true); 1002 if (eventdata) { 1003 var slider = eventdata.slider; 1004 if (slider) { 1005 /*if (slider.data("owl.carousel")) { 1006 var curSlideIndex = slider.data("owl.carousel").current(); 1007 var curSlide = slider.find(".owl-item").eq(curSlideIndex).find(".banners-big__item"); 1008 } else if (slider.find(".owl-item.active").length) { 1009 var curSlide = slider.find(".owl-item.active").first().find(".banners-big__item"); 1010 } else { 1011 var curSlide = slider.find(".owl-item:not(.cloned)").eq(0).find(".banners-big__item"); 1012 }*/ 1013 1014 if (slider.data("swiper")) { 1015 var curSlideIndex = slider.data("swiper").realIndex; 1016 var curSlide = slider.find(".main-slider__item").eq(curSlideIndex + 1); 1017 } else if (slider.find(".swiper-slide-active").length) { 1018 var curSlide = slider.find(".swiper-slide-active").first(); 1019 } else { 1020 var curSlide = slider.find(".main-slider__item:not(.swiper-slide-duplicate)").eq(0); 1021 } 1022 1023 var curSlide = slider.find(".box.swiper-slide-active"); 1024 1025 var dataSlideIndex = curSlide.attr("data-slide_index"); 1026 1027 if (typeof curSlide !== "undefined" && curSlide.length) { 1028 var slidesIndexesWithVideo = slider.data("slidesIndexesWithVideo"); 1029 if (typeof slidesIndexesWithVideo === "undefined") { 1030 slidesIndexesWithVideo = []; 1031 } 1032 1033 var bVideoVisible = slidesIndexesWithVideo.indexOf(dataSlideIndex) != -1; 1034 if (bVideoVisible) { 1035 slider.addClass("video_visible"); 1036 } else { 1037 slider.removeClass("video_visible"); 1038 } 1039 1040 setTimeout(function () { 1041 CoverPlayer(); 1042 }, 200); 1043 1044 // pause play video 1045 if (typeof players !== "undefined" && players) { 1046 for (var j in players) { 1047 if (players[j].playing && players[j].slideIndex != dataSlideIndex) { 1048 if (typeof window[players[j].id] == "object") { 1049 if (players[j].videoPlayer === "YOUTUBE") { 1050 window[players[j].id].pauseVideo(); 1051 } else if (players[j].videoPlayer === "VIMEO") { 1052 window[players[j].id].pause(); 1053 } else if (players[j].videoPlayer === "RUTUBE") { 1054 document.getElementById(players[j].id).contentWindow.postMessage( 1055 JSON.stringify({ 1056 type: "player:pause", 1057 data: {}, 1058 }), 1059 "*" 1060 ); 1061 } else if (players[j].videoPlayer === "HTML5") { 1062 document.getElementById(players[j].id).pause(); 1063 } 1064 } 1065 } 1066 } 1067 } 1068 1069 // autoplay video
1070 var bVideoAutoPlay = curSlide.attr("data-video_autoplay") == 1; 1071 if (bVideoAutoPlay) { 1072 startMainBannerSlideVideo(curSlide); 1073 } 1074 } 1075 1076 if (curSlide.find("video").length && !curSlide.find(".btn-video").length) { 1077 var videoID = curSlide.find("video").attr("id"); 1078 document.getElementById(videoID).play(); 1079 } 1080 } 1081 } 1082 } catch (e) { 1083 } finally { 1084 ignoreResize.pop(); 1085 } 1086});
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.