2018-19 Football Statistics - Washington State

Yds 451.5
Rush 77.7
Pass 373.8
Pts/game 37.5
Yds allowed 359.5
Rush allowed 141.5
Pass allowed 218.1
Pts allowed/game 23.3
Schedule Summary
Overall (Pct.)11-2 (.846)
Conference (Pct.) 7-2 (.778)
StreakWon 1
Home6-1
Away4-1
Neutral1-0
Full Scores and Schedule »
Recent Games
Oct 27 at Stanford W, 41-38
Nov 3 California W, 19-13
Nov 10 at Colorado W, 31-7
Nov 17 Arizona W, 69-28
Nov 23 Washington L, 28-15
Dec 28 vs. Iowa St. W, 28-26
Statistics category Overall Conf
Games 13 1st 9 12th
Scoring 488 1st 329 1st
Points per game 37.5 1st 36.6 1st
Total offense 5869 1st 4039 1st
Yards per game 451.5 2nd 448.8 1st
Passing yards 4859 1st 3297 1st
Comp-Att-Int 478-677-10 1st 319-452-6 1st
Passing yards per game 373.8 1st 366.3 1st
Passing yards per attempt 7.2 8th 7.3 8th
Passing yards per completion 10.2 11th 10.3 11th
Passing touchdowns 39 1st 28 1st
Rushing yards 1010 12th 742 12th
Rushing attempts 281 12th 197 12th
Rushing yards per game 77.7 12th 82.4 12th
Yards per rush 3.6 12th 3.8 10th
Rushing touchdowns 24 4th 15 6th
1st downs 318 1st 213 1st
Rushing 1st downs 58 12th 43 12th
Passing 1st downs 235 1st 155 1st
Penalty 1st downs 25 4th 15 10th
1st downs per game 24.5 1st 23.7 1st
3rd-down conversions 75-173 5th 61-125 2nd
3rd down % 43% 3rd 49% 1st
4th-down conversions 18-26 2nd 10-15 5th
4th down % 69% 3rd 67% 4th
Kick returns (No.-Yards) 26-705 4th 18-449 6th
Kick return average 27.1 2nd 24.9 2nd
Punt returns (No.-Yards) 15-94 11th 5-16 12th
Punt return average 6.3 10th 3.2 11th
Field goals 10-15 11th 6-10 12th
Field goal % 66.7% 10th 60.0% 12th
PATs 60-64 1st 39-43 1st
PAT % 93.8% 10th 90.7% 11th
Punts (No.-Yards) 46-2103 11th 32-1452 12th
Average per punt 45.7 1st 45.4 1st
Red zone scores 56-64 1st 36-43 1st
Red zone % 88% 4th 84% 6th
Red zone touchdowns 50-64 1st 32-43 1st
Red zone touchdown % 78% 1st 74% 1st
Fumbles-lost 11-5 12th 9-3 10th
Fumbles recovered 11 1st 9 1st
Defensive INTs 12 4th 5 10th
Interception returns (No.-Yds) 12-149 5th 5-83 6th
Interception return average 12.4 6th 16.6 6th
Defensive TDs 1 8th 1 9th
Tackles 787 12th 555 11th
Sacks 38 1st 25 3rd
Penalties 86 10th 55 9th
Penalty yards 838 10th 558 10th
Time of possession per game 32:14 1st 31:36 2nd
Home Attendance 210637 12th 151544 12th
Home Attendance average 30091 12th 30309 12th
Passing
No. Name Yr Pos gp comp att pct yds y/g y/a td int lg effic
16 Gardner Minshew III Sr QB 13 468 662 70.7% 4779 367.6 7.2 38 9 89 147.6
10 Trey Tinsley Jr QB 5 7 9 77.8% 63 12.6 7.0 1 0 13 173.2
18 Anthony Gordon Jr QB 3 3 5 60.0% 17 5.7 3.4 0 1 6 48.6
32 James Williams Jr RB 13 0 1 .0% 0 0.0 0.0 0 0 0 0.0
  Totals     13 478 677 70.6% 4859 373.8 7.2 39 10 89 147.0
  Opponent     13 231 391 59.1% 2835 218.1 7.3 17 12 59 128.2
Rushing
No. Name Yr Pos gp rush yds y/g avg td lg fum lost
32 James Williams Jr RB 13 122 560 43.1 4.6 12 43 2 1
21 Max Borghi Fr RB 13 72 366 28.2 5.1 8 30 3 1
16 Gardner Minshew III Sr QB 13 58 119 9.2 2.1 4 12 1 0
24 Keith Harrington Sr WR 12 14 45 3.8 3.2 0 9 - -
5 Travell Harris Fr WR 13 1 3 0.2 3.0 0 3 1 0
39 Clay Markoff So FB 10 1 3 0.3 3.0 0 3 - -
  Totals     13 281 1010 77.7 3.6 24 43 11 5
  Opponent     13 447 1839 141.5 4.1 21 80 24 11
Receiving
No. Name Yr Pos gp rec rec/g yds y/g avg td lg
32 James Williams Jr RB 13 83 6.4 613 47.2 7.4 4 41
1 Tay Martin So WR 13 69 5.3 685 52.7 9.9 8 50
12 Dezmon Patmon Jr WR 13 61 4.7 816 62.8 13.4 5 65
21 Max Borghi Fr RB 13 53 4.1 374 28.8 7.1 4 30
8 Jr. Easop Winston Jr WR 13 52 4.0 654 50.3 12.6 8 89
6 Jamire Calvin So WR 13 42 3.2 497 38.2 11.8 1 54
17 Kyle Sweet Sr WR 13 33 2.5 342 26.3 10.4 0 27
5 Travell Harris Fr WR 13 27 2.1 309 23.8 11.4 1 39
85 Jr. Calvin Jackson Jr WR 12 26 2.2 287 23.9 11.0 2 38
81 Renard Bell So WR 13 20 1.5 202 15.5 10.1 5 33
24 Keith Harrington Sr WR 12 9 0.8 57 4.8 6.3 0 11
88 Rodrick Fisher Fr WR 4 1 0.3 12 3.0 12.0 0 12
15 Robert Lewis Sr WR 10 1 0.1 6 0.6 6.0 1 6
86 Kainoa Wilson Jr WR 12 1 0.1 5 0.4 5.0 0 5
  Totals     13 478 - 4859 373.8 10.2 39 89
  Opponent     13 231 - 2835 218.1 12.3 17 59
Kicking
No. Name Yr Pos gp fgm fga pct lg xpm xpa pct pts
40 Blake Mazza Fr K 13 10 15 67% 50 60 62 97% 90
  Totals     13 10 15 67% 50 60 64 94% 90
  Opponent     13 12 14 86% 50 33 35 94% 69
Punting
No. Name Yr Pos gp punt yds avg lg in20 fc tb blk
94 Oscar Draguicevich Jr 13 46 2103 45.7 67 15 13 6 0
  Totals     13 46 2103 45.7 67 15 13 6 0
  Opponent     13 67 2631 39.3 62 20 35 3 1
Returns
No. Name Yr Pos kr yds avg td lg pr yds avg td lg
5 Travell Harris Fr WR 25 691 27.6 1 100 2 6 3.0 0 4
24 Keith Harrington Sr WR 1 14 14.0 0 14 - - - - -
17 Kyle Sweet Sr WR - - - - - 11 79 7.2 0 26
34 Jalen Thompson Jr - - - - - 1 -10 -10.0 0 0
86 Kainoa Wilson Jr WR - - - - - 1 14 14.0 0 0
  Totals     26 705 27.1 1 100 15 94 6.3 1 26
  Opponent     39 792 20.3 0 57 13 103 7.9 0 39
All-Purpose
No. Name Yr Pos gp rush rcv pr kr yds ypg
32 James Williams Jr RB 13 560 613 - - 1173 90.2
5 Travell Harris Fr WR 13 3 309 6 691 1009 77.6
12 Dezmon Patmon Jr WR 13 - 816 - - 816 62.8
21 Max Borghi Fr RB 13 366 374 - - 740 56.9
1 Tay Martin So WR 13 - 685 - - 685 52.7
8 Jr. Easop Winston Jr WR 13 - 654 - - 654 50.3
6 Jamire Calvin So WR 13 - 497 - - 497 38.2
17 Kyle Sweet Sr WR 13 - 342 79 - 421 32.4
85 Jr. Calvin Jackson Jr WR 12 - 287 - - 287 23.9
81 Renard Bell So WR 13 - 202 - - 202 15.5
24 Keith Harrington Sr WR 12 45 57 - 14 116 9.7
16 Gardner Minshew III Sr QB 13 119 - - - 119 9.2
88 Rodrick Fisher Fr WR 4 - 12 - - 12 3.0
86 Kainoa Wilson Jr WR 12 - 5 14 - 19 1.6
15 Robert Lewis Sr WR 10 - 6 - - 6 .6
44 Tristan Brock Jr FS 13 - - 5 - 5 .4
39 Clay Markoff So FB 10 3 - - - 3 .3
  Totals     13 1010 4859 94 705 6668 512.9
  Opponent     13 1839 2835 103 792 5569 428.4
Scoring
No. Name Yr Pos pts pts/g rush rec kr pr int fum xpm fgm 2pt misc
32 James Williams Jr RB 96 7.4 12 4 - - - - - - - 0
40 Blake Mazza Fr K 90 6.9 - - - - - - 60 10 0 0
21 Max Borghi Fr RB 72 5.5 8 4 - - - - - - - 0
8 Jr. Easop Winston Jr WR 48 3.7 - 8 - - - - - - - 0
1 Tay Martin So WR 48 3.7 - 8 - - - - - - - 0
81 Renard Bell So WR 30 2.3 - 5 - - - - - - - 0
12 Dezmon Patmon Jr WR 30 2.3 - 5 - - - - - - - 0
16 Gardner Minshew III Sr QB 24 1.8 4 - - - - - 0 - 0 0
85 Jr. Calvin Jackson Jr WR 12 1.0 - 2 - - - - - - - 0
5 Travell Harris Fr WR 12 0.9 0 1 1 0 - - - - - 0
44 Tristan Brock Jr FS 6 0.5 - - - 1 - - - - - 0
6 Jamire Calvin So WR 6 0.5 - 1 - - - - - - - 0
15 Robert Lewis Sr WR 6 0.6 - 1 - - - - - - - 0
86 Kainoa Wilson Jr WR 6 0.5 - 0 - 0 - 1 - - - 0
26 Hunter Dale Sr P 2 0.2 - - - - - - 0 - 1 0
  Totals     488 37.5 24 39 1 1 0 1 60 10 1 0
  Opponent     303 23.3 21 17 0 0 0 - 33 12 2 0
Defense
No. Name Yr Pos gp tkl ast tot tkl/g sck yds tfl yds ff fr yds int yds brup blk
47 Peyton Pelluer Sr LB 13 62 36 98.0 7.5 4.5 32 10.5 47 2 2 0 - - 3 -
13 Jahad Woods So LB 13 51 31 82.0 6.3 3 15 4.5 19 4 2 0 1 0 1 -
25 Skyler Thomas So 13 46 30 76.0 5.8 - - 1 4 - - - 2 18 2 -
34 Jalen Thompson Jr 13 41 26 67.0 5.2 - - 3 4 1 1 0 2 0 8 -
26 Hunter Dale Sr P 13 34 24 58.0 4.5 0.5 4 5 15 - - - - - 1 -
3 Darrien Molton Sr CB 13 36 7 43.0 3.3 1 7 1 7 - - - 1 0 8 -
4 Marcus Strong Jr CB 13 34 7 41.0 3.2 2 18 2 18 - 1 0 3 66 5 -
27 Willie Taylor III Fr FS 13 17 14 31.0 2.4 4 40 7.5 44 3 - - 1 40 2 -
41 Dillon Sherman So LB 12 13 17 30.0 2.5 - - 4.5 8 1 1 0 - - - -
45 Logan Tago Sr DL 13 17 12 29.0 2.2 3 7 10.5 28 - - - - - - -
20 Dominic Silvels So FS 13 19 6 25.0 1.9 4.5 41 7.5 47 - - - - - - -
56 Taylor Comfort Sr DL 13 7 16 23.0 1.8 2 12 4 16 1 1 0 - - - -
92 Will Rodgers III So DL 13 12 11 23.0 1.8 4 14 7.5 23 - - - - - - -
2 Jr. Sean Harper Sr CB 6 15 7 22.0 3.7 - - 0 - 1 - - - - 3 -
22 Deion Singleton Jr CB 8 11 3 14.0 1.8 - - 0 - - - - 1 0 - -
50 Karson Blcok Jr DL 12 8 3 11.0 .9 1 25 4 31 - - - - - - -
89 Nick Begg Sr DL 13 7 3 10.0 .8 - - 1.5 5 - - - - - - -
30 Nnamdi Oguayo Jr DL 10 6 4 10.0 1.0 1.5 13 1.5 13 - - - - - - -
86 Kainoa Wilson Jr WR 12 8 2 10.0 .8 - - 0 - 1 2 0 - - - 1
37 Justus Rogers So LB 13 7 2 9.0 .7 2 12 2 12 - - - - - 1 -
59 Cole Dubots Fr LB 12 7 1 8.0 .7 - - 2 5 1 - - - - - -
90 Misiona Aiolopotea-P Jr DL 11 6 1 7.0 .6 2.5 15 2.5 15 - - - - - - -
1H George Hicks III So CB 10 6 1 7.0 .7 - - 0 - - - - - - - -
58 Fa'avae Fa'avae So LB 10 3 3 6.0 .6 2.5 15 2.5 15 - - - - - - -
84 Jesus Echevarria Fr DL 5 2 2 4.0 .8 - - 1 2 - - - - - - -
5 Travell Harris Fr WR 13 4 0 4.0 .3 - - 0 - - - - - - - -
1E Kedron Williams Fr P 6 3 1 4.0 .7 - - 0 - - - - - - 1 -
44 Tristan Brock Jr FS 13 0 3 3.0 .2 - - 0.5 0 - - - - - - -
33 Jack Crane So K 13 1 2 3.0 .2 - - 0 - - - - - - - -
1 Tay Martin So WR 13 2 1 3.0 .2 - - 0 - 1 - - - - - -
12 Dezmon Patmon Jr WR 13 3 0 3.0 .2 - - 0 - 1 1 0 - - - -
46 Kyle Celli Sr 13 2 0 2.0 .2 - - 0 - - - - - - - -
42 Halid Djibril Fr P 3 2 0 2.0 .7 - - 0 - - - - - - - -
24 Keith Harrington Sr WR 12 2 0 2.0 .2 - - 0 - - - - - - - -
98 Dallas Hobbs Fr DL 4 1 1 2.0 .5 - - 1 2 - - - - - - -
19 Brandon Arconado Jr WR 7 1 0 1.0 .1 - - 0 - - - - - - - -
21 Max Borghi Fr RB 13 0 1 1.0 .1 - - 0 - - - - - - - -
6 Jamire Calvin So WR 13 1 0 1.0 .1 - - 0 - - - - - - - -
95 Ahmir Crowder Fr DL 2 0 1 1.0 .5 - - 0 - - - - - - - -
60 Andre Dillard Sr OL 13 1 0 1.0 .1 - - 0 - - - - - - - -
88 Rodrick Fisher Fr WR 4 1 0 1.0 .3 - - 0 - - - - - - - -
15 Robert Lewis Sr WR 10 0 1 1.0 .1 - - 0 - - - - - - - -
23 Isaiah Love Fr DB 1 1 0 1.0 1.0 - - 0 - - - - - - - -
35 Armani Marsh Fr DB 5 0 1 1.0 .2 - - 0 - - - - - - - -
63 Liam Ryan So OL 13 1 0 1.0 .1 - - 0 - - - - - - - -
8D Kassidy Woods Fr WR 3 0 1 1.0 .3 - - 0 - - - - - - - -
29 Makiah gilmer So 5 1 0 1.0 .2 - - 0 - - - - - - - -
  Totals     13 505 282 787.0 60.5 38 270 88 381 17 11 0 12 149 36 2
  Opponent     13 511 302 813.0 62.5 13 75 47 171 4 5 0 10 57 47 2
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