PageSourceSearch

https://cityofhooks.org/wp-content/themes/hooks/assets/js/calendar-1.0.2.js

js cityofhooks.org collected 2026-10-03 01:59:13 UTC 9,357 bytes, 215 lines download raw bytes

1(function (jQuery) {
2
3    var eCalendar = function (options, object) {
4        // Initializing global variables
5        var adDay = new Date().getDate();
6        var adMonth = new Date().getMonth();
7        var adYear = new Date().getFullYear();
8        var dDay = adDay;
9        var dMonth = adMonth;
10        var dYear = adYear;
11        var instance = object;
12
13        var settings = jQuery.extend({}, jQuery.fn.eCalendar.defaults, options);
14
15        function lpad(value, length, pad) {
16            if (typeof pad == 'undefined') {
17                pad = '0';
18            }
19            var p;
20            for (var i = 0; i < length; i++) {
21                p += pad;
22            }
23            return (p + value).slice(-length);
24        }
25
26        var mouseOver = function () {
27//            jQuery(this).addClass('c-nav-btn-over');
28        };
29        var mouseLeave = function () {
30//            jQuery(this).removeClass('c-nav-btn-over');
31        };
32        var mouseOverEvent = function () {
33            jQuery(this).addClass('c-event-over');
34            var d = jQuery(this).attr('data-event-day');
35            jQuery('a.c-event-item[data-event-day="' + d + '"]').addClass('c-event-over');
36        };
37        var mouseLeaveEvent = function () {
38            jQuery(this).removeClass('c-event-over')
39            var d = jQuery(this).attr('data-event-day');
40            jQuery('a.c-event-item[data-event-day="' + d + '"]').removeClass('c-event-over');
41        };
42        var mouseOverItem = function () {
43            jQuery(this).addClass('c-event-over');
44            var d = jQuery(this).attr('data-event-day');
45            jQuery('div.c-event[data-event-day="' + d + '"]').addClass('c-event-over');
46        };
47        var mouseLeaveItem = function () {
48            jQuery(this).removeClass('c-event-over')
49            var d = jQuery(this).attr('data-event-day');
50            jQuery('div.c-event[data-event-day="' + d + '"]').removeClass('c-event-over');
51        };
52
53        //        var mouseClickEvent = function () {
54        //            jQuery(".c-event-item").hide();
55        //            var d = jQuery(this).attr('data-event-day');
56        //	    			jQuery('div.c-event[data-event-day="' + d + '"]').show();
57        //            jQuery('div.c-event-item[data-event-day="' + d + '"]').show();
58        //        };
59
60        //Add click event for each day with events on calender
61        var mouseClickEvent = function () {
62            jQuery(".c-event-item").hide();
63            var d = jQuery(this).attr('data-event-day');
64            jQuery('div.c-event[data-event-day="' + d + '"]').show();
65            jQuery('a.c-event-item[data-event-day="' + d + '"]').show();
66        };
67
68        var nextMonth = function () {
69            if (dMonth < 11) {
70                dMonth++;
71            } else {
72                dMonth = 0;
73                dYear++;
74            }
75            print();
76        };
77        var previousMonth = function () {
78            if (dMonth > 0) {
79                dMonth--;
80            } else {
81                dMonth = 11;
82                dYear--;
83            }
84            print();
85        };
86
87        function loadEvents() {
88            if (typeof settings.url != 'undefined' && settings.url != '') {
89                jQuery.ajax({
90                    url: settings.url,
91                    async: false,
92                    success: function (result) {
93                        settings.events = result;
94                    }
95                });
96            }
97        }
98
99        function print() {
100            loadEvents();
101            var dWeekDayOfMonthStart = new Date(dYear, dMonth, 1).getDay();
102            var dLastDayOfMonth = new Date(dYear, dMonth + 1, 0).getDate();
103            var dLastDayOfPreviousMonth = new Date(dYear, dMonth + 1, 0).getDate() - dWeekDayOfMonthStart + 1;
104
105            var cBody = jQuery('<div/>').addClass('c-grid');
106            var cEvents = jQuery('<div/>').addClass('c-event-grid');
107            var cEventsBody = jQuery('<div/>').addClass('c-event-body').attr("data-simplebar","init");
108//            cEvents.append(jQuery('<div/>
108').addClass('c-event-title').html(settings.eventTitle));
109            cEvents.append(cEventsBody);
110            var cNext = jQuery('<div/>').addClass('c-next c-grid-title');
111            var cMonth = jQuery('<div/>').addClass('c-month c-grid-title');
112            var cPrevious = jQuery('<div/>').addClass('c-previous c-grid-title');
113            cPrevious.html(settings.textArrows.previous);
114            cMonth.html(settings.months[dMonth] + ' ' + dYear);
115            cNext.html(settings.textArrows.next);
116
117            cPrevious.on('mouseover', mouseOver).on('mouseleave', mouseLeave).on('click', previousMonth);
118            cNext.on('mouseover', mouseOver).on('mouseleave', mouseLeave).on('click', nextMonth);
119
120            cBody.append(cPrevious);
121            cBody.append(cMonth);
122            cBody.append(cNext);
123            for (var i = 0; i < settings.weekDays.length; i++) {
124                var cWeekDay = jQuery('<div/>').addClass('c-week-day');
125                cWeekDay.html(settings.weekDays[i]);
126                cBody.append(cWeekDay);
127            }
128            var day = 1;
129            var dayOfNextMonth = 1;
130            for (var i = 0; i < 42; i++) {
131                var cDay = jQuery('<div/>');
132                if (i < dWeekDayOfMonthStart) {
133                    cDay.addClass('c-day-previous-month');
134                    cDay.html(dLastDayOfPreviousMonth++);
135                } else if (day <= dLastDayOfMonth) {
136                    cDay.addClass('c-day');
137                    if (day == dDay && adMonth == dMonth && adYear == dYear) {
138                        cDay.addClass('c-today');
139                    }
140                    for (var j = 0; j < settings.events.length; j++) {
141                        var d = settings.events[j].datetime;
142                        if (d.getDate() == day && d.getMonth() == dMonth && d.getFullYear() == dYear) {
143                            cDay.addClass('c-event').attr('data-event-day', d.getDate());
144                            cDay.on('mouseover', mouseOverEvent).on('mouseleave', mouseLeaveEvent);
145                            //register the click events
146                            cDay.on('mousedown', mouseClickEvent)
147                        }
148                    }
149                    cDay.html(day++);
150                } else {
151                    cDay.addClass('c-day-next-month');
152                    cDay.html(dayOfNextMonth++);
153                }
154                cBody.append(cDay);
155            }
156            var eventList = jQuery('<div/>').addClass('c-event-list');
157            var hasEvents = false;
158            for (var i = 0; i < settings.events.length; i++) {
159                var d = settings.events[i].datetime;
160                if (d.getMonth() == dMonth && d.getFullYear() == dYear) {
161                    hasEvents = true;
162                    var date = lpad(d.getDate(), 2) + '/' + lpad(d.getMonth(), 2) + ' ' + lpad(d.getHours(), 2) + ':' + lpad(d.getMinutes(), 2);
163                    
164                    var item = jQuery('<a/>').addClass('c-event-item').attr('href', settings.events[i].href);
165
166                    //var title = jQuery('<div/>').addClass('title').html(settings.events[i].title + '<br/>');
167                    var titleText = settings.events[i].title.split(" ");
168                    var title = jQuery('<div/>').addClass('title')
169                        .html('<span class="event-month">' + titleText[0] + '</span> ' + titleText[1]);
170                    var description = jQuery('<div/>').addClass('description').html(settings.events[i].description + '<br/>');
171
172                    item.attr('data-event-day', d.getDate());
173
174                    item.click(function () {
175                        $(this).addClass('c-event-over');
176                        $(this).siblings().removeClass('c-event-over');
177
178                        var d = $(this).attr('data-event-day');
179                        $('div.c-event-item[data-event-day="' + d + '"]').addClass('c-event-over');
180                        $('div').not('.c-event-item[data-event-day="' + d + '"]').removeClass('c-event-over');
181                        $(".c-event-item").removeClass("event-info");
182                    });
183
184                    var wrapper = jQuery('<div/>').addClass('c_event_txt');
185
186                    wrapper.append(title).append(description);
187
188                    item.append(wrapper);
189                    eventList.append(item);
190                }
191            }
192
193            if ( !hasEvents ) {
194                eventList.append(
195                    jQuery('<div/>')
196                    .addClass('c-no-events')
197                    .html('There are no public meetings or events scheduled for this month.')
198                );
199            }
200
201            jQuery(instance).addClass('calendar');
202            cEventsBody.append(eventList);
203            jQuery(instance).html(cBody).append(cEvents);
204        }
205
206        return print();
207    }
208
209    jQuery.fn.eCalendar = function (oInit) {
210        return this.each(function () {
211            return eCalendar(oInit, jQuery(this));
212        });
213    };
214
215}(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.