ACADEMIC INTEGRATION COMPETITIVE EXCELLENCE

IN DIVISION I ATHLETICS

 
87 - Cameron Brate
Cameron Brate
Height: 6-5
Weight: 245
Year: Sr.
Hometown: Naperville, Ill.
High School: Naperville Central
Position: TE
Major: Economics
House Affiliation: Dunster

at Harvard
2013:
Named a semifinalist for William V. Campbell Trophy ... Selected as a candidate for National Football Foundation (NFF) National Scholar-Athlete Award ... Member of FCS ADA Academic All-Star Team ... Honored on the Beyond Sports Network All-America honorable mention team ... Named to College Football Performance Award FCS Tight End Award Watch List ... Tabbed to Beyond Sports Network Preseason All-America Team ... Honored on The Sports Network FCS Preseason All-America third team ... Earned recognition on USA College Football Preseason All-America First Team ... Selected to College Sports Madness Preseason All-Ivy League first team ... Named to Phil Steele Preseason All-Ivy League first team ... Unanimously selected to the All-Ivy League first team ... Named to College Sports Madness All-Ivy first team ... Honored on FCS All-New England team ... Named to NFF Hampshire Honor Society ... Ranks fourth in Harvard history with 18 career TD grabs, is 12th with 91 receptions and sits ninth with 1,381 receiving yards ... Finished second on the team with 25 receptions for 403 yards and five touchdowns ... Made four catches for 53 yards at San Diego ... Had five grabs for 98 yards against Brown ... Named to College Football Performance Awards Honor Roll Sept. 30 ... Had a 10-yard TD catch with 38 seconds left to force overtime at Holy Cross ... Made a TD grab and finished with three recptions for 59 yards at Cornell ... Tabbed to College Football Performance Awards Honor Roll Oct. 14 ... Had two TD grabs and finished with four receptions for 34 yards against Lafayette ... Named to College Football Performance Awards Honor Roll Oct. 22 ... Made a TD catch and had four grabs for 50 yards against Penn ... Tabbed to College Football Performance Awards Honor Roll Nov. 17 ... Caught three passes for 91 yards at Yale ... Tabbed to College Football Performance Awards Honor Roll Nov. 24.

2012: Second team All-America by Beyond Sports Network (BSN) ... Unanimous first team All-Ivy League at tight end ... Second team All-Ivy League by CollegeSportsMadness.com ... Named to first team Capital One Academic All-America ... Academic All-America by College Sports Journal ... Preseason honorable mention All-America at tight end by Beyond College Sports Network ... Preseason second team All-Ivy League by College Sports Madness ... Preseason second team All-Ivy League by Phil Steele’s College Football Preview ... Had eight catches for 72 yards at Brown ... Four catches for 69 yards and two touchdowns against Holy Cross ... Three catches for 57 yards against Cornell ... Had five catches for 57 yards and a TD against Bucknell ... Had seven catches for 109 yards and a TD at Princeton ... Had three catches for 53 yards at Dartmouth ... Had two catches for 54 yards against Columbia ... Had five catches for 42 yards and a timely touchdown in a win over Yale.

2011: Major H recipient ... All-America selection by Beyond Sports Network as a third team pick ... Second team All-Ivy League ... Had 25 catches for 386 yards, ranking second on the Crimson in yards per catch at 15.4 ... His seven touchdowns tied for the team lead as well as tied for the most among Ivy League tight ends with his teammate Kyle Juszczyk ... Had three catches for 59 yards at Holy Cross ... Recorded a game-high 93 receiving yards on five receptions with a touchdown against Brown on 9/23 ... Named the College Football performance Awards National Tight End of the Week ... Had three catches for 21 yards and a touchdown at Lafayette ... Had a 27-yard touchdown catch at Cornell ... Caught four passes for 69 yards and two touchdowns against Bucknell ... Had two catches for 24 yards including a 17-yard TD catch against Princeton.

2010: Played on the junior varsity team.

High School:
Earned five letters in football, basketball and baseball at Naperville Central High School … Senior captain in football … All-City, All-Dupage Valley Conference first team and all-area selection … Chicago Tribune All-State Special Mention … Two-time academic All-state pick …Walter Payton Roundhouse Player of the Week pick on one occasion …Illinois Coaches Association state all-star team …National Honor Society … Academic all-conference in football and basketball … Distinguished Honor Roll … enjoys playing the piano.

Recent Games
Oct 19 Lafayette W, 35-16
Oct 26 Princeton L, 51-48
Nov 2 Dartmouth W, 24-21
Nov 9 at Columbia W, 34-0
Nov 16 Penn W, 38-30
Nov 23 at Yale W, 34-7
Statistics category Overall Conf
Receptions 25 15
Yards 403 298
Yards per game 50.4 59.6
Yards per catch 16.1 19.9
Touchdowns 5 2
Date Opponent Score comp att pct yds y/a td int sac yds
Sep 21 at San Diego W, 42-20 - - - - - - - - -
Sep 28 Brown W, 41-23 - - - - - - - - -
Oct 5 at Holy Cross W, 41-35 - - - - - - - - -
Oct 12 at Cornell W, 34-24 - - - - - - - - -
Oct 19 Lafayette W, 35-16 - - - - - - - - -
Oct 26 Princeton L, 51-48 - - - - - - - - -
Nov 2 Dartmouth W, 24-21 - - - - - - - - -
Nov 9 at Columbia W, 34-0 - - - - - - - - -
Nov 16 Penn W, 38-30 - - - - - - - - -
Nov 23 at Yale W, 34-7 - - - - - - - - -
Date Opponent Score rush yds y/a lng td fum lost
Sep 21 at San Diego W, 42-20 - - - - - - -
Sep 28 Brown W, 41-23 - - - - - - -
Oct 5 at Holy Cross W, 41-35 - - - - - - -
Oct 12 at Cornell W, 34-24 - - - - - - -
Oct 19 Lafayette W, 35-16 - - - - - - -
Oct 26 Princeton L, 51-48 - - - - - - -
Nov 2 Dartmouth W, 24-21 - - - - - - -
Nov 9 at Columbia W, 34-0 - - - - - - -
Nov 16 Penn W, 38-30 - - - - - - -
Nov 23 at Yale W, 34-7 - - - - - - -
Date Opponent Score rec yds y/r lng td fum lost
Sep 21 at San Diego W, 42-20 4 53 13.2 22 0 - -
Sep 28 Brown W, 41-23 5 98 19.6 31 0 - -
Oct 5 at Holy Cross W, 41-35 2 18 9.0 10 1 - -
Oct 12 at Cornell W, 34-24 3 59 19.7 28 1 - -
Oct 19 Lafayette W, 35-16 4 34 8.5 15 2 - -
Oct 26 Princeton L, 51-48 - - - - - - -
Nov 2 Dartmouth W, 24-21 - - - - - - -
Nov 9 at Columbia W, 34-0 - - - - - - -
Nov 16 Penn W, 38-30 4 50 12.5 26 1 - -
Nov 23 at Yale W, 34-7 3 91 30.3 36 0 - -
Date Opponent Score fgm fga lng xpm xpa pts
Sep 21 at San Diego W, 42-20 - - - - - 0
Sep 28 Brown W, 41-23 - - - - - 0
Oct 5 at Holy Cross W, 41-35 - - - - - 0
Oct 12 at Cornell W, 34-24 - - - - - 0
Oct 19 Lafayette W, 35-16 - - - - - 0
Oct 26 Princeton L, 51-48 - - - - - 0
Nov 2 Dartmouth W, 24-21 - - - - - -
Nov 9 at Columbia W, 34-0 - - - - - -
Nov 16 Penn W, 38-30 - - - - - 0
Nov 23 at Yale W, 34-7 - - - - - 0
Date Opponent Score punt yds avg long in20 fc tb blk
Sep 21 at San Diego W, 42-20 - - - - - - - -
Sep 28 Brown W, 41-23 - - - - - - - -
Oct 5 at Holy Cross W, 41-35 - - - - - - - -
Oct 12 at Cornell W, 34-24 - - - - - - - -
Oct 19 Lafayette W, 35-16 - - - - - - - -
Oct 26 Princeton L, 51-48 - - - - - - - -
Nov 2 Dartmouth W, 24-21 - - - - - - - -
Nov 9 at Columbia W, 34-0 - - - - - - - -
Nov 16 Penn W, 38-30 - - - - - - - -
Nov 23 at Yale W, 34-7 - - - - - - - -
Date Opponent Score kr yds avg lng td pr yds avg lng td
Sep 21 at San Diego W, 42-20 - - - - - - - - - -
Sep 28 Brown W, 41-23 - - - - - - - - - -
Oct 5 at Holy Cross W, 41-35 - - - - - - - - - -
Oct 12 at Cornell W, 34-24 - - - - - - - - - -
Oct 19 Lafayette W, 35-16 - - - - - - - - - -
Oct 26 Princeton L, 51-48 - - - - - - - - - -
Nov 2 Dartmouth W, 24-21 - - - - - - - - - -
Nov 9 at Columbia W, 34-0 - - - - - - - - - -
Nov 16 Penn W, 38-30 - - - - - - - - - -
Nov 23 at Yale W, 34-7 - - - - - - - - - -
Date Opponent Score tack ast tot sack lost tfl yds ff fr td int yds td brup blk saf
Sep 21 at San Diego W, 42-20 - - 0 - - 0 - - - - - - - - - -
Sep 28 Brown W, 41-23 - - 0 - - 0 - - - - - - - - - -
Oct 5 at Holy Cross W, 41-35 0 1 1 - - 0 - - - - - - - - - -
Oct 12 at Cornell W, 34-24 - - 0 - - 0 - - - - - - - - - -
Oct 19 Lafayette W, 35-16 - - 0 - - 0 - - - - - - - - - -
Oct 26 Princeton L, 51-48 1 0 1 - - 0 - - - - - - - - - -
Nov 2 Dartmouth W, 24-21 - - - - - - - - - - - - - - - -
Nov 9 at Columbia W, 34-0 - - - - - - - - - - - - - - - -
Nov 16 Penn W, 38-30 - - 0 - - 0 - - - - - - - - - -
Nov 23 at Yale W, 34-7 - - 0 - - 0 - - - - - - - - - -
  gp comp att pct yds y/g y/a td int lg
2011-12 10 - - - - - - - - -
2012-13 10 - - - - - - - - -
2013-14 8 - - - - - - - - -
Total 28 - - - - - - - - -
  gp rush yds y/g avg td lg fum lost
2011-12 10 - - - - - - - -
2012-13 10 - - - - - - - -
2013-14 8 - - - - - - - -
Total 28 - - - - - - - -
  gp rec rec/g yds y/g avg td lg
2011-12 10 25 2.5 386 38.6 15.4 7 31
2012-13 10 41 4.1 592 59.2 14.4 6 40
2013-14 8 25 3.1 403 50.4 16.1 5 36
Total 28 91 3.2 1381 49.3 15.2 18 40
  gp fgm fga pct lg xpm xpa pct pts
2011-12 10 - - - - - - - 0
2012-13 10 - - - - - - - 0
2013-14 8 - - - - - - - 0
Total 28 - - - - - - - 0
  gp punt yds avg lg in20 fc tb blk
2011-12 10 - - - - - - - -
2012-13 10 - - - - - - - -
2013-14 8 - - - - - - - -
Total 28 - - - - - - - -
  kr yds avg td lg pr yds avg td lg
2011-12 - - - - - - - - - -
2012-13 - - - - - - - - - -
2013-14 - - - - - - - - - -
Total - - - - - - - - - -
  gp tkl ast tot tkl/g sck yds tfl yds ff fr yds int yds brup blk
2011-12 10 1 0 1 .1 - - 0 - - - - - - - -
2012-13 10 - - 0 .0 - - 0 - - - - - - - -
2013-14 8 1 1 2 .2 - - 0 - - - - - - - -
Total 28 2 1 3 .1 - - 0 - - - - - - - -
  gp comp att pct yds y/g y/a td int lg
Total 8 - - - - - - - - -
Conference 5 - - - - - - - - -
Exhibition - - - - - - - - - -

Home 4 - - - - - - - - -
Away 4 - - - - - - - - -
Neutral - - - - - - - - - -

Wins 7 - - - - - - - - -
Losses 1 - - - - - - - - -

August - - - - - - - - - -
September 2 - - - - - - - - -
October 4 - - - - - - - - -
November 2 - - - - - - - - -
December - - - - - - - - - -
  gp rush yds y/g avg td lg fum lost
Total 8 - - - - - - - -
Conference 5 - - - - - - - -
Exhibition - - - - - - - - -

Home 4 - - - - - - - -
Away 4 - - - - - - - -
Neutral - - - - - - - - -

Wins 7 - - - - - - - -
Losses 1 - - - - - - - -

August - - - - - - - - -
September 2 - - - - - - - -
October 4 - - - - - - - -
November 2 - - - - - - - -
December - - - - - - - - -
  gp rec rec/g yds y/g avg td lg
Total 8 25 3.1 403 50.4 16.1 5 36
Conference 5 15 3.0 298 59.6 19.9 2 36
Exhibition - - - - - - - -

Home 4 13 3.2 182 45.5 14.0 3 31
Away 4 12 3.0 221 55.2 18.4 2 36
Neutral - - - - - - - -

Wins 7 25 3.6 403 57.6 16.1 5 36
Losses 1 - - - - - - -

August - - - - - - - -
September 2 9 4.5 151 75.5 16.8 0 31
October 4 9 2.2 111 27.8 12.3 4 28
November 2 7 3.5 141 70.5 20.1 1 36
December - - - - - - - -
  gp fgm fga pct lg xpm xpa pct pts
Total 8 - - - - - - - 0
Conference 5 - - - - - - - 0
Exhibition - - - - - - - - 0

Home 4 - - - - - - - 0
Away 4 - - - - - - - 0
Neutral - - - - - - - - 0

Wins 7 - - - - - - - 0
Losses 1 - - - - - - - 0

August - - - - - - - - 0
September 2 - - - - - - - 0
October 4 - - - - - - - 0
November 2 - - - - - - - 0
December - - - - - - - - 0
  gp punt yds avg lg in20 fc tb blk
Total 8 - - - - - - - -
Conference 5 - - - - - - - -
Exhibition - - - - - - - - -

Home 4 - - - - - - - -
Away 4 - - - - - - - -
Neutral - - - - - - - - -

Wins 7 - - - - - - - -
Losses 1 - - - - - - - -

August - - - - - - - - -
September 2 - - - - - - - -
October 4 - - - - - - - -
November 2 - - - - - - - -
December - - - - - - - - -
  kr yds avg td lg pr yds avg td lg
Total - - - - - - - - - -
There was a problem with a Velocity script
Page/bio-template
ErrorVM #split: too many arguments to macro. Wanted 3 got 4 at bio-template[line 242, column 1]
Page source:
1: #if ($browser.getIphone() || $browser.getMobile())
2: 	#set ($isMobile = true)
3: #else
4: 	#set ($isMobile = false)
5: #end
6: 
7: ## PICK UP OPTIONS
8: $website.include("options")
9: #set ($options = $request.getAttribute("options"))
10: #set ($locale = "en_us")
11: #set ($locale = $options.get("locale"))
12: 
13: ## STATS DATA
14: #if ($request.getParameter("stats"))
15: 
16: #set ($showCareer = $wiki.valid() && $seasons)
17: #if ("yes" == $options.get("stats_show_career") && $seasons)
18:   #set ($showCareer = "yes")
19: #end
20: 	
21: ## FETCH THE BIO URL FROM THE PARAMETER
22: #set ($bioURL = $request.getParameter("biourl"))
23: 
24: ## VIEW IS AVAILABLE PROVIDED WHEN REACHED HERE
25: #set ($view = $request.getParameter("view"))
26: 
27: #set ($pos = "")
28: #set ($pos = $attributes.get("position"))
29: #set ($posVec = $pos.split("/"))
30: #set ($pos = $posVec[0])
31: #set ($pos = $pos.toLowerCase())
32: #set ($statPos = $positions.get($pos))
33: 
34: #set ($playerId = $attributes.get("playerId"))
35: #set ($stats = $splits.overall)
36: 
37: #if ($locale == "en_us")
38: #set ($defLabel = 'Defense')
39: #elseif ($locale == "en_gb") 
40: #set ($defLabel = 'Defence')
41: #end
42: 
43: #macro (gamelogData $p)
44: 
45: #set ($p = $positions.get($p))
46: #set ($gamelogs = $gamelogs.get($p))
47: 
48: ## SECONDARY TAB CONTENT FOR ONLY FOOTBALL,  BASEBALL, SOFTBALL AND BASKETBALL
49: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
50:   #set ($class = "sub-tab-content")
51:   #if ($activePos == $p)
52:     #set ($class = "sub-tab-content active")
53:   #end
54:   #if ($isMobile)
55: 	<div class="mobile-bios-subtab-panel mobile-stats-panel-wrapper #if ($activePos == $p) active #end">
56:   #else
57: 	<div class="$class">
58:   #end
59: #end
60: 	
61: #if (! $isMobile)
62: 	<div class="stats-fullbox clearfix">
63: #else
64: 	<div class="mobile-stats-panel-container">
65: #end
66: <table>
67:   <tr>
68:     <th #if ($isMobile) width="10%" #end>Date</th>
69:     <th #if ($isMobile) class="mobile-stats-fixed-column" #*width="20%"*# #end>Opponent</th>
70:     <th>Score</th>
71:     #foreach ($gamelog in $gamelogs)
72:       <th>$gamelog</th>
73:     #end
74:   </tr>
75: 
76: #set ($counter = 0)
77: #foreach ($event in $events)
78:  #set ($counter = $counter + 1)
79:  #if ($counter % 2 == 0)
80:   #set ($row = "even")
81:  #else
82:   #set ($row = "odd")
83:  #end
84:   <tr class="${row}">
85:     <td>$formatter.formatDate($event.event.date, "MMM d")</td>
86:     <td #if ($isMobile) class="mobile-stats-fixed-column" #end>
87:     #if ($event.event.neutralSite.length() > 0) vs.
88:     #elseif (!$event.event.home) at
89:     #else ## nothing for a home game
90:     #end
91:     $event.event.opponent.name</td>
92:     <td class="align-center">
93:     #if ($event.event.statusCode >= 0)
94:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
95:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
96:       #else
97:       ${event.event.APResult}
98:       #end
99:     #else &nbsp; #end
100:     </td>
101:     #foreach ($gamelog in $gamelogs.keySet())
102:       #set ($value = "-")
103:       #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
104:       <td class="align-center">
105:       #if ($value.length() > 0)$value#else - #end
106:       </td>
107:     #end
108:   </tr>
109: #end
110: </table>
111: </div>
112: 
113: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
114:   </div>
115: #end
116: 
117: #end ## macro gamelogData
118: 
119: #macro (split $statPosBriefs $label $stats $class)
120:   <tr class="$!{class}">
121:     <td #if ($isMobile) class="mobile-stats-fixed-column" #end>${label}</td>
122:     #foreach ($brief in $statPosBriefs.keySet())
123:       #set ($value = "-")
124:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
125:       <td class="align-center">#if ($value.length() > 0) $value #else - #end</td>
126:     #end
127:   </tr>
128: #end
129: 
130: #set ($colspan = $statPosBriefs.size() + 1)
131: #macro (printSplitsHr)
132: 	#if ($isMobile)
133: 		<tr>
134: 			<td class="mobile-stats-fixed-column">&nbsp;</td>
135: 			<td colspan="$statPosBriefs.size()">&nbsp;</td>
136: 		</tr>
137: 	#else
138: 		<tr><td colspan="${colspan}"><hr /></td></tr>
139: 	#end
140: #end
141: 
142: 
143: 
144: 
145: 
146: #macro (careerData $p)
147: 
148: #set ($p = $positions.get($p))
149: #set ($statPosBriefs = $briefs.get($p))
150: 
151: ## SECONDARY TAB CONTENT FOR ONLY FOOTBALL,  BASEBALL, SOFTBALL AND BASKETBALL
152: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
153:   #set ($class = "sub-tab-content")
154:   #if ($activePos == $p)
155:     #set ($class = "sub-tab-content active")
156:   #end
157:   #if ($isMobile)
158: 	<div class="mobile-bios-subtab-panel mobile-stats-panel-wrapper #if ($activePos == $p) active #end">
159:   #else
160: 	<div class="$class">
161:   #end
162: #end
163: 	
164: #if (! $isMobile) 
165: 	<div class="stats-fullbox clearfix">
166: #else
167: 	<div class="mobile-stats-panel-container">
168: #end
169: <table>
170:   <tr>
171:     <th #if ($isMobile) class="mobile-stats-fixed-column" #end>&nbsp;</th>
172:     #foreach ($brief in $statPosBriefs)
173:       <th>$brief</th>
174:     #end
175:   </tr>
176: 
177: #set ($careerTotals = $request.getAttribute("careerTotals"))
178: #set ($careerMap = $request.getAttribute("careerMap"))
179: 
180: #foreach ($season in $seasons)
181:   ## Check if we did not get stats for this season
182:   #if ($careerMap.get($season.seasonName))
183:     #split($statPosBriefs, $season.seasonName, $careerMap[$season.seasonName], '')
184:   #elseif ($wiki.valid())
185:     <tr><td class="${mobileNS}fixed-column">${season.seasonName}</td><td colspan="${briefs.size()}" align="center">We could not find the "players" page in the ${season.seasonName} section.</td></tr>
186:   #end
187: 
188: #end
189: 
190: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall, '')
191: 
192: 
193: </table>
194: 
195: </div> ## stats-fullbox
196: 
197: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
198:   </div>
199: #end
200: 
201: #end ## macro splitsData
202: 
203: 
204: 
205: 
206: 
207: 
208: 
209: 
210: #macro (splitsData $p)
211: 
212: #set ($p = $positions.get($p))
213: #set ($statPosBriefs = $briefs.get($p))
214: 
215: ## SECONDARY TAB CONTENT FOR ONLY FOOTBALL,  BASEBALL AND BASKETBALL
216: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 2)
217:   #set ($class = "sub-tab-content")
218:   #if ($activePos == $p)
219:     #set ($class = "sub-tab-content active")
220:   #end
221:   #if ($isMobile)
222: 	<div class="mobile-bios-subtab-panel mobile-stats-panel-wrapper #if ($activePos == $p) active #end">
223:   #else
224: 	<div class="$class">
225:   #end
226: #end
227: 	
228: #if (! $isMobile) 
229: 	<div class="stats-fullbox clearfix">
230: #else
231: 	<div class="mobile-stats-panel-container">
232: #end
233: <table>
234:   <tr>
235:     <th #if ($isMobile) class="mobile-stats-fixed-column" #end>&nbsp;</th>
236:     #foreach ($brief in $statPosBriefs)
237:       <th>$brief</th>
238:     #end
239:   </tr>
240: 
241: #split($statPosBriefs, "Total", $splits.overall, "odd")
242: #split($statPosBriefs, "Conference", $splits.conference, "even")
243: #split($statPosBriefs, "Exhibition", $splits.exhibition, "odd")
244: 
245: #printSplitsHr()
246: 
247: #split($statPosBriefs, "Home", $splits.home, "odd")
248: #split($statPosBriefs, "Away", $splits.away, "even")
249: #split($statPosBriefs, "Neutral", $splits.neutral, "odd")
250: 
251: #printSplitsHr()
252: 
253: #split($statPosBriefs, "Wins", $splits.inWins, "odd")
254: #split($statPosBriefs, "Losses", $splits.inLosses, "even")
255: #if ($sport.enumCode == 5) ## Ice hockey
256:   #split($statPosBriefs, "Ties", $splits.inTies, "odd")
257: #end
258: 
259: #printSplitsHr()
260: 
261: ## Going to need to replace this with sound logic that does not use the sport to determine dates
262: #if ($sport.enumCode == 5) ## Ice hockey
263:  #split($statPosBriefs, "September", $splits.september, "odd")
264:  #split($statPosBriefs, "October", $splits.october, "even")
265:  #split($statPosBriefs, "November", $splits.november, "odd")
266:  #split($statPosBriefs, "December", $splits.december, "even")
267:  #split($statPosBriefs, "January", $splits.january, "odd")
268:  #split($statPosBriefs, "February", $splits.february, "even")
269:  #split($statPosBriefs, "March", $splits.march, "odd")
270:  #split($statPosBriefs, "April", $splits.april, "even")
271: #elseif ($sport.enumCode == 2) ## Basketball
272:  #split($statPosBriefs, "November", $splits.november, "odd")
273:  #split($statPosBriefs, "December", $splits.december, "even")
274:  #split($statPosBriefs, "January", $splits.january, "odd")
275:  #split($statPosBriefs, "February", $splits.february, "even")
276:  #split($statPosBriefs, "March", $splits.march, "odd")
277: #elseif ($sport.enumCode == 3 or $sport.enumCode == 9) ## Soccer or field hockey
278:  #split($statPosBriefs, "September", $splits.september, "odd")
279:  #split($statPosBriefs, "October", $splits.october, "even")
280:  #split($statPosBriefs, "November", $splits.november, "odd")
281:  #split($statPosBriefs, "December", $splits.december, "even")
282: #elseif ($sport.enumCode == 0) ## Football
283:  #split($statPosBriefs, "August", $splits.august, "odd")
284:  #split($statPosBriefs, "September", $splits.september, "even")
285:  #split($statPosBriefs, "October", $splits.october, "odd")
286:  #split($statPosBriefs, "November", $splits.november, "even")
287:  #split($statPosBriefs, "December", $splits.december, "odd")
288: #elseif ($sport.enumCode == 6 or $sport.enumCode == 10) ## Men's or women's lacrosse
289:  #split($statPosBriefs, "January", $splits.january, "odd")
290:  #split($statPosBriefs, "February", $splits.february, "even")
291:  #split($statPosBriefs, "March", $splits.march, "odd")
292:  #split($statPosBriefs, "April", $splits.april, "even")
293:  #split($statPosBriefs, "May", $splits.may, "odd")
294: #end
295: </table>
296: 
297: </div> ## stats-fullbox
298: 
299: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
300:   </div>
301: #end
302: 
303: #end ## macro splitsData
304: 
305: #macro (printRecentGames)
306: <table>
307: <tr><th colspan="3">Recent Games</th></tr>
308: #set ($eventEnd = -1)
309: #foreach ($event in $events)
310:   #if ($event.event.result.resolved)
311:     #set ($eventEnd = $velocityCount)
312:   #end
313: #end
314: #set ($eventStart = $eventEnd - 5)
315: #if ($eventStart < 0) #set ($eventStart = 0) #end
316: 
317: #set ($counter = 0)
318: #foreach ($event in $events)
319: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
320: 
321:  #set ($counter = $counter + 1)
322:  #if ($counter % 2 == 0)
323:   #set ($row = "even")
324:  #else
325:   #set ($row = "odd")
326:  #end
327: 
328:   <tr class="${row}">
329:     <td>$formatter.formatDate($event.event.date, "MMM d")</td>
330:     <td>
331:     #if ($event.event.neutralSite.length() > 0) vs.
332:     #elseif (!$event.event.home) at
333:     #else ## nothing for a home game
334:     #end
335:     $event.event.opponent.name</td>
336:     <td>
337:     #if ($event.event.statusCode >= 0)
338:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
339:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
340:       #else
341:       ${event.event.APResult}
342:       #end
343:     #end
344:   </tr>
345: #end ## if
346: #end
347: </table>
348: #end
349: 
350: #macro (printSubTab $pos $label $activePos $view)
351: 	<option #if ($activePos == $pos) selected="selected" #end value="${bioURL}?view=${view}&pos=${pos}">$!label</option>
352: #end
353: 
354: 
355: #if ($isMobile)
356: 
357: #set ($activePos = $statPos)
358: #if ($request.getParameter("view") == "gamelog" && $positions.get($request.getParameter("pos")).length() > 0)
359: 	#set ($activePos = $positions.get($request.getParameter("pos")))
360: #end
361: 
362: <div id="tab-gamelog">
363: 
364: ## SECONDARY TABS FOR ONLY FOOTBALL,  BASEBALL, SOFTBALL AND BASKETBALL
365: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
366: 	
367: <select class="mobile-bios-subtabs clearfix">
368: 
369: #if ($sport.enumCode == 0) ## Football
370: 
371: #printSubTab('gb', 'Passing', $activePos, 'gamelog')
372: #printSubTab('rb', 'Rushing', $activePos, 'gamelog')
373: #printSubTab('wr', 'Receiving', $activePos, 'gamelog')
374: #printSubTab('k', 'Kicking', $activePos, 'gamelog')
375: #printSubTab('p', 'Punting', $activePos, 'gamelog')
376: #printSubTab('kr', 'Returns', $activePos, 'gamelog')
377: #printSubTab('d', $defLabel, $activePos, 'gamelog')
378: 
379: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
380: 
381: #printSubTab('h', 'Hitting', $activePos, 'gamelog')
382: #printSubTab('p', 'Pitching', $activePos, 'gamelog')
383: #printSubTab('f', 'Fielding', $activePos, 'gamelog')
384: 
385: #elseif ($sport.enumCode == 2) ## Basketball
386: 
387: #printSubTab('sh', 'Shooting', $activePos, 'gamelog')
388: #printSubTab('bc', 'Ball control', $activePos, 'gamelog')
389: 
390: #end
391: 
392: </select> ## stats-tabs-secondary
393: 
394: #end ## sport check for secondary tabs
395: 
396: #if ($sport.enumCode == 0) ## Football
397: 
398:   #gamelogData("qb") ## PASSING
399:   #gamelogData("rb") ## RUSHING
400:   #gamelogData("wr") ## RECEIVING
401:   #gamelogData("k") ## KICKING
402:   #gamelogData("p") ## PUNTING
403:   #gamelogData("kr") ## RETURNS
404:   #gamelogData("d") ## DEFENSE
405:   
406: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
407: 
408:   #gamelogData("h") ## HITTING
409:   #gamelogData("p") ## PITCHING
410:   #gamelogData("f") ## FIELDING
411:   
412: #elseif ($sport.enumCode == 2)
413: 
414:   #gamelogData("sh") ## SHOOTING
415:   #gamelogData("bc") ## BALL CONTROL
416:   
417: #else
418: 	
419:   #gamelogData($pos)
420:   
421: #end
422: 	
423: </div> ## tab-content
424: ## END GAMELOG
425: 
426: 
427: 
428: 
429: 
430: 
431: 
432: 
433: 
434: ## CAREER
435: #set ($activePos = $statPos)
436: #if ($request.getParameter("view") == "career" && $positions.get($request.getParameter("pos")).length() > 0)
437: 	#set ($activePos = $positions.get($request.getParameter("pos")))
438: #end
439: 
440: 
441: <div id="tab-career">
442: 
443: ## SECONDARY TABS FOR ONLY FOOTBALL,  BASEBALL, SOFTBALL AND BASKETBALL
444: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
445: 	<select class="mobile-bios-subtabs clearfix">
446: 		#if ($sport.enumCode == 0) ## Football
447: 
448: 			#printSubTab('gb', 'Passing', $activePos, 'career')
449: 			#printSubTab('rb', 'Rushing', $activePos, 'career')
450: 			#printSubTab('wr', 'Receiving', $activePos, 'career')
451: 			#printSubTab('k', 'Kicking', $activePos, 'career')
452: 			#printSubTab('p', 'Punting', $activePos, 'career')
453: 			#printSubTab('kr', 'Returns', $activePos, 'career')
454: 			#printSubTab('d', $defLabel, $activePos, 'career')
455: 
456: 		#elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
457: 
458: 			#printSubTab('h', 'Hitting', $activePos, 'career')
459: 			#printSubTab('p', 'Pitching', $activePos, 'career')
460: 			#printSubTab('f', 'Fielding', $activePos, 'career')
461: 
462: 		#elseif ($sport.enumCode == 2) ## Basketball
463: 
464: 			#printSubTab('sh', 'Shooting per game', $activePos, 'career')
465: 			#printSubTab('st', 'Shooting', $activePos, 'career')
466: 			#printSubTab('bc', 'Ball control per game', $activePos, 'career')
467: 			#printSubTab('bt', 'Ball control', $activePos, 'career')
468: 
469: 		#end
470: 	</select>
471: #end ## sport check for secondary tabs
472: 	
473: #if ($sport.enumCode == 0) ## Football
474: 
475: ## <div class="sub-tab-panels">
476: 	#careerData("qb") ## PASSING
477: 	#careerData("rb") ## RUSHING
478: 	#careerData("wr") ## RECEIVING
479: 	#careerData("k") ## KICKING
480: 	#careerData("p") ## PUNTING
481: 	#careerData("kr") ## RETURNS
482: 	#careerData("d") ## DEFENSE
483: ## </div>
484: 	
485: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
486: 
487: ## <div class="sub-tab-panels">
488: 	#careerData("h") ## HITTING
489: 	#careerData("p") ## PITCHING
490: 	#careerData("f") ## FIELDING
491: ## </div>
492: 	
493: #elseif ($sport.enumCode == 2) ## Basketball
494: 	
495: ## <div class="sub-tab-panels">
496: 	#careerData("sh") ## SHOOTING PER GAME
497: 	#careerData("st") ## SHOOTING
498: 	#careerData("bc") ## BALL CONTROL PER GAME
499: 	#careerData("bt") ## BALL CONTROL
500: ## </div>
501: 
502: #else
503: 
504: 	#careerData($pos)
505: 
506: #end
507: 
508: </div> ## tab-content
509: ## CAREER
510: 
511: 
512: 
513: 
514: 
515: 
516: 
517: 
518: 
519: 
520: 
521: 
522: ## SPLITS
523: #set ($activePos = $statPos)
524: #if ($request.getParameter("view") == "splits" && $positions.get($request.getParameter("pos")).length() > 0)
525: 	#set ($activePos = $positions.get($request.getParameter("pos")))
526: #end
527: 
528: 
529: <div id="tab-splits">
530: 
531: ## SECONDARY TABS FOR ONLY FOOTBALL,  BASEBALL, SOFTBALL AND BASKETBALL
532: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
533: 	<select class="mobile-bios-subtabs clearfix">
534: 		#if ($sport.enumCode == 0) ## Football
535: 
536: 			#printSubTab('gb', 'Passing', $activePos, 'splits')
537: 			#printSubTab('rb', 'Rushing', $activePos, 'splits')
538: 			#printSubTab('wr', 'Receiving', $activePos, 'splits')
539: 			#printSubTab('k', 'Kicking', $activePos, 'splits')
540: 			#printSubTab('p', 'Punting', $activePos, 'splits')
541: 			#printSubTab('kr', 'Returns', $activePos, 'splits')
542: 			#printSubTab('d', $defLabel, $activePos, 'splits')
543: 
544: 		#elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
545: 
546: 			#printSubTab('h', 'Hitting', $activePos, 'splits')
547: 			#printSubTab('p', 'Pitching', $activePos, 'splits')
548: 			#printSubTab('f', 'Fielding', $activePos, 'splits')
549: 
550: 		#elseif ($sport.enumCode == 2) ## Basketball
551: 
552: 			#printSubTab('sh', 'Shooting per game', $activePos, 'splits')
553: 			#printSubTab('st', 'Shooting', $activePos, 'splits')
554: 			#printSubTab('bc', 'Ball control per game', $activePos, 'splits')
555: 			#printSubTab('bt', 'Ball control', $activePos, 'splits')
556: 
557: 		#end
558: 	</select>
559: #end ## sport check for secondary tabs
560: 	
561: #if ($sport.enumCode == 0) ## Football
562: 
563: ## <div class="sub-tab-panels">
564: 	#splitsData("qb") ## PASSING
565: 	#splitsData("rb") ## RUSHING
566: 	#splitsData("wr") ## RECEIVING
567: 	#splitsData("k") ## KICKING
568: 	#splitsData("p") ## PUNTING
569: 	#splitsData("kr") ## RETURNS
570: 	#splitsData("d") ## DEFENSE
571: ## </div>
572: 	
573: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
574: 
575: ## <div class="sub-tab-panels">
576: 	#splitsData("h") ## HITTING
577: 	#splitsData("p") ## PITCHING
578: 	#splitsData("f") ## FIELDING
579: ## </div>
580: 	
581: #elseif ($sport.enumCode == 2) ## Basketball
582: 	
583: ## <div class="sub-tab-panels">
584: 	#splitsData("sh") ## SHOOTING PER GAME
585: 	#splitsData("st") ## SHOOTING
586: 	#splitsData("bc") ## BALL CONTROL PER GAME
587: 	#splitsData("bt") ## BALL CONTROL
588: ## </div>
589: 
590: #else
591: 	
592: 	#splitsData($pos)
593: 	
594: #end
595: 
596: </div> ## tab-content
597: ## SPLITS
598: 
599: 
600: 
601: 
602: 
603: #else
604: 
605: 
606: 
607: ## PROFILE
608: #set ($class = "tab-content clearfix")
609: #if ($view == "profile")
610: 	#set ($class = "tab-content clearfix active")
611: #end
612: <div class="${class}">
613: <div class="stats-wrapper clearfix">
614: 
615: ## LAST SIX GAMES
616: <div class="stats-halfbox-left">
617: #printRecentGames()
618: </div>
619: 
620: ## RANKING
621: $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
622: 
623: </div> ## stats-wrapper	
624: </div> ## tab-content
625: ## PROFILE
626: 
627: ## GAMELOG
628: #set ($class = "tab-content clearfix")
629: #if ($view == "gamelog")
630: 	#set ($class = "tab-content clearfix active")
631: #end
632: 
633: #set ($activePos = $statPos)
634: #if ($request.getParameter("view") == "gamelog" && $positions.get($request.getParameter("pos")).length() > 0)
635: 	#set ($activePos = $positions.get($request.getParameter("pos")))
636: #end
637: 
638: <div class="${class}">
639: <div class="stats-wrapper clearfix">
640: 
641: ## SECONDARY TABS FOR ONLY FOOTBALL,  BASEBALL, SOFTBALL AND BASKETBALL
642: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
643: 	
644: <div class="stats-tabs-secondary clearfix">
645: <ul class="clearfix">
646: 
647: #if ($sport.enumCode == 0) ## Football
648: 
649: #if ($activePos == "qb")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=qb">Passing</a></li>
650: 
651: #if ($activePos == "rb")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=rb">Rushing</a></li>
652: 
653: #if ($activePos == "wr")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=wr">Receiving</a></li>
654: 
655: #if ($activePos == "k")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=k">Kicking</a></li>
656: 
657: #if ($activePos == "p")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=p">Punting</a></li>
658: 
659: #if ($activePos == "kr")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=kr">Returns</a></li>
660: 
661: #if ($activePos == "d")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=d">#if ($locale == "en_us")Defense #elseif ($locale == "en_gb") Defence #end</a></li>
662: 
663: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
664: 
665: #if ($activePos == "h")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=h">Hitting</a></li>
666: 
667: #if ($activePos == "p")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=p">Pitching</a></li>
668: 
669: #if ($activePos == "f")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=f">Fielding</a></li>
670: 
671: #elseif ($sport.enumCode == 2) ## Basketball
672: 
673: #if ($activePos == "sh")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=sh">Shooting</a></li>
674: 
675: #if ($activePos == "bc")<li class="active">#else <li> #end<a href="${bioURL}?view=gamelog&pos=bc">Ball control</a></li>
676: 
677: #end
678: 
679: </ul>
680: </div> ## stats-tabs-secondary
681: 
682: #end ## sport check for secondary tabs
683: 
684: #if ($sport.enumCode == 0) ## Football
685: 
686: <div class="sub-tab-panels">
687:   #gamelogData("qb") ## PASSING
688:   #gamelogData("rb") ## RUSHING
689:   #gamelogData("wr") ## RECEIVING
690:   #gamelogData("k") ## KICKING
691:   #gamelogData("p") ## PUNTING
692:   #gamelogData("kr") ## RETURNS
693:   #gamelogData("d") ## DEFENSE
694: </div>
695:   
696: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
697: 
698: <div class="sub-tab-panels">
699:   #gamelogData("h") ## HITTING
700:   #gamelogData("p") ## PITCHING
701:   #gamelogData("f") ## FIELDING
702: </div>
703:   
704: #elseif ($sport.enumCode == 2)
705: 
706: <div class="sub-tab-panels">
707:   #gamelogData("sh") ## SHOOTING
708:   #gamelogData("bc") ## BALL CONTROL
709: </div>
710:   
711: #else
712: 	
713:   #gamelogData($pos)
714:   
715: #end
716: 	
717: </div> ## stats-wrapper
718: </div> ## tab-content
719: ## GAMELOG
720: 
721: 
722: 
723: 
724: 
725: 
726: 
727: 
728: ## CAREER
729: #if ($showCareer)
730: #set ($class = "tab-content clearfix")
731: #if ($view == "career")
732: 	#set ($class = "tab-content clearfix active")
733: #end
734: 
735: #set ($activePos = $statPos)
736: #if ($request.getParameter("view") == "career" && $positions.get($request.getParameter("pos")).length() > 0)
737: 	#set ($activePos = $positions.get($request.getParameter("pos")))
738: #end
739: 
740: <div class="${class}">
741: <div class="stats-wrapper clearfix">
742: 
743: ## SECONDARY TABS FOR ONLY FOOTBALL,  BASEBALL, SOFTBALL AND BASKETBALL
744: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
745: 	
746: <div class="stats-tabs-secondary clearfix">
747: <ul class="clearfix">
748: 
749: #if ($sport.enumCode == 0) ## Football
750: 
751: #if ($activePos == "qb")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=qb">Passing</a></li>
752: 
753: #if ($activePos == "rb")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=rb">Rushing</a></li>
754: 
755: #if ($activePos == "wr")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=wr">Receiving</a></li>
756: 
757: #if ($activePos == "k")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=k">Kicking</a></li>
758: 
759: #if ($activePos == "p")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=p">Punting</a></li>
760: 
761: #if ($activePos == "kr")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=kr">Returns</a></li>
762: 
763: #if ($activePos == "d")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=d">#if ($locale == "en_us")Defense #elseif ($locale == "en_gb") Defence #end</a></li>
764: 
765: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
766: 
767: #if ($activePos == "h")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=h">Hitting</a></li>
768: 
769: #if ($activePos == "p")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=p">Pitching</a></li>
770: 
771: #if ($activePos == "f")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=f">Fielding</a></li>
772: 
773: #elseif ($sport.enumCode == 2) ## Basketball
774: 
775: #if ($activePos == "sh")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=sh">Shooting per game</a></li>
776: 
777: #if ($activePos == "st")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=st">Shooting</a></li>
778: 
779: #if ($activePos == "bc")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=bc">Ball control per game</a></li>
780: 
781: #if ($activePos == "bt")<li class="active">#else <li> #end<a href="${bioURL}?view=career&pos=bt">Ball control</a></li>
782: 
783: #end
784: </ul>
785: </div> ## stats-tabs-secondary
786: #end ## sport check for secondary tabs
787: 	
788: #if ($sport.enumCode == 0) ## Football
789: 
790: <div class="sub-tab-panels">
791: 	#careerData("qb") ## PASSING
792: 	#careerData("rb") ## RUSHING
793: 	#careerData("wr") ## RECEIVING
794: 	#careerData("k") ## KICKING
795: 	#careerData("p") ## PUNTING
796: 	#careerData("kr") ## RETURNS
797: 	#careerData("d") ## DEFENSE
798: </div>
799: 	
800: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
801: 
802: <div class="sub-tab-panels">
803: 	#careerData("h") ## HITTING
804: 	#careerData("p") ## PITCHING
805: 	#careerData("f") ## FIELDING
806: </div>
807: 	
808: #elseif ($sport.enumCode == 2) ## Basketball
809: 	
810: <div class="sub-tab-panels">
811: 	#careerData("sh") ## SHOOTING PER GAME
812: 	#careerData("st") ## SHOOTING
813: 	#careerData("bc") ## BALL CONTROL PER GAME
814: 	#careerData("bt") ## BALL CONTROL
815: </div>
816: 
817: #else
818: 	
819: 	#careerData($pos)
820: 	
821: #end
822: 
823: </div> ## stats-wrapper
824: </div> ## tab-content
825: #end ## show career
826: ## CAREER
827: 
828: 
829: 
830: 
831: 
832: 
833: 
834: 
835: 
836: ## SPLITS
837: #set ($class = "tab-content clearfix")
838: #if ($view == "splits")
839: 	#set ($class = "tab-content clearfix active")
840: #end
841: 
842: #set ($activePos = $statPos)
843: #if ($request.getParameter("view") == "splits" && $positions.get($request.getParameter("pos")).length() > 0)
844: 	#set ($activePos = $positions.get($request.getParameter("pos")))
845: #end
846: 
847: <div class="${class}">
848: <div class="stats-wrapper clearfix">
849: 
850: ## SECONDARY TABS FOR ONLY FOOTBALL,  BASEBALL AND BASKETBALL
851: #if ($sport.enumCode == 0 || $sport.enumCode == 1 || $sport.enumCode == 11 || $sport.enumCode == 2)
852: 	
853: <div class="stats-tabs-secondary clearfix">
854: <ul class="clearfix">
855: 
856: #if ($sport.enumCode == 0) ## Football
857: 
858: #if ($activePos == "qb")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=qb">Passing</a></li>
859: 
860: #if ($activePos == "rb")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=rb">Rushing</a></li>
861: 
862: #if ($activePos == "wr")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=wr">Receiving</a></li>
863: 
864: #if ($activePos == "k")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=k">Kicking</a></li>
865: 
866: #if ($activePos == "p")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=p">Punting</a></li>
867: 
868: #if ($activePos == "kr")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=kr">Returns</a></li>
869: 
870: #if ($activePos == "d")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=d">#if ($locale == "en_us")Defense #elseif ($locale == "en_gb") Defence #end</a></li>
871: 
872: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
873: 
874: #if ($activePos == "h")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=h">Hitting</a></li>
875: 
876: #if ($activePos == "p")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=p">Pitching</a></li>
877: 
878: #if ($activePos == "f")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=f">Fielding</a></li>
879: 
880: #elseif ($sport.enumCode == 2) ## Basketball
881: 
882: #if ($activePos == "sh")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=sh">Shooting per game</a></li>
883: 
884: #if ($activePos == "st")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=st">Shooting</a></li>
885: 
886: #if ($activePos == "bc")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=bc">Ball control per game</a></li>
887: 
888: #if ($activePos == "bt")<li class="active">#else <li> #end<a href="${bioURL}?view=splits&pos=bt">Ball control</a></li>
889: 
890: #end
891: </ul>
892: </div> ## stats-tabs-secondary
893: #end ## sport check for secondary tabs
894: 	
895: #if ($sport.enumCode == 0) ## Football
896: 
897: <div class="sub-tab-panels">
898: 	#splitsData("qb") ## PASSING
899: 	#splitsData("rb") ## RUSHING
900: 	#splitsData("wr") ## RECEIVING
901: 	#splitsData("k") ## KICKING
902: 	#splitsData("p") ## PUNTING
903: 	#splitsData("kr") ## RETURNS
904: 	#splitsData("d") ## DEFENSE
905: </div>
906: 	
907: #elseif ($sport.enumCode == 1 || $sport.enumCode == 11) ## Baseball or Softball
908: 
909: <div class="sub-tab-panels">
910: 	#splitsData("h") ## HITTING
911: 	#splitsData("p") ## PITCHING
912: 	#splitsData("f") ## FIELDING
913: </div>
914: 	
915: #elseif ($sport.enumCode == 2) ## Basketball
916: 	
917: <div class="sub-tab-panels">
918: 	#splitsData("sh") ## SHOOTING PER GAME
919: 	#splitsData("st") ## SHOOTING
920: 	#splitsData("bc") ## BALL CONTROL PER GAME
921: 	#splitsData("bt") ## BALL CONTROL
922: </div>
923: 
924: #else
925: 	
926: 	#splitsData($pos)
927: 	
928: #end
929: 
930: </div> ## stats-wrapper
931: </div> ## tab-content
932: ## SPLITS
933: 
934: #end ## MOBILE / DESKTOP STATS
935: 
936: #else
937: ## BIO
938: 
939: ## CHANGES FOR STATS
940: 
941: ## HACK TO GET STATS URL FROM RENDERER... NEEDS SERVER CHANGE
942: #set ($bioObject = $page.getDataAsObject())
943: #set ($statsURL = $bioObject.statsURL)
944: ## END OF HACK
945: 
946: #if ($statsURL.length() > 0)
947:   $website.includeAgain("${statsURL}?tmpl=bio-stats-template")
948:   ## various settings to get the variables set
949:   #set ($events = $request.getAttribute("bio_events"))
950:   #set ($seasons = $request.getAttribute("bio_seasons"))
951:   #set ($career = $request.getAttribute("bio_career"))
952:   #set ($labels = $request.getAttribute("bio_labels"))
953:   #set ($briefs = $request.getAttribute("bio_briefs"))
954:   #set ($gamelogs = $request.getAttribute("bio_gamelogs"))
955:   #set ($splits = $request.getAttribute("bio_splits"))
956:   #set ($statPosition = $request.getAttribute("bio_position"))
957:   #set ($positions = $request.getAttribute("bio_positions"))
958:   #set ($playerId = $request.getAttribute("bio_player_id"))
959:   #set ($highlights = $request.getAttribute("bio_highlights"))
960:   #set ($formats = $request.getAttribute("bio_formats"))
961: #end
962: 
963: ## END CHANGES FOR STATS
964: 
965: #set ($pos = "")
966: #set ($pos = $attributes.get("position"))
967: #set ($pos = $statPosition)
968: #set ($pos = $pos.toLowerCase())
969: #set ($posVec = $pos.split("/"))
970: #set ($pos = $posVec[0])
971: #set ($pos = $positions.get($pos))
972: #set ($highlights = $highlights.get($pos))
973: 
974: #set ($showHighlights = true)
975: #if ($options.get("bio_show_highlights") && $options.get("bio_show_highlights") == false)
976: 	#set ($showHighlights = false)
977: #end
978: #set ($showCareer = $wiki.valid() && $seasons)
979: #if ("yes" == $options.get("stats_show_career") && $seasons)
980:   #set ($showCareer = "yes")
981: #end
982: 
983: #set ($labels = $labels.get($pos))
984: #set ($briefs = $briefs.get($pos))
985: #set ($gamelogs = $gamelogs.get($pos))
986: #set ($stats = $splits.overall)
987: #set ($hasEvents = $events.size() > 0)
988: #set ($hasSynopsis = $synopsis.length() > 1 && $synopsis.indexOf("<center>") == -1)
989: #set ($htmlStatsURL = "${page.url}-stats")
990: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
991: #set ($bioBriefURL = "${page.url}-brief")
992: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
993: #set ($showRoster = ($page.contentType == "loki/bio" && $page.headlinesFeatured.size() > 0) || ($page.contentType == "loki/bio-network" && $page.sectionPage.children.size() > 1))
994: #if ($options.get("bio_hide_roster") == true)
995: 	#set ($showRoster = false)
996: #end
997: 
998: ## Always default to the bio page if available
999: #set ($view = "bio")
1000: 
1001: #if ($hasSynopsis || $hasBioBrief)
1002: 	#set ($view = "bio")
1003: #elseif ($hasEvents)
1004: 	#set ($view = "profile")
1005: #elseif ($hasHTMLStats)
1006: 	#set ($view = "htmlstats")
1007: #else
1008: 	#set ($view = "")
1009: #end
1010: 
1011: #if ($options.get("bio_default_view").length() > 0)
1012: 	#set ($checkView = $options.get("bio_default_view"))
1013: #end
1014: 
1015: #if ($request.getParameter("view"))
1016: 	#set ($checkView = $request.getParameter("view"))
1017: #end
1018: 
1019: #if ($checkView == "profile" && $hasEvents)
1020: 	#set ($view = "profile")
1021: #elseif ($checkView == "bio" && ($hasSynopsis || $hasBioBrief))
1022: 	#set ($view = "bio")
1023: #elseif ($checkView == "gamelog" && $hasEvents)
1024: 	#set ($view = "gamelog")
1025: #elseif ($checkView == "career" && $showCareer)
1026: 	#set ($view = "career")
1027: #elseif ($checkView == "splits" && $hasEvents)
1028: 	#set ($view = "splits")
1029: #elseif ($checkView == "htmlstats" && $hasHTMLStats)
1030: 	#set ($view = "htmlstats")
1031: #end
1032: 
1033: #if ($attributes.get("full_name"))
1034: 	#set ($fullName = $attributes.get("full_name"))
1035: #else
1036: 	#set ($firstName = $!attributes.get("first_name"))
1037: 	#set ($lastName = $!attributes.get("last_name"))
1038: 	#set ($fullName = "${firstName} ${lastName}")
1039: #end
1040: 
1041: #macro (printHeadshot $width $height)
1042: 	#if ($headshot.url)
1043: 		<img src="$headshot.url?max_width=$!width&max_height=$!height" alt="$fullName" title="$fullName" class="bio-headshot" />
1044: 	#else
1045: 		#if ($website.exists("/images/setup/headshot_default.jpg"))
1046: 			<img src="/images/setup/headshot_default.jpg?max_width=$!width&max_height=$!height" alt="$fullName" title="$fullName" class="bio-headshot" />
1047: 		#else
1048: 			<img src="/info/images/default_headshot.jpg?max_width=$!width&max_height=$!height" alt="$fullName" title="$fullName" class="bio-headshot" />
1049: 		#end
1050: 	#end
1051: #end
1052: 
1053: #if ($isMobile)
1054: 
1055: #set ($hasBioTab = false)
1056: #if ($hasSynopsis || $hasBioBrief)
1057: 	#set ($hasBioTab = true)
1058: #end
1059: 
1060: #set ($hasProfileTab = false)
1061: #if (($highlights && $showHighlights) || $events.size() > 0 || $website.exists("$statsURL/../players"))
1062: 	#set ($hasProfileTab = true)
1063: #end
1064: 
1065: <script type="text/javascript">
1066: 	window.mobileConf = {
1067: 		page : 'bios',
1068: 		pageParams : {
1069: 			view : '$!view'
1070: 		}
1071: 	}
1072: </script>
1073: 
1074: <div class="bios">
1075: 	<div class="profile">
1076: 		<div class="images">
1077: 			<div class="photo">
1078: 				#printHeadshot(81, 116)
1079: 			</div>				
1080: 			#if ($attributes.get("number"))	<div class="number"> $!attributes.get("number") </div> #end
1081: 		</div>
1082: 		<div class="texts">
1083: 			<div class="name">$!attributes.get("first_name") $!attributes.get("last_name")</div>
1084: 			<div class="data">
1085: 				#foreach ($field in $fields)
1086: 					#if (! $field.key.startsWith("custom"))
1087: 						#if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
1088: 
1089: 							#if ($field.key == "phone1" || $field.key == "phone2")
1090: 								Phone: $!attributes.get($field.key) <br />
1091: 							#elseif ($field.key == "email_address")
1092: 								#set ($emailAdd = $attributes.get($field.key))
1093: 								Email: <a href="mailto:${emailAdd}">$emailAdd</a> <br />
1094: 							#else
1095: 								$field.value: $!attributes.get($field.key) <br />
1096: 							#end
1097: 
1098: 							#set ($counter = $counter + 1)
1099: 						#end
1100: 					#end
1101: 				#end
1102: 					
1103: 				#foreach ($i in [1..10])
1104: 					#set ($customKey = "bio_custom${i}")
1105: 					#if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
1106: 						$options.get($customKey): </td><td class="val">$!attributes.get("custom${i}") <br />
1107: 						#set ($counter = $counter + 1)
1108: 					#end
1109: 				#end
1110: 				
1111: 			</div>
1112: 		</div>
1113: 	</div>	
1114: 
1115: 	#if ($hasBioTab || $hasProfileTab)
1116: 	<div class="details mobile-tabs mobile-stats" id="mobile-bios-tabs-container">
1117: 		<ul class="mobile-bios-tabs">
1118: 			#if ($hasBioTab)
1119: 				<li><a data-view="bio" href="#tab-bios">Bio</a></li>
1120: 			#end
1121: 			#if ($hasProfileTab)
1122: 				<li><a data-view="profile" href="#tab-profile">Profile</a></li>
1123: 			#end
1124: 			#if ($hasEvents)
1125: 				<li><a data-view="gamelog" href="#tab-gamelog">Game Log</a></li>
1126: 				#if ($showCareer)
1127: 				    <li><a data-view="career" href="#tab-career">Career</a></li>
1128: 				#end
1129: 				<li><a data-view="splits" href="#tab-splits">Splits</a></li>
1130: 			#end
1131: 		</ul>
1132: 		
1133: 		#if ($hasBioTab)
1134: 		<div id="tab-bios">
1135: 			#if ($hasSynopsis)
1136: 				$synopsis
1137: 			#elseif ($hasBioBrief)
1138: 				<p>$website.include("$bioBriefURL")</p>
1139: 			#end
1140: 		</div>
1141: 		#end
1142: 		
1143: 		#if ($hasProfileTab)
1144: 		#set ($cellWidth = $tool.math.toInteger($tool.math.div(100, $highlights.size())))
1145: 			
1146: 		<div id="tab-profile">
1147: 			## HIGHLIGHTS
1148: 			#if ($highlights && $showHighlights)
1149: 				<div class="bios-stat-wrapper">
1150: 					<h4>Highlights</h4>
1151: 					<table width="100%"><tr>
1152: 					#foreach ($highlight in $highlights.keySet())
1153: 						<th #if (! $isMobile) width="18%" #else width="${cellWidth}%" #end>$!highlights.get($highlight)</th>
1154: 					#end
1155: 					</tr><tr>
1156: 					#foreach ($highlight in $highlights.keySet())
1157: 						<td>
1158: 						#set ($value = "-")
1159: 						#set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
1160: 						#if ($value.length() > 0)
1161: 							<span class="value">$value</span>
1162: 						#else
1163: 							<span class="value">-</span>
1164: 						#end	
1165: 						</td>
1166: 					#end
1167: 					</tr></table>
1168: 				</div>
1169: 			#end
1170: 			
1171: 			## RECENT GAMES
1172: 			#if ($events.size() > 0)
1173: 			<div class="bios-stat-wrapper">
1174: 				##<h4>Recent Games</h4>
1175: 				#printRecentGames()
1176: 			</div>
1177: 			#end
1178: 			
1179: 			<div class="bios-stat-wrapper">
1180: 				$website.include("$statsURL/../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${pos}")
1181: 			</div>
1182: 			
1183: 		</div>
1184: 		#end
1185: 		
1186: 		## STATS TABS
1187: 		#if ($hasEvents)
1188: 			$website.includeAgain("${statsURL}?tmpl=bio-template&stats=1&biourl=${tool.esc.url($page.url)}&view=${view}&pos=${request.getParameter('pos')}")
1189: 			
1190: 			<div id="tab-splits"></div>
1191: 			
1192: 		#end
1193: 		
1194: 	</div>
1195: 	#end
1196: </div>   
1197:    
1198:    
1199: #else
1200: ## NOT MOBILE
1201: 
1202: <head>
1203: 	<title>$fullName #if ($attributes.get("team")) | $attributes.get("team")#end</title>
1204: 	<link rel="stylesheet" type="text/css" href="/info/bio-styles.css" />
1205: </head>
1206: 
1207: ## FULL ROSTER
1208: <div class="bio-wrap clearfix">
1209: 
1210: <div class="head clearfix">
1211: 
1212: <div class="bio-title">#if ($attributes.get("number"))<span class="number">$!attributes.get("number") - #end</span><span class="name">$fullName</span></div>
1213: 
1214: <div class="about">
1215: 
1216: <div class="clearfix">
1217: 
1218: #printHeadshot(150, 200)
1219: 
1220: #set ($counter = 0)
1221: <table cellpadding="5" cellspacing="5" border="0">
1222: 
1223: #foreach ($i in [1..10])
1224: 	#set ($stickyKey = "bio_custom${i}_sticky")
1225: 	#if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
1226: 		<tr><td class="lbl">$options.get($stickyKey): </td><td class="val">$!attributes.get("custom${i}")</td></tr>
1227: 		#set ($counter = $counter + 1)
1228: 	#end
1229: #end
1230: 
1231: #foreach ($field in $fields)
1232: 	#if (! $field.key.startsWith("custom"))
1233: 		#if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
1234: 
1235: 			#if ($field.key == "phone1" || $field.key == "phone2")
1236: 				<tr><td class="lbl">Phone: </td><td class="val">$!attributes.get($field.key)</td></tr>
1237: 			#elseif ($field.key == "email_address")
1238: 				#set ($emailAdd = $attributes.get($field.key))
1239: 				<tr><td class="lbl">Email: </td><td class="val"><a href="mailto:${emailAdd}">$emailAdd</a></td></tr>
1240:                         #elseif ($field.key == 'college')
1241: 				<tr><td class="lbl">Alma Mater: </td><td class="val">$!attributes.get($field.key)</td></tr>
1242: 			#else
1243: 				<tr><td class="lbl">$field.value: </td><td class="val">$!attributes.get($field.key)</td></tr>
1244: 			#end
1245: 
1246: 			#set ($counter = $counter + 1)
1247: 		#end
1248: 	#end
1249: #end
1250: 
1251: #foreach ($i in [1..10])
1252: 	#set ($customKey = "bio_custom${i}")
1253: 	#if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
1254: 		<tr><td class="lbl">$options.get($customKey): </td><td class="val">$!attributes.get("custom${i}")</td></tr>
1255: 		#set ($counter = $counter + 1)
1256: 	#end
1257: #end
1258: 
1259: </table>
1260: 
1261: </div> ## clearfix
1262: </div> ## ends about
1263: 
1264: #if ($highlights && $showHighlights)
1265: <div class="headstats">
1266: 	#foreach ($highlight in $highlights.keySet())
1267: 		<div class="hst">
1268: 		<span class="title" title="$!highlights.get($highlight)">$!highlights.get($highlight)</span>
1269: 		#set ($value = "-")
1270: 		#set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
1271: 		#if ($value.length() > 0)
1272: 			<span class="value">$value</span>
1273: 		#else
1274: 			<span class="value">-</span>
1275: 		#end
1276: 		</div>
1277: 	#end
1278: </div>
1279: #end ## if-highlights
1280: 
1281: </div> ## ends head
1282: 
1283: #if ($hasSynopsis || $hasBioBrief || $hasEvents || $hasHTMLStats || $showRoster)
1284: <div class="stats-tabs clearfix">
1285: 	#if (($hasSynopsis || $hasBioBrief || $hasEvents || $hasHTMLStats) && $view.length() > 0)
1286: 	<ul class="clearfix">
1287: 		#if ($hasSynopsis || $hasBioBrief)
1288: 			#if ($view == "bio")<li class="active">#else<li>#end<a href="${page.url}?view=bio">Bio</a></li>
1289: 		#end
1290: 		
1291: 		#if ($hasEvents)
1292: 			#if ($view == "profile")<li class="active">#else<li>#end<a href="${page.url}?view=profile">Player Profile</a></li>
1293: 			#if ($view == "gamelog")<li class="active">#else<li>#end<a href="${page.url}?view=gamelog">Game Log</a></li>
1294: 			#if ($showCareer)
1295:   			    #if ($view == "career")<li class="active">#else<li>#end<a href="${page.url}?view=career">Career Stats</a></li>
1296:   			#end
1297: 			#if ($view == "splits")<li class="active">#else<li>#end<a href="${page.url}?view=splits">Split Stats</a></li>
1298: 		#end
1299: 
1300: 		#if ($hasHTMLStats)
1301: 			#if ($view == "htmlstats")<li class="active">#else<li>#end<a href="${page.url}?view=htmlstats">HTML Stats</a></li>
1302: 		#end
1303: 	</ul>
1304: 	#end
1305: 	#if ($showRoster)
1306: 		#if ($page.contentType == "loki/bio")
1307: 			#set ($headlinesFeaturedSize = 0)
1308: 			#foreach ($featuredPage in $page.headlinesFeatured)
1309: 				#if ($featuredPage.contentType == "loki/headlines")
1310: 					#set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1)
1311: 				#end
1312: 			#end
1313: 			#if ($headlinesFeaturedSize > 0)
1314: 				<select class="roster-select-list">
1315: 					<option selected="selected" class="bold">Related Bios</option>
1316:     			#foreach ($featuredPage in $page.headlinesFeatured)
1317:     				#if ($featuredPage.contentType == "loki/headlines")
1318:     					$website.includeAgain("${featuredPage.url}?tmpl=roster-list-template&current_url=${page.url}")
1319:     				#end
1320: 				#end
1321: 				</select>
1322: 			#end
1323: 		#elseif ($page.contentType == "loki/bio-network")
1324: 			#set ($relatedPlayers = $page.sectionPage.children)
1325: 			#set ($teamNames = {})
1326: 			#foreach ($relatedPlayer in $relatedPlayers)
1327: 				#if ($relatedPlayer.contentType == "loki/bio-network")
1328: 					#set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
1329: 					## <span class="none relatedplayeratt">$relatedPlayerObj</span>
1330: 					#set ($teamName = $relatedPlayerObj.get("team"))
1331: 					#if ($teamName.length() > 0)
1332:     					#if (!$teamNames.containsValue($teamName))
1333:     						$!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName)
1334:     					#end
1335: 					#end
1336: 				#end
1337: 			#end
1338: 			##<span class="none teamnames">$teamNames</span>
1339: 			<select class="roster-select-list">
1340: 			#foreach ($i in [1..$teamNames.size()])
1341: 				#if ($teamNames.size() > 1)
1342: 					<optgroup label="$teamNames.get($i)">
1343: 				#end
1344: 				
1345: 				#foreach ($relatedPlayer in $relatedPlayers)
1346: 					#if ($relatedPlayer.contentType == "loki/bio-network")
1347: 						#set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
1348: 						#set ($teamName = $relatedPlayerObj.get("team"))
1349: 						#if ($teamName.length() > 0 && $teamName == $teamNames.get($i))
1350: 							#set ($playerFirstName = $relatedPlayerObj.get("first_name"))
1351: 							#set ($playerLastName = $relatedPlayerObj.get("last_name"))
1352: 							#if ($page.url == $relatedPlayer.url)
1353: 								<option value="$relatedPlayer.url" selected="selected" class="bold">${playerFirstName} ${playerLastName}</option>
1354: 							#else
1355: 								<option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option>
1356: 							#end
1357: 						#end
1358: 					#end
1359: 				#end
1360: 				
1361: 				#if ($teamNames.size() > 1)
1362: 					</optgroup>
1363: 				#end
1364: 			#end
1365: 			</select>
1366: 		#end
1367: 	#end
1368: </div>
1369: #end
1370: 
1371: #if ($hasSynopsis || $hasBioBrief || $hasEvents || $hasHTMLStats)
1372: 	<div class="tab-content-panels">
1373: #end
1374: 
1375: ## BIO TAB
1376: #if ($hasSynopsis || $hasBioBrief)
1377: 
1378: #set ($class = "tab-content clearfix")
1379: #if ($view == "bio")
1380: 	#set ($class = "tab-content clearfix active")
1381: #end
1382: <div class="${class}">
1383: 
1384: <div class="synopsis clearfix">
1385: #if ($hasSynopsis)
1386: 	$synopsis
1387: #elseif ($hasBioBrief)
1388: 	$website.include("$bioBriefURL")
1389: #end
1390: </div>
1391: 
1392: </div> ## tab-content
1393: #end ## BIO TAB ENDS
1394: 
1395: ## STATS TABS
1396: #if ($hasEvents)
1397:   $website.includeAgain("${statsURL}?tmpl=bio-template&stats=1&biourl=${tool.esc.url($page.url)}&view=${view}&pos=${request.getParameter('pos')}")
1398: #end
1399: 
1400: ## HTML TAB
1401: #if ($hasHTMLStats)
1402: 
1403: #set ($class = "tab-content clearfix")
1404: #if ($view == "htmlstats")
1405: 	#set ($class = "tab-content clearfix active")
1406: #end
1407: <div class="${class}">
1408: 	<a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a>
1409: </div>
1410: 
1411: #end
1412: 
1413: #if ($hasSynopsis || $hasBioBrief || $hasEvents || $hasHTMLStats)
1414: 	</div>
1415: #end
1416: 
1417: </div> ## ends bio-wrap
1418: 
1419: #if ($request.getAttribute("bioScriptCalled"))
1420:   #set ($scriptCalled = true)
1421: #else
1422:   #set ($scriptCalled = false)
1423: #end
1424: 
1425: #if (!$scriptCalled)
1426: 	
1427: $!request.setAttribute("bioScriptCalled", true)
1428: <script type="text/javascript" src="$website.cdn("/info/jquery.address-1.5.min.js")"></script>
1429: <script type="text/javascript">
1430: 
1431: jQuery.address.strict(false).state('${page.url}').init(function() {
1432: 	$('.bio-wrap .stats-tabs a').address();
1433: 	$('.bio-wrap .stats-tabs-secondary a').address();
1434: });
1435: 
1436: $(function() {
1437: 
1438: $('.bio-wrap .stats-tabs li').click(function(e) {
1439: 	e.preventDefault();
1440: 	if (!$(this).hasClass('active')) {
1441: 		$(this).addClass('active').siblings().removeClass('active');
1442: 		$(this).parent().parent('.stats-tabs').next('.tab-content-panels').children('.tab-content').removeClass('active').eq($(this).index()).addClass('active');
1443: 	}
1444: });
1445: 
1446: $('.bio-wrap .stats-tabs-secondary li').click(function(e) {
1447: 	e.preventDefault();
1448: 	if (!$(this).hasClass('active')) {
1449: 		$(this).addClass('active').siblings().removeClass('active');
1450: 		$(this).parent().parent('.stats-tabs-secondary').next('.sub-tab-panels').children('.sub-tab-content').removeClass('active').eq($(this).index()).addClass('active');
1451: 	}
1452: });
1453: 
1454: #if ($showRoster)
1455: 	$('.bio-wrap .roster-select-list').change(function() {
1456: 		window.location.href = $(this).val();
1457: 	});
1458: #end
1459: 
1460: #if ($hasHTMLStats)
1461: 	$('.bio-htmlstats-identifier').each(function() {
1462: 		var targetElement = $(this);
1463: 		jQuery.get($(this).attr('href'), function(data) {
1464: 			var htmlStats = $(data).find('center').first();
1465: 			htmlStats.add(htmlStats.siblings('center'));
1466: 			if (htmlStats.children().length > 0) {
1467: 				targetElement.replaceWith(htmlStats);
1468: 			}
1469: 		});
1470: 	});
1471: #end
1472: 
1473: });
1474: </script>
1475: #end
1476: 
1477: #end ## MOBILE CHECK
1478: #end ## STATS PARAMETER
1479: 
1480: $wiki