Connect with us

Iowa

Brad Fitzgibbon Values Iowa Football Offer

Published

on

Brad Fitzgibbon Values Iowa Football Offer


Brad Fitzgibbon’s relationship with Iowa has grown over time. The Chicago Marist defensive lineman spoke with HN about that after he visited campus for a spring practice in early April. 

The bond continued building since then. Hawkeye DL coach Kelvin Bell watched him work out at Marist a few weeks ago. They talked often since then. 

“So, when he asked to get on call (Thursday) night, I assumed it would be to catch up some more. But then he offered, and it was an honor,” Fitzgibbon told HN.

The scholarship was added to reported offers from Kansas, Michigan State, Arizona, Wisconsin, Kansas State, Iowa State and others. He’s set up official visits to East Lansing, MI (May 31) and Lawrence, KS (June 7). 

Advertisement

Fitzgibbon (6-4, 280) will officially visit the Hawkeyes. 

“We are setting up a date,” he said.

Bell has played a big role in putting the Hawkeyes in good position with Fitzgibbon. 

“I have been connecting with Coach Bell for some time. He’s been honest in how he handles his recruiting process and the value an offer holds from Iowa due to only a handful being extended to his players,” he said. 

“When I visited, coach Bell spent a few hours with me and my family, so I really had a great grasp of who he is as a person and coach after that.”

Advertisement

Fitzgibbon looks forward to his Iowa official visit. He hopes to get a feel for how he’d fit in with the program. 

“I want to spend time with the players and learn more about their culture. I also want to hear more about how they plan on developing me specifically. Academics are important to me, so I’m looking forward to talking with them about their resources for student-athletes,” he said. 

Fortunately for Fitzgibbon, he has an inside source with the Hawkeyes. Second-year cornerback John Nestor is a former high school teammate. 

“I played my sophomore year on varsity with Johnny his senior year. He’s my guy. He brings fire every second he can and was a great leader for me to look to being an underclassman on varsity,” Fitzgibbon said.

“I’ve talked with him and seen him often since he’s been at Iowa and got to see him practicing this past visit. He has nothing but top notch things to say about the football program, coaches, fans and university. He’s definitely doing his part pulling for Iowa.” 

Advertisement

While the Hawkeyes are getting strong consideration, Fitzgibbon is close with staffs at other schools. He thinks enough of Michigan State and Kansas to set up official visits. 

“I have truly met some of the most awesome guys in this recruiting process and built really strong relationships beyond just talking football, so it is going to be really tough. But reality is that I can only go to one school, and I have to think of where I can see myself the most and who I trust the most to develop me into the best football player and person I can be,” he said.

The 247Sports Composite ranking has Fitzgibbon as a three-star prospect, the No. 80 DL nationally in ’25 and the 23rd best player overall in Illinois for the cycle. The On3 Industry Ranking also sees him as a three-star recruit. That site puts him No. 74 on the D-Line and 22nd in his state. 

Fitzgibbon shines during his junior highlight video. He consistently pushes the pocket with his head up and eyes on the target before disengaging and making the stop. 



Source link

Advertisement

Iowa

Where new NFL Draft grades from The Athletic have Iowa players landing

Published

on

Where new NFL Draft grades from The Athletic have Iowa players landing


play

The NFL Draft is two weeks away, and new prospect grades for more than 50 Iowa college and high school football players have been released.

Here is what to know about the 2026 NFL Draft and a breakdown of the draft projections for Iowa players, according to The Athletic’s “The Beast,” its annual comprehensive NFL Draft scouting guide.

Advertisement

When is the 2026 NFL draft?

The 2026 NFL draft will begin with the first round on Thursday, April 23. Rounds 2 and 3 occur the following day, and the draft will conclude on its third day with Rounds 4-7 on Saturday, April 25.

Pittsburgh — home of the Steelers — will host the 2026 NFL draft. 

How did The Athletic grade Iowa college football players ahead of the 2026 NFL draft?

The Athletic’s “The Beast” report included rankings of players from Iowa, Iowa State, Northern Iowa, Drake, Grand View and Upper Iowa.

  • Gennings Dunker, guard: No. 5 out of 159 players at his position
    • Grade: 3rd round projection
  • Logan Jones, center: No. 3 out of 78 players at his position
    • Grade: 3rd-4th round projection
  • Max Llewellyn, defensive end: No. 18 out of 270 players at his position
    • Grade: 4th round projection
  • Beau Stephens, guard: No. 11 out of 159 players at his position
    • Grade: 4th-5th round projection
  • TJ Hall, cornerback: No. 24 out of 318 players at his position
    • Grade: 6th round projection
  • Kaden Wetjen, wide receiver: No. 30 out of 380 players at his position
    • Grade: 6th round projection
  • Karson Sharar, linebacker: No. 24 out of 243 players at his position
    • Grade: 7th round projection
  • Drew Stevens, kicker: No. 3 out of 40 players at his position
    • Grade: 7th round-free agent projection

  • Mark Gronowski, quarterback: No.17 out of 99 players at his position
    • Grade: 7th round-free agent projection
  • Xavier Nwankpa, safety: No. 23 out of 271 players at his position
    • Grade: 7th round-free agent projection
  • Bryant Worrell, long snapper: No. 20 out of 48 players at his position
  • Hayden Large, tight end: No. 33 out of 156 players at his position
  • Aaron Graves, defensive tackle: No. 67 out of 249 players at his position
  • Ethan Hurkett, defensive end: No. 84 out of 270 players at his position
  • Jonah Pace, defensive tackle: No. 84 out of 249 players at his position
  • Seth Anderson, wide receiver: No. 87 out of 380 players at his position,
  • Jacob Gill, wide receiver: No. 106 out of 380 players at his position
  • Bryce George, guard: No. 107 out of 159 players at his position
  • Sam Phillips, wide receiver: No. 118 out of 380 players at his position,
  • Shahid Barros, cornerback: No. 195 out of 318 players at his position
  • Derek Anderson, tight end: No. 104 out of 156 players at his position
  • Blake Anderson, offensive tackle: No. 109 out of 146 players at his position
  • Bill Jackson, running back: No. 111 out of 213 players at his position
  • Mo Olowo, safety: No. 122 out of 271 players at his position
  • Caleb Frazer, linebacker: No. 177 out of 243 players at his position
  • Tucker Langenberg, linebacker: No. 193 out of 243 players at his position
  • Jonathan Cabral-Martin, cornerback: No. 198 out of 318 players at his position
  • Domonique Orange, defensive tackle: No. 6 out of 249 players at his position
    • Grade: 2nd-3rd round projection
  • Tyler Perkins, punter: No. 13 out of 40 players at his position
  • James Neal III, offensive tackle: No. 27 out of 146 players at his position
  • Jim Bonifas, center: No. 27 out of 78 players at his position
  • Tyler Miller, offensive tackle: No. 53 out of 146 players at his position
  • Tamatoa McDonough, defensive end: No. 56 out of 270 players at his position
  • Dylan Barrett, guard: No. 65 out of 159 players at his position
  • Tyler Moore, tight end: No. 76 out of 156 players at his position
  • Cannon Butler, defensive end: No. 101 out of 270 players at his position
  • Tyler Maro, offensive tackle: No. 128 out of 146 players at his position
  • Eli Green, wide receiver: No. 185 out of 380 players at his position
  • Myles Mendesoon, defensive end: No. 205 out of 270 players at his position

Drake Bulldogs

Advertisement
  • Brett Welsing, long snapper: No. 17 out of 48 players at his position

Grand View Vikings

  • Jackson Waring, quarterback: No. 53 out of 99 players at his position
  • John Argo, linebacker: No. 56 out of 243 players at his position

Upper Iowa Peacocks

  • Mante Morrow, wide receiver: No. 142 out of 380 players at his position

Iowa natives playing elsewhere

These Iowa high school players finished playing college football outside the state but still earned spots in The Athletic’s “The Beast” draft guide.

  • Kadyn Proctor (Alabama, Southeast Polk), offensive tackle: No. 4 out of 146 players at his position
    • Grade: 1st-2nd round projection
  • Eli Raridon (Notre Dame, Valley), tight end: No. 9 out of 156 players at his position
    • Grade: 4th round projection
  • Mosai Newsom (South Dakota, Waverly-Shell Rock), defensive tackle: No. 93 out of 249 players at his position
  • Nate Ewell (South Dakota, Waterloo West), linebacker: No. 88 out of 243 players at his position,
  • Henry Lutovsky (Nebraska, Mount Pleasant), guard: No. 29 out of 159 players at his position

  • Jase Bauer (UT Martin, Ankeny), quarterback: No. 51 out of 99 players at his position
  • Harrison Waylee (Virginia, Urbandale), running back: No. 80 out of 213 players at his position
  • Noah Fenske (Southern Illinois, New Hampton), center: No. 26 out of 78 players at his position
  • TJ Bollers (California, Clear Creek Amana), defensive tackle: No. 60 out of 249 players at his position
  • Carter Hewitt (Illinois, South Hamilton), defensive tackle: No. 156 out of 249 players at his position

How to watch the 2026 NFL draft

Live coverage of the NFL draft can be found on ESPN, ESPN2, ESPN Deportes and the NFL Network. Coverage is also available on NFL+, ESPN Select, ESPN Unlimited and Fubo TV.

  • Thursday, April 23: Round 1 starts at 7 p.m. CT
  • Friday, April 24: Round 2 and Round 3 start at 6 p.m. CT
  • Saturday, April 25: Rounds 4-7 start at 11 a.m. CT

Watch the NFL Draft on ESPN+

Cooper Worth is a service/trending reporter for the Des Moines Register. Reach him at cworth@gannett.com or follow him on X @CooperAWorth.



Source link

Continue Reading

Iowa

Iowa lawmakers advance bill to support sexual assault survivors

Published

on

Iowa lawmakers advance bill to support sexual assault survivors


House File 705 would fund nonprofit sexual assault forensic exam centers, aiming to improve care and evidence collection for survivors.

Advertisement

Iowa lawmakers advance bill to support sexual assault survivors

House File 705 would fund nonprofit sexual assault forensic exam centers, aiming to improve care and evidence collection for survivors.

Advertisement

COMPLAINT. HE’S SCHEDULED TO APPEAR IN COURT ON APRIL 17TH, LESS THAN TWO WEEKS REMAIN IN THE LEGISLATIVE SESSION HERE IN IOWA AS WE TAKE A LIVE LOOK FROM THE STATEHOUSE IN DOWNTOWN DES MOINES TODAY, A BILL TO EXPAND SERVICES FOR SEXUAL ASSAULT SURVIVORS IS MOVING FORWARD. HOUSE FILE 705 WOULD CREATE A GRANT PROGRAM TO SUPPORT NONPROFIT SEXUAL ASSAULT FORENSIC EXAM CENTERS ACROSS IOWA. SUPPORTERS SAY THE FUNDING WOULD HELP ENSURE VICTIMS HAVE ACCESS TO SPECIALIZED CARE AND EVIDENCE COLLECTION SERVICES. WHEN TYPICALLY OUR VICTIMS DON’T FEEL SEEN, THEY DON’T FEEL HEARD AND THEY DON’T FEEL RELIEVED TO JUST KNOW THAT TO MAKE IT THIS FAR, THE COMMUNITY DOES SEE THEM AND HEAR THEM. AND YOU KNOW, WE NEED YOUR HELP TO GET STARTED SO THAT WE CAN ENSURE THAT THOSE SERVICES ARE DELIVERABLE. YOU KNOW, WE CAN BUILD IT, BUT WE NEED WE NEED TO KEEP ACCESS OPEN AND AVAILABLE TO THEM BY BEING ABLE TO PROVIDE THAT. SO AND THE BILL PASSED

Advertisement

Iowa lawmakers advance bill to support sexual assault survivors

House File 705 would fund nonprofit sexual assault forensic exam centers, aiming to improve care and evidence collection for survivors.

Updated: 9:29 PM CDT Apr 8, 2026

Editorial Standards

Advertisement

Iowa lawmakers are advancing House File 705, a bill that would create a grant program to support nonprofit sexual assault forensic exam centers across the state. The bill passed a House subcommittee today and now heads to a full committee for further debate and a vote. It would require the attorney general’s office to contract with an Iowa-based nonprofit specializing in caring for survivors of sexual abuse or assault. Shannon Knudsen, who founded the S.A.F.E. Center of Iowa, says the funding would help ensure victims have access to specialized care and evidence collection services. “We need your help to get started so that we can ensure that those services are deliverable,” Knudsen said to lawmakers. “We can build it, but we need to keep access open and available to them.” Because this bill was filed under Appropriations, it did not have to pass by specific deadlines to stay active. The current session is set to end on April 21, which is when per diem ends for lawmakers. A statewide budget has to be passed by both chambers before lawmakers gavel out.

Iowa lawmakers are advancing House File 705, a bill that would create a grant program to support nonprofit sexual assault forensic exam centers across the state.

Advertisement

The bill passed a House subcommittee today and now heads to a full committee for further debate and a vote. It would require the attorney general’s office to contract with an Iowa-based nonprofit specializing in caring for survivors of sexual abuse or assault.

Shannon Knudsen, who founded the S.A.F.E. Center of Iowa, says the funding would help ensure victims have access to specialized care and evidence collection services.

“We need your help to get started so that we can ensure that those services are deliverable,” Knudsen said to lawmakers. “We can build it, but we need to keep access open and available to them.”

Advertisement

Because this bill was filed under Appropriations, it did not have to pass by specific deadlines to stay active. The current session is set to end on April 21, which is when per diem ends for lawmakers. A statewide budget has to be passed by both chambers before lawmakers gavel out.

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

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

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

Iowa

USDA Rural Development invests $11.5 million in 13 Iowa projects, including in Osage

Published

on

USDA Rural Development invests .5 million in 13 Iowa projects, including in Osage


OSAGE, Iowa (KTTC) – Utility and cooperatives across the state of Iowa are receiving millions of dollars in financial assistance from the federal government.

The money comes from the U.S. Department of Agriculture’s Rural Development.

Grant money totaling about $11.5 million in loans will be allocated to 13 projects, including two in Osage.

Heartland Power Co-op and Osage Municipal Utilities will receive $1 million each to support A to Z Drying Incorporated, an Osage manufacturing plant.

Advertisement

The funding will help the company acquire a 234,000 square-foot production and warehouse facility to expand its business.

The other Iowa projects receiving financial assistance include:

  • Iowa State University’s AgMRC Center
    • Receiving a $1.4 million grant through the Agricultural Marketing Resource Center Grants program to provide independent producers and processors with critical information needed to build successful value-added agricultural enterprises through the center’s website.
  • Corn Belt Power Cooperative
    • Receiving a $952,000 loan to provide a pass-through loan to Kinetic Technologies LLC. This project will enable the manufacturing business to construct a new facility in Algona, in Kossuth County, Iowa.
  • Central Iowa Power Cooperative
    • Receiving a $1 million loan to provide a pass-through loan to Continental Manufacturing Chemist Inc. in Huxley, in Story County, Iowa. This project will purchase equipment and software to help expand the company’s custom packaging business.
  • Southern Iowa Electric Cooperative Inc.
    • Receiving a $1 million loan to provide a pass-through loan to TSM Holding LLC/M3 Fabrication LLC. This project will purchase new powder coating equipment and construct a 56,000 square foot building expansion to house the company’s powder coating processes in Bloomfield, Davis County, Iowa.
  • North West Rural Electric Cooperative
    • Receiving a $1 million loan to provide a pass-through loan to Hemp Agra LLC. This project will purchase equipment for the industrial hemp processing facility in Rock Valley, Sioux County, Iowa. The equipment will process raw hemp into components used in the construction, textiles, composites, and pet care industries.

According to the USDA, six other Iowa companies will receive grant money through the Higher Blends Infrastructure and Incentive Program to help create infrastructure and expand the sale and usage of renewable fuels.

  • Rainbo Oil Company
    • Receiving a $589,648 grant to retrofit eight E15 dispensers, install four E15 dispensers, eight B20 dispensers, two ethanol storage tanks, and one biodiesel storage tank across five fueling stations located in Delhi in Delaware County, Iowa, and four stations in Dubuque in Dubuque County, Iowa.
  • Multi-County Oil Co.
    • Receiving a $411,108 grant to install two E15 dispensers, two E85 dispensers, two B20 dispensers, one ethanol storage tank, and one biodiesel storage tank at two fueling stations in North English and Keswick in Keokuk County, Iowa.
  • C&D Car Wash LLC
    • Receiving a $411,000 grant to install three E15 dispensers, one B20 dispenser, one ethanol storage tank, and one biodiesel storage tank at one fueling station in Bellevue in Jackson County, Iowa.
  • Butler Truck Oasis LLC
    • Receiving a $573,375 grant to install four E15 dispensers, four E85 dispensers, and five B20 dispensers at one fueling station in Shell Rock in Butler County, Iowa.
  • Prime Stop Inc.
    • Receiving a $238,500 grant to install three E15 dispensers and one ethanol storage tank at one fueling station in Melbourne, Marshall County, Iowa.
  • Molo Petroleum LLC
    • Receiving a $1.95 million grant to install 30 E15 dispensers, six B20 dispensers, four ethanol storage tanks, and four biodiesel storage tanks in Eldridge, Bettendorf, and Davenport in Scott County, Iowa; Hiawatha in Linn County, Iowa; Dubuque in Dubuque County, Iowa; and East Moline in Rock Island County, Illinois.

Find stories like this and more, in our apps.

Copyright 2026 KTTC. All rights reserved.



Source link

Advertisement
Continue Reading

Trending