PageSourceSearch

https://www.minsalud.gov.co/Style%20Library/assets/js/jquery.e-calendar.js

js minsalud.gov.co collected 2026-09-24 08:45:51 UTC 10,835 bytes, 261 lines download raw bytes

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.