1 2 3(function ($) { 4 5 var eCalendar = function (options, object) { 6 // Initializing global variables 7 var adDay = new Date().getDate(); 8 var adMonth = new Date().getMonth(); 9 var adYear = new Date().getFullYear(); 10 var dDay = adDay; 11 var dMonth = adMonth; 12 var dYear = adYear; 13 var instance = object; 14 //console.log("object-> ",object) 15 16 var settings = $.extend({}, $.fn.eCalendar.defaults, options); 17 18 function lpad(value, length, pad) { 19 if (typeof pad == 'undefined') { 20 pad = '0'; 21 } 22 var p; 23 for (var i = 0; i < length; i++) { 24 p += pad; 25 } 26 return (p + value).slice(-length); 27 } 28 29 var mouseOver = function () { 30 $(this).addClass('c-nav-btn-over'); 31 }; 32 var mouseLeave = function () { 33 $(this).removeClass('c-nav-btn-over'); 34 }; 35 var mouseOverEvent = function () { 36 $(this).addClass('c-event-over'); 37 var d = $(this).attr('data-event-day'); 38 $('div.c-event-item[data-event-day="' + d + '"]').addClass('c-event-over'); 39 }; 40 var mouseLeaveEvent = function () { 41 $(this).removeClass('c-event-over') 42 var d = $(this).attr('data-event-day'); 43 $('div.c-event-item[data-event-day="' + d + '"]').removeClass('c-event-over'); 44 }; 45 var mouseOverItem = function () { 46 $(this).addClass('c-event-over'); 47 var d = $(this).attr('data-event-day'); 48 $('div.c-event[data-event-day="' + d + '"]').addClass('c-event-over'); 49 }; 50 var mouseLeaveItem = function () { 51 $(this).removeClass('c-event-over') 52 var d = $(this).attr('data-event-day'); 53 $('div.c-event[data-event-day="' + d + '"]').removeClass('c-event-over'); 54 }; 55 var nextMonth = function () { 56 if (dMonth < 11) { 57 dMonth++; 58 } else { 59 dMonth = 0; 60 dYear++; 61 } 62 print(); 63 }; 64 var previousMonth = function () { 65 if (dMonth > 0) { 66 dMonth--; 67 } else { 68 dMonth = 11; 69 dYear--; 70 } 71 print(); 72 }; 73 74 function loadEvents() { 75 if (typeof settings.url != 'undefined' && settings.url != '') { 76 $.ajax({url: settings.url, 77 async: false, 78 success: function (result) { 79 settings.events = result; 80 } 81 }); 82 } 83 } 84 85 function formatAMPM(date) { 86 87 var hours = date.getHours(); 88 89 var minutes = date.getMinutes(); 90 91 var ampm = hours >= 12 ? 'PM' : 'AM'; 92 93 hours = hours % 12; 94 95 hours = hours ? hours : 12; // the hour '0' should be '12' 96 97 minutes = minutes < 10 ? '0' + minutes : minutes; 98 99 var strTime = hours + ':' + minutes + ' ' + ampm; 100 101 return strTime; 102 103 } 104 105 function print() { 106 loadEvents(); 107 var dWeekDayOfMonthStart = new Date(dYear, dMonth, 1).getDay() - settings.firstDayOfWeek; 108 if (dWeekDayOfMonthStart < 0) { 109 dWeekDayOfMonthStart = 6 - ((dWeekDayOfMonthStart + 1) * -1); 110 } 111 var dLastDayOfMonth = new Date(dYear, dMonth + 1, 0).getDate(); 112 var dLastDayOfPreviousMonth = new Date(dYear, dMonth + 1, 0).getDate() - dWeekDayOfMonthStart + 1; 113 114 var cBody = $('<div/>').addClass('c-grid'); 115 var cEvents = $('<div/>').addClass('c-event-grid'); 116 var cEventsBody = $('<div/>').addClass('c-event-body'); 117 cEvents.append($('<div/>
117').addClass('c-event-title c-pad-top').html(settings.eventTitle)); 118 cEvents.append(cEventsBody); 119 var cNext = $('<div/>').addClass('c-next c-grid-title c-pad-top'); 120 var cMonth = $('<div/>').addClass('c-month c-grid-title c-pad-top'); 121 var cPrevious = $('<div/>').addClass('c-previous c-grid-title c-pad-top'); 122 cPrevious.html(settings.textArrows.previous); 123 cMonth.html(settings.months[dMonth] + ' ' + dYear); 124 cNext.html(settings.textArrows.next); 125 126 cPrevious.on('mouseover', mouseOver).on('mouseleave', mouseLeave).on('click', previousMonth); 127 cNext.on('mouseover', mouseOver).on('mouseleave', mouseLeave).on('click', nextMonth); 128 129 cBody.append(cPrevious); 130 cBody.append(cMonth); 131 cBody.append(cNext); 132 var dayOfWeek = settings.firstDayOfWeek; 133 for (var i = 0; i < 7; i++) { 134 if (dayOfWeek > 6) { 135 dayOfWeek = 0; 136 } 137 var cWeekDay = $('<div/>').addClass('c-week-day c-pad-top'); 138 cWeekDay.html(settings.weekDays[dayOfWeek]); 139 cBody.append(cWeekDay); 140 dayOfWeek++; 141 } 142 var day = 1; 143 var dayOfNextMonth = 1; 144 for (var i = 0; i < 42; i++) { 145 var cDay = $('<div/>'); 146 if (i < dWeekDayOfMonthStart) { 147 cDay.addClass('c-day-previous-month c-pad-top'); 148 cDay.html(dLastDayOfPreviousMonth++); 149 } else if (day <= dLastDayOfMonth) { 150 cDay.addClass('c-day c-pad-top'); 151 if (day == dDay && adMonth == dMonth && adYear == dYear) { 152 cDay.addClass('c-today'); 153 } 154 for (var j = 0; j < settings.events.length; j++) { 155 var d = settings.events[j].datetime; 156 if (d.getDate() == day && d.getMonth() == dMonth && d.getFullYear() == dYear) { 157 cDay.addClass('c-event').attr('data-event-day', d.getDate()); 158 cDay.on('mouseover', mouseOverEvent).on('mouseleave', mouseLeaveEvent); 159 } 160 } 161 cDay.html(day++); 162 } else { 163 cDay.addClass('c-day-next-month c-pad-top'); 164 cDay.html(dayOfNextMonth++); 165 } 166 cBody.append(cDay); 167 } 168 var eventList = $('<div/>').addClass('c-event-list'); 169 170 var monthNames = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"]; 171 var dayNames = ["Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"]; 172 173 174 for (var i = 0; i < settings.events.length; i++) { 175 var d = settings.events[i].datetime; 176 if (d.getMonth() == dMonth && d.getFullYear() == dYear) { 177 //var date = lpad(d.getDate(), 2) + '/' + lpad(d.getMonth() + 1, 2) + ' ' + lpad(d.getHours(), 2) + ':' + lpad(d.getMinutes(), 2); 178 var date = "<p class='month-preview'>"+ monthNames[d.getMonth()] + "</p><p class='date-preview'>"+ lpad(d.getDate(), 2) + "</p>"; 179 180 181 var item = $('<div/>').addClass('c-event-item'); 182 var title = $('<div/>').addClass('title').html(date); 183 //var title = $('<div/>').addClass('title').html(date + ' ' + settings.events[i].title); 184 185 var despt; 186 if( settings.events[i].description != undefined ) 187 { 188 despt = settings.events[i].description; 189 }else{ 190 despt = ""; 191 } 192 193 var description = $('<div/>').addClass('description').html( "<b>" + settings.events[i].title + "</b><br>" + despt + "<p class='hour'>" + dayNames[d.getDay()] + " " + formatAMPM(d) + "</p>"); 194 195 item.attr('data-event-day', d.getDate()); 196 item.on('mouseover', mouseOverItem).on('mouseleave', mouseLeaveItem); 197 198 199 200 item.append(title).append(description); 201 202 if( settings.events[i].url !== undefined ) 203 { 204 /** 205 * If the setting url_blank is set and is true, the target of the url 206 * will be "_blank" 207 */ 208 type_url = settings.events[i].url_blank !== undefined && 209 settings.events[i].url_blank === true ? 210 '_blank':''; 211 description.wrap( '<a href="'+ settings.events[i].url +'" target="'+type_url+'" ></a>' ); 212 } 213
214 eventList.append(item); 215 } 216 } 217 218 if(object[0].id == "content-evento-detalle"){ 219 $(instance).addClass('calendar'); 220 cEventsBody.append(eventList); 221 //$(instance).html(cBody).append(cEvents); 222 $(instance).html(cEvents); 223 224 }else{ 225 $(instance).addClass('calendar'); 226 cEventsBody.append(eventList); 227 //$(instance).html(cBody).append(cEvents); 228 $(instance).html(cBody); 229 230 } 231 232 233 234 235 } 236 237 return print(); 238 } 239 240 $.fn.eCalendar = function (oInit) { 241 return this.each(function () { 242 return eCalendar(oInit, $(this)); 243 }); 244 }; 245 246 // plugin defaults 247 $.fn.eCalendar.defaults = { 248 weekDays: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'], 249 months: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'], 250 textArrows: {previous: '<', next: '>'}, 251 eventTitle: 'Eventos', 252 url: '', 253 events: [ 254 {title: 'Evento de Abertura', description: 'Abertura das OlimpÃadas Rio 2016', datetime: new Date(2016, new Date().getMonth(), 12, 17)}, 255 {title: 'Tênis de Mesa', description: 'BRA x ARG - Semifinal', datetime: new Date(2016, new Date().getMonth(), 23, 16)}, 256 {title: 'Ginástica OlÃmpica', description: 'Classificatórias de equipes', datetime: new Date(2016, new Date().getMonth(), 31, 16)} 257 ], 258 firstDayOfWeek: 0 259 }; 260 261}(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.