Connect with us

California

Atmospheric Rivers in California Create a Perfect Storm of Public Health Risks – Inside Climate News

Published

on

Atmospheric Rivers in California Create a Perfect Storm of Public Health Risks – Inside Climate News


After a torrential downpour, most post-storm damages are impossible to miss: submerged cars, houses torn in half by fallen trees, debris floating through the streets. But in California, extreme weather is also mixing up a soup of rain and disease.

Climate-fueled outbreaks: In Southern California, an atmospheric river unleashed more than a foot of rain in parts of the region at the start of February. These types of storms also ravaged the state last year, following a decades-long period of drought. The climate-fueled cycle of rain and drought is driving an uptick in a fungal disease known as coccidioidomycosis, or Valley fever, reported Grist last week. As it rains, the fungi proliferates in the soil, and when it dries out, spores are kicked up from the ground and into people’s noses or throats, potentially leading to pneumonia-like symptoms of cough and fever. 

Scientists sounded the alarm bells for rising Valley fever cases due to changing environmental conditions in 2022, but the data has since become even more stark. There were more than 9,280 new cases of Valley fever with onset dates in 2023, which is the highest number ever recorded in this region by the California Department of Public Health. Around 200 people in the United States die from severe cases of this respiratory disease every year. 

We’re hiring!

Please take a look at the new openings in our newsroom.

Advertisement

See jobs

Also mixed into the post-storm soup of ocean water, fungi spores, rain and debris in California? Millions of gallons of untreated sewage. This bacteria-ridden wastewater poses a severe public health threat, particularly for those closest to the California-Tijuana border, which I wrote about earlier in February. Two local San Diego doctors I spoke with told me a particularly unsettling statistic: After Tropical Storm Hilary slammed into Southern California in August 2023, their practice saw a 560 percent increase in diarrheal illness cases. 

A report released last week by scientists at San Diego State University further underscored the severity of this public health threat, adding that wastewater can also carry toxic chemicals alongside bacteria. California government representatives are currently advocating for $310 million in federal funds to refurbish the state’s dilapidated sewage treatment plant at the border — an increasingly urgent request as the state currently faces another round of storms fueled by the atmospheric rivers. 

Disease, water and war: Unfortunately, this kind of post-storm sewage overflow can be seen well beyond California. In November, wastewater flowed through the streets of Gaza amid the Israel-Hamas War as storms pummeled the region and sanitation services stopped operating. With a short supply of clean drinking water, civilian camps were ravaged by disease, and cases of diarrhea in children under five increased from 48,000 to 71,000 in just one week starting Dec. 17, according to UNICEF.

Advertisement

“Our whole family has diarrhea that seems to be caused by the water we drink, or the cold weather,” Mahmoud Aziz, a 36-year-old who fled to Rafah, told the Washington Post on Dec. 13.  “We leave the windows open because of the bombing; we are afraid of the glass if there is a bombing.”

On Feb. 12, Israeli airstrikes killed more than 100 people in Rafah. 

Halting the Run on Dwindling Groundwater

A judge in Montana recently ruled in favor of landowners and ranchers fighting against a housing development project near Helena that could have put further stress on steadily declining groundwater reserves. 

Public defiance: Initially, the state and county governments had signed off on a developer’s plans to build 39 homes that would pull their water from wells, a project that was challenged by local residents in central Montana. But Broadwater County District Court Judge Michael McMahon found that the county commission and state’s Department of Natural Resources (DNRC) had conducted an “abjectly deficient” environmental assessment for the housing construction. 

His 85-page order stated that the offices’ approval of the project displayed “hostility” toward a previous court ruling that requires the government to consider the potential harms to the environment and groundwater before allowing for development. 

Advertisement

“It should give DNRC pause that citizens with seemingly no legal training appear to have a better grasp of the exempt well limits than DNRC, the agency charged with administering the Water Use Act,” McMahon wrote.  

While the coalition fighting this project celebrated the ruling, developers worried about its long-term implications. 

“Where are we going to house citizens of Montana?” Eugene Graf, president of the Montana Building Industry Association, told The New York Times, adding that he hopes state lawmakers revise the law. 

This story is funded by readers like you.

Our nonprofit newsroom provides award-winning climate coverage free of charge and advertising. We rely on donations from readers like you to keep going. Please donate now to support our work.

Donate Now

Advertisement

Shutting off the tap: If upheld, the “landmark” decision has the potential to curtail many new development projects in rural Montana, reported the Montana Free Press. The ruling isn’t the first of its kind: At the end of January, the Nevada Supreme Court unanimously ruled that the state can restrict new groundwater pumping if it will negatively affect other users and wildlife, while Arizona’s governor is pushing for broad reforms and the creation of groundwater-minded laws across the state, as my colleague Wyatt Myskow reported in December. 

These actions come amid a widespread reckoning against rampant groundwater usage. Last August, a New York Times investigation revealed that much of the U.S. is facing drastic declines in their aquifers as climate-fueled droughts force residents to rely more on groundwater supplies for water than rain or snowpack. More recently, a study showed that this pattern can be seen globally, with aquifers shrinking around the world. 

But not all hope is lost. 

“We also find cases where declining groundwater trends have been reversed following clever interventions,” Scott Jasechko, a water resources expert at the University of California, Santa Barbara who co-led the study, told my colleague Liza Gross. 

Advertisement

For example, Tucson, Arizona, reversed groundwater declines in some areas by constructing “leaky ponds,” which seeped much-needed water into aquifers, the study’s authors wrote in The Conversation. 

More Top Climate News

Hawaii is Considering a ‘Climate Tax’ for Tourists: Gov. Josh Green is spearheading a push to charge island visitors with a $25 tax to help offset the environmental impact of tourism, Jeremy Yurow reports for USA Today. The proposed bill would allocate the money toward initiatives to restore coral reefs, build greener infrastructure and implement measures to prevent wildfires like the ones that tore through Lahaina on Maui in August.

A New Satellite Tool Will Help Users Map Methane Leaks: Google recently partnered with the nonprofit Environmental Defense Fund to launch an AI-based satellite tool that could offer the most detailed look yet of global methane emissions from oil and gas operations. This could help governments pinpoint and plug the “types of machinery that contribute most to methane leaks,” Yael Maguire, who leads geo-sustainability efforts at Google, told James O’Donnell for MIT Technology Review. 

An update following Friday’s newsletterwhich covered the intense debate between Maine’s lobster industry and conservationists after an endangered North Atlantic right whale washed ashore in Martha’s Vineyard with lobster gear entangling its tail: Another dead North Atlantic right whale was spotted last week off the coast of Savannah, Georgia, this time with injuries consistent with a vessel strike. Boat collisions are one of the other leading killers of this marine giant alongside gear entanglements, and I covered a deep-dive of this issue in October if you’d like to learn more. 

Advertisement

Advertisement



Source link

California

Doctors, nurses arrested in Southern California health care fraud investigation

Published

on

Doctors, nurses arrested in Southern California health care fraud investigation


LOS ANGELES — The U.S. Department of Justice on Thursday announced what they called a major health care fraud takedown throughout Southern California, which included the arrest of doctors and nurses.

First Assistant U.S. Attorney Bill Essayli was joined during a press conference by several law enforcement agencies including the FBI, and Dr. Mehmet Oz, head of the Centers for Medicare and Medicaid Services.

They said they served a series of search and arrest warrants throughout the region, from Covina to Lakewood in Los Angeles County. Eight people were arrested and more than a dozen are being charged for suspected health fraud.

They also mentioned fraudulent hospice care.

Advertisement

“These defendants recruited beneficiaries who were not terminally ill, and paid them to pose as patients receiving hospice care. Medicare then paid millions of dollars – hundreds of millions of dollars – on false and fraudulent claims submitted by fraudsters,” said Essayli.

Among those arrested were a Covina couple. Prosecutors said 66-year-old psychologist Gladwin Gill and his wife, Amelou Gill, a registered nurse, operated a fraudulent hospice business out of Glendale.

“This particular hospice submitted more than $5.2 million in fraudulent claims, and Medicare actually paid out more than $4 million,” Essayli said.

Gill’s attorney told our sister station, ABC7 Eyewitness News in Los Angeles, he denies the allegations and looks forward to his day in court.

Oz announced a broader review of hospice providers in the state.

Advertisement

“We’re going to review every single hospice in California to make sure that they’re all appropriate, and we hope to do that expeditiously. We’ll do it this year,” Oz said.

During the news conference, federal authorities were questioned about a video California Gov. Gavin Newsom said in January his office was reviewing. In that video, Oz, who is Turkish American, was shown standing in front of an Armenian-owned bakery in Van Nuys while alleging widespread fraud in the area.

Essayli confirmed that none of the defendants named Thursday were connected to that video. Oz responded to outcry that his accusations, which the business owner denounced as false, were discriminatory.

“I was stating the facts as they’ve been explained to me, and we have a lot of evidence of where the fraud is, just looking at the numbers,” Oz said.

Oz did not provide any evidence against a specific business in connection to that video. He suggested that half of Los Angeles County hospice care facilities are fraudulent, pointing to survival percentages as evidence.

Advertisement

“World experts at CMS say if you’ve got 100% or near survival, certainly if you’ve got a survival over 50% for population that’s supposed to have passed in six months, you’ve got a problem,” he said.

Newsom responded to accusations that California had not done enough to address hospice fraud, saying in part, “The Trump Administration – home to the biggest fraudsters on Earth – is trying to blame California for issues with THEIR federal programs.”

His press office said the state has taken action for years, including suspending more than 280 licenses and banning new ones.

Copyright © 2026 KABC Television, LLC. All rights reserved.



Source link

Advertisement
Continue Reading

California

California law allowing people to cook, sell food from homes getting statewide push

Published

on

California law allowing people to cook, sell food from homes getting statewide push


A home-based food movement has been heating up in California, with home cooks turning their beloved family recipes into small businesses. 

When most people get laid off, they update their résumés. James Houlahan preheated his oven.

“It’s pretty brutal, and since nobody’s hiring, I just figured I need to make a job for myself,” he said.

So the San Francisco Bay Area resident went back to a family recipe and decided to take a risk, with a whisk. He started making pavlovas, a light, meringue-based Australian dessert, crisp on the outside and soft in the middle.

Advertisement

“It’s something my mom and I always joked about whenever we’d bring a pav to a party, this thing kills,” Houlahan said. “So we figured, someone’s gotta make a business out of this.”

So he did, out of his own kitchen in Alameda. 

And that’s not a loophole. A 2019 law called MEHKO, or Microenterprise Home Kitchen Operation, allows people to cook and sell food right out of their homes. Since then, more than 1,000 of these home kitchens have opened across California, operating under a growing but still patchwork system.

There are rules: food must be made from scratch and sold the same day. Not every county is on board, but there is now a push to expand it statewide.

Roya Bagheri, the executive director of The Cook Alliance, the nonprofit behind MEHKO, said the law is gaining momentum across the country as other states consider their own versions. 

Advertisement

“The cost of getting something like a food truck or a brick and mortar restaurant is so high, this creates an access to enter the food industry,” she said.

A study by the group showed more than a third of home kitchen operators have used MEHKO as a stepping stone into something bigger.

But for some, the law is still a little undercooked. Jot Condie, president and CEO of the California Restaurant Association, warned that some counties may not have the resources to take it on.

“If they don’t have the budget, there may not be a rigorous inspection procedure, and that is a huge concern for us,” Condie said.

As for Houlahan, he’s betting on his own kitchen and his mother’s name: Marianne’s Pavlovas. And his customers, like Flora Tso, are already sold.

Advertisement

“Nowadays it just gives us more choice,” she said.



Source link

Continue Reading

California

4.6 earthquake jolts Northern California awake, residents report shaking homes for miles

Published

on

4.6 earthquake jolts Northern California awake, residents report shaking homes for miles


4.6 earthquake jolts Northern California awake, residents report shaking homes for miles

Advertisement

READY… ACCORDING TO THE MONTEREY COUNTY OF EMERGENCY SERVICES THERE’S ONLY BEEN 429 EARTHQUAKES IN OUR AREA THAT ARE ABOVE A 4.0 MAGNITUDE. BUT OFFICIALS AND EXPERTS SAY IT IS ONLY A MATTER OF TIME UNTIL THE NEXT BIG ONE. NOW TO PREPARE YOU CAN SIGN UP WITH YOUR COUNTY’S EMERGENCY SERVICES ALERTS BY GOING ON THE COUNTY WEBSITE. YOU CAN ALSO DOWNLOAD THIS APP CALLED MYSHAKE. IF A QUAKE ABOVE 4.5 MAGNITUDE HITS CALIFORNIA, YOU CAN GET AN ALERT A FEW SECONDS YOU FEEL IT IN YOUR AREA. THAT DEPENDS ON HOW CLOSE YOUR ARE TO THE EPICENTER. IT WILL REMIND YOU WHAT TO DO AND ALLOWS YOU TO SHARE AND SEE WHAT DAMAGES HAVE BEEN REPORTED NEAR YOU. NOW DOWNLOADING SOME SORT OF ALERT SYSTEM IS IMPORTANT, ESPECIALLY FOR THOSE OF US LIVING NEAR THE COAST. I SPOKE WITH SANTA CRUZ COUNTY’S OFFICE OF EMERGENCY SERVICES, AND THEY HAD FOUR REMINDERS: FIRST ONE – PREP YOUR LIVING SPACE. TRY TO AVOID PLACING BOOKSHELVES AND BIG FURNITURE NEAR ENTRY WAYS THAT COULD FALL AND BLOCK DURING AN EARTHQUAKE. SECONDLY – LIKE FOR ANY NATURAL DISASTER: HAVE A PLAN. WHEN IT COMES TO AN EARTHQUAKE, UTILITIES LIKE YOUR WATER AND SEWER SYSTEM MAY NOT WORK. THIRD – MAKE SURE YOU HAVE A GO BAG PREPPED WITH YOUR FOOD, WATER, CASH… AND THE LAST ONE: PUT ALL YOUR ESSENTIAL IDENTITY AND HEALTH DOCUMENTS IN ONE PLACE SO YOU CAN JUST GRAB IT AND GO. THE BIGGEST EARTHQUAKE TO HIT OUR NECK OF THE WOODS WAS THE LOMA PRIETA QUAKE IN 1989. THAT CLOCKE

Advertisement

4.6 earthquake jolts Northern California awake, residents report shaking homes for miles

Updated: 9:36 AM CDT Apr 2, 2026

Editorial Standards

Advertisement

A magnitude 4.9 earthquake struck Northern California early Thursday, according to the U.S. Geological Survey, with many saying they felt their homes shake for a few seconds in a 100-mile stretch, including San Francisco. The quake hit at 1:41 a.m. PST east-southeast of Boulder Creek, the USGS said. It had a depth of 6.7 miles. Boulder Creek, which has about 5,000 people, is about 65 miles southeast of San Francisco.Some residents said they were first awakened by earthquake alerts on their phones, then felt their beds and windows shake. Some items were knocked off store shelves in Boulder Creek.The shaking was felt in other parts of the Central Coast, including Marina, where at least one resident said they felt slight shaking and were awakened by it.The National Tsunami Warning Center said there is no tsunami danger from the earthquake. No damage or injuries were immediately reported.

A magnitude 4.9 earthquake struck Northern California early Thursday, according to the U.S. Geological Survey, with many saying they felt their homes shake for a few seconds in a 100-mile stretch, including San Francisco.

Advertisement

The quake hit at 1:41 a.m. PST east-southeast of Boulder Creek, the USGS said. It had a depth of 6.7 miles. Boulder Creek, which has about 5,000 people, is about 65 miles southeast of San Francisco.

Some residents said they were first awakened by earthquake alerts on their phones, then felt their beds and windows shake. Some items were knocked off store shelves in Boulder Creek.

The shaking was felt in other parts of the Central Coast, including Marina, where at least one resident said they felt slight shaking and were awakened by it.

Advertisement

The National Tsunami Warning Center said there is no tsunami danger from the earthquake.

No damage or injuries were immediately reported.

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’;

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.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kcci.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

`;
}

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();
}
}

Advertisement

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’);
});

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’);
}
}

Advertisement

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 };

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’);
});
}
}

Advertisement

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’);

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.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kcci.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’);
}

Advertisement

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);
}

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);
}
}

Advertisement

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;

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…

Advertisement



Source link

Continue Reading

Trending