Latest News

December 1, 2018 - Swimming & Diving Bauer Threepeats, Records Fall as Swimming & Diving Remains Third at Gompei Invite WORCESTER – Senior Jack Bauer (Cumberland, RI) won the 100-yard backstroke for the third consecutive year while freshman Molly Sykes (Falmouth,...
November 30, 2018 - Swimming & Diving Perry, Sykes & Pawlak Shine as Swimming & Diving Sits Third at Gompei Invite WORCESTER – Senior Jackson Perry (Cumberland, RI) was a double winner while freshmen Molly Sykes (Falmouth, MA) and Katherine Pawlak (Westford,...
November 17, 2018 - Swimming & Diving Bauer, Men’s Swimming & Diving Knock Off No. 25 Bowdoin in Saturday Split Brunswick, ME --- Senior Jack Bauer (Cumberland, RI) was the lone WPI winner as the men’s swimming & diving team topped host No. 25 Bowdoin,...
November 17, 2018 - Swimming & Diving Women’s Swimming & Diving Swept by Nationally-Ranked MIT and Bowdoin Brunswick, ME --- Freshman Molly Sykes (Falmouth, MA) finished second in a pair of events as the WPI women’s swimming & diving team was...
November 10, 2018 - Swimming & Diving Sykes Wins Three as Women’s Swimming & Diving Splits With SCSU and CGA WORCESTER – Freshman Molly Sykes (Falmouth, MA) won three events to lead the WPI women’s swimming & diving to a split decision with...

Announcements

More Swimming & Diving Videos - Click Here

Archived Swimming & Diving Videos - Click Here

« Nov Dec 2018 Jan »
S M T W T F S
25 26 27 28 29 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 4 5
Dec 1, 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

Dec 08
Women's Basketball Final
Clark
W, 62-44
Dec 08
Men's Basketball Final
at Salem State
W, 83-67
Dec 08
Wrestling Final
32 Wabash (IN)
9 WPI
Dec 08
Wrestling Final
14 Oneonta State (NY)
29 WPI
Dec 08
Wrestling Final
30 Johnson & Wales
6 WPI
Dec 08
Women's Swimming & Diving Final
169 WPI
145 at Wesleyan
Dec 08
Women's Swimming & Diving Final
84 WPI
237 vs. Tufts
@ Wesleyan
Dec 08
Women's Swimming & Diving Final
73 WPI
242 vs. Williams
@ Wesleyan
Dec 08
Men's Swimming & Diving Final
245 WPI
63 at Wesleyan
Dec 08
Men's Swimming & Diving Final
157 WPI
148 vs. Tufts
@ Wesleyan
Dec 16
Men's Basketball 1:00 PM
Husson
Dec 29
Men's Basketball 7:00 PM
vs. Maryville (TN)
@ Tampa, Fla.
Tampa Bay Shootout hosted by DePauw (IN)
Dec 30
Men's Basketball TBA
at Tampa Bay Shootout
vs. host DePauw (IN) or Otterbein (OH) (1pm or 3pm)
Dec 30
Women's Basketball 5:00 PM
UMass Boston
WPI Holiday Tournament
Dec 31
Women's Basketball TBA
WPI Holiday Tournament
(vs. Scranton or Roger Williams - 1pm or 3pm)
Jan 02
Men's Basketball 6:00 PM
at MIT
Jan 04
Wrestling TBA
WPI
vs. NWCA National Duals Day #1
@ Louisville, KY
Jan 05
Wrestling TBA
WPI
vs. NWCA National Duals Day #2
@ Louisville, KY
Jan 05
Women's Basketball 2:00 PM
Mount Holyoke
Jan 05
Men's Basketball 2:00 PM
at Babson