The Chicago Blackhawks selected Connor Bedard as the No. 1 overall pick in the 2023 NHL Draft on Wednesday.

Bedard will make the jump to the NHL from the Western Hockey League, where he played Center for the Regina Pats. He was widely considered a shoe-in for the No. 1 pick, with several evaluators considering him generational talent.

Blackhawks fans can already find T-shirts and officially licensed NHL jerseys available online for the exciting new pick. Head to NHL Shop’s Blackhawk’s collection for the new gear, and use code: NHL Deal to save 25% off site wide. Here’s the jersey:

Connor Bedard Chicago Blackhawks jersey

Connor Bedard Chicago Blackhawks jersey. (NHL Shop)

Men’s Chicago Blackhawks Connor Bedard Fanatics Branded Red 2023 NHL Draft Home Breakaway Player Jersey – $174.99

The jersey is also available in women’s and youth sizes. If you’re looking to spend a little less, check out this T-shirt instead:

Connor Bedard Draft Jersey

Connor Bedard Draft Jersey. (NHL Shop)

Men’s Chicago Blackhawks Connor Bedard Fanatics Branded Red 2023 NHL Draft Authentic Stack Player Name & Number T-Shirt – $34.99

The T-shirt is also available in women’s sizes, and black or red colors.

More Blackhawks gear can be found at NHL Shop’s Chicago Blackhawk’s collection.

** ** **

More NHL Draft coverage from The Associated Press

NASHVILLE, Tenn. (AP) — Connor Bedard can finally appreciate looking forward to playing for the Chicago Blackhawks after spending the past few months avoiding the subject.

And the Blackhawks — and their fans who began chanting “Let’s go, Hawks!” in Music City after Bedard was selected with the first pick in the NHL draft on Wednesday night — can begin looking forward to a new era with a highly skilled offensive forward who’s drawn comparisons to Connor McDavid and Sidney Crosby.

Bedard became the second No. 1 pick in Blackhawks history, joining Patrick Kane, who went first overall in 2007 and helped form the core of a team that won three Stanley Cups from 2010 to 2015. Kane’s tenure in Chicago ended in February when he was traded to the New York Rangers.

“I can’t put into words growing up and obviously, that’s when they were going on their runs winning Cups,” said Bedard, who turns 18 on July 17. “You watched a lot of them and you see the United Center going crazy and all of Chicago getting behind them and you know (the) Original Six and so much history here.”

As for why he spent the past two months deflecting questions about the Blackhawks? Bedard smiled and said: “I didn’t want to jinx myself.”

At just under 5-foot-10 and 185 pounds, Bedard is regarded a generational prospect, much like McDavid, who was selected first in 2015 and this week was named the league’s MVP for the third time.

Impressive as Bedard’s resume has been, Blackhawks GM Kyle Davidson was careful not to put too much on his new player’s shoulders right away.

“He’s a pretty special player, a very special person. We’ll let him determine how special that first season is,” Davidson said when asked about his expectations for Bedard.

** ** **

MORE SPORTS MERCH, STREAMING AND TICKETS

Amen Thompson jersey: Where to buy 2023 NBA Draft gear online for Houston Rockets No. 1 pick

Scoot Henderson jersey: Where to buy 2023 NBA Draft gear online for Portland Trail Blazers No. 1 pick

Brandon Miller jersey: Where to buy 2023 NBA Draft gear online for Charlotte Hornets No. 1 pick

Victor Wembanyama jersey: Where to buy 2023 NBA Draft gear online for San Antonio Spurs No. 1 overall pick

Where to buy 2023 MLB All-Star Game hats online: Mets, Yankees gear available now

Source

Golf Clubs


Limited Time Offer: 2X Trade-In Bonus*

Receive a 2X Trade-In Bonus towards Paradym, Apex Irons, Big Bertha, Big Bertha REVA, and Great Big Bertha now through June 30th.

Eligible Products: Paradym, Apex Irons, Big Bertha, Big Bertha REVA, and Great Big Bertha.

Eligible Trade-In Products: Any club on the Current Trade In! Trade Up! Rate Card.
Callaway Golf Pre-Owned reserves the right to refuse any club deemed unacceptable.

Trade-In Value: 2X Trade-In Bonus over and above the current value of the Trade-In as listed on the current Trade In! Trade Up! Rate Card.

We will issue payment for your accepted trade in clubs within 35-45 business days of receiving your trade. We will submit payment in the same form you used to make your purchase (i.e. credit card, check). A trade will only be accepted toward any new Callaway club(s) of equal or greater value. No refunds or credits will be issued for amounts over the purchase price.

Please note: Trade Bonus amount is limited to $500 per customer.

*©2023 Topgolf Callaway Brands Corp. Callaway and the Chevron Device are trademarks and/or registered trademarks of Topgolf Callaway Brands Corp. *6/7/23 – 6/30/23 receive 2x trade-in bonus towards the purchase of Eligible Trade-Up Products: Paradym (Drivers, Fairway Woods, Hybrids, Irons), Apex 21 Irons (Std, Pro, DCB, TCB, MB), Big Bertha ’23 (Drivers, Fairway Woods, Hybrids, Irons), Big Bertha REVA ’23 (Drivers, Fairway Woods, Hybrids, Irons), Great Big Bertha (Drivers, Fairway woods, Hybrids, Irons), Reva Complete Sets. 2x Trade-In Bonus based on the current value of the Trade-In as listed on the current Rate Card. Trade values subject to condition guide as outlined. Woods: Limit 1 club Trade-In per club purchased. Iron Trades must consist of a min. of 6 irons/hybrids/wedges and a max. of 9 sticks per set purchased. Trade-In Value cannot exceed purchase value. Trade must be created within 5 days of purchase. Must show proof of purchase to receive Trade-In. Product must be returned to Callaway in order for credit to be applied. Up to $500 over the base value per customer. Receipt of new purchase required upon return with a note/receipt attached to clubs when shipped back. Customers can download a free prepaid shipping label via Callaway Connect (not available in Canada, customer is responsible for shipping costs). Trades must be received by 7/21/2023. Not combinable with other offers. Not redeemable for cash. Not transferable to any other products. Callaway reserves the right to cancel this offer at any time. Void where prohibited. Valid at participating, authorized retailers in the U.S. and Canada and only while supplies last. No substitutions. *#1 Winning Driver on 2023 PGA Tour claim based on PGA TOUR events calendar YTD. EXCLUDES NIGHT MODE DRIVERS.

Golf Clubs

If you have any question please CONTACT  Us
Email us at:  info@discountsportsinc.com
Call US : (832) 722-8074

Don’t Forget to Visit our Shop 

For reliable and quality Managed IT Services and VoIP, Contact Precise Business Solutions 

It takes a village to help a team make it to the College World Series. Hermitage High alum Emory Bender was one of the equipment managers that helped the Florida Gators make it to the College World Series in Omaha, Nebraska, this month.

“It was so fun,” he said. “You get there and obviously you don’t know, you could be there for five days, you could be there for two weeks. So with every win, it’s just exciting. It’s fun to be part of that atmosphere.” 

Florida was Bender’s dream school, and although he did not continue pursuing his baseball career on the field, he knew he still wanted to be involved with the sport. 

People are also reading…

  • The Commanders aren’t coming back, and now Richmond has big decisions to make
  • Goochland grad Zack Potts turned D3 national title into a DI opportunity, and hopes for more
  • Shyndigz owners to open boutique hotel, new market on Cary Street
  • Bill Lohmann’s farewell column: Once more, with feeling
  • Virginia budget negotiations break down over tax cuts, special session next?
  • German transfer to VCU hoops program returns home weeks after arriving in Richmond
  • Police identify driver killed in Chesterfield crash
  • Chaka Khan to headline Richmond Jazz and Music Festival
  • Opinion: Expelling the outlaws: Morrissey, Chase get their comeuppance
  • Insiders say Richmond’s organ transplantation network dismisses whistleblower concerns, resists change
  • Despite legislative furor, Chinese farm holdings in Va. old and limited
  • Virginia’s primaries set the stage for this fall’s fierce political wars
  • Chesterfield man identified as Swift Creek drowning victim
  • Rams House opens, Smoke & Barrel takes over Lady N’awlins space, Taco Bamba headed to Willow Lawn
  • Williams: Richmond’s schoolchildren are being left behind. What are we going to do about it?
Squirrels RBI leader Carter Aldrete thrives on competition

“I have a cousin that went to the University of Florida about 20 years ago, and one of his friends has a job with the basketball team,” he said. “So I emailed him … ‘I really want to work in baseball post-college. Is there any way I could? Or, you know, could I possibly be an equipment manager?'”

Bender made contact with the head equipment manger, and from there began working for the Gators’ baseball team as a freshman in college. 

Emory Bender

Emory Bender

Emory Bender

“I figured this was the perfect place to start,” he said. 

On an average day, Bender and the eight other equipment managers arrive to the field early to set up nets and prepare baseballs and other equipment that may be needed, as well as helping out during practices as baserunners or infielders. After practice, they clean up and do laundry. 

For game days, they also have to put out uniforms in the locker room and help out during games as ball boys, as well as bringing equipment in and out of the dugout. 

One of the perks of the job is getting to travel with the teams for road games, including the College World Series. 

Emory Bender

Emory Bender (standing, right) helps the maintenance crew with preparing the field before a game. 

UAA Communications

“I never thought I was gonna go to the College World Series in my life, but I got to do it as a part of the team I grew up watching,” he said. “It’s just amazing. I wouldn’t trade it for anything.”

During the Gators’ time in Omaha, the team took down UVa, Oral Roberts and TCU.

“I got to stay there with the players, and it’s fun to just be a part of that atmosphere – they’re winning, they’re all excited,” he said.

The Gators lost in Game 3 of the final series against SEC-rival LSU, but one of the major takeaways for Bender is how close everyone on the team got and the importance of bonding. 

“When I started with this job, you know, I wasn’t the most talkative or any of that kind of stuff. By the end we’re just such a close group of guys,” he said. “It was just fun, it was bittersweet.”

Young female referees playing a crucial role in helping solve Richmond’s high school referee shortage

Although the season did not end with a national championship, Bender plans to continue his role in Gainesville throughout his college career, and said that the Gators will be back for more. 

“We’ll see you all again next year. That’s it,” he said. 

2023 VHSL spring sports tournaments

061123-rtd-sp-highschool

Freeman girl’s lacrosse players hold up the trophy after defeating Independence in the Class 5 championship game in Ashburn on Saturday, June 10.

Mike Kropf/TIMES-DISPATCH 061123-rtd-sp-highschool

Freeman girl’s lacrosse players celebrate after defeating Independence in the Class 5 championship game in Ashburn on Saturday, June 10.

Mike Kropf/TIMES-DISPATCH 061123-rtd-sp-highschool

Freeman girl’s lacrosse players celebrate after defeating Independence in the Class 5 championship game in Ashburn on Saturday, June 10.

Mike Kropf/TIMES-DISPATCH 061123-rtd-sp-highschool

Independence goalie Scarlett Thompson blocks a shot during the Class 5 championship game against Freeman in Ashburn on Saturday, June 10.

Mike Kropf/TIMES-DISPATCH 061123-rtd-sp-highschool

Freeman fans cheer for the girl’s lacrosse team during the Class 5 championship game in Ashburn on Saturday, June 10.

Mike Kropf/TIMES-DISPATCH 061123-rtd-sp-highschool

Freeman attacker Audrey Jones reaches for the ball during the Class 5 championship game against Independence in Ashburn on Saturday, June 10.

Mike Kropf/TIMES-DISPATCH 061123-rtd-sp-highschool

Freeman midfielder Grace Moore defends the ball during the Class 5 championship game against Independence in Ashburn on Saturday, June 10.

Mike Kropf/TIMES-DISPATCH 061123-rtd-sp-highschool

Freeman midfielder Ella Davis defends the ball during the Class 5 championship game against Independence in Ashburn on Saturday, June 10.

Mike Kropf/TIMES-DISPATCH 061123-rtd-sp-highschool

Freeman midfielder Bridget Wilson shoots the ball against Independence during the Class 5 championship game in Ashburn on Saturday, June 10.

Mike Kropf, TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover’s Olivia Gibson is out after sliding toward second base during the Class 4 state semifinals against Louisa on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover’s Meghan Deshazo watches the ball as she runs toward third base during the Class 4 state semifinals against Louisa on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Louisa softball players celebrate after beating Hanover 5-3 in the Class 4 state semifinals on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover’s Mackenzie Ryerson cheers on her teammate during the Class 4 state semifinals against Louisa on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Louisa’s Emily Gillespie pitches the ball during the Class 4 state semifinals against Hanover on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover pitcher Brie Wheeler pitches the ball against Louisa during the Class 4 state semifinals on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Louisa softball players celebrate after beating Hanover 5-3 in the Class 4 state semifinals on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover pitcher Nolan Williamson pitches the ball during the Class 4 state semifinals against James Wood on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover catcher Booty Simons runs toward first base during the Class 4 state semifinals against James Wood on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover’s Tavis Spiller runs toward third base during the Class 4 state semifinals against James Wood on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover pitcher Nolan Williamson is among those that will be featured in Wednesday’s state All-Star Game.

Mike Kropf, TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover’s Jack Bowles swings at the ball during the Class 4 state semifinals against James Wood on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover pitcher Brie Wheeler pitches the ball against Louisa during the Class 4 state semifinals on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Louisa’s Emily Gillespie pitches the ball during the Class 4 state semifinals against Hanover on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover’s Meghan Deshazo watches the ball as she runs toward third base during the Class 4 state semifinals against Louisa on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover’s Mackenzie Ryerson cheers on her teammate during the Class 4 state semifinals against Louisa on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 061023-rtd-sp-highschool

Hanover’s Olivia Gibson is out after sliding toward second base during the Class 4 state semifinals against Louisa on Friday, June 9.

Mike Kropf/TIMES-DISPATCH 060723-rtd-sp-highschool

Midlothian pitcher Marlee Gaskell delivers a pitch during the Trojans’ loss to Riverside in the Region 5C quarterfinals.

Mike Kropf, TIMES-DISPATCH 060723-rtd-sp-highschool

Midlothian players celebrate with Kimberly Jones after Jones’ home run gave the Trojans a short-lived lead in the fifth inning of their state quarterfinal loss.

Mike Kropf, TIMES-DISPATCH 060723-rtd-sp-highschool

Riverside’s Ashley Gabbert celebrates with assistant coach Karen Avvisato behind Midlothian first baseman Lisa Broussard during the Trojans’ state-quarterfinal loss. Riverside advances to play Hickory in the Class 5 semifinals.

Mike Kropf photos, TIMES-DISPATCH 060723-rtd-sp-highschool

Riverside’s Kaylan Hoehn and Tylor Arnold celebrate during their team’s victory in a Region 5C state quarterfinal game.

Mike Kropf, TIMES-DISPATCH 060723-rtd-sp-highschool

Riverside’s Ashley Gabbert slides into second base during the Region 5C state quarterfinal against Midlothian on Tuesday, June 6.

Mike Kropf/TIMES-DISPATCH 060723-rtd-sp-highschool

Riverside’s Charlotte Moore swings at the ball during the Region 5C state quarterfinal against Midlothian on Tuesday, June 6.

Mike Kropf/TIMES-DISPATCH 060723-rtd-sp-highschool

Riverside’s Ashley Gabbert celebrates with assistant coach Karen Avvisato during the Region 5C state quarterfinal against Midlothian on Tuesday, June 6.

Mike Kropf/TIMES-DISPATCH 060723-rtd-sp-highschool

Midlothian softball players celebrate with Kimberly Jones after her home run during the state quarterfinal matchup against Riverside. Riverside prevailed in extra innings.

Mike Kropf/TIMES-DISPATCH 060723-rtd-sp-highschool

Riverside’s Kaylan Hoehn and Tylor Arnold celebrate during the Region 5C state quarterfinal against Midlothian on Tuesday, June 6.

Mike Kropf/TIMES-DISPATCH 060723-rtd-sp-highschool

Riverside’s Kaylie Avvisato runs toward third base during the Region 5C state quarterfinal against Midlothian on Tuesday, June 6.

Mike Kropf/TIMES-DISPATCH 060723-rtd-sp-highschool

Midlothian’s Kimberly Jones tries to tag Riverside’s Ashley Gabbert out at second base during Tuesday’s state quarterfinal game.

Mike Kropf/TIMES-DISPATCH 060723-rtd-sp-highschool

Midlothian pitcher Marlee Gaskell pitches the ball against Riverside during the state quarterfinal matchup on Tuesday.

Mike Kropf/TIMES-DISPATCH 060723-rtd-sp-highschool

Midlothian pitcher Marlee Gaskell pitches the ball against Riverside during the Region 5C state quarterfinal on Tuesday, June 6.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Midlothian starter Marlee Gaskell delivers a pitch during the Trojans’ Region 5C semifinal victory.

Mike Kropf, TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Midlothian’s Ellie Mulligan celebrates during the Trojans’ Region 5C semifinal victory over Mills Godwin on Wednesday. Mulligan homered twice and drove in five runs.

Mike Kropf, TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Mills Godwin’s Luke Smyers delivers a pitch during the Eagles’ victory over Midlothian in the Region 5C semifinals Wednesday.

Mike Kropf, TIMES-DISPATCH 060123-rtd-met-hsplayoffs (copy)

Mills Godwin’s Luke Smyers

Mike Kropf, TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Midlothian players celebrate their team scoring a run during the Trojans’ Region 5C loss to Mills Godwin on Wednesday.

Mike Kropf, TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Midlothian players celebrate as Chase Chambers returns home during a Region 5C semifinal game against Mills Godwin on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Deep Run’s Alana Collier practices her swing during a Region 5C semifinal game against Clover Hill on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Mills Godwin pitcher Hank Piersol pitches the ball during a Region 5C semifinal game against Midlothian on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Midlothian right fielder Emma Salzman celebrates during a Region 5C semifinal game against Mills Godwin on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Midlothian players celebrate as Chase Chambers returns home during a Region 5C semifinal game against Mills Godwin on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Midlothian center fielder Ellie Mulligan celebrates during a Region 5C semifinal game against Mills Godwin on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Deep Run’s Alana Collier swings at the ball during a Region 5C semifinal game against Clover Hill on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Clover Hill pitcher Angelina Branch pitches the ball against Deep Run during the Region 5C semifinals on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Midlothian’s Cooper Meads runs toward third base during a Region 5C semifinal game against Mills Godwin on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Deep Run pitcher Hope Tate pitches the ball during a Region 5C semifinal game against Clover Hill on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Mills Godwin pitcher Luke Smyers delivers during the Region 5C semifinal against Midlothian on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Mills Godwin pitcher Anna Grace Howe pitches the ball against Midlothian during the Region 5C semifinals on Wednesday.

Mike Kropf/TIMES-DISPATCH 060123-rtd-met-hsplayoffs

Midlothian pitcher Marlee Gaskell pitches the ball against Mills Godwin during the Region 5C semifinals on Wednesday.

Mike Kropf/TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Midlothian’s Nico Dellicapagni expresses his displeasure with a referee’s call during the Trojans’ loss to Deep Run in the Region 5C semifinals Tuesday night.

Mike Kropf, TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Douglas Freeman players celebrate after scoring their final goal by Hayden Schwartz in a 3-0 victory over Glen Allen in the Region 5C semifinals Tuesday night. The Mavericks will play Deep Run for the region title Friday night at Mills Godwin High School.

Mike Kropf, TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Freeman’s Nicholas Gavin and Walker Hogan celebrate after beating Glen Allen in the Region 5C playoffs on Tuesday.

Mike Kropf/TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Freeman soccer players celebrate after scoring a third goal against Glen Allen during the Region 5C playoffs on Tuesday.

Mike Kropf/TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Midlothian forward Nico Dellicapagni disagrees with a referee during a Region 5C playoff game against Deep Run on Tuesday.

Mike Kropf/TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Freeman midfielder Hayden Shwartz drives with the ball against Glen Allen during the Region 5C playoffs on Tuesday.

Mike Kropf/TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Deep Run’s Jack Shwarz heads the ball during a Region 5C playoff game against Midlothian on Tuesday.

Mike Kropf/TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Glen Allen’s Riley Irmen and Freeman forward Owen McGuill fight for the ball during the Region 5C playoffs on Tuesday.

Mike Kropf/TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Freeman forward Arnes Popara and Glen Allen’s Matthew Ross fight for the ball during the Region 5C playoffs on Tuesday.

Mike Kropf/TIMES-DISPATCH 053123-rtd-sp-hsplayoffs

Midlothian forward Jayden King shoots the ball against Deep Run during the Region 5C playoffs on Tuesday.

Mike Kropf/TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Midlothian’s Landon Locke, left, and Luke McMahon celebrate a goal against Douglas Freeman. Locke scored three times and McMahon twice in the Trojans’ 11-10 win.

Mike Kropf, TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Midlothian’s Landon Locke shields Douglas Freeman’s Garrett Suter from the ball during the Region 5C championship game at Glen Allen High School on Thursday.

Mike Kropf, TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Douglas Freeman attacker Charles Bernhardt is knocked to the turf during the Mavericks’ loss to Midlothian in Thursday’s Region 5C championship game.

Mike Kropf, TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Freeman midfielder Wit Rader defends the ball during the Region 5C championship game against Midlothian in Glen Allen on Thursday.

Mike Kropf/TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Midlothian attacker Landon Locke defends the ball from Freeman midfielder Garrett Suter during the Region 5C championship game in Glen Allen on Thursday.

Mike Kropf/TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Freeman attacker Charles Bernhardt is knocked to the ground during the Region 5C championship game against Midlothian in Glen Allen on Thursday.

Mike Kropf/TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Freeman attacker Thomas Rader runs with the ball during the Region 5C championship game against Midlothian in Glen Allen on Thursday.

Mike Kropf/TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Midlothian attacker Landon Locke defends the ball from Freeman midfielder Graham Daly during the Region 5C championship game in Glen Allen on Thursday.

Mike Kropf/TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Midlothian head lacrosse coach Greg Barnard speaks to a referee during the Region 5C championship game against Freeman in Glen Allen on Thursday.

Mike Kropf/TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Freeman midfielder Zackary Stewart defends the ball from Midlothian’s Stephen Siegel during the Region 5C championship game in Glen Allen on Thursday.

Mike Kropf/TIMES-DISPATCH 052623-rtd-sp-5cregionlax

Midlothian attacker Andrew Baker, left, walks toward Landon Locke and Luke McMahon as they celebrate after a goal during the Region 5C championship game against Freeman in Glen Allen on Thursday.

Mike Kropf/TIMES-DISPATCH

Melanie Martinez-Lopez (804) 649-6442

mmartinez@timesdispatch.com

@melanieml33 on Twitter

0 Comments

Source

Mavericks’ Luka Doncic responds to Frances Tiafoe’s choice of Wimbledon

Frances Tiafoe took the court in style Monday as he prepared for the 2023 Wimbledon tennis championships, earning a positive response from Mavericks star Luka Doncic.

Photos from Wimbledon’s social media accounts showed Tiafoe donning a Doncic ‘Statement Jersey’ during a practice session. Doncic took to Instagram shortly after the post went up, showing his appreciation for the shoutout with two emojis on his story.

Advertisement

Advertisement

Tiafoe enters the Wimbledon tournament at No. 10 in the ATP rankings, sitting one spot behind California’s Taylor Fritz. Tiafoe won his first grass-court title on June 18 when he defeated Jan-Lennard Struff at the Stuttgart Open. The tenth ranking is a career-high for Tiafoe.

Mavs Minutes

Mavericks

Be the smartest Mavericks fan. Get the latest news.

Email Address

By signing up you agree to our Terms of Service and Privacy Policy

Doncic has kept himself busy over the offseason, focusing on conditioning while working out with Slovenian trainer Anže Maček. Maybe the Slovenian superstar will keep close tabs on Tiafoe as he competes in one of the most prestigious tournaments in tennis.

Wimbledon play opens July 3 for singles competitors.

Advertisement

Related Stories

View More

    5 Mavericks mid-level free agent options: Is Grant Williams a solution on defense?Reggie Bullock’s $10.5 million salary for 2023 fully guaranteed by Mavs, report saysBiggest whiffs in Mavs free agency history, including DeAndre Jordan and Jalen Brunson

Find more Mavericks coverage from The Dallas Morning News here.

Mavericks’ Luka Doncic responds to Frances Tiafoe’s choice of Wimbledon

If you have any question please CONTACT  Us
Email us at:  info@discountsportsinc.com
Call US : (832) 722-8074

Don’t Forget to Visit our Shop 

For reliable and quality Managed IT Services and VoIP, Contact Precise Business Solutions 


If you have any question please CONTACT  Us
Email us at:  info@discountsportsinc.com
Call US : (832) 722-8074

Don’t Forget to Visit our Shop 

For reliable and quality Managed IT Services and VoIP, Contact Precise Business Solutions 

Helmets for Field Use


Helmets for Field Use – Green Gridiron, Inc. {0}”. Please try again with a different term.”,”productSearchResultWithTermSummary”:”{0} results for ‘{1}'”,”productSearchResultSummary”:”{0} products”,”productSearchNoResults”:”

No matching for ‘{0}’.

But don’t give up – check the filters, spelling or try less specific search terms.”,”productSearchNoResultsEmptyTerm”:”

No results found.

But don’t give up – check the filters or try less specific terms.”,”clearAll”:”Clear all”,”clear”:”Clear”,”clearAllFilters”:”Clear all filters”,”clearFiltersBy”:”Clear filters by {0}”,”filterBy”:”Filter by {0}”,”sort”:”Sort”,”sortBy_r”:”Relevance”,”sortBy_title”:”Title: A-Z”,”sortBy_-title”:”Title: Z-A”,”sortBy_date”:”Date: Old to New”,”sortBy_-date”:”Date: New to Old”,”sortBy_price”:”Price: Low to High”,”sortBy_-price”:”Price: High to Low”,”sortBy_-discount”:”Discount: High to Low”,”sortBy_bestselling”:”Best selling”,”sortBy_-available”:”Inventory: High to Low”,”sortBy_producttype”:”Product Type: A-Z”,”sortBy_-producttype”:”Product Type: Z-A”,”filters”:”Filters”,”filterOptions”:”Filter options”,”clearFilterOptions”:”Clear all filter options”,”youHaveViewed”:”You’ve viewed {0} of {1} products”,”loadMore”:”Load more”,”loadPrev”:”Load previous”,”productMatches”:”Product matches”,”trending”:”Trending”,”didYouMean”:”Sorry, nothing found for ‘{0}’.
Did you mean ‘
{1}’?”,”searchSuggestions”:”Search suggestions”,”quantity”:”Quantity”,”selectedVariantNotAvailable”:”The selected variant is not available.”,”addToCart”:”Add to cart”,”seeFullDetails”:”See full details”,”chooseOptions”:”Choose options”,”quickView”:”Quick view”,”sale”:”Sale”,”save”:”Save”,”soldOut”:”Sold out”,”viewItems”:”View items”,”more”:”More”,”all”:”All”,”prevPage”:”Previous page”,”gotoPage”:”Go to page {0}”,”nextPage”:”Next page”,”from”:”From”,”collections”:”Collections”,”pages”:”Pages”,”sortBy_”:”Relevance”,”sortBy_option:Amount”:”Amount: A-Z”,”sortBy_-option:Amount”:”Amount: Z-A”,”sortBy_option:Award Decal”:”Award Decal: A-Z”,”sortBy_-option:Award Decal”:”Award Decal: Z-A”,”sortBy_option:Clip Color”:”Clip Color: A-Z”,”sortBy_-option:Clip Color”:”Clip Color: Z-A”,”sortBy_option:Color”:”Color: A-Z”,”sortBy_-option:Color”:”Color: Z-A”,”sortBy_option:Color & Size”:”Color & Size: A-Z”,”sortBy_-option:Color & Size”:”Color & Size: Z-A”,”sortBy_option:Country”:”Country: A-Z”,”sortBy_-option:Country”:”Country: Z-A”,”sortBy_option:Decal”:”Decal: A-Z”,”sortBy_-option:Decal”:”Decal: Z-A”,”sortBy_option:Helmet Type”:”Helmet Type: A-Z”,”sortBy_-option:Helmet Type”:”Helmet Type: Z-A”,”sortBy_option:Placement”:”Placement: A-Z”,”sortBy_-option:Placement”:”Placement: Z-A”,”sortBy_option:Quantity”:”Quantity: A-Z”,”sortBy_-option:Quantity”:”Quantity: Z-A”,”sortBy_option:Shell Color”:”Shell Color: A-Z”,”sortBy_-option:Shell Color”:”Shell Color: Z-A”,”sortBy_option:Shell Size”:”Shell Size: A-Z”,”sortBy_-option:Shell Size”:”Shell Size: Z-A”,”sortBy_option:Size”:”Size: A-Z”,”sortBy_-option:Size”:”Size: Z-A”,”sortBy_option:SportStar Adapter Color”:”SportStar Adapter Color: A-Z”,”sortBy_-option:SportStar Adapter Color”:”SportStar Adapter Color: Z-A”,”sortBy_option:State”:”State: A-Z”,”sortBy_-option:State”:”State: Z-A”,”sortBy_option:Style”:”Style: A-Z”,”sortBy_-option:Style”:”Style: Z-A”,”sortBy_option:Title”:”Title: A-Z”,”sortBy_-option:Title”:”Title: Z-A”,”sortBy_option:Visor Style”:”Visor Style: A-Z”,”sortBy_-option:Visor Style”:”Visor Style: Z-A”,”sortBy_option:Type”:”Type: A-Z”,”sortBy_-option:Type”:”Type: Z-A”}} } ]]>

{const e=o[r]%16;return r++,(“x”===t?e:3&e|8).toString(16)})).toUpperCase()}catch(n){e=t.replace(/[x]/g,(t=>{const e=16*Math.random()|0;return(“x”===t?e:3&e|8).toString(16)})).toUpperCase()}return`${function(){let t=0,e=0;t=(new Date).getTime()>>>0;try{e=performance.now()>>>0}catch(t){e=0}const n=Math.abs(t+e).toString(16).toLowerCase();return”00000000″.substr(0,8-n.length)+n}()}-${e}`}()}`}function r(n,r){if(!t[n]||”trekkie”!==(null==r?void 0:r.analyticsFramework)&&”wpm”!==(null==r?void 0:r.analyticsFramework))return o(“shu”);const i=”string”==typeof(c=r.cacheKey)&&c?c:”default”;var c;const a=function(t,n,o){const r=e[n];return void 0===r[t]&&(r[t]={}),void 0===r[t][o]?r[t][o]=0:r[t][o]+=1,r[t][o]}(n,r.analyticsFramework,i);return function(e,n,r){const i=t[e];if(void 0===i[r]){const t=o();i[r]=[t]}else if(void 0===i[r][n]){const t=o();i[r].push(t)}return i[r][n]}(n,a,i)}function i(){window.Shopify=window.Shopify||{},n(),window.Shopify.evids=(t,e)=>r(t,e)}i();})(); ]]> { console.error(“Elevar Data Layer: JS script failed to load”); }; script.onload = () => { if (!window.ElevarGtmSuite) { console.error(“Elevar Data Layer: `ElevarGtmSuite` is not defined”); return; } const cartData = { attributes:{}, cartTotal: “0.0”, currencyCode:”USD”, items: [] } ; if (config.event_config.save_order_notes) { window.ElevarGtmSuite.handlers.cookieReconcile(cartData); window.ElevarGtmSuite.handlers.paramReconcile(cartData); } if (config.event_config.user) { window.ElevarGtmSuite.handlers.user({cartTotal: “0.0”, currencyCode:”USD”,}); } if (config.event_config.product_add_to_cart_ajax) { window.ElevarGtmSuite.handlers.productAddToCartAjax(config.event_config.save_order_notes); } if (config.event_config.cart_reconcile) { window.ElevarGtmSuite.handlers.cartReconcile(cartData); }const collectionItems ={ currencyCode:”USD”, items: [{id:”RID-00117″,name:”Riddell SpeedFlex Black Out – ADULT”, brand:”Riddell”, category:”Helmet/Field Use/Adult”, price: “509.99”, position:1, productId: “118266331149”, variantId: “42639112929449”, handle:”riddell-speedflex-football-helmet”},{id:”RID-00235″,name:”Riddell SpeedFlex – YOUTH”, brand:”Riddell”, category:”Helmet/Field Use/Youth”, price: “409.99”, position:2, productId: “511604228161”, variantId: “6840360304705”, handle:”riddell-speedflex-youth-football-helmet”},{id:”SCH-00126″,name:”Schutt F7 VTD Black Out – ADULT”, brand:”Schutt”, category:”Helmet/Field Use/Adult”, price: “427.99”, position:3, productId: “1569320239169”, variantId: “38573828702377”, handle:”schutt-f7-vtd-football-helmet”},{id:”VIC-00063″,name:”Vicis Zero2 Helmet – ADULT”, brand:”Vicis”, category:”Helmet/Field Use/Adult”, price: “799.99”, position:4, productId: “6564816257193”, variantId: “40809102966953”, handle:”vicis-zero-2-helmet”},{id:”SCH-00172″,name:”Schutt F7 VTD LX1 – YOUTH”, brand:”Schutt”, category:”Helmet/Field Use/Youth”, price: “259.99”, position:5, productId: “3949975011393”, variantId: “31124858404929”, handle:”schutt-f7-vtd-football-helmet-youth”},{id:”SCH-00218″,name:”Schutt Vengeance A11 – YOUTH”, brand:”Schutt”, category:”Helmet/Field Use/Youth”, price: “180.99”, position:6, productId: “4326678167617”, variantId: “31125065891905”, handle:”schutt-a11-football-helmet-youth”},{id:”RID-01264″,name:”Riddell Speed Victor-I – YOUTH”, brand:”Riddell”, category:”Helmet/Field Use/Youth”, price: “119.99”, position:7, productId: “7626836017321”, variantId: “42662037029033”, handle:”riddell-speed-victor-i-youth”},{id:”SYZ-00001″,name:”Syzmik X7 Soft Shell Football Headgear”, brand:”Syzmik”, category:”Helmet/Field Use/Soft”, price: “97.0”, position:8, productId: “7733444018345”, variantId: “43021985579177”, handle:”syzmik-x7-soft-shell-football-helmet”},{id:”RID-01411″,name:”Riddell SpeedFlex Youth Helmet, Metallic Silver, Small – Scratch u0026 Dent”, brand:”Riddell”, category:”Helmet/Field Use/Youth”, price: “369.99”, position:9, productId: “7743908151465”, variantId: “43058224267433”, handle:”riddell-speedflex-youth-helmet-metallic-silver-small-scratch-dent”},{id:”RID-01412″,name:”Riddell SpeedFlex Adult Helmet, Black, Small – Scratch u0026 Dent”, brand:”Riddell”, category:”Helmet/Field Use/Youth”, price: “449.99”, position:10, productId: “7743909527721”, variantId: “43058226823337”, handle:”riddell-speedflex-adult-helmet-black-small-scratch-dent”},{id:”RID-01415″,name:”Riddell SpeedFlex Youth Helmet, Navy, X-Large- Scratch u0026 Dent”, brand:”Riddell”, category:”Helmet/Field Use/Youth”, price: “544.99”, position:11, productId: “7746340126889”, variantId: “43066572701865”, handle:”riddell-speedflex-youth-helmet-navy-x-large-scratch-dent-1″},{id:”RID-01416″,name:”Riddell SpeedFlex Youth Helmet, Matte Black, Large – Scratch u0026 Dent”, brand:”Riddell”, category:”Helmet/Field Use/Youth”, price: “499.99”, position:12, productId: “7748583850153”, variantId: “43073911619753”, handle:”riddell-speedflex-youth-helmet-matte-black-large-scratch-dent-2″},] }; if (config.event_config.collection_view) { window.ElevarGtmSuite.handlers.collectionView(collectionItems); } if (config.event_config.product_select) { window.ElevarGtmSuite.handlers.productSelect(collectionItems); }}; document.body.appendChild(script); })(); ]]> 1) Shopify.updateOptionsInSelector(1); if (product.options.length === 3) Shopify.updateOptionsInSelector(2); // When there is an update in the first dropdown. jQuery(“.single-option-selector:eq(0)”).change(function() { console.log(‘FIRST OPTION’); Shopify.updateOptionsInSelector(1); if (product.options.length === 3) Shopify.updateOptionsInSelector(2); return true; }); // When there is an update in the second dropdown. jQuery(“.single-option-selector:eq(1)”).change(function() { console.log(‘SECOND OPTION :: ‘ + $(this).val()); if($(‘body’).attr(‘id’) === ‘riddell-speed-victor-i-youth’) { checkFacemaskSize($(this).val()); } if (product.options.length === 3) Shopify.updateOptionsInSelector(2); return true; }); }; var selector = jQuery(‘.single-option-selector:eq(0)’); selector.trigger(‘change’); }); ]]> “) ]]> ‘, ‘”‘: ‘”‘, “‘”: ‘'’, ‘/’: ‘/’, ‘`’: ‘`’, ‘=’: ‘=’ } Object.keys(entityMap).map(function(k) { s = s.replace(k, entityMap[k]) }) return s } function sasoTrimLength(str, maxLen) { var separator = ” ” if (str.length {{{product_message}}}

{{#tiers}}
Minimum Qty {{# if price_type_flat}}Price per item{{/if}}{{# if price_type_percent}}Discount{{/if}}
{{{quantity}}}+ {{{price.title}}} {{/tiers}} ]]>

Apply ]]> expiration) { // expired localStorage.removeItem(‘nvdconfig’); nvd_config = null; prefetch(); } // var tomorrow = new Date(); // tomorrow.setDate(today.getDate()+3); useConsole(‘Navidium config avaialable in storage’); } else { useConsole(‘Navidium config not available in storage’); await fetch( `https://app.navidiumapp.com/api/widet-serverless-api-stable-september-2022.php?shop_url=${nvdShop}` ) .then((res) => res.json()) .then((initialData) => { useConsole(initialData); showWidget = initialData.nvd_show_cart; autoInsurance = initialData.nvd_auto_insurance; let today = new Date() // extract the configuration data let shopConfig = { success: initialData.success, show_on_cart: initialData.nvd_show_cart, show_on_checkout: initialData.nvd_show_checkout, auto_insurance: initialData.nvd_auto_insurance, nvd_name: initialData.nvd_name, product_exclusion: initialData.product_exclusion.split(‘,’), nvd_subtitle: initialData.nvd_subtitle, nvd_description: initialData.nvd_description, nvd_message: initialData.nvd_message, protection_variants: initialData.nvd_variants, min_protection_price: initialData.min_protection_value, max_protection_price: initialData.max_protection_value, protection_type: initialData.nvd_protection_type, protection_percentage: initialData.nvd_protection_type_value, min_protection_variant: initialData.min_variant_id, max_protection_variant: initialData.max_variant_id, expiration: today.setDate(today.getDate() + 3), widget_location: initialData.widget_location, widget_icon : initialData.nvd_widget_icon, }; // store into localStorage localStorage.setItem(‘nvdconfig’, JSON.stringify(shopConfig)); if (callback) return callback(); }).catch(err => { useConsole(‘%c navidium error’, ‘color: yellow; background-color: red; font-size: 12px’, err); }); } }; const calculateProtection = async (cartTotal, nvdConfig) => { let conversionRate = parseFloat(Shopify.currency.rate); let convertedTotal = cartTotal/ conversionRate; let protectionType = nvdConfig.protection_type; let protectionPercentage = nvdConfig.protection_percentage; let protectionId; let protectionPrice; let minPrice = Number(nvdConfig.min_protection_price); let maxPrice = Number(nvdConfig.max_protection_price); let minId = nvdConfig.min_protection_variant; let maxId = nvdConfig.max_protection_variant; let protectionVariants = nvdConfig.protection_variants; // TODO: check protection type if (protectionType == ‘1’) { // protection is dynamic let ourProtectionPrice = (convertedTotal * protectionPercentage) / 100; ourProtectionPrice = ourProtectionPrice.toFixed(2); // calculate the protection if (ourProtectionPrice maxPrice) { console.log(‘Our protection price is greater than maximum’); protectionPrice = maxPrice; protectionId = maxId; return { price: protectionPrice, variant_id: protectionId } } else { console.log(‘calculating protection’) function findClosest(arr, target) { let finalOutput = 0.00; let n = arr.length; target = parseFloat(target); let current; for (let i = 0; i = parseFloat(arr[i]) && target <= parseFloat(arr[i + 1])) { finalOutput = arr[i + 1]; break; } else if (target a - b); protectionPrice = findClosest(priceArray, ourProtectionPrice); if (protectionPrice == 0) { return { price: maxPrice, variant_id: maxId } } protectionId = protectionVariants[protectionPrice]; return { price: protectionPrice, variant_id: protectionId } } } else { // protection is static.so hit the api console.log('protection is static'); let apiURL = await fetch(`https://app.navidiumapp.com/api/variant-id-checker-api-march6.php?shop_url=${shop}&price=` + cartTotal); let data = apiURL.json(); return data; } } const nvd_init = async () => { let shopCurrency = ‘${{amount}} USD’; console.time(‘nvd_init’); localStorage.setItem(‘nvd_running’, true); // TODO: check nvd_config in localStorage let shopConfig = localStorage.getItem(‘nvdconfig’) ? JSON.parse(localStorage.getItem(‘nvdconfig’)) : null; // check if shop config data is available in localStorage if (shopConfig) { useConsole(‘Navidium config avaialable in storage’); } else { // if not available, fetch from server and store in localStorage useConsole(‘Navidium config not avaialable in storage. Prefetching now’); await prefetch(nvd_init); return; } let cartProtectionVariant = localStorage.getItem(‘cart_protection’) ? localStorage.getItem(‘cart_protection’) : null; let opted_out = JSON.parse(localStorage.getItem(‘nvd_opted_out’)); let showWidget = true; if (shopConfig.show_on_cart == “0”) { showWidget = false; } useConsole(‘showWidget’, showWidget); let success = true; if (shopConfig.success == “0”) { success = false; } let checked; let nvd_variant; useConsole(‘in cart protection variant’, cartProtectionVariant); // check if widget should be shown and limit did not exceeded if (showWidget == true && success == true) { let cart = await getCartCallback(checkCart); let cartTotal = await cart.total / 100; let currency = await cart.currency; useConsole(‘after exclusion total price is’, cartTotal); let getProtection = await calculateProtection(cartTotal, shopConfig); let variantFromApi = await getProtection.variant_id; let priceFromApi = await getProtection.price; useConsole(‘apiJson’, getProtection); if (cartTotal == 0) { useConsole(‘cart total is zero.No need to add protection’); return; } else { // check for opt in status first if (shopConfig.auto_insurance == ‘1’) { useConsole(‘auto insurance is true’); checked = true; } if (shopConfig.auto_insurance == ‘0’) { checked = false; } if (opted_out == true) { useConsole(‘user has not opted in’); checked = false; } if (opted_out == false) { useConsole(‘ use has opted in’); checked = true; } useConsole(‘widget check status: ‘, checked); // now check the variant in cart is equal to the variant in api return if (cartProtectionVariant) { if (cartProtectionVariant == variantFromApi) { useConsole( ‘1. cart variant is same as the api variant,stay idle and build widget’, cartProtectionVariant, variantFromApi ); nvd_variant = cartProtectionVariant; if (document.querySelector(‘.nvd-mini’)) document.querySelectorAll(‘.nvd-mini’).forEach((item) => { item.innerHTML = buildWidget( shopConfig, priceFromApi, nvd_variant, checked ? ‘checked’ : ” ); }); checkWidgetView(); } else { useConsole( ‘cart variant and api variant is not same.swapping them now’ ); nvd_variant = variantFromApi; // now remove the previous navidium variant from cart if (cartProtectionVariant) { // now add the new protection to the cart if (checked) { useConsole(‘removing old and adding new protection’); await removeAndAddProtection( cartProtectionVariant, variantFromApi, false ); } } // now append the snippet if (document.querySelector(‘.nvd-mini’)) document.querySelectorAll(‘.nvd-mini’).forEach((item) => { item.innerHTML = buildWidget( shopConfig, priceFromApi, nvd_variant, checked ? ‘checked’ : ” ); }); checkWidgetView(); } } else { if (checked) { useConsole( ‘Protection Not available. Adding now.’, cartProtectionVariant, variantFromApi ); nvd_variant = variantFromApi; await addProtection(Number(variantFromApi), 1, true); if (document.querySelector(‘.nvd-mini’)) document.querySelectorAll(‘.nvd-mini’).forEach((item) => { item.innerHTML = buildWidget( shopConfig, priceFromApi, nvd_variant, checked ? ‘checked’ : ” ); }); checkWidgetView(); } else { nvd_variant = variantFromApi; useConsole(‘no protection available, just append snippet’); if (document.querySelector(‘.nvd-mini’)) document.querySelectorAll(‘.nvd-mini’).forEach((item) => { item.innerHTML = buildWidget( shopConfig, priceFromApi, nvd_variant, checked ? ‘checked’ : ” ); }); checkWidgetView(); } } } } else { // when navidium widget is shut off useConsole( ‘%c Navidium Message:widget is shut off or limit reached.Please turn on from your app settings or check you have not exceeded your limit’, ‘color: yellow; background-color: blue; font-size: 12px’ ); } console.timeEnd(‘nvd_init’); localStorage.setItem(‘nvd_running’, false); updateWidgetPrice(); }; // function to get cart data and pass the data to another callback for processing. const getCartCallback = async (callback) => { let cart = await fetch(‘/cart.js’); let cartData = await cart.json(); if (callback) return callback(cartData); return cartData; }; // function to check cart items const checkCart = async (cartData, callback = null) => { let currency = await cartData.currency; useConsole(‘cart in check cart’, cartData); if (cartData.items.length != 0) { let items = cartData.items; let total = parseFloat(cartData.total_price); let initialTotal = cartData.total_price; let nvd_counter_array = []; let recheck = false; let dupeVariant; let counter = items.length; let shopConfig = localStorage.getItem(‘nvdconfig’) ? JSON.parse(localStorage.getItem(‘nvdconfig’)) : null; let excludedSKUs = shopConfig.product_exclusion; // if no shop config is found wait and call prefetch if (!shopConfig) { await prefetch(); } useConsole(‘product exclusion’, excludedSKUs); let promises = await items.forEach((item) => { // check for duplicate navidium if (item.handle.includes(‘navidium-shipping-protection’)) { nvd_counter_array.push(item.variant_id); useConsole(‘protection available in cart’); localStorage.setItem(‘cart_protection’, item.variant_id); total = total – item.final_line_price; useConsole(‘nvd1’, total); if (item.quantity > 1) { useConsole(‘Found duplicate protection in cart,decreasing now’); recheck = true; dupeVariant = item.variant_id; } else { useConsole(‘protection duplication test passed’); } } else { counter = counter + item.quantity; excludedSKUs.forEach((sku) => { if (item.sku == sku) { useConsole( ‘%c Navidium Message:Product is excluded’, ‘color: yellow; background-color: blue; font-size: 16px’, item.sku, item.final_price ); // substract the item price from total total = total – item.final_line_price; useConsole(‘ex1’, total); } }); } }); if (recheck == true) { let mutateCart = adjustProtectionQuantity(dupeVariant, 0, false); useConsole(‘calling checkCart function recursively’, mutateCart); getCartCallback(checkCart); } if (nvd_counter_array.length > 1) { useConsole( ‘%cfound more than one variant of navidium protection in cart,removing all now’, ‘color:red’ ); await nvd_counter_array.forEach((item) => { useConsole(‘removing variant’, item); adjustProtectionQuantity(item, 0); localStorage.removeItem(‘cart_protection’); recheck = false; }); } if (nvd_counter_array.length == 0) { useConsole(‘No protection available in cart’); localStorage.removeItem(‘cart_protection’); } if (nvd_counter_array.length == items.length) { useConsole(‘no items in cart rather than protection’); fetch(‘/cart/clear.js’).then((res) => { useConsole(‘cart cleared’); location.reload(); localStorage.removeItem(‘cart_protection’); }); } // if recheck is true and duplicate protection is available call checkCart the function recursively return { total: parseFloat(total), currency: currency, }; } else { return { total: 0, currency: currency, }; } }; // function to add protection to cart const addProtection = async (variantId, quantity = 1, reload = false) => { const id = parseInt(variantId); if (document.querySelectorAll(‘[name=”checkout”]’)) document.querySelectorAll(‘[name=”checkout”]’).forEach(elem => elem.disabled = true) let cartData; var request = { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json;’, Accept: ‘application/json’, }, body: JSON.stringify({ id: id, quantity: quantity, }), }; cartData = await fetch(‘/cart/add.js’, request); let cartJson = await cartData.json(); if (cartJson.id) { useConsole( ‘%c Protection added successfully’, ‘color: white; background-color: green’ ); updateLiveCart(null); if (document.querySelectorAll(‘[name=”checkout”]’)) document.querySelectorAll(‘[name=”checkout”]’).forEach(elem => elem.disabled = false) } else { if (document.querySelectorAll(‘[name=”checkout”]’)) document.querySelectorAll(‘[name=”checkout”]’).forEach(elem => elem.disabled = false) } console.dir(cartJson); localStorage.setItem(‘nvd_opted_out’, false); localStorage.setItem(‘cart_protection’, variantId); checkWidgetView(); if (reload == true) { location.reload(); } else { return cartJson; } }; // function to remove protection const removeProtection = async (variantId, reload = false) => { if (document.querySelectorAll(‘[name=”checkout”]’)) document.querySelectorAll(‘[name=”checkout”]’).forEach(elem => elem.disabled = true) var request = { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json;’, Accept: ‘application/json’, }, body: JSON.stringify({ id: String(variantId), quantity: 0, }), }; cartData = await fetch(‘/cart/change.js’, request); let cartJson = await cartData.json(); localStorage.setItem(‘nvd_opted_out’, true); localStorage.removeItem(‘cart_protection’); if (cartJson.token) { if (document.querySelectorAll(‘[name=”checkout”]’)) document.querySelectorAll(‘[name=”checkout”]’).forEach(elem => elem.disabled = false) useConsole( ‘%c Protection removed successfully’, ‘color: white; background-color: red’ ); updateLiveCart(cartJson); } else { if (document.querySelectorAll(‘[name=”checkout”]’)) document.querySelectorAll(‘[name=”checkout”]’).forEach(elem => elem.disabled = false) } checkWidgetView(); if (reload == true) { location.reload(); } else { return cartJson; } }; // function to update protection variant from cart const adjustProtectionQuantity = async ( variantId, quantity, reload = false ) => { let cartData; var request = { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json;’, Accept: ‘application/json’, }, body: JSON.stringify({ id: String(variantId), quantity: String(quantity), }), }; cartData = await fetch(‘/cart/change.js’, request); let cartJson = await cartData.json(); useConsole( ‘%cnew cart instance after duplicate protection quantity decrease’, ‘color:yellow’, cartJson ); console.dir(cartJson); updateLiveCart(cartJson); if (reload == true) { location.reload(); } else { return cartJson; } }; let updateWidgetPrice = async () => { useConsole(‘updating widget price’); let cartData = await fetch(‘/cart.js’).then(res => res.json()); let widget = document.querySelector(‘#nvd-widget-cart’); if (widget == null) return; let shopCurrency = ‘${{amount}} USD’; let items = await cartData.items; items.forEach((item) => { useConsole(item); if (item.handle.includes(‘navidium-shipping-protection’)) { useConsole(‘ updating navidium price’) let price = Shopify.formatMoney(item.price, shopCurrency); let priceElem = document.querySelector(‘.shipping-protection-price’); if (priceElem) priceElem.innerHTML = price; } }); }; // function remove and add protection to cart const removeAndAddProtection = async (remove, add, reload = false) => { if (document.querySelectorAll(‘[name=”checkout”]’)) document.querySelectorAll(‘[name=”checkout”]’).forEach(elem => elem.disabled = true) const removeRequest = { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json;’, Accept: ‘application/json’, }, body: JSON.stringify({ id: String(remove), quantity: 0, }), }; const addRequest = { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json;’, Accept: ‘application/json’, }, body: JSON.stringify({ id: String(add), quantity: 1, }), }; await fetch(‘/cart/change.js’, removeRequest) .then((res) => res.json()) .then((data) => { useConsole(‘removed and now adding’); fetch(‘/cart/add.js’, addRequest) .then((res) => res.json()) .then((data) => { if (data.id) { useConsole( ‘%c Protection swapped successfully’, ‘color: white; background-color: green’ ); updateLiveCart(null); if (document.querySelectorAll(‘[name=”checkout”]’)) document.querySelectorAll(‘[name=”checkout”]’).forEach(elem => elem.disabled = false) } localStorage.setItem(‘nvd_opted_out’, false); localStorage.setItem(‘cart_protection’, add); if (reload) { location.reload(); } }).catch(err => { if (document.querySelectorAll(‘[name=”checkout”]’)) document.querySelectorAll(‘[name=”checkout”]’).forEach(elem => elem.disabled = false) }); }); }; // widget switch on/off listener function const getShippingProtection = async (variantId, price, element) => { if (!element.checked) { useConsole(‘unchecking and removing protection’); await removeProtection(variantId, true); } else { useConsole(‘checked and adding protection’); await addProtection(parseInt(variantId), 1, true); } }; // function to update subtotal and dom cart item’s line id const updateLiveCart = async (cartData = null) => { let cart = cartData; if (cart == null) cart = await getCartCallback(); let shopCurrency = ‘${{amount}} USD’; let totalPrice = Shopify.formatMoney(cart.total_price, shopCurrency); let cartItems = cart.items; let totalCount = cart.item_count; let opted_out = Boolean(JSON.parse(localStorage.getItem(‘nvd_opted_out’))); // change the cart item class name here. let lineAttribute = ‘data-line’; let quantityPlus = ‘qty_plus’; let quantityMinus = ‘qty_minus’; let removeItem = ‘.remove’; let totalElem = document.querySelectorAll(‘.nvd-subtotal’); let cartCountElem = document.querySelectorAll(‘.cart-count’); let cartItemNodes = document.querySelectorAll(‘.cart-row’); let cartItemsList = Array.from(cartItemNodes); // if not opted out show one less in count if (!opted_out) current_count = totalCount – 1; if (opted_out) current_count = totalCount; if (cart.item_count == 0) current_count = 0; useConsole(‘current and cart count’, current_count, totalCount); if (totalElem) totalElem.forEach((elem) => (elem.innerHTML = totalPrice)); if (cartCountElem) cartCountElem.forEach((elem) => (elem.innerHTML = current_count)); await updateCartLine( lineAttribute, cartItemsList, cartItems, quantityPlus, quantityMinus, removeItem ); }; // function to update the line index in dom cart line items let updateCartLine = async ( lineAttribute, cartItemsList, cartItems, qtyPlus, qtyMinus, rmvItem ) => { useConsole(cartItemsList, lineAttribute); // for every line item in cart dom check with the cart items. await cartItemsList.forEach((item) => { if (item.innerHTML.toString().includes(‘/products/navidium-shipping-protection’) == true) { item.style.display = ‘none’ } cartItems.forEach((cartItem, index) => { if (item.innerHTML.toString().includes(cartItem.url)) { useConsole(item.querySelector(`[${lineAttribute}]`)); let lineItem = item.querySelectorAll(`[${lineAttribute}]`); let removeItem = item.querySelectorAll(rmvItem); let quantityPlus = item.querySelectorAll(qtyPlus); let quantityMinus = item.querySelectorAll(qtyMinus); if (lineItem) item.setAttribute(lineAttribute, index + 1) lineItem.forEach((item) => item.setAttribute(lineAttribute, index + 1) ); if (quantityPlus) quantityPlus.forEach((item) => item.setAttribute( ‘data-href’, `/cart/change?quantity=${cartItem.quantity + 1}&line=${index + 1 }` ) ); if (quantityMinus) quantityMinus.forEach((item) => item.setAttribute( ‘data-href’, `/cart/change?quantity=${cartItem.quantity – 1}&line=${index + 1 }` ) ); if (removeItem) removeItem.forEach((item) => item.setAttribute( ‘href’, `/cart/change?line=${index + 1}&quantity=0` ) ); useConsole(‘line id updated’); } }); }); }; // opt in message toggle function const checkWidgetView = () => { let optedOut = localStorage.getItem(‘nvd_opted_out’); let selected = document.querySelectorAll(‘.nvd-selected’); let deselected = document.querySelectorAll(‘.nvd-dis-selected’); if (optedOut == ‘true’) { selected.forEach(elem => { elem.style.display = ‘none’ }) deselected.forEach(elem => { elem.style.display = ‘block’ }) } else { selected.forEach(elem => { elem.style.display = ‘block’ }) deselected.forEach(elem => { elem.style.display = ‘none’ }) } }; // function that will track the widget real time const trackWidget = () => { let nvd_running = localStorage.getItem(‘nvd_running’); let startTracking = setInterval(() => { let nvdContainer = document.querySelector(‘.nvd-mini’); let hasWidget; if (nvdContainer) hasWidget = nvdContainer.innerHTML.length; if (hasWidget { let shopCurrency = ‘${{amount}} USD’; let nvd_name = shopConfig.nvd_name; let nvd_subtitle = shopConfig.nvd_subtitle; let nvd_description = shopConfig.nvd_description; let nvd_message = shopConfig.nvd_message; let protection_price = priceFromApi; let protected_variant = nvd_variant; let widgetIcon = shopConfig.widget_icon; let protection_checkbox = checked ? ‘checked’ : ” let selectedStyle = protection_checkbox ? “‘display: block'” : “‘display: none'”; let diselectedStyle = protection_checkbox ? “‘display: none'” : “‘display: block'”; var snippet = ` Navidium icon

${nvd_name}

Helmets for Field Use

If you have any question please CONTACT  Us
Email us at:  info@discountsportsinc.com
Call US : (832) 722-8074

Don’t Forget to Visit our Shop 

For reliable and quality Managed IT Services and VoIP, Contact Precise Business Solutions 

Celtics, Patriots players join Fanatics for ‘Merch Madness’ fan gear

Fanatics and the New England Patriots hosted a local Merch Madness: Fan Gear Giveaway event for invited guests from local Boys & Girls Clubs at Gillette Stadium on Tuesday that drew Pats and Celtics stars.

More than 300,000 pieces of licensed apparel (with a retail value of approximately $15 million) will be donated to underserved youth and their families in markets across the country. The merchandise donated includes a combination of jerseys, T-shirts, hoodies, hats, jackets and more.

Attendees included Patriots Chairman and CEO Robert Kraft, Fanatics CEO Michael Rubin, Patriots defensive backs Jonathan Jones and Jalen Mills, hip-hop star Lil’ Baby, Boston Celtics stars Jayson Tatum and Grant Williams.

(Copyright (c) 2022 Sunbeam Television. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed.)

Join our Newsletter for the latest news right to your inbox

Celtics, Patriots players join Fanatics for ‘Merch Madness’ fan gear

If you have any question please CONTACT  Us
Email us at:  info@discountsportsinc.com
Call US : (832) 722-8074

Don’t Forget to Visit our Shop 

For reliable and quality Managed IT Services and VoIP, Contact Precise Business Solutions 


If you have any question please CONTACT  Us
Email us at:  info@discountsportsinc.com
Call US : (832) 722-8074

Don’t Forget to Visit our Shop 

For reliable and quality Managed IT Services and VoIP, Contact Precise Business Solutions 


If you have any question please CONTACT  Us
Email us at:  info@discountsportsinc.com
Call US : (832) 722-8074

Don’t Forget to Visit our Shop 

For reliable and quality Managed IT Services and VoIP, Contact Precise Business Solutions 


If you have any question please CONTACT  Us
Email us at:  info@discountsportsinc.com
Call US : (832) 722-8074

Don’t Forget to Visit our Shop 

For reliable and quality Managed IT Services and VoIP, Contact Precise Business Solutions