2019-20 Football Statistics - Washington State

Yds 505.2
Rush 68.1
Pass 437.2
Pts/game 37.8
Yds allowed 452.5
Rush allowed 185.5
Pass allowed 267.0
Pts allowed/game 31.4
Schedule Summary
Overall (Pct.)6-7 (.462)
Conference (Pct.) 3-6 (.333)
StreakLost 2
Home5-1
Away0-5
Neutral1-1
Full Scores and Schedule »
Recent Games
Oct 26 at Oregon L, 37-35
Nov 9 at California L, 33-20
Nov 16 Stanford W, 49-22
Nov 23 Oregon State W, 54-53
Nov 29 at Washington L, 31-13
Dec 27 vs. Air Force L, 31-21
Statistics category Overall Conf
Games 13 3rd 9 12th
Scoring 491 2nd 322 2nd
Points per game 37.8 1st 35.8 2nd
Total offense 6568 1st 4501 1st
Yards per game 505.2 1st 500.1 1st
Passing yards 5683 1st 3904 1st
Comp-Att-Int 505-710-16 1st 369-529-14 1st
Passing yards per game 437.2 1st 433.8 1st
Passing yards per attempt 8.0 4th 7.4 8th
Passing yards per completion 11.3 11th 10.6 12th
Passing touchdowns 50 1st 33 1st
Rushing yards 885 12th 597 12th
Rushing attempts 210 12th 148 12th
Rushing yards per game 68.1 12th 66.3 12th
Yards per rush 4.2 5th 4.0 5th
Rushing touchdowns 12 11th 7 11th
1st downs 335 1st 242 1st
Rushing 1st downs 54 12th 37 12th
Passing 1st downs 258 1st 184 1st
Penalty 1st downs 23 6th 21 3rd
1st downs per game 25.8 1st 26.9 1st
3rd-down conversions 60-141 12th 48-108 9th
3rd down % 43% 4th 44% 5th
4th-down conversions 13-22 6th 8-14 6th
4th down % 59% 5th 57% 5th
Kick returns (No.-Yards) 40-858 2nd 30-658 1st
Kick return average 21.4 8th 21.9 7th
Punt returns (No.-Yards) 6-97 8th 4-52 9th
Punt return average 16.2 2nd 13.0 4th
Field goals 20-21 2nd 15-16 3rd
Field goal % 95.2% 1st 93.8% 1st
PATs 55-58 3rd 33-36 6th
PAT % 94.8% 12th 91.7% 12th
Punts (No.-Yards) 30-1352 12th 22-1039 11th
Average per punt 45.1 2nd 47.2 1st
Red zone scores 61-71 1st 42-49 1st
Red zone % 86% 5th 86% 6th
Red zone touchdowns 45-71 1st 29-49 1st
Red zone touchdown % 63% 6th 59% 7th
Fumbles-lost 12-9 7th 11-8 4th
Fumbles recovered 9 2nd 2 10th
Defensive INTs 10 7th 7 7th
Interception returns (No.-Yds) 10-126 5th 7-75 4th
Interception return average 12.6 4th 10.7 4th
Defensive TDs 0 8th 0 10th
Tackles 838 6th 558 8th
Sacks 23 11th 17 9th
Penalties 85 7th 57 5th
Penalty yards 794 8th 482 5th
Time of possession per game 29:20 8th 30:27 5th
Home Attendance 171247 12th 116434 12th
Home Attendance average 28541 12th 29109 12th
Passing
No. Name Yr Pos gp comp att pct yds y/g y/a td int lg effic
1H Anthony Gordon Sr 13 493 689 71.6% 5579 429.2 8.1 48 16 65 157.9
0D Gage Gubrud Sr 2 10 13 76.9% 89 44.5 6.8 1 0 26 159.8
1J Trey Tinsley Sr 3 2 6 33.3% 15 5.0 2.5 1 0 11 109.3
  Totals     13 505 710 71.1% 5683 437.2 8.0 50 16 65 157.1
  Opponent     13 250 398 62.8% 3471 267.0 8.7 23 10 94 150.1
Rushing
No. Name Yr Pos gp rush yds y/g avg td lg fum lost
21 Max Borghi So 13 127 817 62.8 6.4 11 56 - -
16 Deon McIntosh Jr 13 16 111 8.5 6.9 1 32 1 1
3J Clay Markoff Jr 7 9 25 3.6 2.8 0 8 - -
1H Anthony Gordon Sr 13 51 -20 -1.5 -0.4 0 17 5 2
  Totals     13 210 885 68.1 4.2 12 56 12 9
  Opponent     13 488 2411 185.5 4.9 27 89 17 9
Receiving
No. Name Yr Pos gp rec rec/g yds y/g avg td lg
21 Max Borghi So 13 86 6.6 597 45.9 6.9 5 65
8 Jr. Easop Winston Sr 13 85 6.5 970 74.6 11.4 11 39
19 Brandon Arconado Sr 11 78 7.1 1109 100.8 14.2 7 44
12 Dezmon Patmon Sr 13 58 4.5 762 58.6 13.1 8 48
0I Renard Bell Jr 13 54 4.2 579 44.5 10.7 6 41
5 Travell Harris So 13 47 3.6 536 41.2 11.4 5 54
0J Tay Martin Jr 13 43 3.3 564 43.4 13.1 4 58
88 Rodrick Fisher Fr 13 19 1.5 265 20.4 13.9 1 58
16 Deon McIntosh Jr 13 17 1.3 113 8.7 6.6 2 41
85 Calvin Jackson Jr. Sr 4 10 2.5 117 29.3 11.7 1 36
17 Kassidy Woods Fr 10 6 0.6 58 5.8 9.7 0 26
83 Brandon Gray Fr 3 2 0.7 13 4.3 6.5 0 11
  Totals     13 505 - 5683 437.2 11.3 50 65
  Opponent     13 250 - 3471 267.0 13.9 23 94
Kicking
No. Name Yr Pos gp fgm fga pct lg xpm xpa pct pts
40 Blake Mazza So 13 20 21 95% 51 55 57 96% 115
  Totals     13 20 21 95% 51 55 58 95% 115
  Opponent     13 12 19 63% 50 46 48 96% 82
Punting
No. Name Yr Pos gp punt yds avg lg in20 fc tb blk
94 Oscar Draguicevich Jr 13 30 1352 45.1 62 12 15 1 0
  Totals     13 30 1352 45.1 62 12 15 1 0
  Opponent     13 47 1857 39.5 59 20 21 4 0
Returns
No. Name Yr Pos kr yds avg td lg pr yds avg td lg
5 Travell Harris So 33 773 23.4 0 83 4 23 5.8 0 16
88 Rodrick Fisher Fr 4 64 16.0 0 23 - - - - -
21 Max Borghi So 2 21 10.5 0 25 - - - - -
37 Justus Rogers Jr 1 0 0.0 0 0 - - - - -
8 Jr. Easop Winston Sr - - - - - 2 74 37.0 0 45
  Totals     40 858 21.4 0 83 6 97 16.2 0 45
  Opponent     26 506 19.5 1 100 8 116 14.5 1 69
All-Purpose
No. Name Yr Pos gp rush rcv pr kr yds ypg
21 Max Borghi So 13 817 597 - 21 1435 110.4
5 Travell Harris So 13 - 536 23 773 1332 102.5
19 Brandon Arconado Sr 11 - 1109 - - 1109 100.8
8 Jr. Easop Winston Sr 13 - 970 74 - 1044 80.3
12 Dezmon Patmon Sr 13 - 762 - - 762 58.6
0I Renard Bell Jr 13 - 579 - - 579 44.5
0J Tay Martin Jr 13 - 564 - - 564 43.4
85 Calvin Jackson Jr. Sr 4 - 117 - - 117 29.3
88 Rodrick Fisher Fr 13 - 265 - 64 329 25.3
16 Deon McIntosh Jr 13 111 113 - - 224 17.2
17 Kassidy Woods Fr 10 - 58 - - 58 5.8
83 Brandon Gray Fr 3 - 13 - - 13 4.3
3J Clay Markoff Jr 7 25 - - - 25 3.6
  Totals     13 885 5683 97 858 7523 578.7
  Opponent     13 2411 3471 116 506 6504 500.3
Scoring
No. Name Yr Pos pts pts/g rush rec kr pr int fum xpm fgm 2pt misc
40 Blake Mazza So 115 8.8 - - - - - - 55 20 0 0
21 Max Borghi So 96 7.4 11 5 0 - - - - - - 0
8 Jr. Easop Winston Sr 66 5.1 - 11 - 0 - - - - - 0
12 Dezmon Patmon Sr 48 3.7 - 8 - - - - - - - 0
19 Brandon Arconado Sr 44 4.0 - 7 - - - - 0 - 1 0
0I Renard Bell Jr 36 2.8 - 6 - - - - - - - 0
5 Travell Harris So 30 2.3 - 5 0 0 - - - - - 0
0J Tay Martin Jr 24 1.8 - 4 - - - - - - - 0
16 Deon McIntosh Jr 18 1.4 1 2 - - - - - - - 0
88 Rodrick Fisher Fr 6 0.5 - 1 0 - - - - - - 0
85 Calvin Jackson Jr. Sr 6 1.5 - 1 - - - - - - - 0
18 George Hicks III Jr 2 0.2 - - - - 0 - 0 - 1 0
  Totals     491 37.8 12 50 0 0 0 0 55 20 2 0
  Opponent     408 31.4 27 23 1 1 1 0 46 12 4 0
Defense
No. Name Yr Pos gp tkl ast tot tkl/g sck yds tfl yds ff fr yds int yds brup blk
13 Jahad Woods Jr 13 73 68 141.0 10.8 3 12 10 24 2 - - 1 0 3 -
25 Skyler Thomas Jr 13 41 31 72.0 5.5 - - 2 3 - 2 13 4 72 3 -
37 Justus Rogers Jr 13 35 35 70.0 5.4 2 15 4.5 23 1 - - - - 1 -
4 Marcus Strong Sr 13 46 20 66.0 5.1 1 1 3 5 - - - 2 39 5 -
26 Bryce Beekman Jr 13 37 23 60.0 4.6 - - 2.5 4 1 1 0 1 0 2 -
1 Tyrese Ross Fr 13 23 10 33.0 2.5 - - 1 1 1 - - - - - -
18 George Hicks III Jr 13 22 9 31.0 2.4 - - 1 1 - - - 1 0 5 -
10 Rone Stone Jr. Fr 13 19 12 31.0 2.4 2.5 20 3 20 - 1 0 - - 1 -
3 Daniel Isom Jr 9 26 4 30.0 3.3 1 4 1 4 2 - - - - 2 -
82 Travion Brown Fr 13 15 13 28.0 2.2 - - 2 3 - - - - - - -
92 Will Rodgers III Jr 12 13 14 27.0 2.3 4 32 6 37 - - - - - - -
35 Armani Marsh So 13 16 8 24.0 1.8 - - 0 - - - - - - 2 -
30 Nnamdi Oquayo Sr 13 12 11 23.0 1.8 0.5 5 2 8 1 - - - - - -
27 Willie Taylor III So 13 16 7 23.0 1.8 2 7 3.5 8 1 - - - - 1 -
90 Misi Aiolupotea-Pei Sr 13 10 12 22.0 1.7 1.5 11 3 14 - 1 0 - - - 1
50 Karson Block Sr 13 9 13 22.0 1.7 2 11 4.5 18 - 1 0 - - - -
96 Cosmas Kwete Fr 11 10 10 20.0 1.8 - - 2 3 - 1 0 - - - -
98 Dallas Hobbs So 13 11 4 15.0 1.2 2 12 5.5 26 1 - - - - - -
44 Tristan Brock Sr 13 7 7 14.0 1.1 - - 2.5 5 1 - - - - - -
9 Lamonte McDougle So 13 6 8 14.0 1.1 - - 2.5 4 - 1 0 - - - 1
32 Pat Nunn Fr 12 7 3 10.0 .8 - - 2 5 1 - - - - 1 -
51 Hank Pladson Fr 10 4 4 8.0 .8 - - 2 3 - - - 1 15 - -
2 Derrick Langford Jr 10 4 3 7.0 .7 - - 0 - - - - - - 4 -
41 Dillon Sherman Jr 2 1 6 7.0 3.5 0.5 5 0.5 5 - - - - - - -
31 Trey Davis Fr 4 1 3 4.0 1.0 - - 0 - - - - - - - -
58 Fa'avae Fa'avae So 8 3 1 4.0 .5 1 11 1 11 - - - - - - -
28 Chad Davis Jr. So 6 1 2 3.0 .5 - - 0 - - 1 0 - - - -
42 Halid Djibril Fr 13 3 0 3.0 .2 - - 0 - - - - - - - -
19 Brandon Arconado Sr 11 2 0 2.0 .2 - - 0 - - - - - - - -
0I Renard Bell Jr 13 1 1 2.0 .2 - - 0 - - - - - - - -
21 Max Borghi So 13 2 0 2.0 .2 - - 0 - - - - - - - -
84 Jesus Echeverria So 2 1 1 2.0 1.0 - - 0 - - - - - - - -
5 Travell Harris So 13 2 0 2.0 .2 - - 0 - - - - - - - -
0J Tay Martin Jr 13 2 0 2.0 .2 - - 0 - - - - - - - -
93 Christian Mejia So 2 1 1 2.0 1.0 - - 0 - - - - - - - -
24 Shahman Moore Jr 7 1 1 2.0 .3 - - 0 - - - - - - - -
12 Dezmon Patmon Sr 13 1 1 2.0 .2 - - 0 - - - - - - - -
99 Nicholas Sheetz Fr 4 0 2 2.0 .5 - - 0.5 2 - - - - - - -
33 Jack Crane Jr 13 1 0 1.0 .1 - - 0 - - - - - - - -
8 Jr. Easop Winston Sr 13 1 0 1.0 .1 - - 0 - - - - - - - -
88 Rodrick Fisher Fr 13 1 0 1.0 .1 - - 0 - - - - - - - -
85 Calvin Jackson Jr. Sr 4 1 0 1.0 .3 - - 0 - - - - - - - -
80 Brennan Jackson Fr 2 0 1 1.0 .5 - - 0.5 1 - - - - - - -
34 Simon Samarzich Fr 12 0 1 1.0 .1 - - 0 - - - - - - - -
  Totals     13 488 350 838.0 64.5 23 146 68 238 12 9 13 10 126 30 2
  Opponent     13 523 246 769.0 59.2 20 156 44 215 10 9 9 16 111 66 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] && $tool.math.round($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:               #splitsTeamNetworkData($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 (splitTeamNetwork $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 (splitsTeamNetworkData $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:   #splitTeamNetwork($statPosBriefs, "Total", $splits.overall)
464:   #if ($showconf)
465:     #splitTeamNetwork($statPosBriefs, "Conference", $splits.conference)
466:     #splitTeamNetwork($statPosBriefs, "Exhibition", $splits.exhibition)
467:   #else
468:     #splitTeamNetwork($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:   #splitTeamNetwork($statPosBriefs, "Home", $splits.home)
477:   #splitTeamNetwork($statPosBriefs, "Away", $splits.away)
478:   #splitTeamNetwork($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:     #splitTeamNetwork($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:       #splitTeamNetwork($statPosBriefs, $month, $splitMonth)
531:     #end ## foreach
532:   #end
533:   </table>
534:   </div>
535:   </div> ## scrollable
536:   </div> ## srollable-table
537:   #end
538: 
539:   #end ## splitsTeamNetworkData
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">#splitsTeamNetworkData($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