PageSourceSearch

https://www.lockhaven.com/sports/

html lockhaven.com collected 2026-10-02 04:06:09 UTC 119,707 bytes, 2,326 lines download raw bytes

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 &raquo; 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&hellip;" 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&hellip;" 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">&#x2715;</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&#039;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&#039;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&#039;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">&hellip;</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&#038;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&#038;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&#038;ID=399850">Steelers head to Cleveland for matchup of 2-1 teams in Aaron Rodgers&#039; 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("'", "&#039;");
1157								var text = text.replace("&", "&amp;");
1158
1159								var text_comparison = listGetAt(menuArray[i], 4, '^');
1160								var text_comparison = text_comparison.replace("'", "&#039;");
1161								var text_comparison = text_comparison.replace("&", "&amp;");
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 = '&#9650;';
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 = '&#9660;';
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&#038;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&#038;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&#038;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.