CCSU
 
3 Kaley Watras
3 Kaley Watras
Height: 5-9
Year: So.
Hometown: Glastonbury, CT
High School: Glastonbury
Position: GUARD
gp 30
pts/g 9.1
fg % 40.8
3pt % 33.8
ft % 74.0
reb/g 3.5
a/g 2.6

2011-12: Appeared in all 29 games for the Blue Devils, making 15 starts...Averaged 24 minutes, 6.3 points and 3.4 rebounds per game...Scored a career-high 19 points at St. Francis (PA) on Feb. 20...Recorded a career-high nine rebounds against Wagner on Feb. 25...Totaled 182 points, 98 rebounds, 63 assists and 38 steals for the season.

Before Central: Played basketball for four seasons at Glastonbury High School…Was selected as a Central Connecticut North All-Conference Player in 2009…Served as her team’s captain as a junior and a senior…Her AAU team, the Connecticut Storm won the under-16 State Championship in 2010…Was a Central Connecticut Conference All-Academic Team selection for four years.

Recent Games
Feb 20 LIU Brooklyn W, 63-54
Feb 23 at Bryant W, 76-66
Feb 25 at Sacred Heart L, 61-39
Mar 2 Robert Morris W, 69-60
Mar 4 St. Francis University W, 76-71
Mar 10 at St. Francis University L, 66-63
Statistics category Overall Conf
Games 30 18
Games started 25 17
Minutes 875 564
Minutes per game 29.2 31.3
FG 89-218 61-137
FG Pct 40.8 44.5
3PT 22-65 17-51
3PT Pct 33.8 33.3
FT 74-100 51-68
FT Pct 74.0 75.0
Off rebounds 32 19
Def rebounds 72 44
Total rebounds 104 63
Rebounds per game 3.5 3.5
Personal fouls 68 42
Disqualifications 0 0
Assists 78 52
Turnovers 123 82
Assist to turnover ratio 0.6 0.6
Steals 37 26
Blocks 8 7
Points 274 190
Points per game 9.1 10.6
Points per 40 min 12.5 13.5
Date Opponent Score gs min fg pct 3pt pct ft pct pts
Nov 9 at Rhode Island W, 57-49 1 38 3-8 37.5 1-2 50.0 1-4 25.0 8
Nov 13 Massachusetts W, 78-69 1 29 6-12 50.0 1-2 50.0 5-5 100.0 18
Nov 16 Hartford L, 76-62 1 21 1-4 25.0 0-1 0.0 2-2 100.0 4
Nov 24 at Texas L, 94-58 - 31 2-9 22.2 0-2 0.0 0-0 - 4
Nov 28 at Holy Cross L, 57-56 - 9 0-2 0.0 0-1 0.0 0-0 - 0
Dec 5 Vermont W, 67-41 - 23 3-10 30.0 0-0 - 2-2 100.0 8
Dec 9 at New Hampshire W, 43-32 1 28 2-6 33.3 0-0 - 0-0 - 4
Dec 19 La Salle L, 70-46 1 30 3-12 25.0 0-0 - 5-6 83.3 11
Dec 21 Rider W, 62-61 - 19 4-6 66.7 0-0 - 1-2 50.0 9
Dec 28 at Miami (Fla.) L, 64-43 1 22 0-2 0.0 0-1 0.0 2-5 40.0 2
Dec 29 vs. Delaware St. W, 76-54 1 35 2-3 66.7 1-1 100.0 3-4 75.0 8
Jan 5 at Robert Morris L, 65-48 1 34 2-6 33.3 0-1 0.0 1-2 50.0 5
Jan 7 at St. Francis University L, 67-62 1 33 3-11 27.3 1-4 25.0 5-6 83.3 12
Jan 12 Bryant W, 59-50 1 33 4-12 33.3 1-6 16.7 3-5 60.0 12
Jan 14 Sacred Heart W, 62-57 1 43 4-6 66.7 1-2 50.0 0-0 - 9
Jan 19 Wagner W, 82-53 1 29 2-6 33.3 0-3 0.0 3-3 100.0 7
Jan 21 Mount St. Mary's W, 77-73 1 41 6-8 75.0 1-1 100.0 2-4 50.0 15
Jan 26 St. Francis Brooklyn W, 55-29 1 31 1-3 33.3 0-0 - 1-2 50.0 3
Jan 28 at Quinnipiac L, 82-73 1 26 3-12 25.0 2-6 33.3 0-0 - 8
Feb 2 at Fairleigh Dickinson L, 55-53 1 35 2-7 28.6 0-3 0.0 1-2 50.0 5
Feb 4 at Monmouth L, 69-63 1 25 2-8 25.0 0-4 0.0 2-2 100.0 6
Feb 13 Quinnipiac L, 63-53 1 17 2-4 50.0 0-1 0.0 1-1 100.0 5
Feb 16 at Mount St. Mary's L, 50-48 1 22 2-4 50.0 0-0 - 0-1 0.0 4
Feb 18 at Wagner W, 65-54 1 36 4-9 44.4 1-3 33.3 7-8 87.5 16
Feb 20 LIU Brooklyn W, 63-54 1 32 6-11 54.5 4-7 57.1 0-0 - 16
Feb 23 at Bryant W, 76-66 1 27 6-6 100.0 2-2 100.0 12-14 85.7 26
Feb 25 at Sacred Heart L, 61-39 1 34 4-7 57.1 1-1 100.0 1-4 25.0 10
Mar 2 Robert Morris W, 69-60 1 40 3-8 37.5 2-4 50.0 2-2 100.0 10
Mar 4 St. Francis University W, 76-71 - 26 5-9 55.6 1-3 33.3 10-12 83.3 21
Mar 10 at St. Francis University L, 66-63 1 26 2-7 28.6 2-4 50.0 2-2 100.0 8
Date Opponent Score gs min off def reb ast to a/to stl blk pf dq
Nov 9 at Rhode Island W, 57-49 1 38 3 5 8 1 5 0.2 1 0 4 0
Nov 13 Massachusetts W, 78-69 1 29 3 1 4 3 3 1.0 3 0 3 0
Nov 16 Hartford L, 76-62 1 21 0 0 0 1 2 0.5 0 1 2 0
Nov 24 at Texas L, 94-58 - 31 2 1 3 2 3 0.7 1 0 2 0
Nov 28 at Holy Cross L, 57-56 - 9 0 3 3 2 2 1.0 0 0 1 0
Dec 5 Vermont W, 67-41 - 23 1 1 2 3 3 1.0 2 0 3 0
Dec 9 at New Hampshire W, 43-32 1 28 0 2 2 2 3 0.7 1 0 0 0
Dec 19 La Salle L, 70-46 1 30 2 5 7 2 2 1.0 2 0 1 0
Dec 21 Rider W, 62-61 - 19 0 0 0 0 0 - 0 0 2 0
Dec 28 at Miami (Fla.) L, 64-43 1 22 0 3 3 1 9 0.1 1 0 3 0
Dec 29 vs. Delaware St. W, 76-54 1 35 2 4 6 6 5 1.2 0 0 1 0
Jan 5 at Robert Morris L, 65-48 1 34 2 4 6 1 7 0.1 3 0 1 0
Jan 7 at St. Francis University L, 67-62 1 33 1 2 3 2 4 0.5 3 0 2 0
Jan 12 Bryant W, 59-50 1 33 1 2 3 1 2 0.5 2 0 2 0
Jan 14 Sacred Heart W, 62-57 1 43 1 2 3 4 8 0.5 1 1 1 0
Jan 19 Wagner W, 82-53 1 29 1 2 3 5 2 2.5 2 0 2 0
Jan 21 Mount St. Mary's W, 77-73 1 41 2 7 9 7 5 1.4 2 1 2 0
Jan 26 St. Francis Brooklyn W, 55-29 1 31 1 2 3 5 3 1.7 2 0 0 0
Jan 28 at Quinnipiac L, 82-73 1 26 2 0 2 2 4 0.5 0 0 2 0
Feb 2 at Fairleigh Dickinson L, 55-53 1 35 1 2 3 2 3 0.7 0 1 1 0
Feb 4 at Monmouth L, 69-63 1 25 0 5 5 1 2 0.5 1 2 5 0
Feb 13 Quinnipiac L, 63-53 1 17 1 0 1 1 5 0.2 0 0 4 0
Feb 16 at Mount St. Mary's L, 50-48 1 22 0 0 0 2 4 0.5 0 0 0 0
Feb 18 at Wagner W, 65-54 1 36 1 1 2 3 3 1.0 3 1 2 0
Feb 20 LIU Brooklyn W, 63-54 1 32 0 4 4 2 5 0.4 1 0 3 0
Feb 23 at Bryant W, 76-66 1 27 0 4 4 4 9 0.4 1 0 5 0
Feb 25 at Sacred Heart L, 61-39 1 34 4 3 7 2 10 0.2 2 0 4 0
Mar 2 Robert Morris W, 69-60 1 40 0 1 1 5 1 5.0 3 0 3 0
Mar 4 St. Francis University W, 76-71 - 26 1 3 4 3 5 0.6 0 1 3 0
Mar 10 at St. Francis University L, 66-63 1 26 0 3 3 3 4 0.8 0 0 4 0
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
2011-12 29 15 24.0 1.8-5.1 34.9 0.1-0.6 16.7 2.6-3.3 77.3 6.3
2012-13 30 25 29.2 3.0-7.3 40.8 0.7-2.2 33.8 2.5-3.3 74.0 9.1
2013-14 28 26 26.8 3.0-7.6 39.3 1.1-3.0 35.7 1.4-1.8 80.0 8.5
2014-15 32 3 23.9 2.5-5.5 46.0 0.8-2.5 32.5 1.4-1.8 74.6 7.3
Total 119 69 25.9 2.6-6.4 40.4 0.7-2.1 32.8 2.0-2.6 76.1 7.8
  gp gs min fg pct 3pt pct ft pct pts
2011-12 29 15 696 52-149 34.9 3-18 16.7 75-97 77.3 182
2012-13 30 25 875 89-218 40.8 22-65 33.8 74-100 74.0 274
2013-14 28 26 750 84-214 39.3 30-84 35.7 40-50 80.0 238
2014-15 32 3 766 81-176 46.0 26-80 32.5 44-59 74.6 232
Total 119 69 3087 306-757 40.4 81-247 32.8 233-306 76.1 926
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
2011-12 29 15 24.0 3.0-8.6 34.9 0.2-1.0 16.7 4.3-5.6 77.3 10.5
2012-13 30 25 29.2 4.1-10.0 40.8 1.0-3.0 33.8 3.4-4.6 74.0 12.5
2013-14 28 26 26.8 4.5-11.4 39.3 1.6-4.5 35.7 2.1-2.7 80.0 12.7
2014-15 32 3 23.9 4.2-9.2 46.0 1.4-4.2 32.5 2.3-3.1 74.6 12.1
Total 119 69 25.9 4.0-9.8 40.4 1.0-3.2 32.8 3.0-4.0 76.1 12.0
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
2011-12 29 15 24.0 1.0 2.4 3.4 2.3 0.1 2.2 3.9 0.6 1.3 0.2
2012-13 30 25 29.2 1.1 2.4 3.5 2.3 0.0 2.6 4.1 0.6 1.2 0.3
2013-14 28 26 26.8 0.5 1.0 1.5 2.3 0.1 2.3 1.9 1.2 1.3 0.1
2014-15 32 3 23.9 0.6 2.0 2.6 2.1 0.0 3.0 2.7 1.1 1.1 0.2
Total 119 69 25.9 0.8 2.0 2.8 2.2 0.0 2.5 3.1 0.8 1.2 0.2
  gp gs min off def reb pf dq ast to a/to stl blk
2011-12 29 15 696 29 69 98 67 2 63 112 0.6 38 6
2012-13 30 25 875 32 72 104 68 0 78 123 0.6 37 8
2013-14 28 26 750 15 28 43 64 2 63 53 1.2 35 4
2014-15 32 3 766 19 64 83 66 1 97 86 1.1 34 5
Total 119 69 3087 95 233 328 265 5 301 374 0.8 144 23
  gp gs mpg off/40 def/40 reb/40 pf/40 dq/40 ast/40 to/40 a/to stl/40 blk/40
2011-12 29 15 24.0 1.7 4.0 5.6 3.9 0.1 3.6 6.4 0.6 2.2 0.3
2012-13 30 25 29.2 1.5 3.3 4.8 3.1 0.0 3.6 5.6 0.6 1.7 0.4
2013-14 28 26 26.8 0.8 1.5 2.3 3.4 0.1 3.4 2.8 1.2 1.9 0.2
2014-15 32 3 23.9 1.0 3.3 4.3 3.4 0.1 5.1 4.5 1.1 1.8 0.3
Total 119 69 25.9 1.2 3.0 4.3 3.4 0.1 3.9 4.8 0.8 1.9 0.3
  gp gs min/g fg/g pct 3pt/g pct ft/g pct ppg
Total 30 25 29.2 3.0-7.3 40.8 0.7-2.2 33.8 2.5-3.3 74.0 9.1
Conference 18 17 31.3 3.4-7.6 44.5 0.9-2.8 33.3 2.8-3.8 75.0 10.6
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Home 14 11 29.6 3.6-7.9 45.0 0.8-2.1 36.7 2.6-3.3 80.4 10.6
Away 15 13 28.4 2.5-6.9 35.6 0.7-2.3 29.4 2.3-3.3 68.0 7.9
Neutral 1 1 35.0 2.0-3.0 66.7 1.0-1.0 100.0 3.0-4.0 75.0 8.0
-
Wins 16 13 31.9 3.8-7.7 49.6 1.0-2.2 44.4 3.2-4.2 77.6 11.9
Losses 14 12 26.1 2.0-6.8 29.5 0.4-2.1 20.7 1.6-2.4 66.7 6.0
-
November 5 3 25.6 2.4-7.0 34.3 0.4-1.6 25.0 1.6-2.2 72.7 6.8
December 6 4 26.2 2.3-6.5 35.9 0.2-0.3 50.0 2.2-3.2 68.4 7.0
January 8 8 33.8 3.1-8.0 39.1 0.8-2.9 26.1 1.9-2.8 68.2 8.9
February 8 8 28.5 3.5-7.0 50.0 1.0-2.6 38.1 3.0-4.0 75.0 11.0
March 3 2 30.7 3.3-8.0 41.7 1.7-3.7 45.5 4.7-5.3 87.5 13.0
  gp gs min fg pct 3pt pct ft pct pts
Total 30 25 875 89-218 40.8 22-65 33.8 74-100 74.0 274
Conference 18 17 564 61-137 44.5 17-51 33.3 51-68 75.0 190
Exhibition - - - 0-0 - 0-0 - 0-0 - 0
-
Home 14 11 414 50-111 45.0 11-30 36.7 37-46 80.4 148
Away 15 13 426 37-104 35.6 10-34 29.4 34-50 68.0 118
Neutral 1 1 35 2-3 66.7 1-1 100.0 3-4 75.0 8
-
Wins 16 13 510 61-123 49.6 16-36 44.4 52-67 77.6 190
Losses 14 12 365 28-95 29.5 6-29 20.7 22-33 66.7 84
-
November 5 3 128 12-35 34.3 2-8 25.0 8-11 72.7 34
December 6 4 157 14-39 35.9 1-2 50.0 13-19 68.4 42
January 8 8 270 25-64 39.1 6-23 26.1 15-22 68.2 71
February 8 8 228 28-56 50.0 8-21 38.1 24-32 75.0 88
March 3 2 92 10-24 41.7 5-11 45.5 14-16 87.5 39
  gp gs min/g fg/40 pct 3pt/40 pct ft/40 pct pts/40
Total 30 25 29.2 4.1-10.0 40.8 1.0-3.0 33.8 3.4-4.6 74.0 12.5
Conference 18 17 31.3 4.3-9.7 44.5 1.2-3.6 33.3 3.6-4.8 75.0 13.5
Exhibition - - - 0.0-0.0 - 0.0-0.0 - 0.0-0.0 - -
-
Home 14 11 29.6 4.8-10.7 45.0 1.1-2.9 36.7 3.6-4.4 80.4 14.3
Away 15 13 28.4 3.5-9.8 35.6 0.9-3.2 29.4 3.2-4.7 68.0 11.1
Neutral 1 1 35.0 2.3-3.4 66.7 1.1-1.1 100.0 3.4-4.6 75.0 9.1
-
Wins 16 13 31.9 4.8-9.6 49.6 1.3-2.8 44.4 4.1-5.3 77.6 14.9
Losses 14 12 26.1 3.1-10.4 29.5 0.7-3.2 20.7 2.4-3.6 66.7 9.2
-
November 5 3 25.6 3.8-10.9 34.3 0.6-2.5 25.0 2.5-3.4 72.7 10.6
December 6 4 26.2 3.6-9.9 35.9 0.3-0.5 50.0 3.3-4.8 68.4 10.7
January 8 8 33.8 3.7-9.5 39.1 0.9-3.4 26.1 2.2-3.3 68.2 10.5
February 8 8 28.5 4.9-9.8 50.0 1.4-3.7 38.1 4.2-5.6 75.0 15.4
March 3 2 30.7 4.3-10.4 41.7 2.2-4.8 45.5 6.1-7.0 87.5 17.0
  gp gs mpg off/g def/g reb/g pf/g dq/g ast/g to/g a/to stl/g blk/g
Total 30 25 29.2 1.1 2.4 3.5 2.3 0.0 2.6 4.1 0.6 1.2 0.3
Conference 18 17 31.3 1.1 2.4 3.5 2.3 0.0 2.9 4.6 0.6 1.4 0.4
Exhibition - - - - - - - - - - - - -
-
Home 14 11 29.6 1.0 2.1 3.1 2.2 0.0 3.0 3.3 0.9 1.4 0.3
Away 15 13 28.4 1.1 2.5 3.6 2.4 0.0 2.0 4.8 0.4 1.1 0.3
Neutral 1 1 35.0 2.0 4.0 6.0 1.0 0.0 6.0 5.0 1.2 0.0 0.0
-
Wins 16 13 31.9 1.1 2.6 3.6 2.3 0.0 3.4 3.9 0.9 1.5 0.3
Losses 14 12 26.1 1.1 2.2 3.3 2.3 0.0 1.7 4.4 0.4 0.9 0.3
-
November 5 3 25.6 1.6 2.0 3.6 2.4 0.0 1.8 3.0 0.6 1.0 0.2
December 6 4 26.2 0.8 2.5 3.3 1.7 0.0 2.3 3.7 0.6 1.0 0.0
January 8 8 33.8 1.4 2.6 4.0 1.5 0.0 3.4 4.4 0.8 1.9 0.3
February 8 8 28.5 0.9 2.4 3.3 3.0 0.0 2.1 5.1 0.4 1.0 0.5
March 3 2 30.7 0.3 2.3 2.7 3.3 0.0 3.7 3.3 1.1 1.0 0.3
  gp gs min off def reb pf dq ast to a/to stl blk
Total 30 25 875 32 72 104 68 0 78 123 0.6 37 8
Conference 18 17 564 19 44 63 42 0 52 82 0.6 26 7
Exhibition - - - - - - - - - - - - -
-
Home 14 11 414 14 30 44 31 0 42 46 0.9 20 4
Away 15 13 426 16 38 54 36 0 30 72 0.4 17 4
Neutral 1 1 35 2 4 6 1 0 6 5 1.2 0 0
-
Wins 16 13 510 17 41 58 36 0 54 62 0.9 24 4
Losses 14 12 365 15 31 46 32 0 24 61 0.4 13 4
-
November 5 3 128 8 10 18 12 0 9 15 0.6 5 1
December 6 4 157 5 15 20 10 0 14 22 0.6 6 0
January 8 8 270 11 21 32 12 0 27 35 0.8 15 2
February 8 8 228 7 19 26 24 0 17 41 0.4 8 4
March 3 2 92 1 7 8 10 0 11 10 1.1 3 1
  gp gs mpg off/40 def/40 reb/40 pf/40 dq/40 ast/40 to/40 a/to stl/40 blk/40
Total 30 25 29.2 1.5 3.3 4.8 3.1 0.0 3.6 5.6 0.6 1.7 0.4
Conference 18 17 31.3 1.3 3.1 4.5 3.0 0.0 3.7 5.8 0.6 1.8 0.5
Exhibition - - - - - - - - - - - - -
-
Home 14 11 29.6 1.4 2.9 4.3 3.0 0.0 4.1 4.4 0.9 1.9 0.4
Away 15 13 28.4 1.5 3.6 5.1 3.4 0.0 2.8 6.8 0.4 1.6 0.4
There was a problem with a Velocity script
Pagebio-template
ErrorVM #split: too few arguments to macro. Wanted 4 got 3 at bio-template[line 222, column 1]
Page source:
1: ## PICK UP OPTIONS
2: $website.include("options")
3: #set ($options = $request.getAttribute("options"))
4: #set ($locale = "en_us")
5: #set ($locale = $options.get("locale"))
6: 
7: ## HACK TO GET STATS URL FROM RENDERER... NEEDS SERVER CHANGE
8: #set ($bioObject = $page.getDataAsObject())
9: #set ($statsURL = $bioObject.statsURL)
10: 
11: #if ($statsURL.length() > 0)
12:   $website.includeAgain("${statsURL}?tmpl=bio-stats-template")
13:   ## various settings to get the variables set
14:   #set ($events = $request.getAttribute("bio_events"))
15:   #set ($seasons = $request.getAttribute("bio_seasons"))
16:   #set ($career = $request.getAttribute("bio_career"))
17:   #set ($labels = $request.getAttribute("bio_labels"))
18:   #set ($briefs = $request.getAttribute("bio_briefs"))
19:   #set ($gamelogs = $request.getAttribute("bio_gamelogs"))
20:   #set ($splits = $request.getAttribute("bio_splits"))
21:   #set ($statPosition = $request.getAttribute("bio_position"))
22:   #set ($positions = $request.getAttribute("bio_positions"))
23:   #set ($playerId = $request.getAttribute("bio_player_id"))
24:   #set ($highlights = $request.getAttribute("bio_highlights"))
25:   #set ($formats = $request.getAttribute("bio_formats"))
26:   #set ($gamelogsCategoriesLabels = $request.getAttribute("bio_gamelogs_labels"))
27:   #set ($briefsCategoriesLabels = $request.getAttribute("bio_briefs_labels"))
28:   #set ($gamesResults = $request.getAttribute("bio_games_results"))
29:   #set ($monthsPlayed = $request.getAttribute("bio_months_played"))
30: #end
31: 
32: #set ($pos = "")
33: #set ($pos = $attributes.get("position"))
34: #set ($pos = $statPosition)
35: #set ($posVec = $pos.split("/"))
36: #set ($pos = $posVec[0])
37: #set ($pos = $pos.toLowerCase())
38: #set ($statPos = $positions.get($pos))
39: #set ($paramPos = $request.getParameter("pos"))
40: 
41: #set ($playerId = $attributes.get("playerId"))
42: #set ($stats = $splits.overall)
43: #set ($highlights = $highlights.get($statPos))
44: 
45: #set ($showHighlights = true)
46: #if ($options.get("bio_show_highlights") && $options.get("bio_show_highlights") == false)
47: 	#set ($showHighlights = false)
48: #end
49: 
50: #set ($showCareer = $wiki.valid() && $seasons)
51: #if ("yes" == $options.get("stats_show_career") && $seasons)
52:   #set ($showCareer = true)
53: #end
54: 
55: #set ($hasEvents = $events.size() > 0)
56: #set ($hasSynopsis = $synopsis.length() > 1 && $synopsis.indexOf("<center>") == -1)
57: #set ($htmlStatsURL = "${page.url}-stats")
58: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
59: #set ($bioBriefURL = "${page.url}-brief")
60: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
61: #set ($showRoster = ($page.contentType == "loki/bio" && $page.headlinesFeatured.size() > 0) || ($page.contentType == "loki/bio-network" && $page.sectionPage.children.size() > 1))
62: #if ($options.get("bio_hide_roster") == true)
63:   #set ($showRoster = false)
64: #end
65: 
66: #set ($view = "")
67: #if ($hasSynopsis || $hasBioBrief)
68:   #set ($view = "bio")
69: #elseif ($statsURL.length() > 0)
70:   #set ($view = "profile")
71: #elseif ($hasHTMLStats)
72:   #set ($view = "htmlstats")
73: #end
74: 
75: #if ($options.get("bio_default_view").length() > 0)
76:   #set ($checkView = $options.get("bio_default_view"))
77: #end
78: 
79: #if ($request.getParameter("view"))
80:   #set ($checkView = $request.getParameter("view"))
81: #end
82: 
83: #if ($checkView == "profile" && $statsURL.length() > 0)
84:   #set ($view = "profile")
85: #elseif ($checkView == "bio" && ($hasSynopsis || $hasBioBrief))
86:   #set ($view = "bio")
87: #elseif ($checkView == "gamelog" && $statsURL.length() > 0)
88:   #set ($view = "gamelog")
89: #elseif ($checkView == "career" && $showCareer)
90:   #set ($view = "career")
91: #elseif ($checkView == "splits" && $statsURL.length() > 0)
92:   #set ($view = "splits")
93: #elseif ($checkView == "htmlstats" && $hasHTMLStats)
94:   #set ($view = "htmlstats")
95: #end
96: 
97: #macro (gamelogData $p)
98: 
99: #set ($p = $positions.get($p))
100: #set ($gamelogs = $gamelogs.get($p))
101: 	
102: #if ($hasEvents)
103: <div class="stats-box full clearfix">
104: <div class="scrollable">
105: <div>
106: <table>
107:   <tr class="thead">
108:     <th class="text">Date</th>
109:     <th class="pinned-col text">Opponent</th>
110:     <th>Score</th>
111:     #foreach ($gamelog in $gamelogs)
112:       <th>$gamelog</th>
113:     #end
114:   </tr>
115: #foreach ($event in $events)
116:   <tr>
117:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
118:     <td class="pinned-col text">
119:       #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
120:       $event.event.opponent.name
121:     </td>
122:     <td>
123:     #if ($event.event.statusCode >= 0)
124:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
125:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
126:       #else
127:       ${event.event.APResult}
128:       #end
129:     #else &nbsp; #end
130:     </td>
131:     #foreach ($gamelog in $gamelogs.keySet())
132:       #set ($value = "-")
133:       #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
134:       <td>$value</td>
135:     #end
136:   </tr>
137: #end
138: </table>
139: </div>
140: </div> ## scrollable
141: </div> ## stats-box
142: #end
143: 
144: #end ## macro gamelogData
145: 
146: #macro (split $statPosBriefs $label $stats)
147:   <tr>
148:     <td class="pinned-col text">${label}</td>
149:     #foreach ($brief in $statPosBriefs.keySet())
150:       #set ($value = "-")
151:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
152:       <td>#if ($value.length() > 0) $value #else - #end</td>
153:     #end
154:   </tr>
155: #end
156: 
157: #macro (careerData $p)
158: #set ($p = $positions.get($p))
159: #set ($statPosBriefs = $briefs.get($p))
160: 
161: <div class="stats-box full clearfix">
162: <div class="scrollable">
163: <div>
164: <table>
165: <tr class="thead">
166:   <th class="pinned-col">&nbsp;</th>
167:   #foreach ($brief in $statPosBriefs)
168:     <th>$brief</th>
169:   #end
170: </tr>
171: 
172: #set ($careerTotals = $request.getAttribute("careerTotals"))
173: #set ($careerMap = $request.getAttribute("careerMap"))
174: 
175: #foreach ($season in $seasons)
176:   ## Check if we did not get stats for this season
177:   #if ($careerMap.get($season.seasonName))
178:     #split($statPosBriefs, $season.seasonName, $careerMap[$season.seasonName])
179:   #elseif ($wiki.valid())
180:     <tr>
181:       <td class="text">${season.seasonName}</td>
182:       <td colspan="${briefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
183:     </tr>
184:   #end
185: #end
186: 
187: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
188: 
189: </table>
190: </div>
191: </div> ## scrollable
192: </div> ## stats-box
193: 
194: #end ## macro careerData
195: 
196: #macro (splitsData $p)
197: 
198: #set ($p = $positions.get($p))
199: #set ($statPosBriefs = $briefs.get($p))
200: #set ($colspan = $tool.math.add($statPosBriefs.size(), 1))	
201: 	
202: #if ($statPosBriefs.size() > 0)
203: <div class="stats-box full clearfix">
204: <div class="scrollable">
205: <div>
206: <table>
207:   <tr>
208:     <th class="pinned-col">&nbsp;</th>
209:     #foreach ($brief in $statPosBriefs)
210:       <th>$brief</th>
211:     #end
212:   </tr>
213: 
214: #split($statPosBriefs, "Total", $splits.overall)
215: #split($statPosBriefs, "Conference", $splits.conference)
216: #split($statPosBriefs, "Exhibition", $splits.exhibition)
217: 
218: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
219: 
220: #split($statPosBriefs, "Home", $splits.home)
221: #split($statPosBriefs, "Away", $splits.away)
222: #split($statPosBriefs, "Neutral", $splits.neutral)
223: 
224: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
225: 
226: #foreach($gameResult in $gamesResults.entrySet())
227:   #if ($gameResult.key == "wins")
228:     #set ($splitGameResult = $splits.inWins)
229:   #elseif ($gameResult.key == "losses")
230:     #set ($splitGameResult = $splits.inLosses)
231:   #elseif ($gameResult.key == "ties")
232:     #set ($splitGameResult = $splits.inTies)
233:   #end
234: 	
235:   #split($statPosBriefs, $gameResult.value, $splitGameResult)
236: #end
237: 
238: <tr class="empty-row"><td colspan="$colspan"><div class="empty-cell">-</div></td></tr>
239: 
240: #if ($monthsPlayed and $monthsPlayed.size() > 0)
241:   #foreach($month in $monthsPlayed)
242:     #if ($month == 'January')
243:       #set ($splitMonth = $splits.january)
244:     #elseif ($month == 'February')
245:       #set ($splitMonth = $splits.february)
246:     #elseif ($month == 'March')
247:       #set($splitMonth = $splits.march)
248:     #elseif ($month == 'April')
249:       #set($splitMonth = $splits.april)
250:     #elseif ($month == 'May')
251:       #set ($splitMonth = $splits.may)
252:     #elseif ($month == 'June')
253:       #set ($splitMonth = $splits.june)
254:     #elseif ($month == 'July')
255:       #set($splitMonth = $splits.july)
256:     #elseif ($month == 'August')
257:       #set ($splitMonth = $splits.august)
258:     #elseif ($month == 'September')
259:       #set($splitMonth = $splits.september)
260:     #elseif ($month == 'October')
261:       #set($splitMonth = $splits.october)
262:     #elseif ($month == 'November')
263:       #set ($splitMonth = $splits.november)
264:     #elseif ($month == 'December')
265:       #set($splitMonth = $splits.december)
266:     #end
267: 		
268:     #split($statPosBriefs, $month, $splitMonth)
269:   #end ## foreach
270: #end
271: </table>
272: </div>
273: </div> ## scrollable
274: </div> ## srollable-table
275: #end
276: 
277: #end ## macro splitsData
278: 
279: #macro (printRecentGames)
280: #if ($hasEvents)
281: <table>
282:   <tr class="thead"><th colspan="3">Recent Games</th></tr>
283:   
284: #set ($eventEnd = -1)
285: #foreach ($event in $events)
286:   #if ($event.event.result.resolved)
287:     #set ($eventEnd = $velocityCount)
288:   #end
289: #end
290: 
291: #set ($eventStart = $eventEnd - 5)
292: #if ($eventStart < 0) #set ($eventStart = 0) #end
293: 
294: #foreach ($event in $events)
295: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
296:   <tr>
297:     <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
298:     <td class="text">
299:       #if ($event.event.neutralSite.length() > 0) vs.
300:       #elseif (!$event.event.home) at
301:       #else ## nothing for a home game
302:       #end
303:       $event.event.opponent.name
304:     </td>
305:     <td class="text">
306:     #if ($event.event.statusCode >= 0)
307:       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
308:       <a href="../boxscores/${formatter.formatDate($event.event.date, "yyyyMMdd")}_${event.event.eventId.substring(0, 4)}.xml">${event.event.APResult}</a>
309:       #else
310:       ${event.event.APResult}
311:       #end
312: 	#end
313: 	</td>
314:   </tr>
315: #end ## if
316: #end
317: </table>
318: #end
319: #end ## macro printRecentGames
320: 
321: #macro (printCategories $briefCategoryLabels $v)
322: 	
323: <div class="tab-container secondary clearfix">
324: <div class="tab-nav" data-jscroll="true" data-momentum="false">
325: <div>
326: <ul class="clearfix">
327: #foreach($briefCat in $briefCategoryLabels.entrySet())
328:   #set ($briefCatLabel = $briefCat.value)
329:   #set ($briefCatKey = $briefCat.key)
330: 		
331:   #if ($locale == "en_gb" && $briefCatLabel == "Defense")
332:     #set ($briefCatLabel = "Defence")
333:   #end	
334: 	
335:   <li #if ($activePos == $briefCatKey) class="active" #end><a href="${page.url}?view=${v}&pos=${briefCatKey}">$briefCatLabel</a></li>
336: #end
337: </ul>
338: </div>
339: </div>
340: <div class="tab-panels">
341: #foreach ($briefCat in $briefCategoryLabels.entrySet())
342:   #set ($class = "tab-panel clearfix")
343:   #if ($briefCat.key == $activePos)
344:     #set ($class = "tab-panel active clearfix")
345:   #end
346:   <div class="$class">
347:     <div class="stats-wrap clearfix">
348:     #if ($v == "splits")
349:       #splitsData($briefCat.key)
350:     #elseif ($v == "career")
351:       #careerData($briefCat.key)
352:     #end
353:     </div>
354:   </div>
355: #end	
356: </div>
357: </div> ## tab-container
358: 
359: #end ## macro printCategories
360: 	
361: #macro (printHeadshot)
362: 
363: #if ($attributes.get("number"))<span class="number">$!attributes.get("number")</span>#end
364: 
365: #if ($headshot.url)
366:   <img src="$headshot.url?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
367: #else
368:   #if ($website.exists("/images/setup/headshot_default.jpg"))
369:     <img src="/images/setup/headshot_default.jpg?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
370:   #else
371:     <img src="/info/images/default_headshot.jpg?max_width=160&max_height=210" alt="$fullName" title="$fullName" />
372:   #end
373: #end
374: #end ## macro printHeadshot
375: 	
376: #macro (printBioInfo)
377: <div class="player-name">
378:   #if ($attributes.get("number"))<span class="number">$!attributes.get("number")</span>#end
379:   <span class="name">$fullName</span>
380: </div>	
381: 	
382: <table>
383: #foreach ($i in [1..10])
384:   #set ($stickyKey = "bio_custom${i}_sticky")
385:   #if ($options.get($stickyKey).length() > 0 && $attributes.get("custom${i}").length() > 0)
386:     <tr>
387:       <td class="label">$options.get($stickyKey): </td>
388:       <td class="value">$!attributes.get("custom${i}")</td>
389:     </tr>
390:   #end
391: #end
392: 
393: #foreach ($field in $fields)
394:   #if (!$field.key.startsWith("custom"))
395:     #if ($attributes.get($field.key).length() > 0 && ($field.key != "first_name" && $field.key != "last_name" && $field.key != "number" && $field.key != "full_name"))
396:       #if ($field.key == "phone1" || $field.key == "phone2")
397:         <tr>
398:           <td class="label">Phone: </td>
399:           <td class="value">$!attributes.get($field.key)</td>
400:         </tr>
401:       #elseif ($field.key == "email_address")
402:         #set ($emailAdd = $attributes.get($field.key))
403:         <tr>
404:           <td class="label">Email: </td>
405:           <td class="value"><a href="mailto:${emailAdd}">$emailAdd</a></td>
406:         </tr>
407:       #else
408:         <tr>
409:           <td class="label">$field.value: </td>
410:           <td class="value">$!attributes.get($field.key)</td>
411:         </tr>
412:       #end
413:     #end
414:   #end
415: #end
416: 
417: #foreach ($i in [1..10])
418:   #set ($customKey = "bio_custom${i}")
419:   #if ($options.get($customKey).length() > 0 && $attributes.get("custom${i}"))
420:     <tr>
421:       <td class="label">$options.get($customKey): </td>
422:       <td class="value">$!attributes.get("custom${i}")</td>
423:     </tr>
424:   #end
425: #end
426: </table>
427: #end ## macro printBioInfo
428: 	
429: #macro (printHighlights)
430: #foreach ($highlight in $highlights.keySet())
431:   #set ($value = "-")
432:   #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
433:   <div class="stat clearfix">
434:     <span class="stat-title">$!highlights.get($highlight)</span>
435:     <span class="stat-value">$value</span>
436:   </div>
437: #end
438: #end ## macro printHighlights
439: 	
440: #macro (printRoster)
441: #if ($page.contentType == "loki/bio")
442:   #set ($headlinesFeaturedSize = 0)
443:   #foreach ($featuredPage in $page.headlinesFeatured)
444:     #if ($featuredPage.contentType == "loki/headlines")
445:       #set ($headlinesFeaturedSize = $headlinesFeaturedSize + 1)
446:     #end
447:   #end
448:   #if ($headlinesFeaturedSize > 0)
449:     <select class="roster-select-list">
450:       <option selected="selected">Related Bios</option>
451:       #foreach ($featuredPage in $page.headlinesFeatured)
452:         #if ($featuredPage.contentType == "loki/headlines")
453:           $website.includeAgain("${featuredPage.url}?tmpl=roster-list-template&current_url=${page.url}")
454: 		#end
455: 	  #end
456:     </select>
457:   #end
458: #elseif ($page.contentType == "loki/bio-network")
459:   #set ($relatedPlayers = $page.sectionPage.children)
460:   #set ($teamNames = {})
461:   #foreach ($relatedPlayer in $relatedPlayers)
462:     #if ($relatedPlayer.contentType == "loki/bio-network")
463:       #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
464:       #set ($teamName = $relatedPlayerObj.get("team"))
465:       #if ($teamName.length() > 0)
466:         #if (!$teamNames.containsValue($teamName))
467:           $!teamNames.put($tool.math.add($teamNames.size(), 1), $teamName)
468:         #end
469:       #end
470:     #end
471:   #end
472: 
473:   <select class="roster-select-list">
474:   #foreach ($i in [1..$teamNames.size()])
475:     #if ($teamNames.size() > 1)
476:       <optgroup label="$teamNames.get($i)">
477:     #end
478: 				
479:     #foreach ($relatedPlayer in $relatedPlayers)
480:       #if ($relatedPlayer.contentType == "loki/bio-network")
481:         #set ($relatedPlayerObj = $relatedPlayer.getDataAsObject().getAttributes())
482:         #set ($teamName = $relatedPlayerObj.get("team"))
483:         #if ($teamName.length() > 0 && $teamName == $teamNames.get($i))
484:           #set ($playerFirstName = $relatedPlayerObj.get("first_name"))
485:           #set ($playerLastName = $relatedPlayerObj.get("last_name"))
486:           #if ($page.url == $relatedPlayer.url)
487:             <option value="$relatedPlayer.url" selected="selected">${playerFirstName} ${playerLastName}</option>
488:           #else
489:             <option value="$relatedPlayer.url">${playerFirstName} ${playerLastName}</option>
490:           #end
491:         #end
492:       #end
493:     #end
494: 				
495:     #if ($teamNames.size() > 1)
496:       </optgroup>
497:     #end
498:   #end
499:   </select>
500: #end
501: #end ## macro printRoster
502: 	
503: ################################################## END MACROS  #############################################################
504: 
505: #if ($attributes.get("full_name").length() > 0)
506:   #set ($fullName = $attributes.get("full_name"))
507: #else
508:   #set ($firstName = $!attributes.get("first_name"))
509:   #set ($lastName = $!attributes.get("last_name"))
510:   #set ($fullName = "${firstName} ${lastName}")
511: #end
512: 
513: ## FULL ROSTER
514: <div class="bio-wrap clearfix">
515: 	
516: ## RELATED BIOS
517: #if ($showRoster)
518:   <div class="related-bios clearfix">#printRoster</div>
519: #end
520:   
521: <div class="head clearfix">
522: <div class="clearfix">
523:     
524: <div class="player-about clearfix">
525:   <div class="player-headshot">#printHeadshot</div>
526:   <div class="player-info">#printBioInfo</div>
527: </div>
528: 
529: #if ($highlights && $showHighlights)
530:   <div class="player-highlights clearfix">#printHighlights</div>
531: #end
532: 
533: </div>
534: </div> ## head
535: 
536: #if ($view.length() > 0)
537: <div class="body clearfix">
538:   
539: <div class="tab-container primary clearfix">
540:   
541: <div class="tab-nav" data-jscroll="true" data-momentum="false">
542:   <div>
543:   <ul class="clearfix">
544:   #if ($hasSynopsis || $hasBioBrief)
545:     <li #if ($view == "bio") class="active" #end><a href="${page.url}?view=bio">Bio</a></li>
546:   #end
547: 		
548:   #if ($statsURL.length() > 0)
549:     <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile">Player Profile</a></li>
550:     <li #if ($view == "gamelog") class="active" #end><a href="${page.url}?view=gamelog">Game Log</a></li>
551:     #if ($showCareer)
552:       <li #if ($view == "career") class="active" #end><a href="${page.url}?view=career">Career Stats</a></li>
553:     #end
554:     <li #if ($view == "splits") class="active" #end><a href="${page.url}?view=splits">Split Stats</a></li>
555:   #end
556: 
557:   #if ($hasHTMLStats)
558:     <li #if ($view == "htmlstats") class="active" #end><a href="${page.url}?view=htmlstats">HTML Stats</a></li>
559:   #end
560:   </ul>
561:   </div>
562: </div> ## tab-nav
563: 
564: <div class="tab-panels clearfix">
565: 	
566: ## BIO
567: #if ($hasSynopsis || $hasBioBrief)
568: 
569: #set ($class = "tab-panel clearfix")
570: #if ($view == "bio")
571:   #set ($class = "tab-panel active clearfix")
572: #end
573: <div class="${class}">
574: 
575: <div class="synopsis clearfix">
576: #if ($hasSynopsis)
577:   $synopsis
578: #elseif ($hasBioBrief)
579:   $website.include("$bioBriefURL")
580: #end
581: </div>
582: 
583: </div> ## tab-panel
584: #end 
585: ## BIO
586: 
587: ## STATS
588: #if ($statsURL.length() > 0)
589: 
590: ## PROFILE
591: #set ($class = "tab-panel clearfix")
592: #if ($view == "profile")
593:   #set ($class = "tab-panel active clearfix")
594: #end
595: <div class="${class}">
596: <div class="stats-wrap clearfix">
597: 
598: ## LAST SIX GAMES
599: <div class="stats-box half">
600: #printRecentGames()
601: </div>
602: 
603: ## RANKING
604: <div class="stats-box half">
605: #if ($statPos.length() > 0)
606:   $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
607: #end
608: </div>
609: 
610: </div> ## stats-wrap	
611: </div> ## tab-content
612: ## PROFILE
613: 
614: ## GAMELOG
615: #set ($class = "tab-panel clearfix")
616: #if ($view == "gamelog")
617:   #set ($class = "tab-panel active clearfix")
618: #end
619: 
620: #set ($activePos = $statPos)
621: #if ($view == "gamelog" && $paramPos.length() > 0)
622:   #if ($positions.get($paramPos).length() > 0)
623:     #set ($activePos = $positions.get($paramPos))
624:   #end
625: #end
626: 
627: <div class="${class}">
628: 
629: #if ($gamelogsCategoriesLabels)
630: <div class="tab-container secondary clearfix">
631:   <div class="tab-nav" data-jscroll="true" data-momentum="false">
632:     <div>
633:     <ul class="clearfix">
634:     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
635:       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
636: 		
637:       #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
638:         #set($gamelogsCatLabelVal = "Defence")
639:       #end
640: 
641:       <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end><a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}">$gamelogsCatLabelVal</a></li>
642:     #end
643:     </ul>
644: 	</div>
645:   </div>
646:   <div class="tab-panels">
647:   #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
648:     #set ($class = "tab-panel clearfix")
649:     #if ($gamelogsCatLabel.key == $activePos)
650:       #set ($class = "tab-panel active clearfix")
651:     #end
652:     <div class="${class}">
653:       <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
654: 	</div>
655:   #end   
656:   </div>
657: </div>	
658: #else
659:   <div class="stats-wrap clearfix">#gamelogData($pos)</div>
660: #end
661: 	
662: </div> ## tab-panel
663: ## GAMELOG
664: 
665: 
666: ## CAREER
667: #if ($showCareer)
668: 
669: #set ($activePos = $statPos)
670: #if ($view == "career" && $paramPos.length() > 0)
671:   #if ($positions.get($paramPos).length() > 0)
672:     #set ($activePos = $positions.get($paramPos))
673:   #end
674: #end
675: 
676: #set ($class = "tab-panel clearfix")
677: #if ($view == "career")
678:   #set ($class = "tab-panel active clearfix")
679: #end
680: 
681: <div class="${class}">
682: 
683: #if ($briefsCategoriesLabels)
684:   #printCategories($briefsCategoriesLabels "career")
685: #else
686:   <div class="stats-wrap clearfix">#careerData($activePos)</div>
687: #end		
688: 
689: </div> ## tab-panel
690: #end
691: ## CAREER
692: 
693: ## SPLITS
694: #set ($class = "tab-panel clearfix")
695: #if ($view == "splits")
696: 	#set ($class = "tab-panel active clearfix")
697: #end
698: 
699: #set ($activePos = $statPos)
700: #if ($view == "splits" && $paramPos.length() > 0)
701:   #if ($positions.get($paramPos).length() > 0)
702:     #set ($activePos = $positions.get($paramPos))
703:   #end
704: #end
705: 
706: <div class="${class}">
707: 
708: #if ($briefsCategoriesLabels)
709:   #printCategories($briefsCategoriesLabels "splits")
710: #else
711:   <div class="stats-wrap clearfix">#splitsData($pos)</div>
712: #end		
713: 
714: </div> ## tab-panel
715: ## SPLITS
716: 
717: #end 
718: ## STATS
719: 
720: ## HTML STATS
721: #if ($hasHTMLStats)
722: 
723: #set ($class = "tab-panel clearfix")
724: #if ($view == "htmlstats")
725:   #set ($class = "tab-panel active clearfix")
726: #end
727: <div class="${class}">
728:   <a href="${htmlStatsURL}" class="bio-htmlstats-identifier">Click to view HTML Stats</a>
729: </div>
730: 
731: #end
732: ## HTML STATS
733: 	
734: </div> ## tab-panels
735: </div> ## tab-container
736: </div> ## body
737: #end
738: 
739: $wiki
740: </div> ## ends bio-wrap