Connect with us

Maine

A tenth of Maine’s pharmacies have closed in the past decade

Published

on

A tenth of Maine’s pharmacies have closed in the past decade


A typical day for Doug Edinger begins at 8:30 a.m., when he opens the doors to Seaside Pharmacy in Stonington, on the southern tip of Deer Isle.

The Ohio native moved to the Hancock County town with his family nearly 20 years ago. For the last decade he has owned and operated Seaside Pharmacy as its sole pharmacist, with his wife, Lydia, and daughter, Allison, assisting as pharmacy technicians.

Edinger, 69, regularly puts in 12-hour days, working well past his pharmacy’s retail hours. With the next-closest pharmacy 23 miles away in Blue Hill — a trip that requires crossing the length of Deer Isle and two bridges to get to the mainland — Edinger said he serves most of the island’s year-round population of nearly 900.

In the summer months, when the population swells, he often works even longer days.

Advertisement

“It’s quite a challenge on the old body,” Edinger said, “but we make it, and you know, we’re doing OK.”

As a significant number of Maine pharmacies have shuttered in the past decade, businesses like Seaside Pharmacy have had to carry a larger load.

In 2013, there were 314 pharmacies in the state. A tenth of those have closed.

In rural areas, the decline has been even steeper, with some counties losing more than a fifth of their pharmacies in the past decade.

Growing gaps in pharmacy access

Advertisement

There are currently 283 pharmacies in the state, according to the Maine Department of Professional and Financial Regulation.

Of those, just 20 percent are independently owned, like Edinger’s; 79 percent are owned by chains such as CVS, Walgreens or Hannaford. The rest are specialty retail pharmacies, such as those serving long-term care facilities or veterinary pharmacies.

A Maine Monitor analysis of pharmacy licensing data found that since 2013 the number of pharmacies has decreased in 11 of the state’s 16 counties.

The greatest declines were in Washington and Somerset counties, where the total number dropped by 31 and 22 percent, respectively. Per capita, Waldo, Somerset, Oxford, Sagadahoc and York counties have the fewest pharmacies — ranging from 1.3 to 1.6 per 10,000 people.

A comparison of Maine pharmacy locations in 2013 and 2024. A 2022 study in the Journal of the American Pharmacists Association found that in large urban areas nationwide, 63 percent of pharmacies were chains, whereas in rural areas, 77 percent were franchises or independent pharmacies. Chains are indicated in red. View the interactive maps: 2013 and 2024.
Source data from the Maine Department of Professional and Financial Regulation, Maine Board of Pharmacy. Maps and analysis by Emily Bader

A 2021 analysis by researchers at GoodRx found that in every Maine county except Cumberland, York and Sagadahoc, at least a third of residents live more than a 15-minute drive from the closest pharmacy.

Advertisement

Access was the worst in Washington County, where 84 percent of the county’s 31,000 residents lived more than 15 minutes from the nearest pharmacy.

The Monitor’s analysis found the number of pharmacies in Washington County has decreased from 13 to 9 in the past decade. Two of the remaining locations are within tribal health clinics, and the rest are in Calais, Machias, Milbridge and Eastport.

Today there are 28 fewer independent pharmacies statewide than in 2013, the Monitor found.

Most counties saw a significant drop in independents over the past decade. In York County, for example, the total dropped from seven independent pharmacies to just one.

Feeling the squeeze

Advertisement

Lee Ohmart, a retired Brewer pharmacist, got his start working for his father, who owned three independent pharmacies, Ohmart and Hinckley Pharmacies, in the Bangor area. One night, Ohmart recounted, while “struggling to pay bills, my father looked at me and said, ‘You better really like owning a business. With the way chains and the insurance companies are squeezing us, you will work more hours than your chief pharmacist and you will end up being paid less.’”

Independent pharmacies are getting squeezed by pharmacy benefit managers, middlemen that negotiate pharmacies’ reimbursement rates with insurance companies and manufacturers, said Emily Dornblaser, an associate professor at the University of New England School of Pharmacy, in an interview with The Maine Monitor last fall.

Some pharmacy benefit managers are owned by insurance companies that also own the retail pharmacies. For example, the health insurance company Aetna, pharmacy benefit manager CVS Caremark and CVS Pharmacy are all subsidiaries of CVS Health Corporation. Aetna will often give customers preferential drug pricing at CVS pharmacies, or only cover prescriptions filled at a CVS.

The system leaves independent pharmacies without access to drug discounts the big chains get and with worse reimbursement rates, Dornblaser said.

“That has really been one of the reasons that independent pharmacies have been gutted, because they cannot actively compete with such large, organized health-care system entities that span insurance to distribution,” she said.

Advertisement

But the large chains have had their own problems, and have closed a number of stores across the state in recent years.

Rite Aid, which filed for bankruptcy last fall, closed three Maine locations in 2018 and sold the remaining 76 to Walgreens. Since then, Walgreens has closed 21 stores, including some still operating under the Rite Aid name.

Just last week, Walgreens shut down a store on Main Street in Lewiston. CVS closed two stores in 2020. Both chains announced hundreds of closures nationwide last year.

“The mantra was like: a pharmacy on every corner. And you used to see corners where there was a Walgreens and the Rite Aid or CVS like directly across from each other. And now that’s definitely not the case,” Dornblaser said. “I think the companies are recognizing that there’s not a lot of volume at those stores, and the cost to staff them is not worth it and that’s why they’re closing.” 

A sign listing the pharmacy's operating hours.
A sign inside the Walgreens at 713 Congress St. in Portland displays the pharmacy’s new hours. Respondents to a Maine Monitor survey reported many frustrations with chain pharmacies, including reduced hours, long wait times and automated messages that incorrectly told them prescriptions were ready when they weren’t. Photo by Stephanie McFeeters.

Many chain locations across Maine appear to have had staffing trouble.

One Washington County resident said they drive 24 miles one way from their home in Addison to the Walgreens in Machias to pick up prescriptions, and often find that even when submitting refill requests days in advance, one or more of their prescriptions aren’t ready when they arrive.

Advertisement

“What ends up happening is after I’ve started to go home, halfway home I get a notification on my phone that the other prescription is ready and I can’t turn around and go back,” the resident said in response to a Maine Monitor survey conducted last week.

“They don’t have enough people to cover the pharmacy. I waited one day for a half an hour, and I never got waited on and so I walked out.”

Maine law says a pharmacy must have a pharmacist in charge working and must be open at least 40 hours a week, or it must notify the Maine Board of Pharmacy, which licenses and regulates pharmacies, pharmacists and technicians.

In 2022, Walgreens — the state’s largest pharmacy chain — paid more than $68,000 in fines after the Board of Pharmacy found that 10 locations, including the one in Machias, failed to have a pharmacist in charge or reduced its hours without notice.

“We continue to meet, and in most locations exceed, the Maine Board of Pharmacy’s requirement for retail pharmacies to be open 40 hours per week,” a Walgreens spokesperson said in an email, noting there is “a shortage of pharmacists across the country, which has led to some adjusted pharmacy operating hours or temporary closures, including those in Maine.”

Advertisement

As the Monitor reported in the fall, this nationwide shortage of pharmacists has led to sudden closures and irregular hours at chain locations across the state.

In the mid-2000s, a wave of new pharmacy schools opened to meet the shortage of pharmacists. But then the 2008 recession hit, and as more people were entering the profession, fewer were retiring, Dornblaser said. By the late 2010s, jobs had become more competitive and wages had stagnated or dropped, leading pharmacy school enrollment to drop. 

Then came the pandemic and the COVID-19 vaccination rollout, which added a new dimension to pharmacists’ jobs. Last fall pharmacy staff at some CVS and Walgreens locations across the country walked off the job to protest what organizers said were untenable working conditions.

Independent pharmacies a beacon in rural communities

When Audrey Parks opened Western Maine Pharmacy in Kingfield in 2011, she said there hadn’t been another pharmacy in the town for at least 50 years.

Advertisement

According to licensing records, Mt. Abram Regional Health Center is the only other pharmacy Kingfield has had. But newspaper clippings reveal the pharmacy did not fill its own prescriptions and instead outsourced that work to now-shuttered pharmacies in Farmington and Madison. The health center withdrew the pharmacy license in 2011.

Parks’ pharmacy serves a huge swath of northwestern Franklin County that runs west past Rangeley to the New Hampshire border, and north on Route 27, past Carrabassett Valley and Eustis all the way to the Canadian border.

Betty Ann Listowich, who lives in Freeman Township in Franklin County, said before Western Maine Pharmacy opened, she had to travel 20 miles to Farmington to get her medications. Now her drive is only four miles.

“They know who we are and are extremely helpful,” she said.

the exterior of the western maine pharmacy as seen from the parking lot
Western Maine Pharmacy, in Kingfield, opened in 2011. Owner and pharmacist, Audrey Parks, said there hadn’t been another pharmacy in the town for at least 50 years. Photo by Audrey Parks.

A 2022 study in the Journal of the American Pharmacists Association found that in large urban areas nationwide, 63 percent of pharmacies were chains; in rural areas, 77 percent were franchises or independent pharmacies. 

Among the 79 people who responded to The Maine Monitor’s survey last week, many said they have had only positive experiences at local independent pharmacies, including Carroll Drug Store in Southwest Harbor, Harris Drug Store in Greenville, Wilson’s Drug Store in Bath, Belfast Drug Company in Belfast, and Mt. Blue Drug in Farmington.

Advertisement

Several also praised the locally owned chain Community Pharmacies, which has locations in Bucksport, Corinth, Cornish, Gorham, Hermon, Randolph, Saco and Waldoboro. 

A Camden resident who uses Jensen’s Pharmacy in Rockland said they prefer independent pharmacies “because of their ability to hear you.”

“There’s nothing we can do”

Those who rely on CVS and Walgreens reported a number of frustrations, including long waits, reduced hours — many are not open on weekends — and automated messages that told them prescriptions were ready when they weren’t.

Asked if they ever had trouble filling a prescription, a South Bristol resident said, “Yes. If it’s Friday, Saturday, Sunday or Monday.” 

Advertisement

They noted there are only two pharmacies in Damariscotta — a Walgreens and a Hannaford — and said one is closed on weekends and can take four to five days to fill prescriptions, while the other often has a line out the door. 

“Very hard for a single person to get prescriptions when sick,” they said.

Another respondent, from Islesboro, said, “Just Saturday I went to pick up a prescription and discovered that the pharmacy is now closed on Saturdays.”

In an email, a CVS Pharmacy spokesperson said, “We strive to ensure we have appropriate levels of staffing and resources in place at each of our pharmacies through a combination of staffing, labor hours, workflow process and technology.”

Several respondents mentioned they get some prescriptions by mail, but that’s not possible for drugs that need to be refrigerated.

Advertisement

One woman, whom the Monitor is identifying by her first name, Betsy, to protect her privacy, said she noticed her usual pharmacy, the Hannaford in Gardiner, falling more and more behind over the past 18 months.

It came to a head in December when she went to pick up her daughter’s prescription for mood stabilizers to treat bipolar disorder.

Betsy said she made the 21-mile drive from her home in Richmond, in Sagadahoc County, to Gardiner to pick up the prescription, as she has done for years. When she got to the pharmacy, she was told she could wait 40 minutes or come back the next day.

When she returned the next day she was told the same thing: wait 40 minutes or come back tomorrow. This continued for days. On the fifth day, she said she was getting agitated because her daughter had run out of medication.

“Now I’m getting angry,” she said. “But they’re just like, ‘You know, there’s nothing we can do.’ ”

Advertisement

She made the trip seven times in 10 days. After her daughter went two days without medication, Betsy borrowed a few days’ worth of pills from her son, who also has bipolar disorder and takes the same medication. It was Christmastime, stress levels were high and her daughter was going through withdrawal. Had her son not been able to help, Betsy said the situation would have been dire.

“I would have stood in the middle of the pharmacy and started screaming,” she said. “Honestly, I think I would have lost it.”

A Hannaford Supermarkets spokesperson said the company apologizes for any inconvenience customers may have faced. “When a prescribed medication is unavailable, we may require more time to fill a prescription while we work with the provider to identify a comparable alternative,” she said.

Despite the frustrations, several respondents said the pharmacists seem to be doing the best they can given staff shortages, and noted that having to provide vaccinations alongside filling prescriptions is a lot to manage. 

“The staff is doing their best but they are constantly overwhelmed,” said a Bath resident.

Advertisement

Edinger, the Stonington pharmacist, said even with the long days, he loves what he does.

“I wouldn’t be doing this if I didn’t,” he said. “It’s nice to be working with your family. And the customers are more like our neighbors and friends than they are customers.”

Edinger ended up in Stonington in the early 2000s because a local pharmacy had closed.

“It was a real hardship to the community. That’s how I got called to the island. One of the local businesses wanted to bring a pharmacy onboard inside their business and they asked me to come and start it for him. So that’s how I got here,” he said.

Asked what would happen if Seaside Pharmacy closed, Edinger said that’s not a possibility.

Advertisement

“The island needs a pharmacy,” he said. “There’s no option to close.”





Source link

Advertisement
Continue Reading
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Maine

Police warn of scam targeting sex offenders in Maine

Published

on

Police warn of scam targeting sex offenders in Maine


A letter is being sent that asks registered sex offenders to email personal information

Advertisement

Maine State Police

scam letter targeting sex offenders in maine

SOURCE: Maine State Police

Advertisement

State Police warn of scam targeting sex offenders in Maine

Advertisement

A letter is being sent that asks registered sex offenders to email personal information

WMTW logo

Updated: 11:10 AM EDT Apr 8, 2026

Editorial Standards

Advertisement

Maine State Police is warning of a scam that is targeting sex offenders in the state.The issue was brought to those who run the Sex Offender Registry that the scam is targeting registered people on probation in Maine. A letter is being mailed to people, claiming to be from the ‘Maine Probation Tonduary.’ The letter claims there has been a data migration error in the Records Management System and the registrant needs to email personal identifying information (PII) to an email address listed on the letter. Police say neither the Maine Sex Offender Registry nor the Maine Department of Corrections would ever send such a letter asking a person to send sensitive information in this format. If you have received such a letter, you should not email your information to the address on the letter. Instead, report it to the Maine Sex Offender Registry at 207-624-7270 or local law enforcement.

Maine State Police is warning of a scam that is targeting sex offenders in the state.

The issue was brought to those who run the Sex Offender Registry that the scam is targeting registered people on probation in Maine.

Advertisement

A letter is being mailed to people, claiming to be from the ‘Maine Probation Tonduary.’ The letter claims there has been a data migration error in the Records Management System and the registrant needs to email personal identifying information (PII) to an email address listed on the letter.

scam letter targeting sex offenders in maine

Advertisement

Police say neither the Maine Sex Offender Registry nor the Maine Department of Corrections would ever send such a letter asking a person to send sensitive information in this format. If you have received such a letter, you should not email your information to the address on the letter. Instead, report it to the Maine Sex Offender Registry at 207-624-7270 or local law enforcement.

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

Advertisement

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

Advertisement

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

Advertisement

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wmtw.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wmtw.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

Advertisement

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

Advertisement

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

Advertisement

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

Advertisement

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

Advertisement

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wmtw.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wmtw.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

Advertisement

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

Advertisement

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…



Source link

Advertisement
Continue Reading

Maine

2026 Primary Election

Published

on

2026 Primary Election


Voting is the cornerstone of democracy, and in 2026 Mainers will have a lot of important decisions to make when casting their ballots — from the very top of the ticket to the bottom. On June 9, Mainers will participate in the state’s semi-open party primaries, choosing Democratic and Republican nominees for governor, as well […]



Source link

Continue Reading

Maine

Regular gas tops $4, premium over $5 in Maine amid severe Trump Iran threats

Published

on

Regular gas tops , premium over  in Maine amid severe Trump Iran threats


Brady Chapman fills up one of four trucks he uses for his business Wednesday at Irving Gas Station in Bethel. Regular gas was $4.09 at the station. (Rose Lincoln/Staff Writer)

Maine’s average price for regular gasoline rose to its highest point since August 2022, as the conflict in Iran continues to drive up global oil costs.

A gallon of regular gas averaged $4.03 here Tuesday, ticking up more than 6 cents overnight, according to data aggregated by motor club AAA. That price has risen 38.5% — about $1.12 — since Feb. 28, when the United States and Israel struck Iran, triggering a conflict that has since spilled into the broader Middle East.

Maine’s average price crossed the $4 threshold a week after the national average did so. The national average was up to $4.14 Tuesday, AAA data shows.

Advertisement

Premium gas was up to $5.07 per gallon in Maine, topping $5 for the first time in nearly four years. Diesel, meanwhile, averaged about $5.90 per gallon Tuesday.

Collectively, those figures mark the state’s highest average gas prices since the summer of 2022, when the Russian invasion of Ukraine drove gas prices to record highs. A gallon of regular gas peaked at $5.09 that June, the highest ever recorded by AAA.

This week, Maine’s prices were the 21st highest among the 50 states and Washington, D.C., according to AAA. California, Hawaii, Washington, Nevada and Oregon all saw average prices above $5 per gallon Tuesday.

This is a developing story.

Advertisement



Source link

Continue Reading

Trending