2022-23 Soccer Statistics - Cerritos

Team Summary
Title Record
Overall 21-1-2 (.917)
Conference 10-0 (1.000)
Streak Lost 1
Home 12-1-1
Away 8-0
Neutral 1-0-1
Recent Results
Date Opponent Result
Nov 1 East Los Angeles W, 1-0
Nov 8 Long Beach W, 4-1
Nov 11 vs. Mt. San Antonio W, 3-2
Nov 19 Bakersfield W, 2-0
Nov 22 Santa Monica W, 2-1
Nov 26 Mt. San Antonio L, 1-0
Team Stats
Statistics Overall Conf
Games 23 1st 9 1st
Shots 428 1st 158 1st
Goals scored 74 1st 33 1st
Shot percentage .173 4th .209 3rd
Shots-per game 18.6 1st 17.6 1st
Shots on goal 224 1st 87 1st
SOG percentage .523 3rd .551 2nd
Assists 64 1st 28 1st
Corner kicks 123 1st 48 1st
Penalty kicks 4-5 1st 2-2 1st
Yellow cards 33 2nd 16 1st
Red cards 1 2nd 1 1st
Shutouts 12 2nd 4 2nd
Home Attendance 3,525 1st 1,325 1st
Home Attendance average 272 1st 332 1st
Scoring
# Name Yr Pos gp gs g/g a/g pts/g
0 Steven Ruiz Frosh GK 20 15 .00 .00 .00
1 Juan Pablo Camacho Frosh GK 13 8 .00 .00 .00
2 Diego Alvarado Frosh M 15 - .00 .07 .07
3 Alfredo Ortiz Soph D 23 22 .09 .35 .52
4 Jaret Rocha Soph D 18 16 .17 .00 .33
5 Allen Perez Soph M 17 - .06 .06 .18
6 Raul Ortiz Soph M 23 23 .04 .04 .13
7 Julian Vazquez Frosh F 23 5 .39 .13 .91
8 Miguel Martinez Soph M 23 20 .04 .00 .09
9 Pablo Caparelli Soph F 23 22 .35 .43 1.13
10 Gabriel Oropeza Soph M 23 3 .30 .30 .91
11 Uriel Sanchez Soph M 22 21 .18 .27 .64
12 Mikel Villarreal Soph D 20 6 .00 .00 .00
13 Christian Perez Soph F 17 - .24 .12 .59
14 Ernesto Vergara Soph D 23 22 .04 .04 .13
15 Bryan Saldana Frosh M 10 - .00 .10 .10
16 Antonio Negrete Soph M 23 23 .48 .13 1.09
17 Nathan Garcia Soph M 13 - .00 .08 .08
18 Johan Duenas Soph D 21 1 .00 .05 .05
19 Jason Alvarez Frosh F 18 3 .11 .17 .39
20 Kobe Chavez Frosh M 22 4 .50 .32 1.32
21 Chris Corona Soph F 21 2 .10 .10 .29
22 Michael Rodriguez Soph F 23 19 .09 .04 .22
23 Taylor Demarais Frosh F 5 - .00 .00 .00
24 Enrique Penate Soph F 22 18 .14 .00 .27
25 Diego Cortes Frosh F 11 - .09 .18 .36
27 Andrew Valencia Frosh M 13 - .08 .15 .31
28 Damian Rodriguez Soph D 11 - .00 .00 .00
30 Peter Silva Frosh GK - - - - -
Totals
  • gp 23
  • gs 23
  • g/g 3.22
  • a/g 2.78
  • pts/g 9.22
Opponents
  • gp 23
  • gs 23
  • g/g 3.22
  • a/g .17
  • pts/g 1.30
Shooting
# Name Yr Pos gp sh/g sh%/g sog/g sog%/g
0 Steven Ruiz Frosh GK 20 .00 - .00 -
1 Juan Pablo Camacho Frosh GK 13 .00 - .00 -
2 Diego Alvarado Frosh M 15 .13 .000 .07 .500
3 Alfredo Ortiz Soph D 23 .65 .133 .26 .400
4 Jaret Rocha Soph D 18 .33 .500 .17 .500
5 Allen Perez Soph M 17 .24 .250 .12 .500
6 Raul Ortiz Soph M 23 .39 .111 .26 .667
7 Julian Vazquez Frosh F 23 2.04 .191 1.09 .532
8 Miguel Martinez Soph M 23 .52 .083 .22 .417
9 Pablo Caparelli Soph F 23 1.87 .186 1.00 .535
10 Gabriel Oropeza Soph M 23 2.61 .117 1.13 .433
11 Uriel Sanchez Soph M 22 1.27 .143 .55 .429
12 Mikel Villarreal Soph D 20 .00 - .00 -
13 Christian Perez Soph F 17 1.06 .222 .35 .333
14 Ernesto Vergara Soph D 23 .61 .071 .17 .286
15 Bryan Saldana Frosh M 10 .40 .000 .30 .750
16 Antonio Negrete Soph M 23 1.74 .275 1.09 .625
17 Nathan Garcia Soph M 13 .23 .000 .08 .333
18 Johan Duenas Soph D 21 .05 .000 .00 .000
19 Jason Alvarez Frosh F 18 1.22 .091 .67 .545
20 Kobe Chavez Frosh M 22 1.95 .256 1.18 .605
21 Chris Corona Soph F 21 .62 .154 .33 .538
22 Michael Rodriguez Soph F 23 .78 .111 .43 .556
23 Taylor Demarais Frosh F 5 .40 .000 .20 .500
24 Enrique Penate Soph F 22 .68 .200 .50 .733
25 Diego Cortes Frosh F 11 .36 .250 .36 1.000
27 Andrew Valencia Frosh M 13 .38 .200 .23 .600
28 Damian Rodriguez Soph D 11 .00 - .00 -
30 Peter Silva Frosh GK - - - - -
Totals
  • gp 23
  • sh/g 18.61
  • sh%/g .173
  • sog/g 9.74
  • sog%/g .523
Opponents
  • gp 23
  • sh/g 5.30
  • sh%/g .107
  • sog/g 2.91
  • sog%/g .549
Goalkeepers
# Name Yr Pos gp gs ga/g gaa sv/g
0 Steven Ruiz Frosh GK 20 16 .40 0.52 1.90
1 Juan Pablo Camacho Frosh GK 13 7 .38 0.63 2.00
30 Peter Silva Frosh GK - - - - -
Totals
  • gp 23
  • gs 23
  • ga/g .57
  • gaa 0.56
  • sv/g 2.78
Opponents
  • gp 23
  • gs 23
  • ga/g 3.22
  • gaa 3.17
  • sv/g 6.04
Goalkeepers Ext.
# Name Yr Pos gp min/g
0 Steven Ruiz Frosh GK 20 69:00
1 Juan Pablo Camacho Frosh GK 13 55:23
30 Peter Silva Frosh GK - 0:00
Totals
  • gp 23
  • min/g 91:18
Opponents
  • gp 23
  • min/g 91:18
Scoring
# Name Yr Pos gp gs g a pts
0 Steven Ruiz Frosh GK 20 15 0 0 0
1 Juan Pablo Camacho Frosh GK 13 8 0 0 0
2 Diego Alvarado Frosh M 15 - 0 1 1
3 Alfredo Ortiz Soph D 23 22 2 8 12
4 Jaret Rocha Soph D 18 16 3 0 6
5 Allen Perez Soph M 17 - 1 1 3
6 Raul Ortiz Soph M 23 23 1 1 3
7 Julian Vazquez Frosh F 23 5 9 3 21
8 Miguel Martinez Soph M 23 20 1 0 2
9 Pablo Caparelli Soph F 23 22 8 10 26
10 Gabriel Oropeza Soph M 23 3 7 7 21
11 Uriel Sanchez Soph M 22 21 4 6 14
12 Mikel Villarreal Soph D 20 6 0 0 0
13 Christian Perez Soph F 17 - 4 2 10
14 Ernesto Vergara Soph D 23 22 1 1 3
15 Bryan Saldana Frosh M 10 - 0 1 1
16 Antonio Negrete Soph M 23 23 11 3 25
17 Nathan Garcia Soph M 13 - 0 1 1
18 Johan Duenas Soph D 21 1 0 1 1
19 Jason Alvarez Frosh F 18 3 2 3 7
20 Kobe Chavez Frosh M 22 4 11 7 29
21 Chris Corona Soph F 21 2 2 2 6
22 Michael Rodriguez Soph F 23 19 2 1 5
23 Taylor Demarais Frosh F 5 - 0 0 0
24 Enrique Penate Soph F 22 18 3 0 6
25 Diego Cortes Frosh F 11 - 1 2 4
27 Andrew Valencia Frosh M 13 - 1 2 4
28 Damian Rodriguez Soph D 11 - 0 0 0
30 Peter Silva Frosh GK - - - - 0
Totals
  • gp 23
  • gs 23
  • g 74
  • a 64
  • pts 212
Opponents
  • gp 23
  • gs 23
  • g 13
  • a 4
  • pts 30
Shooting
# Name Yr Pos gp sh sh% sog sog%
0 Steven Ruiz Frosh GK 20 0 - 0 -
1 Juan Pablo Camacho Frosh GK 13 0 - 0 -
2 Diego Alvarado Frosh M 15 2 .000 1 .500
3 Alfredo Ortiz Soph D 23 15 .133 6 .400
4 Jaret Rocha Soph D 18 6 .500 3 .500
5 Allen Perez Soph M 17 4 .250 2 .500
6 Raul Ortiz Soph M 23 9 .111 6 .667
7 Julian Vazquez Frosh F 23 47 .191 25 .532
8 Miguel Martinez Soph M 23 12 .083 5 .417
9 Pablo Caparelli Soph F 23 43 .186 23 .535
10 Gabriel Oropeza Soph M 23 60 .117 26 .433
11 Uriel Sanchez Soph M 22 28 .143 12 .429
12 Mikel Villarreal Soph D 20 0 - 0 -
13 Christian Perez Soph F 17 18 .222 6 .333
14 Ernesto Vergara Soph D 23 14 .071 4 .286
15 Bryan Saldana Frosh M 10 4 .000 3 .750
16 Antonio Negrete Soph M 23 40 .275 25 .625
17 Nathan Garcia Soph M 13 3 .000 1 .333
18 Johan Duenas Soph D 21 1 .000 0 .000
19 Jason Alvarez Frosh F 18 22 .091 12 .545
20 Kobe Chavez Frosh M 22 43 .256 26 .605
21 Chris Corona Soph F 21 13 .154 7 .538
22 Michael Rodriguez Soph F 23 18 .111 10 .556
23 Taylor Demarais Frosh F 5 2 .000 1 .500
24 Enrique Penate Soph F 22 15 .200 11 .733
25 Diego Cortes Frosh F 11 4 .250 4 1.000
27 Andrew Valencia Frosh M 13 5 .200 3 .600
28 Damian Rodriguez Soph D 11 0 - 0 -
30 Peter Silva Frosh GK - - - - -
Totals
  • gp 23
  • sh 428
  • sh% .173
  • sog 224
  • sog% .523
Opponents
  • gp 23
  • sh 122
  • sh% .107
  • sog 67
  • sog% .549
Misc.
# Name Yr Pos gp yc rc pk gw
0 Steven Ruiz Frosh GK 20 0 0 0-0 0
1 Juan Pablo Camacho Frosh GK 13 0 0 0-0 0
2 Diego Alvarado Frosh M 15 0 0 0-0 0
3 Alfredo Ortiz Soph D 23 2 0 0-0 2
4 Jaret Rocha Soph D 18 3 0 0-0 0
5 Allen Perez Soph M 17 1 0 0-0 0
6 Raul Ortiz Soph M 23 2 0 0-0 1
7 Julian Vazquez Frosh F 23 3 0 0-0 2
8 Miguel Martinez Soph M 23 1 0 0-0 0
9 Pablo Caparelli Soph F 23 2 0 2-2 5
10 Gabriel Oropeza Soph M 23 1 0 0-0 2
11 Uriel Sanchez Soph M 22 3 0 2-2 0
12 Mikel Villarreal Soph D 20 3 0 0-0 0
13 Christian Perez Soph F 17 0 0 0-1 0
14 Ernesto Vergara Soph D 23 4 0 0-0 1
15 Bryan Saldana Frosh M 10 0 0 0-0 0
16 Antonio Negrete Soph M 23 2 0 0-0 4
17 Nathan Garcia Soph M 13 0 0 0-0 0
18 Johan Duenas Soph D 21 1 0 0-0 0
19 Jason Alvarez Frosh F 18 0 0 0-0 0
20 Kobe Chavez Frosh M 22 1 0 0-0 3
21 Chris Corona Soph F 21 1 0 0-0 0
22 Michael Rodriguez Soph F 23 1 0 0-0 0
23 Taylor Demarais Frosh F 5 0 0 0-0 0
24 Enrique Penate Soph F 22 0 0 0-0 0
25 Diego Cortes Frosh F 11 0 0 0-0 0
27 Andrew Valencia Frosh M 13 0 0 0-0 0
28 Damian Rodriguez Soph D 11 0 0 0-0 0
30 Peter Silva Frosh GK - - - 0-0 -
Totals
  • gp 23
  • yc 33
  • rc 1
  • pk 4-5
  • gw 20
Opponents
  • gp 23
  • yc 39
  • rc 3
  • pk 3-4
  • gw 1
Goalkeepers
# Name Yr Pos gp gs ga sv sv%
0 Steven Ruiz Frosh GK 20 16 8 38 .826
1 Juan Pablo Camacho Frosh GK 13 7 5 26 .839
30 Peter Silva Frosh GK - - - - -
Totals
  • gp 23
  • gs 23
  • ga 13
  • sv 64
  • sv% .831
Opponents
  • gp 23
  • gs 23
  • ga 74
  • sv 139
  • sv% .653
Goalkeepers Ext.
# Name Yr Pos gp wins losses ties shutouts min
0 Steven Ruiz Frosh GK 20 14 1 0 6/4 1380:00
1 Juan Pablo Camacho Frosh GK 13 6 0 2 2/4 720:00
30 Peter Silva Frosh GK - - - - 0/0 0:00
Totals
  • gp 23
  • wins 20
  • losses 1
  • ties 2
  • shutouts 12
  • min 2100:00
Opponents
  • gp 23
  • wins 1
  • losses 19
  • ties 2
  • shutouts 3
  • min 2100:00
Scoring
# Name Yr Pos gp gs g/g a/g pts/g
0 Steven Ruiz Frosh GK 8 6 .00 .00 .00
1 Juan Pablo Camacho Frosh GK 4 3 .00 .00 .00
2 Diego Alvarado Frosh M 3 - .00 .00 .00
3 Alfredo Ortiz Soph D 9 9 .11 .33 .56
4 Jaret Rocha Soph D 4 3 .25 .00 .50
5 Allen Perez Soph M 6 - .00 .17 .17
6 Raul Ortiz Soph M 9 9 .00 .11 .11
7 Julian Vazquez Frosh F 9 4 .67 .11 1.44
8 Miguel Martinez Soph M 9 9 .00 .00 .00
9 Pablo Caparelli Soph F 9 9 .22 .56 1.00
10 Gabriel Oropeza Soph M 9 3 .33 .56 1.22
11 Uriel Sanchez Soph M 9 8 .33 .22 .89
12 Mikel Villarreal Soph D 9 4 .00 .00 .00
13 Christian Perez Soph F 6 - .33 .17 .83
14 Ernesto Vergara Soph D 9 9 .00 .00 .00
15 Bryan Saldana Frosh M 4 - .00 .00 .00
16 Antonio Negrete Soph M 9 9 .56 .22 1.33
17 Nathan Garcia Soph M 5 - .00 .00 .00
18 Johan Duenas Soph D 9 - .00 .11 .11
19 Jason Alvarez Frosh F 9 1 .11 .11 .33
20 Kobe Chavez Frosh M 9 1 .78 .22 1.78
21 Chris Corona Soph F 7 - .14 .00 .29
22 Michael Rodriguez Soph F 9 7 .11 .00 .22
23 Taylor Demarais Frosh F - - - - -
24 Enrique Penate Soph F 8 5 .00 .00 .00
25 Diego Cortes Frosh F 6 - .00 .17 .17
27 Andrew Valencia Frosh M 5 - .00 .40 .40
28 Damian Rodriguez Soph D 5 - .00 .00 .00
30 Peter Silva Frosh GK - - - - -
Totals
  • gp 9
  • gs 9
  • g/g 3.67
  • a/g 3.11
  • pts/g 10.44
Opponents
  • gp 9
  • gs 9
  • g/g 3.67
  • a/g .11
  • pts/g 1.67
Shooting
There was a problem with a Velocity script
Pagesports/msoc/2022-23/Conference/South_Coast-South/teams/teaminfo-network-template
ErrorInvocation of method 'includeAgain' in class com.prestosports.render.ContentEngineInvoker threw exception javax.servlet.ServletException: javax.servlet.ServletException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 36,078 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. at g5xpj7agcui7frapsports/msoc/2022-23/Conference/South_Coast-South/teams/teaminfo-network-template[line 132, column 26]
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 = "sc")
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 == 9) ## Field Hockey
33:     #if ($pos == "goalie")
34:         #set ($pos = "fielder")
35:     #end
36:     #if ($pos == "gg")
37:         #set ($pos = "kg")
38:     #end
39: #end
40: 
41: #set ($restriction = 0)
42: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
43: #if ($restrictionEsc.length() > 0 && $restrictionEsc.equals("1"))
44:     #set ($restriction = 1)
45: #end
46: 
47: #set ($resultFormat     = "AP1")
48: #if ($options.get("schedule_result_format").equals("L, 1-2"))
49: 	#set ($resultFormat = "AP2")
50: #end
51: 
52: #set ($view = "profile")
53: #if ($request.getParameter("view"))
54:     #set ($view = $formatter.escapeXml($!request.getParameter("view")))
55: #end
56: 
57: #if ($briefsCategoriesLabels)
58:     #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
59:     #set($firstCategoryPos = $briefsCategoriesSeason.keySet().iterator().next())
60: #end
61: 
62: #set ($showRoster = false)
63: #if ($options.get("stats_show_roster") and $options.get("stats_show_roster").equalsIgnoreCase("yes"))
64:     #set ($showRoster = true)
65: #end
66: 
67: #set ($showAttendance = true)
68: #if ($options.get("stats_show_attendance") and $options.get("stats_show_attendance").equalsIgnoreCase("hide"))
69:     #set ($showAttendance = false)
70: #end
71: 
72: ## MACROS
73: #macro (printTableHeader $label $class)
74: 	<th class="text-uppercase $class">$label</th>
75: #end
76: 
77: #macro (printResultAriaLabel $event)
78:     #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
79:     #if ($event.neutralSite.length() > 0 || $event.home) 
80:         #set ($ariaLabel = "${ariaLabel} vs.")
81: 	#else
82: 		#set ($ariaLabel = "${ariaLabel} at")
83: 	#end
84: 	#set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:")
85: 	#if ($event.neutralSite.length() > 0)
86: 		#set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
87: 	#end
88: 	#set ($ariaLabel = "${ariaLabel} Box Score")
89:     aria-label="$ariaLabel"
90: #end
91: 
92: #macro (printBriefCategory $briefCatLabel $briefCatPos $r)
93:   	#if ($locale == "en_gb" && $briefCatLabel == "Defense")
94:         #set ($briefCatLabel = "Defence")
95:     #end
96:   	
97:     #if ($lineupDefaultSorting && $lineupDefaultSorting.containsKey($briefCatPos))
98:         #set ($sort = $lineupDefaultSorting.get($briefCatPos))
99:     #end	
100:   	
101:     #if ($allowChooseSort)
102:         #set ($sortEsc = $formatter.escapeXml($request.getParameter("sort")))
103:         #if ($sortEsc.length() > 0)
104:             #set ($sort = $sortEsc)
105:         #end
106:     #end
107:   	
108: 	#set ($url = "")
109:     #set ($url = "${page.sectionPage.sectionPage.url}/players?teamId=${attributes.teamId}&view=lineup&sort=$!{sort}&pos=${briefCatPos}&r=${r}&tmpl=stats-bios-template")
110:   	
111:     #if ($lineupMin && $lineupMin.containsKey($briefCatPos))
112:         #set ($minStat = $lineupMin.get($briefCatPos))
113:         #set ($url = $url + "&min=" + $minStat)
114:     #end
115:   	
116:     #if ($lineupFilters)
117:         #if ($lineupFilters.containsKey("cs"))
118:             #set($url = $url + "&cs=n")
119:         #end
120:   		
121:         #if ($lineupFilters.containsKey("skipBlank"))
122:             #set($skipBlank = $lineupFilters.get("skipBlank"))	
123:   			
124:             #if ($skipBlank.contains($briefCatPos))
125:                 #set($url = $url + "&skipBlank=n")
126:             #end	
127:         #end	
128:     #end	
129:   	
130: 	<div class="my-3">
131: 		<h5>$briefCatLabel</h5>
132: 		$website.includeAgain($url)
133: 	</div>
134:     
135: #end ## printBriefCategory
136: 
137: #macro(printBriefCategories $r)
138: ## Set this for the inner page to pull something out
139: 	#if ($r == 1)
140: 		#set ($restrictionLabel = "conf")
141: 		$!request.setAttribute("teamStats", $splits.conference)
142: 	#else
143: 		#set ($restrictionLabel = "overall")
144: 		$!request.setAttribute("teamStats", $splits.overall)
145: 	#end
146: 
147: 	#if ($briefsCategoriesLabels)
148: 
149: 		#set($allowChooseSort = false)
150:   	
151: 		#if ($lineupFilters && $lineupFilters.containsKey("allowChooseSort"))
152: 			#set ($allowChooseSort = true)
153: 		#end
154: 
155: 		#if ($briefsCategoriesLabels.containsKey("Game"))
156: 			#set ($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
157:       	
158: 			## Print Game categories tables
159: 			## Get the first Game category position
160: 			#set ($gamePos = $briefsCategoriesGame.keySet().iterator().next())
161:       
162: 			## GAME
163: 			<div #if ($gamePosActive) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-game" role="tabpanel">
164: 			#foreach($briefsCatGame in $briefsCategoriesGame.entrySet())
165: 				#printBriefCategory($briefsCatGame.value, $briefsCatGame.key, $r)
166: 			#end
167: 			</div>
168: 
169: 			## Print the Season categories tables
170: 			#set ($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
171:    
172: 			## SEASON
173: 			<div #if ($seasonPosActive) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-season" role="tabpanel">
174: 			#foreach ($briefCat in $briefsCategoriesSeason.entrySet())
175: 				#printBriefCategory($briefCat.value, $briefCat.key, $r)
176: 			#end
177: 			</div>
178:   		
179: 			## Print the Minutes categories tables
180: 			#if ($briefsCategoriesLabels.containsKey("Minutes"))
181: 				#set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
182: 				#set($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next())
183:       		
184: 				#set($showMinutesTab = false)
185: 				#if ($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos))
186: 					#set($lineupMinOverallValues = $lineupMinTeam.get($minutesPos))
187:   			
188: 					#set($lineupMinOverallStat = $lineupMinOverallValues[0])
189: 					#set($lineupMinOverallMinVal = $lineupMinOverallValues[1])
190: 					#set($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal))
191:   			
192: 					#if ($tool.math.round($splits.overall[$lineupMinOverallStat]) && $tool.math.round($splits.overall[$lineupMinOverallStat]) >= $lineupMinOverallMinNumericValue)
193: 						#set($showMinutesTab = true)
194: 					#end	
195: 				#end
196: 
197: 				#if ($showMinutesTab)
198: 					## MINUTES
199: 					<div #if ($minutesPosActive) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-minutes" role="tabpanel">
200: 					#foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet())
201: 						#printBriefCategory($briefsCatMinutes.value, $briefsCatMinutes.key, $r)
202: 					#end
203: 					</div>
204: 				#end
205: 			#end ## end minutes
206: 		#else
207: 
208: 			#set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
209: 			## SINGLE SEASON
210: 			#foreach($briefCat in $briefsCategoriesSeason.entrySet())
211: 				#printBriefCategory($briefCat.value, $briefCat.key, $r)
212: 			#end
213: 		#end
214: 		
215: 	#elseif ($lineupFilters)
216: 
217: 		## All of the supported sports has lineupFilters, so print it without matter it does not have briefs category, yeah voleyball is you :)
218: 		#set ($sort = $formatter.escapeXml($request.getParameter("sort")))
219: 		#set ($url = "../players?teamId=${attributes.teamId}&view=lineup&sort=$!{sort}&r=${r}")
220: 		$website.includeAgain($url)
221: 		
222: 	#else
223: 		We do not support this sport
224: 	#end
225: #end ## printBriefCategories
226: 
227: #macro (printCategories $briefCategoryLabels $v)
228: 	<div class="tab-container">
229:         <div class="d-flex flex-row text-nowrap align-items-center justify-content-center">
230:             <div class="secondary-tab-select-container flex-fill">
231:                 <select class="tab-nav-select-helper form-select" id="teaminfo-tabs-secondary-${v}-select" aria-label="Choose a stat group">
232: 					#foreach($label in $briefCategoryLabels.entrySet())
233: 						#set($catLabel = $label.value)
234: 						#if ($locale == "en_gb" && $catLabel == "Defense")
235: 							#set ($catLabel = "Defence")
236: 						#end
237:                         <option value="#gamelog-${v}-${label.key}" #if ($pos == $key.pos || $foreach.first) selected #end>${catLabel}</option>
238: 					#end
239:                 </select>
240:                 <script>
241:                     $('.tab-nav-select-helper').on('change', function(e) {
242:                         var id = $(this).val();
243:                         $('a[data-bs-target="' + id + '"]').tab('show');
244:                     });
245:                 </script>
246:             </div>
247:         </div>
248: 		<div class="tab-nav d-none">
249: 			<ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="teaminfo-tabs-secondary-${v}" role="tablist">
250: 				#foreach($label in $briefCategoryLabels.entrySet())
251: 					#set($catLabel = $label.value)
252: 					#if ($locale == "en_gb" && $catLabel == "Defense")
253: 						#set ($catLabel = "Defence")
254: 					#end
255: 					#set ($aClass = "nav-link text-nowrap text-center")
256: 					#if ($pos == $label.key || ($pos.length() == 0 && $velocityCount == 1))
257: 						#set ($aClass = "${aClass} active")
258: 					#end
259: 					<li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0">
260: 						<a class="${aClass}" href="${page.url}?view=${v}&pos=${label.key}" role="tab" data-bs-toggle="tab" data-bs-target="#gamelog-${v}-${label.key}">${catLabel}</a>
261: 					</li>
262: 				#end
263: 			</ul>
264: 		</div>
265: 		<div class="tab-content p-3">
266: 			#foreach ($briefCat in $briefCategoryLabels.entrySet())
267: 				#set ($classAttr = "tab-pane")
268: 				#if ($briefCat.key == $pos || ($pos.length() == 0 && $velocityCount == 1))
269: 					#set ($classAttr = "${classAttr} active")
270: 				#end
271: 				<div class="$classAttr" id="gamelog-${v}-${briefCat.key}" role="tabpanel">
272: 					#if ($v == "gamelog")
273: 						#gamelogData($briefCat.key)
274: 					#elseif ($v == "splits")
275: 						#splitsTeamNetworkData($briefCat.key)
276: 					#end
277: 				</div>
278: 			#end
279: 		</div>
280: 	</div>
281: #end ## printCategories
282:   
283: #macro (printSeasonGameMinutesTabs $r)
284:     #if ($briefsCategoriesLabels.containsKey("Game"))
285:         #set ($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
286:         #set ($gamePos = $briefsCategoriesGame.keySet().iterator().next())
287: 		
288: 		#set ($restrictionLabel = "overall")
289: 		#if ($r == 1)
290: 			#set ($restrictionLabel = "conf")
291: 		#end
292:         	
293: 		#set ($showMinutesTab = false)
294:         #if ($briefsCategoriesLabels.containsKey("Minutes"))
295:             #set ($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
296:             #set ($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next())
297:     		
298:             #if ($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos))
299:                 #set ($lineupMinOverallValues = $lineupMinTeam.get($minutesPos))
300:                 #set ($lineupMinOverallStat = $lineupMinOverallValues[0])
301:                 #set ($lineupMinOverallMinVal = $lineupMinOverallValues[1])
302:                 #set ($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal))
303:   			
304:                 #if ($tool.math.round($splits.overall[$lineupMinOverallStat]) && $tool.math.round($splits.overall[$lineupMinOverallStat]) >= $lineupMinOverallMinNumericValue)
305:                     #set($showMinutesTab = true)
306:                 #end	
307:   		    #end
308: 		#end
309:     	<div class="tab-container">
310: 			<div class="tab-nav">
311: 				#set($gamePosActive = false)
312: 				#set($seasonPosActive = false)
313:                 #set($minutesPosActive = false)
314: 
315: 				#if($pos.equals($gamePos) || $pos.endsWith("g") || $pos.endsWith("gext"))
316: 					#set($gamePosActive = true)
317: 				#else
318: 					#if($showMinutesTab && $pos.equals($minutesPos))
319: 						#set($minutesPosActive = true)
320: 					#elseif($pos.equals($firstCategoryPos))
321: 						#set($seasonPosActive = true)
322: 					#end
323: 					#set($seasonPosActive = true)
324: 				#end
325: 
326: 
327: 				<ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" data-pos="$pos" data-gamePos="$pos.equals($gamePos)" data-firstCategoryPos="$pos.equals($firstCategoryPos)" data-minutesPos="$pos.equals($minutesPos)" id="teaminfo-tabs-secondary-minutes" role="tablist">
328: 					#printSubTab($gamePosActive, "${url}?view=lineup&r=${r}&pos=${gamePos}", "Game", "#lineup-${restrictionLabel}-game")
329: 					#printSubTab($seasonPosActive, "${url}?view=lineup&r=${r}&pos=${firstCategoryPos}", "Season", "#lineup-${restrictionLabel}-season")
330: 					#if ($showMinutesTab)
331: 						#printSubTab($minutesPosActive, "${url}?view=lineup&r=${r}&pos=${minutesPos}", "Minutes", "#lineup-${restrictionLabel}-minutes")
332: 					#end
333: 				</ul>
334: 			</div>
335: 			<div class="tab-content p-3">
336: 				#printBriefCategories($r)
337: 			</div>
338:         </div>
339:     #end
340: #end ## printSeasonGameMinutesTabs
341:   
342: #macro (printLineupTabs)
343: 	<div class="tab-container">
344:     	<div class="tab-nav">
345:         	<ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="teaminfo-tabs-secondary-lineup" role="tablist">
346: 				#printSubTab(true, "${url}?view=lineup&r=0&pos=${pos}", "Overall", "#lineup-overall-pane")
347: 				#if ($showConf)
348: 					#printSubTab(false, "${url}?view=lineup&r=1&pos=${pos}", "Conference", "#lineup-conf-pane")
349: 				#end
350: 			</ul>
351: 		</div>
352: 		<div class="tab-content p-3">
353: 			<div class="tab-pane active" id="lineup-overall-pane" role="tabpanel">
354: 				#if ($briefsCategoriesLabels.containsKey("Game"))
355: 					#printSeasonGameMinutesTabs(0)
356: 				#else
357: 					#printBriefCategories(0)
358: 				#end
359: 			</div>
360: 			#if ($showConf)
361: 				<div class="tab-pane" id="lineup-conf-pane" role="tabpanel">
362: 					#if ($briefsCategoriesLabels.containsKey("Game"))
363: 						#printSeasonGameMinutesTabs(1)
364: 					#else
365: 						#printBriefCategories(1)
366: 					#end
367: 				</div>
368: 			#end
369: 		</div>
370:     </div>
371: #end ## printLineupTabs
372: 
373: #set($statClass = "flex-fill text-center border-bottom border-end p-3 col-3 col-lg-auto")
374: #macro (printStat $label $val $fmt)
375: 	<li class="$statClass" data-val="$val" data-format="$fmt">
376: 		<div class="d-flex flex-column justify-content-center align-items-center h-100">
377: 			<div class="small text-uppercase text-muted">$label</div>
378: 			<div class="fs-4 lh-1 text-nowrap fw-bold">$formatter.formatNumber($val, $fmt)</div>
379: 		</div>
380: 	</li>
381: #end
382: 
383: #macro (printStatGraph $label $val $fmt)
384: 	<li class="$statClass" data-val="$val" data-format="$fmt">
385: 		<div class="d-flex flex-column justify-content-center align-items-center h-100 proj-progress-card">
386: 			<div class="small text-uppercase text-muted">$label</div>
387: 			<div class="fs-4 lh-1 text-nowrap fw-bold">$formatter.formatNumber($val, $fmt)</div>
388: 			#set ($percent = $tool.math.mul($val, 100))
389: 			<div class="progress mt-2 w-100">
390: 				<div class="progress-bar bg-primary" role="progressbar" style="width: $formatter.formatNumber($percent, 1)%;" aria-valuenow="$formatter.formatNumber($percent, 1)" aria-valuemin="0" aria-valuemax="100"></div>
391: 			</div>
392: 		</div>
393: 	</li>
394: #end
395: 
396: #macro (printHighlights)
397:     #if ($highlights)
398:     	<ul class="team-stats my-3 list-unstyled d-flex flex-wrap justify-content-center align-items-stretch border-top border-start">
399:         #foreach ($highlight in $highlights.keySet())
400:             #set ($value = "-")
401:             #set ($value = $stats.get($highlight))
402: 			#set ($value = $tool.math.toInteger($value.replace('-', '0')))
403: 			#if($formats.get($highlight).equals("#.000") || $formats.get($highlight).equals(".000"))
404: 				#printStatGraph("$!highlights.get($highlight).replace('-per game', '/g').replace('per game', '')", $!value, $formats.get($highlight))
405: 			#else
406: 				#printStat("$!highlights.get($highlight).replace('-per game', '/g').replace('per game', '')", $!value, $formats.get($highlight))
407: 			#end
408: 
409:         #end
410:         </ul>
411:     #end
412: 
413: #end ## macro printHighlights
414: #macro (gamelogData $p)
415: 
416:     #set ($gamelogStats = $gamelogs.get($p))
417: 
418:     <table class="table table-hover">
419:         <thead class="thead-dark">
420:             <tr>
421:                 #printTableHeader("Date", "w-1 text-start")
422:                 #printTableHeader("Opponent", "")
423:                 #printTableHeader("Score", "text-center")
424:                 #foreach ($gamelog in $gamelogStats)
425:                     #printTableHeader($gamelog, "text-center")
426:                 #end
427:             </tr>
428:         </thead>
429:         #foreach ($event in $events)
430:             <tr>
431:                 <td class="text-nowrap text-start">
432:                     $formatter.formatDate($event.event.date, "MMM d") 
433:                     #if (!$event.event.overall)
434:                         #set ($atLeastOneNotOverall = true) # 
435:                     #end
436:                 </td>
437:                 <td class="text-nowrap">
438: 					#if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
439: 					$event.event.opponent.name
440:                 </td>
441:                 <td class="text-nowrap text-center">
442:                 #if ($event.event.statusCode >= 0)
443:                     #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
444:                         <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
445:                     #else
446:                         ${event.event.APResult}
447:                     #end
448:                 #else &nbsp; 
449:                 #end
450:                 </td>
451:                 #foreach ($gamelog in $gamelogStats.keySet())
452:                     #set ($value = "-")
453:                     #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
454:                     <td class="text-center text-nowrap">$value</td>
455:                 #end
456:             </tr>
457:         #end
458:     </table>
459: #end ## gamelogData
460: 
461: #macro (printRecentGames)
462:     <table class="table table-hover">
463:             <thead class="thead-dark">
464: 		<tr>
465: 			#printTableHeader("Date", "w-1 text-start")
466: 			#printTableHeader("Opponent", "")
467: 			#printTableHeader("Result", " text-center")
468: 		</tr>
469:             </thead>
470: 
471:         #set ($eventEnd = -1)
472:         #foreach ($event in $events)
473:             #if ($event.event.result.resolved)
474:                 #set ($eventEnd = $velocityCount)
475:             #end
476:         #end
477: 
478:         #set ($eventStart = $eventEnd - 5)
479:         #if ($eventStart < 0) #set ($eventStart = 0) #end
480: 
481:         #foreach ($event in $events)
482:             #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
483:                 <tr>
484:                     <td class="text-nowrap text-start"><span class="date">$formatter.formatDate($event.event.date, "MMM d")</span></td>
485:                     <td>
486:                         #if ($event.event.neutralSite.length() > 0) vs.
487:                         #elseif (!$event.event.home) at
488:                         #else ## nothing for a home game
489:                         #end
490:                         $event.event.opponent.name
491:                     </td>
492:                     <td class="text-center">
493:                         #if ($event.event.statusCode >= 0)
494: 							## FORMATTED RESULT
495: 							#set ($formattedResult = "")
496: 
497: 							#if ($resultFormat.equals("AP1"))
498: 								#set ($formattedResult = $event.event.APResult)
499: 							#elseif ($resultFormat.equals("AP2"))
500: 								#set ($formattedResult = $event.event.AP2Result)
501: 							#end
502: 
503: 							#if ($formattedResult.startsWith("W, "))
504: 								#set ($formattedResult = $formattedResult.replace("W, ", '<span class="winner event-winner">W</span>, '))
505: 							#elseif ($formattedResult.startsWith("L, "))
506: 								#set ($formattedResult = $formattedResult.replace("L, ", '<span class="loser event-loser">L</span>, '))
507: 							#end
508: 
509:                             #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
510:                                 <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${formattedResult}</a>
511:                             #else
512:                                 ${formattedResult}
513:                             #end
514:                         #end
515:                     </td>
516:                 </tr>
517:             #end
518:         #end
519:     </table>
520: #end ## printRecentGames
521: 
522: #macro (splitTeamNetwork $statPosBriefs $label $stats)
523:     <tr>
524:         <th scope="row" class="font-weight-normal text-end">${label}</th>
525:         #foreach ($brief in $statPosBriefs.keySet())
526:             #set ($value = "-")
527:             #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
528:             <td class="text-center text-nowrap">#if ($value.length() > 0) $value #else - #end</td>
529:         #end
530:     </tr>
531: #end ## split
532: 
533: #macro (splitsTeamNetworkData $p)
534: 	#set ($statPosBriefs = $briefs.get($p))
535: 	#set ($colspan = $tool.math.add($statPosBriefs.size(), 1))  
536:     
537: 	#if ($statPosBriefs.size() > 0)
538: 		<table class="table table-hover">
539:             <thead class="thead-dark">
540:                 <tr>
541:                     <th class="text-uppercase" aria-label="Title"> </th>
542:                     #foreach ($brief in $statPosBriefs)
543:                         #printTableHeader($brief, "text-center")
544:                     #end
545:                 </tr>
546:             </thead>
547: 			#splitTeamNetwork($statPosBriefs, "Total", $splits.overall)
548: 			#if ($showConf)
549: 				#splitTeamNetwork($statPosBriefs, "Conference", $splits.conference)
550: 				#splitTeamNetwork($statPosBriefs, "Exhibition", $splits.exhibition)
551: 			#else
552: 				#splitTeamNetwork($statPosBriefs, "Exhibition", $splits.exhibition)
553: 			#end ## hide overall/conf
554: 
555: 			<tr class="bg-transparent">
556: 				<td colspan="$colspan">&nbsp;</td>
557: 			</tr>
558: 
559: 			#splitTeamNetwork($statPosBriefs, "Home", $splits.home)
560: 			#splitTeamNetwork($statPosBriefs, "Away", $splits.away)
561: 			#splitTeamNetwork($statPosBriefs, "Neutral", $splits.neutral)
562: 
563: 			<tr class="bg-transparent">
564: 				<td colspan="$colspan">&nbsp;</td>
565: 			</tr>
566: 
567: 			#foreach($gameResult in $gamesResults.entrySet())
568: 				#if ($gameResult.key == "wins")
569: 					#set ($splitGameResult = $splits.inWins)
570: 				#elseif ($gameResult.key == "losses")
571: 					#set ($splitGameResult = $splits.inLosses)
572: 				#elseif ($gameResult.key == "ties")
573: 					#set ($splitGameResult = $splits.inTies)
574: 				#end
575:     
576: 				#splitTeamNetwork($statPosBriefs, $gameResult.value, $splitGameResult)
577: 			#end
578: 
579: 			<tr class="bg-transparent">
580: 				<td colspan="$colspan">&nbsp;</td>
581: 			</tr>
582: 
583: 			#if ($monthsPlayed and $monthsPlayed.size() > 0)
584: 				#foreach($month in $monthsPlayed)
585: 					#if ($month == 'January')
586: 						#set ($splitMonth = $splits.january)
587: 					#elseif ($month == 'February')
588: 						#set ($splitMonth = $splits.february)
589: 					#elseif ($month == 'March')
590: 						#set($splitMonth = $splits.march)
591: 					#elseif ($month == 'April')
592: 						#set($splitMonth = $splits.april)
593: 					#elseif ($month == 'May')
594: 						#set ($splitMonth = $splits.may)
595: 					#elseif ($month == 'June')
596: 						#set ($splitMonth = $splits.june)
597: 					#elseif ($month == 'July')
598: 						#set($splitMonth = $splits.july)
599: 					#elseif ($month == 'August')
600: 						#set ($splitMonth = $splits.august)
601: 					#elseif ($month == 'September')
602: 						#set($splitMonth = $splits.september)
603: 					#elseif ($month == 'October')
604: 						#set($splitMonth = $splits.october)
605: 					#elseif ($month == 'November')
606: 						#set ($splitMonth = $splits.november)
607: 					#elseif ($month == 'December')
608: 						#set($splitMonth = $splits.december)
609: 					#end
610:   
611: 					#splitTeamNetwork($statPosBriefs, $month, $splitMonth)
612: 				#end ## foreach
613: 			#end
614: 		</table>
615: 	#end
616: #end ## splitsTeamNetworkData
617: 
618: #macro (printAttendance)
619:     #if ($showAttendance)
620:         <table class="table table-hover">
621:             <thead class="thead-dark">
622:                 <tr>
623:                     #printTableHeader("Date", "w-1 text-start")
624:                     #printTableHeader("Opponent", "")
625:                     #printTableHeader("Score", "text-center")
626:                     #printTableHeader("Attend", "text-center")
627:                 </tr>
628:             </thead>
629:             #set ($counter = 0)
630:             #foreach ($event in $events)
631:                 <tr>
632:                     <td class="text-nowrap text-start">$formatter.formatDate($event.event.date, "MMM d")</td>
633:                     <td class="text-nowrap">
634:                         #if ($event.event.neutralSite.length() > 0) vs.
635:                         #elseif (!$event.event.home) at
636:                         #else ## nothing for a home game
637:                         #end
638:                         $event.event.opponent.name
639:                     </td>
640:                     <td class="text-nowrap text-center">
641:                     #if ($event.event.statusCode >= 0)
642:                         #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
643:                             <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
644:                         #else
645:                             ${event.event.result}
646:                         #end
647:                     #else &nbsp; #end
648:                     </td>
649:                     <td class="text-nowrap text-center">
650:                         #set ($value = "-")
651:                         #set ($value = $!formatter.formatNumber($event.stats.get('at'), $formats.get('at')))
652:                         #if ($value.length() > 0) $value #else - #end
653:                     </td>
654:                 </tr>
655:             #end
656:         </table>
657:     #end ## showAttendance
658: #end
659: 
660: #macro (printTab $viewParam $label)
661: 	#set ($classAttr = "nav-link text-nowrap text-center")
662: 	#if ($viewParam == $view)
663: 		#set ($classAttr = "${classAttr} active")
664: 	#end
665: 	<li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0">
666: 		<a href="${page.url}?view=${viewParam}" class="$classAttr" role="tab" data-bs-toggle="tab" data-bs-target="#${viewParam}" aria-controls="$viewParam">$label</a>
667: 	</li>
668: #end
669: 
670: #macro (printSubTab $active $url $label $target)
671: 	<li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0">
672: 		<a class="nav-link text-nowrap text-center #if ($active) active #end" href="$url" role="tab" data-bs-toggle="tab" data-bs-target="$target">$label</a>
673: 	</li>
674: #end
675: 
676: #macro (printPaneAttrs $viewParam)
677: 	#set ($classAttr = "tab-pane")
678: 	#if ($viewParam == $view)
679: 		#set ($classAttr = "tab-pane active")
680: 	#else
681: 		#set ($classAttr = "${classAttr} fade")
682: 	#end
683: 	
684: 	class="$classAttr" role="tabpanel" id="$viewParam"
685: #end
686: 
687: #macro (printCoachViewUrl)
688: 	#set ($coachViewUrl = "${page.url}?tmpl=teaminfo-network-monospace-template")
689:     #set ($enumCode = $sport.enumCode)
690:     
691: 	#if ($enumCode == 2)
692:         #set ($coachViewUrl = "${coachViewUrl}&sort=ptspg") 
693:     #elseif ($enumCode == 1 || $enumCode == 11)
694:         #set ($coachViewUrl = "${coachViewUrl}&sort=ab&pos=h")
695:     #end
696:     
697:     #if ($enumCode == 7 || $enumCode == 8 || $enumCode > 11) #else
698:         <li class="nav-item" data-skip="true"><a href="$coachViewUrl" target="_blank" class="nav-link text-nowrap text-center">Coach's View</a></li>
699:     #end
700: #end
701: 
702: #macro (printTabs)
703: 	$request.setAttribute("icl-responsive-tabs-script", true)
704: 
705: 	<div class="tab-nav">
706:     	<ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="teaminfo-tabs" role="tablist">
707:     		#printTab("profile", "Team Profile")
708:     		
709:     		#if ($showRoster)
710:     			#printTab("roster", "Roster")
711:     		#end
712:     		
713:     		#printTab("lineup", "Lineup")
714:     		#printTab("gamelog", "Game Log")
715:     		#printTab("splits", "Split Stats")
716:     		
717:     		#if ($showAttendance)
718:     			#printTab("attendance", "Attendance")
719:     		#end
720:     		
721:             #printCoachViewUrl
722:         </ul>
723: 	</div>
724: #end ## printTabs
725: 
726: #macro (printFilters)
727: <div class="p-3 border my-3 d-print-none">
728:     <div class="btn-toolbar d-flex justify-content-between gap-3 flex-column flex-sm-row flex-sm-nowrap" role="toolbar" aria-label="Standings tool bar">
729:         <div class="flex-fill">
730:             <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row">
731: 				$!request.setAttribute("pageObj", $page)
732:                 $website.includeAgain("conf-season-filter-template")
733:             </div>
734:         </div>
735:         <div class="" role="group" aria-label="Print friendly version">
736:             <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a>
737:         </div>
738:     </div>
739: </div>
740: #end ## printFilters
741: ############ END MACROS #############
742: 
743: #set ($pageTitle = $page.title)
744: #if($pageTitle.trim().length() == 0)
745: 	#set($pageTitle = $page.sectionPage.getTitle())
746: #end
747: 
748: #if ($pageTitle.trim().length() == 0)
749: 	#set ($season = "")
750: 	#if ($page.url.matches(".*/\d{4}-\d{2}/.*"))
751: 		#set ($truncateStr = $page.url.split("/\d{4}-\d{2}/").get(0))
752: 		#set ($season = $page.url.replace($truncateStr, "").substring(1, 8))
753: 	#end
754: 	
755: 	#set ($gender = "")
756: 	#if ($sport.enumCode == 6 or $sport.enumCode == 10)
757: 	#else
758: 		#if ($page.url.matches(".*/sports/m.*") || $page.url.matches(".*/sports/m-*"))
759: 			##set ($gender = "Men's")
760: 		#elseif ($page.url.matches(".*/sports/w.*") || $page.url.matches(".*/sports/w-*"))
761: 			##set ($gender = "Women's")
762: 		#end
763: 	#end
764: 	
765: 	#set ($pageTitle = "${season} ${gender} ${sport} Statistics")
766: 
767: #end
768: 
769: #if ($attributes.get("school_name").length() > 0)
770: 	#set ($pageTitle = "${pageTitle} - ${attributes.get('school_name')}")
771: #end
772: 
773: $!request.setAttribute("pageTitle", "${pageTitle}")
774: 
775: <head><title>$pageTitle</title></head>
776: 	
777: 
778: <div class="page-content team-stats">
779:     
780:     <h1>$pageTitle</h1>
781: 
782: 	#printFilters
783: 	
784: 	## TEAM HIGHLIGHT STATS
785: 	<div class="my-3">#printHighlights</div>
786: 
787:     ## TABS
788: 	<div class="tabs-container my-3">
789:         #printTabs
790:     
791:         <div class="tab-content p-3 border border-top-0">
792:             
793:             ## TEAM PROFILE
794:             <div #printPaneAttrs("profile")>
795:                 
796:                 <div class="row">
797:                     <div class="col-lg">
798:     					<div class="mb-3">
799: 							<h5>Team Summary</h5>
800: 							<div class="stats-container table-responsive">
801: 								$website.include("${page.sectionPage.sectionPage.url}/schedule?teamId=${teamId}&tmpl=schedule-data-template")
802: 							</div>
803:     					</div>
804:     					<div class="mb-3">
805:     						<h5>Recent Results</h5>
806:     						<div class="stats-container table-responsive">#printRecentGames</div>
807:     					</div>
808:                     </div>
809:                     <div class="col-lg">
810:     					<div class="mb-3">
811: 							<h5>Team Stats</h5>
812: 							<div class="stats-container table-responsive">
813: 								$website.include("${page.sectionPage.url}/teams?tmpl=stats-teams-rank-template&rank=${teamId}")
814: 							</div>
815:     					</div>
816:                     </div>
817:                 </div>
818:             </div> ## team profile
819:     
820:             ## ROSTER
821:             #if ($showRoster)
822:                 <div #printPaneAttrs("roster")>
823: 					$website.includeAgain("../players?teamId=${teamId}&view=roster&tmpl=stats-bios-template")
824:                 </div>
825:             #end
826:     
827:             ## LINEUP
828:             <div #printPaneAttrs("lineup")>
829:                 ## start of overall/conference
830:                 #set ($url = $request.requestURI)
831:     			#printLineupTabs()
832:                
833:                 Download roster:
834:                 <a href="../players?teamId=${attributes.teamId}&view=ext">${rosterExtension} (First Last) </a> | 
835:                 <a href="../players?teamId=${attributes.teamId}&view=ext&type=lf"> ${rosterExtension} (Last, First)</a>
836:                 #if ($rosterExtraExtension)
837:                     <a href="../players?teamId=${attributes.teamId}&view=exte">${rosterExtraExtension} (First Last)</a> | 
838:                     <a href="../players?teamId=${attributes.teamId}&view=exte&type=lf">${rosterExtraExtension} (Last, First)</a>
839: 				#end
840:             </div> ## lineup
841:     
842:             ## GAMELOG
843:             <div #printPaneAttrs("gamelog")>
844:             	<div class="stats-container table-responsive">
845: 					#if ($gamelogsCategoriesLabels && $gamelogsCategoriesLabels.size() > 1)
846: 						#printCategories($gamelogsCategoriesLabels, 'gamelog')
847: 					#else
848: 						#gamelogData($pos)
849: 					#end
850:     			</div>
851:             </div>
852:     
853:             ## SPLITS
854:             <div #printPaneAttrs("splits")>
855:     			<div class="stats-container table-responsive">
856: 					#if ($briefsTeamCategoriesLabels && $briefsTeamCategoriesLabels.size() > 1)
857: 						#printCategories($briefsTeamCategoriesLabels, 'splits')
858: 					#else
859: 						#splitsTeamNetworkData($pos)
860: 					#end
861: 				</div>
862:             </div> ## splits
863:     
864:             ## ATTENDANCE
865:             <div #printPaneAttrs("attendance")>
866: 				<div class="stats-container table-responsive">#printAttendance</div>
867:             </div>
868:         </div> ## tab-content
869: 	</div> ## tab-container
870: </div> ## stats-container
871: $wiki.su