PageSourceSearch

https://www.gajellystone.com/app/plugins/eventON/assets/js/eventon_functions.js?ver=3.1.4

js gajellystone.com collected 2026-10-08 18:52:38 UTC 13,889 bytes, 498 lines download raw bytes

1/*
2	Javascript: EventON functions for all calendars
3	version:	0.1
4*/
5(function($){
6
7	$.fn.evo_cal_functions = function(O){
8		el = this;
9		switch(O.return){
10			// load shortcodes inside calendar data
11			case 'load_shortcodes':
12				return el.find('.evo_cal_data').data('sc');		
13			break;
14			case 'update_shortcodes':
15				el.find('.evo_cal_data').data( 'sc', O.SC );
16			break;
17		}
18	};
19
20	// Count down
21	// @+ 3.0
22		$.fn.evo_countdown_get = function(opt){
23			var defaults = { gap:''};
24			var OPT = $.extend({}, defaults, opt);
25			
26			distance = (OPT.gap * 1000);
27
28			var days = Math.floor(distance / (1000 * 60 * 60 * 24));
29			var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
30			var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
31			var seconds = Math.floor((distance % (1000 * 60)) / 1000);
32
33			minutes = minutes<10? '0'+minutes : minutes;
34			seconds = seconds<10? '0'+seconds : seconds;
35
36			return {
37				'd': days,
38				'h':hours,
39				'm':minutes,
40				's':seconds
41			}; 
42		};
43		$.fn.evo_countdown = function(opt){
44			var defaults = { S1:''};
45			var OPT = $.extend({}, defaults, opt);
46			var el = $(this);
47
48			const day_text = ( el.data('d') !== undefined && el.data('d') != '' )? el.data('d'):'Day';
49			const days_text = ( el.data('ds') !== undefined && el.data('ds') != '' )? el.data('ds'):'Days';
50
51			// intial run
52			var gap = parseInt(el.data('gap'));
53			var text = el.data('t');
54			if(text === undefined) text = '';
55
56			if( el.hasClass('evo_cd_on')) return;
57
58			if( gap > 0 ){
59				dd = el.evo_countdown_get({ 'gap': gap});
60				el.html( ( dd.d>0 ? dd.d + ' ' + ( dd.d >1 ? days_text: day_text ) + " "  :'') + dd.h + ":" + dd.m +':'+ dd.s +'  '+text );
61				
62				el.data('gap', (gap -1) );
63				var duration = el.data('dur');
64
65				el.addClass('evo_cd_on');
66
67				// maybe adopt moment
68				//var M = moment();
69				//console.log(M);
70				
71				// set intervals
72				var CD = setInterval(function(){
73					
74					gap = el.data('gap');
75					duration = el.data('dur');	
76
77					const bar_elm = el.closest('.evo_event_progress').find('.evo_ep_bar');									
78
79					if( gap > 0 ){
80
81						// increase bar width if exists
82						if( duration !== undefined && bar_elm.length){
83							perc = ( (duration - gap)/ duration ) * 100;
84							bar_elm.find('b').css('width',perc+'%');							
85						}
86						
87						dd = el.evo_countdown_get({ 'gap': gap});	
88
89						el.html( ( dd.d>0 ? dd.d + ' '  + ( dd.d >1 ? days_text: day_text ) + " ":'') + dd.h + ":" + dd.m +':'+ dd.s +' '+text );
90						el.data('gap', ( gap - 1)  );						
91
92					}else{
93
94						const expire_timer_action = el.data('exp_act');
95
96						// perform ajax task after expiration
97						if(expire_timer_action !== undefined){
98							$('body').trigger('runajax_refresh_now_cal',[ 
99								el , 
100								el.data('n'),
101							]);
102						}
103
104						const _complete_text = el.evo_get_txt({V:'event_completed'});
105
106						// live now text
107						if(bar_elm.length){
108							bar_elm.addClass('evo_completed');
109							//el.siblings('.evo_ep_pre').html( _complete_text );
110						}
111
112
113						// event tag & live elements
114						if( el.closest('.evcal_desc').length){
115							el.closest('.evcal_desc').find('.eventover').html( _complete_text);
116							el.closest('.evcal_desc').find('.evo_live_now').remove();
117						}
118
119						// event card
120						if( el.closest('.eventon_list_event').length){
121							el.closest('.eventon_list_event').find('span.evo_live_now').hide();
122						}
123
124						el.html('');
125						clearInterval(CD);
126					}
127
128				},1000);
129			}else{
130				clearInterval(CD);
131			}
132		};
133
134
135	// access page GLOBALS
136		$.fn.evo_get_global = function(opt){
137			var defaults = { S1:'', S2:''};
138			var OPT = $.extend({}, defaults, opt);
139
140			var BUS = $('#evo_global_data').data('d');
141
142			if(!(OPT.S1 in BUS)) return false;
143			if(!(OPT.S2 in BUS[OPT.S1])) return false;
144			return BUS[OPT.S1][OPT.S2];
145		}
146		$.fn.evo_get_txt = function(opt){
147			var defaults = { V:''}
148			var OPT = $.extend({}, defaults, opt);
149
150			var BUS = $('#evo_global_data').data('d');
151			if(!('txt' in BUS)) return false;
152			if(!(OPT.V in BUS.txt)) return false;
153			return BUS.txt[OPT.V];
154		}
155		$.fn.evo_get_cal_def = function(opt){
156			var defaults = { V:''}
157			var OPT = $.extend({}, defaults, opt);
158
159			var BUS = $('#evo_global_data').data('d');
160			if(!('cal_def' in BUS)) return false;
161			if(!(OPT.V in BUS.cal_def)) return false;
162			return BUS.cal_def[OPT.V];
163		}
164
165	// Handlebar process template data into html
166		$.fn.evo_HB_process_template = function(opt){
167			var defaults = { TD:'', part:''}
168			var OPT = $.extend({}, defaults, opt);
169
170			BUS = $('#evo_global_data').data('d');
171						
172			template = Handlebars.compile( BUS.temp[ OPT.part ] );
173			return template( OPT.TD );
174		}
175
176	// Date range and events
177		// Date range and events - from webpage
178		$.fn.evo_cal_events_in_range = function(opt){
179			var defaults = { S:'', E:'', hide: true, 
180				closeEC:true,
181				showEV: false, // show events
182				showEVL: false, // show events list
183				showAllEvs: false // show all events regardless of the range
184			};
185			var OPT = $.extend({}, defaults, opt);
186			var CAL = $(this);
187
188			eJSON = CAL.find('.evo_cal_events').data('events');
189
190			R = {};
191			html = '';
192			json = {};
193
194			show = 0;
195
196			$.each(eJSON, function(ind, ED){
197				eO = CAL.find('#event_'+ ED._ID);
198				if(eO === undefined || eO.length==0) return;
199
200				if(OPT.hide)	eO.hide(); // pre hide
201				this_show = false;
202
203				// month long or year long events
204				if( ED.month_long || ED.year_long ){
205					this_show = true;
206
207				}else{
208					if(CAL.evo_is_in_range({
209						'S': OPT.S,	'E': OPT.E,	'start': ED.event_start_unix ,	'end':ED.event_end_unix 
210					})){						
211						this_show = true;
212					} 
213				}
214
215				if( OPT.showAllEvs) this_show = true;
216				
217				if( this_show){	
218					// show event
219					if( OPT.showEV) eO.show();
220
221					// close open event cards
222					if(OPT.closeEC && SC.evc_open == 'no') eO.find('.event_description').hide().removeClass('open');
223
224					html += eO[0].outerHTML;
225					json[ ED._ID] = ED;
226					show++;	
227				} 
228			});
229
230			// No events
231			if( OPT.showEV){
232				tx_noevents = CAL.evo_get_txt({V:'no_events'});
233				EL = CAL.find('.eventon_events_list');
234				EL.find('.eventon_list_event.no_events').remove();
235				if( show == 0 )
236					EL.append('<div class="eventon_list_event no_events"><p class="no_events">'+tx_noevents+'</p></div>');
237			}
238
239			// if show events list
240			if( OPT.showEVL){
241				CAL.find('.eventon_events_list').show().removeClass('evo_hide');
242			}
243
244			R['count'] = show;
245			R['html'] = html;
246			R['json'] = json;
247
248			return R;
249		}
250		$.fn.evo_is_in_range = function(opt){
251			var defaults = { S:'', E:'', start:'',end:''}
252			var OPT = $.extend({}, defaults, opt);
253
254			S = parseInt(OPT.S);
255			E = parseInt(OPT.E);
256			start = parseInt(OPT.start);
257			end = parseInt(OPT.end);
258
259			return (
260				( start <= S && end >= E ) ||
261				( start <= S && end >= S && end <= E) ||
262				( start <= E && end >= E ) ||
263				( start >= S && end <= E )
264			) ? true: false;
265		}
266		$.fn.evo_cal_hide_events = function(){
267			CAL = $(this);
268			CAL.find('.eventon_list_event').hide();
269		}
270
271	// DATE time functions @+2.8		
272		$.fn.evo_day_in_month = function(opt){
273			var defaults = { M:'', Y:''}
274			var OPT = $.extend({}, defaults, opt);
275
276			return new Date(OPT.Y, OPT.M, 0).getDate();
277		}
278		$.fn.evo_get_day_name_index = function(opt){
279			var defaults = { M:'', Y:'', D:''}
280			var OPT = $.extend({}, defaults, opt);
281
282			//return moment(OPT.Y+'-'+OPT.M+'-'+OPT.D).utc().day();
283
284			return new Date(  Date.UTC(OPT.Y, OPT.M-1, OPT.D) ).getUTCDay();
285		}
286
287	// page Lightbox functions @+2.8
288	// append to the lightbox main class name .evo_lightbox
289		$.fn.evo_prepare_lb = function(){
290			$(this).find('.evo_lightbox_body').html('');
291		}
292		$.fn.evo_show_lb = function(opt){
293			var defaults = { RTL:'', calid:''}
294			var OPT = $.extend({}, defaults, opt);
295
296			$(this).addClass('show '+ OPT.RTL).attr('data-cal_id', OPT.calid);
297			$('body').trigger('evolightbox_show');
298		}
299		$.fn.evo_append_lb = function(opt){
300			var defaults = { C:''}
301			var OPT = $.extend({}, defaults, opt);
302			$(this).find('.evo_lightbox_body').html( OPT.C);
303		}
304
305	// Shortcodes
306		// update shortcode values from filter changes
307		$.fn.evo_update_sc_from_filters = function(){
308			var ev_cal = $(this); 	
309			SC = ev_cal.find('.evo_cal_data').data('sc');		
310
311			var filter_section = ev_cal.find('.eventon_filter_line').first();
312			
313			filter_section.find('.eventon_filter').each(function(index){
314				O = $(this);
315				var filter_val = O.data('filter_val');	
316				filter_val = filter_val == ''? 'NOT-all': filter_val;				
317
318				ADD = (O.data('fl_o') && O.data('fl_o') != 'IN')? O.data('fl_o')+'-': '';
319				SC[ O.data('filter_field') ] = ADD + filter_val;
320			});	
321
322			ev_cal.find('.evo_cal_data').data( 'sc', SC );
323		}
324		
325		// get shortcodes from evo bottom
326		$.fn.evo_shortcode_data = function(){			
327			var ev_cal = $(this);
328			return ev_cal.find('.evo_cal_data').data('sc');			
329		}
330
331		// get shortcode single value
332		$.fn.evo_get_sc_val = function(opt){
333			var defaults = {	F:''}
334			var OPT = $.extend({}, defaults, opt);
335			var ev_cal = $(this); 
336
337			if(OPT.F=='') return false;
338			SC = ev_cal.find('.evo_cal_data').data('sc');
339			if(!(SC[ OPT.F])) return false;
340			return SC[ OPT.F];
341		}
342		// UPDATE Single value
343		$.fn.evo_update_cal_sc = function(opt){
344			var defaults = {
345				F:'', V:''
346			}
347			var OPT = $.extend({}, defaults, opt);
348			var ev_cal = $(this); 
349			SC = ev_cal.find('.evo_cal_data').data('sc');
350
351			SC[ OPT.F ] = OPT.V;
352
353			ev_cal.find('.evo_cal_data').data( 'sc', SC );
354		}
355		// UPDATE all shortcode values
356		$.fn.evo_update_all_cal_sc = function(opt){
357			var defaults = {SC:''}
358			var OPT = $.extend({}, defaults, opt);
359			var CAL = $(this);
360			CAL.find('.evo_cal_data').data( 'sc', OPT.SC );
361		}
362
363	// OTHERS
364		// hex colors // @+2.8
365		$.fn.evo_is_hex_dark = function(opt){
366			var defaults = { hex:'808080'}
367			var OPT = $.extend({}, defaults, opt);
368
369			hex = OPT.hex;
370
371			var c = hex.replace('#','');
372			var is_hex = typeof c === 'string' && c.length === 6 && !isNaN(Number('0x' + c));
373
374			if(is_hex){	
375				var values = c.split('');
376				r = parseInt(values[0].toString() + values[1].toString(), 16);
377			    g = parseInt(values[2].toString() + values[3].toString(), 16);
378			    b = parseInt(values[4].toString() + values[5].toString(), 16);
379			}else{
380				var vals = c.substring(c.indexOf('(') +1, c.length -1).split(', ');
381				var r = vals[0]  // extract red
382				var g = vals[1];  // extract green
383				var b = vals[2];
384			}
385
386			var luma = ((r * 299) + (g * 587) + (b * 114)) / 1000; // per ITU-R BT.709
387
388			return luma>155? true:false;
389		}
390	// Other data
391		$.fn.evo_get_OD = function(){			
392			var ev_cal = $(this);
393			return ev_cal.find('.evo_cal_data').data('od');			
394		}
395
396	// return all filter values for given calendar -- DEP 2.8
397		$.fn.evoGetFilters = function(){
398
399			var ev_cal = $(this); 
400			var evodata = ev_cal.find('.evo-data');
401			
402			var filters_on = ( evodata.attr('data-filters_on')=='true')?'true':'false';
403			
404			// creat the filtering data array if exist
405			if(filters_on =='true'){
406				var filter_section = ev_cal.find('.eventon_filter_line');
407				var filter_array = [];
408				
409
410				filter_section.find('.eventon_filter').each(function(index){
411					var filter_val = $(this).attr('data-filter_val');
412					
413					if(filter_val !='all'){
414						var filter_ar = {};
415						filter_ar['filter_type'] = $(this).attr('data-filter_type');
416						filter_ar['filter_name'] = $(this).attr('data-filter_field');
417
418						if($(this).attr('data-fl_o')=='NOT'){
419							filter_ar['filter_op']='NOT IN';
420						}
421						filter_ar['filter_val'] = filter_val;
422						filter_array.push(filter_ar);
423					}
424				});		
425			}else{
426				var filter_array ='';
427			}			
428			return filter_array;
429		}
430	// old shortcode method -- DEP
431		$.fn.evo_item_shortcodes = function(){			
432			var OBJ = $(this);
433			var shortcode_array ={};			
434			OBJ.each(function(){	
435				$.each(this.attributes, function(i, attrib){
436					var name = attrib.name;
437					if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){
438						name__ = attrib.name.split('-');
439						shortcode_array[name__[1]] = attrib.value;	
440					}
441				});
442			});
443			return shortcode_array;
444		}
445		$.fn.evo_shortcodes = function(){			
446			var ev_cal = $(this);
447			var shortcode_array ={};
448					
449			ev_cal.find('.cal_arguments').each(function(){
450				$.each(this.attributes, function(i, attrib){
451					var name = attrib.name;
452					if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){
453						name__ = attrib.name.split('-');
454						shortcode_array[name__[1]] = attrib.value;	
455					}
456				});
457			});	
458			return shortcode_array;
459		}
460
461		// get evo data for a given calendar
462		$.fn.evo_getevodata = function(){
463
464			var ev_cal = $(this);
465			var evoData = {};
466			
467			ev_cal.find('.evo-data').each(function(){
468				$.each(this.attributes, function(i, attrib){
469					var name = attrib.name;
470					if(attrib.name!='class' && attrib.name!='style' ){
471						name__ = attrib.name.split('-');
472						evoData[name__[1]] = attrib.value;	
473					}
474				});
475			});	
476
477			return evoData;
478		}
479
480	// eventon loading functions
481	// v 2.4.5
482		$.fn.evo_loader_animation = function(opt){
483			var defaults = {
484				direction:'start'
485			}
486			var OPT = $.extend({}, defaults, opt);
487
488			if(OPT.direction == 'start'){
489				$(this).find('#eventon_loadbar').slideDown();
490			}else{
491				$(this).find('#eventon_loadbar').slideUp();
492			}
493		}
494
495	
496		
497
498}(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.