PageSourceSearch

https://sib-svet.ru/bitrix/templates/aspro_next_mod/js/video_banner.js

js sib-svet.ru collected 2026-10-07 08:16:53 UTC 26,074 bytes, 839 lines download raw bytes

1var players = {};
2
3function pauseMainBanner(){
4	$('.top_slider_wrapp .flexslider').flexslider('pause');
5}
6
7function playMainBanner(){
8	$('.top_slider_wrapp .flexslider').flexslider('play');
9}
10
11function startMainBannerSlideVideo($slide){
12	var slideActiveIndex = $slide.attr('data-slide_index')
13	var $slides = $slide.closest('.slides').find('.box[data-slide_index="'+ slideActiveIndex +'"]') // current slide & cloned
14	var videoSource = $slide.attr('data-video_source')
15	if(videoSource){
16		$slides.addClass('loading')
17		pauseMainBanner()
18
19		var videoPlayerSrc = $slide.attr('data-video_src')
20		var videoSoundDisabled = $slide.attr('data-video_disable_sound')
21		var bVideoSoundDisabled = videoSoundDisabled == 1
22		var videoLoop = $slide.attr('data-video_loop')
23		var bVideoLoop = videoLoop == 1
24		var videoCover = $slide.attr('data-video_cover')
25		var bVideoCover = videoCover == 1 && !isMobile
26		var videoUnderText = $slide.attr('data-video_under_text')
27		var bVideoUnderText = videoUnderText == 1
28		var videoPlayer = $slide.attr('data-video_player')
29		var bVideoPlayerYoutube = videoPlayer === 'YOUTUBE'
30		var bVideoPlayerVimeo = videoPlayer === 'VIMEO'
31		var bVideoPlayerRutube = videoPlayer === 'RUTUBE'
32		var bVideoPlayerHtml5 = videoPlayer === 'HTML5'
33
34		if(videoPlayerSrc && !$slide.find('.video').length){
35			
36			var InitPlayer = function(){
37				$slides.each(function(i, node){
38					var $_slide = $(node);
39					var videoID = getRandomInt(100, 1000);
40					var bClone = $_slide.hasClass('clone'),
41						tmp_class = $_slide.attr('id');
42					if(!$_slide.find('.video.'+tmp_class).length)
43					{
44
45						if(bVideoPlayerYoutube){
46							$_slide.prepend('<iframe id="player_' + videoID + '" class="video ' + tmp_class + (bVideoCover ? ' cover' : '') + '" src="'+ videoPlayerSrc +'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="autoplay"></iframe>');
47						}
48						else if(bVideoPlayerVimeo){
49							$_slide.prepend('<iframe id="player_' + videoID + '" class="video ' + tmp_class + (bVideoCover ? ' cover' : '') + '" src="'+ videoPlayerSrc +'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="autoplay"></iframe>');
50						}
51						else if(bVideoPlayerRutube){
52							videoPlayerSrc = videoPlayerSrc + '&playerid=' + videoID;
53							$_slide.prepend('<iframe id="player_' + videoID + '" class="video ' + tmp_class + (bVideoCover ? ' cover' : '') + '" src="'+ videoPlayerSrc +'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="autoplay"></iframe>');
54						}
55						else if(bVideoPlayerHtml5){
56							$_slide.prepend('<video autobuffer playsinline webkit-playsinline autoplay id="player_' + videoID + '" class="video ' + tmp_class + (bVideoCover ? ' cover' : '') + '"' + (bVideoLoop ? ' loop ' : '') + (bVideoSoundDisabled || bClone ? ' muted ' : '') + '><source src="'+ videoPlayerSrc +'" 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>');
57						}
58					}
59
60					if(typeof(players) !== 'undefined' && players){
61						players[videoID] = {
62							id: 'player_' + videoID,
63							mute: bVideoSoundDisabled || bClone,
64							loop: bVideoLoop,
65							cover: bVideoCover,
66							videoPlayer: videoPlayer,
67							slideIndex: slideActiveIndex,
68							clone: bClone,
69							playing: false
70						};
71
72						if(bVideoPlayerYoutube){
73							window[players[videoID].id] = new YT.Player(
74								players[videoID].id, {
75									events: {
76										'onReady': onYoutubePlayerReady,
77										'onStateChange': onYoutubePlayerStateChange
78									}
79								}
80							);
81						}
82						else if(bVideoPlayerVimeo){
83						    window[players[videoID].id] = new Vimeo.Player(document.getElementById(players[videoID].id), {autopause: false, byline: false, loop: false, title: false});
84						    window[players[videoID].id].on('loaded', onVimeoPlayerReady)
85						    window[players[videoID].id].on('play', onVimeoPlayerStateChange)
86						    window[players[videoID].id].on('pause', onVimeoPlayerStateChange)
87						    window[players[videoID].id].on('ended', onVimeoPlayerStateChange)
88						}
89						else if(bVideoPlayerRutube){
90							document.getElementById(players[videoID].id).onload = function(e){
91								var videoID = this.id.replace('player_', '')
92								players[videoID].contentWindow = this.contentWindow
93								onRutubePlayerReady(videoID)
94							}
95						}
96						else if(bVideoPlayerHtml5){
97							document.getElementById(players[videoID].id).addEventListener('loadeddata', onHtml5PlayerReady)
98							document.getElementById(players[videoID].id).addEventListener('play', onHtml5PlayerStateChange)
99							document.getElementById(players[videoID].id).addEventListener('pause', onHtml5PlayerStateChange)
100							document.getElementById(players[videoID].id).addEventListener('ended', onHtml5PlayerStateChange)
101						}
102					}
103				});
104			}
105
106			if(!bVideoPlayerHtml5){
107				var obPlayerVariable = ''
108				var fnPlayerVariable = ''
109				if(typeof window['YoutubePlayerScriptLoaded'] === 'undefined'){
110					window['YoutubePlayerScriptLoaded'] = false
111				}
112				if(typeof window['VimeoPlayerScriptLoaded'] === 'undefined'){
113					window['VimeoPlayerScriptLoaded'] = false
114				}
115				if(typeof window['RutubePlayerListnersAdded'] === 'undefined'){
116					window['RutubePlayerListnersAdded'] = false
117				}
118
119				// load script
120				if(bVideoPlayerYoutube){
121					obPlayerVariable = 'YT'
122					fnPlayerVariable = 'Player'
123					if(!window['YoutubePlayerScriptLoaded']){
124						var script = document.createElement('script');
125						script.src = "https://www.youtube.com/iframe_api";
126						var firstScriptTag = document.getElementsByTagName('script')[0];
127						firstScriptTag.parentNode.insertBefore(script, firstScriptTag);
128						window['YoutubePlayerScriptLoaded'] = true;
129					}
130				}
131				else if(bVideoPlayerVimeo){
132					obPlayerVariable = 'Vimeo'
133					if(!window['VimeoPlayerScriptLoaded']){
134						var script = document.createElement('script');
135						script.src = 'https://player.vimeo.com/api/player.js';
136						(document.head || document.documentElement).appendChild(script);
137						window['VimeoPlayerScriptLoaded'] = true
138					}
139				}
140				else if(bVideoPlayerRutube){
141					if(!window['RutubePlayerListnersAdded']){
142						window.addEventListener('message', function(e){
143							if(e.origin.indexOf('rutube.ru') !== -1){
144							    var message = JSON.parse(e.data)
145							    if(typeof message === 'object' && message){
146							    	if(typeof message.type !== 'undefined' && message.type){
147							    		var videoID = false
148
149							    		for(var j in players){
150									    	if(typeof players[j].contentWindow !== 'undefined'){
151									    		if(players[j].contentWindow == e.source){
152									    			videoID = j
153									    			break
154									    		}
155									    	}
156									    }
157
158									    if(videoID){
159										    switch (message.type) {
160										        case 'player:changeState':
161										            onRutubePlayerStateChange(videoID, message.data.state)
162										            break
163										        case 'player:currentTime':
164										            onRutubePlayerCurrentTime(videoID, message.data.time)
165										            break
166										    }
167										}
168									}
169							    }
170							}
171						});
172					}
173				}
174
175				if(!obPlayerVariable.length){
176					InitPlayer()
177				}
178				else{
179					// wait player class
180					if(typeof window[obPlayerVariable] === 'object'){
181						if(!fnPlayerVariable.length || (fnPlayerVariable.length && typeof window[obPlayerVariable][fnPlayerVariable] === 'function')){
182
183							InitPlayer()
184						}
185					}
186					else{
187						var waitPlayerInterval = setInterval(function(){
188							if(typeof window[obPlayerVariable] === 'object'){
189								if(!fnPlayerVariable.length || (fnPlayerVariable.length && typeof window[obPlayerVariable][fnPlayerVariable] === 'function')){
190
191									clearInterval(waitPlayerInterval)
192
193									InitPlayer()
194								}
195							}
196						}, 50)
197					}
198				}
199
200			}
201			else{
202				InitPlayer()
203			}
204		}
205		else
206		{
207			// pause play video
208			if(typeof(players) !== 'undefined' && players){
209				for(var j in players){
210					if(/*players[j].playing &&*/ !players[j].clone/* && (players[j].slideIndex != curSlideIndex)*/){
211						if((typeof window[players[j].id] == 'object')){
212							if(players[j].playing)
213							{
214								if(players[j].videoPlayer === 'YOUTUBE'){
215									window[players[j].id].pauseVideo()
216								}
217								else if(players[j].videoPlayer === 'VIMEO'){
218									window[players[j].id].pause()
219								}
220								else if(players[j].videoPlayer === 'RUTUBE'){
221									document.getElementById(players[j].id).contentWindow.postMessage(JSON.stringify({
222									    type: 'player:pause',
223									    data: {}
224									}), '*')
225								}
226								else if(players[j].videoPlayer === 'HTML5'){
227									document.getElementById(players[j].id).pause()
228								}
229							}
230							else if(players[j].slideIndex == slideActiveIndex)
231							{
232								if(players[j].videoPlayer === 'YOUTUBE'){
233									window[players[j].id].playVideo()
234								}
235								else if(players[j].videoPlayer === 'VIMEO'){
236									window[players[j].id].play()
237								}
238								else if(players[j].videoPlayer === 'RUTUBE'){
239									document.getElementById(players[j].id).contentWindow.postMessage(JSON.stringify({
240									    type: 'player:play',
241									    data: {}
242									}), '*')
243								}
244								else if(players[j].videoPlayer === 'HTML5'){
245									document.getElementById(players[j].id).play()
246								}
247							}
248						}
249					}
250				}
251			}
252		}
253	}
254}
255
256var CoverPlayerHtml = function(curSlideIndex){
257	var $videoCover = $('.video.cover');
258
259	if($videoCover.length){
260		//setTimeout(function(){
261			var currenSlide = $('.box[data-slide_index="'+curSlideIndex+'"]');
262
263			var bannersHeight = $('.top_slider_wrapp').height();
264			var bannersWidth = $('.top_slider_wrapp').width();
265			var videoHeight = $('.top_slider_wrapp video').outerHeight();
266			var videoWidth = $('.top_slider_wrapp video').outerWidth();
267
268			if(bannersHeight >= videoHeight && videoWidth >= bannersWidth){
269				currenSlide.find('video.cover').height(bannersHeight+(jQuery.browser.mobile ? 30 : 0)).width('auto');
270				
271				if(currenSlide.hasClass('wvideo'))
272					currenSlide.css('background-position-x', 'auto');
273
274			}
275			else if(bannersHeight < videoHeight && videoWidth < bannersWidth){
276				currenSlide.find('video.cover').width(bannersWidth).height('auto');
277				
278				if(currenSlide.hasClass('wvideo'))
279					currenSlide.css('background-position-y', 'auto');
280			}
281
282			//if(window.matchMedia('(min-width:992px)').matches){
283				//setTimeout(function(){
284					if(currenSlide.find('video.cover').length)
285					{
286						currenSlide.find('video.cover').css('margin-top', -videoHeight/2);
287						var bannerWidth = $('.top_slider_wrapp video').width();
288						// currenSlide.find('video.cover').css('margin-left', -bannerWidth/2);
289					}
290				//}, 300);
291			/*}
292			else{
293				$('.top_slider_wrapp video').css('margin-top', 0);
294			}*/
295			setTimeout(function(){
296				$('.video.cover').css('visibility', 'visible');
297			}, 1300);
298		//}, 10);
299	}
300}
301
302var CoverPlayer = function(){
303	var $videoCover = $('.video.cover')
304	if($videoCover.length){
305		var bannersHeight = $('.top_slider_wrapp').height()
306		var bannersWidth = $('.top_slider_wrapp').width()
307		var windowWidth = $(window).width()
308		var height = windowWidth * 9 / 16
309		$videoCover.css({'height': height + 'px', 'margin-top': ((bannersHeight - height) / 2) + 'px'})
310	}
311}
312
313function onYoutubePlayerReady(e) {
314	var videoID = e.target.a.id.replace('player_', '')
315	if(videoID){
316		var mute = players[videoID].mute
317		var cover = players[videoID].cover
318    	var clone = players[videoID].clone
319
320    	// mute sound
321		if(mute || clone){
322			window[players[videoID].id].mute()
323		}
324
325    	// cover video
326		if(cover){
327	    	CoverPlayer()
328	    }
329
330    	// not start clone video playing
331    	if(clone){
332    		setTimeout(function(){
333				e.target.pauseVideo()
334    		}, 100)
335    	}
336    	else{
337		    // stop slider
338			pauseMainBanner()
339			e.target.playVideo();
340
341		    // e.target.playVideo();
342		    // e.target.playVideo();
343    	}
344
345    	// update slide class
346		var $slide = $('#player_' + videoID).closest('.box')
347		$slide.addClass('started')
348		// $slide.removeClass('loading')
349    }
350}
351
352function onYoutubePlayerStateChange(e){
353	var videoID = e.target.a.id.replace('player_', '')
354    if(videoID){
355    	var clone = players[videoID].clone
356		var loop = players[videoID].loop
357    	var slideIndex = players[videoID].slideIndex
358    	if(!clone){
359			if(e.data === YT.PlayerState.PLAYING){
360				players[videoID].playing = true
361
362				$('#player_'+videoID).closest('.box').find('.wrapper_inner').addClass('loading');
363				$('#player_'+videoID).closest('.box').find('.wrapper_inner .btn-video').addClass('loading');
364
365				// stop slider
366				pauseMainBanner()
367
368				e.target.playVideo()
369			}
370			else if(e.data === YT.PlayerState.PAUSED){
371		    	players[videoID].playing = false
372
373		    	// sync time in cloned players & pause
374	    		var time = Math.floor(window[players[videoID].id].getCurrentTime() * 10) / 10
375
376				$('#player_'+videoID).closest('.box').find('.wrapper_inner').removeClass('loading');
377				$('#player_'+videoID).closest('.box').find('.wrapper_inner .btn-video').removeClass('loading');
378	    		
379				window[players[videoID].id].seekTo(time, true)
380				for(var j in players){
381					if(players[j].slideIndex == slideIndex && players[j].clone){
382						
383						if('getCurrentTime' in window[players[j].id])
384						{
385							window[players[j].id].pauseVideo()
386							window[players[j].id].seekTo(time, true)
387						}
388					}
389				}
390			}
391			else if(e.data === YT.PlayerState.ENDED){
392				players[videoID].playing = false
393		    	if(loop){
394		    		e.target.playVideo()
395		    	}
396		    	else{
397		    		// play slider
398					playMainBanner()
399		    	}
400			}
401		}
402	}
403}
404
405function onVimeoPlayerReady(e){
406	var videoID = this.element.id.replace('player_', '')
407	if(videoID){
408		var mute = players[videoID].mute
409		var cover = players[videoID].cover
410    	var clone = players[videoID].clone
411
412    	// mute sound
413		if(mute || clone){
414			window[players[videoID].id].setVolume(0)
415		}
416
417    	// cover video
418		if(cover){
419	    	CoverPlayer()
420	    }
421
422    	// not start clone video playing
423    	if(clone){
424    		setTimeout(function(){
425				window[players[videoID].id].pause()
426    		}, 100)
427    	}
428    	else{
429		    // stop slider
430			pauseMainBanner()
431
432		    window[players[videoID].id].play()
433    	}
434
435    	// update slide class
436		var $slide = $('#player_' + videoID).closest('.box')
437		$slide.addClass('started')
438		// $slide.removeClass('loading')
439    }
440}
441
442function onVimeoPlayerStateChange(e){
443	var videoID = this.element.id.replace('player_', '')
444	if(videoID){
445		var cover = players[videoID].cover
446    	var clone = players[videoID].clone
447		var loop = players[videoID].loop
448    	var slideIndex = players[videoID].slideIndex
449
450    	if(!clone){
451    		window[players[videoID].id].getPaused().then(function(paused){
452    			if(paused){
453			    	players[videoID].playing = false
454
455			    	$('#player_'+videoID).closest('.box').find('.wrapper_inner').removeClass('loading');
456					$('#player_'+videoID).closest('.box').find('.wrapper_inner .btn-video').removeClass('loading');
457
458			    	// sync time in cloned players & pause
459			    	window[players[videoID].id].getCurrentTime().then(function(seconds){
460			    		var time = Math.floor(seconds * 10) / 10
461			    		window[players[videoID].id].setCurrentTime(time).then(function(seconds){
462							for(var j in players){
463								if(players[j].slideIndex == slideIndex && players[j].clone){
464									window[players[j].id].pause()
465									window[players[j].id].setCurrentTime(time).then(function(seconds){})
466								}
467							}
468			    		})
469			    	})
470    			}
471    			else{
472    				$('#player_'+videoID).closest('.box').find('.wrapper_inner').addClass('loading');
473					$('#player_'+videoID).closest('.box').find('.wrapper_inner .btn-video').addClass('loading');
474		    		window[players[videoID].id].getEnded().then(function(ended){
475		    			if(ended){
476							players[videoID].playing = false
477					    	if(loop){
478					    		window[players[videoID].id].play()
479					    	}
480					    	else{
481					    		// play slider
482								playMainBanner()
483					    	}
484		    			}
485		    			else{
486		    				players[videoID].playing = true
487
488
489		    				// stop slider
490							pauseMainBanner()
491		    			}
492		    		})
493    			}
494    		})
495		}
496	}
497}
498
499function onRutubePlayerReady(videoID){
500	if(videoID){
501		var mute = players[videoID].mute
502		var cover = players[videoID].cover
503    	var clone = players[videoID].clone
504    	var player = document.getElementById(players[videoID].id)
505
506    	// mute sound
507		if(mute || clone){
508			player.contentWindow.postMessage(JSON.stringify({
509			    type: 'player:mute',
510			    data: {}
511			}), '*')
512		}
513
514    	// cover video
515		if(cover){
516	    	CoverPlayer()
517	    }
518
519    	// not start clone video playing
520    	if(clone){
521    		setTimeout(function(){
522				player.contentWindow.postMessage(JSON.stringify({
523				    type: 'player:pause',
524				    data: {}
525				}), '*')
526    		}, 100)
527    	}
528    	else{
529		    // stop slider
530			pauseMainBanner()
531
532		    player.contentWindow.postMessage(JSON.stringify({
533			    type: 'player:play',
534			    data: {}
535			}), '*')
536    	}
537
538    	// update slide class
539		var $slide = $('#player_' + videoID).closest('.box')
540		$slide.addClass('started')
541		// $slide.removeClass('loading')
542    }
543}
544
545function onRutubePlayerCurrentTime(videoID, time){
546	if(videoID){
547		players[videoID].time = time
548	}
549}
550
551function onRutubePlayerStateChange(videoID, state){
552	if(videoID){
553    	var clone = players[videoID].clone
554		var loop = players[videoID].loop
555    	var slideIndex = players[videoID].slideIndex
556    	var player = document.getElementById(players[videoID].id)
557
558    	if(!clone){
559			if(state === 'playing'){
560				$('#'+videoID).closest('.box').find('.wrapper_inner').addClass('loading');
561				$('#'+videoID).closest('.box').find('.wrapper_inner .btn-video').addClass('loading');
562
563				players[videoID].playing = true
564
565				// stop slider
566				pauseMainBanner()
567			}
568			else if(state === 'paused'){
569				$('#'+videoID).closest('.box').find('.wrapper_inner').removeClass('loading');
570				$('#'+videoID).closest('.box').find('.wrapper_inner .btn-video').removeClass('loading');
571
572		    	players[videoID].playing = false
573
574		    	// sync time in cloned players & pause
575	    		var time = Math.floor(players[videoID].time * 10) / 10
576				player.contentWindow.postMessage(JSON.stringify({
577				    type: 'player:setCurrentTime',
578				    data: {time: time}
579				}), '*')
580				for(var j in players){
581					if(players[j].slideIndex == slideIndex && players[j].clone){
582						document.getElementById(players[j].id).contentWindow.postMessage(JSON.stringify({
583						    type: 'player:pause',
584						    data: {}
585						}), '*')
586						document.getElementById(players[j].id).contentWindow.postMessage(JSON.stringify({
587						    type: 'player:setCurrentTime',
588						    data: {time: time}
589						}), '*')
590					}
591				}
592			}
593			else if(state === 'stopped'){
594				$('#'+videoID).closest('.box').find('.wrapper_inner').removeClass('loading');
595				$('#'+videoID).closest('.box').find('.wrapper_inner .btn-video').removeClass('loading');
596
597				players[videoID].playing = false
598		    	if(loop){
599		    		player.contentWindow.postMessage(JSON.stringify({
600					    type: 'player:play',
601					    data: {}
602					}), '*')
603		    	}
604		    	else{
605		    		// play slider
606					playMainBanner()
607		    	}
608			}
609		}
610	}
611}
612
613function onHtml5PlayerReady(e){
614	var videoID = e.target.id.replace('player_', '')
615	if(videoID){
616		var mute = players[videoID].mute
617		var cover = players[videoID].cover
618    	var clone = players[videoID].clone
619
620    	// mute sound
621		if(mute || clone){
622			$('#' + players[videoID].id).prop('muted', true);
623		}
624
625    	// cover video
626		if(cover){
627	    	CoverPlayer()
628	    }
629
630    	// not start clone video playing
631    	if(clone){
632    		e.target.pause()
633    	}
634    	else{
635		    // stop slider
636			pauseMainBanner()
637
638		    e.target.play()
639    	}
640
641    	// update slide class
642		var $slide = $('#player_' + videoID).closest('.box')
643		$slide.addClass('started')
644		// $slide.removeClass('loading')
645    }
646}
647
648function onHtml5PlayerStateChange(e){
649	var videoID = e.target.id.replace('player_', '')
650	if(videoID){
651    	var cover = players[videoID].cover
652    	var clone = players[videoID].clone
653		var loop = players[videoID].loop
654    	var slideIndex = players[videoID].slideIndex
655
656    	if(!clone){
657			if(e.target.paused){
658		    	players[videoID].playing = false
659
660		    	$('#player_'+videoID).closest('.box').find('.wrapper_inner').removeClass('loading');
661				$('#player_'+videoID).closest('.box').find('.wrapper_inner .btn-video').removeClass('loading');
662
663		    	// sync time in cloned players & pause
664	    		var time = Math.floor(e.target.currentTime * 10) / 10
665				e.target.currentTime = time
666				for(var j in players){
667					if(players[j].slideIndex == slideIndex && players[j].clone){
668						document.getElementById(players[j].id).pause()
669						document.getElementById(players[j].id).currentTime = time
670					}
671				}
672			}
673			else if(e.target.ended){
674				players[videoID].playing = false
675		    	if(loop){
676		    		$('#player_'+videoID).closest('.box').find('.wrapper_inner').addClass('loading');
677					$('#player_'+videoID).closest('.box').find('.wrapper_inner .btn-video').addClass('loading');
678
679		    		e.target.play()
680		    	}
681		    	else{
682		    		// play slider
683					playMainBanner()
684		    	}
685			}
686			else{
687				players[videoID].playing = true
688
689				$('#player_'+videoID).closest('.box').find('.wrapper_inner').addClass('loading');
690				$('#player_'+videoID).closest('.box').find('.wrapper_inner .btn-video').addClass('loading');
691				// stop slider
692				pauseMainBanner()
693			}
694		}
695	}
696}
697
698waitYTPlayer = function(delay, callback){
699	if((typeof YT !== "undefined") && YT && YT.Player)
700	{
701		if(typeof callback == 'function')
702			callback();
703	}
704	else
705	{
706		setTimeout(function(){
707			waitYTPlayer(delay, callback);
708		}, delay);
709	}
710}
711
712// click on HTML5 video
713$(document).on('click', 'video.video', function(e){
714	var videoID = e.target.id.replace('player_', '')
715    if(videoID){
716    	if(players[videoID].playing){
717			e.target.pause()
718    	}
719    	else{
720    		//e.target.play()
721    	}
722    }
723})
724
725$('.top_slider_wrapp .box .wrapper_inner').on('click', function(e){
726	if(!$(e.target).hasClass('btn-video'))
727	{
728		if($(this).hasClass('loading'))
729		{
730			e.stopPropagation();
731			$(this).find('.btn-video').trigger('click');
732		}
733		if($(this).closest('.box').data('video_autoplay'))
734			startMainBannerSlideVideo($(this).closest('.box'));
735	}
736})
737
738$(document).on('click', '.top_slider_wrapp .box.wvideo', function(){
739	$(this).find('.btn-video').trigger('click');
740});
741
742// START VIDEO BUTTON
743$(document).on('click', '.top_slider_wrapp .box .btn-video', function(e){
744	e.stopPropagation();
745	if(!$(this).hasClass('loading'))
746	{
747		$(this).addClass('loading');
748		$(this).closest('.wrapper_inner').addClass('loading');
749	}
750	else
751	{
752		$(this).removeClass('loading');
753		$(this).closest('.wrapper_inner').removeClass('loading');
754	}
755
756	startMainBannerSlideVideo($(this).closest('.box'));
757});
758
759getRandomInt = function(min, max){
760	return Math.floor(Math.random() * (max - min)) + min;
761}
762
763BX.addCustomEvent('onSlideEnd', function(eventdata) {
764	try{
765		ignoreResize.push(true);
766		if(eventdata){
767			var slider = eventdata.slider;
768			if(slider){
769				setTimeout(function(){
770					$('.banners-big.front .btn-video, .banners-big.front .box').removeClass('loading');
771				}, 300);
772			}
773		}
774	}
775	catch(e){}
776	finally{
777		ignoreResize.pop();
778	}
779});
780
781var ignoreResize = [];
782
783BX.addCustomEvent('onSlide', function(eventdata) {
784	try{
785		ignoreResize.push(true);
786		if(eventdata){
787			var slider = eventdata.slider;
788			if(slider){
789				var curSlide = slider.find('.box.flex-active-slide');
790				var curSlideIndex = curSlide.attr('data-slide_index');
791
792				if(typeof(curSlideIndex) !== 'undefined' && curSlideIndex.length){
793					setTimeout(function(){
794						CoverPlayerHtml(curSlideIndex);
795					}, 200);
796
797					// pause play video
798					if(typeof(players) !== 'undefined' && players){
799						for(var j in players){
800							if(players[j].playing && !players[j].clone && (players[j].slideIndex != curSlideIndex)){
801								if((typeof window[players[j].id] == 'object')){
802									if(players[j].videoPlayer === 'YOUTUBE'){
803										window[players[j].id].pauseVideo()
804									}
805									else if(players[j].videoPlayer === 'VIMEO'){
806										window[players[j].id].pause()
807									}
808									else if(players[j].videoPlayer === 'RUTUBE'){
809										document.getElementById(players[j].id).contentWindow.postMessage(JSON.stringify({
810										    type: 'player:pause',
811										    data: {}
812										}), '*')
813									}
814									else if(players[j].videoPlayer === 'HTML5'){
815										document.getElementById(players[j].id).pause()
816									}
817								}
818							}
819						}
820					}
821					// autoplay video
822					var bVideoAutoPlay = curSlide.attr('data-video_autoplay') == 1
823					if(bVideoAutoPlay){
824						startMainBannerSlideVideo(curSlide)
825					}
826				}
827
828				if(curSlide.find('video').length && !curSlide.find('.btn-video').length){
829					var videoID = curSlide.find('video').attr('id');
830					document.getElementById(videoID).play();
831				}
832			}
833		}
834	}
835	catch(e){}
836	finally{
837		ignoreResize.pop();
838	}
839});

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.