Connect with us

California

Rising seas and frequent storms are battering California’s piers, threatening the iconic landmarks

Published

on

Rising seas and frequent storms are battering California’s piers, threatening the iconic landmarks


More storms, rising seas and huge waves are taking their toll on California’s iconic piers that have dotted the Pacific coast since the Gold Rush, posing the biggest threat yet to the beach landmarks that have become a quintessential part of the landscape.

At least a half dozen public piers are closed after being damaged repeatedly by storms over the past two years. Repair costs have climbed into the millions of dollars.

Among those shuttered is the pier in Capitola built in 1857 that predates the northern California town and is a popular spot to watch passing whales and dolphins. Another damaged by storms in San Diego, the Ocean Beach pier, offers a bird’s eye view of surfers carving waves below.

More damage is possible this year with El Nino, which is expected to bring additional storms to California caused by the temporary warming of parts of the Pacific that changes weather worldwide. Back-to-back atmospheric rivers began drenching California on Friday.

Advertisement

City engineers are looking at redesigning piers to withstand bigger surf with a rise in sea levels. Others face relocation or removal.

“We are very much in a changed environment,” said Mike Beck, director of the Center for Coastal Climate Resilience at the University of California, Santa Cruz. “And we’re not going to be able to rebuild back in the same places and in the same ways that we did before. We’re going to have to think more clearly about how we design and where we put these.”

Most piers have undergone major repairs after enduring everything from to fires to erosion. But officials say they are now being damaged at an unprecedented rate.

Waves rising to heights topping 20-feet (6-meters) in late December pummeled the 855-foot-long (260.6-meter) Capitola Wharf in Santa Cruz County, only months after repairs following storms in January 2023 that collapsed a large section. The Capitola Wharf is a pier by nautical standards since it runs perpendicular to the shore, versus a traditional wharf running parallel.

San Diego’s Ocean Beach pier, a nearly 2,000-foot (609.6-meter) concrete structure built in 1966, has been repeatedly battered since 2019. The pier was still undergoing repairs after beatings from high surf that closed it twice last year when a monster swell in January wiped away a piling.

Advertisement

The city is exploring replacing the structure after spending more than $1.7 million in fixes over the past five years. It has secured $8.4 million in state funds for a new one. Among the three proposed designs is one with interconnected pathways, giving it a different look.

California’s state park service demolished the 93-year-old pier at Seaside State Beach near Aptos in Santa Cruz County after a January 2023 storm surge smashed it in half.

Communities are grappling with whether they can afford to keep their piers, which will need taller and stronger pilings that could make their historic look more industrial, Beck said.

But those are tough conversations for many who consider the piers almost sacred.

“It’s sometimes a little bit of a funny thing here in California, the way that we love our piers,” he said.

Advertisement

For generations, the structures have provided families, fishers, tourists and others a peaceful place to experience the ocean without getting wet.

In Ventura, west of Los Angeles, the Visitors & Convention Bureau waxes poetic about the pier built in 1872 that it calls the city’s centerpiece.

“Walk Ventura’s beaches and, in the distance, it wavers like a child’s matchstick project,” the bureau states on its website. “Sit on the sand at its base (on a calm day) and it whispers a lovely song any ocean (and pier) lover knows.”

California’s oldest piers served steamships and were lifelines for settlements to get lumber, bricks and cement with much of the coast decades from being reached by a railroad. Piers were later built for tourism like the Santa Monica pier, which has an amusement park with the world’s first solar-powered Ferris Wheel.

In December, Ventura’s pier already was undergoing repairs from the January 2023 storms when the monster swell that damaged San Diego’s pier around New Year’s eve also wiped away or damaged 19 pilings supporting Ventura’s pier.

Advertisement

Rising sea levels from global warming is causing the waves to be bigger off California’s coast, according to research. The coast is also seeing some of the highest tides of the season.

“We’re really seeing the confluence of all these factors coming together. And that’s going to keep happening,” Beck said. “And here in an El Nino year as well, we also see increases in sea levels, even over and above the kinds of increases that we predict long term with sea level rise.”

During a visit to Capitola last year to assess California’s widespread storm damage, President Joe Biden said global warming is challenging rebuilding efforts.

Capitola’s Public Works Director Jessica Kahn said climate change was taken into account for its $8 million pier project slated for completion this fall.

“The city went over many iterations and different designs and different tactics to make the wharf more resilient and finally settled on widening the wharf,” she said, adding that the narrow part of the trestle will go from three to six pilings.

Advertisement

The new pilings also will have the ability to be raised as sea levels go up.

Kahn said she has no doubt it is worth investing millions to preserve a relic of the past whose sole purpose today is for pleasure, given the number of memories soaked into the wooden wharf.

“When we had our damage here this past January of 2023, you would not believe the amount of phone calls we got. We got obviously from people nearby, but from people who come here annually, people who are out of the country,” she said.

Over the years, Inge Jechart has spent time on the pier gazing down at schools of anchovies being chased by seals as birds circle overhead.

As it undergoes repairs, she now stands on a bluff to watch the crews.

Advertisement

“I think they’re going to do a great job. Yes, we’re having stronger storms, and the weather is changing. But I think we can do it so that it’ll last longer,” she said. “And I think it’s absolutely worth it. It brings a community together. People love walking out there.”

___

Daley reported from Capitola, California.



Source link

Advertisement

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