1 - Jasmine Shaw
Jasmine Shaw
Height: 5-7
Year: Senior
Hometown: Cincinnati, Ohio
High School: Winton Woods HS
Previous College: Marshall University
Position: Guard
gp 30
pts/g 15.3
fg % 44.3
3pt % 40.5
ft % 87.0
reb/g 5.0
a/g 2.5
CAREER HIGHS
 Minutes37 vs. Southern Utah, 11/14/13
 Points29 vs. NW State, 1/9/14
 FG11 at Incarnate Word, 2/6/14
 FG Att.
19 vs. NW State, 1/9/14
 3FG

7 2x, Last vs. NW State, 1/9/14

 3FG Att.
12 vs. NW State, 1/9/14
 FT7 at Tenn. State, 11/21/13
 FT Att.
9 at Tenn. State, 11/21/13
 Rebounds13 at Tenn. State, 11/21/13
 Assists9 at Tenn. State, 11/21/13
 Blocks2 at Texas State, 11/27/13
 Steals6 vs. Southern Utah, 11/14/13

2013-14 (SENIOR): Finished the year ranked in the top 10 in Islanders’ history in eight different single season categories … those were points (3rd, 458), scoring average (5th, 15.3), field goals made (6th, 158), field goal attempts (9th, 357), 3-pointers made (2nd, 75), 3-point attempts (3rd, 185), 3-point percentage (4th, .405) and free throw percentage (1st, .870) … named Southland Conference Newcomer of the Year, while also collecting Second Team All-Southland honors … started in 29 of 30 games on the year, averaging 27.1 minutes per game … scored 20 points against Western Illinois (11/8), 22 against Fairfield  (11/9) and 23 against Southern Utah (11/14) to open up the season ... one assist away from triple double at Tennessee State (11/21) with 14 points, 13 rebounds and nine assists ... added 17 points to go along with six rebounds and six assists against UTPA (12/8) ... notched 28 points at Texas Southern (12/19), while tying school record with seven made threes ... went 5-of-9 from behind the arc with a total of 19 points at UT Arlington (12/21) ... dropped 19 more against Oral Roberts (1/4) to go along with five rebounds and three assists ... tied the school record again with seven threes and also scored a career-high 29 points to go along with 10 rebounds for her second double-double of the season against Northwestern State (1/9) ... shot .500 percent or better from the field for eighth time, going 7-of-13 from the field for 19 points against SFA (1/11) ... scored nine points in the second half for 11 total points with five boards at Nicholls (1/18) ... solid all-around game against Southeastern La. (1/23) with 12 points, eight rebounds, six assists and three steals ... set a career-high with 11 field goals for 28 points to go along with four rebounds and three assists against Incarnate Word (2/6) ... scored 20 points in the second half for 26 total points on six threes, going 8-of-12 from the field at Abilene Christian (2/8) ... tallied 19 points, including the game-winning triple with just two seconds left against Central Arkansas (2/13) ... notched her third double-double of the year with 13 points and 10 rebounds versus ORU (2/15) ... in only 22 minutes of play, Shaw went 6-of-9 from three-point land to score 20 points against HBU (3/1) ... went 7-of-15 for a team-high 17 points against McNeese during the Southland Conference Tournament (3/13).

PRIOR TO TEXAS A&M - CORPUS CHRISTI: Transfer from Marshall University … Played in two games as a junior … averaged six points and three rebounds … played in 29 games and started in three during her sophomore year under coach Chadwick … led the team with a .333 percentage from behind the arc… had eight games with 10 or more points ... ranked fourth on the team with an average of 6.0 points per game ... posted a season-high 16 points against Kent State … played at Chipola Junior College prior to Marshall … Earned All-American and first team All-Pandhandle Conference honors ... named Florida Panhandle Conference's Freshman of the Year … averaged 15.5 points, 4.6 rebounds, and 2.5 assists, while shooting 42.6 percent from behind the arc.

HIGH SCHOOL: Played at Winton Woods High School … program's all-time leading scorer with 1,333 points ... earned FAVC Co-Player of the Year honors during her senior season … named first team All-City and second team All-Southwest district ... earned first team All-Southwest Coaches Association and All-State honorable mention accolades ... nominated as a McDonald's All-American during her senior season ... led her team to a conference championship in 2005 and was the program's MVP … led her team in assists and was voted best defense player ... was first team All-Conference as a freshman ... averaged 13.38 points, 2.23 assists, 3.5 steals and 3.98 rebounds in her four years.

PERSONAL: Born Jasmine Shaw on June 20, 1991... parents are Taswell and Janice Shaw... has three siblings, Tazia, Tazzie and Patrick Blanchard ... major is business.

Recent Games
Feb 15 Oral Roberts W, 61-53
Feb 22 at Houston Baptist W, 74-62
Mar 1 Houston Baptist W, 90-65
Mar 6 McNeese State W, 74-69
Mar 8 Nicholls W, 59-55
Mar 13 vs. McNeese State L, 78-73
Statistics category Overall Conf
Games 30 18
Games started 29 17
Minutes 812 465
Minutes per game 27.1 25.8
FG 158-357 91-207
FG Pct 44.3 44.0
3PT 75-185 45-112
3PT Pct 40.5 40.2
FT 67-77 31-35
FT Pct 87.0 88.6
Off rebounds 42 24
Def rebounds 108 68
Total rebounds 150 92
Rebounds per game 5.0 5.1
Personal fouls 74 43
Disqualifications 3 2
Assists 75 41
Turnovers 79 34
Assist to turnover ratio 0.9 1.2
Steals 45 22
Blocks 6 2
Points 458 258
Points per game 15.3 14.3
Points per 40 min 22.6 22.2
Date Opponent Score gs min fg pct 3pt pct ft pct pts
Nov 3 Texas A&M Int'l W, 76-50 1 26 3-7 42.9 1-3 33.3 2-2 100.0 9
Nov 8 Western Ill. W, 66-60 1 27 6-13 46.2 3-8 37.5 5-6 83.3 20
Nov 9 Fairfield L, 58-55 1 35 8-16 50.0 1-5 20.0 5-5 100.0 22
Nov 14 Southern Utah L, 74-67 1 37 7-13 53.8 5-6 83.3 4-4 100.0 23
Nov 19 at Belmont W, 72-62 1 24 4-12 33.3 3-7 42.9 6-6 100.0 17
Nov 21 at Tennessee State W, 76-74 1 33 3-12 25.0 1-6 16.7 7-9 77.8 14
Nov 27 at Texas State W, 68-60 1 29 2-11 18.2 0-4 0.0 1-2 50.0 5
Dec 5 UTSA L, 55-50 1 24 1-9 11.1 0-3 0.0 0-0 - 2
Dec 8 Texas-Pan American W, 68-54 1 24 6-9 66.7 2-5 40.0 3-3 100.0 17
Dec 19 at Texas Southern W, 71-69 1 30 10-14 71.4 7-9 77.8 1-2 50.0 28
Dec 21 at UT Arlington L, 75-64 1 24 7-14 50.0 5-9 55.6 0-0 - 19
Dec 30 Huston-Tillotson W, 84-64 1 31 6-12 50.0 2-8 25.0 2-2 100.0 16
Jan 2 at Central Arkansas L, 66-62 1 27 4-13 30.8 3-6 50.0 2-2 100.0 13
Jan 4 at Oral Roberts W, 58-53 1 32 8-18 44.4 1-6 16.7 2-2 100.0 19
Jan 9 Northwestern State L, 65-59 1 36 10-19 52.6 7-12 58.3 2-2 100.0 29
Jan 11 Stephen F. Austin L, 58-51 1 33 7-13 53.8 3-6 50.0 2-2 100.0 19
Jan 16 at McNeese State L, 79-51 1 25 2-6 33.3 0-2 0.0 0-0 - 4
Jan 18 at Nicholls L, 67-60 1 21 5-12 41.7 1-7 14.3 0-0 - 11
Jan 23 Southeastern Louisiana W, 83-54 1 26 5-12 41.7 2-8 25.0 0-0 - 12
Jan 25 New Orleans W, 97-44 1 16 2-5 40.0 2-3 66.7 0-0 - 6
Jan 30 at Sam Houston State L, 79-76 1 28 3-12 25.0 1-8 12.5 6-7 85.7 13
Feb 1 at Lamar L, 87-72 1 21 4-10 40.0 2-6 33.3 0-0 - 10
Feb 6 at Incarnate Word W, 60-56 1 32 11-18 61.1 3-8 37.5 3-4 75.0 28
Feb 8 at Abilene Christian W, 74-71 1 23 8-12 66.7 6-7 85.7 4-4 100.0 26
Feb 13 Central Arkansas W, 45-42 1 32 6-15 40.0 3-7 42.9 4-6 66.7 19
Feb 15 Oral Roberts W, 61-53 1 26 5-14 35.7 3-9 33.3 0-0 - 13
Feb 22 at Houston Baptist W, 74-62 - 10 0-0 - 0-0 - 0-0 - 0
Mar 1 Houston Baptist W, 90-65 1 22 7-10 70.0 6-9 66.7 0-0 - 20
Mar 6 McNeese State W, 74-69 1 26 2-11 18.2 1-5 20.0 6-6 100.0 11
Mar 8 Nicholls W, 59-55 1 29 2-7 28.6 1-3 33.3 0-0 - 5
Mar 13 vs. McNeese State L, 78-73 1 29 7-15 46.7 1-3 33.3 2-3 66.7 17
Date Opponent Score gs min off def reb ast to a/to stl blk pf dq
Nov 3 Texas A&M Int'l W, 76-50 1 26 0 4 4 3 0 - 1 0 2 0
Nov 8 Western Ill. W, 66-60 1 27 2 3 5 0 8 0.0 2 0 3 0
Nov 9 Fairfield L, 58-55 1 35 0 3 3 0 2 0.0 1 0 1 0
Nov 14 Southern Utah L, 74-67 1 37 1 3 4 3 1 3.0 6 0 2 0
Nov 19 at Belmont W, 72-62 1 24 1 3 4 3 3 1.0 0 0 4 0
Nov 21 at Tennessee State W, 76-74 1 33 7 6 13 9 7 1.3 4 0 3 0
Nov 27 at Texas State W, 68-60 1 29 0 1 1 0 3 0.0 2 2 2 0
Dec 5 UTSA L, 55-50 1 24 2 3 5 0 7 0.0 2 0 2 0
Dec 8 Texas-Pan American W, 68-54 1 24 1 5 6 6 1 6.0 0 0 1 0
Dec 19 at Texas Southern W, 71-69 1 30 1 3 4 2 4 0.5 4 0 3 0
Dec 21 at UT Arlington L, 75-64 1 24 2 2 4 2 5 0.4 0 0 5 1
Dec 30 Huston-Tillotson W, 84-64 1 31 0 5 5 5 1 5.0 1 1 3 0
Jan 2 at Central Arkansas L, 66-62 1 27 0 3 3 1 1 1.0 1 0 5 1
Jan 4 at Oral Roberts W, 58-53 1 32 1 4 5 3 4 0.8 1 0 3 0
Jan 9 Northwestern State L, 65-59 1 36 5 5 10 3 3 1.0 1 0 4 0
Jan 11 Stephen F. Austin L, 58-51 1 33 0 4 4 1 2 0.5 2 0 2 0
Jan 16 at McNeese State L, 79-51 1 25 2 3 5 1 0 - 0 1 3 0
Jan 18 at Nicholls L, 67-60 1 21 1 3 4 1 3 0.3 0 0 3 0
Jan 23 Southeastern Louisiana W, 83-54 1 26 1 7 8 6 3 2.0 3 0 1 0
Jan 25 New Orleans W, 97-44 1 16 0 4 4 2 1 2.0 0 0 2 0
Jan 30 at Sam Houston State L, 79-76 1 28 2 3 5 8 3 2.7 2 0 3 -
Feb 1 at Lamar L, 87-72 1 21 2 3 5 0 2 0.0 2 0 5 1
Feb 6 at Incarnate Word W, 60-56 1 32 2 2 4 3 4 0.8 1 1 1 -
Feb 8 at Abilene Christian W, 74-71 1 23 0 4 4 3 3 1.0 1 0 4 -
Feb 13 Central Arkansas W, 45-42 1 32 2 5 7 2 0 - 1 0 0 -
Feb 15 Oral Roberts W, 61-53 1 26 4 6 10 2 2 1.0 0 0 1 -
Feb 22 at Houston Baptist W, 74-62 - 10 0 2 2 0 0 - 2 0 0 -
Mar 1 Houston Baptist W, 90-65 1 22 0 0 0 2 1 2.0 1 0 1 -
Mar 6 McNeese State W, 74-69 1 26 2 4 6 1 1 1.0 2 0 3 -
Mar 8 Nicholls W, 59-55 1 29 0 6 6 2 1 2.0 2 0 2 -
Mar 13 vs. McNeese State L, 78-73 1 29 1 3 4 4 3 1.3 1 1 2 -
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
2013-14 30 29 27.1 5.3-11.9 44.3 2.5-6.2 40.5 2.2-2.6 87.0 15.3
Total 30 29 27.1 5.3-11.9 44.3 2.5-6.2 40.5 2.2-2.6 87.0 15.3
  gp gs min fg pct 3pt pct ft pct pts
2013-14 30 29 812 158-357 44.3 75-185 40.5 67-77 87.0 458
Total 30 29 812 158-357 44.3 75-185 40.5 67-77 87.0 458
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
2013-14 30 29 27.1 7.8-17.6 44.3 3.7-9.1 40.5 3.3-3.8 87.0 22.6
Total 30 29 27.1 7.8-17.6 44.3 3.7-9.1 40.5 3.3-3.8 87.0 22.6
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
2013-14 30 29 27.1 1.4 3.6 5.0 2.5 0.1 2.5 2.6 0.9 1.5 0.2
Total 30 29 27.1 1.4 3.6 5.0 2.5 0.1 2.5 2.6 0.9 1.5 0.2
  gp gs min off def reb pf dq ast to a/to stl blk
2013-14 30 29 812 42 108 150 74 3 75 79 0.9 45 6
Total 30 29 812 42 108 150 74 3 75 79 0.9 45 6
  gp gs mpg off/40 def/40 reb/40 pf/40 dq/40 ast/40 to/40 a/to stl/40 blk/40
2013-14 30 29 27.1 2.1 5.3 7.4 3.6 0.1 3.7 3.9 0.9 2.2 0.3
Total 30 29 27.1 2.1 5.3 7.4 3.6 0.1 3.7 3.9 0.9 2.2 0.3
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
Total 30 29 27.1 5.3-11.9 44.3 2.5-6.2 40.5 2.2-2.6 87.0 15.3
Conference 18 17 25.8 5.1-11.5 44.0 2.5-6.2 40.2 1.7-1.9 88.6 14.3
Exhibition 1 1 26.0 3.0-7.0 42.9 1.0-3.0 33.3 2.0-2.0 100.0 9.0

Home 15 15 28.3 5.3-11.9 44.9 2.7-6.5 42.3 2.2-2.4 91.7 15.6
Away 14 13 25.6 5.1-11.7 43.3 2.4-6.1 38.8 2.3-2.7 84.2 14.8
Neutral 1 1 29.0 7.0-15.0 46.7 1.0-3.0 33.3 2.0-3.0 66.7 17.0

Wins 18 17 26.2 5.2-11.4 45.4 2.6-6.2 41.1 2.4-2.9 84.6 15.3
Losses 12 12 28.3 5.4-12.7 42.8 2.4-6.1 39.7 1.9-2.1 92.0 15.2

November 6 6 30.8 5.0-12.8 39.0 2.2-6.0 36.1 4.7-5.3 87.5 16.8
December 5 5 26.6 6.0-11.6 51.7 3.2-6.8 47.1 1.2-1.4 85.7 16.4
January 9 9 27.1 5.1-12.2 41.8 2.2-6.4 34.5 1.6-1.7 93.3 14.0
February 6 5 24.0 5.7-11.5 49.3 2.8-6.2 45.9 1.8-2.3 78.6 16.0
March 4 4 26.5 4.5-10.8 41.9 2.2-5.0 45.0 2.0-2.2 88.9 13.2
  gp gs min fg pct 3pt pct ft pct pts
Total 30 29 812 158-357 44.3 75-185 40.5 67-77 87.0 458
Conference 18 17 465 91-207 44.0 45-112 40.2 31-35 88.6 258
Exhibition 1 1 26 3-7 42.9 1-3 33.3 2-2 100.0 9

Home 15 15 424 80-178 44.9 41-97 42.3 33-36 91.7 234
Away 14 13 359 71-164 43.3 33-85 38.8 32-38 84.2 207
Neutral 1 1 29 7-15 46.7 1-3 33.3 2-3 66.7 17

Wins 18 17 472 93-205 45.4 46-112 41.1 44-52 84.6 276
Losses 12 12 340 65-152 42.8 29-73 39.7 23-25 92.0 182

November 6 6 185 30-77 39.0 13-36 36.1 28-32 87.5 101
December 5 5 133 30-58 51.7 16-34 47.1 6-7 85.7 82
January 9 9 244 46-110 41.8 20-58 34.5 14-15 93.3 126
February 6 5 144 34-69 49.3 17-37 45.9 11-14 78.6 96
March 4 4 106 18-43 41.9 9-20 45.0 8-9 88.9 53
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
Total 30 29 27.1 7.8-17.6 44.3 3.7-9.1 40.5 3.3-3.8 87.0 22.6
Conference 18 17 25.8 7.8-17.8 44.0 3.9-9.6 40.2 2.7-3.0 88.6 22.2
Exhibition 1 1 26.0 4.6-10.8 42.9 1.5-4.6 33.3 3.1-3.1 100.0 13.8

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