PageSourceSearch

https://www.zamzamacademy.com/wp-content/plugins/vidorev-extensions/assets/front-end/main.js?ver=2.9.9.9.9.3

js zamzamacademy.com collected 2026-10-02 09:58:44 UTC 113,414 bytes, 3,376 lines download raw bytes

1/*
2Plugin Name: VidoRev Extensions
3Author: BeeTeam368
4Author URI: http://themeforest.net/user/beeteam368
5Version: 2.9.9.9.9.3
6License: Themeforest Licence
7License URI: http://themeforest.net/licenses
8*/
9
10var vidorev_builder_control = null;
11
12var imdb 	= {};
13imdb.rating = {};	
14imdb.rating.run = function(values){
15	if(typeof(values)==='object' && typeof(values.resource)==='object' && typeof(vidorev_builder_control)!=="undefined" && vidorev_builder_control!==null){	
16		vidorev_builder_control.imdb_rating_html(values.resource);		
17	}
18}
19
20;(function(factory) {
21    if(typeof define === 'function' && define.amd){
22        define(['jquery'], factory);
23    }else if (typeof exports !== 'undefined'){
24        module.exports = factory(require('jquery'));
25    }else{
26        factory(jQuery);
27    }
28}(function($){
29	'use strict';
30	
31	var prefix = 'vidorev_plugin';		
32	var vidorev_plugin = window.vidorev_plugin || {};
33	
34  	vidorev_plugin = (function(){
35		function vidorev_plugin(el, options){
36			var _ = this;
37			
38			_.defaults = {
39									
40			}
41			
42			if(typeof(options)==='object'){
43				_.options = $.extend({}, _.defaults, options);
44			}else{
45				_.options = _.defaults;
46			}
47			
48			_.global_youtube_API_ready = false;
49			_.global_live_yt_ready = 1;
50			_.global_blog_ajax_load = [];
51			
52			_.$el = $(el);
53			
54			_.global_scroll_bar_lib = 'malihu';
55			if(typeof(vidorev_jav_js_object)!=='undefined' && typeof(vidorev_jav_js_object.scrollbar_library)!=='undefined' && vidorev_jav_js_object.scrollbar_library == 'overlay'){
56				_.global_scroll_bar_lib = 'overlay';
57			}
58			
59			_.init();
60		}	
61			
62		return vidorev_plugin;
63	}());	
64		
65	/*init function [Core]*/
66	vidorev_plugin.prototype.init = function(){
67		var _ = this;
68		
69		_.like_action();
70		_.shortcode_slider_calc_width();
71		_.shortcode_slider();
72		_.filter_tab_responsive();
73		_.filter_action();
74		_.next_paged_action();
75		_.loadmore_paged_action();
76		_.imdb_rating_jsonp();
77		_.videoPreview();
78		_.youtubePreviewBroadcasts();
79		_.youtubeBroadcastsPrevNextRefresh();
80		_.youtubeBroadcastsTriggerFirstLoad();
81		_.vidorev_video_report();
82		_.vidorev_channel_subscribe();
83		_.vidorev_cf7_select2();
84		_.show_more_videos();
85		_.get_playlist_by_user_login();
86		_.front_end_edit_post();
87		_.front_end_delete_post();
88		_.series_dropdown_menu();
89		_.document_control();
90		_.advance_search();
91		_.ads_settings();
92		_.tmdb_block_render();
93		_.youtube_live_video();
94		
95		_.window_resize();
96		_.window_load();
97		
98		/*init*/		
99		_.$el.trigger(prefix+'init', [_]);/*init*/
100	}/*init function [Core]*/
101	
102	vidorev_plugin.prototype.like_action = function(){
103		var _ = this;
104		
105		_.$el.off('.vpLikeAction').on('click.vpLikeAction', '.like-action-control', function(){
106			var $t 				= $(this),
107				id 				= $.trim($t.attr('data-id')),
108				task_action 	= $.trim($t.attr('data-action')),
109				$likeaction		= _.$el.find('.like-action-control');
110				
111			if($t.find('.login-req').length>0){
112				return false;
113			}	
114			
115			var data 		= {
116				'action': 		'like_action_query',				
117				'post_id': 		id,
118				'task_action':	task_action,
119				'security':		vidorev_jav_js_object.security,					
120			}
121			
122			$likeaction.addClass('loading-ajax');
123			$t.addClass('add-load-icon');
124			
125			$.ajax({
126				type: 		'POST',
127				url: 		vidorev_jav_js_object.admin_ajax,
128				cache: 		false,
129				data: 		data,
130				dataType: 	'json',
131				success: 	function(data, textStatus, jqXHR){
132					if(typeof(data) === 'object'){
133						if(data.error == 0){
134							$likeaction.removeClass('active-item-sub');
135							if(data.has_voted==1){
136								$('.like-action-control[data-id="'+(id)+'"][data-action="like"]').addClass('active-item-sub');
137							}else if(data.has_voted==-1){
138								$('.like-action-control[data-id="'+(id)+'"][data-action="dislike"]').addClass('active-item-sub');
139							}
140							
141							$('.like-count[data-id="'+(id)+'"]').text(data.like_count);	
142							$('.dislike-count[data-id="'+(id)+'"]').text(data.dislike_count);
143							$('.like-count-full[data-id="'+(id)+'"]').text(data.like_count_full.toLocaleStr
143ing());	
144							$('.dislike-count-full[data-id="'+(id)+'"]').text(data.dislike_count_full.toLocaleString());
145							
146							var likebar_percent = 0;
147							if(parseFloat(data.like_count_full) + parseFloat(data.dislike_count_full) == 0 || parseFloat(data.like_count_full) + parseFloat(data.dislike_count_full) < 0){
148								likebar_percent = 0;
149							}else{
150								likebar_percent = parseFloat(data.like_count_full) / (parseFloat(data.like_count_full) + parseFloat(data.dislike_count_full)) * 100;
151							}		
152							$('.like-dislike-bar-percent-control').css({'width':(likebar_percent)+'%'});						
153						}else{
154							$('body').trigger('vidorev_like_dislike_error', [$t, task_action, $likeaction, data]);
155						}
156						
157						$likeaction.removeClass('loading-ajax');
158						$t.removeClass('add-load-icon');
159					}
160				},
161				error: function( jqXHR, textStatus, errorThrown ){
162				}
163			});
164		});		
165	}
166	
167	vidorev_plugin.prototype.window_load = function(){
168		var _ = this;
169		$(window).on('load', function(){
170			
171			/*action*/
172			/*action*/
173			
174		});
175	}
176	
177	vidorev_plugin.prototype.document_control = function(){
178		var _ = this;
179		$(document).on('click', function(e){			
180			var $target = $(e.target);
181			if(!$target.closest('.series-dropdown-control').length && $('.series-dropdown-control').is(":visible")) {
182				$('.series-dropdown-control').removeClass('active-item');
183			}        
184		});
185	}
186	
187	vidorev_plugin.prototype.window_resize = function(){
188		var _ 				= this,
189			default_width 	= window.innerWidth;
190			
191		$(window).on('resize', function(){
192			if(default_width === window.innerWidth){
193				return;
194			}
195			
196			/*action*/
197			_.shortcode_slider_calc_width();
198			/*action*/
199			
200			default_width 	= window.innerWidth;
201		});
202	}
203	
204	vidorev_plugin.prototype.shortcode_slider_calc_width = function(){
205		var _ = this;
206		
207		var $fs = $('body.main-layout-boxed .page-slider-header.full-width-slider'),		
208			wW 	= window.innerWidth,
209			w	= $(window).width();
210		
211		if(wW >= 576 && wW < 768){
212			$fs.css({'margin-left':((540-w)/2)+'px', 'margin-right':((540-w)/2)+'px', 'max-width':(w)+'px'});
213		}else if(wW >= 768 && wW < 992){
214			$fs.css({'margin-left':((720-w)/2)+'px', 'margin-right':((720-w)/2)+'px', 'max-width':(w)+'px'});
215		}else if(wW >= 992 && wW < 1200){
216			$fs.css({'margin-left':((930-w)/2)+'px', 'margin-right':((930-w)/2)+'px', 'max-width':(w)+'px'});
217		}else if(wW>=1200){
218			$fs.css({'margin-left':((1140-w)/2)+'px', 'margin-right':((1140-w)/2)+'px', 'max-width':(w)+'px'});
219		}else{
220			$fs.css({'margin-left':'0', 'margin-right':'0', 'max-width':'none'});
221		}
222	}
223	
224	vidorev_plugin.prototype.shortcode_slider = function(){
225		var _ = this;
226		
227		_.$el.find('.is-shortcode-slider:not(.ready-setup)').each(function(index, element){
228			var $t 		= $(this),
229				p 		= $.parseJSON($t.attr('data-params')),
230				$sync 	= $('.'+(p['rnd_class'])).find('.sync-slider-small-control');
231			
232			$t.addClass('ready-setup');
233			
234			var options = {
235				arrows:false,
236				dots: false,
237				infinite: true,
238				speed: 500,
239				slidesToShow: 1,
240				adaptiveHeight: true,
241				focusOnSelect: false,
242				prevArrow: '<button class="slick-prev slick-arrow" aria-label="Previous" type="button"><i class="fa fa-angle-left" aria-hidden="true"></i></button>',
243				nextArrow: '<button class="slick-next slick-arrow" aria-label="Next" type="button"><i class="fa fa-angle-right" aria-hidden="true"></i></button>',
244			};
245			
246			if(p['fade']=='yes'){
247				options['fade'] = true;
248			}
249			
250			if(p['arrows']){
251				options['arrows'] = true;
252			}
253			
254			if(p['dots']){
255				options['dots'] = true;
256			}
257			
258			if(p['autoplay']!=0 && parseFloat(p['autoplay'])>0){
259				options['autoplay'] = true;
260				options['autoplaySpeed'] = p['autoplay'];
261			}
262			
263			switch(p['layout']){
264				case 'slider-1':
265					if($t.find('.slide-item').length<2){
266						return;
267					}					
268					break;
269				
270				case 'slider-2':
271					if($t.find('.slide-item').length<2){
272						return;
273					}	
274					break;
275					
276				case 'slider-3':
277					break;	
278					
279				case 'slider-4':
280					options['asNavFor'] = $sync;					
281					break;
282					
283				case 'slider-5':
284					options['slidesToShow'] 	= 3;
285					options['centerMode'] 		= true;
286					options['centerPadding'] 	= '15%';
287					options['responsive'] = [
288						{
289							breakpoint: 2181,
290							settings: {
291								slidesToShow: 	2,
292								centerPadding: '18%',
293							}
294						},
295						{
296							breakpoint: 1601,
297							settings: {
298								slidesToShow: 	2,
299								centerPadding: '15%',
300							}
301						},
302						{
303							breakpoint: 1025,
304							settings: {
305								slidesToShow: 	2,
306								centerPadding: '80px',
307							}
308						},
309						{
310							breakpoint: 992,
311							settings: {
312								slidesToShow: 	2,
313								centerPadding: '60px',
314							}
315						},
316						{
317							breakpoint: 768,
318							settings: {
319								slidesToShow: 	1,
320								centerPadding: '40px',
321							}
322						},
323						{
324							breakpoint: 481,
325							settings: {
326								slidesToShow: 	1,
327								centerPadding: '15px',
328							}
329						},
330					];
331					break;
332					
333				case 'slider-6':
334					options['slidesToShow'] 	= 4;
335					options['slidesToScroll'] 	= 4;
336					options['responsive'] = [
337						{
338							breakpoint: 1200,
339							settings: {
340								slidesToShow: 	3,
341								slidesToScroll:	3,								
342							}
343						},
344						{
345							breakpoint: 992,
346							settings: {
347								slidesToShow: 	2,
348								slidesToScroll: 2,								
349							}
350						},
351						{
352							breakpoint: 576,
353							settings: {
354								slidesToShow: 	1,
355								slidesToScroll: 1,								
356							}
357						},					
358					];
359					
360					if(_.$el.hasClass('fullwidth-mode-enable')){
361						options['slidesToShow'] 	= 6;
362						options['slidesToScroll'] 	= 6;
363						options['responsive'] = [
364							{
365								breakpoint: 2000,
366								settings: {
367									slidesToShow: 	5,
368									slidesToScroll:	5,								
369								}
370							},
371							{
372								breakpoint: 1580,
373								settings: {
374									slidesToShow: 	4,
375									slidesToScroll:	4,								
376								}
377							},
378							{
379								breakpoint: 1200,
380								settings: {
381									slidesToShow: 	3,
382									slidesToScroll:	3,								
383								}
384							},
385							{
386								breakpoint: 992,
387								settings: {
388									slidesToShow: 	2,
389									slidesToScroll: 2,								
390								}
391							},
392							{
393								breakpoint: 576,
394								settings: {
395									slidesToShow: 	1,
396									slidesToScroll: 1,								
397								}
398							},					
399						];
400					}
401					break;
402					
403				case 'slider-7':
404					break;
405					
406				case 'slider-8':
407					options['slidesToShow'] 	= 3;
408					options['responsive'] = [
409						{
410							breakpoint: 1200,
411							settings: {
412								slidesToShow: 	2,							
413							}
414						},						
415						{
416							breakpoint: 768,
417							settings: {
418								slidesToShow: 	1,
419								slidesToScroll: 1,								
420							}
421						},					
422					];
423					
424					if(_.$el.hasClass('fullwidth-mode-enable')){
425						options['slidesToShow'] 	= 5;
426						options['responsive'] = [
427							{
428								breakpoint: 2000,
429								settings: {
430									slidesToShow: 	4,								
431								}
432							},
433							{
434								breakpoint: 1580,
435								settings: {
436									slidesToShow: 	3,								
437								}
438							},
439							{
440								breakpoint: 1200,
441								settings: {
442									slidesToShow: 	2,							
443								}
444							},						
445							{
446								breakpoint: 768,
447								settings: {
448									slidesToShow: 	1,
449									slidesToScroll: 1,								
450								}
451							},					
452						];
453					}
454					break;
455				case 'slider-9':
456					if(_.global_scroll_bar_lib === 'malihu'){
457						$t.mCustomScrollbar({			
458							axis: 'x',
459							alwaysShowScrollbar:0,
460							scrollInertia: 120,
461						});
462					}else{
463						var instance = $t.overlayScrollbars({
464							overflowBehavior:{
465								x:'scroll',
466								y:'hidden',
467							},							
468						}).overlayScrollbars();
469						
470						var scrollValue 		= instance.scroll().position.x;
471						var scrollDirection;
472						var scrollSmoothness 	= 10;
473						var scrollAmount 		= 100;
474						var animationLoop = function() { 
475							var currScroll = instance.scroll().position.x;
476							var delta = scrollValue - currScroll;
477							var easedValue = parseInt(currScroll + (delta / Math.max(1, scrollSmoothness)));
478							if(easedValue === currScroll){
479								easedValue += delta > 0 ? 1 : -1;
480							}
481							if(delta !== 0) {
482								instance.scroll({ x:easedValue });
483								requestAnimationFrame(animationLoop);
484							}
485						};
486						$(instance.getElements().viewport).mousewheel(function(event, delta) {
487							if(event.originalEvent.deltaX === 0) {
488								var factor 				= delta < 0 ? -1 : 1;
489								var directionChanged 	= scrollDirection != factor;
490								var amount 				= scrollAmount * factor;
491								var root 				= directionChanged ? instance.scroll().position.x : scrollValue;
492								scrollValue 			= Math.max(0, Math.min(instance.scroll().max.x, root - amount))
493								scrollDirection 		= factor;
494								animationLoop();								
495								event.preventDefault();
496							}
497						});
498					}
499					return;	
500					break;
501					
502				case 'slider-10':
503					if($t.find('.slide-item').length<2){
504						return;
505					}					
506					break;							
507			}
508			
509			$t.on('init', function(event, slick){
510				if(p['layout']==='slider-4'){
511					_.$el.on('vidorev_themeside_menu_action', function(e){
512						$t.slick('reinit');
513						_.$el.off('vidorev_themeside_menu_action');
514						console.log('Resize Slider');
515					});
516				}
517			});
518			
519			$t.find('img.ul-normal-effect').addClass('img-effect-setup img-loaded');
520			$t.slick(options);
521			
522			if($sync.length > 0){
523			
524				$sync.find('img.ul-normal-effect').addClass('img-effect-setup img-loaded');
525				
526				var opt_small_sync_slider = {
527					slidesToShow: 4,
528					slidesToScroll: 1,
529					asNavFor: $t,
530					arrows:false,
531					dots: false,
532					focusOnSelect: true,
533					responsive:[						
534						{
535							breakpoint: 1200,
536							settings: {
537								slidesToShow: 	3,
538								slidesToScroll:	1,								
539							}
540						},
541						{
542							breakpoint: 992,
543							settings: {
544								slidesToShow: 	2,
545								slidesToScroll: 1,								
546							}
547						},
548						{
549							breakpoint: 576,
550							settings: {
551								slidesToShow: 	1,
552								slidesToScroll: 1,
553								centerMode: true,								
554							}
555						},					
556					]
557				}
558				
559				if(_.$el.hasClass('fullwidth-mode-enable')){
560					opt_small_sync_slider.slidesToShow = 6;
561					opt_small_sync_slider.responsive = [
562						{
563							breakpoint: 2000,
564							settings: {
565								slidesToShow: 	5,
566								slidesToScroll:	1,								
567							}
568						},
569						{
570							breakpoint: 1580,
571							settings: {
572								slidesToShow: 	4,
573								slidesToScroll:	1,								
574							}
575						},
576						{
577							breakpoint: 1200,
578							settings: {
579								slidesToShow: 	3,
580								slidesToScroll:	1,								
581							}
582						},
583						{
584							breakpoint: 992,
585							settings: {
586								slidesToShow: 	2,
587								slidesToScroll: 1,								
588							}
589						},
590						{
591							breakpoint: 576,
592							settings: {
593								slidesToShow: 	1,
594								slidesToScroll: 1,
595								centerMode: true,								
596							}
597						},					
598					];
599				}
600				
601				$sync.slick(opt_small_sync_slider);
602				
603			}
604		});
605
606	}
607	
608	vidorev_plugin.prototype.filter_tab_responsive = function(){
609		var _ = this;
610		
611		$('.filter-container-control:not(.ready-setup)').each(function(index, element) {
612			var $t 			= $(this),
613				elm_index 	= 'priority-wrapper-index-'+index+'rnd'+(Math.floor((Math.random() * 999) + 1)),
614				title_width	= 0;
615
616			$t.addClass('ready-setup').attr('id', elm_index);
617			
618			var $elm_index	= $('#'+(elm_index)),
619				css			= '';
620				
621			$('<style id="css-'+elm_index+'" type="text/css"></style>').appendTo('head');
622			
623			var crr_title_width = 0;
624			if($elm_index.find('.block-title-control').length>0){
625				crr_title_width = $elm_index.find('.block-title-control').outerWidth(true) + 60;
626			}
627			
628			title_width	= crr_title_width;			
629			
630			css = '#'+elm_index+' .filter-items-control{min-width:calc(100% - '+title_width+'px); min-width:-webkit-calc(100% - '+title_width+'px); min-width:-ms-calc(100% - '+title_width+'px); min-width:-moz-calc(100% - '+title_width+'px);}}';				
631			$('#css-'+elm_index).html(css);	
632			
633			var nav = priorityNav.init({
634				mainNavWrapper				: '#'+(elm_index)+' .filter-items-control',
635				mainNav						: '.filter-items-wrapper-control',
636				navDropdownLabel			: '<span class="responsive-button"></span><span class="responsive-line"></span>',
637				navDropdownBreakpointLabel	: '<span class="responsive-button"></span><span class="responsive-line"></span>',
638				navDropdownClassName		: 'nav__dropdown',
639				navDropdownToggleClassName	: 'nav__dropdown-toggle',	
640				breakPoint					: 0,				
641			});				
642
643		});
644	}
645	
646	vidorev_plugin.prototype.filter_action = function(){
647		var _ = this;
648		
649		_.$el.off('.filterActionControl').on('click.filterActionControl', '.filter-action-control', function(e){
650			var $t 			= $(this),
651				$parent		= $t.parents('.sc-blocks-container-control'),
652				idParams	= $.trim($parent.attr('data-id')),
653				$nextAction = $parent.find('.next-prev-action[data-action="next"]'),
654				$prevAction = $parent.find('.next-prev-action[data-action="prev"]'),
655				$pnControl	= $parent.find('.bl-page-prev-next-control');
656			
657			if(idParams!='' && typeof(vidorev_layouts_query_params)!=='undefined' && typeof(vidorev_layouts_query_params[idParams]!=='undefined')){	
658				var params = vidorev_layouts_query_params[idParams];	
659				
660					params['data_ajax'] = 'yes';
661					params['filter'] 	= $.trim($t.attr('data-id'));
662					params['tax'] 		= $.trim($t.attr('data-taxonomy'));
663					params['paged'] 	= 1;
664					
665				if(params['filter']=='' || params['tax']==''){
666					return false;
667				}
668				
669				$parent.addClass('container-loading').find('.filter-action-control').removeClass('active-item');
670				$t.addClass('active-item');
671				
672				if($('.nav__dropdown.show', $parent).length>0 || $('.nav__dropdown-toggle.is-open', $parent).length>0){
673					$('.nav__dropdown.show', $parent).removeClass('show');
674					$('.nav__dropdown-toggle.is-open', $parent).removeClass('is-open');
675				}
676				
677				if($('.blog-wrapper-control[data-item="'+(params['filter'])+'"]', $parent).length>0){
678					setTimeout(function(){
679						
680						$parent.find('.blog-wrapper-control').removeClass('active-item');
681						
682						$('.blog-wrapper-control[data-item="'+(params['filter'])+'"].current-paged', $parent).addClass('active-item');
683						
684						var totalPages	= parseFloat($('.blog-wrapper-control[data-item="'+(params['filter'])+'"].current-paged', $parent).attr('data-all-page')),
685							currentPage = parseFloat($('.blog-wrapper-control[data-item="'+(params['filter'])+'"].current-paged', $parent).attr('data-current-page'));
686							
687						if(currentPage >= totalPages){
688							_.global_blog_ajax_load[idParams] = -1;
689							$parent.find('.bl-page-loadmore-control').removeClass('active-item');
690						}else{
691							_.global_blog_ajax_load[idParams] = 0;
692							$parent.find('.bl-page-loadmore-control').addClass('active-item');
693						}
694						
695						if($('.blog-wrapper-control[data-item="'+(params['filter'])+'"][data-end="yes"]', $parent).length>0 && $('.blog-wrapper-control[data-item="'+(params['filter'])+'"]', $parent).length==1){
696							
697							$pnControl.hide();
698							
699						}else{
700							
701							var $block_active_check = $('.blog-wrapper-control[data-item="'+(params['filter'])+'"].active-item.current-paged', $parent);
702							
703							if($block_active_check.attr('data-end') == 'yes'){
704								
705								$nextAction.addClass('disabled-query');
706								
707							}else{
708								
709								$nextAction.removeClass('disabled-query');
710								
711							}
712							
713							if($block_active_check.attr('data-paged') == '1'){
714								
715								$prevAction.addClass('disabled-query');
716								
717							}else{
718								
719								$prevAction.removeClass('disabled-query');
720								
721							}
722							
723							$pnControl.show();
724						}
725						
726						$parent.removeClass('container-loading');
727						
728					}, 500);
729															
730					return false;
731				}	
732				
733				var paramsRequest = {
734					'params':		params,				
735					'action':		'blockajaxaction',
736					'security':		vidorev_jav_js_object.security,	
737				};
738				
739				$.ajax({
740					url:		vidorev_jav_js_object.admin_ajax,						
741					type: 		'POST',
742					data:		paramsRequest,
743					dataType: 	'html',
744					cache:		false,
745					success: 	function(data){
746						
747						$parent.find('.blog-wrapper-control').removeClass('active-item');						
748						$parent.find('.block-filter-control').append(data);
749						
750						var $current_filter = $parent.find('.blog-wrapper-control[data-item="'+(params['filter'])+'"].current-paged');
751						
752						var dataEnd = $parent.find('.blog-wrapper-control[data-item="'+(params['filter'])+'"].current-paged').attr('data-end');	
753						
754						if(typeof(vidorev_builder_control)!=="undefined" && vidorev_builder_control!==null){	
755							vidorev_builder_control.imdb_rating_jsonp();		
756						}
757						
758						if(typeof(window.vidorev_visible_image_opacity) !== 'undefined'){
759							window.vidorev_visible_image_opacity();
760						}
761											
762						if(dataEnd=='yes' || data==''){
763							
764							$pnControl.hide();
765							
766						}else{
767							
768							$pnControl.show();
769							
770						}
771						
772						$parent.find('.next-prev-action[data-action="prev"]').addClass('disabled-query');	
773						$parent.find('.next-prev-action[data-action="next"]').removeClass('disabled-query');
774						
775						var totalPages	= parseFloat($current_filter.attr('data-all-page')),
776							currentPage = parseFloat($current_filter.attr('data-current-page'));
777							
778						if(currentPage >= totalPages){
779							_.global_blog_ajax_load[idParams] = -1;
780							$parent.find('.bl-page-loadmore-control').removeClass('active-item');
781						}else{
782							_.global_blog_ajax_load[idParams] = 0;
783							$parent.find('.bl-page-loadmore-control').addClass('active-item');
784						}	
785											
786						$parent.removeClass('container-loading');						
787						
788					},
789					error:		function(){
790						
791						$parent.removeClass('container-loading');
792						
793					},
794				});
795			}
796		});
797	}
798	
799	vidorev_plugin.prototype.next_paged_il_action = function(elm){
800		var _ = this;
801		
802		var $t = elm;
803		
804		var $parent		= $t.parents('.sc-blocks-container-control'),
805			idParams	= $.trim($parent.attr('data-id'));
806			
807		if(idParams!='' && typeof(vidorev_layouts_query_params)!=='undefined' && typeof(vidorev_layouts_query_params[idParams]!=='undefined')){	
808			var params = vidorev_layouts_query_params[idParams];	
809			
810				params['data_ajax'] = 'yes';
811				params['filter'] 	= $.trim($parent.find('.filter-action-control.active-item').attr('data-id'));
812				params['tax'] 		= $.trim($parent.find('.filter-action-control.active-item').attr('data-taxonomy'));
813				
814			if(params['filter']=='' || params['tax']==''){
815				params['filter'] 	= '0';
816				params['tax']		= 'all';
817			}
818			
819			if($('.nav__dropdown.show', $parent).length>0 || $('.nav__dropdown-toggle.is-open', $parent).length>0){
820				$('.nav__dropdown.show', $parent).removeClass('show');
821				$('.nav__dropdown-toggle.is-open', $parent).removeClass('is-open');
822			}
823			
824			var $current_filter = $parent.find('.blog-wrapper-control[data-item="'+(params['filter'])+'"].current-paged');
825			var $current_filter_data = $current_filter.find('.blog-items-control');	
826						
827			var totalPages	= parseFloat($current_filter.attr('data-all-page')),
828				currentPage = parseFloat($current_filter.attr('data-current-page'));
829				
830			if(currentPage >= totalPages){
831				_.global_blog_ajax_load[idParams] = -1;
832				return false;
833			}
834			
835			if(typeof(_.global_blog_ajax_load[idParams])!=='undefined' && (_.global_blog_ajax_load[idParams] === 1 || _.global_blog_ajax_load[idParams] === -1) ){					
836				return false;
837			}
838			
839			$t.addClass('process-loading');
840			$parent.find('.filter-items-control').addClass('process-loading');
841						
842			_.global_blog_ajax_load[idParams] = 1;			
843			params['paged'] = currentPage+1;
844			
845			var paramsRequest = {
846				'params':		params,				
847				'action':		'blockajaxaction',
848				'security':		vidorev_jav_js_object.security,	
849			};
850			
851			$.ajax({
852				url:		vidorev_jav_js_object.admin_ajax,						
853				type: 		'POST',
854				data:		paramsRequest,
855				dataType: 	'html',
856				cache:		false,
857				success: 	function(data){
858					
859					$parent.find('.blog-wrapper-control[data-item="'+(params['filter'])+'"].current-paged').attr('data-current-page', params['paged']);
860								
861					$current_filter_data.append(data);
862					
863					if(typeof(vidorev_builder_control)!=="undefined" && vidorev_builder_control!==null){	
864						vidorev_builder_control.imdb_rating_jsonp();		
865					}
866					
867					if(typeof(window.vidorev_visible_image_opacity) !== 'undefined'){
868						window.vidorev_visible_image_opacity();
869					}
870					
871					if(params['paged'] >= totalPages){
872						_.global_blog_ajax_load[idParams] = -1;
873						$t.removeClass('active-item process-loading');
874					}else{					
875						_.global_blog_ajax_load[idParams] = 0;
876					}
877					
878					$t.removeClass('process-loading');
879					$parent.find('.filter-items-control').removeClass('process-loading');
880					
881					_.$el.trigger('ajaxloadpostcomplete_themeControl', [_]);
882					
883				},
884				error:		function(){		
885							
886					_.global_blog_ajax_load[idParams] = 0;	
887					$t.removeClass('process-loading');	
888					$parent.find('.filter-items-control').removeClass('process-loading');
889								
890				},
891			});
892		}	
893	}
894	
895	vidorev_plugin.prototype.loadmore_paged_action = function(){
896		var _ = this;
897		
898		_.$el.off('.loadmorePagedAction').on('click.loadmorePagedAction', '.bl-btn-page-loadmore-control', function(e){
899			_.next_paged_il_action($(this).parents('.bl-page-loadmore-control'));
900			
901			return false;
902		});
903		
904		var infinite_scroll = function(){
905			var $infinite = $('.bl-page-infinite-control');		
906			if($infinite.length === 0){
907				return;
908			}		
909			$infinite.each(function(index, element){
910				var $t = $(this),
911					ajaxVisible 	= $t.offset().top,
912					ajaxScrollTop 	= $(window).scrollTop()+$(window).height();
913					
914				if(ajaxVisible <= (ajaxScrollTop) && (ajaxVisible + $(window).height()) > ajaxScrollTop){
915					_.next_paged_il_action($t);
916				}
917			});
918		}
919		
920		infinite_scroll();
921		
922		$(window).on('scroll', function(){
923			infinite_scroll();
924		});
925	}
926	
927	vidorev_plugin.prototype.next_paged_action = function(){
928		var _ = this;
929		
930		_.$el.off('.nextPagedAction').on('click.nextPagedAction', '.next-prev-action', function(e){
931			var $t 			= $(this),
932				$parent		= $t.parents('.sc-blocks-container-control'),
933				idParams	= $.trim($parent.attr('data-id')),
934				$nextAction = $parent.find('.next-prev-action[data-action="next"]'),
935				$prevAction = $parent.find('.next-prev-action[data-action="prev"]');
936			
937			if(idParams!='' && typeof(vidorev_layouts_query_params)!=='undefined' && typeof(vidorev_layouts_query_params[idParams]!=='undefined')){	
938				var params = vidorev_layouts_query_params[idParams];	
939				
940					params['data_ajax'] = 'yes';
941					params['filter'] 	= $.trim($parent.find('.filter-action-control.active-item').attr('data-id'));
942					params['tax'] 		= $.trim($parent.find('.filter-action-control.active-item').attr('data-taxonomy'));
943					
944				if(params['filter']=='' || params['tax']==''){
945					params['filter'] 	= '0';
946					params['tax']		= 'all';
947				}
948				
949				$parent.addClass('container-loading');
950				
951				if($('.nav__dropdown.show', $parent).length>0 || $('.nav__dropdown-toggle.is-open', $parent).length>0){
952					$('.nav__dropdown.show', $parent).removeClass('show');
953					$('.nav__dropdown-toggle.is-open', $parent).removeClass('is-open');
954				}
955				
956				var current_paged 	= 1;
957				var $current_paged 	= $parent.find('.blog-wrapper-control[data-item="'+(params['filter'])+'"].current-paged');
958				
959				if($current_paged.length>0){
960					current_paged = parseFloat($current_paged.attr('data-paged'));
961				}
962				
963				var f_paged = 1;
964				
965				if($.trim($t.attr('data-action'))=='next'){
966					f_paged = current_paged + 1;
967				}else{					
968					f_paged = current_paged - 1;
969				}
970				
971				var $f_paged 			= $('.blog-wrapper-control[data-item="'+(params['filter'])+'"][data-paged="'+(f_paged)+'"]', $parent);
972				var $paged_in_filter 	= $('.blog-wrapper-control[data-item="'+(params['filter'])+'"]', $parent);
973				
974				if($f_paged.length>0){
975					
976					setTimeout(function(){
977						$paged_in_filter.removeClass('current-paged');
978						$f_paged.addClass('active-item current-paged');
979						
980						if(f_paged==1){
981							$prevAction.addClass('disabled-query');
982						}else{
983							$prevAction.removeClass('disabled-query');
984						}
985						
986						if($f_paged.attr('data-end')=='yes'){
987							$nextAction.addClass('disabled-query');
988						}else{
989							$nextAction.removeClass('disabled-query');
990						}
991						
992						$parent.removeClass('container-loading');
993						
994					}, 500);	
995														
996					return false;
997				}
998				
999				params['paged'] = f_paged;
1000				
1001				var paramsRequest = {
1002					'params':		params,				
1003					'action':		'blockajaxaction',
1004					'security':		vidorev_jav_js_object.security,	
1005				};
1006				
1007				$.ajax({
1008					url:		vidorev_jav_js_object.admin_ajax,						
1009					type: 		'POST',
1010					data:		paramsRequest,
1011					dataType: 	'html',
1012					cache:		false,
1013					success: 	function(data){
1014						
1015						$paged_in_filter.removeClass('current-paged');						
1016						$parent.find('.block-filter-control').append(data);
1017						var dataEnd = $parent.find('.blog-wrapper-control[data-item="'+(params['filter'])+'"].active-item.current-paged').attr('data-end');
1018						
1019						if(typeof(vidorev_builder_control)!=="undefined" && vidorev_builder_control!==null){	
1020							vidorev_builder_control.imdb_rating_jsonp();		
1021						}
1022						
1023						if(typeof(window.vidorev_visible_image_opacity) !== 'undefined'){
1024							window.vidorev_visible_image_opacity();
1025						}
1026						
1027						if(dataEnd=='yes'){
1028							$nextAction.addClass('disabled-query');
1029						}
1030						
1031						$prevAction.removeClass('disabled-query');					
1032						
1033						$parent.removeClass('container-loading');						
1034						
1035					},
1036					error:		function(){
1037						
1038						$parent.removeClass('container-loading');
1039						
1040					},
1041				});
1042			}
1043		});
1044	}
1045	
1046	vidorev_plugin.prototype.imdb_rating_jsonp = function(){
1047		var _ = this;
1048		$('.imdbRatingPlugin-control:not(.imdbRatingPlugin-ready)').each(function(index, element) {
1049			
1050			var $t = $(this);
1051			
1052			var dataTitle 	= $.trim($t.attr('data-title'));
1053			var dataUser	= $.trim($t.attr('data-user'));
1054			var imdbdata	= $.trim($t.attr('data-imdbdata'));
1055			
1056			var fill_immdb_data = function(dataTitle, dataUser){
1057				$.ajax({
1058					url:		'//p.media-imdb.com/static-content/documents/v1/title/' + dataTitle + '/ratings%3Fjsonp=imdb.rating.run:imdb.api.title.ratings/data.json?u=' + dataUser,						
1059					type: 		'POST',
1060					dataType: 	'jsonp',
1061					cache:		false
1062				});
1063			}
1064			
1065			if(typeof(dataTitle)!=='undefined' && typeof(dataUser)!=='undefined' && dataTitle!='' && dataUser!=''){
1066				
1067				$('.imdbRatingPlugin-control[data-title="'+(dataTitle)+'"]').addClass('imdbRatingPlugin-ready');
1068				
1069				if(typeof(imdbdata) !== 'undefined' && imdbdata!=''){
1070					
1071					try{
1072						imdbdata = JSON.parse(imdbdata);
1073					}catch(error){
1074						fill_immdb_data(dataTitle, dataUser);
1075					}	
1076					
1077					if(typeof(imdbdata.id)!=='undefined' && imdbdata.id!=''){
1078						_.imdb_rating_html(imdbdata);
1079					}else{
1080						fill_immdb_data(dataTitle, dataUser);
1081					}
1082				}else{
1083					fill_immdb_data(dataTitle, dataUser);
1084				}
1085				
1086			}
1087			
1088		});
1089	}
1090	
1091	vidorev_plugin.prototype.imdb_rating_html = function(resource){
1092		var _ 				= this,
1093			rating 			= typeof(resource.rating)==='number'?resource.rating:'NA',
1094			imdb_logo_url 	= vidorev_jav_plugin_js_object.imdb_logo_url;
1095		
1096		var imdb_logo 		= '<img width="38" height="18" class="imdb-logo" src="'+(imdb_logo_url)+'.png" sizes="(max-width: 38px) 100vw, 38px" srcset="'+(imdb_logo_url)+'.png 38w, '+(imdb_logo_url)+'_retina_2x.png 54w, '+(imdb_logo_url)+'_retina_3x.png 101w">'
1097		
1098		var html 			= 	'<a href="//www.imdb.com'+(resource.id)+'" target="_blank">'
1099									+(imdb_logo)+
1100									'<span class="rating">'+
1101										'<span class="rating-wrap">'+
1102											'<span class="rt-point h5">'+(rating)+'</span>'+
1103											'<span class="ofTen font-size-12">&nbsp;/&nbsp;10</span>'+
1104										'</span>'+
1105									'</span>'+
1106									'<i class="fa fa-star star" aria-hidden="true"></i>'+
1107								'</a>';
1108				
1109		$('.imdbRatingPlugin-control[data-title="'+(resource.id.split('/')[2])+'"]').html(html).addClass('imdbRatingStyle2');
1110	}
1111	
1112	vidorev_plugin.prototype.setYoutubeAPIReady = function(vid_id){
1113		
1114		var _ = 			this,
1115			prefix_vid_id = '';
1116			
1117		if(typeof(vid_id)!=='undefined'){
1118			prefix_vid_id = vid_id;
1119		}	
1120		
1121		setTimeout(function(){
1122			if($('script[src*="youtube.com/iframe_api"]').length>0 || $('script[src*="www-widgetapi.js"]').length>0){			
1123			
1124				var triggerInterval = setInterval(function(){					
1125					if(typeof(YT)!=='undefined' && typeof(YT.Player)!=='undefined'){
1126						_.global_youtube_API_ready = true;
1127						$(document).trigger(prefix+'youtubeAPIReadyPreview'+(prefix_vid_id), []);
1128						clearInterval(triggerInterval);
1129					}
1130				},368);			
1131				
1132			}else{
1133				
1134				var you_API_YTdeferred = $.Deferred();	
1135				
1136				window.onYouTubeIframeAPIReady = function(){
1137					you_API_YTdeferred.resolve(window.YT);
1138				}
1139						
1140				var tag = document.createElement('script');
1141				tag.src = "https://www.youtube.com/iframe_api";
1142				var firstScriptTag = document.getElementsByTagName('script')[0];
1143				firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
1144			
1145				you_API_YTdeferred.done(function(YT){
1146					_.global_youtube_API_ready = true;
1147					$(document).trigger(prefix+'youtubeAPIReadyPreview'+(prefix_vid_id), []);					
1148				});
1149			}
1150		},368);	
1151	}
1152	
1153	vidorev_plugin.prototype.youtubeBroadcastsPrevNextRefresh = function(){
1154		var _ = this;
1155		
1156		_.$el.off('.broadcastsPageToken').on('click.broadcastsPageToken', '.next-prev-action', function(e){
1157			var $t 			= $(this),
1158				$broadcasts	= $t.parents('.youtube-broadcast-control'),
1159				broadcastsID= $broadcasts.attr('id'),
1160				action		= $t.attr('data-action'),
1161				prevToken 	= $.trim($broadcasts.find('input.prev-page-token-control[type="hidden"]').val()),
1162				nextToken	= $.trim($broadcasts.find('input.next-page-token-control[type="hidden"]').val()),
1163				pageToken	= '',
1164				$wrap_data	= $broadcasts.find('.blog-wrapper-control');
1165				
1166			if(action == 'prev'){
1167				if(prevToken == ''){
1168					return false;
1169				}
1170				
1171				pageToken = prevToken;
1172				
1173			}else if(action == 'next'){
1174				if(nextToken == ''){
1175					return false;
1176				}
1177				
1178				pageToken = nextToken;
1179			}
1180			
1181			if(pageToken == ''){
1182				return false;
1183			}
1184			
1185			if(typeof(vidorev_jav_plugin_js_object)==='undefined'){
1186				return false;
1187			}
1188			
1189			if(typeof(vidorev_jav_plugin_js_object.youtube_broadcasts_params)==='undefined'){
1190				return false;
1191			}
1192			
1193			if(typeof(vidorev_jav_plugin_js_object.youtube_broadcasts_params[broadcastsID])==='undefined'){
1194				return false;
1195			}			
1196			
1197			var params = vidorev_jav_plugin_js_object.youtube_broadcasts_params[broadcastsID];
1198			
1199			if(typeof(params)!=='object'){
1200				return false;
1201			}
1202			
1203			$broadcasts.addClass('container-loading');
1204			
1205			params['pageToken'] = pageToken;
1206			params['ajax'] = true;
1207			
1208			var newParamsRequest = {
1209				'action':		'vidorev_request_pagetoken_youtube_broadcasts',
1210				'params':		params,
1211				'security':		vidorev_jav_js_object.security,	
1212			}
1213			
1214			$.ajax({
1215				url: 		vidorev_jav_js_object.admin_ajax,
1216				type: 		'POST',
1217				cache: 		false,
1218				dataType: 	'html',
1219				data:		newParamsRequest,
1220				success: 	function(data){
1221					
1222					if($.trim(data)==''){
1223						$broadcasts.find('.next-prev-action[data-action="prev"]').removeClass('disabled-query');
1224						$broadcasts.find('.next-prev-action[data-action="next"]').addClass('disabled-query');
1225						
1226						$broadcasts.removeClass('container-loading cache-load-fist');
1227						return false;
1228					}
1229					
1230					$wrap_data.html(data);
1231					
1232					prevToken 	= $.trim($broadcasts.find('input.prev-page-token-control[type="hidden"]').val());
1233					nextToken	= $.trim($broadcasts.find('input.next-page-token-control[type="hidden"]').val());
1234					
1235					if(typeof(prevToken)!=='undefined' && prevToken!=''){
1236						$broadcasts.find('.next-prev-action[data-action="prev"]').removeClass('disabled-query');
1237					}else{
1238						$broadcasts.find('.next-prev-action[data-action="prev"]').addClass('disabled-query');
1239					}	
1240					
1241					if(typeof(nextToken)!=='undefined' && nextToken!=''){
1242						$broadcasts.find('.next-prev-action[data-action="next"]').removeClass('disabled-query');
1243					}else{
1244						$broadcasts.find('.next-prev-action[data-action="next"]').addClass('disabled-query');					
1245					}
1246					
1247					var currentVideoPlayer = $broadcasts.find('.player-video-control').attr('data-current-player-id');
1248					if(typeof(currentVideoPlayer)!=='undefined' && currentVideoPlayer!=''){
1249						$broadcasts.find('.youtube-item-control[data-current-player-id="'+(currentVideoPlayer)+'"]').addClass('is-player-active');	
1250					}
1251					
1252					$broadcasts.removeClass('container-loading cache-load-fist');									
1253																														
1254				},
1255				error: 		function(err){
1256					$broadcasts.removeClass('container-loading cache-load-fist');					
1257				}
1258			});
1259		});
1260		
1261		_.$el.off('.broadcastsRefresh').on('click.broadcastsRefresh', '.refresh-broadcasts-control', function(e){
1262			var $t 			= $(this),
1263				$broadcasts	= $t.parents('.youtube-broadcast-control'),
1264				broadcastsID= $broadcasts.attr('id'),
1265				$wrap_data	= $broadcasts.find('.blog-wrapper-control');
1266				
1267			if(typeof(vidorev_jav_plugin_js_object)==='undefined'){
1268				return false;
1269			}
1270			
1271			if(typeof(vidorev_jav_plugin_js_object.youtube_broadcasts_params)==='undefined'){
1272				return false;
1273			}
1274			
1275			if(typeof(vidorev_jav_plugin_js_object.youtube_broadcasts_params[broadcastsID])==='undefined'){
1276				return false;
1277			}			
1278			
1279			var params = vidorev_jav_plugin_js_object.youtube_broadcasts_params[broadcastsID];
1280			
1281			if(typeof(params)!=='object'){
1282				return false;
1283			}
1284			
1285			$t.find('i.fa-refresh').addClass('fa-spin');
1286			$broadcasts.addClass('container-loading');
1287			
1288			if(typeof(params['pageToken'])!=='undefined' && params['pageToken']!=''){
1289				delete params['pageToken'];
1290			}
1291			params['ajax'] = true;
1292			
1293			var newParamsRequest = {
1294				'action':		'vidorev_request_pagetoken_youtube_broadcasts',
1295				'params':		params,
1296				'security':		vidorev_jav_js_object.security,	
1297			}
1298			
1299			$.ajax({
1300				url: 		vidorev_jav_js_object.admin_ajax,
1301				type: 		'POST',
1302				cache: 		false,
1303				dataType: 	'html',
1304				data:		newParamsRequest,
1305				success: 	function(data){
1306					
1307					$wrap_data.html(data);
1308					
1309					var prevToken 	= $.trim($broadcasts.find('input.prev-page-token-control[type="hidden"]').val());
1310					var nextToken	= $.trim($broadcasts.find('input.next-page-token-control[type="hidden"]').val());
1311					
1312					if(typeof(prevToken)!=='undefined' && prevToken!=''){
1313						$broadcasts.find('.next-prev-action[data-action="prev"]').removeClass('disabled-query');
1314					}else{
1315						$broadcasts.find('.next-prev-action[data-action="prev"]').addClass('disabled-query');
1316					}	
1317					
1318					if(typeof(nextToken)!=='undefined' && nextToken!=''){
1319						$broadcasts.find('.next-prev-action[data-action="next"]').removeClass('disabled-query');
1320					}else{
1321						$broadcasts.find('.next-prev-action[data-action="next"]').addClass('disabled-query');					
1322					}
1323					
1324					var currentVideoPlayer = $broadcasts.find('.player-video-control').attr('data-current-player
1324-id');
1325					if(typeof(currentVideoPlayer)!=='undefined' && currentVideoPlayer!=''){
1326						$broadcasts.find('.youtube-item-control[data-current-player-id="'+(currentVideoPlayer)+'"]').addClass('is-player-active');	
1327					}		
1328					
1329					$broadcasts.removeClass('container-loading cache-load-fist');	
1330					$t.find('i.fa-refresh').removeClass('fa-spin');								
1331																														
1332				},
1333				error: 		function(err){
1334					$broadcasts.removeClass('container-loading cache-load-fist');
1335					$t.find('i.fa-refresh').removeClass('fa-spin');						
1336				}
1337			});	
1338			
1339		});
1340	}
1341	
1342	vidorev_plugin.prototype.youtubeBroadcastsTriggerFirstLoad = function(broadCastID){
1343		var _ = this;
1344		
1345		if(typeof(broadCastID)!=='undefined'){
1346			
1347			$('#'+(broadCastID)+' .refresh-broadcasts-control').trigger('click');
1348			
1349		}else{
1350			
1351			$('.cache-load-fist-control .refresh-broadcasts-control').trigger('click');
1352			
1353		}
1354	}
1355	
1356	vidorev_plugin.prototype.check_contains = function(x, y, obj) {
1357		return (x >= obj.left && x <= obj.right && y >= obj.top && y <= obj.bottom);
1358	}
1359	
1360	vidorev_plugin.prototype.videoPreview = function(){
1361		var _ = this;
1362			
1363		_.$el.off('.actionVideoPreview').on('mouseenter.actionVideoPreview', '.wrap_preview_control', function(e){
1364			
1365			var $t 					= $(this),
1366				$preview_container 	= $t.find('.preview-video-control');
1367				
1368			/*
1369			if($t.hasClass('is-mouseenter')){
1370				return false;
1371			}
1372			*/
1373			$t.find('a').attr('title', '');
1374			
1375			if($preview_container.length == 0){
1376				$t.addClass('fn-loaded');
1377				return false;
1378			}
1379			
1380			var imgpreview 		= $preview_container.attr('data-imgpreview');
1381			var iframepreview 	= $preview_container.attr('data-iframepreview');
1382			
1383			if(typeof(imgpreview) === 'undefined' && typeof(iframepreview) === 'undefined'){
1384				$t.addClass('fn-loaded');
1385				return false;
1386			}
1387			
1388			$t.addClass('is-mouseenter').find('.video-popup-control').append('<div class="notice-preview font-size-12 meta-font">'+(vidorev_jav_js_object.translate_loading_preview)+'</div>');			
1389			
1390			var preview_img_interval = null;
1391			if(typeof(imgpreview) !== 'undefined' && imgpreview!='' && typeof(vidorev_jav_js_preview) && typeof(vidorev_jav_js_preview[imgpreview]) && Array.isArray(vidorev_jav_js_preview[imgpreview]) && $preview_container.find('div').length == 0){
1392				var preview_container_id = 'preview_'+(imgpreview);
1393				$preview_container.html('').attr('id', preview_container_id);
1394				
1395				$.each(vidorev_jav_js_preview[imgpreview], function(key, value){
1396					$preview_container.append('<div>'+(value)+'</div>');
1397				});
1398				
1399				var $all_preview_image 	= $preview_container.find('img');				
1400				var totalImages 		= $all_preview_image.length;
1401				var imagesLoaded 		= 0;
1402				
1403				$all_preview_image.on('load', function(event) {
1404					imagesLoaded++;
1405					if (imagesLoaded == totalImages) {
1406						if(preview_img_interval!=null){
1407							clearInterval(preview_img_interval);
1408						}						
1409						$('#'+(preview_container_id)+' > div:gt(0)').hide();
1410						preview_img_interval = setInterval(function() { 
1411							$('#'+(preview_container_id)+' > div:first').slideUp(568).next().fadeIn(568).end().appendTo('#'+(preview_container_id));
1412						}, 1368);
1413						$t.addClass('prevew-image-loaded fn-loaded').find('.notice-preview').remove();
1414					}
1415				});	
1416			}
1417			
1418			if(typeof(iframepreview) !== 'undefined' && iframepreview!='' && $t.hasClass('is-mouseenter') && $preview_container.find('iframe').length == 0){
1419				var iframe = document.createElement('iframe');
1420				iframe.onload = function() { 
1421					$t.addClass('prevew-video-loaded').find('.notice-preview').remove();
1422				}
1423				iframe.src = iframepreview; 
1424				
1425				$preview_container.append('<div class="overlay-video-none"></div>');
1426				$preview_container.prepend(iframe);
1427				
1428				
1429				var $curr_iframe = $preview_container.find('iframe');
1430				
1431				var vidRescale = function(){
1432					
1433					var w = $preview_container.width()+3,
1434						h = $preview_container.height()+3;
1435					
1436					if (w/h > 16/9){
1437						$curr_iframe.css({'width': (w)+'px', 'height': (w/16*9)+'px'});
1438						$curr_iframe.css({'left': '0px'});
1439					} else {
1440						$curr_iframe.css({'width': (h/9*16)+'px', 'height': (h)+'px'});
1441						$curr_iframe.css({'left': -($curr_iframe.outerWidth()-w)/2});
1442					}
1443				}
1444				
1445				vidRescale();
1446			}
1447	
1448			$t.off('.actionVideoPreviewLeave').on('mouseleave.actionVideoPreviewLeave', function(e){
1449				
1450				/*if(_.check_contains(e.pageX, e.pageY, $t.get(0).getBoundingClientRect())){
1451					console.log('faild');
1452					return false;
1453				}*/
1454													
1455				$t.removeClass('is-mouseenter prevew-video-loaded prevew-image-loaded').find('.notice-preview').remove();
1456				$preview_container.html('');
1457				if(preview_img_interval!=null){
1458					clearInterval(preview_img_interval);
1459				}
1460
1461			});
1462
1463		});
1464	}
1465	
1466	vidorev_plugin.prototype.youtubePreviewBroadcasts = function(){
1467		var _ = this;
1468		
1469		_.$el.off('.broadcastsVideoAction').on('click.broadcastsVideoAction', '.open-live-video-control', function(e){
1470			var $t 						= $(this),
1471				$wrap 					= $t.parents('.youtube-item-control'),
1472				youtube_video_id 		= $t.attr('data-video-id'),
1473				$broadcasts				= $t.parents('.youtube-broadcast-control'),				
1474				elem_id					= ($broadcasts.attr('id'))+'br-player-'+(youtube_video_id),
1475				$playerControl			= $broadcasts.find('.player-video-control');
1476			
1477			$broadcasts.find('.youtube-item-control').removeClass('is-player-active');		
1478					
1479			$wrap.addClass('is-player-active').removeClass('is-mouseenter').find('.preview-video-control').removeClass('active-item').find('#'+(elem_id)).remove();
1480			
1481			$('html, body').stop().animate({scrollTop:($broadcasts.offset().top-$('#wpadminbar').height()-50)}, {duration:500}, function(){});
1482			
1483			$broadcasts.addClass('is-show-player');
1484			
1485			$playerControl.attr('data-current-player-id', youtube_video_id).find('iframe').remove();
1486			$playerControl.attr('data-current-player-id', youtube_video_id).find('div[id]').remove();
1487			
1488			if($playerControl.attr('data-current-player-id') != youtube_video_id){				
1489				return false;
1490			}
1491			
1492			$playerControl.append('<div id="'+(elem_id)+'"><div>');
1493			
1494			var $player = null, 
1495				options = {
1496					enablejsapi:	1, 
1497					html5:			1, 
1498					wmode:			'transparent', 
1499					modestbranding:	0, 
1500					iv_load_policy:	3,
1501					autoplay:		1,
1502					playsinline:	1,
1503					rel:			0,
1504					showinfo:		0,
1505					controls:		1,
1506					mute:			0,
1507				}
1508			
1509			var create_player = function(){
1510				if($playerControl.attr('data-current-player-id') != youtube_video_id){
1511					return false;
1512				}
1513				
1514				$player = 	new YT.Player(
1515					elem_id, 
1516					{						
1517						videoId: 		youtube_video_id,
1518						playerVars: 	options,
1519						events: {
1520							'onReady': function(e){
1521								e.target.unMute();
1522								
1523								if($playerControl.attr('data-current-player-id') != youtube_video_id){									
1524									return false;
1525								}
1526								_.$el.on('vidorev_themeopenLightBoxVideoEventTrigger', function(){
1527									try{
1528										$player.pauseVideo();
1529									}catch(error){
1530										/*no player*/
1531									}									
1532								});
1533							}
1534						}
1535					}									
1536				);
1537			}
1538			
1539			if(!_.global_youtube_API_ready){
1540				$(document).on(prefix+'youtubeAPIReadyPreview'+(elem_id), function(){
1541					create_player();
1542				});				
1543				_.setYoutubeAPIReady(elem_id);
1544			}else{
1545				create_player();
1546			}	
1547			
1548			$broadcasts.off('.broadcastsVideoMin').on('click.broadcastsVideoMin', '.broadcasts-min-control', function(e){
1549				$broadcasts.find('.youtube-item-control[data-current-player-id="'+(youtube_video_id)+'"]').removeClass('is-player-active');
1550				$broadcasts.removeClass('is-show-player');				
1551				$playerControl.attr('data-current-player-id', '').find('iframe').remove();
1552			});	
1553		});
1554		
1555		_.$el.off('.broadcastsVideoPreview').on('mouseenter.broadcastsVideoPreview', '.youtube-preview-control', function(e){
1556			var $t 						= $(this),
1557				$wrap 					= $t.parents('.youtube-item-control'),
1558				youtube_video_id 		= $t.attr('data-video-id'),
1559				$broadcasts				= $t.parents('.youtube-broadcast-control'),
1560				elem_id					= ($broadcasts.attr('id'))+'preview-'+(youtube_video_id),
1561				$player 				= null,
1562				$previewVideoControl 	= $t.find('.preview-video-control');
1563			
1564			$t.addClass('is-mouseenter');		
1565				
1566			if(typeof(youtube_video_id)!=='undefined' && youtube_video_id!=''){
1567				
1568				var $player = null, 
1569					options = {
1570						enablejsapi:	1, 
1571						html5:			1, 
1572						wmode:			'transparent', 
1573						modestbranding:	0, 
1574						iv_load_policy:	3,
1575						autoplay:		0,
1576						playsinline:	1,
1577						rel:			0,
1578						showinfo:		0,
1579						controls:		0,
1580						mute:			1,
1581					}
1582				
1583				$previewVideoControl.prepend('<div id="'+(elem_id)+'"><div>');
1584				
1585				var create_player = function(){
1586					$player = 	new YT.Player(
1587									elem_id, 
1588									{						
1589										videoId: 		youtube_video_id,
1590										playerVars: 	options,
1591										events: {
1592											'onReady': function(e){
1593												e.target.mute();
1594												setTimeout(function(){
1595													if($t.hasClass('is-mouseenter') && !$wrap.hasClass('is-player-active')){
1596														e.target.playVideo();
1597														$previewVideoControl.addClass('active-item');
1598													}else{
1599														$t.removeClass('is-mouseenter');
1600														
1601														e.target.destroy();
1602														$player = null;
1603														
1604														$('#'+(elem_id)).remove();
1605														$previewVideoControl.removeClass('active-item');
1606													}
1607												}, 368);
1608												
1609											}
1610										}
1611									}									
1612								);
1613				}
1614				
1615				if(!_.global_youtube_API_ready){
1616					$(document).on(prefix+'youtubeAPIReadyPreview'+(elem_id), function(){
1617						create_player();
1618					});				
1619					_.setYoutubeAPIReady(elem_id);
1620				}else{
1621					create_player();
1622				}				
1623				
1624			}else{
1625				return false;
1626			}	
1627			
1628			$t.off('.broadcastsVideoPreviewLeave').on('mouseleave.broadcastsVideoPreviewLeave', function(e){
1629				
1630				$t.removeClass('is-mouseenter');
1631				
1632				if($player!=null){
1633					$player.destroy();
1634					$player = null;					
1635				}
1636				
1637				$('#'+(elem_id)).remove();
1638				$previewVideoControl.removeClass('active-item');
1639			});
1640		});
1641		
1642		/*_.$el.find('.vidorev-youtube-broadcast .youtube-item-control:first-child .open-live-video-control').trigger('click');*/
1643	}
1644	
1645	vidorev_plugin.prototype.vidorev_video_report = function(){
1646		var _ = this;
1647		
1648		_.$el.off('.openReportBox').on('click.openReportBox', '.report-video-btn', function(){
1649			var $t 		= $(this),
1650				$wrap 	= $t.parents('.report-block-control');
1651				
1652			$wrap.toggleClass('active-report');
1653			
1654			if($wrap.hasClass('active-report')){
1655				$('html, body').stop().animate({scrollTop:($t.offset().top+$t.height()-window.innerHeight/2+100)}, {duration:500}, function(){});
1656			}
1657			
1658			setTimeout(function(){
1659				if($t.hasClass('complete-action') || $wrap.find('.report-form-control').hasClass('not-login-yet')){
1660					return false;
1661				}
1662				$wrap.find('.report-textarea-control').focus();
1663			}, 200);
1664			
1665			return false;
1666		});
1667		
1668		_.$el.off('.submitReportReasons').on('click.submitReportReasons', '.report-submit-control', function(){
1669			var $t 		= $(this),
1670				$wrap 	= $t.parents('.report-block-control');
1671			
1672			$wrap.find('.report-info-control').removeClass('active-item');
1673			
1674			var val 	= $wrap.find('.report-textarea-control').val(),
1675				post_id	= $wrap.find('.report-textarea-control').attr('data-id');
1676			
1677			if(typeof(val) === 'undefined' || typeof(post_id) === 'undefined' || $.trim(post_id) =='' || $.trim(val) == ''){
1678				$wrap.find('.report-no-data-control').addClass('active-item');
1679				return false;
1680			}
1681			
1682			val = $.trim(val);
1683			
1684			$wrap.addClass('disable-report');
1685			$t.blur();
1686			
1687			var newParamsRequest = {
1688				'action':		'vidorev_submit_video_report',
1689				'post_id':		post_id,
1690				'reasons':		val,
1691				'security':		vidorev_jav_js_object.security,
1692			}
1693			
1694			$.ajax({
1695				url: 		vidorev_jav_js_object.admin_ajax,
1696				type: 		'POST',
1697				cache: 		false,
1698				dataType: 	'json',
1699				data:		newParamsRequest,
1700				success: 	function(data){
1701					
1702					if(typeof(data)!=='object'){
1703						$wrap.find('.report-error-control').addClass('active-item');
1704						$wrap.removeClass('disable-report');
1705					}else{
1706						if(typeof(data.error)!=='undefined' && data.error == 'yes'){
1707							$wrap.find('.report-error-control').addClass('active-item');
1708							$wrap.removeClass('disable-report');
1709						}else if(typeof(data.error)!=='undefined' && data.error == 'already_exist'){
1710							$wrap.find('.report-success-control').addClass('active-item');	
1711							$wrap.find('.report-video-control').addClass('complete-action');
1712							$wrap.find('.reported-control').text(vidorev_jav_js_object.translate_reported);	
1713						}else if(typeof(data.success)!=='undefined' && data.success == 'yes'){							
1714							$wrap.find('.report-success-control').addClass('active-item');	
1715							$wrap.find('.report-video-control').addClass('complete-action');
1716							$wrap.find('.reported-control').text(vidorev_jav_js_object.translate_reported);
1717							
1718						}else{
1719							$wrap.find('.report-error-control').addClass('active-item');
1720							$wrap.removeClass('disable-report');
1721						}						
1722					}
1723																													
1724				},
1725				error: 		function(err){
1726					$wrap.find('.report-error-control').addClass('active-item');
1727					$wrap.removeClass('disable-report');				
1728				}
1729			});
1730		});
1731	}
1732	
1733	vidorev_plugin.prototype.isNumber = function(n){
1734		var _ = this;
1735		return !isNaN(parseFloat(n)) && isFinite(n);
1736	}
1737	
1738	vidorev_plugin.prototype.vidorev_channel_subscribe = function(){
1739		var _ = this;
1740		
1741		_.$el.off('.channelSubscribe').on('click.channelSubscribe', '.subscribe-control', function(){
1742			var $t 			= $(this),
1743				channel_id 	= $t.attr('data-channel-id'),
1744				data_login	= $t.attr('data-login');
1745				
1746			if(typeof(data_login)==='undefined' || data_login === 'none'){
1747				document.location.href= vidorev_jav_js_object.login_url;
1748				return false;
1749			}	
1750			
1751			if(typeof(channel_id)==='undefined' || !_.isNumber(channel_id)){
1752				return false;
1753			}
1754			
1755			var $btn_channel_id = $('.subscribe-control[data-channel-id="'+(channel_id)+'"]');
1756			
1757			$btn_channel_id.addClass('subscribe-loading');
1758			
1759			var newParamsRequest = {
1760				'action':		'vidorev_submit_channel_subscribe',
1761				'channel_id':	channel_id,
1762				'security':		vidorev_jav_js_object.security,
1763			}
1764			
1765			$.ajax({
1766				url: 		vidorev_jav_js_object.admin_ajax,
1767				type: 		'POST',
1768				cache: 		false,
1769				dataType: 	'json',
1770				data:		newParamsRequest,
1771				success: 	function(data){
1772					
1773					if(typeof(data)!=='object'){
1774						
1775					}else{
1776						if(typeof(data.success)!=='undefined' && data.success === 'yes'){
1777							if(data.status_update == 0){
1778								$btn_channel_id.removeClass('channel-subscribed');
1779								setTimeout(function(){
1780									if($t.parents('.subscriptions-archive-control').length > 0){
1781										$t.parents('.post-item.vid_channel').hide('slow', function(){ $(this).remove(); });
1782									}									
1783								}, 300);
1784							}
1785							if(data.status_update == 1){
1786								$btn_channel_id.addClass('channel-subscribed');
1787							}
1788							
1789							$btn_channel_id.find('.subscribed-count-control').text('');
1790							
1791							if(data.subscribed_count != 0){								
1792								$btn_channel_id.find('.subscribed-count-control').text(data.subscribed_count)
1793							}
1794						}				
1795					}
1796					
1797					$btn_channel_id.removeClass('subscribe-loading').blur();
1798																													
1799				},
1800				error: 		function(err){
1801							
1802				}
1803			});
1804		});
1805	}
1806	
1807	vidorev_plugin.prototype.vidorev_cf7_select2 = function(){	
1808		var _ 	= this;
1809		var dir = 'ltr';
1810		
1811		if(_.$el.css('direction')=='rtl'){
1812			dir = 'rtl';
1813		}
1814		
1815		if(typeof($.fn.select2)==='undefined'){
1816			return;
1817		}
1818			
1819		$('.select-multiple-control').select2({
1820			dir:dir,
1821		});
1822		
1823		$('.select-single-ss-control').select2({
1824			dir:dir,
1825			allowClear:true,
1826		});
1827		
1828		$('.ajax-select-playlist-control').select2({
1829			ajax: 	{
1830						url: 		vidorev_jav_js_object.admin_ajax,
1831						data: 		function (params) {
1832										var queryParameters = {
1833										 'action': 	'ajaxGetAllPlaylists',
1834										  'keyword': 	params.term,
1835										  'security': 	vidorev_jav_js_object.security,
1836										}									
1837										return queryParameters;
1838						},
1839						delay: 		250,
1840						dataType: 	'json',
1841						type: 		'POST',
1842						cache:		true,
1843			 		},
1844			minimumInputLength: 3,
1845			allowClear:true,
1846			dir:dir,
1847		});
1848		
1849		$('.ajax-select-channel-control').select2({
1850			ajax: 	{
1851						url: 		vidorev_jav_js_object.admin_ajax,
1852						data: 		function (params) {
1853										var queryParameters = {
1854										  'action': 	'ajaxGetAllChannels',
1855										  'keyword': 	params.term,
1856										  'security': 	vidorev_jav_js_object.security,
1857										}									
1858										return queryParameters;
1859						},
1860						delay: 		250,
1861						dataType: 	'json',
1862						type: 		'POST',
1863						cache:		true,
1864			 		},
1865			minimumInputLength: 3,
1866			allowClear:true,
1867			dir:dir,
1868		});
1869		
1870		_.$el.off('.cf7Submit').on('click.cf7Submit', '.wpcf7-submit', function(){
1871			$(this).parents('.wpcf7').addClass('form-data-loading');
1872		});
1873		
1874		if($( '.wpcf7' ).length > 0){
1875			$( '.wpcf7' ).each(function(index, element) {
1876				var wpcf7Elm = document.querySelector( '#'+($(this).attr('id')) );
1877				'wpcf7invalid wpcf7spam wpcf7mailfailed wpcf7mailsent'.split(' ').forEach(function(e){
1878					wpcf7Elm.addEventListener(e, function(event){
1879						$('#'+(event.detail.unitTag)+'.wpcf7').removeClass('form-data-loading');/*.find('form').trigger('reset');*/
1880						if(e == 'wpcf7mailsent'){
1881							$('#'+(event.detail.unitTag)+'.wpcf7').find('.select-multiple-control').val(null).trigger("change");
1882							$('#'+(event.detail.unitTag)+'.wpcf7').find('.ajax-select-playlist-control').val(null).trigger("change");
1883							$('#'+(event.detail.unitTag)+'.wpcf7').find('.ajax-select-channel-control').val(null).trigger("change");
1884						}
1885					}, false);
1886				});
1887			});
1888		}
1889	}
1890	
1891	vidorev_plugin.prototype.show_more_videos = function(){
1892		var _ = this;	
1893		
1894		var $singleScrollBar = _.$el.find('.show-more-videos-control .blog-wrapper-control');		
1895		if($singleScrollBar.length > 0){
1896			
1897			if(_.global_scroll_bar_lib === 'malihu'){
1898			
1899				$singleScrollBar.mCustomScrollbar({			
1900					axis: 'x',
1901					alwaysShowScrollbar:0,
1902					scrollInertia: 120,
1903				});
1904				
1905			}else{
1906				var instance = $singleScrollBar.overlayScrollbars({
1907					overflowBehavior : {
1908						x:'scroll',
1909						y:'hidden',
1910					}
1911				}).overlayScrollbars();
1912						
1913				var scrollValue 		= instance.scroll().position.x;
1914				var scrollDirection;
1915				var scrollSmoothness 	= 10;
1916				var scrollAmount 		= 100;
1917				var animationLoop = function() { 
1918					var currScroll = instance.scroll().position.x;
1919					var delta = scrollValue - currScroll;
1920					var easedValue = parseInt(currScroll + (delta / Math.max(1, scrollSmoothness)));
1921					if(easedValue === currScroll){
1922						easedValue += delta > 0 ? 1 : -1;
1923					}
1924					if(delta !== 0) {
1925						instance.scroll({ x:easedValue });
1926						requestAnimationFrame(animationLoop);
1927					}
1928				};
1929				$(instance.getElements().viewport).mousewheel(function(event, delta) {
1930					if(event.originalEvent.deltaX === 0) {
1931						var factor 				= delta < 0 ? -1 : 1;
1932						var directionChanged 	= scrollDirection != factor;
1933						var amount 				= scrollAmount * factor;
1934						var root 				= directionChanged ? instance.scroll().position.x : scrollValue;
1935						scrollValue 			= Math.max(0, Math.min(instance.scroll().max.x, root - amount))
1936						scrollDirection 		= factor;
1937						animationLoop();								
1938						event.preventDefault();
1939					}
1940				});
1941			}
1942			
1943			_.$el.off('.moreVideoControl').on('click.moreVideoControl', '.more-videos-control', function(){
1944				var $t = $(this);
1945				$t.toggleClass('active-item');			
1946				_.$el.find('.show-more-videos-control').toggleClass('active-block');
1947			});	
1948		}
1949		
1950		var $singleSeriesScrollBar = _.$el.find('.grid-style-series-control .blog-wrapper-control');		
1951		if($singleSeriesScrollBar.length > 0){
1952			
1953			$singleSeriesScrollBar.each(function(index, element){
1954				var $t 		= $(this),
1955					sPos 	= '';
1956				if($t.find('#current-playing-series').length>0){					
1957					sPos = '#current-playing-series';					
1958				}	
1959				
1960				if(_.global_scroll_bar_lib === 'malihu'){			
1961				
1962					$t.mCustomScrollbar({			
1963						axis: 'x',
1964						alwaysShowScrollbar:0,
1965						scrollInertia: 120,
1966						callbacks:{
1967							onInit: function(){
1968								if(sPos!=''){								
1969									setTimeout(function(){
1970										$t.mCustomScrollbar('scrollTo', sPos);
1971									},368);																
1972								}		 
1973							}
1974						}
1975					});
1976				}else{
1977					var instance = $t.overlayScrollbars({
1978						overflowBehavior : {
1979							x:'scroll',
1980							y:'hidden'
1981						},						
1982					}).overlayScrollbars();
1983						
1984					var scrollValue 		= instance.scroll().position.x;
1985					var scrollDirection;
1986					var scrollSmoothness 	= 10;
1987					var scrollAmount 		= 100;
1988					var animationLoop = function() { 
1989						var currScroll = instance.scroll().position.x;
1990						var delta = scrollValue - currScroll;
1991						var easedValue = parseInt(currScroll + (delta / Math.max(1, scrollSmoothness)));
1992						if(easedValue === currScroll){
1993							easedValue += delta > 0 ? 1 : -1;
1994						}
1995						if(delta !== 0) {
1996							instance.scroll({ x:easedValue });
1997							requestAnimationFrame(animationLoop);
1998						}
1999					};
2000					$(instance.getElements().viewport).mousewheel(function(event, delta) {
2001						if(event.originalEvent.deltaX === 0) {
2002							var factor 				= delta < 0 ? -1 : 1;
2003							var directionChanged 	= scrollDirection != factor;
2004							var amount 				= scrollAmount * factor;
2005							var root 				= directionChanged ? instance.scroll().position.x : scrollValue;
2006							scrollValue 			= Math.max(0, Math.min(instance.scroll().max.x, root - amount))
2007							scrollDirection 		= factor;
2008							animationLoop();								
2009							event.preventDefault();
2010						}
2011					});
2012					
2013					if(sPos!=''){
2014						instance.scroll({ el: $(sPos), scroll : { y : 'never' } }, 500);						
2015					}
2016					
2017				}
2018				
2019			});
2020		}
2021	}
2022	
2023	vidorev_plugin.prototype.get_playlist_by_user_login = function(){
2024		var _ = this;	
2025		
2026		_.$el.off('.addVideoToPlaylistControl').on('click.addVideoToPlaylistControl', '.add-video-to-playlist-control', function(){
2027			
2028			var $t = $(this);
2029			
2030			var post_id = $t.attr('data-post-id');
2031			
2032			if(typeof(post_id) === 'undefined'){
2033				return false;
2034			}
2035			
2036			_.$el.toggleClass('active-playlist-lightbox');
2037			
2038			if($t.hasClass('fn-request')){
2039				return false;
2040			}
2041			
2042			$t.addClass('fn-request');			
2043			
2044			var newParamsRequest = {
2045				'action':		'get_playlist_by_user_login',
2046				'post_id':		post_id,
2047				'security':		vidorev_jav_js_object.security,
2048			}
2049			
2050			$.ajax({
2051				type: 		'POST',
2052				url: 		vidorev_jav_js_object.admin_ajax,
2053				cache: 		false,
2054				data: 		newParamsRequest,
2055				dataType: 	'html',
2056				success: 	function(data, textStatus, jqXHR){
2057					if(data != ''){
2058						
2059						if(_.global_scroll_bar_lib === 'malihu'){
2060						
2061							$('.ajax-playlist-list-control').html(data).mCustomScrollbar({
2062								alwaysShowScrollbar:1,
2063								scrollInertia: 200,
2064							});
2065							
2066						}else{
2067							$('.ajax-playlist-list-control').html(data).overlayScrollbars({
2068								scrollbars:{
2069									//autoHide:'move',
2070								}
2071							});
2072						}
2073					
2074					} else {
2075												
2076					}
2077				
2078				},
2079				error: function( jqXHR, textStatus, errorThrown ){	
2080				}
2081			});		
2082		});
2083		
2084		_.$el.off('.addVideoToPlaylistPopup').on('click.addVideoToPlaylistPopup', '.playlist-item-add-control', function(){
2085			
2086			var $t = $(this);
2087			
2088			var post_id 		= $t.attr('data-post-id');
2089			var playlist_id 	= $t.attr('data-playlist-id');
2090			
2091			if(typeof(post_id) === 'undefined' || typeof(playlist_id) === 'undefined'){
2092				return false;
2093			}
2094			
2095			$t.addClass('loaded-in');
2096			
2097			var newParamsRequest = {
2098				'action':			'add_post_to_playlist_by_user_login',
2099				'post_id':			post_id,
2100				'playlist_id':		playlist_id,
2101				'security':			vidorev_jav_js_object.security,
2102			}
2103			
2104			$.ajax({
2105				type: 		'POST',
2106				url: 		vidorev_jav_js_object.admin_ajax,
2107				cache: 		false,
2108				data: 		newParamsRequest,
2109				dataType: 	'json',
2110				success: 	function(data, textStatus, jqXHR){
2111					if(typeof(data) === 'object' && typeof(data['success']) !== 'undefined'){
2112					
2113						if(data['success']=='in'){
2114							$t.addClass('ready-in');							
2115						}else{
2116							$t.removeClass('ready-in');
2117						}
2118						
2119						$t.removeClass('loaded-in');
2120					
2121					} else {
2122						$t.removeClass('loaded-in');						
2123					}
2124				
2125				},
2126				error: function( jqXHR, textStatus, errorThrown ){	
2127					$t.removeClass('loaded-in');
2128				}
2129			});		
2130		});
2131		
2132		_.$el.off('.closeVideoToPlaylistLightbox').on('click.closeVideoToPlaylistLightbox', '.playlist-items-control', function(e){
2133			var $t = $(this);
2134			_.$el.toggleClass('active-playlist-lightbox');
2135			return false;
2136		});	
2137	}
2138	
2139	vidorev_plugin.prototype.front_end_edit_post = function(){
2140		var _ = this;
2141		
2142		_.$el.off('.frontEndEditControl').on('click.frontEndEditControl', '.fe_edit-post-control', function(){
2143			
2144			var $t = $(this);
2145			
2146			var post_id = $t.attr('data-id');
2147			
2148			var newParamsRequest = {
2149				'action':			'front_end_edit_post_control',
2150				'post_id':			post_id,
2151				'security':			vidorev_jav_js_object.security,
2152			}
2153			
2154			_.$el.append('<div class="lightbox-edit-post lightbox-edit-post-control"><span class="video-load-icon"></span></div>');
2155			
2156			$.ajax({
2157				type: 		'POST',
2158				url: 		vidorev_jav_js_object.admin_ajax,
2159				cache: 		false,
2160				data: 		newParamsRequest,
2161				dataType: 	'json',
2162				success: 	function(data, textStatus, jqXHR){
2163					if(typeof(data) === 'object' && typeof(data['form']) !== 'undefined'){
2164						var html_form = '';
2165						html_form+='<div class="lightbox-edit-post-content"><div role="form" class="wpcf7" id="vidorev-edit-'+(post_id)+'"><div class="lightbox-edit-close lightbox-edit-close-control"><i class="fa fa-times" aria-hidden="true"></i></div><form method="post" class="wpcf7-form front-end-edit-form-control" enctype="multipart/form-data">';
2166							
2167							$.each(data, function(i, values){
2168								if(typeof(values)==='object'){
2169									
2170									$.each(values, function (z, value) {
2171										
2172										var check_type = typeof(value[0])!=='undefined' && $.trim(value[0])!='';
2173										
2174										if(check_type){
2175											html_form+='<div class="vidorev-submit-post">';
2176											html_form+='<h3 class="h5 extra-bold">'+(value[0])+'</h3>';
2177										}										
2178										if(typeof(value[1])!=='undefined' && check_type){
2179											html_form+='<p><span class="wpcf7-form-control-wrap">'+(value[1])+'</span></p>';											
2180										}else if(typeof(value[1])!=='undefined' && !check_type){
2181											html_form+=value[1];			
2182										}										
2183										if(typeof(value[2])!=='undefined'){
2184											html_form+='<br><span class="desc-param">'+(value[2])+'</span>';
2185										}
2186										
2187										if(check_type){
2188											html_form+='</div>';
2189										}
2190									});
2191									
2192								}
2193							});
2194							
2195							
2196						html_form+='<div class="vidorev-submit-post"><input type="button" value="SUBMIT" class="vidorev-submit-video-control" id="vidorev-submit-video"><span class="ajax-loader"></span></div class="ajx"><div class="response-err response-err-control"></div></form></div></div>';
2197						
2198						$('.lightbox-edit-post-control').html(html_form);
2199						
2200						var dir = 'ltr';
2201						if($('body').css('direction')=='rtl'){
2202							dir = 'rtl';
2203						}
2204						
2205						if($('.ajax-edit-find-playlist-control').length>0){						
2206							$('.ajax-edit-find-playlist-control').select2({
2207								ajax: 	{
2208											url: 		vidorev_jav_js_object.admin_ajax,
2209											data: 		function (params) {
2210															var queryParameters = {
2211															 'action': 	'ajaxEditGetAllPlaylists',
2212															  'keyword': params.term,
2213															  'security': vidorev_jav_js_object.security,
2214															}									
2215															return queryParameters;
2216											},
2217											delay: 		250,
2218											dataType: 	'json',
2219											type: 		'POST',
2220											cache:		true,
2221										},
2222								minimumInputLength: 2,
2223								allowClear:false,
2224								dir:dir,
2225								width: 'resolve'
2226							});	
2227						}
2228						if($('.ajax-edit-find-channel-control').length>0){						
2229							$('.ajax-edit-find-channel-control').select2({
2230								ajax: 	{
2231											url: 		vidorev_jav_js_object.admin_ajax,
2232											data: 		function (params) {
2233															var queryParameters = {
2234															 'action': 	'ajaxEditGetAllChannels',
2235															  'keyword': params.term,
2236															  'security': vidorev_jav_js_object.security,
2237															}									
2238															return queryParameters;
2239											},
2240											delay: 		250,
2241											dataType: 	'json',
2242											type: 		'POST',
2243											cache:		true,
2244										},
2245								minimumInputLength: 2,
2246								allowClear:false,
2247								dir:dir,
2248								width: 'resolve'
2249							});	
2250						}
2251					}else{
2252						$('.lightbox-edit-post-control').remove();
2253					}
2254				},
2255				error: function( jqXHR, textStatus, errorThrown ){
2256					$('.lightbox-edit-post-control').remove();
2257				}
2258			});		
2259		});
2260		
2261		_.$el.off('.lightboxEditCloseControl').on('click.lightboxEditCloseControl', '.lightbox-edit-close-control', function(){
2262			$('.lightbox-edit-post-control').remove();
2263		});
2264		
2265		_.$el.off('.lightboxEditButtonControl').on('click.lightboxEditButtonControl', '.vidorev-submit-video-control', function(){
2266			
2267			if ( typeof window.FormData !== 'function' ) {
2268				return;
2269			}
2270			
2271			var $t 			= $(this),
2272				$form 		= $t.parents('.front-end-edit-form-control'),
2273				$parents 	= $t.parents('.lightbox-edit-post-control');
2274				
2275			$parents.addClass('save-data').find('.wpcf7-response-output, .wpcf7-not-valid-tip').remove();
2276				
2277			var formData = new FormData( $form.get(0) );
2278			
2279			formData.append('action', 'front_end_edit_post_data');
2280			formData.append('security', vidorev_jav_js_object.security);
2281			
2282			$.ajax({
2283				type: 		'POST',
2284				url: 		vidorev_jav_js_object.admin_ajax,
2285				cache: 		false,
2286				data: 		formData,
2287				dataType: 	'json',
2288				processData: false,
2289				contentType: false,
2290				success: 	function(data, textStatus, jqXHR){
2291					if(typeof(data) === 'object' && typeof(data['success'])!=='undefined'){
2292						location.reload();
2293					}else{
2294						$parents.removeClass('save-data');
2295						if(typeof(data['error'])!=='undefined' && typeof(data['error_content'])==='object'){
2296							var err_obj = data['error_content'];
2297							$parents.find('.response-err-control').html('<div class="wpcf7-response-output wpcf7-validation-errors" role="alert">'+(err_obj.err_title)+'</div>');
2298							$.each(err_obj.err_class, function (zc, val) {
2299								$parents.find('[name="'+(val)+'"]').after(function() {
2300									return '<span class="wpcf7-not-valid-tip">'+(err_obj.err_desc)+'</span>';
2301								});
2302							});
2303						}
2304					}
2305				},
2306				error: function( jqXHR, textStatus, errorThrown ){
2307					$parents.removeClass('save-data');
2308				}
2309			});	
2310		});
2311	}
2312	
2313	vidorev_plugin.prototype.front_end_delete_post = function(){
2314		var _ = this;
2315		
2316		_.$el.off('.frontEndDeleteControl').on('click.frontEndDeleteControl', '.fe_delete-post-control', function(){
2317			if (!confirm(vidorev_jav_js_object.translate_confirm_delete)) {
2318               return false;
2319            }
2320			
2321			var $t = $(this);
2322			
2323			var post_id = $t.attr('data-id');
2324			
2325			var newParamsRequest = {
2326				'action':			'front_end_delete_post_data',
2327				'post_id':			post_id,
2328				'security':			vidorev_jav_js_object.security,
2329			}
2330			
2331			_.$el.append('<div class="lightbox-edit-post lightbox-edit-post-control"><span class="video-load-icon"></span></div>');
2332			
2333			$.ajax({
2334				type: 		'POST',
2335				url: 		vidorev_jav_js_object.admin_ajax,
2336				cache: 		false,
2337				data: 		newParamsRequest,
2338				dataType: 	'json',
2339				success: 	function(data, textStatus, jqXHR){
2340					if(typeof(data) === 'object' && typeof(data['success']) !== 'undefined' && typeof(data['red_url']) !== 'undefined'){
2341						alert(vidorev_jav_js_object.translate_delete_success);
2342						document.location.href = data['red_url'];
2343					}else{
2344						$('.lightbox-edit-post-control').remove();			
2345					}
2346				},
2347				error: function( jqXHR, textStatus, errorThrown ){
2348					$('.lightbox-edit-post-control').remove();
2349				}
2350			});
2351		})
2352	}
2353	
2354	vidorev_plugin.prototype.series_dropdown_menu = function(){
2355		var _ = this;
2356		
2357		_.$el.off('.seriesDropdownControl').on('click.seriesDropdownControl', '.series-df-item-control', function(){
2358			var $t 			= $(this),
2359				$parents 	= $t.parents('.series-dropdown-control');
2360			
2361			if($parents.hasClass('active-item')){				
2362				$('.series-dropdown-control').removeClass('active-item');
2363			}else{
2364				$('.series-dropdown-control').removeClass('active-item');
2365				$parents.addClass('active-item');
2366			}
2367			
2368		})
2369	}
2370	
2371	vidorev_plugin.prototype.updateQueryStringParameter = function(uri, key, value) {
2372		var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
2373		var separator = uri.indexOf('?') !== -1 ? "&" : "?";
2374		if (uri.match(re)) {
2375			return uri.replace(re, '$1' + key + "=" + value + '$2');
2376		}else {
2377			return uri + separator + key + "=" + value;
2378		}
2379	}
2380	
2381	vidorev_plugin.prototype.advance_search = function(){
2382		var _ = this;
2383		
2384		_.$el.off('.advanceSearchControl').on('click.advanceSearchControl', '.filter-group-title-control', function(){
2385			var $t 			= $(this),
2386				$parents 	= $t.parents('.ft-group-control'),
2387				$item_block	= $parents.find('.ft-group-items-control');
2388			
2389			if($item_block.css('display') == 'none'){
2390				$parents.removeClass('hide-group-filter').addClass('show-group-filter');
2391			}else{
2392				$parents.removeClass('show-group-filter').addClass('hide-group-filter');
2393			}
2394		});
2395		
2396		_.$el.off('.advanceSearchTopPress').on('keyup.advanceSearchTopPress', '.ft-keyword-control-top', function(e){
2397			var $t 			= $(this);
2398			$('.ft-keyword-control-bottom').val($t.val());
2399			if (e.keyCode == 13) {
2400				$('.apply-ft-control').trigger('click');
2401			}
2402		});
2403		
2404		_.$el.off('.advanceSearchBottomPress').on('keyup.advanceSearchBottomPress', '.ft-keyword-control-bottom', function(){
2405			var $t 			= $(this);
2406			$('.ft-keyword-control-top').val($t.val());
2407			if (e.keyCode == 13) {
2408				$('.apply-ft-control').trigger('click');
2409			}
2410		});
2411		
2412		_.$el.off('.advanceSearchSubmit').on('click.advanceSearchSubmit', '.apply-ft-control', function(){
2413			var $t 			= $(this),
2414				$parents 	= $t.parents('.ft-search-box-control');
2415			
2416			if($parents.hasClass('ft-search-box-top')){
2417				$('.ft-keyword-control-bottom').val($('.ft-keyword-control-top').val());				
2418			}else{
2419				$('.ft-keyword-control-top').val($('.ft-keyword-control-bottom').val());
2420			}
2421			
2422			var default_url = $t.attr('data-url');
2423			var new_url = '';
2424			
2425			var keyword = $('.ft-keyword-control-top').val();
2426			
2427			new_url = _.updateQueryStringParameter(default_url, 'keyword', encodeURIComponent(keyword));
2428			
2429			var tags = $('input[name="tag_item_ft[]"]:checked').map(function(_, el) {
2430				return $(el).val();
2431			}).get();
2432			
2433			new_url = _.updateQueryStringParameter(new_url, 'tags', encodeURIComponent(tags.join()));
2434			
2435			var group_ids = $('input[name="tag_item_ft[]"]:checked').map(function(_, el) {
2436				return $(el).attr('data-group-id');
2437			}).get();
2438			
2439			new_url = _.updateQueryStringParameter(new_url, 'group_ids', encodeURIComponent(group_ids.join()));
2440			
2441			document.location.href = new_url;
2442		});
2443		
2444		_.$el.on('change', 'input[name="tag_item_ft[]"]', function(){
2445			var $t 			= $(this),
2446				$parents 	= $t.parents('#vidorev-advance-search-control');
2447				
2448			$parents.addClass('loading-filter');	
2449			
2450			var default_url = $parents.find('.apply-ft-control').attr('data-url');
2451			var new_url = '';
2452			
2453			var keyword = $('.ft-keyword-control-top').val();
2454			
2455			new_url = _.updateQueryStringParameter(default_url, 'keyword', encodeURIComponent(keyword));
2456			
2457			var tags = $('input[name="tag_item_ft[]"]:checked').map(function(_, el) {
2458				return $(el).val();
2459			}).get();
2460			
2461			new_url = _.updateQueryStringParameter(new_url, 'tags', encodeURIComponent(tags.join()));
2462			
2463			var group_ids = $('input[name="tag_item_ft[]"]:checked').map(function(_, el) {
2464				return $(el).attr('data-group-id');
2465			}).get();
2466			
2467			new_url = _.updateQueryStringParameter(new_url, 'group_ids', encodeURIComponent(group_ids.join()));
2468			
2469			document.location.href = new_url;
2470		});
2471	}
2472	
2473	vidorev_plugin.prototype.ads_settings = function(){
2474		var _ = this;
2475		$('input[name="ads_types"]').on('change', function() {
2476			var value = $(this).val();
2477			switch(value){
2478				case 'google_ima':
2479					if($('.user-ads-google-ima').length > 0){
2480						$('html, body').stop().animate({scrollTop:$('.user-ads-google-ima').offset().top-90}, {duration:500}, function(){});
2481					}
2482					break;
2483				
2484				case 'image':
2485					if($('.user-ads-image').length > 0){
2486						$('html, body').stop().animate({scrollTop:$('.user-ads-image').offset().top-90}, {duration:500}, function(){});
2487					}
2488					break;
2489					
2490				case 'html5_video':
2491					if($('.user-ads-html5-video').length > 0){
2492						$('html, body').stop().animate({scrollTop:$('.user-ads-html5-video').offset().top-90}, {duration:500}, function(){});
2493					}
2494					break;
2495					
2496				case 'google_adsense':
2497					if($('.user-ads-google-adsense').length > 0){
2498						$('html, body').stop().animate({scrollTop:$('.user-ads-google-adsense').offset().top-90}, {duration:500}, function(){});
2499					}
2500					break;
2501					
2502				case 'vast':
2503					if($('.user-ads-vast').length > 0){
2504						$('html, body').stop().animate({scrollTop:$('.user-ads-vast').offset().top-90}, {duration:500}, function(){});
2505					}
2506					break;				
2507			}
2508		});
2509		
2510		_.$el.off('.userUpdateAds').on('click.userUpdateAds', '#ads_settings_update', function(){
2511			
2512			var $t = $(this);
2513			
2514			var ads_types = $('input[name="ads_types"]:checked').val();
2515			
2516			var ima_source_desktop 		= $.trim($('input[name="ima_source_desktop"]').val());
2517			var ima_source_tablet 		= $.trim($('input[name="ima_source_tablet"]').val());
2518			var ima_source_mobile 		= $.trim($('input[name="ima_source_mobile"]').val());
2519			
2520			var image_source 			= $.trim($('input[name="image_source"]').val());
2521			var image_link_target 		= $.trim($('input[name="image_link_target"]').val());
2522			var image_time_show_ad 		= $.trim($('input[name="image_time_show_ad"]').val());
2523			var image_time_skip_ad 		= $.trim($('input[name="image_time_skip_ad"]').val());
2524			var image_time_hide_ad 		= $.trim($('input[name="image_time_hide_ad"]').val());
2525			
2526			var video_source 			= $.trim($('input[name="video_source"]').val());
2527			var video_link_target 		= $.trim($('input[name="video_link_target"]').val());
2528			var video_time_show_ad 		= $.trim($('input[name="video_time_show_ad"]').val());
2529			var video_time_skip_ad 		= $.trim($('input[name="video_time_skip_ad"]').val());
2530			
2531			var adsense_client_id 		= $.trim($('input[name="adsense_client_id"]').val());
2532			var adsense_slot_id 		= $.trim($('input[name="adsense_slot_id"]').val());
2533			var adsense_time_show_ad 	= $.trim($('input[name="adsense_time_show_ad"]').val());
2534			var adsense_time_skip_ad 	= $.trim($('input[name="adsense_time_skip_ad"]').val());
2535			var adsense_time_hide_ad 	= $.trim($('input[name="adsense_time_hide_ad"]').val());
2536			
2537			var vast_preroll 			= $.trim($('input[name="vast_preroll"]').val());
2538			var vast_postroll 			= $.trim($('input[name="vast_postroll"]').val());
2539			var vast_pauseroll 			= $.trim($('input[name="vast_pauseroll"]').val());
2540			var vast_midroll 			= $.trim($('input[name="vast_midroll"]').val());
2541			
2542			var user_ads_object = {
2543				"vid_ads_m_video_ads":			"no",
2544				"vid_ads_m_video_ads_type":		"",
2545				"vid_ads_m_group_google_ima":	[
2546					{"vid_ads_m_ima_source": [""], "vid_ads_m_ima_source_tablet": [""], "vid_ads_m_ima_source_mobile": [""]}
2547				],
2548				"vid_ads_m_group_image":		[
2549					{"vid_ads_m_image_source": "", "vid_ads_m_image_link": "", "image_time_show_ad": "", "image_time_skip_ad": "", "image_time_hide_ad": ""}
2550				],
2551				"vid_ads_m_group_html5_video":	[
2552					{"vid_ads_m_video_source": {0: ""}, "vid_ads_m_video_link": "", "video_time_show_ad": "", "video_time_skip_ad": ""}
2553				],
2554				"vid_ads_m_group_html":			[
2555					{"vid_ads_m_html_source": [""], "adsense_client_id": "", "adsense_slot_id": "", "adsense_time_show_ad": "", "adsense_time_skip_ad": "", "adsense_time_hide_ad":""}
2556				],
2557				"vid_ads_m_vast_preroll":		[
2558					{"vid_ads_m_vast_tag_pre": ""}
2559				],
2560				"vid_ads_m_vast_postroll":		[
2561					{"vid_ads_m_vast_tag_post": ""}
2562				],
2563				"vid_ads_m_vast_pauseroll":		[
2564					{"vid_ads_m_vast_tag_pause": ""}
2565				],
2566				"vid_ads_m_vast_midroll":		[
2567					{"vid_ads_m_vast_tag_mid": "", "vid_ads_m_vast_timer_seconds": "10"}
2568				],
2569				"vid_ads_m_time_to_show_ads": 0,
2570				"vid_ads_m_time_skip_ads": 5,
2571				"vid_ads_m_time_to_hide_ads": 10,
2572			}
2573			
2574			if(ads_types == 'google_ima' || ads_types == 'image' || ads_types == 'html5_video' || ads_types == 'google_adsense' || ads_types == 'vast'){
2575				user_ads_object.vid_ads_m_video_ads = 'yes';
2576				user_ads_object.vid_ads_m_video_ads_type = ads_types;
2577				
2578				switch(ads_types){
2579					case 'google_ima':
2580						break;
2581						
2582					case 'image':
2583						if(image_time_show_ad!=''){
2584							user_ads_object.vid_ads_m_time_to_show_ads = image_time_show_ad;
2585						}			
2586						if(image_time_skip_ad!=''){
2587							user_ads_object.vid_ads_m_time_skip_ads = image_time_skip_ad;
2588						}			
2589						if(image_time_hide_ad!=''){
2590							user_ads_object.vid_ads_m_time_to_hide_ads = image_time_hide_ad;
2591						}						
2592						break;
2593						
2594					case 'html5_video':
2595						if(video_time_show_ad!=''){
2596							user_ads_object.vid_ads_m_time_to_show_ads = video_time_show_ad;
2597						}			
2598						if(video_time_skip_ad!=''){
2599							user_ads_object.vid_ads_m_time_skip_ads = video_time_skip_ad;
2600						}
2601						break;
2602						
2603					case 'google_adsense':
2604						user_ads_object.vid_ads_m_video_ads_type = 'html';
2605						if(adsense_time_show_ad!=''){
2606							user_ads_object.vid_ads_m_time_to_show_ads = adsense_time_show_ad;
2607						}			
2608						if(adsense_time_skip_ad!=''){
2609							user_ads_object.vid_ads_m_time_skip_ads = adsense_time_skip_ad;
2610						}			
2611						if(adsense_time_hide_ad!=''){
2612							user_ads_object.vid_ads_m_time_to_hide_ads = adsense_time_hide_ad;
2613						}
2614						break;
2615						
2616					case 'vast':						
2617						break;				
2618				}				
2619			}
2620		
2621			if(ima_source_desktop!=''){
2622				user_ads_object.vid_ads_m_group_google_ima[0].vid_ads_m_ima_source[0] = ima_source_desktop;
2623			}
2624			if(ima_source_tablet!=''){
2625				user_ads_object.vid_ads_m_group_google_ima[0].vid_ads_m_ima_source_tablet[0] = ima_source_tablet;
2626			}
2627			if(ima_source_mobile!=''){
2628				user_ads_object.vid_ads_m_group_google_ima[0].vid_ads_m_ima_source_mobile[0] = ima_source_mobile;
2629			}
2630			
2631			if(image_source!=''){
2632				user_ads_object.vid_ads_m_group_image[0].vid_ads_m_image_source = image_source;
2633			}
2634			if(image_link_target!=''){
2635				user_ads_object.vid_ads_m_group_image[0].vid_ads_m_image_link = image_link_target;
2636			}			
2637			if(image_time_show_ad!=''){
2638				user_ads_object.vid_ads_m_group_image[0].image_time_show_ad = image_time_show_ad;
2639			}			
2640			if(image_time_skip_ad!=''){
2641				user_ads_object.vid_ads_m_group_image[0].image_time_skip_ad = image_time_skip_ad;
2642			}			
2643			if(image_time_hide_ad!=''){
2644				user_ads_object.vid_ads_m_group_image[0].image_time_hide_ad = image_time_hide_ad;
2645			}
2646			
2647			if(video_source!=''){
2648				user_ads_object.vid_ads_m_group_html5_video[0].vid_ads_m_video_source = {"0": video_source};
2649			}
2650			if(video_link_target!=''){
2651				user_ads_object.vid_ads_m_group_html5_video[0].vid_ads_m_video_link = video_link_target;
2652			}			
2653			if(video_time_show_ad!=''){
2654				user_ads_object.vid_ads_m_group_html5_video[0].video_time_show_ad = video_time_show_ad;
2655			}			
2656			if(video_time_skip_ad!=''){
2657				user_ads_object.vid_ads_m_group_html5_video[0].video_time_skip_ad = video_time_skip_ad;
2658			}
2659			
2660			if(adsense_client_id!='' && adsense_slot_id!=''){				
2661				user_ads_object.vid_ads_m_group_html[0].vid_ads_m_html_source[0] = "<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\""+(adsense_client_id)+"\" data-ad-slot=\""+(adsense_slot_id)+"\" data-ad-format=\"auto\"><\/ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});<\/script>";
2662			}
2663			
2664			if(adsense_client_id!=''){
2665				user_ads_object.vid_ads_m_group_html[0].adsense_client_id = adsense_client_id;
2666			}			
2667			if(adsense_slot_id!=''){
2668				user_ads_object.vid_ads_m_group_html[0].adsense_slot_id = adsense_slot_id;
2669			}			
2670			if(adsense_time_show_ad!=''){
2671				user_ads_object.vid_ads_m_group_html[0].adsense_time_show_ad = adsense_time_show_ad;
2672			}			
2673			if(adsense_time_skip_ad!=''){
2674				user_ads_object.vid_ads_m_group_html[0].adsense_time_skip_ad = adsense_time_skip_ad;
2675			}			
2676			if(adsense_time_hide_ad!=''){
2677				user_ads_object.vid_ads_m_group_html[0].adsense_time_hide_ad = adsense_time_hide_ad;
2678			}
2679			
2680			if(vast_preroll!=''){
2681				user_ads_object.vid_ads_m_vast_preroll[0].vid_ads_m_vast_tag_pre = vast_preroll;
2682			}
2683			
2684			if(vast_postroll!=''){
2685				user_ads_object.vid_ads_m_vast_postroll[0].vid_ads_m_vast_tag_post = vast_postroll;
2686			}
2687			
2688			if(vast_pauseroll!=''){
2689				user_ads_object.vid_ads_m_vast_pauseroll[0].vid_ads_m_vast_tag_pause = vast_pauseroll;
2690			}
2691			
2692			if(vast_midroll!=''){
2693				user_ads_object.vid_ads_m_vast_midroll[0].vid_ads_m_vast_tag_mid = vast_midroll;
2694				user_ads_object.vid_ads_m_vast_midroll[0].vid_ads_m_vast_timer_seconds = "10";
2695			}
2696			
2697			var newParamsRequest = {
2698				'action':		'vidorev_update_user_ads_settings',
2699				'ads':			user_ads_object,
2700				'security':		vidorev_jav_js_object.security,	
2701			}
2702			$t.addClass('loading-submit');
2703			$('.ads-notice-submit-control').text('').removeClass('error-text');
2704			
2705			$.ajax({
2706				url: 		vidorev_jav_js_object.admin_ajax,
2707				type: 		'POST',
2708				cache: 		false,
2709				dataType: 	'json',
2710				data:		newParamsRequest,
2711				success: 	function(data){
2712					
2713					if(typeof(data['results'])!=='undefined'){
2714						$('.ads-notice-submit-control').text(data['results'][1]);
2715						if(data['results'][0]==='error'){
2716							$('.ads-notice-submit-control').addClass('error-text');
2717						}
2718					}
2719					
2720					$t.removeClass('loading-submit');																								
2721				},
2722				error: 		function(err){
2723					$t.removeClass('loading-submit');
2724					$('.ads-notice-submit-control').text('An error occurred, please try again!');			
2725				}
2726			});
2727			
2728		});
2729	}
2730	
2731	vidorev_plugin.prototype.tmdb_block_render = function(){
2732		var _ 					= this;
2733		
2734		_.$el.off('.tmdbShowmore').on('click.tmdbShowmore', '.tmdb_showmore_button_control', function(){
2735			var $t 			= $(this),
2736				$parent		= $t.parents('.tmdb-section-control');
2737			
2738			$parent.toggleClass('show-more-content');
2739			
2740			if(!$parent.hasClass('show-more-content')){				
2741				$('html, body').animate({scrollTop:$parent.offset().top-150}, {duration:500, complete: function(){}});			
2742			}
2743		});
2744	}
2745	
2746	vidorev_plugin.prototype.nFormatter = function(num, digits){	
2747			
2748		if(isNaN(num)){
2749			return '0';
2750		}
2751		
2752		var si = [
2753				{ value: 1E18, symbol: "E" },
2754				{ value: 1E15, symbol: "P" },
2755				{ value: 1E12, symbol: "T" },
2756				{ value: 1E9,  symbol: "G" },
2757				{ value: 1E6,  symbol: "M" },
2758				{ value: 1E3,  symbol: "k" }
2759			],
2760			rx = /\.0+$|(\.[0-9]*[1-9])0+$/, 
2761			i;
2762		for (var i=0; i<si.length;i++) {
2763			if(num>=si[i].value) {
2764				return (num / si[i].value).toFixed(digits).replace(rx, "$1") + si[i].symbol;
2765			}
2766		}
2767		return num.toFixed(digits).replace(rx, "$1");
2768	}/*big number format*/
2769	
2770	vidorev_plugin.prototype.secondsToTime = function (e){
2771		var h = Math.floor(e / 3600).toString().padStart(2,'0'),
2772			m = Math.floor(e % 3600 / 60).toString().padStart(2,'0'),
2773			s = Math.floor(e % 60).toString().padStart(2,'0');
2774		
2775		if(h=='00'){
2776			return m + ':' + s;
2777		}else{
2778			return h + ':' + m + ':' + s;
2779		}
2780	}
2781	
2782	vidorev_plugin.prototype.youtube_live_video_pros = function(crr_yvt, crr_obj, action){
2783		var _ = this;
2784		
2785		var	live_url 			= crr_obj.live_url,
2786			upcoming_url 		= crr_obj.upcoming_url,
2787			completed_url 		= crr_obj.completed_url,
2788			recent_url 			= crr_obj.recent_url,
2789			channel_name 		= crr_obj.channel_name,
2790			live_video_title 	= crr_obj.live_video_title,
2791			auto_refresh 		= crr_obj.auto_refresh,
2792			fallback_options 	= crr_obj.fallback_options,
2793			public_api_key 		= crr_obj.public_api_key,
2794			lang				= crr_obj.lang,
2795			timezone			= crr_obj.timezone,
2796			display_info		= crr_obj.display_info,
2797			player				= crr_obj.player,
2798			autoplay			= crr_obj.autoplay;
2799		
2800		var $live_bar_control		= crr_yvt.find('.live-bar-control'),
2801			$live_player_control 	= crr_yvt.find('.live-player-control'),
2802			$reload_time_control	= crr_yvt.find('.reload-time-control');
2803			
2804		var reloadTimeInterval		= null;	
2805			
2806			
2807		var append_html_player = function(video_id, status){	
2808			
2809			var def_obj = {
2810				'membership'								: '',
2811				'player_library'							: 'vp',
2812				'plyr_player'								: 'on',
2813				'poster_background'							: '',
2814				'prime_video'								: '',
2815				'single_video_network'						: 'youtube',
2816				'single_video_source'						: video_id,
2817				'single_video_streaming'					: '',
2818				'single_video_suggested'					: '',
2819				'single_video_url'							: '',
2820				'single_video_youtube_playlist_id'			: '',
2821				'vidorev_jav_plugin_video_ads_object_post'	: {'vid_ads_m_video_ads':'no'},
2822				'vm_video_ratio'							: '16:9',
2823				'vm_video_ratio_mobile'						: '16:9',
2824				'woo_membership'							: '',				
2825					
2826			}
2827			
2828			if(player=='youtube'){
2829				def_obj.plyr_player = 'off';
2830			}
2831			
2832			var url_details = '://www.googleapis.com/youtube/v3/videos?id='+(video_id)+'&part=snippet,statistics&key='+(public_api_key);
2833			
2834			switch(status){
2835				case 'live':
2836					url_details = '://www.googleapis.com/youtube/v3/videos?id='+(video_id)+'&part=snippet,statistics,liveStreamingDetails&key='+(public_api_key);
2837					break;
2838				case 'scheduled':
2839					url_details = '://www.googleapis.com/youtube/v3/videos?id='+(video_id)+'&part=snippet,statistics,liveStreamingDetails&key='+(public_api_key);
2840					break;	
2841			}
2842			
2843			var rnd_url_pl_id = 'cache_'+(Math.random().toString(36).substring(2, 11) + Math.random().toString(36).substring(2, 15));
2844			
2845			$.ajax({
2846				url: 		_.updateQueryStringParameter('https'+(url_details), 'vid_callback', encodeURIComponent(rnd_url_pl_id)),
2847				type: 		'GET',
2848				cache: 		true,
2849				dataType: 	'jsonp',
2850				success: 	function(data){
2851					
2852					if(typeof(data.items)!=='undefined' || typeof(data.items[0])!=='undefined'){
2853						
2854						var rnd_id = 'live-p-'+(Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15));	
2855						
2856						var val_details 		= data.items[0],
2857							vid_title 			= typeof(val_details.snippet.title)!=='undefined'?val_details.snippet.title:'',
2858							vid_channel 		= typeof(val_details.snippet.channelId)!=='undefined'?val_details.snippet.channelId:'',
2859							vid_channel_title	= typeof(val_details.snippet.channelTitle)!=='undefined'?val_details.snippet.channelTitle:'',
2860							likes_counter 		= (typeof(val_details.statistics)!=='undefined' && typeof(val_details.statistics.likeCount)!=='undefined')?_.nFormatter(parseFloat(val_details.statistics.likeCount), 1):0,
2861							views_counter 		= 0;
2862						
2863						var post_meta 			= '',
2864							vid_scheduled		= '',
2865							iframe_chat			= '';
2866							
2867						switch(status){
2868							case 'live':
2869								views_counter = (typeof(val_details.liveStreamingDetails)!=='undefined' && typeof(val_details.liveStreamingDetails.concurrentViewers)!=='undefined')?_.nFormatter(parseFloat(val_details.liveStreamingDetails.concurrentViewers), 1):0;
2870								
2871								post_meta = '<div class="entry-meta post-meta meta-font"><div class="post-meta-wrap"><div class="channel-url"><i class="fa fa-video-camera" aria-hidden="true"></i><a href="https://www.youtube.com/channel/'+(vid_channel)+'" target="_blank">'+(vid_channel_title)+'</a></div><div class="watching-count"><i class="fa fa-circle" aria-hidden="true"></i><span>'+(views_counter)+' Watching</span></div><div class="like-count"><i class="fa fa-thumbs-up" aria-hidden="true"></i><span class="like-count">'+(likes_counter)+'</span></div></div></div>';
2872								
2873								iframe_chat = '';
2874								
2875								break;
2876								
2877							case 'scheduled':
2878								
2879								var scheduledStartTime = (typeof(val_details.liveStreamingDetails)!=='undefined' && typeof(val_details.liveStreamingDetails.scheduledStartTime)!=='undefined')?val_details.liveStreamingDetails.scheduledStartTime:0;
2880								
2881								var scheduled_options = {
2882									year: '2-digit', month: '2-digit', day: '2-digit',
2883									hour: '2-digit', minute: '2-digit', second: '2-digit',
2884									timeZone: timezone,
2885									timeZoneName: 'short'
2886								}
2887								var formater 			= new Intl.DateTimeFormat(lang, scheduled_options);
2888								
2889								var startingDate 		= new Date(scheduledStartTime);
2890								var currentLocalTime 	= new Date();
2891								
2892								var hoursCD 			= Math.abs(startingDate - currentLocalTime) / 36e5;
2893								
2894								var time_iterv 			= startingDate.getTime()/1000 - currentLocalTime.getTime()/1000;
2895															
2896								var dateInNewTimezone 			= formater.format(startingDate);
2897								var currentdateInNewTimezone 	= formater.format(currentLocalTime);
2898								
2899								post_meta = '<div class="entry-meta post-meta meta-font"><div class="post-meta-wrap"><div class="channel-url"><i class="fa fa-video-camera" aria-hidden="true"></i><a href="https://www.youtube.com/channel/'+(vid_channel)+'" target="_blank">'+(vid_channel_title)+'</a></div><div class="watching-count"><i class="fa fa-circle" aria-hidden="true"></i><span>Scheduled for '+(dateInNewTimezone)+'</span></div><div class="like-count"><i class="fa fa-thumbs-up" aria-hidden="true"></i><span class="like-count">'+(likes_counter)+'</span></div></div></div>';
2900								
2901								vid_scheduled = '<div class="absolute-content checking-scheduled dark-background"><span><i class="fa fa-clock-o" aria-hidden="true"></i>&nbsp; <span class="reload-atl-control-'+(rnd_id)+'">'+(_.secondsToTime(time_iterv))+'</span></span><br><span class="scheduled-time-control"><i class="fa fa-podcast" aria-hidden="true"></i>&nbsp; '+(dateInNewTimezone)+'</span></div>';
2902								
2903								break;
2904								
2905							default:
2906								views_counter = (typeof(val_details.statistics)!=='undefined' && typeof(val_details.statistics.viewCount)!=='undefined')?_.nFormatter(parseFloat(val_details.statistics.viewCount), 1):0;
2907								
2908								post_meta = '<div class="entry-meta post-meta meta-font"><div class="post-meta-wrap"><div class="channel-url"><i class="fa fa-video-camera" aria-hidden="true"></i><a href="https://www.youtube.com/channel/'+(vid_channel)+'" target="_blank">'+(vid_channel_title)+'</a></div><div class="watching-count"><i class="fa fa-circle" aria-hidden="true"></i><span>'+(views_counter)+'</span></div><div class="like-count"><i class="fa fa-thumbs-up" aria-hidden="true"></i><span class="like-count">'+(likes_counter)+'</span></div></div></div>';
2909									
2910						}
2911						
2912						var post_content = '';						
2913						if(display_info=='on'){
2914							post_content = '<div class="vid-content dark-background">\
2915								<h3 class="h5-mobile post-title">
2915'+(vid_title)+'</h3>\
2916								'+(post_meta)+'\
2917							</div>';
2918						}
2919								
2920						var html_player = '<div class="live-player-item live-player-item-control">\
2921							<div class="video-player-wrap">\
2922								<div class="video-player-ratio"></div>\
2923								<div class="video-player-content video-player-control">\
2924									<div class="player-3rdparty player-3rdparty-control" id="'+(rnd_id)+'-init">\
2925										<div id="'+(rnd_id)+'" class="player-api">\
2926										</div>\
2927										<div class="player-muted player-muted-control"><i class="fa fa-volume-off" aria-hidden="true"></i></div>\
2928									</div>\
2929									<div class="video-loading video-loading-control"><span class="video-load-icon"></span></div>\
2930								</div>\
2931								'+(vid_scheduled)+'\
2932							</div>\
2933							'+(post_content)+'\
2934							'+(iframe_chat)+'\
2935						</div>';
2936						
2937						$live_player_control.append(html_player);
2938						
2939						if(typeof(time_iterv)!=='undefined' && time_iterv>0){
2940							var time_iterv_action = null,
2941								crr_sch_time = time_iterv;														
2942							
2943							time_iterv_action = setInterval(function(){				
2944								crr_sch_time--;
2945								
2946								if($('.reload-atl-control-'+(rnd_id)).length === 0){
2947									clearInterval(time_iterv_action);
2948									return false;
2949								}
2950								
2951								if(crr_sch_time<=0){
2952									clearInterval(time_iterv_action);
2953									$('.reload-atl-control-'+(rnd_id)).text('00:00');
2954									api_load_live_video();
2955									return false;
2956								}
2957								$('.reload-atl-control-'+(rnd_id)).text(_.secondsToTime(crr_sch_time));				
2958							}, 1000);
2959						}else{
2960							if(time_iterv<=0){
2961								$('.reload-atl-control-'+(rnd_id)).text(vidorev_jav_js_object.translate_live_or_ended);
2962							}
2963						}
2964						
2965						if(autoplay==='on' && (status==='live' || status==='recent' || status==='completed') && _.global_live_yt_ready === 1){
2966							def_obj.sc_autoplay_valid = 'on';
2967							_.global_live_yt_ready++;
2968						}
2969						
2970						if(typeof(window.get_vidorev_build_fnc)!=='undefined' && window.get_vidorev_build_fnc!==null){
2971							window.get_vidorev_build_fnc.create_single_video_player(rnd_id, def_obj);
2972						}else{
2973							_.$el.on('get_vidorev_build_fnc', function(e){
2974								window.get_vidorev_build_fnc.create_single_video_player(rnd_id, def_obj);
2975							});
2976						}
2977						
2978						switch(status){
2979							case 'live':
2980								if(!crr_yvt.is('.status-live')){
2981									crr_yvt.addClass('status-live').removeClass('status-check status-offline recent-active scheduled-active completed-active').find('.live-bar-btn-ctrl[data-action="live"]').addClass('active-item');
2982								}
2983								break;
2984							case 'scheduled':
2985								if(!crr_yvt.is('.status-offline.scheduled-active')){
2986									crr_yvt.addClass('status-offline scheduled-active').removeClass('status-check status-live recent-active completed-active').find('.live-bar-btn-ctrl[data-action="scheduled"]').addClass('active-item');
2987								}
2988								break;
2989							
2990							case 'recent':
2991								if(!crr_yvt.is('.status-offline.recent-active')){
2992									crr_yvt.addClass('status-offline recent-active').removeClass('status-check status-live scheduled-active completed-active').find('.live-bar-btn-ctrl[data-action="recent"]').addClass('active-item');
2993								}
2994								break;
2995								
2996							case 'completed':
2997								if(!crr_yvt.is('.status-offline.completed-active')){
2998									crr_yvt.addClass('status-offline completed-active').removeClass('status-check status-live scheduled-active recent-active').find('.live-bar-btn-ctrl[data-action="completed"]').addClass('active-item');
2999								}
3000								break;		
3001								
3002						}						
3003					}
3004													
3005				},
3006				error: 		function(err){
3007					return;				
3008				}
3009			});
3010		}
3011		
3012		var reload_action = function(){
3013			
3014			_.global_live_yt_ready = 1;
3015			
3016			if(auto_refresh!='on'){
3017				return;
3018			}
3019			
3020			if(reloadTimeInterval!==null){
3021				clearInterval(reloadTimeInterval);
3022			}
3023			
3024			var currentReloadTime = 300;
3025			reloadTimeInterval = setInterval(function(){				
3026				currentReloadTime--;
3027				if(currentReloadTime<=0){
3028					clearInterval(reloadTimeInterval);
3029					api_load_live_video();
3030				}
3031				$reload_time_control.text(_.secondsToTime(currentReloadTime));				
3032			}, 1000);
3033		}
3034		
3035		var api_load_live_video = function(){
3036			
3037			reload_action();
3038			
3039			if(!crr_yvt.is('.sub-check-online.status-live') && !crr_yvt.is('.status-offline.sc
3039heduled-active') && !crr_yvt.is('.status-offline.recent-active') && !crr_yvt.is('.status-offline.completed-active') && !crr_yvt.is('.firstly-done')){					
3040				crr_yvt.addClass('status-check').removeClass('status-offline status-live recent-active scheduled-active completed-active').find('.live-bar-btn-ctrl').removeClass('active-item');
3041			}
3042			
3043			if(crr_yvt.find('.live-bar-btn-ctrl.user-click-item[data-action="live"]').length > 0){
3044				crr_yvt.addClass('status-check').removeClass('status-offline status-live recent-active scheduled-active completed-active').find('.live-bar-btn-ctrl').removeClass('active-item');
3045			}
3046			
3047			var rnd_url_live_id = 'cache_'+(Math.random().toString(36).substring(2, 11) + Math.random().toString(36).substring(2, 15));
3048			
3049			$.ajax({
3050				url: 		_.updateQueryStringParameter(live_url, 'vid_callback', encodeURIComponent(rnd_url_live_id)),
3051				type: 		'GET',
3052				cache: 		false,
3053				dataType: 	'jsonp',
3054				success: 	function(data){
3055					
3056					if(typeof(data.items)==='undefined' || typeof(data.items[0])==='undefined'){
3057						
3058						crr_yvt.find('.live-bar-btn-ctrl.user-click-item[data-action="live"]').removeClass('user-click-item');
3059						
3060						switch(fallback_options){
3061							case 'scheduled_live_video':
3062								api_load_scheduled_live_video();
3063								break;
3064							
3065							case 'recent_video':
3066								api_load_recent_video();
3067								break;
3068								
3069							case 'completed_live_video':
3070								api_load_completed_live_video();
3071								break;
3072						}
3073						
3074						crr_yvt.removeClass('sub-check-online');
3075												
3076						return;						
3077					}
3078										
3079					if( crr_yvt.is('.sub-check-online.status-live') || (crr_yvt.find('.live-bar-btn-ctrl.user-click-item:not([data-action="live"])').length > 0 && crr_yvt.is('.sub-check-online')) ){
3080						return;
3081					}
3082					
3083					crr_yvt.find('.live-bar-btn-ctrl').removeClass('active-item');
3084					crr_yvt.find('.live-bar-btn-ctrl.user-click-item[data-action="live"]').removeClass('user-click-item');
3085															
3086					if(!crr_yvt.is('.status-live')){					
3087						crr_yvt.find('.live-player-item-control').remove();
3088					}
3089									
3090					$.each(data.items, function( index, value ){
3091						
3092						if(typeof(value.id)!=='undefined' && typeof(value.id.videoId)!=='undefined'){
3093							append_html_player(value.id.videoId, 'live');								
3094						}
3095						
3096					});
3097					
3098					crr_yvt.addClass('sub-check-online firstly-done');
3099																							
3100				},
3101				error: 		function(err){
3102					crr_yvt.addClass('status-offline').removeClass('status-check status-live recent-active scheduled-active completed-active').find('.live-player-item-control').remove();
3103					crr_yvt.removeClass('sub-check-online');
3104					console.log(err);
3105					return;				
3106				}
3107			});		
3108		}
3109		
3110		var api_load_scheduled_live_video = function(){
3111			
3112			reload_action();
3113			
3114			if(crr_yvt.is('.status-offline.scheduled-active') || crr_yvt.find('.live-bar-btn-ctrl.user-click-item:not([data-action="scheduled"])').length > 0){					
3115				return;
3116			}
3117			
3118			crr_yvt.addClass('status-check').removeClass('status-offline status-live recent-active scheduled-active completed-active').find('.live-bar-btn-ctrl').removeClass('active-item');
3119			
3120			var rnd_url_scheduled_id = 'cache_'+(Math.random().toString(36).substring(2, 11) + Math.random().toString(36).substring(2, 15));
3121			
3122			$.ajax({
3123				url: 		_.updateQueryStringParameter(upcoming_url, 'vid_callback', encodeURIComponent(rnd_url_scheduled_id)),
3124				type: 		'GET',
3125				cache: 		false,
3126				dataType: 	'jsonp',
3127				success: 	function(data){
3128					
3129					if(typeof(data.items)==='undefined' || typeof(data.items[0])==='undefined'){
3130						
3131						crr_yvt.addClass('status-offline firstly-done').removeClass('status-check status-live recent-active scheduled-active completed-active').find('.live-player-item-control').remove();
3132						crr_yvt.find('.live-bar-btn-ctrl[data-action="scheduled"]').addClass('active-item');
3133						
3134						return;						
3135					}
3136					
3137					if(!crr_yvt.is('.status-offline.scheduled-active')){
3138						crr_yvt.find('.live-player-item-control').remove();
3139					}					
3140									
3141					$.each(data.items, function( index, value ){
3142						
3143						if(typeof(value.id)!=='undefined' && typeof(value.id.videoId)!=='undefined'){
3144							append_html_player(value.id.videoId, 'scheduled');								
3145						}
3146						
3147					});
3148					
3149					crr_yvt.addClass('firstly-done');
3150													
3151				},
3152				error: 		function(err){
3153					crr_yvt.addClass('status-offline firstly-done').removeClass('status-check status-live recent-active scheduled-active completed-active').find('.live-player-item-control').remove();
3154					console.log(err);
3155					return;				
3156				}
3157			});		
3158			
3159		}
3160		
3161		var api_load_recent_video = function(){
3162			
3163			reload_action();
3164			
3165			if(crr_yvt.is('.status-offline.recent-active') || crr_yvt.find('.live-bar-btn-ctrl.user-click-item:not([data-action="recent"])').length > 0){					
3166				return;
3167			}
3168			
3169			crr_yvt.addClass('status-check').removeClass('status-offline status-live recent-active scheduled-active completed-active').find('.live-bar-btn-ctrl').removeClass('active-item');
3170			
3171			var rnd_url_recent_id = 'cache_'+(Math.random().toString(36).substring(2, 11) + Math.random().toString(36).substring(2, 15));
3172			
3173			$.ajax({
3174				url: 		_.updateQueryStringParameter(recent_url, 'vid_callback', encodeURIComponent(rnd_url_recent_id)),
3175				type: 		'GET',
3176				cache: 		false,
3177				dataType: 	'jsonp',
3178				success: 	function(data){
3179					
3180					if(typeof(data.items)==='undefined' || typeof(data.items[0])==='undefined'){
3181						
3182						crr_yvt.addClass('status-offline firstly-done').removeClass('status-check status-live recent-active scheduled-active completed-active').find('.live-player-item-control').remove();
3183						crr_yvt.find('.live-bar-btn-ctrl[data-action="recent"]').addClass('active-item');
3184						
3185						return;						
3186					}
3187					
3188					if(!crr_yvt.is('.status-offline.recent-active')){
3189						crr_yvt.find('.live-player-item-control').remove();
3190					}					
3191									
3192					$.each(data.items, function( index, value ){
3193						
3194						if(typeof(value.id)!=='undefined' && typeof(value.id.videoId)!=='undefined'){
3195							append_html_player(value.id.videoId, 'recent');								
3196						}
3197						
3198					});
3199					
3200					crr_yvt.addClass('firstly-done');
3201													
3202				},
3203				error: 		function(err){
3204					crr_yvt.addClass('status-offline firstly-done').removeClass('status-check status-live recent-active scheduled-active completed-active').find('.live-player-item-control').remove();
3205					console.log(err);
3206					return;				
3207				}
3208			});	
3209			
3210		}
3211		
3212		var api_load_completed_live_video = function(){
3213			
3214			reload_action();
3215			
3216			if(crr_yvt.is('.status-offline.completed-active') || crr_yvt.find('.live-bar-btn-ctrl.user-click-item:not([data-action="completed"])').length > 0){					
3217				return;
3218			}
3219			
3220			crr_yvt.addClass('status-check').removeClass('status-offline status-live recent-active scheduled-active completed-active').find('.live-bar-btn-ctrl').removeClass('active-item');
3221			
3222			var rnd_url_completed_id = 'cache_'+(Math.random().toString(36).substring(2, 11) + Math.random().toString(36).substring(2, 15));
3223			
3224			$.ajax({
3225				url: 		_.updateQueryStringParameter(completed_url, 'vid_callback', encodeURIComponent(rnd_url_completed_id)),
3226				type: 		'GET',
3227				cache: 		false,
3228				dataType: 	'jsonp',
3229				success: 	function(data){
3230					
3231					if(typeof(data.items)==='undefined' || typeof(data.items[0])==='undefined'){
3232						
3233						crr_yvt.addClass('status-offline firstly-done').removeClass('status-check status-live recent-active scheduled-active completed-active').find('.live-player-item-control').remove();
3234						crr_yvt.find('.live-bar-btn-ctrl[data-action="completed"]').addClass('active-item');
3235						
3236						return;						
3237					}
3238					
3239					if(!crr_yvt.is('.status-offline.completed-active')){
3240						crr_yvt.find('.live-player-item-control').remove();
3241					}					
3242									
3243					$.each(data.items, function( index, value ){
3244						
3245						if(typeof(value.id)!=='undefined' && typeof(value.id.videoId)!=='undefined'){
3246							append_html_player(value.id.videoId, 'completed');								
3247						}
3248						
3249					});
3250					
3251					crr_yvt.addClass('firstly-done');
3252													
3253				},
3254				error: 		function(err){
3255					crr_yvt.addClass('status-offline firstly-done').removeClass('status-check status-live recent-active scheduled-active completed-active').find('.live-player-item-control').remove();
3256					console.log(err);
3257					return;				
3258				}
3259			});
3260			
3261		}
3262		
3263		switch(action){				
3264			case 'live':
3265				api_load_live_video();
3266				break;
3267				
3268			case 'scheduled':
3269				api_load_scheduled_live_video();
3270				break;
3271				
3272			case 'recent':
3273				api_load_recent_video();
3274				break;
3275				
3276			case 'completed':
3277				api_load_completed_live_video();
3278				break;		
3279		}
3280		
3281		crr_yvt.find('.live-bar-btn-ctrl').on('click', function(){
3282			var $t 			= $(this),
3283				d_action 	= $t.attr('data-action');
3284				
3285			crr_yvt.find('.live-bar-btn-ctrl').removeClass('user-click-item');	
3286			
3287			$t.addClass('user-click-item');
3288				
3289			if(typeof(d_action)!=='undefined' && d_action!=''){				
3290				switch(d_action){
3291					case 'live':
3292						api_load_live_video();
3293						break;
3294						
3295					case 'scheduled':
3296						api_load_scheduled_live_video();
3297						break;
3298						
3299					case 'recent':
3300						api_load_recent_video();
3301						break;
3302						
3303					case 'completed':
3304						api_load_completed_live_video();
3305						break;		
3306				}
3307			}
3308						
3309			return false;	
3310		});
3311	}
3312	
3313	vidorev_plugin.prototype.youtube_live_video = function(id){
3314		var _ 			= this,
3315			$yvl_wrapper = _.$el.find('.yvl-wrapper-control');
3316			
3317		if(typeof(id)!=='undefined' && id!=''){
3318			$yvl_wrapper = _.$el.find('.yvl-wrapper-control[id="'+(id)+'"]');
3319			console.log($yvl_wrapper);
3320		}	
3321		
3322		if($yvl_wrapper.length>0){
3323			$yvl_wrapper.each(function(index, element){
3324				var crr_yvt 	= $(this),
3325					crr_id		= crr_yvt.attr('id');
3326				
3327				if(typeof(crr_id)!=='undefined' && crr_id!='' && typeof(beeteam368_vid_live_json[crr_id])==='object'){
3328										
3329					var crr_obj 			= beeteam368_vid_live_json[crr_id];					
3330					_.youtube_live_video_pros(crr_yvt, crr_obj, 'live');
3331						
3332				}
3333			});
3334		}
3335	}
3336		
3337	/*destroy [Core]*/
3338	vidorev_plugin.prototype.destroy = function(){
3339		var _ = this;		
3340	}/*destroy [Core]*/
3341	
3342	/*jquery [Core]*/
3343	$.fn.J_vidorev_plugin = function(){
3344		var _ 		= this,
3345			opt 	= arguments[0],
3346			args 	= Array.prototype.slice.call(arguments, 1),
3347			l 		= _.length,
3348			i,
3349			ret;
3350		for(i = 0; i < l; i++) {
3351			if(typeof opt == 'object' || typeof opt == 'undefined'){
3352				_[i].J_vidorev_plugin = new vidorev_plugin(_[i], opt);
3353			}else{
3354				ret = _[i].J_vidorev_plugin[opt].apply(_[i].J_vidorev_plugin, args);
3355			}
3356			if (typeof ret != 'undefined'){				
3357				return ret;
3358			}
3359		}
3360		return _;
3361	}/*jquery [Core]*/
3362	
3363	/*ready [Core]*/
3364	$(document).ready(function(){
3365		var $b = $( 'body' ),
3366			options = { };
3367			
3368		$b.on(prefix+'init', function(e, fnc){
3369			console.log('VidoRev-plugin: library is installed, version 2.9.9.9.9.3');
3370			vidorev_builder_control = fnc;						
3371		});
3372			
3373		$b.J_vidorev_plugin( options );		
3374	});/*ready [Core]*/
3375			
3376}));

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.