PageSourceSearch

https://www.augustdorfernachrichten.de/wp-content/plugins/eventON/assets/js/eventon_functions.js?ver=3.0.7

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