PageSourceSearch

https://www.fevad.com/wp-content/plugins/eventon-rsvp/assets/RS_script.js?ver=3.0.12

js fevad.com collected 2026-09-24 08:43:01 UTC 28,157 bytes, 915 lines download raw bytes

1/**
2 * Javascript: RSVP Events Calendar
3 * @version  3.0.12
4 */
5jQuery(document).ready(function($){
6	
7
8	var JDATA = {};	
9	var submit_open = false;
10	
11
12	// load JSON DATA for event's rsvp into local object
13		function load_json_to_local(O){
14			JDATA = O.closest('.evo_metarow_rsvp').find('.evors_jdata').data('j');
15		}	
16
17	// RSVP form function 
18	$.fn.evors_form = function (opt){
19		var form = this;
20		const form_holder = form.closest('.evors_forms');
21
22		var formtype = form.find('input[name="formtype"]').val();
23	
24		works = {
25			reset_notifications: function(elm){
26				$('.evors_lightbox_body').removeClass('error');
27				$('.evolb_content').removeClass('error');
28				elm.removeClass('err');
29				$('.evors_lightbox_body').find('.notification').hide();
30			},
31			interaction: function(){
32				
33				var ERROR = false;
34
35				// capacity check 
36				form.on('change','input[name="count"]', function(){
37
38					//ERROR = false;
39					var O = $(this);
40
41					// reset
42					works.reset_notifications( O );
43					
44					CAP = JDATA.cap;
45					true_capacity = JDATA.true_cap;
46					PERCAP = JDATA.precap;
47					form = O.closest('.evors_submission_form');
48					const oldCount = O.data('oval');
49					const rsvp_type = form.find('input[name=rsvp_type]').val();
50
51					VAL = parseInt(O.val()); // new rsvp count
52					original_rsvp_cap = parseInt( O.attr('value') );
53
54					// change RSVP form
55					if( formtype == 'update'){ // updating a rsvp
56						//console.log(CAP);
57						//console.log(VAL +' '+original_rsvp_cap + ' '+ oldCount);
58						//console.log(true_capacity);
59
60						// for waitlist -- addon hook
61						if( CAP == 'wl' ){ // available capacity is 0 & waitlist is ON
62							// no space left but waitlist
63							if(  VAL > original_rsvp_cap ){ // if increasing spaces
64								$(this).addClass('err');
65								works.show_msg('err9'); 
66								ERROR = true;
67							}
68						}else{
69
70							// if increasing the count
71							//if( O.data('oval')) original_rsvp_cap = parseInt( O.data('oval'));
72							if( VAL > original_rsvp_cap  ){
73								const increased_spaces = VAL - original_rsvp_cap;
74
75								if( increased_spaces > true_capacity ){
76									//O.val( original_rsvp_cap );// reset the count to available max
77									$(this).addClass('err');
78									works.show_msg('err9'); 
79									ERROR = true;
80								}
81							}
82						}
83						
84					}else{
85						// check avialable space vs party size
86							if(VAL > parseInt(CAP) && CAP!= 'na'){
87								$(this).addClass('err');
88								works.show_msg('err9','','', 2000 ); 
89								ERROR = true;
90
91								O.val( CAP ); // reset the capacity to max value
92							}
93						// check per each rsvp capacity vs party size
94							if(VAL > parseInt(PERCAP) && PERCAP!= 'na'){
95								$(this).addClass('err');
96								works.show_msg('err10'); 
97								ERROR = true;
98							}
99					}
100
101					// no errors reset error notifications
102					if( !ERROR ){
103						works.reset_error();
104					}
105
106					// if valid capacity add additional guests
107					if(!ERROR){					
108
109						var guestNames = form.find('.form_guest_names');
110						var maskField = `<input class="regular input" name="names[]" type="text" placeholder="${evors_ajax_script.text.guest_name}">`;			
111						var inputHolder = guestNames.find('.form_guest_names_list');
112
113
114						if(VAL>1){							
115							
116							var ExistInputCount = inputHolder.find('input').length;
117							
118							// Add or remove input fields
119	                        if ((VAL - 1) > ExistInputCount) { // Add
120	                            var appender = '';
121	                            for (var x = 0; x < (VAL - 1 - ExistInputCount); x++) {
122	                                appender += maskField;
123	                            }
124	                            inputHolder.append(appender);
125	                        } else {
126	                            inputHolder.find('input').each(function(index) {
127	                                if (index >= (VAL - 1)) $(this).remove();
128	                            });
129	                        }
130	                        guestNames.show();
131
132						}else{
133							guestNames.hide();
134							inputHolder.html( maskField);
135						}
136					}
137				});
138
139				// change RSVP status within the form
140				form.on('click', 'span.evors_choices', function(){
141					var OBJ = $(this);
142
143					var VAL = OBJ.data('val');
144					form.attr('class','evors_gen_form evors_submission_form  rsvp_'+VAL);
145					OBJ.siblings().removeClass('set');
146					OBJ.addClass('set');
147
148					OBJ.parent().siblings('input').val( VAL );
149				});
150
151				// plus minus changer 3.0.6
152				$('body').on('evo_plusminus_changed', function(e, NEWQTY, MAX, OBJ){
153					$(OBJ).siblings('input').trigger('change');
154				});
155				
156				// close RSVP form from incard close button
157				form.on('click','.evors_incard_close',function(){
158					$(this).closest('.evors_incard_form').hide();
159					// reset any selected RSVP choices
160					$(this).closest('.evo_metarow_rsvp').find('.evors_choices').removeClass('set');
161				});
162				
163	            // Checkbox field
164	            form.on('click', '.evors_checkbox_field', function() {
165	                var O = $(this);
166	                if (O.hasClass('checked')) {
167	                    O.removeClass('checked');
168	                    O.siblings('input').val('no');
169	                } else {
170	                    O.addClass('checked');
171	                    O.siblings('input').val('yes');
172	                }
173	            });
174			},
175
176			// show form message
177			show_msg: function (code, type, message, hide_message ){
178
179				if(message == '' || message === undefined){
180					var C = form_holder.find('.evors_msg_').data('j');
181					var classN = (type== undefined || type=='error' || type == '')? 'err':type;
182					message = message || C.codes[code];
183				}				
184				form_holder.find('.notification').addClass(classN).show().find('p').html(message);
185				form_holder.parent().addClass('error');
186				form.addClass('error');
187
188				if( hide_message > 0 ){
189					setTimeout( function(){
190						works.reset_error();
191					}, hide_message );
192				}
193			},
194
195			// reset form error message
196			reset_error: function(){
197				form_holder.find('.notification').hide().find('p').html('');
198				form_holder.parent().removeClass('error');
199				form.removeClass('error');
200			}
201		}
202
203		works.interaction(); // Calling the interaction function
204
205		return this;
206	}
207	
208
209	// open RSVP form from anywhere @since 2.8.3
210		$('body').on('click','.evors_trig_open_rsvp_form', function(event){
211			event.preventDefault();
212			event.stopPropagation();
213
214			show_rsvp_form( $(this), $(this).attr('data-val'), 'submit');
215		});
216		$('body').on('click','.evoRS_status_option_selection span.evors_choices',function(){
217			show_rsvp_form( $(this), $(this).attr('data-val'), 'submit');
218		});
219		
220	// RSVP from eventtop
221		$('body').on('click', '.evors_rsvpiable span.evors_choices', function(event){
222			event.preventDefault();
223			event.stopPropagation();
224
225			load_json_to_local( $(this) );
226
227			var obj = $(this),
228				rsvp = obj.closest('.evors_rsvpiable'),
229				evoet_rsvp = obj.closest('.evoet_rsvp'),
230				ajaxdataa = {};
231
232			ajaxdataa['rsvp']= obj.data('val');				
233			ajaxdataa['lang']= rsvp.data('lang'); 
234			ajaxdataa['uid']= rsvp.data('uid'); 
235			ajaxdataa['updates']= 'no';	
236			ajaxdataa['action']='the_ajax_evors_a7';
237			ajaxdataa['repeat_interval']= rsvp.data('ri');
238			ajaxdataa['e_id']= parseInt(rsvp.data('eid'));
239
240
241			var event_uid = 'event_'+ ajaxdataa.e_id +'_'+ ajaxdataa.repeat_interval;
242			
243			$.ajax({
244				beforeSend: function(){	
245					evoet_rsvp.addClass('evoloading');	
246				},
247				type: 'POST',
248				url:evors_ajax_script.ajaxurl,
249				data: ajaxdataa,
250				dataType:'json',
251				success:function(data){
252					if(data.status=='0'){
253						$('body').trigger('evors_new_rsvp_eventtop');
254
255						// update events eventwhere
256						$('body').find('.eventon_list_event.'+event_uid).each(function(){
257							
258							// show success message
259							evoet_rsvp.html(data.message);
260
261							// update eventtop html content
262							setTimeout( function(){
263								evoet_rsvp.html( data.content_eventtop );
264							},3000);
265							
266
267							$(this).find('.evors_eventtop_section_data').replaceWith(data.content);
268
269							// update event card
270							if( data.card_content !== undefined){
271								$(this).find('.evors_eventcard_content').html( data.card_content);
272							}
273						});			
274						
275					}else{
276						rsvp.append('<span class="error">'+data.message+'</span>');
277					}
278				},complete:function(){
279					evoet_rsvp.removeClass('evoloading');
280				}
281			});	
282		});
283	
284	// RSVP form submissions & update existing
285		$('body').on('click', '.evors_submit_rsvpform_btn', function(e){	
286			e.preventDefault();
287
288			var obj = O = $(this),
289				ajaxdataa = { },
290				form = obj.closest('form.evors_submission_form'),
291				FORMPAR = form.parent(),
292				formSection = form.parent(),
293				error = 0,
294				formType = form.find('input[name="formtype"]').val(),
295				lightbox = false;
296			const $count = parseInt(form.find('input[name=count]').val() );
297			const $countMax = parseInt(form.find('input[name=count]').data('max') );
298			const newRSVP_status = form.find('input[name=rsvp]').val();
299
300			// reset form error messages
301				rsvp_hide_notifications();
302				FORMPAR.parent().removeClass('error');
303			
304			// validation
305				// capacity check
306					if(error==0){
307						var changeCount = $count;
308						if(formType=='update'){
309							pastVal = parseInt(form.find('input[name=count]').attr('data-oval'));
310							changeCount = $count - pastVal;
311						}
312
313						
314						if(form.find('.rsvp_status span.set').data('val')!='n' 
315							&& JDATA.cap
316							&& JDATA.cap !='na' 							
317						){
318
319							var error2 = false;
320
321							// For waitlist: only error if updating and trying to increase count
322			                if( JDATA.cap == 'wl' && formType == 'update' ){
323			                    if( changeCount > 0 ) error2 = true;
324			                }else if( JDATA.cap != 'wl' ){
325			                    if( changeCount > parseInt(JDATA.cap) ) error2 = true;
326			                }
327
328
329							if( error2 ){
330								//console.log('rr');
331								error=4;
332								form.find('input[name=count]').addClass('err');
333
334								// Use err11 if waitlist and no spaces, else err9
335			                    const errCode = (JDATA.cap == 'wl' && changeCount > 0) ? 'err11' : 'err9';
336			                    rsvp_error(errCode,'','',form);
337							}
338						}
339						// max count limit
340						if( JDATA.precap!='na' && $count > parseInt(JDATA.precap) ){
341							error=4;
342							form.find('input[name=count]').addClass('err');
343							rsvp_error('err10','','',form);
344							//console.log('10');
345						}
346						//console.log(JDATA);
347
348						// cap check for updating RSVP
349						if( formType == 'update' && JDATA.cap != 'wl' && $count > $countMax && newRSVP_status != 'n'){
350							error=4;
351							form.find('input[name=count]').addClass('err');
352							rsvp_error('err10','','',form);
353							//console.log('10a');
354						}
355					}	
356				// run through each rsvp field
357					form.find('.form_row.req').each(function(index){
358						
359						const row = $(this);
360						row.removeClass('err');
361
362						// for text fields
363						iO = $(this).find('input');
364
365						if( iO.length > 0){
366							$.each(iO, function(){
367								ioo = $(this);
368
369								// required checkbox field
370								if( ioo.hasClass('checkbox') && ioo.val()=='no'){
371									error = 1;
372									row.addClass('err');
373								}
374
375								// check required fields filled
376								if( ioo.val()=='' && ioo.is(":visible")){
377									error = 1;
378									row.addClass('err');
379								}						
380
381								if( ioo.val() == '' ) return true;
382							});
383						}
384						
385
386						// for required select fields
387						if( $(this).find('select').length > 0 && $(this).find('select').val() == '-'){
388							error = 1;
389							row.addClass('err');
390						}
391
392										
393					});
394
395				// validate email
396					if(error==0){
397						var thisemail = form.find('input[name=email]');
398						if(!is_email(thisemail.val().trim() )){
399							thisemail.addClass('err');
400							rsvp_error('err2','','', form); // invalid email address
401							error = 2;
402						}
403					}	
404
405				// validate human
406					if(error==0){
407						var human = rsvp_validate_human( form.find('input.captcha') );
408						if(!human){
409							error=3;
410							rsvp_error('err6','','',form);
411						}
412					}	
413
414			// if form type is wl-remove
415				if(formType == 'wl-remove') error = 0;			
416				
417			// if no errors proceed
418			if(error==0){
419				var updates = form.find('.updates input').attr('checked');
420					updates = (updates=='checked')? 'yes':'no';
421
422				ajaxdataa['action']='the_ajax_evors';
423				form.ajaxSubmit({			
424				//$.ajax({
425					beforeSend: function(){	
426						//form.parent().addClass('loading');	
427						O.addClass('evobtn_loader full');
428					},
429					type: 'POST',url:evors_ajax_script.ajaxurl,data: ajaxdataa,dataType:'json',
430					success:function(data){
431						if(data.status=='0'){
432
433							
434							FORMPAR.parent().html(data.message);
435							EVENTCARD = $('body').find('.event_'+data.e_id+'_'+ data.ri );
436
437							// if lightbox event
438							lb_eventcard = $('body').find('.evo_lightbox_body.event_'+ data.e_id+'_'+ data.ri);
439							
440							// update event top data
441								if( 'data_content_eventtop' in data){
442									// lightbox
443									if(lb_eventcard.find('.evors_eventtop_section_data').length>0){
444										lb_eventcard.find('.evors_eventtop_section_data').replaceWith(	data.data_content_eventtop	);
445									}
446
447									// calednar
448									if(EVENTCARD.find('.evors_eventtop_section_data').length>0){
449										EVENTCARD.find('.evors_eventtop_section_data').replaceWith(	data.data_content_eventtop	);
450									}
451								}
452								if('data_content_eventtop_your' in data){
453									// lightbox
454									if(lb_eventcard.find('.evors_eventop_rsvped_data').length>0){
455										lb_eventcard.find('.evors_eventop_rsvped_data').replaceWith(	data.data_content_eventtop_your	);
456									}
457									// calendar
458									if(EVENTCARD.find('.evors_eventop_rsvped_data').length>0){
459										EVENTCARD.find('.evors_eventop_rsvped_data').replaceWith(	data.data_content_eventtop_your	);
460									}
461								}
462
463							// update Event Card
464								if(data.e_id){					
465									if(data.data_content_eventcard != ''){
466										const incard_form_html = EVENTCARD.find('.evors_incard_form').html();
467
468										EVENTCARD.find('.evors_eventcard_content').html( data.data_content_eventcard);
469										lb_eventcard.find('.evors_eventcard_content').html( data.data_content_eventcard);
470
471										// update incard rsvp form @since 2.8.4
472										if( EVENTCARD.find('.evors_incard_form').is(":visible") ){
473											EVENTCARD.find('.evors_incard_form').html( incard_form_html ).show();
474										} 
475											
476									}
477								}
478							// update event manager stuff
479								if( $('body').find('#rsvp_event_'+data.e_id).length>0 && data.new_rsvp_text){
480									STATUS = $('#rsvp_event_'+data.e_id).find('span.rsvpstatus');
481									STATUS.html( data.new_rsvp_text);
482									STATUS.attr('class','rsvpstatus status_'+data.new_rsvp_text);
483								}	
484
485							// update virtual event information
486								if( $('body').find('.evo_vir_data').length>0){
487									const vir_data_box =  $('body').find('.evo_vir_data');
488
489									if( vir_data_box.data('single') !== undefined 
490										&& vir_data_box.data('single') == 'y' && 
491										vir_data_box.data('refresh')
492									){
493										extra_data = {};
494										extra_data['refresh_main'] = 'yy';
495										$('body').trigger('evo_refresh_designated_elm',[ vir_data_box,'evo_vir_data', extra_data]);
496									}
497								}
498								
499
500						}else{
501							var passedRsvppd = (data.status)? 'err'+data.status:'err7';
502							rsvp_error(passedRsvppd, '', data.message,form);
503						}
504					},complete:function(){	
505						form.parent().removeClass('loading');	
506						O.removeClass('evobtn_loader full');
507					}
508				});				
509			}else if(error==1){	rsvp_error('err','','',form);	}	
510		});
511	
512	// CHANGE RSVP
513		// change a RSVP
514			$("body").on('click','.evors_change_rsvp_trig',function(e){	
515				e.preventDefault();			
516				OBJ = $(this);
517				
518				// extra data
519				var _extra_data = {};
520				_extra_data['rsvpid'] = OBJ.data('rsvpid');
521
522				show_rsvp_form(OBJ, '','update', _extra_data );
523			})
524			// find rsvp form from rsvo form
525			.on('click','#lookup_rsvp_trig',function(e){
526				e.preventDefault();
527				OBJ = $(this);
528				var _extra_data = {};
529				//_extra_data['rsvpid'] = OBJ.data('rsvpid');
530				_extra_data['force_change'] = true;
531				OBJ.addClass('evobtn_loader full');
532				show_rsvp_form(OBJ, '','update', _extra_data );
533			});
534
535		// from successful rsvped page
536			$('body').on('click','.evors_change_trig',function(){
537				OBJ = $(this);
538				
539				// loading animation
540				OBJ.closest('.evors_forms').addClass('loading');
541
542				// load Json data					
543				JDATA = OBJ.data('j');
544
545				show_rsvp_form(OBJ, '','update');
546			});
547		// From rsvp manager
548			$('.eventon_rsvp_rsvplist').on('click','.update_rsvp',function(){
549				OBJ = $(this);
550				PAR = OBJ.parent();
551
552				// load Json data					
553				JDATA = OBJ.parent().siblings('.evors_jdata').data('j');				
554
555				show_rsvp_form(OBJ, '','update');
556			});
557
558	// Show RSVP lightbox form
559		function show_rsvp_form(OBJ, RSVP,formtype, extra_data){
560			var ajaxdataa = {};
561			ajaxdataa['action']='evors_get_rsvp_form';			
562
563			ROW = OBJ.closest('.evo_metarow_rsvp');
564			if(OBJ.closest('.evo_metarow_rsvp').length) load_json_to_local( OBJ);
565		
566			if(JDATA){
567				$.each(JDATA, function(index, val){
568					ajaxdataa[index] = val;
569				});
570			}
571
572			if( extra_data && extra_data !== undefined){
573				$.each(extra_data, function(ind, vall){
574					ajaxdataa[ ind ] = vall;
575				});
576			}
577
578			ajaxdataa['rsvp'] = RSVP;
579			ajaxdataa['formtype'] = formtype;
580			const FORM = OBJ.closest('.evors_forms');
581			FORMNEST = FORM.parent();
582			
583			$.ajax({
584				beforeSend: function(){ 	loading(OBJ);		},					
585				url:	evors_ajax_script.ajaxurl,data: 	ajaxdataa,	dataType:'json', type: 	'POST',
586				success:function(data){
587					if(data.status=='good'){
588						// show form inside eventcard
589						if( ajaxdataa.incard =='yes'){
590							ROW.find('.evors_incard_form')
591								.removeClass('error')
592								.html( data.content )
593								.slideDown('fast');							
594						// open dynamic lightbox
595						}else{
596
597							var is_LB_exists = $('body').find('.evors_lightbox.evo_lightbox').length ? true: false;
598
599							
600							if( is_LB_exists ){
601								const LB = $('body').find('.evors_lightbox.evo_lightbox');
602								LB.find('.evolb_content').html( data.content);
603							}else{
604								var lb_ajax_data = {
605									lbdata:{
606										class:'evors_lightbox',
607										padding:'evopad0',
608										additional_class: ( ajaxdataa['form_style'] == 'clean' ? 'clean':''),
609										content: data.content
610									},
611									adata:{	end:'_client'	}
612								};
613								ROW.evo_lightbox_open( lb_ajax_data );
614							}
615
616							// Change rsvp form -- focus on input field
617							if( ajaxdataa.formtype == 'update' && ajaxdataa.rsvpid == ''){
618								setTimeout(function(){ $('body').find('.evors_findrsvp_trig').focus(); },500);
619							}
620
621							$('body').trigger('evolightbox_show');
622						}
623
624						$('body').find('form.evors_gen_form').evors_form();
625						
626					}else{
627						// error notice ***
628					}
629				},complete:function(){ 
630					completeloading(OBJ);	
631					FORMNEST.closest('.evorow').removeClass('loading');
632					FORM.removeClass('loading');
633				}
634			});
635		}
636
637		// during ajax eventcard loading
638			function loading(obj){					
639
640				if( obj.hasClass('change')){
641					obj.addClass('evobtn_loader');
642					return;
643				} 
644
645				obj.closest('.evorow').addClass('loading');	
646				obj.closest('.trig_evo_loading').addClass('evoloading');	
647				obj.closest('p.rsvpmanager_event').addClass('loading');	
648			}
649			function completeloading(obj){
650				obj.closest('.evorow').removeClass('loading');
651				obj.closest('.trig_evo_loading').removeClass('evoloading');
652				obj.closest('p.rsvpmanager_event').removeClass('loading');	
653
654				if( obj.hasClass('change')) obj.removeClass('evobtn_loader');
655			}
656		
657		// Find RSVP
658			$(document).on('keypress', '.evors_findrsvp_trig', function (e) {
659			    if (e.which === 13) { // Enter key
660			        e.preventDefault(); // Prevent default Enter behavior (e.g., newline)
661			        $('body').find('.evors_findrsvp_form_btn').trigger('click');
662			    }
663			});
664			$('body').on('click','.evors_findrsvp_form_btn', function(){
665				var obj = $(this);			
666				var form = obj.closest('form.evors_findrsvp_form');				
667				var error = 0;
668
669				// get form data
670				var formdata = form.serializeArray().reduce(function(obj, item) {
671				    obj[item.name] = item.value;
672				    return obj;
673				}, {});
674
675				f_holder = obj.closest('.evors_forms');
676
677				// run through each rsvp field
678					form.find('.input').each(function(index){
679						// check required fields filled
680						if( $(this).hasClass('req') && $(this).val()=='' ){
681							error = 1;
682						}
683					});							
684				if(error=='1'){
685					rsvp_error('err','','',form);
686				}else{
687					var ajaxdataa = {};
688					ajaxdataa['action']='evors_find_rsvp_form';
689					form.ajaxSubmit({
690						beforeSend: function(){ 	obj.addClass('evobtn_loader full');		},
691						url:	evors_ajax_script.ajaxurl,
692						data: 	ajaxdataa,	dataType:'json', type: 	'POST',
693						success:function(data){
694							if(data.status=='good'){
695
696								if( formdata.incard == 'yes'){
697
698								}else{
699
700								}
701
702								f_holder.parent().removeClass('error').addClass('t');
703								f_holder.parent().html( data.content );
704
705								$('body').find('form.evors_gen_form').evors_form();
706								
707							}else{
708								rsvp_error('err5','','',form);
709							}
710							obj.removeClass('evobtn_loader full');
711						},complete:function(){ 		}
712					});
713				}				
714			});
715			
716	// hover over guests list icons
717		$('body').on('mouseover','.evors_whos_coming span.initials', function(){
718			OBJ = $(this);
719			EM = OBJ.parent().find('em.tooltip');
720			TEXT = OBJ.data('name');
721
722			POS = OBJ.position();
723			
724			EM.css({'left':(POS.left+20), 'top':(POS.top-30)}).html(TEXT).show();
725
726		});
727		$('body').on('mouseout','.evors_whos_coming span', function(){
728			OBJ = $(this);
729			EM = OBJ.parent().find('em.tooltip');
730			EM.hide();
731		});
732
733	// Buddypress profile linking
734		$('body').on('click','.evors_whos_coming span',function(){
735			LINK = $(this).data('link');
736
737			if(LINK != 'na')
738				window.open(LINK, '_blank');
739		});
740
741	
742
743// ADDONS
744	// action  user event manager
745		// show rsvp stats for events
746			$('#evoau_event_manager').on('click','a.load_rsvp_stats',function(event){
747				event.preventDefault();					
748				O = $(this);
749
750				var data_arg = {
751					eid: O.data('eid'),
752					ri: O.data('ri'),
753					data: O.closest('.evoau_manager').find('.evoau_manager_json').data('js')
754				};
755
756				load_rsvp_stats( O , data_arg);
757			});
758		// refresh rsvp data
759			$(document).on('click','.evorsau_refresh_data',function(){
760				O = $(this);
761				var data_arg = {
762					eid: O.closest('.evoau_manager_continer').data('eid'),
763					ri: O.closest('.evoau_manager_continer').data('ri'),
764					data: O.closest('.evoau_manager').find('.evoau_manager_json').data('js')
765				};
766
767				load_rsvp_stats( O , data_arg, true);
768			});
769
770			function load_rsvp_stats(O, data_arg, refresh){
771				data_arg['action'] = 'evors_ajax_get_auem_stats';
772				MANAGER = O.closest('.evoau_manager');
773				$.ajax({
774					beforeSend: function(){
775						MANAGER.find('.trig_evo_loading').addClass('evoloading');
776						MANAGER.find('.eventon_actionuser_eventslist').addClass('evoloading');
777					},
778					type: 'POST',
779					url:evors_ajax_script.ajaxurl,
780					data: data_arg,
781					dataType:'json',
782					success:function(data){
783						if( refresh){
784							MANAGER.find('.evoau_manager_event_content').html( data.html );
785						}else{
786							$('body').trigger('evoau_show_eventdata',[MANAGER, data.html, true]);
787						}
788						
789	           		},complete:function(){ 
790						MANAGER.find('.eventon_actionuser_eventslist').removeClass('evoloading');
791						MANAGER.find('.trig_evo_loading').removeClass('evoloading');
792					}
793				});
794			}
795
796		// find an attendee
797			$(document).on('click','.evorsau_trig_find_attendee',function(){
798				$(this).parent().siblings('.evorsau_find_rsvp').toggle();
799			});
800			$(document).on('change paste keyup','input.evorsau_find_attendee',function(){
801				var O = $(this);
802				var val = O.val();
803				const section = O.closest('.evorsau_attendee_list');
804
805				section.find('li').each(function(){
806					var show = false;
807					// if rsvp id typed and it matches
808					if( val == $(this).data('rsvpid')) show = true;
809					if( val == $(this).data('e')) show = true;
810					if( $(this).data('e').includes( val)) show = true;
811					if( val == '') show = true;
812
813					(show) ? $(this).show(): $(this).hide();
814				});
815			});
816
817		// register attendee on the spot
818			$('body').on('click','.evorsau_trig_rsvp_form',function(){
819				OBJ = $(this);
820				// load Json data					
821				JDATA = OBJ.siblings('.evors_jdata').data('j');
822
823				var extra_data = {};
824				extra_data['loginuser'] = 'no';
825				show_rsvp_form(OBJ, '','submit', extra_data);
826			});
827
828		// checkin guests
829			$('.evoau_manager_event').on('click','span.checkin',function(){
830				var obj = $(this);
831				var PAR = obj.closest('.evorsau_attendee_list');
832
833				if(!PAR.hasClass('checkable')) return false;
834
835				var status = obj.attr('data-status');
836
837				status = (status=='' || status=='check-in')? 'checked':'check-in';
838
839				var data_arg = {
840					action: 'the_ajax_evors_f4',
841					rsvp_id: obj.attr('data-id'),
842					status:  status,
843					nonce: PAR.find('input#evors_nonce').val()
844				};
845				$.ajax({
846					beforeSend: function(){
847						obj.html( obj.html()+'...');
848					},
849					type: 'POST',
850					url:evors_ajax_script.ajaxurl,
851					data: data_arg,
852					dataType:'json',
853					success:function(data){
854						//alert(data);
855						obj.attr({'data-status':status}).html(data.new_status_lang)
856						.removeAttr('class')
857						.addClass(status+' checkin');
858					}
859				});
860			});
861	// waitlist 
862	// Remove from waitlist
863		$('body').on('click','.evorsw_remove_wl',function(){
864
865			FORM = $(this).closest('form');
866
867			// update form values to remove from waitlist
868			FORM.find('input[name="formtype"]').val('wl-remove');
869
870			// submit form
871			FORM.find('.evors_submit_rsvpform_btn').trigger('click');
872			
873		});
874
875// Supporting functions		
876	// eventon 4.9.2 -- remove
877		$('body').on('click', '.evo_elm_dynamic_select_trig',function(e){
878			e.preventDefault();
879		});
880	// show error messages
881		function rsvp_error(code, type, message, O){
882			FORM = O.closest('.evors_forms');
883			F = FORM.find('form');
884
885			if(message == '' || message === undefined){
886				var C = FORM.find('.evors_msg_').data('j');
887				var classN = (type== undefined || type=='error' || type == '')? 'err':type;
888				message = C.codes[code]
889			}				
890			FORM.find('.notification').addClass(classN).show().find('p').html(message);
891			FORM.parent().addClass('error');
892			F.addClass('error');
893		}
894
895	// hide form messages
896		function rsvp_hide_notifications(){
897			$('.evors_lightbox_body').find('.notification').hide();
898		}		
899	// validate humans
900		function rsvp_validate_human(field){
901			if(field==undefined){
902				return true;
903			}else{
904				var numbers = ['11', '3', '6', '3', '8'];
905				if(numbers[field.attr('data-cal')] == field.val() ){
906					return true;
907				}else{ return false;}
908			}				
909		}
910			
911	function is_email(email){
912		var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
913  		return regex.test(email);
914	}
915});

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.