1<!DOCTYPE html> 2<html lang="en-US"> 3<head itemscope> 4 5 <!--- cache-control added from directives page ---> 6
7<script>console.log( 'SCRIPT_URI -/sports/' );</script>
7<script>console.log( 'CacheDirectiveFound: DEFAULT_BEHAVIOR -60 seconds applied...' );</script>
7 8 9 <!-- Google Tag Manager --> 10 11
11<script>
vendor: 395 bytes, lines 11-15
11(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 12 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 13 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 14 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 15 })(window,document,'script','dataLayer','
15GTM-N38Z5XZ
vendor: 3 bytes, line 15
15');
15</script>
15 16 <!-- End Google Tag Manager --> 17 18 <meta charset="UTF-8"> 19 <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=3, user-scalable=yes' /> 20 <title> Sports - </title> 21 <meta name="description" content="News, Sports, Jobs" /> 22 <link rel="shortcut icon" href="https://www.lockhaven.com/wordpress/wp-content/themes/oni_newscore_2026/images/TELP/favicon.ico" /> 23 <link rel="stylesheet" href="https://www.lockhaven.com/wordpress/wp-content/themes/oni_newscore_2026/css/layout.css?v=333" media="all" type="text/css" /> 24
24<script src="https://www.lockhaven.com/wordpress/wp-content/themes/oni_newscore_2026/js/jquery-3.7.1.min.js"></script>
24 25 <link rel="pingback" href="https://www.lockhaven.com/wordpress/xmlrpc.php"> 26 <meta name='robots' content='max-image-preview:large' /> 27<link rel='dns-prefetch' href='//www.google.com' /> 28<link rel="alternate" type="application/rss+xml" title="The Express » Sports Category Feed" href="https://www.lockhaven.com/sports/feed/" /> 29<style id="wp-img-auto-sizes-contain-inline-css"> 30img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 31/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 32</style> 33<style id="wp-block-library-inline-css"> 34:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
34--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 35 36/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 37</style> 38<style id="classic-theme-styles-inline-css"> 39/*! This file is auto-generated */ 40.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 41/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 42</style> 43 44<style id="global-styles-inline-css"> 45:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
450) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
45.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 46/*# sourceURL=global-styles-inline-css */ 47</style> 48 49<link rel='stylesheet' id='wpba_front_end_styles-css' href='https://www.lockhaven.com/wordpress/wp-content/plugins/wp-better-attachments/assets/css/wpba-frontend.css?ver=1.3.11' media='all' /> 50<link rel='stylesheet' id='dashicons-css' href='https://www.lockhaven.com/wordpress/wp-includes/css/dashicons.min.css?ver=7.1.2' media='all' /> 51<link rel="https://api.w.org/" href="https://www.lockhaven.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.lockhaven.com/wp-json/wp/v2/categories/5202" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.lockhaven.com/wordpress/xmlrpc.php?rsd" /> 52<meta name="generator" content="WordPress 7.1.2" /> 53<meta name="generator" content="auto-sizes 1.8.0"> 54<meta name="generator" content="performance-lab 4.2.0; plugins: auto-sizes, embed-optimizer"> 55<meta name="generator" content="optimization-detective 1.0.0-beta7; rest_api_unavailable"> 56<meta name="generator" content="embed-optimizer 1.0.0-beta6"> 57<link rel="icon" href="https://ogden_images.s3.amazonaws.com/www.lockhaven.com/images/2026/07/13112638/favicon.png" sizes="32x32" /> 58<link rel="icon" href="https://ogden_images.s3.amazonaws.com/www.lockhaven.com/images/2026/07/13112638/favicon.png" sizes="192x192" /> 59<link rel="apple-touch-icon" href="https://ogden_images.s3.amazonaws.com/www.lockhaven.com/images/2026/07/13112638/favicon.png" /> 60<meta name="msapplication-TileImage" content="https://ogden_images.s3.amazonaws.com/www.lockhaven.com/images/2026/07/13112638/favicon.png" /> 61 62<link rel="preconnect" href="https://securepubads.g.doubleclick.net" crossorigin>
63<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" crossorigin="anonymous"></script>
vendor: 2 bytes, line 63
63
64<script src="https://oweb.s3.amazonaws.com/lazysizes.min.js"></script>
64 65
66<script type='text/javascript'> 67 window.googletag = window.googletag || { cmd: [] }; 68 69 /* privacy logic */ 70 (function () { 71 72 function has_ad_consent() { 73 try { 74 var state = 75 window.Termly && 76 typeof Termly.getConsentState === 'function' 77 ? Termly.getConsentState() 78 : null; 79 80 return !!(state && state.advertising); 81 } catch (e) { 82 return false; 83 } 84 } 85 86 function apply_privacy() { 87 googletag.cmd.push(function () { 88 googletag.pubads().setPrivacySettings({ 89 nonPersonalizedAds: !has_ad_consent() 90 }); 91 }); 92 } 93 94 apply_privacy(); 95 96 (function hook_termly() { 97 if ( 98 window.Termly && 99 typeof window.Termly.on === 'function' 100 ) { 101 Termly.on('initialized', apply_privacy); 102 Termly.on('consent', apply_privacy); 103 return; 104 } 105 106 setTimeout(hook_termly, 200); 107 })(); 108 109 })(); 110 111 112 is_subscriber = (document.cookie.match(/^(?:.*;)?\s*subscriber\s*=\s*([^;]+)(?:.*)?$/)||[,0])[1] 113 var subscriber = is_subscriber == 0 ? 0 : 1; 114 115 116 window.OGDEN_GAM_CONFIG = { 117 networkCode: '1032081', 118 siteId: 'TELP', 119 msection: 'Sports', 120 subscriber: subscriber, 121 subsection: 'sports' 122 }; 123 124 window.ogdenAds = { 125 slots: {}, 126 registered: new Set(), 127 requested: new Set(), 128 observers: {} 129 }; 130 131 function gc(name) { 132 var value = "; " + document.cookie; 133 var parts = value.split("; " + name + "="); 134 if (parts.length === 2) return parts.pop().split(";").shift(); 135 return null; 136 } 137 138 function isValidJSON(str) { 139 if (!str) return false; 140 try { 141 JSON.parse(decodeURIComponent(str)); 142 return true; 143 } catch (e) { 144 return false; 145 } 146 } 147 148 function getSubscriberTargetingValue() { 149 return isValidJSON(gc(atob('bmV3c3dhcmVfYXV0aA=='))) ? '1' : '0'; 150 } 151 152 function defineOgdenSlot(id, adUnitPath, sizes, sizeMapping, options) { 153 var slot = googletag.defineSlot(adUnitPath, sizes, id); 154 if (!slot) { 155 console.warn('GAM slot could not be defined:', id); 156 return null; 157 } 158 if (sizeMapping) { 159 slot.defineSizeMapping(sizeMapping); 160 } 161 slot.addService(googletag.pubads()); 162 if (options && options.collapseEmptyDiv === true) { 163 slot.setCollapseEmptyDiv(true, true); 164 } 165 window.ogdenAds.slots[id] = slot; 166 return slot; 167 } 168 169 function registerSlotWithGPT(id) { 170 if (window.ogdenAds.registered.has(id)) return; 171 if (!window.ogdenAds.slots[id]) return; 172 googletag.display(id); 173 window.ogdenAds.registered.add(id); 174 } 175 176 function requestSlotNow(id) { 177 var slot = window.ogdenAds.slots[id]; 178 if (!slot || window.ogdenAds.requested.has(id)) return; 179 window.ogdenAds.requested.add(id); 180 googletag.pubads().refresh([slot]); 181 } 182 183 window.ogdenLoadAd = function(id, options) { 184 options = options || {}; 185 googletag.cmd.push(function() { 186 var element = document.getElementById(id); 187 if (!element) return; 188 registerSlotWithGPT(id); 189 if (options.immediate === true) { 190 requestSlotNow(id); 191 return; 192 } 193 if (!('IntersectionObserver' in window)) { 194 window.addEventListener('load', function() { 195 googletag.cmd.push(function() { requestSlotNow(id); }); 196 }, { once: true }); 197 return; 198 } 199 var observer = new IntersectionObserver(function(entries) {
200 entries.forEach(function(entry) { 201 if (entry.isIntersecting) { 202 observer.disconnect(); 203 delete window.ogdenAds.observers[id]; 204 googletag.cmd.push(function() { requestSlotNow(id); }); 205 } 206 }); 207 }, { 208 root: null, 209 rootMargin: options.rootMargin || '600px 0px', 210 threshold: 0 211 }); 212 observer.observe(element); 213 window.ogdenAds.observers[id] = observer; 214 }); 215 }; 216 217 googletag.cmd.push(function() { 218 var cfg = window.OGDEN_GAM_CONFIG; 219 var basePath = '/' + cfg.networkCode + '/'; 220 221 var targetingObj = { 222 SiteID: cfg.siteId, 223 MSection: cfg.msection, 224 SubSection: cfg.subsection, 225 Subscriber: String(cfg.subscriber) 226 }; 227 if (cfg.articleSection) { 228 targetingObj.ArticleSection = cfg.articleSection; 229 } 230 if (cfg.funeralHome) { 231 targetingObj.funeral_home = cfg.funeralHome; 232 } 233 234 googletag.setConfig({ 235 disableInitialLoad: true, 236 targeting: targetingObj 237 }); 238 239 var LeaderboardTop = googletag.sizeMapping() 240 .addSize([960, 200], [[960, 250],[728, 90]]) 241 .addSize([780, 200], [728, 90]) 242 .addSize([0, 0], [[320, 100],[320, 50]]) 243 .build(); 244 245 var Leaderboard = googletag.sizeMapping() 246 .addSize([780, 200], [728, 90]) 247 .addSize([0, 0], [[320, 100],[320, 50]]) 248 .build(); 249 250 var HalfPage = googletag.sizeMapping() 251 .addSize([741, 200], [[300, 600], [160, 600]]) 252 .addSize([0, 0], [300, 250]) 253 .build(); 254 255 var mobile_middle3_300x250 = googletag.sizeMapping() 256 .addSize([760, 0], []) 257 .addSize([0, 0], [[300, 250], [250, 250]]) 258 .build(); 259 260 var homepage_middle_728x90 = googletag.sizeMapping() 261 .addSize([1180, 0], [728, 90]) 262 .addSize([0, 0], [[320, 100],[320, 50]]) 263 .build(); 264 265 var homepage_middle2_728x90 = googletag.sizeMapping() 266 .addSize([1180, 0], [728, 90]) 267 .addSize([0, 0], [[320, 100],[320, 50]]) 268 .build(); 269 270 var Rectangle_300x250 = googletag.sizeMapping() 271 .addSize([0, 0], [[300, 250], [250, 250]]) 272 .build(); 273 274 var Rectangle_Middle2_300x250 = googletag.sizeMapping() 275 .addSize([0, 0], [[300, 250], [250, 250], [200, 200]]) 276 .build(); 277 278 279 /* Top leaderboard â skipped on Best Of promo pages */ 280 defineOgdenSlot( 281 'TELP_Top_728x90', 282 basePath + 'TELP_Top_728x90', 283 [320, 100], 284 LeaderboardTop 285 ); 286 287 defineOgdenSlot( 288 'TELP_Middle_728x90', 289 basePath + 'TELP_Middle_728x90', 290 [320, 100], 291 homepage_middle_728x90 292 ); 293 294 defineOgdenSlot( 295 'TELP_Right_300x600', 296 basePath + 'TELP_Right_300x600', 297 [300, 250], 298 HalfPage 299 ); 300 301 defineOgdenSlot( 302 'TELP_Bottom_728x90', 303 basePath + 'TELP_Bottom_728x90', 304 [320, 100], 305 Leaderboard 306 ); 307 308 309 defineOgdenSlot( 310 'TELP_Middle_300x250', 311 basePath + 'TELP_Middle_300x250', 312 [300, 250], 313 Rectangle_300x250 314 ); 315 316 317 318 /* funeral home */ 319 320 googletag.pubads().enableSingleRequest(); 321 googletag.enableServices(); 322 }); 323</script>
323 324 325
326<script type='text/javascript'> 327 /* SUBSECTION code for BEST OF promos */ 328 if ( 0 == 1 ) { 329 330 var google_msection = 'Sports'; 331 332 console.log("MSection = " + google_msection); 333 334 var google_subsection = window.location.hash.replace('#/gallery?group=', '').replace('#/gallery/?group=', ''); 335 336 if ( google_subsection == "//" || google_subsection == "#//" ) { 337 google_subsection = ""; 338 } 339 console.log("SubSection = " + google_subsection); 340 341 window.onhashchange = function() { 342 console.log("URL has changed"); 343 console.log("SubSection = " + window.location.hash.replace('#/gallery?group=', '').replace('#/gallery/?group=', '')); 344 googletag.cmd.push(function() { 345 googletag.pubads().setTargeting('SubSection', window.location.hash.replace('#/gallery?group=', '').replace('#/gallery/?group=', '')); 346 }); 347 googletag.pubads().refresh(); 348 }; 349 350 googletag.cmd.push(function() { 351 googletag.pubads().setTargeting('SiteID', 'TELP'); 352 googletag.pubads().setTargeting('MSection', google_msection); 353 googletag.pubads().setTargeting('SubSection', google_subsection); 354 }); 355 } 356</script>
356 357 358
359<script type='text/javascript'> 360 /* CODE FOR PENCIL AD */ 361 function hidePencilIframe(dfpIframeID) { 362 document.getElementById(dfpIframeID).style.display = 'none'; 363 } 364 function pencilExpandBanner(creativeWidth, bigCreativeHeight, dfpIframeID) { 365 document.getElementById(dfpIframeID).width = creativeWidth; 366 document.getElementById(dfpIframeID).height = bigCreativeHeight; 367 } 368 function pencilCloseBanner(creativeWidth, smallCreativeHeight, dfpIframeID) { 369 document.getElementById(dfpIframeID).width = creativeWidth; 370 document.getElementById(dfpIframeID).height = smallCreativeHeight; 371 } 372 function pencilStartTimerFromIframe(creativeWidth, smallCreativeHeight, bigCreativeHeight, positionName) { 373 var dfpIframeID = "google_ads_iframe_/1032081/" + positionName + "_0"; 374 pencilExpandBanner(creativeWidth, bigCreativeHeight, dfpIframeID); 375 } 376 function pencilStopTimerFromIframe(creativeWidth, smallCreativeHeight, bigCreativeHeight, positionName) { 377 var dfpIframeID = "google_ads_iframe_/1032081/" + positionName + "_0"; 378 pencilCloseBanner(creativeWidth, smallCreativeHeight, dfpIframeID); 379 } 380 /* END CODE FOR PENCIL */ 381</script>
381 <link rel='stylesheet' id='font-awesome-css' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css?ver=6.6.0' media='all' /> 382 383</head> 384<body class="scroll_up"> 385 386 <!-- Google Tag Manager (noscript) -->
vendor: 83 bytes, lines 386-388
386 387 <noscript> 388 <iframe src="https://www.googletagmanager.com/ns.html?id=
388GTM-N38Z5XZ
vendor: 94 bytes, lines 388-390
388" height="0" width="0" style="display:none;visibility:hidden"></iframe> 389 </noscript> 390
390<!-- End Google Tag Manager (noscript) --> 391 392 <div id="top_nav"> 393 <button id="hamburger" aria-label="Open menu" aria-expanded="false" aria-controls="drawer"> 394 <span></span><span></span><span></span> 395 </button> 396 <nav aria-label="Primary"> 397 <div class="menu-main-menu-container"><ul id="menu-main-menu" class="menu"><li id="menu-item-670550" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670550"><a href="https://www.lockhaven.com/news/">News</a></li> 398<li id="menu-item-670553" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-670553"><a href="https://www.lockhaven.com/sports/" aria-current="page">Sports</a></li> 399<li id="menu-item-670552" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670552"><a href="https://www.lockhaven.com/opinion/">Opinion</a></li> 400<li id="menu-item-670549" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670549"><a href="https://www.lockhaven.com/life/">Life</a></li> 401<li id="menu-item-1232935" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1232935"><a href="https://classifieds.lockhaven.com">Classifieds</a></li> 402<li id="menu-item-1232936" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1232936"><a href="https://classifieds.lockhaven.com/view/?classification=504">Garage Sales</a></li> 403<li id="menu-item-670551" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670551"><a href="https://www.lockhaven.com/obituaries/">Obituaries</a></li> 404<li id="menu-item-48" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-48"><a href="http://jobs.lockhaven.com/">Jobs</a></li> 405<li id="menu-item-778475" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-778475"><a target="_blank" href="http://www.swcrealty.com/williamsport/">Homes</a></li> 406<li id="menu-item-938397" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-938397"><a href="http://lockhaven.column.us/place">Place Legal Notice</a></li> 407</ul></div>
407<script> 408 (function () { 409 const NAV_ID = 'menu-main-menu'; 410 const MORE_ID = 'priority_more'; 411 const GAP = 8; // required clearance in px between menu and whatever follows it 412 let items = [], moreLi, moreDd, navUl, navEl, built = false, lastNavWidth = -1; 413 414 function build() { 415 if (built) return; 416 navUl = document.getElementById(NAV_ID); 417 if (!navUl) return; 418 built = true; 419 420 moreLi = document.createElement('li'); 421 moreLi.id = MORE_ID; 422 moreLi.innerHTML = '<span>MORE â¾</span><ul></ul>'; 423 navUl.appendChild(moreLi); 424 moreDd = moreLi.querySelector('ul'); 425 426 items = Array.from(navUl.querySelectorAll(':scope > li:not(#' + MORE_ID + ')')); 427 428 navEl = navUl.closest('nav') || navUl.parentElement; 429 430 // Tap/click toggle for touch devices (iOS has no hover) 431 moreLi.addEventListener('click', function (e) { 432 if (e.target.closest('#' + MORE_ID + ' > ul')) return; 433 e.preventDefault(); 434 moreLi.classList.toggle('open'); 435 }); 436 document.addEventListener('click', function (e) { 437 if (!moreLi.contains(e.target)) moreLi.classList.remove('open'); 438 }); 439 440 // Only re-run when the row's width actually changes â prevents 441 // feedback loops from our own show/hide mutations. 442 new ResizeObserver(function () { 443 const w = navEl.getBoundingClientRect().width; 444 if (Math.abs(w - lastNavWidth) > 0.5) { 445 lastNavWidth = w; 446 update(); 447 } 448 }).observe(navEl); 449 450 if (document.fonts && document.fonts.ready) { 451 document.fonts.ready.then(function () { update(); }); 452 } 453 window.addEventListener('pageshow', function () { update(); }); 454 window.addEventListener('orientationchange', function () { setTimeout(update, 100); }); 455 456 lastNavWidth = navEl.getBoundingClientRect().width; 457 update(); 458 } 459 460 // The real boundary the menu must not cross: the left edge of the next 461 // in-flow element after the UL (search icon / SUBSCRIBE / etc.). If the UL 462 // is the last thing in the row, it's the nav's right content edge. If the 463 // row's constraining container is higher up (nav shrink-wraps), walk up. 464 function getLimit() { 465 let el = navUl; 466 while (el && el !== document.body) { 467 let sib = el.nextElementSibling; 468 while (sib) { 469 const cs = window.getComputedStyle(sib); 470 if (sib.offsetWidth && cs.position !== 'absolute' && cs.position !== 'fixed') { 471 return sib.getBoundingClientRect().left; 472 } 473 sib = sib.nextElementSibling; 474 } 475 // No in-flow sibling after us at this level â is this parent the 476 // constraining row? Use its right content edge if it's wider than us. 477 const parent = el.parentElement; 478 const pr = parent.getBoundingClientRect(); 479 const er = el.getBoundingClientRect(); 480 if (pr.width - er.width > 2) { 481 const cs = window.getComputedStyle(parent); 482 return pr.right - (parseFloat(cs.paddingRight) || 0); 483 } 484 el = parent; 485 } 486 return window.innerWidth; 487 } 488 489 // True if the currently-visible items overflow: last visible item's right 490 // edge crosses the limit, OR the items have wrapped to a second line. 491 function overflows(visibleCount, limit) { 492 if (visibleCount === 0) return false; 493 const first = items[0].getBoundingClientRect(); 494 const last = items[visibleCount - 1].getBoundingClientRect(); 495 if (last.right > limit - GAP) return true; 496 if (last.top - first.top > 5) return true; // wrapped 497 // MORE itself can also be the thing colliding/wrapping 498 if (moreLi.style.display !== 'none') { 499 const m = moreLi.getBoundingClientRect(); 500 if (m.right > limit - GAP) return true; 501 if (m.top - first.top > 5) return true; 502 } 503 return false; 504 } 505
506 function update() { 507 if (!built) return; 508 509 // Reset: everything visible, MORE hidden, dropdown empty 510 items.forEach(function (li) { li.style.display = ''; }); 511 moreDd.innerHTML = ''; 512 moreLi.classList.remove('open'); 513 moreLi.style.display = 'none'; 514 515 const limit = getLimit(); 516 517 // Pass 1: does the full menu fit with no MORE at all? 518 if (!overflows(items.length, limit)) { 519 return; // yes â leave everything alone, MORE stays hidden 520 } 521 522 // Pass 2: it doesn't. Show MORE, then hide items from the end 523 // until nothing collides. Each check reads real positions. 524 moreLi.style.display = ''; 525 let visible = items.length; 526 while (visible > 0 && overflows(visible, limit)) { 527 visible--; 528 items[visible].style.display = 'none'; 529 } 530 531 for (let i = visible; i < items.length; i++) { 532 const clone = items[i].cloneNode(true); 533 clone.style.display = ''; 534 moreDd.appendChild(clone); 535 } 536 } 537 538 if (document.readyState === 'loading') { 539 document.addEventListener('DOMContentLoaded', build); 540 } else { 541 build(); 542 } 543 })(); 544</script>
544 545<style> 546 #priority_more { position:relative; list-style:none; color:#fff; font-weight:500; font-size:14px; letter-spacing:0.04em; text-transform:uppercase; padding:0 12px; cursor:pointer; white-space:nowrap; flex-shrink:0; height:44px; display:flex; align-items:center; } 547 #priority_more > span { color:#fff; line-height:1; pointer-events:none; } 548 #priority_more > ul { display:block; position:absolute; left:auto; right:0; top:44px; background:#111; list-style:none; margin:0; padding:4px 0; max-height:0; overflow:hidden; opacity:0; z-index:99999; min-width:160px; transition:max-height 0.3s ease, opacity 0.2s ease; } 549 #priority_more:hover > ul { max-height:500px; opacity:1; } 550 #priority_more.open > ul { max-height:500px; opacity:1; } 551 #priority_more > ul li { display:block !important; padding:0; white-space:nowrap; } 552 #priority_more > ul li a { display:block; padding:9px 16px; color:#fff; text-decoration:none; font-size:13px; font-weight:500; letter-spacing:0.04em; text-transform:uppercase; } 553 #priority_more > ul li a:hover { background:#222; color:#fffbe4; } 554</style> </nav> 555 <aside> 556 <div id="search"><i class="icon-search"></i></div> 557 <div id="subscribe_login"> 558 <a href="https://subscribe.lockhaven.com?utm_source=newspaper-site&utm_medium=referral&utm_campaign=subscription-promo&utm_content=header-subscribe" id="subscribe_button">Subscribe</a> 559 <a id="header_nav_login" class="login_toggle"></a> 560 </div> 561 </aside> 562 </div> 563 <div id="search_bar"> 564 <form id="header_search_form" action="https://www.lockhaven.com/search/" method="get"> 565 <i class="icon-search" aria-hidden="true"></i> 566 <input type="text" name="s" id="search_input" placeholder="Search Headlines, News…" value=""> 567 <button type="submit" aria-label="Submit search"><i class="icon-right"></i></button> 568 </form> 569</div> 570
571<script> 572 (function() { 573 const trigger = document.getElementById('search'); 574 const bar = document.getElementById('search_bar'); 575 const input = document.getElementById('search_input'); 576 const form = document.getElementById('header_search_form'); 577 578 if (trigger && bar && input) { 579 trigger.addEventListener('click', function() { 580 const isOpen = bar.classList.toggle('active'); 581 582 if (isOpen) { 583 input.focus(); 584 } 585 }); 586 587 document.addEventListener('keydown', function(event) { 588 if ( 589 event.key === 'Escape' && 590 bar.classList.contains('active') 591 ) { 592 bar.classList.remove('active'); 593 } 594 }); 595 } 596 597 if (form && input) { 598 form.addEventListener('submit', function(event) { 599 const searchTerm = input.value.trim(); 600 601 if (!searchTerm) { 602 event.preventDefault(); 603 return; 604 } 605 606 event.preventDefault(); 607 608 const searchBase = 609 "https:\/\/www.lockhaven.com\/search\/"; 610 611 window.location.href = 612 searchBase + 613 encodeURIComponent(searchTerm) + 614 '/'; 615 }); 616 } 617 })(); 618</script>
618 619 620 621 622<!-- ORIGINAL VERSION --> 623<!-- <div id="search_bar"> 624 <form action="/search/" method="get"> 625 <i class="icon-search" aria-hidden="true"></i> 626 <input type="text" name="s" id="search_input" placeholder="Search Headlines, News…" name="s" value=""> 627 <button type="submit" aria-label="Submit search"><i class="icon-right"></i></button> 628 </form> 629</div> 630
631<script> 632 (function() { 633 const trigger = document.getElementById('search'); 634 const bar = document.getElementById('search_bar'); 635 const input = document.getElementById('search_input'); 636 637 trigger.addEventListener('click', function() { 638 const isOpen = bar.classList.toggle('active'); 639 if (isOpen) input.focus(); 640 }); 641 642 document.addEventListener('keydown', function(e) { 643 if (e.key === 'Escape' && bar.classList.contains('active')) { 644 bar.classList.remove('active'); 645 } 646 }); 647 })(); 648</script>
648 --> <header id="top_header"> 649 <div class="breaking_news_wrap breaking_toggle"> 650 <div class="breaking_news_badge">Breaking News</div> 651 <div class="breaking_news_divider"></div> 652 <div class="breaking_news_ticker_wrap"> 653 <div class="breaking_news_ticker" id="breaking_news_ticker"></div> 654 </div> 655</div> <figure> 656 <a href="https://www.lockhaven.com/" rel="home"> 657 <img id="site_logo" src="https://ogden_images.s3.amazonaws.com/www.lockhaven.com/images/2026/07/13112558/lockhaven.png" border="0" alt="website logo" /> 658 </a> 659 </figure> 660 <nav id="under_logo_links"> 661 <ul> 662 <li class="todays_date"> 663 October 01, 2026 </li> 664 <li class="todays_paper"><a href="https://www.mynewsonthego.com/express/">Today's Paper</a></li> 665 <li class="submit_news_link"><a href="/forms/submit-news/">Submit News</a></li> 666 <li class="subscribe_under_logo"><a href="https://subscribe.lockhaven.com?utm_source=newspaper-site&utm_medium=referral&utm_campaign=subscription-promo&utm_content=header-nav-subscribe-today">Subscribe Today</a></li> 667 </ul> 668 </nav> 669 </header> 670 <div id="overlay"></div> 671<div id="drawer" role="dialog" aria-label="Navigation menu"> 672 <div id="drawer_header"> 673 <span>Menu</span> 674 <button id="close_button" aria-label="Close menu">✕</button> 675 </div> 676 <div class="menu-mobile-menu-container"><ul id="menu-mobile-menu" class="menu"><li id="menu-item-670561" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-670561"><a href="https://www.lockhaven.com/news/">News</a> 677<ul class="sub-menu"> 678 <li id="menu-item-670565" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670565"><a href="https://www.lockhaven.com/news/local-news/">Local news</a></li> 679 <li id="menu-item-670563" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670563"><a href="https://www.lockhaven.com/news/community/">Community</a></li> 680 <li id="menu-item-670562" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670562"><a href="https://www.lockhaven.com/news/business/">Business</a></li> 681 <li id="menu-item-670564" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670564"><a href="https://www.lockhaven.com/news/health/">Health</a></li> 682 <li id="menu-item-670566" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670566"><a href="https://www.lockhaven.com/news/outdoors/">Outdoors</a></li> 683 <li id="menu-item-670569" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670569"><a href="https://www.lockhaven.com/news/religion/">Religion</a></li> 684 <li id="menu-item-670568" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670568"><a href="https://www.lockhaven.com/news/police-court-and-fires/">Police, court and fires</a></li> 685 <li id="menu-item-670567" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670567"><a href="https://www.lockhaven.com/news/pa-news-apwire/">PA News</a></li> 686 <li id="menu-item-670570" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670570"><a href="https://www.lockhaven.com/news/urgent-information/">Urgent information</a></li> 687</ul> 688</li> 689<li id="menu-item-670576" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-has-children menu-item-670576"><a href="https://www.lockhaven.com/sports/" aria-current="page">Sports</a> 690<ul class="sub-menu"> 691 <li id="menu-item-670577" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670577"><a href="https://www.lockhaven.com/sports/local-sports/">Local sports</a></li> 692 <li id="menu-item-670578" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670578"><a href="https://www.lockhaven.com/sports/pa-sports-apwire/">PA Sports</a></li> 693</ul> 694</li>
695<li id="menu-item-670572" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-670572"><a href="https://www.lockhaven.com/opinion/">Opinion</a> 696<ul class="sub-menu"> 697 <li id="menu-item-670574" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670574"><a href="https://www.lockhaven.com/opinion/editorials/">Our View</a></li> 698 <li id="menu-item-670573" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670573"><a href="https://www.lockhaven.com/opinion/columns/">Columns</a></li> 699 <li id="menu-item-670575" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670575"><a href="https://www.lockhaven.com/opinion/letters-to-the-editor/">Letters to the editor</a></li> 700</ul> 701</li> 702<li id="menu-item-670554" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-670554"><a href="https://www.lockhaven.com/life/">Life</a> 703<ul class="sub-menu"> 704 <li id="menu-item-670556" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670556"><a href="https://www.lockhaven.com/life/engagements/">Engagements</a></li> 705 <li id="menu-item-670558" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670558"><a href="https://www.lockhaven.com/life/weddings/">Weddings</a></li> 706 <li id="menu-item-670555" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670555"><a href="https://www.lockhaven.com/life/anniversaries/">Anniversaries</a></li> 707 <li id="menu-item-670559" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670559"><a href="https://www.lockhaven.com/life/welcome-to-our-world/">Welcome to Our World</a></li> 708 <li id="menu-item-670557" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670557"><a href="https://www.lockhaven.com/life/in-the-schools/">In The Schools</a></li> 709 <li id="menu-item-670560" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670560"><a href="https://www.lockhaven.com/life/younger-set/">Younger set</a></li> 710</ul> 711</li> 712<li id="menu-item-1232937" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1232937"><a href="https://classifieds.lockhaven.com">Classifieds</a></li> 713<li id="menu-item-1232938" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1232938"><a href="https://classifieds.lockhaven.com/view/?classification=504">Garage Sales</a></li> 714<li id="menu-item-670571" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670571"><a href="https://www.lockhaven.com/obituaries/">Obituaries</a></li> 715<li id="menu-item-55" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55"><a href="http://jobs.lockhaven.com/">Jobs</a></li> 716<li id="menu-item-778476" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-778476"><a href="http://www.swcrealty.com/williamsport/">Homes</a></li> 717<li id="menu-item-53" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-53"><a href="https://www.lockhaven.com/contact-us/">Contact Information</a> 718<ul class="sub-menu"> 719 <li id="menu-item-795365" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-795365"><a href="https://www.lockhaven.com/contact-us/">Contact Us</a></li> 720 <li id="menu-item-51" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51"><a href="https://www.lockhaven.com/forms/submit-news/">Submit News</a></li> 721 <li id="menu-item-818412" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-818412"><a href="https://www.lockhaven.com/subscribe/">Subscribe</a></li> 722 <li id="menu-item-54" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-54"><a href="https://www.lockhaven.com/advertise/">Advertise</a></li> 723 <li id="menu-item-1088200" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1088200">
723<a href="https://www.lockhaven.com/statement-of-values/">Statement of Values</a></li> 724 <li id="menu-item-50" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-50"><a href="https://www.lockhaven.com/terms-of-service/">Terms of Service</a></li> 725</ul> 726</li> 727<li id="menu-item-818413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-818413"><a href="https://www.facebook.com/LockHaven.newspaper">Facebook</a></li> 728<li id="menu-item-818414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-818414"><a href="http://twitter.com/TheExpressPA">Twitter</a></li> 729<li id="menu-item-938394" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-938394"><a href="/">Public Notices</a> 730<ul class="sub-menu"> 731 <li id="menu-item-938395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-938395"><a href="https://www.publicnoticepa.com">Browse Notices</a></li> 732 <li id="menu-item-938396" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-938396"><a href="http://lockhaven.column.us/place">Place Notice</a></li> 733</ul> 734</li> 735</ul></div></div> 736
737<script> 738 const hamburger = document.getElementById('hamburger'); 739 const drawer = document.getElementById('drawer'); 740 const overlay = document.getElementById('overlay'); 741 const closeBtn = document.getElementById('close_button'); 742 const mobileMenu = document.getElementById('menu-mobile-menu'); 743 744 function openMenu() { 745 drawer.classList.add('open'); 746 overlay.classList.add('open'); 747 hamburger.setAttribute('aria-expanded', 'true'); 748 } 749 750 function closeMenu() { 751 drawer.classList.remove('open'); 752 overlay.classList.remove('open'); 753 hamburger.setAttribute('aria-expanded', 'false'); 754 } 755 756 hamburger.addEventListener('click', openMenu); 757 closeBtn.addEventListener('click', closeMenu); 758 overlay.addEventListener('click', closeMenu); 759 760 761 function initMobileMenuItems() { 762 763 // Inject toggle buttons and wrap parent links for items with sub-menus 764 document.querySelectorAll('#menu-mobile-menu .menu-item-has-children').forEach(li => { 765 const subMenu = li.querySelector(':scope > .sub-menu'); 766 767 if (!subMenu) { 768 return; 769 } 770 771 let row = li.querySelector(':scope > .parent_row'); 772 let link = li.querySelector(':scope > a'); 773 774 // If this item has not already been wrapped, wrap its direct child link 775 if (!row && link) { 776 row = document.createElement('div'); 777 row.classList.add('parent_row'); 778 779 li.insertBefore(row, link); 780 row.appendChild(link); 781 } 782 783 // If there is still no row, there is nothing to enhance 784 if (!row) { 785 return; 786 } 787 788 // If this row already has a toggle button, do not add another one 789 if (row.querySelector(':scope > .hamburger_toggle_button')) { 790 return; 791 } 792 793 link = row.querySelector(':scope > a'); 794 795 if (!link) { 796 return; 797 } 798 799 const btn = document.createElement('button'); 800 btn.classList.add('hamburger_toggle_button'); 801 btn.setAttribute('aria-expanded', 'false'); 802 btn.setAttribute('aria-label', 'Expand ' + link.textContent.trim()); 803 btn.innerHTML = '<i class="icon-right-open"></i>'; 804 805 row.appendChild(btn); 806 }); 807 808 809 // Wrap plain parent links (no sub-menu) in parent_row div for consistent styling 810 document.querySelectorAll('#menu-mobile-menu > li:not(.menu-item-has-children)').forEach(li => { 811 let row = li.querySelector(':scope > .parent_row'); 812 let link = li.querySelector(':scope > a'); 813 814 // Already wrapped or no link found 815 if (row || !link) { 816 return; 817 } 818 819 row = document.createElement('div'); 820 row.classList.add('parent_row'); 821 822 li.insertBefore(row, link); 823 row.appendChild(link); 824 }); 825 826 } 827 828 829 // One delegated click handler for all current and future toggle buttons 830 mobileMenu.addEventListener('click', function(event) { 831 const btn = event.target.closest('.hamburger_toggle_button'); 832 833 if (!btn || !mobileMenu.contains(btn)) { 834 return; 835 } 836 837 event.preventDefault(); 838 839 const li = btn.closest('.menu-item-has-children'); 840 841 if (!li) { 842 return; 843 } 844 845 const subMenu = li.querySelector(':scope > .sub-menu'); 846 847 if (!subMenu) { 848 return; 849 } 850 851 const isOpen = subMenu.classList.contains('open'); 852 853 subMenu.classList.toggle('open', !isOpen); 854 btn.classList.toggle('expanded', !isOpen); 855 btn.setAttribute('aria-expanded', String(!isOpen)); 856 }); 857 858 859 // Initial setup 860 initMobileMenuItems(); 861 862</script>
vendor: 2 bytes, line 862
862
863<script> 864 lastScroll = 0; 865 $(window).on('scroll',function() { 866 var scroll = $(window).scrollTop(); 867 if(lastScroll - scroll > 0) { 868 $("body").removeClass("scroll_down"); 869 $("#main_header_wrap").removeClass("scroll"); 870 $("body").addClass("scroll_up"); 871 } else { 872 $("#main_header_wrap").addClass("scroll"); 873 $("body").addClass("scroll_down"); 874 $("body").removeClass("scroll_up"); 875 } 876 lastScroll = scroll; 877 }); 878</script>
878 879 880 881 882 <div id="category_content_wrap"> 883 <div id='TELP_Top_728x90' style='text-align:center' class='lazyload g_ad leaderboard leaderboard_top' data-ad-slot='TELP_Top_728x90'> 884
884<script type='text/javascript'> 885 ogdenLoadAd('TELP_Top_728x90', { rootMargin: '100px 0px' }); 886 </script>
886 887</div> <main id="content" class="category default_width" aria-label="Sports"> 888 <div id="category_layout"> 889 <div id="category_main"> 890 891 <div class="cat_title_wrap"> 892 <h1> 893 <a href="https://www.lockhaven.com/sports/">Sports</a> 894 <i class="icon-down-open"></i> 895 </h1> 896 <ul id="parent_cat_subs"> 897 <li><a href="https://www.lockhaven.com/sports/local-sports/">Local sports</a></li> 898 <li><a href="https://www.lockhaven.com/sports/pa-sports-apwire/">PA Sports</a></li> 899 </ul> 900 </div> 901 902 <article aria-labelledby="wildcat-duo-finishes-as-runner-up-in-district-6-doubles"> 903 <div class="cat_article_text"> 904 <h2 id="wildcat-duo-finishes-as-runner-up-in-district-6-doubles"> 905 <a href="https://www.lockhaven.com/sports/local-sports/2026/10/wildcat-duo-finishes-as-runner-up-in-district-6-doubles/">Wildcat duo finishes as runner-up in District 6 doubles</a> 906 </h2> 907 <div class="cat_article_meta"> 908 <a class="cat_article_cat_label" href="https://www.lockhaven.com/sports/local-sports/">Local sports</a> 909 <time datetime="2026-10-01">October 1, 2026</time> 910 </div> 911 <p>ALTOONA - After advancing to the District 6 Class AA doubles final on Monday afternoon, Central Mountainâs Lucy and Lane Walker saw their run at a title fall one win short on Wednesday. The duo picked up multiple wins in each set, but Westmont Hilltopâs Lilly Evans and Isabella Parrish came out on top each time, defeating the Wildcat pairing by a score of 6-3, 6-3. 912 913Nonetheless, the duoâs silver medal adds to whatâs been a successful postseason for Central Mountain. Lucy Walker claimed silver in the previous weekâs District 6 singles tournament, only being beat out by teammate ...</p> 914 </div> 915 </article> 916 <article aria-labelledby="penn-state-announces-schedule-for-2026-27-wrestling-season"> 917 <div class="cat_article_text"> 918 <h2 id="penn-state-announces-schedule-for-2026-27-wrestling-season"> 919 <a href="https://www.lockhaven.com/sports/local-sports/2026/10/penn-state-announces-schedule-for-2026-27-wrestling-season/">Penn State announces schedule for 2026-27 wrestling season</a> 920 </h2> 921 <div class="cat_article_meta"> 922 <a class="cat_article_cat_label" href="https://www.lockhaven.com/sports/local-sports/">Local sports</a> 923 <time datetime="2026-10-01">October 1, 2026</time> 924 </div> 925 <p>STATE COLLEGE â The Penn State wrestling program, led by 18-year coach Cael Sanderson, announced its 2026-27 schedule Tuesday afternoon, in conjunction with the Big Ten Conferenceâs release of the full wrestling conference slate. 926 927The Nittany Lions will embark on a 16-match dual-meet schedule in 2026-27, with seven duals scheduled in State College. Penn State will host four matches inside historic Rec Hall, with three additional dates slated for the Bryce Jordan Center. 928 929Additional highlights include the programâs fifth consecutive trip to the Black Knight Invite in West Point, ...</p> 930 </div> 931 </article> 932 <article aria-labelledby="questions-follow-penn-states-loss-to-wisconsin"> 933 <div class="full_category_photo_wrap tall"> 934 <div class="cat_photo_tall_blur" style="background:url('https://ogden_images.s3.amazonaws.com/www.lockhaven.com/images/2026/09/30202751/01nittany-554x500.webp')"> 935 <figure class="image_tall"> 936 <a href="https://www.lockhaven.com/sports/local-sports/2026/10/questions-follow-penn-states-loss-to-wisconsin/" tabindex="-1" aria-hidden="true"> 937 <img width="554" height="500" src="https://ogden_images.s3.amazonaws.com/www.lockhaven.c
937om/images/2026/09/30202751/01nittany-554x500.webp" class="attachment-medium size-medium wp-post-image" alt="Questions follow Penn Stateâs loss to Wisconsin" loading="lazy" decoding="async" /> </a> 938 </figure> 939 </div> 940 </div> 941 <div class="cat_article_text"> 942 <h2 id="questions-follow-penn-states-loss-to-wisconsin"> 943 <a href="https://www.lockhaven.com/sports/local-sports/2026/10/questions-follow-penn-states-loss-to-wisconsin/">Questions follow Penn Stateâs loss to Wisconsin</a> 944 </h2> 945 <div class="cat_article_meta"> 946 <a class="cat_article_cat_label" href="https://www.lockhaven.com/sports/local-sports/">Local sports</a> 947 <time datetime="2026-10-01">October 1, 2026</time> 948 </div> 949 <p>There was a lot of Sunday morning quarterback talk amongst Penn State fans after Saturday eveningâs loss against Wisconsin. That also extended into Campbell and Mouser over the next 48 hours. 950 951At the start of the fourth quarter with the Lions leading 20-10 and facing a fourth-and-1 from ...</p> 952 </div> 953 </article> 954 <div id='TELP_Middle_728x90' style='text-align:center' class='lazyload g_ad leaderboard leaderboard_middle' data-ad-slot='TELP_Middle_728x90'> 955
955<script type='text/javascript'> 956 ogdenLoadAd('TELP_Middle_728x90', { rootMargin: '600px 0px' }); 957 </script>
957 958</div> <article aria-labelledby="cms-karstetter-caps-off-successful-high-school-career-at-districts"> 959 <div class="cat_article_text"> 960 <h2 id="cms-karstetter-caps-off-successful-high-school-career-at-districts"> 961 <a href="https://www.lockhaven.com/sports/local-sports/2026/10/cms-karstetter-caps-off-successful-high-school-career-at-districts/">CM's Karstetter caps off successful high school career at districts</a> 962 </h2> 963 <div class="cat_article_meta"> 964 <a class="cat_article_cat_label" href="https://www.lockhaven.com/sports/local-sports/">Local sports</a> 965 <time datetime="2026-10-01">October 1, 2026</time> 966 </div> 967 <p>Central Mountain senior Nolan Karstetter wrapped up his high school golf career Tuesday at Sinking Valley Golf Course, competing in the District 6 Golf Championships. 968 969With only the top two golfers advancing to the PIAA State Championships, Karstetter finished the day in ninth place with a score of 83, finishing 11-over par. State Collegeâs Luke McGraw captured the district championship. 970 971Although Nolan fell short of advancing to the state tournament, his ninth-place finish capped off a successful high school golf career. Throughout his time as a Wildcat, Karstetter consistently ...</p> 972 </div> 973 </article> 974 <article aria-labelledby="henry-huber-on-football-penns-valleys-week-5-win-marks-potential-turning-of-leaf"> 975 <div class="full_category_photo_wrap wide"> 976 <a href="https://www.lockhaven.com/sports/local-sports/2026/09/henry-huber-on-football-penns-valleys-week-5-win-marks-potential-turning-of-leaf/" tabindex="-1" aria-hidden="true"> 977 <img width="751" height="500" src="https://ogden_images.s3.amazonaws.com/www.lockhaven.com/images/2026/09/30003320/55550188942_fa2d0bf5e1_k-1-751x500.webp" class="attachment-medium size-medium wp-post-image" alt="Henry Huber on football: Penns Valley's Week 5 win marks potential turning of leaf" loading="lazy" decoding="async" /> </a> 978 </div> 979 <div class="cat_article_text"> 980 <h2 id="henry-huber-on-football-penns-valleys-week-5-win-marks-potential-turning-of-leaf"> 981 <a href="https://www.lockhaven.com/sports/local-sports/2026/09/henry-huber-on-football-penns-valleys-week-5-win-marks-potential-turning-of-leaf/">Henry Huber on football: Penns Valley's Week 5 win marks potential turning of leaf</a> 982 </h2> 983 <div class="cat_article_meta"> 984 <a class="cat_article_cat_label" href="https://www.lockhaven.com/sports/local-sports/">Local sports</a> 985 <time datetime="2026-09-30">September 30, 2026</time> 986 </div> 987 <p>Coming off Week 4âs homecoming performance, Penns Valley football head coach Martin Tobias was both proud and a bit disappointed. In hanging with Philipsburg-Osceola, the Rams had just pulled off an immense moral victory after three weeks of hardships. But moral victories arenât what the ...</p> 988 </div> 989 </article> 990 <article aria-labelledby="penn-state-unveils-2026-27-wrestling-schedule"> 991 <div class="cat_article_text"> 992 <h2 id="penn-state-unveils-2026-27-wrestling-schedule"> 993 <a href="https://www.lockhaven.com/sports/local-sports/2026/09/penn-state-unveils-2026-27-wrestling-schedule/">Penn State unveils 2026-27 wrestling schedule</a> 994 </h2> 995 <div class="cat_article_meta"> 996 <a class="cat_article_cat_label" href="https://www.lockhaven.com/sports/local-sports/">Local sports</a> 997 <time datetime="2026-09-30">September 30, 2026</time> 998 </div> 999 <p>STATE COLLEGE â The Penn State wrestling program, led by 18-year coach Cael Sanderson, announced its 2026-27 schedule Tuesday afternoon, in conjunction with the Big Ten Conferenceâs release of the full wrestling conference slate. 1000 1001The Nittany Lions will embark on a 16-match dual-meet schedule in 2026-27, with seven duals scheduled in State College. Penn State will host four matches inside historic Rec Hall, with three additional dates slated for the Bryce Jordan Center.
1002 1003Additional highlights include the programâs fifth consecutive trip to the Black Knight Invite in West Point, ...</p> 1004 </div> 1005 </article> 1006 1007<div class="pagination_wrap "><ul class='page-numbers'> 1008 <li><span aria-current="page" class="page-numbers current"><span class="pagination_link">1</span></span></li> 1009 <li><a class="page-numbers" href="https://www.lockhaven.com/sports/page/2/"><span class="pagination_link">2</span></a></li> 1010 <li><span class="page-numbers dots">…</span></li> 1011 <li><a class="page-numbers" href="https://www.lockhaven.com/sports/page/100/"><span class="pagination_link">100</span></a></li> 1012 <li><a class="next page-numbers" href="https://www.lockhaven.com/sports/page/2/"><i class="icon-angle-right"></i></a></li> 1013</ul> 1014</div> 1015 </div><!-- #category_main --> 1016 1017 <aside id="category_sidebar" aria-label="Sidebar"> 1018 <div id='TELP_Middle_300x250' style='text-align:center' class='lazyload g_ad three_hundredx250' data-ad-slot='TELP_Middle_300x250'> 1019
1019<script type='text/javascript'> 1020 ogdenLoadAd('TELP_Middle_300x250', { rootMargin: '600px 0px' }); 1021 </script>
1021 1022</div> <section class="ap_sidebar"> 1023 <h2 class="ap_sidebar_title"> 1024 <a href="https://www.lockhaven.com/sports/pa-sports-apwire/">PA Sports</a> 1025 </h2> 1026 <ul class="ap_sidebar_list"> 1027 <li class="ap_sidebar_item"> 1028 <a href="/wire/?category=5211&ID=399859">Ex-NFL star Antonio Brown appears in Miami court but judge delays hearing on expected plea deal</a> 1029 </li> 1030 <li class="ap_sidebar_item"> 1031 <a href="/wire/?category=5211&ID=399853">Harper atones for outfield gaffe, Bohm homers in 10th as Phillies beat Braves 4-3 to force Game 3</a> 1032 </li> 1033 <li class="ap_sidebar_item"> 1034 <a href="/wire/?category=5211&ID=399850">Steelers head to Cleveland for matchup of 2-1 teams in Aaron Rodgers' final Thursday night game</a> 1035 </li> 1036 </ul> 1037 </section> 1038 1039 <div id='TELP_Right_300x600' style='text-align:center' class='lazyload g_ad three_hundredx600' data-ad-slot='TELP_Right_300x600'> 1040
1040<script type='text/javascript'> 1041 ogdenLoadAd('TELP_Right_300x600', { rootMargin: '600px 0px' }); 1042 </script>
1042 1043</div> </aside> 1044 1045 </div><!-- #category_layout --> 1046 </main> 1047 </div> 1048<div id='TELP_Bottom_728x90' style='text-align:center' class='lazyload g_ad leaderboard leaderboard_bottom' data-ad-slot='TELP_Bottom_728x90'> 1049
1049<script type='text/javascript'> 1050 ogdenLoadAd('TELP_Bottom_728x90', { rootMargin: '600px 0px' }); 1051 </script>
1051 1052</div> 1053<span id="promo"></span>
1054<script language="javascript"> 1055 1056 <!-- include script to activate BREAKING NEWS --> 1057 $.getScript('/_breakingNews/www.lockhaven.com/inc_breakingNews.js'); 1058 1059 1060 1061 function listGetAt(c,p,d) { 1062 if(arguments.length<3)d=","; 1063 var e = c.split(d); 1064 if( p >= 1 && p <= e.length ) { 1065 return e[p-1]; 1066 } 1067 alert("Out of range"); 1068 return ""; 1069 } 1070 1071 function getCookie(name) { 1072 var dc = document.cookie; 1073 var prefix = name + "="; 1074 var begin = dc.indexOf("; " + prefix); 1075 if (begin == -1) { 1076 begin = dc.indexOf(prefix); 1077 if (begin != 0) return null; 1078 } else { 1079 begin += 2; 1080 var end = document.cookie.indexOf(";", begin); 1081 if (end == -1) { 1082 end = dc.length; 1083 } 1084 } 1085 // because unescape has been deprecated, replaced with decodeURI 1086 //return unescape(dc.substring(begin + prefix.length, end)); 1087 return decodeURI(dc.substring(begin + prefix.length, end)); 1088 } 1089 1090 /* find banners that have already been closed and exclude them from the results */ 1091 var closed_banners = ''; 1092 jQuery.each(document.cookie.split(/; */), function() { 1093 var splitCookie = this.split('='); 1094 if ( splitCookie[0].slice(0,5) == 'promo' ) { 1095 if ( closed_banners.length ) { 1096 closed_banners += ','; 1097 } 1098 closed_banners += splitCookie[0].replace('promo_', ''); 1099 } 1100 }); 1101 1102 if ( closed_banners.length ) { 1103 var promoURL = 'https://promos.ogdennews.com/_custom/promos/get_promos_shared_core.php?sid=TELP&xc=' + closed_banners; 1104 } else { 1105 var promoURL = 'https://promos.ogdennews.com/_custom/promos/get_promos_shared_core.php?sid=TELP'; 1106 } 1107 1108 1109 jQuery.get( 1110 promoURL, 1111 { 1112 buster:Math.random() 1113 }, 1114 function(data) { 1115 1116 1117 if ( data.includes('æ') && ( listGetAt(data, 4, 'æ') == 1 || listGetAt(data, 6, 'æ') ) ) { 1118 1119 /* check to see if this bottom banner has been previously closed and the cookie session has not expired */ 1120 if ( getCookie('promo_'+listGetAt(data, 5, 'æ')) !== 'closed' ){ 1121 document.getElementById('promo').innerHTML = listGetAt(data, 2, 'æ'); 1122 } 1123 /* if menu items have been included - loop over them and add them to the hamburger menu */ 1124 if ( listGetAt(data, 6, 'æ') ) { 1125 1126 /* menu items will arrive in either of these formats */ 1127 /*****************************************************/ 1128 /* simple^code for menu <li> to be appended */ 1129 /* nested^code for child menu <li> to be appended^code for full parent/child menu <ul> <li> combo to be appended^parent CAT name for searching 1130 /*****************************************************/ 1131 /* if there are more than one menu item passed - they will be | (pipe) delimited */ 1132 1133 /* split the | (pipe) delimited list into an array */ 1134 var menuArray = listGetAt(data, 6, 'æ').split('|'); 1135 1136 /* loop over the new array */ 1137 for ( var i = 0; i < menuArray.length; i++) { 1138 1139 /* if this is a simple menu item - just append it to the bottom of the hamburger nav */ 1140 if ( listGetAt(menuArray[i], 1, '^') == 'simple' ) { 1141 document.getElementById('menu-mobile-menu').insertAdjacentHTML('beforeend', listGetAt(menuArray[i], 2, '^')); 1142 } 1143 1144 /* if this is a nested menu item - run the required additional logic */ 1145 if ( listGetAt(menuArray[i], 1, '^') == 'nested' ) { 1146 1147 /* set a flag to track if the menu item has been added already or not */ 1148 var liAdded = 0; 1149 1150 /* loop over the current menu structure */ 1151 /* this loop will look only for menu items that have sub menus (nested) */ 1152 /* this loop will get the text of the FIRST <a> in the menu item, which will be the main category name */ 1153 $('#menu-mobile-menu li.menu-item-has-children:has(a)').each(function() { 1154 1155 var text = $(this).find('a:first').text(); 1156 var text = text.replace("'", "'"); 1157 var text = text.replace("&", "&"); 1158 1159 var text_comparison = listGetAt(menuArray[i], 4, '^'); 1160 var text_comparison = text_comparison.replace("'", "'"); 1161 var text_comparison = text_comparison.replace("&", "&"); 1162 1163 1164 1165 /* this will compare the text found (main category name) with the 'parent CAT name for searching' (number 4 in the ^ delimited string provided) of the nested menu item about to be appended */ 1166 /* if the names match - we will only inject the submenu item (number 2 in the ^ delimited string provided) */ 1167 if ( text.toLowerCase() === text_comparison.toLowerCase() ) { 1168 var newLi = $(listGetAt(menuArray[i], 2, '^')); 1169 $(this).children('ul.sub-menu').append(newLi);
1170 liAdded = 1; 1171 } 1172 }); 1173 1174 /* if the menu item has not already been added - that means there was not a match for the parent category */ 1175 /* we will continue now by adding a full nested menu item to the bottom of the hamburger menu, including parent and sub category (number 3 in the ^ delimited string provided) */ 1176 if ( !liAdded ) { 1177 document.getElementById('menu-mobile-menu').insertAdjacentHTML('beforeend', listGetAt(menuArray[i], 3, '^')); 1178 } 1179 1180 } 1181 1182 } 1183 } 1184 1185 1186 } 1187 1188 /* function to apply scroller to the promos div */ 1189 (function () { 1190 1191 function initScroller() { 1192 1193 const section = document.getElementById('promo_ad_section'); 1194 1195 if (!section) { 1196 return; 1197 } 1198 1199 const VISIBLE = 3; 1200 const INTERVAL = 4000; 1201 const DURATION = 600; 1202 const DRAG_THRESHOLD = 40; 1203 const DRAG_START_THRESHOLD = 6; 1204 1205 const ads = Array.from( 1206 section.querySelectorAll('.promo_ads') 1207 ); 1208 1209 if (ads.length <= VISIBLE) { 1210 return; 1211 } 1212 1213 const images = section.querySelectorAll('img'); 1214 1215 let loaded = 0; 1216 1217 1218 /* 1219 * -------------------------------------------------- 1220 * Wait for promo images to load 1221 * -------------------------------------------------- 1222 */ 1223 1224 function onImageLoad() { 1225 1226 loaded++; 1227 1228 if (loaded >= images.length) { 1229 start(); 1230 } 1231 } 1232 1233 1234 images.forEach(img => { 1235 1236 if (img.complete) { 1237 1238 onImageLoad(); 1239 1240 } else { 1241 1242 img.addEventListener( 1243 'load', 1244 onImageLoad 1245 ); 1246 1247 img.addEventListener( 1248 'error', 1249 onImageLoad 1250 ); 1251 } 1252 1253 }); 1254 1255 1256 /* 1257 * -------------------------------------------------- 1258 * Start scroller 1259 * -------------------------------------------------- 1260 */ 1261 1262 function start() { 1263 1264 const itemH = ads[0].offsetHeight; 1265 1266 if (!itemH) { 1267 return; 1268 } 1269 1270 const originalAds = Array.from( 1271 section.querySelectorAll('.promo_ads') 1272 ); 1273 1274 1275 /* 1276 * -------------------------------------------------- 1277 * Clone promos at beginning 1278 * -------------------------------------------------- 1279 */ 1280 1281 originalAds 1282 .slice(-VISIBLE) 1283 .forEach(ad => { 1284 1285 const clone = ad.cloneNode(true); 1286 1287 clone.classList.add('promo-clone'); 1288 1289 section.insertBefore( 1290 clone, 1291 section.firstChild 1292 ); 1293 1294 }); 1295 1296 1297 /* 1298 * -------------------------------------------------- 1299 * Clone promos at end 1300 * -------------------------------------------------- 1301 */ 1302 1303 originalAds 1304 .slice(0, VISIBLE) 1305 .forEach(ad => { 1306 1307 const clone = ad.cloneNode(true); 1308 1309 clone.classList.add('promo-clone'); 1310 1311 section.appendChild(clone); 1312 1313 }); 1314 1315 1316 const allAds = Array.from( 1317 section.querySelectorAll('.promo_ads') 1318 ); 1319 1320 1321 /* 1322 * Start after the clones at the top. 1323 */ 1324 1325 let offset = VISIBLE; 1326 1327 1328 /* 1329 * Set visible height. 1330 */ 1331 1332 section.style.height = 1333 (itemH * VISIBLE) + 'px'; 1334 1335 1336 /* 1337 * -------------------------------------------------- 1338 * Initial positioning 1339 * -------------------------------------------------- 1340 */ 1341 1342 allAds.forEach((ad, i) => { 1343 1344 ad.style.position = 'absolute'; 1345 ad.style.left = '0'; 1346 ad.style.width = '100%'; 1347 1348 ad.style.top = 1349 ((i - offset) * itemH) + 'px'; 1350 1351 ad.style.transition = 1352 `top ${DURATION}ms ease`; 1353 1354 }); 1355 1356 1357 /* 1358 * -------------------------------------------------- 1359 * Navigation buttons 1360 * -------------------------------------------------- 1361 */ 1362 1363 const upButton = 1364 document.createElement('button'); 1365
1366 upButton.type = 'button'; 1367 1368 upButton.className = 1369 'promo-scroll-button promo-scroll-up'; 1370 1371 upButton.innerHTML = '▲'; 1372 1373 upButton.setAttribute( 1374 'aria-label', 1375 'Previous promotion' 1376 ); 1377 1378 1379 const downButton = 1380 document.createElement('button'); 1381 1382 downButton.type = 'button'; 1383 1384 downButton.className = 1385 'promo-scroll-button promo-scroll-down'; 1386 1387 downButton.innerHTML = '▼'; 1388 1389 downButton.setAttribute( 1390 'aria-label', 1391 'Next promotion' 1392 ); 1393 1394 1395 section.appendChild(upButton); 1396 section.appendChild(downButton); 1397 1398 1399 /* 1400 * -------------------------------------------------- 1401 * Position helper 1402 * -------------------------------------------------- 1403 */ 1404 1405 function updatePositions( 1406 animate = true 1407 ) { 1408 1409 allAds.forEach((ad, i) => { 1410 1411 ad.style.transition = 1412 animate 1413 ? `top ${DURATION}ms ease` 1414 : 'none'; 1415 1416 ad.style.top = 1417 ((i - offset) * itemH) + 'px'; 1418 1419 }); 1420 1421 } 1422 1423 1424 /* 1425 * -------------------------------------------------- 1426 * Normalize logical offset 1427 * -------------------------------------------------- 1428 */ 1429 1430 function normalizeOffset() { 1431 1432 while ( offset >= originalAds.length + VISIBLE ) { 1433 offset -= originalAds.length; 1434 } 1435 1436 1437 while ( offset < VISIBLE ) { 1438 offset += originalAds.length; 1439 } 1440 1441 } 1442 1443 1444 /* 1445 * -------------------------------------------------- 1446 * Animation state 1447 * -------------------------------------------------- 1448 */ 1449 1450 let animating = false; 1451 1452 1453 /* 1454 * -------------------------------------------------- 1455 * Move forward one promo 1456 * -------------------------------------------------- 1457 */ 1458 1459 function next() { 1460 1461 if (animating) { 1462 return; 1463 } 1464 1465 animating = true; 1466 1467 offset++; 1468 1469 updatePositions(true); 1470 1471 1472 setTimeout(() => { 1473 1474 normalizeOffset(); 1475 1476 updatePositions(false); 1477 1478 animating = false; 1479 1480 }, DURATION); 1481 1482 } 1483 1484 1485 /* 1486 * -------------------------------------------------- 1487 * Move backward one promo 1488 * -------------------------------------------------- 1489 */ 1490 1491 function previous() { 1492 1493 if (animating) { 1494 return; 1495 } 1496 1497 animating = true; 1498 1499 offset--; 1500 1501 updatePositions(true); 1502 1503 1504 setTimeout(() => { 1505 1506 normalizeOffset(); 1507 1508 updatePositions(false); 1509 1510 animating = false; 1511 1512 }, DURATION); 1513 1514 } 1515 1516 1517 /* 1518 * -------------------------------------------------- 1519 * Automatic scrolling 1520 * -------------------------------------------------- 1521 */ 1522 1523 let autoScrollTimer = null; 1524 let autoScrollRestartTimer = null; 1525 1526 1527 function startAutoScroll() { 1528 1529 stopAutoScroll(); 1530 1531 autoScrollTimer = 1532 setInterval( 1533 next, 1534 INTERVAL 1535 ); 1536 1537 } 1538 1539 1540 function stopAutoScroll() { 1541 1542 if (autoScrollTimer) { 1543 clearInterval(autoScrollTimer); 1544 autoScrollTimer = null; 1545 } 1546 1547 1548 if (autoScrollRestartTimer) { 1549 clearTimeout(autoScrollRestartTimer); 1550 autoScrollRestartTimer = null; 1551 } 1552 1553 } 1554 1555 1556 function restartAutoScroll() { 1557 1558 stopAutoScroll(); 1559 1560 autoScrollRestartTimer = 1561 setTimeout(() => { 1562 1563 startAutoScroll(); 1564 1565 }, INTERVAL); 1566 1567 } 1568 1569 1570 /* 1571 * -------------------------------------------------- 1572 * Button controls 1573 * -------------------------------------------------- 1574 */ 1575 1576 upButton.addEventListener( 1577 'click', 1578 function (event) { 1579 1580 event.stopPropagation(); 1581 1582 previous(); 1583 1584 restartAutoScroll(); 1585 1586 } 1587 ); 1588 1589 1590 downButton.addEventListener( 1591 'click', 1592 function (event) { 1593 1594 event.stopPropagation(); 1595 1596 next(); 1597 1598 restartAutoScroll(); 1599 1600 } 1601 ); 1602 1603 1604 /* 1605 * -------------------------------------------------- 1606 * Drag / swipe support 1607 * -------------------------------------------------- 1608 * 1609 * Supports: 1610 * 1611 * - mouse drag 1612 * - touch swipe 1613 * - pen 1614 *
1615 * Normal clicks remain normal anchor clicks. 1616 */ 1617 1618 let pointerDown = false; 1619 let dragging = false; 1620 let suppressClick = false; 1621 1622 let startY = 0; 1623 let currentY = 0; 1624 let dragOffset = 0; 1625 1626 let activePointerId = null; 1627 1628 1629 /* 1630 * -------------------------------------------------- 1631 * Pointer down 1632 * -------------------------------------------------- 1633 */ 1634 1635 section.addEventListener( 1636 'pointerdown', 1637 function (event) { 1638 1639 /* 1640 * Ignore navigation buttons. 1641 */ 1642 if ( event.target.closest('.promo-scroll-button') ) { 1643 return; 1644 } 1645 1646 1647 /* 1648 * Only allow primary mouse button. 1649 */ 1650 if ( event.pointerType === 'mouse' && event.button !== 0 ) { 1651 return; 1652 } 1653 1654 1655 /* 1656 * Don't begin a new interaction 1657 * while an animation is running. 1658 */ 1659 if (animating) { 1660 return; 1661 } 1662 1663 1664 pointerDown = true; 1665 dragging = false; 1666 suppressClick = false; 1667 1668 activePointerId = event.pointerId; 1669 1670 startY = event.clientY; 1671 1672 currentY = startY; 1673 1674 dragOffset = 0; 1675 1676 1677 /* 1678 * IMPORTANT: 1679 * 1680 * We intentionally do NOT capture 1681 * the pointer yet. 1682 * 1683 * The user may simply be clicking 1684 * the promo's <a> link. 1685 */ 1686 1687 } 1688 ); 1689 1690 1691 /* 1692 * -------------------------------------------------- 1693 * Pointer move 1694 * -------------------------------------------------- 1695 */ 1696 1697 section.addEventListener( 1698 'pointermove', 1699 function (event) { 1700 1701 if ( !pointerDown || event.pointerId !== activePointerId ) { 1702 return; 1703 } 1704 1705 1706 currentY = event.clientY; 1707 1708 1709 const movement = currentY - startY; 1710 1711 1712 /* 1713 * Don't classify the interaction 1714 * as a drag until the pointer has 1715 * moved enough. 1716 */ 1717 if (!dragging) { 1718 1719 if ( Math.abs(movement) < DRAG_START_THRESHOLD ) { 1720 return; 1721 } 1722 1723 1724 /* 1725 * This is now a real drag. 1726 */ 1727 dragging = true; 1728 suppressClick = true; 1729 1730 section.classList.add('promo-dragging'); 1731 1732 1733 /* 1734 * Now it is safe to capture 1735 * the pointer. 1736 */ 1737 try { 1738 1739 section.setPointerCapture( 1740 event.pointerId 1741 ); 1742 1743 } catch (e) { 1744 1745 /* 1746 * Pointer capture is helpful 1747 * but not required. 1748 */ 1749 1750 } 1751 1752 1753 stopAutoScroll(); 1754 1755 } 1756 1757 1758 dragOffset = 1759 movement; 1760 1761 1762 /* 1763 * Limit the maximum physical drag. 1764 */ 1765 const maxDrag = 1766 itemH * 1767 (originalAds.length - 1); 1768 1769 1770 dragOffset = 1771 Math.max( 1772 -maxDrag, 1773 Math.min( 1774 maxDrag, 1775 dragOffset 1776 ) 1777 ); 1778 1779 1780 /* 1781 * Move all promos with the pointer. 1782 */ 1783 allAds.forEach((ad, i) => { 1784 1785 ad.style.transition = 1786 'none'; 1787 1788 ad.style.top = 1789 ( 1790 ((i - offset) * itemH) + 1791 dragOffset 1792 ) + 'px'; 1793 1794 }); 1795 1796 } 1797 ); 1798 1799 1800 /* 1801 * -------------------------------------------------- 1802 * Finish pointer interaction 1803 * -------------------------------------------------- 1804 */ 1805 1806 function finishDrag(event) { 1807 1808 if ( !pointerDown || event.pointerId !== activePointerId ) { 1809 return; 1810 } 1811 1812 1813 pointerDown = false; 1814 1815 activePointerId = null; 1816 1817 1818 /* 1819 * -------------------------------------------------- 1820 * Normal click 1821 * -------------------------------------------------- 1822 * 1823 * If no real dragging occurred, 1824 * do absolutely nothing here. 1825 * 1826 * This allows the browser to process
1827 * the promo's normal <a> click. 1828 */ 1829 1830 if (!dragging) { 1831 1832 dragOffset = 0; 1833 1834 return; 1835 } 1836 1837 1838 /* 1839 * -------------------------------------------------- 1840 * Real drag 1841 * -------------------------------------------------- 1842 */ 1843 1844 dragging = false; 1845 1846 1847 section.classList.remove( 'promo-dragging' ); 1848 1849 1850 try { 1851 1852 section.releasePointerCapture( 1853 event.pointerId 1854 ); 1855 1856 } catch (e) { 1857 1858 /* 1859 * Pointer may already be released. 1860 */ 1861 1862 } 1863 1864 1865 /* 1866 * -------------------------------------------------- 1867 * Determine how many promos were moved 1868 * -------------------------------------------------- 1869 */ 1870 1871 let itemsMoved = 1872 Math.round( 1873 dragOffset / itemH 1874 ); 1875 1876 1877 /* 1878 * If the user made a deliberate swipe 1879 * but didn't quite reach half a promo, 1880 * still move one promo. 1881 */ 1882 if ( 1883 itemsMoved === 0 && 1884 Math.abs(dragOffset) >= 1885 DRAG_THRESHOLD 1886 ) { 1887 1888 itemsMoved = 1889 dragOffset > 0 1890 ? 1 1891 : -1; 1892 1893 } 1894 1895 1896 /* 1897 * Very small drag: 1898 * just snap back. 1899 */ 1900 if (itemsMoved === 0) { 1901 1902 updatePositions(true); 1903 1904 dragOffset = 0; 1905 1906 restartAutoScroll(); 1907 1908 return; 1909 } 1910 1911 1912 /* 1913 * -------------------------------------------------- 1914 * Update logical position 1915 * -------------------------------------------------- 1916 * 1917 * Upward drag: 1918 * 1919 * dragOffset = negative 1920 * itemsMoved = negative 1921 * 1922 * Therefore subtracting itemsMoved 1923 * advances forward. 1924 */ 1925 1926 offset -= 1927 itemsMoved; 1928 1929 1930 normalizeOffset(); 1931 1932 1933 /* 1934 * -------------------------------------------------- 1935 * Snap smoothly to nearest promo 1936 * -------------------------------------------------- 1937 */ 1938 1939 updatePositions(true); 1940 1941 1942 setTimeout(() => { 1943 1944 normalizeOffset(); 1945 1946 updatePositions(false); 1947 1948 }, DURATION); 1949 1950 1951 dragOffset = 0; 1952 1953 1954 /* 1955 * Resume auto scrolling later. 1956 */ 1957 1958 restartAutoScroll(); 1959 1960 } 1961 1962 1963 /* 1964 * -------------------------------------------------- 1965 * Pointer release events 1966 * -------------------------------------------------- 1967 */ 1968 1969 section.addEventListener( 1970 'pointerup', 1971 finishDrag 1972 ); 1973 1974 1975 section.addEventListener( 1976 'pointercancel', 1977 finishDrag 1978 ); 1979 1980 1981 /* 1982 * -------------------------------------------------- 1983 * Suppress click ONLY after a drag 1984 * -------------------------------------------------- 1985 * 1986 * Normal click: 1987 * 1988 * opens promo link 1989 * 1990 * Drag: 1991 * 1992 * scrolls promos without accidentally 1993 * opening a promo link afterward. 1994 */ 1995 1996 section.addEventListener( 1997 'click', 1998 function (event) { 1999 2000 if (!suppressClick) { 2001 return; 2002 } 2003 2004 2005 event.preventDefault(); 2006 event.stopPropagation(); 2007 2008 2009 suppressClick = false; 2010 2011 }, 2012 true 2013 ); 2014 2015 2016 /* 2017 * -------------------------------------------------- 2018 * Prevent native image dragging 2019 * -------------------------------------------------- 2020 */ 2021 2022 section.addEventListener( 2023 'dragstart', 2024 function (event) { 2025 2026 event.preventDefault(); 2027 2028 } 2029 ); 2030 2031 2032 /* 2033 * -------------------------------------------------- 2034 * Start automatic scrolling 2035 * -------------------------------------------------- 2036 */ 2037 2038 startAutoScroll(); 2039 2040 } 2041 2042 } 2043 2044 2045 /* 2046 * -------------------------------------------------- 2047 * Initialize 2048 * -------------------------------------------------- 2049 */ 2050 2051 if ( 2052 document.readyState === 'loading' 2053 ) { 2054 2055 document.addEventListener( 2056 'DOMContentLoaded', 2057 initScroller 2058 ); 2059 2060 } else { 2061 2062 initScroller(); 2063 2064 } 2065 2066 })(); 2067 2068 }, 2069 "html"); 2070 2071 2072 function closePromo(amount, duration, promo_id) { 2073 jQuery('.readers_choice_sticky_image').hide(); 2074 2075 if ( amount !== undefined && duration !== undefined && promo_id !== undefined ) { 2076 /* cookie parameters were declared - set the cookie */ 2077 switch ( duration ) { 2078 case 'minute': 2079 var cookieLife = 1000 * 60 * amount; 2080 break; 2081 case 'hour': 2082 var cookieLife = 1000 * 60 * 60 * amount; 2083 break; 2084 case 'day': 2085 var cookieLife = 1000 * 60 * 60 * 24 * amount; 2086 break; 2087 case 'week': 2088 var cookieLife = 1000 * 60 * 60 * 24 * 7 * amount; 2089 break; 2090 case 'month': 2091 var cookieLife = 1000 * 60 * 60 * 24 * 7 * 4 * amount; 2092 break; 2093 default: 2094 var cookieLife = 0; 2095 break; 2096 } 2097 if ( cookieLife != 0 ) { 2098 /* get current timestamp in current WordPress timezone in milliseconds */ 2099 const currentTimestamp = 1790890126000; 2100 /* add appropriate amount of milliseconds according to the parameters passed to the function */ 2101 const adjustedTimestamp = currentTimestamp + cookieLife; 2102 /* create new future datetime with the additional time added */ 2103 const cookieExpirationTimestamp = new Date(adjustedTimestamp); 2104 /* set cookie to expire at designated future time and day */ 2105 document.cookie = "promo_" + promo_id + "=closed; expires=" + cookieExpirationTimestamp.toUTCString() + ";"; 2106 } 2107 } 2108 2109 } 2110 2111 /* regenerate the listeners on the hamburger menu for the open/close arrows */ 2112 initMobileMenuItems();
2113 2114</script>
2114 2115 2116<footer id="bottom_footer"> 2117 <div id="footer_content" class="default_width"> 2118 <section id="footer_top"> 2119 <figure> 2120 <a href="https://www.lockhaven.com/" rel="home"> 2121 <img id="site_logo" src="https://ogden_images.s3.amazonaws.com/www.lockhaven.com/images/2026/07/13112558/lockhaven.png" border="0" alt="website logo" /> 2122 </a> 2123 </figure> 2124 <aside> 2125 <a href="https://www.facebook.com/LockHaven.newspaper"><i class="icon-facebook"></i></a> <a href="http://twitter.com/TheExpressPA"><i class="icon-x_logo_2023 twitter_x"></i></a> </aside> 2126 </section> 2127 <div class="menu-footer-menu-container"><ul id="menu-footer-menu" class="menu"><li id="menu-item-670536" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-670536"><a href="https://www.lockhaven.com/news/">News</a> 2128<ul class="sub-menu"> 2129 <li id="menu-item-670539" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670539"><a href="https://www.lockhaven.com/news/local-news/">Local news</a></li> 2130 <li id="menu-item-670537" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670537"><a href="https://www.lockhaven.com/news/business/">Business</a></li> 2131 <li id="menu-item-670538" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670538"><a href="https://www.lockhaven.com/news/community/">Community</a></li> 2132 <li id="menu-item-670540" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670540"><a href="https://www.lockhaven.com/obituaries/">Obituaries</a></li> 2133</ul> 2134</li> 2135<li id="menu-item-670546" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-has-children menu-item-670546"><a href="https://www.lockhaven.com/sports/" aria-current="page">Sports</a> 2136<ul class="sub-menu"> 2137 <li id="menu-item-670547" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670547"><a href="https://www.lockhaven.com/sports/local-sports/">Local sports</a></li> 2138 <li id="menu-item-670548" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670548"><a href="https://www.lockhaven.com/sports/pa-sports-apwire/">PA Sports</a></li> 2139</ul> 2140</li> 2141<li id="menu-item-670542" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-670542"><a href="https://www.lockhaven.com/opinion/">Opinion</a> 2142<ul class="sub-menu"> 2143 <li id="menu-item-670544" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670544"><a href="https://www.lockhaven.com/opinion/editorials/">Our View</a></li> 2144 <li id="menu-item-670543" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670543"><a href="https://www.lockhaven.com/opinion/columns/">Columns</a></li> 2145 <li id="menu-item-670545" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670545"><a href="https://www.lockhaven.com/opinion/letters-to-the-editor/">Letters to the editor</a></li> 2146</ul> 2147</li> 2148<li id="menu-item-670530" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-670530"><a href="https://www.lockhaven.com/life/">Life</a> 2149<ul class="sub-menu"> 2150 <li id="menu-item-670531" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670531"><a href="https://www.lockhaven.com/life/engagements/">Engagements</a></li> 2151 <li id="menu-item-670533" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670533"><a href="https://www.lockhaven.com/life/weddings/">Weddings</a></li> 2152 <li id="menu-item-670532" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670532"><a href="https://www.lockhaven.com/life/in-the-schools/">In The Schools</a></li> 2153 <li id="menu-item-670534" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-670534">
2153<a href="https://www.lockhaven.com/life/welcome-to-our-world/">Welcome to Our World</a></li> 2154</ul> 2155</li> 2156<li id="menu-item-670528" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-670528"><a href="https://www.lockhaven.com/contact-us/">Contact Us</a> 2157<ul class="sub-menu"> 2158 <li id="menu-item-670527" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-670527"><a href="https://www.lockhaven.com/forms/submit-news/">Submit News</a></li> 2159 <li id="menu-item-818415" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-818415"><a href="https://www.lockhaven.com/subscribe/">Subscribe</a></li> 2160 <li id="menu-item-670529" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-670529"><a href="https://www.lockhaven.com/advertise/">Advertise</a></li> 2161 <li id="menu-item-670526" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-670526"><a href="https://www.lockhaven.com/terms-of-service/">Terms of Service</a></li> 2162</ul> 2163</li> 2164</ul></div> </div> 2165 <div id="footer_address" class="default_width"> 2166 <p>9-11 W. Main Street, Lock Haven, PA 17745 - Copyright © The Express </p> 2167 </div> 2168 </footer> 2169 2170<div class="progress-wrap"> 2171 <svg class="progress-circle svg-content" width="100%" height="100%" viewBox="-1 -1 102 102"> 2172 <path d="M50,1 a49,49 0 0,1 0,98 a49,49 0 0,1 0,-98"/> 2173 </svg> 2174</div>
2175<script> 2176 $(document).ready(function(){ 2177 //Scroll back to top 2178 var progressPath = document.querySelector('.progress-wrap path'); 2179 var pathLength = progressPath.getTotalLength(); 2180 progressPath.style.transition = progressPath.style.WebkitTransition = 'none'; 2181 progressPath.style.strokeDasharray = pathLength + ' ' + pathLength; 2182 progressPath.style.strokeDashoffset = pathLength; 2183 progressPath.getBoundingClientRect(); 2184 progressPath.style.transition = progressPath.style.WebkitTransition = 'stroke-dashoffset 10ms linear'; 2185 var updateProgress = function () { 2186 var scroll = $(window).scrollTop(); 2187 var height = $(document).height() - $(window).height(); 2188 var progress = pathLength - (scroll * pathLength / height); 2189 progressPath.style.strokeDashoffset = progress; 2190 } 2191 updateProgress(); 2192 $(window).scroll(updateProgress); 2193 var offset = 50; 2194 var duration = 550; 2195 jQuery(window).on('scroll', function() { 2196 if (jQuery(this).scrollTop() > offset) { 2197 jQuery('.progress-wrap').addClass('active-progress'); 2198 } else { 2199 jQuery('.progress-wrap').removeClass('active-progress'); 2200 } 2201 }); 2202 jQuery('.progress-wrap').on('click', function(event) { 2203 event.preventDefault(); 2204 jQuery('html, body').animate({scrollTop: 0}, duration); 2205 return false; 2206 }) 2207 }) 2208</script>
2208<script type="speculationrules"> 2209{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wordpress/wp-*.php","/wordpress/wp-admin/*","/wp-content/uploads/*","/wordpress/wp-content/*","/wordpress/wp-content/plugins/*","/wordpress/wp-content/themes/oni_newscore_2026/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 2210</script>
2210 2211
2211<script>var ogdenPollAjax = { ajaxurl: 'https://www.lockhaven.com/wordpress/wp-admin/admin-ajax.php', recaptchaSiteKey: 'YOUR_RECAPTCHA_V3_SITE_KEY' };</script>
2211 2212
2212<script> 2213 document.addEventListener('DOMContentLoaded', function() { 2214 document.querySelectorAll('.opw_form').forEach(function(form) { 2215 form.addEventListener('submit', function(e) { 2216 e.preventDefault(); 2217 var btn = form.querySelector('.opw_submit'); 2218 btn.disabled = true; 2219 btn.textContent = 'Submittingâ¦'; 2220 2221 var siteKey = ogdenPollAjax.recaptchaSiteKey; 2222 var isRealKey = siteKey && siteKey !== 'YOUR_RECAPTCHA_V3_SITE_KEY'; 2223 2224 function doSubmit(recaptchaToken) { 2225 var data = new FormData(form); 2226 data.append('action', 'ogden_poll_vote'); 2227 if (recaptchaToken) data.append('recaptcha_token', recaptchaToken); 2228 2229 fetch(ogdenPollAjax.ajaxurl, { 2230 method: 'POST', 2231 credentials: 'same-origin', 2232 body: data 2233 }) 2234 .then(function(r) { return r.json(); }) 2235 .then(function(res) { 2236 if (res.success) { 2237 var widget = form.closest('.ogden_poll_widget'); 2238 widget.querySelector('.opw_form_wrap').innerHTML = res.data.html; 2239 setTimeout(function() { 2240 widget.querySelectorAll('.opw_bar_fill').forEach(function(bar) { 2241 bar.style.width = bar.dataset.pct + '%'; 2242 }); 2243 }, 50); 2244 } else { 2245 btn.disabled = false; 2246 btn.textContent = 'Submit Vote'; 2247 alert(res.data || 'Something went wrong.'); 2248 } 2249 }) 2250 .catch(function() { 2251 btn.disabled = false; 2252 btn.textContent = 'Submit Vote'; 2253 alert('Network error. Please try again.'); 2254 }); 2255 } 2256 2257 if (isRealKey && typeof grecaptcha !== 'undefined') { 2258 grecaptcha.ready(function() { 2259 grecaptcha.execute(siteKey, { action: 'ogden_poll_vote' }).then(function(token) { 2260 doSubmit(token); 2261 }); 2262 }); 2263 } else { 2264 doSubmit(null); 2265 } 2266 }); 2267 }); 2268 2269 // "View results without voting" toggle â works for any number 2270 // of poll widgets on the page, doesn't touch the vote form. 2271 document.querySelectorAll('.opw_view_results_link').forEach(function(link) { 2272 link.addEventListener('click', function() { 2273 var widget = link.closest('.ogden_poll_widget'); 2274 if (!widget) return; 2275 var form = widget.querySelector('.opw_form'); 2276 var view = widget.querySelector('.opw_results_view'); 2277 if (form) form.style.display = 'none'; 2278 link.style.display = 'none'; 2279 if (view) { 2280 view.style.display = 'block'; 2281 view.querySelectorAll('.opw_bar_fill').forEach(function(bar) { 2282 setTimeout(function() { bar.style.width = bar.dataset.pct + '%'; }, 50); 2283 }); 2284 } 2285 }); 2286 }); 2287 }); 2288 </script>
2288 2289
2289<script id="paywall-script-js-extra"> 2290var paywallSettings = {"enablePaywall":"0","freeArticleLimit":"3","newspaperLogo":"https://ogden_images.s3.amazonaws.com/www.lockhaven.com/images/2026/07/13112558/lockhaven.png","iframeUrl":"https://subscribe.lockhaven.com/subscribe/","manageAccountUrl":"https://subscribe.lockhaven.com/my-account/edit-account/","forgotPasswordUrl":"https://subscribe.lockhaven.com/my-account/lost-password/","closeButton":"https://www.lockhaven.com/wordpress/wp-content/plugins/ogden-paywall-sc/img/close.png","pluginPath":"https://www.lockhaven.com/wordpress/wp-content/plugins/ogden-paywall-sc/","authenticator":"onicirc","storeUrl":"https://subscribe.lockhaven.com/","cherryroadEnabled":"1"}; 2291//# sourceURL=paywall-script-js-extra 2292</script>
vendor: 1 bytes, line 2292
2292
2293<script id="paywall-script-js" src="https://www.lockhaven.com/wordpress/wp-content/plugins/ogden-paywall-sc/js/paywall.js?v=23&ver=1.0"></script>
vendor: 1 bytes, line 2293
2293
2294<script id="paywall-header-nav-logins-js" src="https://www.lockhaven.com/wordpress/wp-content/plugins/ogden-paywall-sc/js/header_nav_login_links.js?v=23&ver=1.0"></script>
vendor: 1 bytes, line 2294
2294
2295<script id="gforms_recaptcha_recaptcha-js-extra"> 2296var gforms_recaptcha_recaptcha_strings = {"nonce":"23db445635","disconnect":"Disconnecting","change_connection_type":"Resetting","spinner":"https://www.lockhaven.com/wordpress/wp-content/plugins/gravityforms/images/spinner.svg","connection_type":"classic","disable_badge":"1","change_connection_type_title":"Change Connection Type","change_connection_type_message":"Changing the connection type will delete your current settings. Do you want to proceed?","disconnect_title":"Disconnect","disconnect_message":"Disconnecting from reCAPTCHA will delete your current settings. Do you want to proceed?","site_key":"6LdqCpUcAAAAAKTsLzTrILdJI8pYImtBMkmj1xBl"}; 2297//# sourceURL=gforms_recaptcha_recaptcha-js-extra 2298</script>
vendor: 127 bytes, lines 2298-2299
2298 2299<script data-wp-strategy="defer" defer id="gforms_recaptcha_recaptcha-js" src="https://www.google.com/recaptcha/api.js?render=
22996LdqCpUcAAAAAKTsLzTrILdJI8pYImtBMkmj1xBl
vendor: 27 bytes, line 2299
2299&ver=2.2.2"></script>
2300<script data-wp-strategy="defer" defer id="gforms_recaptcha_frontend-js" src="https://www.lockhaven.com/wordpress/wp-content/plugins/gravityformsrecaptcha/js/frontend.min.js?ver=2.2.2"></script>
2300 2301<style> 2302 #cookie_consent {background:#ececec; text-align:right; padding:10px 0 5px 0} 2303 #cookie_consent div {border-top:solid 1px #dbdbdb; padding:5px 0 0 0;} 2304 #cookie_consent a { text-decoration: none; color: inherit; font-size:12px;} 2305 .termly-display-preferences {color:#333; font-size:12px;} 2306</style> 2307</body> 2308</html> 2309<!-- *´¨) 2310 ¸.â¢Â´Â¸.â¢*´¨) ¸.â¢*¨) 2311 (¸.â¢Â´ (¸.â¢` ¤ Comet Cache is Fully Functional ¤ ´¨) --> 2312 2313<!-- Cache File Version Salt: n/a --> 2314 2315<!-- Cache File URL: https://www.lockhaven.com/sports/ --> 2316<!-- Cache File Path: /usr/web/unified_core.ogdennews.com/wp-content/cache/comet-cache/www.lockhaven.com/cache/https/www-lockhaven-com/sports.html --> 2317 2318<!-- Cache File Generated Via: HTTP request --> 2319<!-- Cache File Generated On: Oct 1st, 2026 @ 9:28 pm UTC --> 2320<!-- Cache File Generated In: 0.13887 seconds --> 2321 2322<!-- Cache File Expires On: Oct 8th, 2026 @ 9:28 pm UTC --> 2323<!-- Cache File Auto-Rebuild On: Oct 8th, 2026 @ 9:28 pm UTC --> 2324 2325<!-- Loaded via Cache On: Oct 1st, 2026 @ 9:58 pm UTC --> 2326<!-- Loaded via Cache In: 0.00092 seconds -->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.