Avery Weems #27 LHP Arizona

app 27
gs 8
w 4
l 5
sv 2
ip 61.2
era 7.15
k 47
Recent Games
May 16 vs. Penn St. W, 11-2
May 17 vs. Penn St. W, 15-5
May 18 vs. Penn St. W, 9-5
May 23 vs. Washington State W, 21-4
May 24 vs. Washington State W, 10-4
May 25 vs. Washington State W, 15-7
Statistics category Overall Conf
Games 29 135th 14 134th
Plate appearances 0 368th 0 367th
At Bats 0 198th 0 191st
Runs 0 184th 0 174th
Hits 0 183rd 0 172nd
Doubles - - - -
Triples - - - -
Home Runs - - - -
Runs Batted In 0 178th 0 161st
Total bases 0 365th 0 365th
Walks - - - -
Hit by pitch - - - -
Strikeouts - - - -
Sacrifice Flies - - - -
Sacrifice Hits - - - -
Hit into double play - - - -
Stolen Bases - - - -
Caught Stealing - - - -
Batting Average - - - -
On Base Percentage - - - -
Slugging Percentage - - - -
Appearances 27 15th 14 10th
Games started 8 32nd 2 40th
Wins 4 28th 0 66th
Losses 5 9th 3 15th
Saves 2 12th 2 7th
Complete Games 1 2nd - -
Shutouts - - - -
Innings Pitched 61.2 29th 23.0 47th
Hits 85 11th 41 27th
Runs 63 3rd 32 14th
Earned Runs 49 4th 30 12th
Walks 19 55th 13 35th
Strikeouts 47 44th 15 68th
Strikeouts per Game 6.86 28th 5.87 -
Doubles Allowed 21 4th 13 5th
Triples Allowed 2 51st - -
Home Runs Allows 7 14th 6 10th
At Bats Against 269 19th 106 41st
Batting Average Against .316 112th .387 112th
Earned Run Average 7.15 36th 11.74 -
Wild pitches 6 95th 2 31st
Hit Batters 7 112th 3 61st
Balks - - - -
Sacrifice Flies Allowed 3 71st 3 50th
Sacrifice Hits Allowed 2 35th 2 39th
Total Chances 17 152nd 6 179th
Put Outs 4 182nd 2 181st
Assists 13 79th 4 105th
Errors 0 179th 0 129th
Fielding Percentage 1.000 - 1.000 -
Double Plays - - - -
Stolen Bases Allowed 5 42nd 1 69th
Runners Caught Stealing 1 70th - -
Runners Caught Stealing Percentage .167 99th - -
Passed Balls - - - -
Catcher's Interference - - - -
Date Opponent Score ab r h 2b 3b hr rbi bb k sb cs
Oct 28 # vs. Cal St. Fullerton W, 17-13 - - - - - - - - - - -
Feb 15 vs. UMass Lowell W, 12-4 - - - - - - - - - - -
Feb 16 vs. UMass Lowell W, 18-4 - - - - - - - - - - -
Feb 16 vs. UMass Lowell W, 19-4 - - - - - - - - - - -
Feb 17 vs. UMass Lowell W, 20-5 0 0 0 - - - 0 - - - -
Feb 20 vs. Rice W, 16-5 0 0 0 - - - 0 - - - -
Feb 22 vs. Houston L, 2-1 - - - - - - - - - - -
Feb 23 vs. Houston L, 9-7 - - - - - - - - - - -
Feb 24 vs. Houston W, 9-4 0 0 0 - - - 0 - - - -
Feb 27 vs. New Mexico L, 5-4 0 0 0 - - - 0 - - - -
Mar 1 vs. Wis.-Milwaukee W, 14-6 - - - - - - - - - - -
Mar 2 vs. Wis.-Milwaukee L, 10-4 - - - - - - - - - - -
Mar 3 vs. Wis.-Milwaukee W, 12-11 0 0 0 - - - 0 - - - -
Mar 5 vs. Michigan St. L, 9-5 0 0 0 - - - 0 - - - -
Mar 8 vs. Col. of Charleston W, 7-5 0 0 0 - - - 0 - - - -
Mar 9 vs. Col. of Charleston W, 7-5 0 0 0 - - - 0 - - - -
Mar 10 vs. Col. of Charleston L, 10-6 - - - - - - - - - - -
Mar 12 vs. Xavier   - - - - - - - - - - -
Mar 15 vs. Utah L, 21-10 0 0 0 - - - 0 - - - -
Mar 16 vs. Utah W, 8-0 - - - - - - - - - - -
Mar 17 vs. Utah W, 18-7 - - - - - - - - - - -
Mar 19 New Mexico St. W, 14-10 0 0 0 - - - 0 - - - -
Mar 22 vs. UCLA L, 10-5 - - - - - - - - - - -
Mar 23 vs. UCLA L, 12-10 0 0 0 - - - 0 - - - -
Mar 24 vs. UCLA L, 3-1 - - - - - - - - - - -
Mar 25 vs. San Diego St. L, 6-4 0 0 0 - - - 0 - - - -
Mar 29 vs. Arizona State L, 8-2 - - - - - - - - - - -
Mar 30 vs. Arizona State L, 8-3 0 0 0 - - - 0 - - - -
Mar 31 vs. Arizona State L, 17-16 0 0 0 - - - 0 - - - -
Apr 5 vs. Washington W, 9-3 - - - - - - - - - - -
Apr 6 vs. Washington W, 14-2 - - - - - - - - - - -
Apr 7 vs. Washington W, 7-4 0 0 0 - - - 0 - - - -
Apr 9 at Grand Canyon W, 14-13 0 0 0 - - - 0 - - - -
Apr 12 vs. California L, 10-7 - - - - - - - - - - -
Apr 13 vs. California L, 7-3 0 0 0 - - - 0 - - - -
Apr 14 vs. California W, 4-2 0 0 0 - - - 0 - - - -
Apr 18 vs. Oregon State L, 8-4 0 0 0 - - - 0 - - - -
Apr 19 vs. Oregon State   - - - - - - - - - - -
Apr 20 vs. Oregon State L, 15-3 - - - - - - - - - - -
Apr 20 at Oregon State L, 9-3 0 0 0 - - - 0 - - - -
Apr 23 Grand Canyon L, 11-9 0 0 0 - - - 0 - - - -
Apr 26 vs. Stanford W, 6-3 0 0 0 - - - 0 - - - -
Apr 27 vs. Stanford L, 13-3 - - - - - - - - - - -
Apr 28 vs. Stanford L, 13-5 0 0 0 - - - 0 - - - -
Apr 30 New Mexico St. L, 15-13 - - - - - - - - - - -
May 3 vs. Oregon W, 17-6 - - - - - - - - - - -
May 4 vs. Oregon W, 9-8 0 0 0 - - - 0 - - - -
May 5 vs. Oregon W, 28-7 - - - - - - - - - - -
May 7 vs. Arizona State L, 10-7 0 0 0 - - - 0 - - - -
May 10 vs. USC W, 12-4 - - - - - - - - - - -
May 12 vs. USC W, 8-5 - - - - - - - - - - -
May 12 vs. USC   - - - - - - - - - - -
May 13 Sam Houston St. W, 14-7 0 0 0 - - - 0 - - - -
May 13 Sam Houston St. W, 16-2 - - - - - - - - - - -
May 16 vs. Penn St. W, 11-2 - - - - - - - - - - -
May 17 vs. Penn St. W, 15-5 - - - - - - - - - - -
May 18 vs. Penn St. W, 9-5 0 0 0 - - - 0 - - - -
May 23 vs. Washington State W, 21-4 - - - - - - - - - - -
May 24 vs. Washington State W, 10-4 0 0 0 - - - 0 - - - -
May 25 vs. Washington State W, 15-7 0 0 0 - - - 0 - - - -

# Stats don't count towards season totals

Date Opponent Score hbp sf sh tb xbh hdp go fo go/fo pa
Oct 28 # vs. Cal St. Fullerton W, 17-13 - - - - - - - - - -
Feb 15 vs. UMass Lowell W, 12-4 - - - - - - - - - -
Feb 16 vs. UMass Lowell W, 18-4 - - - - - - - - - -
Feb 16 vs. UMass Lowell W, 19-4 - - - - - - - - - -
Feb 17 vs. UMass Lowell W, 20-5 - - - 0 0 - - - - 0
Feb 20 vs. Rice W, 16-5 - - - 0 0 - - - - 0
Feb 22 vs. Houston L, 2-1 - - - - - - - - - -
Feb 23 vs. Houston L, 9-7 - - - - - - - - - -
Feb 24 vs. Houston W, 9-4 - - - 0 0 - - - - 0
Feb 27 vs. New Mexico L, 5-4 - - - 0 0 - - - - 0
Mar 1 vs. Wis.-Milwaukee W, 14-6 - - - - - - - - - -
Mar 2 vs. Wis.-Milwaukee L, 10-4 - - - - - - - - - -
Mar 3 vs. Wis.-Milwaukee W, 12-11 - - - 0 0 - - - - 0
Mar 5 vs. Michigan St. L, 9-5 - - - 0 0 - - - - 0
Mar 8 vs. Col. of Charleston W, 7-5 - - - 0 0 - - - - 0
Mar 9 vs. Col. of Charleston W, 7-5 - - - 0 0 - - - - 0
Mar 10 vs. Col. of Charleston L, 10-6 - - - - - - - - - -
Mar 12 vs. Xavier   - - - - - - - - - -
Mar 15 vs. Utah L, 21-10 - - - 0 0 - - - - 0
Mar 16 vs. Utah W, 8-0 - - - - - - - - - -
Mar 17 vs. Utah W, 18-7 - - - - - - - - - -
Mar 19 New Mexico St. W, 14-10 - - - 0 0 - - - - 0
Mar 22 vs. UCLA L, 10-5 - - - - - - - - - -
Mar 23 vs. UCLA L, 12-10 - - - 0 0 - - - - 0
Mar 24 vs. UCLA L, 3-1 - - - - - - - - - -
Mar 25 vs. San Diego St. L, 6-4 - - - 0 0 - - - - 0
Mar 29 vs. Arizona State L, 8-2 - - - - - - - - - -
Mar 30 vs. Arizona State L, 8-3 - - - 0 0 - - - - 0
Mar 31 vs. Arizona State L, 17-16 - - - 0 0 - - - - 0
Apr 5 vs. Washington W, 9-3 - - - - - - - - - -
Apr 6 vs. Washington W, 14-2 - - - - - - - - - -
Apr 7 vs. Washington W, 7-4 - - - 0 0 - - - - 0
Apr 9 at Grand Canyon W, 14-13 - - - 0 0 - - - - 0
Apr 12 vs. California L, 10-7 - - - - - - - - - -
Apr 13 vs. California L, 7-3 - - - 0 0 - - - - 0
Apr 14 vs. California W, 4-2 - - - 0 0 - - - - 0
Apr 18 vs. Oregon State L, 8-4 - - - 0 0 - - - - 0
Apr 19 vs. Oregon State   - - - - - - - - - -
Apr 20 vs. Oregon State L, 15-3 - - - - - - - - - -
Apr 20 at Oregon State L, 9-3 - - - 0 0 - - - - 0
Apr 23 Grand Canyon L, 11-9 - - - 0 0 - - - - 0
Apr 26 vs. Stanford W, 6-3 - - - 0 0 - - - - 0
Apr 27 vs. Stanford L, 13-3 - - - - - - - - - -
Apr 28 vs. Stanford L, 13-5 - - - 0 0 - - - - 0
Apr 30 New Mexico St. L, 15-13 - - - - - - - - - -
May 3 vs. Oregon W, 17-6 - - - - - - - - - -
May 4 vs. Oregon W, 9-8 - - - 0 0 - - - - 0
May 5 vs. Oregon W, 28-7 - - - - - - - - - -
May 7 vs. Arizona State L, 10-7 - - - 0 0 - - - - 0
May 10 vs. USC W, 12-4 - - - - - - - - - -
May 12 vs. USC W, 8-5 - - - - - - - - - -
May 12 vs. USC   - - - - - - - - - -
May 13 Sam Houston St. W, 14-7 - - - 0 0 - - - - 0
May 13 Sam Houston St. W, 16-2 - - - - - - - - - -
May 16 vs. Penn St. W, 11-2 - - - - - - - - - -
May 17 vs. Penn St. W, 15-5 - - - - - - - - - -
May 18 vs. Penn St. W, 9-5 - - - 0 0 - - - - 0
May 23 vs. Washington State W, 21-4 - - - - - - - - - -
May 24 vs. Washington State W, 10-4 - - - 0 0 - - - - 0
May 25 vs. Washington State W, 15-7 - - - 0 0 - - - - 0

# Stats don't count towards season totals

Date Opponent Score gs w l sv ip h r er era bb k hr
Oct 28 # vs. Cal St. Fullerton W, 17-13 - - - - - - - - - - - -
Feb 15 vs. UMass Lowell W, 12-4 - - - - - - - - - - - -
Feb 16 vs. UMass Lowell W, 18-4 - - - - - - - - - - - -
Feb 16 vs. UMass Lowell W, 19-4 - - - - - - - - - - - -
Feb 17 vs. UMass Lowell W, 20-5 0 0 0 0 1.1 2 - - 0.00 - 1 -
Feb 20 vs. Rice W, 16-5 1 1 0 0 5.0 4 2 2 3.60 2 4 -
Feb 22 vs. Houston L, 2-1 - - - - - - - - - - - -
Feb 23 vs. Houston L, 9-7 - - - - - - - - - - - -
Feb 24 vs. Houston W, 9-4 0 0 0 0 1.1 - - - 0.00 - 2 -
Feb 27 vs. New Mexico L, 5-4 0 0 0 0 1.2 1 1 1 5.40 1 1 -
Mar 1 vs. Wis.-Milwaukee W, 14-6 - - - - - - - - - - - -
Mar 2 vs. Wis.-Milwaukee L, 10-4 - - - - - - - - - - - -
Mar 3 vs. Wis.-Milwaukee W, 12-11 1 0 0 0 4.1 6 4 1 2.08 1 1 -
Mar 5 vs. Michigan St. L, 9-5 0 0 0 0 0.0 - - - 0.00 - - -
Mar 8 vs. Col. of Charleston W, 7-5 1 1 0 0 5.2 6 5 0 0.00 0 5 -
Mar 9 vs. Col. of Charleston W, 7-5 0 0 0 0 0.0 - - - 0.00 - - -
Mar 10 vs. Col. of Charleston L, 10-6 - - - - - - - - - - - -
Mar 12 vs. Xavier   - - - - - - - - - - - -
Mar 15 vs. Utah L, 21-10 1 0 1 0 2.0 6 6 6 27.00 2 1 -
Mar 16 vs. Utah W, 8-0 - - - - - - - - - - - -
Mar 17 vs. Utah W, 18-7 - - - - - - - - - - - -
Mar 19 New Mexico St. W, 14-10 0 0 0 0 2.0 - - - 0.00 - - -
Mar 22 vs. UCLA L, 10-5 - - - - - - - - - - - -
Mar 23 vs. UCLA L, 12-10 0 0 0 0 3.2 5 3 3 7.36 1 4 1
Mar 24 vs. UCLA L, 3-1 - - - - - - - - - - - -
Mar 25 vs. San Diego St. L, 6-4 0 0 1 0 1.0 3 3 3 27.00 - 1 -
Mar 29 vs. Arizona State L, 8-2 - - - - - - - - - - - -
Mar 30 vs. Arizona State L, 8-3 0 0 0 0 0.0 2 2 2 INF 2 - -
Mar 31 vs. Arizona State L, 17-16 0 0 1 0 1.1 - 1 - 0.00 2 2 -
Apr 5 vs. Washington W, 9-3 - - - - - - - - - - - -
Apr 6 vs. Washington W, 14-2 - - - - - - - - - - - -
Apr 7 vs. Washington W, 7-4 0 0 0 1 3.1 3 1 1 2.70 - 2 1
Apr 9 at Grand Canyon W, 14-13 0 1 0 0 2.0 1 - - 0.00 - 2 -
Apr 12 vs. California L, 10-7 - - - - - - - - - - - -
Apr 13 vs. California L, 7-3 0 0 0 0 0.1 2 - - 0.00 1 - -
Apr 14 vs. California W, 4-2 0 0 0 1 2.1 3 1 1 3.86 - 1 1
Apr 18 vs. Oregon State L, 8-4 0 0 0 0 0.2 1 1 - 0.00 1 - -
Apr 19 vs. Oregon State   - - - - - - - - - - - -
Apr 20 vs. Oregon State L, 15-3 - - - - - - - - - - - -
Apr 20 at Oregon State L, 9-3 0 0 0 0 1.0 4 3 3 27.00 - 1 -
Apr 23 Grand Canyon L, 11-9 1 0 1 0 2.1 4 4 4 15.43 1 2 -
Apr 26 vs. Stanford W, 6-3 0 0 0 0 0.1 - - - 0.00 - - -
Apr 27 vs. Stanford L, 13-3 - - - - - - - - - - - -
Apr 28 vs. Stanford L, 13-5 1 0 1 0 5.0 7 8 8 14.40 1 1 3
Apr 30 New Mexico St. L, 15-13 - - - - - - - - - - - -
May 3 vs. Oregon W, 17-6 - - - - - - - - - - - -
May 4 vs. Oregon W, 9-8 0 0 0 0 0.0 3 3 3 INF - - -
May 5 vs. Oregon W, 28-7 - - - - - - - - - - - -
May 7 vs. Arizona State L, 10-7 1 0 0 0 2.2 5 4 4 13.50 1 5 1
May 10 vs. USC W, 12-4 - - - - - - - - - - - -
May 12 vs. USC W, 8-5 - - - - - - - - - - - -
May 12 vs. USC   - - - - - - - - - - - -
May 13 Sam Houston St. W, 14-7 1 1 0 0 9.0 10 7 3 3.00 0 8 -
May 13 Sam Houston St. W, 16-2 - - - - - - - - - - - -
May 16 vs. Penn St. W, 11-2 - - - - - - - - - - - -
May 17 vs. Penn St. W, 15-5 - - - - - - - - - - - -
May 18 vs. Penn St. W, 9-5 0 0 0 0 0.1 2 1 1 27.00 - - -
May 23 vs. Washington State W, 21-4 - - - - - - - - - - - -
May 24 vs. Washington State W, 10-4 0 0 0 0 1.0 - - - 0.00 1 1 -
May 25 vs. Washington State W, 15-7 0 0 0 0 2.0 5 3 3 13.50 2 2 -

# Stats don't count towards season totals

Date Opponent Score tc po a e fpct dp sba rcs rcs% pb ci
Oct 28 # vs. Cal St. Fullerton W, 17-13 - - - - - - - - - - -
Feb 15 vs. UMass Lowell W, 12-4 - - - - - - - - - - -
Feb 16 vs. UMass Lowell W, 18-4 - - - - - - - - - - -
Feb 16 vs. UMass Lowell W, 19-4 - - - - - - - - - - -
Feb 17 vs. UMass Lowell W, 20-5 0 0 0 0 - - - - - - -
Feb 20 vs. Rice W, 16-5 0 0 0 0 - - - - - - -
Feb 22 vs. Houston L, 2-1 - - - - - - - - - - -
Feb 23 vs. Houston L, 9-7 - - - - - - - - - - -
Feb 24 vs. Houston W, 9-4 0 0 0 0 - - - - - - -
Feb 27 vs. New Mexico L, 5-4 0 0 0 0 - - - - - - -
Mar 1 vs. Wis.-Milwaukee W, 14-6 - - - - - - - - - - -
Mar 2 vs. Wis.-Milwaukee L, 10-4 - - - - - - - - - - -
Mar 3 vs. Wis.-Milwaukee W, 12-11 3 0 3 0 1.000 - - - - - -
Mar 5 vs. Michigan St. L, 9-5 0 0 0 0 - - - - - - -
Mar 8 vs. Col. of Charleston W, 7-5 4 1 3 0 1.000 - 2 1 .333 - -
Mar 9 vs. Col. of Charleston W, 7-5 0 0 0 0 - - - - - - -
Mar 10 vs. Col. of Charleston L, 10-6 - - - - - - - - - - -
Mar 12 vs. Xavier   - - - - - - - - - - -
Mar 15 vs. Utah L, 21-10 1 0 1 0 1.000 - - - - - -
Mar 16 vs. Utah W, 8-0 - - - - - - - - - - -
Mar 17 vs. Utah W, 18-7 - - - - - - - - - - -
Mar 19 New Mexico St. W, 14-10 0 0 0 0 - - - - - - -
Mar 22 vs. UCLA L, 10-5 - - - - - - - - - - -
Mar 23 vs. UCLA L, 12-10 0 0 0 0 - - - - - - -
Mar 24 vs. UCLA L, 3-1 - - - - - - - - - - -
Mar 25 vs. San Diego St. L, 6-4 0 0 0 0 - - - - - - -
Mar 29 vs. Arizona State L, 8-2 - - - - - - - - - - -
Mar 30 vs. Arizona State L, 8-3 0 0 0 0 - - 1 - - - -
Mar 31 vs. Arizona State L, 17-16 2 0 2 0 1.000 - - - - - -
Apr 5 vs. Washington W, 9-3 - - - - - - - - - - -
Apr 6 vs. Washington W, 14-2 - - - - - - - - - - -
Apr 7 vs. Washington W, 7-4 1 1 0 0 1.000 - - - - - -
Apr 9 at Grand Canyon W, 14-13 1 1 0 0 1.000 - - - - - -
Apr 12 vs. California L, 10-7 - - - - - - - - - - -
Apr 13 vs. California L, 7-3 1 1 0 0 1.000 - - - - - -
Apr 14 vs. California W, 4-2 0 0 0 0 - - - - - - -
Apr 18 vs. Oregon State L, 8-4 0 0 0 0 - - - - - - -
Apr 19 vs. Oregon State   - - - - - - - - - - -
Apr 20 vs. Oregon State L, 15-3 - - - - - - - - - - -
Apr 20 at Oregon State L, 9-3 0 0 0 0 - - - - - - -
Apr 23 Grand Canyon L, 11-9 0 0 0 0 - - - - - - -
Apr 26 vs. Stanford W, 6-3 0 0 0 0 - - - - - - -
Apr 27 vs. Stanford L, 13-3 - - - - - - - - - - -
Apr 28 vs. Stanford L, 13-5 1 0 1 0 1.000 - - - - - -
Apr 30 New Mexico St. L, 15-13 - - - - - - - - - - -
May 3 vs. Oregon W, 17-6 - - - - - - - - - - -
May 4 vs. Oregon W, 9-8 0 0 0 0 - - - - - - -
May 5 vs. Oregon W, 28-7 - - - - - - - - - - -
May 7 vs. Arizona State L, 10-7 0 0 0 0 - - 2 - - - -
May 10 vs. USC W, 12-4 - - - - - - - - - - -
May 12 vs. USC W, 8-5 - - - - - - - - - - -
May 12 vs. USC   - - - - - - - - - - -
May 13 Sam Houston St. W, 14-7 3 0 3 0 1.000 - - - - - -
May 13 Sam Houston St. W, 16-2 - - - - - - - - - - -
May 16 vs. Penn St. W, 11-2 - - - - - - - - - - -
May 17 vs. Penn St. W, 15-5 - - - - - - - - - - -
May 18 vs. Penn St. W, 9-5 0 0 0 0 - - - - - - -
May 23 vs. Washington State W, 21-4 - - - - - - - - - - -
May 24 vs. Washington State W, 10-4 0 0 0 0 - - - - - - -
May 25 vs. Washington State W, 15-7 0 0 0 0 - - - - - - -

# Stats don't count towards season totals

There was a problem with a Velocity script
Pagebio-network-template
ErrorVM #printCategories: too many arguments to macro. Wanted 2 got 3 at bio-network-template[line 550, column 11]
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: #set ($showconf = true)
8: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide"))
9:   #set ($showconf = false)
10: #end
11: 
12: #set ($showCareer = $wiki.valid() && $seasons)
13: #if ("yes" == $options.get("stats_show_career") && $seasons)
14:   #set ($showCareer = "yes")
15: #end
16: 
17: #if ($locale == "en_us")
18:   #set ($defLabel = "Defense")
19: #elseif ($locale == "en_gb")
20:   #set ($defLabel = "Defence")
21: #end
22: 
23: #set ($pos = "")
24: #set ($pos = $attributes.get("position"))
25: #set ($posVec = $pos.split("/"))
26: #set ($pos = $posVec[0])
27: #set ($pos = $pos.toLowerCase())
28: 
29: #set ($statPos = $positions.get($pos))
30: #set ($paramPos = $request.getParameter("pos").toLowerCase())
31: 
32: #*
33: $positions
34: $positions.keySet()
35: $positions.entrySet()
36: $statPos
37: $paramPos
38: *#
39: 
40: #set ($highlights = $highlights.get($statPos))
41: 
42: #set ($url = ${page.url})
43: #set ($playerId = $attributes.get("playerId"))
44: #set ($stats = $splits.overall)
45: 
46: #set ($hasEvents = $events.size() > 0)
47: #set ($hasSynopsis = $synopsis.length() > 1 && $synopsis.indexOf("<center>") == -1)
48: #set ($htmlStatsURL = "${page.url}-stats")
49: #set ($hasHTMLStats = $website.exists($htmlStatsURL))
50: #set ($bioBriefURL = "${page.url}-brief")
51: #set ($hasBioBrief = $website.exists("$bioBriefURL"))
52: 
53: $request.setAttribute("careerTotals", $career)
54: ## We track a map of the careers to see if we are missing any seasons
55: #set ($careerMap = {})
56: $request.setAttribute("careerMap", $careerMap)
57: #foreach ($season in $seasons)
58:   ## We need to include this season stats
59:   #set ($path = "${season.path}?tmpl=bio-career-template&name=${season.seasonName}&pos=${statPos}&print=no")
60:   $website.includeAgain($path)
61: #end
62: 
63: #set ($view = "profile")
64: #if ($request.getParameter("view"))
65:   #set ($view = $request.getParameter("view"))
66: #end
67: 
68: #macro (printResultAriaLabel $event)
69:     #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
70:     #if ($event.neutralSite.length() > 0 || $event.home) 
71:     	#set ($ariaLabel = "${ariaLabel} vs.")
72:     #else
73:     	#set ($ariaLabel = "${ariaLabel} at")
74:     #end
75:     #set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:")
76:     #if ($event.neutralSite.length() > 0)
77:     	#set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
78:     #end
79:     #set ($ariaLabel = "${ariaLabel} Box Score")
80:     aria-label="$ariaLabel"
81: #end
82: 
83: #macro (printHighlights)
84: #if ($highlights)
85:   <div class="highlights highlights-standalone accent-bg">
86:     #foreach ($highlight in $highlights.keySet())
87:       #set ($value = "-")
88:       #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
89:       <div class="stat clearfix">
90:         <span class="stat-title">$!highlights.get($highlight)</span>
91:         <span class="stat-value">$value</span>
92:       </div>
93:     #end
94:   </div>
95: #end ## has highlights
96: #end ## macro printHighlights
97: 
98: #macro (split $statPosBriefs $label $stats)
99:   <tr>
100:     <td class="pinned-col text">${label}</td>
101:     #foreach ($brief in $statPosBriefs.keySet())
102:       #set ($value = "-")
103:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
104:       <td>#if ($value.length() > 0) $value #else - #end</td>
105:     #end
106:   </tr>
107: #end ## marco split
108: 
109: #macro (printCategories $briefCategoryLabels $v $ariaLabel)
110:   
111: <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
112: <div class="tab-nav" data-module="jscroll" data-momentum="false">
113: <div>
114: <ul class="clearfix">
115: #foreach($briefCat in $briefCategoryLabels.entrySet())
116:   #set ($briefCatLabel = $briefCat.value)
117:   #set ($briefCatKey = $briefCat.key)
118:     
119:   #if ($locale == "en_gb" && $briefCatLabel == "Defense")
120:     #set ($briefCatLabel = "Defence")
121:   #end  
122:   
123:   <li #if ($activePos == $briefCatKey) class="active" #end><a href="${page.url}?view=${v}&pos=${briefCatKey}" role="tab" id="stats-tab-${ariaLabel.toLowerCase().replace(" ", "-")}-${briefCatLabel.toLowerCase()}" aria-label="${ariaLabel}: ${briefCatLabel}">$briefCatLabel</a></li>
124: #end
125: </ul>
126: </div>
127: </div>
128: <div class="tab-panels">
129: #foreach ($briefCat in $briefCategoryLabels.entrySet())
130:   #set ($briefCatLabel = $briefCat.value)
131:   #set ($class = "tab-panel clearfix")
132:   #if ($briefCat.key == $activePos)
133:     #set ($class = "tab-panel active clearfix")
134:   #end
135:   <div class="$class" role="tabpanel" aria-labelledby="stats-tab-${ariaLabel.toLowerCase().replace(" ", "-")}-${briefCatLabel.toLowerCase()}">
136:     <div class="stats-wrap clearfix">
137:     #if ($v == "splits")
138:       #splitsData($briefCat.key)
139:     #elseif ($v == "career")
140:       #careerData($briefCat.key)
141:     #end
142:     </div>
143:   </div>
144: #end  
145: </div>
146: </div> ## tab-container
147: 
148: #end ## macro printCategories
149: 
150: #macro (splitsData $p)
151: 
152: #set ($p = $positions.get($p))
153: #set ($statPosBriefs = $briefs.get($p))
154: #set ($colspan = $statPosBriefs.size())  
155:   
156: <div class="stats-box full clearfix">
157: <div class="scrollable">
158: <div>
159: <table>
160:   <tr class="accent-bg">
161:     <th class="pinned-col">&nbsp;</th>
162:     #foreach ($brief in $statPosBriefs)
163:       <th>$brief</th>
164:     #end
165:   </tr>
166: 
167: #split($statPosBriefs, "Total", $splits.overall)
168: #if ($showconf)
169:   #split($statPosBriefs, "Conference", $splits.conference)
170: #end
171: #split($statPosBriefs, "Exhibition", $splits.exhibition)
172: 
173: <tr class="empty-row">
174: 	<td class="pinned-col">&nbsp;</td>
175: 	<td colspan="$colspan"><div class="empty-cell">-</div></td>
176: </tr>
177: 
178: #split($statPosBriefs, "Home", $splits.home)
179: #split($statPosBriefs, "Away", $splits.away)
180: #split($statPosBriefs, "Neutral", $splits.neutral)
181: 
182: <tr class="empty-row">
183: 	<td class="pinned-col">&nbsp;</td>
184: 	<td colspan="$colspan"><div class="empty-cell">-</div></td>
185: </tr>
186: 
187: #foreach($gameResult in $gamesResults.entrySet())
188:   #if ($gameResult.key == "wins")
189:     #set ($splitGameResult = $splits.inWins)
190:   #elseif ($gameResult.key == "losses")
191:     #set ($splitGameResult = $splits.inLosses)
192:   #elseif ($gameResult.key == "ties")
193:     #set ($splitGameResult = $splits.inTies)
194:   #end
195:   
196:   #split($statPosBriefs, $gameResult.value, $splitGameResult)
197: #end
198: 
199: <tr class="empty-row">
200: 	<td class="pinned-col">&nbsp;</td>
201: 	<td colspan="$colspan"><div class="empty-cell">-</div></td>
202: </tr>
203: 
204: #if ($monthsPlayed and $monthsPlayed.size() > 0)
205:   #foreach($month in $monthsPlayed)
206:     #if ($month == 'January')
207:       #set ($splitMonth = $splits.january)
208:     #elseif ($month == 'February')
209:       #set ($splitMonth = $splits.february)
210:     #elseif ($month == 'March')
211:       #set($splitMonth = $splits.march)
212:     #elseif ($month == 'April')
213:       #set($splitMonth = $splits.april)
214:     #elseif ($month == 'May')
215:       #set ($splitMonth = $splits.may)
216:     #elseif ($month == 'June')
217:       #set ($splitMonth = $splits.june)
218:     #elseif ($month == 'July')
219:       #set($splitMonth = $splits.july)
220:     #elseif ($month == 'August')
221:       #set ($splitMonth = $splits.august)
222:     #elseif ($month == 'September')
223:       #set($splitMonth = $splits.september)
224:     #elseif ($month == 'October')
225:       #set($splitMonth = $splits.october)
226:     #elseif ($month == 'November')
227:       #set ($splitMonth = $splits.november)
228:     #elseif ($month == 'December')
229:       #set($splitMonth = $splits.december)
230:     #end
231:     
232:     #split($statPosBriefs, $month, $splitMonth)
233:   #end ## foreach
234: #end
235: </table>
236: </div>
237: </div> ## scrollable
238: </div> ## srollable-table
239: 
240: #end ## macro splitsData
241: 
242: #macro (printRecentGames)
243: <table>
244:     <tr class="thead accent-bg"><th colspan="3" class="text">Recent Games</th></tr>
245: 
246:     #set ($eventEnd = -1)
247:     #foreach ($event in $events)
248:     #if ($event.event.result.resolved)
249:     #set ($eventEnd = $velocityCount)
250:     #end
251:     #end
252: 
253:     #set ($eventStart = $eventEnd - 5)
254:     #if ($eventStart < 0) #set ($eventStart = 0) #end
255: 
256:     #foreach ($event in $events)
257:     #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
258:     <tr>
259:         <td class="text">$formatter.formatDate($event.event.date, "MMM d")</td>
260:         <td class="text">
261:             #if ($event.event.neutralSite.length() > 0) vs.
262:             #elseif (!$event.event.home) at
263:             #else ## nothing for a home game
264:             #end
265:             $event.event.opponent.name
266:         </td>
267:         <td class="text">
268:             #if ($event.event.statusCode >= 0)
269:             #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
270:                 <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
271:             #else
272:             ${event.event.APResult}
273:             #end
274:             #end
275:         </td>
276:     </tr>
277:     #end ## if
278:     #end
279: </table>
280: #end ## macro printRecentGames
281: 
282: #macro (gamelogData $p)
283: 
284: #set ($p = $positions.get($p))
285: #set ($gamelogs = $gamelogs.get($p))
286: #set ($atLeastOneNotOverall = false)
287: 
288: <div class="stats-box full clearfix">
289:     <div class="scrollable">
290:         <div>
291:             <table>
292:               <tr class="thead accent-bg">
293:                   <th class="text">Date</th>
294:                   <th class="pinned-col text">Opponent</th>
295:                   <th>Score</th>
296: 				  #set ($colspan = 3)
297:                   #if ($p == 'goalie' && ($sport.enumCode == 9 || $sport.enumCode == 3)) ## field hockey: 9   soccer:3
298: 					#set ($colspan = $colspan + 1)
299: 					<th>Dec</th>
300:                   #end
301:                   #foreach ($gamelog in $gamelogs)
302: 					#set ($colspan = $colspan + 1)
303: 					<th>$gamelog</th>
304:                   #end
305:               </tr>
306:               #foreach ($event in $events)
307:               <tr>
308:                   <td class="text">$formatter.formatDate($event.event.date, "MMM d") #if (!$event.event.overall) #set ($atLeastOneNotOverall = true) # #end</</td>
309:                   <td class="pinned-col text">
310:                       #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
311:                       $event.event.opponent.name
312:                   </td>
313:                   <td>
314:                       #if ($event.event.statusCode >= 0)
315:                       #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
316:                           <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
317:                       #else
318:                       ${event.event.APResult}
319:                       #end
320:                       #else &nbsp; #end
321:                   </td>
322:                   #if ($p == 'goalie' && ($sport.enumCode == 9 || $sport.enumCode == 3)) ## field hockey: 9   soccer:3
323:                       #if ($event.stats.get('gow') == 1)
324:                           <td>W</td>
325:                       #elseif ($event.stats.get('gol') == 1)
326:                           <td>L</td>
327:                       #elseif ($event.stats.get('got') == 1)
328:                           <td>T</td>
329:                       #else
330:                           <td>-</td>
331:                       #end
332:                   #end
333:                   #foreach ($gamelog in $gamelogs.keySet())
334:                   #set ($value = "-")
335:                   #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
336:                   <td>$value</td>
337:                   #end
338:               </tr>
339:               #end
340:               #if ($atLeastOneNotOverall)
341:                 <tr><td colspan="$colspan"># Stats don't count towards season totals</td></tr>
342:               #end
343:             </table>
344:         </div>
345:     </div> ## scrollable
346: </div> ## stats-box
347: 
348: #end ## macro gamelogData
349: 
350: #macro (split $statPosBriefs $label $stats)
351:   <tr>
352:     <td class="pinned-col text">${label}</td>
353:     #foreach ($brief in $statPosBriefs.keySet())
354:       #set ($value = "-")
355:       #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
356:       <td>#if ($value.length() > 0) $value #else - #end</td>
357:     #end
358:   </tr>
359: #end
360: 
361: #macro (careerData $p)
362: #set ($p = $positions.get($p))
363: #set ($statPosBriefs = $briefs.get($p))
364: 
365: <div class="stats-box full clearfix">
366: <div class="scrollable">
367: <div>
368: <table>
369: <tr class="thead accent-bg">
370:   <th class="pinned-col">&nbsp;</th>
371:   #foreach ($brief in $statPosBriefs)
372:     <th>$brief</th>
373:   #end
374: </tr>
375: 
376: #foreach ($season in $seasons)
377:   #if ($careerMap.get($season.seasonName))
378:     #set ($label = "<a href='${season.path}?view=profile'>$season.seasonName</a>")
379:     #split($statPosBriefs, $label, $careerMap[$season.seasonName])
380:   #elseif ($wiki.valid())
381:     <tr>
382:       <td class="pinned-col text">${season.seasonName}</td>
383:       <td colspan="${briefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td>
384:     </tr>
385:   #end
386: #end
387: 
388: #split($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall)
389: 
390: </table>
391: </div>
392: </div> ## scrollable
393: </div> ## stats-box
394: 
395: #end ## macro careerData
396: 
397: ################################################## END MACROS  #############################################################
398: 
399: <head>
400: <title>
401:     $!attributes.get("first_name") $!attributes.get("last_name") | #if ($attributes.get("number"))#$!attributes.get("number") | #end #if($attributes.get("position_abbr") && !$attributes.get("position_abbr").empty)$!attributes.get("position_abbr") | #elseif ($attributes.get("position"))$!attributes.get("position") | #end  $attributes.get("team")
402: </title>
403: </head>
404: 
405: <div class="bio-wrap bio-wrap-network clearfix" data-module="stats/responsive-container">
406: 
407:     #if ($page.title.length() > 0)
408:     <h1>$page.title</h1>
409:     #end
410: 
411:     <h2 class="player-name">
412:         <span>$!attributes.get("first_name") $!attributes.get("last_name")</span>
413:         #if (!$attributes.get("number").empty)<span>#$!attributes.get("number")</span>#end
414:         #if($attributes.get("position_abbr") && !$attributes.get("position_abbr").empty)
415: 			<span>$!attributes.get("position_abbr")</span>
416: 		#elseif ($attributes.get("position"))
417: 			<span>$!attributes.get("position")</span>
418: 		#end 
419:         <a href="../teams?id=$!{attributes.get("teamId")}" aria-label="Team Stats - ${attributes.get("team")}">$attributes.get("team")</a>
420:     </h2>
421: 	
422:     #printHighlights
423: 
424:     <div class="body clearfix">
425:         <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary">
426:             <div class="tab-nav" data-module="jscroll" data-momentum="false">
427:                 <div>
428:                     <ul class="clearfix">
429:                         <li #if ($view == "profile") class="active" #end><a href="${page.url}?view=profile" role="tab" id="stats-tab-player-profile">Player Profile</a></li>
430:                         <li #if ($view == "gamelog")class="active"#end><a href="${page.url}?view=gamelog" role="tab" id="stats-tab-game-log">Game Log</a></li>
431:                         #if ($showCareer)
432:                         <li #if ($view == "career")class="active"#end><a href="${page.url}?view=career" role="tab" id="stats-tab-career-stats">Career Stats</a></li>
433:                         #end
434:                         <li #if ($view == "splits")class="active"#end><a href="${page.url}?view=splits" role="tab" id="stats-tab-split-stats">Split Stats</a></li>
435:                     </ul>
436:                 </div>
437:             </div> ## tab-nav
438: 
439:             <div class="tab-panels clearfix">
440: 
441:                 ## PROFILE
442:                 #set ($class = "tab-panel clearfix")
443:                 #if ($view == "profile")
444:                 #set ($class = "tab-panel active clearfix")
445:                 #end
446:                 <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-player-profile">
447: 
448:                     ## Player profile
449:                     <div class="clearfix stats-wrap">
450: 
451:                         ## LAST SIX GAMES
452:                         <div class="stats-box half">
453:                             #printRecentGames()
454:                         </div>
455: 
456:                         ## RANKING
457:                         <div class="stats-box half">
458:                             $website.include("../players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}")
459:                         </div>
460: 
461:                     </div> ## clearfix
462: 
463:                     #if ($hasSynopsis)
464:                     <div class="clearfix">$!synopsis</div>
465:                     #end
466: 
467:                     #if ($hasBioBrief)
468:                     <div class="clearfix">$website.include($htmlStatsURL)</div>
469:                     #end
470: 
471:                     #if ($htmlStatsURL)
472:                     <div class="clearfix">$website.include($bioBriefURL)</div>
473:                     #end
474: 
475:                 </div>
476:                 ## PROFILE
477: 
478:                 ## GAMELOG
479:                 #set ($class = "tab-panel clearfix")
480:                 #if ($view == "gamelog")
481:                 #set ($class = "tab-panel active clearfix")
482:                 #end
483: 
484:                 #set ($activePos = $statPos)
485:                 #if ($view == "gamelog" && $paramPos.length() > 0)
486:                   #if ($positions.get($paramPos).length() > 0)
487:                     #set ($activePos = $positions.get($paramPos))
488:                   #end
489:                 #end
490: 
491:                 <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-game-log">
492: 
493:                     #if ($gamelogsCategoriesLabels)
494:                     <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary">
495:                         <div class="tab-nav" data-module="jscroll" data-momentum="false">
496:                             <div>
497:                                 <ul class="clearfix">
498:                                     #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
499:                                       #set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
500: 
501:                                   #if ($locale == "en_gb" && $gamelogsCatLabelVal == "Defense")
502:                       #set($gamelogsCatLabelVal = "Defence")
503:                     #end
504: 
505:                     <li #if ($activePos == $gamelogsCatLabel.key) class="active" #end>
506:                       <a href="${page.url}?view=gamelog&pos=${gamelogsCatLabel.key}" role="tab" id="stats-tab-game-log-${gamelogsCatLabelVal.toLowerCase()}" aria-label="Game Log: ${gamelogsCatLabelVal}">$gamelogsCatLabelVal</a>
507:                     </li>
508:                                     #end
509:                                 </ul>
510:                             </div>
511:                         </div>
512:                         <div class="tab-panels">
513:                 #foreach($gamelogsCatLabel in $gamelogsCategoriesLabels.entrySet())
514: 					#set($gamelogsCatLabelVal = $gamelogsCatLabel.value)
515:                 #set ($class = "tab-panel clearfix")
516:                 #if ($gamelogsCatLabel.key == $activePos)
517:                   #set ($class = "tab-panel active clearfix")
518:                 #end
519:                 <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-game-log-${gamelogsCatLabelVal.toLowerCase()}">
520:                   <div class="stats-wrap clearfix">#gamelogData($gamelogsCatLabel.key)</div>
521:                 </div>
522:               #end
523:                         </div>
524:                     </div>
525:                     #else
526:                       <div class="stats-wrap clearfix">#gamelogData($pos)</div>
527:                     #end
528: 
529:                 </div> ## tab-panel
530:                 ## GAMELOG
531: 
532:         ## CAREER
533:         #if ($showCareer)
534: 
535:         #set ($activePos = $statPos)
536:         #if ($view == "career" && $paramPos.length() > 0)
537:           #if ($positions.get($paramPos).length() > 0)
538:           #set ($activePos = $positions.get($paramPos))
539:           #end
540:         #end
541: 
542:         #set ($class = "tab-panel clearfix")
543:         #if ($view == "career")
544:           #set ($class = "tab-panel active clearfix")
545:         #end
546: 
547:         <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-career-stats">
548: 
549:         #if ($briefsCategoriesLabels)
550:           #printCategories($briefsCategoriesLabels "career" "Career Stats")
551:         #else
552:           <div class="stats-wrap clearfix">#careerData($activePos)</div>
553:         #end    
554: 
555:         </div> ## tab-panel
556:         #end ## CAREER
557:         
558:         ## SPLITS
559:         #set ($class = "tab-panel clearfix")
560:         #if ($view == "splits")
561:           #set ($class = "tab-panel active clearfix")
562:         #end
563: 
564:         #set ($activePos = $statPos)
565:         #if ($view == "splits" && $paramPos.length() > 0)
566:           #if ($positions.get($paramPos).length() > 0)
567:           #set ($activePos = $positions.get($paramPos))
568:           #end
569:         #end
570: 
571:         <div class="${class}" role="tabpanel" aria-labelledby="stats-tab-split-stats">
572: 
573:         #if ($briefsCategoriesLabels)
574:           #printCategories($briefsCategoriesLabels "splits" "Splits Stats")
575:         #else
576:           <div class="stats-wrap clearfix">#splitsData($pos)</div>
577:         #end    
578: 
579:         </div> ## tab-panel
580:         ## SPLITS
581:         
582:             </div> ##tab-panels
583: 
584:         </div> ## tab-container
585:     </div> ## body
586: 
587: 
588: </div> ## bio-wrapper
589: $wiki.su