PageSourceSearch

https://www.wvc-ut.gov/our_community/about_us/index.php

html wvc-ut.gov collected 2026-10-02 10:03:15 UTC 154,688 bytes, 3,415 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4	<base href="https://www.wvc-ut.gov/" />
5	<meta charset="utf-8">
6	<meta http-equiv="X-UA-Compatible" content="IE=edge">
7	<meta name="viewport" content="width=device-width, initial-scale=1"><!-- Metadata Area Starts -->	<title>West Valley City, UT</title>
8	<meta property="og:title" content="West Valley City, UT" />
9	<meta property="og:image" content="https://www.wvc-ut.gov/website_assets/logo.png?t=202606190933170" />
10
11
12<link href="/revize/plugins/setup/css/revize.css" rel="stylesheet" type="text/css" />
13
14
15
16<script type="text/javascript">
17
18
19
20</script>
20
21
22
23
24
25<!-- #jquery -->
26    
26<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/jquery/jquery.min.js"></script>
26
27
28<!-- #jquery lazy -->
29    
29<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/jquery.lazy-master/jquery.lazy.min.js"></script>
29
30    
31<!-- #masonry scripts -->
32    
32<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/masonry.pkgd.min.js" crossorigin="anonymous"></script>
32
33    
33<script src="https://code.jquery.com/ui/1.14.0/jquery-ui.js"></script>
33
34    
35<!-- #lightGallery scripts -->
36    
36<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/lightgallery.min.js"></script>
36
37    
38<!-- lightgallery plugins -->
39    
39<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/plugins/thumbnail/lg-thumbnail.umd.js"></script>
39
40    
40<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/plugins/zoom/lg-zoom.umd.js"></script>
40
41    
41<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/plugins/video/lg-video.min.js"></script>
41
42
43<!-- #lightGallery css -->
44    <link href="/revize/plugins/zbuilder/v1/website/_assets_/plugins/lightGallery-master/dist/css/lightgallery-bundle.min.css" rel="stylesheet" />
45    
46<!-- #bootstrap js + popper js -->
47    
47<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/popperjs/popper.min.js"></script>
47
48    
48<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/bootstrap/js/bootstrap.min.js"></script>
48
49
50<!-- #bootstrap css and fonts -->
51    <link href="/revize/plugins/zbuilder/v1/website/_assets_/plugins/bootstrap/css/bootstrap.css" rel="stylesheet" />
52    <link href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css" rel="stylesheet" />
53
54<!-- #dotjs -->
55    
55<script src="/revize/plugins/revize_calendar/doT.min.js"></script>
55
56        
57<!-- #tiny sider -->
58    <link href="/revize/plugins/zbuilder/v1/website/_assets_/plugins/tiny-slider/dist/tiny-slider.css" rel="stylesheet" />
59    
59<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/tiny-slider/dist/min/tiny-slider.js"></script>
59
60    
61<!-- #font awesome css -->
62    <link href="/revize/plugins/zbuilder/v1/website/_assets_/fonts/font-awesome/css/all.min.css" rel="stylesheet" >
63	
64<!-- #font Google Material Icons -->    
65    <link href="https://fonts.googleapis.com/css2?family=Material+Icons" rel="stylesheet" />
66    <link href="https://fonts.googleapis.com/css2?family=Material+Icons+Outlined" rel="stylesheet" />
67
68<!-- #aos css + js-->
69    
69<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/aos/src/js/aos.min.js"></script>
69
70    <link href="/revize/plugins/zbuilder/v1/website/_assets_/plugins/aos/src/css/aos.min.css" rel="stylesheet" >
71<!-- #aos -->
72
73<!-- #fitty -->
74    
74<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/fitty-gh-pages/dist/fitty.min.js"></script>
74
75    
75<script src="/revize/plugins/zbuilder/v1/website/_assets_/plugins/revizeWeather/js/revizeWeather.min.js"></script>
75
76
77<!-- #layout css -->
78    <link href="/revize/plugins/zbuilder/v1/website/_assets_/css/layout.css?v=1" rel="stylesheet">
79    <link href="_assets_/css/css_variables_T34_R3.css?t=1790792494000" rel="stylesheet">
80
81<!-- #favicons -->
82    <link rel="shortcut icon" href="website_assets/favicon.ico?t=202606250907290">
83    <link rel="apple-touch-icon" href="website_assets/apple-touch-icon.png?t=202606250907340">
84    <meta name="theme-color" content="#000000" />
85
86      <!-- Google tag (gtag.js) -->
vendor: 66 bytes, lines 86-87
86
87  <script async src="https://www.googletagmanager.com/gtag/js?id=
87G-VQW5GLDRK1
vendor: 14 bytes, lines 87-88
87"></script>
88  
88<script>
89    
vendor: 140 bytes, lines 89-93
89window.dataLayer = window.dataLayer || [];
90    function gtag(){dataLayer.push(arguments);}
91    gtag('js', new Date());
92
93    gtag('config', '
93G-VQW5GLDRK1
vendor: 6 bytes, lines 93-94
93');
94  
94</script>
94<style>
95@media (max-width: 767px) {
96    .rz-news-card-list.row-cols-xs > * {flex: 0 0 auto; width:100.0%}
97}
98@media (min-width: 768px) and (max-width: 991px) {
99    .rz-news-card-list.row-cols-md > * {flex: 0 0 auto; width:50.0%}
100}
101@media (min-width: 992px) {
102    .rz-news-card-list.row-cols-lg > * {flex: 0 0 auto; width:33.333332%}
103}
104</style>
105<link href="/revize/plugins/revize_calendar/core/main.css" rel="stylesheet" />
106<link href="/revize/plugins/revize_calendar/daygrid/main.min.css" rel="stylesheet" />
107<link href="/revize/plugins/revize_calendar/timegrid/main.min.css" rel="stylesheet" />
108<link href="/revize/plugins/revize_calendar/list/main.min.css" rel="stylesheet" />
109<link href="_assets_/plugins/revizeCalendar/css/mini.css" rel="stylesheet" />
110<link href="/revize/plugins/revize_calendar/core/nav-panels.css" rel="stylesheet" />
110<script>
111	var defaultCalendarColor = "#3788d8";
112	var ImportCals = [];
113	var calendarProps = {'1' : { 'color' : '#187293' , 'name' : 'Public Events' },
114'2' : { 'color' : '#000000' , 'name' : 'City Office Closures' },
115'3' : { 'color' : '#d06901' , 'name' : 'City Council Meetings' },
116'8' : { 'color' : '' , 'name' : 'calendar-list-options' },
117};
118	var RZCalendarTimezone = "";
119</script>
119
120
121</head>
122<body id="freeform" class="rz-page-links-992" data-zipcode="84119" data-header-left="false">
123
124
125
126
127<script type="text/javascript">
128if (typeof(RZ) == 'undefined') RZ = {};
129if (!RZ.link) RZ.link = new Object();
130RZ.pagetype = 'template'
131RZ.baseurlprefix = '../../'
132RZ.baseurlpath = 'our_community/about_us/'
133RZ.protocolRelativeRevizeBaseUrl='//builder1.revize.com'
134
135RZ.pagetemplatename = 'freeform'
136RZ.pagetemplateid = '1'
137RZ.pagemodule = "links"
138RZ.pagemoduleid = '1'
139RZ.pagerecordid = '992';
140
141RZ.pageid = "links-992";
142RZ.pageparentid = '991';
143RZ.pagesectionid = '992';
144RZ.pagesectionname = 'about_us';
145RZ.pagesectionlevel = '2';
146RZ.pagesectionfolder = 'our_community/about_us/';
147RZ.pagesectionfilter = 'sectionid=992';
148RZ.pagelinkfilter = 'linklevel=2 and linksectionid=992';
149RZ.pagelinklevel = '2';
150RZ.pagelinkid = '992';
151RZ.pageidfield = '';
152
153RZ.isnewrecord = false;
154RZ.editmodule = "";
155RZ.editrecordid = '992';
156RZ.editrecordversion = '';
157RZ.editversion = '';
158RZ.editaction = '';
159
160RZ.page_roles = ''
161RZ.page_users = '153b32850cfa60301ba7cb535f52d1f2803f9ef3d7971bcbda382583175a72a6|183e24ceed82e872b563047ccb77a13692fcfb817393bdfe0c5c10eee57e0c5a'
162RZ.page_key = "freeform[992]"
163RZ.parent_key = 'freeform[991]'
164RZ.inherit_key = 'index[]'
165RZ.workflowname = ''
166RZ.permissions_options = 'warningsOFF'
167RZ.permissions_module = 'webspace_page_permissions'
168RZ.webspace = "westvalleycityutah"
169RZ.webspacedesc = "";
170
171RZ.featurespattern = '(EZ)';
172null
173
174RZ.webspacelinksurl = ''
175RZ.webspacelinksurl = './webspace/links.html'
176RZ.workflowlist = ''
177RZ.revizeserverurl = 'https://builder1.revize.com/revize/westvalleycityutah';
178
179if (!RZ.nextseq) RZ.nextseq = {linknames:{},modules:{}};
180
181RZ.webspace_config = new Object();
182RZ.webspace_config.admin_email = "[email protected]";
183RZ.webspace_config.calendar_options = "max_events=6";
184RZ.webspace_config.form_captcha = "yes";
185RZ.webspace_config.form_server = "revizeserver";
186RZ.webspace_config.form_technology = "jsp";
187RZ.webspace_config.formwizard_ftp_password = "";
188RZ.webspace_config.formwizard_ftp_port = "";
189RZ.webspace_config.formwizard_ftp_server = "";
190RZ.webspace_config.formwizard_ftp_user = "";
191RZ.webspace_config.formwizard_setup = "yes";
192RZ.webspace_config.formwizard_smtp_password = "xxx";
193RZ.webspace_config.formwizard_smtp_server = "xxx";
194RZ.webspace_config.formwizard_smtp_user = "xxx";
195RZ.webspace_config.google_analytics = "";
196RZ.webspace_config.home_pageid = "0";
197RZ.webspace_config.home_sectionid = "0";
198RZ.webspace_config.home_template = "home,index,sitemap";
199RZ.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=\"\" />";
200RZ.webspace_config.image_maxheight = "3000";
201RZ.webspace_config.image_maxwidth = "3000";
202RZ.webspace_config.image_setup = "yes";
203RZ.webspace_config.livesite_url = "";
204RZ.webspace_config.menu_links_module = "links";
205RZ.webspace_config.menu_newsection = "";
206RZ.webspace_config.menu_nexturl = "webspace_menu-editform.jsp";
207RZ.webspace_config.menu_sections_module = "sections";
208RZ.webspace_config.menu_system = "custom";
209RZ.webspace_config.menu_version = "1.00";
210RZ.webspace_config.new_menu_manager_enabled = "yes";
211RZ.webspace_config.notify_options = "hide_text=yes";
212RZ.webspace_config.notify_return_url = "enotify/index.php";
213RZ.webspace_config.rte_setup = "yes";
214RZ.webspace_config.to_email = "[email protected]";
215RZ.webspace_config.use_folders = "1";
216
217RZ.isauthenticationactive = true
218RZ.warning = ""
219RZ.adminwinmsg = null
220
221RZ.channels = 'revize';
222RZ.jsversion = 1.2</script>
vendor: 2 bytes, line 222
222
223<script type="text/javascript" src="/revize/util/snippet_helper.js"></script>
223
224
225
226
227<div class="skippy visually-hidden-focusable left-top mt-3 position-fixed align-items-center" style="z-index:1026">
228	<div class="container-xl">
229		<a class="d-inline-flex btn btn-light bg-white px-4 p-3 gap-4 align-items-center"
230			href="our_community/about_us/index.php#rz-content-wrap">
231			<span class="d-inline-flex align-items-center gap-2">
232				<i class="bi bi-window-sidebar fs-4" aria-hidden="true"></i>
233				<span>Skip to main content</span>
234				<span class="ms-5" aria-hidden="true">
235					<svg width="26" height="27" viewBox="0 0 26 27" xmlns="http://www.w3.org/2000/svg" role="presentation" aria-hidden="true">
236						<g fill="none" fill-rule="evenodd">
237							<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"
238								fill="currentColor" fill-rule="nonzero" />
239							<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" />
240							<path d="M8.1 12.7L5.4 10l2.7-2.7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
241						</g>
242					</svg>
243				</span>
244			</span>
245		</a>
246	</div>
247</div>
248<script>function RZBarAddButton() { return false; }</script>
248
249<header class="site-header-wrap" data-menu-onhover="false" data-mega-at="8" data-nav-icons="false" data-logo="image" data-logo-tagline="false" data-logo-move="false" data-sticky="true" data-menu-buttons-left="false">
250	<div class="site-header">
251
252
253
254
255<div class="rz-section-block-wrap position-relative">
256  
257  
258  
259  <div class="rz-section-block container" style="max-width:1392px;">
260
261
262
263
264
265<div class="rz-row-block d-grid opt_row_columns_7" style="grid-template-columns:316px auto 190px;">
266<div class="rz-column-block d-lg-flex flex-lg-wrap flex-lg-row justify-content-lg-start align-items-lg-center">
267    <div class="rz-element-wrapper logo-section d-flex d-lg-block">
268        
269        <div class="responsive-menu align-items-center d-flex d-lg-none gap-1">
270            <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">
271                <i class="bi bi-three-dots" aria-hidden="True"></i>
272            </button>
273            <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">
274                <i class="bi bi-share-fill" aria-hidden="True"></i>
275            </button>
276        </div><!-- /.responsive-menu -->
277        
278                
279            <a href="./" class="flex-fill d-flex text-center flex-column text-decoration-none main-logo main-logo-text justify-content-center">
280                <span class="lh-1">West Valley City, UT</span>
281                                <p class="logo-tagline lh-1 m-0">Live work play</p>
282                            </a>
283                    
284                    <a href="./" class="d-flex align-items-center text-decoration-none main-logo main-logo-image">
285                <img loading="lazy" src="website_assets/logo.png?t=202606190933170" alt="West Valley City, UT" class="logo-no-scroll header-logo-img">
286                                <img loading="lazy" src="website_assets/logo-scroll.png?t=202606250755050" alt="West Valley City, UT" class="logo-on-scroll d-none">
287                            </a>
288            
289        <div class="offcanvas-toggles align-items-center d-flex d-lg-none gap-1">
290            <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">
291                <i class="fa-solid fa-magnifying-glass" aria-hidden="True"></i>
292            </button>
293            <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">
294                <i class="fa-solid fa-bars" aria-hidden="True"></i>
295            </button>
296        </div><!-- /.offcanvas-toggles -->
297    
298    </div><!-- /.rz-element-wrapper -->
299
300
301
302<div class="rz-element-wrapper rz-single-image-wrapper has-edit-buttons mega-layer-img hide-edit-buttons d-none"
303		 >
304		<div class="center-center">
305				<div class="rz-btns-container">
306						
306<script language="JavaScript" type="text/JavaScript">
307								RZ.module = 'generic';
308								RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/image-editform.jsp";
309								RZ.img = '<span class="rzBtn rzBtn-xs">Edit Image</span>';
310								RZ.caption = '';
311								RZ.set = 'pageid=2f490eb5-da98-4a32-9578-f24f6101e245';
312								RZ.options = '';
313								if (typeof RZaction != 'undefined') RZaction('editform');
314						</script>
314
315				</div>
316		</div>
317
318		<div class="rz-element rz-single-image-wrap">
319		
320				<div class="rz-single-image position-relative">
321						
322						
323						<img loading="lazy"
324								 src="website_assets/mega-layer-img.png?t=202607040807560"
325								 alt="mega-img-1"
326								 style="width:100%;"
327								 >
328						
329				</div><!-- /.rz-single-image -->
330		
331		</div><!-- /.rz-single-image-wrap -->
332</div><!-- /.rz-element-wrapper -->
333
334
335
336
337
338
339
340
341<div class="rz-element-wrapper rz-single-image-wrapper has-edit-buttons mega-tower-img d-none"
342		 >
343		<div class="center-center">
344				<div class="rz-btns-container">
345						
345<script language="JavaScript" type="text/JavaScript">
346								RZ.module = 'generic';
347								RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/image-editform.jsp";
348								RZ.img = '<span class="rzBtn rzBtn-xs">Edit Image</span>';
349								RZ.caption = '';
350								RZ.set = 'pageid=ff18655e-440e-4dba-8c66-aff79b34ba87';
351								RZ.options = '';
352								if (typeof RZaction != 'undefined') RZaction('editform');
353						</script>
353
354				</div>
355		</div>
356
357		<div class="rz-element rz-single-image-wrap">
358		
359				<div class="rz-single-image position-relative">
360						
361						
362						<img loading="lazy"
363								 src="website_assets/mega-tower-img.png?t=202607040807590"
364								 alt="mega-img-2"
365								 style="width:100%;"
366								 >
367						
368				</div><!-- /.rz-single-image -->
369		
370		</div><!-- /.rz-single-image-wrap -->
371</div><!-- /.rz-element-wrapper -->
372
373
374
375
376
377</div><div class="rz-column-block d-lg-flex flex-lg-wrap justify-content-lg-center align-items-lg-center">
378<div class="offcanvas-lg offcanvas-end" tabindex="-1" id="offcanvasNav" aria-labelledby="offcanvasNavLabel">
379    <div class="offcanvas-header border-bottom">
380        <h5 class="offcanvas-title" id="offcanvasNavLabel">Main Menu</h5>
381        <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close" data-bs-target="#offcanvasNav"></button>
382    </div>
383
384    <div class="offcanvas-body pt-0">
385        
386        <div class="rz-element-wrapper rz-topnav-block-wrapper has-edit-buttons">
387            <div class="rz-element rz-topnav-wrap">
388                <div class="rz-topnav-element">
389              	    
390 
391<ul id="nav" class="v2_05-23-2012">
392	<li class="menuLI level0 menuDisplay li-125 children"><a class="menuA level0 menuDisplay" href="government/index.php" target="_self">Government</a>
393		<ul class="menuUL level1 menuHidden ul-126">
394			<li class="menuLI level1 menuHidden li-126 children"><a class="menuA level1 menuHidden" href="government/city_council/index.php" target="_self">City Council</a>
395				<ul class="menuUL level2 menuHidden ul-127">
396					<li class="menuLI level2 menuHidden li-127"><a class="menuA level2 menuHidden" href="government/city_council/city_council_meetings/index.php" target="_self">City Council Meetings</a></li>
397					<li class="menuLI level2 menuHidden li-142"><a class="menuA level2 menuHidden" href="https://ob.wvc-ut.gov/OnBaseAgendaOnline/Meetings/Search?dropid=11&mtids=109%2C110%2C111&dropsv=01%2F01%2F2026%2000%3A00%3A00&dropev=12%2F31%2F2026%2000%3A00%3A00" target="_new">City Council Meeting Agendas & Minutes</a></li>
398					<li class="menuLI level2 menuHidden li-129"><a class="menuA level2 menuHidden" href="government/city_council/city_council_members/index.php" target="_self">City Council Members</a></li>
399					<li class="menuLI level2 menuHidden li-143"><a class="menuA level2 menuHidden" href="https://gisportal.wvc-ut.gov/portal/apps/experiencebuilder/experience/?id=16062a18d1394454b3ab718dcc6ae69e" target="_new">City Council District Map</a></li>
400					<li class="menuLI level2 menuHidden li-144"><a class="menuA level2 menuHidden" href="government/city_council/recent_ordinances.php" target="_self">Recent Ordinances</a></li>
401				</ul>
402			</li>
403			<li class="menuLI level1 menuHidden li-147 children"><a class="menuA level1 menuHidden" href="government/city_boards_commissions/index.php" target="_self">City Boards & Commissions</a>
404				<ul class="menuUL level2 menuHidden ul-148">
405					<li class="menuLI level2 menuHidden li-148"><a class="menuA level2 menuHidden" href="government/city_boards_commissions/planning_commission.php" target="_self">Planning Commission</a></li>
406					<li class="menuLI level2 menuHidden li-149"><a class="menuA level2 menuHidden" href="government/city_boards_commissions/professional_standards_review_board.php" target="_self">Professional Standards Review Board</a></li>
407					<li class="menuLI level2 menuHidden li-150"><a class="menuA level2 menuHidden" href="government/city_boards_commissions/clean_beautiful_committee/index.php" target="_self">Clean & Beautiful Committee</a></li>
408					<li class="menuLI level2 menuHidden li-151"><a class="menuA level2 menuHidden" href="government/city_boards_commissions/healthy_wvc/index.php" target="_self">Healthy WVC</a></li>
409					<li class="menuLI level2 menuHidden li-152"><a class="menuA level2 menuHidden" href="government/city_boards_commissions/board_of_adjustment.php" target="_self">Board of Adjustment</a></li>
410					<li class="menuLI level2 menuHidden li-153"><a class="menuA level2 menuHidden" href="government/city_boards_commissions/building_authority.php" target="_self">Building Authority</a></li>
411					<li class="menuLI level2 menuHidden li-154"><a class="menuA level2 menuHidden" href="government/city_boards_commissions/redevelopment_agency.php" target="_self">Redevelopment Agency</a></li>
412					<li class="menuLI level2 menuHidden li-155"><a class="menuA level2 menuHidden" href="government/city_boards_commissions/veterans_committee/index.php" target="_self">Veterans Committee</a></li>
413					<li class="menuLI level2 menuHidden li-171"><a class="menuA level2 menuHidden" href="https://ob.wvc-ut.gov/OnBaseAgendaOnline/" target="_new">Agendas & Minutes</a></li>
414					<li class="menuLI level2 menuHidden li-172"><a class="menuA level2 menuHidden" href="government/city_boards_commissions/volunteer_for_board_commission_position.php" target="_self">Volunteer for Board/Commission Position</a></li>
415				</ul>
416			</li>
417			<li class="menuLI level1 menuHidden li-183"><a class="menuA level1 menuHidden" href="https://westvalleycity.municipal.codes/" target="_new">City Code & Ordinances</a></li>
418			<li class="menuLI level1 menuHidden li-184"><a class="menuA level1 menuHidden" href="government/official_notices.php" target="_self">Official Notices</a></li>
419			<li class="menuLI level1 menuHidden li-185 children"><a class="menuA level1 menuHidden" href="government/department_list/index.php" target="_self">Department List</a>
420				<ul class="menuUL level2 menuHidden ul-186">
421					<li class="menuLI level2 menuHidden li-186"><a class="menuA level2 menuHidden" href="government/department_list/administration/index.php" target="_self">Administration</a></li>
422					<li class="menuLI level2 menuHidden li-203"><a class="menuA level2 menuHidden" href="government/department_list/animal_services/index.php" target="_self">Animal Services</a></li>
423					<li class="menuLI level2 menuHidden li-227"><a class="menuA level2 menuHidden" href="government/department_list/community_development/building_inspections/index.php" target="_self">Building Inspections</a></li>
424					<li class="menuLI level2 menuHidden li-228"><a class="menuA level2 menuHidden" href="government/department_list/code_enforcement/index.php" target="_self">Code Enforcement</a></li>
425					<li class="menuLI level2 menuHidden li-229"><a class="menuA level2 menuHidden" href="government/department_list/community_development/index.php" target="_self">Community Development</a></li>
426					<li class="menuLI level2 menuHidden li-230"><a class="menuA level2 menuHidden" href="government/department_list/community_engagement_culture/index.php" target="_self">Community Engagement & Culture</a></li>
427					<li class="menuLI level2 menuHidden li-231"><a class="menuA level2 menuHidden" href="government/department_list/finance/index.php" target="_self">Finance</a></li>
428					<li class="menuLI level2 menuHidden li-706"><a class="menuA level2 menuHidden" href="https://builder1.revize.com/revize/westvalleycityutahfire" target="_new">Fire Department</a></li>
429					<li class="menuLI level2 menuHidden li-707"><a class="menuA level2 menuHidden" href="government/department_list/human_resources/index.php" target="_self">Human Resources</a></li>
430					<li class="menuLI level2 menuHidden li-708"><a class="menuA level2 menuHidden" href="government/department_list/justice_court/index.php" target="_self">Justice Court</a></li>
431					<li class="menuLI level2 menuHidden li-709"><a class="menuA level2 menuHidden" href="https://builder1.revize.com/revize/westvalleycityutahparksandrec/" target="_new">Parks & Recreation</a></li>
432					<li class="menuLI level2 menuHidden li-710"><a class="menuA level2 menuHidden" href="government/department_list/community_development/planning_zoning/index.php" target="_self">Planning & Zoning</a></li>
433					<li class="menuLI level2 menuHidden li-711"><a class="menuA level2 menuHidden" href="https://builder1.revize.com/revize/westvalleycityutahpolice/" target="_new">Police Department</a></li>
434					<li class="menuLI level2 menuHidden li-712"><a class="menuA level2 menuHidden" href="government/department_list/communications/index.php" target="_self">Communications</a></li>
435					<li class="menuLI level2 menuHidden li-713"><a class="menuA level2 menuHidden" href="government/department_list/public_works/index.php" target="_self">Public Works</a></li>
436					<li class="menuLI level2 menuHidden li-714"><a class="menuA level2 menuHidden" href="http://www.whywestvalley.c
436om/" target="_new">RDA & Economic Development</a></li>
437					<li class="menuLI level2 menuHidden li-772"><a class="menuA level2 menuHidden" href="government/department_list/city_attorney_s_office/index.php" target="_self">City Attorney's Office</a></li>
438					<li class="menuLI level2 menuHidden li-775"><a class="menuA level2 menuHidden" href="government/department_list/victim_services/index.php" target="_self">Victim Services</a></li>
439				</ul>
440			</li>
441			<li class="menuLI level1 menuHidden li-949"><a class="menuA level1 menuHidden" href="government/department_list/administration/city_recorder_s_office/city_election_information/index.php" target="_self">Elections</a></li>
442			<li class="menuLI level1 menuHidden li-950"><a class="menuA level1 menuHidden" href="government/transparency_standard.php" target="_self">Transparency Standard</a></li>
443			<li class="menuLI level1 menuHidden li-951 children"><a class="menuA level1 menuHidden" href="government/efficiency_sustainability/index.php" target="_self">Efficiency & Sustainability</a>
444				<ul class="menuUL level2 menuHidden ul-954">
445					<li class="menuLI level2 menuHidden li-954"><a class="menuA level2 menuHidden" href="government/efficiency_sustainability/timeline.php" target="_self">Timeline</a></li>
446					<li class="menuLI level2 menuHidden li-955"><a class="menuA level2 menuHidden" href="government/efficiency_sustainability/solar.php" target="_self">Solar</a></li>
447					<li class="menuLI level2 menuHidden li-956"><a class="menuA level2 menuHidden" href="government/efficiency_sustainability/water.php" target="_self">Water</a></li>
448					<li class="menuLI level2 menuHidden li-957"><a class="menuA level2 menuHidden" href="government/department_list/public_works/garbage_recycling/recycling_service/index.php#acc_0_panel_0 " target="_self">Recycling</a></li>
449					<li class="menuLI level2 menuHidden li-958"><a class="menuA level2 menuHidden" href="government/department_list/public_works/garbage_recycling/recycling_service/glass_recycling_info.php" target="_self">Glass Recycling</a></li>
450					<li class="menuLI level2 menuHidden li-959"><a class="menuA level2 menuHidden" href="government/efficiency_sustainability/rs_zoning.php" target="_self">RS Zoning</a></li>
451					<li class="menuLI level2 menuHidden li-960"><a class="menuA level2 menuHidden" href="government/efficiency_sustainability/resources.php" target="_self">Resources</a></li>
452				</ul>
453			</li>
454			<li class="menuLI level1 menuHidden li-952"><a class="menuA level1 menuHidden" href="government/bids_and_notices.php" target="_self">Bids and Notices</a></li>
455			<li class="menuLI level1 menuHidden li-953"><a class="menuA level1 menuHidden" href="government/found_property_public_notice.php" target="_self">Found Property Public Notice</a></li>
456		</ul>
457	</li>
458	<li class="menuLI level0 menuDisplay li-961 children"><a class="menuA level0 menuDisplay" href="services/index.php" target="_self">Services</a>
459		<ul class="menuUL level1 menuHidden ul-962">
460			<li class="menuLI level1 menuHidden li-962"><a class="menuA level1 menuHidden" href="services/affordable_housing.php" target="_self">Affordable Housing</a></li>
461			<li class="menuLI level1 menuHidden li-963"><a class="menuA level1 menuHidden" href="https://builder1.revize.com/revize/westvalleycityutahparksandrec/harman_senior_recreation_center/index.php" target="_new">Aging & Adult Services</a></li>
462			<li class="menuLI level1 menuHidden li-964"><a class="menuA level1 menuHidden" href="government/department_list/animal_services/index.php" target="_self">Animal Services</a></li>
463			<li class="menuLI level1 menuHidden li-965"><a class="menuA level1 menuHidden" href="services/billing.php" target="_self">Billing</a></li>
464			<li class="menuLI level1 menuHidden li-966"><a class="menuA level1 menuHidden" href="government/department_list/finance/index.php" target="_self">Budget & Finance</a></li>
465			<li class="menuLI level1 menuHidden li-967 children"><a class="menuA level1 menuHidden" href="services/building_development/index.php" target="_self">Building & Development</a>
466				<ul class="menuUL level2 menuHidden ul-1083">
467					<li class="menuLI level2 menuHidden li-1083"><a class="menuA level2 menuHidden" href="government/department_list/community_development/building_inspections/index.php" target="_self">Building Inspections</a></li>
468					<li class="menuLI level2 menuHidden li-1085"><a class="menuA level2 menuHidden" href="government/department_list/code_enforcement/index.php" target="_self">Code Enforcement</a></li>
469					<li class="menuLI level2 menuHidden li-1087"><a class="menuA level2 menuHidden" href="government/department_list/community_development/planning_zoning/index.php" target="_self">Planning & Zoning</a></li>
470					<li class="menuLI level2 menuHidden li-1089"><a class="menuA level2 menuHidden" href="https://www.whywestvalley.c
470om/" target="_new">RDA & Economic Development</a></li>
471				</ul>
472			</li>
473			<li class="menuLI level1 menuHidden li-972"><a class="menuA level1 menuHidden" href="government/department_list/code_enforcement/index.php" target="_self">Code Enforcement</a></li>
474			<li class="menuLI level1 menuHidden li-975"><a class="menuA level1 menuHidden" href="government/department_list/community_development/community_grants_division/index.php" target="_self">Community Grants</a></li>
475			<li class="menuLI level1 menuHidden li-973"><a class="menuA level1 menuHidden" href="government/department_list/justice_court/index.php" target="_self">Courts</a></li>
476			<li class="menuLI level1 menuHidden li-974"><a class="menuA level1 menuHidden" href="https://www.wvcfd.com/" target="_new">Fire</a></li>
477			<li class="menuLI level1 menuHidden li-1573"><a class="menuA level1 menuHidden" href="government/department_list/public_works/garbage_recycling/index.php" target="_self">Garbage & Recycling</a></li>
478			<li class="menuLI level1 menuHidden li-977"><a class="menuA level1 menuHidden" href="government/department_list/communications/index.php" target="_self">Media Relations</a></li>
479			<li class="menuLI level1 menuHidden li-978"><a class="menuA level1 menuHidden" href="services/mosquito_abatement.php" target="_self">Mosquito Abatement</a></li>
480			<li class="menuLI level1 menuHidden li-979"><a class="menuA level1 menuHidden" href="government/department_list/community_engagement_culture/neighborhood_services/index.php" target="_self">Neighborhood Services</a></li>
481			<li class="menuLI level1 menuHidden li-980"><a class="menuA level1 menuHidden" href="https://www.wvcparksandrec.com/" target="_new">Parks & Recreation</a></li>
482			<li class="menuLI level1 menuHidden li-981"><a class="menuA level1 menuHidden" href="government/department_list/community_development/planning_zoning/index.php" target="_self">Planning & Zoning</a></li>
483			<li class="menuLI level1 menuHidden li-982"><a class="menuA level1 menuHidden" href="https://www.wvcpd.com" target="_new">Police</a></li>
484			<li class="menuLI level1 menuHidden li-983"><a class="menuA level1 menuHidden" href="government/department_list/public_works/index.php" target="_self">Public Works</a></li>
485			<li class="menuLI level1 menuHidden li-984"><a class="menuA level1 menuHidden" href="government/department_list/administration/city_recorder_s_office/index.php" target="_self">Records</a></li>
486			<li class="menuLI level1 menuHidden li-976"><a class="menuA level1 menuHidden" href="https://www.saltlakecounty.gov/health/" target="_new">SL County Health Department</a></li>
487			<li class="menuLI level1 menuHidden li-985"><a class="menuA level1 menuHidden" href="https://www.saltlakecounty.gov/recorder/residents/property-watch/" target="_new">SL County Property Watch</a></li>
488			<li class="menuLI level1 menuHidden li-986"><a class="menuA level1 menuHidden" href="https://gisportal.wvc-ut.gov/Crowdsource/" target="_new">Submit a Service Request</a></li>
489			<li class="menuLI level1 menuHidden li-987"><a class="menuA level1 menuHidden" href="government/department_list/public_works/utility_billing/sanitation_and_utility_fees.php" target="_self">Utility Billing</a></li>
490			<li class="menuLI level1 menuHidden li-988"><a class="menuA level1 menuHidden" href="government/department_list/victim_services/index.php" target="_self">Victim Services</a></li>
491			<li class="menuLI level1 menuHidden li-989"><a class="menuA level1 menuHidden" href="services/west_valley_city_connect.php" target="_self">West Valley City Connect</a></li>
492		</ul>
493	</li>
494	<li class="menuLI level0 menuDisplay li-991 children"><a class="menuA level0 menuDisplay" href="our_community/index.php" target="_self">Our Community</a>
495		<ul class="menuUL level1 menuHidden ul-992">
496			<li class="menuLI level1 menuHidden li-992 children"><a class="menuA level1 menuHidden" href="our_community/about_us/index.php" target="_self">About Us</a>
497				<ul class="menuUL level2 menuHidden ul-993">
498					<li class="menuLI level2 menuHidden li-993"><a class="menuA level2 menuHidden" href="https://westvalleycity.municipal.codes/" target="_new">City Code</a></li>
499					<li class="menuLI level2 menuHidden li-994"><a class="menuA level2 menuHidden" href="https://gisportal.wvc-ut.gov/
499portal/home/index.html" target="_new">City Maps</a></li>
500					<li class="menuLI level2 menuHidden li-995"><a class="menuA level2 menuHidden" href="our_community/about_us/contact_information.php" target="_self">Contact Information</a></li>
501					<li class="menuLI level2 menuHidden li-996"><a class="menuA level2 menuHidden" href="our_community/about_us/demographics/index.php" target="_self">Demographics</a></li>
502					<li class="menuLI level2 menuHidden li-997"><a class="menuA level2 menuHidden" href="our_community/about_us/history_of_west_valley_city/index.php" target="_self">History of West Valley City</a></li>
503				</ul>
504			</li>
505			<li class="menuLI level1 menuHidden li-1000"><a class="menuA level1 menuHidden" href="government/department_list/finance/city_budget_financial_audit.php" target="_self">City Budget</a></li>
506			<li class="menuLI level1 menuHidden li-1001 children"><a class="menuA level1 menuHidden" href="our_community/city_facilities/index.php" target="_self">City Facilities</a>
507				<ul class="menuUL level2 menuHidden ul-1002">
508					<li class="menuLI level2 menuHidden li-1002"><a class="menuA level2 menuHidden" href="https://builder1.revize.com/revize/westvalleycityutahparksandrec/family_fitness_center_centennial_outdoor_pool/index.php" target="_new">Family Fitness Center</a></li>
509					<li class="menuLI level2 menuHidden li-1003"><a class="menuA level2 menuHidden" href="https://builder1.revize.com/revize/westvalleycityutahparksandrec/harman_senior_recreation_center/index.php" target="_new">Harman Senior Recreation Center</a></li>
510					<li class="menuLI level2 menuHidden li-1004"><a class="menuA level2 menuHidden" href="https://maverikcenter.com/" target="_new">Maverik Center</a></li>
511					<li class="menuLI level2 menuHidden li-1005"><a class="menuA level2 menuHidden" href="https://www.golfstonebridgeutah.com/" target="_new">Stonebridge Golf Club</a></li>
512					<li class="menuLI level2 menuHidden li-1006"><a class="menuA level2 menuHidden" href="https://www.golftheridgegc.com/" target="_new">The Ridge Golf Club</a></li>
513					<li class="menuLI level2 menuHidden li-1007"><a class="menuA level2 menuHidden" href="https://www.culturalcelebration.org/" target="_new">Utah Cultural Celebration Center</a></li>
514				</ul>
515			</li>
516			<li class="menuLI level1 menuHidden li-1008"><a class="menuA level1 menuHidden" href="https://gisportal.wvc-ut.gov/portal/home/" target="_new">City Maps</a></li>
517			<li class="menuLI level1 menuHidden li-1009"><a class="menuA level1 menuHidden" href="https://fairbournebusinesspark.com/" target="_new">Fairbourne Station</a></li>
518			<li class="menuLI level1 menuHidden li-1010"><a class="menuA level1 menuHidden" href="government/city_boards_commissions/index.php" target="_self">Get Involved</a></li>
519			<li class="menuLI level1 menuHidden li-1011"><a class="menuA level1 menuHidden" href="our_community/living_in_wvc.php" target="_self">Living in WVC</a></li>
520			<li class="menuLI level1 menuHidden li-1012"><a class="menuA level1 menuHidden" href="our_community/moving_to_wvc.php" target="_self">Moving to WVC</a></li>
521			<li class="menuLI level1 menuHidden li-1013"><a class="menuA level1 menuHidden" href="https://builder1.revize.com/revize/westvalleycityutahparksandrec/" target="_new">Parks & Recreation</a></li>
522			<li class="menuLI level1 menuHidden li-1014 children"><a class="menuA level1 menuHidden" href="our_community/schools/index.php" target="_self">Schools</a>
523				<ul class="menuUL level2 menuHidden ul-1015">
524					<li class="menuLI level2 menuHidden li-1015"><a class="menuA level2 menuHidden" href="our_community/schools/after_school_programs.php" target="_self">After School Programs</a></li>
525					<li class="menuLI level2 menuHidden li-1016"><a class="menuA level2 menuHidden" href="https://www.graniteschools.org/" target="_new">Granite School District Public Schools</a></li>
526					<li class="menuLI level2 menuHidden li-1017"><a class="menuA level2 menuHidden" href="https://www.schools.utah.gov/charterschools/" target="_new">Utah Public Charter Schools</a></li>
527					<li class="menuLI level2 menuHidden li-1018"><a class="menuA level2 menuHidden" href="https://ushe.edu/" target="_new">Utah Higher Education</a></li>
528				</ul>
529			</li>
530			<li class="menuLI level1 menuHidden li-1019"><a class="menuA level1 menuHidden" href="our_community/westfest.php" target="_self">WestFest</a></li>
531			<li class="menuLI level1 menuHidden li-1020"><a class="menuA level1 menuHidden" href="our_community/military_veterans.php" target="_self">Military & Veterans</a></li>
532		</ul>
533	</li>
534	<li class="menuLI level0 menuDisplay li-1021 children"><a class="menuA level0 menuDisplay" href="business/index.php" target="_self">Business</a>
535		<ul class="menuUL level1 menuHidden ul-1022">
536			<li class="menuLI level1 menuHidden li-1022">
536<a class="menuA level1 menuHidden" href="government/bids_and_notices.php" target="_self">Bids</a></li>
537			<li class="menuLI level1 menuHidden li-1023"><a class="menuA level1 menuHidden" href="government/department_list/community_development/building_inspections/index.php" target="_self">Building Permits & Inspections</a></li>
538			<li class="menuLI level1 menuHidden li-1024"><a class="menuA level1 menuHidden" href="https://www.chamberwest.com/" target="_new">Chamber of Commerce</a></li>
539			<li class="menuLI level1 menuHidden li-1025"><a class="menuA level1 menuHidden" href="https://www.whywestvalley.com/" target="_new">Economic Development</a></li>
540			<li class="menuLI level1 menuHidden li-1026"><a class="menuA level1 menuHidden" href="government/department_list/public_works/engineering/index.php" target="_self">Engineering</a></li>
541			<li class="menuLI level1 menuHidden li-1027"><a class="menuA level1 menuHidden" href="government/department_list/finance/business_licensing/index.php" target="_self">Licensing</a></li>
542			<li class="menuLI level1 menuHidden li-1028"><a class="menuA level1 menuHidden" href="government/department_list/community_development/planning_zoning/index.php" target="_self">Planning & Zoning</a></li>
543			<li class="menuLI level1 menuHidden li-1029"><a class="menuA level1 menuHidden" href="https://pllportal.wvc-ut.gov/portal" target="_new">Renew Your Business License</a></li>
544			<li class="menuLI level1 menuHidden li-1031"><a class="menuA level1 menuHidden" href="https://www.whywestvalley.com/site-selection/new-business-interactive-map" target="_new">New Businesses Interactive Map</a></li>
545		</ul>
546	</li>
547	<li class="menuLI level0 menuDisplay li-1032 children"><a class="menuA level0 menuDisplay" href="how_do_i/index.php" target="_self">How Do I...</a>
548		<ul class="menuUL level1 menuHidden ul-1033">
549			<li class="menuLI level1 menuHidden li-1033 children"><a class="menuA level1 menuHidden" href="how_do_i/apply/index.php" target="_self">Apply</a>
550				<ul class="menuUL level2 menuHidden ul-1034">
551					<li class="menuLI level2 menuHidden li-1034"><a class="menuA level2 menuHidden" href="government/department_list/community_development/building_inspections/apply_for_a_building_permit.php" target="_self">Building Permit</a></li>
552					<li class="menuLI level2 menuHidden li-1035"><a class="menuA level2 menuHidden" href="government/department_list/finance/business_licensing/index.php" target="_self">Business License</a></li>
553					<li class="menuLI level2 menuHidden li-1036"><a class="menuA level2 menuHidden" href="government/department_list/human_resources/index.php" target="_self">Employment</a></li>
554					<li class="menuLI level2 menuHidden li-1037"><a class="menuA level2 menuHidden" href="https://builder1.revize.com/revize/westvalleycityutahfire/prevention_inspections/index.php" target="_new">Fire Permits</a></li>
555				</ul>
556			</li>
557			<li class="menuLI level1 menuHidden li-1038"><a class="menuA level1 menuHidden" href="government/department_list/city_attorney_s_office/civil_division.php" target="_self">Report an Accident, Injury, or Damage</a></li>
558			<li class="menuLI level1 menuHidden li-1039"><a class="menuA level1 menuHidden" href="services/billing.php" target="_self">Pay My Bill</a></li>
559			<li class="menuLI level1 menuHidden li-1040 children"><a class="menuA level1 menuHidden" href="how_do_i/read/index.php" target="_self">Read</a>
560				<ul class="menuUL level2 menuHidden ul-1041">
561					<li class="menuLI level2 menuHidden li-1041"><a class="menuA level2 menuHidden" href="https://ob.wvc-ut.gov/OnBaseAgendaOnline/Meetings/Search?dropid=11&mtids=109%2C110%2C111&dropsv=01%2F01%2F2026%2000%3A00%3A00&dropev=12%2F31%2F2026%2000%3A00%3A00" target="_new">Agendas & Minutes</a></li>
562					<li class="menuLI level2 menuHidden li-1042"><a class="menuA level2 menuHidden" href="https://westvalleycity.municipal.codes/" target="_new">Municipal Code</a></li>
563				</ul>
564			</li>
565			<li class="menuLI level1 menuHidden li-1102"><a class="menuA level1 menuHidden" href="government/department_list/administration/city_recorder_s_office/administrative_government_records_request.php" target="_self">Request a Record</a></li>
566			<li class="menuLI level1 menuHidden li-1105"><a class="menuA level1 menuHidden" href="https://builder1.revize.com/revize/westvalleycityutahparksandrec/city_parks.php" target="_new">Reserve a Park</a></li>
567			<li class="menuLI level1 menuHidden li-1106"><a class="menuA level1 menuHidden" href="government/department_list/administration/city_recorder_s_office/city_election_information/index.php" target="_self">Run for Office</a></li>
568		</ul>
569	</li>
570</ul>
571
572                </div><!-- /.rz-topnav-element -->
573            </div><!-- /.rz-element -->
574        
575        </div><!-- /.rz-element-wrapper -->
576
577    </div><!-- /.offcanvas-body -->
578</div><!-- /.offcanvas-lg -->    
579</div><div class="rz-column-block d-lg-flex flex-lg-wrap justify-content-lg-end align-items-lg-center">
580    <div class="header-element header-search-wrap align-items-stretch w-100 gap-3"> 	
581        <div class="vr vr-s d-none"></div>
582        <form class="m-0 align-self-center position-relative header-site-search w-100"
583              method="GET" action="search.php" role="search">
584              <label for="search_input" class="sr-only">Search West Valley City, UT</label>
585            <input id="search_input" class="form-control" name="q" type="search"
586                   placeholder="How can we help?"
587                   autocomplete="off"
588                   >
589                            <!-- Icon-only search button -->
590                <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"
591                        aria-label="Search" tabindex="0">
592                    <span class="vr d-inline-flex align-self-center" style="height:1rem"></span>
593                    <i class="bi bi-search"></i>
594                </button>
595                    </form>
596        <div class="vr vr-e d-none"></div>
597    </div><!--/.header-element-->
598</div>
599
600
601
602</div><!-- /.rz-row-block -->
603
604
605
606
607  </div><!-- /.rz-section-block -->
608</div><!-- /.rz-section-block-wrap -->
609
610
611	</div><!-- /.site-header -->
612</header><!-- /.site-header-wrap -->
613<div class="rz-site-wrap">
614	<main id="rz-content-wrap">
615
616		<!-- --><div class="rz-element-wrapper rz-slider-wrapper has-edit-buttons position-relative overflow-hidden" style=" --rz-slider-bg:#000000; ">
617
618	<div class="center-center">
619		<div class="rz-btns-container">
620			
620<script language="JavaScript" type="text/JavaScript">
621                RZ.module = 'generic';
622                RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/slider-editform.jsp";
623                RZ.img = '<span class="rzBtn rzBtn-sm">Edit Slider</span>';
624                RZ.caption = '';
625                RZ.set = 'pageid=slider-992';
626                RZ.options = '';
627                if (typeof RZaction != 'undefined') RZaction('editform');
628            </script>
628
629		</div>
630	</div>
631
632
633	<div
634			
635			data-controls-position="bottom"
636			class="rz-freeform-slider rz-slider tiny-carousel-wrap"
637			
638			style="
639					
640					
641					
642					
643					
644					
645					
646					
647					
648					"
649	>
650			
651
652			<div class="rz-slider-bg-overlay" ></div>
653
654			
655			
656					<div class="tiny-slider"
657							style="height:100%;"
658							data-tiny-items="1"
659							data-tiny-mode="gallery"
660							data-tiny-items-md="1"
661							data-tiny-items-sm="1"
662							data-tiny-gap="0"
663							data-tiny-controls="true"
664							data-tiny-nav="true"
665							data-tiny-autoplay-buttons="true"
666							data-tiny-autoplay="true">
667							
668									<div class="tiny-item" style="height:100%;">
669											<div class="tns-lazy-img tns-bg-slide"
670													 data-style="background:url('website_assets/inner-slide.png?t=202606212333240') center center / cover no-repeat;"></div>
671									</div>
672							
673					</div><!--/.tiny-slider-->
674			
675	</div><!-- /.slider -->
676	<div class="rz-slider-caption-wrap d-flex flex-column overflow-hidden justify-content-center align-items-start">
677		<div class="rz-slider-caption container d-flex flex-column align-items-start">
678						<div class="rz-slider-caption-title d-flex flex-column text-center justify-content-center align-items-start">
679
680				
681				<h1>About Us</h1>
682
683									<nav aria-label="breadcrumb" class="breadcrumb">
684	<ul><li><a href="./">Home</a> </li><li><a href="our_community/index.php">Our&nbsp;Community</a> </li><li>About&nbsp;Us</li></ul></nav>
685				
686			</div>
687					</div><!-- /.rz-slider-caption -->
688	</div><!-- /.rz-slider-caption-wrap -->
689</div><!-- /.slider-wrap -->
690
691
692		<div id="freeform-content-wrapper" class="position-relative z-3">
693					<div class="container-fluid px-0 d-flex flex-column flex-lg-row flex-lg-nowrap">
694				<div class="col freeform-left-col-fill"></div>
695				
696								<div class="col-side-wrap position-relative">
697					<div class="col-side h-100 has-edit-buttons">
698						<div class="sticky-top freeform-leftcol-builder-edit-btn-wrap" style="z-index:1041;top:140px;right:0;">
699							<div class="rz-btns-container freeform-leftcol-builder-edit-btn-container">
700								
700<script language="JavaScript" type="text/JavaScript">
701									RZ.module = 'page_builder'; RZ.linkname = '';
702									RZ.template = '*none*'; RZ.recordid = '';
703									RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/site_builder-editform.jsp?type=leftnav";
704									RZ.popupwidth = ''; RZ.popupheight = ''; RZ.popupscroll = '';
705									RZ.img = '<span class="rzBtn rzBtn freeform-builder-edit-btn" data-bs-toggle="tooltip" data-placement="right" aria-label="Edit column with builder" data-bs-original-title="Edit column with builder"><i class="bi bi-columns-gap fs-4"></i></span>';
706									RZ.set = 'pageid=leftnav-links-992';
707									RZ.options = '';
708									if (typeof RZaction != 'undefined') RZaction('edititem');
709								</script>
709
710							</div>
711						</div>		
712						<!-- side content here -->
713						
714						 
715		<div class="rz-element-wrapper rz-submenu-wrapper">
716							<div class="submenu-header rz-module-header d-none d-lg-flex">
717					<i class="module-header-icon-before lh-1 flex-shrink-0" aria-hidden="true"></i>
718					<span class="rz-module-header-text">Related Pages</span>
719					<i class="module-header-icon-after lh-1 flex-shrink-0" aria-hidden="true"></i>
720				</div>
721			
722			<div class="submenu-wrap has-edit-buttons">
723				<nav aria-labelledby="submenu" data-style="vertical">
724					
725					
726
727
728					<div class="rz-btns-container center-top">
729						
729<script language="JavaScript" type="text/JavaScript">
730							RZ.module = 'links';
731							RZ.nexturl = "/revize/plugins/menus/webspace_menu-editlist.jsp?pageid=links-992&"
732									 + "linksfilter=linkplacement=leftnav and linkparentid=992&"
733									 + "numberoflevels=2&"
734									 + "linkoptions=url,template,file&"
735									 + "linknewsection=*all*";
736							RZ.img = '<span class="rzBtn rzBtn-sm">Edit Submenu</span>';
737							RZ.caption = '';
738							RZ.set = "links.linkplacement=leftnav"
739							RZ.options = '';
740							if (typeof RZaction != 'undefined') RZaction('editlist');
741						</script>
741
742					</div>
743					
744 <ul  id="submenu" class="v08-30-2012">
745	<li id="li-993" class="menuLI level0 menuSelectedChild first"><a class="menuA level0 menuSelectedChild first" href="https://westvalleycity.municipal.codes/" target="_blank" >City Code</a></li>
746	<li id="li-994" class="menuLI level0 menuSelectedChild"><a class="menuA level0 menuSelectedChild" href="https://gisportal.wvc-ut.gov/portal/home/index.html" target="_blank" >City Maps</a></li>
747	<li id="li-995" class="menuLI level0 menuSelectedChild"><a class="menuA level0 menuSelectedChild" href="our_community/about_us/contact_information.php" target="_self" >Contact Information</a></li>
748	<li id="li-996" class="menuLI level0 menuSelectedChild children"><a class="menuA level0 menuSelectedChild" href="our_community/about_us/demographics/index.php" target="_self" >Demographics</a>
749		<ul id="ul-1054" class="menuUL level1 menuHidden">
750			<li id="li-1054" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/demographics/educational_attainment.php" target="_self" >Educational Attainment</a></li>
751			<li id="li-1055" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/demographics/employment_and_business.php" target="_self" >Employment and Business</a></li>
752			<li id="li-1056" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/demographics/households_by_income.php" target="_self" >Households by Income</a></li>
753			<li id="li-1057" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/demographics/housing_units.php" target="_self" >Housing Units</a></li>
754			<li id="li-1058" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/demographics/marital_status.php" target="_self" >Marital Status</a></li>
755			<li id="li-1059" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/demographics/population_by_age.php" target="_self" >Population by Age</a></li>
756			<li id="li-1060" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/demographics/population_by_race_ethnicity.php" target="_self" >Population by Race / Ethnicity</a></li>
757			<li id="li-1061" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/demographics/population_demographics.php" target="_self" >Population Demographics</a></li>
758			<li id="li-1062" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/demographics/vehicles_available.php" target="_self" >Vehicles Available</a></li>
759		</ul>
760	</li>
761	<li id="li-997" class="menuLI level0 menuSelectedChild children"><a class="menuA level0 menuSelectedChild" href="our_community/about_us/history_of_west_valley_city/index.php" target="_self" >History of West Valley City</a>
762		<ul id="ul-1093" class="menuUL level1 menuHidden">
763			<li id="li-1093" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/history_of_west_valley_city/historic_sites.php" target="_self" >Historic Sites</a></li>
764			<li id="li-1094" class="menuLI level1 menuHidden"><a class="menuA level1 menuHidden" href="our_community/about_us/history_of_west_valley_city/timeline.php" target="_self" >Timeline</a></li>
765		</ul>
766	</li>
767</ul>
768
769				</nav>
770			</div><!-- /#submenu-wrap -->
771		</div><!-- /.rz-element-wrapper -->
772
773					</div><!-- /.col-side -->
774				</div><!-- /.col-side-wrap -->
775
776				<div class="col-post-wrap">
777					<div class="col-post h-100">
778						<div id="post" class="h-100">
779												<div class="post-content h-100">
780							<!-- main content -->
781							
782							
783
784
785
786<div class="rz-section-block-wrap position-relative">
787  
788  
789  
790  <div class="rz-section-block container">
791
792
793
794
795
796<div class="rz-row-block d-grid">
797<div class="rz-column-block">
798
799
800<div class="rz-element-wrapper rz-rte-wrapper has-edit-buttons"
801 
802 >
803 
804 
805 
806        <div class="center-top">
807                <div class="rz-btns-container">
808                        
808<script language="JavaScript" type="text/JavaScript">
809                                RZ.module = 'generic';
810                                RZ.nexturl = '/revize/plugins/zbuilder/v1/website/editforms/rte-editform.jsp';
811                                RZ.img = '<span class="rzBtn rzBtn-xs">Edit Content</span>';
812                                RZ.set = 'pageid=0fbdf6ee-afdf-4b62-bee6-6a88c3fbfef2';
813                                RZ.options = '';
814                                if (typeof RZaction != 'undefined') RZaction('editform');
815                        </script>
815
816                </div>
817        </div>
818
819        <div class="rz-element rz-rte-wrap clearfix">
820        
821                <div class="rz-rte-element">
822                        
823                
824                        <h2 id="versionHeadLine" class="headline">A Brief History of West Valley City</h2>
825<div id="cc251bde38-7b3f-44b9-b06f-e96274484937" class="pageContent cpGrid cpGrid24" data-containerid="251bde38-7b3f-44b9-b06f-e96274484937">
826<div class="row outer wide">
827<div class="outer col col24 first last" data-widgetcontainerid="ff90ec36-27ca-4acd-97ce-8274aa284adc">
828<div class="row nest first last wide">
829<div class="inner col col24 first last idb8627730-a17c-4a8a-ab69-784b6cbb93ff" data-widgetcontainerid="b8627730-a17c-4a8a-ab69-784b6cbb93ff">
830<div id="divEditor3e8ec28e-a277-4e61-b04a-7d126c71669f" class="widget editor pageStyles wide" data-elementqueryclasses="{&quot;wide-narrow&quot;:&quot;min-width:25em&quot;}">
831<div class="fr-view">
832<p id="isPasted">In 1848, Joseph Harker and his family crossed the Jordan River and settled in what is now West Valley City. Soon after, other pioneer families followed, leaving Salt Lake City to go &ldquo;over Jordan.&rdquo; They built farming communities that later became known as Granger, Hunter, Redwood, and Chesterfield.</p>
833<p>Over the next century, the area grew steadily. Roads were paved, including 3500 South in 1918. Services and organizations were created, such as the Granger-Hunter Improvement District in 1949. The community saw its first bank open in 1956; Granger High School in 1958; and the Granger-Hunter Chamber of Commerce in 1961. By 1980, the communities joined together and officially incorporated as West Valley City.</p>
834<p>Growth continued into the 2000s. In 2002, West Valley City hosted Olympic hockey during the Winter Games. This event sparked new development, including the E Center (now the Maverik Center) and major upgrades around the arena.</p>
835<p>Economic development has remained a top priority. Business parks such as Lake Park Corporate Center, West Ridge Commerce Park, Decker Lake Business District, and Metro Business Park are now home to companies like Verizon Wireless, Frito Lay, Backcountry.com, UPS, and Discover Card. In the city center, Valley Fair Mall has been completely redeveloped, and the new transit-oriented project, Fairbourne Station, is reshaping the downtown area.</p>
836<p>West Valley City is known for its cultural diversity. According to the 2010 Census, nearly 35% of the population identified as non-white. To celebrate this diversity, the city broke ground on the Utah Cultural Celebration Center in 2002, a dream of former Mayor Gearld L. Wright. Since opening, the Center has hosted festivals, Pow Wows, the Utah Polynesian Festival, Day of the Dead celebrations, summer and winter concerts, art exhibits, and education programs. It is also home to one of only three Olmec Heads in the United States, a gift from Mexico.</p>
837<p>Recreation is another part of life in West Valley City. The city offers two golf courses, more than 20 parks, the 96,000-square-foot Family Fitness Center, and the Harman Senior Recreation Center, giving residents of all ages places to stay active and connected.</p>
838<p>Today, with a population of more than 145,000, West Valley City is Utah&rsquo;s second-largest city. From Joseph Harker&rsquo;s first camp on the Jordan River to a thriving community of culture, business, and recreation, the city continues to live up to its motto: &ldquo;Progress as promised.&rdquo;</p>
839</div>
840</div>
841</div>
842</div>
843</div>
844</div>
845</div>
846                
847                </div>
848        
849        </div>
850</div>
851
852
853</div>
854
855
856
857</div><!-- /.rz-row-block -->
858
859
860
861
862  </div><!-- /.rz-section-block -->
863</div><!-- /.rz-section-block-wrap -->
864
865
866						</div><!-- /.post-content -->
867						</div><!-- /#post -->
868					</div><!-- /.col-post -->
869				</div><!-- /.col-post-wrap -->
870				<div class="col freeform-right-col-fill"></div>
871			</div><!-- /.row -->
872		</div><!-- /.freeform-content-wrapper -->
873	</main><!-- /#rz-content-wrap -->
874
875<footer class="site-footer-wrap">
876	<div class="site-footer">
877
878
879
880
881<div class="rz-section-block-wrap position-relative" style="background-color:#000;--rz-section-padding-sm:48px 0;--rz-section-padding-md:48px 0;--rz-section-padding-lg:48px 0;">
882  
883  
884  
885  <div class="rz-section-block container">
886
887
888
889
890
891<div class="rz-row-block d-grid">
892<div class="rz-column-block d-flex flex-wrap flex-column justify-content-center align-items-center d-md-flex flex-md-wrap flex-md-column justify-content-md-center align-items-md-center d-lg-flex flex-lg-wrap flex-lg-row justify-content-lg-start align-items-lg-start">
893
894
895 
896<div class="rz-element-wrapper rz-section-header-wrapper has-edit-buttons" style="margin:0px 0px 64px 0px;">
897		<div class="center-top">
898				<div class="rz-btns-container">
899						
899<script language="JavaScript" type="text/JavaScript">
900								RZ.module  = 'generic';
901								RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/section_header-editform.jsp";
902								RZ.img     = '<span class="rzBtn rzBtn-sm">Edit Section Header</span>';
903								RZ.caption = '';
904								RZ.set     = 'pageid=438f0e81-2b79-446b-bbfb-71b3f20494be';
905								RZ.options = '';
906								if (typeof RZaction != 'undefined') RZaction('editform');
907						</script>
907
908				</div>
909		</div>
910		<div class="rz-element rz-section-header-wrap align-items-start text-start d-flex align-items-center gap-2">
911				
912				<div class="rz-section-header d-flex align-items-start text-start align-items-center gap-2">
913						
914								
915								<div class="d-flex flex-column align-items-start text-start">
916								
917						
918								<h2 class="rz-section-header-title mb-0" style="color:#ffffff;font-size:min(80px, 7.2vw);">West Valley City</h2>
919						
920						
921					</div>
922					
923					
924				</div><!-- /.rz-section-header -->
925				
926		</div><!-- /.rz-section-header-wrap -->
927</div><!-- /.rz-element-wrapper -->
928
929
930
931</div>
932
933
934
935</div><!-- /.rz-row-block -->
936
937
938
939
940<div class="rz-row-block d-grid opt_row_columns_4">
941<div class="rz-column-block">
942
943
944<div class="rz-element-wrapper rz-rte-wrapper has-edit-buttons hide-edit-buttons"
945 
946 >
947 
948 
949 
950        <div class="center-top">
951                <div class="rz-btns-container">
952                        
952<script language="JavaScript" type="text/JavaScript">
953                                RZ.module = 'generic';
954                                RZ.nexturl = '/revize/plugins/zbuilder/v1/website/editforms/rte-editform.jsp';
955                                RZ.img = '<span class="rzBtn rzBtn-xs">Edit Content</span>';
956                                RZ.set = 'pageid=85dc9365-24ae-4e28-9278-3b06ecaeb84c';
957                                RZ.options = '';
958                                if (typeof RZaction != 'undefined') RZaction('editform');
959                        </script>
959
960                </div>
961        </div>
962
963        <div class="rz-element rz-rte-wrap clearfix">
964        
965                <div class="rz-rte-element" style="color:#ffffff;">
966                        
967                
968                        <strong>City Hall</strong>
969                
970                </div>
971        
972        </div>
973</div>
974
975
976
977    <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">
978        <div class="center-top">
979            <div class="rz-btns-container">
980                
980<script language="JavaScript" type="text/JavaScript">
981                    RZ.module = 'generic';
982                    RZ.nexturl = '/revize/plugins/zbuilder/v1/website/editforms/address-editform.jsp';
983                    RZ.img = '<span class="rzBtn rzBtn-xs">Edit address</span>';
984                    RZ.set = 'pageid=0fa9c7e3-cbe4-456b-9db8-9f54bdda9d35';
985                    RZ.options = '';
986                    if (typeof RZaction != 'undefined') RZaction('editform');
987                </script>
987
988            </div>
989        </div>
990        
991            <div class="vr vr-s d-none"></div>
992            <a href="https://www.google.com/maps/search/?api=1&query=3600+South+Constitution+Boulevard%26%238232%3BWest+Valley+City%2C+UT+84119"
993               target="_self"
994               class="btn btn-link d-flex align-items-center text-start">
995                <i class="bi bi-geo-alt-fill me-2"></i>3600 South Constitution Boulevard&#8232;West Valley City, UT 84119
996            </a>
997            <div class="vr vr-e d-none"></div>
998        
999    </div><!-- /.rz-element-wrapper -->
1000
1001
1002</div><div class="rz-column-block">
1003
1004
1005<div class="rz-element-wrapper rz-rte-wrapper has-edit-buttons"
1006 
1007 >
1008 
1009 
1010 
1011        <div class="center-top">
1012                <div class="rz-btns-container">
1013                        
1013<script language="JavaScript" type="text/JavaScript">
1014                                RZ.module = 'generic';
1015                                RZ.nexturl = '/revize/plugins/zbuilder/v1/website/editforms/rte-editform.jsp';
1016                                RZ.img = '<span class="rzBtn rzBtn-xs">Edit Content</span>';
1017                                RZ.set = 'pageid=a29b20ab-a55c-43e3-a09e-2423abab187c';
1018                                RZ.options = '';
1019                                if (typeof RZaction != 'undefined') RZaction('editform');
1020                        </script>
1020
1021                </div>
1022        </div>
1023
1024        <div class="rz-element rz-rte-wrap clearfix">
1025        
1026                <div class="rz-rte-element" style="color:#ffffff;">
1027                        
1028                
1029                        Phone: 801-966-3600<br />TTY: 385-316-8658
1030                
1031                </div>
1032        
1033        </div>
1034</div>
1035
1036
1037</div><div class="rz-column-block d-flex flex-wrap flex-column justify-content-center align-items-center d-md-flex flex-md-wrap flex-md-column justify-content-md-center align-items-md-center d-lg-flex flex-lg-wrap flex-lg-row justify-content-lg-end align-items-lg-start">
1038
1039
1040
1041
1042<div class="rz-element-wrapper rz-button-wrapper has-edit-buttons move-to-offcanvas footer-social-btns"
1043 
1044 >
1045
1046		<div class="center-top">
1047				<div class="rz-btns-container">
1048						
1048<script>
1049								RZ.module = 'generic';
1050								RZ.nexturl = "/revize/plugins/zbuilder/v1/website/editforms/buttons-editform.jsp";
1051								RZ.img = '<span class="rzBtn rzBtn-xs">Edit Buttons</span>';
1052								RZ.caption = '';
1053								RZ.set = 'pageid=238a2126-33bb-4c2f-ae9b-92743e03f8dc';
1054								RZ.options = '';
1055								if (typeof RZaction != 'undefined') RZaction('editform');
1056						</script>
1056
1057				</div>
1058		</div>
1059		<div class="rz-element rz-button-wrap d-flex flex-wrap" 
1060				style="gap:20px;">
1061
1062<div class="d-flex align-items-stretch"  data-aos-duration="600">
1063		<a href="https://www.facebook.com/WestValleyCity" target="_blank"
1064				class="rz-btn-element d-flex align-items-center justify-content-center btn btn-primary  no-rz-text-reveal-btn "
1065				style="background:linear-gradient(90deg, #00000000 0%, #00000000 100%);--bs-btn-border-radius:0px;--bs-btn-border-width:0px;--bs-btn-border-color:#00000000;--bs-btn-border-hover-color:#00000000;padding:0px 0px 0px 0px;">
1066
1067				
1068				
1069						
1070								<i class="fab fa-facebook-f rz-btn-icon flex-shrink-0" style="font-size:32px;width:32px;height:32px;line-height:32px;border-radius:0px;color:#ffffff;background:#00000000;" aria-hidden="true"></i>
1071						
1072				
1073
1074				
1075				
1076
1077
1078				
1079				
1080		</a>
1081</div>
1082
1083<div class="d-flex align-items-stretch"  data-aos-duration="600">
1084		<a href="https://www.instagram.com/wvcut" target="_blank"
1085				class="rz-btn-element d-flex align-items-center justify-content-center btn btn-primary  no-rz-text-reveal-btn "
1086				style="background:linear-gradient(90deg, #00000000 0%, #00000000 100%);--bs-btn-border-radius:0px;--bs-btn-border-width:0px;--bs-btn-border-color:#00000000;--bs-btn-border-hover-color:#00000000;padding:0px 0px 0px 0px;">
1087
1088				
1089				
1090						
1091								<i class="bi bi-instagram rz-btn-icon flex-shrink-0" style="font-size:32px;width:32px;height:32px;line-height:32px;border-radius:0px;color:#ffffff;background:#00000000;" aria-hidden="true"></i>
1092						
1093				
1094
1095				
1096				
1097
1098
1099				
1100				
1101		</a>
1102</div>
1103
1104<div class="d-flex align-items-stretch"  data-aos-duration="600">
1105		<a href="https://www.linkedin.com/company/west-valley-city" target="_blank"
1106				class="rz-btn-element d-flex align-items-center justify-content-center btn btn-primary  no-rz-text-reveal-btn "
1107				style="background:linear-gradient(90deg, #00000000 0%, #00000000 100%);--bs-btn-border-radius:0px;--bs-btn-border-width:0px;--bs-btn-border-color:#00000000;--bs-btn-border-hover-color:#00000000;padding:0px 0px 0px 0px;">
1108
1109				
1110				
1111						
1112								<i class="bi bi-linkedin rz-btn-icon flex-shrink-0" style="font-size:32px;width:32px;height:32px;line-height:32px;border-radius:0px;color:#ffffff;background:#00000000;" aria-hidden="true"></i>
1113						
1114				
1115
1116				
1117				
1118
1119
1120				
1121				
1122		</a>
1123</div>
1124
1125<div class="d-flex align-items-stretch"  data-aos-duration="600">
1126		<a href="https://www.youtube.com/@wvctv2290" target="_blank"
1127				class="rz-btn-element d-flex align-items-center justify-content-center btn btn-primary  no-rz-text-reveal-btn "
1128				style="background:linear-gradient(90deg, #00000000 0%, #00000000 100%);--bs-btn-border-radius:0px;--bs-btn-border-width:0px;--bs-btn-border-color:#00000000;--bs-btn-border-hover-color:#00000000;padding:0px 0px 0px 0px;">
1129
1130				
1131				
1132						
1133								<i class="fab fa-youtube rz-btn-icon flex-shrink-0" style="font-size:32px;width:32px;height:32px;line-height:32px;border-radius:0px;color:#ffffff;background:#00000000;" aria-hidden="true"></i>
1134						
1135				
1136
1137				
1138				
1139
1140
1141				
1142				
1143		</a>
1144</div>
1145
1146<div class="d-flex align-items-stretch"  data-aos-duration="600">
1147		<a href="https://x.com/WVCUT" target="_blank"
1148				class="rz-btn-element d-flex align-items-center justify-content-center btn btn-primary  no-rz-text-reveal-btn "
1149				style="background:linear-gradient(90deg, #00000000 0%, #00000000 100%);--bs-btn-border-radius:0px;--bs-btn-border-width:0px;--bs-btn-border-color:#00000000;--bs-btn-border-hover-color:#00000000;padding:0px 0px 0px 0px;">
1150
1151				
1152				
1153						
1154								<i class="bi bi-twitter-x rz-btn-icon flex-shrink-0" style="font-size:32px;width:32px;height:32px;line-height:32px;border-radius:0px;color:#ffffff;background:#00000000;" aria-hidden="true"></i>
1155						
1156				
1157
1158				
1159				
1160
1161
1162				
1163				
1164		</a>
1165</div>
1166
1167		</div>
1168</div>
1169
1170
1171
1172</div>
1173
1174
1175
1176</div><!-- /.rz-row-block -->
1177
1178
1179
1180
1181  </div><!-- /.rz-section-block -->
1182</div><!-- /.rz-section-block-wrap -->
1183
1184
1185	</div><!-- /.site-footer -->
1186</footer><!-- /.site-footer-wrap -->
1187<div class="offcanvas-lg offcanvas-bottom"
1188	tabindex="-1"
1189	id="offcanvasHeaderItems">
1190	<div class="offcanvas-header">
1191		<button type="button"
1192			class="btn-close"
1193			data-bs-dismiss="offcanvas"
1194			aria-label="Close"
1195			data-bs-target="#offcanvasHeaderItems"></button>
1196	</div>
1197	<div class="offcanvas-body offcanvasHeaderItems-offcanvas-body pt-0"></div>
1198</div><!-- #offcanvasHeaderItems --> <div class="modal modal-lg fade" id="searchModal" tabindex="-1" role="dialog" style="--bs-modal-width:640px;">
1199	<div class="modal-dialog modal-dialog-centered" role="Site Search">
1200		<div class="modal-content px-0">
1201			<div class="modal-header border-0 pb-0 px-lg-3 pt-4">
1202				<h2 class="h5">Search West Valley City, UT</h2>
1203				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
1204			</div>
1205			<div class="modal-body p-0">
1206				<form class="form-inline overflow-hidden" method="GET" action="search.php" role="search" aria-label="sitewide">
1207					<div class="d-flex relative bg-white p-2 px-3">
1208						<div class="position-relative w-100">
1209							<div class="form-floating w-100">
1210								<input id="autocompleteme" autocomplete="off" class="form-control form-control-lg m-0 w-100" name="q" type="search" placeholder="How can we help?">
1211								<label for="autocompleteme" class="bg-transparent">How can we help?</label>
1212							</div>
1213							<div id="autocomplete-spinner" class="spinner-border text-success position-absolute" role="status"
1214								style="top: 50%; right: 4rem; width: 1rem; height: 1rem; margin-top: -9px; display: none; z-index: 10;--bs-spinner-border-width:0.15em" >
1215								<span class="visually-hidden">Loading...</span>
1216							</div>
1217						</div>
1218
1219						<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"><span class="vr"></span>
1220							<span><svg width="20" height="20" viewBox="0 0 20 20" aria-hidden="true" class="insta-search-icon">
1221									<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>
1222								</svg><span class="sr-only">Search</span></span>
1223						</button>
1224					</div>
1225				</form>
1226				<div class="all-search-buttons-wrap w-100 lh-1 position-relative" style="display:none">
1227					<div class="all-search-buttons py-3 p-3 d-md-flex flex-column flex-md-row gap-2 border-top">
1228						<div class="searchPopover p-3 bg-white d-none d-xl-block popover">
1229							<div class="searchPopover-arrow"></div><span class="searchPopover-text">Try searching... </span>
1230						</div>
1231						<a href="" class="all-site-search-btn align-content-center btn 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>
1232						<a href="" class="all-doc-search-btn align-content-center btn 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>
1233					</div><!-- /.search-buttons -->
1234				</div><!-- /.all-search-buttons-wrap -->
1235									<div class="popular-pages-search p-2"></div>
1236							</div><!-- /.modal-body -->
1237		</div><!-- /.modal-content -->
1238	</div><!-- /.modal-dialog -->
1239</div><!-- /.modal -->
1240
1241
1242<link href="https://cdn.jsdelivr.net/gh/lipis/[email protected]/css/flag-icons.min.css" rel="stylesheet" type="text/css" />		
1243<div class="rz-element-wrapper-combo position-fixed end-0 top-50 d-flex flex-column" role="complementary" aria-label="Utility toolbar" style="z-index:22">
1244	<!-- Accessibility Button -->
1245	<div class="rz-element-wrapper rz-ada-floaty-btn-element-combo rz-ada-btn-element d-none d-lg-flex position-relative">
1246		<button
1247			type="button"
1248			class="d-flex align-items-center lh-1 w-100 d-flex align-items-center justify-content-center"
1249			aria-label="Open accessibility options"
1250			title="Accessibility features">
1251			<i class="bi bi-universal-access" aria-hidden="true"></i>
1252			<span class="visually-hidden">Accessibility features</span>
1253			<span class="ada-text">Accessibility</span>
1254		</button>
1255	</div><!-- /.rz-element-wrapper -->
1256	
1257	<!-- Share Button -->
1258	<div class="rz-element-wrapper rz-share-floaty-btn-element-combo d-none d-lg-flex">
1259		<button
1260			type="button"
1261			class="d-flex align-items-center lh-1 w-100 d-flex align-items-center justify-content-center"
1262			data-bs-toggle="modal"
1263			data-bs-target="#shareModal"
1264			aria-label="Share this page"
1265			title="Share this page">
1266			<i class="bi bi-share-fill" aria-hidden="true"></i>
1267			<span class="visually-hidden">Share this page</span>
1268			<span class="share-text">Share</span>
1269		</button>
1270	</div><!-- /.rz-element-wrapper -->
1271	
1272	<!-- Translate Dropdown -->
1273	<div class="rz-element-wrapper header-translate-wrap-combo relative d-none d-lg-flex align-items-stretch gap-0">
1274		<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">
1275			<div class="fi fi-us selected-flag"></div>
1276			<i class="bi bi-translate me-2"></i>
1277			<span class="visually-hidden">Translate</span>
1278			<span class="translate-text">Translate</span>
1279		</button>
1280		<button class="btn text-start translate-reset px-2" translate="no">
1281			<i class="fa-solid fa-power-off" aria-hidden="true"></i>
1282			<span class="visually-hidden">Reset Translation</span>
1283		</button>
1284	</div>
1285</div><!-- /.rz-element-wrapper-combo -->
1286
1287
1288<div class="modal fade confirmation-popup" style="--bs-modal-width:420px;z-index:1100" tabindex="-1" data-bs-backdrop="static">
1289	<div class="modal-dialog modal-dialog-centered">
1290		<div class="modal-content">
1291			<div class="modal-body p-4 text-center">
1292				<div class="d-flex justify-content-center">
1293					<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>
1294				</div>
1295				<div class="d-flex"></div>
1296				<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>West Valley City, UT</strong> and visit an external site, do you wish to continue?</p>
1297			</div>
1298			<div class="modal-footer flex-nowrap p-0">
1299				<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>
1300				<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>
1301			</div>
1302		</div>
1303	</div>
1304</div>
1305
1306<script>
1307$(document).ready(function () {
1308	let externalLink = ''; // Store the external link URL
1309
1310	$('a')
1311		.not('[href^="javascript:"]')
1312		.not('[href^="mailto:"]')
1313		.not('[href^="tel:"]')
1314		.not('[href="http://cms4.revize.com/revize/supportrevize/revize_faq.php"]')
1315		.not('[href="https://intercom.help/revizefaqs/en/"]')
1316		.not('.rz-brand-footer a')
1317		.not('#revize-login')
1318		.not('.copy-live-link')
1319		.on('click', function (event) {
1320			// Ignore links with .rzBtn children
1321			if ($(this).find('span.rzBtn').length === 0) {
1322				const linkUrl = $(this).prop('href');
1323				const linkHost = new URL(linkUrl).hostname;
1324				const currentHost = window.location.hostname;
1325
1326				// Treat current domain and all revize.com domains/subdomains as internal
1327				const isRevizeDomain =
1328					linkHost === 'revize.com' ||
1329					linkHost.endsWith('.revize.com');
1330
1331				// If different domain and NOT a Revize domain, show confirmation popup
1332				if (linkHost !== currentHost && !isRevizeDomain) {
1333					event.preventDefault();
1334					externalLink = linkUrl;
1335					$('.confirmation-popup').addClass('show').show();
1336				}
1337			}
1338		});
1339
1340	// Confirm external navigation
1341	$('#confirmLeave').on('click', function () {
1342		if (externalLink) {
1343			window.open(externalLink, '_blank');
1344		}
1345
1346		$('.confirmation-popup').removeClass('show').hide();
1347		externalLink = '';
1348	});
1349
1350	// Cancel external navigation
1351	$('#cancelLeave').on('click', function () {
1352		$('.confirmation-popup').removeClass('show').hide();
1353		externalLink = '';
1354	});
1355});
1356</script>
1356
1357	<div class="modal fade"
1358		id="event-modal"
1359		tabindex="-1"
1360		role="dialog"
1361		aria-labelledby="modal-event-title"
1362		aria-hidden="true">
1363		<div id="event-modal-dialog"
1364			class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable"
1365			role="document"
1366			style="--bs-modal-width:1000px">
1367			<div class="modal-content">
1368
1369				<div class="modal-header align-items-center">
1370					<div>
1371						<h2 class="h4 modal-subtitle m-0 fs-4 fw-bold">Event Details</h2>
1372					</div>
1373					<button type="button"
1374						class="btn-close mt-0"
1375						data-bs-dismiss="modal"
1376						aria-label="Close"></button>
1377				</div>
1378
1379				<div class="modal-body p-0"
1380					id="modal-event-body">
1381					<div class="center-center"><div class="rz-btns-container"></div></div>
1382					<div class="row row-cols-lg-2 g-0 mx-0">
1383					<div class="event-modal-header"
1384						style="min-height:200px"></div><!-- /.event-modal-header for image -->
1385						<div class="event-details d-flex flex-column has-edit-buttons">
1386							<div class="d-flex align-items-start justify-content-between bg-light p-4">
1387								<div class="w-100">
1388									<div class="d-flex align-items-center gap-3">
1389										<div class="event-border-color"
1390											style="margin-top:3px;width:12px;height:26px;border-radius:100px;align-self:start;"></div>
1391										<div class="w-100">
1392											<div class="d-flex justify-content-between align-items-center">
1393												<h3 class="fs-4 fw-bold" id="modal-event-title">City Council Meeting </h3>
1394												<a href="calendar"
1395													class="flex-shrink-0 btn btn-light bg-white border-0 btn-sm"
1396													data-bs-toggle="tooltip"
1397													data-bs-placement="left"
1398													data-bs-title="view Calendar"
1399													data-bs-offset="0,20">
1400													<i class="bi bi-box-arrow-up-right"></i>
1401													<span class="sr-only">View Calendar</span>
1402												</a>
1403											</div>
1404											
1405											<p class="text-muted row row-cols-1 g-2 my-0 p-0 fw-normal lh-sm small">
1406												<span class="modal-event-date w-max-content"><i class="bi bi-calendar4-event me-2"></i></span>
1407												<span class="modal-event-time"><i class="bi bi-clock me-2"></i></span>
1408												<span class="modal-location w-100"><i class="bi bi-geo-alt me-2"></i></span>
1409											</p>
1410										</div>
1411									</div>
1412								</div>
1413								<button type="button"
1414									class="btn-close bg-white d-none"
1415									data-bs-dismiss="modal"
1416									aria-label="Close"></button>
1417							</div><!-- /.d-flex -->
1418
1419							<div class="d-flex flex-column p-4 my-auto row-gap-4">
1420								<div class="modal-event-description small">
1421									<h4 class="h6 fw-bold">Description</h4>
1422									<div id="modal-event-subtitle"></div>
1423									<div id="modal-event-description">
1424									</div>
1425								</div>
1426								<div style="width: 100%" id="modal-event-location" class="ratio ratio-16x9"></div>
1427							</div><!-- /.d-flex -->
1428							
1429							<div class="modal-action-buttons d-flex gap-2 mt-auto mb-4 px-4">
1430							
1431								<a href="#"
1432									class="btn btn-primary border-0" id="modal-event-readmore">Read More</a>
1433							</div><!-- /.modal-action-buttons -->
1434
1435						</div><!-- /.event-details -->
1436					</div><!-- /.row -->
1437				</div><!-- /.modal-body -->
1438			</div><!-- /.modal-content -->
1439		</div>
1440	</div>
1441	
1442	<style>
1443		#modal-event-duration{display:none}
1444		.rz-business-inner-map{border:1px solid var(--bs-border-color)!important;border-radius:var(--bs-border-radius)}
1445	</style>	
1446	
1447<div id="share-modal-section">
1448	<div class="modal fade" id="shareModal" tabindex="-1" role="dialog" aria-labelledby="shareModal">
1449		<div class="modal-dialog modal-dialog-centered" role="document">
1450			<div class="modal-content">
1451				<div class="modal-header border-0 bg-transparent pb-0 px-lg-4 pt-4">
1452					<div class="w-100 text-center">
1453						<span class="d-block h5 mb-1 w-100">Share this page</span>
1454						<p class="mb-1">On your favorite social media platform</p>
1455					</div>
1456					<button type="button" class="btn-close position-absolute end-0 top-0 m-3" data-bs-dismiss="modal" aria-label="Close"></button>
1457				</div>
1458				<div class="modal-body p-lg-4">
1459					<div class="share-btns row m-0 row-cols-md-3 gap-2">
1460						<a href="#" class="btn btn-primary btn-facebook" target="_blank">
1461							<i class="fa-brands fs-5 fa-square-facebook"></i> Facebook
1462						</a>
1463						
1464						<a href="#" class="btn btn-primary btn-twitter" target="_blank">
1465							<i class="fa-brands fs-5 fa-x-twitter"></i> x(twitter)
1466						</a>
1467						
1468						<a href="#" class="btn btn-primary btn-linkedin" target="_blank">
1469							<i class="fa-brands fs-5 fa-linkedin"></i> Linkedin
1470						</a>
1471						
1472						<a href="#" class="btn btn-primary btn-reddit" target="_blank">
1473							<i class="fa-brands fs-5 fa-square-reddit"></i> reddit
1474						</a>						
1475						<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>
1476						
1477						<a href="" class="btn btn-outline-dark w-100 border emailpage"><i class="fa-regular fs-5 fa-envelope"></i> Email Page Link</a>
1478
1479						<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>
1480												
1481					</div><!-- /.share-btns -->
1482										
1483					 
1483<script>
1484						 $(document).ready(function () {
1485							 // Build social share URLs from current page
1486							 var pageUrl      = window.location.href;
1487							 var encodedUrl   = encodeURIComponent(pageUrl);
1488					 
1489							 $('.btn-facebook').attr(
1490								 'href',
1491								 'https://www.facebook.com/sharer/sharer.php?u=' + encodedUrl
1492							 );
1493					 
1494							 $('.btn-twitter').attr(
1495								 'href',
1496								 'https://twitter.com/intent/tweet?url=' + encodedUrl
1497							 );
1498					 
1499							 $('.btn-linkedin').attr(
1500								 'href',
1501								 'https://www.linkedin.com/sharing/share-offsite/?url=' + encodedUrl
1502							 );
1503					 
1504							 $('.btn-reddit').attr(
1505								 'href',
1506								 'https://www.reddit.com/submit?url=' + encodedUrl
1507							 );
1508					 
1509							 // Copy to clipboard
1510							 $('.share-copy-link').on('click', function (e) {
1511								 e.preventDefault();
1512					 
1513								 var urlToCopy = $(this).attr('href') || $(this).data('url') || window.location.href;
1514					 
1515								 if (navigator.clipboard && navigator.clipboard.writeText) {
1516									 navigator.clipboard
1517										 .writeText(urlToCopy)
1518										 .then(function () {
1519											 new bootstrap.Toast(document.getElementById('coppiedToast')).show();
1520										 })
1521										 .catch(function () {
1522											 fallbackCopy(urlToCopy);
1523										 });
1524								 } else {
1525									 fallbackCopy(urlToCopy);
1526								 }
1527							 });
1528					 
1529							 function fallbackCopy(text) {
1530								 var $tempInput = $('<input style="position:absolute;left:-9999px;">');
1531								 $('body').append($tempInput);
1532								 $tempInput.val(text).select();
1533								 document.execCommand('copy');
1534								 $tempInput.remove();
1535								 new bootstrap.Toast(document.getElementById('coppiedToast')).show();
1536							 }
1537					 
1538							 // Email page link
1539							 $('.emailpage').on('click', function (e) {
1540								 e.preventDefault();
1541					 
1542								 var pageUrl = window.location.href;
1543								 var subject = encodeURIComponent('Check out this page');
1544								 var body = encodeURIComponent('Hey,\n\nI thought you might find this interesting:\n' + pageUrl);
1545								 window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
1546							 });
1547						 });
1548					 </script>
1548
1549					
1550					<div class="toast-container position-fixed top-0 start-50 translate-middle-x">
1551						<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">
1552							<div class="d-flex">
1553								<div class="toast-body">
1554									URL copied to clipboard!
1555								</div>
1556								<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
1557							</div>
1558						</div>
1559					</div>
1560					
1561				</div><!-- /.modal-body -->
1562			</div><!-- /.modal-content -->
1563		</div><!-- /.modal-dialog -->
1564	</div><!-- /.modal -->
1565</div><!-- /#modal-section --><link href="https://cdn.jsdelivr.net/gh/lipis/[email protected]/css/flag-icons.min.css" rel="stylesheet" type="text/css" />
1566<div class="modal fade" id="translateModal" tabindex="-1" aria-hidden="true">
1567	<div class="modal-dialog modal-sm modal-dialog-centered modal-dialog-scrollable">
1568		<div class="modal-content">
1569		<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">
1570			<input type="search" placeholder="Search languages..." autocomplete="off" class="form-control" id="translatesearch-input">
1571			<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">
1572			<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>
1573			</button>
1574		</form>
1575			<div class="modal-body" style="max-height:300px">
1576				<div class="lang-no-results text-center d-none text-muted small">No matching languages.</div>
1577				<div class="translation-links row row-cols-lg-1">
1578					<div>
1579						<button class="btn btn-link text-body p-2 text-start w-100 English" data-lang="English" translate="no">
1580						<span class="fi fi-us me-2"></span><strong>English</strong>
1581						</button>
1582					</div>
1583					<div>
1584						<button class="btn btn-link text-body p-2 text-start w-100 Afrikaans" data-lang="Afrikaans">
1585						<span class="fi fi-za me-2"></span>Afrikaans
1586						</button>
1587					</div>
1588					<div>
1589						<button class="btn btn-link text-body p-2 text-start w-100 Albanian" data-lang="Albanian">
1590						<span class="fi fi-al me-2"></span>Albanian
1591						</button>
1592					</div>
1593					<div>
1594						<button class="btn btn-link text-body p-2 text-start w-100 Arabic" data-lang="Arabic">
1595						<span class="fi fi-sa me-2"></span>Arabic
1596						</button>
1597					</div>
1598					<div>
1599						<button class="btn btn-link text-body p-2 text-start w-100 Armenian" data-lang="Armenian">
1600						<span class="fi fi-am me-2"></span>Armenian
1601						</button>
1602					</div>
1603					<div>
1604						<button class="btn btn-link text-body p-2 text-start w-100 Azerbaijani" data-lang="Azerbaijani">
1605						<span class="fi fi-az me-2"></span>Azerbaijani
1606						</button>
1607					</div>
1608					<div>
1609						<button class="btn btn-link text-body p-2 text-start w-100 Basque" data-lang="Basque">
1610						<span class="fi fi-es me-2"></span>Basque
1611						</button>
1612					</div>
1613					<div>
1614						<button class="btn btn-link text-body p-2 text-start w-100 Belarusian" data-lang="Belarusian">
1615						<span class="fi fi-by me-2"></span>Belarusian
1616						</button>
1617					</div>
1618					<div>
1619						<button class="btn btn-link text-body p-2 text-start w-100 Bengali" data-lang="Bengali">
1620						<span class="fi fi-bd me-2"></span>Bengali
1621						</button>
1622					</div>
1623					<div>
1624						<button class="btn btn-link text-body p-2 text-start w-100 Bosnian" data-lang="Bosnian">
1625						<span class="fi fi-ba me-2"></span>Bosnian
1626						</button>
1627					</div>
1628					<div>
1629						<button class="btn btn-link text-body p-2 text-start w-100 Bulgarian" data-lang="Bulgarian">
1630						<span class="fi fi-bg me-2"></span>Bulgarian
1631						</button>
1632					</div>
1633					<div>
1634						<button class="btn btn-link text-body p-2 text-start w-100 Catalan" data-lang="Catalan">
1635						<span class="fi fi-ad me-2"></span>Catalan
1636						</button>
1637					</div>
1638					<div>
1639						<button class="btn btn-link text-body p-2 text-start w-100 Cebuano" data-lang="Cebuano">
1640						<span class="fi fi-ph me-2"></span>Cebuano
1641						</button>
1642					</div>
1643					<div>
1644						<button class="btn btn-link text-body p-2 text-start w-100 Chinese" data-lang="Chinese (Simplified)">
1645						<span class="fi fi-cn me-2"></span>Chinese (Simplified)
1646						</button>
1647					</div>
1648					<div>
1649						<button class="btn btn-link text-body p-2 text-start w-100 Chinese" data-lang="Chinese (Traditional)">
1650						<span class="fi fi-tw me-2"></span>Chinese (Traditional)
1651						</button>
1652					</div>
1653					<div>
1654						<button class="btn btn-link text-body p-2 text-start w-100 Croatian" data-lang="Croatian">
1655						<span class="fi fi-hr me-2"></span>Croatian
1656						</button>
1657					</div>
1658					<div>
1659						<button class="btn btn-link text-body p-2 text-start w-100 Czech" data-lang="Czech">
1660						<span class="fi fi-cz me-2"></span>Czech
1661						</button>
1662					</div>
1663					<div>
1664						<button class="btn btn-link text-body p-2 text-start w-100 Danish" data-lang="Danish">
1665						<span class="fi fi-dk me-2"></span>Danish
1666						</button>
1667					</div>
1668					<div>
1669						<button class="btn btn-link text-body p-2 text-start w-100 Dutch" data-lang="Dutch">
1670						<span class="fi fi-nl me-2"></span>Dutch
1671						</button>
1672					</div>
1673					<div>
1674						<button class="btn btn-link text-body p-2 text-start w-100 Esperanto" data-lang="Esperanto">
1675						<span class="fi fi-un me-2"></span>Esperanto
1676						</button>
1677					</div>
1678					<div>
1679						<button class="btn btn-link text-body p-2 text-start w-100 
1679Estonian" data-lang="Estonian">
1680						<span class="fi fi-ee me-2"></span>Estonian
1681						</button>
1682					</div>
1683					<div>
1684						<button class="btn btn-link text-body p-2 text-start w-100 Filipino" data-lang="Filipino">
1685						<span class="fi fi-ph me-2"></span>Filipino
1686						</button>
1687					</div>
1688					<div>
1689						<button class="btn btn-link text-body p-2 text-start w-100 Finnish" data-lang="Finnish">
1690						<span class="fi fi-fi me-2"></span>Finnish
1691						</button>
1692					</div>
1693					<div>
1694						<button class="btn btn-link text-body p-2 text-start w-100 French" data-lang="French">
1695						<span class="fi fi-fr me-2"></span>French
1696						</button>
1697					</div>
1698					<div>
1699						<button class="btn btn-link text-body p-2 text-start w-100 Galician" data-lang="Galician">
1700						<span class="fi fi-es me-2"></span>Galician
1701						</button>
1702					</div>
1703					<div>
1704						<button class="btn btn-link text-body p-2 text-start w-100 Georgian" data-lang="Georgian">
1705						<span class="fi fi-ge me-2"></span>Georgian
1706						</button>
1707					</div>
1708					<div>
1709						<button class="btn btn-link text-body p-2 text-start w-100 German" data-lang="German">
1710						<span class="fi fi-de me-2"></span>German
1711						</button>
1712					</div>
1713					<div>
1714						<button class="btn btn-link text-body p-2 text-start w-100 Greek" data-lang="Greek">
1715						<span class="fi fi-gr me-2"></span>Greek
1716						</button>
1717					</div>
1718					<div>
1719						<button class="btn btn-link text-body p-2 text-start w-100 Gujarati" data-lang="Gujarati">
1720						<span class="fi fi-in me-2"></span>Gujarati
1721						</button>
1722					</div>
1723					<div>
1724						<button class="btn btn-link text-body p-2 text-start w-100 Haitian" data-lang="Haitian Creole">
1725						<span class="fi fi-ht me-2"></span>Haitian Creole
1726						</button>
1727					</div>
1728					<div>
1729						<button class="btn btn-link text-body p-2 text-start w-100 Hausa" data-lang="Hausa">
1730						<span class="fi fi-ng me-2"></span>Hausa
1731						</button>
1732					</div>
1733					<div>
1734						<button class="btn btn-link text-body p-2 text-start w-100 Hebrew" data-lang="Hebrew">
1735						<span class="fi fi-il me-2"></span>Hebrew
1736						</button>
1737					</div>
1738					<div>
1739						<button class="btn btn-link text-body p-2 text-start w-100 Hindi" data-lang="Hindi">
1740						<span class="fi fi-in me-2"></span>Hindi
1741						</button>
1742					</div>
1743					<div>
1744						<button class="btn btn-link text-body p-2 text-start w-100 Hmong" data-lang="Hmong">
1745						<span class="fi fi-cn me-2"></span>Hmong
1746						</button>
1747					</div>
1748					<div>
1749						<button class="btn btn-link text-body p-2 text-start w-100 Hungarian" data-lang="Hungarian">
1750						<span class="fi fi-hu me-2"></span>Hungarian
1751						</button>
1752					</div>
1753					<div>
1754						<button class="btn btn-link text-body p-2 text-start w-100 Icelandic" data-lang="Icelandic">
1755						<span class="fi fi-is me-2"></span>Icelandic
1756						</button>
1757					</div>
1758					<div>
1759						<button class="btn btn-link text-body p-2 text-start w-100 Igbo" data-lang="Igbo">
1760						<span class="fi fi-ng me-2"></span>Igbo
1761						</button>
1762					</div>
1763					<div>
1764						<button class="btn btn-link text-body p-2 text-start w-100 Indonesian" data-lang="Indonesian">
1765						<span class="fi fi-id me-2"></span>Indonesian
1766						</button>
1767					</div>
1768					<div>
1769						<button class="btn btn-link text-body p-2 text-start w-100 Irish" data-lang="Irish">
1770						<span class="fi fi-ie me-2"></span>Irish
1771						</button>
1772					</div>
1773					<div>
1774						<button class="btn btn-link text-body p-2 text-start w-100 Italian" data-lang="Italian">
1775						<span class="fi fi-it me-2"></span>Italian
1776						</button>
1777					</div>
1778					<div>
1779						<button class="btn btn-link text-body p-2 text-start w-100 Japanese" data-lang="Japanese">
1780						<span class="fi fi-jp me-2"></span>Japanese
1781						</button>
1782					</div>
1783					<div>
1784						<button class="btn btn-link text-body p-2 text-start w-100 Javanese" data-lang="Javanese">
1785						<span class="fi fi-id me-2"></span>Javanese
1786						</button>
1787					</div>
1788					<div>
1789						<button class="btn btn-link text-body p-2 text-start w-100 K
1789annada" data-lang="Kannada">
1790						<span class="fi fi-in me-2"></span>Kannada
1791						</button>
1792					</div>
1793					<div>
1794						<button class="btn btn-link text-body p-2 text-start w-100 Khmer" data-lang="Khmer">
1795						<span class="fi fi-kh me-2"></span>Khmer
1796						</button>
1797					</div>
1798					<div>
1799						<button class="btn btn-link text-body p-2 text-start w-100 Korean" data-lang="Korean">
1800						<span class="fi fi-kr me-2"></span>Korean
1801						</button>
1802					</div>
1803					<div>
1804						<button class="btn btn-link text-body p-2 text-start w-100 Lao" data-lang="Lao">
1805						<span class="fi fi-la me-2"></span>Lao
1806						</button>
1807					</div>
1808					<div>
1809						<button class="btn btn-link text-body p-2 text-start w-100 Latin" data-lang="Latin">
1810						<span class="fi fi-va me-2"></span>Latin
1811						</button>
1812					</div>
1813					<div>
1814						<button class="btn btn-link text-body p-2 text-start w-100 Latvian" data-lang="Latvian">
1815						<span class="fi fi-lv me-2"></span>Latvian
1816						</button>
1817					</div>
1818					<div>
1819						<button class="btn btn-link text-body p-2 text-start w-100 Lithuanian" data-lang="Lithuanian">
1820						<span class="fi fi-lt me-2"></span>Lithuanian
1821						</button>
1822					</div>
1823					<div>
1824						<button class="btn btn-link text-body p-2 text-start w-100 Macedonian" data-lang="Macedonian">
1825						<span class="fi fi-mk me-2"></span>Macedonian
1826						</button>
1827					</div>
1828					<div>
1829						<button class="btn btn-link text-body p-2 text-start w-100 Malay" data-lang="Malay">
1830						<span class="fi fi-my me-2"></span>Malay
1831						</button>
1832					</div>
1833					<div>
1834						<button class="btn btn-link text-body p-2 text-start w-100 Maltese" data-lang="Maltese">
1835						<span class="fi fi-mt me-2"></span>Maltese
1836						</button>
1837					</div>
1838					<div>
1839						<button class="btn btn-link text-body p-2 text-start w-100 Maori" data-lang="Maori">
1840						<span class="fi fi-nz me-2"></span>Maori
1841						</button>
1842					</div>
1843					<div>
1844						<button class="btn btn-link text-body p-2 text-start w-100 Marathi" data-lang="Marathi">
1845						<span class="fi fi-in me-2"></span>Marathi
1846						</button>
1847					</div>
1848					<div>
1849						<button class="btn btn-link text-body p-2 text-start w-100 Mongolian" data-lang="Mongolian">
1850						<span class="fi fi-mn me-2"></span>Mongolian
1851						</button>
1852					</div>
1853					<div>
1854						<button class="btn btn-link text-body p-2 text-start w-100 Nepali" data-lang="Nepali">
1855						<span class="fi fi-np me-2"></span>Nepali
1856						</button>
1857					</div>
1858					<div>
1859						<button class="btn btn-link text-body p-2 text-start w-100 Norwegian" data-lang="Norwegian">
1860						<span class="fi fi-no me-2"></span>Norwegian
1861						</button>
1862					</div>
1863					<div>
1864						<button class="btn btn-link text-body p-2 text-start w-100 Persian" data-lang="Persian">
1865						<span class="fi fi-ir me-2"></span>Persian
1866						</button>
1867					</div>
1868					<div>
1869						<button class="btn btn-link text-body p-2 text-start w-100 Polish" data-lang="Polish">
1870						<span class="fi fi-pl me-2"></span>Polish
1871						</button>
1872					</div>
1873					<div>
1874						<button class="btn btn-link text-body p-2 text-start w-100 Portuguese" data-lang="Portuguese">
1875						<span class="fi fi-pt me-2"></span>Portuguese
1876						</button>
1877					</div>
1878					<div>
1879						<button class="btn btn-link text-body p-2 text-start w-100 Punjabi" data-lang="Punjabi">
1880						<span class="fi fi-in me-2"></span>Punjabi
1881						</button>
1882					</div>
1883					<div>
1884						<button class="btn btn-link text-body p-2 text-start w-100 Romanian" data-lang="Romanian">
1885						<span class="fi fi-ro me-2"></span>Romanian
1886						</button>
1887					</div>
1888					<div>
1889						<button class="btn btn-link text-body p-2 text-start w-100 Russian" data-lang="Russian">
1890						<span class="fi fi-ru me-2"></span>Russian
1891						</button>
1892					</div>
1893					<div>
1894						<button class="btn btn-link text-body p-2 text-start w-100 Serbian" data-lang="Serbian">
1895						<span class="fi fi-rs me-2"></span>Serbian
1896						</button>
1897					</div>
1898					<div>
1899						<button class="btn btn-link text-body p-2 text-start w-100 Slovak" data-lang="Slovak">
1900						<span class="fi fi-sk me-2"></span>Slovak
1901						</button>
1902					</div>
1903					<div>
1904						<button class="btn btn-link text-body p-2 text-start w-100 Slovenian" data-lang="Slovenian">
1905						<span class="fi fi-si me-2"></span>Slovenian
1906						</button>
1907					</div>
1908					<div>
1909						<button class="btn btn-link text-body p-2 text-start w-100 Somali" data-lang="Somali">
1910						<span class="fi fi-so me-2"></span>Somali
1911						</button>
1912					</div>
1913					<div>
1914						<button class="btn btn-link text-body p-2 text-start w-100 Spanish" data-lang="Spanish">
1915						<span class="fi fi-es me-2"></span>Spanish
1916						</button>
1917					</div>
1918					<div>
1919						<button class="btn btn-link text-body p-2 text-start w-100 Swahili" data-lang="Swahili">
1920						<span class="fi fi-ke me-2"></span>Swahili
1921						</button>
1922					</div>
1923					<div>
1924						<button class="btn btn-link text-body p-2 text-start w-100 Swedish" data-lang="Swedish">
1925						<span class="fi fi-se me-2"></span>Swedish
1926						</button>
1927					</div>
1928					<div>
1929						<button class="btn btn-link text-body p-2 text-start w-100 Tamil" data-lang="Tamil">
1930						<span class="fi fi-in me-2"></span>Tamil
1931						</button>
1932					</div>
1933					<div>
1934						<button class="btn btn-link text-body p-2 text-start w-100 Telugu" data-lang="Telugu">
1935						<span class="fi fi-in me-2"></span>Telugu
1936						</button>
1937					</div>
1938					<div>
1939						<button class="btn btn-link text-body p-2 text-start w-100 Thai" data-lang="Thai">
1940						<span class="fi fi-th me-2"></span>Thai
1941						</button>
1942					</div>
1943					<div>
1944						<button class="btn btn-link text-body p-2 text-start w-100 Turkish" data-lang="Turkish">
1945						<span class="fi fi-tr me-2"></span>Turkish
1946						</button>
1947					</div>
1948					<div>
1949						<button class="btn btn-link text-body p-2 text-start w-100 Ukrainian" data-lang="Ukrainian">
1950						<span class="fi fi-ua me-2"></span>Ukrainian
1951						</button>
1952					</div>
1953					<div>
1954						<button class="btn btn-link text-body p-2 text-start w-100 Urdu" data-lang="Urdu">
1955						<span class="fi fi-pk me-2"></span>Urdu
1956						</button>
1957					</div>
1958					<div>
1959						<button class="btn btn-link text-body p-2 text-start w-100 Vietnamese" data-lang="Vietnamese">
1960						<span class="fi fi-vn me-2"></span>Vietnamese
1961						</button>
1962					</div>
1963					<div>
1964						<button class="btn btn-link text-body p-2 text-start w-100 Welsh" data-lang="Welsh">
1965						<span class="fi fi-gb me-2"></span>Welsh
1966						</button>
1967					</div>
1968					<div>
1969						<button class="btn btn-link text-body p-2 text-start w-100 Yoruba" data-lang="Yoruba">
1970						<span class="fi fi-ng me-2"></span>Yoruba
1971						</button>
1972					</div>
1973					<div>
1974						<button class="btn btn-link text-body p-2 text-start w-100 Zulu" data-lang="Zulu">
1975						<span class="fi fi-za me-2"></span>Zulu
1976						</button>
1977					</div>
1978				</div>
1979			</div>
1980			<div class="modal-footer p-2">
1981				<div class="lang-search-status text-center small text-muted" aria-l
1981ive="polite" aria-atomic="true"></div>
1982				<button type="button" class="btn btn-sm btn-primary ms-auto" data-bs-dismiss="modal">Close</button>
1983				<button class="btn btn-link text-body p-2 text-start translate-reset" translate="no">
1984					<i class="fa-solid fa-power-off" aria-hidden="true"></i>
1985					<span class="visually-hidden">Reset Translation</span>
1986				</button>
1987			</div>
1988		</div>
1989	</div>
1990</div>
1991<div id="google-translate" class="d-none"></div>
1992<script>
1993function googleTranslateElementInit() {
1994	new google.translate.TranslateElement(
1995		{ pageLanguage: 'en', autoDisplay: false, layout: google.translate.TranslateElement.InlineLayout.SIMPLE },
1996		'google-translate'
1997	);
1998}
1999</script>
vendor: 2 bytes, line 1999
1999
2000<script>
2001var translateURL = "//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit";
2002$.getScript(translateURL);
2003
2004function clickLanguage(langText, maxTries, intervalMs) {
2005	langText = (langText || '').trim();
2006	maxTries = maxTries || 30;
2007	intervalMs = intervalMs || 200;
2008	var tries = 0;
2009	var timer = setInterval(function () {
2010		var $frame = $("iframe.skiptranslate");
2011		if ($frame.length) {
2012			var doc = $frame.contents();
2013			var $target = doc.find('span.text').filter(function () {
2014				return $(this).text().trim() === langText;
2015			}).closest('a');
2016			if (!$target.length) {
2017				$target = doc.find('span.text').filter(function () {
2018					return $(this).text().trim() === 'English';
2019				}).closest('a');
2020			}
2021			if ($target.length) {
2022				$target.get(0).click();
2023				clearInterval(timer);
2024				return;
2025			}
2026		}
2027		tries++;
2028		if (tries >= maxTries) clearInterval(timer);
2029	}, intervalMs);
2030}
2031
2032function getCookie(cname) {
2033	let name = cname + "=";
2034	let ca = document.cookie.split(';');
2035	for(let i = 0; i < ca.length; i++) {
2036		let c = ca[i];
2037		while (c.charAt(0) == ' ') c = c.substring(1);
2038		if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
2039	}
2040	return "";
2041}
2042
2043function sanitizeFlag(code) {
2044	var v = (code || "").toLowerCase().trim();
2045	if (!v || v === "undefined" || v === "null") return "";
2046	if (!/^[a-z]{2}$/.test(v)) return "";
2047	return v;
2048}
2049
2050function applyActiveFromCookie() {
2051	var code = sanitizeFlag(getCookie('lang')) || sanitizeFlag(getCookie('code')) || 'us';
2052	var $btn = $('.translation-links button').filter(function(){
2053		var dataCode = ($(this).data('code') || '').toString().toLowerCase();
2054		if (dataCode && dataCode === code) return true;
2055		var cls = ($(this).find('span[class*="fi-"]').attr('class') || '');
2056		var m = cls.match(/\bfi-([a-z]{2})\b/i);
2057		return m && m[1].toLowerCase() === code;
2058	}).first();
2059	if (!$btn.length && code === 'us') $btn = $('.translation-links button[data-lang="English"]').first();
2060	$('.translation-links button').removeClass('active');
2061	if ($btn.length) $btn.addClass('active');
2062}
2063
2064(function initSelectedFlag(){
2065	var initialCode = sanitizeFlag(getCookie('lang')) || sanitizeFlag(getCookie('code')) || "us";
2066	$('.selected-flag').attr('class', 'fi fi-' + initialCode + ' selected-flag');
2067	$('.c-code').text(initialCode);
2068	applyActiveFromCookie();
2069})();
2070
2071$(".translation-links button").on("click", function () {
2072	var lang = $(this).data("lang");
2073	$('.translation-links button').removeClass('active');
2074	$(this).addClass('active');
2075	clickLanguage(lang);
2076	var cCode = $(this).data('code');
2077	if (!cCode) {
2078		var cls = $(this).find('span[class*="fi-"]').attr('class') || '';
2079		var m = cls.match(/\bfi-([a-z]{2})\b/i);
2080		if (m) cCode = m[1].toLowerCase();
2081	}
2082	if (!cCode) cCode = 'us';
2083	$('.selected-flag').attr('class', 'fi fi-' + cCode + ' selected-flag');
2084	$('.c-code').text(cCode);
2085	document.cookie = 'lang=' + cCode + '; path=/';
2086	document.cookie = 'code=' + cCode + '; path=/';
2087	return false;
2088});
2089
2090var $translateReset = $(".translate-reset");
2091$translateReset.on("keydown click", function (e) {
2092	if (e.keyCode === 13 || e.type === "click") {
2093		clickLanguage('English');
2094		$('.translation-links button').removeClass('active');
2095		$('.translation-links button[data-lang="English"]').addClass('active');
2096		$('.selected-flag').attr('class','fi fi-us selected-flag');
2097		$('.c-code').text('us');
2098		document.cookie = 'lang=us; path=/';
2099		document.cookie = 'code=us; path=/';
2100	}
2101});
2102
2103(function($){
2104	var $form = $('.translate-search');
2105	var $input = $form.find('input[type="search"]');
2106	var $list = $('.translation-links');
2107	var $btns = $list.find('div');
2108	var $empty = $('.lang-no-results');
2109	var $status = $('.lang-search-status');
2110	$form.on('submit', function(e){ e.preventDefault(); });
2111	function norm(s){
2112		return (s||'').toString().toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g,'');
2113	}
2114	$btns.each(function(){
2115		var $b = $(this);
2116		var txt = $b.text().trim();
2117		var lang = ($b.data('lang')||'')+'';
2118		$b.attr('data-search', norm(txt + ' ' + lang));
2119	});
2120	function updateStatus(visible, total){
2121		if ($status.length) $status.text(visible + ' of ' + total + ' languages');
2122		if ($empty.length)  $empty.toggleClass('d-none', visible > 0);
2123	}
2124	var total = $btns.length;
2125	updateStatus(total, total);
2126	function filter(){
2127		var q = norm($input.val());
2128		if (!q){
2129			$btns.removeClass('d-none');
2130			updateStatus(total, total);
2131			return;
2132		}
2133		var visible = 0;
2134		$btns.each(function(){
2135			var $b = $(this);
2136			var hay = $b.attr('data-search') || '';
2137			var match = hay.indexOf(q) !== -1;
2138			$b.toggleClass('d-none', !match);
2139			if (match) visible++;
2140		});
2141		$btns.filter('.d-none').attr('tabindex', -1);
2142		$btns.not('.d-none');
2143		updateStatus(visible, total);
2144	}
2145	$input.on('input keyup', filter);
2146})(jQuery);
2147// ADA, Fix Google Translate Inputs
2148function fixGoogleTranslateInputs() {
2149		const inputs = [
2150			{ id: "goog-gt-votingInputSrcLang", label: "Source Language Input" },
2151			{ id: "goog-gt-votingInputTrgLang", label: "Target Language Input" },
2152			{ id: "goog-gt-votingInputSrcText", label: "Source Text Input" },
2153			{ id: "goog-gt-votingInputTrgText", label: "Target Text Input" },
2154			{ id: "goog-gt-votingInputVote", label: "Vote Input" },
2155		];
2156
2157		let allLabelsSet = true;
2158		inputs.forEach((item) => {
2159			const input = document.getElementById(item.id);
2160			if (input) {
2161				input.setAttribute("aria-label", item.label);
2162			} else {
2163				allLabelsSet = false;
2164			}
2165		});
2166
2167		if (allLabelsSet) {
2168			googleObserver.disconnect();
2169		}
2170	}
2171	const googleObserver = new MutationObserver((mutationsList, observer) => {
2172		for (let mutation of mutationsList) {
2173			if (mutation.type === "childList") {
2174				fixGoogleTranslateInputs();
2175			}
2176		}
2177	});
2178	googleObserver.observe(document.body, { childList: true, subtree: true });
2179 fixGoogleTranslateInputs();
2180</script>
vendor: 2 bytes, line 2180
2180
2181<script>
2182// === prevent translation on certain elements ===
2183var NO_TRANSLATE_SELECTORS = [
2184	'.material-icons',
2185	'.main-logo',
2186	'.nav-label',
2187	'.mini-calendar',
2188	'.rz-address-wrapper',
2189	'[data-no-translate]',
2190	'a[href^="mailto:"]'
2191];
2192
2193function applyNoTranslate() {
2194	try {
2195		NO_TRANSLATE_SELECTORS.forEach(function (sel) {
2196			var $els = $(sel);
2197			if ($els.length) {
2198				$els
2199					.addClass('notranslate')
2200					.attr('translate', 'no')
2201					.attr('lang', $els.attr('lang') || 'en');
2202			}
2203		});
2204	} catch (e){
2205		
2206	}
2207}
2208
2209$(applyNoTranslate);
2210var noTranslateObserver = new MutationObserver(function () {
2211	applyNoTranslate();
2212});
2213noTranslateObserver.observe(document.documentElement, { childList: true, subtree: true });
2214</script>
2214
2215<div class="offcanvas offcanvas-end offcanvas-business-item" tabindex="-1" id="catalogueDetails" aria-modal="true">
2216	<div class="offcanvas-body p-0">
2217 		<div class="ratio ratio-16x9 mb-4 featured-image-wrap z-0" style="background-image: url('');"></div>
2218		<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>
2219		<h4 class="p-2 px-md-4 catalogue-title">Catalogue title</h4>
2220		<ul class="nav nav-underline justify-content-start border-bottom m-0 px-4" id="businessTabs" role="tablist">
2221			<li class="nav-item m-0 " role="presentation">
2222				<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>
2223			</li>
2224			<li class="nav-item m-0" role="presentation">
2225				<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>
2226			</li>
2227			<li class="nav-item m-0 d-none" role="presentation">
2228				<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>
2229			</li>
2230		</ul>
2231		<div id="business-details">
2232			<div class="tab-content" id="businessTabContent">
2233				<div class="tab-pane p-4 fade active show" id="overview-tab-pane" role="tabpanel" tabindex="0">
2234					<div class="row row-cols-3 row-cols-md-3 py-lg-3 px-2 catalogue-helpful-links">
2235						<p class="d-flex flex-column text-center m-0">
2236							<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>
2237						</p>
2238						<p class="d-flex flex-column text-center m-0 catalogue-map-link">
2239							<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>
2240						</p>
2241						<!-- <p class="d-flex flex-column text-center m-0">
2242							<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>
2243						</p> -->
2244						<p class="d-flex flex-column text-center m-0">
2245							<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>
2246						</p>
2247					</div><!-- /.d-flex -->
2248					<hr class="mt-0 mb-4">
2249					<div class="row row-cols-1 row-cols-md-3 catalogue-contacts gap-md-3">
2250					</div><!-- /.row -->
2251					<table class="table catalogue-hours">
2252						<thead>
2253							<tr>
2254								<th scope="col" style="width:160px" class="ps-0 small text-muted">Days</th>
2255								<th scope="col" class="small text-muted">Hours</th>
2256							</tr>
2257						</thead>
2258
2259						<tbody class="table-group-divider">
2260							<tr>
2261								<th scope="row" class="ps-0 text-nowrap">Sunday</th>
2262								<td></td>
2263							</tr>
2264							<tr>
2265								<th scope="row" class="ps-0 text-nowrap">Monday</th>
2266								<td></td>
2267							</tr>
2268							<tr>
2269								<th scope="row" class="ps-0 text-nowrap">Tuesday</th>
2270								<td></td>
2271							</tr>
2272							<tr>
2273								<th scope="row" class="ps-0 text-nowrap">Wednesday</th>
2274								<td></td>
2275							</tr>
2276							<tr>
2277								<th scope="row" class="ps-0 text-nowrap">Thursday</th>
2278								<td></td>
2279							</tr>
2280							<tr>
2281								<th scope="row" class="ps-0 text-nowrap">Friday</th>
2282								<td></td>
2283							</tr>
2284							<tr>
2285								<th scope="row" class="ps-0 text-nowrap">Saturday</th>
2286								<td></td>
2287							</tr>
2288						</tbody>
2289					</table>
2290				</div><!-- /.tab-pane -->
2291				<div class="tab-pane p-4 fade" id="about-tab-pane" role="tabpanel" tabindex="0">
2292				</div><!-- /.tab-pane -->
2293				<div class="tab-pane p-4 fade" id="photos-tab-pane" role="tabpanel" tabindex="0">
2294					<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>
2295					<div class="rz-gallery-wrap">
2296
2297						<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;">
2298
2299							<!-- <div data-src="_assets_/images/no-image-slider-2.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2300								<img src="_assets_/images/no-image-slider-2.jpg" class="w-100" alt="">
2301												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2302									<i class="bi bi-arrows-angle-expand lh-1"></i>
2303								</span>
2304							</div>
2305							
2306							<div data-src="_assets_/images/no-image-slider.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2307								<img src="_assets_/images/no-image-slider.jpg" class="w-100" alt="">
2308												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2309									<i class="bi bi-arrows-angle-expand lh-1"></i>
2310								</span>
2311							</div>
2312							
2313							<div data-src="_assets_/images/no-image-slider-2.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2314								<img src="_assets_/images/no-image-slider-2.jpg" class="w-100" alt="">
2315												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2316									<i class="bi bi-arrows-angle-expand lh-1"></i>
2317								</span>
2318							</div>
2319							
2320							<div data-src="_assets_/images/no-image-slider-2.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2321								<img src="_assets_/images/no-image-slider-2.jpg" class="w-100" alt="">
2322												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2323									<i class="bi bi-arrows-angle-expand lh-1"></i>
2324								</span>
2325							</div>
2326							
2327							<div data-src="_assets_/images/no-image-slider-2.jpg" class="rz-gallery-image" data-lg-size="3000-2000" style="position: absolute;">
2328								<img src="_assets_/images/no-image-slider-2.jpg" class="w-100" alt="">
2329												<span class="rz-zoom cursor-pointer z-index-1 bg-white fs-3 lh-1 p-4 rounded-circle">
2330									<i class="bi bi-arrows-angle-expand lh-1"></i>
2331								</span>
2332							</div> -->
2333
2334						</div><!-- #lightgallery -->
2335					</div><!-- /.rz-gallery-wrap -->
2336				</div><!-- /.tab-pane -->
2337			</div><!-- /.tab-content -->
2338		</div><!-- /#business-details -->
2339	</div><!-- /.offcanvas-body -->
2340</div>
2341
2342
2343<script>
2344
2345var catalogueDetailsMap = { modal: null };
2346var catalogueJSONData = null;
2347
2348if (typeof indexByIdOrRid !== 'function') {
2349	function indexByIdOrRid(data){
2350		if (!data) return {};
2351		if (!Array.isArray(data)) return data;
2352		return data.reduce((m, item) => {
2353			if (!item) return m;
2354			const key = item.rid ?? item.id;
2355			if (key != null) m[String(key)] = item;
2356			return m;
2357		}, {});
2358	}
2359}
2360
2361function openCatalogueDetails(rid) {
2362	if (!catalogueDetailsMap.modal || !catalogueJSONData) return;
2363
2364	rid = String(rid);
2365	var cRecord = catalogueJSONData[rid];
2366	if (!cRecord) return;
2367
2368	var m = catalogueDetailsMap;
2369
2370	var parsedOptions = cRecord.options;
2371	if (typeof parsedOptions === 'string') {
2372		try { parsedOptions = JSON.parse(parsedOptions); } catch(e){ parsedOptions = {}; }
2373	}
2374	parsedOptions = parsedOptions || {};
2375
2376	var imgURL = (cRecord.image || '').trim();
2377	if (imgURL && !imgURL.endsWith('/')) {
2378		m.img && m.img.classList.remove('d-none');
2379		if (m.img) {
2380			m.img.style.backgroundImage = "url('" + imgURL + "')";
2381		}
2382	} else {
2383		if (m.img) {
2384			m.img.style.backgroundImage = '';
2385			m.img.classList.add('d-none');
2386		}
2387	}
2388
2389	// Title
2390	if (m.title) {
2391		var rawTitle = cRecord.title || cRecord.name || "";
2392		m.title.textContent = decodeHtmlEntities(rawTitle);
2393	}
2394
2395	if (m.helpful) {
2396		var links = m.helpful.querySelectorAll("a");
2397		if (links.length) {
2398			var el = links[0];
2399			var webUrl  = (parsedOptions.website_url || "").trim();
2400			var webText = (parsedOptions.website_text || "Visit Website").trim();
2401			if (webUrl && webUrl !== "#") {
2402				el.href = webUrl;
2403				el.target = "_blank";
2404				var span = el.querySelector("span");
2405				if (span) span.innerText = webText;
2406				el.parentElement && el.parentElement.classList.remove("d-none");
2407			} else {
2408				el.href = "";
2409				el.parentElement && el.parentElement.classList.add("d-none");
2410			}
2411		}
2412	}
2413
2414	if (m.maplink) {
2415		var mapAs = m.maplink.querySelectorAll("a");
2416		if (mapAs.length) {
2417			var mapEl = mapAs[0];
2418			var addr = (parsedOptions.val_address || "").trim();
2419			if (addr) {
2420				var encoded = encodeURIComponent(addr).replace(/%20/g, "+");
2421				mapEl.href = "https://www.google.com/maps/search/?api=1&query=" + encoded;
2422				mapEl.target = "_blank";
2423				mapEl.parentElement && mapEl.parentElement.classList.remove('d-none');
2424			} else {
2425				mapEl.href = "";
2426				mapEl.parentElement && mapEl.parentElement.classList.add('d-none');
2427			}
2428		}
2429	}
2430
2431	if (m.contacts) {
2432		m.contacts.innerHTML = "";
2433		if (Array.isArray(parsedOptions.contacts)) {
2434			parsedOptions.contacts.forEach(function(contact) {
2435				var newAddress = document.createElement("address");
2436				newAddress.innerHTML = '<strong class="small text-muted">' + (contact.val_header||'') + '</strong><br>';
2437
2438				var inner = contact.val_text || '';
2439				if (contact.val_href) {
2440					try {
2441						var href = contact.val_href;
2442						var isSelf = href.startsWith('tel:') || href.startsWith('mailto:') || href.startsWith(location.origin);
2443						inner = '<a href="'+href+'" target="'+(isSelf?'_self':'_blank')+'">'+ inner +'</a>';
2444					} catch(e) { /* ignore bad href */ }
2445				}
2446				newAddress.innerHTML += inner;
2447				m.contacts.append(newAddress);
2448			});
2449		}
2450	}
2451
2452	if (m.hours) {
2453		const table = m.hours; 
2454		const dayKeys = [
2455			'val_sunday','val_monday','val_tuesday','val_wednesday',
2456			'val_thursday','val_friday','val_saturday'
2457		];
2458	
2459		const tds = Array.from(table.querySelectorAll('tbody td'));
2460		let hasAny = false;
2461	
2462		tds.forEach((td, i) => {
2463			const val = parsedOptions.hours && parsedOptions.hours[dayKeys[i]];
2464			const v = (val || '').trim();
2465			td.textContent = v;
2466			if (v) hasAny = true;
2467		});
2468	
2469		table.classList.toggle('d-none', !hasAny);
2470	}
2471
2472	if (m.detail) {
2473		const pane = m.detail;
2474		const tabPane = pane.closest('.tab-pane');
2475		const tabLink = tabPane ? document.querySelector(`[data-bs-target="#${tabPane.id}"]`) : null;
2476	
2477		pane.innerHTML = "Loading...";
2478	
2479		fetch('catalogue/' + encodeURIComponent(rid) + '.php?display=json')
2480			.then(res => res.json())
2481			.then(data => {
2482				const html = (data && data.details) ? data.details.trim() : "";
2483	
2484				pane.innerHTML = html || "";
2485	
2486				const isEmpty = !html;
2487				if (tabPane) tabPane.classList.toggle('d-none', isEmpty);
2488				if (tabLink) tabLink.classList.toggle('d-none', isEmpty);
2489			})
2490			.catch(() => {
2491				pane.innerHTML = "";
2492				if (tabPane) tabPane.classList.add('d-none');
2493				if (tabLink) tabLink.classList.add('d-none');
2494			});
2495	}
2496
2497	// Gallery #TODO)
2498	if (m.gallery) m.gallery.innerHTML = "";
2499
2500	try {
2501		bootstrap.Offcanvas.getOrCreateInstance(m.modal).show();
2502	} catch(e) {
2503		console.error('Offcanvas show failed:', e);
2504	}
2505
2506	if (window.pushOcState) pushOcState('catalogueDetails', rid);
2507}
2508
2509document.addEventListener('DOMContentLoaded', function() {
2510	var modal = document.querySelector("#catalogueDetails");
2511	if (!modal) return;
2512
2513	catalogueDetailsMap = {
2514		modal: modal,
2515		img: modal.querySelector(".featured-image-wrap"),
2516		title: modal.querySelector(".offcanvas-body .catalogue-title"),
2517		helpful: modal.querySelector(".catalogue-helpful-links"),
2518		maplink: modal.querySelector(".catalogue-map-link"),
2519		contacts: modal.querySelector(".catalogue-contacts"),
2520		hours: modal.querySelector(".catalogue-hours"),
2521		detail: modal.querySelector("#about-tab-pane"),
2522		gallery: modal.querySelector("#businessDetailslightgallery"),
2523	};
2524
2525	fetch('_includes_/published/catalogue.json')
2526		.then(res => res.json())
2527		.then(data => { catalogueJSONData = indexByIdOrRid(data); })
2528		.then(() => { if (typeof tryDeepLinkNow === 'function') tryDeepLinkNow('catalogueDetails'); })
2529		.catch((e) => { console.error('catalogue.json load failed', e); catalogueJSONData = {}; });
2530});
2531</script>
2531<div class="offcanvas offcanvas-bottom offcanvas-news-item mx-auto rounded-0 bg-body" tabindex="-1" id="newsDetails" style="--bs-offcanvas-height:95vh;">
2532<div class="progress rounded-0" role="progressbar" aria-label="Scroll Progress" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="height: 8px">
2533	<div class="progress-bar bg-secondary"></div></div>
2534
2535	<div class="offcanvas-header border-bottom fw-bold">
2536		Article Details
2537		<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
2538	</div>
2539	<div class="offcanvas-body pt-0">
2540 		<div class="container p-0">
2541			<div class="col-lg-9 mx-auto">
2542
2543			<div class="sticky-top">
2544				<div class="d-flex small bg-body flex-wrap align-items-center py-3">
2545					<div class="d-flex me-3">
2546						<div class="d-flex post-info-wrap">
2547							<p class="post-published m-0">
2548								<span class="opacity-75">Published:</span>
2549								<time></time> <i class="bi bi-dot d-inline-block"></i>
2550								<span id="eta"></span>
2551							</p><!-- /.post-published -->
2552						</div><!-- /.post-info-wrap -->
2553					</div><!-- /.d-flex -->
2554					
2555					<div class="post-btns-wrap ms-auto">
2556						<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">
2557							<i class="bi bi-share align-middle" aria-hidden="true"></i>
2558							<span class="visually-hidden">Share</span>
2559						</button>
2560					</div><!-- /.post-btns-wrap -->
2561					
2562				</div><!-- /.d-flex -->
2563			</div><!-- /.sticky-top -->
2564
2565		<div class="featured-image-wrapper"></div>
2566		
2567			<div class="p-lg-2 px-md-5">
2568				<h3 class="mb-3 h3">Article Title</h3>
2569				<nav aria-label="breadcrumb" class="breadcrumb mb-3">
2570					<ul>
2571						<li class="breadcrumb-item"><a href="./news">Articles</a> 
2572						<li class="breadcrumb-item active text-truncate" aria-current="page"></li>
2573					</ul>
2574				</nav>
2575				<div id="news-full-details" class="article-full-details"></div><!-- /#post-details -->
2576			</div><!-- /.p-lg-2 -->
2577			</div><!-- /.col-lg-9 -->
2578		</div><!-- /.container -->
2579	</div><!-- /.offcanvas-body -->
2580</div><!-- /.offcanvas -->
2581
2582<script>
2583var newsDetailsMap = { modal: null };
2584var newsJSONData = null;
2585
2586if (typeof indexByIdOrRid !== 'function') {
2587	function indexByIdOrRid(data){
2588		if (!data) return {};
2589		if (!Array.isArray(data)) return data;
2590		return data.reduce((m, item) => {
2591			if (!item) return m;
2592			const key = item.rid ?? item.id;
2593			if (key != null) m[String(key)] = item;
2594			return m;
2595		}, {});
2596	}
2597}
2598
2599function hasImg(url) {
2600	if (!url) return false;
2601	var s = String(url).trim();
2602	if (!s) return false;
2603	if (/^(null|undefined|none|n\/a)$/i.test(s)) return false;
2604	return true;
2605}
2606
2607/* global helper: decode &#10024; &amp; etc */
2608window.decodeHtmlEntities = window.decodeHtmlEntities || function (str) {
2609	if (str == null) return '';
2610	const ta = document.createElement('textarea');
2611	ta.innerHTML = String(str);
2612	return ta.value;
2613};
2614
2615function setFeaturedImage(url) {
2616	var m = newsDetailsMap;
2617	var modal = m.modal;
2618	if (!modal) return;
2619
2620	var wrap = modal.querySelector(".featured-image-wrapper");
2621	if (!wrap) return;
2622
2623	if (hasImg(url)) {
2624		wrap.className = "featured-image-wrapper ratio ratio-16x9 mb-4 featured-image-wrap rounded";
2625		wrap.style.backgroundImage = "url('" + url + "')";
2626		m.img = wrap;
2627	} else {
2628		wrap.className = "featured-image-wrapper";
2629		wrap.style.backgroundImage = "";
2630		m.img = null;
2631	}
2632}
2633
2634function openNewsDetails(rid) {
2635	if (!newsDetailsMap.modal || !newsJSONData) return;
2636
2637	rid = String(rid);
2638	var cRecord = newsJSONData[rid];
2639	if (!cRecord) return;
2640
2641	var m = newsDetailsMap;
2642
2643	setFeaturedImage(cRecord.image);
2644	
2645	const titleDecoded = decodeHtmlEntities(cRecord.title || "");
2646	
2647	m.title.textContent      = titleDecoded;
2648	m.date.textContent       = cRecord.date || cRecord.posted || "";
2649	m.breadcrumb.textContent = titleDecoded;
2650
2651	m.detail.innerHTML = "Loading...";
2652	fetch('articles/' + encodeURIComponent(rid) + '.php?display=json')
2653		.then(res => res.json())
2654		.then(newsData => { m.detail.innerHTML = newsData.details || ""; })
2655		.catch(() => { m.detail.innerHTML = ""; });
2656
2657	try {
2658		bootstrap.Offcanvas.getOrCreateInstance(m.modal).show();
2659	} catch(e) {
2660		console.error('Offcanvas show failed:', e);
2661	}
2662
2663	if (window.pushOcState) pushOcState('newsDetails', rid);
2664}
2665
2666document.addEventListener('DOMContentLoaded', function() {
2667	var modal = document.querySelector("#newsDetails");
2668	if (!modal) return; 
2669
2670	newsDetailsMap = {
2671		modal: modal,
2672		img: modal.querySelector(".featured-image-wrapper"),
2673		title: modal.querySelector("h3.h3"),
2674		date: modal.querySelector(".post-published>time"),
2675		breadcrumb: modal.querySelector(".breadcrumb-item.active"),
2676		detail: modal.querySelector("#news-full-details")
2677	};
2678	
2679	// Scroll progress bar
2680	var scrollTarget  = modal.querySelector('.offcanvas-body');
2681	var progressBar   = modal.querySelector('.progress-bar');
2682	var progressOuter = modal.querySelector('.progress[role="progressbar"]');
2683	
2684	function updateScrollProgress() {
2685		if (!scrollTarget || !progressBar) return;
2686	
2687		var maxScroll = scrollTarget.scrollHeight - scrollTarget.clientHeight;
2688		var current   = scrollTarget.scrollTop || 0;
2689	
2690		var pct = 0;
2691		if (maxScroll > 0) {
2692			pct = (current / maxScroll) * 100;
2693		}
2694		pct = Math.min(Math.max(pct, 0), 100);
2695	
2696		progressBar.style.width = pct + '%';
2697		if (progressOuter) {
2698			progressOuter.setAttribute('aria-valuenow', Math.round(pct));
2699		}
2700	}
2701	
2702	if (scrollTarget && progressBar) {
2703		scrollTarget.addEventListener('scroll', updateScrollProgress, { passive: true });
2704	
2705		modal.addEventListener('show.bs.offcanvas', function () {
2706			if (!scrollTarget) return;
2707			scrollTarget.scrollTop = 0;
2708			updateScrollProgress();
2709		});
2710	
2711		updateScrollProgress();
2712	}
2713
2714	fetch('_includes_/published/news_list.json')
2715		.then(res => res.json())
2716		.then(data => { newsJSONData = indexByIdOrRid(data); })
2717		.then(() => { if (typeof tryDeepLinkNow === 'function') tryDeepLinkNow('newsDetails'); })
2718		.catch((e) => { console.error('news_list.json load failed', e); newsJSONData = {}; });
2719});
2720</script>
2720<div class="offcanvas offcanvas-end offcanvas-job-item"
2721	tabindex="-1"
2722	id="jobDetails">
2723	<div class="offcanvas-header bg-light p-4 px-lg-5">
2724		<h3 class="offcanvas-title fs-4">Job post</h3>
2725		<button type="button"
2726			class="btn-close"
2727			data-bs-dismiss="offcanvas"
2728			aria-label="Close"></button>
2729	</div>
2730	<div class="offcanvas-body p-0">
2731
2732		<div class="p-4 p-lg-5">
2733			<div class="d-flex align-items-center justify-content-between">
2734				<div>
2735					<p class="h3 m-0 fs-3 d-flex flex-column">
2736						<small class="fs-6 text-muted fw-bold">Position</small>
2737					</p>
2738					<h4 class="job-position">Job Position</h4>
2739				</div>
2740				<span class="btn btn-link btn-lg ms-auto d-none"
2741					id="saveItemBtn"
2742					tabindex="0">
2743					<i class="bi bi-heart text-danger ms-auto cursor-pointer"></i>
2744				</span>
2745				<span class="btn btn-link btn-lg p-0"
2746					data-bs-toggle="modal"
2747					data-bs-target="#shareModal"
2748					tabindex="0">
2749					<i class="bi bi-share text-body"></i>
2750				</span>
2751			</div>
2752		</div><!-- /.p-4 -->
2753
2754		<div class="job-details">
2755			<div class="bg-light p-4 p-lg-5">
2756				<div class="row row-cols-1 row-cols-sm-2 g-2 attribute-callouts"></div>
2757
2758				<a href="#"
2759					class="btn btn-primary mt-lg-4 apply-link">
2760					Apply Now<i class="bi bi-box-arrow-up-right ms-2"></i>
2761				</a>
2762			</div><!-- /.bg-light -->
2763
2764			<div class="bg-white p-4 p-lg-5">
2765				<!-- <p class="small bg-success-subtle text-success-emphasis p-1 px-2 mb-2 rounded-pill d-inline-flex">
2766					<small><i class="bi bi-exclamation-circle"></i> Urgent Hire</small>
2767				</p> -->
2768				<p class="fs-4"></p>
2769				<div class="job-full-details"></div>
2770			</div><!-- /.bg-white -->
2771		</div><!-- /#job-details -->
2772	</div><!-- /.offcanvas-body -->
2773</div><!-- /.offcanvas -->
2774
2775<div class="toast align-items-center text-bg-success border-0 position-fixed bottom-0 end-0 m-4"
2776	id="savedItem"
2777	role="alert"
2778	aria-live="assertive"
2779	aria-atomic="true">
2780	<div class="d-flex">
2781		<div class="toast-body">
2782			Added to your favorites!
2783			<a href="" class="text-light">See all here</a>
2784		</div>
2785		<button type="button"
2786			class="btn-close btn-close-white me-2 m-auto"
2787			data-bs-dismiss="toast"
2788			aria-label="Close"></button>
2789	</div>
2790</div><!-- /.toast -->
2791
2792<script>
2793var jobDetailsMap = { modal: null };
2794var jobJSONData = null;
2795
2796if (typeof indexByIdOrRid !== 'function') {
2797	function indexByIdOrRid(data){
2798		if (!data) return {};
2799		if (!Array.isArray(data)) return data; 
2800		return data.reduce((m, item) => {
2801			if (!item) return m;
2802			const key = item.rid ?? item.id;
2803			if (key != null) m[String(key)] = item;
2804			return m;
2805		}, {});
2806	}
2807}
2808
2809function openJobDetails(rid) {
2810	if (!jobDetailsMap.modal || !jobJSONData) return;
2811
2812	rid = String(rid);
2813	var cRecord = jobJSONData[rid];
2814	if (!cRecord) return;
2815
2816	var m = jobDetailsMap;
2817	var parsedOptions = cRecord.options || {};
2818
2819	if (m.titleB) m.titleB.textContent = decodeHtmlEntities(cRecord.title || "");
2820
2821	if (m.callouts) {
2822		m.callouts.innerHTML = "";
2823		if (Array.isArray(parsedOptions.attributes)) {
2824			parsedOptions.attributes.forEach(function(attr) {
2825				var header = attr.val_header || "";
2826				var text   = attr.val_text   || "";
2827				var icon   = parseIconClass(attr.val_icon) || { class: "bi bi-info-circle", ligature: "" };
2828				var wrap = document.createElement("div");
2829				wrap.innerHTML = `
2830					<p class="d-flex gap-3 align-items-center my-2 my-lg-3">
2831						<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>
2832						<span><strong class="small text-muted lh-1">${header}</strong><br>${text}</span>
2833					</p>`;
2834				m.callouts.append(wrap.firstElementChild);
2835			});
2836		}
2837
2838		var posted = cRecord.posted || "";
2839		if (posted) {
2840			var pWrap = document.createElement('div');
2841			pWrap.innerHTML = `
2842				<p class="d-flex gap-3 align-items-center">
2843					<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>
2844					<span><strong class="small text-muted lh-1">Posted</strong><br>${posted}</span>
2845				</p>`;
2846			m.callouts.append(pWrap.firstElementChild);
2847		}
2848	}
2849
2850	if (m.apply) {
2851		var btnURL  = (parsedOptions.website_url || "").trim();
2852		var btnText = (parsedOptions.website_text || "Learn More").trim();
2853
2854		if (btnURL && btnURL !== "#") {
2855			m.apply.classList.remove("d-none");
2856			m.apply.setAttribute("href", btnURL);
2857			m.apply.setAttribute("target", "_blank");
2858			m.apply.innerHTML = btnText + '<i class="bi bi-box-arrow-up-right ms-2"></i>';
2859		} else {
2860			m.apply.classList.add("d-none");
2861			m.apply.setAttribute("href", "#");
2862		}
2863	}
2864
2865	if (m.detail) {
2866		const pane = m.detail;
2867		const tabPane = pane.closest('.tab-pane');
2868		const tabLink = tabPane ? document.querySelector(`[data-bs-target="#${tabPane.id}"]`) : null;
2869	
2870		pane.innerHTML = "Loading...";
2871	
2872		fetch('jobs/' + encodeURIComponent(rid) + '.php?display=json')
2873			.then(res => res.json())
2874			.then(data => {
2875				const html = (data && data.details) ? data.details.trim() : "";
2876	
2877				pane.innerHTML = html || "";
2878	
2879				const isEmpty = !html;
2880				if (tabPane) tabPane.classList.toggle('d-none', isEmpty);
2881				if (tabLink) tabLink.classList.toggle('d-none', isEmpty);
2882			})
2883			.catch(() => {
2884				pane.innerHTML = "";
2885				if (tabPane) tabPane.classList.add('d-none');
2886				if (tabLink) tabLink.classList.add('d-none');
2887			});
2888	}
2889
2890	try {
2891		bootstrap.Offcanvas.getOrCreateInstance(m.modal).show();
2892	} catch(e) {
2893		console.error('Offcanvas show failed:', e);
2894	}
2895
2896	if (window.pushOcState) pushOcState('jobDetails', rid);
2897}
2898
2899document.addEventListener('DOMContentLoaded', function() {
2900	var modal = document.querySelector("#jobDetails");
2901	if (!modal) return; 
2902
2903	jobDetailsMap = {
2904		modal: modal,
2905		titleB: modal.querySelector(".job-position"),
2906		callouts: modal.querySelector(".attribute-callouts"),
2907		detail: modal.querySelector(".job-full-details"),
2908		apply: modal.querySelector(".apply-link")
2909	};
2910
2911	fetch('_includes_/published/job_list.json')
2912		.then(res => res.json())
2913		.then(data => { jobJSONData = indexByIdOrRid(data); })
2914		.then(() => { if (typeof tryDeepLinkNow === 'function') tryDeepLinkNow('jobDetails'); })
2915		.catch((e) => { console.error('job_list.json load failed', e); jobJSONData = {}; });
2916});
2917
2918</script>
2918
2919<div class="offcanvas offcanvas-end offcanvas-bid-item"
2920	tabindex="-1"
2921	id="bidDetails">
2922	<div class="offcanvas-header bg-light p-4 px-lg-5">
2923		<h3 class="offcanvas-title fs-4">Bid details</h3>
2924		<button type="button"
2925			class="btn-close"
2926			data-bs-dismiss="offcanvas"
2927			aria-label="Close"></button>
2928	</div>
2929	<div class="offcanvas-body p-0">
2930
2931		<div class="p-4 p-lg-5">
2932			<div class="d-flex align-items-center justify-content-between">
2933				<div>
2934					<p class="mb-2">
2935						<span class="small">Status:</span> <span class="badge bid-status d-none d-inline-flex"></span>
2936					</p>
2937					<h4 class="bid-title">Bid Title</h4>
2938				</div>
2939				<span class="btn btn-link btn-lg p-0"
2940					data-bs-toggle="modal"
2941					data-bs-target="#shareModal"
2942					tabindex="0">
2943					<i class="bi bi-share text-body"></i>
2944				</span>
2945			</div>
2946		</div>
2947
2948		<div class="bid-details">
2949			<div class="bg-light p-4 p-lg-5">
2950				<div class="row row-cols-1 row-cols-sm-2 g-2 start-end-dates">
2951					<p class="d-flex gap-3 align-items-center my-2 my-lg-3 bid-start-wrap">
2952						<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>
2953						<span>
2954							<strong class="small text-muted lh-1">Start date</strong><br>
2955							Start: <span class="bid-start-date"></span>
2956						</span>
2957					</p>
2958				
2959					<p class="d-flex gap-3 align-items-center my-2 my-lg-3 bid-end-wrap">
2960						<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>
2961						<span>
2962							<strong class="small text-muted lh-1">End date</strong><br>
2963							End: <span class="bid-end-date"></span>
2964						</span>
2965					</p>
2966				</div>
2967				<a href="#"
2968					class="btn btn-primary mt-3 mt-lg-4 apply-link">
2969					Apply Now<i class="bi bi-box-arrow-up-right ms-2"></i>
2970				</a>
2971			</div>
2972
2973			<div class="bg-white p-4 p-lg-5">
2974				<p class="fs-4"></p>
2975				<div class="bid-full-details"></div>
2976			</div>
2977		</div>
2978	</div>
2979</div>
2980
2981<script>
2982var bidDetailsMap = { modal: null };
2983var bidJSONData = null;
2984
2985if (typeof indexByIdOrRid !== 'function') {
2986	function indexByIdOrRid(data){
2987		if (!data) return {};
2988		if (!Array.isArray(data)) return data;
2989		return data.reduce((m, item) => {
2990			if (!item) return m;
2991			const key = item.rid ?? item.id;
2992			if (key != null) m[String(key)] = item;
2993			return m;
2994		}, {});
2995	}
2996}
2997
2998function fmtDate(iso) {
2999	if (!iso) return "";
3000	var s = String(iso).trim();
3001	if (!s) return "";
3002	var d = new Date(s.slice(0, 10) + "T00:00:00");
3003	if (Number.isNaN(d.getTime())) return s;
3004	return d.toLocaleDateString(undefined, { year: "numeric", month: "short", day: "numeric" });
3005}
3006
3007function statusClass(status) {
3008	var s = String(status || "").trim().toLowerCase();
3009	if (s === "open") return "text-bg-success";
3010	if (s === "closed") return "text-bg-danger";
3011	if (s === "awarded") return "text-bg-primary";
3012	if (s === "canceled" || s === "cancelled") return "text-bg-dark";
3013	if (s === "pending") return "text-bg-secondary";
3014	return "text-bg-secondary";
3015}
3016
3017function openBidDetails(rid) {
3018	if (!bidDetailsMap.modal || !bidJSONData) return false;
3019
3020	rid = String(rid);
3021	var cRecord = bidJSONData[rid];
3022	if (!cRecord) return false;
3023
3024	var m = bidDetailsMap;
3025	var parsedOptions = cRecord.options || {};
3026
3027	if (m.titleB) m.titleB.textContent = cRecord.title || "";
3028
3029	// STATUS
3030	if (m.statusEl) {
3031		var status = (parsedOptions.val_status || "").trim();
3032		if (status) {
3033			m.statusEl.className = "small px-2 py-1 rounded-1 bid-status " + statusClass(status);
3034			m.statusEl.textContent = status;
3035			m.statusEl.classList.remove("d-none");
3036		} else {
3037			m.statusEl.classList.add("d-none");
3038			m.statusEl.textContent = "";
3039		}
3040	}
3041
3042	// DATES (Start/End)
3043	var sd = fmtDate(parsedOptions.start_date || parsedOptions.startDate);
3044	var ed = fmtDate(parsedOptions.end_date   || parsedOptions.endDate);
3045	
3046	if (m.startWrap && m.startEl) {
3047		if (sd) {
3048			m.startEl.textContent = sd;
3049			m.startWrap.classList.remove("d-none");
3050		} else {
3051			m.startEl.textContent = "";
3052			m.startWrap.classList.add("d-none");
3053		}
3054	}
3055	
3056	if (m.endWrap && m.endEl) {
3057		if (ed) {
3058			m.endEl.textContent = ed;
3059			m.endWrap.classList.remove("d-none");
3060		} else {
3061			m.endEl.textContent = "";
3062			m.endWrap.classList.add("d-none");
3063		}
3064	}
3065
3066	if (m.apply) {
3067		var btnURL  = (parsedOptions.website_url || "").trim();
3068		var btnText = (parsedOptions.website_text || "Learn More").trim();
3069
3070		if (btnURL && btnURL !== "#") {
3071			m.apply.classList.remove("d-none");
3072			m.apply.setAttribute("href", btnURL);
3073			m.apply.setAttribute("target", "_blank");
3074			m.apply.innerHTML = btnText + '<i class="bi bi-box-arrow-up-right ms-2"></i>';
3075		} else {
3076			m.apply.classList.add("d-none");
3077			m.apply.setAttribute("href", "#");
3078		}
3079	}
3080
3081	if (m.detail) {
3082		var pane = m.detail;
3083		pane.innerHTML = "Loading...";
3084
3085		fetch('bids/' + encodeURIComponent(rid) + '.php?display=json')
3086			.then(function(res){ return res.json(); })
3087			.then(function(data){
3088				var html = (data && data.details) ? String(data.details).trim() : "";
3089				pane.innerHTML = html || "";
3090			})
3091			.catch(function(){
3092				pane.innerHTML = "";
3093			});
3094	}
3095
3096	try {
3097		bootstrap.Offcanvas.getOrCreateInstance(m.modal).show();
3098	} catch(e) {
3099		console.error('Offcanvas show failed:', e);
3100	}
3101
3102	if (window.pushOcState) pushOcState('bidDetails', rid);
3103
3104	return false;
3105}
3106
3107document.addEventListener('DOMContentLoaded', function() {
3108	var modal = document.querySelector("#bidDetails");
3109	if (!modal) return;
3110
3111	bidDetailsMap = {
3112		modal: modal,
3113		titleB: modal.querySelector(".bid-title"),
3114		statusEl: modal.querySelector(".bid-status"),
3115		startWrap: modal.querySelector(".bid-start-wrap"),
3116		endWrap: modal.querySelector(".bid-end-wrap"),
3117		startEl: modal.querySelector(".bid-start-date"),
3118		endEl: modal.querySelector(".bid-end-date"),
3119		detail: modal.querySelector(".bid-full-details"),
3120		apply: modal.querySelector(".apply-link")
3121	};
3122
3123	fetch('_includes_/published/bids_list.json')
3124		.then(function(res){ return res.json(); })
3125		.then(function(data){ bidJSONData = indexByIdOrRid(data); })
3126		.then(function(){ if (typeof tryDeepLinkNow === 'function') tryDeepLinkNow('bidDetails'); })
3127		.catch(function(e){
3128			console.error('bids_list.json load failed', e);
3129			bidJSONData = {};
3130		});
3131});
3132</script>
3132
3133	<div class="rz-brand-footer bg-black small text-white py-3 py-lg-2">
3134		<div class="container-fluid small">
3135			<div class="d-lg-flex align-items-center">
3136				<div class="col w-100 d-flex flex-lg-row flex-column gap-2 mb-lg-0 mb-3 p-0">
3137					<span class="footer-copyright">&copy; 2026 West Valley City, UT</span>
3138					<a class="text-white f-accessibility_statement" href="accessibility_statement/index.php">Accessibility Statement</a>
3139					<a class="text-white f-privacy_policy" href="privacy_policy/index.php">Privacy Policy</a>
3140					<a class="text-white f-terms_and_conditions" href="terms_and_conditions/index.php">Terms and Conditions</a>
3141					<a class="text-white f-cookie_policy" href="cookie_policy/index.php">Cookie Policy</a>
3142				</div><!-- /.col -->
3143				<div class="text-lg-end align-items-center d-xl-flex gap-1 justify-content-start justify-content-lg-end f-powered-by">
3144					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=westvalleycityutah&filename=/our_community/about_us/index.php" class="btn btn-primary btn-primary-rz btn-sm rounded-1">Staff Login</a>
3145				</div>
3146			</div><!-- /.d-lg-flex -->
3147		</div><!-- /.container-fluid -->
3148	</div>	
3149	
3149<script src="/revize/plugins/revize_calendar/index.v2.js"></script>
3149
3150	
3150<script src="/revize/plugins/zbuilder/v1/website/_assets_/js/scripts.js"></script>
vendor: 81 bytes, lines 3150-3152
3150
3151	<script src="https://www.google.com/recaptcha/api.js" async defer></script>
3152	
3152<script src="/revize/plugins/page_builder/formwizard.form_validation_include.js"></script>
3152
3153	
3153<script>
3154
3155function RZRenderMini() {
3156    $('.cal-event-wrap').each(function () {
3157        const image = $(this).find('.cal-image-wrap');
3158        const date = $(this).find('.cal-event-date');
3159        const time = $(this).find('.cal-event-time');
3160        const title = $(this).find('.cal-event-title');
3161
3162        image.after(date);
3163        date.after(time);
3164        time.after(title);
3165    });
3166
3167    $('.cal-event-time time').each(function () {
3168        const dt = $(this).attr('datetime');
3169
3170        if (dt) {
3171            const date = new Date(dt);
3172
3173            let hours = date.getHours();
3174            let minutes = date.getMinutes();
3175
3176            const ampm = hours >= 12 ? 'pm' : 'am';
3177
3178            hours = hours % 12;
3179            hours = hours ? hours : 12;
3180
3181            minutes = minutes.toString().padStart(2, '0');
3182
3183            const formattedTime = minutes === '00'
3184                ? `${hours} ${ampm}`
3185                : `${hours}:${minutes} ${ampm}`;
3186
3187            $(this).text(formattedTime);
3188        }
3189    });
3190}
3191
3192$(document).ready(function () {
3193    $('.col-side .staffmember-location-link').each(function () {
3194        $(this)
3195            .contents()
3196            .filter(function () {
3197                return this.nodeType === 3 && $.trim(this.nodeValue) !== '';
3198            })
3199            .wrap('<span></span>');
3200    });
3201});
3202
3203$('.col-side .staffmember-bio').appendTo('.staffmember-contact');
3204
3205</script>
3205
3206
3207
3208
3209<script>
3210(function () {
3211    if (!window.revizeCalendar || !window.revizeCalendar.fns) return;
3212
3213    var originalPrepareImportData = window.revizeCalendar.fns.prepareImportData;
3214
3215    function fixUrls(ev, baseUrl) {
3216        if (!ev) return ev;
3217        if (ev.image) ev.image = ev.image.replace(/\.\//g, baseUrl);
3218        if (ev.image_url) ev.image_url = ev.image_url.replace(/\.\//g, baseUrl);
3219        if (ev.desc) {
3220            ev.desc = ev.desc.replace(/src="\.\//g, 'src="' + baseUrl);
3221            ev.desc = ev.desc.replace(/src='\.\//g, "src='" + baseUrl);
3222            ev.desc = ev.desc.replace(/href="\.\//g, 'href="' + baseUrl);
3223            ev.desc = ev.desc.replace(/href='\.\//g, "href='" + baseUrl);
3224        }
3225        return ev;
3226    }
3227
3228    function fetchSubSiteEvents() {
3229        var allSubEvents = [];
3230        var sources = [
3231            { name: 'Parks', webspace: 'westvalleycityutahparksandrec', prefix: 'parks_', base: 'https://builder1.revize.com/revize/westvalleycityutahparksandrec/' },
3232            { name: 'Fire', webspace: 'westvalleycityutahfire', prefix: 'fire_', base: 'https://builder1.revize.com/revize/westvalleycityutahfire/' },
3233            { name: 'Police', webspace: 'westvalleycityutahpolice', prefix: 'police_', base: 'https://builder1.revize.com/revize/westvalleycityutahpolice/' }
3234        ];
3235
3236        sources.forEach(function(src) {
3237            try {
3238                $.ajax({
3239                    url: 'https://builder1.revize.com/revize/util/endpoints/fetch_calendar_events.php?webspace=' + src.webspace + '&time_updated=NULL',
3240                    async: false,
3241                    dataType: 'json',
3242                    success: function(response) {
3243                        if (response && response.events) {
3244                            response.events.forEach(function(ev) {
3245                                if (ev.calendar_displays && ev.calendar_displays.length) {
3246                                    ev.calendar_displays = [src.prefix + ev.calendar_displays[0]];
3247                                }
3248                                ev = fixUrls(ev, src.base);
3249                                ev._source = src.name;
3250                                allSubEvents.push(ev);
3251                            });
3252                        }
3253                    },
3254                    error: function() {
3255                        console.warn('Failed to fetch events from ' + src.name);
3256                    }
3257                });
3258            } catch(e) {
3259                console.warn('Error fetching events from ' + src.name, e);
3260            }
3261        });
3262
3263        return allSubEvents;
3264    }
3265
3266    function getHardcodedParksCalendars() {
3267        return {
3268            'parks_1': { name: 'Master', color: '', source: 'Parks' },
3269            'parks_2': { name: 'Harman Senior Recreation Center', color: '', source: 'Parks' },
3270            'parks_3': { name: 'Family Fitness Center', color: '', source: 'Parks' },
3271            'parks_4': { name: 'Parks Events and Activities', color: '', source: 'Parks' },
3272            'parks_5': { name: 'Parks & Recreation', color: '', source: 'Parks' }
3273        };
3274    }
3275
3276    function appendAllFilters(calendarList) {
3277        if (!calendarList || Object.keys(calendarList).length === 0) {
3278            console.warn('[Filters] List empty, skipping.');
3279            return;
3280        }
3281
3282        if (!$('#calendar-filters').length) {
3283            setTimeout(function() { appendAllFilters(calendarList); }, 500);
3284            return;
3285        }
3286
3287        var html = '';
3288        var addedCount = 0;
3289        Object.keys(calendarList).sort().forEach(function(id) {
3290            var cal = calendarList[id];
3291            if ($('#calendar-filters').find('a[data-calendar-id="' + id + '"]').length) {
3292                return;
3293            }
3294
3295            var style = cal.color ? 'background-color:' + cal.color + ';border:1px solid ' + cal.color + ';' : '';
3296            var tag = cal.source.charAt(0).toUpperCase() + cal.source.slice(1);
3297
3298            html += '<li style="' + style + '">' +
3299                        '<a class="calendar-name-filter multi-filter" href="#" data-calendar-id="' + id + '">' +
3300                            '<span style="font-size:9px;opacity:0.6;">[' + tag + ']</span> ' + cal.name +
3301                        '</a>' +
3302                    '</li>';
3303            addedCount++;
3304        });
3305
3306        if (html) {
3307            $('#calendar-filters').append(html);
3308            console.log('[Filters] Added ' + addedCount + ' new filters.');
3309        }
3310
3311        $('.calendar-name-filter.multi-filter').off('click').on('click', function(e) {
3312            e.preventDefault();
3313            var $this = $(this);
3314            var $parent = $this.parent();
3315
3316            if (!$parent.hasClass('calendar-active')) {
3317                $('.calendar-active').removeClass('calendar-active');
3318                $parent.addClass('calendar-active');
3319                window.revizeCalendar.fns.changeUrlQuery([{
3320                    prop: 'calendar',
3321                    val: $this.data('calendar-id').toString()
3322                }]);
3323            } else {
3324                $('.calendar-active').removeClass('calendar-active');
3325                window.revizeCalendar.fns.changeUrlQuery('calendar');
3326            }
3327            window.revizeCalendar.fns.refreshCalendars();
3328        });
3329    }
3330
3331    window.revizeCalendar.fns.prepareImportData = function () {
3332        var subEvents = fetchSubSiteEvents();
3333
3334        var mainEvents = [];
3335        try {
3336            $.ajax({
3337                url: 'https://builder1.revize.com/revize/util/endpoints/fetch_calendar_events.php?webspace=westvalleycityutah&time_updated=NULL',
3338                async: false,
3339                dataType: 'json',
3340                success: function(response) {
3341                    if (response && response.events) mainEvents = response.events;
3342                },
3343                error: function() { mainEvents = []; }
3344            });
3345        } catch(e) { mainEvents = []; }
3346
3347        var allEvents = mainEvents.concat(subEvents);
3348
3349        var calendarList = {};
3350        allEvents.forEach(function(ev) {
3351            if (!ev.calendar_displays || !ev.calendar_displays.length) return;
3352            var id = ev.calendar_displays[0];
3353            if (!calendarList[id]) {
3354                calendarList[id] = {
3355                    name: ev.primary_calendar_name || ev._source + ' Calendar',
3356                    color: ev.color || '',
3357                    source: ev._source || 'Unknown'
3358                };
3359            }
3360        });
3361
3362        var hardcodedParks = getHardcodedParksCalendars();
3363        Object.keys(hardcodedParks).forEach(function(id) {
3364            if (!calendarList[id]) {
3365                calendarList[id] = hardcodedParks[id];
3366            }
3367        });
3368
3369        console.log('[Filters] Total calendars ready:', Object.keys(calendarList).length);
3370
3371        window.revizeCalendar.importData = [{
3372            url: 'https://builder1.revize.com/revize/util/endpoints/fetch_calendar_events.php?webspace=westvalleycityutah&time_updated=NULL',
3373            parser: function (mainData) {
3374                setTimeout(function() { appendAllFilters(calendarList); }, 300);
3375                setTimeout(function() { appendAllFilters(calendarList); }, 1000);
3376                setTimeout(function() { appendAllFilters(calendarList); }, 2000);
3377
3378                return window.revizeCalendar.fns.defaultRevizeParser(allEvents);
3379            }
3380        }];
3381
3382        return originalPrepareImportData.apply(this, arguments);
3383    };
3384
3385    window.revizeCalendar.fns.full.eventsFilter = function (events) {
3386        var activeCalendar = $.query.get('calendar');
3387        var activeSearch = $.query.get('query');
3388
3389        if (!activeCalendar || activeCalendar === 'clear') {
3390            activeCalendar = null;
3391        } else {
3392            activeCalendar = activeCalendar.toString();
3393        }
3394
3395        var searchString = activeSearch ? activeSearch.toString().toLowerCase() : '';
3396
3397        return events.filter(function (ev) {
3398            if (activeCalendar) {
3399                var evId = (ev.calendar_displays && ev.calendar_displays.length) ? ev.calendar_displays[0] : '';
3400                if (evId.toString() !== activeCalendar) {
3401                    return false;
3402                }
3403            }
3404            if (searchString && ev.title && ev.title.toLowerCase().indexOf(searchString) === -1) {
3405                return false;
3406            }
3407            return true;
3408        });
3409    };
3410
3411})();
3412</script>
3412
3413</div><!-- /.rz-site-wrap -->
3414</body>
3415</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.