21 Marcus Thomas
21 - Marcus Thomas
Height: 6-3
Weight: 200
Year: Jr.
Hometown: Clarksburg, Md.
High School: Clarksburg
Position: G/F
Major: Business Administration
gp 29
pts/g 5.6
fg % 41.0
3pt % 37.8
ft % 75.0
reb/g 3.1
a/g 2.9

Career Statistics (PDF)

  • Three-year letterman
  • Has appeared in 61 games in his career and started 26 times
  • Averaging 3.7 points, 2.6 rebounds, 1.7 assists, and 0.8 steals per game in his career

Junior Year (2014-2015) (Game-by-Game Statistics)

  • Appeared in all 29 games and started 25 times
  • Averaged 5.6 points, 3.1 rebounds, 2.9 assists, and 0.9 steals per game
  • Finished sixth in assists, eighth in assist-to-turnover ratio (1.9), and 12th in 3-point field goal percentage (.378), minutes played (28.5) and steals in the Landmark Conference
  • Scored in double figures five times, including career-high tying 15 points vs. Susquehanna on Feb. 11
  • Also tallied 15 points in 75-73 win over Wilkes University in the fourth annual Cross County Challenge at King's College in Wilkes-Barre, Pennsylvania, on Jan. 3
  • Recorded his first 'double-double' with 11 points and 11 rebounds in a 65-54 win at Elizabethtown on Nov. 22
  • Came through with solid effort in the Royals' 76-65 win over Catholic University in the Landmark championship game on Feb. 28 in Washington, DC, finishing with nine points, six rebounds, three steals, and two assists
  • Played 30-or-more minutes 15 times

Sophomore Year (2013-2014) (Game-by-Game Statistics)

  • Saw action in 23 of 28 games
  • Averaged 2.0 points, 2.7 rebounds, and 0.7 steals per game
  • Played 11-or-more minutes off the bench over the final 16 games of the season
  • Shot nearly 49 percent from the field
  • Scored a season-high seven points apiece in a 73-65 win at Moravian College on Jan. 29 and in an 82-64 victory over the Merchant Marine Academy in the semifinals of the Landmark Conference tournament on Feb. 26 at the Long Center
  • Had more assists (22) than turnovers (13)
  • Royals were 14-2 in the final 16 games of the season with him seeing significant playing time off the bench

Freshman Year (2012-2013) (Game-by-Game Statistics)

  • Appeared in nine games
  • Averaged 1.8 points, 1.1 rebounds, 0.3 assists, and 0.4 steals per game
  • Shot 60 percent from the field (6 of 10) and 80 percent from the free throw line (4 of 5)
  • Scored a season-high six points and pulled down a season-high tying three rebounds in a 69-57 loss to St. Joseph's (Long Island) in the opening round of the PNC Bank Royal Rumble on December 17 at the Long Center
  • Also scored four points apiece in a 78-63 win over Susquehanna University at home on December 1 and in a 67-54 loss to the Merchant Marine Academy on December 9, also at the Long Center
  • Made the first start of his career against St. Joseph's and played a season-high 21 minutes.

High School/Personal

  • Played four years of basketball and lacrosse and earned two varsity letters in each sport
  • Averaged 9 points, 7 rebounds, and 7 assists his senior year in basketball for the Coyotes of head coach Larry Hurd
  • Served as captain of both the basketball and lacrosse teams
  • 2-time team MVP and Coyote Award recipient and named to the Montgomery County All-Star team
  • Picked up several honors for academic excellence:  STAR scholarship recipient (2010, 2011), Minds in Motion award recipient, Alpha Phi Alpha Academic Achievement Award (2010, 2011), and African-American Festival of Academic Excellence Award recipient (2009, 2010, 2011)
  • Co-founder of Minority Scholars Program
  • Also played two season of junior varsity football and varsity football
  • Son of Milton & Beth Thomas
  • His father is a graduate of Tuskegee University (Ala.) and his mother graduated from Radford University (Va.), where she was a member of the softball team
  • Has a younger sister, Camille
  • Date of birth:  May 3, 1994
Recent Games
Feb 18 at Merchant Marine W, 66-60
Feb 21 Catholic W, 83-71
Feb 25 Susquehanna W, 67-53
Feb 28 at Catholic W, 76-65
Mar 6 vs. Baruch W, 72-62
Mar 7 at Babson L, 54-47
Statistics category Overall Conf
Games 29 16
Games started 25 15
Minutes 827 453
Minutes per game 28.5 28.3
FG 55-134 35-82
FG Pct 41.0 42.7
3PT 31-82 22-51
3PT Pct 37.8 43.1
FT 21-28 8-13
FT Pct 75.0 61.5
Off rebounds 16 11
Def rebounds 73 40
Total rebounds 89 51
Rebounds per game 3.1 3.2
Personal fouls 61 30
Disqualifications 1 0
Assists 83 48
Turnovers 43 28
Assist to turnover ratio 1.9 1.7
Steals 27 15
Blocks 6 4
Points 162 100
Points per game 5.6 6.3
Points per 40 min 7.8 8.8
Date Opponent Score gs min fg pct 3pt pct ft pct pts
Nov 15 Centenary (N.J.) W, 69-54 - 29 1-2 50.0 1-2 50.0 0-0 - 3
Nov 16 Alvernia W, 57-54 - 22 2-4 50.0 0-2 0.0 0-0 - 4
Nov 19 at Misericordia L, 49-44 - 20 0-3 0.0 0-2 0.0 0-0 - 0
Nov 22 at Elizabethtown W, 65-54 1 31 4-5 80.0 3-4 75.0 0-0 - 11
Nov 25 Cabrini W, 85-65 1 26 3-8 37.5 1-4 25.0 2-2 100.0 9
Dec 6 Juniata W, 61-48 1 21 0-2 0.0 0-1 0.0 0-0 - 0
Dec 14 Merchant Marine W, 83-70 1 30 1-4 25.0 0-2 0.0 0-1 0.0 2
Dec 28 vs. Husson L, 79-74 1 26 2-6 33.3 0-2 0.0 0-0 - 4
Dec 29 vs. Hanover W, 64-61 1 33 0-2 0.0 0-2 0.0 0-1 0.0 0
Jan 2 at King's (Pa.) W, 86-83 1 29 2-3 66.7 1-1 100.0 2-2 100.0 7
Jan 3 vs. Wilkes W, 75-73 1 37 5-6 83.3 3-3 100.0 2-2 100.0 15
Jan 6 Drew W, 73-69 1 34 2-8 25.0 1-3 33.3 0-0 - 5
Jan 8 at Susquehanna W, 70-68 1 21 2-9 22.2 1-4 25.0 2-2 100.0 7
Jan 10 Goucher W, 68-67 1 24 1-1 100.0 0-0 - 0-0 - 2
Jan 13 at Ithaca L, 88-80 1 30 0-2 0.0 0-2 0.0 2-2 100.0 2
Jan 17 at Catholic L, 71-65 1 30 2-4 50.0 1-3 33.3 0-0 - 5
Jan 21 Moravian W, 84-57 1 23 0-1 0.0 0-0 - 0-0 - 0
Jan 28 at Drew W, 79-69 1 33 1-4 25.0 0-1 0.0 3-4 75.0 5
Jan 31 Elizabethtown W, 65-43 - 29 2-5 40.0 1-3 33.3 1-2 50.0 6
Feb 4 at Moravian W, 96-64 1 24 4-5 80.0 2-3 66.7 0-0 - 10
Feb 7 at Juniata W, 69-52 1 33 5-8 62.5 4-5 80.0 0-0 - 14
Feb 11 Susquehanna L, 74-60 1 30 5-10 50.0 5-9 55.6 0-0 - 15
Feb 14 at Goucher W, 82-64 1 30 2-5 40.0 1-4 25.0 0-0 - 5
Feb 18 at Merchant Marine W, 66-60 1 23 1-2 50.0 1-2 50.0 2-4 50.0 5
Feb 21 Catholic W, 83-71 1 37 3-9 33.3 2-7 28.6 0-0 - 8
Feb 25 Susquehanna W, 67-53 1 30 1-5 20.0 1-4 25.0 1-2 50.0 4
Feb 28 at Catholic W, 76-65 1 33 2-6 33.3 1-3 33.3 4-4 100.0 9
Mar 6 vs. Baruch W, 72-62 1 33 1-2 50.0 1-2 50.0 0-0 - 3
Mar 7 at Babson L, 54-47 1 26 1-3 33.3 0-2 0.0 0-0 - 2
Date Opponent Score gs min off def reb ast to a/to stl blk pf dq
Nov 15 Centenary (N.J.) W, 69-54 - 29 0 3 3 2 1 2.0 1 0 3 0
Nov 16 Alvernia W, 57-54 - 22 1 1 2 4 1 4.0 0 0 2 0
Nov 19 at Misericordia L, 49-44 - 20 0 1 1 1 2 0.5 0 0 4 0
Nov 22 at Elizabethtown W, 65-54 1 31 2 9 11 2 3 0.7 1 0 2 -
Nov 25 Cabrini W, 85-65 1 26 0 4 4 4 0 - 1 0 1 0
Dec 6 Juniata W, 61-48 1 21 0 2 2 1 4 0.3 1 0 3 0
Dec 14 Merchant Marine W, 83-70 1 30 2 3 5 5 3 1.7 1 0 1 0
Dec 28 vs. Husson L, 79-74 1 26 0 3 3 4 2 2.0 1 0 3 0
Dec 29 vs. Hanover W, 64-61 1 33 0 4 4 2 0 - 1 0 2 0
Jan 2 at King's (Pa.) W, 86-83 1 29 0 2 2 2 2 1.0 1 0 2 -
Jan 3 vs. Wilkes W, 75-73 1 37 0 3 3 4 0 - 0 2 1 0
Jan 6 Drew W, 73-69 1 34 0 1 1 3 1 3.0 2 0 3 0
Jan 8 at Susquehanna W, 70-68 1 21 2 4 6 5 1 5.0 1 0 4 -
Jan 10 Goucher W, 68-67 1 24 0 1 1 4 1 4.0 0 1 1 0
Jan 13 at Ithaca L, 88-80 1 30 0 3 3 5 1 5.0 2 0 5 1
Jan 17 at Catholic L, 71-65 1 30 1 3 4 2 2 1.0 1 1 0 0
Jan 21 Moravian W, 84-57 1 23 0 1 1 5 1 5.0 1 0 2 0
Jan 28 at Drew W, 79-69 1 33 0 4 4 0 1 0.0 1 0 4 -
Jan 31 Elizabethtown W, 65-43 - 29 0 3 3 3 1 3.0 2 1 2 0
Feb 4 at Moravian W, 96-64 1 24 0 0 0 4 1 4.0 2 0 0 0
Feb 7 at Juniata W, 69-52 1 33 0 2 2 2 1 2.0 0 0 1 -
Feb 11 Susquehanna L, 74-60 1 30 1 3 4 2 1 2.0 0 0 2 0
Feb 14 at Goucher W, 82-64 1 30 0 1 1 7 3 2.3 0 0 0 0
Feb 18 at Merchant Marine W, 66-60 1 23 1 0 1 0 1 0.0 0 0 3 0
Feb 21 Catholic W, 83-71 1 37 2 3 5 3 3 1.0 2 1 2 0
Feb 25 Susquehanna W, 67-53 1 30 0 3 3 3 2 1.5 0 0 1 0
Feb 28 at Catholic W, 76-65 1 33 2 4 6 2 1 2.0 3 0 4 0
Mar 6 vs. Baruch W, 72-62 1 33 2 0 2 2 3 0.7 0 0 2 0
Mar 7 at Babson L, 54-47 1 26 0 2 2 0 0 - 2 0 1 0
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
2012-13 9 1 8.4 0.7-1.1 60.0 0.0-0.1 0.0 0.4-0.6 80.0 1.8
2013-14 23 - 14.2 0.8-1.6 48.6 0.1-0.5 18.2 0.4-0.7 52.9 2.0
2014-15 29 25 28.5 1.9-4.6 41.0 1.1-2.8 37.8 0.7-1.0 75.0 5.6
2015-16 27 26 24.3 1.4-4.0 33.9 0.7-2.7 27.4 0.7-0.8 86.4 4.2
Total 88 52 21.4 1.3-3.3 40.0 0.6-1.9 31.7 0.6-0.8 73.6 3.8
  gp gs min fg pct 3pt pct ft pct pts
2012-13 9 1 76 6-10 60.0 0-1 0.0 4-5 80.0 16
2013-14 23 - 326 18-37 48.6 2-11 18.2 9-17 52.9 47
2014-15 29 25 827 55-134 41.0 31-82 37.8 21-28 75.0 162
2015-16 27 26 655 37-109 33.9 20-73 27.4 19-22 86.4 113
Total 88 52 1884 116-290 40.0 53-167 31.7 53-72 73.6 338
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
2012-13 9 1 8.4 3.2-5.3 60.0 0.0-0.5 0.0 2.1-2.6 80.0 8.4
2013-14 23 - 14.2 2.2-4.5 48.6 0.2-1.3 18.2 1.1-2.1 52.9 5.8
2014-15 29 25 28.5 2.7-6.5 41.0 1.5-4.0 37.8 1.0-1.4 75.0 7.8
2015-16 27 26 24.3 2.3-6.7 33.9 1.2-4.5 27.4 1.2-1.3 86.4 6.9
Total 88 52 21.4 2.5-6.2 40.0 1.1-3.5 31.7 1.1-1.5 73.6 7.2
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
2012-13 9 1 8.4 0.6 0.6 1.1 0.9 0.0 0.3 0.9 0.4 0.4 0.0
2013-14 23 - 14.2 0.8 1.8 2.7 1.4 0.0 1.0 0.6 1.7 0.7 0.0
2014-15 29 25 28.5 0.6 2.5 3.1 2.1 0.0 2.9 1.5 1.9 0.9 0.2
2015-16 27 26 24.3 0.1 1.8 1.9 1.4 0.0 3.3 2.0 1.7 1.0 0.1
Total 88 52 21.4 0.5 1.9 2.4 1.6 0.0 2.3 1.3 1.7 0.8 0.1
  gp gs min off def reb pf dq ast to a/to stl blk
2012-13 9 1 76 5 5 10 8 0 3 8 0.4 4 0
2013-14 23 - 326 19 42 61 32 1 22 13 1.7 16 1
2014-15 29 25 827 16 73 89 61 1 83 43 1.9 27 6
2015-16 27 26 655 4 48 52 37 0 90 54 1.7 27 2
Total 88 52 1884 44 168 212 138 2 198 118 1.7 74 9
  gp gs mpg off/40 def/40 reb/40 pf/40 dq/40 ast/40 to/40 a/to stl/40 blk/40
2012-13 9 1 8.4 2.6 2.6 5.3 4.2 0.0 1.6 4.2 0.4 2.1 0.0
2013-14 23 - 14.2 2.3 5.2 7.5 3.9 0.1 2.7 1.6 1.7 2.0 0.1
2014-15 29 25 28.5 0.8 3.5 4.3 3.0 0.0 4.0 2.1 1.9 1.3 0.3
2015-16 27 26 24.3 0.2 2.9 3.2 2.3 0.0 5.5 3.3 1.7 1.6 0.1
Total 88 52 21.4 0.9 3.6 4.5 2.9 0.0 4.2 2.5 1.7 1.6 0.2
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
Total 29 25 28.5 1.9-4.6 41.0 1.1-2.8 37.8 0.7-1.0 75.0 5.6
Conference 16 15 28.3 2.2-5.1 42.7 1.4-3.2 43.1 0.5-0.8 61.5 6.3
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Home 12 9 27.9 1.8-4.9 35.6 1.0-3.1 32.4 0.3-0.6 57.1 4.8
Away 13 12 27.9 2.0-4.5 44.1 1.2-2.8 41.7 1.2-1.4 83.3 6.3
Neutral 4 4 32.3 2.0-4.0 50.0 1.0-2.2 44.4 0.5-0.8 66.7 5.5
-
Wins 23 20 28.9 2.0-4.6 42.5 1.1-2.7 40.3 0.8-1.1 73.1 5.8
Losses 6 5 27.0 1.7-4.7 35.7 1.0-3.3 30.0 0.3-0.3 100.0 4.7
-
November 5 2 25.6 2.0-4.4 45.5 1.0-2.8 35.7 0.4-0.4 100.0 5.4
December 4 4 27.5 0.8-3.5 21.4 0.0-1.8 0.0 0.0-0.5 0.0 1.5
January 10 9 29.0 1.7-4.3 39.5 0.8-2.0 40.0 1.2-1.4 85.7 5.4
February 8 8 30.0 2.9-6.2 46.0 2.1-4.6 45.9 0.9-1.2 70.0 8.8
March 2 2 29.5 1.0-2.5 40.0 0.5-2.0 25.0 0.0-0.0 - 2.5
  gp gs min fg pct 3pt pct ft pct pts
Total 29 25 827 55-134 41.0 31-82 37.8 21-28 75.0 162
Conference 16 15 453 35-82 42.7 22-51 43.1 8-13 61.5 100
Exhibition - - - 0-0 - 0-0 - 0-0 - 0
-
Home 12 9 335 21-59 35.6 12-37 32.4 4-7 57.1 58
Away 13 12 363 26-59 44.1 15-36 41.7 15-18 83.3 82
Neutral 4 4 129 8-16 50.0 4-9 44.4 2-3 66.7 22
-
Wins 23 20 665 45-106 42.5 25-62 40.3 19-26 73.1 134
Losses 6 5 162 10-28 35.7 6-20 30.0 2-2 100.0 28
-
November 5 2 128 10-22 45.5 5-14 35.7 2-2 100.0 27
December 4 4 110 3-14 21.4 0-7 0.0 0-2 0.0 6
January 10 9 290 17-43 39.5 8-20 40.0 12-14 85.7 54
February 8 8 240 23-50 46.0 17-37 45.9 7-10 70.0 70
March 2 2 59 2-5 40.0 1-4 25.0 0-0 - 5
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
Total 29 25 28.5 2.7-6.5 41.0 1.5-4.0 37.8 1.0-1.4 75.0 7.8
Conference 16 15 28.3 3.1-7.2 42.7 1.9-4.5 43.1 0.7-1.1 61.5 8.8
There was a problem with a Velocity script
Pagebio-template
ErrorVM #split: too few arguments to macro. Wanted 5 got 3 at bio-template[line 294, column 1]
Page source:
1: $website.addCss($website.cdn("/info/photo-gallery.css"))
2: <script src="${website.cdn("/info/klass.min.js")}"></script>
3: <script src="${website.cdn("/info/code.photoswipe.jquery-3.0.5.min.js")}"></script>
4: <script src="${website.cdn("/info/masonry.pkgd.min.js")}"></script>
5: <script src="${website.cdn("/info/imagesloaded.pkgd.min.js")}"></script>
6: <script src="${website.cdn("/info/photogallery/photogallery.js")}"></script>
7: 
8: ## PICK UP OPTIONS
9: $website.include("options")
10: #set ($options = $request.getAttribute("options"))
11: #set ($locale = "en_us")
12: #set ($locale = $options.get("locale"))
13: 
14: ## HACK TO GET STATS URL FROM RENDERER... NEEDS SERVER CHANGE
15: #set ($bioObject = $page.getDataAsObject())
16: #set ($statsURL = $bioObject.statsURL)
17: 
18: #if ($statsURL.length() > 0)
19:   $website.includeAgain("${statsURL}?tmpl=bio-stats-template")
20:   ## various settings to get the variables set
21:   #set ($events = $request.getAttribute("bio_events"))
22:   #set ($seasons = $request.getAttribute("bio_seasons"))
23:   #set ($career = $request.getAttribute("bio_career"))
24:   #set ($labels = $request.getAttribute("bio_labels"))
25:   #set ($briefs = $request.getAttribute("bio_briefs"))
26:   #set ($gamelogs = $request.getAttribute("bio_gamelogs"))
27:   #set ($splits = $request.getAttribute("bio_splits"))
28:   #set ($statPosition = $request.getAttribute("bio_position"))
29:   #set ($positions = $request.getAttribute("bio_positions"))
30:   #set ($playerId = $request.getAttribute("bio_player_id"))
31:   #set ($highlights = $request.getAttribute("bio_highlights"))
32:   #set ($formats = $request.getAttribute("bio_formats"))
33:   #set ($gamelogsCategoriesLabels = $request.getAttribute("bio_gamelogs_labels"))
34:   #set ($briefsCategoriesLabels = $request.getAttribute("bio_briefs_labels"))
35:   #set ($gamesResults = $request.getAttribute("bio_games_results"))
36:   #set ($monthsPlayed = $request.getAttribute("bio_months_played"))
37: #end
38: 
39: #set ($pos = "")
40: #set ($pos = $attributes.get("position"))
41: #set ($pos = $statPosition)
42: #set ($posVec = $pos.split("/"))
43: #set ($pos = $posVec[0])
44: #set ($pos = $pos.toLowerCase())
45: #set ($statPos = $positions.get($pos))
46: #set ($paramPos = $request.getParameter("pos"))
47: 
48: #set ($playerId = $attributes.get("playerId"))
49: #set ($stats = $splits.overall)
50: #set ($highlights = $highlights.get($statPos))
51: 
52: #set ($showHighlights = true)
53: #if ($options.get("bio_show_highlights") && $options.get("bio_show_highlights") == false)
54: 	#set ($showHighlights = false)
55: #end
56: 
57: #set ($enhancedLayout = false)
58: #if (($options.get("bio_enhanced_layout") == "yes") || ($request.getParameter("bio_enhanced_layout") == true))
59: 	#set ($enhancedLayout = true)
60: 	$website.addCss($website.cdn("/info/bio-styles-enhanced.css"))
61: #end
62: 
63: #set ($showActionShots = true)
64: #if ($options.get("bio_show_action_shots") && $options.get("bio_show_action_shots") == false)
65: 	#set ($showActionShots = false)
66: #end
67: 
68: #set ($actionShotsLimit = 5)
69: #set ($actionShotsLimit = $tool.math.toInteger($options.get("bio_action_shots_limit")))
70: 
71: #set ($showCareer = $wiki.valid() && $seasons)
72: #if ("yes" == $options.get("stats_show_career") && $seasons)
73:   #set ($showCareer = true)
74: #end
75: 
76: #set ($hasEvents = $events.size() > 0)
77: #set ($hasSynopsis = $synopsis.trim().length() > 0)
78: #set ($htmlStatsURL = "${page.url}-stats")
79: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
80: #set ($bioBriefURL = "${page.url}-brief")
81: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
82: #set ($showRoster = ($page.contentType == "loki/bio" && $page.headlinesFeatured.size() > 0) || ($page.contentType == "loki/bio-network" && $page.sectionPage.children.size() > 1))
83: #if ($options.get("bio_hide_roster") == true)
84:   #set ($showRoster = false)
85: #end
86: 
87: #set ($view = "")
88: #if ($hasSynopsis || $hasBioBrief)
89:   #set ($view = "bio")
90: #elseif ($statsURL.length() > 0)
91:   #set ($view = "profile")
92: #elseif ($hasHTMLStats)
93:   #set ($view = "htmlstats")
94: #elseif ($releases.size() > 0)
95:   #set ($view = "news")
96: #elseif ($playerPhotos.size() > 0)
97:   #set ($view = "photos")
98: #elseif ($playerVideos.size() > 0)
99:   #set ($view = "videos")
100: #end
101: 
102: #if ($options.get("bio_default_view").length() > 0)
103:   #set ($checkView = $options.get("bio_default_view"))
104: #end
105: 
106: #if ($request.getParameter("view"))
107:   #set ($checkView = $request.getParameter("view"))
108: #end
109: 
110: #if ($checkView == "profile" && $statsURL.length() > 0)
111:   #set ($view = "profile")
112: #elseif ($checkView == "bio" && ($hasSynopsis || $hasBioBrief))
113:   #set ($view = "bio")
114: #elseif ($checkView == "gamelog" && $statsURL.length() > 0)
115:   #set ($view = "gamelog")
116: #elseif ($checkView == "career" && $showCareer)
117:   #set ($view = "career")
118: #elseif ($checkView == "splits" && $statsURL.length() > 0)
119:   #set ($view = "splits")
120: #elseif ($checkView == "htmlstats" && $hasHTMLStats)
121:   #set ($view = "htmlstats")
122: #elseif ($checkView == "news" && $releases.size() > 0)
123:   #set ($view = "news")
124: #elseif ($checkView == "photos" && $playerPhotos.size() > 0)
125:   #set ($view = "photos")
126: #elseif ($checkView == "videos" && $playerVideos.size() > 0)
127:     #set ($view = "videos")
128: #end
129: 
130: #macro (printResultAriaLabel $event)
131:     #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
132:     #if ($event.neutralSite.length() > 0 || $event.home)
133:     	#set ($ariaLabel = "${ariaLabel} vs.")
134:     #else
135:     	#set ($ariaLabel = "${ariaLabel} at")
136:     #end
137:     #set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:")
138:     #if ($event.neutralSite.length() > 0)
139:     	#set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
140:     #end
141:     #set ($ariaLabel = "${ariaLabel} Box Score")
142:     aria-label="$ariaLabel"
143: #end
144: 
145: #macro (printGrid $items $type)
146: <div class="news-layout grid">
147:     <div class="stories">
148:         <ul>
149:         #foreach ($item in $items)
150:             #if ($item.title.length() > 0)
151: 
152:                 <li class="story ${type}">
153:                 	<div class="clearfix">
154:                 	<a href="$item.url" class="title-box">
155:                         <span class="thumb">
156:                         #if ($item.thumbnailURL)
157:                         	<img src="$website.cdn("/info/images/spacer.gif")" data-src="${item.thumbnailURL}?max_width=300" alt="" class="lazyload" />
158: 						#elseif ($item.contentType == "loki/youtube")
159: 							<img src="$website.cdn("/info/images/spacer.gif")" data-src="http://img.youtube.com/vi/${item.dataAsString}/0.jpg" alt="" class="lazyload" />
160:                         #else
161:                         	<img src="$website.cdn("/info/images/spacer.gif")" data-src="/images/setup/thumbnail_default.jpg?max_width=300" alt="" class="lazyload" />
162:                         #end
163:                         </span>
164:                 		<span class="title">$item.title</span>
165:                 	</a>
166:                 	</div>
167:                 </li>
168:             #end
169:         #end ## foreach
170:         </ul>
171:     </div>
172: </div>
173: #end ## ends macro
174: 
175: #macro (gamelogData $p)
176: 
177: #set ($p = $positions.get($p))
178: #set ($gamelogs = $gamelogs.get($p))
179: 
180: #if ($hasEvents)
181: <div class="stats-box full clearfix">
182: <div class="scrollable">
183: <div>
184: <table>
185:   <tr class="thead">
186:     <th class="text">Date</th>
187:     <th class="pinned-col text">Opponent</th>
188:     <th>Score</th>
189:     #foreach ($gamelog in $gamelogs)
190:       <th>$gamelog</th>
191:     #end
192:   </tr>
193: #foreach ($event in $events)
194:   <tr>
195:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
196:     <td class="pinned-col text">
197:       #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
198:       $event.event.opponent.name
199:     </td>
200:     <td>
201:     #if ($event.event.statusCode >= 0)
202:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
203:           <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
204:       #else
205:       ${event.event.APResult}
206:       #end
207:     #else &nbsp; #end
208:     </td>
209:     #foreach ($gamelog in $gamelogs.keySet())
210:       #set ($value = "-")
211:       #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
212:       <td>$value</td>
213:     #end
214:   </tr>
215: #end
216: </table>
217: </div>
218: </div> ## scrollable
219: </div> ## stats-box
220: #end
221: 
222: #end ## macro gamelogData
223: 
224: #macro (split $statPosBriefs $label $stats)
225:   <tr>
226:     <td class="pinned-col text">${label}</td>
227:     #foreach ($brief in $statPosBriefs.keySet())
228:       #set ($value = "-")
229:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
230:       <td>#if ($value.length() > 0) $value #else - #end</td>
231:     #end
232:   </tr>
233: #end
234: 
235: #macro (careerData $p)
236: #set ($p = $positions.get($p))
237: #set ($statPosBriefs = $briefs.get($p))
238: 
239: <div class="stats-box full clearfix">
240: <div class="scrollable">
241: <div>
242: <table>
243: <tr class="thead">
244:   <th class="pinned-col">&nbsp;</th>
245:   #foreach ($brief in $statPosBriefs)
246:     <th>$brief</th>
247:   #end
248: </tr>
249: 
250: #set ($careerTotals = $request.getAttribute("careerTotals"))
251: #set ($careerMap = $request.getAttribute("careerMap"))
252: 
253: #foreach ($season in $seasons)
254:   ## Check if we did not get stats for this season
255:   #if ($careerMap.get($season.seasonName))
256:     #split($statPosBriefs, $season.seasonName, $careerMap[$season.seasonName])
257:   #elseif ($wiki.valid())
258:     <tr>
259:       <td class="text">${season.seasonName}</td>
260:       <td colspan="${statPosBriefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
261:     </tr>
262:   #end
263: #end
264: 
265: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
266: 
267: </table>
268: </div>
269: </div> ## scrollable
270: </div> ## stats-box
271: 
272: #end ## macro careerData
273: 
274: #macro (splitsData $p)
275: 
276: #set ($p = $positions.get($p))
277: #set ($statPosBriefs = $briefs.get($p))
278: #set ($colspan = $tool.math.add($statPosBriefs.size(), 1))
279: 
280: #if ($statPosBriefs.size() > 0)
281: <div class="stats-box full clearfix">
282: <div class="scrollable">
283: <div>
284: <table>
285:   <tr>
286:     <th class="pinned-col">&nbsp;</th>
287:     #foreach ($brief in $statPosBriefs)
288:       <th>$brief</th>
289:     #end
290:   </tr>
291: 
292: #split($statPosBriefs, "Total", $splits.overall)
293: #split($statPosBriefs, "Conference", $splits.conference)
294: #split($statPosBriefs, "Exhibition", $splits.exhibition)
295: 
296: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
297: 
298: #split($statPosBriefs, "Home", $splits.home)
299: #split($statPosBriefs, "Away", $splits.away)
300: #split($statPosBriefs, "Neutral", $splits.neutral)
301: 
302: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
303: 
304: #foreach($gameResult in $gamesResults.entrySet())
305:   #if ($gameResult.key == "wins")
306:     #set ($splitGameResult = $splits.inWins)
307:   #elseif ($gameResult.key == "losses")
308:     #set ($splitGameResult = $splits.inLosses)
309:   #elseif ($gameResult.key == "ties")
310:     #set ($splitGameResult = $splits.inTies)
311:   #end
312: 
313:   #split($statPosBriefs, $gameResult.value, $splitGameResult)
314: #end
315: 
316: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
317: 
318: #if ($monthsPlayed and $monthsPlayed.size() > 0)
319:   #foreach($month in $monthsPlayed)
320:     #if ($month == 'January')
321:       #set ($splitMonth = $splits.january)
322:     #elseif ($month == 'February')
323:       #set ($splitMonth = $splits.february)
324:     #elseif ($month == 'March')
325:       #set($splitMonth = $splits.march)
326:     #elseif ($month == 'April')
327:       #set($splitMonth = $splits.april)
328:     #elseif ($month == 'May')
329:       #set ($splitMonth = $splits.may)
330:     #elseif ($month == 'June')
331:       #set ($splitMonth = $splits.june)
332:     #elseif ($month == 'July')
333:       #set($splitMonth = $splits.july)
334:     #elseif ($month == 'August')
335:       #set ($splitMonth = $splits.august)
336:     #elseif ($month == 'September')
337:       #set($splitMonth = $splits.september)
338:     #elseif ($month == 'October')
339:       #set($splitMonth = $splits.october)
340:     #elseif ($month == 'November')
341:       #set ($splitMonth = $splits.november)
342:     #elseif ($month == 'December')
343:       #set($splitMonth = $splits.december)
344:     #end
345: 
346:     #split($statPosBriefs, $month, $splitMonth)
347:   #end ## foreach
348: #end
349: </table>
350: </div>
351: </div> ## scrollable
352: </div> ## srollable-table
353: #end
354: 
355: #end ## macro splitsData
356: 
357: #macro (printRecentGames)
358: #if ($hasEvents)
359: <table>
360:   <tr class="thead accent-bg"><th colspan="3">Recent Games</th></tr>
361: 
362: #set ($eventEnd = -1)
363: #foreach ($event in $events)
364:   #if ($event.event.result.resolved)
365:     #set ($eventEnd = $velocityCount)
366:   #end
367: #end
368: 
369: #set ($eventStart = $eventEnd - 5)
370: #if ($eventStart < 0) #set ($eventStart = 0) #end
371: 
372: #foreach ($event in $events)
373: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
374:   <tr>
375:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
376:     <td class="text">
377:       #if ($event.event.neutralSite.length() > 0) vs.
378:       #elseif (!$event.event.home) at
379:       #else ## nothing for a home game
380:       #end
381:       $event.event.opponent.name
382:     </td>
383:     <td class="text">
384:     #if ($event.event.statusCode >= 0)
385:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
386:           <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
387:       #else
388:       ${event.event.APResult}
389:       #end
390: 	#end
391: 	</td>
392:   </tr>
393: #end ## if
394: #end
395: </table>
396: #end
397: #end ## macro printRecentGames
398: 
399: #macro (printCategories $briefCategoryLabels $v $ariaLabel)
400: 
401: <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
402: <div class="tab-nav" data-module="jscroll" data-momentum="false">
403: <div>
404: <ul class="clearfix">
405: #foreach($briefCat in $briefCategoryLabels.entrySet())
406:   #set ($briefCatLabel = $briefCat.value)
407:   #set ($briefCatKey = $briefCat.key)
408: 
409:   #if ($locale == "en_gb" && $briefCatLabel == "Defense")
410:     #set ($briefCatLabel = "Defence")
411:   #end
412: 
413:   <li #if ($activePos == $briefCatKey) class="active" #end><a href="${page.url}?view=${v}&pos=${briefCatKey}" role="button" aria-label="${ariaLabel}: ${briefCatLabel}">$briefCatLabel</a></li>
414: #end
415: </ul>
416: </div>
417: </div>
418: <div class="tab-panels">
419: #foreach ($briefCat in $briefCategoryLabels.entrySet())
420:   #set ($class = "tab-panel clearfix")
421:   #if ($briefCat.key == $activePos)
422:     #set ($class = "tab-panel active clearfix")
423:   #end
424:   <div class="$class">
425:     <div class="stats-wrap clearfix">
426:     #if ($v == "splits")
427:       #splitsData($briefCat.key)
428:     #elseif ($v == "career")
429:       #careerData($briefCat.key)
430:     #end
431:     </div>
432:   </div>
433: #end
434: </div>
435: </div> ## tab-container
436: 
437: #end ## macro printCategories
438: 
439: #macro (printHeadshot)
440: #if ($enhancedLayout)
441: 
442:   #if ($headshot.url)
443:     <img src="$headshot.url?max_width=300&max_height=400" alt="$fullName" />
444:   #else
445:     #if ($website.exists("/images/setup/headshot_default.jpg"))
446:       <img src="/images/setup/headshot_default.jpg?max_width=300&max_height=400" alt="$fullName" />
447:     #else
448:       <img src="$website.cdn("/info/images/default_headshot.jpg?max_width=300&max_height=400")" alt="$fullName" />
449:     #end
450:   #end
451: 
452: #else
453: 
454:   #if ($!attributes.get("number").length() > 0)<span class="number">$!attributes.get("number")</span>#end
455: 
456:   #if ($headshot.url)
457:     <img src="$headshot.url?max_width=160&max_height=210" alt="$fullName" />
458:   #else
459:     #if ($website.exists("/images/setup/headshot_default.jpg"))
460:       <img src="/images/setup/headshot_default.jpg?max_width=160&max_height=210" alt="" />
461:     #else
462:       <img src="$website.cdn("/info/images/default_headshot.jpg?max_width=160&max_height=210")" alt="" />
463:     #end
464:   #end
465: 
466: #end ## ## enhancedLayout check
467: #end ## macro printHeadshot
468: 
469: #macro (printBioInfo)
470: #if ($enhancedLayout)
471: 
472: <h2 class="player-heading">
473:   #if ($!attributes.get("number").length() > 0)<span class="number accent-bg">$!attributes.get("number")</span>#end
474:   <span class="name">$fullName</span>
475: </h2>
476: 
477: <ul>
478: #foreach ($i in [1..10])
479:   #set ($stickyKey = "bio_custom${i}_sticky")
480:   #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
481:     <li>
482:       <dl>
483:         <dt class="label">$options.get($stickyKey): </dt>
484:         <dd class="value">$!attributes.get("custom${i}")</dd>
485:       </dl>
486:     </li>
487:   #end
488: #end
489: 
490: #foreach ($field in $fields)
491:   #if (!$field.key.startsWith("custom"))
492:     #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
493:       #if ($field.key == "phone1" || $field.key == "phone2")
494:         <li>
495:           <dl>
496:             <dt class="label">Phone: </dt>
497:             <dd class="value">$!attributes.get($field.key)</dd>
498:           </dl>
499:         </li>
500:       #elseif ($field.key == "email_address")
501:         #set ($emailAdd = $attributes.get($field.key))
502:         <li>
503:           <dl>
504:             <dt class="label">Email: </dt>
505:             <dd class="value"><a href="mailto:${emailAdd}">$emailAdd</a></dd>
506:           </dl>
507:         </li>
508:       #elseif ($field.key == "weight_class")
509:         <li>
510:           <dl>
511:             <dt class="label">Class: </dt>
512:             <dd class="value">$!attributes.get($field.key)</dd>
513:           </dl>
514:         </li>
515:       #elseif ($field.key != "position_abbr")
516:         <li>
517:           <dl>
518:             <dt class="label">$field.value: </dt>
519:             <dd class="value">$!attributes.get($field.key)</dd>
520:           </dl>
521:         </li>
522:       #end
523:     #end
524:   #end
525: #end
526: 
527: #foreach ($i in [1..10])
528:   #set ($customKey = "bio_custom${i}")
529:   #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
530:     <li>
531:       <dl>
532:         <dt class="label">$options.get($customKey): </dt>
533:         <dd class="value">$!attributes.get("custom${i}")</dd>
534:       </dl>
535:     </li>
536:   #end
537: #end
538: </ul>
539: 
540: #else
541: ## default layout
542: 
543: <div class="player-name">
544:   #if ($!attributes.get("number").length() > 0)<span class="number">$!attributes.get("number")</span><span class="sep"> - </span>#end
545:   <span class="name">$fullName</span>
546: </div>
547: 
548: <table role="presentation">
549: #foreach ($i in [1..10])
550:   #set ($stickyKey = "bio_custom${i}_sticky")
551:   #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
552:     <tr>
553:       <td class="label">$options.get($stickyKey): </td>
554:       <td class="value">$!attributes.get("custom${i}")</td>
555:     </tr>
556:   #end
557: #end
558: 
559: #foreach ($field in $fields)
560:   #if (!$field.key.startsWith("custom"))
561:     #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
562:       #if ($field.key == "phone1" || $field.key == "phone2")
563:         <tr>
564:           <td class="label">Phone: </td>
565:           <td class="value">$!attributes.get($field.key)</td>
566:         </tr>
567:       #elseif ($field.key == "email_address")
568:         #set ($emailAdd = $attributes.get($field.key))
569:         <tr>
570:           <td class="label">Email: </td>
571:           <td class="value"><a href="mailto:${emailAdd}">$emailAdd</a></td>
572:         </tr>
573:       #elseif ($field.key == "weight_class")
574:         <tr>
575:           <td class="label">Class: </td>
576:           <td class="value">$!attributes.get($field.key)</td>
577:         </tr>
578:       #elseif ($field.key != "position_abbr")
579:         <tr>
580:           <td class="label">$field.value: </td>
581:           <td class="value">$!attributes.get($field.key)</td>
582:         </tr>
583:       #end
584:     #end
585:   #end
586: #end
587: 
588: #foreach ($i in [1..10])
589:   #set ($customKey = "bio_custom${i}")
590:   #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
591:     <tr>
592:       <td class="label">$options.get($customKey): </td>
593:       <td class="value">$!attributes.get("custom${i}")</td>
594:     </tr>
595:   #end
596: #end
597: </table>
598: #end ## enhancedLayout check
599: #end ## macro printBioInfo
600: 
601: #macro (printActionShots)
602: #if ($showActionShots)
603: 	## BANNERS SLIDER
604:     #set ($slickSettings = {
605: 		"autoplay": true,
606:         "fade": true,
607:         "arrows": false,
608:         "slidesToShow": 1,
609:         "slidesToScroll": 1,
610:         "lazyLoad": "ondemand",
611:         "responsive": "none"
612:     })
613:     #set ($slickSettings = $slickSettings.toString().replace("=", ":"))
614:     <div class="action-shots clearfix">
615:         <div class="slider" data-module="slick-slider-init" data-slick-settings="$slickSettings">
616:             #foreach ($photo in $playerPhotos)
617: 				#if ($velocityCount <= $actionShotsLimit)
618:     				#set ($imgAlt = "")
619:     				#if (!$image.altText.equals($image.title))
620:     					#set ($imgAlt = $image.altText)
621:     				#elseif( $image.title.length() == 0 )
622:     					#set ($imgAlt = "Action shot for $page.title image $velocityCount")
623:     				#end
624:             		<div class="image">
625:             			<img data-lazy="$photo.url" alt="$imgAlt" />
626:             	    </div>
627: 				#end
628:     	    #end
629: 	    </div>
630:     </div>
631: #end
632: #end ## macro printActionShots
633: 
634: #macro (printHighlights)
635: #if ($highlights && $showHighlights)
636:   <div class="highlights #if ($enhancedLayout) highlights-bio-enhanced #else highlights-bio #end clearfix">
637:     #foreach ($highlight in $highlights.keySet())
638:       #set ($value = "-")
639:       #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
640:       <div class="stat clearfix">
641:         <span class="stat-title">$!highlights.get($highlight)</span>
642:         <span class="stat-value">$value</span>
643:       </div>
644:     #end
645:   </div>
646: #end
647: #end ## macro printHighlights
648: #macro (printRoster)
649: #if ($enhancedLayout)
650:   $website.includeAgain("${page.url}?tmpl=roster-switcher-template&id=roster-list")
651: #else
652: #if ($page.contentType == "loki/bio")
653:   #set ($headlinesFeaturedSize = 0)
654:   #foreach ($featuredPage in $page.headlinesFeatured)
655:     #if ($featuredPage.contentType == "loki/headlines")
656:       #set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1)
657:     #end
658:   #end
659:   #if ($headlinesFeaturedSize > 0)
660:       <select class="roster-select-list" aria-label="Select a player to view its full bio from the list of options below.">
661:         <option selected="selected">Related Bios</option>
662:         #foreach ($featuredPage in $page.headlinesFeatured)
663:           #if ($featuredPage.contentType == "loki/headlines")
664:             $website.includeAgain("${featuredPage.url}?tmpl=roster-list-template&current_url=${page.url}")
665: 		  #end
666: 	    #end
667:       </select>
668:   #end
669: #elseif ($page.contentType == "loki/bio-network")
670:   #set ($relatedPlayers = $page.sectionPage.children)
671:   #set ($teamNames = {})
672:   #foreach ($relatedPlayer in $relatedPlayers)
673:     #if ($relatedPlayer.contentType == "loki/bio-network")
674:       #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
675:       #set ($teamName = $relatedPlayerObj.get("team"))
676:       #if ($teamName.length() > 0)
677:         #if (!$teamNames.containsValue($teamName))
678:           $!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName)
679:         #end
680:       #end
681:     #end
682:   #end
683: 
684:   <select class="roster-select-list" aria-label="Select a player to view its full bio from the list of options below.">
685:   #foreach ($i in [1..$teamNames.size()])
686:     #if ($teamNames.size() > 1)
687:       <optgroup label="$teamNames.get($i)">
688:     #end
689: 
690:     #foreach ($relatedPlayer in $relatedPlayers)
691:       #if ($relatedPlayer.contentType == "loki/bio-network")
692:         #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
693:         #set ($teamName = $relatedPlayerObj.get("team"))
694:         #if ($teamName.length() > 0 && $teamName == $teamNames.get($i))
695:           #set ($playerFirstName = $relatedPlayerObj.get("first_name"))
696:           #set ($playerLastName = $relatedPlayerObj.get("last_name"))
697:           #if ($page.url == $relatedPlayer.url)
698:             <option value="$relatedPlayer.url" selected="selected">${playerFirstName} ${playerLastName}</option>
699:           #else
700:             <option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option>
701:           #end
702:         #end
703:       #end
704:     #end
705: 
706:     #if ($teamNames.size() > 1)
707:       </optgroup>
708:     #end
709:   #end
710:   </select>
711: #end
712: #end ## enhancedLayout check
713: #end ## macro printRoster
714: 
715: ################################################## END MACROS  #############################################################
716: 
717: #if ($attributes.get("full_name").length() > 0)
718:   #set ($fullName = $attributes.get("full_name"))
719: #else
720:   #set ($firstName = $!attributes.get("first_name"))
721:   #set ($lastName = $!attributes.get("last_name"))
722:   #set ($fullName = "${firstName} ${lastName}")
723: #end
724: 
725: #set ($actionShots = false)
726: #if ($enhancedLayout && $playerPhotos.size() > 0)
727:   #set ($actionShots = true)
728: #end
729: 
730: #if ($enhancedLayout)
731:   #set ($rootClass = "bio-enhanced")
732:   #if ($actionShots && $showActionShots)
733:   	#set ($rootClass = "${rootClass} action")
734:   #else
735:   	#set ($rootClass = "${rootClass} plain")
736:   #end
737: #else
738:   #set ($rootClass = "bio-wrap")
739: #end
740: 
741: ## FULL ROSTER
742: <div class="${rootClass} #if ($highlights) bio-wrap-has-highlights #end clearfix" data-module="stats/responsive-container">
743: 
744: ## RELATED BIOS
745: #if ($showRoster)
746:   <div class="related-bios clearfix">#printRoster</div>
747: #end
748: 
749: #if ($actionShots)
750:   #printActionShots
751: #end
752: 
753: <div class="head clearfix">
754: <div class="clearfix">
755: 
756: <div class="player-about clearfix">
757:   <div class="player-headshot">#printHeadshot</div>
758:   <div class="player-info">#printBioInfo</div>
759: </div>
760: 
761: #printHighlights
762: 
763: </div>
764: </div> ## head
765: 
766: #if ($view.length() > 0)
767: <div class="body clearfix">
768: 
769: <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
770: <div class="tab-nav" data-module="jscroll" data-momentum="false">
771:   <div>
772:   <ul class="clearfix">
773:   #if ($hasSynopsis || $hasBioBrief)
774:     <li #if ($view == "bio") class="active" #end><a href="${page.url}?view=bio">Bio</a></li>
775:   #end
776: 
777:   #if ($statsURL.length() > 0)
778:     <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile">Player Profile</a></li>
779:     <li #if ($view == "gamelog") class="active" #end><a href="${page.url}?view=gamelog">Game Log</a></li>
780:     #if ($showCareer)
781:       <li #if ($view == "career") class="active" #end><a href="${page.url}?view=career">Career Stats</a></li>
782:     #end
783:     <li #if ($view == "splits") class="active" #end><a href="${page.url}?view=splits">Split Stats</a></li>
784:   #end
785: 
786:   #if ($hasHTMLStats)
787:     <li #if ($view == "htmlstats") class="active" #end><a href="${page.url}?view=htmlstats">HTML Stats</a></li>
788:   #end
789: 
790:   #if ($releases.size() > 0)
791: 	<li #if ($view == "news") class="active" #end><a href="${page.url}?view=news">News</a></li>
792:   #end
793: 
794:   #if ($playerPhotos.size() > 0)
795: 	<li #if ($view == "photos") class="active" #end><a href="${page.url}?view=photos">Photos</a></li>
796:   #end
797: 
798:   #if ($playerVideos.size() > 0)
799:     <li #if ($view == "videos") class="active" #end><a href="${page.url}?view=videos">Videos</a></li>
800:   #end
801:   </ul>
802:   </div>
803: </div> ## tab-nav
804: 
805: <div class="tab-panels clearfix">
806: 
807: ## BIO
808: #if ($hasSynopsis || $hasBioBrief)
809: 
810: #set ($class = "tab-panel clearfix")
811: #if ($view == "bio")
812:   #set ($class = "tab-panel active clearfix")
813: #end
814: <div class="${class}">
815: 
816: <div class="synopsis clearfix">
817: #if ($hasSynopsis)
818:   $synopsis
819: #elseif ($hasBioBrief)
820:   $website.include("$bioBriefURL")
821: #end
822: </div>
823: 
824: </div> ## tab-panel
825: #end
826: ## BIO
827: 
828: ## STATS
829: #if ($statsURL.length() > 0)
830: 
831: ## PROFILE
832: #set ($class = "tab-panel clearfix")
833: #if ($view == "profile")
834:   #set ($class = "tab-panel active clearfix")
835: #end
836: <div class="${class}">
837: <div class="stats-wrap clearfix">
838: 
839: ## LAST SIX GAMES
840: <div class="stats-box half">
841: #printRecentGames()
842: </div>
843: 
844: ## RANKING
845: <div class="stats-box half">
846: #if ($statPos.length() > 0)
847:   $website.include("players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
848: #end
849: </div>
850: 
851: </div> ## stats-wrap
852: </div> ## tab-content
853: ## PROFILE
854: 
855: ## GAMELOG
856: #set ($class = "tab-panel clearfix")
857: #if ($view == "gamelog")
858:   #set ($class = "tab-panel active clearfix")
859: #end
860: 
861: #set ($activePos = $statPos)
862: #if ($view == "gamelog" && $paramPos.length() > 0)
863:   #if ($positions.get($paramPos).length() > 0)
864:     #set ($activePos = $positions.get($paramPos))
865:   #end
866: #end
867: 
868: <div class="${class}">
869: 
870: #if ($gamelogsCategoriesLabels)
871: <div class="tab-container clearfix secondary" data-module="stats/tabs" data-type="secondary">
872:   <div class="tab-nav" data-module="jscroll" data-momentum="false">
873:     <div>
874:     <ul class="clearfix">
875:     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
876:       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
877: 
878:       #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
879:         #set($gamelogsCatLabelVal = "Defence")
880:       #end
881: 
882:       <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end><a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}" role="button" aria-label="Game Log: ${gamelogsCatLabelVal}">$gamelogsCatLabelVal</a></li>
883:     #end
884:     </ul>
885: 	</div>
886:   </div>
887:   <div class="tab-panels">
888:   #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
889:     #set ($class = "tab-panel clearfix")
890:     #if ($gamelogsCatLabel.key == $activePos)
891:       #set ($class = "tab-panel active clearfix")
892:     #end
893:     <div class="${class}">
894:       <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
895: 	</div>
896:   #end
897:   </div>
898: </div>
899: #else
900:   <div class="stats-wrap clearfix">#gamelogData($pos)</div>
901: #end
902: 
903: </div> ## tab-panel
904: ## GAMELOG
905: 
906: 
907: ## CAREER
908: #if ($showCareer)
909: 
910: #set ($activePos = $statPos)
911: #if ($view == "career" && $paramPos.length() > 0)
912:   #if ($positions.get($paramPos).length() > 0)
913:     #set ($activePos = $positions.get($paramPos))
914:   #end
915: #end
916: 
917: #set ($class = "tab-panel clearfix")
918: #if ($view == "career")
919:   #set ($class = "tab-panel active clearfix")
920: #end
921: 
922: <div class="${class}">
923: 
924: #if ($briefsCategoriesLabels)
925:   #printCategories($briefsCategoriesLabels "career" "Career Stats")
926: #else
927:   <div class="stats-wrap clearfix">#careerData($activePos)</div>
928: #end
929: 
930: </div> ## tab-panel
931: #end
932: ## CAREER
933: 
934: ## SPLITS
935: #set ($class = "tab-panel clearfix")
936: #if ($view == "splits")
937: 	#set ($class = "tab-panel active clearfix")
938: #end
939: 
940: #set ($activePos = $statPos)
941: #if ($view == "splits" && $paramPos.length() > 0)
942:   #if ($positions.get($paramPos).length() > 0)
943:     #set ($activePos = $positions.get($paramPos))
944:   #end
945: #end
946: 
947: <div class="${class}">
948: 
949: #if ($briefsCategoriesLabels)
950:   #printCategories($briefsCategoriesLabels "splits" "Splits Stats")
951: #else
952:   <div class="stats-wrap clearfix">#splitsData($pos)</div>
953: #end
954: 
955: </div> ## tab-panel
956: ## SPLITS
957: 
958: #end
959: ## STATS
960: 
961: ## HTML STATS
962: #if ($hasHTMLStats)
963: 
964: #set ($class = "tab-panel clearfix")
965: #if ($view == "htmlstats")
966:   #set ($class = "tab-panel active clearfix")
967: #end
968: <div class="${class}">
969:   <a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a>
970: </div>
971: 
972: #end
973: ## HTML STATS
974: 
975: ## NEWS
976: #if ($releases.size() > 0)
977: #set ($class = "tab-panel clearfix")
978: #if ($view == "news")
979:   #set ($class = "tab-panel active clearfix")
980: #end
981: <div class="${class}">
982: 	#printGrid($releases, "article")
983: </div> ## tab-content
984: #end
985: ## NEWS
986: 
987: ## PHOTOS
988: #if ($playerPhotos.size() > 0)
989: #set ($class = "tab-panel clearfix")
990: #if ($view == "photos")
991:   #set ($class = "tab-panel active clearfix")
992: #end
993: <div class="${class}">
994:     $website.includeAgain("${page.url}?tmpl=bio-photos-template")
995: </div> ## tab-content
996: #end
997: ## PHOTOS
998: 
999: ## VIDEOS
1000: #if ($playerVideos.size() > 0)
1001:   #set ($class = "tab-panel clearfix")
1002:   #if ($view == "videos")
1003:     #set ($class = "tab-panel active clearfix")
1004:   #end
1005: <div class="${class}">
1006: 	#printGrid($playerVideos, "video")
1007: </div> ## tab-content
1008: #end
1009: ## VIDEOS
1010: 
1011: </div> ## tab-panels
1012: </div> ## tab-container
1013: </div> ## body
1014: #end
1015: 
1016: $wiki
1017: </div> ## ends bio-wrap
1018: 
1019: ## GLOBAL ADS SERVER
1020: #if ($website.ads.isAdvertisingEnabled('BIOS'))
1021:         $website.includeAgain("global-adserver-slots?adSlot=bios")
1022: #end