32 - Kristen Haley
Kristen Haley
Height: 6-0
Year: Jr.
Hometown: Silver Spring, Md.
High School: Georgetown Visitation
Position: F
Major: Nursing
gp 27
pts/g 15.3
fg % 44.0
3pt % 27.0
ft % 65.2
reb/g 7.7
a/g 0.9

2012-13: Enters her junior year as one of the best post players in the Capital Athletic Conference ... is a strong, physical post player that gives York a great presence in the paint ... runs the floor well and fits perfectly into the way the Spartans want to play ... has great hands and also is a deft passer ... can finish with contact as she gets to the free throw line frequently ... can hit the 15 foot jump shot consistently and has worked to expand her range to behind the three-point line ... is a very refined player that plays like a far more experienced player … enters the season 268 points short of the 1,000 career point club.  

2011-12: Played in and started all 30 games during her sophomore year … earned second-team All-Capital Athletic Conference honors for the second straight year …averaged 13.8 points and 8.2 rebounds during the year … shot 48.9% from the floor, 33.9% (19-for-56) from three and 75% from the free throw line … established a new career-high with 25 points against St. Vincent in the opening round of the NCAA Tournament … scored at least three points in all 30 games for the year … had 26 double digit performances including four 20-plus point efforts … had a team-high 11 double-doubles for the year … grabbed at least three rebounds in all 30 games with 11 double figure efforts led by a career-high 16 rebounds in the NCAA second round tournament game against Juniata … made a season-high eight field goals in four different games during the year … canned a season-high two three pointers in five different games … made a season-high 9-of-10 from the free throw line in the win over St. Vincent … made 26 of her first 28 free throws of the year … established a new career standard with seven blocked shots in the January 21 win at Marymount … led the Spartans with 47 blocked shots for the season … had a season-high three assists in two different games during the year … had a season-high three steals in the November 27 win over Gettysburg.

2010-11: Was sensational as a freshman for the Spartans as she earned the Capital Athletic Conference Rookie-of-the-Year and second-team All-CAC honors ... played in and started all 29 games for the Spartans ... led the Spartans as she averaged 11 points and 7.8 rebounds per game ... shot 42.4% from the floor, 40.9% from three and 56.7% from the free throw line ... had a team-high 47 blocked shots while she also notched 25 steals ... established a career-high with 23 points in the February 19 win over Salisbury ... set a pair of career-highs in the December 11 win over Frostburg as she has 14 rebounds and four assists ... blocked a career-high six shots in her collegiate debut, a win over Johns Hopkins on November 15 ... canned a career-high three three-point field goals in the January 15 game at Salisbury ... reached double figures in 17 games including four 20-plus point efforts ... scored in all but one game during the year while she had at least four rebounds in all but one game for the season.

Personal: Is the daughter of Paul and Sue Haley . . . born April 2, 1992 ... is a nursing major ... is an outstanding student as she owns a 3.75 GPA ... earned CAC All-Academic and YCP Athletic Honor Roll accolades in both of her first two academic years ... is a four-time Dean's List honoree ... played for the Maryland Flames Elite AAU squad with current teammates Kelsey Murphy and Aja Wallpher ... was a silver and bronze medalists at nationals with the Flames ... four-time All-ISL and four-time league and tournament champions at Georgetown Visitation ... scored 1,146 career points and pulled down 1,128 rebounds in high school ... played in the Montgomery County Public vs. Private All-Star game and also in the Washington DC vs. Baltimore All-Star game ... was All-Met honorable mention in the Washington Post.


Recent Games
Feb 2 at Salisbury W, 72-50
Feb 9 Wesley W, 69-39
Feb 13 at Mary Washington L, 76-67
Feb 16 Frostburg St. W, 83-44
Feb 19 Frostburg St. W, 74-38
Feb 21 at Mary Washington L, 55-49
Statistics category Overall Conf
Games 27 12
Games started 27 12
Minutes 795 360
Minutes per game 29.4 30.0
FG 169-384 83-173
FG Pct 44.0 48.0
3PT 17-63 9-28
3PT Pct 27.0 32.1
FT 58-89 32-46
FT Pct 65.2 69.6
Off rebounds 70 26
Def rebounds 138 56
Total rebounds 208 82
Rebounds per game 7.7 6.8
Personal fouls 74 31
Disqualifications 1 0
Assists 25 9
Turnovers 52 18
Assist to turnover ratio 0.5 0.5
Steals 35 14
Blocks 45 21
Points 413 207
Points per game 15.3 17.2
Points per 40 min 20.8 23.0
Date Opponent Score gs min fg pct 3pt pct ft pct pts
Nov 15 Johns Hopkins W, 55-44 1 34 5-13 38.5 0-3 0.0 1-2 50.0 11
Nov 17 vs. Roanoke W, 57-34 1 25 6-12 50.0 0-1 0.0 1-2 50.0 13
Nov 18 at Guilford W, 55-51 1 29 4-15 26.7 0-3 0.0 2-5 40.0 10
Nov 25 at Gettysburg W, 63-58 1 33 6-17 35.3 2-4 50.0 2-2 100.0 16
Nov 27 at Goucher W, 74-45 1 21 7-15 46.7 2-3 66.7 3-4 75.0 19
Dec 1 at St. Mary's (Md.) W, 62-48 1 28 6-14 42.9 0-1 0.0 0-0 - 12
Dec 4 Frank. & Marsh. W, 67-41 1 26 1-14 7.1 1-4 25.0 3-4 75.0 6
Dec 8 at Wesley W, 67-35 1 33 10-16 62.5 1-2 50.0 4-5 80.0 25
Dec 29 Wheaton (Mass.) W, 55-54 1 25 5-11 45.5 0-0 - 0-0 - 10
Dec 30 TCNJ W, 56-48 1 29 3-8 37.5 1-2 50.0 2-6 33.3 9
Jan 3 Elizabethtown W, 66-55 1 31 8-17 47.1 1-2 50.0 0-0 - 17
Jan 5 Richard Stockton L, 61-51 1 29 7-14 50.0 0-1 0.0 0-2 0.0 14
Jan 7 Catholic L, 60-52 1 31 6-11 54.5 0-3 0.0 0-0 - 12
Jan 9 Salisbury L, 66-53 1 33 3-13 23.1 0-3 0.0 2-4 50.0 8
Jan 12 Marymount (Va.) W, 57-44 1 32 5-12 41.7 3-7 42.9 0-1 0.0 13
Jan 16 at Frostburg St. W, 56-40 1 31 4-13 30.8 0-3 0.0 3-5 60.0 11
Jan 19 Mary Washington L, 50-47 1 36 7-15 46.7 1-1 100.0 2-3 66.7 17
Jan 21 at McDaniel W, 63-45 1 30 6-16 37.5 1-3 33.3 1-2 50.0 14
Jan 24 Washington and Lee W, 61-48 1 34 8-19 42.1 0-1 0.0 6-8 75.0 22
Jan 26 St. Mary's (Md.) W, 77-54 1 32 10-16 62.5 1-2 50.0 6-6 100.0 27
Jan 30 at Marymount (Va.) L, 53-44 1 35 6-12 50.0 0-2 0.0 5-8 62.5 17
Feb 2 at Salisbury W, 72-50 1 28 10-15 66.7 0-1 0.0 3-6 50.0 23
Feb 9 Wesley W, 69-39 1 25 7-16 43.8 1-2 50.0 1-1 100.0 16
Feb 13 at Mary Washington L, 76-67 1 26 9-17 52.9 2-3 66.7 2-2 100.0 22
Feb 16 Frostburg St. W, 83-44 1 21 6-14 42.9 0-1 0.0 4-5 80.0 16
Feb 19 Frostburg St. W, 74-38 1 25 9-17 52.9 0-4 0.0 4-5 80.0 22
Feb 21 at Mary Washington L, 55-49 1 33 5-12 41.7 0-1 0.0 1-1 100.0 11
Feb 23 TBA   - - - - - - - - -
Date Opponent Score gs min off def reb ast to a/to stl blk pf dq
Nov 15 Johns Hopkins W, 55-44 1 34 4 6 10 2 3 0.7 1 1 2 0
Nov 17 vs. Roanoke W, 57-34 1 25 2 11 13 0 1 0.0 0 2 2 0
Nov 18 at Guilford W, 55-51 1 29 3 4 7 2 3 0.7 2 1 4 0
Nov 25 at Gettysburg W, 63-58 1 33 4 5 9 0 3 0.0 6 2 0 0
Nov 27 at Goucher W, 74-45 1 21 4 3 7 1 3 0.3 0 1 2 0
Dec 1 at St. Mary's (Md.) W, 62-48 1 28 2 1 3 1 2 0.5 2 4 1 0
Dec 4 Frank. & Marsh. W, 67-41 1 26 5 6 11 2 2 1.0 1 1 2 0
Dec 8 at Wesley W, 67-35 1 33 3 3 6 0 0 - 0 1 1 0
Dec 29 Wheaton (Mass.) W, 55-54 1 25 2 0 2 1 2 0.5 1 2 5 0
Dec 30 TCNJ W, 56-48 1 29 4 3 7 0 3 0.0 1 0 3 0
Jan 3 Elizabethtown W, 66-55 1 31 4 9 13 0 2 0.0 4 3 3 0
Jan 5 Richard Stockton L, 61-51 1 29 1 4 5 0 1 0.0 1 1 3 0
Jan 7 Catholic L, 60-52 1 31 1 3 4 3 5 0.6 1 2 4 0
Jan 9 Salisbury L, 66-53 1 33 6 7 13 2 3 0.7 3 2 3 0
Jan 12 Marymount (Va.) W, 57-44 1 32 1 1 2 2 0 - 1 3 4 0
Jan 16 at Frostburg St. W, 56-40 1 31 1 11 12 0 3 0.0 0 1 4 0
Jan 19 Mary Washington L, 50-47 1 36 2 2 4 0 0 - 1 1 1 0
Jan 21 at McDaniel W, 63-45 1 30 3 10 13 2 3 0.7 1 5 2 0
Jan 24 Washington and Lee W, 61-48 1 34 4 6 10 2 1 2.0 1 2 2 0
Jan 26 St. Mary's (Md.) W, 77-54 1 32 3 9 12 2 2 1.0 1 1 3 0
Jan 30 at Marymount (Va.) L, 53-44 1 35 0 6 6 0 1 0.0 1 2 2 0
Feb 2 at Salisbury W, 72-50 1 28 4 2 6 0 3 0.0 2 1 3 0
Feb 9 Wesley W, 69-39 1 25 2 6 8 0 2 0.0 2 1 2 0
Feb 13 at Mary Washington L, 76-67 1 26 1 4 5 2 2 1.0 0 2 4 0
Feb 16 Frostburg St. W, 83-44 1 21 1 4 5 0 0 - 1 2 3 0
Feb 19 Frostburg St. W, 74-38 1 25 2 6 8 0 2 0.0 1 1 5 1
Feb 21 at Mary Washington L, 55-49 1 33 1 6 7 1 0 - 0 0 4 0
Feb 23 TBA   - - - - - - - - - - - -
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
Total 27 27 29.4 6.3-14.2 44.0 0.6-2.3 27.0 2.1-3.3 65.2 15.3
Conference 12 12 30.0 6.9-14.4 48.0 0.8-2.3 32.1 2.7-3.8 69.6 17.2
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -

Home 15 15 29.5 6.0-14.0 42.9 0.6-2.4 25.0 2.1-3.1 66.0 14.7
Away 11 11 29.7 6.6-14.7 45.1 0.7-2.4 30.8 2.4-3.6 65.0 16.4
Neutral 1 1 25.0 6.0-12.0 50.0 0.0-1.0 0.0 1.0-2.0 50.0 13.0

Wins 20 20 28.6 6.3-14.5 43.4 0.7-2.4 28.6 2.3-3.4 66.7 15.6
Losses 7 7 31.9 6.1-13.4 45.7 0.4-2.0 21.4 1.7-2.9 60.0 14.4

November 5 5 28.4 5.6-14.4 38.9 0.8-2.8 28.6 1.8-3.0 60.0 13.8
December 5 5 28.2 5.0-12.6 39.7 0.6-1.8 33.3 1.8-3.0 60.0 12.4
January 11 11 32.2 6.4-14.4 44.3 0.6-2.5 25.0 2.3-3.5 64.1 15.6
February 6 6 26.3 7.7-15.2 50.5 0.5-2.0 25.0 2.5-3.3 75.0 18.3
March - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
  gp gs min fg pct 3pt pct ft pct pts
Total 27 27 795 169-384 44.0 17-63 27.0 58-89 65.2 413
Conference 12 12 360 83-173 48.0 9-28 32.1 32-46 69.6 207
Exhibition - - - 0-0 - 0-0 - 0-0 - 0

Home 15 15 443 90-210 42.9 9-36 25.0 31-47 66.0 220
Away 11 11 327 73-162 45.1 8-26 30.8 26-40 65.0 180
Neutral 1 1 25 6-12 50.0 0-1 0.0 1-2 50.0 13

Wins 20 20 572 126-290 43.4 14-49 28.6 46-69 66.7 312
Losses 7 7 223 43-94 45.7 3-14 21.4 12-20 60.0 101

November 5 5 142 28-72 38.9 4-14 28.6 9-15 60.0 69
December 5 5 141 25-63 39.7 3-9 33.3 9-15 60.0 62
January 11 11 354 70-158 44.3 7-28 25.0 25-39 64.1 172
February 6 6 158 46-91 50.5 3-12 25.0 15-20 75.0 110
March - - - 0-0 - 0-0 - 0-0 - 0
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
Total 27 27 29.4 2.6 5.1 7.7 2.7 0.0 0.9 1.9 0.5 1.3 1.7
Conference 12 12 30.0 2.2 4.7 6.8 2.6 0.0 0.8 1.5 0.5 1.2 1.8
Exhibition - - - - - - - - - - - - -

Home 15 15 29.5 2.8 4.8 7.6 3.0 0.1 1.1 1.9 0.6 1.4 1.5
Away 11 11 29.7 2.4 5.0 7.4 2.5 0.0 0.8 2.1 0.4 1.3 1.8
Neutral 1 1 25.0 2.0 11.0 13.0 2.0 0.0 0.0 1.0 0.0 0.0 2.0

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

View: Mobile | Desktop