PageSourceSearch

https://kx105.fm/index.php

html kx105.fm collected 2026-10-01 23:56:52 UTC 134,866 bytes, 2,371 lines download raw bytes

1<!DOCTYPE html>
2<html xmlns="//www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" dir="ltr">
3<head>
4<meta charset="utf-8">
5	<meta name="rights" content="Durham Radio Inc.">
6	<meta name="og:site_name" content="KX105 New Country FM">
7	<meta name="og:title" content="KX 105 New Country FM">
8	<meta name="og:description" content="KX 105 New Country FM Canada's #1 station for country music. Includes updates on traffic, weather, local events, concerts, and the latest in country music.">
9	<meta name="og:url" content="https://kx105.fm/index.php">
10	<meta name="og:type" content="website">
11	<meta name="og:image" content="https://kx105.fm/images/logo/logo_kx105_sq1024_bg_.jpg">
12	<meta name="description" content="KX 105 New Country FM Canada's #1 station for country music. Includes updates on traffic, weather, local events, concerts, and the latest in country music.">
13	<meta name="generator" content="Joomla! - Open Source Content Management">
14	<title>KX 105 New Country FM</title>
15	<link href="/index.php?format=feed&amp;type=rss" rel="alternate" type="application/rss+xml" title="KX 105 New Country FM">
16	<link href="/index.php?format=feed&amp;type=atom" rel="alternate" type="application/atom+xml" title="KX 105 New Country FM">
17	<link href="/templates/template_kx105_2025/favicon.ico" rel="icon" type="image/vnd.microsoft.icon">
18<link href="/media/plg_system_jmootips/css/jmootips.min.css?9580d37857f293f884f947f8369a5514" rel="stylesheet" />
19	<link href="/media/vendor/bootstrap/css/bootstrap.min.css?5.3.2" rel="stylesheet" />
20	<link href="/media/vendor/joomla-custom-elements/css/joomla-alert.min.css?0.2.0" rel="stylesheet" />
21	<link href="/templates/template_kx105_2025/css/bootstrap.css" rel="stylesheet" />
22	<link href="/templates/template_kx105_2025/css/template.css" rel="stylesheet" />
23	<link href="/media/vendor/fontawesome-free/css/fontawesome.min.css" rel="stylesheet" />
24	<link href="/media/system/css/joomla-fontawesome.min.css" rel="stylesheet" />
25	<link href="https://kx105.fm/modules/mod_jt_contentslider/tmpl/assets/css/style.css" rel="stylesheet" />
26	<link href="https://kx105.fm/modules/mod_jt_contentslider/tmpl/assets/css/lightbox.css" rel="stylesheet" />
27	<link href="/plugins/content/jw_allvideos/jw_allvideos/tmpl/Responsive/css/template.css?v=7.0" rel="stylesheet" />
28	<link href="/components/com_jevents/views/flat/assets/css/modstyle.css?v=3.6.93" rel="stylesheet" />
29	<link href="/components/com_jevents/assets/css/jevcustom.css?v=3.6.93" rel="stylesheet" />
30	<link href="https://kx105.fm/modules/mod_adrefresh/tmpl/style.css" rel="stylesheet" />
31	<link href="https://kx105.fm/modules/mod_songhistory/tmpl/style.css" rel="stylesheet" />
32	<link href="/modules/mod_djimageslider/themes/default/css/djimageslider.css" rel="stylesheet" />
33	<link href="/modules/mod_dripods/assets/styles.css" rel="stylesheet" />
34	<link href="https://kx105.fm/modules/mod_nowplaying/style.css" rel="stylesheet" />
35	<link href="https://kx105.fm/modules/mod_onairnow/css/mod_onairnow.css" rel="stylesheet" />
36	<style>
37    #mod-nowplaying-217 .artist {
38        font-size: 18px;
39        color: #ffffff;
40    }
41    #mod-nowplaying-217 .song-title_now {
42        font-size: 14px;
43        color: #f0f0f0;
44    }
45</style>
46<script src="/media/plg_system_jmootips/js/mootools-core.js?9580d37857f293f884f947f8369a5514"></script>
46
47	
47<script src="/media/plg_system_jmootips/js/mootools-more-jmootips.js?9580d37857f293f884f947f8369a5514"></script>
47
48	
48<script src="/media/plg_system_jmootips/js/jmootips.min.js?9580d37857f293f884f947f8369a5514"></script>
48
49	
49<script src="/media/vendor/jquery/js/jquery.min.js?3.7.1"></script>
49
50	
50<script src="/media/legacy/js/jquery-noconflict.min.js?647005fc12b79b3ca2bb30c059899d5994e3e34d"></script>
50
51	
51<script type="application/json" class="joomla-script-options new">{"bootstrap.modal":{"#modal":{"keyboard":true,"focus":true}},"adRefreshModules":{"265":{"adUnitId":"div-gpt-ad-1745100565501-0","adSlotPath":"\/69289300\/CKQMARTICLE","adSizes":[[728,90],[468,60],[320,50]],"refreshInterval":"60"},"263":{"adUnitId":"div-gpt-ad-1745098367054-0","adSlotPath":"\/69289300\/CKQMBIGBOX","adSizes":[[300,250]],"refreshInterval":"60"},"262":{"adUnitId":"div-gpt-ad-1745097654384-0","adSlotPath":"\/69289300\/CKQMLEADER","adSizes":[[728,90],[320,50]],"refreshInterval":"60"}},"nowPlayingInstances":{"217":{"moduleId":217,"ajaxUrl":"https:\/\/kx105.fm\/?option=com_ajax&module=nowplaying&method=getNowPlaying&format=json&module_id=217","defaultImage":"https:\/\/kx105.fm\/modules\/mod_nowplaying\/media\/default-image.jpg","darkTheme":true,"commercialBreakText":"More music after this break..."}},"onAirNowInstances":{"218":{"moduleId":218,"ajaxUrl":"https:\/\/kx105.fm\/index.php?option=com_ajax&module=onairnow&method=getCurrentProgram&format=json&module_id=218"}},"joomla.jtext":{"ERROR":"Error","MESSAGE":"Message","NOTICE":"Notice","WARNING":"Warning","JCLOSE":"Close","JOK":"OK","JOPEN":"Open"},"system.paths":{"root":"","rootFull":"https:\/\/kx105.fm\/","base":"","baseFull":"https:\/\/kx105.fm\/"},"csrf.token":"bac6e275de1939ba0f68eed5f76ddb76","accessibility-options":{"labels":{"menuTitle":"Accessibility Options","increaseText":"Increase Text Size","decreaseText":"Decrease Text Size","increaseTextSpacing":"Increase Text Spacing","decreaseTextSpacing":"Decrease Text Spacing","invertColors":"Invert Colours","grayHues":"Grey Hues","underlineLinks":"Underline Links","bigCursor":"Big Cursor","readingGuide":"Reading Guide","textToSpeech":"Text to Speech","speechToText":"Speech to Text","resetTitle":"Reset","closeTitle":"Close"},"icon":{"position":{"left":{"size":"0","units":"px"}},"useEmojis":true},"hotkeys":{"enabled":true,"helpTitles":true},"textToSpeechLang":["en-GB"],"speechToTextLang":["en-GB"]}}</script>
51
52	
52<script src="/media/system/js/core.min.js?37ffe4186289eba9c5df81bea44080aff77b9684"></script>
52
53	
53<script src="/media/vendor/bootstrap/js/bootstrap-es5.min.js?5.3.2" nomodule defer></script>
53
54	
54<script src="/media/system/js/messages-es5.min.js?c29829fd2432533d05b15b771f86c6637708bd9d" nomodule defer></script>
54
55	
55<script src="/media/vendor/bootstrap/js/modal.min.js?5.3.2" type="module"></script>
55
56	
56<script src="/media/system/js/messages.min.js?7f7aa28ac8e8d42145850e8b45b3bc82ff9a6411" type="module"></script>
56
57	
57<script src="/media/vendor/accessibility/js/accessibility.min.js?3.0.17" defer></script>
57
58	
58<script src="/media/vendor/jquery/js/jquery.min.js"></script>
58
59	
59<script src="/media/legacy/js/jquery-noconflict.min.js"></script>
59
60	
60<script src="https://kx105.fm//templates/template_kx105_2025/js/jui/bootstrap.min.js"></script>
60
61	
61<script src="https://kx105.fm/templates/template_kx105_2025/js/totop.js"></script>
61
62	
62<script src="https://kx105.fm/templates/template_kx105_2025/js/tt_animation.js"></script>
62
63	
63<script src="https://kx105.fm/templates/template_kx105_2025/js/customjs.js"></script>
63
64	
64<script src="https://kx105.fm/modules/mod_jt_contentslider/tmpl/assets/js/lightbox-plus-jquery.js"></script>
64
65	
65<script src="https://kx105.fm/modules/mod_jt_contentslider/tmpl/assets/js/owl.carousel.js"></script>
65
66	
66<script src="/plugins/content/jw_allvideos/jw_allvideos/includes/js/behaviour.js?v=7.0"></script>
66
67	
67<script src="https://kx105.fm/modules/mod_adrefresh/script.js?v=1786837994"></script>
67
68	
68<script src="/media/djextensions/jquery.easing-j4/jquery.easing.min.js"></script>
68
69	
69<script src="/modules/mod_djimageslider/assets/js/slider.js?v=4.6.2"></script>
69
70	
70<script src="/modules/mod_dripods/assets/script.js"></script>
70
71	
71<script src="https://kx105.fm/modules/mod_nowplaying/script.js"></script>
71
72	
72<script src="https://kx105.fm/modules/mod_onairnow/media/js/mod_onairnow.js"></script>
72
73	
73<script src="/plugins/system/baformsratelimit/media/js/ratelimit.js"></script>
73
74	
74<script></script>
74
75	
75<script type="module">window.addEventListener("load", function() {new Accessibility(Joomla.getOptions("accessibility-options") || {});});</script>
75
76	
76<script>function fetchMoreLatestEvents(modid, direction)
77{        
78        jQuery.ajax({
79                    type : 'POST',
80                    dataType : 'json',
81                    url : "https://kx105.fm/index.php?option=com_jevents&ttoption=com_jevents&typeaheadtask=gwejson&file=fetchlatestevents&path=module&folder=mod_jevents_latest&token=bac6e275de1939ba0f68eed5f76ddb76",
82                    data : {'json':JSON.stringify({'modid':modid, 'direction':direction})},
83                    contentType: "application/x-www-form-urlencoded; charset=utf-8",
84                    scriptCharset: "utf-8"
85            })                        
86                .done(function( data ){                    
87                    jQuery("#mod_events_latest_"+modid+"_data").replaceWith(data.html);
88                    try {
89                        document.getElementById("mod_events_latest_"+modid+"_data").parentNode.scrollIntoView({block: "start", behavior: "smooth"});
90                    }
91                    catch (e) {
92                    }
93                })
94                .fail(function(x) {
95        alert('fail '+x);
96                });
97}</script>
97
98	
98<script>window.baFormsRateLimitRules = {"101":{"max_entries":1,"hours_limit":1}};</script>
98
99	
99<script>window.baFormsSiteRoot = "https:\/\/kx105.fm\/";</script>
99
100	<link href="http://feeds.feedburner.com/" rel="alternate" type="application/rss+xml" title="KXtras" />
101	<link href="http://feeds.feedburner.com/" rel="alternate" type="application/rss+xml" title="KX Concerts" />
102	<link href="http://feeds.feedburner.com/" rel="alternate" type="application/rss+xml" title="KX Country News" />
103	<link href="/index.php/component/joomrss/kx-105-featured-events?Itemid=101" rel="alternate" type="application/rss+xml" title="KX105 Featured Events" />
104	<link href="/index.php/component/joomrss/kx-105-live-on-location?Itemid=101" rel="alternate" type="application/rss+xml" title="KX105 Live on Location" />
105	<link href="http://feeds.feedburner.com/" rel="alternate" type="text/html" title="KX 94.7 FM Interviews (audio)" />
106
107<meta name="viewport" content="width=device-width, initial-scale=1">
108<style type="text/css">
109@media (min-width:1024px){header .ttr_title_style, header .ttr_title_style a, header .ttr_title_style a:link, header .ttr_title_style a:visited, header .ttr_title_style a:hover {
110font-size:30px;
111}
112.ttr_slogan_style {
113font-size:18px;
114}
115h1.ttr_block_heading, h2.ttr_block_heading, h3.ttr_block_heading, h4.ttr_block_heading, h5.ttr_block_heading, h6.ttr_block_heading, p.ttr_block_heading {
116font-size:18px;
117color: #4E4E4E;}
118h1.ttr_verticalmenu_heading, h2.ttr_verticalmenu_heading, h3.ttr_verticalmenu_heading, h4.ttr_verticalmenu_heading, h5.ttr_verticalmenu_heading, h6.ttr_verticalmenu_heading, p.ttr_verticalmenu_heading {
119font-size:16px;
120color: #333333;}
121footer#ttr_footer #ttr_copyright a:not(.btn),#ttr_copyright a {
122font-size:px;
123}
124#ttr_footer_designed_by_links span#ttr_footer_designed_by {
125font-size:px;
126}
127 footer#ttr_footer #ttr_footer_designed_by_links a:not(.btn) , footer#ttr_footer_designed_by_links a:link:not(.btn), footer#ttr_footer_designed_by_links a:visited:not(.btn), footer#ttr_footer_designed_by_links a:hover:not(.btn) {
128font-size:16px;
129color: #FFFFFF;}
130}
131}
132</style>
133<style type="text/css"></style><!--[if lte IE 8]>
134<link rel="stylesheet"  href="/templates/template_kx105_2025/css/menuie.css" type="text/css"/>
135<link rel="stylesheet"  href="/templates/template_kx105_2025/css/vmenuie.css" type="text/css"/>
136<![endif]-->
137<!--[if IE 7]>
138<style type="text/css" media="screen">
139#ttr_vmenu_items  li.ttr_vmenu_items_parent {display:inline;}
140</style>
141<![endif]-->
142<!--[if lt IE 9]>
143$doc->addScript($template_path.'/js/html5shiv.js');
144$doc->addScript($template_path.'/js/respond.js');
145<![endif]-->
146</head>
147<body>
148<div class="totopshow">
149<a href="#" class="back-to-top"><img alt="Back to Top" src="https://kx105.fm/templates/template_kx105_2025/images/gototop.png"/></a>
150</div>
151<div class="margin_collapsetop"></div>
152<div class="ttr_banner_header">
153</div>
154<div class="margin_collapsetop"></div>
155<header id="ttr_header">
156<div class="margin_collapsetop"></div>
157<div id="ttr_header_inner">
158<div class="ttr_header_element_alignment container g-0">
159<div class="ttr_images_container">
160</div>
161</div>
162<div class="ttr_images_container">
163<div class="ttr_headershape01">
164<div class="html_content"><p style="margin:9px 0px 5px 0px;text-align:Center; display:block; line-height:1.08em;"><a href="/" target="_self" class="tt_link" target="_self"><span style="font-family:'Trebuchet MS';font-size:0.9em;color:rgba(255,255,255,1);">KX 105</span><span style="font-family:'Trebuchet MS';font-size:0.9em;color:rgba(255,255,255,1);"> </span><span style="font-family:'Trebuchet MS';font-size:0.9em;color:rgba(255,255,255,1);">New Country FM</span></a></p></div>
165</div>
166<div class="ttr_headershape02">
167<div class="html_content"><p style="margin:9px 0px 5px 0px;text-align:Center; display:block; line-height:1.08em;color:rgba(51,51,51,1);"><a href="https://www.powerofradio.ca/index.php/stations/" target="_blank" class="tt_link" href="https://www.powerofradio.ca/index.php/stations/" target="_blank"><span style="font-family:'Trebuchet MS';font-size:0.9em;color:rgba(255,255,255,1);">Advertise With Us!</span></a></p></div>
168</div>
169<div class="ttr_header_logo ">
170</div>
171</div>
172</div>
173</header>
174<div class="ttr_banner_header">
175<div class="ttr_banner_header_inner_below_widget_container">
176<div class="ttr_banner_header_inner_below0 container row g-0">
177<div class="cell1 col-xxl-2 col-xl-2 col-lg-6 col-md-6 col-sm-6  col-xs-1 col-1" style="background-color:transparent;">
178&nbsp;
179</div>
180<div class="cell2 col-xxl-8 col-xl-8 col-lg-12 col-md-12 col-sm-12 col-xs-10 col-10">
181<div>
182<div class="headerbelowcolumn2">
183<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
184<div class="ad-container"
185  data-adrefresh-module-id="262"
186  data-ad-unit-id="div-gpt-ad-1745097654384-0"
187  data-ad-slot-path="/69289300/CKQMLEADER"
188  data-refresh-interval="60">
189  <div id="div-gpt-ad-1745097654384-0" style="min-height: 90px;"></div>
190</div></div></div><div class="margin_collapsetop"></div></div>
191</div>
192</div>
193</div>
194<div class=" visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block" style="clear:both;width:0;"></div>
195<div class="cell3 col-xxl-2 col-xl-2 col-lg-6 col-md-6 col-sm-6  col-xs-1 col-1" style="background-color:transparent;">
196&nbsp;
197</div>
198<div class="d-xxl-block d-xl-block visible-xs-block d-block" style="clear:both;width:0;"></div>
199<div class=" d-xxl-block d-xl-block visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;"></div>
200</div>
201</div>
202<div style="clear: both;"></div>
203</div>
204<div class="ttr_banner_menu">
205<div class="ttr_banner_menu_inner_above_widget_container">
206<div class="ttr_banner_menu_inner_above0 container row g-0">
207<div class="cell1 col-xxl-6 col-xl-6 col-lg-6 col-md-6 col-sm-6 col-xs-12 col-12">
208<div>
209<div class="menuabovecolumn1">
210<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_blockhidemobl"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
211<div id="mod-custom124" class="mod-custom custom">
212    <p>&nbsp;</p>
213<p><img src="/images/logo/logo_kx105_600_shadow.png" alt="logo 885thelake web420" width="493" height="220" style="margin: 10px auto; display: block;" /></p></div>
214</div></div><div class="margin_collapsetop"></div></div><div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_blockhidemobl"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
215<div id="mod-custom169" class="mod-custom custom">
216    <div class="socialblock">
217<p style="text-align: center;"><a href="https://www.facebook.com/profile.php?id=61579895882583" target="_blank" rel="noopener"><img src="/images/icons/icon_facebook.png" alt="icon facebook" width="45" height="45" class="social-link" style="margin: 10px;" /></a>&nbsp;&nbsp;&nbsp; <a href="https://www.instagram.com/kx105fm/" target="_blank" rel="noopener"><img src="/images/icons/icon_instagram.png" alt="icon instagram" width="45" height="45" class="social-link" style="margin: 10px;" /></a> &nbsp;&nbsp; <!--  <img src="/images/icons/icon_youtube.png" alt="icon youtube" width="45" height="45" class="social-link" style="margin: 10px;" /> &nbsp;&nbsp; --> <a href="https://x.com/KX105FM" target="_blank" rel="noopener"><img src="/images/icons/icon_twitter.png" alt="icon twitter" width="45" height="45" class="social-link" style="margin: 10px;" /></a> &nbsp; <!--  <img src="/images/icons/icon_tiktok.png" alt="icon tiktok" width="45" height="45" class="social-link" style="margin: 10px;" /> --></p>
218</div>
219<p>&nbsp;</p>
220<style>
221	.social-link {
222		width: 50px !important;
223		height: 50px !important;
224		transition: transform 0.2s !important;
225	}
226
227	.social-link:hover {
228		transform: scale(1.1) !important;
229	}
230</style></div>
231</div></div><div class="margin_collapsetop"></div></div><div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_blockhidemobl"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
232<div id="mod-custom147" class="mod-custom custom">
233    <div id="mc_embed_shell">
234<style type="text/css">
235		#subbox {
236			display: block;
237			width: 400px !important;
238			margin-left: auto !important;
239			margin-right: auto !important;
240		}
241
242		#mc_embed_signup {
243			background: Transparent;
244			false;
245			clear: left;
246			font: 14px Helvetica, Arial, sans-serif;
247			width: 100%;
248			color: #fff;
249          text-shadow: 2px 2px rgba(0, 0, 0, 0.8);
250		}
251	</style>
252<div id="mc_embed_signup"><form action="https://kx105.us13.list-manage.com/subscribe/post?u=bf187c0367808baa11a7eeb02&amp;id=329a128803&amp;f_id=0035f1edf0" method="post" name="mc-embedded-subscribe-form" target="_blank" id="mc-embedded-subscribe-form" class="validate">
253<div id="mc_embed_signup_scroll">
254<h4 style="color: #ffffff;">Sign up for weekly KXtras!</h4>
255<div class="indicates-required"><span class="asterisk">*</span> indicates required</div>
256<div class="mc-field-group"><label for="mce-EMAIL">Email Address <span class="asterisk">*</span></label> <input name="EMAIL" required="" type="email" value="" id="mce-EMAIL" class="required email" /></div>
257<div id="mce-responses" class="clear">
258<div id="mce-error-response" class="response" style="display: none;">&nbsp;</div>
259<div id="mce-success-response" class="response" style="display: none;">&nbsp;</div>
260</div>
261<div style="position: absolute; left: -5000px;" aria-hidden="true"><input name="b_bf187c0367808baa11a7eeb02_329a128803" type="text" value="" tabindex="-1" /></div>
262<div class="clear" style="max-width: 360px!important;"><input name="subscribe" type="submit" value="Subscribe" id="mc-embedded-subscribe" class="button" /></div>
263</div>
264</form></div>
265<script type="text/javascript">
266		(function($) {
267			window.fnames = new Array();
268			window.ftypes = new Array();
269			fnames[0] = 'EMAIL';
270			ftypes[0] = 'email';
271			fnames[1] = 'FNAME';
272			ftypes[1] = 'text';
273			fnames[2] = 'LNAME';
274			ftypes[2] = 'text';
275			fnames[3] = 'PHONE';
276			ftypes[3] = 'phone';
277			fnames[4] = 'ADDY';
278			ftypes[4] = 'address';
279			fnames[5] = 'BDAY';
280			ftypes[5] = 'birthday';
281		}(jQuery));
282
283	</script>
283
284</div>
285<p>&nbsp;</p>
286<p>&nbsp;</p></div>
287</div></div><div class="margin_collapsetop"></div></div>
288</div>
289</div>
290</div>
291<div class="cell2 col-xxl-6 col-xl-6 col-lg-6 col-md-6 col-sm-6 col-xs-12 col-12">
292<div>
293<div class="menuabovecolumn2">
294<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_blockhidedesk"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
295<div id="mod-custom283" class="mod-custom custom">
296    <p>&nbsp;</p>
297<p><img src="/images/logo/logo_kx105_600_shadow.png" alt="logo 885thelake web420" width="493" height="220" style="margin: 10px auto; display: block;" /></p></div>
298</div></div><div class="margin_collapsetop"></div></div><div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
299<div id="mod-custom130" class="mod-custom custom">
300    <p>&nbsp;</p>
301<p><a href="/index.php/listen-live" target="_blank" rel="noopener" class="llbutton" title="Listen Live to KX105"></a></p>
302<p>&nbsp;</p>
303<p style="text-align: center;"><a href="https://www.amazon.ca/dp/B0F7LFWGTC/" target="_blank" rel="noopener"><img src="/images/icons/icon_alexaamazon.png" alt="icon alexaamazon" width="50" height="50" class="social-link" /></a> &nbsp; &nbsp;&nbsp; <a href="https://radioplayer.ca/app/" target="_blank" rel="noopener"><img src="/images/icons/icon_radioplayercanada.png" alt="icon radioplayercanada" width="50" height="50" class="social-link" /></a> &nbsp; &nbsp;&nbsp; <a href="https://tunein.com/radio/KX-105-1051-s342919/" target="_blank" rel="noopener"><img src="/images/icons/icon_tune-in.png" alt="icon tune in" width="50" height="50" class="social-link" /></a> &nbsp;&nbsp; &nbsp; <a href="https://apps.apple.com/us/app/kx105-fm/id6745154646" target="_blank" rel="noopener"><img src="/images/icons/icon_apple-appstore.png" alt="icon apple appstore" width="50" height="50" class="social-link" /></a>&nbsp; &nbsp; &nbsp; <a href="https://play.google.com/store/apps/details?id=fm.kx105.app" target="_blank" rel="noopener"><img src="/images/icons/icon_android.png" alt="icon android" width="50" height="50" class="social-link" /></a></p>
304<style>
305	.social-link {
306		border-radius: 15px;
307	}
308</style></div>
309</div></div><div class="margin_collapsetop"></div></div><div class="moduletable ">
310        
311<div id="mod-nowplaying-217" class="mod-nowplaying dark-theme" data-module-id="217">
312    <div class="player">
313        <div class="now-playing">
314            <div data-role="details">
315                <div class="album-art" data-role="albumart">
316                    <!-- Image loaded dynamically via JS -->
317                </div>
318                <div class="track-info">
319                    <span class="artist" data-role="artist"></span>
320                    <span class="song-title_now" data-role="title"></span>
321                </div>
322            </div>
323            <div class="buy-links">
324                <a class="buy-link" data-role="itunes-link" href="#" target="_blank" rel="noopener noreferrer" style="display: none;">
325                    <img src="https://kx105.fm/modules/mod_nowplaying/media/itunes.png" alt="Buy on iTunes" />
326                </a>
327                <a class="buy-link" data-role="amazon-link" href="#" target="_blank" rel="noopener noreferrer" style="display: none;">
328                    <img src="https://kx105.fm/modules/mod_nowplaying/media/amazonmusic-icon.png" alt="Buy on Amazon Music" />
329                </a>
330                <a class="buy-link" data-role="youtube-link" href="#" target="_blank" rel="noopener noreferrer" style="display: none;">
331                    <img src="https://kx105.fm/modules/mod_nowplaying/media/icon_youtube.png" alt="Listen on YouTube Music" />
332                </a>
333                <a class="buy-link" data-role="spotify-link" href="#" target="_blank" rel="noopener noreferrer" style="display: none;">
334                    <img src="https://kx105.fm/modules/mod_nowplaying/media/spotify-icon.png" alt="Listen on Spotify" />
335                </a>
336            </div>
337        </div>
338    </div>
339</div>
340</div>
341<div class="moduletable jockrot">
342        <div class="mod-onairnow" data-module-id="218">
343    <div id="onairnow-container-218" data-role="onairnow-container"><div class='onairclass'>
344                <img class='ver_img' src='https://kx105.fm/images/jock-rotator/evenings.jpg' alt='On-Air' width='120' height='120'/>
345                <div class='text-container'>
346                    <span style='color:#ffffff;'>01-Oct | Thursday&nbsp;</span>
347                    <span style='color:#ffffff;'>18:00 - 22:59</span>
348                    <span style='color:#ffffff;'><b>KX105 Evenings</b>&nbsp;</span><br /><br />
349                    <span style='color:#ffffff;'>with Matty Buller</span>
350                </div>
351            </div></div>
352</div>
353</div>
354
355</div>
356</div>
357</div>
358<div class="d-xxl-block d-xl-block visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;width:0;"></div>
359<div class=" d-xxl-block d-xl-block visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;"></div>
360</div>
361</div>
362<div style="clear: both;"></div>
363</div>
364<div class="margin_collapsetop"></div>
365<div id="ttr_menu"> 
366<div class="margin_collapsetop"></div>
367<nav class="navbar-default navbar-expand-md navbar">
368<div id="ttr_menu_inner_in">
369<div class="ttr_menu_element_alignment container g-0">
370</div>
371<div id="navigationmenu">
372<div class="navbar-header">
373<button id="nav-expander" data-bs-target="#nav_menu" data-bs-toggle="collapse" class="navbar-toggle" type="button">
374<span class="ttr_menu_toggle_button">
375<span class="sr-only">
376</span>
377<span class="icon-bar navbar-toggler-icon">
378</span>
379<span class="icon-bar navbar-toggler-icon">
380</span>
381<span class="icon-bar navbar-toggler-icon">
382</span>
383</span>
384<span class="ttr_menu_button_text">
385Menu
386</span>
387</button>
388</div>
389<div id="nav_menu" class="menu-center collapse navbar-collapse nav-menu">
390<ul class="ttr_menu_items nav navbar-nav nav-center  ">
391<li class="ttr_menu_items_parent active dropdown"><a  class="ttr_menu_items_parent_link_active " href="/index.php"  ><span class="menuchildicon"></span>Home</a><hr class="horiz_separator" /></li><li class="ttr_menu_items_parent dropdown"><a  class="ttr_menu_items_parent_link " href="/index.php/kx105-kxtras"  ><span class="menuchildicon"></span>KXtras</a><hr class="horiz_separator" /></li><li class="ttr_menu_items_parent dropdown"><a  class="ttr_menu_items_parent_link " href="/index.php/kx105-concerts"  ><span class="menuchildicon"></span>Concerts</a><hr class="horiz_separator" /></li><li class="ttr_menu_items_parent dropdown"><span
392   class="ttr_menu_items_parent_link_arrow separator "  >Featured</span>
393<hr class="horiz_separator" /><ul role="menu" class="child dropdown-menu"><li ><a  href="/index.php/featured/featured-events"  ><span class="menuchildicon"></span>Featured Events</a><hr class="separator" /></li><li ><a  href="/index.php/featured/kx-kids"  ><span class="menuchildicon"></span>KX Kids</a><hr class="separator" /></li></ul></li><li class="ttr_menu_items_parent dropdown"><span
394   class="ttr_menu_items_parent_link_arrow separator "  >Community</span>
395<hr class="horiz_separator" /><ul role="menu" class="child dropdown-menu"><li ><a  href="/index.php/community/where-well-be"  ><span class="menuchildicon"></span>Where We'll Be</a><hr class="separator" /></li><li ><a  href="/index.php/community/kx105-events"  ><span class="menuchildicon"></span>Community Calendar</a><hr class="separator" /></li><li ><a  href="/index.php/community/in-your-community"  ><span class="menuchildicon"></span>In Your Community</a><hr class="separator" /></li><li ><a  href="https://www.onthelocks.ca/" target="_blank"  ><span class="menuchildicon"></span>Add Your Events!</a><hr class="separator" /></li></ul></li><li class="ttr_menu_items_parent dropdown"><span
396   class="ttr_menu_items_parent_link_arrow separator "  >On-Demand</span>
397<hr class="horiz_separator" /><ul role="menu" class="child dropdown-menu"><li ><a  href="/index.php/on-demand/kx105-podcasts"  ><span class="menuchildicon"></span>KX 105 Audio On Demand</a><hr class="separator" /></li><li ><a  href="/index.php/on-demand/kx105-videos"  ><span class="menuchildicon"></span>KX 105 Video On Demand</a><hr class="separator" /></li></ul></li><li class="ttr_menu_items_parent dropdown"><a  class="ttr_menu_items_parent_link_arrow dropdown-toggle " href="/index.php/on-air" data-bs-toggle="dropdown" ><span class="menuchildicon"></span>On-Air</a><hr class="horiz_separator" /><ul role="menu" class="child dropdown-menu"><li ><a  href="/index.php/on-air/ways-to-listen"  ><span class="menuchildicon"></span>Ways To Listen</a><hr class="separator" /></li></ul></li><li class="ttr_menu_items_parent dropdown"><a  class="ttr_menu_items_parent_link " href="/index.php/search"  ><span class="menuchildicon"></span>Search</a><hr class="horiz_separator" /></li><li class="ttr_menu_items_parent dropdown"><a  class="ttr_menu_items_parent_link " href="/index.php/storm-desk"  ><span class="menuchildicon"></span>Storm Desk</a><hr class="horiz_separator" /></li><li class="ttr_menu_items_parent dropdown"><a  class="ttr_menu_items_parent_link " href="/index.php/contact-kx105"  ><span class="menuchildicon"></span>Contact Us</a><hr class="horiz_separator" /></li></ul>
398<div style="clear: both;"></div>
399 
400</div>
401</div>
402<div class="ttr_images_container">
403<div class="ttr_menu_logo">
404</div>
405</div>
406</div>
407</nav>
408</div>
409<div class="ttr_banner_menu">
410</div>
411<div class="margin_collapsetop"></div>
412<div id="ttr_page"  class="container g-0">
413<div id="ttr_content_and_sidebar_container">
414<div id="ttr_content" class="zero_column" style="width:100%">
415<div id="ttr_content_margin">
416<div class="margin_collapsetop"></div>
417<div class="ttr_topcolumn_widget_container">
418<div class="contenttopcolumn0">
419<div class="cell1 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
420&nbsp;
421</div>
422<div class=" visible-xs-block d-block" style="clear:both;width:0;"></div>
423<div class="cell2 col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12 col-xs-12 col-12">
424<div>
425<div class="topcolumn2">
426<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_blockslider-hp"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
427
428<div style="border: 0px !important;">
429    <div id="djslider-loader110" class="djslider-loader djslider-loader-default" data-animation='{"auto":"1","looponce":"0","transition":"easeInOutElastic","css3transition":"ease-in-out","duration":1000,"delay":4000}' data-djslider='{"id":110,"slider_type":"0","slide_size":600,"visible_slides":"1","direction":"left","show_buttons":"1","show_arrows":"1","preload":"800","css3":"1"}' tabindex="0">
430        <div id="djslider110" class="djslider djslider-default" style="height: 377px; width: 600px; max-width: 600px !important;">
431            <div id="slider-container110" class="slider-container" >
432                <ul id="slider110" class="djslider-in">
433                                            <li style="margin: 0 0px 0px 0 !important; height: 377px; width: 600px;">
434                                                                                                <a  href="/index.php/kx105-kxtras/riley-green-at-rbc-amphitheatre" target="_self">
435                                                                <img class="dj-image" src="/images/contests/kx105_rileygreen_ft_oct2026%20.jpg#joomlaImage://local-images/contests/kx105_rileygreen_ft_oct2026%20.jpg?width=600&height=377" alt="Riley Green - Oct 2"  style="width: auto; height: 100%;"/>
436                                                                    </a>
437                                                                                        
438                        </li>
439                                            <li style="margin: 0 0px 0px 0 !important; height: 377px; width: 600px;">
440                                                                                                <a  href="/index.php/kx105-concerts/kx105-presents-gord-bamford-the-venue-peterborough" target="_self">
441                                                                <img class="dj-image" src="/images/concerts/gordbamfordconcertoctober2026.jpg#joomlaImage://local-images/concerts/gordbamfordconcertoctober2026.jpg?width=600&height=377" alt="Bamford presents - Oct 10 "  style="width: auto; height: 100%;"/>
442                                                                    </a>
443                                                                                        
444                        </li>
445                                            <li style="margin: 0 0px 0px 0 !important; height: 377px; width: 600px;">
446                                                                                                <a  href="/index.php/kx105-kxtras/great-canadian-entertainment-shorelines-casino-mega-giveaway" target="_self">
447                                                                <img class="dj-image" src="/images/contests/kx105_shorelines_mega_oct2026%20.jpg#joomlaImage://local-images/contests/kx105_shorelines_mega_oct2026%20.jpg?width=600&height=377" alt="Shorelines Casino - Oct 16 "  style="width: auto; height: 100%;"/>
448                                                                    </a>
449                                                                                        
450                        </li>
451                                            <li style="margin: 0 0px 0px 0 !important; height: 377px; width: 600px;">
452                                                                                                <a  href="/index.php/kx10
4525-kxtras/pizza-huts-pizza-party-at-work" target="_self">
453                                                                <img class="dj-image" src="/images/contests/pizza-party-105.jpg#joomlaImage://local-images/contests/pizza-party-105.jpg?width=477&height=300" alt="Pizza Hut Pizza Party at Work!"  style="width: auto; height: 100%;"/>
454                                                                    </a>
455                                                                                        
456                        </li>
457                                            <li style="margin: 0 0px 0px 0 !important; height: 377px; width: 600px;">
458                                                                                                <a  href="/index.php/kx105-kxtras/kx-105-bag-o-games" target="_self">
459                                                                <img class="dj-image" src="/images/contests/kxtra_bag-o-games_may2025.jpg#joomlaImage://local-images/contests/kxtra_bag-o-games_may2025.jpg?width=600&height=377" alt="KX105 Bag O' Games"  style="width: auto; height: 100%;"/>
460                                                                    </a>
461                                                                                        
462                        </li>
463                                            <li style="margin: 0 0px 0px 0 !important; height: 377px; width: 600px;">
464                                                                                                <a  href="/index.php/kx105-kxtras/the-birthday-line" target="_self">
465                                                                <img class="dj-image" src="/images/contests/kxtra_kx-birthday-line.jpg#joomlaImage://local-images/contests/kxtra_kx-birthday-line.jpg?width=600&height=377" alt="The Birthday Line"  style="width: auto; height: 100%;"/>
466                                                                    </a>
467                                                                                        
468                        </li>
469                                            <li style="margin: 0 0px 0px 0 !important; height: 377px; width: 600px;">
470                                                                                                <a  href="/index.php/kx105-kxtras/kx-105-winsticker-wednesday" target="_self">
471                                                                <img class="dj-image" src="/images/contests/kxtra_winsticker-wednesdays_kx105.png#joomlaImage://local-images/contests/kxtra_winsticker-wednesdays_kx105.png?width=477&height=300" alt="Winsticker Wednesdays"  style="width: auto; height: 100%;"/>
472                                                                    </a>
473                                                                                        
474                        </li>
475                                            <li style="margin: 0 0px 0px 0 !important; height: 377px; width: 600px;">
476                                                                                                <a  href="https://app.kx105.fm/overview/application/device/check/app_id/1" target="_blank">
477                                                                <img class="dj-image" src="/images/rotator/KX105-Getourapp.jpg#joomlaImage://local-images/rotator/KX105-Getourapp.jpg?width=600&height=377" alt="Get the mobile app!"  style="width: auto; height: 100%;"/>
478                                                                    </a>
479                                                                                        
480                        </li>
481                                            <li style="margin: 0 0px 0px 0 !important; height: 377px; width: 600px;">
482                                                                                                <a  href="/index.php/ways-to-listen" target="_self">
483                                                                <img class="dj-image" src="/images/banners/ways-to-listen.jpg#joomlaImage://local-images/banners/ways-to-listen.jpg?width=477&height=300" alt="Ways To Listen"  style="width: auto; height: 100%;"/>
484                                                                    </a>
485                                                                                        
486                        </li>
487                                    </ul>
488            </div>
489                            <div id="navigation110" class="navigation-container" style="top: 10.610079575597%; margin: 0 1.6666666666667%;">
490                                            <img id="prev110" class="prev-button showOnHover" src="/modules/mod_djimageslider/themes/default/images/prev.png" alt="Previous" tabindex="0" />
491                        <img id="next110" class="next-button showOnHover" src="/modules/mod_djimageslider/themes/default/images/next.png" alt="Next" tabindex="0" />
492                                                                <img id="play110" class="play-button showOnHover" src="/modules/mod_djimageslider/themes/default/images/play.png" alt="Play" tabindex="0" />
493                        <img id="pause110" class="pause-button showOnHover" src="/modules/mod_djimageslider/themes/default/images/pause.png" alt="Pause" tabindex="0" />
494                                    </div>
495                                </div>
496    </div>
497</div>
498<div class="djslider-end" style="clear: both" tabindex="0"></div></div></div><div class="margin_collapsetop"></div></div><div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_header"><h3 class="ttr_block_heading">Featured Audio from KX105 FM <!-- START: Snippets --><span class="seeallfont"><a href="/index.php/on-demand/kx105-podcasts">view all...</a></span><!-- END: Snippets --></h3></div><div class="ttr_block_content"><div class="mod-dripods flat-style" style="color: #001f3f; text-align: center;">
499    <div class="station-info">
500                    <img src="/" alt="" class="station-logo"/>
501                <h2></h2>
502    </div>
503    <div class="episodes">
504                    <div class="episode">
505                                    <img src="https://streamb-podcasts.s3.amazonaws.com/streamb-podcasts/artwork/durhamradio/9ebbc48b-749c-491b-a5eb-72b25f5231ef/a2a74cf4-56bc-42c0-a39c-f2137d258b68/1788394481-39802-cowboy-up-tour-square-poster-ptbo.jpg" alt="Elyse Saunders Interview" class="episode-artwork"/>
506                                <h3>Elyse Saunders Interview</h3>
507                <audio controls class="episode-audio">
508                    <source src="https://podcasts.streamb.live/streamb-podcasts/audio/durhamradio/9ebbc48b-749c-491b-a5eb-72b25f5231ef/a2a74cf4-56bc-42c0-a39c-f2137d258b68/1788394473-42015-elyse-saunders-interview.mp3?awCollectionId=MDsbXes8&amp;awEpisodeId=UExrzYlA" type="audio/mpeg">
509                </audio>
510                <p>Elyse Saunders was born and raised in Peterborough, and has spent years building a career that now stretches from her hometown roots to Nashville.
511A multi-time CMAOntario Award winner, Saunders has earned millions of streams, charted at Canadian country radio and developed a reputation as both a strong live performer and accomplished songwriter. Her music blends modern country production with the storytelling and energy of the genre’s ’90s influences, while songs like “Never Have I Ever,” “Mending Heart,” “Heartbreak Rodeo” and “Cowboy Up” have helped introduce her to a growing audience in Canada and beyond.
512Her latest chapter includes a move to Nashville, new music and her Cowboy Up Tour, which brings her back home to the Venue in Peterborough on October 9th.
513In this interview, Matty Buller talks with Elyse about her journey from playing local stages as a teenager to building a full-time career in country music, life and songwriting in Nashville, the story behind “Cowboy Up,” and what’s next.</p>
514            </div>
515            </div>
516</div></div></div><div class="margin_collapsetop"></div></div>
517</div>
518</div>
519</div>
520<div class=" visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;width:0;"></div>
521<div class="cell3 col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12 col-xs-12 col-12">
522<div>
523<div class="topcolumn3">
524<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
525<div class="ad-container"
526  data-adrefresh-module-id="263"
527  data-ad-unit-id="div-gpt-ad-1745098367054-0"
528  data-ad-slot-path="/69289300/CKQMBIGBOX"
529  data-refresh-interval="60">
530  <div id="div-gpt-ad-1745098367054-0" style="min-height: 90px;"></div>
531</div></div></div><div class="margin_collapsetop"></div></div><div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_header"><h3 class="ttr_block_heading">Recently Played Songs <!-- START: Snippets --><span class="seeallfont"><a href="/index.php/listen-live" target="_blank" rel="noopener">
531view all...</a></span><!-- END: Snippets --></h3></div><div class="ttr_block_content">
532<script type="text/javascript">
533    (function() {
534        function refreshSongs214() {
535            const songList = document.getElementById('song-list-214');
536            const spinner = document.getElementById('loading-spinner-214');
537
538            if (!songList || !spinner) {
539                return;
540            }
541
542            spinner.style.display = 'block';
543
544            fetch("https:\/\/kx105.fm\/index.php?option=com_ajax&module=songhistory&format=raw&method=getSongs&module_id=214&song_count=5", { cache: 'no-store' })
545                .then(response => {
546                    if (!response.ok) {
547                        throw new Error('Network response was not ok');
548                    }
549                    return response.text();
550                })
551                .then(data => {
552                    spinner.style.display = 'none';
553                    songList.innerHTML = data;
554                })
555                .catch(error => {
556                    console.error('Error fetching song list:', error);
557                    spinner.style.display = 'none';
558                });
559        }
560
561        window['refreshSongs214'] = refreshSongs214;
562    })();
563</script>
563
564
565<div id="mod_songhistory_214" class="mod_songhistory light">
566    <div class="refresh-link-container">
567        <a href="javascript:void(0);" onclick="window.refreshSongs214 && window.refreshSongs214()" class="refresh-link">Refresh Song List</a>
568    </div>
569    <div id="loading-spinner-214" class="loading-spinner">
570        <img src="/images/logo/circle-logo_kx105.png#joomlaImage://local-images/logo/circle-logo_kx105.png?width=512&amp;height=512" alt="Loading..."/>
571    </div>
572    <div id="song-list-214">
573                                    
574<div class="song-item">
575    <img src="//albumart.leanplayer.com/th/75/the-zac-brown-band-chicken-fried.jpg" alt="CHICKEN FRIED" class="album-art_songs" onerror="this.onerror=null;this.src='https://kx105.fm/modules/mod_songhistory/media/default-image.jpg';"/>
576    <div class="song-details-wrapper">
577        <div class="song-info">
578            <strong class="song-artist">THE ZAC BROWN BAND</strong><br>
579            <span class="song-title">CHICKEN FRIED</span><br>
580            <small class="song-timestamp">7:41 PM</small>
581        </div>
582        <div class="purchase-buttons">
583                            <a href="https://music.apple.com/ca/album/chicken-fried/1585172564?i=1585172570&amp;uo=4&amp;partnerId=11&amp;at=1010lp6o" class="purchase-link" target="_blank" rel="noopener noreferrer">
584                    <img src="https://kx105.fm/modules/mod_songhistory/media/itunes-icon.png" alt="iTunes" class="button-image"/>
585                </a>
586                                        <a href="https://open.spotify.com/search/THE%20ZAC%20BROWN%20BAND%20CHICKEN%20FRIED" class="purchase-link" target="_blank" rel="noopener noreferrer">
587                    <img src="https://kx105.fm/modules/mod_songhistory/media/spotify-icon.png" alt="Spotify" class="button-image"/>
588                </a>
589                                        <a href="https://music.amazon.com/search/THE%20ZAC%20BROWN%20BAND%20CHICKEN%20FRIED" class="purchase-link" target="_blank" rel="noopener noreferrer">
590                    <img src="https://kx105.fm/modules/mod_songhistory/media/amazonmusic-icon.png" alt="Amazon" class="button-image"/>
591                </a>
592                                        <a href="https://music.youtube.com/search?q=THE%20ZAC%20BROWN%20BAND%20CHICKEN%20FRIED" class="purchase-link" target="_blank" rel="noopener noreferrer">
593                    <img src="https://kx105.fm/modules/mod_songhistory/media/icon_youtube.png" alt="YouTube Music" class="button-image"/>
594                </a>
595                    </div>
596    </div>
597</div>                            
598<div class="song-item">
599    <img src="//albumart.leanplayer.com/ko/75/koe-wetzel-and-jessie-murph-high-road.jpg" alt="HIGH ROAD" class="album-art_songs" onerror="this.onerror=null;this.src='https://kx105.fm/modules/mod_songhistory/media/default-image.jpg';"/>
600    <div class="song-details-wrapper">
601        <div class="song-info">
602            <strong class="song-artist">KOE WETZEL AND JESSIE MURPH</strong><br>
603            <span class="song-title">HIGH ROAD</span><br>
604            <small class="song-timestamp">7:28 PM</small>
605        </div>
606        <div class="purchase-buttons">
607                            <a href="https://music.apple.com/ca/album/high-road/1766787416?i=1766787478&amp;uo=4&amp;partnerId=11&amp;at=1010lp6o" class="purchase-link" target="_blank" rel="noopener noreferrer">
608                    <img src="https://kx105.fm/modules/mod_songhistory/media/itunes-icon.png" alt="iTunes" class="button-image"/>
609                </a>
610                                        <a href="https://open.spotify.com/search/KOE%20WETZEL%20AND%20JESSIE%20MURPH%20HIGH%20ROAD" class="purchase-link" target="_blank" rel="noopener noreferrer">
611                    <img src="https://kx105.fm/modules/mod_songhistory/media/spotify-icon.png" alt="Spotify" class="button-image"/>
612                </a>
613                                        <a href="https://music.amazon.com/search/KOE%20WETZEL%20AND%20JESSIE%20MURPH%20HIGH%20ROAD" class="purchase-link" target="_blank" rel="noopener noreferrer">
614                    <img src="https://kx105.fm/modules/mod_songhistory/media/amazonmusic-icon.png" alt="Amazon" class="button-image"/>
615                </a>
616                                        <a href="https://music.youtube.com/search?q=KOE%20WETZEL%20AND%20JESSIE%20MURPH%20HIGH%20ROAD" class="purchase-link" target="_blank" rel="noopener noreferrer">
617                    <img src="https://kx105.fm/modules/mod_songhistory/media/icon_youtube.png" alt="YouTube Music" class="button-image"/>
618                </a>
619                    </div>
620    </div>
621</div>                            
622<div class="song-item">
623    <img src="//albumart.leanplayer.com/ty/75/tyler-joe-miller-shoulda-known-better.jpg" alt="SHOULDA KNOWN BETTER" class="album-art_songs" onerror="this.onerror=null;this.src='https://kx105.fm/modules/mod_songhistory/media/default-image.jpg';"/>
624    <div class="song-details-wrapper">
625        <div class="song-info">
626            <strong class="song-artist">TYLER JOE MILLER</strong><br>
627            <span class="song-title">SHOULDA KNOWN BETTER</span><br>
628            <small class="song-timestamp">7:12 PM</small>
629        </div>
630        <div class="purchase-buttons">
631                            <a href="https://music.apple.com/ca/album/shoulda-known-better/1716621165?i=1716621166&amp;uo=4&amp;partnerId=11&amp;at=1010lp6o" class="purchase-link" target="_blank" rel="noopener noreferrer">
632                    <img src="https://kx105.fm/modules/mod_songhistory/media/itunes-icon.png" alt="iTunes" class="button-image"/>
633                </a>
634                                        <a href="https://open.spotify.com/search/TYLER%20JOE%20MILLER%20SHOULDA%20KNOWN%20BETTER" class="purchase-link" target="_blank" rel="noopener noreferrer">
635                    <img src="https://kx105.fm/modules/mod_songhistory/media/spotify-icon.png" alt="Spotify" class="button-image"/>
636                </a>
637                                        <a href="https://music.amazon.com/search/TYLER%20JOE%20MILLER%20SHOULDA%20KNOWN%20BETTER" class="purchase-link" target="_blank" rel="noopener noreferrer">
638                    <img src="https://kx105.fm/modules/mod_songhistory/media/amazonmusic-icon.png" alt="Amazon" class="button-image"/>
639                </a>
640                                        <a href="https://music.youtube.com/search?q=TYLER%20JOE%20MILLER%20SHOULDA%20KNOWN%20BETTER" class="purchase-link" target="_blank" rel="noopener noreferrer">
641                    <img src="https://kx105.fm/modules/mod_songhistory/media/icon_youtube.png" alt="YouTube Music" class="button-image"/>
642                </a>
643                    </div>
644    </div>
645</div>                            
646<div class="song-item">
647    <img src="//albumart.leanplayer.com/mo/75/morgan-wallen-been-by-now.jpg" alt="BEEN BY NOW" class="album-art_songs" onerror="this.onerror=null;this.src='https://kx105.fm/modules/mod_songhistory/media/default-image.jpg';"/>
648    <div class="song-details-wrapper">
649        <div class="song-info">
650            <strong class="song-artist">MORGAN WALLEN</strong><br>
651            <span class="song-title">BEEN BY NOW</span><br>
652            <small class="song-timestamp">7:08 PM</small>
653        </div>
654        <div class="purchase-buttons">
655                            <a href="https://music.apple.com/ca/album/been-by-now/6792676858?i=6792676860&amp;uo=4&amp;partnerId=11&amp;at=1010lp6o" class="purchase-link" target="_blank" rel="noopener noreferrer">
656                    <img src="https://kx105.fm/modules/mod_songhistory/media/itunes-icon.png" alt="iTunes" class="button-image"/>
657                </a>
658                                        <a href="https://open.spotify.com/search/MORGAN%20WALLEN%20BEEN%20BY%20NOW" class="purchase-link" target="_blank" rel="noopener noreferrer">
659                    <img src="https://kx105.fm/modules/mod_songhistory/media/spotify-icon.png" alt="Spotify" class="button-image"/>
660                </a>
661                                        <a href="https://music.amazon.com/search/MORGAN%20WALLEN%20BEEN%20BY%20NOW" class="purchase-link" target="_blank" rel="noopener noreferrer">
662                    <img src="https://kx105.fm/modules/mod_songhistory/media/amazonmusic-icon.png" alt="Amazon" class="button-image"/>
663                </a>
664                                        <a href="https://music.youtube.com/search?q=MORGAN%20WALLEN%20BEEN%20BY%20NOW" class="purchase-link" target="_blank" rel="noopener noreferrer">
665                    <img src="https://kx105.fm/modules/mod_songhistory/media/icon_youtube.png" alt="YouTube Music" class="button-image"/>
666                </a>
667                    </div>
668    </div>
669</div>                            
670<div class="song-item">
671    <img src="//albumart.leanplayer.com/ol/75/old-dominion-making-good-time.jpg" alt="MAKING GOOD TIME" class="album-art_songs" onerror="this.onerror=null;this.src='https://kx105.fm/modules/mod_songhistory/media/default-image.jpg';"/>
672    <div class="song-details-wrapper">
673        <div class="song-info">
674            <strong class="song-artist">OLD DOMINION</strong><br>
675            <span class="song-title">MAKING GOOD TIME</span><br>
676            <small class="song-timestamp">6:40 PM</small>
677        </div>
678        <div class="purchase-buttons">
679                            <a href="https://music.apple.com/ca/album/making-good-time/1792083693?i=1792083694&amp;uo=4&amp;partnerId=11&amp;at=1010lp6o" class="purchase-link" target="_blank" rel="noopener noreferrer">
680                    <img src="https://kx105.fm/modules/mod_songhistory/media/itunes-icon.png" alt="iTunes" class="button-image"/>
681                </a>
682                                        <a href="https://open.spotify.com/search/OLD%20DOMINION%20MAKING%20GOOD%20TIME" class="purchase-link" target="_blank" rel="noopener noreferrer">
683                    <img src="https://kx105.fm/modules/mod_songhistory/media/spotify-icon.png" alt="Spotify" class="button-image"/>
684                </a>
685                                        <a href="https://music.amazon.com/search/OLD%20DOMINION%20MAKING%20GOOD%20TIME" class="purchase-link" target="_blank" rel="noopener noreferrer">
686                    <img src="https://kx105.fm/modules/mod_songhistory/media/amazonmusic-icon.png" alt="Amazon" class="button-image"/>
687                </a>
688                                        <a href="https://music.youtube.com/search?q=OLD%20DOMINION%20MAKING%20GOOD%20TIME" class="purchase-link" target="_blank" rel="noopener noreferrer">
689                    <img src="https://kx105.fm/modules/mod_songhistory/media/icon_youtube.png" alt="YouTube Music" class="button-image"/>
690                </a>
691                    </div>
692    </div>
693</div>                        </div>
694</div></div></div><div class="margin_collapsetop"></div></div>
695</div>
696</div>
697</div>
698<div class=" visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;width:0;"></div>
699<div class="cell4 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
700&nbsp;
701</div>
702<div class="d-xxl-block d-xl-block visible-xs-block d-block" style="clear:both;width:0;"></div>
703<div class=" d-xxl-block d-xl-block visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;"></div>
704</div>
705</div>
706<div style="clear: both;"></div>
707<div class="ttr_topcolumn_widget_container">
708<div class="contenttopcolumn3">
709<div class="cell13 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
710&nbsp;
711</div>
712<div class=" visible-xs-block d-block" style="clear:both;width:0;"></div>
713<div class="cell14 col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12 col-xs-12 col-12">
714<div>
715<div class="topcolumn14">
716<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_header"><h3 class="ttr_block_heading">Where We'll Be <!-- START: Snippets --><span class="seeallfont"><a href="/index.php/community/where-well-be">view all...</a></span><!-- END: Snippets --></h3></div><div class="ttr_block_content"><div class="jtcs_item_wrapper jt-cs" style="padding:10px 10px 10px 10px;">
717<div class="jtcs255 positioncenter owl-carousel owl-theme slides_container" 
718     role="region" 
719     aria-label="MOD_JTCS_CAROUSEL_LABEL"
720     aria-live="polite">
721<div class="slide" 
722     style="padding:10px 10px 10px 10px ;margin:0px 0px 0px 0px " 
723     data-slide-index="0"
724     role="group"
725     aria-roledescription="slide"
726     aria-label="MOD_JTCS_SLIDE_LABEL">
727    <div class="jt-inner">
728            <div class="jt-imagecover" style="float:none;margin-bottom:15px">
729                    <a class="link-image" title="KX105 Delivers Your Donations to Kawartha Food Share" href="/index.php/community/where-well-be/kx105-delivers-your-donations-to-kawartha-food-share" aria-label="MOD_JTCS_VIEW_ARTICLE"><img class="jtcs-image" src="https://kx105.fm//cache/mod_jt_contentslider/d490d7b4576290fa60eb31b5fc917ad1_1489.jpg" width="600" alt="KX105 Delivers Your Donations to Kawartha Food Share" /></a>
730                                </div>
731        
732        
733        
734        
735            <div class="jt-introtext">
736            The KX105 events cruiser always accepts donations of non-perishablefood items and will deliver them to Kawartha Food Share on your behalf.
737You can also make a monetary donation at&nbsp;www.kawarthafoodshare.com&nbsp;
738Their buying power can double o...        </div>
739        
740        <div></div>
741    <div style="clear:both"></div>
742    </div>
743</div>
744<div class="slide" 
745     style="padding:10px 10px 10px 10px ;margin:0px 0px 0px 0px " 
746     data-slide-index="1"
747     role="group"
748     aria-roledescription="slide"
749     aria-label="MOD_JTCS_SLIDE_LABEL">
750    <div class="jt-inner">
751            <div class="jt-imagecover" style="float:none;margin-bottom:15px">
752                    <a class="link-image" title="KX Video Dance Party" href="/index.php/community/where-well-be/kx-video-dance-party" aria-label="MOD_JTCS_VIEW_ARTICLE"><img class="jtcs-image" src="https://kx105.fm//cache/mod_jt_contentslider/d490d7b4576290fa60eb31b5fc917ad1_1312.jpg" width="600" alt="KX Video Dance Party" /></a>
753                                </div>
754        
755        
756        
757        
758            <div class="jt-introtext">
759            Want a KX105 Video Dance Party?
760        </div>
761        
762        <div></div>
763    <div style="clear:both"></div>
764    </div>
765</div>
766<div class="slide" 
767     style="padding:10px 10px 10px 10px ;margin:0px 0px 0px 0px " 
768     data-slide-index="2"
769     role="group"
770     aria-roledescription="slide"
771     aria-label="MOD_JTCS_SLIDE_LABEL">
772    <div class="jt-inner">
773            <div class="jt-imagecover" style="float:none;margin-bottom:15px">
774                    <a class="link-image" title="You can have KX 105 at YOUR Location!" href="/index.php/community/where-well-be/you-can-have-kx-105-at-your-location" aria-label="MOD_JTCS_VIEW_ARTICLE"><img class="jtcs-image" src="https://kx105.fm//cache/mod_jt_contentslider/d490d7b4576290fa60eb31b5fc917ad1_212.png" alt="You can have KX 105 at YOUR Location!" width="600"/></a>
775                                </div>
776        
777        
778        
779        
780            <div class="jt-introtext">
781            &nbsp;
782
783&nbsp;
784&nbsp;
785Give your next event a boost, and advertise with KX 105 FM.
786
787&nbsp;
788Learn more about our Live on Location Package.
789&nbsp;
790&nbsp; &nbsp;        </div>
791        
792        <div></div>
793    <div style="clear:both"></div>
794    </div>
795</div>
796</div>
797</div>
798<style type="text/css">
799/* Existing styles */
800.jtcs255.owl-carousel .owl-nav{justify-content:flex-start}
801.jtcs255.positiontop.owl-carousel .owl-nav{width:100%;position:absolute;top:-40px; bottom:auto;justify-content:flex-start;gap:0 10px;}
802.jtcs255.positioncenter.owl-carousel .owl-nav{width:100%;position:absolute;top:50%; bottom:auto;transform:translateY(-50%);justify-content:space-between; z-index:1; height:0px;}
803.jtcs255.positionbottom.owl-carousel .owl-nav{width:100%;position:absolute;top:auto; bottom:-40px;justify-content:flex-start;gap:0 10px;}
804.jtcs255 .owl-dots {position: relative;bottom:-15px;}
805.jtcs255.owl-carousel .owl-nav.disabled{ display:none}
806.jtcs255.owl-carousel .jt-introtext{ text-align:center}
807/* ADA Compliance: Screen reader only text */
808.sr-only {position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);white-space: nowrap;border-width: 0;}
809/* ADA Compliance: Focus visible styles - only show on keyboard navigation, not mouse clicks */
810.jtcs255 a:focus-visible,
811.jtcs255 button:focus-visible,
812.jtcs255 .owl-nav button:focus-visible,
813.jtcs255 .owl-dot:focus-visible {outline: 3px solid #4A90E2;outline-offset: 2px;box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.3);}
814/* Remove default focus outline for mouse users */
815.jtcs255 a:focus:not(:focus-visible),
816.jtcs255 button:focus:not(:focus-visible),
817.jtcs255 .owl-nav button:focus:not(:focus-visible),
818.jtcs255 .owl-dot:focus:not(:focus-visible) {outline: none;box-shadow: none;}
819/* Fallback for browsers without :focus-visible support */
820.jtcs255 a.keyboard-focus,
821.jtcs255 button.keyboard-focus,
822.jtcs255 .owl-nav button.keyboard-focus,
823.jtcs255 .owl-dot.keyboard-focus {outline: 3px solid #4A90E2 !important;outline-offset: 2px;box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.3) !important;}
824/* ADA Compliance: Ensure focused slide content is visible */
825.jtcs255 .slide:focus-within {scroll-margin: 20px;}
826/* ADA Compliance: Better button visibility and sizing for touch targets */
827.jtcs255 .owl-nav button {min-width: 44px;min-height: 44px;display: flex;align-items: center;justify-content: center;}
828.jtcs255 .owl-dot {min-width: 44px;min-height: 44px;}
829/* ADA Compliance: Ensure keyboard focus visibility in carousel navigation */
830.jtcs255 .owl-nav button:focus-visible {background-color: rgba(74, 144, 226, 0.2) !important;}
831/* ADA Compliance: Show nav buttons whenever keyboard focus is anyw
831here inside
832   the carousel ? Owl hides them with opacity:0 by default until hover,
833   so keyboard users would never see them without this rule. */
834.jtcs255:focus-within .owl-nav button,
835.jtcs255.keyboard-focused .owl-nav button {opacity: 1 !important;visibility: visible !important;}
836</style>
837<script defer type="text/javascript">
838jQuery(document).ready(function() {
839  // Focus-visible polyfill: Track if user is using keyboard
840  var isUsingKeyboard = false;
841  
842  jQuery(document).on('mousedown', function() {
843    isUsingKeyboard = false;
844  });
845  
846  jQuery(document).on('keydown', function(e) {
847    // Tab, Shift, arrows, Enter, Space indicate keyboard usage
848    if (e.key === 'Tab' || e.key === 'Enter' || e.key === ' ' || 
849        e.key === 'ArrowLeft' || e.key === 'ArrowRight' || 
850        e.key === 'ArrowUp' || e.key === 'ArrowDown') {
851      isUsingKeyboard = true;
852    }
853  });
854  
855  // Add/remove keyboard-user class for browsers without :focus-visible support
856  jQuery(document).on('focus', '.jtcs255 a, .jtcs255 button, .jtcs255 .owl-nav button, .jtcs255 .owl-dot', function() {
857    if (isUsingKeyboard) {
858      jQuery(this).addClass('keyboard-focus');
859    } else {
860      jQuery(this).removeClass('keyboard-focus');
861    }
862  });
863  
864  jQuery(document).on('blur', '.jtcs255 a, .jtcs255 button, .jtcs255 .owl-nav button, .jtcs255 .owl-dot', function() {
865    jQuery(this).removeClass('keyboard-focus');
866  });
867
868  var el = jQuery('.jtcs255.owl-carousel');
869  var carousel;
870  var carouselOptions = {
871    margin: 20,
872    stagePadding: 0,
873    center: true,
874    loop: true,
875    nav: true,
876    navText:["<i class='fas fa-angle-left'></i>","<i class='fas fa-angle-right'></i>"],
877    dots: true,
878    rtl: false,
879    slideBy: '1',
880    autoplay:true,
881    autoplaySpeed:300,
882    smartSpeed:300,
883    autoplayTimeout:4000,
884    autoplayHoverPause:true,
885    mouseDrag: true,
886    touchDrag: true,
887    navSpeed:600,
888    dotsSpeed:600,
889    responsive: {
890      0: {
891        autoplay:true,
892        autoplaySpeed:300,
893        smartSpeed:300,
894        autoplayTimeout:4000,
895        items: 1,
896        rows: 1      },
897      768: {
898        autoplay:true,
899        autoplaySpeed:300,
900        smartSpeed:300,
901        autoplayTimeout:4000,
902        items: 1,
903        rows:1      },
904      991: {
905        autoplay:true,
906        autoplaySpeed:300,
907        smartSpeed:300,
908        autoplayTimeout:4000,
909        items:1,
910        rows:1      }
911    },
912    // ADA Compliance callbacks
913onInitialized: function(event) {
914      addAccessibilityAttributes();
915      updateOffscreenTabindex();
916    },
917    onChanged: function(event) {
918      addAccessibilityAttributes();
919      updateOffscreenTabindex();
920    },
921    onTranslated: function(event) {
922      addAccessibilityAttributes();
923      updateOffscreenTabindex();
924    }
925  };
926
927  // ADA Compliance: Add proper ARIA labels to nav buttons and dots
928  function addAccessibilityAttributes() {
929    var carousel = jQuery('.jtcs255');
930    var prevBtn = carousel.find('.owl-prev');
931    var nextBtn = carousel.find('.owl-next');
932    var dots    = carousel.find('.owl-dot');
933
934    if (prevBtn.length) {
935      prevBtn.attr({
936        'aria-label': 'MOD_JTCS_PREVIOUS_SLIDE',
937        'role': 'button',
938        'tabindex': '0'
939      });
940      // Owl adds class="disabled" (not the HTML disabled attribute) at boundaries
941      // ? keep it focusable so Tab reaches it; aria-disabled conveys the state
942      if (prevBtn.hasClass('disabled')) {
943        prevBtn.attr('aria-disabled', 'true');
944      } else {
945        prevBtn.removeAttr('aria-disabled');
946      }
947    }
948
949    if (nextBtn.length) {
950      nextBtn.attr({
951        'aria-label': 'MOD_JTCS_NEXT_SLIDE',
952        'role': 'button',
953        'tabindex': '0'
954      });
955      if (nextBtn.hasClass('disabled')) {
956        nextBtn.attr('aria-disabled', 'true');
957      } else {
958        nextBtn.removeAttr('aria-disabled');
959      }
960    }
961
962    dots.each(function(index) {
963      jQuery(this).attr({
964        'aria-label': 'MOD_JTCS_GO_TO_SLIDE ' + (index + 1),
965        'role': 'button',
966        'tabindex': '0'
967      });
968    });
969
970    // Mark the first visible active slide
971    var activeSlide = carousel.find('.owl-item.active .slide');
972    carousel.find('.slide').removeAttr('aria-current');
973    if (activeSlide.length) {
974      activeSlide.first().attr('aria-current', 'true');
975    }
976
977    // Hide icons from screen readers
978    carousel.find('i[class*="fa"]').attr('aria-hidden', 'true');
979  }
980
981  // ADA FIX: Remove focusable items from off-screen / cloned slides so Tab
982  // only visits links in the currently visible page, preventing misalignment
983  // and eliminating the extra keystrokes needed to escape the carousel.
984  function updateOffscreenTabindex() {
985    var carousel = jQuery('.jtcs255');
986
987    // Make everything inside non-active or cloned items unfocusable.
988    // NOTE: .owl-nav and .owl-dots sit outside .owl-item so they are
989    // never touched here ? their tabindex is managed by addAccessibilityAttributes().
990    carousel.find('.owl-item').each(function() {
991      var item = jQuery(this);
992      var isVisible = item.hasClass('active') && !item.hasClass('cloned');
993      var focusables = item.find('a, button, input, select, textarea, [tabindex]');
994      if (isVisible) {
995        // Restore focusability for visible slides
996        focusables.each(function() {
997          var el = jQuery(this);
998          var saved = el.data('saved-tabindex');
999          if (saved !== undefined) {
1000            if (saved === '0') {
1001              el.removeAttr('tabindex');
1002            } else {
1003              el.attr('tabindex', saved);
1004            }
1005            el.removeData('saved-tabindex');
1006          } else if (el.attr('tabindex') === '-1') {
1007            el.removeAttr('tabindex');
1008          }
1009        });
1010      } else {
1011        // Remove from tab order for off-screen / cloned items
1012        focusables.each(function() {
1013          var el = jQuery(this);
1014          if (el.attr('tabindex') !== '-1') {
1015            el.data('saved-tabindex', el.attr('tabindex') || '0');
1016            el.attr('tabindex', '-1');
1017          }
1018        });
1019      }
1020    });
1021  }
1022
1023  // ADA FIX: Keyboard arrow navigation on the carousel region itself,
1024  // without calling owlInstance.to() on focus (which caused misalignment).
1025  var carouselEl = jQuery('.jtcs255');
1026  carouselEl.on('keydown', function(e) {
1027    var owlInstance = jQuery(this).data('owl.carousel');
1028    if (!owlInstance) return;
1029    if (e.key === 'ArrowLeft')  { e.preventDefault(); owlInstance.prev(); }
1030    if (e.key === 'ArrowRight') { e.preventDefault(); owlInstance.next(); }
1031  });
1032
1033  // Enter/Space on nav buttons and dots
1034  carouselEl.on('keydown', '.owl-prev, .owl-next, .owl-dot', function(e) {
1035    if (e.key === 'Enter' || e.key === ' ') {
1036      e.preventDefault();
1037      jQuery(this).trigger('click');
1038    }
1039  });
1040
1041  // ADA: Show nav buttons and pause autoplay when keyboard focus enters carousel
1042  carouselEl.on('focusin', function() {
1043    var owlInstance = jQuery(this).data('owl.carousel');
1044    if (owlInstance) owlInstance.trigger('stop.owl.autoplay');
1045    // Fallback for browsers with limited :focus-within support
1046    jQuery(this).addClass('keyboard-focused');
1047  });
1048
1049  // ADA: Hide nav buttons again when focus leaves the carousel entirely
1050  carouselEl.on('focusout', function() {
1051    var self = this;
1052    // Use setTimeout so the class isn't removed before the next element receives focus
1053    setTimeout(function() {
1054      if (!jQuery(self).find(':focus').length) {
1055        jQuery(self).removeClass('keyboard-focused');
1056      }
1057    }, 100);
1058  });
1059
1060  var viewport = function() {
1061    var width;
1062    if (carouselOptions.responsiveBaseElement && carouselOptions.responsiveBaseElement !== window) {
1063      width = jQuery(carouselOptions.responsiveBaseElement).width();
1064    } else if (window.innerWidth) {
1065      width = window.innerWidth;
1066    } else if (document.documentElement && document.documentElement.clientWidth) {
1067      width = document.documentElement.clientWidth;
1068    } else {
1069      console.warn('Can not detect viewport width.');
1070    }
1071    return width;
1072  };
1073
1074  var severalRows = false;
1075  var orderedBreakpoints = [];
1076  for (var breakpoint in carouselOptions.responsive) {
1077    if (carouselOptions.responsive[breakpoint].rows > 1) {
1078      severalRows = true;
1079    }
1080    orderedBreakpoints.push(parseInt(breakpoint));
1081  }
1082  
1083  if (severalRows) {
1084    orderedBreakpoints.sort(function (a, b) {
1085      return b - a;
1086    });
1087    var slides = el.find('[data-slide-index]');
1088    var slidesNb = slides.length;
1089    if (slidesNb > 0) {
1090      var rowsNb;
1091      var previousRowsNb = undefined;
1092      var colsNb;
1093      var previousColsNb = undefined;
1094
1095      var updateRowsColsNb = function () {
1096        var width =  viewport();
1097        for (var i = 0; i < orderedBreakpoints.length; i++) {
1098          var breakpoint = orderedBreakpoints[i];
1099          if (width >= breakpoint || i == (orderedBreakpoints.length - 1)) {
1100            var breakpointSettings = carouselOptions.responsive['' + breakpoint];
1101            rowsNb = breakpointSettings.rows;
1102            colsNb = breakpointSettings.items;
1103            break;
1104          }
1105        }
1106      };
1107
1108      var updateCarousel = function () {
1109        updateRowsColsNb();
1110
1111        if (rowsNb != previousRowsNb || colsNb != previousColsNb) {
1112          var reInit = false;
1113          if (carousel) {
1114            carousel.trigger('destroy.owl.carousel');
1115            carousel = undefined;
1116            slides = el.find('[data-slide-index]').detach().appendTo(el);
1117            el.find('.fake-col-wrapper').remove();
1118            reInit = true;
1119          }
1120
1121          var perPage = rowsNb * colsNb;
1122          var pageIndex = Math.floor(slidesNb / perPage);
1123          var fakeColsNb = pageIndex * colsNb + (slidesNb >= (pageIndex * perPage + colsNb) ? colsNb : (slidesNb % colsNb));
1124
1125          var count = 0;
1126          for (var i = 0; i < fakeColsNb; i++) {
1127            var fakeCol = jQuery('<div class="fake-col-wrapper"></div>').appendTo(el);
1128            for (var j = 0; j < rowsNb; j++) {
1129              var index = Math.floor(count / perPage) * perPage + (i % colsNb) + j * colsNb;
1130              if (index < slidesNb) {
1131                slides.filter('[data-slide-index=' + index + ']').detach().appendTo(fakeCol);
1132              }
1133              count++;
1134            }
1135          }
1136
1137          previousRowsNb = rowsNb;
1138          previousColsNb = colsNb;
1139
1140          if (reInit) {
1141            carousel = el.owlCarousel(carouselOptions);
1142          }
1143        }
1144      };
1145
1146      jQuery(window).on('resize', updateCarousel);
1147      updateCarousel();
1148    }
1149  }
1150
1151  carousel = el.owlCarousel(carouselOptions);
1152});
1153
1154if (typeof lightbox !== 'undefined') {
1155  lightbox.option({
1156    fadeDuration:300,
1157    fitImagesInViewport:false,
1158    imageFadeDuration: 300,
1159    positionFromTop: 150,
1160    resizeDuration: 150  });
1161}
1162</script>
1162</div></div><div class="margin_collapsetop"></div></div>
1163</div>
1164</div>
1165</div>
1166<div class=" visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;width:0;"></div>
1167<div class="cell15 col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12 col-xs-12 col-12">
1168<div>
1169<div class="topcolumn15">
1170<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_header"><h3 class="ttr_block_heading">Featured Events <!-- START: Snippets --><span class="seeallfont"><a href="/index.php/featured/featured-events">view all...</a></span><!-- END: Snippets --></h3></div><div class="ttr_block_content"><div class="jtcs_item_wrapper jt-cs" style="padding:10px 10px 10px 10px;">
1171<div class="jtcs256 positioncenter owl-carousel owl-theme slides_container" 
1172     role="region" 
1173     aria-label="MOD_JTCS_CAROUSEL_LABEL"
1174     aria-live="polite">
1175<div class="slide" 
1176     style="padding:10px 10px 10px 10px ;margin:0px 0px 0px 0px " 
1177     data-slide-index="0"
1178     role="group"
1179     aria-roledescription="slide"
1180     aria-label="MOD_JTCS_SLIDE_LABEL">
1181    <div class="jt-inner">
1182            <div class="jt-imagecover" style="float:none;margin-bottom:15px">
1183                    <a class="link-image" title="See your upcoming event right here!" href="/index.php/featured/featured-events/slap-your-upcoming-event-right-here" aria-label="MOD_JTCS_VIEW_ARTICLE"><img class="jtcs-image" src="https://kx105.fm//cache/mod_jt_contentslider/d490d7b4576290fa60eb31b5fc917ad1_187.png" alt="See your upcoming event right here!" width="600"/></a>
1184                                </div>
1185        
1186        
1187        
1188        
1189            <div class="jt-introtext">
1190            &nbsp;
1191
1192&nbsp;
1193&nbsp;
1194Give your next event a boost, and advertise with KX 105 FM.
1195
1196&nbsp;
1197Learn more about our Featured Event Package.
1198&nbsp;
1199&nbsp; &nbsp;        </div>
1200        
1201        <div></div>
1202    <div style="clear:both"></div>
1203    </div>
1204</div>
1205</div>
1206</div>
1207<style type="text/css">
1208/* Existing styles */
1209.jtcs256.owl-carousel .owl-nav{justify-content:flex-start}
1210.jtcs256.positiontop.owl-carousel .owl-nav{width:100%;position:absolute;top:-40px; bottom:auto;justify-content:flex-start;gap:0 10px;}
1211.jtcs256.positioncenter.owl-carousel .owl-nav{width:100%;position:absolute;top:50%; bottom:auto;transform:translateY(-50%);justify-content:space-between; z-index:1; height:0px;}
1212.jtcs256.positionbottom.owl-carousel .owl-nav{width:100%;position:absolute;top:auto; bottom:-40px;justify-content:flex-start;gap:0 10px;}
1213.jtcs256 .owl-dots {position: relative;bottom:-15px;}
1214.jtcs256.owl-carousel .owl-nav.disabled{ display:none}
1215.jtcs256.owl-carousel .jt-introtext{ text-align:center}
1216/* ADA Compliance: Screen reader only text */
1217.sr-only {position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);white-space: nowrap;border-width: 0;}
1218/* ADA Compliance: Focus visible styles - only show on keyboard navigation, not mouse clicks */
1219.jtcs256 a:focus-visible,
1220.jtcs256 button:focus-visible,
1221.jtcs256 .owl-nav button:focus-visible,
1222.jtcs256 .owl-dot:focus-visible {outline: 3px solid #4A90E2;outline-offset: 2px;box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.3);}
1223/* Remove default focus outline for mouse users */
1224.jtcs256 a:focus:not(:focus-visible),
1225.jtcs256 button:focus:not(:focus-visible),
1226.jtcs256 .owl-nav button:focus:not(:focus-visible),
1227.jtcs256 .owl-dot:focus:not(:focus-visible) {outline: none;box-shadow: none;}
1228/* Fallback for browsers without :focus-visible support */
1229.jtcs256 a.keyboard-focus,
1230.jtcs256 button.keyboard-focus,
1231.jtcs256 .owl-nav button.keyboard-focus,
1232.jtcs256 .owl-dot.keyboard-focus {outline: 3px solid #4A90E2 !important;outline-offset: 2px;box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.3) !important;}
1233/* ADA Compliance: Ensure focused slide content is visible */
1234.jtcs256 .slide:focus-within {scroll-margin: 20px;}
1235/* ADA Compliance: Better button visibility and sizing for touch targets */
1236.jtcs256 .owl-nav button {min-width: 44px;min-height: 44px;display: flex;align-items: center;justify-content: center;}
1237.jtcs256 .owl-dot {min-width: 44px;min-height: 44px;}
1238/* ADA Compliance: Ensure keyboard focus visibility in carousel navigation */
1239.jtcs256 .owl-nav button:focus-visible {background-color: rgba(74, 144, 226, 0.2) !important;}
1240/* ADA Compliance: Show nav buttons whenever keyboard focus is anyw
1240here inside
1241   the carousel ? Owl hides them with opacity:0 by default until hover,
1242   so keyboard users would never see them without this rule. */
1243.jtcs256:focus-within .owl-nav button,
1244.jtcs256.keyboard-focused .owl-nav button {opacity: 1 !important;visibility: visible !important;}
1245</style>
1246<script defer type="text/javascript">
1247jQuery(document).ready(function() {
1248  // Focus-visible polyfill: Track if user is using keyboard
1249  var isUsingKeyboard = false;
1250  
1251  jQuery(document).on('mousedown', function() {
1252    isUsingKeyboard = false;
1253  });
1254  
1255  jQuery(document).on('keydown', function(e) {
1256    // Tab, Shift, arrows, Enter, Space indicate keyboard usage
1257    if (e.key === 'Tab' || e.key === 'Enter' || e.key === ' ' || 
1258        e.key === 'ArrowLeft' || e.key === 'ArrowRight' || 
1259        e.key === 'ArrowUp' || e.key === 'ArrowDown') {
1260      isUsingKeyboard = true;
1261    }
1262  });
1263  
1264  // Add/remove keyboard-user class for browsers without :focus-visible support
1265  jQuery(document).on('focus', '.jtcs256 a, .jtcs256 button, .jtcs256 .owl-nav button, .jtcs256 .owl-dot', function() {
1266    if (isUsingKeyboard) {
1267      jQuery(this).addClass('keyboard-focus');
1268    } else {
1269      jQuery(this).removeClass('keyboard-focus');
1270    }
1271  });
1272  
1273  jQuery(document).on('blur', '.jtcs256 a, .jtcs256 button, .jtcs256 .owl-nav button, .jtcs256 .owl-dot', function() {
1274    jQuery(this).removeClass('keyboard-focus');
1275  });
1276
1277  var el = jQuery('.jtcs256.owl-carousel');
1278  var carousel;
1279  var carouselOptions = {
1280    margin: 20,
1281    stagePadding: 0,
1282    center: true,
1283    loop: true,
1284    nav: true,
1285    navText:["<i class='fas fa-angle-left'></i>","<i class='fas fa-angle-right'></i>"],
1286    dots: true,
1287    rtl: false,
1288    slideBy: '1',
1289    autoplay:true,
1290    autoplaySpeed:300,
1291    smartSpeed:300,
1292    autoplayTimeout:4000,
1293    autoplayHoverPause:true,
1294    mouseDrag: true,
1295    touchDrag: true,
1296    navSpeed:600,
1297    dotsSpeed:600,
1298    responsive: {
1299      0: {
1300        autoplay:true,
1301        autoplaySpeed:300,
1302        smartSpeed:300,
1303        autoplayTimeout:4000,
1304        items: 1,
1305        rows: 1      },
1306      768: {
1307        autoplay:true,
1308        autoplaySpeed:300,
1309        smartSpeed:300,
1310        autoplayTimeout:4000,
1311        items: 1,
1312        rows:1      },
1313      991: {
1314        autoplay:true,
1315        autoplaySpeed:300,
1316        smartSpeed:300,
1317        autoplayTimeout:4000,
1318        items:1,
1319        rows:1      }
1320    },
1321    // ADA Compliance callbacks
1322onInitialized: function(event) {
1323      addAccessibilityAttributes();
1324      updateOffscreenTabindex();
1325    },
1326    onChanged: function(event) {
1327      addAccessibilityAttributes();
1328      updateOffscreenTabindex();
1329    },
1330    onTranslated: function(event) {
1331      addAccessibilityAttributes();
1332      updateOffscreenTabindex();
1333    }
1334  };
1335
1336  // ADA Compliance: Add proper ARIA labels to nav buttons and dots
1337  function addAccessibilityAttributes() {
1338    var carousel = jQuery('.jtcs256');
1339    var prevBtn = carousel.find('.owl-prev');
1340    var nextBtn = carousel.find('.owl-next');
1341    var dots    = carousel.find('.owl-dot');
1342
1343    if (prevBtn.length) {
1344      prevBtn.attr({
1345        'aria-label': 'MOD_JTCS_PREVIOUS_SLIDE',
1346        'role': 'button',
1347        'tabindex': '0'
1348      });
1349      // Owl adds class="disabled" (not the HTML disabled attribute) at boundaries
1350      // ? keep it focusable so Tab reaches it; aria-disabled conveys the state
1351      if (prevBtn.hasClass('disabled')) {
1352        prevBtn.attr('aria-disabled', 'true');
1353      } else {
1354        prevBtn.removeAttr('aria-disabled');
1355      }
1356    }
1357
1358    if (nextBtn.length) {
1359      nextBtn.attr({
1360        'aria-label': 'MOD_JTCS_NEXT_SLIDE',
1361        'role': 'button',
1362        'tabindex': '0'
1363      });
1364      if (nextBtn.hasClass('disabled')) {
1365        nextBtn.attr('aria-disabled', 'true');
1366      } else {
1367        nextBtn.removeAttr('aria-disabled');
1368      }
1369    }
1370
1371    dots.each(function(index) {
1372      jQuery(this).attr({
1373        'aria-label': 'MOD_JTCS_GO_TO_SLIDE ' + (index + 1),
1374        'role': 'button',
1375        'tabindex': '0'
1376      });
1377    });
1378
1379    // Mark the first visible active slide
1380    var activeSlide = carousel.find('.owl-item.active .slide');
1381    carousel.find('.slide').removeAttr('aria-current');
1382    if (activeSlide.length) {
1383      activeSlide.first().attr('aria-current', 'true');
1384    }
1385
1386    // Hide icons from screen readers
1387    carousel.find('i[class*="fa"]').attr('aria-hidden', 'true');
1388  }
1389
1390  // ADA FIX: Remove focusable items from off-screen / cloned slides so Tab
1391  // only visits links in the currently visible page, preventing misalignment
1392  // and eliminating the extra keystrokes needed to escape the carousel.
1393  function updateOffscreenTabindex() {
1394    var carousel = jQuery('.jtcs256');
1395
1396    // Make everything inside non-active or cloned items unfocusable.
1397    // NOTE: .owl-nav and .owl-dots sit outside .owl-item so they are
1398    // never touched here ? their tabindex is managed by addAccessibilityAttributes().
1399    carousel.find('.owl-item').each(function() {
1400      var item = jQuery(this);
1401      var isVisible = item.hasClass('active') && !item.hasClass('cloned');
1402      var focusables = item.find('a, button, input, select, textarea, [tabindex]');
1403      if (isVisible) {
1404        // Restore focusability for visible slides
1405        focusables.each(function() {
1406          var el = jQuery(this);
1407          var saved = el.data('saved-tabindex');
1408          if (saved !== undefined) {
1409            if (saved === '0') {
1410              el.removeAttr('tabindex');
1411            } else {
1412              el.attr('tabindex', saved);
1413            }
1414            el.removeData('saved-tabindex');
1415          } else if (el.attr('tabindex') === '-1') {
1416            el.removeAttr('tabindex');
1417          }
1418        });
1419      } else {
1420        // Remove from tab order for off-screen / cloned items
1421        focusables.each(function() {
1422          var el = jQuery(this);
1423          if (el.attr('tabindex') !== '-1') {
1424            el.data('saved-tabindex', el.attr('tabindex') || '0');
1425            el.attr('tabindex', '-1');
1426          }
1427        });
1428      }
1429    });
1430  }
1431
1432  // ADA FIX: Keyboard arrow navigation on the carousel region itself,
1433  // without calling owlInstance.to() on focus (which caused misalignment).
1434  var carouselEl = jQuery('.jtcs256');
1435  carouselEl.on('keydown', function(e) {
1436    var owlInstance = jQuery(this).data('owl.carousel');
1437    if (!owlInstance) return;
1438    if (e.key === 'ArrowLeft')  { e.preventDefault(); owlInstance.prev(); }
1439    if (e.key === 'ArrowRight') { e.preventDefault(); owlInstance.next(); }
1440  });
1441
1442  // Enter/Space on nav buttons and dots
1443  carouselEl.on('keydown', '.owl-prev, .owl-next, .owl-dot', function(e) {
1444    if (e.key === 'Enter' || e.key === ' ') {
1445      e.preventDefault();
1446      jQuery(this).trigger('click');
1447    }
1448  });
1449
1450  // ADA: Show nav buttons and pause autoplay when keyboard focus enters carousel
1451  carouselEl.on('focusin', function() {
1452    var owlInstance = jQuery(this).data('owl.carousel');
1453    if (owlInstance) owlInstance.trigger('stop.owl.autoplay');
1454    // Fallback for browsers with limited :focus-within support
1455    jQuery(this).addClass('keyboard-focused');
1456  });
1457
1458  // ADA: Hide nav buttons again when focus leaves the carousel entirely
1459  carouselEl.on('focusout', function() {
1460    var self = this;
1461    // Use setTimeout so the class isn't removed before the next element receives focus
1462    setTimeout(function() {
1463      if (!jQuery(self).find(':focus').length) {
1464        jQuery(self).removeClass('keyboard-focused');
1465      }
1466    }, 100);
1467  });
1468
1469  var viewport = function() {
1470    var width;
1471    if (carouselOptions.responsiveBaseElement && carouselOptions.responsiveBaseElement !== window) {
1472      width = jQuery(carouselOptions.responsiveBaseElement).width();
1473    } else if (window.innerWidth) {
1474      width = window.innerWidth;
1475    } else if (document.documentElement && document.documentElement.clientWidth) {
1476      width = document.documentElement.clientWidth;
1477    } else {
1478      console.warn('Can not detect viewport width.');
1479    }
1480    return width;
1481  };
1482
1483  var severalRows = false;
1484  var orderedBreakpoints = [];
1485  for (var breakpoint in carouselOptions.responsive) {
1486    if (carouselOptions.responsive[breakpoint].rows > 1) {
1487      severalRows = true;
1488    }
1489    orderedBreakpoints.push(parseInt(breakpoint));
1490  }
1491  
1492  if (severalRows) {
1493    orderedBreakpoints.sort(function (a, b) {
1494      return b - a;
1495    });
1496    var slides = el.find('[data-slide-index]');
1497    var slidesNb = slides.length;
1498    if (slidesNb > 0) {
1499      var rowsNb;
1500      var previousRowsNb = undefined;
1501      var colsNb;
1502      var previousColsNb = undefined;
1503
1504      var updateRowsColsNb = function () {
1505        var width =  viewport();
1506        for (var i = 0; i < orderedBreakpoints.length; i++) {
1507          var breakpoint = orderedBreakpoints[i];
1508          if (width >= breakpoint || i == (orderedBreakpoints.length - 1)) {
1509            var breakpointSettings = carouselOptions.responsive['' + breakpoint];
1510            rowsNb = breakpointSettings.rows;
1511            colsNb = breakpointSettings.items;
1512            break;
1513          }
1514        }
1515      };
1516
1517      var updateCarousel = function () {
1518        updateRowsColsNb();
1519
1520        if (rowsNb != previousRowsNb || colsNb != previousColsNb) {
1521          var reInit = false;
1522          if (carousel) {
1523            carousel.trigger('destroy.owl.carousel');
1524            carousel = undefined;
1525            slides = el.find('[data-slide-index]').detach().appendTo(el);
1526            el.find('.fake-col-wrapper').remove();
1527            reInit = true;
1528          }
1529
1530          var perPage = rowsNb * colsNb;
1531          var pageIndex = Math.floor(slidesNb / perPage);
1532          var fakeColsNb = pageIndex * colsNb + (slidesNb >= (pageIndex * perPage + colsNb) ? colsNb : (slidesNb % colsNb));
1533
1534          var count = 0;
1535          for (var i = 0; i < fakeColsNb; i++) {
1536            var fakeCol = jQuery('<div class="fake-col-wrapper"></div>').appendTo(el);
1537            for (var j = 0; j < rowsNb; j++) {
1538              var index = Math.floor(count / perPage) * perPage + (i % colsNb) + j * colsNb;
1539              if (index < slidesNb) {
1540                slides.filter('[data-slide-index=' + index + ']').detach().appendTo(fakeCol);
1541              }
1542              count++;
1543            }
1544          }
1545
1546          previousRowsNb = rowsNb;
1547          previousColsNb = colsNb;
1548
1549          if (reInit) {
1550            carousel = el.owlCarousel(carouselOptions);
1551          }
1552        }
1553      };
1554
1555      jQuery(window).on('resize', updateCarousel);
1556      updateCarousel();
1557    }
1558  }
1559
1560  carousel = el.owlCarousel(carouselOptions);
1561});
1562
1563if (typeof lightbox !== 'undefined') {
1564  lightbox.option({
1565    fadeDuration:300,
1566    fitImagesInViewport:false,
1567    imageFadeDuration: 300,
1568    positionFromTop: 150,
1569    resizeDuration: 150  });
1570}
1571</script>
1571</div></div><div class="margin_collapsetop"></div></div>
1572</div>
1573</div>
1574</div>
1575<div class=" visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;width:0;"></div>
1576<div class="cell16 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
1577&nbsp;
1578</div>
1579<div class="d-xxl-block d-xl-block visible-xs-block d-block" style="clear:both;width:0;"></div>
1580<div class="cell17 col-xxl-12 col-xl-12 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
1581&nbsp;
1582</div>
1583<div class="d-xxl-block d-xl-block visible-xs-block d-block" style="clear:both;width:0;"></div>
1584<div class=" d-xxl-block d-xl-block visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;"></div>
1585</div>
1586</div>
1587<div style="clear: both;"></div>
1588<div id="system-message-container" aria-live="polite"></div>
1589
1590<div class="blog-featured" itemscope itemtype="https://schema.org/Blog">
1591<div class="row g-0">
1592</div>
1593</div>
1594<div class="ttr_bottomcolumn_widget_container">
1595<div class="contentbottomcolumn0">
1596<div class="cell1 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
1597&nbsp;
1598</div>
1599<div class=" visible-xs-block d-block" style="clear:both;width:0;"></div>
1600<div class="cell2 col-xxl-10 col-xl-10 col-lg-12 col-md-12 col-sm-12 col-xs-12 col-12">
1601<div>
1602<div class="bottomcolumn2">
1603<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
1604<div class="ad-container"
1605  data-adrefresh-module-id="265"
1606  data-ad-unit-id="div-gpt-ad-1745100565501-0"
1607  data-ad-slot-path="/69289300/CKQMARTICLE"
1608  data-refresh-interval="60">
1609  <div id="div-gpt-ad-1745100565501-0" style="min-height: 90px;"></div>
1610</div></div></div><div class="margin_collapsetop"></div></div>
1611</div>
1612</div>
1613</div>
1614<div class=" visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;width:0;"></div>
1615<div class="cell3 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
1616&nbsp;
1617</div>
1618<div class="d-xxl-block d-xl-block visible-xs-block d-block" style="clear:both;width:0;"></div>
1619<div class="cell4 col-xxl-12 col-xl-12 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
1620&nbsp;
1621</div>
1622<div class="d-xxl-block d-xl-block visible-xs-block d-block" style="clear:both;width:0;"></div>
1623<div class=" d-xxl-block d-xl-block visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;"></div>
1624</div>
1625</div>
1626<div style="clear: both;"></div>
1627<div class="ttr_bottomcolumn_widget_container">
1628<div class="contentbottomcolumn1">
1629<div class="cell5 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
1630&nbsp;
1631</div>
1632<div class=" visible-xs-block d-block" style="clear:both;width:0;"></div>
1633<div class="cell6 col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12 col-xs-12 col-12">
1634<div>
1635<div class="bottomcolumn6">
1636<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block scwidget"><div class="margin_collapsetop"></div><div class="ttr_block_header"><h3 class="ttr_block_heading">Upcoming Concerts <!-- START: Snippets --><span class="seeallfont"><a href="/index.php/kx105-concerts">view all...</a></span><!-- END: Snippets --></h3></div><div class="ttr_block_content"><div class="mod-articlesnews newsflash">
1637            <div class="mod-articlesnews__item" itemscope itemtype="https://schema.org/Article">
1638                    <h4 class="newsflash-title">
1639            <a href="/index.php/kx105-concerts/lyle-lovett-and-his-small-large-band">
1640            Lyle Lovett and his Small Large Band        </a>
1641        </h4>
1642
1643    <figure class="newsflash-image">
1644        <img src="/images/concerts/concert_lylelovett_october2026.jpg" alt="" width="600" height="377" loading="lazy">            </figure>
1645
1646    
1647
1648
1649
1650    
1651<p class="readmore">
1652			<a class="btn btn-default" href="/index.php/kx105-concerts/lyle-lovett-and-his-small-large-band" itemprop="url" aria-label="Read more &hellip; Lyle Lovett and his Small Large Band">
1653			<span class="icon-chevron-right" aria-hidden="true"></span> 
1654			Read more &hellip;		</a>
1655	</p>
1656        </div>
1657            <div class="mod-articlesnews__item" itemscope itemtype="https://schema.org/Article">
1658                    <h4 class="newsflash-title">
1659            <a href="/index.php/kx105-concerts/the-cowboy-up-tour-feat-peterboroughs-elyse-saunders">
1660            The COWBOY UP Tour feat. Peterborough's Elyse Saunders        </a>
1661        </h4>
1662
1663    <figure class="newsflash-image">
1664        <img src="/images/concerts/concert_cowboyup_oct26.jpg" alt="" width="600" height="377" loading="lazy">            </figure>
1665
1666    
1667
1668
1669
1670    
1671<p class="readmore">
1672			<a class="btn btn-default" href="/index.php/kx105-concerts/the-cowboy-up-tour-feat-peterboroughs-elyse-saunders" itemprop="url" aria-label="Read more &hellip; The COWBOY UP Tour feat. Peterborough&#039;s Elyse Saunders">
1673			<span class="icon-chevron-right" aria-hidden="true"></span> 
1674			Read more &hellip;		</a>
1675	</p>
1676        </div>
1677            <div class="mod-articlesnews__item" itemscope itemtype="https://schema.org/Article">
1678                    <h4 class="newsflash-title">
1679            <a href="/index.php/kx105-concerts/kx105-presents-gord-bamford-the-venue-peterborough">
1680            KX105 Presents - Gord Bamford @ The Venue Peterborough        </a>
1681        </h4>
1682
1683    <figure class="newsflash-image">
1684        <img src="/images/concerts/gordbamfordconcertoctober2026.jpg" alt="" width="600" height="377" loading="lazy">            </figure>
1685
1686    
1687
1688
1689
1690    
1691<p class="readmore">
1692			<a class="btn btn-default" href="/index.php/kx105-concerts/kx105-presents-gord-bamford-the-venue-peterborough" itemprop="url" aria-label="Read more &hellip; KX105 Presents - Gord Bamford @ The Venue Peterborough">
1693			<span class="icon-chevron-right" aria-hidden="true"></span> 
1694			Read more &hellip;		</a>
1695	</p>
1696        </div>
1697            <div class="mod-articlesnews__item" itemscope itemtype="https://schema.org/Article">
1698                    <h4 class="newsflash-title">
1699            <a href="/index.php/kx105-concerts/owen-riegling-pickering-casino-resort">
1700            Owen Riegling @ Pickering Casino Resort        </a>
1701        </h4>
1702
1703    <figure class="newsflash-image">
1704        <img src="/images/concerts/concert_owenriegling_november2026.jpg" alt="" width="600" height="377" loading="lazy">            </figure>
1705
1706    
1707
1708
1709
1710    
1711<p class="readmore">
1712			<a class="btn btn-default" href="/index.php/kx105-concerts/owen-riegling-pickering-casino-resort" itemprop="url" aria-label="Read more &hellip; Owen Riegling @ Pickering Casino Resort">
1713			<span class="icon-chevron-right" aria-hidden="true"></span> 
1714			Read more &hellip;		</a>
1715	</p>
1716        </div>
1717            <div class="mod-articlesnews__item" itemscope itemtype="https://schema.org/Article">
1718                    <h4 class="newsflash-title">
1719            <a href="/index.php/kx105-concerts/lee-brice">
1720            Lee Brice        </a>
1721        </h4>
1722
1723    <figure class="newsflash-image">
1724        <img src="/images/concerts/concert_rama_lee_brice_nov2026.jpg" alt="" width="600" height="377" loading="lazy">            </figure>
1725
1726    
1727
1728
1729
1730    
1731<p class="readmore">
1732			<a class="btn btn-default" href="/index.php/kx105-concerts/lee-brice" itemprop="url" aria-label="Read more &hellip; Lee Brice">
1733			<span class="icon-chevron-right" aria-hidden="true"></span> 
1734			Read more &hellip;		</a>
1735	</p>
1736        </div>
1737            <div class="mod-articlesnews__item" itemscope itemtype="https://schema.org/Article">
1738                    <h4 class="newsflash-title">
1739            <a href="/index.php/kx105-concerts/dean-brody-and-the-reklaws-hometown-heroes-tour-pmc">
1740            Dean Brody and The Reklaws - Hometown Heroes Tour - PMC        </a>
1741        </h4>
1742
1743    <figure class="newsflash-image">
1744        <img src="/images/concerts/KX105%20concert%20DEAN%20BRODY%20NOV%202026.png" alt="" width="600" height="377" loading="lazy">            </figure>
1745
1746    
1747
1748
1749
1750    
1751<p class="readmore">
1752			<a class="btn btn-default" href="/index.php/kx105-concerts/dean-brody-and-the-reklaws-hometown-heroes-tour-pmc" itemprop="url" aria-label="Read more &hellip; Dean Brody and The Reklaws - Hometown Heroes Tour - PMC">
1753			<span class="icon-chevron-right" aria-hidden="true"></span> 
1754			Read more &hellip;		</a>
1755	</p>
1756        </div>
1757            <div class="mod-articlesnews__item" itemscope itemtype="https://schema.org/Article">
1758                    <h4 class="newsflash-title">
1759            <a href="/index.php/kx105-concerts/kx105-present-tebey-with-special-guest-josh-stumpf">
1760            KX105 Present Tebey with special guest Josh Stumpf         </a>
1761        </h4>
1762
1763    <figure class="newsflash-image">
1764        <img src="/images/concerts/kx105_presents_tebey_feb27.png" alt="" width="600" height="377" loading="lazy">            </figure>
1765
1766    
1767
1768
1769
1770    
1771<p class="readmore">
1772			<a class="btn btn-default" href="/index.php/kx105-concerts/kx105-present-tebey-with-special-guest-josh-stumpf" itemprop="url" aria-label="Read more &hellip; KX105 Present Tebey with special guest Josh Stumpf ">
1773			<span class="icon-chevron-right" aria-hidden="true"></span> 
1774			Read more &hellip;		</a>
1775	</p>
1776        </div>
1777    </div>
1778</div></div><div class="margin_collapsetop"></div></div><div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
1779<div id="mod-custom292" class="mod-custom custom">
1780    <p style="text-align: center;"><a href="http://www.cmaontario.ca/" target="_blank" rel="noopener"><img src="https://www.kx96.fm/images/tiles/tile_cma-ontario_2024.jpg" alt="tile rock mornings" width="500" height="200" style="margin: 0px; border: 1px solid #cecaca;" /></a></p>
1781<p>&nbsp;&nbsp;</p></div>
1782</div></div><div class="margin_collapsetop"></div></div>
1783</div>
1784</div>
1785</div>
1786<div class=" visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;width:0;"></div>
1787<div class="cell7 col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12 col-xs-12 col-12">
1788<div>
1789<div class="bottomcolumn7">
1790<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_header"><h3 class="ttr_block_heading">In Your Community <!-- START: Snippets --><span class="seeallfont"><a href="/index.php/community/in-your-community">view all...</a></span><!-- END: Snippets --></h3></div><div class="ttr_block_content"><div class="jtcs_item_wrapper jt-cs" style="padding:10px 10px 10px 10px;">
1791<div class="jtcs288 positioncenter owl-carousel owl-theme slides_container" 
1792     role="region" 
1793     aria-label="MOD_JTCS_CAROUSEL_LABEL"
1794     aria-live="polite">
1795<div class="slide" 
1796     style="padding:10px 10px 10px 10px ;margin:0px 0px 0px 0px " 
1797     data-slide-index="0"
1798     role="group"
1799     aria-roledescription="slide"
1800     aria-label="MOD_JTCS_SLIDE_LABEL">
1801    <div class="jt-inner">
1802            <div class="jt-imagecover" style="float:none;margin-bottom:15px">
1803                    <a class="link-image" title="Pet of The Week - Grogu" href="/index.php/community/in-your-community/pet-of-the-week-grogu" aria-label="MOD_JTCS_VIEW_ARTICLE"><img class="jtcs-image" src="https://kx105.fm//cache/mod_jt_contentslider/d490d7b4576290fa60eb31b5fc917ad1_1565.jpg" width="600" alt="Pet of The Week - Grogu" /></a>
1804                                </div>
1805        
1806        
1807        
1808        
1809            <div class="jt-introtext">
1810            Meet the KX105 Pet of the Week with the Peterborough Humane Society
1811        </div>
1812        
1813        <div></div>
1814    <div style="clear:both"></div>
1815    </div>
1816</div>
1817</div>
1818</div>
1819<style type="text/css">
1820/* Existing styles */
1821.jtcs288.owl-carousel .owl-nav{justify-content:flex-start}
1822.jtcs288.positiontop.owl-carousel .owl-nav{width:100%;position:absolute;top:-40px; bottom:auto;justify-content:flex-start;gap:0 10px;}
1823.jtcs288.positioncenter.owl-carousel .owl-nav{width:100%;position:absolute;top:50%; bottom:auto;transform:translateY(-50%);justify-content:space-between; z-index:1; height:0px;}
1824.jtcs288.positionbottom.owl-carousel .owl-nav{width:100%;position:absolute;top:auto; bottom:-40px;justify-content:flex-start;gap:0 10px;}
1825.jtcs288 .owl-dots {position: relative;bottom:-15px;}
1826.jtcs288.owl-carousel .owl-nav.disabled{ display:none}
1827.jtcs288.owl-carousel .jt-introtext{ text-align:center}
1828/* ADA Compliance: Screen reader only text */
1829.sr-only {position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);white-space: nowrap;border-width: 0;}
1830/* ADA Compliance: Focus visible styles - only show on keyboard navigation, not mouse clicks */
1831.jtcs288 a:focus-visible,
1832.jtcs288 button:focus-visible,
1833.jtcs288 .owl-nav button:focus-visible,
1834.jtcs288 .owl-dot:focus-visible {outline: 3px solid #4A90E2;outline-offset: 2px;box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.3);}
1835/* Remove default focus outline for mouse users */
1836.jtcs288 a:focus:not(:focus-visible),
1837.jtcs288 button:focus:not(:focus-visible),
1838.jtcs288 .owl-nav button:focus:not(:focus-visible),
1839.jtcs288 .owl-dot:focus:not(:focus-visible) {outline: none;box-shadow: none;}
1840/* Fallback for browsers without :focus-visible support */
1841.jtcs288 a.keyboard-focus,
1842.jtcs288 button.keyboard-focus,
1843.jtcs288 .owl-nav button.keyboard-focus,
1844.jtcs288 .owl-dot.keyboard-focus {outline: 3px solid #4A90E2 !important;outline-offset: 2px;box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.3) !important;}
1845/* ADA Compliance: Ensure focused slide content is visible */
1846.jtcs288 .slide:focus-within {scroll-margin: 20px;}
1847/* ADA Compliance: Better button visibility and sizing for touch targets */
1848.jtcs288 .owl-nav button {min-width: 44px;min-height: 44px;display: flex;align-items: center;justify-content: center;}
1849.jtcs288 .owl-dot {min-width: 44px;min-height: 44px;}
1850/* ADA Compliance: Ensure keyboard focus visibility in carousel navigation */
1851.jtcs288 .owl-nav button:focus-visible {background-color: rgba(74, 144, 226, 0.2) !important;}
1852/* ADA Compliance: Show nav buttons whenever keyboard focus is anyw
1852here inside
1853   the carousel ? Owl hides them with opacity:0 by default until hover,
1854   so keyboard users would never see them without this rule. */
1855.jtcs288:focus-within .owl-nav button,
1856.jtcs288.keyboard-focused .owl-nav button {opacity: 1 !important;visibility: visible !important;}
1857</style>
1858<script defer type="text/javascript">
1859jQuery(document).ready(function() {
1860  // Focus-visible polyfill: Track if user is using keyboard
1861  var isUsingKeyboard = false;
1862  
1863  jQuery(document).on('mousedown', function() {
1864    isUsingKeyboard = false;
1865  });
1866  
1867  jQuery(document).on('keydown', function(e) {
1868    // Tab, Shift, arrows, Enter, Space indicate keyboard usage
1869    if (e.key === 'Tab' || e.key === 'Enter' || e.key === ' ' || 
1870        e.key === 'ArrowLeft' || e.key === 'ArrowRight' || 
1871        e.key === 'ArrowUp' || e.key === 'ArrowDown') {
1872      isUsingKeyboard = true;
1873    }
1874  });
1875  
1876  // Add/remove keyboard-user class for browsers without :focus-visible support
1877  jQuery(document).on('focus', '.jtcs288 a, .jtcs288 button, .jtcs288 .owl-nav button, .jtcs288 .owl-dot', function() {
1878    if (isUsingKeyboard) {
1879      jQuery(this).addClass('keyboard-focus');
1880    } else {
1881      jQuery(this).removeClass('keyboard-focus');
1882    }
1883  });
1884  
1885  jQuery(document).on('blur', '.jtcs288 a, .jtcs288 button, .jtcs288 .owl-nav button, .jtcs288 .owl-dot', function() {
1886    jQuery(this).removeClass('keyboard-focus');
1887  });
1888
1889  var el = jQuery('.jtcs288.owl-carousel');
1890  var carousel;
1891  var carouselOptions = {
1892    margin: 20,
1893    stagePadding: 0,
1894    center: true,
1895    loop: true,
1896    nav: true,
1897    navText:["<i class='fas fa-angle-left'></i>","<i class='fas fa-angle-right'></i>"],
1898    dots: true,
1899    rtl: false,
1900    slideBy: '1',
1901    autoplay:true,
1902    autoplaySpeed:300,
1903    smartSpeed:300,
1904    autoplayTimeout:4000,
1905    autoplayHoverPause:true,
1906    mouseDrag: true,
1907    touchDrag: true,
1908    navSpeed:600,
1909    dotsSpeed:600,
1910    responsive: {
1911      0: {
1912        autoplay:true,
1913        autoplaySpeed:300,
1914        smartSpeed:300,
1915        autoplayTimeout:4000,
1916        items: 1,
1917        rows: 1      },
1918      768: {
1919        autoplay:true,
1920        autoplaySpeed:300,
1921        smartSpeed:300,
1922        autoplayTimeout:4000,
1923        items: 1,
1924        rows:1      },
1925      991: {
1926        autoplay:true,
1927        autoplaySpeed:300,
1928        smartSpeed:300,
1929        autoplayTimeout:4000,
1930        items:1,
1931        rows:1      }
1932    },
1933    // ADA Compliance callbacks
1934onInitialized: function(event) {
1935      addAccessibilityAttributes();
1936      updateOffscreenTabindex();
1937    },
1938    onChanged: function(event) {
1939      addAccessibilityAttributes();
1940      updateOffscreenTabindex();
1941    },
1942    onTranslated: function(event) {
1943      addAccessibilityAttributes();
1944      updateOffscreenTabindex();
1945    }
1946  };
1947
1948  // ADA Compliance: Add proper ARIA labels to nav buttons and dots
1949  function addAccessibilityAttributes() {
1950    var carousel = jQuery('.jtcs288');
1951    var prevBtn = carousel.find('.owl-prev');
1952    var nextBtn = carousel.find('.owl-next');
1953    var dots    = carousel.find('.owl-dot');
1954
1955    if (prevBtn.length) {
1956      prevBtn.attr({
1957        'aria-label': 'MOD_JTCS_PREVIOUS_SLIDE',
1958        'role': 'button',
1959        'tabindex': '0'
1960      });
1961      // Owl adds class="disabled" (not the HTML disabled attribute) at boundaries
1962      // ? keep it focusable so Tab reaches it; aria-disabled conveys the state
1963      if (prevBtn.hasClass('disabled')) {
1964        prevBtn.attr('aria-disabled', 'true');
1965      } else {
1966        prevBtn.removeAttr('aria-disabled');
1967      }
1968    }
1969
1970    if (nextBtn.length) {
1971      nextBtn.attr({
1972        'aria-label': 'MOD_JTCS_NEXT_SLIDE',
1973        'role': 'button',
1974        'tabindex': '0'
1975      });
1976      if (nextBtn.hasClass('disabled')) {
1977        nextBtn.attr('aria-disabled', 'true');
1978      } else {
1979        nextBtn.removeAttr('aria-disabled');
1980      }
1981    }
1982
1983    dots.each(function(index) {
1984      jQuery(this).attr({
1985        'aria-label': 'MOD_JTCS_GO_TO_SLIDE ' + (index + 1),
1986        'role': 'button',
1987        'tabindex': '0'
1988      });
1989    });
1990
1991    // Mark the first visible active slide
1992    var activeSlide = carousel.find('.owl-item.active .slide');
1993    carousel.find('.slide').removeAttr('aria-current');
1994    if (activeSlide.length) {
1995      activeSlide.first().attr('aria-current', 'true');
1996    }
1997
1998    // Hide icons from screen readers
1999    carousel.find('i[class*="fa"]').attr('aria-hidden', 'true');
2000  }
2001
2002  // ADA FIX: Remove focusable items from off-screen / cloned slides so Tab
2003  // only visits links in the currently visible page, preventing misalignment
2004  // and eliminating the extra keystrokes needed to escape the carousel.
2005  function updateOffscreenTabindex() {
2006    var carousel = jQuery('.jtcs288');
2007
2008    // Make everything inside non-active or cloned items unfocusable.
2009    // NOTE: .owl-nav and .owl-dots sit outside .owl-item so they are
2010    // never touched here ? their tabindex is managed by addAccessibilityAttributes().
2011    carousel.find('.owl-item').each(function() {
2012      var item = jQuery(this);
2013      var isVisible = item.hasClass('active') && !item.hasClass('cloned');
2014      var focusables = item.find('a, button, input, select, textarea, [tabindex]');
2015      if (isVisible) {
2016        // Restore focusability for visible slides
2017        focusables.each(function() {
2018          var el = jQuery(this);
2019          var saved = el.data('saved-tabindex');
2020          if (saved !== undefined) {
2021            if (saved === '0') {
2022              el.removeAttr('tabindex');
2023            } else {
2024              el.attr('tabindex', saved);
2025            }
2026            el.removeData('saved-tabindex');
2027          } else if (el.attr('tabindex') === '-1') {
2028            el.removeAttr('tabindex');
2029          }
2030        });
2031      } else {
2032        // Remove from tab order for off-screen / cloned items
2033        focusables.each(function() {
2034          var el = jQuery(this);
2035          if (el.attr('tabindex') !== '-1') {
2036            el.data('saved-tabindex', el.attr('tabindex') || '0');
2037            el.attr('tabindex', '-1');
2038          }
2039        });
2040      }
2041    });
2042  }
2043
2044  // ADA FIX: Keyboard arrow navigation on the carousel region itself,
2045  // without calling owlInstance.to() on focus (which caused misalignment).
2046  var carouselEl = jQuery('.jtcs288');
2047  carouselEl.on('keydown', function(e) {
2048    var owlInstance = jQuery(this).data('owl.carousel');
2049    if (!owlInstance) return;
2050    if (e.key === 'ArrowLeft')  { e.preventDefault(); owlInstance.prev(); }
2051    if (e.key === 'ArrowRight') { e.preventDefault(); owlInstance.next(); }
2052  });
2053
2054  // Enter/Space on nav buttons and dots
2055  carouselEl.on('keydown', '.owl-prev, .owl-next, .owl-dot', function(e) {
2056    if (e.key === 'Enter' || e.key === ' ') {
2057      e.preventDefault();
2058      jQuery(this).trigger('click');
2059    }
2060  });
2061
2062  // ADA: Show nav buttons and pause autoplay when keyboard focus enters carousel
2063  carouselEl.on('focusin', function() {
2064    var owlInstance = jQuery(this).data('owl.carousel');
2065    if (owlInstance) owlInstance.trigger('stop.owl.autoplay');
2066    // Fallback for browsers with limited :focus-within support
2067    jQuery(this).addClass('keyboard-focused');
2068  });
2069
2070  // ADA: Hide nav buttons again when focus leaves the carousel entirely
2071  carouselEl.on('focusout', function() {
2072    var self = this;
2073    // Use setTimeout so the class isn't removed before the next element receives focus
2074    setTimeout(function() {
2075      if (!jQuery(self).find(':focus').length) {
2076        jQuery(self).removeClass('keyboard-focused');
2077      }
2078    }, 100);
2079  });
2080
2081  var viewport = function() {
2082    var width;
2083    if (carouselOptions.responsiveBaseElement && carouselOptions.responsiveBaseElement !== window) {
2084      width = jQuery(carouselOptions.responsiveBaseElement).width();
2085    } else if (window.innerWidth) {
2086      width = window.innerWidth;
2087    } else if (document.documentElement && document.documentElement.clientWidth) {
2088      width = document.documentElement.clientWidth;
2089    } else {
2090      console.warn('Can not detect viewport width.');
2091    }
2092    return width;
2093  };
2094
2095  var severalRows = false;
2096  var orderedBreakpoints = [];
2097  for (var breakpoint in carouselOptions.responsive) {
2098    if (carouselOptions.responsive[breakpoint].rows > 1) {
2099      severalRows = true;
2100    }
2101    orderedBreakpoints.push(parseInt(breakpoint));
2102  }
2103  
2104  if (severalRows) {
2105    orderedBreakpoints.sort(function (a, b) {
2106      return b - a;
2107    });
2108    var slides = el.find('[data-slide-index]');
2109    var slidesNb = slides.length;
2110    if (slidesNb > 0) {
2111      var rowsNb;
2112      var previousRowsNb = undefined;
2113      var colsNb;
2114      var previousColsNb = undefined;
2115
2116      var updateRowsColsNb = function () {
2117        var width =  viewport();
2118        for (var i = 0; i < orderedBreakpoints.length; i++) {
2119          var breakpoint = orderedBreakpoints[i];
2120          if (width >= breakpoint || i == (orderedBreakpoints.length - 1)) {
2121            var breakpointSettings = carouselOptions.responsive['' + breakpoint];
2122            rowsNb = breakpointSettings.rows;
2123            colsNb = breakpointSettings.items;
2124            break;
2125          }
2126        }
2127      };
2128
2129      var updateCarousel = function () {
2130        updateRowsColsNb();
2131
2132        if (rowsNb != previousRowsNb || colsNb != previousColsNb) {
2133          var reInit = false;
2134          if (carousel) {
2135            carousel.trigger('destroy.owl.carousel');
2136            carousel = undefined;
2137            slides = el.find('[data-slide-index]').detach().appendTo(el);
2138            el.find('.fake-col-wrapper').remove();
2139            reInit = true;
2140          }
2141
2142          var perPage = rowsNb * colsNb;
2143          var pageIndex = Math.floor(slidesNb / perPage);
2144          var fakeColsNb = pageIndex * colsNb + (slidesNb >= (pageIndex * perPage + colsNb) ? colsNb : (slidesNb % colsNb));
2145
2146          var count = 0;
2147          for (var i = 0; i < fakeColsNb; i++) {
2148            var fakeCol = jQuery('<div class="fake-col-wrapper"></div>').appendTo(el);
2149            for (var j = 0; j < rowsNb; j++) {
2150              var index = Math.floor(count / perPage) * perPage + (i % colsNb) + j * colsNb;
2151              if (index < slidesNb) {
2152                slides.filter('[data-slide-index=' + index + ']').detach().appendTo(fakeCol);
2153              }
2154              count++;
2155            }
2156          }
2157
2158          previousRowsNb = rowsNb;
2159          previousColsNb = colsNb;
2160
2161          if (reInit) {
2162            carousel = el.owlCarousel(carouselOptions);
2163          }
2164        }
2165      };
2166
2167      jQuery(window).on('resize', updateCarousel);
2168      updateCarousel();
2169    }
2170  }
2171
2172  carousel = el.owlCarousel(carouselOptions);
2173});
2174
2175if (typeof lightbox !== 'undefined') {
2176  lightbox.option({
2177    fadeDuration:300,
2178    fitImagesInViewport:false,
2179    imageFadeDuration: 300,
2180    positionFromTop: 150,
2181    resizeDuration: 150  });
2182}
2183</script>
2183</div></div><div class="margin_collapsetop"></div></div><div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block scwidget"><div class="margin_collapsetop"></div><div class="ttr_block_header"><h3 class="ttr_block_heading">Latest Video <!-- START: Snippets --><span class="seeallfont"><a href="/index.php/on-demand/kx105-videos">view all...</a></span><!-- END: Snippets --></h3></div><div class="ttr_block_content"><div class="mod-articlesnews newsflash">
2184            <div class="mod-articlesnews__item" itemscope itemtype="https://schema.org/Article">
2185                    <h4 class="newsflash-title">
2186            <a href="/index.php/on-demand/kx105-videos/kxcountry-clubhouse-warren-zeiders">
2187            KXCountry Clubhouse: Warren Zeiders        </a>
2188        </h4>
2189
2190
2191    
2192
2193    <p style="text-align: center;">
2194
2195<!-- JoomlaWorks "AllVideos" Plugin (v7.0) starts here -->
2196
2197<div class="avPlayerWrapper avVideo">
2198    <div class="avPlayerContainer">
2199        <div id="AVPlayerID_0_c12137a1dc13c20e24dd82c567b05622" class="avPlayerBlock">
2200            <iframe src="https://www.youtube.com/embed/44fe64ZCPfs?rel=0&amp;fs=1&amp;wmode=transparent" width="720" height="480" allow="autoplay; fullscreen; encrypted-media" allowfullscreen="true" frameborder="0" scrolling="no" title="JoomlaWorks AllVideos Player"></iframe>        </div>
2201            </div>
2202</div>
2203
2204<!-- JoomlaWorks "AllVideos" Plugin (v7.0) ends here -->
2205
2206</p>
2207
2208
2209    
2210<p class="readmore">
2211			<a class="btn btn-default" href="/index.php/on-demand/kx105-videos/kxcountry-clubhouse-warren-zeiders" itemprop="url" aria-label="Read more &hellip; KXCountry Clubhouse: Warren Zeiders">
2212			<span class="icon-chevron-right" aria-hidden="true"></span> 
2213			Read more &hellip;		</a>
2214	</p>
2215        </div>
2216    </div>
2217</div></div><div class="margin_collapsetop"></div></div><div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block comevent"><div class="margin_collapsetop"></div><div class="ttr_block_header"><h3 class="ttr_block_heading">Upcoming Events  <!-- START: Snippets --><span class="seeallfont"><a href="/index.php/community/kx105-events">view all...</a></span><!-- END: Snippets --></h3></div><div class="ttr_block_content"><table class="mod_events_latest_table jevbootstrap" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td class="mod_events_latest_first" style="border-color:#ccc"><span class="mod_events_latest_date">Thu Oct 01 @ 8:00AM</span> - <span class="mod_events_latest_date">02:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25076/-/st-thomas-aquinas-catholic-secondary-school-25th-anniversary-celebration?filter_reset=1"  target="_top" >St. Thomas Aquinas Catholic Secondary School 25th Anniversary Celebration</a></span></td></tr>
2218<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Fri Oct 02 @ 8:00AM</span> - <span class="mod_events_latest_date">02:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25076/-/st-thomas-aquinas-catholic-secondary-school-25th-anniversary-celebration?filter_reset=1"  target="_top" >St. Thomas Aquinas Catholic Secondary School 25th Anniversary Celebration</a></span></td></tr>
2219<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Sat Oct 03 @ 8:00AM</span> - <span class="mod_events_latest_date">02:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25076/-/st-thomas-aquinas-catholic-secondary-school-25th-anniversary-celebration?filter_reset=1"  target="_top" >St. Thomas Aquinas Catholic Secondary School 25th Anniversary Celebration</a></span></td></tr>
2220<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Sat Oct 03 @ 8:00AM</span> - <span class="mod_events_latest_date">02:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25078/-/cambridge-st-united-fall-rummage-sale?filter_reset=1"  target="_top" >Cambridge St United Fall Rummage Sale</a></span></td></tr>
2221<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Sat Oct 03 @ 9:00AM</span> - <span class="mod_events_latest_date">01:00PM</span><br/><span class="mod_events_latest_content">
2221<a href="/index.php/community/kx105-events/eventdetail/25071/-/wellness-fair?filter_reset=1"  target="_top" >Wellness Fair</a></span></td></tr>
2222<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Sat Oct 03 @ 7:00PM</span> - <span class="mod_events_latest_date"></span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25057/-/al-lerman-concert-for-habitat-for-humanity?filter_reset=1"  target="_top" >Al Lerman Concert for Habitat for Humanity</a></span></td></tr>
2223<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Sat Oct 03 @ 7:00PM</span> - <span class="mod_events_latest_date">11:59PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25074/-/omemee-legion-dance-with-gunslingers?filter_reset=1"  target="_top" >Omemee Legion Dance - with Gunslingers!</a></span></td></tr>
2224<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Sun Oct 04 @ 8:00AM</span> - <span class="mod_events_latest_date">02:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25076/-/st-thomas-aquinas-catholic-secondary-school-25th-anniversary-celebration?filter_reset=1"  target="_top" >St. Thomas Aquinas Catholic Secondary School 25th Anniversary Celebration</a></span></td></tr>
2225<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Sun Oct 04 @10:00AM</span> - <span class="mod_events_latest_date">03:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25079/-/make-it-handmade-peterborough-crafters-event?filter_reset=1"  target="_top" >Make It Handmade Peterborough Crafters Event</a></span></td></tr>
2226<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Mon Oct 05 @ 8:00AM</span> - <span class="mod_events_latest_date">02:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25076/-/st-thomas-aquinas-catholic-secondary-school-25th-anniversary-celebration?filter_reset=1"  target="_top" >St. Thomas Aquinas Catholic Secondary School 25th Anniversary Celebration</a></span></td></tr>
2227<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Mon Oct 05 @ 6:00PM</span> - <span class="mod_events_latest_date">09:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/24941/-/square-dancing-otonabee-squares?filter_reset=1"  target="_top" >Square Dancing - Otonabee Squares</a></span></td></tr>
2228<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Tue Oct 06 @ 8:00AM</span> - <span class="mod_events_latest_date">02:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25076/-/st-thomas-aquinas-catholic-secondary-school-25th-anniversary-celebration?filter_reset=1"  target="_top" >St. Thomas Aquinas Catholic Secondary School 25th Anniversary Celebration</a></span></td></tr>
2229<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Tue Oct 06 @ 8:00AM</span> - <span class="mod_events_latest_date">05:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/14710/-/ptbo-lions-club-cans-bottle-drive?filter_reset=1"  target="_top" >PTBO Lions Club Cans &amp; Bottle Drive</a></span></td></tr>
2230<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Wed Oct 07 @ 8:00AM</span> - <span class="mod_events_latest_date">02:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25076/-/st-thomas-aquinas-catholic-secondary-school-25th-anniversary-celebration?filter_reset=1"  target="_top" >St. Thomas Aquinas Catholic Secondary School 25th Anniversary Celebration</a></span></td></tr>
2231<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Wed Oct 07 @ 8:00AM</span> - <span class="mod_events_latest_date"></span><br/><span class="mod_events_latest_content">
2231<a href="/index.php/community/kx105-events/eventdetail/14812/-/globus-theatre-presents-a-womans-love-list?filter_reset=1"  target="_top" >Globus Theatre presents A Woman’s Love List</a></span></td></tr>
2232<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Wed Oct 07 @ 2:00PM</span> - <span class="mod_events_latest_date">02:30PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/24987/-/catch-the-ace-lakefield-village-lions?filter_reset=1"  target="_top" >Catch the Ace - Lakefield Village Lions</a></span></td></tr>
2233<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Thu Oct 08 @ 8:00AM</span> - <span class="mod_events_latest_date">02:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/25076/-/st-thomas-aquinas-catholic-secondary-school-25th-anniversary-celebration?filter_reset=1"  target="_top" >St. Thomas Aquinas Catholic Secondary School 25th Anniversary Celebration</a></span></td></tr>
2234<tr><td class="mod_events_latest" style="border-color:#ccc"><span class="mod_events_latest_date">Thu Oct 08 @10:00AM</span> - <span class="mod_events_latest_date">03:00PM</span><br/><span class="mod_events_latest_content"><a href="/index.php/community/kx105-events/eventdetail/14882/-/lindsay-thursday-farmers-market?filter_reset=1"  target="_top" >Lindsay Thursday Farmers&#039; Market</a></span></td></tr>
2235</table>
2236</div></div><div class="margin_collapsetop"></div></div>
2237</div>
2238</div>
2239</div>
2240<div class=" visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;width:0;"></div>
2241<div class="cell8 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
2242&nbsp;
2243</div>
2244<div class="d-xxl-block d-xl-block visible-xs-block d-block" style="clear:both;width:0;"></div>
2245<div class=" d-xxl-block d-xl-block visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;"></div>
2246</div>
2247</div>
2248<div style="clear: both;"></div>
2249<div class="margin_collapsetop"></div>
2250</div>
2251</div>
2252<div style="clear:both;"></div>
2253</div><!--content_and_sidebar_container-->
2254</div> <!--ttr_page-->
2255<div class="footer-widget-area">
2256<div class="footer-widget-area_inner">
2257<div class="ttr_footer-widget-area_inner_above_widget_container">
2258<div class="ttr_footer-widget-area_inner_above1 container row g-0">
2259<div class="cell5 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
2260&nbsp;
2261</div>
2262<div class=" visible-xs-block d-block" style="clear:both;width:0;"></div>
2263<div class="cell6 col-xxl-10 col-xl-10 col-lg-12 col-md-12 col-sm-12 col-xs-12 col-12">
2264<div>
2265<div class="footerabovecolumn6">
2266<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
2267<div id="mod-custom285" class="mod-custom custom">
2268    <a href="https://forecast7.com/en/44d31n78d32/peterborough/" class="weatherwidget-io" data-label_1="PETERBOROUGH" data-label_2="WEATHER" data-theme="weather_one">PETERBOROUGH WEATHER</a>
2269<script>
2270!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='https://weatherwidget.io/js/widget.min.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','weatherwidget-io-js');
2271</script>
2271</div>
2272</div></div><div class="margin_collapsetop"></div></div>
2273</div>
2274</div>
2275</div>
2276<div class=" visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;width:0;"></div>
2277<div class="cell7 col-xxl-1 col-xl-1 col-lg-6 col-md-6 col-sm-6  col-xs-12 col-12" style="background-color:transparent;">
2278&nbsp;
2279</div>
2280<div class="d-xxl-block d-xl-block visible-xs-block d-block" style="clear:both;width:0;"></div>
2281<div class=" d-xxl-block d-xl-block visible-lg-block d-lg-block visible-md-block d-md-block visible-sm-block d-sm-block visible-xs-block d-block" style="clear:both;"></div>
2282</div>
2283</div>
2284<div style="clear: both;"></div>
2285</div>
2286</div>
2287<div class="margin_collapsetop"></div>
2288<footer id="ttr_footer">
2289<div class="margin_collapsetop"></div>
2290 <div id="ttr_footer_inner">
2291<div id="ttr_footer_top_for_widgets">
2292<div class="ttr_footer_top_for_widgets_inner">
2293<div class="footer-widget-area_fixed row g-0">
2294<div style="margin:0 auto;"></div>
2295<div id="first" class="widget-area col-xxl-4 col-xl-4 col-lg-4 col-md-4 col-sm-4 col-xs-12 col-12">
2296<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
2297<div id="mod-custom139" class="mod-custom custom">
2298    <p>&nbsp;</p>
2299<p>&nbsp;</p>
2300<p style="padding-left: 30px;"><a href="/index.php/privacy-policy" target="_blank">Privacy Policy<br /><br /></a></p>
2301<p style="padding-left: 30px;"><a href="/index.php/rules-and-regulations" target="_blank">Rules &amp; Regulations<br /><br /></a></p>
2302<p style="padding-left: 30px;"><a href="/index.php/on-air" target="_blank" rel="noopener">On-Air with KX 105<br /><br /></a></p>
2303<p style="padding-left: 30px;"><a href="/index.php/kx105-concerts" target="_blank">Concerts<br /><br /></a></p>
2304<p style="padding-left: 30px;"><a href="/index.php/subscribe" target="_blank">Subscribe<br /><br /></a></p>
2305<p style="padding-left: 30px;"><a href="https://www.onthelocks.ca/" target="_blank" rel="noopener">Events Login<br /><br /></a></p>
2306<p style="padding-left: 30px;"><a href="/index.php/contact-kx105" target="_blank">Contact Us<br /><br /></a></p>
2307<p style="padding-left: 30px;"><a href="https://www.powerofradio.ca/index.php/issue-reporting" target="_blank" rel="noopener">Report A Streaming Issue<br /><br /></a></p>
2308<p>&nbsp;</p>
2309<p>&nbsp;</p></div>
2310</div></div><div class="margin_collapsetop"></div></div>
2311</div>
2312<div class="visible-xs d-block" style="clear:both;width:0px;"></div>
2313<div id="second" class="widget-area col-xxl-4 col-xl-4 col-lg-4 col-md-4 col-sm-4 col-xs-12 col-12">
2314&nbsp;
2315</div>
2316<div class="visible-xs d-block" style="clear:both;width:0px;"></div>
2317<div id="third" class="widget-area col-xxl-4 col-xl-4 col-lg-4 col-md-4 col-sm-4 col-xs-12 col-12">
2318<div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
2319<div id="mod-custom138" class="mod-custom custom">
2320    <p style="text-align: right;"><span style="color: #ffffff; font-size: 10pt;"><strong>Copyright 2026 | KX105.fm&nbsp; <br /></strong></span></p>
2321<p style="text-align: right;"><a href="https://www.kx105.fm" target="_blank" rel="noopener">www.kx105.fm</a>&nbsp; &nbsp;&nbsp;</p>
2322<p>&nbsp;</p>
2323<p style="text-align: right;"><a href="https://www.powerofradio.ca" target="_blank" rel="noopener">Advertise With Us</a>&nbsp; &nbsp;&nbsp;</p>
2324<p style="text-align: right;">&nbsp;</p>
2325<p style="text-align: right;">&nbsp; <a href="https://www.powerofradio.ca/index.php/accessibility" target="_blank" rel="noopener">&nbsp;Accessibility</a>&nbsp; &nbsp;&nbsp;</p>
2326<p>&nbsp;</p>
2327<p style="text-align: right;"><img src="/images/logo/logo_kx105_600.png" alt="logo the rock cropped white" width="282" height="126" style="margin: 10px;" /></p>
2328<p>&nbsp;</p>
2329<p style="text-align: right;"><a href="https://www.facebook.com/profile.php?id=61579895882583" target="_blank" rel="noopener"><img src="/images/icons/icon_facebook.png" alt="icon facebook" width="45" height="45" class="social-link" style="margin: 10px;" /></a>&nbsp; &nbsp;&nbsp; <a href="https://www.instagram.com/kx105fm/" target="_blank" rel="noopener"><img src="/images/icons/icon_instagram.png" alt="icon instagram" width="45" height="45" class="social-link" style="margin: 10px;" /></a>&nbsp; &nbsp;&nbsp; <a href="https://x.com/KX105FM" target="_blank" rel="noopener"><img src="/images/icons/icon_twitter.png" alt="icon twitter" width="45" height="45" class="social-link" style="margin: 10px;" /></a>&nbsp;&nbsp;</p></div>
2330</div></div><div class="margin_collapsetop"></div></div><div class="ttr_block_parent"><div class="margin_collapsetop"></div><div class="ttr_block"><div class="margin_collapsetop"></div><div class="ttr_block_without_header"></div><div class="ttr_block_content">
2331<div id="mod-custom140" class="mod-custom custom">
2332    <!--google ads code-->
2333<script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" async="async"></script>
vendor: 2 bytes, line 2333
2333
2334<script id="mcjs">!function(c,h,i,m,p){m=c.createElement(h),p=c.getElementsByTagName(h)[0],m.async=1,m.src=i,p.parentNode.insertBefore(m,p)}(document,"script","https://chimpstatic.com/mcjs-connected/js/users/bf187c0367808baa11a7eeb02/ec557251d70bedc0e736fc25d.js");</script>
2334
2335<!-- Google tag (gtag.js) -->
vendor: 59 bytes, lines 2335-2336
2335
2336<script src="https://www.googletagmanager.com/gtag/js?id=
2336G-MW3YQYKX69
vendor: 25 bytes, line 2336
2336" async="async"></script>
2336</div>
2337</div></div><div class="margin_collapsetop"></div></div>
2338</div>
2339<div class="visible-lg visible-md visible-sm visible-xs d-xxl-block d-xl-block d-lg-block d-md-block d-sm-block d-block" style="clear:both;width:0px;"></div>
2340</div>
2341</div>
2342</div>
2343<div class="ttr_footer_bottom_footer">
2344<div class="ttr_footer_bottom_footer_inner">
2345<div class="ttr_footer_element_alignment container g-0">
2346<div class="ttr_images_container">
2347</div>
2348</div>
2349<div class="ttr_images_container">
2350</div>
2351<div id="ttr_footer_designed_by_links">
2352<a  href="https://www.zap-media.ca" target="_blank" >
2353Designed by ZAP Media
2354</a>
2355</div>
2356</div>
2357</div>
2358</div>
2359</footer>
2360<div class="margin_collapsetop"></div>
2361<div class="footer-widget-area">
2362<div class="footer-widget-area_inner">
2363</div>
2364</div>
2365
2366<script>
2367(function(c,d){"JUri"in d||(d.JUri="https://kx105.fm/");c.addEventListener("click",function(a){var b=a.target?a.target.closest('[class*="ba-click-lightbox-form-"], [href*="ba-click-lightbox-form-"]'):null;if(b){a.preventDefault();if("pending"==b.clicked)return!1;b.clicked="pending";"formsAppClk"in window?formsAppClk.click(b):(a=document.createElement("script"),a.src=JUri+"components/com_baforms/assets/js/click-trigger.js",a.onload=function(){formsAppClk.click(b)},
2368c.head.append(a))}})})(document,window);
2369</script>
2369
2370</body>
2371</html>

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.