PageSourceSearch

https://labrujulaocioycultura.com/wp-content/plugins/eventON/assets/js/eventon_functions.js?ver=4.4

js labrujulaocioycultura.com collected 2026-10-02 13:37:32 UTC 30,715 bytes, 1,053 lines download raw bytes

1/*
2 * Javascript: EventON functions for all calendars
3 * @version: 4.3.5
4 */
5(function($){
6
7	// Calendar function s
8		$.fn.evo_cal_functions = function(O){
9			el = this;
10			switch(O.return){
11				// load shortcodes inside calendar data
12				case 'load_shortcodes':
13					return el.find('.evo_cal_data').data('sc');		
14				break;
15				case 'update_shortcodes':
16					el.find('.evo_cal_data').data( 'sc', O.SC );
17				break;
18			}
19		};
20
21	// access page GLOBALS
22		$.fn.evo_get_global = function(opt){
23			var defaults = { S1:'', S2:''};
24			var OPT = $.extend({}, defaults, opt);
25
26			var BUS = $('#evo_global_data').data('d');
27
28			if(!(OPT.S1 in BUS)) return false;
29			if(!(OPT.S2 in BUS[OPT.S1])) return false;
30			return BUS[OPT.S1][OPT.S2];
31		}
32		$.fn.evo_get_txt = function(opt){
33			var defaults = { V:''}
34			var OPT = $.extend({}, defaults, opt);
35
36			var BUS = $('#evo_global_data').data('d');
37			if(!('txt' in BUS)) return false;
38			if(!(OPT.V in BUS.txt)) return false;
39			return BUS.txt[OPT.V];
40		}
41		$.fn.evo_get_cal_def = function(opt){
42			var defaults = { V:''}
43			var OPT = $.extend({}, defaults, opt);
44
45			var BUS = $('#evo_global_data').data('d');
46			if(!('cal_def' in BUS)) return false;
47			if(!(OPT.V in BUS.cal_def)) return false;
48			return BUS.cal_def[OPT.V];
49		}
50
51		// return dms translates values from global data
52		// added 4.0
53		$.fn.evo_get_dms_vals = function(opt){
54			// type = d, d1,d3, m, m3
55			// V = 0-x
56			var defaults = { type:'d', V:''}
57			var OPT = $.extend({}, defaults, opt);
58
59			var BUS = $('#evo_global_data').data('d');			
60			if(!('dms' in BUS)) return false;
61			if(!(OPT.type in BUS.dms)) return false;
62
63			return BUS.dms[ OPT.type ][ OPT.V ];
64			
65		}
66
67	// GENERAL AJAX ACCESS + 4.1.2
68		$.fn.evo_admin_get_ajax = function(opt){
69  			var defs = {
70  				'lightbox_key':'', // same as lightbox class
71  				'lightbox_loader': true,
72  				'load_new_content': true,
73  				'load_new_content_id': '', // @since 4.3.5
74  				'hide_lightbox':false,	// @since 4.3.5
75  				'hide_message':2000,	// @since 4.3.5
76  				'ajaxdata':{
77  					'load_lbcontent':'',
78  					'load_new_content':''
79  				},
80  				'uid':'',
81  				'end':'admin', // admin or client
82  				'loader_el':'',
83  				'ajax_type':'ajax',
84  				'ajax_action':'',
85  			}
86
87  			var el = $(this);
88  			var OO = $.extend({}, defs, opt);
89
90  			//console.log(OO);
91
92  			
93  			var ajaxdata = OO.ajaxdata;
94
95  			// passing nonce
96  			ajaxdata['nn'] = ( OO.end == 'client' ) ? evo_general_params.n : evo_admin_ajax_handle.postnonce; 
97
98  			// uid use ajax_action as backup
99  				if( OO.uid == '' && OO.ajax_action != '') OO.uid = OO.ajax_action;
100
101  			LB = false;
102  			if( OO.lightbox_key != '') LB = $('body').find('.evo_lightbox.'+ OO.lightbox_key);
103
104
105  			var returnvals = '';
106
107  			// process action value
108  			if( 'a' in ajaxdata ) ajaxdata['action'] = ajaxdata.a;
109
110  			// ajax url processing 
111  				var ajax_url = el.evo_get_ajax_url({a: OO.ajax_action, e: OO.end, type: OO.ajax_type});
112
113			$.ajax({
114				beforeSend: function(){
115					$('body').trigger('evo_ajax_beforesend_' + OO.uid ,[ OO, el ]);
116					if( LB && OO.lightbox_loader){
117						LB.find('.ajde_popup_text').addClass( 'loading');
118						LB.find('.evolb_content').addClass( 'loading');
119					}
120					if( OO.loader_el){
121						$( OO.loader_el ).addClass('evoloading loading');
122					}
123				},
124				type: 'POST',
125				url: ajax_url,
126				data: ajaxdata,
127				dataType:'json',
128				success:function(data){					
129					//console.log(OO);
130					if( LB ){
131
132						// show message
133							if( 'msg' in data && data.msg != '' && LB){
134								LB.evo_lightbox_show_msg({'type': data.status, 
135									'message':data.msg, 
136									hide_lightbox: OO.hide_lightbox,	
137									hide_message: OO.hide_message
138								});
139							}
140							
141
142						// populate content
143						if( OO.ajaxdata.load_lbcontent || OO.ajaxdata.load_new_content || OO.load_new_content ){
144							// populate a specific dom element with content
145							if( OO.load_new_content_id != '' ){
146								$('body').find('#'+OO.load_new_content_id ).replaceWith( data.content );
147							}else{
148								LB.evo_lightbox_populate_content({content: data.content});
149							}							
150						}
151					}	
152
153					// process trumbowyg editors
154						$('body').trigger('evo_elm_load_interactivity');
155
156					//console.log(OO);
157					$('body').trigger('evo_ajax_success_' + OO.uid,[ OO, data , el]);	
158
159				},complete:function(){
160					$('body').trigger('evo_ajax_complete_' + OO.uid ,[ OO , el ]);
161					if( LB && OO.lightbox_loader){
162						LB.find('.ajde_popup_text').removeClass( 'loading');
163						LB.find('.evolb_content').removeClass( 'loading');
164					}
165					if( OO.loader_el){
166						$( OO.loader_el ).removeClass('evoloading loading');
167					}
168				}
169			});	
170		}
171
172		// submit forms via ligtbox
173		// @since 4.2.2		@updated 4.3.5
174		$.fn.evo_ajax_lightbox_form_submit = function(opt){
175			var defs = {
176  				'lightbox_key':'', // lightbox class
177  				'lightbox_loader': true, // show lightbox loading animations
178  				'uid':'',
179  				'end':'admin', // admin or client
180  				'hide_lightbox':false,
181  				'hide_message':false,
182  				'load_new_content':false,
183  				'load_new_content_id':'',
184  				'ajax_type':'ajax',
185  				'ajax_action':'',
186  			}
187
188  			var OO = $.extend({}, defs, opt);
189  			el = this;
190
191  			const form = this.closest('form');
192  			var LB = false;
193  			if( OO.lightbox_key != '') LB = $('body').find('.evo_lightbox.'+ OO.lightbox_key);
194
195  			//console.log(OO);
196
197  			var ajax_url = el.evo_get_ajax_url({a: OO.ajax_action, e: OO.end, type: OO.ajax_type});
198
199			form.ajaxSubmit({
200				beforeSubmit: function(){	
201					$('body').trigger('evo_ajax_beforesend_' + OO.uid ,[ OO ]);
202					if( LB && OO.lightbox_loader) LB.evo_lightbox_start_inloading();
203				},
204				dataType: 	'json',	url: ajax_url,	type: 	'POST',
205				success:function(data){
206
207					$('body').trigger('evo_ajax_success_' + OO.uid,[ OO, data, el ]);	
208
209					if( data.status == 'good'){
210						if(LB){
211							LB.evo_lightbox_show_msg({'type': 'good', 
212								'message':data.msg, 
213								hide_lightbox: OO.hide_lightbox,
214								hide_message: OO.hide_message
215							});
216						}
217
218						// populate specific element
219						if( OO.load_new_content && OO.load_new_content_id != ''){
220							$('body').find('#'+OO.load_new_content_id ).replaceWith( data.content );
221						}else{
222							// populate current lightbox
223							if( OO.load_new_content ) LB.evo_lightbox_populate_content({content: data.content});
224						}
225						
226						
227						// if ajax data pass dom content to be replaced with run through each and replace - @4.2.3
228						if( 'refresh_dom_content' in data ){
229							$.each(data.refresh_dom_content, function(domid, content){
230								$('body').find('#'+ domid).replaceWith( content);
231							});
232						}
233
234					}else{
235						LB.evo_lightbox_show_msg({'type': 'bad', 'message':data.msg});
236					}
237				},
238				complete:function(){	
239					$('body').trigger('evo_ajax_complete_' + OO.uid ,[ OO ]);
240					$('body').trigger('evo_ajax_form_complete_' + OO.uid ,[ OO , form]);
241					if( LB && OO.lightbox_loader) LB.evo_lightbox_stop_inloading();	
242				}
243			});
244		}
245
246	// LIGHTBOX version 4.2
247		// @version 4.2
248		$('body').on('click','.evolb_trigger', function(event){
249			if( event !== undefined ){
250				event.preventDefault();
251				event.stopPropagation();
252			}
253			
254			$(this).evo_lightbox_open($(this).data('lbvals'));
255		});
256		$('body').on('click','.evolb_close_btn', function (){
257			const LB = $(this).closest('.evo_lightbox');
258			LB.evo_lightbox_close();
259		});
260
261		// @since 4.2.2
262		$('body').on('click','.evolb_trigger_save, .evo_submit_form', function(event){
263			if( event !== undefined ){
264				event.preventDefault();
265				event.stopPropagation();
266			}
267			$(this).evo_ajax_lightbox_form_submit( $(this).data('d') );
268		});
269
270		$('body').on('click','.evo_trigger_ajax_run', function(event){
271			if( event !== undefined ){
272				event.preventDefault();
273				event.stopPropagation();
274			}
275			$(this).evo_admin_get_ajax( $(this).data('d') );
276		});
277		// @since 4.3.3
278		$('body').on('evo_lightbox_trigger', function(event, data){
279			$('body').evo_lightbox_open(data);
280		});
281
282		$.fn.evo_lightbox_open = function (opt){
283			var defaults = { 
284				'uid':'',
285				't':'', //title
286				'lbc':'',// * lightbox class - REQUIRED
287				'lbsz':'',// lightbox size = mid small
288				'content':'',// passed on dynamic content
289				'content_id' :'',// id to get dynamic content from page
290				'ajax':'no',// use ajax to load content yes no
291				'ajax_url':'',
292				'd':'', // data object for ajax
293				'end':'admin',// admin or client end
294				'other_data':'',
295				'lightbox_loader': true,
296				'load_new_content': true, // @since 4.3.5
297				'lb_padding': 'evopad30', // @4.3.5
298				'ajax_action':'', // @4.4 pass on ajax endpoint action key
299				'ajax_type':'ajax', // @4.4 ajax type, ajax, rest or endpoint
300			};
301
302			var OO = $.extend({}, defaults, opt);
303
304			// create lightbox HTML
305			var html = '<div class="evo_lightbox '+OO.lbc+' '+OO.end+'" data-lbc="'+OO.lbc+'"><div class="evolb_content_in"><div class="evolb_content_inin"><div class="evolb_box '+OO.lbc+' '+OO.lbsz +'"><div class="evolb_header"><a class="evolb_backbtn" style="display:none"><i class="fa fa-angle-left"></i></a><p class="evolb_title">' + OO.t + '</p><span class="evolb_close_btn evolbclose ">X</span></div><div class="evolb_content '+ OO.lb_padding +'"></div><p class="message"></p></div></div></div></div>';
306
307			$('#evo_lightboxes').append( html );
308
309
310			LIGHTBOX = $('.evo_lightbox.'+ OO.lbc);
311
312			// Open lightbox on page
313				setTimeout( function(){ 
314					$('#evo_lightboxes').show();
315					LIGHTBOX.addClass('show');	
316					$('body').addClass('evo_overflow');
317					$('html').addClass('evo_overflow');
318				},300);
319
320			// show loading animation
321			LIGHTBOX.evo_lightbox_show_open_animation();
322				
323			// Load content
324			// dynamic content within the site
325				if(OO.content_id != ''){					
326					var content = $('#'+ OO.content_id ).html();					
327					LIGHTBOX.find('.evolb_content').html( content);
328				}
329			// load passed on content
330				if(OO.content != ''){
331					LIGHTBOX.find('.evolb_content').html( OO.content);
332				}
333
334			// run ajax to load content for the lightbox inside
335				if( OO.ajax == 'yes' && OO.d != ''){
336
337					var D = {};
338					D = OO.d;
339
340					LB.evo_admin_get_ajax({
341						ajaxdata: D, 
342						ajax_action: OO.ajax_action,
343						ajax_type: OO.ajax_type,
344						lightbox_key: OO.lbc,
345						uid: ( OO.uid != '' ) ? OO.uid : OO.d.uid,
346						end: OO.end,
347						lightbox_loader: OO.lightbox_loader,
348						load_new_content: OO.load_new_content,
349					});
350				}
351
352			// load content from a AJAX file			
353				if( OO.ajax_url != ''){
354					$.ajax({
355						beforeSend: function(){},
356						url:	OO.ajax_url,
357						success:function(data){
358							LIGHTBOX.find('.evolb_content').html( data);							
359						},complete:function(){}
360					});
361				}
362
363			
364			
365			$('body').trigger('evo_lightbox_processed', [ OO, LIGHTBOX]);
366		}
367
368		$.fn.evo_lightbox_close = function (opt){
369			LB = this;
370			var defaults = { 
371				'delay':500, 
372				'remove_from_dom':true,
373			};
374
375			if( !(LB.hasClass('show')) ) return;
376
377			var OO = $.extend({}, defaults, opt);
378
379			var hide_delay = parseInt( OO.delay);
380
381			complete_close = (LB.parent().find('.evo_lightbox.show').length == 1)? true: false;
382
383			if( hide_delay > 500){
384				setTimeout( function(){ 
385					LB.removeClass('show');
386				}, ( hide_delay - 500  ) );
387			}else{
388				LB.removeClass('show');
389			}
390			
391			setTimeout( function(){ 
392				if(complete_close){
393					$('body').removeClass('evo_overflow');
394					$('html').removeClass('evo_overflow');
395				}
396				// remove lightbox HTML from DOM
397				if( OO.remove_from_dom) LB.remove();
398			}, hide_delay);	
399		}
400
401
402		$.fn.evo_lightbox_populate_content = function(opt){
403			LB = this;
404			var defaults = { 
405				'content':'',
406			}; var OO = $.extend({}, defaults, opt);
407			LB.find('.evolb_content').html( OO.content );
408		}
409		$.fn.evo_lightbox_start_inloading = function(opt){
410			LB = this;
411			LB.find('.evolb_content').addClass('loading');
412		}
413		$.fn.evo_lightbox_stop_inloading = function(opt){
414			LB = this;
415			LB.find('.evolb_content').removeClass('loading');
416		}
417		$.fn.evo_lightbox_show_msg = function(opt){
418			LB = this;
419			var defaults = { 
420				'type':'good',
421				'message':'',
422				'hide_message': false,// hide message after some time pass time or false
423				'hide_lightbox': false, // hide lightbox after some time of false
424			}; var OO = $.extend({}, defaults, opt);
425			LB.find('.message').removeClass('bad good').addClass( OO.type ).html( OO.message ).fadeIn();
426
427			if( OO.hide_message ) setTimeout(function(){  LB.evo_lightbox_hide_msg() }, OO.hide_message );
428
429			if( OO.hide_lightbox ) LB.evo_lightbox_close({ delay: OO.hide_lightbox });
430		}
431		$.fn.evo_lightbox_hide_msg = function(opt){
432			LB = this;
433			LB.find('p.message').hide();
434		}
435
436
437		$.fn.evo_lightbox_show_open_animation = function(opt){
438			LB = this;
439			var defaults = { 
440				'animation_type':'initial', // animation type initial or saving
441			};
442			var OO = $.extend({}, defaults, opt);
443
444			if( OO.animation_type == 'initial'){
445				LB.find('.evolb_content').html('<div class="evo_loading_bar_holder"><div class="evo_loading_bar wid_40 hi_50"></div><div class="evo_loading_bar"></div><div class="evo_loading_bar"></div><div class="evo_loading_bar"></div><div class="evo_loading_bar wid_25"></div></div>');
446			}
447
448			if( OO.animation_type == 'saving')
449				LB.find('.evolb_content').addClass('loading');
450
451		}
452
453	// Get Ajax url @since 4.4
454		$.fn.evo_get_ajax_url = function(opt){
455			var defaults = { a:'',e:'client', type: 'ajax'};
456			var OO = $.extend({}, defaults, opt);
457
458			// end point url
459			if( OO.type == 'endpoint'){
460				var evo_ajax_url = ( OO.e == 'client' )? 
461					evo_general_params.evo_ajax_url : evo_admin_ajax_handle.evo_ajax_url;
462				return  evo_ajax_url.toString().replace( '%%endpoint%%', OO.a );
463			// rest api url
464			}else if( OO.type == 'rest' ){
465				var evo_ajax_url = ( OO.e == 'client' )? 
466					evo_general_params.rest_url : evo_admin_ajax_handle.rest_url;
467					//console.log(evo_ajax_url);
468					//console.log(OO);
469				return  evo_ajax_url.toString().replace( '%%endpoint%%', OO.a );
470			}else{
471				return ( OO.e == 'client' ) ? 
472					evo_general_params.ajaxurl : evo_admin_ajax_handle.ajaxurl;
473			}	
474		}
475	
476	// Count down	// @+ 3.0
477		$.fn.evo_countdown_get = function(opt){
478			var defaults = { gap:''};
479			var OPT = $.extend({}, defaults, opt);
480			
481			distance = (OPT.gap * 1000);
482
483			var days = Math.floor(distance / (1000 * 60 * 60 * 24));
484			var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
485			var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
486			var seconds = Math.floor((distance % (1000 * 60)) / 1000);
487
488			minutes = minutes<10? '0'+minutes : minutes;
489			seconds = seconds<10? '0'+seconds : seconds;
490
491			return {
492				'd': days,
493				'h':hours,
494				'm':minutes,
495				's':seconds
496			}; 
497		};
498		$.fn.evo_countdown = function(opt){
499			var defaults = { S1:''};
500			var OPT = $.extend({}, defaults, opt);
501			var el = $(this);
502
503			const day_text = ( el.data('d') !== undefined && el.data('d') != '' )? el.data('d'):'Day';
504			const days_text = ( el.data('ds') !== undefined && el.data('ds') != '' )? el.data('ds'):'Days';
505
506			// intial run
507			var gap = parseInt(el.data('gap'));
508			var text = el.data('t');
509			if(text === undefined) text = '';
510
511			if( el.hasClass('evo_cd_on')) return;
512
513			if( gap > 0 ){
514				dd = el.evo_countdown_get({ 'gap': gap});
515				el.html( ( dd.d>0 ? dd.d + ' ' + ( dd.d >1 ? days_text: day_text ) + " "  :'') + dd.h + ":" + dd.m +':'+ dd.s +'  '+text );
516				
517				el.data('gap', (gap -1) );
518				var duration = el.data('dur');
519
520				el.addClass('evo_cd_on');
521
522				// maybe adopt moment
523				//var M = moment();
524				//console.log(M);
525				
526				// set intervals
527				var CD = setInterval(function(){
528					
529					gap = el.data('gap');
530					duration = el.data('dur');	
531
532					const bar_elm = el.closest('.evo_event_progress').find('.evo_ep_bar');									
533
534					if( gap > 0 ){
535
536						// increase bar width if exists
537						if( duration !== undefined && bar_elm.length){
538							perc = ( (duration - gap)/ duration ) * 100;
539							bar_elm.find('b').css('width',perc+'%');							
540						}
541						
542						dd = el.evo_countdown_get({ 'gap': gap});	
543
544						el.html( ( dd.d>0 ? dd.d + ' '  + ( dd.d >1 ? days_text: day_text ) + " ":'') + dd.h + ":" + dd.m +':'+ dd.s +' '+text );
545						el.data('gap', ( gap - 1)  );						
546
547					}else{
548
549						const expire_timer_action = el.data('exp_act');
550
551						// perform ajax task after expiration
552						if(expire_timer_action !== undefined){
553							$('body').trigger('runajax_refresh_now_cal',[ 
554								el , 
555								el.data('n'),
556							]);
557						}
558
559						const _complete_text = el.evo_get_txt({V:'event_completed'});
560
561						// live now text
562						if(bar_elm.length){
563							bar_elm.addClass('evo_completed');
564							//el.siblings('.evo_ep_pre').html( _complete_text );
565						}
566
567
568						// event tag & live elements
569						if( el.closest('.evcal_desc').length){
570							el.closest('.evcal_desc').find('.eventover').html( _complete_text);
571							el.closest('.evcal_desc').find('.evo_live_now').remove();
572						}
573
574						// event card
575						if( el.closest('.eventon_list_event').length){
576							el.closest('.eventon_list_event').find('span.evo_live_now').hide();
577						}
578
579						el.html('');
580						clearInterval(CD);
581					}
582
583				},1000);
584			}else{
585				clearInterval(CD);
586			}
587		};	
588
589	// Handlebar process template data into html
590		$.fn.evo_HB_process_template = function(opt){
591			var defaults = { TD:'', part:''}
592			var OPT = $.extend({}, defaults, opt);
593
594			BUS = $('#evo_global_data').data('d');
595						
596			template = Handlebars.compile( BUS.temp[ OPT.part ] );
597			return template( OPT.TD );
598		}
599
600	// Date range and events
601		// Date range and events - from webpage
602		$.fn.evo_cal_events_in_range = function(opt){
603			var defaults = { S:'', E:'', 
604				hide: true, 
605				closeEC:true,
606				showEV: false, // show events
607				showEVL: false, // show events list
608				showAllEvs: false // show all events regardless of the range
609			};
610			var OPT = $.extend({}, defaults, opt);
611			var CAL = $(this);
612
613			eJSON = CAL.find('.evo_cal_events').data('events');
614
615			R = {};
616			html = '';
617			json = {};
618
619			show = 0;
620
621			// using events JSON data
622			if( eJSON && eJSON.length > 0){
623				$.each(eJSON, function(ind, ED){
624					eO = CAL.find('#event_'+ ED._ID);
625					if(eO === undefined || eO.length==0) return;
626
627					if(OPT.hide)	eO.hide(); // pre hide
628					this_show = false;
629
630					// month long or year long events
631					if( ED.month_long || ED.year_long ){
632						this_show = true;
633
634					}else{
635						if(CAL.evo_is_in_range({
636							'S': OPT.S,	'E': OPT.E,	'start': ED.event_start_unix ,	'end':ED.event_end_unix 
637						})){						
638							this_show = true;
639						} 
640					}
641
642					if( OPT.showAllEvs) this_show = true;
643					
644					if( this_show){	
645						// show event
646						if( OPT.showEV) eO.show();
647
648						// close open event cards
649						if(OPT.closeEC && SC.evc_open == 'no') eO.find('.event_description').hide().removeClass('open');
650
651						html += eO[0].outerHTML;
652						json[ ED._ID] = ED;
653						show++;	
654					} 
655				});
656			}else{	
657				// get all the events in the events list
658				var cal_events = CAL.find('.eventon_list_event');
659
660				cal_events.each(function(index, elm){
661					var ED = $(elm).evo_cal_get_basic_eventdata();
662					if( !ED) return;
663
664					if(OPT.hide)	$(elm).hide(); // pre hide
665					this_show = false;
666
667					// month long or year long events
668					if( $(elm).hasClass('month_long') || $(elm).hasClass('year_long') ){
669						this_show = true;
670
671					}else{
672						if(CAL.evo_is_in_range({
673							'S': OPT.S,	'E': OPT.E,	'start': ED.event_start_unix ,	'end':ED.event_end_unix 
674						})){						
675							this_show = true;
676						} 
677					}
678
679					if( OPT.showAllEvs) this_show = true;
680					
681					if( this_show){	
682						// show event
683						if( OPT.showEV) $(elm).show();
684
685						// close open event cards
686						if(OPT.closeEC && SC.evc_open == 'no') 
687							$(elm).find('.event_description').hide().removeClass('open');
688
689						html += $(elm)[0].outerHTML;
690						json[ ED.uID ] = ED;
691						show++;	
692					} 
693				});
694			}
695
696
697			// No events
698			if( OPT.showEV){
699
700				no_event_content = CAL.evo_get_global({S1: 'html', S2:'no_events'});
701
702				tx_noevents = CAL.evo_get_txt({V:'no_events'});
703				EL = CAL.find('.eventon_events_list');
704				EL.find('.eventon_list_event.no_events').remove();
705				if( show == 0 )
706					EL.append('<div class="eventon_list_event no_events">
706'+ no_event_content +'</div>');
707			}
708
709			// if show events list
710			if( OPT.showEVL){
711				CAL.find('.eventon_events_list').show().removeClass('evo_hide');
712			}
713
714			R['count'] = show;
715			R['html'] = html;
716			R['json'] = json;
717
718			return R;
719		}
720
721	// check if an event is in the given date range
722		$.fn.evo_is_in_range = function(opt){
723			var defaults = { S:'', E:'', start:'',end:''}
724			var OPT = $.extend({}, defaults, opt);
725
726			S = parseInt(OPT.S);
727			E = parseInt(OPT.E);
728			start = parseInt(OPT.start);
729			end = parseInt(OPT.end);
730
731			return (
732				( start <= S && end >= E ) ||
733				( start <= S && end >= S && end <= E) ||
734				( start <= E && end >= E ) ||
735				( start >= S && end <= E )
736			) ? true: false;
737		}
738		$.fn.evo_cal_hide_events = function(){
739			CAL = $(this);
740			CAL.find('.eventon_list_event').hide();
741		}
742
743	// get event data basics from html event on page 
744	// ~@version 4.0.3
745		$.fn.evo_cal_get_basic_eventdata = function(){
746			var ELM = $(this);
747
748			var _time = ELM.data('time');
749			if( _time === undefined ) return false;
750
751			const time = _time.split('-');
752			const ri = ELM.data('ri').replace('r','');
753			const eID = ELM.data('event_id');
754
755			var _event_title = ELM.find('.evcal_event_title').text();
756			_event_title = _event_title.replace(/'/g, '&apos;');
757
758
759			var RR = {
760				'uID': eID + '_' + ri,
761				'ID': eID ,
762				'event_id': eID ,
763				'ri': ri,
764				'event_start_unix': parseInt(time[0]),
765				'event_end_unix': parseInt(time[1]),
766				'ux_val': ELM.find('.evcal_list_a').data('ux_val'),
767				'event_title': _event_title,
768				'hex_color': ELM.data('colr'),
769				'hide_et': ELM.hasClass('no_et') ? 'y':'n', // hide endtime
770				'evcal_event_color': ELM.data('colr'),
771			};
772
773			// event type
774			RR['ett1'] = {};
775			ELM.find('.evoet_eventtypes.ett1 .evoetet_val').each(function(){
776				RR['ett1'][ $(this).data('id')] = $(this).data('v');
777			});
778
779			// since 4.3.5
780			const eventtop_data = ELM.find('.evoet_data').data('d');
781
782			// location
783			if('loc.n' in eventtop_data && eventtop_data['loc.n'] != ''){
784				RR['location'] = eventtop_data['loc.n'];
785			}
786
787			// organizer
788			if('orgs' in eventtop_data && eventtop_data.orgs !== undefined ){
789				var org_names = '';
790				$.each(eventtop_data.orgs, function(index, value){
791					org_names += value +' ';
792				});
793				RR['organizer'] = org_names;
794			}
795
796			return RR;
797
798		}
799
800
801	// DATE time functions @+2.8		
802		$.fn.evo_day_in_month = function(opt){
803			var defaults = { M:'', Y:''}
804			var OPT = $.extend({}, defaults, opt);
805
806			return new Date(OPT.Y, OPT.M, 0).getDate();
807		}
808		$.fn.evo_get_day_name_index = function(opt){
809			var defaults = { M:'', Y:'', D:''}
810			var OPT = $.extend({}, defaults, opt);
811
812			//return moment(OPT.Y+'-'+OPT.M+'-'+OPT.D).utc().day();
813
814			return new Date(  Date.UTC(OPT.Y, OPT.M-1, OPT.D) ).getUTCDay();
815		}
816
817	// LIGHTBOX
818	// page Lightbox functions @+2.8
819	// append to the lightbox main class name .evo_lightbox
820		
821		// Legacy
822			$.fn.evo_prepare_lb = function(){
823				$(this).find('.evo_lightbox_body').html('');
824			}
825			$.fn.evo_show_lb = function(opt){
826				var defaults = { RTL:'', calid:''}
827				var OPT = $.extend({}, defaults, opt);
828
829				$(this).addClass('show '+ OPT.RTL).attr('data-cal_id', OPT.calid);
830				$('body').trigger('evolightbox_show');
831			}
832			$.fn.evo_append_lb = function(opt){
833				var defaults = { C:'', CAL:''}
834				var OPT = $.extend({}, defaults, opt);
835				$(this).find('.evo_lightbox_body').html( OPT.C);
836
837				if(  OPT.CAL!= '' && OPT.CAL !== undefined && OPT.CAL.hasClass('color')){
838					const LIST = $(this).find('.eventon_events_list');
839					if( LIST.length>0){
840						LIST.find('.eventon_list_event').addClass('color');
841					}				
842				}
843			}
844
845		
846
847	// Shortcodes
848		// update shortcode values from filter changes @updated 4.3.3
849		$.fn.evo_update_sc_from_filters = function(){
850			var ev_cal = $(this); 	
851			SC = ev_cal.find('.evo_cal_data').data('sc');		
852
853			var filter_section = ev_cal.find('.eventon_filter_line').first();
854			
855			filter_section.find('.eventon_filter').each(function(index){
856				O = $(this);
857				var default_val = O.data('fldef');
858				var filter_val = O.data('filter_val');
859				const NOT_values = O.data('notvals');
860
861				filter_val = filter_val == ''? 'NOT-all': filter_val;	
862				
863				var not_string = '';
864
865				// if NOT filter in place > include that in tax value for query
866				if( NOT_values!== undefined && NOT_values.length >0 && filter_val != default_val ){	
867					
868					$.each(NOT_values, function(index, value){
869						not_string += 'NOT-'+ value +',';
870					});
871				}			
872
873				SC[ O.data('filter_field') ] = not_string + filter_val;
874			});	
875
876			ev_cal.find('.evo_cal_data').data( 'sc', SC );
877		}
878		
879		// get shortcodes from evo bottom
880		$.fn.evo_shortcode_data = function(){			
881			var ev_cal = $(this);
882			return ev_cal.find('.evo_cal_data').data('sc');			
883		}
884
885		// get shortcode single value
886		$.fn.evo_get_sc_val = function(opt){
887			var defaults = {	F:''}
888			var OPT = $.extend({}, defaults, opt);
889			var ev_cal = $(this); 
890
891			if(OPT.F=='') return false;
892			SC = ev_cal.find('.evo_cal_data').data('sc');
893
894			if(!(SC[ OPT.F])) return false;
895			return SC[ OPT.F];
896		}
897		// UPDATE Single value
898		$.fn.evo_update_cal_sc = function(opt){
899			var defaults = {
900				F:'', V:''
901			}
902			var OPT = $.extend({}, defaults, opt);
903			var ev_cal = $(this); 
904			SC = ev_cal.find('.evo_cal_data').data('sc');
905
906			SC[ OPT.F ] = OPT.V;
907
908			ev_cal.find('.evo_cal_data').data( 'sc', SC );
909		}
910		// UPDATE all shortcode values
911		$.fn.evo_update_all_cal_sc = function(opt){
912			var defaults = {SC:''}
913			var OPT = $.extend({}, defaults, opt);
914			var CAL = $(this);
915			CAL.find('.evo_cal_data').data( 'sc', OPT.SC );
916		}
917
918	// OTHERS
919		// hex colors // @+2.8
920		$.fn.evo_is_hex_dark = function(opt){
921			var defaults = { hex:'808080'}
922			var OPT = $.extend({}, defaults, opt);
923
924			hex = OPT.hex;
925
926			var c = hex.replace('#','');
927			var is_hex = typeof c === 'string' && c.length === 6 && !isNaN(Number('0x' + c));
928
929			if(is_hex){	
930				var values = c.split('');
931				r = parseInt(values[0].toString() + values[1].toString(), 16);
932			    g = parseInt(values[2].toString() + values[3].toString(), 16);
933			    b = parseInt(values[4].toString() + values[5].toString(), 16);
934			}else{
935				var vals = c.substring(c.indexOf('(') +1, c.length -1).split(', ');
936				var r = vals[0]  // extract red
937				var g = vals[1];  // extract green
938				var b = vals[2];
939			}
940
941			var luma = ((r * 299) + (g * 587) + (b * 114)) / 1000; // per ITU-R BT.709
942
943			return luma>155? true:false;
944		}
945		// Other data
946			$.fn.evo_get_OD = function(){			
947				var ev_cal = $(this);
948				return ev_cal.find('.evo_cal_data').data('od');			
949			}
950
951	// return all filter values for given calendar -- DEP 2.8
952		$.fn.evoGetFilters = function(){
953
954			var ev_cal = $(this); 
955			var evodata = ev_cal.find('.evo-data');
956			
957			var filters_on = ( evodata.attr('data-filters_on')=='true')?'true':'false';
958			
959			// creat the filtering data array if exist
960			if(filters_on =='true'){
961				var filter_section = ev_cal.find('.eventon_filter_line');
962				var filter_array = [];
963				
964
965				filter_section.find('.eventon_filter').each(function(index){
966					var filter_val = $(this).attr('data-filter_val');
967					
968					if(filter_val !='all'){
969						var filter_ar = {};
970						filter_ar['filter_type'] = $(this).attr('data-filter_type');
971						filter_ar['filter_name'] = $(this).attr('data-filter_field');
972
973						if($(this).attr('data-fl_o')=='NOT'){
974							filter_ar['filter_op']='NOT IN';
975						}
976						filter_ar['filter_val'] = filter_val;
977						filter_array.push(filter_ar);
978					}
979				});		
980			}else{
981				var filter_array ='';
982			}			
983			return filter_array;
984		}
985		
986
987		// get evo data for a given calendar
988		$.fn.evo_getevodata = function(){
989
990			var ev_cal = $(this);
991			var evoData = {};
992			
993			ev_cal.find('.evo-data').each(function(){
994				$.each(this.attributes, function(i, attrib){
995					var name = attrib.name;
996					if(attrib.name!='class' && attrib.name!='style' ){
997						name__ = attrib.name.split('-');
998						evoData[name__[1]] = attrib.value;	
999					}
1000				});
1001			});	
1002
1003			return evoData;
1004		}
1005
1006	// eventon loading functions
1007	// v 2.4.5
1008		$.fn.evo_loader_animation = function(opt){
1009			var defaults = {
1010				direction:'start'
1011			}
1012			var OPT = $.extend({}, defaults, opt);
1013
1014			if(OPT.direction == 'start'){
1015				$(this).find('#eventon_loadbar').slideDown();
1016			}else{
1017				$(this).find('#eventon_loadbar').slideUp();
1018			}
1019		}
1020
1021	// DEPRECATED functions
1022		$.fn.evo_item_shortcodes = function(){			
1023			var OBJ = $(this);
1024			var shortcode_array ={};			
1025			OBJ.each(function(){	
1026				$.each(this.attributes, function(i, attrib){
1027					var name = attrib.name;
1028					if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){
1029						name__ = attrib.name.split('-');
1030						shortcode_array[name__[1]] = attrib.value;	
1031					}
1032				});
1033			});
1034			return shortcode_array;
1035		}
1036		$.fn.evo_shortcodes = function(){			
1037			var ev_cal = $(this);
1038			var shortcode_array ={};
1039					
1040			ev_cal.find('.cal_arguments').each(function(){
1041				$.each(this.attributes, function(i, attrib){
1042					var name = attrib.name;
1043					if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){
1044						name__ = attrib.name.split('-');
1045						shortcode_array[name__[1]] = attrib.value;	
1046					}
1047				});
1048			});	
1049			return shortcode_array;
1050		}
1051		
1052
1053}(jQuery));

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.