(function( $ ){ $.fn.events_list = function( options ) { // Create some defaults, extending them with any options that were provided var config = $.extend( { 'calendar_id' : 1, 'limit' : 40 }, options); config.events_uri = "http://events.umt.edu/?upcoming=upcoming&format=json&limit="+config.limit+"&calendar_id="+config.calendar_id; var format_date = { get_date:function(date_string, time_string){ var date_parts = date_string.split('-'); var time_parts = time_string.split(':'); var year = date_parts[0]; var month = date_parts[1]-1; // incoming string has months start at 1, javascript months starts at 0 var day = date_parts[2]; var hours = time_parts[0]; var minutes = time_parts[1]; var seconds = time_parts[2].substring(0, 2); var formatted_date = new Date(year, month, day, hours, minutes, seconds); return formatted_date; }, get_date_string:function(date_obj){ try{ return this.get_month_string(date_obj.getMonth())+' '+date_obj.getDate()+', '+date_obj.getFullYear(); } catch(e){ return null; } }, get_time_string:function(date_obj){ try{ var hours = date_obj.getHours()%12; var am_pm = (date_obj.getHours() < 12)?'am':'pm'; var minutes = date_obj.getMinutes(); // return a nice string padded with zeros return ('0'+hours).slice(-2)+':'+('0'+minutes).slice(-2)+' '+am_pm; } catch(e){ return null; } }, get_month_string:function(month){ var month_string = ''; switch(month){ case 0: month_string = 'January'; break; case 1: month_string = 'February'; break; case 2: month_string = 'March'; break; case 3: month_string = 'April'; break; case 4: month_string = 'May'; break; case 5: month_string = 'June'; break; case 6: month_string = 'July'; break; case 7: month_string = 'August'; break; case 8: month_string = 'September'; break; case 9: month_string = 'October'; break; case 10: month_string = 'November'; break; default: month_string = 'December'; break; } return month_string; } } return this.each(function() { var self = this; jQuery.ajax( { success: function(data) { var events = data['Events']['Event']; for(i in events) { if(typeof(events[i].EventTitle) != 'undefined') { var date = format_date.get_date(events[i].DateTime.StartDate, events[i].DateTime.StartTime); var formatted_date = format_date.get_date_string(date); $(self).append($("
")); } } }, url:config.events_uri, dataType:"jsonp" }) .error(function(message){ }); }); }; })( jQuery );