Latest News

July 5, 2018 - Swimming & Diving Bauer and Day Headline Swimming & Diving Scholar All-America Scrolls WORCESTER – Led by Jack Bauer (Cumberland, RI) and Jenny Day (Chelmsford, MA), five members of the WPI swimming & diving program secured...
June 12, 2018 - Swimming & Diving Bauer Repeats as Google Cloud Academic All-America® Division III At-Large Honoree WORCESTER – WPI junior Jack Bauer (Cumberland, RI) was named to the Google Cloud Academic All-America® Division III At-Large First Team, as...
June 4, 2018 - Swimming & Diving WPI Men Second, Women Third in NEWMAC President Cup Standings Westwood, MA --- For the third consecutive year WPI finished second in the Men’s NEWMAC Presidents Cup standings while the women placed third,...
May 31, 2018 - Swimming & Diving WPI Honors 11 Major Award Winners During Annual Athletic Banquet WORCESTER – The WPI athletic department recently honored all of its 20 varsity teams which encompasses over 600 student-athletes at its annual...
May 18, 2018 - Swimming & Diving Swimming & Diving’s Day and Bauer Earn More Academic All-District At-Large Laurels WORCESTER – WPI swimming & diving senior Jenny Day (Chelmsford, MA) and junior Jack Bauer (Cumberland, RI) have been named to their...

Announcements

More Swimming & Diving Videos - Click Here

Archived Swimming & Diving Videos - Click Here

« Sep Oct 2018 Nov »
S M T W T F S
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
Oct 26, 2018
There was a problem with a Velocity script
Pagecalendar-template
ErrorInvocation of method 'substring' in class java.lang.String threw exception java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at calendar-template[line 157, column 29]
Page source:
1: #if ($browser.getMobile() || $browser.getIphone())
2: 	#set ($includeURL = "$page.url?tmpl=mobile-iphone-results-template")
3: 	$website.includeAgain($includeURL)
4: 	#stop
5: #else
6: 
7: #set ($templateName = 'calendar-template')
8: 
9: ## OPTIONS 
10: $website.include("options")
11: #set ($options = $request.getAttribute("options"))
12: 
13: ## INCLUDE TIME ZONE
14: #if ($options.get('calendarIncludeTimeZone').length() > 0)
15: 	#set ($includeTimeZone = $options.get('calendarIncludeTimeZone').toLowerCase())
16: #else
17: 	#set ($includeTimeZone = false)
18: #end
19: 
20: ## EVENT NOTES
21: #if ($options.get('calendarShowEventNotes').length() > 0)
22: 	#set ($showEventNotes = $options.get('calendarShowEventNotes').equals('true'))
23: #else
24: 	#set ($showEventNotes = true)
25: #end
26: 
27: ## SITE NOTES
28: #if ($options.get('calendarShowSiteNotes').length() > 0)
29: 	#set ($showSiteNotes = $options.get('calendarShowSiteNotes').equals('true'))
30: #else
31: 	#set ($showSiteNotes = false)
32: #end
33: 
34: ## TIGHT LAYOUTS
35: #if ($options.get('calendarBiggerCells').length() > 0)
36: 	#set ($tightLayout = $options.get('calendarBiggerCells').equals('true'))
37: #else
38: 	#set ($tightLayout = false)
39: #end
40: 
41: ##LINK ABREVIATIONS
42: #if ($options.get('calendarLinksAbreviations').length() > 0)
43: 	#set ($fullLinks = $options.get('calendarLinksAbreviations').equals('false'))
44: #else
45: 	#set ($fullLinks = false)
46: #end
47: 
48: ## RESTRICT LINKS
49: #set ($restrictLinks = true)
50: #if ($options.get("schedule_restrict_links") == false)
51:   #set ($restrictLinks = false)
52: #end
53: ## END OPTIONS
54: 
55: #set ($linksOrder = ["RC", "BS", "RE", "GA", "AU", "VI", "LS", "DI", "TI", "PR"])
56: #set ($excludeLinksWhenEventIsFinished = ["LS", "DI", "TI", "PR"])
57: 
58: #if ($request.getParameter('dec'))
59: 	#set ($hardcodeScript = true)
60: #else
61: 	#set ($hardcodeScript = false)
62: #end
63: 
64: #set ($hideExhibition = false)
65: #if ($options.get("schedule_hide_exhibition_events") == true)
66:   #set ($hideExhibition = true)
67: #end
68: 
69: ## THIS IS HOW I DETERMINE AJAX QUERY
70: #if ($request.getParameter('ajax'))
71: 	#set ($ajax = true)
72: 	$website.decorate('')
73: #else
74: 	#set ($ajax = false)
75: #end
76: 
77: #set ($paramYear = $request.getParameter("y"))
78: #set ($paramMonth = $request.getParameter("m"))
79: 
80: #set ($events = $schedule.events)
81: 
82: #if ($hideExhibition) ## filter out exhibition events from the available events
83:   #set ($eventCount = $events.size())
84:   #set ($events = [])
85:   #set ($blocks = $eventCount / 100) ## get around the 500 limit on the loop since there could be more than 500 events
86:   #foreach ($block in [0..$blocks])
87: 	#set ($min = $block * 100)
88:     #set ($max = $block * 100 + 100)
89: 	#if ($max > $eventCount)
90:       #set ($max = $eventCount)
91: 	#end
92: 	#foreach ($event in $schedule.events.subList($min, $max))
93: 	  #if ($event.overall)
94: 		#set ($ignoreme = $events.add($event))
95: 	  #end
96: 	#end
97:   #end
98: #end
99: 
100: ## CHECK IF THE PROVIDED YEAR AND MONTH PARAMS ARE VALID AND WITHIN THE RANGE OF AVAILABLE EVENTS - IF NOT THEN NULLIFY THEM
101: #if ($events.size() > 0)
102:   #set ($firstEvent = $events.get(0))
103:   #set ($lastEvent = $events.get($tool.math.sub($events.size(), 1)))
104:   
105:   #set ($startMonth = $tool.math.add($tool.date.getMonth($firstEvent.date), 1))  ## $tool.date.getMonth gives 0 based value
106:   #set ($startYear = $tool.date.getYear($firstEvent.date))
107:   
108:   #set ($endMonth = $tool.math.add($tool.date.getMonth($lastEvent.date), 1))
109:   #set ($endYear = $tool.date.getYear($lastEvent.date))
110:   
111:   #if (($paramYear.length() > 0 && $tool.math.toInteger($paramYear) < $startYear) || ($paramYear.length() > 0 && $tool.math.toInteger($paramYear) > $endYear))
112: 	#set ($paramMonth = "")
113: 	#set ($paramYear = "")
114:   #end
115: #end
116: 
117: ## DATE - SET TO CURRENT IF NOT PROVIDED
118: #set ($calendar = $tool.getCalendar($paramYear, $paramMonth))
119: $calendar.loadData($events, "date")
120: 
121: #set ($todayMonth = ($tool.math.toInteger($formatter.formatDate($now, "MM")) - 1))
122: #set ($todayDay = $tool.math.toInteger($formatter.formatDate($now, "dd")))
123: #set ($todayYear = $tool.math.toInteger($formatter.formatDate($now, "yyyy")))
124: 
125: #set ($currentMonth = ($tool.math.toInteger($formatter.formatDate($calendar.focus, "MM")) - 1))
126: #set ($currentDay = $tool.math.toInteger($formatter.formatDate($calendar.focus, "dd")))
127: #set ($currentYear = $tool.math.toInteger($formatter.formatDate($calendar.focus, "yyyy")))
128: 
129: #if ($todayMonth == $currentMonth && $todayYear == $currentYear)
130: 	#set ($currentDay = $todayDay) ## TO SET CORRECT TODAY DAY IF LOADED WITH AJAX
131: 	#set ($isToday = true)
132: #else
133: 	#set ($isToday = false)
134: #end
135: 
136: #set ($rowsCount = 0)
137: #set ($monthNotEmpty = false)
138: 
139: #macro (eventClass $size) #if ($size > 0) calendar-event #else no-calendar-event #end #end
140: 
141: #macro (eventToday $day) #if ($day == $currentDay) current #if ($isToday) today #end #end #end
142: 
143: #macro (eventBlock $day) #if ($currentDay != $day) none #end #end
144: 
145: #macro (printSport $event)
146:   #set ($feedURL = $event.feedURL)
147:   
148:   #set ($feedURL = $event.feedURL) ## in the form http://www.somedomain.com/sports/mbkb/2014-15/schedule?tmpl=sfs-template
149:   #if ($feedURL.indexOf("://") >= 0)
150:     #set ($feedURL = $feedURL.split("//").get(1)) ## remove the http:// bit from the URL
151:   #end
152:   #set ($startIndex = $feedURL.indexOf("/"))
153:   #set ($endIndex = $feedURL.length())
154:   #if ($feedURL.lastIndexOf("?") >= 0)
155:     #set ($endIndex = $feedURL.lastIndexOf("?"))
156:   #end
157:   #set ($feedURL = $feedURL.substring($startIndex, $endIndex)) ## remove the domain and tmpl parts
158: 
159:   #if ($website.exists($feedURL))
160: 	#set ($ariaLabel = "${event.sport}: schedule")
161:     #if ($feedURL.matches("/sports/.*/\d{4}-\d{2}/.*"))
162:       #set ($seasonStr = $feedURL.split("/").get(3))
163:       #set ($ariaLabel = "${event.sport}: ${seasonStr} schedule") ## aria-label would be something like Men's Basketball 2017-18 schedule
164:     #end
165: 	
166:     <a href="${feedURL}" aria-label="$ariaLabel">$event.sport</a>
167:   #else
168:     <span>$event.sport</span>
169:   #end
170: #end
171: 
172: #macro (printLinkAriaLabel $event $link)
173: 	#set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
174: 	#if ($event.neutralSite.length() > 0 || $event.home)
175: 		#set ($vsOrAt = "vs.")
176: 	#else
177: 		#set ($vsOrAt = "at")
178: 	#end
179: 	#if ($event.teams.size() > 1)
180: 		#set ($ariaLabel = "${ariaLabel} ${event.teams.get(0).name} ${vsOrAt} ${event.teams.get(1).name}:")
181: 	#elseif ($event.teams.size() == 1)
182: 		#set ($ariaLabel = "${ariaLabel} ${event.teams.get(0).name}:")
183: 	#end
184: 	#if ($event.neutralSite.length() > 0)
185: 		#set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
186: 	#end
187: 	#set ($ariaLabel = "${ariaLabel} ${link.name}")
188: 	aria-label="$ariaLabel"
189: #end
190: 
191: #set ($linksAbb = {"Preview": "PR", "Box Score": "BX", "Results": "R", "Recap": "RC", "Live stats": "LS", "Video": "V", "Audio": "A", "Photos": "PH", "Tickets": "T", "Directions": "DR"})
192: #macro (printLinks $event)
193: #set ($linkPrinted = false)
194: #set ($isEventFinished = $event.statusCode >= 0)
195: #if ($event.links.size() > 0)
196: <div class="row links">
197: 	#foreach ($mapType in $linksOrder)
198: 		#if (!($isEventFinished && $excludeLinksWhenEventIsFinished.contains($mapType) && $restrictLinks))
199: 			#foreach ($link in $event.links)
200: 				#if ($mapType == $link.mapType)			
201: 					#if ($linkPrinted) | #end
202: 					#set ($linkPrinted = true)
203: 					#printLink($event, $link)
204: 				#end
205: 			#end
206: 		#end
207: 	#end
208: </div>
209: #end
210: #end
211: 
212: #macro (printLink $event $link)
213: 	#if ($fullLinks)
214: 		<a #printLinkAriaLabel($event, $link) href="$!link.url" title="$!link.name">$!link.name</a>
215: 	#else
216: 		#foreach ($l in $linksAbb.entrySet())
217: 			#if ($link.name.equals($l.key))
218: 				<a #printLinkAriaLabel($event, $link) href="$!link.url" title="$!l.key">$!l.value</a>
219: 			#end
220: 		#end
221: 	#end
222: #end
223: 
224: #set ($months = {
225: 	1 : "Jan",
226: 	2 : "Feb",
227: 	3 : "Mar",
228: 	4 : "Apr",
229: 	5 : "May",
230: 	6 : "Jun",
231: 	7 : "Jul",
232: 	8 : "Aug",
233: 	9 : "Sep",
234: 	10 : "Oct",
235: 	11 : "Nov",
236: 	12 : "Dec"
237: })
238: 
239: ## PRINTS CALENDAR CONTENT
240: #macro (printCalendar $calendar)
241: 	
242: 	<div class="calendar-months-list-container none">
243: 		<ul class="calendar-months-list">
244: 			#foreach ($m in $months.entrySet())
245: 				<li #if ($tool.math.toInteger($m.key) == ($currentMonth + 1)) class="current" #elseif ($tool.math.toInteger($m.key) == ($todayMonth + 1) && $todayYear == $currentYear) class="today" #end>
246: 					<a href="$page.url?y=$currentYear&m=$m.key" data-month="$!m.key">$!m.value</a>
247: 				</li>
248: 			#end
249: 		</ul>
250: 	</div>
251: 	
252: 	<table id="calendar-view">
253: 		<thead>
254: 			<tr class="calendar-month">
255: 				<td #if ($tightLayout) colspan="2" #end class="calendar-month-left">
256: 					#if ($firstEvent && $tool.date.getMonth($firstEvent.date) == $currentMonth && $tool.date.getYear($firstEvent.date) == $currentYear)
257: 						## When reached the first event date
258: 					#else
259: 						<a href="$page.url?y=$formatter.formatDate($calendar.previous,"yyyy")&m=$formatter.formatDate($calendar.previous,"MM")" id="calendar-prev" data-month="$formatter.formatDate($calendar.previous, "M")" title="$formatter.formatDate($calendar.previous, "MMMM yyyy")">&laquo; $formatter.formatDate($calendar.previous, "MMM")</a>
260: 					#end
261: 				</td>
262: 				<td #if ($tightLayout) colspan="3" #else colspan="5" #end id="calendar-now" title="Click to select month">
263: 					<span>
264: 						$formatter.formatDate($calendar.focus, "MMM yyyy")
265: 						<span class="calendar-month-arrow"></span>
266: 					</span>
267: 				</td>
268: 				<td #if ($tightLayout) colspan="2" #end class="calendar-month-right">
269: 					#if ($lastEvent && $tool.date.getMonth($lastEvent.date) == $currentMonth && $tool.date.getYear($lastEvent.date) == $currentYear)
270: 						## When reached the first event date
271: 					#else
272: 						<a href="$page.url?y=$formatter.formatDate($calendar.next,"yyyy")&m=$formatter.formatDate($calendar.next,"MM")" id="calendar-next" data-month="$formatter.formatDate($calendar.next, "M")" title="$formatter.formatDate($calendar.next, "MMMM yyyy")">$formatter.formatDate($calendar.next, "MMM") &raquo;</a>
273: 					#end
274: 				</td>
275: 			</tr>
276: 			<tr class="calendar-header">
277: 				<td class="first-cell">S</td>
278: 				<td>M</td>
279: 				<td>T</td>
280: 				<td>W</td>
281: 				<td>T</td>
282: 				<td>F</td>
283: 				<td class="last-cell">S</td>
284: 			</tr>
285: 		</thead>
286: 		<tbody id="calendar-body">
287: 			#set ($iterator = $calendar.dates.entrySet().iterator())
288: 			#foreach ($day in $iterator)
289: 			
290: 				#if ($day.key.day == 0) 
291: 					<tr>
292: 					#set ($rowsCount = $rowsCount + 1)
293: 				#end
294:                 
295: 				#if ($currentMonth != $day.key.month)
296: 					<td class="inactive">$day.key.date</td>
297: 				#else
298: 					<td id="calendar-day-$day.key.date" class="#eventClass($day.value.size()) #eventToday($day.key.date)">
299: 						<a data-day="$day.key.date" data-events-size="$day.value.size()" href="#">$!day.key.date</a>
300: 					</td>
301: 				#end	
302: 				#if ($day.key.day == 6) </tr> #end
303: 			#end
304: 			
305: 			## PRINT LAST DUMMY LINE
306: 			#if ($rowsCount == 5)
307: 				#if ($day.key.date > 7)
308: 					#set ($firstDummyDay = 1)
309: 				#else
310: 					#set ($firstDummyDay = $day.key.date + 1)
311: 				#end
312: 				#set ($lastDummyDay = $firstDummyDay + 6)
313: 				#foreach ($dummyDay in [$firstDummyDay..$lastDummyDay])
314: 					<td class="inactive">$!dummyDay</td>
315: 				#end
316: 			#end
317: 		</tbody>
318: 	</table>
319: 	
320: 	#if ($showSiteNotes)
321: 		#set ($scheduleNote = "${page.url}-note")
322: 		<div class="calendar-schedule-note">$website.include($scheduleNote)</div>
323: 	#end
324: 	
325: 	#foreach ($day in $calendar.dates.entrySet().iterator())
326: 		#if ($day.value.size() > 0 && $currentMonth == $day.key.month)
327: 			#set ($monthNotEmpty = true)
328: 			#if ($currentDay == $day.key.date)
329: 				#set($haveEventsToday = true)
330: 			#end
331: 			<div class="event-schedule #eventBlock($day.key.date)" id="event-schedule-$day.key.date">
332: 				#foreach ($event in $day.value)
333: 					#if ($velocityCount == 1)
334: 						<span class="event-date">$formatter.formatMediumDate($event.date)</span>
335: 					#end
336: 					<div class="event-info">
337: 						<div class="row">
338: 							<span class="sport">
339: 								#printSport($event)
340: 							</span>
341: 						</div>
342: 						
343: 						#foreach ($team in $event.teams)
344: 						<div class="row">
345: 							<span class="float-right result">$!team.result</span>
346: 							<span class="team">
347: 								## PRINTING at/.vs
348: 								#if ($event.teams.size() == 1) ## if one team then, manual schedule
349: 									#if ($event.neutralSite.length() > 0)
350: 										vs.
351: 									#elseif (! $event.home)
352: 										at
353: 									#end
354: 								#else ## more than one team
355: 									#if ($velocityCount == 2)
356: 										#if ($event.neutralSite.length() > 0)
357: 											vs.
358: 										#else
359: 											at
360: 										#end
361: 									#end
362: 								#end
363: 								
364: 								$!team.name
365: 							</span>
366: 						</div>
367: 						#end
368: 							
369: 						#if ($event.neutralSite.length() > 0)
370: 						<div class="row">
371: 							<span class="neutral-site">@ $!event.neutralSite</span>
372: 						</div>
373: 						#end
374: 						
375: 						## STATUS
376: 						<div class="row">
377: 							<span class="status">
378: 								#if ($includeTimeZone)
379: 									#if ($includeTimeZone.contains('local'))
380: 										$formatter.formatStatus($event).setTimeFormat("h:mm a z").useEventTimeZone()
381: 									#elseif ($includeTimeZone.contains('site'))
382: 										$formatter.formatStatus($event).setTimeFormat("h:mm a z")
383: 									#end
384: 								#else
385: 									$formatter.formatStatus($event)
386: 								#end
387: 							</span>
388: 						</div>
389: 						
390: 						#if ($event.notes.length() > 0 && $showEventNotes)
391: 						<div class="row">
392: 							<span class="note">$!event.notes</span>
393: 						</div>
394: 						#end
395: 					
396: 						#printLinks($event)
397: 						
398: 						$wiki.event($event)
399: 					</div>
400: 				#end
401: 			</div>
402: 		#end
403: 	#end
404: 	
405: 	#if ($monthNotEmpty)
406: 		<div class="event-schedule #if ($haveEventsToday) none #end" id="no-calendar-events">
407: 			#if ($isToday)
408: 				<div class="event-info">No events today</div>
409: 			#else
410: 				<div class="event-info">No events on this date</div>
411: 			#end
412: 		</div>
413: 	#else
414: 		<div class="event-schedule" id="no-calendar-events">
415: 			<div class="event-info">No events in this month</div>
416: 		</div>
417: 	#end
418: #end
419: 
420: #if (! $ajax)
421: 	<div id="calendar">
422: 		<div class="calendar-cap" style="display:none"></div>
423: 		<div class="calendar-replaceable">
424: 			#printCalendar($calendar)
425: 		</div> 
426: 	</div>	
427: 	
428: 	#if ($hardcodeScript)
429: 		<script type="text/javascript" src="/info/calendar_plugin.js"></script>
430: 	#else
431: 		$request.setAttribute("icl-calendar-script", true)
432: 	#end
433: 	<script type="text/javascript">
434: 		jQuery(function(){
435: 			jQuery('#calendar').presto_Calendar();
436: 		});
437: 	</script>
438: 	$wiki
439: 	
440: 	#if ($tightLayout)
441: 		<style type="text/css">
442: 			#calendar .calendar-month-left { text-align:left; padding-left:3px }
443: 			#calendar .calendar-month-right {  text-align:right; padding-right:3px  }
444: 		</style>
445: 	#end
446: 	
447: #else
448: 	#printCalendar($calendar)
449: #end
450: 
451: #end

Oct 21
Men's Soccer Final
at Mitchell
W, 2-0
Oct 21
Men's Rowing Final
Ninth Place Head of the Charles Regatta
Oct 21
Women's Rowing Final
Third Place Head of the Charles Regatta
Oct 20
Football Final
at Merchant Marine
L, 25-24
Oct 20
Women's Soccer Final - 2OT
at Wellesley
T, 0-0
Oct 20
Field Hockey Final
Babson
L, 4-1
Oct 20
Men's Soccer Final - 2OT
at Springfield
T, 0-0
Oct 20
Women's Volleyball Final
at Amherst
L, 3-0
Hall of Fame Classic
Oct 20
Women's Volleyball Final
vs. Hamilton
W, 3-2
@ Amherst, MA
Hall of Fame Classic
Oct 19
Women's Volleyball Final
vs. Trinity
L, 3-2
@ Northampton, MA
Hall of Fame Classic
Oct 23
Women's Soccer 4:00 PM
MIT
Oct 23
Women's Volleyball 7:00 PM
Clark
Oct 23
Field Hockey 7:00 PM
Fitchburg State
Oct 26
Women's Swimming & Diving 6:00 PM
Worcester City Championships Day #1
Oct 26
Men's Swimming & Diving 6:00 PM
Worcester City Championships Day #1
Oct 27
Women's Cross Country 12:00 PM
NEWMAC Championships
at Smith
Oct 27
Men's Cross Country 12:00 PM
NEWMAC Championships
at Smith
Oct 27
Women's Swimming & Diving 9:00 AM/4:00 PM
Worcester City Championships Day #2
Oct 27
Men's Swimming & Diving 9:00 AM/4:00 PM
Worcester City Championships Day #2
Oct 27
Men's Soccer 10:00 AM
Clark