PageSourceSearch

https://www.sanangelorodeo.com/Events/JS/widgets/eventScheduleWidget.js?sv=8.6.3

js sanangelorodeo.com collected 2026-10-02 07:18:46 UTC 13,436 bytes, 306 lines download raw bytes

1/*Event Schedule Widget*/
2
3(function ($) {
4
5
6    //Global variable for the widget function
7    function widgetDataService() {
8
9        this.getWidgetData = function () {
10                $.ajax({
11                    type:"POST",
12                    dataType: "jsonp",
13                   jsonpCallback: "saffireEvents",
14                   contentType: "application/jsonp",
15                            url: SITEBASEURL + "services/eventsservice.asmx/GetEventsJsonP",
16                            error: function(results, error, thrown) {
17
18
19                            },
20
21                   success: function(data){
22                    initialize(data);
23
24                   }
25
26                });
27
28            };
29    };
30
31
32    var detectIpad = false;
33    var eventScheduleLoaded = function(){};
34    var customNumber = 4;
35    var customImageWidth = 200;
36    var customImageHeight = 200;
37    var showImage = true; // shows the event's featured image
38    var showDayName = false; // adds the day of the week to the event date
39    var showDescription = false; // short description of the event
40    var pagination = false; // shows (if true) the text "1 of x" along with the standard arrows
41    var useCropbox = true;
42    var noImageAvailableSrc = '';
43    eventWidgetPageIndex = 1;
44    var dateFirst = true;
45
46    $.fn.eventScheduleWidget = function (options) {
47
48        var opts = $.extend({}, $.fn.eventScheduleWidget.defaultOptions, options);
49
50        widgetContainer = this;
51        widgetModuleItemID = opts.currentWidgetModuleItemID;
52
53        var widgetDataAdapter = new widgetDataService();
54
55        widgetDataAdapter.getWidgetData();
56        detectIpad = opts.detectIpad;
57        eventScheduleLoaded = opts.eventScheduleLoaded;
58        customNumber = opts.customNumber;
59        customImageWidth = opts.customImageWidth;
60        customImageHeight = opts.customImageHeight;
61        showImage = opts.showImage;
62        showDayName = opts.showDayName;
63        showDescription = opts.showDescription;
64        pagination = opts.pagination;
65        useCropbox = opts.useCropbox;
66        noImageAvailableSrc = opts.noImageAvailableSrc;
67        dateFirst = opts.dateFirst;
68    };
69
70    //Default options for the constructor to be merged with send constructor data
71    $.fn.eventScheduleWidget.defaultOptions = {
72        detectIpad: false
73        , eventScheduleLoaded: function(){}
74        , customNumber: 4
75        , customImageWidth: 200
76        , customImageHeight: 200
77        , showImage: true
78        , showDayName: false
79        , showDescription: false
80        , pagination: false
81        , useCropbox: true
82        , noImageAvailableSrc: ''
83        , dateFirst: true
84    };
85
86
87    //set up the ui
88    function initialize(data) {
89
90        var i, n, e;
91        for(i=0; i<data.length; i++){  // events without specific dates will not be used
92            var checkForDates = data[i].Date;
93            if(!checkForDates){
94                data.splice(i,1);
95                i--;
96            }
97        }
98
99        var eventCount = data.length;
100
101        if (pagination === false) {
102          var countPages = 1;
103        } else {
104          var countPages = Math.ceil(eventCount/customNumber);
105        }
106        var imageHTML;
107        var eventDescription;
108        var dayName = '';
109        var eventDateText = '';
110        e = 0;
111        for(i=0; i<countPages; i++){  // iterate through pages
112            var p = i+1;
113            $('#eventScheduleWidget').append('<div class="eventScheduleWidgetPage eventScheduleWidgetPage'+p+'"></div>');
114            for(n=0; n <= customNumber-1; n++){ // newest shows first
115                if(e<eventCount){
116                    if(showImage){
117                        var cropboxSettings, imageSrc;
118                        if(useCropbox){
119                            cropboxSettings = "&cropbox=1&cropboxhpos=center";
120                        } else {
121                            cropboxSettings = "";
122                        }
123                        if(data[e].ImageURL == ''){
124                            imageSrc = noImageAvailableSrc;
125                        } else {
126                            imageSrc = data[e].ImageURL
127                        }
128
129                        var imageAlternateText = "";
130
131                        if (data[e].ImageAlternateText != null) {
132                            imageAlternateText = (data[e].ImageAlternateText);
133                        }
134
135
136                        if(imageSrc != ''){
137                            imageHTML = '<div class="eventScheduleWidgetItemImage"><a href="' + data[e].URL + '"><img src="' + imageSrc + '&w=' + customImageWidth + cropboxSettings + '&h=' + customImageHeight + '&c=1" alt="' + imageAlternateText + '" /></a></div>';
138                        } else {
139                            imageHTML = '<div class="eventScheduleWidgetItemImage"><a href="'+data[e].URL+'"><span class="eventScheduleDummyImageLink"></span></a></div>';
140                        }
141
142                    } else {
143                        imageHTML = '';
144                    }
145
146                    if(showDayName){  // shows the event day of the week
147                        var today = new Date();
148                        var todayDay = today.getDay();
149
150                        var oneDay = 24*60*60*1000;
151
152                        var checkForRange = data[e].Date.indexOf(' - ');  // remove second half of date range from calculations
153                        var calcDate;
154                        if(checkForRange > 0){
155                            var endOfRange = data[e].Date.indexOf(', 2');
156                            var removeLatter = data[e].Date.substring(checkForRange, endOfRange);
157                            calcDate = data[e].Date.replace(removeLatter,'');
158                        } else {
159                            calcDate = data[e].Date;
160                        }
161
162                        var eventDate = new Date(calcDate);
163                        var diffDays = Math.ceil(Math.abs((today - eventDate)/(oneDay)));
164
165                        if(diffDays > 7){
166                            while(diffDays > 7){
167                                diffDays=diffDays-7;
168                            }
169                        }
170
171                        var getDayOfWeek = todayDay + diffDays;
172                        if(getDayOfWeek > 6){
173                            getDayOfWeek = getDayOfWeek-7;
174                        }
175
176                        var weekday = new Array(7);
177                        weekday[0] = "Sunday, ";
178                        weekday[1] = "Monday, ";
179                        weekday[2] = "Tuesday, ";
180                        weekday[3] = "Wednesday, ";
181                        weekday[4] = "Thursday, ";
182                        weekday[5] = "Friday, ";
183                        weekday[6] = "Saturday, ";
184                        var getDayOfWeek = weekday[getDayOfWeek];
185                        dayName = getDayOfWeek.toString();
186                    } else {
187                        dayName = '';
188                    }
189
190                    if(data[e].Description != null && showDescription){
191                        eventDescription = data[e].Description;
192                    } else {
193                        eventDescription = '';
194                    }
195
196                    if(data[e].Date != null){
197                        eventDateText = data[e].Date.toString();
198                    }
199
200                    if(dateFirst){
201                        $('.eventScheduleWidgetPage'+p).append('<div class="eventScheduleWidgetItem">'+imageHTML+'<div class="eventScheduleWidgetItemDate"><a href="'+data[e].URL+'"><span class="eventScheduleWidgetDayName">' + dayName + '</span>' + eventDateText + '</a></div><div class="eventScheduleWidgetItemText"><a href="'+data[e].URL+'"><span class="eventScheduleWidgetItemTitle">'+data[e].Name+'</span><span class="eventScheduleWidgetItemDescription">'+eventDescription+'</span></a></div></div>');
202                    } else {
203                        $('.eventScheduleWidgetPage'+p).append('<div class="eventScheduleWidgetItem">'+imageHTML+'<div class="eventScheduleWidgetItemText"><a href="'+data[e].URL+'"><span class="eventScheduleWidgetItemTitle">'+data[e].Name+'</span><span class="eventScheduleWidgetItemDescription">'+eventDescription+'</span></a></div><div class="eventScheduleWidgetItemDate"><a href="'+data[e].URL+'"><span class="eventScheduleWidgetDayName">' + dayName + '</span>' + eventDateText + '</a></div></div>');
204                    }
205
206                    e++;
207                }
208
209            }
210        }
211
212        if(countPages > 1){   // adding the page switcher mechanism
213            $('#eventScheduleWidget').addClass('eventScheduleWidgetMultiPage');
214            $('#eventScheduleWidget').append('<div id="eventScheduleWidgetPaginationContainer"><a href="javascript:void(0);" onclick="eventScheduleWidgetBack('+countPages+')" id="eventScheduleWidgetBack" style="display:none;"></a><a href="javascript:void(0);" onclick="eventScheduleWidgetForward('+countPages+')" id="eventScheduleWidgetForward"></a></div>');
215            var eventScheduleWidth = $('#eventScheduleWidget').width();
216            var l = 0;
217            $('.eventScheduleWidgetPage').each(function(){
218                $(this).css('left',l+'px');
219                l = l+eventScheduleWidth;
220            });
221
222            if(pagination){ // text version of page switcher
223                $('#eventScheduleWidgetPaginationContainer').prepend('<div id="eventScheduleWidgetTextPagination">1 of '+countPages+'</div>');
224            }
225        }
226
227       eventScheduleLoaded(data);
228
229       if(isResponsive){
230        var checkSwiping = $('#eventScheduleWidgetPaginationContainer').css('display');
231            if(checkSwiping != 'none'){
232               $('.eventScheduleWidgetPage').on("swipeleft",function(){
233                    var getParent = $(this).closest('#eventScheduleWidget').find('#eventScheduleWidgetForward').click();
234                });
235
236                $('.eventScheduleWidgetPage').on("swiperight",function(){
237                    var getParent = $(this).closest('#eventScheduleWidget').find('#eventScheduleWidgetBack').click();
238                });
239            }
240
241        }
242    }
243
244
245})(jQuery);
246
247var eventWidgetPageIndex;
248
249function eventScheduleWidgetForward(pageCount){
250    $('#eventScheduleWidgetPaginationContainer').append('<div id="eventScheduleLinkMask" style="position:absolute; top:0; left:0; right:0; bottom:0; z-index:2000000000; background: none;"></div>')
251    var eventScheduleWidth = $('#eventScheduleWidget').width();
252    var getNumber = $('.eventScheduleWidgetPage').length;
253    var currentPos = $('.eventScheduleWidgetPage'+getNumber).position().left;
254
255    if(currentPos == 0){ // we're at the end
256        $('#eventScheduleWidgetForward').css('display','none');
257        $('#eventScheduleWidgetBack').css('display','block');
258        $('#eventScheduleLinkMask').remove();
259    } else {
260        eventWidgetPageIndex++;
261        $('.eventScheduleWidgetPage').animate({left: '-='+eventScheduleWidth+'px'},500, 'linear',function(){
262
263            var lookForPagination = $('#eventScheduleWidgetTextPagination').length;
264            if(lookForPagination > 0){
265                $('#eventScheduleWidgetTextPagination').text(eventWidgetPageIndex+' of '+pageCount);
266            }
267
268            var currentPos = $('.eventScheduleWidgetPage'+getNumber).position().left;
269            if(currentPos == 0){
270                $('#eventScheduleWidgetForward').css('display','none');
271                $('#eventScheduleWidgetBack').css('display','block');
272            }
273            $('#eventScheduleLinkMask').remove();
274        });
275        $('#eventScheduleWidgetBack').css('display','block');
276    }
277}
278
279function eventScheduleWidgetBack(pageCount){
280    $('#eventScheduleWidgetPaginationContainer').append('<div id="eventScheduleLinkMask" style="position:absolute; top:0; left:0; right:0; bottom:0; z-index:2000000000; background: none;"></div>')
281    var eventScheduleWidth = $('#eventScheduleWidget').width();
282    var getNumber = $('.eventScheduleWidgetPage').length;
283    var currentPos = $('.eventScheduleWidgetPage1').position().left;
284    if(currentPos == 0){ // we're at the start
285        $('#eventScheduleWidgetBack').css('display','none');
286        $('#eventScheduleWidgetForward').css('display','block');
287        $('#eventScheduleLinkMask').remove();
288    } else {
289        eventWidgetPageIndex--;
290        $('.eventScheduleWidgetPage').animate({left: '+='+eventScheduleWidth+'px'},500,'linear',function(){
291
292            var lookForPagination = $('#eventScheduleWidgetTextPagination').length;
293            if(lookForPagination > 0){
294                $('#eventScheduleWidgetTextPagination').text(eventWidgetPageIndex+' of '+pageCount);
295            }
296
297            var currentPos = $('.eventScheduleWidgetPage1').position().left;
298            if(currentPos == 0){
299                $('#eventScheduleWidgetBack').css('display','none');
300                $('#eventScheduleWidgetForward').css('display','block');
301            }
302            $('#eventScheduleLinkMask').remove();
303        });
304        $('#eventScheduleWidgetForward').css('display','block');
305    }
306}

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.