PageSourceSearch

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

js grandesescolhas.com collected 2026-10-02 12:00:53 UTC 27,695 bytes, 963 lines download raw bytes

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