PageSourceSearch

https://gatesvilletx.com/news/index.php

html gatesvilletx.com collected 2026-10-02 17:30:20 UTC 131,516 bytes, 3,101 lines download raw bytes

1
2
3
4
5
6<!DOCTYPE html>
7<html lang="en">
8<head>
9	<base href="https://gatesvilletx.com/" />
10	<meta charset="utf-8">
11	<meta http-equiv="X-UA-Compatible" content="IE=edge">
12	<meta name="viewport" content="width=device-width, initial-scale=1">
13
14
15
16
17
18<!-- Metadata Area Starts -->	<title>City Of Gatesville, TX</title>
19	<meta property="og:title" content="City Of Gatesville, TX" />
20	<meta property="og:image" content="https://gatesvilletx.com///gatesville/_assets_/images/logo.png" />
21	<meta name="robots" content="index, follow">
22
23
24
25<link href="/revize/plugins/setup/css/revize.css" rel="stylesheet" type="text/css" />
26
27
28
29<script type="text/javascript">
30
31
32
33</script>
33
34
35
36
37
38
39
40
41<!-- #jquery -->
42    
42<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/jquery/jquery.min.js"></script>
42
43
44<!-- #jquery lazy -->
45    
45<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/jquery.lazy-master/jquery.lazy.min.js"></script>
45
46    
47<!-- #masonry scripts -->
48    
48<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/masonry.pkgd.min.js" crossorigin="anonymous"></script>
48
49    
49<script src="https://code.jquery.com/ui/1.14.0/jquery-ui.js"></script>
49
50    
51<!-- #lightGallery scripts -->
52    
52<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/lightgallery.min.js"></script>
52
53    
54<!-- lightgallery plugins -->
55    
55<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/plugins/thumbnail/lg-thumbnail.umd.js"></script>
55
56    
56<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/plugins/zoom/lg-zoom.umd.js"></script>
56
57    
57<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/plugins/video/lg-video.min.js"></script>
57
58
59<!-- #lightGallery css -->
60    <link href="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/css/lightgallery-bundle.min.css" rel="stylesheet" />
61    
62<!-- #bootstrap js + popper js -->
63    
63<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/popperjs/popper.min.js"></script>
63
64    
64<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/bootstrap/js/bootstrap.min.js"></script>
64
65
66<!-- #bootstrap css and fonts -->
67    <link href="/revize/plugins/zbuilder/v1/website/_assets_/plugins/bootstrap/css/bootstrap.css" rel="stylesheet" />
68    <link href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css" rel="stylesheet" />
69
70<!-- #dotjs -->
71    
71<script src="/revize/plugins/revize_calendar/doT.min.js"></script>
71
72        
73<!-- #tiny sider -->
74    <link href="/revize/plugins/zbuilder/v1/website/_assets_/plugins/tiny-slider/dist/tiny-slider.css" rel="stylesheet" />
75    
75<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/tiny-slider/dist/min/tiny-slider.js"></script>
75
76    
77<!-- #font awesome css -->
78    <link href="/revize/plugins/zbuilder/v1/website/_assets_/fonts/font-awesome/css/all.min.css" rel="stylesheet" >
79	
80<!-- #font Google Material Icons -->    
81    <link href="https://fonts.googleapis.com/css2?family=Material+Icons" rel="stylesheet" />
82    <link href="https://fonts.googleapis.com/css2?family=Material+Icons+Outlined" rel="stylesheet" />
83
84<!-- #aos css + js-->
85    
85<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/aos/src/js/aos.min.js"></script>
85
86    <link href="/revize/plugins/zbuilder/v1/website/_assets_/plugins/aos/src/css/aos.min.css" rel="stylesheet" >
87<!-- #aos -->
88
89<!-- #fitty -->
90    
90<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/fitty-gh-pages/dist/fitty.min.js"></script>
90
91    
91<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/revizeWeather/js/revizeWeather.min.js"></script>
91
92
93<!-- #layout css -->
94    <link href="/revize/plugins/zbuilder/v1/website/_assets_/css/layout.css?v=1" rel="stylesheet">
95    <link href="_assets_/css/css_variables_T40_R1.css?t=1773074491000" rel="stylesheet">
96
97<!-- #favicons -->
98    <link rel="shortcut icon" href="website_assets/logo.png">
99    <link rel="apple-touch-icon" href="website_assets/logo.png">
100    <meta name="theme-color" content="#460cb2" />
101
102    <!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 102-103
102
103<script async src="https://www.googletagmanager.com/gtag/js?id=
103G-46VF76H4S9
vendor: 12 bytes, line 103
103"></script>
104<script>
105  
vendor: 134 bytes, lines 105-109
105window.dataLayer = window.dataLayer || [];
106  function gtag(){dataLayer.push(arguments);}
107  gtag('js', new Date());
108
109  gtag('config', '
109G-46VF76H4S9
vendor: 4 bytes, line 109
109');
110</script>
110
111
112
113
114
115
116<style>
117@media (max-width: 767px) {
118    .rz-news-card-list.row-cols-xs > * {flex: 0 0 auto; width:100.0%}
119}
120@media (min-width: 768px) and (max-width: 991px) {
121    .rz-news-card-list.row-cols-md > * {flex: 0 0 auto; width:50.0%}
122}
123@media (min-width: 992px) {
124    .rz-news-card-list.row-cols-lg > * {flex: 0 0 auto; width:33.333332%}
125}
126</style>
127<link href="/revize/plugins/revize_calendar/core/main.css" rel="stylesheet" />
128<link href="/revize/plugins/revize_calendar/daygrid/main.min.css" rel="stylesheet" />
129<link href="/revize/plugins/revize_calendar/timegrid/main.min.css" rel="stylesheet" />
130<link href="/revize/plugins/revize_calendar/list/main.min.css" rel="stylesheet" />
131<link href="_assets_/plugins/revizeCalendar/css/mini.css" rel="stylesheet" />
132<link href="/revize/plugins/revize_calendar/core/nav-panels.css" rel="stylesheet" />
132<script>
133	var defaultCalendarColor = "#3788d8";
134	var ImportCals = ["2","4",];
135	var calendarProps = {'2' : { 'color' : '#c737d8' , 'name' : 'Master' },
136'4' : { 'color' : '#3787d8' , 'name' : 'Administration' },
137'5' : { 'color' : '#18d951' , 'name' : 'Library' },
138'6' : { 'color' : '' , 'name' : 'calendar-list-options' },
139'7' : { 'color' : '#d83760' , 'name' : 'Community Events' },
140};
141	var RZCalendarTimezone = "US/Central";
142</script>
142
143
144</head>
145<body id="landing" class="rz-page-links-43" data-zipcode="76528" data-header-left="false">
146
147
148
149
150<script type="text/javascript">
151if (typeof(RZ) == 'undefined') RZ = {};
152if (!RZ.link) RZ.link = new Object();
153RZ.pagetype = 'template'
154RZ.baseurlprefix = '../'
155RZ.baseurlpath = 'news/'
156RZ.protocolRelativeRevizeBaseUrl='//builder1.revize.com'
157
158RZ.pagetemplatename = 'landing'
159RZ.pagetemplateid = '35'
160RZ.pagemodule = 'links'
161RZ.pagemoduleid = '1'
162RZ.pagerecordid = '43';
163
164RZ.pageid = 'links-43';
165RZ.pageparentid = '0';
166RZ.pagesectionid = '43';
167RZ.pagesectionname = 'news';
168RZ.pagesectionlevel = '1';
169RZ.pagesectionfolder = 'news/';
170RZ.pagesectionfilter = 'sectionid=43';
171RZ.pagelinkfilter = 'linklevel=1 and linksectionid=43';
172RZ.pagelinklevel = '1';
173RZ.pagelinkid = '43';
174RZ.pageidfield = '';
175
176RZ.isnewrecord = false;
177RZ.editmodule = '';
178RZ.editrecordid = '43';
179RZ.editrecordversion = '';
180RZ.editversion = '';
181RZ.editaction = '';
182
183RZ.page_roles = ''
184RZ.page_users = 'b35816c6582a8b69667c7d5280a1ad57d3b5ef1d012e9788c6581e602aaea9fd'
185RZ.page_key = 'landing[43]'
186RZ.parent_key = 'index[]'
187RZ.inherit_key = 'index[]'
188RZ.workflowname = ''
189RZ.permissions_options = 'warningsOFF'
190RZ.permissions_module = 'webspace_page_permissions'
191RZ.webspace = 'gatesville'
192RZ.webspacedesc = "";
193
194RZ.featurespattern = '(EZ)';
195null
196
197RZ.webspacelinksurl = ''
198RZ.webspacelinksurl = './webspace/links.html'
199RZ.workflowlist = ''
200RZ.revizeserverurl = 'https://builder1.revize.com/revize/gatesville';
201
202if (!RZ.nextseq) RZ.nextseq = {linknames:{},modules:{}};
203
204RZ.webspace_config = new Object();
205RZ.webspace_config.admin_email = "[email protected]";
206RZ.webspace_config.calendar_options = "max_events=6";
207RZ.webspace_config.form_captcha = "yes";
208RZ.webspace_config.form_server = "revizeserver";
209RZ.webspace_config.form_technology = "jsp";
210RZ.webspace_config.formwizard_ftp_password = "";
211RZ.webspace_config.formwizard_ftp_port = "";
212RZ.webspace_config.formwizard_ftp_server = "";
213RZ.webspace_config.formwizard_ftp_user = "";
214RZ.webspace_config.formwizard_setup = "yes";
215RZ.webspace_config.formwizard_smtp_password = "xxx";
216RZ.webspace_config.formwizard_smtp_server = "xxx";
217RZ.webspace_config.formwizard_smtp_user = "xxx";
218RZ.webspace_config.google_analytics = "";
219RZ.webspace_config.home_pageid = "0";
220RZ.webspace_config.home_sectionid = "0";
221RZ.webspace_config.home_template = "home,index,sitemap";
222RZ.webspace_config.icon_email = "<img src=\"/revize/images/email_icon_yellow.gif\" width=\"16\" border=\"0\" height=\"17\" title=\"Request email notification when page changes\" alt=\"Request email notification when page changes\" style=\"\" />";
223RZ.webspace_config.image_maxheight = "3000";
224RZ.webspace_config.image_maxwidth = "3000";
225RZ.webspace_config.image_setup = "yes";
226RZ.webspace_config.livesite_url = "";
227RZ.webspace_config.menu_links_module = "links";
228RZ.webspace_config.menu_newsection = "";
229RZ.webspace_config.menu_nexturl = "webspace_menu-editform.jsp";
230RZ.webspace_config.menu_sections_module = "sections";
231RZ.webspace_config.menu_system = "custom";
232RZ.webspace_config.menu_version = "1.00";
233RZ.webspace_config.new_menu_manager_enabled = "yes";
234RZ.webspace_config.notify_options = "hide_text=yes";
235RZ.webspace_config.notify_return_url = "enotify/index.php";
236RZ.webspace_config.rte_setup = "yes";
237RZ.webspace_config.to_email = "[email protected]";
238RZ.webspace_config.use_folders = "1";
239
240RZ.isauthenticationactive = true
241RZ.warning = ""
242RZ.adminwinmsg = null
243
244RZ.channels = 'revize';
245RZ.jsversion = 1.2</script>
vendor: 2 bytes, line 245
245
246<script type="text/javascript" src="/revize/util/snippet_helper.js"></script>
246
247
248
249<script>
250document.addEventListener('DOMContentLoaded', function() {
251	RZ.module  = 'emailnotify_messages';
252	RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/emailnotify.jsp";
253	RZ.img     = '<i class="bi bi-bell fs-4"></i>';
254	RZ.caption = '';
255	RZ.set     = 'pageid=links-43';
256	RZ.active  = 'html';
257	if (typeof RZaction != 'undefined') {
258			var tag = RZaction('editform');
259			RZBarAddButton(null, {content: tag, tooltip: "Send ENotify", class: "rz-bar-btn-alert"});
260	}
261});
262	</script>
262
263<div class="skippy visually-hidden-focusable left-top mt-3 position-fixed align-items-center" style="z-index:1026">
264	<div class="container-xl">
265		<a class="d-inline-flex btn btn-light bg-white px-4 p-3 gap-4 align-items-center"
266			href="news/index.php#rz-content-wrap">
267			<span class="d-inline-flex align-items-center gap-2">
268				<i class="bi bi-window-sidebar fs-4" aria-hidden="true"></i>
269				<span>Skip to main content</span>
270				<span class="ms-5" aria-hidden="true">
271					<svg width="26" height="27" viewBox="0 0 26 27" xmlns="http://www.w3.org/2000/svg" role="presentation" aria-hidden="true">
272						<g fill="none" fill-rule="evenodd">
273							<path d="M4.498 24.3v-.872H1.5v-1.37h2.716v-.872H1.5v-1.27h3v-.872H.542V24.3h3.955zm1.909 0v-3.695L9.183 24.3h.95v-5.256h-.95v3.695l-2.776-3.695H5.45V24.3h.957zm7.21 0v-4.383h1.682v-.873h-4.314v.873h1.683V24.3h.948zm6.421 0v-.872H17.04v-1.37h2.716v-.872H17.04v-1.27h3v-.872h-3.956V24.3h3.955zm1.84 0v-1.767h1.017l1.24 1.767h1.086l-1.316-1.867c.757-.237 1.27-.849 1.27-1.644 0-1.025-.842-1.745-1.966-1.745H20.92V24.3h.957zm1.224-2.647h-1.224v-1.729h1.224c.65 0 1.101.33 1.101.865 0 .535-.451.864-1.101.864z"
274								fill="currentColor" fill-rule="nonzero" />
275							<path d="M18.9 1v6.3a2.7 2.7 0 0 1-2.7 2.7H5.4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
276							<path d="M8.1 12.7L5.4 10l2.7-2.7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
277						</g>
278					</svg>
279				</span>
280			</span>
281		</a>
282	</div>
283</div>
284<script>function RZBarAddButton() { return false; }</script>
284
285
286
287
288<div class="site-header-wrap" data-menu-onhover="false" data-mega-at="8" data-nav-icons="true" data-logo="image" data-logo-tagline="false" data-logo-move="false" data-sticky="true" data-menu-buttons-left="false">
289	<div class="site-header">
290
291
292
293
294<div class="rz-section-block-wrap position-relative" style="background-color:#ffffff;">
295  
296  
297  
298  <div class="rz-section-block container px-0" style="max-width:100%;">
299
300
301
302
303
304<div class="rz-row-block d-grid opt_row_columns_1 header-top" style="--rz-column-padding-t:7px;--rz-column-padding-b:7px;">
305<div class="rz-column-block d-lg-flex flex-lg-wrap justify-content-lg-end align-items-lg-center" style="background-color:#080C5D;padding:5px 66px 5px 0px;">
306
307
308
309
310<div class="rz-element-wrapper rz-button-wrapper has-edit-buttons move-to-offcanvas social-item"
311 
312 >
313
314		<div class="center-top">
315				<div class="rz-btns-container">
316						
316<script>
317								RZ.module = 'generic';
318								RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/buttons-editform.jsp";
319								RZ.img = '<span class="rzBtn rzBtn-xs">Edit Buttons</span>';
320								RZ.caption = '';
321								RZ.set = 'pageid=1d50bfad-c952-47fd-b7a4-0dda2039bdd3';
322								RZ.options = '';
323								if (typeof RZaction != 'undefined') RZaction('editform');
324						</script>
324
325				</div>
326		</div>
327		<div class="rz-element rz-button-wrap d-flex flex-wrap" 
328				style="gap:16px;">
329
330<div class="d-flex align-items-stretch"  data-aos-duration="600">
331		<a href="https://www.facebook.com/people/City-of-Gatesville-Spur-Capital-of-Texas/61561093814530/" target="_blank"
332				class="rz-btn-element d-flex align-items-center justify-content-center btn btn-custom  no-rz-text-reveal-btn shadow-none"
333				style="background:linear-gradient(90deg, #0866ff 0%, #0866ff 100%);--bs-btn-border-radius:40px;--bs-btn-border-color:#0055ff;--bs-btn-border-hover-color:#0055ff;">
334
335				
336				
337						
338								<i class="fab fa-facebook rz-btn-icon flex-shrink-0" style="width:12px;height:12px;line-height:12px;color:#ffffff;" aria-hidden="true"></i>
339						
340				
341
342				
343				
344
345
346				
347				
348		</a>
349</div>
350
351		</div>
352</div>
353
354
355
356
357	<div class="rz-element-wrapper header-weather-wrap d-lg-flex align-items-center gap-2 move-to-offcanvas">
358		<div class="vr vr-s"></div>
359			<div class="px-3 d-flex flex-column" id="weather"></div>
360		<div class="vr vr-e"></div>
361	</div><!-- /.header-element -->
362
363	<div class="rz-element-wrapper header-translate-wrap relative d-none d-lg-flex align-items-stretch gap-0">
364		<div class="vr vr-s"></div>
365		<button class="btn text-start translate-button btn btn-link relative px-3 d-flex align-items-center" type="button" aria-expanded="false" data-bs-toggle="modal" data-bs-target="#translateModal">
366			<div class="fi fi-us selected-flag"></div>
367			<i class="bi bi-translate me-2"></i>
368			<span class="visually-hidden">Translate</span>
369			<span class="translate-text">Translate</span>
370		</button>
371			<button class="btn text-start translate-reset px-2" translate="no">
372			<i class="fa-solid fa-power-off" aria-hidden="true"></i>
373			<span class="visually-hidden">Reset Translation</span>
374		</button>
375		<div class="vr vr-e"></div>
376	</div>
377</div>
378
379
380
381</div><!-- /.rz-row-block -->
382
383
384
385
386<div class="rz-row-block d-grid opt_row_columns_6 align-items-center">
387<div class="rz-column-block d-lg-flex flex-lg-wrap justify-content-lg-start align-items-lg-center">
388    <div class="rz-element-wrapper logo-section d-flex d-lg-block">
389        
390        <div class="responsive-menu align-items-center d-flex d-lg-none gap-1">
391            <button class="offcanvasHeaderItems-toggler btn btn-link text-dark p-2 lh-1 text-dark" data-bs-toggle="offcanvas" data-bs-target="#offcanvasHeaderItems" aria-controls="offcanvasHeaderItems" aria-label="Toggle navigation">
392                <i class="bi bi-three-dots" aria-hidden="True"></i>
393            </button>
394            <button id="mobile-share-btn" class="flex-shrink-0 btn btn-link text-dark p-2 lh-1 text-dark" data-bs-toggle="modal" data-bs-target="#shareModal" aria-label="Open share modal">
395                <i class="bi bi-share-fill" aria-hidden="True"></i>
396            </button>
397        </div><!-- /.responsive-menu -->
398        
399                
400            <a href="./" class="flex-fill d-flex text-center flex-column text-decoration-none main-logo main-logo-text justify-content-center">
401                <span class="lh-1">City Of Gatesville, TX</span>
402                                <p class="logo-tagline lh-1 m-0">Spur Capital Of Taxas</p>
403                            </a>
404                    
405                    <a href="./" class="d-flex align-items-center text-decoration-none main-logo main-logo-image">
406                <img loading="lazy" src="website_assets/logo.png" alt="City Of Gatesville, TX" class="header-logo-img">
407                            </a>
408            
409        <div class="offcanvas-toggles align-items-center d-flex d-lg-none gap-1">
410            <button class="search-toggle btn btn-link text-dark p-2 lh-1 text-dark" data-bs-toggle="modal" data-bs-target="#searchModal" aria-label="Toggle search">
411                <i class="fa-solid fa-magnifying-glass" aria-hidden="True"></i>
412            </button>
413            <button class="navbar-toggler btn btn-link text-dark p-2 lh-1 text-dark" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNav" aria-controls="offcanvasNav" aria-label="Toggle navigation">
414                <i class="fa-solid fa-bars" aria-hidden="True"></i>
415            </button>
416        </div><!-- /.offcanvas-toggles -->
417    
418    </div><!-- /.rz-element-wrapper -->
419</div><div class="rz-column-block d-lg-flex flex-lg-wrap justify-content-lg-between align-items-lg-center" style="padding:0px 66px 0px 0px;">
420<div class="offcanvas-lg offcanvas-end" tabindex="-1" id="offcanvasNav" aria-labelledby="offcanvasNavLabel">
421    <div class="offcanvas-header border-bottom">
422        <h5 class="offcanvas-title" id="offcanvasNavLabel">Main Menu</h5>
423        <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close" data-bs-target="#offcanvasNav"></button>
424    </div>
425
426    <div class="offcanvas-body pt-0">
427        
428        <div class="rz-element-wrapper rz-topnav-block-wrapper has-edit-buttons">
429            <div class="rz-element rz-topnav-wrap">
430                <div class="rz-topnav-element">
431              	    
432 
433<ul id="nav" class="v2_05-23-2012">
434	<li class="menuLI level0 menuDisplay li-8"><a class="menuA level0 menuDisplay" href="index.php" target="_self">Home</a></li>
435	<li class="menuLI level0 menuDisplay li-67 children"><a class="menuA level0 menuDisplay" href="government/index.php" target="_self">Government</a>
436		<ul class="menuUL level1 menuHidden ul-68">
437			<li class="menuLI level1 menuHidden li-68"><a class="menuA level1 menuHidden" href="government/agendas_minutes.php" target="_self">Agendas & Minutes</a></li>
438			<li class="menuLI level1 menuHidden li-69 children"><a class="menuA level1 menuHidden" href="government/city_council/index.php" target="_self">City Council</a>
439				<ul class="menuUL level2 menuHidden ul-70">
440					<li class="menuLI level2 menuHidden li-70"><a class="menuA level2 menuHidden" href="government/city_council/mayor_and_council/index.php" target="_self">Mayor and Council</a></li>
441					<li class="menuLI level2 menuHidden li-72"><a class="menuA level2 menuHidden" href="government/city_administration/public_notices.php" target="_self">Public Notices</a></li>
442					<li class="menuLI level2 menuHidden li-71"><a class="menuA level2 menuHidden" href="government/city_council/agendas_minutes.php" target="_self">Council Agendas & Minutes</a></li>
443				</ul>
444			</li>
445			<li class="menuLI level1 menuHidden li-73 children"><a class="menuA level1 menuHidden" href="government/boards_and_commissions/index.php" target="_self">
445Boards and Commissions</a>
446				<ul class="menuUL level2 menuHidden ul-76">
447					<li class="menuLI level2 menuHidden li-76"><a class="menuA level2 menuHidden" href="government/boards_and_commissions/planning_zoning_commission/index.php" target="_self">Planning & Zoning Commission</a></li>
448					<li class="menuLI level2 menuHidden li-78"><a class="menuA level2 menuHidden" href="government/boards_and_commissions/building_standards_commission/index.php" target="_self">Building Standards Commission</a></li>
449					<li class="menuLI level2 menuHidden li-797"><a class="menuA level2 menuHidden" href="government/boards_and_commissions/animal_control_advisory_committee/index.php" target="_self">Animal Control Advisory Committee</a></li>
450					<li class="menuLI level2 menuHidden li-983"><a class="menuA level2 menuHidden" href="departments/airport_advisory_committee.php" target="_self">Airport Advisory Board</a></li>
451				</ul>
452			</li>
453			<li class="menuLI level1 menuHidden li-80 children"><a class="menuA level1 menuHidden" href="government/city_administration/index.php" target="_self">Administration</a>
454				<ul class="menuUL level2 menuHidden ul-82">
455					<li class="menuLI level2 menuHidden li-82"><a class="menuA level2 menuHidden" href="government/city_administration/city_manager/index.php" target="_self">City Manager</a></li>
456					<li class="menuLI level2 menuHidden li-83"><a class="menuA level2 menuHidden" href="government/city_administration/city_secretary/index.php" target="_self">City Secretary</a></li>
457					<li class="menuLI level2 menuHidden li-582"><a class="menuA level2 menuHidden" href="government/city_administration/public_notices.php" target="_self">Public Notices</a></li>
458				</ul>
459			</li>
460			<li class="menuLI level1 menuHidden li-85 children"><a class="menuA level1 menuHidden" href="government/elections/index.php" target="_self">Elections</a>
461				<ul class="menuUL level2 menuHidden ul-86">
462					<li class="menuLI level2 menuHidden li-86"><a class="menuA level2 menuHidden" href="government/elections/ballot_by_mail.php" target="_self">Ballot by Mail</a></li>
463					<li class="menuLI level2 menuHidden li-87"><a class="menuA level2 menuHidden" href="government/elections/texas_voter_id.php" target="_self">Texas Voter ID</a></li>
464					<li class="menuLI level2 menuHidden li-88"><a class="menuA level2 menuHidden" href="government/elections/campaign_finance_reports.php" target="_self">Campaign Finance Reports</a></li>
465					<li class="menuLI level2 menuHidden li-89"><a class="menuA level2 menuHidden" href="government/elections/provisional_ballots.php" target="_self">Provisional Ballots</a></li>
466					<li class="menuLI level2 menuHidden li-90"><a class="menuA level2 menuHidden" href="government/elections/ballot_applications_filed.php" target="_self">Ballot Applications Filed</a></li>
467					<li class="menuLI level2 menuHidden li-91"><a class="menuA level2 menuHidden" href="https://coryellcountytax.com/Elections/" target="_new">Coryell County Elections</a></li>
468					<li class="menuLI level2 menuHidden li-905"><a class="menuA level2 menuHidden" href="government/elections/voter_registration.php" target="_self">Voter Registration</a></li>
469				</ul>
470			</li>
471		</ul>
472	</li>
473	<li class="menuLI level0 menuDisplay li-92 children"><a class="menuA level0 menuDisplay" href="departments/index.php" target="_self">Departments</a>
474		<ul class="menuUL level1 menuHidden ul-160">
475			<li class="menuLI level1 menuHidden li-160"><a class="menuA level1 menuHidden" href="departments/airport.php" target="_self">Airport</a></li>
476			<li class="menuLI level1 menuHidden li-982 children"><a class="menuA level1 menuHidden" href="departments/airport_advisory_committee.php" target="_self">Airport Advisory Board</a>
477				<ul class="menuUL level2 menuHidden ul-1001">
478					<li class="menuLI level2 menuHidden li-1001"><a class="menuA level2 menuHidden" href="departments/agendas_and_minutes.php" target="_self">Agendas and Minutes</a></li>
479				</ul>
480			</li>
481			<li class="menuLI level1 menuHidden li-93 children"><a class="menuA level1 menuHidden" href="departments/finance/index.php" target="_self">Finance</a>
482				<ul class="menuUL level2 menuHidden ul-95">
483					<li class="menuLI level2 menuHidden li-95"><a class="menuA level2 menuHidden" href="departments/finance/purchasing/index.php" target="_self">Bid Opportunities</a></li>
484					<li class="menuLI level2 menuHidden li-96"><a class="menuA level2 menuHidden" href="departments/finance/budget/index.php" target="_self">Budgets & Financial Reports</a></li>
485				</ul>
486			</li>
487			<li class="menuLI level1 menuHidden li-98 children"><a class="menuA level1 menuHidden" href="departments/police/index.php" target="_self">Police</a>
488				<ul class="menuUL level2 menuHidden ul-99">
489					<li class="menuLI level2 menuHidden li-99"><a class="menuA level2 menuHidden" href="departments/police/animal_control/index.php" target="_self">Animal Control</a></li>
490					<li class="menuLI level2 menuHidden li-105"><a class="menuA level2 menuHidden" href="departments/police/public_information/index.php" target="_self">
490Public Resources</a></li>
491					<li class="menuLI level2 menuHidden li-109"><a class="menuA level2 menuHidden" href="departments/police/faqs.php" target="_self">FAQs</a></li>
492					<li class="menuLI level2 menuHidden li-707"><a class="menuA level2 menuHidden" href="departments/police/patrol.php" target="_self">Patrol</a></li>
493					<li class="menuLI level2 menuHidden li-717"><a class="menuA level2 menuHidden" href="departments/police/cid.php" target="_self">CID</a></li>
494					<li class="menuLI level2 menuHidden li-752"><a class="menuA level2 menuHidden" href="departments/police/recruiting.php" target="_self">Recruiting</a></li>
495					<li class="menuLI level2 menuHidden li-912"><a class="menuA level2 menuHidden" href="departments/police/public_records.php" target="_self">Police Public Records</a></li>
496				</ul>
497			</li>
498			<li class="menuLI level1 menuHidden li-110 children"><a class="menuA level1 menuHidden" href="departments/volunteer_fire_department/index.php" target="_self">Volunteer Fire Department</a>
499				<ul class="menuUL level2 menuHidden ul-824">
500					<li class="menuLI level2 menuHidden li-824"><a class="menuA level2 menuHidden" href="departments/volunteer_fire_department/join_the_gfd.php" target="_self">Join the GFD</a></li>
501					<li class="menuLI level2 menuHidden li-112"><a class="menuA level2 menuHidden" href="departments/volunteer_fire_department/information_resources/index.php" target="_self">Information & Resources</a></li>
502				</ul>
503			</li>
504			<li class="menuLI level1 menuHidden li-118 children"><a class="menuA level1 menuHidden" href="departments/development_services/index.php" target="_self">Development Services</a>
505				<ul class="menuUL level2 menuHidden ul-120">
506					<li class="menuLI level2 menuHidden li-120"><a class="menuA level2 menuHidden" href="departments/development_services/permits_inspections/index.php" target="_self">Permits & Inspections</a></li>
507					<li class="menuLI level2 menuHidden li-122"><a class="menuA level2 menuHidden" href="departments/development_services/planning_and_community_development/index.php" target="_self">Planning and Community Development</a></li>
508					<li class="menuLI level2 menuHidden li-123"><a class="menuA level2 menuHidden" href="departments/development_services/code_enforcement/index.php" target="_self">Code Enforcement</a></li>
509					<li class="menuLI level2 menuHidden li-124"><a class="menuA level2 menuHidden" href="departments/development_services/business_licenses/index.php" target="_self">Licenses & Annual Permits</a></li>
510				</ul>
511			</li>
512			<li class="menuLI level1 menuHidden li-125 children"><a class="menuA level1 menuHidden" href="departments/library/index.php" target="_self">Library</a>
513				<ul class="menuUL level2 menuHidden ul-126">
514					<li class="menuLI level2 menuHidden li-126"><a class="menuA level2 menuHidden" href="departments/library/library_information_and_resources/index.php" target="_self">Library Information and Resources</a></li>
515					<li class="menuLI level2 menuHidden li-127"><a class="menuA level2 menuHidden" href="departments/library/friends_of_the_library/index.php" target="_self">Friends of the Library</a></li>
516					<li class="menuLI level2 menuHidden li-128"><a class="menuA level2 menuHidden" href="departments/library/current_programs.php" target="_self">Current Programs</a></li>
517					<li class="menuLI level2 menuHidden li-130"><a class="menuA level2 menuHidden" href="departments/library/library_services/index.php" target="_self">Library Services</a></li>
518					<li class="menuLI level2 menuHidden li-136"><a class="menuA level2 menuHidden" href="departments/library/library_policies/index.php" target="_self">Library Policies</a></li>
519				</ul>
520			</li>
521			<li class="menuLI level1 menuHidden li-137 children"><a class="menuA level1 menuHidden" href="departments/public_works/index.php" target="_self">Public Works</a>
522				<ul class="menuUL level2 menuHidden ul-140">
523					<li class="menuLI level2 menuHidden li-140"><a class="menuA level2 menuHidden" href="departments/public_works/water_production.php" target="_self">Water Production</a></li>
524					<li class="menuLI level2 menuHidden li-141"><a class="menuA level2 menuHidden" href="departments/public_works/water_leak_submission/index.php" target="_self">Water Distribution</a></li>
525					<li class="menuLI level2 menuHidden li-142"><a class="menuA level2 menuHidden" href="departments/public_works/streets/index.php" target="_self">Streets</a></li>
526					<li class="menuLI level2 menuHidden li-143"><a class="menuA level2 menuHidden" href="departments/public_works/wastewater_treatment/index.php" target="_self">Wastewater Treatment</a></li>
527					<li class="menuLI level2 menuHidden li-879"><a class="menuA level2 menuHidden" href="departments/public_works/ccr_reports.php" target="_self">CCR Reports</a></li>
528				</ul>
529			</li>
530			<li class="menuLI level1 menuHidden li-146 children"><a class="menuA level1 menuHidden" href="departments/parks_recreation/index.php" target="_self">Parks & Recreation</a>
531				<ul class="menuUL level2 menuHidden ul-147">
532					<li class="menuLI level2 menuHidden li-147"><a class="menuA level2 menuHidden" href="departments/parks_recreation/aquatics/index.php" target="_self">Aquatics</a></li>
533					<li class="menuLI level2 menuHidden li-148"><a class="menuA level2 menuHidden" href="departments/parks_recreation/athletics/index.php" target="_self">Athletics</a></li>
534					<li class="menuLI level2 menuHidden li-149"><a class="menuA level2 menuHidden" href="departments/parks_recreation/fitness_center/index.php" target="_self">Fitness Center</a></li>
535					<li class="menuLI level2 menuHidden li-150"><a class="menuA level2 menuHidden" href="departments/parks_recreation/parks/index.php" target="_self">Parks</a></li>
536					<li class="menuLI level2 menuHidden li-152"><a class="menuA level2 menuHidden" href="departments/parks_recreation/north_fort_hood_recreation_center.php" target="_self">North Fort Hood Recreation Center</a></li>
537					<li class="menuLI level2 menuHidden li-153"><a class="menuA level2 menuHidden" href="departments/parks_recreation/keep_gatesville_beautiful/index.php" target="_self">Keep Gatesville Beautiful</a></li>
538				</ul>
539			</li>
540			<li class="menuLI level1 menuHidden li-155 children"><a class="menuA level1 menuHidden" href="departments/human_resources/index.php" target="_self">Human Resources</a>
541				<ul class="menuUL level2 menuHidden ul-156">
542					<li class="menuLI level2 menuHidden li-156"><a class="menuA level2 menuHidden" href="departments/human_resources/employment_opportunities/index.php" target="_self">Employment Opportunities</a></li>
543				</ul>
544			</li>
545			<li class="menuLI level1 menuHidden li-161"><a class="menuA level1 menuHidden" href="departments/cemetery.php" target="_self">Cemetery</a></li>
546			<li class="menuLI level1 menuHidden li-162"><a class="menuA level1 menuHidden" href="departments/municipal_court/index.php" target="_self">Municipal Court</a></li>
547			<li class="menuLI level1 menuHidden li-167 children"><a class="menuA level1 menuHidden" href="departments/utility_billing/index.php" target="_self">Utilities</a>
548				<ul class="menuUL level2 menuHidden ul-820">
549					<li class="menuLI level2 menuHidden li-820"><a class="menuA level2 menuHidden" href="departments/utility_billing/account_management.php" target="_self">Account Management</a></li>
550				</ul>
551			</li>
552		</ul>
553	</li>
554	<li class="menuLI level0 menuDisplay li-176 children"><a class="menuA level0 menuDisplay" href="economic_development/index.php" target="_self">Economic Development</a>
555		<ul class="menuUL level1 menuHidden ul-735">
556			<li class="menuLI level1 menuHidden li-735"><a class="menuA level1 menuHidden" href="economic_development/hotel_occupancy_tax_/index.php" target="_self">Hotel Occupancy Tax</a></li>
557			<li class="menuLI level1 menuHidden li-739"><a class="menuA level1 menuHidden" href="economic_development/380_agreements/index.php" target="_self">380 Agreements</a></li>
558			<li class="menuLI level1 menuHidden li-740"><a class="menuA level1 menuHidden" href="economic_development/chamber_of_commerce/index.php" target="_self">Chamber of Commerce</a></li>
559		</ul>
560	</li>
561	<li class="menuLI level0 menuDisplay li-184 children"><a class="menuA level0 menuDisplay" href="services_how_do_i/index.php" target="_self">Services (How do I?)</a>
562		<ul class="menuUL level1 menuHidden ul-185">
563			<li class="menuLI level1 menuHidden li-185"><a class="menuA level1 menuHidden" href="services_how_do_i/local_utility_companies.php" target="_self">Local Utility Companies</a></li>
564			<li class="menuLI level1 menuHidden li-186 children"><a class="menuA level1 menuHidden" href="services_how_do_i/report_a_problem/index.php" target="_self">Report a Problem</a>
565				<ul class="menuUL level2 menuHidden ul-287">
566					<li class="menuLI level2 menuHidden li-287"><a class="menuA level2 menuHidden" href="departments/development_services/code_enforcement/online_submission_form.php" target="_self">Code Violation</a></li>
567					<li class="menuLI level2 menuHidden li-293"><a class="menuA level2 menuHidden" href="departments/public_works/streets/street_repair_submission.php" target="_self">Street Repair</a></li>
568					<li class="menuLI level2 menuHidden li-294"><a class="menuA level2 menuHidden" href="services_how_do_i/report_a_problem/report_a_street_light_out.php" target="_self">Report a Water Issue</a></li>
569				</ul>
570			</li>
571			<li class="menuLI level1 menuHidden li-522"><a class="menuA level1 menuHidden" href="departments/development_services/permits_inspections/index.php" target="_self">Apply for a Permit or License</a></li>
572			<li class="menuLI level1 menuHidden li-297 children"><a class="menuA level1 menuHidden" href="services_how_do_i/reserve_a_venue_or_facility/index.php" target="_self">Reserve a Venue or Facility</a>
573				<ul class="menuUL level2 menuHidden ul-299">
574					<li class="menuLI level2 menuHidden li-299"><a class="menuA level2 menuHidden" href="services_how_do_i/reserve_a_venue_or_facility/civic_center.php" target="_self">Civic Center</a></li>
575					<li class="menuLI level2 menuHidden li-300"><a class="menuA level2 menuHidden" href="services_how_do_i/reserve_a_venue_or_facility/auditorium.php" target="_self">Auditorium</a></li>
576					<li class="menuLI level2 menuHidden li-604"><a class="menuA level2 menuHidden" href="departments/parks_recreation/athletics/index.php" target="_self">Ball Park</a></li>
577					<li class="menuLI level2 menuHidden li-851"><a class="menuA level2 menuHidden" href="departments/parks_recreation/aquatics/city_pool/private_pool_parties.php" target="_self">City Pool</a></li>
578				</ul>
579			</li>
580			<li class="menuLI level1 menuHidden li-359"><a class="menuA level1 menuHidden" href="services_how_do_i/staff_directory.php" target="_self">Staff Directory</a></li>
581			<li class="menuLI level1 menuHidden li-456 children"><a class="menuA level1 menuHidden" href="services_how_do_i/online_payments/index.php" target="_self">Online Payments</a>
582				<ul class="menuUL level2 menuHidden ul-457">
583					<li class="menuLI level2 menuHidden li-457"><a class="menuA level2 menuHidden" href="departments/utility_billing/index.php" target="_self">Utility Billing</a></li>
584					<li class="menuLI level2 menuHidden li-458"><a class="menuA level2 menuHidden" href="departments/development_services/permits_inspections/index.php" target="_self">Permits</a></li>
585					<li class="menuLI level2 menuHidden li-459"><a class="menuA level2 menuHidden" href="departments/development_services/business_licenses/index.php" target="_self">Business Licenses</a></li>
586					<li class="menuLI level2 menuHidden li-460"><a class="menuA level2 menuHidden" href="departments/municipal_court/index.php" target="_self">Municipal Court</a></li>
587				</ul>
588			</li>
589			<li class="menuLI level1 menuHidden li-369 children"><a class="menuA level1 menuHidden" href="services_how_do_i/forms_applications/index.php" target="_self">Forms & Applications</a>
590				<ul class="menuUL level2 menuHidden ul-370">
591					<li class="menuLI level2 menuHidden li-370"><a class="menuA level2 menuHidden" href="services_how_do_i/forms_applications/finance.php" target="_self">Finance</a></li>
592					<li class="menuLI level2 menuHidden li-371"><a class="menuA level2 menuHidden" href="services_how_do_i/forms_applications/police.php" target="_self">Police</a></li>
593					<li class="menuLI level2 menuHidden li-372"><a class="menuA level2 menuHidden" href="services_how_do_i/forms_applications/volunteer_fire_department/index.php" target="_self">Volunteer Fire Department</a></li>
594					<li class="menuLI level2 menuHidden li-373"><a class="menuA level2 menuHidden" href="services_how_do_i/forms_applications/development_services.php" target="_self">Development Services</a></li>
595					<li class="menuLI level2 menuHidden li-374"><a class="menuA level2 menuHidden" href="services_how_do_i/forms_applications/library.php" target="_self">Library</a></li>
596					<li class="menuLI level2 menuHidden li-375"><a class="menuA level2 menuHidden" href="services_how_do_i/forms_applications/parks_recreation/index.php" target="_self">Parks & Recreation</a></li>
597					<li class="menuLI level2 menuHidden li-376"><a class="menuA level2 menuHidden" href="services_how_do_i/forms_applications/human_resources/index.php" target="_self">Human Resources</a></li>
598					<li class="menuLI level2 menuHidden li-378"><a class="menuA level2 menuHidden" href="services_how_do_i/forms_applications/utility_billing/index.php" target="_self">Utility Billing</a></li>
599					<li class="menuLI level2 menuHidden li-891"><a class="menuA level2 menuHidden" href="services_how_do_i/forms_applications/municipal_court_.php" target="_self">Municipal Court</a></li>
600				</ul>
601			</li>
602			<li class="menuLI level1 menuHidden li-379"><a class="menuA level1 menuHidden" href="services_how_do_i/request_public_records/index.php" target="_self">Request Public Records</a></li>
603			<li class="menuLI level1 menuHidden li-382"><a class="menuA level1 menuHidden" href="services_how_do_i/civic_center_auditorium.php" target="_self">Civic Center & Auditorium</a></li>
604			<li class="menuLI level1 menuHidden li-383 children"><a class="menuA level1 menuHidden" href="calendar/index.php" target="_self">Calendar and Events</a>
605				<ul class="menuUL level2 menuHidden ul-384">
606					<li class="menuLI level2 menuHidden li-384"><a class="menuA level2 menuHidden" href="services_how_do_i/vendor_information.php" target="_self">Vendor Information</a></li>
607					<li class="menuLI level2 menuHidden li-385"><a class="menuA level2 menuHidden" href="services_how_do_i/food_truck_information.php" target="_self">Food Truck Information</a></li>
608					<li class="menuLI level2 menuHidden li-386"><a class="menuA level2 menuHidden" href="departments/police/special_events_parades.php" target="_self">Special Events & Parades Information</a></li>
609				</ul>
610			</li>
611			<li class="menuLI level1 menuHidden li-387"><a class="menuA level1 menuHidden" href="services_how_do_i/alerts.php" target="_self">Alerts</a></li>
612		</ul>
613	</li>
614	<li class="menuLI level0 menuDisplay li-830"><a class="menuA level0 menuDisplay" href="visitors/index.php" target="_self">Visitors</a></li>
615</ul>
616
617                </div><!-- /.rz-topnav-element -->
618            </div><!-- /.rz-element -->
619        
620        </div><!-- /.rz-element-wrapper -->
621
622    </div><!-- /.offcanvas-body -->
623</div><!-- /.offcanvas-lg -->    
624
625    <div class="header-element header-search-wrap align-items-stretch w-100 gap-3"> 	
626        <div class="vr vr-s d-none"></div>
627        <form class="m-0 align-self-center position-relative header-site-search w-100"
628              method="GET" action="search.php" role="search"
629              aria-label="Site Search" aria-labelledby="Search Site">
630            <input class="form-control" name="q" type="search"
631                   placeholder="Search..."
632                   autocomplete="off"
633                   >
634                            <!-- Icon-only search button -->
635                <button class="search-btn-with-icon btn btn-link position-absolute top-50 end-0 translate-middle-y gap-3 ps-0 pe-3 lh-1 d-flex align-items-center"
636                        aria-label="Search" tabindex="0">
637                    <span class="vr d-inline-flex align-self-center" style="height:1rem"></span>
638                    <i class="bi bi-search"></i>
639                </button>
640                    </form>
641        <div class="vr vr-e d-none"></div>
642    </div><!--/.header-element-->
643</div>
644
645
646
647</div><!-- /.rz-row-block -->
648
649
650
651
652  </div><!-- /.rz-section-block -->
653</div><!-- /.rz-section-block-wrap -->
654
655
656	</div><!-- /.site-header -->
657</div><!-- /.site-header-wrap -->
658<div class="rz-site-wrap">
659	<main id="rz-content-wrap">
660		
661		
662
663
664
665<div class="rz-section-block-wrap position-relative" style="--rz-section-padding-sm:30px 0;--rz-section-padding-md:50px 0;--rz-section-padding-lg:70px 0;">
666  
667  
668  
669  <div class="rz-section-block container">
670
671
672
673
674
675<div class="rz-row-block d-grid">
676<div class="rz-column-block">
677
678
679 
680<div class="rz-element-wrapper rz-section-header-wrapper has-edit-buttons">
681		<div class="center-top">
682				<div class="rz-btns-container">
683						
683<script language="JavaScript" type="text/JavaScript">
684								RZ.module  = 'generic';
685								RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/section_header-editform.jsp";
686								RZ.img     = '<span class="rzBtn rzBtn-sm">Edit Section Header</span>';
687								RZ.caption = '';
688								RZ.set     = 'pageid=cd186991-a9ef-487e-8103-54407f085fc2';
689								RZ.options = '';
690								if (typeof RZaction != 'undefined') RZaction('editform');
691						</script>
691
692				</div>
693		</div>
694		<div class="rz-element rz-section-header-wrap align-items-start text-start d-flex align-items-center gap-2">
695				
696				<div class="rz-section-header d-flex align-items-start text-start align-items-center gap-2">
697						
698								
699								<div class="d-flex flex-column align-items-start text-start">
700								
701						
702								<h1 class="rz-section-header-title">News</h1>
703						
704						
705					</div>
706					
707					
708				</div><!-- /.rz-section-header -->
709				
710		</div><!-- /.rz-section-header-wrap -->
711</div><!-- /.rz-element-wrapper -->
712
713
714
715
716
717
718
719<div class="rz-element-wrapper rz-news-card-wrapper has-edit-buttons" data-infinite="false" data-cards-per-page="9" data-rz-search-module="news">
720    <div class="center-top">
721        <div class="rz-btns-container">
722            
722<script>
723                RZ.module = 'news';
724                RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/news-editlist.jsp?width=370&height=450&pageid=d5dc7638-cf63-4235-a7ce-0920d1561fc9";
725                RZ.img = '<span class="rzBtn rzBtn-sm">Edit Articles</span>';
726                RZ.set = 'pageid=d5dc7638-cf63-4235-a7ce-0920d1561fc9';
727                if (typeof RZaction !== 'undefined') RZaction('editlist');
728            </script>
728
729            
729<script>
730                RZ.module = 'generic_lists';
731                RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/categories-editlist.jsp?type=category-news_list";
732                RZ.img = '<span class="rzBtn rzBtn-sm">Edit Categories</span>';
733                RZ.set = '';
734                if (typeof RZaction !== 'undefined') RZaction('editlist');
735            </script>
735
736        </div>
737    </div>
738    
739
740
741    <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 rz-news-card-list mt-0"
742        style="--bs-gutter-y:22px;--bs-gutter-x:22px;">
743<slot
744	  data-type="dot-feed"
745      data-content-template="/revize/plugins/zbuilder/v1/website/_assets_/templates/news_list/base.html" 
746      data-content-feed="_includes_/published/news_list.json" 
747      data-content-options='{"opt_start_cutoff":"show_all","news_list_card_style":"overlay","opt_list_limit":"10","category_filter":"10","sort_order":"date asc, seq_no asc","news_list_link_to":"modal","news_button_text":"Read More"}'>
748    </slot>
749	
750    </div><!-- /.row -->
751
752</div><!-- /.rz-element-wrapper -->
753<script src="/revize/plugins/zbuilder/v1/website/builder/modules/assets/news_list.js"></script>
753
754
755
756
757</div>
758
759
760
761</div><!-- /.rz-row-block -->
762
763
764
765
766  </div><!-- /.rz-section-block -->
767</div><!-- /.rz-section-block-wrap -->
768
769
770		
771	</main>
772	
773
774
775
776<div class="site-footer-wrap">
777	<div class="site-footer">
778
779
780
781
782<div class="rz-section-block-wrap position-relative" style="--rz-section-padding-sm:50px 0 30px 0;--rz-section-padding-md:50px 0 30px 0;--rz-section-padding-lg:50px 0;">
783  
784  <div class="rz-section-bg-overlay position-absolute top-0 start-0 w-100 h-100" style="pointer-events:none;background:linear-gradient(180deg,#030c75 0%,#103585 100%);"></div>
785  
786  
787  
788  <div class="rz-section-block container px-0" style="max-width:100%;">
789
790
791
792
793
794<div class="rz-row-block d-grid opt_row_columns_5 align-items-start">
795<div class="rz-column-block d-lg-flex flex-lg-wrap justify-content-lg-start align-items-lg-start" style="margin:-50px 0px 0px 0px;">
796    <div class="rz-element-wrapper rz-rte-block-wrapper footer-logo-section d-flex">
797        
798        <a href="./" class="d-flex align-items-center text-decoration-none footer-logo">
799            <img loading="lazy" src="website_assets/logo.png" alt="" class="footer-logo">
800        </a>    
801    
802    </div><!-- /.rz-element-wrapper -->
803</div><div class="rz-column-block" style="padding:0px 0px 0px 15px;">
804
805
806
807<div class="rz-element-wrapper rz-button-wrapper has-edit-buttons move-to-offcanvas"
808 
809  style="padding:0px 0px 0px 0px;">
810		<div class="center-top">
811				<div class="rz-btns-container">
812						
812<script language="JavaScript" type="text/JavaScript">
813							RZ.module = 'generic';
814							RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/label-editform.jsp";
815							RZ.img = '<span class="rzBtn rzBtn-sm">Edit Label</span>';
816							RZ.caption = '';
817							RZ.set = 'pageid=1de1724e-6f2c-4587-920e-364602991273';
818							RZ.options = '';
819							if (typeof RZaction != 'undefined') RZaction('editform');
820						</script>
820
821				</div>
822		</div>
823		<div class="rz-element rz-button-wrap d-flex flex-wrap" 
824						style="gap:16px;">
825
826<div  data-aos-duration="600">
827		<div class="rz-label-element">
828			<span class="rz-label-icon-wrap d-inline-flex align-items-center text-bg-secondary d-flex align-items-center justify-content-center  "
829			style="color:#ffffff!important;font-size:min(14px, 7vw);border-radius:100px;padding:8px 16px 8px 16px;">
830				
831						
832				
833				<span data-label-text="ADDRESS" class="rz-label-text">
834						ADDRESS
835				</span>
836				         
837				</span>
838		</div>
839</div>
840
841		</div>
842</div>
843
844
845
846
847    <div class="rz-element-wrapper rz-address-wrapper d-lg-flex align-items-center cursor-pointer move-to-offcanvas has-edit-buttons justify-content-start">
848        <div class="center-top">
849            <div class="rz-btns-container">
850                
850<script language="JavaScript" type="text/JavaScript">
851                    RZ.module = 'generic';
852                    RZ.nexturl = '/revize/plugins/zbuilder/v1/website/editforms/address-editform.jsp';
853                    RZ.img = '<span class="rzBtn rzBtn-xs">Edit address</span>';
854                    RZ.set = 'pageid=16c3b875-d56c-4209-8e85-051bc4098239';
855                    RZ.options = '';
856                    if (typeof RZaction != 'undefined') RZaction('editform');
857                </script>
857
858            </div>
859        </div>
860        
861            <div class="vr vr-s d-none"></div>
862            <a href="https://www.google.com/maps/search/?api=1&query=803+Main+Street%2C+Gatesville+TX+76528"
863               target="_self"
864               class="btn btn-link d-flex align-items-center text-start">
865                <i class="bi bi-geo-alt-fill me-2"></i>803 Main Street, Gatesville TX 76528
866            </a>
867            <div class="vr vr-e d-none"></div>
868        
869    </div><!-- /.rz-element-wrapper -->
870
871
872</div><div class="rz-column-block" style="padding:0px 0px 0px 15px;">
873
874
875
876<div class="rz-element-wrapper rz-button-wrapper has-edit-buttons move-to-offcanvas"
877 
878 >
879		<div class="center-top">
880				<div class="rz-btns-container">
881						
881<script language="JavaScript" type="text/JavaScript">
882							RZ.module = 'generic';
883							RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/label-editform.jsp";
884							RZ.img = '<span class="rzBtn rzBtn-sm">Edit Label</span>';
885							RZ.caption = '';
886							RZ.set = 'pageid=bdeeb48e-40e9-433b-913c-3a68bbcadd11';
887							RZ.options = '';
888							if (typeof RZaction != 'undefined') RZaction('editform');
889						</script>
889
890				</div>
891		</div>
892		<div class="rz-element rz-button-wrap d-flex flex-wrap" 
893						style="gap:16px;">
894
895<div  data-aos-duration="600">
896		<div class="rz-label-element">
897			<span class="rz-label-icon-wrap d-inline-flex align-items-center text-bg-primary d-flex align-items-center justify-content-center  "
898			style="font-size:min(14px, 7vw);border-radius:100px;padding:8px 16px 8px 16px;">
899				
900						
901				
902				<span data-label-text="Phone" class="rz-label-text">
903						Phone
904				</span>
905				         
906				</span>
907		</div>
908</div>
909
910		</div>
911</div>
912
913
914
915
916
917
918
919
920<div class="rz-element-wrapper rz-button-wrapper has-edit-buttons move-to-offcanvas phone"
921 
922 >
923
924		<div class="center-top">
925				<div class="rz-btns-container">
926						
926<script>
927								RZ.module = 'generic';
928								RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/buttons-editform.jsp";
929								RZ.img = '<span class="rzBtn rzBtn-xs">Edit Buttons</span>';
930								RZ.caption = '';
931								RZ.set = 'pageid=17f2bd2f-70b8-4ed8-b4c7-cbb86204f8a4';
932								RZ.options = '';
933								if (typeof RZaction != 'undefined') RZaction('editform');
934						</script>
934
935				</div>
936		</div>
937		<div class="rz-element rz-button-wrap d-flex flex-wrap" 
938				style="gap:16px;">
939
940<div class="d-flex align-items-stretch"  data-aos-duration="600">
941		<a href="tel:(254)&#160;865&#8209;8951" target="_blank"
942				class="rz-btn-element d-flex align-items-center justify-content-center btn btn-link  no-rz-text-reveal-btn shadow-none"
943				style="--bs-btn-color:#ffffff;--bs-btn-hover-color:#ffffff;--bs-btn-font-size:min(14px, 7vw);gap:8px;">
944
945				
946				
947						
948								<i class="bi bi-telephone-fill rz-btn-icon flex-shrink-0" style="font-size:20px;width:20px;height:20px;line-height:20px;color:#ffffff;" aria-hidden="true"></i>
949						
950				
951
952				
953				
954						<span class="overflow-hidden d-inline-block"
955									>
956								<span data-text="(254)&#160;865&#8209;8951" class="rz-btn-text"
957											>
958										(254)&#160;865&#8209;8951
959								</span>
960						</span>
961				
962
963
964				
965				
966		</a>
967</div>
968
969		</div>
970</div>
971
972
973
974</div><div class="rz-column-block" style="padding:0px 0px 0px 15px;">
975
976
977
978<div class="rz-element-wrapper rz-button-wrapper has-edit-buttons move-to-offcanvas"
979 
980 >
981		<div class="center-top">
982				<div class="rz-btns-container">
983						
983<script language="JavaScript" type="text/JavaScript">
984							RZ.module = 'generic';
985							RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/label-editform.jsp";
986							RZ.img = '<span class="rzBtn rzBtn-sm">Edit Label</span>';
987							RZ.caption = '';
988							RZ.set = 'pageid=593894f0-daaa-44d1-be6d-f8e09783ed3b';
989							RZ.options = '';
990							if (typeof RZaction != 'undefined') RZaction('editform');
991						</script>
991
992				</div>
993		</div>
994		<div class="rz-element rz-button-wrap d-flex flex-wrap" 
995						style="gap:16px;">
996
997<div  data-aos-duration="600">
998		<div class="rz-label-element">
999			<span class="rz-label-icon-wrap d-inline-flex align-items-center text-bg-secondary d-flex align-items-center justify-content-center  "
1000			style="font-size:min(14px, 7vw);border-radius:100px;padding:8px 16px 8px 16px;">
1001				
1002						
1003				
1004				<span data-label-text="Hours" class="rz-label-text">
1005						Hours
1006				</span>
1007				         
1008				</span>
1009		</div>
1010</div>
1011
1012		</div>
1013</div>
1014
1015
1016
1017
1018
1019
1020
1021
1022<div class="rz-element-wrapper rz-button-wrapper has-edit-buttons move-to-offcanvas"
1023 
1024 >
1025
1026		<div class="center-top">
1027				<div class="rz-btns-container">
1028						
1028<script>
1029								RZ.module = 'generic';
1030								RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/buttons-editform.jsp";
1031								RZ.img = '<span class="rzBtn rzBtn-xs">Edit Buttons</span>';
1032								RZ.caption = '';
1033								RZ.set = 'pageid=4887171a-2b6e-4083-8f7d-670e77c817e4';
1034								RZ.options = '';
1035								if (typeof RZaction != 'undefined') RZaction('editform');
1036						</script>
1036
1037				</div>
1038		</div>
1039		<div class="rz-element rz-button-wrap d-flex flex-wrap" 
1040				style="gap:16px;">
1041
1042<div class="d-flex align-items-stretch"  data-aos-duration="600">
1043		<a href="#" target="_self"
1044				class="rz-btn-element d-flex align-items-center justify-content-center btn btn-link  no-rz-text-reveal-btn "
1045				style="gap:8px;">
1046
1047				
1048				
1049						
1050								<i class="bi bi-clock-fill rz-btn-icon flex-shrink-0"  aria-hidden="true"></i>
1051						
1052				
1053
1054				
1055				
1056						<span class="overflow-hidden d-inline-block"
1057									>
1058								<span data-text="Monday - Friday: 8:30am - 5pm" class="rz-btn-text"
1059											>
1060										Monday - Friday: 8:30am - 5pm
1061								</span>
1062						</span>
1063				
1064
1065
1066				
1067				
1068		</a>
1069</div>
1070
1071		</div>
1072</div>
1073
1074
1075
1076</div>
1077
1078
1079
1080</div><!-- /.rz-row-block -->
1081
1082
1083
1084
1085  </div><!-- /.rz-section-block -->
1086</div><!-- /.rz-section-block-wrap -->
1087
1088
1089	</div><!-- /.site-footer -->
1090</div><!-- /.site-footer-wrap -->
1091<div class="offcanvas-lg offcanvas-bottom"
1092	tabindex="-1"
1093	id="offcanvasHeaderItems">
1094	<div class="offcanvas-header">
1095		<button type="button"
1096			class="btn-close"
1097			data-bs-dismiss="offcanvas"
1098			aria-label="Close"
1099			data-bs-target="#offcanvasHeaderItems"></button>
1100	</div>
1101	<div class="offcanvas-body offcanvasHeaderItems-offcanvas-body pt-0"></div>
1102</div><!-- #offcanvasHeaderItems --> 
1103
1104
1105<div class="modal modal-lg fade d-lg-none" id="searchModal" tabindex="-1" role="dialog" aria-labelledby="searchModal" style="--bs-modal-width:640px;">
1106	<div class="modal-dialog modal-dialog-centered" role="Site Search">
1107		<div class="modal-content px-0">
1108			<div class="modal-header border-0 pb-0 px-lg-3 pt-4">
1109				<h5>Search City Of Gatesville, TX</h5>
1110				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
1111			</div>
1112			<div class="modal-body p-0">
1113				<form class="form-inline overflow-hidden" method="GET" action="search.php" role="search" aria-label="sitewide">
1114					<div class="d-flex relative bg-white p-2 px-3">
1115						<label for="search-input"><span class="sr-only">Search</span></label>
1116						<div class="position-relative w-100">
1117							<div class="form-floating w-100">
1118								<input id="autocompleteme" autocomplete="off" class="form-control form-control-lg m-0 w-100" name="q" type="search" placeholder="Search..." aria-label="Search">
1119								<label for="autocompleteme" class="bg-transparent">Search...</label>
1120							</div>
1121							<div id="autocomplete-spinner" class="spinner-border text-success position-absolute" role="status"
1122								style="top: 50%; right: 4rem; width: 1rem; height: 1rem; margin-top: -9px; display: none; z-index: 10;--bs-spinner-border-width:0.15em" >
1123								<span class="visually-hidden">Loading...</span>
1124							</div>
1125						</div>
1126
1127						<button class="btn btn-link right-center d-flex gap-3 p-0 pe-4 bg-transparent me-1 ps-0 outline-none lh-1" aria-label="Search" tabindex="1"><span class="vr"></span>
1128							<label for="autocompleteme"><svg width="20" height="20" viewBox="0 0 20 20" aria-hidden="true" class="insta-search-icon">
1129									<path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path>
1130								</svg><span class="sr-only">Search</span></label>
1131						</button>
1132					</div>
1133				</form>
1134				<div class="all-search-buttons-wrap w-100 lh-1 position-relative" style="display:none">
1135					<div class="all-search-buttons py-3 p-3 d-md-flex flex-column flex-md-row gap-2 border-top">
1136						<div class="searchPopover p-3 bg-white d-none d-xl-block popover">
1137							<div class="searchPopover-arrow"></div><span class="searchPopover-text">Try searching... </span>
1138						</div>
1139						<a href="" class="all-site-search-btn align-content-center btn border-0 btn-primary icon-link icon-link-hover w-100 p-2 mb-2 mb-md-0"><span class="d-lg-none">Search</span> <span>site for</span> <span class="search-query-text text-decoration-underline"></span> <i class="bi bi-arrow-right"></i></a>
1140						<a href="" class="all-doc-search-btn align-content-center btn border-0 btn-primary icon-link icon-link-hover w-100 p-2"><span class="d-lg-none">Search</span> <span>documents for</span> <span class="search-query-text text-decoration-underline"></span> <i class="bi bi-arrow-right"></i></a>
1141					</div><!-- /.search-buttons -->
1142				</div><!-- /.all-search-buttons-wrap -->
1143									<div class="popular-pages-search p-2"></div>
1144							</div><!-- /.modal-body -->
1145		</div><!-- /.modal-content -->
1146	</div><!-- /.modal-dialog -->
1147</div><!-- /.modal -->
1148
1149
1150
1151	
1152	<div class="rz-element-wrapper rz-ada-floaty-btn-element rz-ada-btn-element d-none d-lg-flex">
1153		<button
1154			type="button"
1155			class="lh-1 d-flex align-items-center justify-content-center"
1156			aria-label="Open accessibility options"
1157			title="Accessibility features">
1158			<i class="bi bi-universal-access" aria-hidden="true"></i>
1159			<span class="visually-hidden">Accessibility features</span>
1160		</button>
1161	</div><!-- /.rz-element-wrapper -->
1162
1163
1164	<!-- Share Button -->
1165	<div class="rz-element-wrapper rz-share-floaty-btn-element d-none d-lg-flex">
1166		<button
1167			type="button"
1168			class="lh-1 d-flex align-items-center justify-content-center"
1169			data-bs-toggle="modal"
1170			data-bs-target="#shareModal"
1171			aria-label="Share this page"
1172			title="Share this page">
1173			<i class="bi bi-share-fill" aria-hidden="true"></i>
1174			<span class="visually-hidden">Share this page</span>
1175		</button>
1176	</div><!-- /.rz-element-wrapper -->
1177
1178
1179<div class="modal fade confirmation-popup" style="--bs-modal-width:420px;z-index:1100" tabindex="-1" data-bs-backdrop="static">
1180	<div class="modal-dialog modal-dialog-centered">
1181		<div class="modal-content">
1182			<div class="modal-body p-4 text-center">
1183				<div class="d-flex justify-content-center">
1184					<i class="d-flex lh-1 fs-3 rounded-circle bg-danger-subtle p-4 border-info text-danger-emphasis bi bi-exclamation-octagon"></i>
1185				</div>
1186				<div class="d-flex"></div>
1187				<p class="m-0 mt-3 px-sm-"><span class="fw-bold d-block fs-4 mb-2">Important</span> You are about to leave <strong>City Of Gatesville, TX</strong> and visit an external site, do you wish to continue?</p>
1188			</div>
1189			<div class="modal-footer flex-nowrap p-0">
1190				<button id="confirmLeave" type="button" class="btn btn-lg btn-link text-success fs-6 text-decoration-none col-6 py-3 m-0 border-end" style="border-radius:0 0 0 var(--rz-modal-border-radius)"><strong>Yes, leave <i class="bi bi-box-arrow-up-right ms-2 fs-5 lh-1"></i></strong></button>
1191				<button type="button" class="btn btn-lg btn-link text-danger fw-bold fs-6 text-decoration-none col-6 py-3 m-0" data-bs-dismiss="modal" id="cancelLeave" style="border-radius:0 0 var(--rz-modal-border-radius)">No, Stay </button>
1192			</div>
1193		</div>
1194	</div>
1195</div>
1196
1197<script>
1198$(document).ready(function () {
1199	let externalLink = ''; // Store the external link URL
1200
1201	$('a')
1202		.not('[href^="javascript:"]')
1203		.not('[href^="mailto:"]')
1204		.not('[href^="tel:"]')
1205		.not('[href="http://cms4.revize.com/revize/supportrevize/revize_faq.php"]')
1206		.not('[href="https://intercom.help/revizefaqs/en/"]')
1207		.not('.rz-brand-footer a')
1208		.not('#revize-login')
1209		.not('.copy-live-link')
1210		.on('click', function (event) {
1211			// Ignore links with .rzBtn children
1212			if ($(this).find('span.rzBtn').length === 0) {
1213				const linkUrl = $(this).prop('href');
1214				const linkHost = new URL(linkUrl).hostname;
1215				const currentHost = window.location.hostname;
1216
1217				// Treat current domain and all revize.com domains/subdomains as internal
1218				const isRevizeDomain =
1219					linkHost === 'revize.com' ||
1220					linkHost.endsWith('.revize.com');
1221
1222				// If different domain and NOT a Revize domain, show confirmation popup
1223				if (linkHost !== currentHost && !isRevizeDomain) {
1224					event.preventDefault();
1225					externalLink = linkUrl;
1226					$('.confirmation-popup').addClass('show').show();
1227				}
1228			}
1229		});
1230
1231	// Confirm external navigation
1232	$('#confirmLeave').on('click', function () {
1233		if (externalLink) {
1234			window.open(externalLink, '_blank');
1235		}
1236
1237		$('.confirmation-popup').removeClass('show').hide();
1238		externalLink = '';
1239	});
1240
1241	// Cancel external navigation
1242	$('#cancelLeave').on('click', function () {
1243		$('.confirmation-popup').removeClass('show').hide();
1244		externalLink = '';
1245	});
1246});
1247</script>
1247
1248	<div class="modal fade"
1249		id="event-modal"
1250		tabindex="-1"
1251		role="dialog"
1252		aria-labelledby="modal-event-title"
1253		aria-hidden="true">
1254		<div id="event-modal-dialog"
1255			class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable"
1256			role="document"
1257			style="--bs-modal-width:1000px">
1258			<div class="modal-content">
1259
1260				<div class="modal-header align-items-center">
1261					<div>
1262						<h2 class="h4 modal-subtitle m-0 fs-4 fw-bold">Event Details</h2>
1263					</div>
1264					<button type="button"
1265						class="btn-close mt-0"
1266						data-bs-dismiss="modal"
1267						aria-label="Close"></button>
1268				</div>
1269
1270				<div class="modal-body p-0"
1271					id="modal-event-body">
1272					<div class="center-center"><div class="rz-btns-container"></div></div>
1273					<div class="row row-cols-lg-2 g-0 mx-0">
1274					<div class="event-modal-header"
1275						style="min-height:200px"></div><!-- /.event-modal-header for image -->
1276						<div class="event-details d-flex flex-column has-edit-buttons">
1277							<div class="d-flex align-items-start justify-content-between bg-light p-4">
1278								<div class="w-100">
1279									<div class="d-flex align-items-center gap-3">
1280										<div class="event-border-color"
1281											style="margin-top:3px;width:12px;height:26px;border-radius:100px;align-self:start;"></div>
1282										<div class="w-100">
1283											<div class="d-flex justify-content-between align-items-center">
1284												<h3 class="fs-4 fw-bold" id="modal-event-title">City Council Meeting </h3>
1285												<a href="calendar"
1286													class="flex-shrink-0 btn btn-light bg-white border-0 btn-sm"
1287													data-bs-toggle="tooltip"
1288													data-bs-placement="left"
1289													data-bs-title="view Calendar"
1290													data-bs-offset="0,20">
1291													<i class="bi bi-box-arrow-up-right"></i>
1292													<span class="sr-only">View Calendar</span>
1293												</a>
1294											</div>
1295											
1296											<p class="text-muted row row-cols-1 g-2 my-0 p-0 fw-normal lh-sm small">
1297												<span class="modal-event-date w-max-content"><i class="bi bi-calendar4-event me-2"></i></span>
1298												<span class="modal-event-time"><i class="bi bi-clock me-2"></i></span>
1299												<span class="modal-location w-100"><i class="bi bi-geo-alt me-2"></i></span>
1300											</p>
1301										</div>
1302									</div>
1303								</div>
1304								<button type="button"
1305									class="btn-close bg-white d-none"
1306									data-bs-dismiss="modal"
1307									aria-label="Close"></button>
1308							</div><!-- /.d-flex -->
1309
1310							<div class="d-flex flex-column p-4 my-auto row-gap-4">
1311								<div class="modal-event-description small">
1312									<h4 class="h6 fw-bold">Description</h4>
1313									<div id="modal-event-subtitle"></div>
1314									<div id="modal-event-description">
1315									</div>
1316								</div>
1317								<div style="width: 100%" id="modal-event-location" class="ratio ratio-16x9"></div>
1318							</div><!-- /.d-flex -->
1319							
1320							<div class="modal-action-buttons d-flex gap-2 mt-auto mb-4 px-4">
1321							
1322								<a href="#"
1323									class="btn btn-primary border-0" id="modal-event-readmore">Read More</a>
1324							</div><!-- /.modal-action-buttons -->
1325
1326						</div><!-- /.event-details -->
1327					</div><!-- /.row -->
1328				</div><!-- /.modal-body -->
1329			</div><!-- /.modal-content -->
1330		</div>
1331	</div>
1332	
1333	<style>
1334		#modal-event-duration{display:none}
1335		.rz-business-inner-map{border:1px solid var(--bs-border-color)!important;border-radius:var(--bs-border-radius)}
1336	</style>	
1337<div class="left-bottom position-fixed mb-2 ms-2" id="eNotifyBtn">
1338	<button type="button" class="btn bg-success-subtle border-0 p-3 fs-4 lh-1 rounded" data-bs-toggle="modal" data-bs-target="#eNotifyModal">
1339		<span class="position-absolute top-0 start-100 translate-middle badge rounded-circle bg-danger p-2"><span class="visually-hidden">E notify</span></span>
1340		<i class="bi bi-bell text-success-emphasis"></i>
1341	</button>
1342</div>
1343<div class="modal fade e-notify-popup" style="--bs-modal-width:560px;z-index:1100" id="eNotifyModal" tabindex="-1" aria-hidden="true">
1344	<div class="modal-dialog modal-dialog-centered">
1345		<div class="modal-content">
1346			<div class="modal-body p-lg-4">
1347				<button type="button" class="btn-close top-0 end-0 position-absolute m-3 z-5" data-bs-dismiss="modal" aria-label="Close"></button>
1348				<div class="d-flex">
1349					<i class="d-flex lh-1 fs-3 rounded-circle bg-success-subtle p-4 border-info text-success-emphasis bi bi-mailbox-flag"></i>
1350				</div>
1351				<div class="d-flex"></div>
1352				<p class="my-3"><span class="fw-bold d-block fs-5">Email notification</span>
1352 Subscribe to receive updates whenever this page changes.</p>
1353				<form action="./enotify/index.php" method="get">
1354					<label class="form-label w-100 text-start" for="eNotifyEmail">Email</label>
1355					<div class="input-group mb-0">
1356						<input type="email" class="form-control" placeholder="Your email" aria-label="Recipient’s email" name="email" aria-describedby="button-addon" id="eNotifyEmail">
1357						<input type="hidden" name="successMessage" value="3">
1358						<button class="btn btn-success" type="submit" id="button-addon">Subscribe</button>
1359					</div>
1360					<div class="form-text" id="basic-addon4">You may unsubscribe at anytime</div>
1361<div class="d-none">
1362					<div class="text-center position-relative"><span class="mb-white rounded lh-1 p-3 rounded d-inline-block z-2 position-relative bg-white">or</span><div class="position-absolute top-50 start-0 border-top z-1 w-100"></div>
1363					</div>
1364						<label class="form-label w-100 text-start" for="eNotifyPhone">Phone number</label>
1365					<div class="input-group mb-0">
1366						<input type="tel" class="form-control" placeholder="123-123-45679" aria-label="Recipient’s phone number" aria-describedby="button-addon" id="eNotifyPhone">
1367						<button class="btn btn-success" type="button" id="button-addon-2">Subscribe</button>
1368					</div>
1369					<div class="form-text">Messaging rates may apply</div>
1370</div>
1371				</form>
1372			</div>
1373			<div class="modal-footer px-lg-4">
1374				<button type="button" class="btn btn-dark" data-bs-dismiss="modal" id="canceleNotifyModal">Close</button>
1375			</div>
1376		</div>
1377	</div>
1378</div>
1379<script>
1380document.addEventListener('submit', function (e) {
1381	const form = e.target;
1382	if (!form.matches('#eNotifyModal form')) return;
1383
1384	e.preventDefault();
1385
1386	const email = form.querySelector('[name="email"]').value.trim();
1387	if (!email) return;
1388
1389	window.location.href = './enotify/index.php?email=' + encodeURIComponent(email) + '&successMessage=3#post';
1390});
1391</script>
1391	
1392<div id="share-modal-section">
1393	<div class="modal fade" id="shareModal" tabindex="-1" role="dialog" aria-labelledby="shareModal">
1394		<div class="modal-dialog modal-dialog-centered" role="document">
1395			<div class="modal-content">
1396				<div class="modal-header border-0 bg-transparent pb-0 px-lg-4 pt-4">
1397					<div class="w-100 text-center">
1398						<span class="d-block h5 mb-1 w-100">Share this page</span>
1399						<p class="mb-1">On your favorite social media platform</p>
1400					</div>
1401					<button type="button" class="btn-close position-absolute end-0 top-0 m-3" data-bs-dismiss="modal" aria-label="Close"></button>
1402				</div>
1403				<div class="modal-body p-lg-4">
1404					<div class="share-btns row m-0 row-cols-md-3 gap-2">
1405						<a href="#" class="btn btn-primary btn-facebook" target="_blank">
1406							<i class="fa-brands fs-5 fa-square-facebook"></i> Facebook
1407						</a>
1408						
1409						<a href="#" class="btn btn-primary btn-twitter" target="_blank">
1410							<i class="fa-brands fs-5 fa-x-twitter"></i> x(twitter)
1411						</a>
1412						
1413						<a href="#" class="btn btn-primary btn-linkedin" target="_blank">
1414							<i class="fa-brands fs-5 fa-linkedin"></i> Linkedin
1415						</a>
1416						
1417						<a href="#" class="btn btn-primary btn-reddit" target="_blank">
1418							<i class="fa-brands fs-5 fa-square-reddit"></i> reddit
1419						</a>						
1420						<div class="w-100 p-0 my-2"><div class="d-flex align-items-center"><div class="border-top flex-fill"></div><span class="bg-body px-3">Or</span><div class="border-top flex-fill"></div></div></div>
1421						
1422						<a href="" class="btn btn-outline-dark w-100 border emailpage"><i class="fa-regular fs-5 fa-envelope"></i> Email Page Link</a>
1423
1424						<a href="" class="btn btn-outline-dark w-100 border share-copy-link"><i class="fa-regular fs-5 fa-copy"></i> Copy Current URL</a>
1425												
1426					</div><!-- /.share-btns -->
1427										
1428					 
1428<script>
1429						 $(document).ready(function () {
1430							 // Build social share URLs from current page
1431							 var pageUrl      = window.location.href;
1432							 var encodedUrl   = encodeURIComponent(pageUrl);
1433					 
1434							 $('.btn-facebook').attr(
1435								 'href',
1436								 'https://www.facebook.com/sharer/sharer.php?u=' + encodedUrl
1437							 );
1438					 
1439							 $('.btn-twitter').attr(
1440								 'href',
1441								 'https://twitter.com/intent/tweet?url=' + encodedUrl
1442							 );
1443					 
1444							 $('.btn-linkedin').attr(
1445								 'href',
1446								 'https://www.linkedin.com/sharing/share-offsite/?url=' + encodedUrl
1447							 );
1448					 
1449							 $('.btn-reddit').attr(
1450								 'href',
1451								 'https://www.reddit.com/submit?url=' + encodedUrl
1452							 );
1453					 
1454							 // Copy to clipboard
1455							 $('.share-copy-link').on('click', function (e) {
1456								 e.preventDefault();
1457					 
1458								 var urlToCopy = $(this).attr('href') || $(this).data('url') || window.location.href;
1459					 
1460								 if (navigator.clipboard && navigator.clipboard.writeText) {
1461									 navigator.clipboard
1462										 .writeText(urlToCopy)
1463										 .then(function () {
1464											 new bootstrap.Toast(document.getElementById('coppiedToast')).show();
1465										 })
1466										 .catch(function () {
1467											 fallbackCopy(urlToCopy);
1468										 });
1469								 } else {
1470									 fallbackCopy(urlToCopy);
1471								 }
1472							 });
1473					 
1474							 function fallbackCopy(text) {
1475								 var $tempInput = $('<input style="position:absolute;left:-9999px;">');
1476								 $('body').append($tempInput);
1477								 $tempInput.val(text).select();
1478								 document.execCommand('copy');
1479								 $tempInput.remove();
1480								 new bootstrap.Toast(document.getElementById('coppiedToast')).show();
1481							 }
1482					 
1483							 // Email page link
1484							 $('.emailpage').on('click', function (e) {
1485								 e.preventDefault();
1486					 
1487								 var pageUrl = window.location.href;
1488								 var subject = encodeURIComponent('Check out this page');
1489								 var body = encodeURIComponent('Hey,\n\nI thought you might find this interesting:\n' + pageUrl);
1490								 window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
1491							 });
1492						 });
1493					 </script>
1493
1494					
1495					<div class="toast-container position-fixed top-0 start-50 translate-middle-x">
1496						<div id="coppiedToast" class="toast align-items-center align-items-center text-bg-success border-0 border-0 fade" role="alert" aria-live="assertive" aria-atomic="true">
1497							<div class="d-flex">
1498								<div class="toast-body">
1499									URL copied to clipboard!
1500								</div>
1501								<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
1502							</div>
1503						</div>
1504					</div>
1505					
1506				</div><!-- /.modal-body -->
1507			</div><!-- /.modal-content -->
1508		</div><!-- /.modal-dialog -->
1509	</div><!-- /.modal -->
1510</div><!-- /#modal-section --><link href="https://cdn.jsdelivr.net/gh/lipis/[email protected]/css/flag-icons.min.css" rel="stylesheet" type="text/css" />
1511<div class="modal fade" id="translateModal" tabindex="-1" aria-hidden="true">
1512	<div class="modal-dialog modal-sm modal-dialog-centered modal-dialog-scrollable">
1513		<div class="modal-content">
1514		<form role="search" aria-label="Search Languages" class="sticky-top bg-white m-0 align-self-center position-relative translate-search w-100 p-3 border-bottom">
1515			<input type="search" placeholder="Search languages..." autocomplete="off" class="form-control" id="translatesearch-input">
1516			<button aria-label="Search" tabindex="-1" class="btn btn-link position-absolute top-50 end-0 translate-middle-y gap-3 ps-0 pe-3 me-3 me-1 lh-1 d-flex align-items-center">
1517			<label for="translatesearch-input"><span class="visually-hidden">Search</span><svg width="20" height="20" viewBox="0 0 20 20" aria-hidden="true" class="DocSearch-Search-Icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg></label>
1518			</button>
1519		</form>
1520			<div class="modal-body" style="max-height:300px">
1521				<div class="lang-no-results text-center d-none text-muted small">No matching languages.</div>
1522				<div class="translation-links row row-cols-lg-1">
1523					<div>
1524						<button class="btn btn-link text-body p-2 text-start w-100 English" data-lang="English" translate="no">
1525						<span class="fi fi-us me-2"></span><strong>English</strong>
1526						</button>
1527					</div>
1528					<div>
1529						<button class="btn btn-link text-body p-2 text-start w-100 Afrikaans" data-lang="Afrikaans">
1530						<span class="fi fi-za me-2"></span>Afrikaans
1531						</button>
1532					</div>
1533					<div>
1534						<button class="btn btn-link text-body p-2 text-start w-100 Albanian" data-lang="Albanian">
1535						<span class="fi fi-al me-2"></span>Albanian
1536						</button>
1537					</div>
1538					<div>
1539						<button class="btn btn-link text-body p-2 text-start w-100 Arabic" data-lang="Arabic">
1540						<span class="fi fi-sa me-2"></span>Arabic
1541						</button>
1542					</div>
1543					<div>
1544						<button class="btn btn-link text-body p-2 text-start w-100 Armenian" data-lang="Armenian">
1545						<span class="fi fi-am me-2"></span>Armenian
1546						</button>
1547					</div>
1548					<div>
1549						<button class="btn btn-link text-body p-2 text-start w-100 Azerbaijani" data-lang="Azerbaijani">
1550						<span class="fi fi-az me-2"></span>Azerbaijani
1551						</button>
1552					</div>
1553					<div>
1554						<button class="btn btn-link text-body p-2 text-start w-100 Basque" data-lang="Basque">
1555						<span class="fi fi-es me-2"></span>Basque
1556						</button>
1557					</div>
1558					<div>
1559						<button class="btn btn-link text-body p-2 text-start w-100 Belarusian" data-lang="Belarusian">
1560						<span class="fi fi-by me-2"></span>Belarusian
1561						</button>
1562					</div>
1563					<div>
1564						<button class="btn btn-link text-body p-2 text-start w-100 Bengali" data-lang="Bengali">
1565						<span class="fi fi-bd me-2"></span>Bengali
1566						</button>
1567					</div>
1568					<div>
1569						<button class="btn btn-link text-body p-2 text-start w-100 Bosnian" data-lang="Bosnian">
1570						<span class="fi fi-ba me-2"></span>Bosnian
1571						</button>
1572					</div>
1573					<div>
1574						<button class="btn btn-link text-body p-2 text-start w-100 Bulgarian" data-lang="Bulgarian">
1575						<span class="fi fi-bg me-2"></span>Bulgarian
1576						</button>
1577					</div>
1578					<div>
1579						<button class="btn btn-link text-body p-2 text-start w-100 Catalan" data-lang="Catalan">
1580						<span class="fi fi-ad me-2"></span>Catalan
1581						</button>
1582					</div>
1583					<div>
1584						<button class="btn btn-link text-body p-2 text-start w-100 Cebuano" data-lang="Cebuano">
1585						<span class="fi fi-ph me-2"></span>Cebuano
1586						</button>
1587					</div>
1588					<div>
1589						<button class="btn btn-link text-body p-2 text-start w-100 Chinese" data-lang="Chinese (Simplified)">
1590						<span class="fi fi-cn me-2"></span>Chinese (Simplified)
1591						</button>
1592					</div>
1593					<div>
1594						<button class="btn btn-link text-body p-2 text-start w-100 Chinese" data-lang="Chinese (Traditional)">
1595						<span class="fi fi-tw me-2"></span>Chinese (Traditional)
1596						</button>
1597					</div>
1598					<div>
1599						<button class="btn btn-link text-body p-2 text-start w-100 Croatian" data-lang="Croatian">
1600						<span class="fi fi-hr me-2"></span>Croatian
1601						</button>
1602					</div>
1603					<div>
1604						<button class="btn btn-link text-body p-2 text-start w-100 Czech" data-lang="Czech">
1605						<span class="fi fi-cz me-2"></span>Czech
1606						</button>
1607					</div>
1608					<div>
1609						<button class="btn btn-link text-body p-2 text-start w-100 Danish" data-lang="Danish">
1610						<span class="fi fi-dk me-2"></span>Danish
1611						</button>
1612					</div>
1613					<div>
1614						<button class="btn btn-link text-body p-2 text-start w-100 Dutch" data-lang="Dutch">
1615						<span class="fi fi-nl me-2"></span>Dutch
1616						</button>
1617					</div>
1618					<div>
1619						<button class="btn btn-link text-body p-2 text-start w-100 Esperanto" data-lang="Esperanto">
1620						<span class="fi fi-un me-2"></span>Esperanto
1621						</button>
1622					</div>
1623					<div>
1624						<button class="btn btn-link text-body p-2 text-start w-100 
1624Estonian" data-lang="Estonian">
1625						<span class="fi fi-ee me-2"></span>Estonian
1626						</button>
1627					</div>
1628					<div>
1629						<button class="btn btn-link text-body p-2 text-start w-100 Filipino" data-lang="Filipino">
1630						<span class="fi fi-ph me-2"></span>Filipino
1631						</button>
1632					</div>
1633					<div>
1634						<button class="btn btn-link text-body p-2 text-start w-100 Finnish" data-lang="Finnish">
1635						<span class="fi fi-fi me-2"></span>Finnish
1636						</button>
1637					</div>
1638					<div>
1639						<button class="btn btn-link text-body p-2 text-start w-100 French" data-lang="French">
1640						<span class="fi fi-fr me-2"></span>French
1641						</button>
1642					</div>
1643					<div>
1644						<button class="btn btn-link text-body p-2 text-start w-100 Galician" data-lang="Galician">
1645						<span class="fi fi-es me-2"></span>Galician
1646						</button>
1647					</div>
1648					<div>
1649						<button class="btn btn-link text-body p-2 text-start w-100 Georgian" data-lang="Georgian">
1650						<span class="fi fi-ge me-2"></span>Georgian
1651						</button>
1652					</div>
1653					<div>
1654						<button class="btn btn-link text-body p-2 text-start w-100 German" data-lang="German">
1655						<span class="fi fi-de me-2"></span>German
1656						</button>
1657					</div>
1658					<div>
1659						<button class="btn btn-link text-body p-2 text-start w-100 Greek" data-lang="Greek">
1660						<span class="fi fi-gr me-2"></span>Greek
1661						</button>
1662					</div>
1663					<div>
1664						<button class="btn btn-link text-body p-2 text-start w-100 Gujarati" data-lang="Gujarati">
1665						<span class="fi fi-in me-2"></span>Gujarati
1666						</button>
1667					</div>
1668					<div>
1669						<button class="btn btn-link text-body p-2 text-start w-100 Haitian" data-lang="Haitian Creole">
1670						<span class="fi fi-ht me-2"></span>Haitian Creole
1671						</button>
1672					</div>
1673					<div>
1674						<button class="btn btn-link text-body p-2 text-start w-100 Hausa" data-lang="Hausa">
1675						<span class="fi fi-ng me-2"></span>Hausa
1676						</button>
1677					</div>
1678					<div>
1679						<button class="btn btn-link text-body p-2 text-start w-100 Hebrew" data-lang="Hebrew">
1680						<span class="fi fi-il me-2"></span>Hebrew
1681						</button>
1682					</div>
1683					<div>
1684						<button class="btn btn-link text-body p-2 text-start w-100 Hindi" data-lang="Hindi">
1685						<span class="fi fi-in me-2"></span>Hindi
1686						</button>
1687					</div>
1688					<div>
1689						<button class="btn btn-link text-body p-2 text-start w-100 Hmong" data-lang="Hmong">
1690						<span class="fi fi-cn me-2"></span>Hmong
1691						</button>
1692					</div>
1693					<div>
1694						<button class="btn btn-link text-body p-2 text-start w-100 Hungarian" data-lang="Hungarian">
1695						<span class="fi fi-hu me-2"></span>Hungarian
1696						</button>
1697					</div>
1698					<div>
1699						<button class="btn btn-link text-body p-2 text-start w-100 Icelandic" data-lang="Icelandic">
1700						<span class="fi fi-is me-2"></span>Icelandic
1701						</button>
1702					</div>
1703					<div>
1704						<button class="btn btn-link text-body p-2 text-start w-100 Igbo" data-lang="Igbo">
1705						<span class="fi fi-ng me-2"></span>Igbo
1706						</button>
1707					</div>
1708					<div>
1709						<button class="btn btn-link text-body p-2 text-start w-100 Indonesian" data-lang="Indonesian">
1710						<span class="fi fi-id me-2"></span>Indonesian
1711						</button>
1712					</div>
1713					<div>
1714						<button class="btn btn-link text-body p-2 text-start w-100 Irish" data-lang="Irish">
1715						<span class="fi fi-ie me-2"></span>Irish
1716						</button>
1717					</div>
1718					<div>
1719						<button class="btn btn-link text-body p-2 text-start w-100 Italian" data-lang="Italian">
1720						<span class="fi fi-it me-2"></span>Italian
1721						</button>
1722					</div>
1723					<div>
1724						<button class="btn btn-link text-body p-2 text-start w-100 Japanese" data-lang="Japanese">
1725						<span class="fi fi-jp me-2"></span>Japanese
1726						</button>
1727					</div>
1728					<div>
1729						<button class="btn btn-link text-body p-2 text-start w-100 Javanese" data-lang="Javanese">
1730						<span class="fi fi-id me-2"></span>Javanese
1731						</button>
1732					</div>
1733					<div>
1734						<button class="btn btn-link text-body p-2 text-start w-100 K
1734annada" data-lang="Kannada">
1735						<span class="fi fi-in me-2"></span>Kannada
1736						</button>
1737					</div>
1738					<div>
1739						<button class="btn btn-link text-body p-2 text-start w-100 Khmer" data-lang="Khmer">
1740						<span class="fi fi-kh me-2"></span>Khmer
1741						</button>
1742					</div>
1743					<div>
1744						<button class="btn btn-link text-body p-2 text-start w-100 Korean" data-lang="Korean">
1745						<span class="fi fi-kr me-2"></span>Korean
1746						</button>
1747					</div>
1748					<div>
1749						<button class="btn btn-link text-body p-2 text-start w-100 Lao" data-lang="Lao">
1750						<span class="fi fi-la me-2"></span>Lao
1751						</button>
1752					</div>
1753					<div>
1754						<button class="btn btn-link text-body p-2 text-start w-100 Latin" data-lang="Latin">
1755						<span class="fi fi-va me-2"></span>Latin
1756						</button>
1757					</div>
1758					<div>
1759						<button class="btn btn-link text-body p-2 text-start w-100 Latvian" data-lang="Latvian">
1760						<span class="fi fi-lv me-2"></span>Latvian
1761						</button>
1762					</div>
1763					<div>
1764						<button class="btn btn-link text-body p-2 text-start w-100 Lithuanian" data-lang="Lithuanian">
1765						<span class="fi fi-lt me-2"></span>Lithuanian
1766						</button>
1767					</div>
1768					<div>
1769						<button class="btn btn-link text-body p-2 text-start w-100 Macedonian" data-lang="Macedonian">
1770						<span class="fi fi-mk me-2"></span>Macedonian
1771						</button>
1772					</div>
1773					<div>
1774						<button class="btn btn-link text-body p-2 text-start w-100 Malay" data-lang="Malay">
1775						<span class="fi fi-my me-2"></span>Malay
1776						</button>
1777					</div>
1778					<div>
1779						<button class="btn btn-link text-body p-2 text-start w-100 Maltese" data-lang="Maltese">
1780						<span class="fi fi-mt me-2"></span>Maltese
1781						</button>
1782					</div>
1783					<div>
1784						<button class="btn btn-link text-body p-2 text-start w-100 Maori" data-lang="Maori">
1785						<span class="fi fi-nz me-2"></span>Maori
1786						</button>
1787					</div>
1788					<div>
1789						<button class="btn btn-link text-body p-2 text-start w-100 Marathi" data-lang="Marathi">
1790						<span class="fi fi-in me-2"></span>Marathi
1791						</button>
1792					</div>
1793					<div>
1794						<button class="btn btn-link text-body p-2 text-start w-100 Mongolian" data-lang="Mongolian">
1795						<span class="fi fi-mn me-2"></span>Mongolian
1796						</button>
1797					</div>
1798					<div>
1799						<button class="btn btn-link text-body p-2 text-start w-100 Nepali" data-lang="Nepali">
1800						<span class="fi fi-np me-2"></span>Nepali
1801						</button>
1802					</div>
1803					<div>
1804						<button class="btn btn-link text-body p-2 text-start w-100 Norwegian" data-lang="Norwegian">
1805						<span class="fi fi-no me-2"></span>Norwegian
1806						</button>
1807					</div>
1808					<div>
1809						<button class="btn btn-link text-body p-2 text-start w-100 Persian" data-lang="Persian">
1810						<span class="fi fi-ir me-2"></span>Persian
1811						</button>
1812					</div>
1813					<div>
1814						<button class="btn btn-link text-body p-2 text-start w-100 Polish" data-lang="Polish">
1815						<span class="fi fi-pl me-2"></span>Polish
1816						</button>
1817					</div>
1818					<div>
1819						<button class="btn btn-link text-body p-2 text-start w-100 Portuguese" data-lang="Portuguese">
1820						<span class="fi fi-pt me-2"></span>Portuguese
1821						</button>
1822					</div>
1823					<div>
1824						<button class="btn btn-link text-body p-2 text-start w-100 Punjabi" data-lang="Punjabi">
1825						<span class="fi fi-in me-2"></span>Punjabi
1826						</button>
1827					</div>
1828					<div>
1829						<button class="btn btn-link text-body p-2 text-start w-100 Romanian" data-lang="Romanian">
1830						<span class="fi fi-ro me-2"></span>Romanian
1831						</button>
1832					</div>
1833					<div>
1834						<button class="btn btn-link text-body p-2 text-start w-100 Russian" data-lang="Russian">
1835						<span class="fi fi-ru me-2"></span>Russian
1836						</button>
1837					</div>
1838					<div>
1839						<button class="btn btn-link text-body p-2 text-start w-100 Serbian" data-lang="Serbian">
1840						<span class="fi fi-rs me-2"></span>Serbian
1841						</button>
1842					</div>
1843					<div>
1844						<button class="btn btn-link text-body p-2 text-start w-100 Slovak" data-lang="Slovak">
1845						<span class="fi fi-sk me-2"></span>Slovak
1846						</button>
1847					</div>
1848					<div>
1849						<button class="btn btn-link text-body p-2 text-start w-100 Slovenian" data-lang="Slovenian">
1850						<span class="fi fi-si me-2"></span>Slovenian
1851						</button>
1852					</div>
1853					<div>
1854						<button class="btn btn-link text-body p-2 text-start w-100 Somali" data-lang="Somali">
1855						<span class="fi fi-so me-2"></span>Somali
1856						</button>
1857					</div>
1858					<div>
1859						<button class="btn btn-link text-body p-2 text-start w-100 Spanish" data-lang="Spanish">
1860						<span class="fi fi-es me-2"></span>Spanish
1861						</button>
1862					</div>
1863					<div>
1864						<button class="btn btn-link text-body p-2 text-start w-100 Swahili" data-lang="Swahili">
1865						<span class="fi fi-ke me-2"></span>Swahili
1866						</button>
1867					</div>
1868					<div>
1869						<button class="btn btn-link text-body p-2 text-start w-100 Swedish" data-lang="Swedish">
1870						<span class="fi fi-se me-2"></span>Swedish
1871						</button>
1872					</div>
1873					<div>
1874						<button class="btn btn-link text-body p-2 text-start w-100 Tamil" data-lang="Tamil">
1875						<span class="fi fi-in me-2"></span>Tamil
1876						</button>
1877					</div>
1878					<div>
1879						<button class="btn btn-link text-body p-2 text-start w-100 Telugu" data-lang="Telugu">
1880						<span class="fi fi-in me-2"></span>Telugu
1881						</button>
1882					</div>
1883					<div>
1884						<button class="btn btn-link text-body p-2 text-start w-100 Thai" data-lang="Thai">
1885						<span class="fi fi-th me-2"></span>Thai
1886						</button>
1887					</div>
1888					<div>
1889						<button class="btn btn-link text-body p-2 text-start w-100 Turkish" data-lang="Turkish">
1890						<span class="fi fi-tr me-2"></span>Turkish
1891						</button>
1892					</div>
1893					<div>
1894						<button class="btn btn-link text-body p-2 text-start w-100 Ukrainian" data-lang="Ukrainian">
1895						<span class="fi fi-ua me-2"></span>Ukrainian
1896						</button>
1897					</div>
1898					<div>
1899						<button class="btn btn-link text-body p-2 text-start w-100 Urdu" data-lang="Urdu">
1900						<span class="fi fi-pk me-2"></span>Urdu
1901						</button>
1902					</div>
1903					<div>
1904						<button class="btn btn-link text-body p-2 text-start w-100 Vietnamese" data-lang="Vietnamese">
1905						<span class="fi fi-vn me-2"></span>Vietnamese
1906						</button>
1907					</div>
1908					<div>
1909						<button class="btn btn-link text-body p-2 text-start w-100 Welsh" data-lang="Welsh">
1910						<span class="fi fi-gb me-2"></span>Welsh
1911						</button>
1912					</div>
1913					<div>
1914						<button class="btn btn-link text-body p-2 text-start w-100 Yoruba" data-lang="Yoruba">
1915						<span class="fi fi-ng me-2"></span>Yoruba
1916						</button>
1917					</div>
1918					<div>
1919						<button class="btn btn-link text-body p-2 text-start w-100 Zulu" data-lang="Zulu">
1920						<span class="fi fi-za me-2"></span>Zulu
1921						</button>
1922					</div>
1923				</div>
1924			</div>
1925			<div class="modal-footer p-2">
1926				<div class="lang-search-status text-center small text-muted" aria-l
1926ive="polite" aria-atomic="true"></div>
1927				<button type="button" class="btn btn-sm btn-primary ms-auto" data-bs-dismiss="modal">Close</button>
1928				<button class="btn btn-link text-body p-2 text-start translate-reset" translate="no">
1929					<i class="fa-solid fa-power-off" aria-hidden="true"></i>
1930					<span class="visually-hidden">Reset Translation</span>
1931				</button>
1932			</div>
1933		</div>
1934	</div>
1935</div>
1936<div id="google-translate" class="d-none"></div>
1937<script>
1938function googleTranslateElementInit() {
1939	new google.translate.TranslateElement(
1940		{ pageLanguage: 'en', autoDisplay: false, layout: google.translate.TranslateElement.InlineLayout.SIMPLE },
1941		'google-translate'
1942	);
1943}
1944</script>
vendor: 2 bytes, line 1944
1944
1945<script>
1946var translateURL = "//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit";
1947$.getScript(translateURL);
1948
1949function clickLanguage(langText, maxTries, intervalMs) {
1950	langText = (langText || '').trim();
1951	maxTries = maxTries || 30;
1952	intervalMs = intervalMs || 200;
1953	var tries = 0;
1954	var timer = setInterval(function () {
1955		var $frame = $("iframe.skiptranslate");
1956		if ($frame.length) {
1957			var doc = $frame.contents();
1958			var $target = doc.find('span.text').filter(function () {
1959				return $(this).text().trim() === langText;
1960			}).closest('a');
1961			if (!$target.length) {
1962				$target = doc.find('span.text').filter(function () {
1963					return $(this).text().trim() === 'English';
1964				}).closest('a');
1965			}
1966			if ($target.length) {
1967				$target.get(0).click();
1968				clearInterval(timer);
1969				return;
1970			}
1971		}
1972		tries++;
1973		if (tries >= maxTries) clearInterval(timer);
1974	}, intervalMs);
1975}
1976
1977function getCookie(cname) {
1978	let name = cname + "=";
1979	let ca = document.cookie.split(';');
1980	for(let i = 0; i < ca.length; i++) {
1981		let c = ca[i];
1982		while (c.charAt(0) == ' ') c = c.substring(1);
1983		if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
1984	}
1985	return "";
1986}
1987
1988function sanitizeFlag(code) {
1989	var v = (code || "").toLowerCase().trim();
1990	if (!v || v === "undefined" || v === "null") return "";
1991	if (!/^[a-z]{2}$/.test(v)) return "";
1992	return v;
1993}
1994
1995function applyActiveFromCookie() {
1996	var code = sanitizeFlag(getCookie('lang')) || sanitizeFlag(getCookie('code')) || 'us';
1997	var $btn = $('.translation-links button').filter(function(){
1998		var dataCode = ($(this).data('code') || '').toString().toLowerCase();
1999		if (dataCode && dataCode === code) return true;
2000		var cls = ($(this).find('span[class*="fi-"]').attr('class') || '');
2001		var m = cls.match(/\bfi-([a-z]{2})\b/i);
2002		return m && m[1].toLowerCase() === code;
2003	}).first();
2004	if (!$btn.length && code === 'us') $btn = $('.translation-links button[data-lang="English"]').first();
2005	$('.translation-links button').removeClass('active');
2006	if ($btn.length) $btn.addClass('active');
2007}
2008
2009(function initSelectedFlag(){
2010	var initialCode = sanitizeFlag(getCookie('lang')) || sanitizeFlag(getCookie('code')) || "us";
2011	$('.selected-flag').attr('class', 'fi fi-' + initialCode + ' selected-flag');
2012	$('.c-code').text(initialCode);
2013	applyActiveFromCookie();
2014})();
2015
2016$(".translation-links button").on("click", function () {
2017	var lang = $(this).data("lang");
2018	$('.translation-links button').removeClass('active');
2019	$(this).addClass('active');
2020	clickLanguage(lang);
2021	var cCode = $(this).data('code');
2022	if (!cCode) {
2023		var cls = $(this).find('span[class*="fi-"]').attr('class') || '';
2024		var m = cls.match(/\bfi-([a-z]{2})\b/i);
2025		if (m) cCode = m[1].toLowerCase();
2026	}
2027	if (!cCode) cCode = 'us';
2028	$('.selected-flag').attr('class', 'fi fi-' + cCode + ' selected-flag');
2029	$('.c-code').text(cCode);
2030	document.cookie = 'lang=' + cCode + '; path=/';
2031	document.cookie = 'code=' + cCode + '; path=/';
2032	return false;
2033});
2034
2035var $translateReset = $(".translate-reset");
2036$translateReset.on("keydown click", function (e) {
2037	if (e.keyCode === 13 || e.type === "click") {
2038		clickLanguage('English');
2039		$('.translation-links button').removeClass('active');
2040		$('.translation-links button[data-lang="English"]').addClass('active');
2041		$('.selected-flag').attr('class','fi fi-us selected-flag');
2042		$('.c-code').text('us');
2043		document.cookie = 'lang=us; path=/';
2044		document.cookie = 'code=us; path=/';
2045	}
2046});
2047
2048(function($){
2049	var $form = $('.translate-search');
2050	var $input = $form.find('input[type="search"]');
2051	var $list = $('.translation-links');
2052	var $btns = $list.find('div');
2053	var $empty = $('.lang-no-results');
2054	var $status = $('.lang-search-status');
2055	$form.on('submit', function(e){ e.preventDefault(); });
2056	function norm(s){
2057		return (s||'').toString().toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g,'');
2058	}
2059	$btns.each(function(){
2060		var $b = $(this);
2061		var txt = $b.text().trim();
2062		var lang = ($b.data('lang')||'')+'';
2063		$b.attr('data-search', norm(txt + ' ' + lang));
2064	});
2065	function updateStatus(visible, total){
2066		if ($status.length) $status.text(visible + ' of ' + total + ' languages');
2067		if ($empty.length)  $empty.toggleClass('d-none', visible > 0);
2068	}
2069	var total = $btns.length;
2070	updateStatus(total, total);
2071	function filter(){
2072		var q = norm($input.val());
2073		if (!q){
2074			$btns.removeClass('d-none');
2075			updateStatus(total, total);
2076			return;
2077		}
2078		var visible = 0;
2079		$btns.each(function(){
2080			var $b = $(this);
2081			var hay = $b.attr('data-search') || '';
2082			var match = hay.indexOf(q) !== -1;
2083			$b.toggleClass('d-none', !match);
2084			if (match) visible++;
2085		});
2086		$btns.filter('.d-none').attr('tabindex', -1);
2087		$btns.not('.d-none');
2088		updateStatus(visible, total);
2089	}
2090	$input.on('input keyup', filter);
2091})(jQuery);
2092// ADA, Fix Google Translate Inputs
2093function fixGoogleTranslateInputs() {
2094		const inputs = [
2095			{ id: "goog-gt-votingInputSrcLang", label: "Source Language Input" },
2096			{ id: "goog-gt-votingInputTrgLang", label: "Target Language Input" },
2097			{ id: "goog-gt-votingInputSrcText", label: "Source Text Input" },
2098			{ id: "goog-gt-votingInputTrgText", label: "Target Text Input" },
2099			{ id: "goog-gt-votingInputVote", label: "Vote Input" },
2100		];
2101
2102		let allLabelsSet = true;
2103		inputs.forEach((item) => {
2104			const input = document.getElementById(item.id);
2105			if (input) {
2106				input.setAttribute("aria-label", item.label);
2107			} else {
2108				allLabelsSet = false;
2109			}
2110		});
2111
2112		if (allLabelsSet) {
2113			googleObserver.disconnect();
2114		}
2115	}
2116	const googleObserver = new MutationObserver((mutationsList, observer) => {
2117		for (let mutation of mutationsList) {
2118			if (mutation.type === "childList") {
2119				fixGoogleTranslateInputs();
2120			}
2121		}
2122	});
2123	googleObserver.observe(document.body, { childList: true, subtree: true });
2124 fixGoogleTranslateInputs();
2125</script>
vendor: 2 bytes, line 2125
2125
2126<script>
2127// === prevent translation on certain elements ===
2128var NO_TRANSLATE_SELECTORS = [
2129	'.material-icons',
2130	'.main-logo',
2131	'.nav-label',
2132	'.mini-calendar',
2133	'.rz-address-wrapper',
2134	'[data-no-translate]',
2135	'a[href^="mailto:"]'
2136];
2137
2138function applyNoTranslate() {
2139	try {
2140		NO_TRANSLATE_SELECTORS.forEach(function (sel) {
2141			var $els = $(sel);
2142			if ($els.length) {
2143				$els
2144					.addClass('notranslate')
2145					.attr('translate', 'no')
2146					.attr('lang', $els.attr('lang') || 'en');
2147			}
2148		});
2149	} catch (e){
2150		
2151	}
2152}
2153
2154$(applyNoTranslate);
2155var noTranslateObserver = new MutationObserver(function () {
2156	applyNoTranslate();
2157});
2158noTranslateObserver.observe(document.documentElement, { childList: true, subtree: true });
2159</script>
2159
2160<div class="offcanvas offcanvas-end offcanvas-business-item" tabindex="-1" id="catalogueDetails" aria-modal="true">
2161	<div class="offcanvas-body p-0">
2162 		<div class="ratio ratio-16x9 mb-4 featured-image-wrap z-0" style="background-image: url('');"></div>
2163		<button type="button" class="btn-close m-3 me-4 p-2 position-absolute end-0 top-0 bg-white" data-bs-dismiss="offcanvas" aria-label="Close"></button>
2164		<h4 class="p-2 px-md-4 catalogue-title">Catalogue title</h4>
2165		<ul class="nav nav-underline justify-content-start border-bottom m-0 px-4" id="businessTabs" role="tablist">
2166			<li class="nav-item m-0 " role="presentation">
2167				<button class="nav-link py-2 active" id="home-tab" data-bs-toggle="tab" data-bs-target="#overview-tab-pane" type="button" role="tab" aria-controls="overview-tab-pane" aria-selected="true">Overview</button>
2168			</li>
2169			<li class="nav-item m-0" role="presentation">
2170				<button class="nav-link py-2" id="profile-tab" data-bs-toggle="tab" data-bs-target="#about-tab-pane" type="button" role="tab" aria-controls="about-tab-pane" aria-selected="false" tabindex="-1">About</button>
2171			</li>
2172			<li class="nav-item m-0 d-none" role="presentation">
2173				<button class="nav-link py-2" id="contact-tab" data-bs-toggle="tab" data-bs-target="#photos-tab-pane" type="button" role="tab" aria-controls="photos-tab-pane" aria-selected="false" tabindex="-1">Photos</button>
2174			</li>
2175		</ul>
2176		<div id="business-details">
2177			<div class="tab-content" id="businessTabContent">
2178				<div class="tab-pane p-4 fade active show" id="overview-tab-pane" role="tabpanel" tabindex="0">
2179					<div class="row row-cols-3 row-cols-md-3 py-lg-3 px-2 catalogue-helpful-links">
2180						<p class="d-flex flex-column text-center m-0">
2181							<a href="" class="btn btn-link px-0 py-4 p-lg-4 d-flex flex-column text-decoration-none row g-4"><i class="m-0 bi bi-box-arrow-up-right lh-1 fs-2"></i><span>Website</span></a>
2182						</p>
2183						<p class="d-flex flex-column text-center m-0 catalogue-map-link">
2184							<a href="" class="btn btn-link px-0 py-4 p-lg-4 d-flex flex-column text-decoration-none row g-4"><i class="m-0 bi bi-geo-alt lh-1 fs-2"></i><span>View Map</span></a>
2185						</p>
2186						<!-- <p class="d-flex flex-column text-center m-0">
2187							<a href="" class="btn btn-link px-0 py-4 p-lg-4 d-flex flex-column text-decoration-none row g-4"><i class="m-0 bi bi-heart lh-1 fs-2"></i><span>Save</span></a>
2188						</p> -->
2189						<p class="d-flex flex-column text-center m-0">
2190							<a href="" class="btn btn-link px-0 py-4 p-lg-4 d-flex flex-column text-decoration-none row g-4" data-bs-toggle="modal" data-bs-target="#shareModal"><i class="m-0 bi bi-share lh-1 fs-2"></i><span>Share</span></a>
2191						</p>
2192					</div><!-- /.d-flex -->
2193					<hr class="mt-0 mb-4">
2194					<div class="row row-cols-1 row-cols-md-3 catalogue-contacts gap-md-3">
2195					</div><!-- /.row -->
2196					<table class="table catalogue-hours">
2197						<thead>
2198							<tr>
2199								<th scope="col" style="width:160px" class="ps-0 small text-muted">Days</th>
2200								<th scope="col" class="small text-muted">Hours</th>
2201							</tr>
2202						</thead>
2203
2204						<tbody class="table-group-divider">
2205							<tr>
2206								<th scope="row" class="ps-0 text-nowrap">Sunday</th>
2207								<td></td>
2208							</tr>
2209							<tr>
2210								<th scope="row" class="ps-0 text-nowrap">Monday</th>
2211								<td></td>
2212							</tr>
2213							<tr>
2214								<th scope="row" class="ps-0 text-nowrap">Tuesday</th>
2215								<td></td>
2216							</tr>
2217							<tr>
2218								<th scope="row" class="ps-0 text-nowrap">Wednesday</th>
2219								<td></td>
2220							</tr>
2221							<tr>
2222								<th scope="row" class="ps-0 text-nowrap">Thursday</th>
2223								<td></td>
2224							</tr>
2225							<tr>
2226								<th scope="row" class="ps-0 text-nowrap">Friday</th>
2227								<td></td>
2228							</tr>
2229							<tr>
2230								<th scope="row" class="ps-0 text-nowrap">Saturday</th>
2231								<td></td>
2232							</tr>
2233						</tbody>
2234					</table>
2235				</div><!-- /.tab-pane -->
2236				<div class="tab-pane p-4 fade" id="about-tab-pane" role="tabpanel" tabindex="0">
2237				</div><!-- /.tab-pane -->
2238				<div class="tab-pane p-4 fade" id="photos-tab-pane" role="tabpanel" tabindex="0">
2239					<div class="alert alert-warning text-dark border-0 border-start border-warning rounded-0 show" style="border-width:5px!important">#todo masonry has to refresh after clicking photos tab</div>
2240					<div class="rz-gallery-wrap">
2241
2242						<div id="businessDetailslightgallery" class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-2" data-masonry="{&quot;percentPosition&quot;: true, &quot;itemSelector&quot;: &quot;.rz-gallery-image&quot;}" style="position: relative; height: 0px;">
2243
2244							<!-- <div data-src="_assets_/images/no-image-slider-2.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2245								<img src="_assets_/images/no-image-slider-2.jpg" class="w-100" alt="">
2246												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2247									<i class="bi bi-arrows-angle-expand lh-1"></i>
2248								</span>
2249							</div>
2250							
2251							<div data-src="_assets_/images/no-image-slider.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2252								<img src="_assets_/images/no-image-slider.jpg" class="w-100" alt="">
2253												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2254									<i class="bi bi-arrows-angle-expand lh-1"></i>
2255								</span>
2256							</div>
2257							
2258							<div data-src="_assets_/images/no-image-slider-2.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2259								<img src="_assets_/images/no-image-slider-2.jpg" class="w-100" alt="">
2260												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2261									<i class="bi bi-arrows-angle-expand lh-1"></i>
2262								</span>
2263							</div>
2264							
2265							<div data-src="_assets_/images/no-image-slider-2.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2266								<img src="_assets_/images/no-image-slider-2.jpg" class="w-100" alt="">
2267												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2268									<i class="bi bi-arrows-angle-expand lh-1"></i>
2269								</span>
2270							</div>
2271							
2272							<div data-src="_assets_/images/no-image-slider-2.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2273								<img src="_assets_/images/no-image-slider-2.jpg" class="w-100" alt="">
2274												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2275									<i class="bi bi-arrows-angle-expand lh-1"></i>
2276								</span>
2277							</div> -->
2278
2279						</div><!-- #lightgallery -->
2280					</div><!-- /.rz-gallery-wrap -->
2281				</div><!-- /.tab-pane -->
2282			</div><!-- /.tab-content -->
2283		</div><!-- /#business-details -->
2284	</div><!-- /.offcanvas-body -->
2285</div>
2286
2287
2288<script>
2289
2290var catalogueDetailsMap = { modal: null };
2291var catalogueJSONData = null;
2292
2293if (typeof indexByIdOrRid !== 'function') {
2294	function indexByIdOrRid(data){
2295		if (!data) return {};
2296		if (!Array.isArray(data)) return data;
2297		return data.reduce((m, item) => {
2298			if (!item) return m;
2299			const key = item.rid ?? item.id;
2300			if (key != null) m[String(key)] = item;
2301			return m;
2302		}, {});
2303	}
2304}
2305
2306function openCatalogueDetails(rid) {
2307	if (!catalogueDetailsMap.modal || !catalogueJSONData) return;
2308
2309	rid = String(rid);
2310	var cRecord = catalogueJSONData[rid];
2311	if (!cRecord) return;
2312
2313	var m = catalogueDetailsMap;
2314
2315	var parsedOptions = cRecord.options;
2316	if (typeof parsedOptions === 'string') {
2317		try { parsedOptions = JSON.parse(parsedOptions); } catch(e){ parsedOptions = {}; }
2318	}
2319	parsedOptions = parsedOptions || {};
2320
2321	var imgURL = (cRecord.image || '').trim();
2322	if (imgURL && !imgURL.endsWith('/')) {
2323		m.img && m.img.classList.remove('d-none');
2324		if (m.img) {
2325			m.img.style.backgroundImage = "url('" + imgURL + "')";
2326		}
2327	} else {
2328		if (m.img) {
2329			m.img.style.backgroundImage = '';
2330			m.img.classList.add('d-none');
2331		}
2332	}
2333
2334	// Title
2335	if (m.title) {
2336		var rawTitle = cRecord.title || cRecord.name || "";
2337		m.title.textContent = decodeHtmlEntities(rawTitle);
2338	}
2339
2340	if (m.helpful) {
2341		var links = m.helpful.querySelectorAll("a");
2342		if (links.length) {
2343			var el = links[0];
2344			var webUrl  = (parsedOptions.website_url || "").trim();
2345			var webText = (parsedOptions.website_text || "Visit Website").trim();
2346			if (webUrl && webUrl !== "#") {
2347				el.href = webUrl;
2348				el.target = "_blank";
2349				var span = el.querySelector("span");
2350				if (span) span.innerText = webText;
2351				el.parentElement && el.parentElement.classList.remove("d-none");
2352			} else {
2353				el.href = "";
2354				el.parentElement && el.parentElement.classList.add("d-none");
2355			}
2356		}
2357	}
2358
2359	if (m.maplink) {
2360		var mapAs = m.maplink.querySelectorAll("a");
2361		if (mapAs.length) {
2362			var mapEl = mapAs[0];
2363			var addr = (parsedOptions.val_address || "").trim();
2364			if (addr) {
2365				var encoded = encodeURIComponent(addr).replace(/%20/g, "+");
2366				mapEl.href = "https://www.google.com/maps/search/?api=1&query=" + encoded;
2367				mapEl.target = "_blank";
2368				mapEl.parentElement && mapEl.parentElement.classList.remove('d-none');
2369			} else {
2370				mapEl.href = "";
2371				mapEl.parentElement && mapEl.parentElement.classList.add('d-none');
2372			}
2373		}
2374	}
2375
2376	if (m.contacts) {
2377		m.contacts.innerHTML = "";
2378		if (Array.isArray(parsedOptions.contacts)) {
2379			parsedOptions.contacts.forEach(function(contact) {
2380				var newAddress = document.createElement("address");
2381				newAddress.innerHTML = '<strong class="small text-muted">' + (contact.val_header||'') + '</strong><br>';
2382
2383				var inner = contact.val_text || '';
2384				if (contact.val_href) {
2385					try {
2386						var href = contact.val_href;
2387						var isSelf = href.startsWith('tel:') || href.startsWith('mailto:') || href.startsWith(location.origin);
2388						inner = '<a href="'+href+'" target="'+(isSelf?'_self':'_blank')+'">'+ inner +'</a>';
2389					} catch(e) { /* ignore bad href */ }
2390				}
2391				newAddress.innerHTML += inner;
2392				m.contacts.append(newAddress);
2393			});
2394		}
2395	}
2396
2397	if (m.hours) {
2398		const table = m.hours; 
2399		const dayKeys = [
2400			'val_sunday','val_monday','val_tuesday','val_wednesday',
2401			'val_thursday','val_friday','val_saturday'
2402		];
2403	
2404		const tds = Array.from(table.querySelectorAll('tbody td'));
2405		let hasAny = false;
2406	
2407		tds.forEach((td, i) => {
2408			const val = parsedOptions.hours && parsedOptions.hours[dayKeys[i]];
2409			const v = (val || '').trim();
2410			td.textContent = v;
2411			if (v) hasAny = true;
2412		});
2413	
2414		table.classList.toggle('d-none', !hasAny);
2415	}
2416
2417	if (m.detail) {
2418		const pane = m.detail;
2419		const tabPane = pane.closest('.tab-pane');
2420		const tabLink = tabPane ? document.querySelector(`[data-bs-target="#${tabPane.id}"]`) : null;
2421	
2422		pane.innerHTML = "Loading...";
2423	
2424		fetch('catalogue/' + encodeURIComponent(rid) + '.php?display=json')
2425			.then(res => res.json())
2426			.then(data => {
2427				const html = (data && data.details) ? data.details.trim() : "";
2428	
2429				pane.innerHTML = html || "";
2430	
2431				const isEmpty = !html;
2432				if (tabPane) tabPane.classList.toggle('d-none', isEmpty);
2433				if (tabLink) tabLink.classList.toggle('d-none', isEmpty);
2434			})
2435			.catch(() => {
2436				pane.innerHTML = "";
2437				if (tabPane) tabPane.classList.add('d-none');
2438				if (tabLink) tabLink.classList.add('d-none');
2439			});
2440	}
2441
2442	// Gallery #TODO)
2443	if (m.gallery) m.gallery.innerHTML = "";
2444
2445	try {
2446		bootstrap.Offcanvas.getOrCreateInstance(m.modal).show();
2447	} catch(e) {
2448		console.error('Offcanvas show failed:', e);
2449	}
2450
2451	if (window.pushOcState) pushOcState('catalogueDetails', rid);
2452}
2453
2454document.addEventListener('DOMContentLoaded', function() {
2455	var modal = document.querySelector("#catalogueDetails");
2456	if (!modal) return;
2457
2458	catalogueDetailsMap = {
2459		modal: modal,
2460		img: modal.querySelector(".featured-image-wrap"),
2461		title: modal.querySelector(".offcanvas-body .catalogue-title"),
2462		helpful: modal.querySelector(".catalogue-helpful-links"),
2463		maplink: modal.querySelector(".catalogue-map-link"),
2464		contacts: modal.querySelector(".catalogue-contacts"),
2465		hours: modal.querySelector(".catalogue-hours"),
2466		detail: modal.querySelector("#about-tab-pane"),
2467		gallery: modal.querySelector("#businessDetailslightgallery"),
2468	};
2469
2470	fetch('_includes_/published/catalogue.json')
2471		.then(res => res.json())
2472		.then(data => { catalogueJSONData = indexByIdOrRid(data); })
2473		.then(() => { if (typeof tryDeepLinkNow === 'function') tryDeepLinkNow('catalogueDetails'); })
2474		.catch((e) => { console.error('catalogue.json load failed', e); catalogueJSONData = {}; });
2475});
2476</script>
2476<div class="offcanvas offcanvas-bottom offcanvas-news-item mx-auto rounded-0 bg-body" tabindex="-1" id="newsDetails" style="--bs-offcanvas-height:95vh;">
2477<div class="progress rounded-0" role="progressbar" aria-label="Scroll Progress" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="height: 8px">
2478	<div class="progress-bar bg-secondary"></div></div>
2479
2480	<div class="offcanvas-header border-bottom fw-bold">
2481		Article Details
2482		<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
2483	</div>
2484	<div class="offcanvas-body pt-0">
2485 		<div class="container p-0">
2486			<div class="col-lg-9 mx-auto">
2487
2488			<div class="sticky-top">
2489				<div class="d-flex small bg-body flex-wrap align-items-center py-3">
2490					<div class="d-flex me-3">
2491						<div class="d-flex post-info-wrap">
2492							<p class="post-published m-0">
2493								<span class="opacity-75">Published:</span>
2494								<time></time> <i class="bi bi-dot d-inline-block"></i>
2495								<span id="eta"></span>
2496							</p><!-- /.post-published -->
2497						</div><!-- /.post-info-wrap -->
2498					</div><!-- /.d-flex -->
2499					
2500					<div class="post-btns-wrap ms-auto">
2501						<button type="button" class="btn px-3 py-1 py-md-2 btn-outline-light d-flex gap-2 align-items-center" data-bs-toggle="modal" data-bs-target="#shareModal" aria-label="Share this post">
2502							<i class="bi bi-share align-middle" aria-hidden="true"></i>
2503							<span class="visually-hidden">Share</span>
2504						</button>
2505					</div><!-- /.post-btns-wrap -->
2506					
2507				</div><!-- /.d-flex -->
2508			</div><!-- /.sticky-top -->
2509
2510		<div class="featured-image-wrapper"></div>
2511		
2512			<div class="p-lg-2 px-md-5">
2513				<h3 class="mb-3 h3">Article Title</h3>
2514				<nav aria-label="breadcrumb" class="breadcrumb mb-3">
2515					<ul>
2516						<li class="breadcrumb-item"><a href="./news">Articles</a> 
2517						<li class="breadcrumb-item active text-truncate" aria-current="page"></li>
2518					</ul>
2519				</nav>
2520				<div id="news-full-details" class="article-full-details"></div><!-- /#post-details -->
2521			</div><!-- /.p-lg-2 -->
2522			</div><!-- /.col-lg-9 -->
2523		</div><!-- /.container -->
2524	</div><!-- /.offcanvas-body -->
2525</div><!-- /.offcanvas -->
2526
2527<script>
2528var newsDetailsMap = { modal: null };
2529var newsJSONData = null;
2530
2531if (typeof indexByIdOrRid !== 'function') {
2532	function indexByIdOrRid(data){
2533		if (!data) return {};
2534		if (!Array.isArray(data)) return data;
2535		return data.reduce((m, item) => {
2536			if (!item) return m;
2537			const key = item.rid ?? item.id;
2538			if (key != null) m[String(key)] = item;
2539			return m;
2540		}, {});
2541	}
2542}
2543
2544function hasImg(url) {
2545	if (!url) return false;
2546	var s = String(url).trim();
2547	if (!s) return false;
2548	if (/^(null|undefined|none|n\/a)$/i.test(s)) return false;
2549	return true;
2550}
2551
2552/* global helper: decode &#10024; &amp; etc */
2553window.decodeHtmlEntities = window.decodeHtmlEntities || function (str) {
2554	if (str == null) return '';
2555	const ta = document.createElement('textarea');
2556	ta.innerHTML = String(str);
2557	return ta.value;
2558};
2559
2560function setFeaturedImage(url) {
2561	var m = newsDetailsMap;
2562	var modal = m.modal;
2563	if (!modal) return;
2564
2565	var wrap = modal.querySelector(".featured-image-wrapper");
2566	if (!wrap) return;
2567
2568	if (hasImg(url)) {
2569		wrap.className = "featured-image-wrapper ratio ratio-16x9 mb-4 featured-image-wrap rounded";
2570		wrap.style.backgroundImage = "url('" + url + "')";
2571		m.img = wrap;
2572	} else {
2573		wrap.className = "featured-image-wrapper";
2574		wrap.style.backgroundImage = "";
2575		m.img = null;
2576	}
2577}
2578
2579function openNewsDetails(rid) {
2580	if (!newsDetailsMap.modal || !newsJSONData) return;
2581
2582	rid = String(rid);
2583	var cRecord = newsJSONData[rid];
2584	if (!cRecord) return;
2585
2586	var m = newsDetailsMap;
2587
2588	setFeaturedImage(cRecord.image);
2589	
2590	const titleDecoded = decodeHtmlEntities(cRecord.title || "");
2591	
2592	m.title.textContent      = titleDecoded;
2593	m.date.textContent       = cRecord.date || cRecord.posted || "";
2594	m.breadcrumb.textContent = titleDecoded;
2595
2596	m.detail.innerHTML = "Loading...";
2597	fetch('articles/' + encodeURIComponent(rid) + '.php?display=json')
2598		.then(res => res.json())
2599		.then(newsData => { m.detail.innerHTML = newsData.details || ""; })
2600		.catch(() => { m.detail.innerHTML = ""; });
2601
2602	try {
2603		bootstrap.Offcanvas.getOrCreateInstance(m.modal).show();
2604	} catch(e) {
2605		console.error('Offcanvas show failed:', e);
2606	}
2607
2608	if (window.pushOcState) pushOcState('newsDetails', rid);
2609}
2610
2611document.addEventListener('DOMContentLoaded', function() {
2612	var modal = document.querySelector("#newsDetails");
2613	if (!modal) return; 
2614
2615	newsDetailsMap = {
2616		modal: modal,
2617		img: modal.querySelector(".featured-image-wrapper"),
2618		title: modal.querySelector("h3.h3"),
2619		date: modal.querySelector(".post-published>time"),
2620		breadcrumb: modal.querySelector(".breadcrumb-item.active"),
2621		detail: modal.querySelector("#news-full-details")
2622	};
2623	
2624	// Scroll progress bar
2625	var scrollTarget  = modal.querySelector('.offcanvas-body');
2626	var progressBar   = modal.querySelector('.progress-bar');
2627	var progressOuter = modal.querySelector('.progress[role="progressbar"]');
2628	
2629	function updateScrollProgress() {
2630		if (!scrollTarget || !progressBar) return;
2631	
2632		var maxScroll = scrollTarget.scrollHeight - scrollTarget.clientHeight;
2633		var current   = scrollTarget.scrollTop || 0;
2634	
2635		var pct = 0;
2636		if (maxScroll > 0) {
2637			pct = (current / maxScroll) * 100;
2638		}
2639		pct = Math.min(Math.max(pct, 0), 100);
2640	
2641		progressBar.style.width = pct + '%';
2642		if (progressOuter) {
2643			progressOuter.setAttribute('aria-valuenow', Math.round(pct));
2644		}
2645	}
2646	
2647	if (scrollTarget && progressBar) {
2648		scrollTarget.addEventListener('scroll', updateScrollProgress, { passive: true });
2649	
2650		modal.addEventListener('show.bs.offcanvas', function () {
2651			if (!scrollTarget) return;
2652			scrollTarget.scrollTop = 0;
2653			updateScrollProgress();
2654		});
2655	
2656		updateScrollProgress();
2657	}
2658
2659	fetch('_includes_/published/news_list.json')
2660		.then(res => res.json())
2661		.then(data => { newsJSONData = indexByIdOrRid(data); })
2662		.then(() => { if (typeof tryDeepLinkNow === 'function') tryDeepLinkNow('newsDetails'); })
2663		.catch((e) => { console.error('news_list.json load failed', e); newsJSONData = {}; });
2664});
2665</script>
2665<div class="offcanvas offcanvas-end offcanvas-job-item"
2666	tabindex="-1"
2667	id="jobDetails">
2668	<div class="offcanvas-header bg-light p-4 px-lg-5">
2669		<h3 class="offcanvas-title fs-4">Job post</h3>
2670		<button type="button"
2671			class="btn-close"
2672			data-bs-dismiss="offcanvas"
2673			aria-label="Close"></button>
2674	</div>
2675	<div class="offcanvas-body p-0">
2676
2677		<div class="p-4 p-lg-5">
2678			<div class="d-flex align-items-center justify-content-between">
2679				<div>
2680					<p class="h3 m-0 fs-3 d-flex flex-column">
2681						<small class="fs-6 text-muted fw-bold">Position</small>
2682					</p>
2683					<h4 class="job-position">Job Position</h4>
2684				</div>
2685				<span class="btn btn-link btn-lg ms-auto d-none"
2686					id="saveItemBtn"
2687					tabindex="0">
2688					<i class="bi bi-heart text-danger ms-auto cursor-pointer"></i>
2689				</span>
2690				<span class="btn btn-link btn-lg p-0"
2691					data-bs-toggle="modal"
2692					data-bs-target="#shareModal"
2693					tabindex="0">
2694					<i class="bi bi-share text-body"></i>
2695				</span>
2696			</div>
2697		</div><!-- /.p-4 -->
2698
2699		<div class="job-details">
2700			<div class="bg-light p-4 p-lg-5">
2701				<div class="row row-cols-1 row-cols-sm-2 g-2 attribute-callouts"></div>
2702
2703				<a href="#"
2704					class="btn btn-primary mt-lg-4 apply-link">
2705					Apply Now<i class="bi bi-box-arrow-up-right ms-2"></i>
2706				</a>
2707			</div><!-- /.bg-light -->
2708
2709			<div class="bg-white p-4 p-lg-5">
2710				<!-- <p class="small bg-success-subtle text-success-emphasis p-1 px-2 mb-2 rounded-pill d-inline-flex">
2711					<small><i class="bi bi-exclamation-circle"></i> Urgent Hire</small>
2712				</p> -->
2713				<p class="fs-4"></p>
2714				<div class="job-full-details"></div>
2715			</div><!-- /.bg-white -->
2716		</div><!-- /#job-details -->
2717	</div><!-- /.offcanvas-body -->
2718</div><!-- /.offcanvas -->
2719
2720<div class="toast align-items-center text-bg-success border-0 position-fixed bottom-0 end-0 m-4"
2721	id="savedItem"
2722	role="alert"
2723	aria-live="assertive"
2724	aria-atomic="true">
2725	<div class="d-flex">
2726		<div class="toast-body">
2727			Added to your favorites!
2728			<a href="" class="text-light">See all here</a>
2729		</div>
2730		<button type="button"
2731			class="btn-close btn-close-white me-2 m-auto"
2732			data-bs-dismiss="toast"
2733			aria-label="Close"></button>
2734	</div>
2735</div><!-- /.toast -->
2736
2737<script>
2738var jobDetailsMap = { modal: null };
2739var jobJSONData = null;
2740
2741if (typeof indexByIdOrRid !== 'function') {
2742	function indexByIdOrRid(data){
2743		if (!data) return {};
2744		if (!Array.isArray(data)) return data; 
2745		return data.reduce((m, item) => {
2746			if (!item) return m;
2747			const key = item.rid ?? item.id;
2748			if (key != null) m[String(key)] = item;
2749			return m;
2750		}, {});
2751	}
2752}
2753
2754function openJobDetails(rid) {
2755	if (!jobDetailsMap.modal || !jobJSONData) return;
2756
2757	rid = String(rid);
2758	var cRecord = jobJSONData[rid];
2759	if (!cRecord) return;
2760
2761	var m = jobDetailsMap;
2762	var parsedOptions = cRecord.options || {};
2763
2764	if (m.titleB) m.titleB.textContent = decodeHtmlEntities(cRecord.title || "");
2765
2766	if (m.callouts) {
2767		m.callouts.innerHTML = "";
2768		if (Array.isArray(parsedOptions.attributes)) {
2769			parsedOptions.attributes.forEach(function(attr) {
2770				var header = attr.val_header || "";
2771				var text   = attr.val_text   || "";
2772				var icon   = parseIconClass(attr.val_icon) || { class: "bi bi-info-circle", ligature: "" };
2773				var wrap = document.createElement("div");
2774				wrap.innerHTML = `
2775					<p class="d-flex gap-3 align-items-center my-2 my-lg-3">
2776						<i class="${icon.class} flex-shrink-0 d-flex align-items-center justify-content-center text-primary bg-white rounded-circle w-h-48 fs-5">${icon.ligature}</i>
2777						<span><strong class="small text-muted lh-1">${header}</strong><br>${text}</span>
2778					</p>`;
2779				m.callouts.append(wrap.firstElementChild);
2780			});
2781		}
2782
2783		var posted = cRecord.posted || "";
2784		if (posted) {
2785			var pWrap = document.createElement('div');
2786			pWrap.innerHTML = `
2787				<p class="d-flex gap-3 align-items-center">
2788					<i class="bi bi-clock flex-shrink-0 d-flex align-items-center justify-content-center text-primary bg-white rounded-circle w-h-48 fs-5"></i>
2789					<span><strong class="small text-muted lh-1">Posted</strong><br>${posted}</span>
2790				</p>`;
2791			m.callouts.append(pWrap.firstElementChild);
2792		}
2793	}
2794
2795	if (m.apply) {
2796		var btnURL  = (parsedOptions.website_url || "").trim();
2797		var btnText = (parsedOptions.website_text || "Learn More").trim();
2798
2799		if (btnURL && btnURL !== "#") {
2800			m.apply.classList.remove("d-none");
2801			m.apply.setAttribute("href", btnURL);
2802			m.apply.setAttribute("target", "_blank");
2803			m.apply.innerHTML = btnText + '<i class="bi bi-box-arrow-up-right ms-2"></i>';
2804		} else {
2805			m.apply.classList.add("d-none");
2806			m.apply.setAttribute("href", "#");
2807		}
2808	}
2809
2810	if (m.detail) {
2811		const pane = m.detail;
2812		const tabPane = pane.closest('.tab-pane');
2813		const tabLink = tabPane ? document.querySelector(`[data-bs-target="#${tabPane.id}"]`) : null;
2814	
2815		pane.innerHTML = "Loading...";
2816	
2817		fetch('jobs/' + encodeURIComponent(rid) + '.php?display=json')
2818			.then(res => res.json())
2819			.then(data => {
2820				const html = (data && data.details) ? data.details.trim() : "";
2821	
2822				pane.innerHTML = html || "";
2823	
2824				const isEmpty = !html;
2825				if (tabPane) tabPane.classList.toggle('d-none', isEmpty);
2826				if (tabLink) tabLink.classList.toggle('d-none', isEmpty);
2827			})
2828			.catch(() => {
2829				pane.innerHTML = "";
2830				if (tabPane) tabPane.classList.add('d-none');
2831				if (tabLink) tabLink.classList.add('d-none');
2832			});
2833	}
2834
2835	try {
2836		bootstrap.Offcanvas.getOrCreateInstance(m.modal).show();
2837	} catch(e) {
2838		console.error('Offcanvas show failed:', e);
2839	}
2840
2841	if (window.pushOcState) pushOcState('jobDetails', rid);
2842}
2843
2844document.addEventListener('DOMContentLoaded', function() {
2845	var modal = document.querySelector("#jobDetails");
2846	if (!modal) return; 
2847
2848	jobDetailsMap = {
2849		modal: modal,
2850		titleB: modal.querySelector(".job-position"),
2851		callouts: modal.querySelector(".attribute-callouts"),
2852		detail: modal.querySelector(".job-full-details"),
2853		apply: modal.querySelector(".apply-link")
2854	};
2855
2856	fetch('_includes_/published/job_list.json')
2857		.then(res => res.json())
2858		.then(data => { jobJSONData = indexByIdOrRid(data); })
2859		.then(() => { if (typeof tryDeepLinkNow === 'function') tryDeepLinkNow('jobDetails'); })
2860		.catch((e) => { console.error('job_list.json load failed', e); jobJSONData = {}; });
2861});
2862
2863</script>
2863
2864<div class="offcanvas offcanvas-end offcanvas-bid-item"
2865	tabindex="-1"
2866	id="bidDetails">
2867	<div class="offcanvas-header bg-light p-4 px-lg-5">
2868		<h3 class="offcanvas-title fs-4">Bid details</h3>
2869		<button type="button"
2870			class="btn-close"
2871			data-bs-dismiss="offcanvas"
2872			aria-label="Close"></button>
2873	</div>
2874	<div class="offcanvas-body p-0">
2875
2876		<div class="p-4 p-lg-5">
2877			<div class="d-flex align-items-center justify-content-between">
2878				<div>
2879					<p class="mb-2">
2880						<span class="small">Status:</span> <span class="badge bid-status d-none d-inline-flex"></span>
2881					</p>
2882					<h4 class="bid-title">Bid Title</h4>
2883				</div>
2884				<span class="btn btn-link btn-lg p-0"
2885					data-bs-toggle="modal"
2886					data-bs-target="#shareModal"
2887					tabindex="0">
2888					<i class="bi bi-share text-body"></i>
2889				</span>
2890			</div>
2891		</div>
2892
2893		<div class="bid-details">
2894			<div class="bg-light p-4 p-lg-5">
2895				<div class="row row-cols-1 row-cols-sm-2 g-2 start-end-dates">
2896					<p class="d-flex gap-3 align-items-center my-2 my-lg-3 bid-start-wrap">
2897						<i class="bi bi-check2 flex-shrink-0 d-flex align-items-center justify-content-center text-success bg-white rounded-circle w-h-48 fs-4"></i>
2898						<span>
2899							<strong class="small text-muted lh-1">Start date</strong><br>
2900							Start: <span class="bid-start-date"></span>
2901						</span>
2902					</p>
2903				
2904					<p class="d-flex gap-3 align-items-center my-2 my-lg-3 bid-end-wrap">
2905						<i class="bi bi-x-lg flex-shrink-0 d-flex align-items-center justify-content-center text-danger bg-white rounded-circle w-h-48 fs-5"></i>
2906						<span>
2907							<strong class="small text-muted lh-1">End date</strong><br>
2908							End: <span class="bid-end-date"></span>
2909						</span>
2910					</p>
2911				</div>
2912				<a href="#"
2913					class="btn btn-primary mt-3 mt-lg-4 apply-link">
2914					Apply Now<i class="bi bi-box-arrow-up-right ms-2"></i>
2915				</a>
2916			</div>
2917
2918			<div class="bg-white p-4 p-lg-5">
2919				<p class="fs-4"></p>
2920				<div class="bid-full-details"></div>
2921			</div>
2922		</div>
2923	</div>
2924</div>
2925
2926<script>
2927var bidDetailsMap = { modal: null };
2928var bidJSONData = null;
2929
2930if (typeof indexByIdOrRid !== 'function') {
2931	function indexByIdOrRid(data){
2932		if (!data) return {};
2933		if (!Array.isArray(data)) return data;
2934		return data.reduce((m, item) => {
2935			if (!item) return m;
2936			const key = item.rid ?? item.id;
2937			if (key != null) m[String(key)] = item;
2938			return m;
2939		}, {});
2940	}
2941}
2942
2943function fmtDate(iso) {
2944	if (!iso) return "";
2945	var s = String(iso).trim();
2946	if (!s) return "";
2947	var d = new Date(s.slice(0, 10) + "T00:00:00");
2948	if (Number.isNaN(d.getTime())) return s;
2949	return d.toLocaleDateString(undefined, { year: "numeric", month: "short", day: "numeric" });
2950}
2951
2952function statusClass(status) {
2953	var s = String(status || "").trim().toLowerCase();
2954	if (s === "open") return "text-bg-success";
2955	if (s === "closed") return "text-bg-danger";
2956	if (s === "awarded") return "text-bg-primary";
2957	if (s === "canceled" || s === "cancelled") return "text-bg-dark";
2958	if (s === "pending") return "text-bg-secondary";
2959	return "text-bg-secondary";
2960}
2961
2962function openBidDetails(rid) {
2963	if (!bidDetailsMap.modal || !bidJSONData) return false;
2964
2965	rid = String(rid);
2966	var cRecord = bidJSONData[rid];
2967	if (!cRecord) return false;
2968
2969	var m = bidDetailsMap;
2970	var parsedOptions = cRecord.options || {};
2971
2972	if (m.titleB) m.titleB.textContent = cRecord.title || "";
2973
2974	// STATUS
2975	if (m.statusEl) {
2976		var status = (parsedOptions.val_status || "").trim();
2977		if (status) {
2978			m.statusEl.className = "small px-2 py-1 rounded-1 bid-status " + statusClass(status);
2979			m.statusEl.textContent = status;
2980			m.statusEl.classList.remove("d-none");
2981		} else {
2982			m.statusEl.classList.add("d-none");
2983			m.statusEl.textContent = "";
2984		}
2985	}
2986
2987	// DATES (Start/End)
2988	var sd = fmtDate(parsedOptions.start_date || parsedOptions.startDate);
2989	var ed = fmtDate(parsedOptions.end_date   || parsedOptions.endDate);
2990	
2991	if (m.startWrap && m.startEl) {
2992		if (sd) {
2993			m.startEl.textContent = sd;
2994			m.startWrap.classList.remove("d-none");
2995		} else {
2996			m.startEl.textContent = "";
2997			m.startWrap.classList.add("d-none");
2998		}
2999	}
3000	
3001	if (m.endWrap && m.endEl) {
3002		if (ed) {
3003			m.endEl.textContent = ed;
3004			m.endWrap.classList.remove("d-none");
3005		} else {
3006			m.endEl.textContent = "";
3007			m.endWrap.classList.add("d-none");
3008		}
3009	}
3010
3011	if (m.apply) {
3012		var btnURL  = (parsedOptions.website_url || "").trim();
3013		var btnText = (parsedOptions.website_text || "Learn More").trim();
3014
3015		if (btnURL && btnURL !== "#") {
3016			m.apply.classList.remove("d-none");
3017			m.apply.setAttribute("href", btnURL);
3018			m.apply.setAttribute("target", "_blank");
3019			m.apply.innerHTML = btnText + '<i class="bi bi-box-arrow-up-right ms-2"></i>';
3020		} else {
3021			m.apply.classList.add("d-none");
3022			m.apply.setAttribute("href", "#");
3023		}
3024	}
3025
3026	if (m.detail) {
3027		var pane = m.detail;
3028		pane.innerHTML = "Loading...";
3029
3030		fetch('bids/' + encodeURIComponent(rid) + '.php?display=json')
3031			.then(function(res){ return res.json(); })
3032			.then(function(data){
3033				var html = (data && data.details) ? String(data.details).trim() : "";
3034				pane.innerHTML = html || "";
3035			})
3036			.catch(function(){
3037				pane.innerHTML = "";
3038			});
3039	}
3040
3041	try {
3042		bootstrap.Offcanvas.getOrCreateInstance(m.modal).show();
3043	} catch(e) {
3044		console.error('Offcanvas show failed:', e);
3045	}
3046
3047	if (window.pushOcState) pushOcState('bidDetails', rid);
3048
3049	return false;
3050}
3051
3052document.addEventListener('DOMContentLoaded', function() {
3053	var modal = document.querySelector("#bidDetails");
3054	if (!modal) return;
3055
3056	bidDetailsMap = {
3057		modal: modal,
3058		titleB: modal.querySelector(".bid-title"),
3059		statusEl: modal.querySelector(".bid-status"),
3060		startWrap: modal.querySelector(".bid-start-wrap"),
3061		endWrap: modal.querySelector(".bid-end-wrap"),
3062		startEl: modal.querySelector(".bid-start-date"),
3063		endEl: modal.querySelector(".bid-end-date"),
3064		detail: modal.querySelector(".bid-full-details"),
3065		apply: modal.querySelector(".apply-link")
3066	};
3067
3068	fetch('_includes_/published/bids_list.json')
3069		.then(function(res){ return res.json(); })
3070		.then(function(data){ bidJSONData = indexByIdOrRid(data); })
3071		.then(function(){ if (typeof tryDeepLinkNow === 'function') tryDeepLinkNow('bidDetails'); })
3072		.catch(function(e){
3073			console.error('bids_list.json load failed', e);
3074			bidJSONData = {};
3075		});
3076});
3077</script>
3077
3078	<div class="rz-brand-footer bg-black small text-white py-3 py-lg-2">
3079		<div class="container-fluid small">
3080			<div class="d-lg-flex align-items-center">
3081				<div class="col w-100 d-flex flex-lg-row flex-column gap-2 mb-lg-0 mb-3 p-0">
3082					<span class="footer-copyright">&copy; 2026 City Of Gatesville, TX</span>
3083					<a class="text-white f-accessibility_statement" href="accessibility_statement/index.php">Accessibility Statement</a>
3084					<a class="text-white f-privacy_policy" href="privacy_policy/index.php">Privacy Policy</a>
3085					<a class="text-white f-terms_and_conditions" href="terms_and_conditions/index.php">Terms and Conditions</a>
3086					<a class="text-white f-cookie_policy" href="cookie_policy/index.php">Cookie Policy</a>
3087				</div><!-- /.col -->
3088				<div class="text-lg-end align-items-center d-xl-flex gap-1 justify-content-start justify-content-lg-end f-powered-by">
3089					Designed &amp; Powered by <a href="https://www.revize.com/" target="_blank" class="text-white">revize.</a>,<br class="d-xl-none"> the Government Website Experts <i class="bi bi-dot"></i> <a href="https://builder1.revize.com/revize/security/index.jsp?webspace=gatesville&filename=/news/index.php" class="btn btn-primary btn-primary-rz btn-sm rounded-1">Staff Login</a>
3090				</div>
3091			</div><!-- /.d-lg-flex -->
3092		</div><!-- /.container-fluid -->
3093	</div>	
3094	
3094<script src="/revize/plugins/revize_calendar/index.v2.js"></script>
3094
3095	
3095<script src="/revize/plugins/zbuilder/v1/website/_assets_/js/scripts.js"></script>
vendor: 81 bytes, lines 3095-3097
3095
3096	<script src="https://www.google.com/recaptcha/api.js" async defer></script>
3097	
3097<script src="/revize/plugins/page_builder/formwizard.form_validation_include.js"></script>
3097
3098	
3099</div>
3100</body>
3101</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.