PageSourceSearch

https://ville-ham.fr/wp-content/plugins/eventer/js/init.js?ver=1.2.0.1611067713

js ville-ham.fr collected 2026-10-02 18:05:27 UTC 60,040 bytes, 1,593 lines download raw bytes

1jQuery(function($){
2	"use strict";
3	var EVENTER = window.EVENTER || {};
4	
5	// Match Height Function
6	EVENTER.MH = function() {
7		$('.equah').each(function() {
8			$(this).find('.equah-item').matchHeight();
9		});
10	};
11	    
12	$(document).ready(function(){
13        $(document).on("click", ".eventer-icon-calendar", function(){
14            
15        });
16        
17        function eventer_dynamic_bookings(dateText){
18            var request = $.ajax({
19                url: initval.ajax_url,
20                type: "post",
21                dataType: 'json',
22                data : {
23                    action : 'eventer_dynamic_ticket_area',
24                    date: dateText,
25                    event: initval.dynamic_event,
26				},
27				beforeSend: function( xhr ) {
28					
29                },
30            });
31            request.done(function (response){
32                $('.eventer-event-date').html('<i class="eventer-icon-calendar"></i>'+response.formatted);
33                $('.eventer-front-ticket-area-dynamic').empty();
34                $('.eventer-front-ticket-area-dynamic').html(response.tickets);
35                $('#eventer-future-bookings').datepicker({
36                    showOn: "button",
37                    buttonText: "Select Booking Date",
38                    defaultDate: new Date(response.date),
39                    beforeShowDay:  disableDays,
40                    onSelect: function(dateText, inst) { 
41                        eventer_dynamic_bookings(dateText);
42                    }
43                });
44            });
45        }
46        function disableDays(date) {
47            var pad = function(value) {
48                return (value < 10 ? '0' : '') + value;
49            };
50            var sDate = date.getFullYear() + "-" + pad(date.getMonth() +1) +
51                "-" + pad(date.getDate());
52                $('#ui-datepicker-div').addClass('eventer-custom-ui-datepicker');
53            return [$.inArray(sDate, initval.enabled_date) !== -1, 'highlight'];
54        }
55        $('#eventer-future-bookings').datepicker({
56            showOn: "button",
57            buttonText: "Select Booking Date",
58            
59            beforeShowDay:  disableDays,
60            onSelect: function(dateText, inst) { 
61                eventer_dynamic_bookings(dateText);
62            }
63        });
64		$('.eventers-filter-check').click(function(){
65        $(".eventer-filter-select").slideUp();
66    });
67		
68		function split( val ) {
69		  return val.split( /,\s*/ );
70		}
71		function extractLast( term ) {
72		  return split( term ).pop();
73		}
74 		var projects = initval.eventer_stored; 
75		var eventers_show = $.map(projects, function(label, value) {
76			return {value, label};
77		});
78    $( ".keyword-search-eventer" )
79      .on( "keydown", function( event ) {
80        if ( event.keyCode === $.ui.keyCode.TAB &&
81            $( this ).autocomplete( "instance" ).menu.active ) {
82          event.preventDefault();
83        }
84      })
85      .autocomplete({
86        minLength: 0,
87        source: function( request, response ) {
88          response( $.ui.autocomplete.filter(
89            eventers_show, extractLast( request.term ) ) );
90        },
91        focus: function() {
92          return false;
93        },
94        select: function( event, ui ) {
95					var search_ids = split($(this).attr('data-search'));
96					search_ids.push(ui.item.value);
97					$(this).attr('data-search', search_ids);
98          var terms = split( this.value );
99          terms.pop();
100          terms.push( ui.item.label );
101          terms.push( "" );
102          this.value = terms.join( ", " );
103					var target_url = window.location.href;
104				var status = $('.shortcode-attrs').attr("data-status");
105				var shortcode_actual = JSON.parse($(this).closest('.eventer-list').find('.shortcode-attrs').text());
106				var filter_data = EVENTER.GETFILTERDATA();
107				$.each(filter_data, function(key, object) {
108					target_url = EVENTER.APPENDQUERYURL(key, object, target_url);
109				});
110				var send_date = $(this).attr("data-arrow");
111				EVENTER.EVENTERAJAXMONTHWISE(shortcode_actual, send_date, '', $(this).closest('div.eventer-list'), 0, target_url, filter_data, status);
112          return false;
113        }
114      });
115if (!!$.prototype.datepicker) {
116$( function() {
117    var dateFormat = "mm/dd/yy",
118      from = $( "#eventer_from" )
119        .datepicker({
120			dateFormat: 'yy-mm-dd',
121          	defaultDate: "+1w",
122          	changeMonth: false,
123          	numberOfMonths: 1,
124			beforeShow: function() {
125			   $('#ui-datepicker-div').addClass('eventer-custom-ui-datepicker');
126		   }
127        })
128        .on( "change", function() {
129					if($('#eventer_to').val()!='')
130					{
131						var target_url = window.location.href;
132						target_url = EVENTER.APPENDQUERYURL('eto', $('#eventer_to').val(), target_url);
133						target_url = EVENTER.APPENDQUERYURL('efrom', $(this).val(), target_url);
134						var status = $('.shortcode-attrs').attr("data-status");
135						var shortcode_actual = JSON.parse($(this).closest('.eventer-list').find('.shortcode-attrs').text());
136						var filter_data = EVENTER.GETFILTERDATA();
137						$.each(filter_data, function(key, object) {
138							target_url = EVENTER.APPENDQUERYURL(key, object, target_url);
139						});
140						EVENTER.EVENTERAJAXMONTHWISE(shortcode_actual, $(this).val(), '', $(this).closest('div.eventer-list'), 0, target_url, filter_data, status);
141					}
142          to.datepicker( "option", "minDate", getDate( this ) );
143        }),
144      to = $( "#eventer_to" ).datepicker({
145				dateFormat: 'yy-mm-dd',
146        		defaultDate: "+1w",
147        		changeMonth: false,
148        		numberOfMonths: 1,
149				beforeShow: function() {
150				   $('#ui-datepicker-div').addClass('eventer-custom-ui-datepicker');
151			   }
152      })
153      .on( "change", function() {
154				var target_url = window.location.href;
155				target_url = EVENTER.APPENDQUERYURL('efrom', $('#eventer_from').val(), target_url);
156				target_url = EVENTER.APPENDQUERYURL('eto', $(this).val(), target_url);
157				var status = $('.shortcode-attrs').attr("data-status");
158				var shortcode_actual = JSON.parse($(this).closest('.eventer-list').find('.shortcode-attrs').text());
159				var filter_data = EVENTER.GETFILTERDATA();
160				$.each(filter_data, function(key, object) {
161					target_url = EVENTER.APPENDQUERYURL(key, object, target_url);
162				});
163				EVENTER.EVENTERAJAXMONTHWISE(shortcode_actual, $(this).val(), '', $(this).closest('div.eventer-list'), 0, target_url, filter_data, status);
164        from.datepicker( "option", "maxDate", getDate( this ) );
165      });
166 
167    function getDate( element ) {
168      var date;
169      try {
170        date = $.datepicker.parseDate( dateFormat, element.value );
171      } catch( error ) {
172        date = null;
173      }
174 
175      return date;
176    }
177  	});
178}
179	window.addEventListener('popstate', function(e){
180      	if(e.state) {
181				//EVENTER.EVENTERAJAXMONTHWISE(shortcode_attr, send_date, arrow_class, $(this).closest('div.eventer-list'), data_jump, e.state.href, filter_data, status);
182		}
183   }); 
184		
185	//$('.save-registrant').prop('disabled', true); 
186		EVENTER.MH();
187		EVENTER.GETMODALHEIGHT = function(modalTrigger)
188		{
189			var windowHeight = $(window).height();
190			var ticket_confirm = $('body').find(modalTrigger);
191			var modalInner = ticket_confirm.find('.eventer-modal-wrap');
192			var modalBody = modalInner.find('.eventer-modal-body');
193			var modalHeight = modalBody.actual('innerHeight');
194			var modalHeightn = parseInt(modalHeight, 10);
195			if(modalHeight < windowHeight){
196				modalInner.css("margin-top",-+modalHeightn/2);
197			} else{
198				modalInner.css({"top":60,"margin-bottom":"60px"});
199			}
200			ticket_confirm.fadeIn();
201			$('body').addClass('eventer-overflow-hidden');
202		};
203		if(initval.register_status!=="" && typeof initval.register_status!=='undefined')
204		{ 
205			EVENTER.GETMODALHEIGHT("#eventer-ticket-confirmation");
206		}
207		
208		
209		// Eventer filters date wise trigger
210		$('.eventer-filter-datewise-wrap').hide();
211		$(document).delegate('.eventer-datewise-filter-trigger', 'click',function(){
212			$('.eventer-filter-datewise-wrap').slideToggle();
213			$(this).toggleClass('trigger-active');
214		});
215	});
216	$(document).on('mouseenter mouseleave', '.eventer-event-save', function(){
217		$(this).find('ul').toggle();
218	});
219	
220	
221	$(document).delegate('.eventer-modal-trigger', 'click',function(e){
222		$('.eventer-modal').fadeOut();
223		var modalTrigger = $(this).attr('data-eventer-modal');
224		if(modalTrigger==='') { return; }
225		EVENTER.GETMODALHEIGHT(modalTrigger);
226		e.preventDefault();
227	});
228	$(document).delegate(".eventer-modal-body", 'click',function(e){
229		e.stopPropagation();
230	});
231	$(document).delegate('.eventer-modal', 'click',function(){
232		$(this).fadeOut();
233		$('body').removeClass('eventer-overflow-hidden');
234	});
235	$(document).delegate('.eventer-modal-close', 'click',function(e){
236		$(this).parents('.eventer-modal').fadeOut();
237		$('body').removeClass('eventer-overflow-hidden');
238		e.preventDefault();
239	});
240	
241	$(document).delegate('.eventer-toggle-area-trigger', 'click',function(e){
242		var dialog_heading = $(this).attr('data-eventer-dialog-heading');
243		if(typeof dialog_heading!=='undefined' && dialog_heading!=='')
244		{
245			$(this).closest('.eventer-modal').find('.eventer-section-wise-heading').text(dialog_heading);
246		}
247		var targetIn = $(this).attr('data-eventer-toggle-in');
248		var targetOut = $(this).attr('data-eventer-toggle-out');
249		$(this).parents('.eventer-toggle-area').find(targetOut).slideUp('fast');
250		$(this).parents('.eventer-toggle-area').find(targetIn).slideDown('slow');
251		e.preventDefault();
252	});
253	
254	
255	$(document).delegate('.eventer-filter-trigger', 'click',function(e){ 
256		if ($(this).parents('.eventer-filter-col').find('.eventer-filter-select').is(":visible")) {
257		  	$(".eventer-filter-select").hide();
258		} else {
259		  $(".eventer-filter-select").hide();
260		  $(this).parents('.eventer-filter-col').find('.eventer-filter-select').toggle();
261		}
262		e.preventDefault();
263	});
264EVENTER.EVENTERPRINTTICKET = function(elem)
265{
266	var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
267	if(isChrome)
268	{
269		var divToPrint=document.getElementById(elem);
270	var newWin=window.open('','Print-Window');
271	newWin.document.open();
272	newWin.document.write('<link rel="stylesheet" href="'+initval.eventer_style+'" type="text/css" />');
273	newWin.document.write('<html><body class="eventer eventer-print-window" onload="window.print()">'+divToPrint.innerHTML+'</body></html>');
274	newWin.document.close();
275	setTimeout(function(){newWin.close();},10);
276	}
277	else
278	{
279    var mywindow = window.open('', 'PRINT', 'height=400,width=600');
280	 mywindow.document.write('<html><head><title>' + document.title  + '</title>');
281	 
282	 mywindow.document.write('<link rel="stylesheet" href="'+initval.eventer_style+'" type="text/css" />');
283    mywindow.document.write('</head><body class="eventer eventer-print-window">');
284    mywindow.document.write('<h1>' + document.title  + '</h1>');
285	 
286    mywindow.document.write(document.getElementById(elem).innerHTML);
287    mywindow.document.write('</body></html>');
288
289    mywindow.document.close(); // necessary for IE >= 10
290    mywindow.focus(); // necessary for IE >= 10*/
291
292    mywindow.print();
293    mywindow.close();
294
295    return true;
296	}
297
298    
299};
300
301EVENTER.GENERATEQRCODE = function(qrInstance, qrContent, qrSize)
302{
303	qrInstance.qrcode({
304			// render method: 'canvas', 'image' or 'div'
305			render: 'image',
306			// version range somewhere in 1 .. 40
307			minVersion: 1,
308			maxVersion: 40,
309			// error correction level: 'L', 'M', 'Q' or 'H'
310			ecLevel: 'L',
311			// offset in pixel if drawn onto existing canvas
312			left: 0,
313			top: 0,
314			// size in pixel
315			size: qrSize,
316			// code color or image element
317			fill: '#000',
318			// background color or image element, null for transparent background
319			background: null,
320			// content
321			text: qrContent,
322			// corner radius relative to module width: 0.0 .. 0.5
323			radius: 0,
324			// quiet zone in modules
325			quiet: 0,
326			// modes
327			// 0: normal
328			// 1: label strip
329			// 2: label box
330			// 3: image strip
331			// 4: image box
332			mode: 0,
333			mSize: 0.1,
334			mPosX: 0.5,
335			mPosY: 0.5,
336			label: 'no label',
337			fontname: 'sans',
338			fontcolor: '#000',
339			image: null
340		});
341};
342$('.eventer-temporary-tickets').hide();
343$(document).on('click', '.eventer-fe-booking-linkss', function(){
344	EVENTER.GENERATETICKETSREGISTRANTS('dashboard');
345});
346EVENTER.GENERATETICKETSREGISTRANTS = function(source = '')
347{
348	if($('.eventer-temporary-tickets').length<=0) return;
349	$('.eventer-temporary-tickets').show();
350	var qrcode_data = [];
351	var nonce_qrcode = $('#eventer-ticket-printable').attr('data-nonce');
352	var organizer;
353	var backorder = '';
354	var ticket_img = null;
355	var registrant = $('#eventer-ticket-printable').attr('data-registrant');
356	var i = 0;
357	var ticket_reverse = null;
358	var ticket_front = null;
359	var event_id = $('#eventer-ticket-printable').attr('data-eid');
360	var registrant_span = [];
361	var main_reg = $('#eventer-ticket-printable').attr('data-uemail');
362	var reg_pos = $('#eventer-ticket-printable').attr('data-regpos');
363	$('.eventer-registrant-show').each(function(){
364		registrant_span.push($(this));
365	});
366	function nextStep(){
367		if(i >= registrant_span.length) return;
368		var qrcode_merged = {};
369		var registrant_listing = registrant_span[i];
370		if(i===0)
371		{
372			nonce_qrcode = registrant_listing.parent('.eventer-all-registrants').attr('data-nonce');
373			organizer = registrant_listing.parent('.eventer-all-registrants').attr('data-organizer');
374			event_id = registrant_listing.parent('.eventer-all-registrants').attr('data-eid');
375			registrant = registrant_listing.parent('.eventer-all-registrants').attr('data-registrant');
376			main_reg = registrant_listing.parent('.eventer-all-registrants').attr('data-mainreg');
377			reg_pos = registrant_listing.parent('.eventer-all-registrants').attr('data-regpos');
378			backorder = registrant_listing.parent('.eventer-all-registrants').attr('data-backorder');
379			$('#eventer-ticket-printable').find('.eventer-qrcode').removeClass('eventer-on-ticket-qr');
380			$('#eventer-ticket-printable').find('.eventer-qrcode').attr('data-qr-content', '');
381		}
382		
383		var qrcode = registrant_listing.attr('data-qrcode');
384		var reg_email = registrant_listing.attr('data-email');
385		var reg_name = registrant_listing.attr('data-name');
386		var reg_event_name = registrant_listing.attr('data-eventid');
387		var reg_event_datetime = registrant_listing.attr('data-datetime');
388		var reg_elocation = registrant_listing.attr('data-elocation');
389		EVENTER.GENERATEQRCODE(registrant_listing, qrcode, 100);
390		var qrcode_src = registrant_listing.find('img');
391		var reg_ticket = registrant_listing.attr('data-ticket');
392		$('#eventer-ticket-printable').find('h3').html('');
393		$('#eventer-ticket-printable').find('.eventer-tickets-booked-info').remove();
394		$('#eventer-ticket-printable').find('.eventer-ticket-reg-code').html('');
395		
396		$('#eventer-ticket-printable').find('.eventer-qrcode').html('');
397		$('#eventer-ticket-printable').find('h3').html(reg_name);
398		$('#eventer-ticket-printable').find('.registrant-ticket').html('<br/>'+reg_ticket);
399		$('#eventer-ticket-printable').find('.eventer-woo-title').html('<br/>'+reg_event_name);
400		$('#eventer-ticket-printable').find('.eventer-woo-datetime').html('<br/>'+reg_event_datetime);
401		$('#eventer-ticket-printable').find('.eventer-woo-location').html('<br/>'+reg_elocation);
402		$('#eventer-ticket-printable').find('.eventer-ticket-reg-code').html(qrcode);
403		$('#eventer-ticket-printable').find('.eventer-qrcode').html(qrcode_src);
404		html2canvas($('#eventer-ticket-printable'),
405		{
406         onrendered: function (canvas) {
407         ticket_img = canvas.toDataURL("image/png",1.0);
408			qrcode_merged.src = ticket_img;
409			nextStep();
410			}
411      });
412		qrcode_merged.code = qrcode;
413			qrcode_merged.email = reg_email;
414			qrcode_merged.name = reg_name;
415			qrcode_merged.ticket = reg_ticket;
416			qrcode_data.push(qrcode_merged);
417	i++;
418	}
419	html2canvas($('#eventer-ticket-printable'),
420	{
421      onrendered: function (canvas) {
422      ticket_front = canvas.toDataURL("image/png",1.0);
423		nextStep();
424		}
425   });
426	if(source==='')
427	{
428		$('<div class="eventer-loader-wrap eventer_custom_loader_tickets"><div class="eventer-loader"></div></div>').appendTo('body');
429	}
430	else
431	{
432		$('.eventer-fe-dashboard').find('.eventer-loader-wrap').show();
433	}
434	setTimeout(
435		function() {
436	var request = $.ajax({
437        url: initval.ajax_url,
438        type: "post",
439			dataType:'json',
440			//async: false,
441        data : {
442				action : 'eventer_generate_ticket_qrcode',
443				qrdata: qrcode_data,
444				backorder: backorder,
445				regpos: reg_pos,
446				source: source,
447				front: ticket_front,
448				mainreg: main_reg,
449				reverse: ticket_reverse,
450				reg: registrant,
451				eid: event_id,
452				nonce: nonce_qrcode,
453				organizer: organizer,
454				//img: img
455				},
456				beforeSend: function( xhr ) {
457					
458  			},
459    });
460	request.done(function (response){
461		if(response===null)
462		{
463			return true;
464		}
465		$('form.eventer-show-download-tickets-form').find('.eventer-woo-tickets').val(response.tickets);
466		$('.eventer-temporary-tickets').remove();
467		$('.eventer_custom_loader_tickets, .eventer-loader-wrap').hide();
468		if($('body').find('.eventer-fe-dashboard').length>0)
469		{
470			var download_btn = $('.eventer-dashboard-download-tickets').clone();
471			download_btn = download_btn.show();
472			var all_tickets = '<div class="eventer-fe-booking-records">';
473			for(var ticket_create=0; ticket_create<response.ticket_arr.length; ticket_create++)
474			{
475				all_tickets += '<img src="'+response.url+'/'+response.ticket_arr[ticket_create]+'">';
476			}
477			all_tickets += '</div>';
478			$('#eventer-dashboard-content-area').empty();
479			$('#eventer-dashboard-content-area').append(all_tickets);
480			$('#eventer-dashboard-content-area').append(download_btn);
481			$('html, body').animate({
482				scrollTop: $("#eventer-dashboard-content-area").offset().top
483			}, 2000);
484		}
485		
486		if(typeof response.event_url!=='undefined' && response.event_url!=='')
487		{
488			window.location.href = response.event_url;
489		}
490		
491	});
492	request.fail(function (jqXHR, textStatus, errorThrown){ 
493			$('.eventer-temporary-tickets').remove();
494    });
495	},
496		1500);
497};
498$(document).on('click', '.eventer-admin-woo-download-tickets-action', function(){
499	$(this).closest('form').submit();
500	return false;
501});
502
503if(initval.reg_now==="1")
504{
505	EVENTER.GENERATETICKETSREGISTRANTS();
506}
507
508$('.eventer-print-ticket').click(function(){
509	EVENTER.EVENTERPRINTTICKET('eventer-ticket-show-now');
510});
511
512
513
514
515	//QR Code Generator
516	$('.eventer-on-ticket-qr').each(function(){
517		var qrInstance = $(this); 
518		var qrContent = qrInstance.attr("data-qr-content") ? qrInstance.attr("data-qr-content") : "";
519		var qrSize = qrInstance.attr("data-qr-size") ? qrInstance.attr("data-qr-size") : 200;
520		EVENTER.GENERATEQRCODE(qrInstance, qrContent, qrSize);
521	});
522	
523	
524	// Eventer CountDown
525	$('.eventer-countdown-timer').each(function(){
526		var expiryDate = $(this).data('date');
527		var countdown_id = $(this).attr('id');
528		$('#'+countdown_id).countdown(expiryDate).on('update.countdown', function(event) {
529	  $(this).html(event.strftime(''+ '<div class="eventer-timer-col"><div><div><span>%D</span> <strong>'+initval.day+'</strong></div></div></div>' + '<div class="eventer-timer-col"><div><div><span>%H</span> <strong>'+initval.hr+'</strong></div></div></div>' + '<div class="eventer-timer-col"><div><div><span>%M</span> <strong>'+initval.min+'</strong></div></div></div>' + '<div class="eventer-timer-col"><div><div><span>%S</span> <strong>'+initval.sec+'</strong></div></div></div>'));
530		});
531	});
532	
533	
534	EVENTER.CHECKBOXVALIDATE = function(names, fields) 
535	{
536		var chkds = $("input[name='"+names+"']:"+fields);
537		if(chkds.is(":checked"))  
538		{
539				return "1";  
540		}
541		else
542		{
543			return "0";
544		}
545	};
546	
547	EVENTER.VALIDATEEMAIL = function (emailField)
548	{
549  	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
550
551  	if (reg.test(emailField.val()) === false) 
552    {
553       return "0";
554    }
555		return "1";
556
557	};
558	
559	EVENTER.APPENDQUERYURL = function(key, value, url) {
560    if (!url) { url = window.location.href; }
561    var re = new RegExp("([?&])" + key + "=.*?(&|#|$)(.*)", "gi"),
562        hash;
563    if (re.test(url)) {
564        if (typeof value !== 'undefined' && value !== null) {
565            return url.replace(re, '$1' + key + "=" + value + '$2$3'); }
566        else {
567            hash = url.split('#');
568            url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, '');
569            if (typeof hash[1] !== 'undefined' && hash[1] !== null) {
570                url += '#' + hash[1]; }
571            return url;
572        }
573    }
574    else {
575        if (typeof value !== 'undefined' && value !== null) {
576            var separator = url.indexOf('?') !== -1 ? '&' : '?';
577            hash = url.split('#');
578            url = hash[0] + separator + key + '=' + value;
579            if (typeof hash[1] !== 'undefined' && hash[1] !== null) {
580                url += '#' + hash[1]; }
581            return url; 
582        }
583        else{ return url; }
584            
585    }
586};
587	EVENTER.EVENTERAJAXMONTHWISE = function(shortcode_attr, send_date, arrow_class, element, data_jump, target_url, filters, status)
588	{
589		shortcode_attr.eventerid = $('.keyword-search-eventer').attr('data-search');
590		var date_range = $('.keyword-search-eventer').attr('data-range');
591		var date_from = $('.keyword-search-eventer').attr('data-from');
592		var date_to = $('.keyword-search-eventer').attr('data-to');
593		var searchfrom = $('#eventer_from').val();
594		var searchto = $('#eventer_to').val();
595		var fromdate, todate;
596		if(searchfrom!=='' && searchto!=='')
597		{
598			fromdate = searchfrom;
599			todate = searchto;
600			shortcode_attr.efrom = fromdate;
601			shortcode_attr.eto = todate;
602		}
603		else if(date_range==="1" && $('.keyword-search-eventer').val()!=='')
604		{
605			fromdate = date_from;
606			todate = date_to;
607			shortcode_attr.efrom = fromdate;
608			shortcode_attr.eto = todate;
609		}
610		
611		var currmonth = $(element).find(".eventer-switcher-current-month-in");
612		var prevarrow = $(element).find("a.prev-month");
613		var nextarrow = $(element).find("a.next-month");
614		var twelvemonths = $(element).find(".eventer-twelve-months");
615		$(element).find(".eventer-loader-wrap").show();
616    var request = $.ajax({
617        url: initval.ajax_url,
618        type: "post",
619				dataType:'json',
620        data : {
621				action : 'eventer_month_wise_events',
622				get_month : send_date,
623				arrow: arrow_class,
624				lang: initval.wpml_lang,
625				datajump: data_jump,
626				shortcode_attr: shortcode_attr,
627				filters: filters,
628				stat: status,
629				nonce: initval.month_events_nonce,
630				},
631    });
632
633    // Callback handler that will be called on success
634    request.done(function (response, textStatus, jqXHR){
635			if(response.next_result!==1)
636			{
637				nextarrow.hide();
638			}
639			else
640			{
641				nextarrow.show();
642			}
643			if(response.previous_result!==1)
644			{
645				prevarrow.hide();
646			}
647			else
648			{
649				prevarrow.show();
650			}
651			window.history.replaceState({href: target_url}, '', target_url);
652			$('.today-btn').removeClass('show_month_events');
653			$('.show_month_events').attr('data-arrow', send_date);
654			$('.keyword-search-eventer').attr('data-arrow', send_date);
655			$('.today-btn').addClass('show_month_events');
656			var show_result = '';
657			var monthsshow = '';
658				currmonth.html(response.thismonth);
659				if(response.thisyear!=='')
660				{
661					currmonth.append('<span>'+response.thisyear+'</span>');
662				}
663				prevarrow.attr('data-arrow', response.prevmonth);
664				nextarrow.attr('data-arrow', response.nextmonth);
665				if(response.noresult==1)
666				{
667					show_result += '<div class="noresult-msg">';
668					show_result += '<p>'+response.blank+'</p>';
669					if(response.tabs==='month')
670					{
671						show_result += '<p>'+response.halfyear+'</p>';
672						show_result += '<p>'+response.fullyear+'</p>';
673					}
674					show_result += '</div>';
675				}
676				
677        
678			$.each(response['lidata'], function( key, value ) {
679				var recurring_icon = '';
680				var class_thumb = '';
681				if(value.recurring_icon==="1")
682				{
683					recurring_icon = ' <i class="eventer-icon-refresh"></i>';
684				}
685				var $event_month = '<span class="eventer-event-month">'+value.mon+'</span>';
686				var $event_year = '<span class="eventer-event-year">'+value.year+'</span>';
687				var $event_title = value.title;
688				var $event_time = '<span class="eventer-event-time">'+value.ticon+' '+value.time+'</span>';
689				if(response.layout==="minimal")
690				{
691					show_result += '<li class="eventer-event-item eventer-event-list-item" '+value.borderleft+'>';
692					show_result += '<a href="'+value.eventer_url+'" class="eventer-event-item-link">';
693
694					show_result += '<span class="eventer-event-date">';
695					show_result += '<span><span class="eventer-cell">';
696					show_result += value.da;
697					show_result += 	'<span class="eventer-dater">';
698					show_result += $event_month;
699					
700					show_result += $event_year;
701					show_result += $event_time;
702					show_result += '</span></span></span></span>';
703
704					show_result += '<span class="eventer-event-details">';
705					show_result += $event_title;
706					if(value.venue!=='')
707					{
708						show_result += '<span class="eventer-event-venue"> '+value.venue+'</span>';
709					}
710					show_result += '</span>';
711					show_result += '</a></li>';
712				}
713				else
714				{
715					if(value.image_url)
716					{
717						class_thumb = 'eventer-event-list-item-wi';
718					}
719					show_result += '<li class="eventer-event-item eventer-event-list-item '+class_thumb+'">';
720					show_result += '<a href="'+value.eventer_url+'" class="eventer-event-item-link">';
721					show_result += '<span class="eventer-event-date" '+value.bordertop+'>';
722					show_result += value.da;
723					if(value.multidays==='')
724					{
725						show_result += '<span class="eventer-event-month">'+$event_month+'</span>';
726					}
727					show_result += '<span class="eventer-event-year">'+$event_year+'</span>';
728					show_result += '</span>';
729					show_result += '<span class="eventer-event-details">';
730					if(value.image_url)
731					{
732						show_result += '<img class="eventer-event-image" src="'+value.image_url+'">';
733					}
734					show_result += '<span class="eventer-event-details-side">';
735					show_result += $event_time;
736					show_result += $event_title;
737					if(value.venue!='')
738					{
739						show_result += '<span class="eventer-event-venue"><i class="eventer-icon-location-pin"  style="color:'+value.color+'"></i> '+value.venue+'</span>';
740					}
741					
742					show_result += '</span>';
743					show_result += '</span>';
744					show_result += '<i class="eventer-icon-arrow-right"></i>';
745					show_result += '</a></li>';
746				}
747				
748			});
749			$(element).find(".monthly-list").empty();
750			$(element).find(".eventer-loader-wrap").hide();
751			$(element).find(".monthly-list").html(show_result);	
752			twelvemonths.empty();
753			$.each(response['monthsgrid'], function(key, value)
754			{
755				monthsshow += '<li data-jump="0" data-arrow="'+value.lival+'" class="show_month_events next-month">'+value.lishow+'</li>';
756			});
757			twelvemonths.html(monthsshow);
758			$(".eventer-filter-select").slideUp();
759    });
760
761    // Callback handler that will be called on failure
762    request.fail(function (jqXHR, textStatus, errorThrown){
763    });
764	};
765	EVENTER.VALIDATEFORMFIELDS = function(element, counting = '')
766	{
767		
768		var passing = "1";
769		var total_counting = counting;
770		var required = element.attr("data-required");
771			if(required==="1")
772			{
773				var field_type = element.prop("type");
774				if(field_type==="text"||field_type==="textarea"||field_type==="email"||field_type==="number")
775				{
776					if(element.val()==='')
777					{
778						element.addClass("eventer-required-field");
779						passing = "0";
780						total_counting = total_counting+1;
781					}
782					else if(field_type==="email"&&EVENTER.VALIDATEEMAIL(element)==="0")
783					{
784						element.addClass("eventer-required-field");
785						element.closest("form").find(".message").empty();
786						element.closest("form").find(".message").append(element.attr("name")+' <p>
786'+initval.email_msg+'</p>');
787						passing = "0";
788						total_counting = total_counting+1;
789					}
790					else if(field_type==="number"&&!$.isNumeric(element.val()))
791					{
792						element.addClass("eventer-required-field");
793						element.closest("form").find(".message").empty();
794						element.closest("form").find(".message").append(element.attr("name")+' <p>'+initval.number_msg+'</p>');
795						passing = "0";
796						total_counting = total_counting+1;
797					}
798					else
799					{
800						element.removeClass("eventer-required-field");
801						passing = "1";
802					}
803				}
804				else if(field_type==="checkbox"||field_type==="radio")
805				{
806					var fname = element.attr("name");
807					var result = EVENTER.CHECKBOXVALIDATE(fname, element.prop("type"));
808					if(result==="1")
809					{
810						element.closest("label").removeClass("eventer-required-field");
811						passing = "1";
812					}
813					else
814					{
815						element.closest("label").addClass("eventer-required-field");
816						passing = "0";
817						total_counting = total_counting+1;
818					}
819				}
820				else
821				{ 
822					if(element.val()==='')
823					{
824						element.addClass("eventer-required-field");
825						passing = "0";
826						total_counting = total_counting+1;
827					}
828					else
829					{
830						element.removeClass("eventer-required-field");
831						passing = "1";
832						
833					}
834				}
835			}
836			if(counting==='')
837			{
838				return passing;
839			}
840			else
841			{
842				return total_counting;
843			}
844			
845	};
846	
847	EVENTER.GETFILTERDATA = function()
848	{
849		var filters = {};
850			$(".filter_eventers").each(function(){
851				var taxonomy_atts = $(this).attr("data-taxonomy");
852				var filter_ids = [];
853				$(this).find(".activated").each(function(){
854					var term = $(this).attr("data-term");
855					filter_ids.push(term);
856				});
857				filters[taxonomy_atts] = filter_ids;
858			});
859		return filters;
860	};
861	
862	$(document).delegate(".show_month_events", 'click', function(){
863		var target_url = window.location.href;
864		if($(this).hasClass('eventers-filter-check'))
865		{
866			
867		}
868		else
869		{
870			$('.eventer-filter-datewise').val('');
871			target_url = EVENTER.APPENDQUERYURL('efrom', null, target_url);
872			target_url = EVENTER.APPENDQUERYURL('eto', null, target_url);
873		}
874		var arrow_class = "0";
875		var data_jump;
876		
877		var calview = $(this).attr('data-calview');
878		var shortcode_attr = JSON.parse($(this).closest('.eventer-list').find('.shortcode-attrs').text());
879		shortcode_attr.efrom = $('#eventer_from').val();
880		shortcode_attr.eto = $('#eventer_to').val();
881		if (typeof calview !== 'undefined' && calview !== null)
882		{
883			$('.shortcode-attrs').attr('data-status', calview);
884			$('.list_calendar_view').removeClass('active');
885			$('.list_calendar_view').addClass('show_month_events');
886			$(this).addClass('active');
887			$(this).removeClass('show_month_events');
888			target_url = EVENTER.APPENDQUERYURL('calview', $('.shortcode-attrs').attr('data-status'), target_url);
889		}
890		var send_date = $(this).attr("data-arrow");
891		if($(this).hasClass("next-month"))
892		{
893			arrow_class = "1";
894		}
895		target_url = EVENTER.APPENDQUERYURL('jump_date', send_date, target_url);
896		data_jump = $(this).attr("data-jump");
897		if($(this).attr("data-arrowclass")==="2")
898		{
899			arrow_class = "2";
900			if($(this).is(':checked'))
901			{
902				$(this).addClass("activated");
903				$(this).parents("ul").addClass("filter_eventers");
904			}
905			else
906			{
907				$(this).removeClass("activated");
908				if($(this).parents("ul").find('.activated').length === 0)
909				{
910					$(this).parents("ul").removeClass("filter_eventers");
911				}
912			}
913		}
914		var status = $('.shortcode-attrs').attr("data-status");
915		target_url = EVENTER.APPENDQUERYURL('terms_cats', null, target_url);
916		target_url = EVENTER.APPENDQUERYURL('terms_tags', null, target_url);
917		target_url = EVENTER.APPENDQUERYURL('terms_venue', null, target_url);
918		target_url = EVENTER.APPENDQUERYURL('terms_organizer', null, target_url);
919		var filter_data = EVENTER.GETFILTERDATA();
920		$.each(filter_data, function(key, object) {
921			target_url = EVENTER.APPENDQUERYURL(key, object, target_url);
922		});
923		EVENTER.EVENTERAJAXMONTHWISE(shortcode_attr, send_date, arrow_class, $(this).closest('div.eventer-list'), data_jump, target_url, filter_data, status);
924	});
925	
926	$(document).on("change", 'input:radio[name="chosen-payment-option"]', 
927    function(){
928        if (this.checked && this.value === '0') 
929				{
930					$("form#ticket-reg").attr('action', $("#paypal_return").text());
931					$(".offline_message").show();
932					$(".save-registrant").val(initval.proceed_register);
933					$(".save-registrant").attr("data-payment", "");
934					$('form.ticket-reg').find(".message").empty();
935        }
936				else
937				{
938					$("form#ticket-reg").attr('action', initval.paypal_site);
939					$(".offline_message").hide();
940					$(".save-registrant").val(initval.paypal_proceed);
941					$(".save-registrant").attr("data-payment", "1");
942					$('form.ticket-reg').find(".message").empty();
943				}
944    });
945	
946	
947$(document).delegate('.eventer-permission-add-registrants', 'change', function(){
948	if ($(this).is(':checked')) {
949		$(this).closest('.eventer-registrants-row').find('.eventer-removable-field-bypermission').show();
950	}
951	else
952	{
953		$(this).closest('.eventer-registrants-row').find('.eventer-removable-field-bypermission').hide();
954	}
955});
956	
957$(document).delegate('.remove_from_cart_button', 'click', function(){
958	var product = $(this).attr('data-product_id');
959    $("input:checkbox[name='"+product+"']:checked").each(function(){
960    $(this).trigger('change');
961    });
962    $("input:radio[name='"+product+"']:checked").each(function(){
963    $(this).prop('checked',false);
964     $(this).trigger('change');
965    });
966    setTimeout(function(){
967    jQuery(document.body).trigger("update_checkout");
968                $(".showcoupon").click( function() {
969                    $(".checkout_coupon").slideToggle();
970                return false;});
971                }, 500);
972});
973
974	
975	$(document).on('keyup mouseup', ".num-tickets, .eventer-qtyminus, .eventer-qtyplus", function () {
976		var $crow = $(this).closest(".eventer-ticket-type-row");
977		var closest_booking = $(this).closest('.eventer-front-ticket-area-dynamic');
978		//$crow.append(registrant_fields);
979		var remaining_tickets = $crow.find('.remaining-ticket').text();
980		var set_remaining = (remaining_tickets>=10)?10:remaining_tickets;
981		var price = $crow.find(".price-ticket").attr('data-tprice');
982		var number = parseInt($crow.find(".num-tickets").val());
983		var calculation;
984		var have_ticket;
985		if($(this).val()==='-' || $(this).val()==='+')
986		{
987			if (!isNaN(number) ) 
988			{
989				if($(this).val()==='-' && number > 0)
990				{
991					calculation = $crow.find('.num-tickets').val(number - 1);
992				}
993				else if($(this).val()==='+')
994				{
995					calculation = $crow.find('.num-tickets').val(number + 1);
996					if($crow.find('.num-tickets').val()>set_remaining)
997					{
998						$crow.find('.num-tickets').val(set_remaining);
999						//calculation = 10;
1000					}
1001				}
1002			} 
1003			else 
1004			{
1005				calculation = $crow.find('.num-tickets').val(0);
1006			}
1007		}
1008		var total_tickets = $crow.find(".num-tickets").val();
1009		if(total_tickets>set_remaining)
1010		{
1011			$crow.find(".num-tickets").val(set_remaining);
1012		}
1013		var new_total_tickets = $crow.find(".num-tickets").val();
1014		var registrants_fields_set = '';
1015		var registrants_boxes = $crow.find('.eventer-registrants-row').length;
1016		var registrants_boxes_ind = $crow.find('.eventer-registrants-row').find('.eventer-registrants-list').length;
1017		var registrant1_name = $(closest_booking).find('#reg_name').val();
1018		var registrant1_email = $(closest_booking).find('#reg_email').val();
1019		var checked_row_permission_field = 1;
1020		var eventer_allowed_registrants_details = 1;
1021		for (var i = registrants_boxes_ind; i < new_total_tickets; i++)
1022		{
1023			var registrant_fields = '';
1024			
1025			if($crow.find('.default-registrant').length<=0 && $(closest_booking).find('.default-registrant').length>0)
1026			{
1027				checked_row_permission_field = 0;
1028			}
1029			var permission_switch_added = $crow.find('.eventer-registrants-field-permission').length;
1030			var first_switch = 0;
1031			
1032			if(i===checked_row_permission_field && initval.mandatory_registrants!=='on')
1033			{
1034				first_switch = 1;
1035				registrant_fields += '<div class="eventer-col10 eventer-registrants-field-permission"><label class="eventer-checkbox"><input class="eventer-permission-add-registrants" checked type="checkbox"> '+initval.individual_label+'</label></div>';
1036			}
1037			var name_Series = (i+1);
1038			var registrants_field_class = (permission_switch_added>0 || first_switch!==0)?'eventer-removable-field-bypermission':'';
1039			registrant_fields += '<div class="eventer-registrants-list '+registrants_field_class+'"><div class="eventer-col5 eventer-col10-xs"><label>'+initval.registrant_label+' '+name_Series+'</label><input data-required="1" class="registrant-fields eventer_registrant_name" placeholder="'+initval.registrant_name+'" name="'+initval.registrant_name_label+i+'" type="text"></div><div class="eventer-col5 eventer-col10-xs"><label>&nbsp;</label><input data-required="1" class="registrant-fields eventer_registrant_email" placeholder="'+initval.registrant_email+'" name="'+initval.registrant_email_label+i+'" type="email"></div></div>';
1040			
1041			registrants_fields_set += registrant_fields;
1042		} 
1043		var has_checkbox = $crow.find('.eventer-permission-add-registrants').length;
1044      eventer_allowed_registrants_details = (has_checkbox>0)?$crow.find('.eventer-permission-add-registrants:checked').length:eventer_allowed_registrants_details;
1045      if(initval.individual_reg==='1')
1046      {
1047         if(registrants_boxes>0 && new_total_tickets>=registrants_boxes_ind)
1048         {
1049            $crow.find('.eventer-registrants-row').append(registrants_fields_set);
1050         }
1051         else if(registrants_boxes>0 && new_total_tickets<=registrants_boxes_ind && new_total_tickets!=='0')
1052         {
1053            var less_fields = (registrants_boxes_ind-new_total_tickets);
1054            $crow.find('.eventer-registrants-row > .eventer-registrants-list').slice(-less_fields).remove();
1055         }
1056         else
1057         {
1058            $crow.find('.eventer-registrants-row').remove();
1059            $crow.append('<div class="eventer-row eventer-registrants-row" data-ticket="'+$crow.find('.name-ticket').text()+'">'+registrants_fields_set+'</div>');
1060         }
1061         /*Starting Code to show hide registrant name & email field*/
1062         if(eventer_allowed_registrants_details!==1)
1063         {
1064            $crow.find('.eventer-registrants-row').find('.eventer-removable-field-bypermission').hide();
1065         }
1066         else
1067         {
1068            $crow.find('.eventer-registrants-row').find('.eventer-removable-field-bypermission').show();
1069         }
1070         /*Ending Code to show hide registrant name & email field*/
1071         var removable_rows = $crow.find('.eventer-removable-field-bypermission').length; 
1072			if(removable_rows<=0)
1073			{
1074				$crow.find('.eventer-registrants-field-permission').remove();
1075			}
1076			if($(closest_booking).find('.default-registrant').length===0)
1077			{
1078				$(closest_booking).find(".eventer-registrants-list:first").find('.eventer_registrant_name').addClass('default-registrant');
1079				$(closest_booking).find(".eventer-registrants-list:first").find('.eventer_registrant_name').val(registrant1_name);
1080				$(closest_booking).find(".eventer-registrants-list:first").find('.eventer_registrant_email').val(registrant1_email);
1081			}
1082			
1083		}
1084		
1085		
1086		
1087		number = parseInt($crow.find(".num-tickets").val());
1088		if(($.isNumeric(number)&&$.isNumeric(price))||number==='')
1089		{
1090			if(number==='')
1091			{
1092				number = 0;
1093			}
1094			var $ticket_counted_price = price*number;
1095			var set_price_individual = (initval.curr_position==="postfix")?$ticket_counted_price+initval.curr:initval.curr+$ticket_counted_price;
1096			$crow.find(".total-price").text(set_price_individual);
1097			$crow.find(".total-price").attr('data-mprice', $ticket_counted_price);
1098		}
1099		var total_price_ticket = 0;
1100		$(closest_booking).find(".total-price").each(function(){
1101			var $one_price = ($(this).attr("data-mprice")!=='')?$(this).attr("data-mprice"):0;
1102			total_price_ticket = total_price_ticket+parseInt($one_price);
1103		});
1104		var set_price = (initval.curr_position==="postfix")?total_price_ticket+initval.curr:initval.curr+total_price_ticket;
1105		$(closest_booking).find(".eventer-ticket-price-total").text(set_price);
1106		$(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice', total_price_ticket);
1107		$(closest_booking).find(".num-tickets").each(function(){
1108			if($(this).val()!=='0')
1109			{
1110				have_ticket = 1;
1111			}
1112		});
1113		if(total_price_ticket>0)
1114		{
1115			$(closest_booking).find('.save-registrant').prop('disabled', false); 
1116			$(closest_booking).find('.add_services_btn').removeClass('disableClick'); 
1117			$(closest_booking).find("form#ticket-reg").attr('action', initval.paypal_site);
1118			$(closest_booking).find(".payment-options-area").show();
1119			$(closest_booking).find(".offline_message").hide();
1120			$(closest_booking).find(".save-registrant").val(initval.paypal_proceed);
1121			$(closest_booking).find(".save-registrant").attr("data-payment", "1");
1122			$(closest_booking).find('form.ticket-reg').find(".message").empty();
1123			if(initval.offline_switch!=="1" && initval.woo_payment_switch!=='on')
1124			{
1125				$(closest_booking).find(".chosen-payment-option").prop("checked", true);
1126			}
1127			else
1128			{
1129				$(closest_booking).find("input[name=chosen-payment-option][value='0']").prop("checked",true);
1130				$(closest_booking).find(".offline_message").show();
1131				$(closest_booking).find(".save-registrant").val(initval.proceed_register);
1132				$(closest_booking).find(".save-registrant").attr("data-payment", "");
1133				$(closest_booking).find('form.ticket-reg').find(".message").empty();
1134				$(closest_booking).find("form#ticket-reg").attr('action', $(closest_booking).find("#paypal_return").text());
1135			}
1136		}
1137		else if(have_ticket===1)
1138		{ 
1139			$(closest_booking).find('.save-registrant').prop('disabled', false);
1140			$(closest_booking).find('.add_services_btn').removeClass('disableClick'); 
1141			$(closest_booking).find("form#ticket-reg").attr('action', $(closest_booking).find("#paypal_return").text());
1142			$(closest_booking).find(".payment-options-area").hide();
1143			$(closest_booking).find(".offline_message").hide();
1144			$(closest_booking).find(".save-registrant").val(initval.proceed_register);
1145			$(closest_booking).find(".save-registrant").attr("data-payment", "");
1146			$(closest_booking).find('form.ticket-reg').find(".message").empty();
1147		}
1148		else
1149		{ 
1150			$(closest_booking).find('.save-registrant').prop('disabled', true); 
1151			$(closest_booking).find('.add_services_btn').addClass('disableClick'); 
1152			$(closest_booking).find("form#ticket-reg").attr('action', $(closest_booking).find("#paypal_return").text());
1153			$(closest_booking).find(".payment-options-area").hide();
1154			$(closest_booking).find(".offline_message").show();
1155			$(closest_booking).find(".save-registrant").val(initval.proceed_register);
1156			$(closest_booking).find(".save-registrant").attr("data-payment", "");
1157			$(closest_booking).find('form.ticket-reg').find(".message").empty();
1158		}
1159	});
1160	
1161	$('.add_services_btn').click(function(){
1162        var closest_booking = $(this).closest('.eventer-front-ticket-area-dynamic');
1163		if ($(closest_booking).find(".restrict-service").length && !$(closest_booking).find('.restrict-service-field').is(':checked'))
1164		{
1165			$(closest_booking).find('.save-registrant').prop('disabled', true); 
1166		}
1167	});
1168	//Code for additional services select field
1169	//Start
1170	$(".add_services").on('change', function () {
1171        var closest_booking = $(this).closest('.eventer-front-ticket-area-dynamic');
1172		var have_ticket;
1173		$(closest_booking).find(".num-tickets").each(function(){
1174			if($(this).val()!=='0')
1175			{
1176				have_ticket = 1;
1177			}
1178		});
1179		var $crow = $(this).closest(".eventer-ticket-type-row");
1180		var clist = $(this).closest("li");
1181		var price = clist.attr('data-tprice');
1182		var total_price_services = 0;
1183		var check_status;
1184		var total_price_ticket = 0;
1185		if ($(this).is(':radio')) {
1186    	$crow.find(".price-ticket").attr('data-mprice', 0);
1187    }
1188		if($(this).is(':checked'))
1189		{
1190			clist.attr('data-mprice', price);
1191			check_status = "1";
1192		}
1193		else
1194		{
1195			clist.attr('data-mprice', 0);
1196			check_status = "0";
1197		}
1198		if ($(closest_booking).find(".restrict-service").length && !$(closest_booking).find('.restrict-service-field').is(':checked'))
1199		{
1200			check_status = "2";
1201		}
1202		else
1203		{
1204			check_status = "1";
1205		}
1206		$crow.find(".price-ticket").each(function(){
1207			var service_price = ($(this).attr("data-mprice")!=='')?$(this).attr("data-mprice"):0;
1208			total_price_services = total_price_services+parseInt(service_price);
1209		});
1210		var set_price_individual_service = (initval.curr_position==="postfix")?total_price_services+initval.curr:initval.curr+total_price_services;
1211		$crow.find(".total-price").text(set_price_individual_service);
1212		$crow.find(".total-price").attr('data-mprice', total_price_services);
1213		$(closest_booking).find(".total-price").each(function(){
1214			var $one_price = ($(this).attr("data-mprice")!=='')?$(this).attr("data-mprice"):0;
1215			total_price_ticket = total_price_ticket+parseInt($one_price);
1216		}); 
1217		var set_price = (initval.curr_position==="postfix")?total_price_ticket+initval.curr:initval.curr+total_price_ticket;
1218		$(closest_booking).find(".eventer-ticket-price-total").text(set_price);
1219		$(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice', total_price_ticket);
1220		$(closest_booking).find(".payment-options-area").hide(); print_r(total_price_ticket);
1221		if(total_price_ticket>0)
1222		{
1223			$(closest_booking).find('.save-registrant').prop('disabled', false); 
1224			$(closest_booking).find('.add_services_btn').removeClass('disableClick');
1225			if(check_status==="2")
1226			{
1227				$(closest_booking).find('.save-registrant').prop('disabled', true); 
1228				$(closest_booking).find('.add_services_btn').removeClass('disableClick'); 
1229			}
1230			$(closest_booking).find("form#ticket-reg").attr('action', initval.paypal_site);
1231				$(closest_booking).find(".payment-options-area").show();
1232				$(closest_booking).find(".offline_message").hide();
1233				$(closest_booking).find(".save-registrant").val(initval.paypal_proceed);
1234				$(closest_booking).find(".save-registrant").attr("data-payment", "1");
1235				$(closest_booking).find('form.ticket-reg').find(".message").empty();
1236				if(initval.offline_switch!=="1" && initval.woo_payment_switch!=='on')
1237				{
1238					$(closest_booking).find(".chosen-payment-option").prop("checked", true);
1239				}
1240				else
1241				{
1242					$(closest_booking).find("input[name=chosen-payment-option][value='0']").prop("checked",true);
1243					$(closest_booking).find(".offline_message").show();
1244					$(closest_booking).find(".save-registrant").val(initval.proceed_register);
1245					$(closest_booking).find(".save-registrant").attr("data-payment", "");
1246					$(closest_booking).find('form.ticket-reg').find(".message").empty();
1247					$(closest_booking).find("form#ticket-reg").attr('action', $("#paypal_return").text());
1248				}
1249		}
1250		else if(have_ticket===1 && check_status!=="2")
1251		{
1252			$(closest_booking).find('.save-registrant').prop('disabled', false);
1253			$(closest_booking).find('.add_services_btn').removeClass('disableClick'); 
1254		}
1255		else
1256		{
1257			$(closest_booking).find('.save-registrant').prop('disabled', true); 
1258			$(closest_booking).find('.add_services_btn').removeClass('disableClick'); 
1259		}
1260	});
1261	//End
1262	
1263	/*$('.eventer-woo-checkout-process-form').on('submit', function(e){
1264		var woo_validation = 0;
1265		var validated = "1";
1266		$(this).find('.eventer-woo-checkout-form, .woocommerce-form__input').each(function(){
1267			$(this).attr('data-required', "1");
1268			woo_validation = EVENTER.VALIDATEFORMFIELDS($(this), woo_validation);
1269		});
1270		if(woo_validation>0)
1271		{
1272			e.preventDefault();
1273			return false;
1274		}
1275	});*/
1276	
1277	$(document).on('submit', 'form.ticket-reg', function (e) {
1278		var booking_type = $(this).attr('data-booking');
1279        var closest_booking = $(this).closest('.eventer-front-ticket-area-dynamic'); console.log($(this));
1280		var booking_nonce = $(this).attr('data-nonce');
1281		$('.eventer-removable-field-bypermission').each(function(){
1282			if($(this).css('visibility') == 'hidden' || $(this).css('display') == 'none'){
1283				$(this).remove();
1284			}
1285		});
1286		if($(this).hasClass("eventer-direct-register") || initval.mandatory_registrants==='on')
1287		{
1288			var validated = "1";
1289		$(closest_booking).find('form.ticket-reg *').filter(':input').each(function(){
1290			var passing = EVENTER.VALIDATEFORMFIELDS($(this));
1291			if(passing!=="1")
1292			{
1293				validated = "0";
1294			}
1295		});
1296		if(validated!=="1")
1297		{
1298			return false;
1299		}
1300		}
1301		var form_element = $(this);
1302		var total_price_ticket = $(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice');
1303		var $all_fields = $(this).find(':input').not('.registrant-fields').serializeArray();
1304		var all_registrants_list = {};
1305		$(closest_booking).find('.eventer-registrants-row').each(function(){
1306			var ticket_name_reg = $(this).attr('data-ticket');
1307			var registrants_list = [];
1308			$(this).find('.eventer-registrants-list').each(function(){
1309				var registrants_field_list = {};
1310				var registrant_name = $(this).find('.eventer_registrant_name').val();
1311				var registrant_email = $(this).find('.eventer_registrant_email').val();
1312				if(registrant_name==='') return true;
1313				registrants_field_list.name = registrant_name;
1314				registrants_field_list.email = registrant_email;
1315				registrants_list.push(registrants_field_list);
1316			});
1317			all_registrants_list[ticket_name_reg] = registrants_list;
1318		});
1319		
1320		var registration;
1321		var Tickets = [];
1322		var Ticket_Validation = [];
1323		var service = [];
1324		$(closest_booking).find('.services-section').each(function(){
1325			var pid = $(this).closest('.eventer-ticket-type-row').attr('data-pid');
1326			var cost = $(this).closest('.eventer-ticket-type-row').find('.total-price').attr('data-mprice');
1327			var services = {};
1328			var service_vals = '';
1329			services.name = $(this).closest('.eventer-ticket-type-row').find('.name-ticket').text();
1330			$(this).find('.add_services').each(function(){
1331				if($(this).is(':checked'))
1332				{
1333					service_vals += $(this).val()+', ';
1334				}
1335			});
1336			services.value = service_vals;
1337			services.pid = pid;
1338			services.cost = cost;
1339			service.push(services);
1340		});
1341		$(closest_booking).find(".num-tickets").each(function(){
1342			
1343				var $crow = $(this).closest(".eventer-ticket-type-row");
1344				var data = {};
1345				var ticket_price = '0';
1346				var ticket_name_new = $crow.find(".name-ticket").text();
1347				if($(this).val()!=='')
1348				{
1349					ticket_price = $crow.find(".price-ticket").attr('data-tprice');
1350					Ticket_Validation.push(data);
1351				}
1352				if(ticket_name_new!=='')
1353				{
1354					data.name = $crow.find(".name-ticket").text();
1355					data.number = $crow.find(".num-tickets").val();
1356					data.pid = $crow.find('.eventer-row').attr('data-pid');
1357					data.price = ticket_price;
1358					Tickets.push(data);
1359				}
1360				
1361		});
1362		if(Ticket_Validation.length === 0) 
1363		{
1364			$(closest_booking).find('form.ticket-reg').find(".message").empty();
1365			$(closest_booking).find('form.ticket-reg').find(".message").html(initval.blank_tickets);
1366			e.preventDefault();
1367			return false;
1368		}
1369		else if($(closest_booking).find('input:radio:checked').length <= 0 && total_price_ticket>0 && booking_type!='woo')
1370		{
1371			$(closest_booking).find('form.ticket-reg').find(".message").empty();
1372			$(closest_booking).find('form.ticket-reg').find(".message").html(initval.blank_payment);
1373			e.preventDefault();
1374			return false;
1375		}
1376		else
1377		{
1378			$(closest_booking).find('form.ticket-reg').find(".message").empty();
1379			if(initval.offline_switch!=="1")
1380			{
1381				$(closest_booking).find(".chosen-payment-option").prop("checked", true);
1382			}
1383		}
1384		var paypal_arguments = '';
1385		if($(closest_booking).find("form#ticket-reg").attr("action").indexOf("paypal") > -1)
1386		{
1387			paypal_arguments = '<input type="hidden" name="business" value="'+initval.paypal_email+'">';
1388			paypal_arguments +=	'<input type="hidden" name="cmd" value="_xclick">';
1389			paypal_arguments +=	'<input type="hidden" name="on0" value="">';
1390			paypal_arguments +=	'<input type="hidden" name="on1" value="'+$(closest_booking).find("#reg_email").val()+'">';
1391			paypal_arguments +=	'<input type="hidden" name="item_name" value="'+$(closest_booking).find("#paypal_itemname").text()+'">';
1392			paypal_arguments +=	'<input type="hidden" name="item_number" value="'+$(closest_booking).find("#eventer_id").text()+'">';
1393			paypal_arguments +=	'<input type="hidden" name="amount" value="'+$(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice')+'">';
1394			paypal_arguments +=	'<input type="hidden" name="currency_code" value="'+initval.paypal_curr+'">';
1395			paypal_arguments +=	'<input type="hidden" name="cancel_return" value="'+$("#paypal_return").text()+'">';
1396			paypal_arguments +=	'<input type="hidden" name="return" value="'+$(closest_booking).find("#paypal_return").text()+'">';
1397			$(closest_booking).find(".save-registrant").before(paypal_arguments);
1398		}
1399		else
1400		{
1401			//$(this).find("input:hidden").remove();
1402		}
1403		if ($(closest_booking).find('#register-reg').is(":checked"))
1404		{
1405			registration = 1;
1406		}
1407		var amount = parseInt($(closest_booking).find(".eventer-ticket-price-total").attr('data-fprice'));
1408		var request = $.ajax({
1409			url: initval.ajax_url,
1410			type: "post",
1411			//dataType:'json',
1412			//async: false,
1413        data : {
1414				action : 'eventer_registrant_tickets',
1415				reg_data: $all_fields,
1416				eventer_id: $(closest_booking).find("#eventer_id").text(),
1417				amount: amount,
1418				reg_mail: $(closest_booking).find("#reg_email").val(),
1419				reg_name: $(closest_booking).find("#reg_name").val(),
1420				reg_event_date: $(closest_booking).find("#reg_event_date").text(),
1421				tickets: Tickets,
1422				registration: registration,
1423				services: service,
1424				registrants: all_registrants_list,
1425				book_type: booking_type,
1426				//nonce: booking_nonce,
1427				},
1428				beforeSend: function( jqXhr ) {
1429					$('body').addClass('woocommerce-checkout');
1430					jqXhr.setRequestHeader('X-WP-Nonce', booking_nonce);
1431					form_element.find("input[type=submit]").prop('disabled', true); 
1432					form_element.find('.eventer-loader-wrap').show();
1433  			},
1434    });
1435		request.done(function (response){
1436			if(response)
1437			{ console.log(closest_booking);
1438				var form_action = $(closest_booking).find("form.ticket-reg").attr("action");
1439				if(form_action.indexOf("paypal") <= -1) 
1440				{
1441					var newformaction = EVENTER.APPENDQUERYURL('reg', response, form_action);
1442					form_action = newformaction;
1443					$(closest_booking).find("form.ticket-reg").attr("action", form_action);
1444					
1445				}
1446				var paypal_return = $(closest_booking).find("#paypal_return").text();
1447				var new_paypal_return = EVENTER.APPENDQUERYURL('reg', response, paypal_return);
1448				$(closest_booking).find("input[name=return]").val(new_paypal_return);
1449				$(closest_booking).find("input[name=on0]").val(response);
1450			}
1451			form_element.find("input[type=submit]").prop('disabled', false); 
1452			form_element.find('.eventer-loader-wrap').hide();
1453			
1454			if(booking_type==='woo')
1455			{
1456				$(closest_booking).find('.eventer_dynamic_checkout_payment').remove();
1457				//$( document.body ).trigger( 'wc_fragment_refresh' );
1458				form_element.closest('#eventer-ticket-form').find('.eventer-order-summary-added').remove();
1459				$('<div class="eventer-order-summary-added widget woocommerce widget_shopping_cart">'+response+'</div>').insertBefore(closest_booking.find('.eventer-woo-checkout-section'));
1460				$(closest_booking).find('form.ticket-reg').find(".message").empty();
1461				$(closest_booking).find('form.ticket-reg').find(".message").html(initval.tickets_added);
1462				$(closest_booking).find(".eventer-show-order-summary").trigger("click");
1463				$(closest_booking).find('form.ticket-reg').find(".message").empty();
1464				
1465				var payment_options = closest_booking.find('.eventer_dynamic_checkout_payment');
1466				closest_booking.find('.eventer_checkout_payment_options').empty();
1467				closest_booking.find('.eventer_checkout_payment_options').html(payment_options);
1468				//form_element.find('.eventer-show-order-summary').show();
1469				//jQuery(document.body).trigger("update_checkout");
1470				$(closest_booking).find(".showcoupon").click( function() {
1471                    $(closest_booking).find(".checkout_coupon").slideToggle();
1472                return false;});
1473				$(closest_booking).find(".showlogin").click( function() {
1474                    $(closest_booking).find(".woocommerce-form-login").slideToggle();
1475                return false;});
1476				form_element.find('.eventer_dynamic_checkout_payment').show();
1477				e.preventDefault();
1478			}
1479			else
1480			{
1481                $(closest_booking).find( "form.ticket-reg" ).addClass( "new-ticket-reg" );
1482				$(closest_booking).find( "form.ticket-reg" ).removeClass( "ticket-reg" );
1483				$(closest_booking).find('form.new-ticket-reg').submit();
1484			}
1485		});
1486		request.fail(function (jqXHR, textStatus, errorThrown){ 
1487			alert(errorThrown);
1488    });
1489		return false;
1490	});
1491	$(document).on("click", ".validate-registrant", function(e){
1492		e.preventDefault();
1493		var validated = "1";
1494        var closest_booking = $(this).closest('.eventer-front-ticket-area-dynamic');
1495		$(closest_booking).find('form.ticket-reg *').filter(':input').each(function(){
1496			var passing = EVENTER.VALIDATEFORMFIELDS($(this));
1497			if(passing!=="1")
1498			{
1499				validated = "0";
1500			}
1501		});
1502		if(validated!=="1")
1503		{
1504			return false;
1505		}
1506		$(closest_booking).find('.restricted-row').each(function(){
1507			var ticket_cookie = $(this).attr('data-booked');
1508			if(ticket_cookie!=="")
1509			{
1510				$(this).find('.num-tickets').prop('disabled', true);
1511				$(this).find('.eventer-qtyplus').prop('disabled', true);
1512				$(this).find('.eventer-qtyminus').prop('disabled', true);
1513				$(this).find('.eventer-restricted-msg').show();
1514			}
1515			else
1516			{
1517				$(this).find('.num-tickets').prop('disabled', false);
1518				$(this).find('.eventer-qtyplus').prop('disabled', false);
1519				$(this).find('.eventer-qtyminus').prop('disabled', false);
1520				$(this).find('.eventer-restricted-msg').hide();
1521			}
1522		});
1523		$(closest_booking).find("#fname").removeClass("eventer-input-error");
1524		$(closest_booking).find("#reg_email").removeClass("eventer-input-error");
1525		$(closest_booking).find('form.ticket-reg').find(".message").empty();
1526		var targetIn = $(this).attr('data-eventer-toggle-in');
1527		var targetOut = $(this).attr('data-eventer-toggle-out');
1528		$(this).parents('.eventer-toggle-area').find(targetOut).slideUp('fast');
1529		$(this).parents('.eventer-toggle-area').find(targetIn).slideDown('slow');
1530	});
1531	
1532	$("form.organizer-contact").on("submit", function(e){
1533		var form_element = $(this);
1534		var validated = "1";
1535		$(this).closest("form").find(".message").empty();
1536		var all_fields = $(this).serializeArray();
1537		var eventer_id = $(".organizer-details").text();
1538		var eventer_date = $(".eventer-date").text();
1539		$('form.organizer-contact *').filter(':input').each(function(){
1540			var passing = EVENTER.VALIDATEFORMFIELDS($(this));
1541			if(passing!=="1")
1542			{
1543				validated = "0";
1544			}
1545		});
1546		if(validated!=="1")
1547		{
1548			return false;
1549		}
1550			
1551		var request = $.ajax({
1552        url: initval.ajax_url,
1553        type: "post",
1554				//dataType:'json',
1555				async: false,
1556        data : {
1557				action : 'eventer_contact_organizer',
1558				org_data: all_fields,
1559				eventer_id: eventer_id,
1560				eventer_date: eventer_date,
1561				nonce: initval.organizer_contact,
1562				},
1563				beforeSend: function( xhr ) {
1564    			form_element.find("input[type=submit]").prop('disabled', true); 
1565  			},
1566    });
1567		request.done(function (response){
1568			form_element.find("input[type=submit]").prop('disabled', false); 
1569			form_element.find(".message").html(initval.contact_manager_text);
1570			$('#eventer-contact-form').slideUp(1500);
1571		});
1572		request.fail(function (jqXHR, textStatus, errorThrown){ 
1573			alert(errorThrown);
1574    });
1575		e.preventDefault();
1576	});
1577	    
1578	 
1579	 
1580	 
1581	 /*
1582	  *$('.eventer-fn-field').each(function(){
1583        $(this).append('<div class="eventer-fn-actions"><a href="#" class="eventer-fn-act-required" title="Mark as Required">*</a><a href="#" class="eventer-fn-act-disable" title="Disable Field"><i class="eventer-icon-eye"></i></a></div>');
1584 
1585    });
1586    */
1587	 
1588	 // Disable click on expandable event details in compact list
1589	$('.eventer-list-accordion .eventer-event-item-link').on('click',function(){
1590		$(this).parents('.eventer-event-list-item').find('.eventer-front-expandable-details').slideToggle();
1591		return false;
1592	});
1593});

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.