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&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.