2018-19 Baseball Statistics - Arizona

Games 56
Runs 548
Batting Average .326
On Base Percentage .432
Slugging Percentage .533
Home Runs 67
Schedule Summary
Overall (Pct.)32-24 (.571)
Conference (Pct.) 15-14 (.517)
StreakWon 10
Home3-2
Away1-1
Neutral28-21
Full Scores and Schedule »
Recent Games
May 16 vs. Penn St. W, 11-2
May 17 vs. Penn St. W, 15-5
May 18 vs. Penn St. W, 9-5
May 23 vs. Washington State W, 21-4
May 24 vs. Washington State W, 10-4
May 25 vs. Washington State W, 15-7
Statistics category Overall Conf
Games 56 5th 29 3rd
At Bats 2015 3rd 1048 3rd
Runs 548 1st 261 1st
Hits 656 1st 332 1st
Doubles 154 1st 78 1st
Triples 32 1st 19 1st
Home Runs 67 4th 37 5th
Runs Batted In 503 1st 242 1st
Extra Base Hits 253 1st 134 1st
Total Bases 1075 1st 559 1st
Walks 350 1st 158 1st
Hit by pitch 56 4th 25 3rd
Strikeouts 438 5th 240 5th
Sacrifice Flies 37 3rd 15 3rd
Sacrifice Hits 20 8th 10 8th
Hit into double play 42 6th 19 5th
Stolen Bases 31 9th 7 11th
Caught Stealing 13 8th 7 7th
Batting Average .326 1st .317 1st
On Base Percentage .432 1st .413 1st
Slugging Percentage .533 1st .533 1st
Earned Run Average 6.21 10th 7.05 9th
Shutouts 1 10th 1 4th
At Bats Against 1967 5th 1020 5th
Batting Average Against .287 8th .293 8th
Home Attendance 9857 5th - -
Home Attendance average 1971.4 3rd - -
Hitting
No. Name Yr Pos g ab r h 2b 3b hr rbi bb k sb cs avg obp slg
35 Cameron Cannon Jr INF 56 232 71 92 29 3 8 56 35 29 - 1 .397 .478 .651
13 Nick Quintana Jr INF 56 222 65 76 18 - 15 77 45 54 3 - .342 .462 .626
16 Austin Wells Fr C/1B 56 221 73 78 15 7 5 60 46 43 6 - .353 .462 .552
23 Donta Williams So OF 56 206 58 55 11 6 2 35 34 45 7 3 .267 .396 .408
5 Matthew Dyer Jr C/UTL 42 168 46 66 10 4 4 28 22 28 5 3 .393 .480 .571
42 Ryan Holgate Fr OF 53 167 35 40 8 2 7 33 35 55 - - .240 .378 .437
8 Dayton Dooney Fr INF/1B 48 161 43 52 14 - 10 53 28 39 2 1 .323 .417 .596
12 Justin Wylie Sr OF 46 123 37 42 15 3 5 37 26 35 1 1 .341 .449 .634
45 Branden Boissiere Fr OF/1B/LH 39 110 27 37 6 1 2 24 17 25 - 1 .336 .430 .464
33 Tate Soderstrom So OF 41 90 14 22 8 1 1 25 12 22 - - .244 .333 .389
22 Matt Frazier Jr OF 19 85 20 35 6 2 1 28 6 6 5 1 .412 .452 .565
3 Tony Bullard Fr INF/RHP 36 83 23 25 7 1 2 17 11 14 - - .301 .412 .482
10 Jacob Blas So INF 17 57 14 14 2 1 - 8 10 11 2 1 .246 .362 .316
28 Blake Paugh So OF 35 52 11 14 4 - 4 14 13 21 - 1 .269 .443 .577
25 Tyler Casagrande Fr OF 31 22 2 3 1 - - 3 2 6 - - .136 .208 .182
1 Kobe Kato Fr C 21 12 8 3 - 1 - 3 7 4 - - .250 .500 .417
38 Ryan Archibald Fr 1B 5 4 1 2 - - 1 2 1 1 - - .500 .600 1.250
  Totals     56 2015 548 656 154 32 67 503 350 438 31 13 .326 .432 .533
  Opponent     56 1967 404 565 110 17 43 362 290 409 32 11 .287 .391 .426
Extended Hitting
No. Yr Pos
35 Cameron Cannon Jr INF 56 6 5 - 151 40 3 43 70 0.61 278
16 Austin Wells Fr C/1B 56 4 6 - 122 27 6 48 57 0.84 277
13 Nick Quintana Jr INF 56 6 2 1 139 33 5 38 53 0.72 276
23 Donta Williams So OF 56 12 3 3 84 19 1 47 58 0.81 258
42 Ryan Holgate Fr OF 53 4 3 - 73 17 7 30 43 0.70 209
5 Matthew Dyer Jr C/UTL 42 8 2 - 96 18 3 25 48 0.52 200
8 Dayton Dooney Fr INF/1B 48 - 3 3 96 24 1 31 43 0.72 195
12 Justin Wylie Sr OF 46 2 5 6 78 23 3 19 36 0.53 162
45 Branden Boissiere Fr OF/1B/LH 39 1 - 1 51 9 1 24 23 1.04 129
3 Tony Bullard Fr INF/RHP 36 6 2 3 40 10 4 25 20 1.25 105
33 Tate Soderstrom So OF 41 1 2 - 35 10 3 17 31 0.55 105
22 Matt Frazier Jr OF 19 1 1 1 48 9 1 25 21 1.19 94
28 Blake Paugh So OF 35 4 1 1 30 8 2 7 11 0.64 71
10 Jacob Blas So INF 17 1 1 - 18 3 1 18 12 1.50 69
25 Tyler Casagrande Fr OF 31 - - 1 4 1 1 10 4 2.50 25
1 Kobe Kato Fr C 21 - 1 - 5 1 - 1 4 0.25 20
38 Ryan Archibald Fr 1B 5 - - - 5 1 - 1 - - 5
  Totals     56 56 37 20 1075 253 42 409 534 0.77 2478
  Opponent     56 63 27 20 838 170 45 451 538 0.84 2367
Pitching
No. Yr Pos
17 Randy Labaut Jr LHP 15 13 8 3 0 - 85.0 93 54 49 32 79 8.36 8 5.19
40 Quinn Flanagan Fr RHP 17 13 8 3 1 1 67.2 75 48 37 26 42 5.59 4 4.92
18 Andrew Nardi Jr LHP 17 14 4 5 0 - 66.2 73 54 50 40 66 8.91 6 6.75
27 Avery Weems Sr LHP 27 8 4 5 2 1 61.2 85 63 49 19 47 6.86 7 7.15
26 Vince Vannelle Jr RHP 26 1 2 2 2 - 36.1 40 15 14 17 27 6.69 2 3.47
36 George Arias jr Fr RHP 21 1 1 0 1 - 30.2 38 36 26 19 26 7.63 1 7.63
21 Bryce Collins Fr RHP 7 4 0 2 1 - 22.1 23 17 13 15 16 6.45 3 5.24
15 Nate Brown Jr RHP 16 0 1 0 0 - 20.0 27 23 20 19 18 8.10 3 9.00
31 Cameron Haskell Sr RHP 14 0 0 1 1 - 20.0 17 14 13 11 18 8.10 1 5.85
4 Gil Luna So LHP 19 2 2 2 0 - 18.2 16 21 19 26 21 10.13 - 9.16
19 Zach Sherman So RHP 17 0 1 1 0 - 16.2 25 18 15 12 14 7.56 3 8.10
30 Preston Price Jr RHP 13 0 0 0 0 - 13.0 20 12 12 12 11 7.62 2 8.31
14 Jonathan Guardado So RHP 13 0 0 0 0 - 11.0 11 13 12 22 11 9.00 1 9.82
44 Randy Abshier Fr LHP 3 0 0 0 0 - 4.1 10 5 5 2 - .00 - 10.38
  Totals     56 56 32 24 9 2 489.2 565 404 338 290 409 7.52 43 6.21
  Opponent     56 56 24 32 9 - 482.0 656 548 476 350 438 8.18 67 8.89
Fielding
No. Yr Pos
16 Austin Wells Fr C/1B 56 423 390 27 6 .986 13 17 6 .261 10 1
5 Matthew Dyer Jr C/UTL 42 283 255 25 3 .989 9 14 4 .222 4 -
23 Donta Williams So OF 56 153 147 5 1 .993 2 - - - - -
3 Tony Bullard Fr INF/RHP 36 136 107 27 2 .985 10 - - - - -
35 Cameron Cannon Jr INF 56 243 87 134 22 .909 30 - - - - -
12 Justin Wylie Sr OF 46 135 84 47 4 .970 11 - - - - -
8 Dayton Dooney Fr INF/1B 48 139 82 48 9 .935 17 - - - - -
45 Branden Boissiere Fr OF/1B/LH 39 81 74 7 0 1.000 3 - - - - -
42 Ryan Holgate Fr OF 53 55 49 0 6 .891 - - - - - -
22 Matt Frazier Jr OF 19 45 42 1 2 .956 - - - - - -
13 Nick Quintana Jr INF 56 126 31 85 10 .921 8 - - - - -
1 Kobe Kato Fr C 21 32 28 4 0 1.000 - 1 - - - -
25 Tyler Casagrande Fr OF 31 23 21 0 2 .913 - - - - - -
10 Jacob Blas So INF 17 70 19 46 5 .929 9 - - - - -
28 Blake Paugh So OF 35 13 11 1 1 .923 - - - - - -
33 Tate Soderstrom So OF 41 9 7 2 0 1.000 - - - - - -
40 Quinn Flanagan Fr RHP 24 13 5 8 0 1.000 - 3 1 .250 - -
18 Andrew Nardi Jr LHP 18 22 5 17 0 1.000 - 7 3 .300 - -
31 Cameron Haskell Sr RHP 14 6 4 2 0 1.000 - 1 - - - -
27 Avery Weems Sr LHP 29 17 4 13 0 1.000 - 5 1 .167 - -
26 Vince Vannelle Jr RHP 26 9 3 5 1 .889 1 - 1 1.000 - -
15 Nate Brown Jr RHP 16 3 2 1 0 1.000 - 2 - - - -
14 Jonathan Guardado So RHP 13 4 2 2 0 1.000 - - - - - -
17 Randy Labaut Jr LHP 17 11 2 8 1 .909 1 1 1 .500 - -
30 Preston Price Jr RHP 13 4 2 2 0 1.000 - 1 - - - -
19 Zach Sherman So RHP 17 3 2 0 1 .667 - 1 - - - -
38 Ryan Archibald Fr 1B 5 2 1 1 0 1.000 - - - - - -
21 Bryce Collins Fr RHP 8 2 1 1 0 1.000 - 3 - - - -
44 Randy Abshier Fr LHP 3 1 0 0 1 .000 - - - - - -
36 George Arias jr Fr RHP 21 3 0 1 2 .333 - 4 1 .200 - -
4 Gil Luna So LHP 19 4 0 4 0 1.000 - 3 2 .400 - -
  Totals     56 2073 1469 525 79 .962 45 32 10 .238 14 1
  Opponent     56 1972 1446 441 85 .957 42 31 12 .279 14 1
There was a problem with a Velocity script
Pageteaminfo-network-template
ErrorVM #printLineupTabs: too many arguments to macro. Wanted 0 got 3 at teaminfo-network-template[line 679, column 17]
Page source:
1:   ## PICK UP OPTIONS
2:   $website.include("options")
3:   #set ($options = $request.getAttribute("options"))
4: 
5:   #set ($locale = "en_us")
6:   #set ($locale = $options.get("locale"))
7: 
8:   #set ($showconf = true)
9:   #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide"))
10:     #set ($showconf = false)
11:   #end
12: 
13:   #set ($teamId = $attributes.get("teamId"))
14:   #set ($stats = $splits.overall)
15: 
16:   #set ($pos = "")
17:   #if ($sport.enumCode == 0) ## Football
18:     #set ($pos = "off")
19:   #elseif ($sport.enumCode == 2) ## Basketball
20:     #set ($pos = "sh")
21:   #elseif ($sport.enumCode == 3) ## Soccer
22:     #set ($pos = "kickers")
23:   #elseif ($sport.enumCode == 9) ## Field Hockey
24:     #set ($pos = "fielder")
25:   #end
26: 
27:   #set ($posEsc = $formatter.escapeXml($request.getParameter("pos").toLowerCase()))
28:   #if ($posEsc.length() > 0)
29:     #set ($pos = $posEsc)
30:   #end
31: 
32:   #if ($sport.enumCode == 2) ## Basketball
33:     #if ($pos == "bc")
34:       #set ($pos = "sh")
35:     #end
36:     #if ($pos == "bt")
37:       #set ($pos = "st")
38:     #end
39:     #if ($pos == "bm")
40:       #set ($pos = "sm")
41:     #end
42:   #end
43: 
44:   #if ($sport.enumCode == 3) ## Soccer
45:     #if ($pos == "goalie")
46:       #set ($pos = "kickers")
47:     #end
48:     #if ($pos == "gg")
49:       #set ($pos = "kg")
50:     #end
51:   #end
52:   #if ($sport.enumCode == 9) ## Field Hockey
53:     #if ($pos == "goalie")
54:       #set ($pos = "fielder")
55:     #end
56:     #if ($pos == "gg")
57:       #set ($pos = "kg")
58:     #end
59:   #end
60: 
61:   #set ($view = "profile")
62:   #if ($request.getParameter("view"))
63:     #set ($view = $formatter.escapeXml($!request.getParameter("view")))
64:   #end
65: 
66:   #if($briefsCategoriesLabels)
67:   	#set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
68:   	#set($firstCategoryPos = $briefsCategoriesSeason.keySet().iterator().next())
69:   #end
70: 
71:   #set ($showRoster = false)
72:   #if ($options.get("stats_show_roster") and $options.get("stats_show_roster").equalsIgnoreCase("yes"))
73:     #set ($showRoster = true)
74:   #end
75: 
76:   #set ($showAttendance = true)
77:   #if ($options.get("stats_show_attendance") and $options.get("stats_show_attendance").equalsIgnoreCase("hide"))
78:     #set ($showAttendance = false)
79:   #end
80: 
81:   ## MACROS
82:   #macro (printResultAriaLabel $event)
83: 	#set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
84: 	#if ($event.neutralSite.length() > 0 || $event.home) 
85: 		#set ($ariaLabel = "${ariaLabel} vs.")
86: 	#else
87: 		#set ($ariaLabel = "${ariaLabel} at")
88: 	#end
89: 	#set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:")
90: 	#if ($event.neutralSite.length() > 0)
91: 		#set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
92: 	#end
93: 	#set ($ariaLabel = "${ariaLabel} Box Score")
94: 	aria-label="$ariaLabel"
95:   #end
96:   
97:   #macro(printSubTab $active $url $label $class $ariaLabel)	
98:     <li #if ($active) class="active"#end>
99:   	  <a href="${url}" #if ($class.length() > 0)class="$!{class}"#end role="button" aria-label="${ariaLabel}: ${label} Stats">${label}</a>
100:   	</li>
101:   #end
102: 
103:   #macro(printSeasonGameMinutesTabs $r $v $ariaLabel)
104:   #if($briefsCategoriesLabels.containsKey("Game"))
105:     <div class="tab-nav" data-module="jscroll" data-momentum="false">
106:     <div><ul class="clearfix">
107:   	#set($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
108:   	#set($gamePos = $briefsCategoriesGame.keySet().iterator().next())
109:   	
110:   	## Print the Game tab
111:   	#printSubTab($pos.equals($gamePos), "${url}?view=${v}&r=${r}&pos=${gamePos}", "Game", "t_game", $ariaLabel)	
112:     	
113:   	## Print the Season tab
114:   	#printSubTab($pos.equals($firstCategoryPos), "${url}?view=${v}&r=${r}&pos=${firstCategoryPos}", "Season", "t_season", $ariaLabel)
115:     	
116:   	#if($briefsCategoriesLabels.containsKey("Minutes"))
117:   		#set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
118:   		#set($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next())
119:     		
120:   		#set($showMinutesTab = false)
121:     		
122:   		#if($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos))
123:   			#set($lineupMinOverallValues = $lineupMinTeam.get($minutesPos))
124:   			
125:   			#set($lineupMinOverallStat = $lineupMinOverallValues[0])
126:   			#set($lineupMinOverallMinVal = $lineupMinOverallValues[1])
127:   			#set($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal))
128:   			
129:   			#if($splits.overall[$lineupMinOverallStat] && $splits.overall[$lineupMinOverallStat] >= $lineupMinOverallMinNumericValue)
130:   				#set($showMinutesTab = true)
131:   			#end	
132:   		#end	
133:     		
134:   		## Print the Minutes tab
135:   	 	#if($showMinutesTab)
136:   			#printSubTab($pos.equals($minutesPos), "${url}?view=${v}&r=${r}&pos=${minutesPos}", "Minutes", "t_minutes", $ariaLabel)
137:   		#end
138:   		
139:   	#end
140:     </ul>
141:     </div>
142:     </div>
143:   #end
144:   #end
145: 
146:   #macro(printBriefCategory $briefCatLabel $briefCatPos $r)
147:   	#if($locale == "en_gb" && $briefCatLabel == "Defense")
148:       	#set($briefCatLabel = "Defence")
149:       #end
150:   	
151:   	#if($lineupDefaultSorting && $lineupDefaultSorting.containsKey($briefCatPos))
152:   		#set($sort = $lineupDefaultSorting.get($briefCatPos))
153:   	#end	
154:   	
155:   	#if($allowChooseSort)
156:   		#set ($sortEsc = $formatter.escapeXml($request.getParameter("sort")))
157:   		#if ($sortEsc.length() > 0)
158:   			#set ($sort = $sortEsc)
159:   		#end
160:   	#end
161:   	
162:   	#set ($url = "../players?teamId=${attributes.teamId}&view=lineup&sort=$!{sort}&pos=${briefCatPos}&r=${r}")
163:   	
164:   	#if($lineupMin && $lineupMin.containsKey($briefCatPos))
165:   		#set($minStat = $lineupMin.get($briefCatPos))
166:   		#set($url = $url + "&min=" + $minStat)
167:   	#end
168:   	
169:   	#if($lineupFilters)
170:   		#if($lineupFilters.containsKey("cs"))
171:   			#set($url = $url + "&cs=n")
172:   		#end
173:   		
174:   		#if($lineupFilters.containsKey("skipBlank"))
175:   		    #set($skipBlank = $lineupFilters.get("skipBlank"))	
176:   			
177:   			#if($skipBlank.contains($briefCatPos))
178:   				#set($url = $url + "&skipBlank=n")
179:   			#end	
180:   		#end	
181:   	#end	
182:   	
183: 	<div style="display:block; padding:5px 0; margin-bottom:10px; line-height:1; text-transform:uppercase; text-align:center" class="accent-bg"><strong>$briefCatLabel</strong></div>
184: 	
185:     $website.includeAgain($url)	
186:     
187:   #end ## printBriefCategory
188: 
189:   #macro(printBriefCategories $r)
190:   ## Set this for the inner page to pull something out
191:   #if ($r == "1")
192:     $!request.setAttribute("teamStats", $splits.conference)
193:   #else
194:     $!request.setAttribute("teamStats", $splits.overall)
195:   #end
196: 
197:   #if($briefsCategoriesLabels)
198:   	#set($allowChooseSort = false)
199:   	
200:   	#if($lineupFilters && $lineupFilters.containsKey("allowChooseSort"))
201:   		#set($allowChooseSort = true)
202:   	#end
203: 
204:     #if($briefsCategoriesLabels.containsKey("Game"))
205:   	  #set($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
206:       	
207:       ## Print Game categories tables
208:       ## Get the first Game category position
209:       #set($gamePos = $briefsCategoriesGame.keySet().iterator().next())
210:       
211:       ## GAME
212:       <div class="tab-panel clearfix #if ($pos.equals($gamePos)) active #end">
213:         #foreach($briefsCatGame in $briefsCategoriesGame.entrySet())
214:           #printBriefCategory($briefsCatGame.value, $briefsCatGame.key, $r)
215:         #end
216:       </div>
217: 
218:       ## Print the Season categories tables
219:   	  #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
220:    
221:       ## SEASON
222:       <div class="tab-panel clearfix #if ($pos.equals($firstCategoryPos)) active #end">
223:   		  #foreach($briefCat in $briefsCategoriesSeason.entrySet())
224:   			  #printBriefCategory($briefCat.value, $briefCat.key, $r)
225:   		  #end
226:       </div>
227:   		
228:   		
229:       ## Print the Minutes categories tables
230:   		#if($briefsCategoriesLabels.containsKey("Minutes"))
231:   		
232:   		  #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
233:   		  #set($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next())
234:       		
235:   		  #set($showMinutesTab = false)
236:   		  #if($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos))
237:           #set($lineupMinOverallValues = $lineupMinTeam.get($minutesPos))
238:   			
239:           #set($lineupMinOverallStat = $lineupMinOverallValues[0])
240:           #set($lineupMinOverallMinVal = $lineupMinOverallValues[1])
241:           #set($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal))
242:   			
243:           #if($splits.overall[$lineupMinOverallStat] && $splits.overall[$lineupMinOverallStat] >= $lineupMinOverallMinNumericValue)
244:   				  #set($showMinutesTab = true)
245:           #end	
246:   		  #end
247: 
248:         #if ($showMinutesTab)
249:           ## MINUTES
250:           <div class="tab-panel clearfix #if ($pos.equals($minutesPos)) active #end">
251:     			  #foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet())
252:               #printBriefCategory($briefsCatMinutes.value, $briefsCatMinutes.key, $r)
253:     			  #end
254:           </div>
255:   			#end
256:   		#end ## end minutes
257: 
258:   	#else
259: 
260:   		#set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
261:   		## SINGLE SEASON
262:   		#foreach($briefCat in $briefsCategoriesSeason.entrySet())
263:   			#printBriefCategory($briefCat.value, $briefCat.key, $r)
264:     	#end
265: 
266:   	#end
267: 
268:   #elseif($lineupFilters)
269: 
270:   	## All of the supported sports has lineupFilters, so print it without matter it does not have briefs category, yeah voleyball is you :)
271:   	#set ($sort = $formatter.escapeXml($request.getParameter("sort")))
272:   	#set ($url = "../players?teamId=${attributes.teamId}&view=lineup&sort=$!{sort}&r=${r}")
273:   	$website.includeAgain($url) 
274: 
275:   #else
276:   	We do not support this sport
277:   #end
278: 
279:   #end ## printBriefCategories
280: 
281:   #macro (printLineupTabs $r $v $ariaLabel)
282:     #if($briefsCategoriesLabels.containsKey("Game"))
283:       <div class="tab-container secondary tab-container-floated clearfix" data-module="stats/tabs" data-type="secondary">
284:         #printSeasonGameMinutesTabs($r $v $ariaLabel)
285:         <div class="tab-panels tab-panels-floated clearfix">
286:           #printBriefCategories($r)
287:         </div>
288:       </div>
289:     #else
290:       #printBriefCategories($r)
291:     #end
292:   #end ## printLineupTabs
293: 
294:   #macro (printCategories $briefCategoryLabels $v $ariaLabel)
295:   <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
296:     <div class="tab-nav" data-module="jscroll" data-momentum="false">
297:       <div>
298:         <ul class="clearfix">
299: 		#foreach($label in $briefCategoryLabels.entrySet())
300: 			#set($catLabel = $label.value)
301: 			#if ($locale == "en_gb" && $catLabel == "Defense")
302: 				#set ($catLabel = "Defence")
303: 			#end
304: 			<li #if ($pos == $label.key || ($pos.length() == 0 && $velocityCount == 1)) class="active" #end>  
305: 				<a href="${page.url}?view=${v}&pos=${label.key}" role="button" aria-label="${ariaLabel}: ${catLabel}">${catLabel}</a>
306: 			</li>
307: 		#end
308:         </ul>
309:       </div>
310:     </div>
311:     <div class="tab-panels">
312:       #foreach ($briefCat in $briefCategoryLabels.entrySet())
313:         #set ($class = "tab-panel clearfix")
314:         #if ($briefCat.key == $pos || ($velocityCount == 1 && $pos.length() == 0))
315:           #set ($class = "tab-panel active clearfix")
316:         #end
317:         <div class="${class}">
318:           <div class="stats-wrap clearfix">
319:             #if ($v == "gamelog")
320:               #gamelogData($briefCat.key)
321:             #elseif ($v == "splits")
322:               #splitsData($briefCat.key)
323:             #end
324:           </div>
325:         </div>
326:       #end  
327:     </div>
328:   </div> ## tab-container
329:   #end ## printCategories
330: 
331:   #macro (printHighlights)
332:   #if ($highlights)
333:     <div class="highlights highlights-standalone accent-bg">
334:       #foreach ($highlight in $highlights.keySet())
335:         #set ($value = "-")
336:         #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
337:         <div class="stat clearfix">
338:           <span class="stat-title">$!highlights.get($highlight)</span>
339:           <span class="stat-value">$!value</span>
340:         </div>
341:       #end
342:     </div>
343:   #end ## has highlights
344:   #end ## macro printHighlights
345: 
346:   #macro (gamelogData $p)
347:   #set ($gamelogStats = $gamelogs.get($p))
348: 
349:   <div class="stats-box full clearfix">
350:       <div class="scrollable">
351:           <div>
352:               <table>
353:                   <tr class="thead accent-bg">
354:                       <th class="text">Date</th>
355:                       <th class="pinned-col text">Opponent</th>
356:                       <th>Score</th>
357:                       #foreach ($gamelog in $gamelogStats)
358:                         <th>$gamelog</th>
359:                       #end
360:                   </tr>
361:                   #foreach ($event in $events)
362:   	                <tr>
363:   	                    <td class="text">
364:   	                      $formatter.formatDate($event.event.date, "MMM d") 
365:   	                      #if (!$event.event.overall)
366:   	                        #set ($atLeastOneNotOverall = true) # 
367:   	                      #end
368:   	                    </td>
369:   	                    <td class="pinned-col text">
370:   	                        #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
371:   	                        $event.event.opponent.name
372:   	                    </td>
373:   	                    <td>
374:   	                        #if ($event.event.statusCode >= 0)
375:   	                          #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
376:                                   <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
377:   	                          #else
378:   	                            ${event.event.APResult}
379:   	                          #end
380:   	                        #else &nbsp; #end
381:   	                    </td>
382:   	                    #foreach ($gamelog in $gamelogStats.keySet())
383:   	                      #set ($value = "-")
384:   	                      #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
385:   	                      <td>$value</td>
386:   	                    #end
387:   	                </tr>
388:                   #end
389:               </table>
390:           </div>
391:       </div> ## scrollable
392:   </div> ## stats-box
393: 
394:   #end ## gamelogData
395: 
396:   #macro (printRecentGames)
397:   <table>
398:       <tr class="thead accent-bg"><th colspan="3">Recent Games</th></tr>
399: 
400:       #set ($eventEnd = -1)
401:       #foreach ($event in $events)
402:         #if ($event.event.result.resolved)
403:           #set ($eventEnd = $velocityCount)
404:         #end
405:       #end
406: 
407:       #set ($eventStart = $eventEnd - 5)
408:       #if ($eventStart < 0) #set ($eventStart = 0) #end
409: 
410:       #foreach ($event in $events)
411:       #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
412:       <tr>
413:           <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
414:           <td class="text">
415:               #if ($event.event.neutralSite.length() > 0) vs.
416:               #elseif (!$event.event.home) at
417:               #else ## nothing for a home game
418:               #end
419:               $event.event.opponent.name
420:           </td>
421:           <td class="text">
422:               #if ($event.event.statusCode >= 0)
423:               #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
424:                   <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
425:               #else
426:               ${event.event.APResult}
427:               #end
428:               #end
429:           </td>
430:       </tr>
431:       #end ## if
432:       #end
433:   </table>
434:   #end ## printRecentGames
435: 
436:   #macro (split $statPosBriefs $label $stats)
437:     <tr>
438:       <td class="pinned-col text">${label}</td>
439:       #foreach ($brief in $statPosBriefs.keySet())
440:         #set ($value = "-")
441:         #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
442:         <td>#if ($value.length() > 0) $value #else - #end</td>
443:       #end
444:     </tr>
445:   #end ## split
446: 
447:   #macro (splitsData $p)
448:   #set ($statPosBriefs = $briefs.get($p))
449:   #set ($colspan = $statPosBriefs.size())  
450:     
451:   #if ($statPosBriefs.size() > 0)
452:   <div class="stats-box full clearfix">
453:   <div class="scrollable">
454:   <div>
455:   <table>
456:     <tr class="accent-bg">
457:       <th class="pinned-col">&nbsp;</th>
458:       #foreach ($brief in $statPosBriefs)
459:         <th>$brief</th>
460:       #end
461:     </tr>
462: 
463:   #split($statPosBriefs, "Total", $splits.overall)
464:   #if ($showconf)
465:     #split($statPosBriefs, "Conference", $splits.conference)
466:     #split($statPosBriefs, "Exhibition", $splits.exhibition)
467:   #else
468:     #split($statPosBriefs, "Exhibition", $splits.exhibition)
469:   #end ## hide overall/conf
470: 
471:   <tr class="empty-row">
472: 	<td class="pinned-col">&nbsp;</td>
473: 	<td colspan="$colspan"><div class="empty-cell">-</div></td>
474:   </tr>
475: 
476:   #split($statPosBriefs, "Home", $splits.home)
477:   #split($statPosBriefs, "Away", $splits.away)
478:   #split($statPosBriefs, "Neutral", $splits.neutral)
479: 
480:   <tr class="empty-row">
481: 	<td class="pinned-col">&nbsp;</td>
482: 	<td colspan="$colspan"><div class="empty-cell">-</div></td>
483:   </tr>
484: 
485:   #foreach($gameResult in $gamesResults.entrySet())
486:     #if ($gameResult.key == "wins")
487:       #set ($splitGameResult = $splits.inWins)
488:     #elseif ($gameResult.key == "losses")
489:       #set ($splitGameResult = $splits.inLosses)
490:     #elseif ($gameResult.key == "ties")
491:       #set ($splitGameResult = $splits.inTies)
492:     #end
493:     
494:     #split($statPosBriefs, $gameResult.value, $splitGameResult)
495:   #end
496: 
497:   <tr class="empty-row">
498: 	<td class="pinned-col">&nbsp;</td>
499: 	<td colspan="$colspan"><div class="empty-cell">-</div></td>
500:   </tr>
501: 
502:   #if ($monthsPlayed and $monthsPlayed.size() > 0)
503:     #foreach($month in $monthsPlayed)
504:       #if ($month == 'January')
505:         #set ($splitMonth = $splits.january)
506:       #elseif ($month == 'February')
507:         #set ($splitMonth = $splits.february)
508:       #elseif ($month == 'March')
509:         #set($splitMonth = $splits.march)
510:       #elseif ($month == 'April')
511:         #set($splitMonth = $splits.april)
512:       #elseif ($month == 'May')
513:         #set ($splitMonth = $splits.may)
514:       #elseif ($month == 'June')
515:         #set ($splitMonth = $splits.june)
516:       #elseif ($month == 'July')
517:         #set($splitMonth = $splits.july)
518:       #elseif ($month == 'August')
519:         #set ($splitMonth = $splits.august)
520:       #elseif ($month == 'September')
521:         #set($splitMonth = $splits.september)
522:       #elseif ($month == 'October')
523:         #set($splitMonth = $splits.october)
524:       #elseif ($month == 'November')
525:         #set ($splitMonth = $splits.november)
526:       #elseif ($month == 'December')
527:         #set($splitMonth = $splits.december)
528:       #end
529:       
530:       #split($statPosBriefs, $month, $splitMonth)
531:     #end ## foreach
532:   #end
533:   </table>
534:   </div>
535:   </div> ## scrollable
536:   </div> ## srollable-table
537:   #end
538: 
539:   #end ## splitsData
540: 
541: 
542:   ############ END MACROS #############
543: 
544: #set ($pageTitle = $page.title)
545: #if ($pageTitle.trim().length() == 0)
546: 	#set ($season = "")
547: 	#if ($page.url.matches(".*/\d{4}-\d{2}/.*"))
548: 		#set ($truncateStr = $page.url.split("/\d{4}-\d{2}/").get(0))
549: 		#set ($season = $page.url.replace($truncateStr, "").substring(1, 8))
550: 	#end
551: 	
552: 	#set ($gender = "")
553: 	#if ($sport.enumCode == 6 or $sport.enumCode == 10)
554: 	#else
555: 		#if ($page.url.matches(".*/sports/m.*") || $page.url.matches(".*/sports/m-*"))
556: 			##set ($gender = "Men's")
557: 		#elseif ($page.url.matches(".*/sports/w.*") || $page.url.matches(".*/sports/w-*"))
558: 			##set ($gender = "Women's")
559: 		#end
560: 	#end
561: 	
562: 	#set ($pageTitle = "${season} ${gender} ${sport} Statistics")
563: 	
564: 	#if ($attributes.get("school_name").length() > 0)
565: 		#set ($pageTitle = "${pageTitle} - ${attributes.get('school_name')}")
566: 	#end
567: #end
568: 
569: <head><title>$pageTitle</title></head>
570: <h1>$pageTitle</h1>
571: 	
572: 
573:   <div class="stats-container" data-module="stats/responsive-container">
574: 
575:   #printHighlights  
576: 
577:   ## TABS
578:   <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
579:     <div class="tab-nav" data-module="jscroll" data-momentum="false">
580:         <div>
581:             <ul class="clearfix">
582:                 <li #if ($view == "profile")class="active"#end><a href="${page.url}?view=profile">Team Profile</a></li>
583:                 #if ($showRoster)
584:                   <li #if ($view == "roster")class="active"#end><a href="${page.url}?view=roster">Roster</a></li>
585:                 #end
586:                 <li #if ($view == "lineup")class="active"#end><a href="${page.url}?view=lineup">Lineup</a></li>
587:                 <li #if ($view == "gamelog")class="active"#end><a href="${page.url}?view=gamelog">Game Log</a></li>
588:                 <li #if ($view == "splits")class="active"#end><a href="${page.url}?view=splits">Split Stats</a></li>
589: 					
590: 				#set ($coachesViewUrl = "${page.url}?tmpl=teaminfo-network-monospace-template")
591: 				#set ($enumCode = $sport.enumCode)
592: 				#if ($enumCode == 2)
593: 					#set ($coachesViewUrl = "${coachesViewUrl}&sort=ptspg") 
594: 				#elseif ($enumCode == 1 || $enumCode == 11)
595: 					#set ($coachesViewUrl = "${coachesViewUrl}&sort=ab&pos=h")
596: 				#end
597: 				#if ($enumCode == 7 || $enumCode == 8 || $enumCode > 11) #else
598: 					<li data-skip="true"><a href="$coachesViewUrl" target="_blank">Coach's View</a></li>
599: 				#end
600:                 #if ($showAttendance)
601:                   <li #if ($view == "attendance")class="active"#end><a href="${page.url}?view=attendance">Attendance</a></li>
602:                 #end
603:             </ul>
604:         </div>
605:     </div> ## tab-nav
606: 
607:     <div class="tab-panels clearfix">
608:       ## TEAM PROFILE
609:       #set ($class = "tab-panel clearfix")
610:       #if ($view == "profile")
611:         #set ($class = "tab-panel active clearfix")
612:       #end
613:       <div class="${class}">
614:         <div class="clearfix stats-wrap">
615:           <div class="stats-box half">
616:             ## SCHEDULE INFORMATION
617:             $website.include("schedule?teamId=${teamId}&tmpl=schedule-data-template")
618: 
619:             #printRecentGames
620: 
621:           </div> ## stats-box
622: 
623:           <div class="stats-box half">
624:             ## RANKINGS
625:             $website.include("../teams?tmpl=stats-teams-rank-template&rank=${teamId}")
626:           </div>
627: 
628:         </div> ## stats-wrap
629:       </div> ## team profile
630: 
631:       ## ROSTER
632:       #if ($showRoster)
633:         #set ($class = "tab-panel clearfix")
634:         #if ($view == "roster")
635:           #set ($class = "tab-panel active clearfix")
636:         #end
637:         <div class="${class}">
638:           $website.includeAgain("../players?teamId=${teamId}&view=roster&tmpl=stats-bios-template")
639:         </div>
640:       #end
641: 
642:       ## LINEUP
643:       #set ($class = "tab-panel clearfix")
644:       #if ($view == "lineup")
645:         #set ($class = "tab-panel active clearfix")
646:       #end
647: 
648:       <div class="${class}">
649:         #set ($restriction = "0")
650:         #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
651:         #if ($restrictionEsc.length() > 0)
652:           #set ($restriction = $restrictionEsc)
653:         #end
654: 
655:         ## start of overall/conference
656:         #set ($url = $request.requestURI)
657:         #if ($showconf)
658:           <div class="tab-container secondary #if($briefsCategoriesLabels.containsKey("Game")) tab-container-floated #end
659:            clearfix" data-module="stats/tabs" data-type="secondary">
660:             <div class="tab-nav" data-module="jscroll" data-momentum="false">
661:               <div>
662:                 <ul class="clearfix">
663:                   #printSubTab($restriction.equals("0"), "${url}?view=lineup&r=0&pos=${pos}", "Overall", "first t_overall", 'Lineup')
664:                   #printSubTab($restriction.equals("1"), "${url}?view=lineup&r=1&pos=${pos}", "Conference", "t_conf", 'Lineup')
665:                 </ul>
666:               </div>
667:             </div> ## tab-nav
668: 
669:             ## overall/conference tab panels
670:             <div class="tab-panels clearfix">
671: 
672:               ## overall
673:               <div class="tab-panel #if ($restriction.equals("0")) active #end">
674:                 #printLineupTabs(0 'lineup' 'Lineup: Overall Stats')
675:               </div> ## overall tab-panel
676: 
677:               ## conference
678:               <div class="tab-panel #if ($restriction.equals("1")) active #end">
679:                 #printLineupTabs(1 'lineup' 'Lineup: Conference Stats')
680:               </div> ## conference tab-panel
681: 
682:             </div> ## overall/conference tab-panels
683:           </div> ## tab-container
684: 
685:         #else ## no overall conf
686: 		  #set ($lineupAriaLabel = "Lineup: Overall Stats")
687: 		  #if ($restriction == 1)
688: 		    #set ($lineupAriaLabel = "Lineup: Conference Stats")	
689: 		  #end	
690:           #printLineupTabs($restriction 'lineup' $lineupAriaLabel)
691:         #end ## overall/conf
692:            
693:         Download roster:
694:         <a href="../players?teamId=${attributes.teamId}&view=ext">${rosterExtension} (First Last) </a> | 
695:         <a href="../players?teamId=${attributes.teamId}&view=ext&type=lf"> ${rosterExtension} (Last, First)</a>
696:         #if ($rosterExtraExtension)
697:           <a href="../players?teamId=${attributes.teamId}&view=exte">${rosterExtraExtension} (First Last)</a> | 
698:           <a href="../players?teamId=${attributes.teamId}&view=exte&type=lf">${rosterExtraExtension} (Last, First)</a>
699:         #end
700: 
701:       </div> ##lineup
702: 
703:       ## GAMELOG
704:       #set ($class = "tab-panel clearfix")
705:       #if ($view == "gamelog")
706:         #set ($class = "tab-panel active clearfix")
707:       #end
708:       <div class="${class}">
709:         #if($gamelogsCategoriesLabels && $gamelogsCategoriesLabels.size() > 1)
710:           #printCategories($gamelogsCategoriesLabels 'gamelog' 'Game log')
711:         #else
712:           <div class="stats-wrap clearfix">#gamelogData($pos)</div>
713:         #end ## gamelogsCategoriesLabels
714: 
715:       </div> ## gamelog
716: 
717:       ## SPLITS
718:       #set ($class = "tab-panel clearfix")
719:       #if ($view == "splits")
720:         #set ($class = "tab-panel active clearfix")
721:       #end
722:       <div class="${class}">
723:       #if($briefsTeamCategoriesLabels && $briefsTeamCategoriesLabels.size() > 1)
724:           #printCategories($briefsTeamCategoriesLabels 'splits' 'Splits Stats')
725:         #else
726:           <div class="stats-wrap clearfix">#splitsData($pos)</div>
727:         #end ## briefsTeamCategoriesLabels
728:       </div> ## splits
729: 
730: 
731:       ## ATTENDANCE
732:       #if ($showAttendance)
733:         #set ($class = "tab-panel clearfix")
734:         #if ($view == "attendance")
735:           #set ($class = "tab-panel active clearfix")
736:         #end
737:         <div class="${class}">
738:           <div class="clearfix stats-wrap">
739:             <div class="stats-box full">
740:               <div class="scrollable">
741:               <div>
742:               <table>
743:                 <tr class="accent-bg">
744:                   <th class="text">Date</th>
745:                   <th class="text pinned-col">Opponent</th>
746:                   <th>Score</th>
747:                   <th>Attend</th>
748:                 </tr>
749:                 #set ($counter = 0)
750:                 #foreach ($event in $events)
751:                 <tr>
752:                   <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
753:                   <td class="text pinned-col">
754:                   #if ($event.event.neutralSite.length() > 0) vs.
755:                   #elseif (!$event.event.home) at
756:                   #else ## nothing for a home game
757:                   #end
758:                   $event.event.opponent.name
759:                   </td>
760:                   <td>
761:                   #if ($event.event.statusCode >= 0)
762:                     #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
763:                         <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
764:                     #else
765:                       ${event.event.result}
766:                     #end
767:                   #else &nbsp; #end
768:                   </td>
769:                   <td>
770:                   #set ($value = "-")
771:                   #set ($value = $!formatter.formatNumber($event.stats.get('at'), $formats.get('at')))
772:                   #if ($value.length() > 0)$value#else - #end
773:                   </td>
774:               </tr>
775:               #end
776:             </table>
777:             </div>
778:             </div> ## scrollable
779:             </div> ## stats-box
780:           </div> ## stats-wrap
781:         </div> ## attendance
782:       #end ## showAttendance
783: 
784:     </div> ## tab-panels
785:   </div> ## tab-container
786:   </div> ## stats-container
787:   $wiki.su