PageSourceSearch

https://skydiveelsinore.com/wp-content/plugins/quick-facebook-even…/assets/js/quick-facebook-events.js?ver=1.0

js skydiveelsinore.com collected 2026-09-26 18:41:35 UTC 24,652 bytes, 593 lines download raw bytes

1(function ($) {
2    'use strict';
3    
4	// Global events variables
5	var quick_facebook_events = [];
6	var quick_facebook_events_r = [];
7
8	// Global time variables
9	var f_today = new Date();
10	var f_today_date_g 	= f_today.getDate();
11	var f_today_month_g = f_today.getMonth() + 1;
12	var f_today_year_g 	= f_today.getFullYear();
13
14	// Global variables
15	var f_order_num = 0;
16	var f_word_month = new Array(quick_facebook_events_vars.m_1, quick_facebook_events_vars.m_2, quick_facebook_events_vars.m_3, quick_facebook_events_vars.m_4, quick_facebook_events_vars.m_5, quick_facebook_events_vars.m_6, quick_facebook_events_vars.m_7, quick_facebook_events_vars.m_8, quick_facebook_events_vars.m_9, quick_facebook_events_vars.m_10, quick_facebook_events_vars.m_11, quick_facebook_events_vars.m_12);
17	
18	// Short title
19	function shortFacebookTitle(text, num) {
20		if(text) {
21			// Get num of word
22			var text_array = text.split(' ');
23			if (text_array.length > num) {
24				return text_array.slice(0, num).join(' ') + ' ...';
25			}
26			return text;
27		}
28		return '';
29	}
30
31	// Sort events by date order
32	function sortFacebookEventsByDate(a,b) {
33		if (a.date < b.date) {
34			return -1;
35		} else if (a.date > b.date) {
36			return 1;
37		} else {
38			return 0;
39		}
40	}
41
42	// Sort events by upcoming order
43	function sortFacebookEventsByUpcoming(a,b) {
44		var today_date = new Date(f_today_year_g, f_today_month_g - 1, f_today_date_g);
45		if (Math.abs(a.date - today_date.getTime()) < Math.abs(b.date - today_date.getTime())) {
46			return -1;
47		} else if (Math.abs(a.date - today_date.getTime()) > Math.abs(b.date - today_date.getTime())) {
48			return 1;
49		} else {
50			return 0;
51		}
52	}
53
54	// Get events of day (by time order)
55	function getFacebookDayEventsByTime(quick_facebook_events, type) {
56		var events = [];
57		var today_date = new Date(f_today_year_g, f_today_month_g - 1, f_today_date_g);
58		for (var i = 0; i < quick_facebook_events.length; i++) {
59			if (type == 'upcoming') {
60				if (quick_facebook_events[i].date >= today_date.getTime()) {
61					events.push(quick_facebook_events[i]);
62				}
63			} else {
64				if (quick_facebook_events[i].date < today_date.getTime()) {
65					events.push(quick_facebook_events[i]);
66				}
67			}
68		}
69		return events;
70	}
71
72	// Check day has events or not
73	function dayHasFacebookEvent(quick_facebook_events, day, month, year) {
74		var num_events = 0;
75		var date_check = new Date(year, Number(month) - 1, day);
76		for (var i = 0; i < quick_facebook_events.length; i++) { 
77			var start_date = new Date(quick_facebook_events[i].year, Number(quick_facebook_events[i].month) - 1, quick_facebook_events[i].day); 
78			var end_date = new Date(quick_facebook_events[i].year, Number(quick_facebook_events[i].month) - 1, Number(quick_facebook_events[i].day) + Number(quick_facebook_events[i].duration) - 1);
79			if ((start_date.getTime() <= date_check.getTime()) && (date_check.getTime() <= end_date.getTime())) {
80				num_events++;
81			}
82		}
83		
84		if (num_events == 0) {
85			return false;
86		} else {
87			return true;
88		}
89	}
90
91	// Get order number of event on day
92	function getFacebookEventOrderNumber(quick_facebook_events, id, day, month, year) {
93		var date_check = new Date(year, Number(month) - 1, day);
94		var events = [];
95		for (var i = 0; i < quick_facebook_events.length; i++) {
96			var start_date = new Date(quick_facebook_events[i].year, Number(quick_facebook_events[i].month) - 1, quick_facebook_events[i].day);
97			var end_date = new Date(quick_facebook_events[i].year, Number(quick_facebook_events[i].month) - 1, Number(quick_facebook_events[i].day) + Number(quick_facebook_events[i].duration) - 1);
98			if ((start_date.getTime() <= date_check.getTime()) && (date_check.getTime() <= end_date.getTime())) {
99				var first_day = (start_date.getTime() == date_check.getTime()) ? true : false;
100				var event = {id:quick_facebook_events[i].id, title:quick_facebook_events[i].title, day:quick_facebook_events[i].day, month:quick_facebook_events[i].month, year:quick_facebook_events[i].year, first_day:first_day};
101				events.push(event);
102			}
103		}
104		
105		if (events.length) {
106			if (events[0].id == id) {
107				var num = f_order_num;
108				f_order_num = 0;
109				return num;	
110			} else { 
111				f_order_num++;
112				for (var j = 0; j < events.length; j++) {
113					if (events[j].id == id) {
114						return getFacebookEventOrderNumber(quick_facebook_events, events[j-1].id, events[j-1].day, events[j-1].month, events[j-1].year);
115					}
116				}
117				
118			}
119		}
120		
121		return 0;
122	}
123
124	// Get events of day
125	function getDayFacebookEvents(quick_facebook_events, day, month, year) {
126		var n = 0;
127		var date_check = new Date(year, Number(month) - 1, day);
128		var events = [];
129		for (var i = 0; i < quick_facebook_events.length; i++) {
130			var start_date = new Date(quick_facebook_events[i].year, Number(quick_facebook_events[i].month) - 1, quick_facebook_events[i].day);
131			var end_date = new Date(quick_facebook_events[i].year, Number(quick_facebook_events[i].month) - 1, Number(quick_facebook_events[i].day) + Number(quick_facebook_events[i].duration) - 1);
132			if ((start_date.getTime() <= date_check.getTime()) && (date_check.getTime() <= end_date.getTime())) {
133				var first_day = (start_date.getTime() == date_check.getTime()) ? true : false;
134				var last_day = (end_date.getTime() == date_check.getTime()) ? true : false;
135				var event = {id:quick_facebook_events[i].id, event_id:quick_facebook_events[i].event_id, title:quick_facebook_events[i].title, image:quick_facebook_events[i].image, day:quick_facebook_events[i].day, month:quick_facebook_events[i].month, year:quick_facebook_events[i].year, start_date:quick_facebook_events[i].start_date, end_date:quick_facebook_events[i].end_date, time:quick_facebook_events[i].time, end_time:quick_facebook_events[i].end_time, duration:quick_facebook_events[i].duration, color:quick_facebook_events[i].color, location:quick_facebook_events[i].location, latitude:quick_facebook_events[i].latitude, longitude:quick_facebook_events[i].longitude, description:quick_facebook_events[i].description, first_day:first_day, last_day:last_day};
136				
137				if (!first_day) {
138					n = getFacebookEventOrderNumber(quick_facebook_events, quick_facebook_events[i].id, quick_facebook_events[i].day, quick_facebook_events[i].month, quick_facebook_events[i].year);
139				}
140				
141				events[n] = event;
142				n++;
143			}
144		}
145		
146		return events;
147	}
148
149	// Show events calendar
150	function showFacebookEventsCalendar(el, quick_facebook_events, month_num, year_num, nav_time) {
151		var layout 		= el.parents('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-layout').html();
152		var date_start 	= $('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-start').html();
153
154		if (date_start == 'sunday') { // Start with sunday
155			var word_day = new Array(quick_facebook_events_vars.d_7, quick_facebook_events_vars.d_1, quick_facebook_events_vars.d_2, quick_facebook_events_vars.d_3, quick_facebook_events_vars.d_4, quick_facebook_events_vars.d_5, quick_facebook_events_vars.d_6);
156		} else { // Start with monday
157			var word_day = new Array(quick_facebook_events_vars.d_1, quick_facebook_events_vars.d_2, quick_facebook_events_vars.d_3, quick_facebook_events_vars.d_4, quick_facebook_events_vars.d_5, quick_facebook_events_vars.d_6, quick_facebook_events_vars.d_7);
158		}
159
160		// Automatic switch to compact layout on small sreen
161		layout = (screen.width < 768) ? 'compact' : layout;
162
163		if (nav_time == 'prev-year') {
164			year_num--;
165		} else if (nav_time == 'next-year') {
166			year_num++;
167		} else if (nav_time == 'prev-month') {
168			month_num--;
169		} else if (nav_time == 'next-month') {
170			month_num++;
171		} else if (nav_time == 'current') {
172			month_num = f_today_month_g;
173			year_num = f_today_year_g;
174		}
175
176		if (month_num == 0) {
177			month_num = 12;
178			year_num--;
179		} else if (month_num == 13) {
180			month_num = 1;
181			year_num++;
182		}
183		
184		// Get first day and number days of month
185		var first_date_g = new Date(year_num, month_num - 1, 1);
186		if (date_start == 'sunday') {
187			var first_day_g = first_date_g.getDay() + 1;
188		} else {
189			var first_day_g = (first_date_g.getDay() == 0) ? 7 : first_date_g.getDay();
190		}
191		
192		var last_date_g = new Date(year_num, month_num, 0);
193		var num_days = last_date_g.getDate();
194		
195		// Create calendar
196		var calendar_string = '';
197		var day_counter = 0;
198		
199		calendar_string += 	'<div class="events-calendar ' + layout + '">';
200		calendar_string += 		'<div class="calendar-header">';
201		
202		if (layout == 'full') {
203			calendar_string += 		'<h4 class="current-date">' + f_word_month[month_num - 1] + ' <span>' + year_num + '</span></h4>';
204			calendar_string +=		'<div class="nav-time">';
205			calendar_string += 			'<span id="prev-year" class="btn-change-date">«</span>';
206			calendar_string += 			'<span id="prev-month" class="btn-change-date">‹</span>';
207			calendar_string += 			'<span id="current" class="btn-change-date">' + quick_facebook_events_vars.today + '</span>';
208			calendar_string += 			'<span id="next-month" class="btn-change-date">›</span>';
209			calendar_string += 			'<span id="next-year" class="btn-change-date">»</span>';
210			calendar_string +=		'</div>';
211		} else {
212			calendar_string +=		'<div class="nav-time left">';
213			calendar_string += 			'<span id="prev-year" class="btn-change-date">«</span>';
214			calendar_string += 			'<span id="prev-month" class="btn-change-date">‹</span>';
215			calendar_string +=		'</div>';
216			calendar_string += 		'<h4 class="current-date">' + f_word_month[month_num - 1] + ' <span>' + year_num + '</span></h4>';
217			calendar_string +=		'<div class="nav-time right">';
218			calendar_string += 			'<span id="next-month" class="btn-change-date">›</span>';
219			calendar_string += 			'<span id="next-year" class="btn-change-date">»</span>';
220			calendar_string +=		'</div>';
221		}
222		
223		calendar_string += 		'</div>';
224
225		calendar_string += 		'<table class="calendar-table">';
226		calendar_string += 			'<tbody>';
227				
228		calendar_string += 				'<tr>';
229		for (var m = 0; m < word_day.length; m++) {
230			calendar_string += 				'<th>' + word_day[m].substring(0, 3) + '</th>';
231		}
232		calendar_string += 				'</tr>';
233
234		var this_date = 1;
235		
236		for (var i = 1; i <= 6; i++) {
237			var k = (i - 1) * 7 + 1;
238			if (k < (first_day_g + num_days)) {
239				calendar_string += 		'<tr>';
240				for (var x = 1; x <= 7; x++) {
241					day_counter = (this_date - first_day_g) + 1;
242					this_date++;
243					if ((day_counter > num_days) || (day_counter < 1)) {
244						calendar_string += 	'<td class="calendar-day blank"></td>';
245					} else {			
246						// Weekend
247						var weekend_class = '';
248						if (date_start == 'sunday') {
249							if ((x == 1) || (x == 7)) {
250								weekend_class = ' weekend';
251							}
252						} else {
253							if ((x == 6) || (x == 7)) {
254								weekend_class = ' weekend';
255							}
256						}
257
258						// Today
259						var today_class = '';
260						if ((f_today_date_g == day_counter) && (f_today_month_g == month_num) && (f_today_year_g == year_num)) {
261							today_class = ' today';
262						}
263
264						// Has events
265						var has_events_class = '';
266						if (dayHasFacebookEvent(quick_facebook_events, day_counter, month_num, year_num)) { 
267							has_events_class = ' has-events';
268						}
269
270						calendar_string += 	'<td class="calendar-day' + weekend_class + today_class + has_events_class + '">';
271						calendar_string += 		'<span class="day-num">' + day_counter + '</span>';
272						
273						if (dayHasFacebookEvent(quick_facebook_events, day_counter, month_num, year_num)) { 
274							// Get events of day
275							if (layout == 'full') { // Full layout
276								var events = getDayFacebookEvents(quick_facebook_events, day_counter, month_num, year_num);
277								for (var t = 0; t < events.length; t++) {
278									if (typeof events[t] != "undefined") {
279										var color = events[t].id % 5 + 1;
280										var event_class = '';
281										if (events[t].first_day && !events[t].last_day) {
282											event_class = 'first-day';
283										} else if (events[t].last_day && !events[t].first_day) {
284											event_class = 'last-day';
285										} else if (!events[t].first_day && !events[t].last_day) {
286											event_class = 'middle-day';
287										}
288																				
289										calendar_string += '<div class="event-title ' + event_class + ' color-' + color + '" href="#' + el.attr('id') + '-popup-' + events[t].id + '"><span>' + shortFacebookTitle(events[t].title, 2) + '</span></div>';
290										
291										// ==== Event detail popup ====
292										calendar_string += 	'<div id="' + el.attr('id') + '-popup-' + events[t].id + '" class="event-popup zoom-anim-dialog mfp-hide">'
293																+ '<div class="popup-body">'
294										 							+ showFacebookEventDetail(events[t], date_start)
295										 						+ '</div>'
296										 					+ '</div>';
297									} else {
298										var event_deputize;
299										if (typeof events[t+1] != "undefined") {
300											if (typeof quick_facebook_events[events[t+1].id - 1] != "undefined") { 
301												event_deputize = shortFacebookTitle(quick_facebook_events[events[t+1].id - 1].title, 2);
302											} else {
303												event_deputize = 'hidden';
304											}
305										} else {
306											event_deputize = 'hidden';
307										}
308										calendar_string += '<div class="event-title hidden-title">' + event_deputize + '</div>';
309									}
310								}
311							} else { // Compact layout
312								var events = getDayFacebookEvents(quick_facebook_events, day_counter, month_num, year_num); 
313								for (var t = 0; t < events.length; t++) {
314									if (typeof events[t] != "undefined") {
315										var color = events[t].id % 5 + 1;
316										
317										calendar_string += '<div class="event-mark color-' + color + '" href="#' + el.attr('id') + '-popup-' + events[t].id + '"></div>';					
318										
319										// ==== Event detail popup ====
320										calendar_string += 	'<div id="' + el.attr('id') + '-popup-' + events[t].id + '" class="event-popup zoom-anim-dialog mfp-hide">'
321																+ '<div class="popup-body">'
322										 							+ showFacebookEventDetail(events[t], date_start)
323										 						+ '</div>'
324										 					+ '</div>';
325									}
326								}
327							}
328						}
329						
330						calendar_string += 	'</td>';
331					}
332				}
333				calendar_string += 		'</tr>';
334			}
335		}
336		calendar_string += 			'</tbody>';
337		calendar_string += 		'</table>';
338		calendar_string += 		'<div id="month-num" style="display:none">' + month_num + '</div>';
339		calendar_string += 		'<div id="year-num" style="display:none">' + year_num + '</div>';
340		calendar_string += 	'</div>';
341		
342		// Create calendar
343		el.html(calendar_string);
344
345		// Popup
346		el.find('.event-title').magnificPopup({
347			type: 'inline',
348			removalDelay: 800,
349			mainClass: 'my-mfp-zoom-in'
350		});
351		el.find('.event-mark').magnificPopup({
352			type: 'inline',
353			removalDelay: 800,
354			mainClass: 'my-mfp-zoom-in'
355		});
356	}
357
358	// Show events list
359	function showFacebookEventsList(el, quick_facebook_events) {
360		var view 		= el.parents('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-view').html();
361		var layout 		= el.parents('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-layout').html();
362		
363		var items 		= $('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-items').html();
364		var date_start 	= $('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-start').html();
365		var upcoming 	= $('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-upcoming').html();
366		var show_image 	= ($('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-show-image').html() == 1) ? '' : 'no-image';
367
368		if (date_start == 'sunday') { // Start with sunday
369			var word_day = new Array(quick_facebook_events_vars.d_7, quick_facebook_events_vars.d_1, quick_facebook_events_vars.d_2, quick_facebook_events_vars.d_3, quick_facebook_events_vars.d_4, quick_facebook_events_vars.d_5, quick_facebook_events_vars.d_6);
370		} else { // Start with monday
371			var word_day = new Array(quick_facebook_events_vars.d_1, quick_facebook_events_vars.d_2, quick_facebook_events_vars.d_3, quick_facebook_events_vars.d_4, quick_facebook_events_vars.d_5, quick_facebook_events_vars.d_6, quick_facebook_events_vars.d_7);
372		}
373
374		// Sort event via upcoming
375		var upcoming_events = getFacebookDayEventsByTime(quick_facebook_events, 'upcoming'); 
376		upcoming_events.sort(sortFacebookEventsByUpcoming);
377		var past_events = getFacebookDayEventsByTime(quick_facebook_events, 'past');
378		past_events.sort(sortFacebookEventsByUpcoming); 
379		var quick_list_events = (upcoming == 1) ? upcoming_events : upcoming_events.concat(past_events);
380		quick_list_events = quick_list_events.slice(0, items);
381		
382		// Create events list
383		var events_list = '';
384
385		events_list += 	'<div class="events-list ' + view + ' ' + layout + ' ' + show_image + '">';
386		
387		for (var i = 0; i < quick_list_events.length; i++) {
388			// Start date
389			var event_start_date = quick_list_events[i].start_date;
390			
391			// End date
392			var event_end_date = '';
393			if (quick_list_events[i].duration > 1) {
394				event_end_date = ' - ' + quick_list_events[i].end_date;
395			}
396			
397			// Time
398			var event_time = '';
399			if (quick_list_events[i].time || quick_list_events[i].end_time) {
400				event_time += '<i class="icon-clock"></i>';
401				if (quick_list_events[i].end_time) {
402					event_time += quick_list_events[i].time + ' - ' + quick_list_events[i].end_time;
403				} else {
404					event_time += quick_list_events[i].time;
405				}
406			}
407
408			// Image
409			var event_image = (quick_list_events[i].image) ? '<img src="' + quick_list_events[i].image + '" alt="' + quick_list_events[i].title + '" />' : '';
410			
411			// Location
412			var event_location = (quick_list_events[i].location) ? '<i class="icon-location-pin"></i>' + quick_list_events[i].location : '';
413			
414			// Description
415			var event_description = ((layout == 'compact') || (view == 'grid')) ? shortFacebookTitle(quick_list_events[i].description, 10) : shortFacebookTitle(quick_list_events[i].description, 25);
416			
417			events_list +=	'<div class="event-item-wrap">'	
418								+ '<div class="event-item">'
419									+ '<div class="event-image" href="#' + el.attr('id') + '-popup-' + quick_list_events[i].id + '">' + event_image + '</div>'
420									+ '<div class="event-info">'
421										+ '<div class="event-title" href="#' + el.attr('id') + '-popup-' + quick_list_events[i].id + '">' + quick_list_events[i].title + '</div>'
422										+ '<div class="event-meta">'
423											+ '<div class="event-date"><i class="icon-calendar"></i>' + event_start_date + event_end_date + '</div>'
424											+ '<div class="event-time">' + event_time + '</div>'
425											+ '<div class="event-location">' + event_location + '</div>'
426										+ '</div>'
427										+ '<div class="event-intro">' + event_description + '</div>'
428									+ '</div>'
429								+ '</div>'
430							+ '</div>';
431
432			// ==== Event detail popup ====
433			events_list += 	'<div id="' + el.attr('id') + '-popup-' + quick_list_events[i].id + '" class="event-popup zoom-anim-dialog mfp-hide">'
434								+ '<div class="popup-body">'
435		 							+ showFacebookEventDetail(quick_list_events[i], date_start)
436		 						+ '</div>'
437		 					+ '</div>';
438		}
439
440		events_list += '</div>';
441
442		// Create list
443		el.html(events_list);
444
445		// Popup
446		el.find('.event-image').magnificPopup({
447			type: 'inline',
448			removalDelay: 800,
449			mainClass: 'my-mfp-zoom-in'
450		});
451		el.find('.event-title').magnificPopup({
452			type: 'inline',
453			removalDelay: 800,
454			mainClass: 'my-mfp-zoom-in'
455		});
456	}
457
458	// Show event detail
459	function showFacebookEventDetail(event, date_start) {
460		var show_btn = $('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-show-btn').html();
461		var show_map = $('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-show-map').html();
462
463		var event_string = '';
464
465		if (date_start == 'sunday') { // Start with sunday
466			var word_day = new Array(quick_facebook_events_vars.d_7, quick_facebook_events_vars.d_1, quick_facebook_events_vars.d_2, quick_facebook_events_vars.d_3, quick_facebook_events_vars.d_4, quick_facebook_events_vars.d_5, quick_facebook_events_vars.d_6);
467		} else { // Start with monday
468			var word_day = new Array(quick_facebook_events_vars.d_1, quick_facebook_events_vars.d_2, quick_facebook_events_vars.d_3, quick_facebook_events_vars.d_4, quick_facebook_events_vars.d_5, quick_facebook_events_vars.d_6, quick_facebook_events_vars.d_7);
469		}
470
471		// Start date
472		var event_start_date = event.start_date;
473		
474		// End date
475		var event_end_date = '';
476		if (event.duration > 1) {
477			event_end_date = ' - ' + event.end_date;
478		}
479		
480		// Time
481		var event_time = '';
482		if (event.time || event.end_time) {
483			event_time += '<i class="icon-clock"></i>';
484			if (event.end_time) {
485				event_time += event.time + ' - ' + event.end_time;
486			} else {
487				event_time += event.time;
488			}
489		}
490
491		// Image
492		var event_image = (event.image) ? '<img src="' + event.image + '" alt="' + event.title + '" />' : '';
493		
494		// Location
495		var event_location = (event.location) ? '<i class="icon-location-pin"></i>' + event.location : '';
496
497		// Event button
498		var event_button = (show_btn == 1) ? '<div class="event-link"><a href="https://www.facebook.com/events/' + event.event_id + '" target="_blank"><i class="icon-eye"></i><span>' + quick_facebook_events_vars.view_facebook + '</span></a></div>' : '';
499
500		// Event map
501		var cur_date = new Date();
502		var cur_time = cur_date.getTime();
503		if (event.latitude && event.longitude && (show_map == 1)) {
504			var event_map = '<div class="event-map"><iframe width="100%" height="300px" frameborder="0" src="https://maps.google.com/maps?q=' + event.latitude + ',' + event.longitude + '&hl=es;z=18&amp;output=embed&time=' + cur_time + '"></iframe></div>';
505		} else {
506			var event_map = '';
507		}
508		
509		event_string += '<div class="event-item">'
510							+ '<div class="event-image">' + event_image + '</div>'
511							+ '<div class="event-info">'
512								+ '<div class="event-title">' + event.title + '</div>'
513								+ '<div class="event-meta">'
514									+ '<div class="event-date"><i class="icon-calendar"></i>' + event_start_date + event_end_date + '</div>'
515									+ '<div class="event-time">' + event_time + '</div>'
516									+ '<div class="event-location">' + event_location + '</div>'
517								+ '</div>'
518								+ '<div class="event-intro">' + event.description + '</div>'
519								+ event_button
520								+ event_map
521							+ '</div>'
522						+ '</div>';
523		return event_string;
524	}
525
526	function renderQuickFacebookEvents() {
527		$('.quick-facebook-events').each(function(index) {
528			// Set id for timetable
529			$(this).attr('id', 'quick-facebook-events-' + (index + 1));
530
531			var quick_facebook_events_contain = $(this);
532
533			// Get variables
534			var view = $(this).parents('.quick-facebook-events-wrapper').find('.quick-facebook-events-option-view').html();
535			
536			$.ajax({
537				type: 'POST',
538				url: quick_facebook_events_vars.ajax_url,
539				dataType: 'json',
540				data: {action: 'get_facebook_events'},
541				success: function(data) {
542					quick_facebook_events = [];
543					for (var i = 0; i < data.length; i++) {
544						var event_date = new Date(data[i].year, Number(data[i].month) - 1, data[i].day);
545						data[i].date = event_date.getTime();
546						quick_facebook_events.push(data[i]);
547					}
548
549					// Sort events by date
550					quick_facebook_events.sort(sortFacebookEventsByDate);
551					
552					for (var j = 0; j < quick_facebook_events.length; j++) {
553						quick_facebook_events[j].id = j;
554						if (!quick_facebook_events[j].duration) {
555							quick_facebook_events[j].duration = 1;
556						}
557					}
558
559					quick_facebook_events_r[index+1] = quick_facebook_events;
560					
561					if ((view == 'list') || (view == 'grid')) { // Events List
562						showFacebookEventsList(quick_facebook_events_contain, quick_facebook_events);
563					} else { // Events Calendar
564						showFacebookEventsCalendar(quick_facebook_events_contain, quick_facebook_events, f_today_month_g, f_today_year_g, 'current');
565					}
566				}
567			});
568		});
569	}
570
571	$(document).ready(function(){
572		renderQuickFacebookEvents();
573
574		// Click navigation
575		$('.quick-facebook-events').on('click', '.btn-change-date', function() {
576			var quick_facebook_events_contain = $(this).closest('.quick-facebook-events');
577			
578			var ids = quick_facebook_events_contain.attr('id').split('quick-facebook-events-');
579			var id = ids[1];
580
581			var nav_time = $(this).attr('id');
582			var month_num = quick_facebook_events_contain.find('#month-num').text();
583			var year_num = quick_facebook_events_contain.find('#year-num').text();
584			
585			showFacebookEventsCalendar(quick_facebook_events_contain, quick_facebook_events_r[id], month_num, year_num, nav_time);
586        });
587
588        // On resize window
589		$(window).on('resize', function () {
590			renderQuickFacebookEvents();
591		});
592	});
593})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.