Official Men's Lacrosse Box Score

DeSales University vs. Moravian University

3/20/2024 at 7:00 PM — Bethlehem, Pa. (John Makuvek Field)

Attendance: 237Records: DeSales University (4-4) • Moravian University (3-4)

Team 1 2 3 4 Final
DeSales University 6 2 3 3 14
Moravian University 2 2 2 3 9
DeSales University — Goals: Beau Neff 3 ; Pat Wixted 1 ; Mark winkler jr
There was a problem with a Velocity script
Pagesports/mlax/2023-24/boxscores/lcxml-monospace-template
ErrorInvocation of method 'substring' in class java.lang.String threw exception java.lang.StringIndexOutOfBoundsException: String index out of range: 1 at u0aa111by51s7w5ssports/mlax/2023-24/boxscores/lcxml-monospace-template[line 158, column 11]
Page source:
1: ## LACROSSE BOX SCORE
2: 
3: ## Resolve the view: start from $stats.view, allow URL param override for 'pdf'
4: #set ($view = $stats.view)
5: #set ($viewParam = $request.getParameter("view"))
6: #if ($viewParam == 'pdf')
7:     #set ($view = $viewParam)
8: #end
9: 
10: #if ($view != "pdf")
11:     $website.decorate("printer-decorator")
12: #end
13: 
14: ## ============================================================
15: ## VARIABLES
16: ## ============================================================
17: 
18: #set ($sportCode = $document.getRootElement().valueOf("network/@sportCode"))
19: #if ($sportCode == "")
20:     #set ($sportCode = $sport)
21: #end
22: #set ($menLacrosseSportCode   = 6)
23: #set ($womenLacrosseSportCode = 10)
24: 
25: #if ($sportCode == $menLacrosseSportCode)
26:     #set ($gender = 'M')
27: #else
28:     #set ($gender = 'F')
29: #end
30: 
31: #set ($periodRule = $tool.math.toInteger($document.valueOf("lcgame/venue/rules/@prds")))
32: 
33: #set ($home    = $document.valueOf("lcgame/team[@vh='H']/@name"))
34: #set ($visitor = $document.valueOf("lcgame/team[@vh='V']/@name"))
35: #set ($status  = $tool.math.toInteger($document.valueOf("lcgame/status/@period")))
36: #set ($clock   = $document.valueOf("lcgame/status/@clock"))
37: 
38: #set ($periods     = $document.numberValueOf("lcgame/team[@vh='V']/linescore/@periods"))
39: #set ($periods     = $tool.math.toInteger($periods))
40: #set ($periodRange = [1..$periods])
41: 
42: #set ($linkPlayers    = $stats.linkPlayers)
43: #set ($linkPlayersBase = $stats.linkPlayersBase)
44: #set ($linkTeams      = $stats.linkTeams)
45: #set ($linkTeamsBase  = $stats.linkTeamsBase)
46: 
47: #set ($shootoutScores = {"V" : 0, "H" : 0})
48: #set ($hasPlayByPlay  = $document.selectNodes("lcgame/plays/period").size() > 0)
49: 
50: #set ($isNeutralGame = $document.valueOf("lcgame/venue/@neutralgame"))
51: #if ($isNeutralGame.length() > 0 && $isNeutralGame.equals("Y"))
52:     #set ($isNeutralGame = true)
53: #else
54:     #set ($isNeutralGame = false)
55: #end
56: 
57: #if ($stats.pageUrl.length() > 0 && !$stats.pageUrl.contains("?"))
58:     #set ($paramSep = "?")
59: #else
60:     #set ($paramSep = "&")
61: #end
62: 
63: #set ($visname  = $document.valueOf("lcgame/venue/@visname"))
64: #set ($homename = $document.valueOf("lcgame/venue/@homename"))
65: #set ($visid    = $document.valueOf("lcgame/venue/@visid"))
66: #set ($homeid   = $document.valueOf("lcgame/venue/@homeid"))
67: #set ($location = $document.valueOf("lcgame/venue/@location"))
68: #set ($stadium  = $document.valueOf("lcgame/venue/@stadium"))
69: #set ($date     = $document.valueOf("lcgame/venue/@date"))
70: #set ($time     = $document.valueOf("lcgame/venue/@start"))
71: #set ($attend   = $document.valueOf("lcgame/venue/@attend"))
72: #set ($schedNote = $document.valueOf("lcgame/venue/@schednote"))
73: 
74: ## SORT GOALIES BY GOALIECHANGES NODE
75: #set ($visitorGoaliesOrder = [])
76: #set ($homeGoaliesOrder    = [])
77: 
78: #foreach ($node in $document.selectNodes("lcgame/goaliechanges/goaliechange"))
79:     #if ($node.attributeValue('vh') == 'V')
80:         #if ($!visitorGoaliesOrder.add($node.attributeValue('uni')))#end
81:     #else
82:         #if ($!homeGoaliesOrder.add($node.attributeValue('uni')))#end
83:     #end
84: #end
85: 
86: ## ============================================================
87: ## MACROS
88: ## ============================================================
89: 
90: #macro (period $p)
91:     #set ($p = $tool.math.toInteger($p))
92:     #if ($p <= $periodRule)
93:         #if ($p == 1)1st
94:         #elseif ($p == 2)2nd
95:         #elseif ($p == 3)3rd
96:         #elseif ($p == 4)4th
97:         #end
98:     #else
99:         #set ($ot = $p - $periodRule)
100:         #if ($ot > 1)${ot}OT#else OT#end
101:     #end
102: #end
103: 
104: #macro (printPeriodHeadCoach)
105:     #set ($ot = 0)
106:     #foreach ($i in $periodRange)
107:         #if (($gender == 'M' && $i > 4) || ($gender == 'F' && $i > 2))
108:             #set ($ot = $ot + 1)
109:             #if ($ot > 1)<th>${ot}OT</th>#else<th>OT</th>#end
110:         #else
111:             <th>$i</th>
112:         #end
113:     #end
114: #end
115: 
116: #macro (shots $ga $saves)
117:     #if ($saves.length() > 0)
118:         $tool.math.add($ga, $saves)
119:     #end
120: #end
121: 
122: #macro (pp $ppg $ppopp)
123:     #if ($ppopp.length() > 0)
124:         $formatter.formatNumber($tool.math.div($ppopp, $ppg), 3)
125:     #end
126: #end
127: 
128: #macro (shootout $shootouts $t)
129:     #foreach ($shot in $shootouts)
130:         #if ($shot.valueOf("@vh") == $t)
131:             #if ($shot.valueOf("@result") == "MADE")
132:                 #set ($score = $shootoutScores.get($t))
133:                 #set ($score = $tool.math.add($score, 1))
134:                 #set ($score = $shootoutScores.put($t, $score))
135:                 Goal
136:             #else
137:                 No Goal
138:             #end
139:             - #${shot.valueOf("@uni")} ${shot.valueOf("@name")}<br />
140:         #end
141:     #end
142: #end
143: 
144: #macro (calculateFaceoff $pVal $period $team)
145:     #if ($team.attributeValue("name") == $visitor)
146:         #set ($otherTeam = $document.selectSingleNode("lcgame/team[@vh='H']"))
147:     #else
148:         #set ($otherTeam = $document.selectSingleNode("lcgame/team[@vh='V']"))
149:     #end
150:     #set ($add1 = $team.valueOf("linescore/lineprd[$period]/@fowon"))
151:     #set ($add2 = $otherTeam.valueOf("linescore/lineprd[$period]/@fowon"))
152:     #if ($add1.length() > 0 && $add2.length() > 0)
153:         ${pVal}-$tool.math.add($add1, $add2)
154:     #end
155: #end
156: 
157: #macro (capitalize $name)
158:     $name.substring(0,1).toUpperCase()$name.substring(1).toLowerCase()
159: #end
160: 
161: #macro (printScoringName $name)
162:     #set ($name = $name.toLowerCase())
163:     #set ($comaIndex     = $name.indexOf(','))
164:     #set ($comaIndexNext = $comaIndex + 1)
165:     #if ($comaIndex > -1)
166:         #capitalize($name.substring($comaIndexNext)) #capitalize($name.substring(0, $comaIndex))
167:     #else
168:         #capitalize($name)
169:     #end
170: #end
171: 
172: #macro (printScoring $team)
173:     <strong>$team.valueOf("@name") &mdash; Goals:</strong>
174:     #set ($playerShown = false)
175:     #foreach ($stat in $team.selectNodes("player/shots[@g]"))
176:         #if ($stat.numberValueOf("@g") > 0)
177:             #if ($playerShown); #end
178:             #set ($playerShown = true)
179:             #printScoringName($stat.valueOf('../@checkname')) $stat.valueOf('@g')
180:         #end
181:     #end
182:     .
183:     <strong>Assists:</strong>
184:     #set ($playerShown = false)
185:     #foreach ($stat in $team.selectNodes("player/shots[@a]"))
186:         #if ($stat.numberValueOf("@a") > 0)
187:             #if ($playerShown); #end
188:             #set ($playerShown = true)
189:             #printScoringName($stat.valueOf('../@checkname')) $stat.valueOf('@a')
190:         #end
191:     #end
192:     .
193: #end
194: 
195: ## PLAYER STATS TABLE
196: #macro (playerstatsCoach $team)
197: <table>
198:     <thead>
199:     <tr>
200:         <th class="align-left">POS</th>
201:         <th class="align-left col-num">#</th>
202:         <th class="align-left">Player</th>
203:         <th>G</th>
204:         <th>A</th>
205:         <th>Pts</th>
206:         <th>Sh</th>
207:         <th>SOG</th>
208:         <th>GB</th>
209:         #if ($gender == 'M')<th>Face</th>#elseif ($gender == 'F')<th>DC</th>#end
210:         #if ($gender == 'F')<th>FPS</th>#end
211:         <th>T/O</th>
212:         <th>CT</th>
213:         #if ($gender == 'M')<th>Pen-Min</th>#elseif ($gender == 'F')<th>Fouls</th>#end
214:     </tr>
215:     </thead>
216:     <tbody>
217:     #foreach ($stat in $team.selectNodes("player/shots"))
218:         #if ($velocityCount % 2 == 0)
219:             #set ($row = "even")
220:         #else
221:             #set ($row = "odd")
222:         #end
223:         <tr class="$row">
224:             <td class="align-left">$stat.valueOf("../@pos")</td>
225:             <td>$!stat.valueOf("../@uni")</td>
226:             <td class="align-left">
227:                 #if($stat.valueOf("../@playerId").length() > 0 and $linkPlayers)
228:                     <a href="$!linkPlayersBase?id=${stat.valueOf("../@playerId")}">
229:                 #end
230:                 $stat.valueOf("../@name")
231:                 #if($stat.valueOf("../@playerId").length() > 0 and $linkPlayers)</a>#end
232:                 #if($stat.valueOf("../@gs").length() > 0)*#end
233:             </td>
234:             <td>$!stat.valueOf("@g")</td>
235:             <td>$!stat.valueOf("@a")</td>
236:             <td>$tool.math.add($!stat.valueOf("@g"), $!stat.valueOf("@a"))</td>
237:             <td>$!stat.valueOf("@sh")</td>
238:             <td>$!stat.valueOf("@sog")</td>
239:             <td>$!stat.valueOf("../misc/@gb")</td>
240:             #if ($gender == 'M')<td>$!stat.valueOf("../misc/@facewon")-$!tool.math.add($!stat.valueOf("../misc/@facewon"), $!stat.valueOf("../misc/@facelost"))</td>
241:             #elseif ($gender == 'F')<td>$!stat.valueOf("../misc/@dc")</td>#end
242:             #if ($gender == 'F')<td>$!stat.valueOf("../shots/@freepos")</td>#end
243:             <td>$!stat.valueOf("../misc/@turnover")</td>
244:             <td>$!stat.valueOf("../misc/@ct")</td>
245:             #if ($gender == 'M')<td>$!stat.valueOf("../penalty/@count")-$!stat.valueOf("../penalty/@seconds")</td>
246:             #elseif ($gender == 'F')<td>$!stat.valueOf("../penalty/@foul")</td>#end
247:         </tr>
248:     #end
249:     <tr class="totals">
250:         <td colspan="3" class="align-left">Totals</td>
251:         <td>$team.valueOf("totals/shots/@g")</td>
252:         <td>$team.valueOf("totals/shots/@a")</td>
253:         <td>$tool.math.add($!team.valueOf("totals/shots/@g"), $!team.valueOf("totals/shots/@a"))</td>
254:         <td>$team.valueOf("totals/shots/@sh")</td>
255:         <td>$team.valueOf("totals/shots/@sog")</td>
256:         <td>$team.valueOf("totals/misc/@gb")</td>
257:         #if ($gender == 'M')<td>$team.valueOf("totals/misc/@facewon")-$!tool.math.add($!team.valueOf("totals/misc/@facewon"), $!team.valueOf("totals/misc/@facelost"))</td>
258:         #elseif ($gender == 'F')<td>$!team.valueOf("totals/misc/@dc")</td>#end
259:         #if ($gender == 'F')<td>$!team.valueOf("totals/shots/@freepos")</td>#end
260:         <td>$team.valueOf("totals/misc/@turnover")</td>
261:         <td>$team.valueOf("totals/misc/@ct")</td>
262:         #if ($gender == 'M')<td>$!team.valueOf("totals/penalty/@count")-$!team.valueOf("totals/penalty/@seconds")</td>
263:         #elseif ($gender == 'F')<td>$!team.valueOf("totals/penalty/@foul")</td>#end
264:     </tr>
265:     </tbody>
266: </table>
267: 
268: #if ($team.selectNodes("player/goalie").size() >= 1)
269: <table>
270:     <thead>
271:     <tr>
272:         <th class="align-left col-num">#</th>
273:         <th class="align-left">Goalies</th>
274:         <th>Min</th>
275:         <th>GA</th>
276:         <th>W/L</th>
277:         <th>Saves</th>
278:     </tr>
279:     </thead>
280:     <tbody>
281:     #foreach ($stat in $team.selectNodes("player/goalie"))
282:         #if ($stat.valueOf("@minutes") != "0:00")
283:             #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
284:             #set ($ga = $stat.numberValueOf("@ga"))
285:             #set ($winLoss = " ")
286:             #if($stat.valueOf("@win").length() > 0)#set ($winLoss = "W")
287:             #elseif($stat.valueOf("@loss").length() > 0)#set ($winLoss = "L")
288:             #end
289:             <tr class="$row">
290:                 <td class="align-left">$!stat.valueOf("../@uni")</td>
291:                 <td class="align-left">$stat.valueOf("../@name")</td>
292:                 <td>$!stat.valueOf("@minutes")</td>
293:                 <td>$!formatter.formatNumber($ga, "#")</td>
294:                 <td>$winLoss</td>
295:                 <td>$!stat.valueOf("@saves")</td>
296:             </tr>
297:         #end
298:     #end
299:     </tbody>
300: </table>
301: #end
302: #end ##macro
303: 
304: ## TEAM STAT PERIOD TABLE
305: #macro (teamStatPeriodTable $title $xpath $total)
306: <table class="period-stat-table">
307:     <thead>
308:     <tr>
309:         <th class="align-left">$title</th>
310:         #printPeriodHeadCoach()
311:         <th>Total</th>
312:     </tr>
313:     </thead>
314:     <tbody>
315:     #foreach ($team in $document.selectNodes("lcgame/team"))
316:         #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
317:         <tr class="$row">
318:             <td class="align-left">$team.attributeValue("name")</td>
319:             #foreach ($i in $periodRange)
320:                 <td>$team.valueOf("linescore/lineprd[$i]/$xpath")</td>
321:             #end
322:             <td>$team.valueOf($total)</td>
323:         </tr>
324:     #end
325:     </tbody>
326: </table>
327: #end
328: 
329: ## ============================================================
330: ## PAGE OUTPUT
331: ## ============================================================
332: 
333: <head>
334:     <title>$visname #if($isNeutralGame)vs.#else at #end $homename | #if($gender == 'M')Men's#else Women's#end Lacrosse Box Score#if($date.length() > 0) | $date#end</title>
335:     <link rel="stylesheet" href="https://theme-assets.prestosports.com/theme-assets/generic/assets/css/xml-monospace.css">
336: </head>
337: 
338: <div class="mono-print-page clearfix">
339: 
340: #set ($visitorTeamId = $document.valueOf("lcgame/team[@vh='V']/@teamId"))
341: #set ($homeTeamId    = $document.valueOf("lcgame/team[@vh='H']/@teamId"))
342: 
343:     <!-- PAGE HEADER -->
344:     <div class="mono-print-header">
345:         <div class="mono-header-inner">
346:             <div class="mono-header-logo">
347:                 #if ($visitorTeamId.length() > 0)
348:                 <div class="mono-team-logo" style="background-image: url('$website.teamLogo($!visitorTeamId)')" role="img" aria-label="$visname"></div>
349:                 #end
350:             </div>
351:             <div class="mono-header-center">
352:                 <div class="mono-pre-header">Official #if($gender == 'M')Men's#elseif($gender == 'F')Women's#end Lacrosse Box Score</div>
353:                 <h1>$visname vs. $homename</h1>
354:                 <p class="game-info game-info-primary">
355:                     $date#if($time.length() > 0) at $time#end#if($location.length() > 0) &mdash; $location#if($stadium.length() > 0) ($stadium)#end#end
356:                 </p>
357:                 #set ($hasRecords = false)
358:                 #foreach ($team in $document.selectNodes("lcgame/team"))
359:                     #if ($team.valueOf("@record").length() > 0)#set ($hasRecords = true)#end
360:                 #end
361:                 #set ($sep = "")
362:                 <p class="game-info">
363:                     #if ($schedNote.length() > 0)${sep}$schedNote#set ($sep = " &bull; ")#end
364:                     #if ($attend.length() > 0)${sep}<span class="game-info-item"><strong>Attendance:</strong> $attend</span>#set ($sep = " &bull; ")#end
365:                     #if ($hasRecords)${sep}<span class="game-info-item"><strong>Records:</strong> #set ($recSep = "")#foreach ($team in $document.selectNodes("lcgame/team"))#if ($team.valueOf("@record").length() > 0)${recSep}$team.attributeValue("name") ($team.valueOf("@record"))#set ($recSep = " &bull; ")#end#end</span>#set ($sep = " &bull; ")#end
366:                 </p>
367:             </div>
368:             <div class="mono-header-logo">
369:                 #if ($homeTeamId.length() > 0)
370:                 <div class="mono-team-logo" style="background-image: url('$website.teamLogo($!homeTeamId)')" role="img" aria-label="$homename"></div>
371:                 #end
372:             </div>
373:         </div>
374:     </div>
375: 
376:     <!-- CONTENT -->
377:     <div class="mono-print-content">
378: 
379:         <!-- SCORE BY PERIOD -->
380:         <div class="mono-score-wrap">
381:             <div class="mono-section-label">Score by Period</div>
382:             <table class="period-stat-table">
383:                 <thead>
384:                 <tr>
385:                     <th class="align-left">Team</th>
386:                     #printPeriodHeadCoach()
387:                     <th>#if($stats.final)Final#else#period($status)#if($clock.length() > 0) $clock#end#end</th>
388:                 </tr>
389:                 </thead>
390:                 <tbody>
391:                 #foreach ($team in $document.selectNodes("lcgame/team"))
392:                     #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
393:                     <tr class="$row">
394:                         <td class="align-left">$team.attributeValue("name")</td>
395:                         #foreach ($i in $periodRange)
396:                             <td>$team.valueOf("linescore/lineprd[$i]/@score")</td>
397:                         #end
398:                         <td>$team.valueOf("linescore/@score")</td>
399:                     </tr>
400:                 #end
401:                 </tbody>
402:             </table>
403:         </div>
404: 
405:         <!-- SCORING BY TEAM -->
406:         <div class="mono-section-label">Scoring</div>
407:         <div class="mono-summary">
408:             #printScoring($document.selectSingleNode("lcgame/team[@vh='V']"))
409:             <br />
410:             #printScoring($document.selectSingleNode("lcgame/team[@vh='H']"))
411:         </div>
412: 
413:         <!-- TEAM STATISTICS BY PERIOD -->
414:         <div class="mono-section-label">Team Statistics</div>
415: 
416:         <!-- ROW 1: SHOTS + GROUND BALLS -->
417:         <div class="mono-halfbox-left">
418:             #teamStatPeriodTable("Shots by Period", "@shots", "linescore/@shots")
419:         </div>
420:         <div class="mono-halfbox-right">
421:             #teamStatPeriodTable("Ground Balls by Prd", "@gb", "totals/misc/@gb")
422:         </div>
423:         <div class="clear"></div>
424: 
425:         <!-- ROW 2: FACE-OFFS (M) / DRAW CONTROLS (F) + CLEARS -->
426:         #if ($gender == 'M')
427:         <div class="mono-halfbox-left">
428:         <table class="period-stat-table">
429:             <thead>
430:             <tr>
431:                 <th class="align-left">Face-offs by Prd</th>
432:                 #printPeriodHeadCoach()
433:                 <th>Total</th>
434:             </tr>
435:             </thead>
436:             <tbody>
437:             #foreach ($team in $document.selectNodes("lcgame/team"))
438:                 #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
439:                 <tr class="$row">
440:                     <td class="align-left">$team.attributeValue("name")</td>
441:                     #foreach ($i in $periodRange)
442:                         #set ($tfo = $team.valueOf("linescore/lineprd[$i]/@fowon"))
443:                         <td>#calculateFaceoff($tfo $i $team)</td>
444:                     #end
445:                     <td>$team.valueOf("totals/misc/@facewon")-$tool.math.add($team.valueOf("totals/misc/@facewon"), $team.valueOf("totals/misc/@facelost"))</td>
446:                 </tr>
447:             #end
448:             </tbody>
449:         </table>
450:         </div>
451:         #elseif ($gender == 'F')
452:         <div class="mono-halfbox-left">
453:             #teamStatPeriodTable("Draw Controls by Prd", "@dc", "totals/misc/@dc")
454:         </div>
455:         #end
456:         <div class="mono-halfbox-right">
457:         <table class="period-stat-table">
458:             <thead>
459:             <tr>
460:                 <th class="align-left">Clears</th>
461:                 #printPeriodHeadCoach()
462:                 <th>Total</th>
463:             </tr>
464:             </thead>
465:             <tbody>
466:             #foreach ($team in $document.selectNodes("lcgame/team"))
467:                 #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
468:                 <tr class="$row">
469:                     <td class="align-left">$team.attributeValue("name")</td>
470:                     #foreach ($i in $periodRange)
471:                         <td>$team.valueOf("linescore/lineprd[$i]/@clearm")-$team.valueOf("linescore/lineprd[$i]/@cleara")</td>
472:                     #end
473:                     <td>$team.valueOf("totals/clear/@clearm")-$team.valueOf("totals/clear/@cleara")</td>
474:                 </tr>
475:             #end
476:             </tbody>
477:         </table>
478:         </div>
479:         <div class="clear"></div>
480: 
481:         <!-- ROW 3: EXTRA-MAN (M) / FREE POSITION SHOTS (F) + SAVES -->
482:         #if ($gender == 'M')
483:         <div class="mono-halfbox-left">
484:         <table class="period-stat-table">
485:             <thead>
486:             <tr>
487:                 <th class="align-left">Extra-Man Opps</th>
488:                 #printPeriodHeadCoach()
489:                 <th>Total</th>
490:             </tr>
491:             </thead>
492:             <tbody>
493:             #foreach ($team in $document.selectNodes("lcgame/team"))
494:                 #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
495:                 <tr class="$row">
496:                     <td class="align-left">$team.attributeValue("name")</td>
497:                     #foreach ($i in $periodRange)
498:                         <td>$team.valueOf("linescore/lineprd[$i]/@ppg")-$team.valueOf("linescore/lineprd[$i]/@ppatt")</td>
499:                     #end
500:                     <td>$team.valueOf("totals/powerplay/@ppg")-$team.valueOf("totals/powerplay/@ppopp")</td>
501:                 </tr>
502:             #end
503:             </tbody>
504:         </table>
505:         </div>
506:         #elseif ($gender == 'F')
507:         <div class="mono-halfbox-left">
508:         <table class="period-stat-table">
509:             <thead>
510:             <tr>
511:                 <th class="align-left">Free Position Shots</th>
512:                 #printPeriodHeadCoach()
513:                 <th>Total</th>
514:             </tr>
515:             </thead>
516:             <tbody>
517:             #foreach ($team in $document.selectNodes("lcgame/team"))
518:                 #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
519:                 <tr class="$row">
520:                     <td class="align-left">$team.attributeValue("name")</td>
521:                     #foreach ($i in $periodRange)
522:                         <td>$team.valueOf("linescore/lineprd[$i]/@fpg")-$team.valueOf("linescore/lineprd[$i]/@fps")</td>
523:                     #end
524:                     <td>$team.valueOf("totals/goaltype/@freepos")-$team.valueOf("totals/shots/@freepos")</td>
525:                 </tr>
526:             #end
527:             </tbody>
528:         </table>
529:         </div>
530:         #end
531:         <div class="mono-halfbox-right">
532:             #teamStatPeriodTable("Saves by Period", "@saves", "totals/goalie/@saves")
533:         </div>
534:         <div class="clear"></div>
535: 
536:         <!-- ROW 4: FOULS (F) + TURNOVERS / TURNOVERS only (M) -->
537:         #if ($gender == 'F')
538:         <div class="mono-halfbox-left">
539:         <table class="period-stat-table">
540:             <thead>
541:             <tr>
542:                 <th class="align-left">Fouls by Prd</th>
543:                 #printPeriodHeadCoach()
544:                 <th>Total</th>
545:             </tr>
546:             </thead>
547:             <tbody>
548:             #foreach ($team in $document.selectNodes("lcgame/team"))
549:                 #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
550:                 #set ($foulTotal = 0)
551:                 <tr class="$row">
552:                     <td class="align-left">$team.attributeValue("name")</td>
553:                     #foreach ($i in $periodRange)
554:                         #set ($foulVal = $team.valueOf("linescore/lineprd[$i]/@fouls"))
555:                         #if ($foulVal.length() > 0)
556:                             #set ($foulTotal = $tool.math.add($foulTotal, $foulVal))
557:                             <td>$foulVal</td>
558:                         #else
559:                             <td></td>
560:                         #end
561:                     #end
562:                     <td>$foulTotal</td>
563:                 </tr>
564:             #end
565:             </tbody>
566:         </table>
567:         </div>
568:         <div class="mono-halfbox-right">
569:             #teamStatPeriodTable("Turnovers by Prd", "@turnover", "totals/misc/@turnover")
570:         </div>
571:         <div class="clear"></div>
572:         #else
573:         <div class="mono-halfbox-left">
574:             #teamStatPeriodTable("Turnovers by Prd", "@turnover", "totals/misc/@turnover")
575:         </div>
576:         <div class="clear"></div>
577:         #end
578: 
579:         <!-- SCORING SUMMARY -->
580:         <div class="mono-section-label">Scoring Summary</div>
581:         <div class="mono-fullbox">
582:             <table>
583:                 <thead>
584:                 <tr>
585:                     <th class="align-left"></th>
586:                     <th class="align-left">Prd</th>
587:                     <th class="align-left">Time</th>
588:                     <th class="align-left">Team</th>
589:                     <th class="align-left">Type</th>
590:                     <th class="align-left">Goal Scorer</th>
591:                     <th class="align-left">Assists</th>
592:                     #if ($hasPlayByPlay)<th class="align-left">H-V</th>#end
593:                 </tr>
594:                 </thead>
595:                 <tbody>
596:                 #set ($currentPeriod = '')
597:                 #set ($currentscoreNodes = $document.selectNodes("//currentscore"))
598:                 #set ($shownStats = "")
599:                 #foreach ($score in $document.selectNodes("lcgame/scores/score"))
600:                     #set ($pd   = $score.valueOf("@prd"))
601:                     #set ($type = $score.valueOf("@type"))
602:                     #set ($shownStats = "y")
603:                     #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
604:                     <tr class="$row">
605:                         <td class="align-left">$velocityCount.</td>
606:                         <td class="align-left">#if($currentPeriod != $pd)#period($pd)#set($currentPeriod = $pd)#else &#160;#end</td>
607:                         <td class="align-left">$score.valueOf("@time")</td>
608:                         <td class="align-left">
609:                             #if($score.valueOf("@vh") == 'H')$homeid#end
610:                             #if($score.valueOf("@vh") == 'V')$visid#end
611:                         </td>
612:                         <td class="align-left">
613:                             #if($type == 'PP')UP
614:                             #elseif($type == 'SH')DN
615:                             #else $!type
616:                             #end
617:                         </td>
618:                         <td class="align-left">
619:                             #if($score.valueOf("@playerId").length() > 0 and $linkPlayers)
620:                                 <a href="$!linkPlayersBase?id=${score.valueOf("@playerId")}">
621:                             #end
622:                             $score.valueOf("@name")
623:                             #if($score.valueOf("@playerId").length() > 0 and $linkPlayers)</a>#end
624:                         </td>
625:                         <td class="align-left">
626:                             #if($score.valueOf("@assist1").length() > 0)
627:                                 #if($score.valueOf("@assist1Id").length() > 0 and $linkPlayers)<a href="$!linkPlayersBase?id=${score.valueOf("@assist1Id")}">#end
628:                                 $score.valueOf("@assist1")
629:                                 #if($score.valueOf("@assist1Id").length() > 0 and $linkPlayers)</a>#end
630:                             #else
631:                                 #if($hasPlayByPlay && $gender == 'F')
632:                                     #set ($scoreTime = $score.valueOf("@time"))
633:                                     #set ($fpsFlag = false)
634:                                     #foreach ($fpsNode in $document.selectNodes("//play[@action='FPS']"))
635:                                         #if($fpsNode.valueOf("@clock") == $scoreTime)#set($fpsFlag = true)#end
636:                                     #end
637:                                     #if($fpsFlag)Free position shot#else unassisted#end
638:                                 #else
639:                                     unassisted
640:                                 #end
641:                             #end
642:                             #if($score.valueOf("@assist2").length() > 0)
643:                                 &amp;
644:                                 #if($score.valueOf("@assist2Id").length() > 0 and $linkPlayers)<a href="$!linkPlayersBase?id=${score.valueOf("@assist2Id")}">#end
645:                                 $score.valueOf("@assist2")
646:                                 #if($score.valueOf("@assist2Id").length() > 0 and $linkPlayers)</a>#end
647:                             #end
648:                         </td>
649:                         #if($hasPlayByPlay && $currentscoreNodes.size() > $tool.math.sub($velocityCount, 1))
650:                             #set ($currentScore = $currentscoreNodes.get($tool.math.sub($velocityCount, 1)))
651:                             <td class="align-left">$currentScore.valueOf("@hscore")-$currentScore.valueOf("@vscore")</td>
652:                         #end
653:                     </tr>
654:                 #end
655:                 #if ($shownStats == "")
656:                     <tr><td colspan="7" class="align-left">(no scoring)</td></tr>
657:                 #end
658:                 </tbody>
659:             </table>
660:         </div>
661: 
662:         <!-- VISITOR INDIVIDUAL STATISTICS -->
663:         <div class="mono-section-label">$visname &mdash; Individual Statistics</div>
664:         <div class="mono-fullbox">
665:             #playerstatsCoach($document.selectSingleNode("lcgame/team[@vh='V']"))
666:         </div>
667: 
668:         <!-- HOME INDIVIDUAL STATISTICS -->
669:         <div class="mono-section-label">$homename &mdash; Individual Statistics</div>
670:         <div class="mono-fullbox">
671:             #playerstatsCoach($document.selectSingleNode("lcgame/team[@vh='H']"))
672:         </div>
673: 
674:         #if ($document.selectNodes("lcgame/team/player[@gs]").size() > 0)
675:         <div class="mono-summary">* = Starter</div>
676:         #end
677: 
678:         <!-- PENALTY SUMMARY -->
679:         <div class="mono-section-label">Penalty Summary</div>
680:         <div class="mono-fullbox">
681:             <table>
682:                 <thead>
683:                 <tr>
684:                     <th class="align-left">Prd</th>
685:                     <th class="align-left">Time</th>
686:                     <th class="align-left">Team</th>
687:                     <th class="align-left">Player</th>
688:                     <th class="align-left">Min</th>
689:                     <th class="align-left">Offence</th>
690:                 </tr>
691:                 </thead>
692:                 <tbody>
693:                 #set ($shownStats = "")
694:                 #foreach ($penalty in $document.selectNodes("lcgame/penalties/pen"))
695:                     #set ($shownStats = "y")
696:                     #if ($velocityCount % 2 == 0)#set ($row = "even")#else#set ($row = "odd")#end
697:                     <tr class="$row">
698:                         <td class="align-left">#period($penalty.valueOf("@prd"))</td>
699:                         <td class="align-left">$penalty.valueOf("@time")</td>
700:                         <td class="align-left">
701:                             #if($penalty.valueOf("@vh") == 'H')$homeid#end
702:                             #if($penalty.valueOf("@vh") == 'V')$visid#end
703:                         </td>
704:                         <td class="align-left">$penalty.valueOf("@name")</td>
705:                         <td class="align-left">$!penalty.valueOf("@minutes") $!penalty.valueOf("@type")</td>
706:                         <td class="align-left">$!penalty.valueOf("@desc")</td>
707:                     </tr>
708:                 #end
709:                 #if ($shownStats == "")
710:                     <tr><td colspan="6" class="align-left">(no penalties)</td></tr>
711:                 #end
712:                 #if ($gender == 'M')
713:                 <tr>
714:                     <td colspan="6" class="align-left">
715:                         <strong>Penalty Totals:</strong>
716:                         #foreach ($team in $document.selectNodes("lcgame/team"))
717:                             #set ($penaltySeconds = $team.valueOf("totals/penalty/@seconds"))
718:                             #set ($penaltyCount   = $team.valueOf("totals/penalty/@count"))
719:                             #if ($penaltySeconds.length() > 0 && $penaltyCount.length() > 0)
720:                                 #set ($penaltySeconds = $tool.math.toInteger($penaltySeconds))
721:                                 #set ($remainder      = $penaltySeconds % 60)
722:                                 #set ($penaltyMinutes = $tool.math.toInteger($tool.math.div($penaltySeconds, 60)))
723:                                 #if ($penaltyMinutes > 1)#set ($minString = "${penaltyMinutes} minutes")#else#set ($minString = "${penaltyMinutes} minute")#end
724:                                 #set ($secString = "")
725:                                 #if ($remainder > 0)
726:                                     #if ($remainder > 1)#set ($secString = "${remainder} seconds")#else#set ($secString = "${remainder} second")#end
727:                                 #end
728:                                 <strong>$team.attributeValue("name"):</strong> $minString $secString on $penaltyCount infraction(s)
729:                                 #if ($foreach.hasNext); #end
730:                             #end
731:                         #end
732:                     </td>
733:                 </tr>
734:                 #end
735:                 </tbody>
736:             </table>
737:         </div>
738: 
739: 
740:     </div><!-- /.mono-print-content -->
741: 
742:     <!-- PAGE FOOTER -->
743:     $website.include("statxml-footer-template")
744: 
745: </div><!-- /.mono-print-page -->