PageSourceSearch

https://www.westminsterchamber.org/login

html westminsterchamber.org collected 2026-09-26 14:33:30 UTC 300,465 bytes, 5,914 lines download raw bytes

1<!DOCTYPE HTML>
2<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
3<head>
4    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5    <meta http-equiv="X-UA-Compatible" content="IE=edge">
6    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2, user-scalable=1">
7    	
8	<!-- Preconnect -->
9    <link rel="preconnect" href="https://www.optimizecdn.com" crossorigin>
10    <link rel="preconnect" href="https://fonts.googleapis.com">
11	<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12	<link rel="apple-touch-icon" href="/images/fav.png">
13    <link rel="icon" type="image/png" href="/images/fav.png">
14	
15    <!-- Site Meta Data -->
16    <title>Login Now - Westminster Chamber of Commerce</title>
17    <meta name="description" content="Login to your account on Westminster Chamber of Commerce">
18    <meta name="keywords" content="westminster california business,westminster california businesses">
19    <meta name="robots" content="index, follow">
20
21    <!-- Canonical URL -->
22	<link rel="canonical" href="https://www.westminsterchamber.org/login">	
23	<link rel="alternate" type="application/rss+xml" title="Westminster Chamber of Commerce RSS Feed" href="https://www.westminsterchamber.org/rss" />
24	
25    	<!-- Social Media Meta Data -->
26    <meta property="og:type" content="website">
27    <meta property="og:url" content="https://www.westminsterchamber.org/login">
28    <meta property="og:site_name" content="Westminster Chamber of Commerce">
29    <meta property="og:title" content="Login Now - Westminster Chamber of Commerce">
30    <meta property="og:description" content="Login to your account on westminster chamber of commerce. ">
31    <meta property="og:image" content="https://www.westminsterchamber.org/images/hero-slider/PHOTO-2022-09-21-16-51-02-(2).webp">
32	
32<script>
33	var siteInfoSpan=document.createElement('span');
34	siteInfoSpan.style.cssText='position:absolute;color:transparent;width:100%;z-index:-1;height:50px;top:0;';
35	siteInfoSpan.textContent='www.westminsterchamber.org - Westminster Chamber of Commerce';
36	document.documentElement.appendChild(siteInfoSpan);
37	</script>
37
38
39	<!-- Preload -->
40	<link rel="preload" as="style" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/critical-styles.pkgd.min.css?v=09.05.26" fetchpriority="high" crossorigin>
41	<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Cabin:300,400,600,700,800,900|PT+Sans:300,400,600,700,800,900|Roboto:300,400,600,700,800,900&display=swap" fetchpriority="high">
42	<link rel="preload" href="/images/freshbg.jpg" as="image" fetchpriority="high">
43		
44    <!-- Non-Critical Stylesheet - Render Before Critical Styles -->
45	<link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/non-critical-styles.pkgd.min.css?v=3.3.0" crossorigin>
46	<noscript>
47		<link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/non-critical-styles.pkgd.min.css" crossorigin>
48	</noscript>
49		
50	<!-- Critical Stylesheet -->
51	<link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/critical-styles.pkgd.min.css?v=09.05.26" crossorigin>
52    	
53    <!-- Google Fonts Stylesheet -->    
54    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Cabin:300,400,600,700,800,900|PT+Sans:300,400,600,700,800,900|Roboto:300,400,600,700,800,900&display=swap">
55    <noscript>
56        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Cabin:300,400,600,700,800,900|PT+Sans:300,400,600,700,800,900|Roboto:300,400,600,700,800,900&display=swap">
57    </noscript>
58	
59    <!-- FontAwesome Stylesheet -->
60    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/font-awesome/css/font-awesome.min.css" crossorigin>
61    <noscript>
62        <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/font-awesome/css/font-awesome.min.css" crossorigin>
63    </noscript>
64	
65    <!-- Bootstrap Icons Stylesheet -->
66    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1" crossorigin>
67    <noscript>
68        <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1" crossorigin>
69    </noscript>
70	
71    <!-- Critical JavaScript -->
72    
72<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/jquery.min.js"></script>
72
73	
73<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/bootstrap-3.3.5.min.js"></script>
73
74	
74<script>
75		/* jQuery.event.special.touchstart = {
76			setup: function( _, ns, handle ) {
77				this.addEventListener("touchstart", handle, { passive: !ns.includes("noPreventDefault") });
78			}
79		}; */
80		jQuery.event.special.touchmove = {
81			setup: function( _, ns, handle ) {
82				this.addEventListener("touchmove", handle, { passive: !ns.includes("noPreventDefault") });
83			}
84		};
85		jQuery.event.special.wheel = {
86			setup: function( _, ns, handle ){
87				this.addEventListener("wheel", handle, { passive: true });
88			}
89		};
90		jQuery.event.special.mousewheel = {
91			setup: function( _, ns, handle ){
92				this.addEventListener("mousewheel", handle, { passive: true });
93			}
94		};
95	</script>
95
96
97	<!-- Breadcrumb Position -->
98	<style>html.bc-relocate .container:has(> .breadcrumb):has(~ .hero_section_container) .breadcrumb{display:none!important;}html.bc-relocate .hero_section_container + .clearfix + .container::before{content:"";display:block;min-height:24px;}.hero_section_container + .clearfix + .container > .breadcrumb:first-child{position:relative;top:-24px;}</style>
99	
99<script>document.documentElement.classList.add('bc-relocate');document.addEventListener('DOMContentLoaded',function(){var bc=document.querySelector('ol.breadcrumb'),hero=document.querySelector('.hero_section_container');if(bc&&hero){var t=hero.nextElementSibling;while(t&&!t.classList.contains('container'))t=t.nextElementSibling;if(t)t.insertBefore(bc,t.firstChild);}document.documentElement.classList.remove('bc-relocate');});</script>
99
100		
101	
102    <!-- Prefetch -->
103    <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js" as="script">
104    <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0" as="script">
105
106    <!-- Custom Site-wide HEAD Content -->
106<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9069257265845180"
107     crossorigin="anonymous"></script>
vendor: 2 bytes, line 107
107
108<script>
109   var hsscript = document.createElement("script");
110   hsscript.src = "https://cdn.jsdelivr.net/npm/hockeystack@latest/hockeystack.min.js";
111   hsscript.async = 1;
112   hsscript.dataset.apikey = "880cd94d2663223a75e68d70bd2631";
113   hsscript.dataset.cookieless = 1;
114   hsscript.dataset.autoIdentify = 1;
115   document.getElementsByTagName('head')[0].append(hsscript);
116</script>
vendor: 2 bytes, line 116
116
117<script type="text/javascript">
118    (function(c,l,a,r,i,t,y){
119        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
120        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
121        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
122    })(window, document, "clarity", "script", "fr45wek0yo");
123</script>
123
124<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 124-125
124
125<script async src="https://www.googletagmanager.com/gtag/js?id=
125G-SSCD6BSGLV
vendor: 13 bytes, line 125
125"></script>
126<script>
127  
vendor: 138 bytes, lines 127-131
127window.dataLayer = window.dataLayer || [];
128  function gtag(){dataLayer.push(arguments);}
129  gtag('js', new Date());
130
131  gtag('config', '
131G-SSCD6BSGLV
vendor: 5 bytes, line 131
131');
132</script>
132        
132<script>
133        function g() {
134            window.addEventListener('load', () => {
135                if (typeof initializeG === 'function') {
136                    initializeG();
137                } else if (typeof initializeGoogleMaps === 'function') {
138                    initializeGoogleMaps();
139                }
140                            });
141        }
142    </script>
142
143    
143<script src="https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places&region=US&callback=g&language=en&key=AIzaSyDbfKV3pdAqtZWJp2D8818eBlTy7zr0DQk"></script>
143
144
145</head>
146<body>
147<style type='text/css'> 
148 </style><!--GOOGLE TAG MANAGER CODE--><!--
149IMPORTANT: It is not recommended to customize this widget as it directly connects to fields in DESIGN SETTINGS. If new design settings are created and this widget is already customized, then the website will not be able to apply any new design setitngs.
150
151INSTEAD: If custom CSS rules are needed, add them directly into the DESIGN SETTINGS > CUSTOM CSS section.
152-->
153<style>
154    .upload-form-field::before {
155        content: "choose files";
156        display: inline-block;
157        border: 1px solid #999;
158        border-radius: 3px;
159        padding: 5px 8px;
160    }
161    #first_container span.input-group-addon,#first_container .datepicker *,#first_container .input-group-addon, #first_container .input-group-addon *,#first_container .fr-action-buttons .fr-submit,.fr-popup .fr-layer.fr-color-hex-layer .fr-action-buttons button.fr-command {
162        white-space: nowrap !important;
163    }
164    /* Main Website Design */
165    body,.modal-header,.modal-content,.modal-body,.modal-footer {
166        background: rgb(255, 255, 255);
167        color: rgb(44, 44, 44);
168        font-family: 'Cabin';
169        font-size: 14px;
170    }
171    .select2-container .select2-choice {
172        font-family: 'Cabin'!important;
173    }
174        html{
175        background: rgb(44, 44, 44)    }
176        .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) a, .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) td,.datepicker th.picker-switch,.datepicker .dow {
177        color: #000 !important;
178    }    
179    a,a.h1,a.h2,a.h3,a.h4,a.h5,a.h6,.pricing_menu li ul li a:not(.btn) {
180        color: rgb(0, 102, 153);
181    }
182    a:hover, a:focus,.pricing_menu li ul li a:not(.btn):hover,.pricing_menu li ul li a:not(.btn):focus,.btn:hover,.btn:focus {
183        color: rgb(14, 122, 176);
184    }
185    .breadcrumb a{
186            color: rgba(118, 118, 118,0.9);
187    }
188    .breadcrumb a:hover, .breadcrumb a:focus,.breadcrumb > .active {
189        color: rgb(118, 118, 118);
190    }
191    .help-inline, .help-block {
192            color: rgba(44, 44, 44,0.5);
193    }
194    .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
195        font-family: 'PT Sans';
196    }
197        /* Header Design */
198    .header, .mobile_website_logo img {
199        background: rgb(255, 255, 255);
200    }
201    .header .mini-nav li a:not(.btn):not(.network-icon), .header .mini-nav span {
202        color: rgb(118, 118, 118);
203            font-size: 14px;
204        }
205    .header .mini-nav li a:not(.btn):hover {
206            color: rgba(118, 118, 118,0.95);
207    }
208    .header .btn_get_listed {
209		background-color: rgb(240, 52, 52);
210        border: 1px solid rgb(240, 52, 52);
211        color: rgb(255, 255, 255)!important;
212    }
213    .header .btn_get_listed:hover, .header .btn_get_listed:focus {
214		        background-color: rgba(240, 52, 52,0.97);        
215    }
216    .header .btn_search {
217            background-color: rgba(0, 102, 153,0.97);
218        border: 1px solid rgb(0, 102, 153);
219        color: rgb(255, 255, 255);
220    }
221    .header .btn_search:hover, .header .btn_search:focus {
222        background-color: rgb(0, 102, 153);
223        color: rgb(255, 255, 255);
224    }
225
226    /* Logo Design */
227    .logo,.logo:hover,.logo:focus {
228        color: rgb(44, 44, 44);
229        font-family: 'PT Sans';
230    }
231    .logo .slogan {
232        color: rgb(118, 118, 118);
233    }
234    .logo .fa {
235        color: rgb(0, 102, 153);
236        }
237
238    /* Main Menu Design */
239    .member-profile-tabs > ul, .member-profile-tabs .tabs-container {
240        background: rgb(221, 221, 221);
241        position: sticky;
242        z-index: 1;
243            top: 0px;
244        }
245	/* Google Translate When Main Menu Sticky Top */
246	    @media only screen and (max-width: 1100px) {
247        .member-profile-tabs > ul, .member-profile-tabs .tabs-container {
248                    top: 50px;
249                }
250    }
251    .header ul.nav.navbar-nav li ul {
252        background-color: rgb(71, 134, 141);
253    }
254    .header ul.nav.navbar-nav li ul li a, .header ul.nav.navbar-nav li ul li span {
255        color: rgb(255, 255, 255);
256                font-weight: 400;
257            }
258    .header .navbar-default, .pagination > .active > a {
259        background-color: rgb(71, 134, 141);
260    }
261    .header ul.nav.navbar-nav li ul li a:hover, .header ul.nav.navbar-nav li ul li a:focus{
262        border-left-color: rgb(255, 255, 255);
263        background: rgb(255, 255, 255);
264        color: rgb(71, 134, 141);
265    }
266    .navbar-default .navbar-toggle .icon-bar {
267        background-color: rgb(255, 255, 255);
268    }
269	.user_sidebar, .main_menu, .compact-mobile-search {
270        color: rgb(255, 255, 255);
271    }
272    .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span  {
273        color: rgb(255, 255, 255);
274                font-weight: 400;
275            }
276    .navbar-default .navbar-nav > li:hover > a,.navbar-default .navbar-nav > li > a:hover,.navbar-default .navbar-nav > li > a:active, .navbar-default .navbar-nav > li > a:focus {
277        color: rgb(255, 255, 255);
278    }
279    .navbar-default .navbar-nav > li {
280        font-family: 'Cabin';
281    }
282    
283    
284
285    /* Footer Design */
286    .footer {
287        background-color: rgb(44, 44, 44);
288        display: block;
289    }
290    .footer, .footer_menu a,.footer_terms a,.footer_menu .content {
291        color: rgb(239, 239, 239);
292    }
293    .footer_menu a:hover, .footer_terms a:hover, .footer_menu a:focus, .footer_terms a:focus {
294        color: rgb(255, 255, 255);
295    }
296    .footer_menu .head {
297        color: rgb(255, 255, 255);
298    }
299    .btn_footer_get_listed {
300		background-color: rgb(240, 52, 52);
301        border: 1px solid rgb(240, 52, 52);
302        color: rgb(255, 255, 255)!important;
303    }
304    .btn_footer_get_listed:hover, .btn_footer_get_listed:focus{
305				background-color: rgba(240, 52, 52,0.95);        
306    }
307    
308    /* Homepage Design */
309        .homepage_settings h1, .homepage_settings h2, .homepage_map h1, .homepage_map h2 {
310        font-family: 'PT Sans';
311    }
312    .homepage_settings h1, .homepage_map h1 {
313        color: rgb(255, 255, 255);
314            font-weight: 600;
315            text-align: center;
316    }
317    .homepage_settings h2, .homepage_map h2 {
318        color: rgb(41, 41, 41);
319            font-weight: 400;
320            text-align: center;
321
322    }
323    .homepage_settings .search_box label {
324        color: rgb(49, 49, 49);
325    }
326    .btn_home_search, .search_box input[type=submit] {
327		background-color: rgb(0, 102, 153);
328        border: 1px solid rgb(0, 102, 153);
329        color: rgb(255, 255, 255);
330    }
331    .btn_home_search:hover, .btn_home_search:focus, .search_box input[type=submit]:hover, .search_box input[type=submit]:focus {
332		        background-color: rgba(0, 102, 153,0.97);        
333        color: rgb(255, 255, 255);
334    }
335	.homepage_settings .search_box {
336		
337				background-color: rgba( 255, 255, 255, 0.8);
338	}
339
340    /* Homepage Steps Module */
341    .homepage_steps {
342            background: none;
343        box-shadow: none;
344        padding: 0;
345                color: rgb(255, 255, 255);
346            }
347    .homepage_steps a.homepage_step_link,.homepage_steps a.homepage_step_link:hover,.homepage_steps a.homepage_step_link:active{
348        color: rgb(255, 255, 255)!important;
349    }
350    .homepage_steps .fa {
351        color: rgb(255, 255, 255);
352            background-color: rgba(255, 255, 255,0.075);
353    }
354	.homepage_steps h2 + p {
355        opacity: .6;
356	}
357
358    /* Blog Posts Slider Settings */
359    #myCarousel h2 a, .carousel-caption p,#myCarousel .list-group-item h2, #myCarousel li.list-group-item h4 {
360            color: rgb(71, 71, 71);
361        }
362    #myCarousel .list-group-item {
363            background-color: rgba(245, 245, 245,0.9);
364        border-color: rgba(245, 245, 245,0.80);
365    }
366    #myCarousel .carousel-caption {
367            background-color: rgba(245, 245, 245,0.8);
368    }
369    #myCarousel .list-group, #myCarousel .carousel-inner {
370            background-color: rgb(245, 245, 245)        }
371    #myCarousel .list-group .active, #myCarousel .list-group-item:hover {
372            background-color: rgb(245, 245, 245)        }
373    #myCarousel .list-group .active h2, #myCarousel .list-group-item:hover h2{
374            color: rgb(71, 71, 71);
375        }
376
377    /* Additional Settings */
378    .well blockquote {
379        background: rgb(255, 255, 255) none repeat scroll 0 0;
380        border-color: rgb(221, 221, 221);
381        color: rgb(44, 44, 44);
382        padding: 10px 20px;
383    }
384    .account-form-box form table tr td table {
385        background-color: transparent!important;
386        border: none!important;
387    }
388
389    .account-form-box form table tr td table td {
390        background-color: transparent!important;
391        color: rgb(44, 44, 44)!important;
392        border: none!important;
393    }
394    div.dataTables_length label, div.dataTables_filter label, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{
395        color: rgb(44, 44, 44)!important;
396    }
397	.table.dataTable > thead > tr > th, .table > thead > tr > th, .fr-view table th, .fr-view table tfoot td {
398				border-color: rgba(85, 85, 85,0.1);
399		background-color: rgb(245, 245, 245);
400		color: rgb(85, 85, 85);
401		font-weight:600;
402		border-left: none;
403		border-bottom-width: 1px;
404	}
405	.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, table.dataTable.no-footer {
406				border-color: rgba(85, 85, 85,0.1);
407	}
408	.table > tfoot > tr > td:not(:last-child) {
409		border-right: 1px solid rgba(85, 85, 85,0.1);
410	}
411	table.dataTable.no-footer, table.dataTable {
412		border: 1px solid rgb(221, 221, 221)!important;
413	}
414	.table-view li:not(.table-display-about_me li, .froala-data li), .table-view .table-view-group > div {
415		border-top:1px solid rgb(221, 221, 221);
416	}
417	.table-view .table-view-group:last-child {
418		border-bottom:1px solid rgb(221, 221, 221);
419	}
420	table.dataTable tbody tr, .table-striped.dataTable, .table-striped, .fr-view .table-striped {
421		background-color: rgb(245, 245, 245)!important;
422	}
423	.table-striped.dataTable, .table-striped, .fr-view .table-striped {
424				border: 1px solid rgba(85, 85, 85,0.15);
425		border-collapse: separate;
426		overflow: hidden;
427	}
428	table#feature-body-datatable:has(.dropdown.open),table#digital-products-transactions:has(.dropdown.open), table#example:has(.dropdown.open) { 
429    	overflow: visible;
430	}
431	.table-striped.dataTable tbody > tr:nth-of-type(2n+1),.table-striped > tbody > tr:nth-of-type(2n+1) {
432				background-color: rgba(255, 255, 255,0.5)!important;
433	}
434	.nav-tabs, hr, .account-menu-title, .modal-header {
435		border-color: rgb(221, 221, 221);
436	}
437    .sidemenu_panel .list-group-item{
438        background-color: transparent!important;
439        color: rgb(41, 41, 41)!important;
440    }
441    .img-thumbnail {
442        background-color: rgb(245, 245, 245)!important;
443        border: 1px solid rgb(221, 221, 221);
444    }
445    .member_admin_sidemenu p, .member_admin_sidemenu h3 {
446        color: rgb(41, 41, 41)!important;
447    }
448    .close {
449        color: rgb(44, 44, 44);
450        opacity: 1;
451    }
452    .member_results_header h1, .content_w_sidebar.feature-search h1, .feature_results_header h1 {
453        font-size:34px;
454        display: block;
455    }
456    .member_results_header h2, .feature_results_header h2 {
457        font-size:28px;
458        display: block;
459    }
460    .homepage_settings {
461        padding-top: 90px;
462        padding-bottom: 200px;
463    }
464    @media (max-width: 768px) { .mobile_website_logo .visible-xs {display: block !important;}} 
465    @media only screen and (max-width: 768px) {
466                        .member-profile-header .favorite {float:none}
467    }
468    
469
470    @media only screen and (max-width: 1100px) {
471        }
472    .views > i.fa.activeView, .views > i.fa:hover {
473        background-color: rgb(44, 44, 44);
474        color: rgb(255, 255, 255);
475    }
476	.views > i.fa {
477		        background-color: rgba(44, 44, 44,0.1);
478		color: rgb(44, 44, 44);
479	}
480    .ui-rangeSlider-label {
481        background-color: rgb(71, 134, 141)!important;
482        color: rgb(255, 255, 255)!important;
483    }
484    .pricing_menu li .title {
485        background: rgb(0, 102, 153);
486        color: rgb(255, 255, 255);
487    }
488    p.account-tip{
489        color: rgb(44, 44, 44);
490    }
491    .circled_number {
492        background: rgb(0, 102, 153);
493        color: rgb(255, 255, 255);
494    }
495    .pic {
496            background-color: rgba(0, 102, 153,0.8);
497        color: rgb(255, 255, 255);
498        background-repeat: no-repeat;
499        background-position: center;
500        }
501    .pic .pic-caption {
502            background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%,rgba(0, 102, 153,0.85) 50%);
503        color: rgb(255, 255, 255);
504    }
505    .slick-prev-fa i, .slick-next-fa i{
506        color: rgb(0, 102, 153);
507    }
508    .module, .well, .tab-content, .nav-tabs>li.active>a, .nav-tabs>li.active>a:focus, .nav-tabs>li.active>a:hover, .nav-tabs>li>a:focus, .nav-tabs>li>a:hover, .nav-tabs.nav-justified>li.active>a, .nav-tabs.nav-justified>li.active>a:focus, .nav-tabs.nav-justified>li.active>a:hover, .nav-tab.nav-justified>li>a:focus, .nav-tabs.nav-justified>li>a:hover, .account-form-box,.account-form-box .module .module,.account-form-box .module .well,.account-form-box .well .well,.account-form-box .well .module,.module .module .module,.module .well .well,.module .module .well,.module .well .module,.well .well .well,.well .module .module,.well .well .module,.well .module .well, .froala-table.module, .froala-table td.module {
509        background-color: rgb(245, 245, 245);
510        border-color: rgb(221, 221, 221);
511        color: rgb(41, 41, 41);
512    }
513    .nav-pills > li.active a, .nav-pills > li > a:hover {
514        background-color: rgb(0, 102, 153)!important;
515        border-color: rgb(0, 102, 153)!important;
516        color: rgb(255, 255, 255)!important;
517    }
518    .sidemenu_panel .panel-heading {
519        color: rgb(41, 41, 41)!important;
520        background-color: rgb(245, 245, 245)!important;
521    }
522    .member-profile-tabs .nav-tabs > li:not(.active) > a, .login-register-tabs.nav-tabs > li:not(.active) > a, .nav-tabs > li:not(.active) > a {
523            background: rgba(245, 245, 245,0.5);
524        color:  #616161;
525    }
526    .member-profile-tabs .nav-tabs > li:not(.active) > a:hover, .login-register-tabs.nav-tabs > li:not(.active) > a:hover, .nav-tabs > li:not(.active) > a:hover {
527            background: rgba(245, 245, 245,1);
528        color:  rgb(44, 44, 44);
529    }
530    .author-snapshot .well:not(.well.bg-default) {
531        background-color: rgb(245, 245, 245)!important;
532        border-color: rgb(221, 221, 221)!important;
533        color: rgb(41, 41, 41)!important;
534    }
535    .nav-tabs>li>a, .nav-pills>li>a {
536        font-weight: 600;
537    }
538        .module .help-inline,.module .help-block,.well .help-inline,.well .help-block,.account-form-box .help-inline,.account-form-box .help-block,.account-form-box p.account-tip{
539            color: rgba(41, 41, 41,0.5);
540    }
541    #service_areas_table td,#service_areas_table_wrapper label, #service_areas_table_info, #service_areas_table_paginate > a {
542        color: rgb(41, 41, 41) !important;
543    }
544    .popover {
545        background-color: rgb(245, 245, 245);
546        border-color: rgb(245, 245, 245);
547        padding:0;
548        text-align:left;
549    }
550    .popover-title, .popover-content {
551        background-color: rgb(245, 245, 245);
552        color: rgb(41, 41, 41);
553        border-color: rgb(245, 245, 245);
554        text-align:left;
555    }
556    .popover-content {
557    		background-color: rgba(41, 41, 41,.05);
558		border-radius: 4px;
559		transform: translate(-1px, -1px);
560		width: calc(100% + 2px);
561		margin-bottom: -2px;
562    }
563    .popover.left > .arrow::after {
564        border-left-color: rgb(245, 245, 245)!important;
565    }
566    .popover.right > .arrow::after {
567        border-right-color: rgb(245, 245, 245)!important;
568    }
569    .popover.bottom > .arrow::after {
570        border-bottom-color: rgb(245, 245, 245)!important;
571    }
572    .popover.top > .arrow::after {
573        border-top-color: rgb(245, 245, 245)!important;
574    }
575    .progress, .table-view .table-view-group:nth-child(2n-1),.tab-content .well, .tab-content .module,#account-tabs .well,#account-tabs .module,.account-form-box .module,.account-form-box .well,.module .module,.well .well,.module .well,.well .module{
576        background-color: rgb(255, 255, 255);
577        color: rgb(44, 44, 44);
578    }
579    .module h1, .module h2, .module h3, .module h4, .module h5 {
580        color: rgb(62, 62, 62);
581    }
582    .module p:not(.fr-box.fr-basic .fr-element p) {
583        color: rgb(41, 41, 41);
584    }
585    .pagination>.active>a {
586            border-color: rgba(255, 255, 255,0.2);
587    }
588    .pagination>.active>a {
589        color: rgb(255, 255, 255);
590    }
591    .pagination > .active > a:hover, .pagination > .active > a:focus {
592            border-color: rgba(255, 255, 255,0.2);
593        background-color: rgb(71, 134, 141);
594        color: rgb(255, 255, 255);
595    }
596    .pagination > li > a {
597        color: rgb(71, 134, 141);
598            border-color: rgba(71, 134, 141,0.2);
599        background-color: rgb(255, 255, 255);
600    }
601    .pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover {
602        background-color: rgb(71, 134, 141);
603        border-color: rgb(71, 134, 141);
604        color: rgb(255, 255, 255);
605    }
606
607    .nav-pills.nav-wizard > li a, .nav-pills.nav-wizard > li a:hover{
608        background-color: rgb(250, 250, 250)!important;
609        color: rgb(41, 41, 41)!important;
610    }
611    .member_wizard2 li.incomplete a, .member_wizard2 li.incomplete a:hover {
612        background-color: rgb(240, 52, 52)!important;
613        border-color: rgb(240, 52, 52);
614        color: rgb(255, 255, 255);
615    }
616    .nav-pills.nav-wizard > li.active a, .nav-pills.member_wizard > li.active:hover a {
617        background-color: rgb(51, 122, 183)!important;
618        color: rgb(255, 255, 255)!important;
619    }
620    .member_wizard2 li.completed a, .member_wizard2 li.completed a:hover {
621        background-color: rgb(71, 134, 141)!important;
622        border-color: rgb(71, 134, 141);
623        color: rgb(255, 255, 255);
624    }
625
626        .nav-pills.nav-wizard > li.active .nav-arrow, .nav-pills.nav-wizard > li.active:hover .nav-arrow {
627        border-color: transparent transparent transparent rgb(51, 122, 183)!important;
628    }
629    .nav-pills.nav-wizard > li.active .nav-wedge, .nav-pills.nav-wizard > li.active:hover .nav-wedge{
630        border-color: rgb(51, 122, 183) rgb(51, 122, 183) rgb(51, 122, 183) transparent!important;
631    }
632    
633        li.completed .nav-wedge, .nav-pills.nav-wizard > li.completed:hover .nav-wedge {
634        border-color: rgb(0, 166, 128) rgb(0, 166, 128) rgb(0, 166, 128) transparent!important;
635    }
636    
637        li.incomplete .nav-wedge, .nav-pills.nav-wizard > li.incomplete:hover .nav-wedge {
638        border-color: rgb(250, 250, 250) rgb(250, 250, 250) rgb(250, 250, 250) transparent!important;
639    }
640    
641    .nav-pills.member_wizard > li.completed a, .nav-pills.member_wizard > li.completed a:hover {
642        background-color: rgb(0, 166, 128)!important;
643        color: rgb(255, 255, 255)!important;
644    }
645
646    .member_wizard2 li {
647        color: rgb(255, 255, 255);
648        border-right: 10px solid rgb(255, 255, 255);
649    }
650
651        li.completed .nav-arrow, .nav-pills.nav-wizard > li.completed:hover .nav-arrow {
652        border-color: transparent transparent transparent rgb(0, 166, 128)!important;
653    }
654    
655        li.incomplete .nav-arrow, .nav-pills.nav-wizard > li.incomplete:hover .nav-arrow{
656        border-color: transparent transparent transparent rgb(250, 250, 250)!important;
657    }
658    
659    /* Default Colors */
660    .btn-primary, .btn-primary.disabled, .btn-primary.disabled.active, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled:focus, .btn-primary.disabled:hover, .btn-primary[disabled], .btn-primary[disabled].active, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled]:focus, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary.active, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:hover, .btn.dropdown-toggle.btn-primary,.navbar-default .navbar-nav > li > a.btn-primary, .navbar-default .navbar-nav > li > span.btn-primary,.mobile-main-menu .sidebar-nav li a.btn-primary, .mobile-main-menu .sidebar-nav li span.btn-primary {
661    	background-color: rgb(0, 102, 153);
662        border-color: rgb(0, 102, 153);
663        color: rgb(255, 255, 255);
664    }
665    .btn-primary:hover, .btn-primary:focus, .btn-primary:active,.btn-primary:active:focus, .btn-primary:active:hover, .nav > li > a.btn-primary:focus, .nav > li > a.btn-primary:hover,.btn-primary.active,.open > .dropdown-toggle.btn-primary, .btn-primary.active.focus, .btn-primary.active:focus, .btn-primary.active:hover, .btn-primary:active.focus, .open>.dropdown-toggle.btn-primary:hover, .open>.dropdown-toggle.btn-primary:focus, .open>.dropdown-toggle.btn-primary.focus,a.bg-primary:focus,a.bg-primary:hover, .panel-primary .panel-heading, .btn.dropdown-toggle.btn-primary:hover,.upload-form-field,.upload-form-field:hover,.upload-form-field:active:focus,.upload-form-field:before, .label-primary[href]:focus, .label-primary[href]:hover {        
666		        background-color: rgba(0, 102, 153,0.95);
667        border-color: rgb(0, 102, 153);
668        color: rgb(255, 255, 255);
669    }
670	.panel-primary {
671        background-color: #d9e8f0;
672		border-color: rgb(0, 102, 153);
673	}
674    .bg-primary,.progress-bar-primary,.module p.bg-primary,.label-primary,.badge-primary,.pricing_menu .title.bg-primary, .
674well .well.bg-primary, .module .well.bg-primary, .well .module.bg-primary,.tab-content .module.bg-primary,.tab-content .well.bg-primary {
675        background-color: rgb(0, 102, 153);
676        color: rgb(255, 255, 255);
677    }
678    .bg-primary .badge {
679        background-color:rgb(255, 255, 255);
680        color: rgb(0, 102, 153);
681    }
682    .btn-primary.btn-outline {
683        background: transparent;
684        color: rgb(0, 102, 153);
685        transition: all 250ms ease-in-out 0ms;
686    }
687    .btn-primary.btn-outline:hover {
688            background: rgba(0, 102, 153,0.1);
689		color: rgb(0, 102, 153);
690    }
691    .alert-primary {
692            background-color:rgba(0, 102, 153,0.7);
693        border-color:rgba(0, 102, 153,0.2);
694            color: rgba(255, 255, 255,0.9);
695    }
696	.alert-primary-subtle, .label-primary-subtle, .badge-primary-subtle {
697		background-color: #cce0eb;
698		border-color: #cce0eb;
699		color: rgb(0, 102, 153);
700		color: color-mix(in srgb, rgb(0, 102, 153) 50%, rgb(44, 44, 44) 50%);
701	}
702    .btn.dropdown-toggle.btn-primary *, .btn-primary a {
703        color: rgb(255, 255, 255);
704    }
705    .text-primary{
706        color: rgb(0, 102, 153);
707    }
708    .btn-info, .btn-info.disabled, .btn-info.disabled.active, .btn-info.disabled.focus, .btn-info.disabled:active, .btn-info.disabled:focus, .btn-info.disabled:hover, .btn-info[disabled], .btn-info[disabled].active, .btn-info[disabled].focus, .btn-info[disabled]:active, .btn-info[disabled]:focus, .btn-info[disabled]:hover, fieldset[disabled] .btn-info, fieldset[disabled] .btn-info.active, fieldset[disabled] .btn-info.focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:hover, .btn.dropdown-toggle.btn-info,.navbar-default .navbar-nav > li > a.btn-info, .navbar-default .navbar-nav > li > span.btn-info,.mobile-main-menu .sidebar-nav li a.btn-info, .mobile-main-menu .sidebar-nav li span.btn-info {
709		background-color: rgb(60, 187, 222);
710        border-color: rgb(60, 187, 222);
711        color: rgb(255, 255, 255);
712    }
713    .btn-info:hover, .btn-info:focus, .btn-info:active,.btn-info:active:focus, .btn-info:active:hover, .nav > li > a.btn-info:focus, .nav > li > a.btn-info:hover,.btn-info.active,.open > .dropdown-toggle.btn-info, .btn-info.active.focus, .btn-info.active:focus, .btn-info.active:hover, .btn-info:active.focus, .open>.dropdown-toggle.btn-info:hover, .open>.dropdown-toggle.btn-info:focus, .open>.dropdown-toggle.btn-info.focus,a.bg-info:focus,a.bg-info:hover, .panel-info .panel-heading, .btn.dropdown-toggle.btn-info:hover, .label-info[href]:focus, .label-info[href]:hover {
714		        background-color: rgba(60, 187, 222,0.95);
715        border-color: rgb(60, 187, 222);
716        color: rgb(255, 255, 255);
717    }
718	.panel-info {
719        background-color: #e2f5fa;
720		border-color: rgb(60, 187, 222);
721	}
722    .bg-info,.progress-bar-info,.module p.bg-info,.label-info,.badge-info,.pricing_menu .title.bg-info, .well .well.bg-info, .module .well.bg-info, .well .module.bg-info,.tab-content .module.bg-info,.tab-content .well.bg-info {
723        background-color: rgb(60, 187, 222);
724        color: rgb(255, 255, 255);
725    }
726    .bg-info .badge {
727        background-color:rgb(255, 255, 255);
728        color: rgb(60, 187, 222);
729    }
730    .btn-info.btn-outline {
731        background: transparent;
732        color: rgb(60, 187, 222);
733        transition: all 250ms ease-in-out 0ms;
734    }
735    .btn-info.btn-outline:hover {
736            background: rgba(60, 187, 222,0.1);
737		color: rgb(60, 187, 222);
738    }
739    .alert-info {
740            background-color:rgba(60, 187, 222,0.7);
741        border-color:rgba(60, 187, 222,0.2);
742            color: rgba(255, 255, 255,0.9);
743    }
744	.alert-info-subtle, .label-info-subtle, .badge-info-subtle {
745		background-color: #d8f1f8;
746		border-color: #d8f1f8;
747		color: rgb(60, 187, 222);
748		color: color-mix(in srgb, rgb(60, 187, 222) 50%, rgb(44, 44, 44) 50%);
749	}
750    .btn.dropdown-toggle.btn-info *, .btn-info a {
751        color: rgb(255, 255, 255);
752    }
753    .text-info{
754        color: rgb(60, 187, 222);
755    }
756    .btn-success, .btn-success.disabled, .btn-success.disabled.active, .btn-success.disabled.focus, .btn-success.disabled:active, .btn-success.disabled:focus, .btn-success.disabled:hover, .btn-success[disabled], .btn-success[disabled].active, .btn-success[disabled].focus, .btn-success[disabled]:active, .btn-success[disabled]:focus, .btn-success[disabled]:hover, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success.active, fieldset[disabled] .btn-success.focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:hover, .btn.dropdown-toggle.btn-success,.navbar-default .navbar-nav > li > a.btn-success, .navbar-default .navbar-nav > li > span.btn-success,.mobile-main-menu .sidebar-nav li a.btn-success, .mobile-main-menu .sidebar-nav li span.btn-success {
757		background-color: rgb(71, 134, 141);
758        border-color: rgb(71, 134, 141);
759        color: rgb(255, 255, 255);
760    }
761    .btn-success:hover, .btn-success:focus, .btn-success:active,.btn-success:active:focus, .btn-success:active:hover, .nav > li > a.btn-success:focus, .nav > li > a.btn-success:hover,.btn-success.active,.open > .dropdown-toggle.btn-success, .btn-success.active.focus, .btn-success.active:focus, .btn-success.active:hover, .btn-success:active.focus, .open>.dropdown-toggle.btn-success:hover, .open>.dropdown-toggle.btn-success:focus, .open>.dropdown-toggle.btn-success.focus,a.bg-success:focus,a.bg-success:hover, .panel-success .panel-heading, .btn.dropdown-toggle.btn-success:hover, .label-success[href]:focus, .label-success[href]:hover {        
762		        background-color: rgba(71, 134, 141,0.95);
763        border-color: rgb(71, 134, 141);
764        color: rgb(255, 255, 255);
765    }
766    .panel-success {
767        background-color: #e3edee;
768        border-color: rgb(71, 134, 141);
769    }
770    .bg-success,.progress-bar-success,.module p.bg-success,.label-success,.badge-success,.pricing_menu .title.bg-success, .well .well.bg-success, .module .well.bg-success, .well .module.bg-success,.tab-content .module.bg-success,.tab-content .well.bg-success {
771        background-color: rgb(71, 134, 141);
772        color: rgb(255, 255, 255);
773    }
774    .bg-success .badge {
775        background-color: rgb(255, 255, 255);
776        color: rgb(71, 134, 141);
777    }
778    .btn-success.btn-outline {
779        background: transparent;
780        color: rgb(71, 134, 141);
781        transition: all 250ms ease-in-out 0ms;
782    }
783    .btn-success.btn-outline:hover {
784            background: rgba(71, 134, 141,0.1);
785		color: rgb(71, 134, 141);
786    }
787    .alert-success {
788            background-color:rgba(71, 134, 141,0.7);
789        border-color:rgba(71, 134, 141,0.2);
790            color: rgba(255, 255, 255,0.9);
791    }
792	.alert-success-subtle, .label-success-subtle, .badge-success-subtle {
793		background-color: #dae7e8;
794		border-color: #dae7e8;
795		color: rgb(71, 134, 141);
796		color: color-mix(in srgb, rgb(71, 134, 141) 50%, rgb(44, 44, 44) 50%);
797	}
798    .btn.dropdown-toggle.btn-success *, .btn-success a {
799        color: rgb(255, 255, 255);
800    }
801    .text-success{
802        color: rgb(71, 134, 141);
803    }
804    .btn-warning, .btn-warning.disabled, .btn-warning.disabled.active, .btn-warning.disabled.focus, .btn-warning.disabled:active, .btn-warning.disabled:focus, .btn-warning.disabled:hover, .btn-warning[disabled], .btn-warning[disabled].active, .btn-warning[disabled].focus, .btn-warning[disabled]:active, .btn-warning[disabled]:focus, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning.active, fieldset[disabled] .btn-warning.focus, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:hover, .btn.dropdown-toggle.btn-warning,.navbar-default .navbar-nav > li > a.btn-warning, .navbar-default .navbar-nav > li > span.btn-warning,.mobile-main-menu .sidebar-nav li a.btn-warning, .mobile-main-menu .sidebar-nav li span.btn-warning {
805		background-color: rgb(240, 52, 52);
806        border-color: rgb(240, 52, 52);
807        color: rgb(255, 255, 255);
808    }
809    .btn-warning:hover, .btn-warning:focus, .btn-warning:active,.btn-warning:active:focus, .btn-warning:active:hover, .nav > li > a.btn-warning:focus, .nav > li > a.btn-warning:hover,.btn-warning.active,.open > .dropdown-toggle.btn-warning, .btn-warning.active.focus, .btn-warning.active:focus, .btn-warning.active:hover, .btn-warning:active.focus, .open>.dropdown-toggle.btn-warning:hover, .open>.dropdown-toggle.btn-warning:focus, .open>.dropdown-toggle.btn-warning.focus,a.bg-warning:focus,a.bg-warning:hover, .panel-warning .panel-heading, .btn.dropdown-toggle.btn-warning:hover, .label-warning[href]:focus, .label-warning[href]:hover {        
810		        background-color: rgba(240, 52, 52,0.95);
811        border-color: rgb(240, 52, 52);
812        color: rgb(255, 255, 255);
813    }
814	.panel-warning {
815        background-color: #fde1e1;
816		border-color: rgb(240, 52, 52);
817	}
818    .bg-warning,.progress-bar-warning,.module p.bg-warning,.label-warning,.badge-warning,.pricing_menu .title.bg-warning, .well .well.bg-warning, .module .well.bg-warning, .well .module.bg-warning,.tab-content .module.bg-warning,.tab-content .well.bg-warning {
819        background-color: rgb(240, 52, 52);
820        color: rgb(255, 255, 255);
821    }
822    .bg-warning .badge {
823        background-color: rgb(255, 255, 255);
824        color: rgb(240, 52, 52);
825    }
826    .btn-warning.btn-outline {
827        background: transparent;
828        color: rgb(240, 52, 52);
829        transition: all 250ms ease-in-out 0ms;
830    }
831    .btn-warning.btn-outline:hover {
832            background: rgba(240, 52, 52,0.1);
833		color: rgb(240, 52, 52);
834    }
835    .alert-warning {
836            background-color:rgba(240, 52, 52,0.7);
837        border-color:rgba(240, 52, 52,0.2);
838            color: rgba(255, 255, 255,0.9);
839    }
840	.alert-warning-subtle, .label-warning-subtle, .badge-warning-subtle {
841		background-color: #fcd6d6;
842		border-color: #fcd6d6;
843		color: rgb(240, 52, 52);
844		color: color-mix(in srgb, rgb(240, 52, 52) 50%, rgb(44, 44, 44) 50%);
845	}
846    .btn.dropdown-toggle.btn-warning *, .btn-warning a {
847        color: rgb(255, 255, 255);
848    }
849    .text-warning {
850        color: rgb(240, 52, 52);
851    }
852    .btn-danger, .btn-danger.disabled, .btn-danger.disabled.active, .btn-danger.disabled.focus, .btn-danger.disabled:active, .btn-danger.disabled:focus, .btn-danger.disabled:hover, .btn-danger[disabled], .btn-danger[disabled].active, .btn-danger[disabled].focus, .btn-danger[disabled]:active, .btn-danger[disabled]:focus, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger.active, fieldset[disabled] .btn-danger.focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:hover, .btn.dropdown-toggle.btn-danger,.navbar-default .navbar-nav > li > a.btn-danger, .navbar-default .navbar-nav > li > span.btn-danger,.mobile-main-menu .sidebar-nav li a.btn-danger, .mobile-main-menu .sidebar-nav li span.btn-danger {
853		background-color: rgb(240, 52, 52);
854        border-color: rgb(240, 52, 52);
855        color: rgb(255, 255, 255);
856    }
857    .btn-danger:hover, .btn-danger:focus, .btn-danger:active,.btn-danger:active:focus, .btn-danger:active:hover, .nav > li > a.btn-danger:focus, .nav > li > a.btn-danger:hover,.btn-danger.active,.open > .dropdown-toggle.btn-danger, .btn-danger.active.focus, .btn-danger.active:focus, .btn-danger.active:hover, .btn-danger:active.focus, .open>.dropdown-toggle.btn-danger:hover, .open>.dropdown-toggle.btn-danger:focus, .open>.dropdown-toggle.btn-danger.focus,a.bg-danger:focus,a.bg-danger:hover, .panel-danger .panel-heading, .btn.dropdown-toggle.btn-danger:hover, .label-danger[href]:focus, .label-danger[href]:hover {        
858		        background-color: rgba(240, 52, 52,0.95);
859        border-color: rgb(240, 52, 52);
860        color: rgb(255, 255, 255);
861    }
862    .has-error .form-control {
863        border-color: rgb(240, 52, 52);
864    }
865    .has-error .help-block:not(.form-field-help-block), .has-error ~ .help-block:not(.form-field-help-block),.has-error .help-block:not(.form-field-help-block) a, .has-error ~ .help-block:not(.form-field-help-block) a {
866        background: rgb(240, 52, 52);
867        color: rgb(255, 255, 255) !important;
868    }
869    .has-error .checkbox, .has-error .checkbox-inline, .has-error .control-label, .has-error .help-block, .has-error .radio, .has-error .radio-inline, .has-error.checkbox label, .has-error.checkbox-inline label, .has-error.radio label, .has-error.radio-inline label {
870        color: rgb(240, 52, 52);
871    }
872	.panel-danger {
873        background-color: #fde1e1;
874		border-color: rgb(240, 52, 52);
875	}
876    .bg-danger,.progress-bar-danger,.module p.bg-danger,.label-danger,.badge-danger,.pricing_menu .title.bg-danger, .well .well.bg-danger, .module .well.bg-danger, .well .module.bg-danger,.tab-content .module.bg-danger,.tab-content .well.bg-danger {
877        background-color: rgb(240, 52, 52);
878        color: rgb(255, 255, 255);
879    }
880    .bg-danger .badge {
881        background-color: rgb(255, 255, 255);
882        color: rgb(240, 52, 52);
883    }
884    .btn-danger.btn-outline {
885        background: transparent;
886        color: rgb(240, 52, 52);
887        transition: all 250ms ease-in-out 0ms;
888    }
889    .btn-danger.btn-outline:hover {
890            background: rgba(240, 52, 52,0.1);
891		color: rgb(240, 52, 52);
892    }
893    .alert-danger {
894            background-color:rgba(240, 52, 52,0.7);
895        border-color:rgba(240, 52, 52,0.2);
896            color: rgba(255, 255, 255,0.9);
897    }
898	.alert-danger-subtle, .label-danger-subtle, .badge-danger-subtle {
899		background-color: #fcd6d6;
900		border-color: #fcd6d6;
901		color: rgb(240, 52, 52);
902		color: color-mix(in srgb, rgb(240, 52, 52) 50%, rgb(44, 44, 44) 50%);
903	}	
904    .btn.dropdown-toggle.btn-danger *, .btn-danger a {
905        color: rgb(255, 255, 255);
906    }
907    .text-danger{
908        color: rgb(240, 52, 52);
909    }
910    .btn-default, .tags a, .btn-default.disabled, .btn-default.disabled.active, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled:focus, .btn-default.disabled:hover, .btn-default[disabled], .btn-default[disabled].active, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled]:focus, .btn-default[disabled]:hover, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default.active, fieldset[disabled] .btn-default.focu
910s, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover, .btn.dropdown-toggle.btn-default, #popover .mini_profile_pic,.navbar-default .navbar-nav > li > a.btn-default, .navbar-default .navbar-nav > li > span.btn-default,.mobile-main-menu .sidebar-nav li a.btn-default, .mobile-main-menu .sidebar-nav li span.btn-default {
911		background-color: rgb(245, 245, 245);
912        border-color: rgb(245, 245, 245);
913        color: rgb(85, 85, 85);
914    }
915    .btn-default:hover, .btn-default:focus, .btn-default:active,.btn-default:active:focus, .btn-default:active:hover,.tags a:hover, .nav > li > a.btn-default:focus, .nav > li > a.btn-default:hover,.btn-default.active,.open > .dropdown-toggle.btn-default, .btn-default.active.focus, .btn-default.active:focus, .btn-default.active:hover, .btn-default:active.focus, .open>.dropdown-toggle.btn-default:hover, .open>.dropdown-toggle.btn-default:focus, .open>.dropdown-toggle.btn-default.focus,a.bg-default:focus,a.bg-default:hover, .panel-default .panel-heading, .member_accounts .panel-default > .panel-heading, .panel-default.categories-panel .panel-heading, .btn.dropdown-toggle.btn-default:hover, #popover .mini_profile_pic, .label-default[href]:focus, .label-default[href]:hover {        
916		        background-color: rgba(245, 245, 245,0.95);
917        border-color: rgb(245, 245, 245);
918        color: rgb(85, 85, 85);
919    }
920    .sidemenu_panel .panel-default .panel_heading {
921        background-color: rgb(245, 245, 245)!important;
922        border-color: rgb(245, 245, 245)!important;
923        color: rgb(85, 85, 85)!important;
924    }
925	.panel-default .panel-heading, .member_accounts .panel-default > .panel-heading, .panel-default.categories-panel .panel-heading {
926				
927		box-shadow: 0 0 1000px 0 rgba(85, 85, 85,0.02) inset;
928		background-color: rgb(245, 245, 245);
929	}
930    .panel-default, .member_accounts .panel-default {
931			
932        background-color: rgba(245, 245, 245,0.15);
933		border-color: #fefefe;
934		border-color: color-mix(in srgb,rgb(245, 245, 245) 100%,rgba(245, 245, 245) 10%);
935	}
936	.member_admin_sidemenu .panel-default {
937		background-color: transparent;
938	}
939    .bg-default,.progress-bar-default,.module p.bg-default,.label-default,.badge-default,.pricing_menu .title.bg-default, .well .well.bg-default, .module .well.bg-default, .well .module.bg-default,.tab-content .module.bg-default,.tab-content .well.bg-default {
940        background-color: rgb(245, 245, 245);
941        color: rgb(85, 85, 85);
942    }
943    .bg-default .badge {
944        background-color: rgb(85, 85, 85);
945        color: rgb(245, 245, 245);
946    }
947    .btn-default.btn-outline {
948        background: transparent;
949        color: rgb(245, 245, 245);
950        transition: all 250ms ease-in-out 0ms;
951    }
952    .btn-default.btn-outline:hover {
953            background: rgba(245, 245, 245,0.1);
954		color: rgb(245, 245, 245);
955    }
956	.alert-default {
957		background-color:rgb(245, 245, 245);
958		border-color:rgb(245, 245, 245);
959		color: rgb(85, 85, 85);
960	}
961	.alert-default-subtle, .label-default-subtle, .badge-default-subtle {
962				background-color:rgba(245, 245, 245,0.5);
963		border-color: rgba(245, 245, 245,0.5);
964		color: rgb(85, 85, 85);
965		color: color-mix(in srgb, rgb(85, 85, 85) 50%, rgb(44, 44, 44) 50%);
966	}	
967    .btn.dropdown-toggle.btn-default *, .btn-default a {
968        color: rgb(85, 85, 85);
969    }
970    .text-default{
971        color: rgb(245, 245, 245);
972    }
973    .btn-secondary, .btn.dropdown-toggle.btn-secondary,.navbar-default .navbar-nav > li > a.btn-secondary, .navbar-default .navbar-nav > li > span.btn-secondary,.mobile-main-menu .sidebar-nav li a.btn-secondary, .mobile-main-menu .sidebar-nav li span.btn-secondary {
974		background-color: rgb(44, 44, 44);
975        border: 1px solid rgb(44, 44, 44);
976        color: rgb(255, 255, 255);
977    }
978    .btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active,.btn-secondary:active:focus, .btn-secondary:active:hover, .nav > li > a.btn-secondary:focus, .nav > li > a.btn-secondary:hover,.btn-secondary.active,.open > .dropdown-toggle.btn-secondary, .btn-secondary.active.focus, .btn-secondary.active:focus, .btn-secondary.active:hover, .btn-secondary:active.focus, .open>.dropdown-toggle.btn-secondary:hover, .open>.dropdown-toggle.btn-secondary:focus, .open>.dropdown-toggle.btn-secondary.focus,a.bg-secondary:focus,a.bg-secondary:hover,.btn.dropdown-toggle.btn-secondary:hover, .panel-secondary .panel-heading, .label-secondary[href]:focus, .label-secondary[href]:hover {        
979		        background-color: rgba(44, 44, 44,0.95);
980        border-color: rgb(44, 44, 44);
981        color: rgb(255, 255, 255);
982    }
983    .bg-secondary,.progress-bar-secondary,.module p.bg-secondary,.module p.bg-secondary:not(.fr-box.fr-basic .fr-element p),.label-secondary,.badge-secondary,.pricing_menu .title.bg-secondary, .well .well.bg-secondary, .module .well.bg-secondary, .well .module.bg-secondary,.tab-content .module.bg-secondary,.tab-content .well.bg-secondary {
984        background-color: rgb(44, 44, 44);
985        color: rgb(255, 255, 255);
986    }
987    .bg-secondary .badge {
988        background-color:rgb(255, 255, 255);
989        color: rgb(44, 44, 44);
990    }
991    .btn-secondary.btn-outline {
992        background: transparent;
993        color: rgb(44, 44, 44);
994        transition: all 250ms ease-in-out 0ms;
995    }
996    .btn-secondary.btn-outline:hover {
997            background: rgba(44, 44, 44,0.1);
998		color: rgb(44, 44, 44);
999    }
1000	.panel-secondary {
1001        background-color: #dfdfdf;
1002		border-color: rgb(44, 44, 44);
1003	}
1004	.alert-secondary {
1005		background-color:rgb(44, 44, 44);
1006		border-color:rgb(44, 44, 44);
1007		color: rgb(255, 255, 255);
1008	}
1009	.alert-secondary-subtle, .label-secondary-subtle, .badge-secondary-subtle {
1010				background-color:rgba(44, 44, 44,0.8);
1011		border-color: rgba(44, 44, 44,0.5);
1012		color: rgb(255, 255, 255);
1013	}
1014	.btn-outline {
1015		-webkit-backdrop-filter: blur(5px);
1016		backdrop-filter: blur(5px);
1017	}
1018	.btn-body, .btn-body.disabled, .btn-body.disabled.active, .btn-body.disabled.focus, .btn-body.disabled:active, .btn-body.disabled:focus, .btn-body.disabled:hover, .btn-body[disabled], .btn-body[disabled].active, .btn-body[disabled].focus, .btn-body[disabled]:active, .btn-body[disabled]:focus, .btn-body[disabled]:hover, fieldset[disabled] .btn-body, fieldset[disabled] .btn-body.active, fieldset[disabled] .btn-body.focus, fieldset[disabled] .btn-body:active, fieldset[disabled] .btn-body:focus, fieldset[disabled] .btn-body:hover, .btn.dropdown-toggle.btn-body,.navbar-default .navbar-nav > li > a.btn-body, .navbar-default .navbar-nav > li > span.btn-body,.mobile-main-menu .sidebar-nav li a.btn-body, .mobile-main-menu .sidebar-nav li span.btn-body {
1019		background-color: rgb(255, 255, 255);
1020		border: 1px solid rgb(255, 255, 255);
1021		color: rgb(44, 44, 44);
1022	}
1023	.btn-body:hover, .btn-body:focus, .btn-body:active,.btn-body:active:focus, .btn-body:active:hover, .nav > li > a.btn-body:focus, .nav > li > a.btn-body:hover,.btn-body.active,.open > .dropdown-toggle.btn-body, .btn-body.active.focus, .btn-body.active:focus, .btn-body.active:hover, .btn-body:active.focus, .open>.dropdown-toggle.btn-body:hover, .open>.dropdown-toggle.btn-body:focus, .open>.dropdown-toggle.btn-body.focus,a.bg-body:focus,a.bg-body:hover, .panel-body .panel-heading, .btn.dropdown-toggle.btn-body:hover, .label-body[href]:focus, .label-body[href]:hover {        
1024				background-color: rgba(255, 255, 255,0.95);
1025		border: 1px solid rgb(255, 255, 255);
1026		color: rgb(44, 44, 44);
1027	}	
1028	.btn.btn-body.dropdown-toggle * {
1029		color: rgb(44, 44, 44)	
1030	}
1031	.btn-body.dropdown-toggle + ul li, .daterangepicker .ranges {
1032		color: #333;
1033	}
1034    .bg-body {
1035        background: rgb(255, 255, 255);
1036        color: rgb(44, 44, 44);
1037    }
1038    .bg-content-box {
1039        background: rgb(245, 245, 245);
1040        color: rgb(41, 41, 41);
1041    }
1042    .bg-content-box-border {
1043        background: rgb(221, 221, 221);
1044    }
1045    .btn.dropdown-toggle.btn-secondary *, .btn-secondary a {
1046        color: rgb(255, 255, 255);
1047    }
1048    .text-secondary {
1049        color: rgb(44, 44, 44);
1050    }
1051	.text-body {
1052		color: rgb(255, 255, 255);
1053	}
1054    .feature-post #post-content .alert-secondary.btn-block, .feature-search .img_section .alert-secondary.btn-block, .search_result .img_section  .alert-secondary {
1055		border-radius: 10px;
1056        background-color: rgba(44, 44, 44,0.2);
1057    }
1058
1059    /* Footer Newsletter Row */
1060    .newsletter_row .alert {
1061        color: rgb(255, 255, 255);
1062    }
1063    .newsletter_row {
1064        background-color: rgb(0, 102, 153);
1065        color: rgb(255, 255, 255);
1066    }
1067    .newsletter_row input[type="submit"],.newsletter_footer_button {
1068            background-color: rgba(0, 166, 128,0.97);
1069        color: rgb(255, 255, 255);
1070        border-color: rgb(0, 166, 128);
1071    }
1072    .newsletter_row input[type="submit"]:hover,.newsletter_row input[type="submit"]:focus,.newsletter_footer_button:hover,.newsletter_footer_button:focus {
1073        background-color: rgb(0, 166, 128);
1074        color: rgb(255, 255, 255);
1075    }
1076    .newsletter_button_left {
1077            border-right: 1px solid rgba(255, 255, 255,0.2);
1078    }
1079    .newsletter_button_right {
1080        border-left: 1px solid rgba(255, 255, 255,0.2);
1081    }
1082    .newsletter_row small.help-block {
1083        background: rgb(255, 255, 255);
1084        margin-top: -5px;
1085        float: left;
1086        padding: 8px;
1087        border-radius: 1px;
1088        color: rgb(0, 102, 153);
1089        text-transform: capitalize;
1090    }
1091    .newsletter_row .has-success .checkbox,.newsletter_row .has-error .checkbox{
1092        color: rgb(255, 255, 255);
1093    }
1094    @media only screen and (max-width: 767px) {
1095        .newsletter_button_right,.newsletter_button_left{
1096            border: none;
1097            margin: 5px 0;
1098        }
1099    }
1100
1101    /* Font Sizes */
1102
1103    .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span {
1104        font-size: 16px;
1105    }
1106    .header .logo {
1107        font-size: 36px;
1108    }
1109    .homepage_title h1, .homepage_settings h1 {
1110		letter-spacing: -1px;
1111        font-size: 80px;
1112					margin-bottom: 20px;
1113				    }
1114    @media only screen and (max-width: 768px) {
1115        .homepage_title h1, .homepage_settings h1 {margin-bottom: 15px;}
1116    }	
1117    .homepage_settings h2 {
1118        font-size: 28px;
1119    }
1120
1121    .ui-rangeSlider-bar{
1122        background: rgb(0, 102, 153)!important;
1123    }
1124
1125    
1126    
1127    @media only screen and (max-width: 1024px){
1128        .modal {margin-top: 40px;}
1129    }
1130    @media only screen and (max-width: 768px){
1131        .modal {margin-top: 60px;}
1132    }
1133
1134    /* Calendar Styles */
1135
1136    #cal-slide-content {
1137        color: rgb(85, 85, 85)!important;
1138        background-color: rgb(245, 245, 245)!important;
1139        -webkit-box-shadow: none!important;
1140        box-shadow: none!important;
1141    }
1142    #cal-slide-content a.event-item {
1143        color: rgb(85, 85, 85)!important;
1144        font-weight:bold!important;
1145    }
1146    #cal-slide-content a.event-item small {
1147        display: inline-block;
1148    }
1149    .cal-month-box, .cal-year-box, .cal-week-box {
1150        border: 1px solid rgb(221, 221, 221)!important;
1151    }
1152    .cal-year-box .row-fluid, .cal-month-box .cal-row-fluid {
1153        border-bottom: 1px solid rgb(221, 221, 221)!important;
1154    }
1155    .cal-year-box [class*="span"], .cal-month-box [class*="cal-cell"] {
1156        border-right: 1px solid rgb(221, 221, 221)!important;
1157    }
1158    .cal-year-box .row-fluid, .cal-row-fluid, #cal-day-box .cal-day-hour:nth-child(odd) {
1159        background-color: rgb(255, 255, 255)!important;
1160    }
1161    .cal-month-day span:not(.pull-right):not(.events-count-label):not(.events-label) {
1162        color: rgb(85, 85, 85)!important;
1163    }
1164    .cal-day-today span[data-cal-date] {
1165        color: rgb(44, 44, 44)!important;
1166    }
1167    .cal-year-box .row-fluid [class*="span"]:last-child, .cal-month-box .cal-row-fluid [class*="cal-cell"]:last-child {
1168        border: 0!important;
1169    }
1170    .cal-row-head {
1171        background: rgb(245, 245, 245)!important;
1172    }
1173    .day-highlight:hover, .day-highlight {
1174        background-color: rgb(221, 221, 221)!important;
1175    }
1176    .cal-event-list .event.pull-left {
1177        background-color: rgb(44, 44, 44)!important;
1178        opacity: 0.4;
1179        margin-top: 7px!important;
1180    }
1181    .cal-day-today {
1182        background-color: rgb(221, 221, 221)!important;
1183    }
1184    #cal-day-tick {
1185        border: 1px solid rgb(221, 221, 221)!important;
1186        background-color: rgb(221, 221, 221)!important;
1187    }
1188    .cal-day-weekend span[data-cal-date]{
1189        color: rgb(44, 44, 44)!important;
1190    }
1191        .rsDefault, .rsDefault .rsOverflow, .rsDefault .rsSlide, .rsDefault .rsVideoFrameHolder, .rsDefault .rsThumbs {
1192		border-radius: 10px;
1193        background: #151515!important;
1194    }
1195	.img_section .no-radius-bottom + .alert-secondary .rsDefault .rsSlide, .img_section .no-radius-bottom + .alert-secondary  .rsDefault .rsOverflow {
1196		border-radius:0;
1197	}
1198    
1199    #first_container .favorite, #first_container .fa.favorite {
1200        color: rgb(170, 184, 194);
1201        background: rgb(245, 245, 245);
1202        border: 1px solid rgb(245, 245, 245);
1203        white-space:nowrap!important;
1204		height:24px;
1205		padding:0 6px;
1206		border-radius:8px;
1207    }
1208    #first_container .favorite span, #first_container .fa.favorite span {
1209        font-family: 'Cabin';
1210        white-space:nowrap!important;
1211    }
1212    #first_container .favoriteActive:not(.favorite.comments-count-badge), #first_container .fa.favoriteActive:not(.favorite.comments-count-badge .fa) {
1213        color: rgb(226, 38, 77);
1214    }
1215        #first_container .favorite::after, #first_container .fa.favorite::after {
1216        font-family: 'Cabin';
1217        margin-left: 3px;
1218    }
1219    #first_container .favorite span, #first_container .fa.favorite span{
1220        padding-left: 4px;
1221        font-family: 'Cabin';
1222        font-size: 11px;
1223		letter-spacing:.5px;
1224		top:-1px;
1225		position:relative;
1226		font-weight:700;		
1227    }
1228	#first_container .favorite span:empty, #first_container .fa.favorite span:empty {
1229		padding: 0;
1230	}
1231	#first_container .favorite .bookmark-number, #first_container .fa.favorite .bookmark-number {
1232		padding: 1px 0;
1233		border-radius: 100px;
1234		display: inline-block;
1235		font-weight: bold;
1236		min-width: 15px;
1237		font-size: .8em;
1238		vertical-align: bottom;
1239		height: 15px;
1240		line-height: 13px;
1241		margin-left: 3px;
1242		text-align: center;
1243	}
1244    #first_container .favorite.favoriteActive .bookmark-number:not(.comments-count-badge .bookmark-number), #first_container .fa.favorite.favoriteActive .bookmark-number {
1245        background: rgb(226, 38, 77);
1246		color: #fff;
1247    }
1248    
1249    span.checkbox_value::after {
1250        content: ', ';
1251    }
1252
1253    span.checkbox_value:last-child::after {
1254        content: '';
1255    }
1256    
1257    .member_results .grid_element{
1258	position:relative;
1259	overflow:hidden;
1260	display: inline-block;
1261	width:100%;
1262}
1263.member_results .grid_element::before {
1264	position: absolute;
1265	top: 24px;
1266	text-align: center;
1267	width: 200px;
1268	left: -62px;
1269	transform: rotate(-45deg);
1270	-webkit-transform: rotate(-45deg);
1271	z-index: 1;
1272	line-height: 1.2em;
1273	padding: 6px 0;
1274	font-weight: bold;
1275	letter-spacing: 1px;
1276}
1277@media only screen and (max-width: 767px) {
1278	.member_results .grid-container > hr {
1279		border-color: transparent;
1280	}
1281	.member_results .grid_element{
1282		overflow:visible;
1283	}
1284	.member_results .grid_element::before {
1285		top: -19px!important;
1286		transform: rotate(0deg);
1287		-webkit-transform: rotate(0deg);
1288		font-size: 10px !important;
1289		letter-spacing: 0;
1290		width: auto;
1291		padding: 3px 6px;
1292	}
1293}
1294
1295
1296
1297    
1298
1299    /*  Homepage Sections Background Color Logic */
1300
1301    
1302    .homepage-section-1 {
1303        padding: 40px 0 40px;
1304    }
1305
1306    
1307    .homepage-section-1 {
1308        background: rgb(75, 183, 179);
1309    }
1310
1311    
1312    .homepage-section-2 {
1313        padding: 40px 0 40px;
1314    }
1315
1316    
1317    .homepage-section-3 {
1318        padding: 40px 0 40px;
1319    }
1320
1321    
1322    .homepage-section-4 {
1323        padding: 40px 0 40px;
1324    }
1325
1326    
1327    .homepage-section-5 {
1328        padding: 40px 0 40px;
1329    }
1330
1331    
1332    .homepage-section-6 {
1333        padding: 40px 0 40px;
1334    }
1335
1336    
1337    .homepage-section-7 {
1338        padding: 40px 0 40px;
1339    }
1340
1341    
1342    .homepage-section-8 {
1343        padding: 40px 0 40px;
1344    }
1345
1346    
1347    .homepage-section-9 {
1348        padding: 40px 0 40px;
1349    }
1350
1351    
1352    .homepage-section-10 {
1353        padding: 40px 0 40px;
1354    }
1355
1356    
1357    .homepage-section-11 {
1358        padding: 40px 0 40px;
1359    }
1360
1361    
1362    .homepage-section-12 {
1363        padding: 40px 0 40px;
1364    }
1365
1366    
1367    .homepage-section-13 {
1368        padding: 40px 0 40px;
1369    }
1370
1371    
1372    .homepage-section-14 {
1373        padding: 40px 0 40px;
1374    }
1375
1376    
1377    .homepage-section-15 {
1378        padding: 40px 0 40px;
1379    }
1380
1381    
1382    /* Additional Settings */
1383
1384    
1385    /* Streaming Widgets Title Settings */
1386
1387    .streaming-title {
1388        text-align: left;
1389        font-size: 48px;
1390		line-height:1.5em;
1391            font-weight: normal;
1392                font-family: 'Roboto';
1393            padding-bottom: 60px;
1394    }
1395	
1396	@media only screen and (max-width: 990px) {
1397		.streaming-title {
1398			line-height:1.1em;
1399		}
1400	}
1401
1402            .streaming-title + hr {
1403        display: none;
1404    }
1405    
1406    .homepage-join-module .module h2:first-of-type {
1407        color: rgb(62, 62, 62);
1408    }
1409
1410    .homepage-join-module .module{
1411        background: rgb(238, 238, 238);
1412        border-color: rgb(75, 183, 179);
1413    }
1414
1415    .homepage-about-module .module h2:first-of-type {
1416        color: rgb(62, 62, 62);
1417    }
1418
1419    .homepage-about-module .module{
1420        background: rgb(238, 238, 238);
1421        border-color: rgb(75, 183, 179);
1422
1423	}
1424
1425	.the-post-description > :is(h2, h3, h4, h5):not(:first-child) {
1426		font-weight: 600;
1427		margin-top: 20px;
1428	}
1429	
1430	/* Keep: Ensure ul/ol respect padding and margins */
1431	.the-post-description > :is(ul, ol) {
1432		display: flow-root;
1433	}
1434	.the-post-description li {
1435		margin-bottom: 8px;
1436	}
1437
1438        .btn:not(#refcode_submit):not(.input-group-btn .btn):not(.logo-preview-input):not(.cover-preview-input):not(.member_login):not(.img-circle):not(.submit_reply):not(.submit_comment):not(.view-more):not(.image-preview-input):not(.no-radius-bottom):not(.no-radius-top):not(.btn-facebook), .btn-sm:not(.img-circle):not(.view-more):not(.image-preview-input):not(.no-radius-bottom):not(.no-radius-top), .btn-xs:not(.img-circle):not(.view-more):not(.image-preview-input):not(.no-radius-bottom):not(.no-radius-top), button:not(.social_share_buttons button):not(.social_share_buttons a):not(#refcode_submit):not(.input-group-btn button), .btn-group-lg > .btn, .btn-lg, .btn-lg, .btn-xl, .input-group-sm > .input-group-btn > .btn, .favorite, .tags a, select#sid.input-lg, select#tid.input-lg, select#ttid.input-lg, select.combobox.input-lg, select#bd-chained.input-lg, select#category-chained.input-lg, select.infinite-chained.input-lg, select.subcategory-chained.input-lg, select.search-chained.input-lg, select#country-chained.input-lg, select#state-chained.input-lg, select#country-chained-2.input-lg, select#state-chained-2.input-lg, select#profession_id.input-lg, [name^="bd_phone_country_code"].input-lg, select.input-lg, select#sid, select#tid, select#ttid, select.combobox, select#bd-chained, select#category-chained, select.infinite-chained, select.subcategory-chained, select.search-chained, select#country-chained, select#state-chained, select#country-chained-2, select#state-chained-2, select#profession_id, [name^="bd_phone_country_code"] {
1439            border-radius: 0px!important;
1440        }
1441    
1442        .write_comment_container, .tab-content, .well:not(.well .well):not(.module .well):not(.tab-content .well):not(.well.make-connection):not(.slick-slide .well), .module:not(.module .module):not(.well .module):not(.tab-content .module):not(.search_box .module):not(.posted-by-snippet), .panel, .pic:not(.slick-slide .pic), .member_accounts > .account-form-box {
1443        box-shadow: 0 8px 8px -4px #0000001a,0 4px 4px -4px #0000001a;
1444    }
1445    
1446    .img-circle, .img-rounded.img-circle, .img-circle img, .img-rounded.img-circle img, img.fr-dib.img-circle, img.fr-dib.img-rounded.img-circle {
1447        border-radius:1000px!important;
1448    }
1449
1450    .img-rounded img, img.fr-dib.img-rounded{
1451        border-radius: 10px!important;
1452    }
1453    
1454    /* Google Translate Module */
1455        .skiptranslate{font-size:0}
1456    .goog-te-gadget-simple{border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.075) inset;color:#555}
1457    .skiptranslate.goog-te-gadget span,img.goog-te-gadget-icon{display:none!important}
1458    .goog-te-gadget .goog-te-combo{margin-bottom:-4px}
1459    .skiptranslate.goog-te-gadget select{border:1px solid #ddd;border-radius:3px;font-size:12px;padding:2px 4px;width:100%;background:#fff;margin:0;height:30px;line-height:30px;display:block;color:#555;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}
1460    @media only screen and (max-width: 1100px) {
1461        .skiptranslate:not(.skiptranslate[style="display: none;"]){height:39px}
1462        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header{margin-top:10px!important}
1463        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar{margin-top:10px}
1464        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar ~ .header{margin-top:0!important}
1465        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .mobile-main-menu{top:89px!important;height:calc(100% - 90px)!important}
1466        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .navbar{top:39px}
1467        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ #first_container .member_sidebar.open{top: 89px;}
1468    }
1469    @media only screen and (max-width: 767px) {
1470        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar.hidden-xs ~ .header{margin-top:10px!important}
1471    }
1472
1473    
1474    
1475</style>
1476
1477    <!-- ON-PAGE CSS FUNCTIONS -->
1478    <style type="text/css">
1479        .search-con {
1480  font-size: 18px;
1481  font-weight: 600px;
1482  color: rgb(255, 255, 255);
1483  
1484}
1485.TopSection {
1486   padding-top: 10px;
1487    border: 3px outset Silver;
1488    background-color: LightSlateGray;
1489    text-align: center;
1490    margin: auto;
1491    display: block !important;
1492    font-size: 20px;
1493}
1494.con-us {
1495  font-size: 18px;
1496  font-weight: 600px;
1497  color: rgb(255, 255, 255);
1498  
1499}
1500.m-t-li {
1501  margin-bottom: 5px;
1502}
1503.footer-mg{
1504    margin-top: 2rem;
1505}
1506
1507
1508/*
1509#hero-divider .btn{
1510    background: transparent;
1511    border-color: #fff;
1512}
1513body, .modal-header, .modal-content, .modal-body, .modal-footer{
1514	line-height: 1.6em;
1515    letter-spacing: 0.5px;
1516}  
1517p{
1518    margin-bottom: 20px !important;
1519}
1520.spacialimg{
1521	border: 3px solid rgb(116, 121, 125);
1522    padding: 7px;
1523    border-radius: 10px;
1524    box-shadow: 0px 1px 8px 2px #707070;
1525    margin-bottom: 10px;
1526}
1527.feature-search .img_section .alert-secondary.btn-block, .search_result .img_section .alert-secondary {
1528    border: 3px solid rgb(116, 121, 125);
1529    padding: 7px;
1530    border-radius: 10px;
1531    box-shadow: 0px 0px 5px 0px #707070;
1532    margin-bottom: 10px;
1533}
1534.search_result.member-level-4 .mid_section a.h3{
1535  border-bottom: 1px solid #ddd;
1536  display: block;
1537  padding-bottom: 10px;
1538  margin-top: 5%;
1539}
1540.search_result.member-level-4 .mid_section{
1541  padding-left:4%;
1542}
1543.footer{
1544  padding:0px;
1545}
1546.footer_menu li{
1547  display:none;
1548}
1549.footer_menu li.col-md-12:last-child,.footer_menu li.col-md-12:last-child li{
1550  display:inline-block;
1551}
1552.footer_menu ul{
1553  margin-bottom: 0px;
1554}
1555.homepage_steps .fa {
1556    font-size: 35px;
1557}
1558.homepage_steps {
1559    font-size: 15px;
1560  padding: 60px 0;
1561}
1562.clearfix-lg {
1563  display:none;
1564}
1565.homepage-section-2, .homepage-section-3, .homepage-section-4{
1566  padding: 60px 0;
1567}
1568.recent-member img.img-rounded{
1569  border-radius:0!important;
1570}
1571.visit-westminster-quote{
1572    padding: 50px 0;
1573    font-size: 34px;
1574    line-height: normal;
1575}
1576.visit-westminster-section2 {
1577    background: #FCF8ED;
1578    display: inline-block;
1579    width: 100%;
1580}
1581.visit-westminster-section2 h2 {
1582    text-align: center;
1583    margin-top: 50px;
1584    color: #bc9b5d;
1585    font-size: 60px;
1586}
1587.visit-westminster-section2 h5 {
1588    text-align: center;
1589    font-size: 16px;
1590    color: #3983BD;
1591    margin-bottom: 20px;
1592}
1593.recent-member .well a.h4{
1594  color:rgb(41,41,41);
1595}
1596.shopping-section-common img{
1597  width:100%;
1598}
1599.shopping-section-common h2{
1600    margin-top: 50px;
1601    text-align: center;
1602}
1603.shopping-section-common h4 {
1604    text-align: center;
1605    font-size: 15px;
1606    text-transform: uppercase;
1607    margin-bottom: 20px;
1608}
1609.shopping-section-common {
1610    display: inline-block;
1611    width: 100%;
1612}
1613.tourist-info-section2 .col-md-4.text-right img{
1614  height:571px;
1615}
1616.stay-carousel {
1617    height: 400px;
1618    margin: 0 auto;
1619    overflow: hidden;
1620  	max-width: 700px;
1621  width:100%;
1622  margin-bottom:20px;
1623}
1624.stay-carousel .item img{
1625  width:100%;
1626}
1627.about-section-common {
1628    display: inline-block;
1629    width: 100%;
1630}
1631.about-section1, .about-section3 {
1632    background: #EAF4F6;
1633}
1634
1635
1636
1637
1638about-section1 img{
1639  width:100%;
1640}
1641.about-section3-bck {
1642    background: url(/images/about2.webp);
1643    background-repeat: repeat;
1644    background-size: auto;
1645    background-position: center center;
1646    height:900px;
1647  	margin-bottom: 50px;
1648}
1649.board-directors-section-common {
1650    display: inline-block;
1651    width: 100%;
1652    margin-top: 20px;
1653}
1654.board-directors-section-common p span {
1655    display: inline-block;
1656    width: 100%;
1657}
1658.board-directors-section-common .col-md-12 {
1659    max-width: 768px;
1660    margin: 10px auto;
1661    position: relative;
1662    float: none;
1663  width:100%;
1664}
1665.city-council-section-common {
1666    display: inline-block;
1667    width: 100%;
1668    padding: 40px 0;
1669}
1670.city-directory-section-common{
1671   display: inline-block;
1672    width: 100%;
1673    padding: 40px 0;
1674}
1675.city-directory-bottom-section{
1676  margin-top: 40px;
1677}
1678.city-directory-section-common span{
1679   display: inline-block;
1680    width: 100%;
1681}
1682.city-directory-section-common h3 {
1683    margin-top: 25px;
1684  display: inline-block;
1685width: 100%;
1686}
1687.city-council-section-common span{
1688  display: inline-block;
1689width: 100%;
1690}
1691.member-directory .col-md-3{
1692  margin-bottom: 10px;
1693}
1694
1695
1696.fr-view .fr-img-caption .fr-img-wrap .custom-img{
1697  
1698  width: 60%;
1699}
1700
1701
1702@media only screen and (max-width: 767px) {
1703  #website_logo{
1704  	margin-top:20px;
1705	}
1706
1707  .fr-view table{
1708    text-align: center;
1709  }
1710  
1711  .fr-view .froala-table .second-row{
1712    display: flex;
1713    flex-direction: column-reverse;
1714	
1715    
1716  }
1717  
1718  .header .navbar-default{
1719	
1720	background-color: #F2F2F2;
1721}
1722
1723  .footer{
1724    background-color: #3A3A3A;
1725
1726  }
1727 
1728}
1729*/
1730.container.d-flex.main-class {
1731    margin-top: -20px;
1732    margin-left: -20px;
1733}
1734/*@media only screen and (max-width: 705px) {
1735 .card {
1736    width: 30px;
1737}
1738}*/
1739/*@media only screen and (max-width: 470px) {
1740 .card {
1741   padding-top: 3px;
1742}
1743}*/
1744@media only screen and (min-width: 650px) {
1745img.card-icons {
1746    min-width: 50px;
1747}
1748}
1749@media only screen and (max-width: 649px) {
1750img.card-icons {
1751    min-width: 30px;
1752}
1753}
1754.col-md-6.col-sm-6.col-xs-6.d-flex.justify-content-end {
1755    display: flex;
1756}
1757@media only screen and (max-width: 370px) {
1758.card {
1759    margin-left: -30px;
1760}
1761}    </style>
1762    <!-- Best of Westminster 2026 voting banner - added 2026-07-15 -->
1763<style>
1764@keyframes bow2026-nudge { 0%,100% { transform: translateX(0); } 50% { transform: translateX(7px); } }
1765#bow2026-banner .bow2026-finger { display:inline-block; animation: bow2026-nudge 1s ease-in-out infinite; vertical-align:middle; font-size:20px; margin:0 4px 0 10px; }
1766@media (prefers-reduced-motion: reduce) { #bow2026-banner .bow2026-finger { animation: none; } }
1767#bow2026-banner { position: -webkit-sticky; position: sticky; top: 0; }
1768.bow2026-menu-close { display: none !important; }
1769@media only screen and (max-width: 1100px) {
1770  html { background: #ffffff; }
1771  #bow2026-banner { position: fixed; top: 0; left: 0; right: 0; z-index: 3001; }
1772  .header nav.navbar-default { top: var(--bow2026-h, 42px); background: transparent; border: none; box-shadow: none; }
1773  .header nav.navbar-default .navbar-header { position: relative; z-index: 99999; }
1774  .header nav.navbar-default .navbar-toggle { background-color: #1e5c63; border-color: rgba(255,255,255,0.55); margin-right: 10px; position: relative; z-index: 99999; }
1775  .header nav.navbar-default .navbar-toggle .icon-bar { background-color: #ffffff; }
1776  .header nav.navbar-default .navbar-collapse { background-color: #1e5c63; border: none; }
1777  .header { margin-top: calc(50px + var(--bow2026-h, 42px)); }
1778  .mobile-main-menu { top: calc(var(--bow2026-h, 42px) + 50px) !important; height: calc(100vh - var(--bow2026-h, 42px) - 50px) !important; }
1779  .bow2026-menu-close { display: block !important; background: rgba(0,0,0,0.28) !important; border-bottom: 1px solid rgba(255,255,255,0.35); position: relative; min-height: 44px; }
1780  .bow2026-menu-close::before { content: "✕  Close Menu"; color: #ffffff; font-weight: bold; display: inline-block; padding: 12px 0 12px 10px; }
1781  .bow2026-menu-close a { position: absolute !important; top: 0; left: 0; width: 100% !important; height: 100%; padding: 0 !important; float: none !important; margin: 0 !important; }
1782}
1783</style>
1784<div id="bow2026-banner" style="background:#1e5c63;color:#ffffff;text-align:center;padding:10px 14px;font-size:15px;line-height:1.6;z-index:9999;">
1785  <span style="vertical-align:middle;">🏆 <strong>Best of Westminster 2026</strong> — Help your favorite local businesses win!</span><span class="bow2026-finger">👉</span><a href="https://www.surveymonkey.com/r/BestofWestminster2026" target="_blank" rel="noopener" style="display:inline-block;background:#e8262c;color:#ffffff;font-weight:bold;text-decoration:none;padding:4px 18px;border-radius:4px;vertical-align:middle;white-space:nowrap;">Vote Now</a>
1786</div>
1787<script>
1788(function(){
1789  function bowSize(){ var b=document.getElementById("bow2026-banner"); if(!b) return;
1790    document.documentElement.style.setProperty("--bow2026-h", b.offsetHeight+"px"); }
1791  function bowClose(){
1792    var lists=document.querySelectorAll(".header .mobile-main-menu ul.sidebar-nav, .header nav.navbar-default .navbar-collapse ul.navbar-nav");
1793    for(var i=0;i<lists.length;i++){
1794      var ul=lists[i];
1795      var li=ul.querySelector(".bow2026-menu-close");
1796      if(!li){
1797        li=document.createElement("li");
1798        li.className="bow2026-menu-close";
1799        var a=document.createElement("a");
1800        a.href="#"; a.setAttribute("aria-label","Close Menu");
1801        li.appendChild(a);
1802        var cf=document.createElement("div"); cf.className="clearfix"; li.appendChild(cf);
1803      }
1804      if(ul.firstElementChild!==li){ ul.insertBefore(li, ul.firstChild); }
1805      li.style.setProperty("display","block","important");
1806      var la=li.querySelector("a");
1807      if(la){ if(la.firstChild){ la.textContent=""; } la.style.setProperty("display","block","important"); }
1808      var homeA=ul.querySelector('a[href="/home"]');
1809      if(homeA){
1810        homeA.style.setProperty("display","inline-block","important");
1811        if(homeA.parentElement && homeA.parentElement.tagName==="LI"){ homeA.parentElement.style.setProperty("display","block","important"); }
1812      }
1813      var kids=ul.children;
1814      for(var k=0;k<kids.length;k++){
1815        if(kids[k]!==li && kids[k].style && kids[k].style.display==="none"){ kids[k].style.setProperty("display","block","important"); }
1816      }
1817    }
1818  }
1819  function bowInit(){ bowSize(); bowClose(); }
1820  window.addEventListener("resize", bowSize);
1821  window.addEventListener("load", bowInit);
1822  setTimeout(bowInit, 2000);
1823  document.addEventListener("click", function(e){ if(e.target && e.target.closest && e.target.closest(".navbar-toggle")){ setTimeout(bowClose, 400); } });
1824  /* bow2026-delegated */
1825  document.addEventListener("click", function(e){ var c=(e.target && e.target.closest) ? e.target.closest(".bow2026-menu-close") : null; if(c){ e.preventDefault(); var t=document.querySelector(".header nav.navbar-default .navbar-toggle"); if(t){ t.click(); } } }, true);
1826  document.addEventListener("DOMContentLoaded", bowInit);
1827  bowInit();
1828})();
1829</script>
1829
1830<!-- End Best of Westminster 2026 banner -->
1831<div class="header">
1832            <div class="container">
1833			<div class="row header-main-row">
1834				<style type='text/css'> .logo-text:has(.logo_title:empty) {
1835	display:none
1836} </style><div id="website_logo" class="col-md-5 xs-nopad xs-hpad sm-text-center xs-bmargin header-left-container">
1837			<a class="logo logo-image inline-block vpad sm-nopad sm-tmargin" href="https://www.westminsterchamber.org" title="Westminster Chamber of Commerce">
1838			<img width="450" height="65" src="/images/Logo/change-logo.png" alt="Westminster Chamber of Commerce">
1839		</a>
1840		<div class="clearfix"></div>
1841</div>
1842									<style type='text/css'> body input.tt-hint,body input.form-control.normal-autosuggest-input.tt-query {
1843	background-color: white !important;
1844}
1845.mini-nav:not(:has(li)) {
1846	display: none!important;
1847}
1848/* Parent Container - Main List */
1849.mini-nav li:has(ul) {
1850	position: relative;
1851	border-radius: 8px 8px 0 0;
1852}
1853.mini-nav > li:has(ul) {
1854	padding-left: 0;
1855	padding-right: 0;
1856	background: rgb(255, 255, 255);
1857}
1858.mini-nav > li:has(ul) > a:not(.btn), .mini-nav > li:has(ul) > span {
1859	padding: 10px 15px;
1860	margin: 0!important;
1861}
1862.mini-nav > li:hover:has(ul), .mini-nav > li:hover:has(ul) {
1863	box-shadow: 0 -1px 3px rgba(118, 118, 118,0.25);
1864}
1865/* Parent Links */
1866.mini-nav > li > a:not(.btn), .mini-nav > li > span:not(.btn) {
1867	display:inline-block;
1868	border-radius: 8px 8px 0 0;
1869}
1870.mini-nav > li:hover > a:not(.btn), .mini-nav > li:hover > span {
1871	background: rgb(255, 255, 255);
1872	display: inline-block;
1873	position: relative;
1874	z-index: 1000;
1875}
1876/* First Level Dropdowns */
1877.mini-nav li ul {
1878	background: rgb(255, 255, 255);
1879	box-shadow: 0 0px 3px rgba(118, 118, 118,0.25), 0 5px 5px 5px rgba(118, 118, 118,0.05);
1880	text-align: left;
1881	display: none;
1882	border-radius: 0 8px 8px 8px;
1883	list-style: none;
1884	padding: 10px;
1885	position: absolute;
1886	white-space: nowrap;
1887	min-width: 130%;
1888	width: auto;
1889	top: 100%;
1890	left: 0;
1891	z-index: 999;
1892	margin-top: -1px;
1893}
1894.mini-nav li:hover > ul {
1895	display: block;
1896}
1897/* First Level Dropdown Items */
1898.mini-nav li ul li {
1899	position: relative;
1900	display: block;
1901	width: 100%;
1902}
1903.mini-nav li ul li a, .mini-nav li ul li span {
1904	font-size: 12.95px !important;
1905	display: block;
1906	font-weight: 400;
1907	padding: 8px 12px;
1908	border-radius: 8px;
1909	text-decoration: none;
1910	width: 100%;
1911}
1912.mini-nav li ul li a:hover, .mini-nav li ul li span:hover {
1913	box-shadow: 0 0 0 25px rgba(118, 118, 118,0.05) inset;
1914}
1915/* Second Level Dropdowns */
1916.mini-nav li ul li ul {
1917	display: none;
1918	position: absolute;
1919	top: 0;
1920	left: 100%;
1921	margin: 0;
1922	border-radius: 8px;
1923}
1924.mini-nav li ul li:hover > ul {
1925	display: block;
1926}
1927/* Edge Positioning - Last Child Dropdowns */
1928.mini-nav > li:last-child ul {
1929	right: 0;
1930	left: auto;
1931	border-radius: 8px 0 8px 8px;
1932}
1933.mini-nav > li:last-child ul li ul {
1934	right: 100%;
1935	left: auto;
1936}
1937/* Flex Spacing Utility */
1938.mini-nav.mini-nav-flex-spaced {
1939	display: flex;
1940	justify-content: space-between;
1941	align-items: center;
1942	flex-wrap: wrap;
1943	row-gap: 0;
1944}
1945.mini-nav.mini-nav-flex-spaced > li {
1946	flex: none;
1947	padding: 0;
1948	margin: 2px 0;
1949	order: 2;
1950}
1951.mini-nav.mini-nav-flex-spaced > li.header-member-account-links,
1952.mini-nav:has(li ul) > li.header-member-account-links {
1953	order: 1;
1954	margin-left: auto;
1955	width: 100%;
1956	margin-bottom: 10px;
1957}
1958.logged-in-member-header .mini-nav.mini-nav-flex-spaced.list-inline > li {
1959	line-height: 1em;
1960	min-height: 0;
1961}
1962@media (min-width: 992px) {
1963	.header-main-row {
1964		display: flex;
1965		align-items: center;
1966		flex-wrap: wrap;
1967	}
1968}
1969@media (max-width: 991px) {
1970	.mini-nav.mini-nav-flex-spaced {
1971		justify-content: center;
1972	}
1973	.mini-nav.mini-nav-flex-spaced > li {
1974		margin-left: 5px !important;
1975		margin-right: 5px !important;
1976	}
1977} </style><div class="col-md-7 text-right sm-text-center header-right-container nolpad xs-hpad">
1978            <ul class="mini-nav  nobmargin list-inline xs-nopad xs-tmargin tpad">
1979            <li class='bmargin xs-nomargin'><span id='link340'  class='bmargin'> 714-898-9648</span></li><li class='bmargin xs-nomargin'><a href='/about/contact' id='link341'  class='hpad bmargin'>Contact Us</a></li><li class='bmargin xs-nomargin'><a href='/login' id='link342'  class='rpad bmargin'>Member Login</a></li><li class='bmargin norpad xs-nopad xs-vmargin'><a href='/join' id='link343'  class='btn btn_get_listed bold'>Get your business Listed Today</a></li>        </ul>
1980            <div class="clearfix"></div>
1981                <form action="/search_results" name="frm1" class="form-inline website-search">
1982                                    <div class="input-group input-group-sm bmargin sm-autosuggest">
1983                        <span class="input-group-addon"><i class="fa fa-search"></i></span>
1984                        <input type="text"
1985                               placeholder="Name or Keyword" value="" name="q"
1986                               class="member_search form-control input-sm" autocomplete="off">
1987                    </div>
1988                                    <input type="submit" value="Search" class="btn btn-sm btn_search bmargin xs-btn-block bold">
1989            </form>
1990            </div>
1991				            </div>
1992        </div>
1993        <style type='text/css'> .mobile-main-menu .hasChildren span a {
1994	padding: 0px;
1995}
1996
1997.user_sidebar > img {
1998	width: 32px;
1999	height: 32px;
2000	position: absolute;
2001	z-index: 10;
2002	border-radius: 100px;
2003	top: -1px;
2004	object-fit: cover;
2005	left: -10px;
2006	background: rgb(245, 245, 245);
2007}
2008#member_sidebar_toggle img+.fa {
2009	display: none;
2010}
2011.main_menu, .user_sidebar, .compact-mobile-search {
2012	padding: 5px 8px;
2013	margin-right:0;
2014	min-height: 33.0333px;
2015	min-width: 38.116px;	
2016}
2017.main_menu i, .user_sidebar i {
2018	font-size: 16px;
2019}
2020.navbar-nav li {
2021	float: none!Important;
2022}
2023.navbar-default{
2024	-webkit-transition: all .6s ease-in-out;
2025	-moz-transition: all .6s ease-in-out;
2026	-o-transition: all .6s ease-in-out;
2027	transition: all .6s ease-in-out;
2028}
2029.transparent_menu {
2030		background-color: rgba(71, 134, 141,0.95)!important;
2031}
2032@media only screen and (max-width: 991px) {
2033	#popover {display: none}
2034}
2035@media only screen and (max-width: 1100px){
2036	.mobile-main-menu{display:block!important}
2037	.navbar-toggle {display: block}
2038	#bs-main_menu .nav {display: none!important}
2039}
2040.mobile-main-menu {
2041	position: fixed;
2042	height: calc(100% - 50px)!important;
2043	width: 250px;
2044	background: rgb(71, 134, 141);
2045	z-index: 99999;
2046	right: -250px;
2047	top: 50px;
2048	display: none;
2049	-webkit-transition: all .6s ease-in-out;
2050	-moz-transition: all .6s ease-in-out;
2051	-o-transition: all .6s ease-in-out;
2052	transition: all .6s ease-in-out;
2053	overflow-y: auto!important;
2054	overflow-x: hidden!important;
2055}
2056.mobile-main-menu ul li i {
2057	color: rgb(255, 255, 255);
2058	cursor: pointer;
2059	float: right;
2060	padding: 13px;
2061}
2062.mobile-main-menu.opened{
2063	right: 0px!important;
2064}
2065.mobile-main-menu ul li a, .mobile-main-menu ul li span {
2066	display: inline-block;
2067	float: left;
2068	-webkit-touch-callout: none;
2069	-webkit-user-select: none;
2070	-khtml-user-select: none;
2071	-moz-user-select: none;
2072	-ms-user-select: none;
2073	user-select: none;
2074	padding: 10px 0px;
2075	width: 80%;
2076	width: calc(100% - 40px);
2077}
2078.mobile-main-menu .sidebar-nav li ul {
2079	height: 0px;
2080	overflow: hidden;
2081	list-style: none;
2082	color: rgb(255, 255, 255);
2083	padding-left: 10px;
2084}
2085.mobile-main-menu .sidebar-nav li.sub_open > ul{
2086	height: 100%;
2087}
2088.mobile-main-menu ul.sidebar-nav {
2089	position: absolute;
2090	width: 250px;
2091	margin: 0;
2092	padding: 0;
2093	list-style: none;
2094	font-size: 14px;
2095}
2096.mobile-main-menu .sidebar-nav > li {
2097	display: block;
2098	line-height: 20px;
2099	padding: 0 15px 0 20px;
2100}
2101.mobile-main-menu .sidebar-nav li a, .mobile-main-menu .sidebar-nav li span {
2102	text-decoration: none;
2103	color: rgb(255, 255, 255);
2104	padding-left:10px;
2105}
2106.mobile-main-menu .sidebar-nav li a i, .mobile-main-menu .sidebar-nav li span i {
2107	display: none;
2108}
2109
2110 </style><div class="mobile-main-menu">
2111	<ul class="sidebar-nav">
2112		<li class=''><a href='/home' id='link344'>
2112Home</a></li><li class=''><a href='/the-chamber' id='link320'>The Chamber</a><ul><li class=''><a href='/about' id='link356'>About the Chamber</a></li><li class=''><a href='/board-of-directors' id='link357'>Chamber Board Of Directors</a></li><li class=''><a href='/join' id='link358'>Join The Chamber</a></li></ul></li><li class=''><a href='/the-city' id='link345'>The City</a><ul><li class=''><a href='/visit-westminster' id='link346'>Visit Westminster</a><ul><li class=''><a href='/stay' id='link352'>Stay</a></li><li class=''><a href='/dine' id='link353'>Dine</a></li><li class=''><a href='/shopping' id='link354'>Shop</a></li><li class=''><a href='/search_results' id='link355'>Business Directory</a></li></ul></li><li class=''><a href='/' id='link347'>Live in Westminster</a></li><li class=''><a href='/jobs' id='link348'>Work in Westminster</a></li><li class=''><a href='https://www.westminster-ca.gov/business' id='link349'>Start a Business in Westminster</a></li><li class=''><a href='https://www.westminster-ca.gov/' id='link350'  target='_blank'>City Website</a></li><li class=''><a href='https://www.westminster-ca.gov/government/mayor-and-city-council-members' id='link351'>City Council</a></li></ul></li><li class=''><a href='/search_results' id='link339'>Business Directory</a></li><li class=''><a href='/events-news' id='link334'>Events & News</a><ul><li class=''><a href='/events' id='link335'>Chamber Events</a></li><li class=''><a href='/events-calendar' id='link336'>Calendar</a></li><li class=''><a href='/news' id='link337'>Member News</a></li></ul></li><li class=''><a href='/about/contact' id='link338'>Contact Us</a></li>	</ul>
2113</div>
2114<nav class="navbar navbar-default ">
2115	<div class="container container-fluid">
2116
2117		<div class="navbar-header">
2118						<button type="button" class="navbar-toggle collapsed main_menu" data-toggle="collapse" aria-label="main_menu">
2119								<i class="fa fa-bars fa-fw"></i>
2120							</button>
2121
2122			
2123			
2124		</div>
2125
2126
2127		<div class="tablet-menu collapse navbar-collapse nopad" id="bs-main_menu">
2128			<ul class="tablet-menu-ul nav navbar-nav nav-justified">
2129				<li class=''><a href='/home' id='link344'>Home</a></li><li class=''><a href='/the-chamber' id='link320'>The Chamber</a><ul><li class=''><a href='/about' id='link356'>About the Chamber</a></li><li class=''><a href='/board-of-directors' id='link357'>Chamber Board Of Directors</a></li><li class=''><a href='/join' id='link358'>Join The Chamber</a></li></ul></li><li class=''><a href='/the-city' id='link345'>The City</a><ul><li class=''><a href='/visit-westminster' id='link346'>Visit Westminster</a><ul><li class=''><a href='/stay' id='link352'>Stay</a></li><li class=''><a href='/dine' id='link353'>Dine</a></li><li class=''><a href='/shopping' id='link354'>Shop</a></li><li class=''><a href='/search_results' id='link355'>Business Directory</a></li></ul></li><li class=''><a href='/' id='link347'>Live in Westminster</a></li><li class=''><a href='/jobs' id='link348'>Work in Westminster</a></li><li class=''><a href='https://www.westminster-ca.gov/business' id='link349'>Start a Business in Westminster</a></li><li class=''><a href='https://www.westminster-ca.gov/' id='link350'  target='_blank'>City Website</a></li><li class=''><a href='https://www.westminster-ca.gov/government/mayor-and-city-council-members' id='link351'>City Council</a></li></ul></li><li class=''><a href='/search_results' id='link339'>Business Directory</a></li><li class=''><a href='/events-news' id='link334'>Events & News</a><ul><li class=''><a href='/events' id='link335'>Chamber Events</a></li><li class=''><a href='/events-calendar' id='link336'>Calendar</a></li><li class=''><a href='/news' id='link337'>Member News</a></li></ul></li><li class=''><a href='/about/contact' id='link338'>Contact Us</a></li>			</ul>
2130		</div>
2131	</div>
2132</nav>
2133<!--CSS IF MENU IS FIXED TOP-->
2134
2135</div>
2136<div class="clearfix"></div>
2137<!-- Begin  Content -->
2138<div id="first_container" class="content-container fr-view home-sec">
2139        <div class="container">
2140                        <div class="clearfix body-content"></div>
2141            </div>
2142<style>
2143    	#first_container > .container:first-child .clearfix.body-content {
2144		display: none !important;
2145	}
2146        .hero_section_container {
2147        background-image: url("/images/freshbg.jpg");
2148        background-position: center center;
2149        background-repeat: no-repeat;
2150                background-size: cover;
2151                position: relative;
2152    }
2153    .hero_section_container .container {
2154        padding-top: 70px;
2155        padding-bottom: 60px;
2156    }
2157    .hero_section_container .hero_h1 {
2158        color: rgb(255, 255, 255);
2159        font-size: 30px;
2160        font-weight: 400;
2161    }
2162    .hero_section_container .hero_h2 {
2163        color: rgb(255, 255, 255);
2164        font-size: 56px;
2165        font-weight: 600;
2166		line-height: 1.2em;
2167    }   
2168    .hero_section_container .hero_content {
2169        color: ;
2170        font-size: 10px;
2171    }   
2172    .hero_section_container > .container > div {
2173                float: none!important;
2174                text-align: center;
2175    }
2176        </style>
2177    <div class="hero_section_container">
2178        <div class="container">
2179            <div class="col-md-8 center-block">
2180                <h1 class='hero_h1'>Welcome Members</h1><h2 class='hero_h2'>Log Into Your Account</h2>                <div class="clearfix"></div>
2181            </div>
2182        </div>
2183        <div class="clearfix"></div>
2184    </div>
2185    <div class="clearfix clearfix-lg"></div>
2186        
2187    <div class="container">
2188    
2189        <div class="row">
2190
2191        <div class="col-md-12">
2192                <div>    <style>        .member-login-container:not(.modal .module) {            width: 555px;            max-width: 100%;            margin-left: auto;            margin-right: auto;            margin-bottom:0;            background-color: rgb(245, 245, 245)!important;            border-color: rgb(221, 221, 221)!important;            color: rgb(41, 41, 41)!important;        }        .login-register-tabs, .login-register-content {            width: 555px!important;            max-width: 100%;            margin-left: auto!important;            margin-right: auto!important;            background-color: rgb(221, 221, 221);        }        .login-register-content {            background: transparent;            padding: 0;            border: none;        }        .login-register-content h2, .login-register-content h2+hr, .login-register-content .account-menu-title {            display: none!important;        }        .express_login_create_account_prefix hr {            margin: 15px 0 10px;        }
2192        .modal-content #containerFBLogin, .modal-content #containerGoogleLogin {            margin:15px 0;        }        /* CSS When Login Form and Express Registration Rendered in Sidebar */        .col-md-3 .bd-chat-well-container,.col-md-4 .bd-chat-well-container {            padding: 15px 10px;        }        .col-md-3 .bd-chat-center-text,.col-md-4 .bd-chat-center-text {            margin: 0;            font-size: 20px;            padding: 0 15px;        }        .col-md-3 .member-login-page-container .login-register-tabs *, .col-md-4 .member-login-page-container .login-register-tabs * {            font-size: 12px;            line-height: 1.2em;            vertical-align: bottom;        }        .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {            padding: 5px !important;            height: 50px;            vertical-align: middle;            display: table-cell !important;            width: 1%;        }        .col-md-3 .member-login-page-container .login-register-content, .col-md-4  .member-login-page-container .login-register-content {            padding: 0;        }        .col-md-3 .member-login-container, .col-md-4 .member-login-container {            padding: 15px !important;            font-size: 13px;        }        .col-md-3 .member-login-page-container .input-lg, .col-md-4 .member-login-page-container .input-lg {            height: 34px;            padding: 6px 12px;            font-size: 14px;        }        .col-md-3 .member-login-page-container .security_question_label, .col-md-4 .member-login-page-container .security_question_label {            transform: scale(.85);            margin: -1.15em -1.15em 0;        }        .col-md-3 #containerFBLogin, .col-md-4 #containerFBLogin, .col-md-3 #containerGoogleLogin, .col-md-4 #containerGoogleLogin, .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {            width: 100%;            display: block;            margin-top:5px;        }        .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {            padding:0        }        .col-md-3 .login-cta-buttons ul.nav, .col-md-4 .login-cta-buttons ul.nav {            margin-top: -10px;        }        .col-md-3 #googleAction, .col-md-3 #facebookAction, .col-md-4 #googleAction, .col-md-4 #facebookAction {            padding: 0;            min-height: 0;            font-size: 14px;            margin: 0;        }        .col-md-3 #googleAction img, .col-md-3 #facebookAction img, .col-md-4 #googleAction img, .col-md-4 #facebookAction img {            height: 36px !important;            margin-right: 5px;            position: relative!important;            display: inline-block;        }        @media only screen and (max-width: 767px) {            .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {                display: block !important;                width: 100%;                line-height: 40px;            }            #containerGoogleLogin {                text-align: center;                margin-top: 10px;            }            #containerGoogleLogin #gBtn {                display: inline-block;            }        }    </style>    <div class="row member-login-page-container">        <div class="fpad-lg novpad">                                                <div class="module fpad-xl member-login-container">                         <style type="text/css">label span.required { color: #B94A48; }span.help-inline, span.help-block {font-size: .9em; }</style><form action="/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" id="member_login_190" method="post" labelwidth="100" labelpaddingtop="0.5em" enctype="multipart/form-data" form_action_type="redirect" form_action_div return_data_type="" name="member_login_190" class=" "><input type="hidden" name="sized" value="0" id="member_login_190-element-0"/><input type="hidden" name="form" value="myform" id="member_login_190-element-1"/><input type="hidden" name="formname" value="member_login" id="member_login_190-element-2"/><input type="hidden" name="dowiz" value="1" id="member_login_190-element-3"/><input type="hidden" name="save" value="1" id="member_login_190-element-4"/><input type="hidden" name="url_origin_pars" value="/login" id="member_login_190-element-5"/><input type="hidden" name="action" autocomplete="off" value="login" id="member_login_190-element-6"/><h2 class="nomargin member-login-h2-form-title">Member Login</h2><hr><style type='text/css'> #containerGoogleLogin #gBtn {    display: inline-block;    text-align: center;    width: 216px;}.module #containerFBLogin #facebookAction img, .module #containerFBLogin #facebookAction img {    position: absolute !important;}.module #containerFBLogin a#facebookAction {    max-width: 200px;    position: relative;    left: -8px;    } </style>    <!-- Required Font-Family for Social Buttons -->    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">    <noscript>        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">    </noscript>
2192    <div class="row social-login-row">    </div><div class="form-group"><label class="vertical-label bd-email" for="member_login_190-element-9"><span class="required">* </span>Email Address</label><input type="email" name="email" required placeholder="[email protected]" autocomplete="off" value class="form-control input-lg" id="member_login_190-element-9"/></div><div class="form-group"><label class="vertical-label bd-password" for="member_login_190-element-10"><span class="required">* </span>Password</label>                    <style>                        #togglePassword {                            background: none;                            border: none;                            cursor: pointer;                            font-weight: bold;                            font-size: .85em;                            position: absolute;                            right: 5px;                            top: 0;                        }                    </style><button type="button" tabindex="-1" id="togglePassword" onclick="showPassword(this);"> <i class="fa fa-lock" aria-hidden="true"></i></button>                
2192<script>                    function showPassword(node){                        const parent = node.closest('.form-group');                        const passwordField = parent.querySelector(`input[type='password'], input[type='text']`);                        const isPassword = passwordField.getAttribute('type') === 'password';                        passwordField.setAttribute('type', isPassword ? 'text' : 'password');                        const iconHTML = isPassword ? `<i class="fa fa-unlock" aria-hidden="true"></i>` : `<i class="fa fa-lock" aria-hidden="true"></i>`;                        node.innerHTML = iconHTML;                    }                      </script>
2192<input type="password" name="pass" required placeholder="Enter Password" autocomplete="off" value class="form-control input-lg" id="member_login_190-element-10"/></div><span class="help-block bpad bmargin notmargin"> <a href="/login/retrieval">Forgot Password? Click to Reset Password</a></span><div class="form-group"><div class="form-group security_question_label">            <div id="member_login_190-captchaContainer" class="control-group">        <div class="g-recaptcha"  id="member_login_190-google-recaptcha"></div>    </div>    <small class="help-block" id="recaptcha_error" style="display:none;" data-fv-validator="notEmpty" data-fv-for="recaptcha" data-fv-result="INVALID" />The security check was not completed successfully.</small>    <div class="clearfix bmargin"></div>    <input type="hidden" name="recaptcha" id="member_login_190-rcap"></div>    <style>        .modal .g-recaptcha-scale, .col-md-4 .g-recaptcha-scale, .col-md-3 .g-recaptcha-scale, .col-lg-3 .g-recaptcha-scale, .col-lg-4 .g-recaptcha-scale {            transform: scale(0.77);            -webkit-transform: scale(0.77);            transform-origin: 0 0;            -webkit-transform-origin: 0 0;            margin-bottom: -15px;        }        .modal #member_login_190-captchaContainer, .col-md-4 #member_login_190-captchaContainer, .col-md-3 #member_login_190-captchaContainer, .col-lg-3 #member_login_190-captchaContainer, .col-lg-4 #member_login_190-captchaContainer {            transform: scale(0.77);            -webkit-transform: scale(0.77);            transform-origin: 0 0;            -webkit-transform-origin: 0 0;            margin-bottom: -15px;        }    </style>    
2192<script type="text/javascript">        if(typeof formsFound == "undefined"){            var formID                  = '';            var currentCaptcha          = {};            var captchaHolders          = {};            var formsFound              = {};            var captchaApiRequested     = false;            /* The forms the visitor has actually interacted with - only these get a widget. */            var captchaArmedForms       = [];            /* api.js stays lazy - nothing is fetched from Google until the visitor actually               touches the form. 'click' alone was too narrow: a keyboard-only visitor tabs in               and presses Enter without ever clicking, so api.js never loaded, the captcha               never rendered, and the form POSTed an empty token. */            var captchaTriggerEvents    = ['click', 'keydown', 'focusin', 'touchstart'];            window.addEventListener('load', () => {                formID = document.querySelectorAll('[name="recaptcha"]');                if (typeof formID != "undefined" && formID !== null) {                    for (let i = 0; i < formID.length; i++) {                        let formIDForm      = formID[i].closest('form');                        let captchaHolder   = formIDForm.querySelector(".g-recaptcha");                        if (typeof formsFound[formIDForm.id] != "undefined") {                            formsFound[formIDForm.id]['counter']++;                        }else{                            formsFound[formIDForm.id] = {'counter' : 1};                        }                        formIDForm.setAttribute('data-counter', formsFound[formIDForm.id]['counter']);                        captchaHolder.setAttribute('id',captchaHolder.id+'-'+formsFound[formIDForm.id]['counter']);                        if (typeof formIDForm != "undefined" && formIDForm !== null) {                            captchaTriggerEvents.forEach( evt =>                                formIDForm.addEventListener(evt, reCaptchaOnFormInteraction, false)                            );                        }                    }                }            });        }        function reCaptchaOnFormInteraction(event) {            if (event && event.currentTarget) {                captchaArmForm(event.currentTarget);            }            if (captchaApiRequested) {                renderArmedCaptchas();                return;            }            captchaApiRequested = true;            var head    = document.getElementsByTagName('head')[0];            var script  = document.createElement('script');            script.type = 'text/javascript';            script.src  = 'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=en';            head.appendChild(script);        }        var captchaArmForm = function (formEl) {            if (!formEl) {                return;            }            for (var a = 0; a < captchaArmedForms.length; a++) {                if (captchaArmedForms[a] === formEl) {                    return;                }            }            captchaArmedForms.push(formEl);        };        var captchaSolvedCallback = function (holder) {            return function () {                var formEl = holder.closest('form');                if (!formEl) {                    return;                }                $(formEl).find('.security_question_label').removeClass('has-error');                $(formEl).find('#recaptcha_error').css('display', 'none');                var notification = document.getElementById(formEl.id + '-notification');                if (notification && notification.classList.contains('alert-danger-subtle')) {                    $(notification).slideUp();                }            };        };        var renderArmedCaptchas = function () {            if (typeof grecaptcha === "undefined" || typeof grecaptcha.render !== "function") {                return;            }            for (var f = 0; f < captchaArmedForms.length; f++) {                var holder = captchaArmedForms[f].querySelector('div[class=g-recaptcha]');                if (!holder || !holder.id || holder.getClientRects().length === 0) {                    continue;                }                /* Guard a second render: grecaptcha throws on an element it already claimed. */                if (typeof captchaHolders[holder.id] === "undefined") {                    captchaHolders[holder.id] = grecaptcha.render(holder.id, {                        'sitekey': '6LfhXt8sAAAAAJL4MkgqvsOdY53C6pIw3RIhlGMq',                        'callback': captchaSolvedCallback(holder)                    });                }            }        };        var onloadCallback = function (event) {            renderArmedCaptchas();        };    </script>
2192<script>    $(document).ready(function(){        /* Implicit submission (Enter inside a field) fires 'submit' without firing a click on           the submit button, so the click guard below never sees it and the form POSTed an           empty token. Bound on document/capture so it runs before FormValidation's own           handler on the form - at AT_TARGET the capture flag does not order listeners, so a           listener on the form itself would not reliably win. Native HTMLFormElement.submit()           does not dispatch 'submit', so the solved-captcha path below is unaffected. */        var captchaGuardedForm = document.getElementById('member_login_190');        if (captchaGuardedForm) {            document.addEventListener('submit', function (event) {                if (event.target !== captchaGuardedForm) {                    return;                }                var formId              = captchaGuardedForm.id;                var captchaHolderKey    = formId + "-google-recaptcha-" + $(captchaGuardedForm).data('counter');                var captchaRendered     = typeof captchaHolders[captchaHolderKey] != "undefined";                if (captchaRendered && grecaptcha.getResponse(captchaHolders[captchaHolderKey]) !== "") {                    $("#" + formId + " .security_question_label").removeClass("has-error");                    $("#" + formId + " #recaptcha_error").css("display", "none");                    return;                }                /* Unsolved, or api.js still in flight: either way there is no token to send. */                event.preventDefault();                event.stopImmediatePropagation();                $("#" + formId + " .security_question_label").addClass("has-error");                $("#" + formId + " #recaptcha_error").css("display", "block");                return false;            }, true);        }        $("#member_login_190 input[type=submit]").unbind('click');        $("#member_login_190 input[type=submit]").click(function (event) {            var formId = $(this.form).attr('id');            var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter');            if (typeof captchaHolders[captchaHolderKey] != "undefined") {                if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") {                    event.preventDefault();                    $("#" + formId).formValidation('validate');                    $("#" + formId + " .security_question_label").addClass("has-error");                    $("#" + formId + " #recaptcha_error").css("display", "block");                    return false;                }                /* Solved captcha: clear the error UI and let the click proceed untouched.                   The browser then fires a REAL, button-initiated submit event, so                   FormValidation runs its normal chain (success.form.fv -> AJAX modal on                   checkout / native POST on login). Re-submitting here artificially broke                   both ways: native form.submit() skips the FV chain (checkout rendered the                   raw JSON response), and jQuery .submit() fires a synthetic submit that FV                   refuses, leaving the form stuck after the first error (Bug 2). */                $("#" + formId + " .security_question_label").removeClass("has-error");                $("#" + formId + " #recaptcha_error").css("display", "none");            }        });    });</script>
2192</div><div class="form-actions"><input type="submit" value="Login Now" name class="btn btn-primary btn-lg btn-block " id="member_login_190-element-13"/></div><div class="login-cta-buttons"><hr class="cta-hr"><ul class="list-inline nomargin inline-block btn-block"><li class='col-md-12 norpad sm-nopad nav'><a href='/join' id='link418'  class='btn btn-success btn-block'>Are You a Local Business? <span class="inline-block">List Your Company Now</span></a></li></ul><div class="clearfix"></div></div></form>
2192<script type="text/javascript">jQuery(document).ready(function() {		jQuery("#member_login_190").bind("submit", function() { 		});}); </script>
2192                         <div class="clearfix"></div>                    </div>                                    </div>    </div></div><p><br></p><p><br></p>        </div>
2193
2194        
2195        </div>  <!-- Closes Row -->
2196
2197    
2198    
2198<script type="application/ld+json">
2199{
2200    "@context": "https://schema.org/",
2201    "@type": "WebPage",
2202    "@id": "https://www.westminsterchamber.org/login",
2203    "url": "https://www.westminsterchamber.org/login",
2204    "name": "Login Now - Westminster Chamber of Commerce",
2205    "headline": "Login to your account on Westminster Chamber of Commerce",
2206    "about": "Log Into Your Account",
2207    "inLanguage": "en-US",
2208    "dateModified": "2026-09-01T00:00:00-07:00",
2209    "mainEntityOfPage": "https://www.westminsterchamber.org/login",
2210    "author": {
2211        "@id": "https://www.westminsterchamber.org/#organization"
2212    },
2213    "publisher": {
2214        "@id": "https://www.westminsterchamber.org/#organization"
2215    },
2216    "isPartOf": {
2217        "@id": "https://www.westminsterchamber.org/#website"
2218    },
2219    "primaryImageOfPage": {
2220        "@type": "ImageObject",
2221        "url": "/images/Logo/change-logo.png"
2222    },
2223    "keywords": [
2224        "westminster california business",
2225        "westminster california businesses"
2226    ]
2227}</script>
2227
2228        <div class="clearfix"></div>
2229    </div>
2230</div>
2231<!-- End Content -->
2232<div class="clearfix footer-clear-element clearfix-lg"></div>
2233
2234<style type='text/css'> .newsletter_row input[type="email"] {
2235    float: none;
2236    margin-left: auto;
2237    margin-right: auto;    
2238    width: 62% !important;
2239} </style><div class="content-container newsletter_row">
2240	<div class="container text-center vpad">
2241		<div class="col-md-12 xs-nopad">
2242			<style type='text/css'> @media only screen and (min-width: 768px) {
2243	.newsletter_footer_button {
2244		display: flex;
2245		align-items: center;
2246		margin-left: auto;
2247		margin-right: auto;
2248	}
2249} </style><a href="#" data-toggle="modal" data-target="#newsletter_subscribe_modal" class="btn btn-lg newsletter_footer_button col-xs-12 col-md-6 nofloat fpad bold">
2250            <div class="col-sm-6 nopad newsletter_button_left">
2251            Join Our Newsletter
2252        </div> 
2253        <div class="col-sm-6 nopad newsletter_button_right">
2254            Click to Subscribe
2255            <i class='fa fa-chevron-circle-right fa-fw'></i>
2256        </div>
2257        
2258	<div class="clearfix"></div>
2259</a>
2260		</div>
2261	</div>
2262</div><div class="footer">
2263    <div class="container">
2264        <div class="row">
2265            <ul class="footer_menu sm-text-center">
2266                <li class='btn TopSection'><a href='/join' id='link399'>Westminster California Businesses - Get Listed Today</a></li><li class='col-md-3 col-md-offset-1  footer-mg'><span id='link359'  class='head'> About Us</span><ul><li class=''><a href='https://www.westminsterchamber.org/categories' id='link412'>Browse Categories</a></li><li class='m-t-li'><a href='https://www.westminsterchamber.org/locations' id='link413'>Browse Locations</a></li><li class=''><a href='https://www.westminsterchamber.org/about' id='link360'  class='content'>How It Works</a></li></ul></li><li class='col-md-3 col-md-offset-1  footer-mg'><span id='link367'  class='head'>  Connect with Us</span><ul><li class=''><span id='link368'> <style>.network-icon.twitter,.network-icon.tiktok{background:#000}</style>
2267<div class="list-social-links">
2268	<a class="network-icon contact" href="/about/contact" title="Contact Us Westminster Chamber of Commerce">
2269		<i class="bi bi-envelope"></i>
2270	</a> 
2271		<a class="network-icon facebook" href="https://www.facebook.com/WestminsterChamberOfCommerce/" target="_blank" title="Westminster Chamber of Commerce Facebook">
2272		<i class="bi bi-facebook"></i>
2273	</a>
2274			     
2275	      
2276		 
2277		<a class="network-icon instagram" href="https://www.instagram.com/wmchamber/" target="_blank" title="Westminster Chamber of Commerce Instagram">
2278		<i class="bi bi-instagram"></i>
2279	</a>
2280						<div class="clearfix"></div>
2281</div></span></li></ul></li><li class='col-md-3 col-md-offset-1  footer-mg'><span id='link407'  class='head'> Support</span><ul><li class=''><a href='/login' id='link408'>Member Login</a></li><li class=''><a href='/about/contact' id='link409'>Contact Us</a></li><li class=''><a href='https://www.westminsterchamber.org/join' id='link415'  target='_blank'>List Your Company</a></li></ul></li><li class='col-md-12 clearfix'><span id='link370'> </span></li><li class='col-md-12 clearfix vmargin text-center remove-mb'><span id='link373'> </span><ul><li class='btn-lg font-sm  novpad  norpad inline-block'><span id='link375'> © 2026</span></li><li class='font-sm inline-block hpad'><a href='/' id='link376'  title='Westminster Chamber of Commerce'>Westminster Chamber of Commerce</a></li><li class='font-sm inline-block'><span id='link377'> All Rights Reserved</span></li><li class='font-sm inline-block hpad'><a href='/about/terms' id='link378'  title='Terms of Use'>Terms of Use</a></li><li class='font-sm inline-block'><a href='/about/privacy' id='link379'  title='Privacy Policy'>Privacy Policy</a></li></ul></li><li class=''><span id='link406'> </span></li>            </ul>
2282        </div>
2283		    </div>
2284</div><style type='text/css'> .scrollup {
2285  border-radius: 3px;
2286  width: 40px;
2287  height: 40px;
2288  opacity: 0.4;
2289  position: fixed;
2290  bottom: 30px;
2291  right: 30px;
2292  display: none;
2293  background: rgba(119, 119, 119, 0.8);
2294  z-index: 1000000;
2295}
2296.scrollup i {
2297  font-size: 36px;
2298  color: white;
2299  position: relative;
2300  top: 0px;
2301  left: 10px;
2302} </style>            <div class="myModal modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="mySmallMod
2302alLabel"
2303                 data-backdrop="static" data-keyboard="false">
2304                <div class="modal-dialog" role="document">
2305                    <div class="modal-content">
2306                        <div class="modal-body nohpad nobpad">
2307                            <button type="button" style="z-index:10;position:absolute;right:15px;" class="close hmargin"
2308                                    data-dismiss="modal">&times;
2309                            </button>
2310                                <style>
2311        .member-login-container:not(.modal .module) {
2312            width: 555px;
2313            max-width: 100%;
2314            margin-left: auto;
2315            margin-right: auto;
2316            margin-bottom:0;
2317            background-color: rgb(245, 245, 245)!important;
2318            border-color: rgb(221, 221, 221)!important;
2319            color: rgb(41, 41, 41)!important;
2320        }
2321        .login-register-tabs, .login-register-content {
2322            width: 555px!important;
2323            max-width: 100%;
2324            margin-left: auto!important;
2325            margin-right: auto!important;
2326            background-color: rgb(221, 221, 221);
2327        }
2328        .login-register-content {
2329            background: transparent;
2330            padding: 0;
2331            border: none;
2332        }
2333        .login-register-content h2, .login-register-content h2+hr, .login-register-content .account-menu-title {
2334            display: none!important;
2335        }
2336        .express_login_create_account_prefix hr {
2337            margin: 15px 0 10px;
2338        }
2339        .modal-content #containerFBLogin, .modal-content #containerGoogleLogin {
2340            margin:15px 0;
2341        }
2342
2343        /* CSS When Login Form and Express Registration Rendered in Sidebar */
2344        .col-md-3 .bd-chat-well-container,.col-md-4 .bd-chat-well-container {
2345            padding: 15px 10px;
2346        }
2347        .col-md-3 .bd-chat-center-text,.col-md-4 .bd-chat-center-text {
2348            margin: 0;
2349            font-size: 20px;
2350            padding: 0 15px;
2351        }
2352        .col-md-3 .member-login-page-container .login-register-tabs *, .col-md-4 .member-login-page-container .login-register-tabs * {
2353            font-size: 12px;
2354            line-height: 1.2em;
2355            vertical-align: bottom;
2356        }
2357        .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {
2358            padding: 5px !important;
2359            height: 50px;
2360            vertical-align: middle;
2361            display: table-cell !important;
2362            width: 1%;
2363        }
2364        .col-md-3 .member-login-page-container .login-register-content, .col-md-4  .member-login-page-container .login-register-content {
2365            padding: 0;
2366        }
2367        .col-md-3 .member-login-container, .col-md-4 .member-login-container {
2368            padding: 15px !important;
2369            font-size: 13px;
2370        }
2371        .col-md-3 .member-login-page-container .input-lg, .col-md-4 .member-login-page-container .input-lg {
2372            height: 34px;
2373            padding: 6px 12px;
2374            font-size: 14px;
2375        }
2376        .col-md-3 .member-login-page-container .security_question_label, .col-md-4 .member-login-page-container .security_question_label {
2377            transform: scale(.85);
2378            margin: -1.15em -1.15em 0;
2379        }
2380        .col-md-3 #containerFBLogin, .col-md-4 #containerFBLogin, .col-md-3 #containerGoogleLogin, .col-md-4 #containerGoogleLogin, .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {
2381            width: 100%;
2382            display: block;
2383            margin-top:5px;
2384        }
2385        .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {
2386            padding:0
2387        }
2388        .col-md-3 .login-cta-buttons ul.nav, .col-md-4 .login-cta-buttons ul.nav {
2389            margin-top: -10px;
2390        }
2391        .col-md-3 #googleAction, .col-md-3 #facebookAction, .col-md-4 #googleAction, .col-md-4 #facebookAction {
2392            padding: 0;
2393            min-height: 0;
2394            font-size: 14px;
2395            margin: 0;
2396        }
2397        .col-md-3 #googleAction img, .col-md-3 #facebookAction img, .col-md-4 #googleAction img, .col-md-4 #facebookAction img {
2398            height: 36px !important;
2399            margin-right: 5px;
2400            position: relative!important;
2401            display: inline-block;
2402        }
2403        @media only screen and (max-width: 767px) {
2404            .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {
2405                display: block !important;
2406                width: 100%;
2407                line-height: 40px;
2408            }
2409
2410            #containerGoogleLogin {
2411                text-align: center;
2412                margin-top: 10px;
2413            }
2414            #containerGoogleLogin #gBtn {
2415                display: inline-block;
2416            }
2417        }
2418    </style>
2419    <div class="row member-login-page-container">
2420        <div class="fpad-lg novpad">
2421
2422            
2423                                    <div class="module fpad-xl member-login-container">
2424                         <style type="text/css">label span.required { color: #B94A48; }span.help-inline, span.help-block {font-size: .9em; }</style><form action="/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" id="member_login_190-1" method="post" labelwidth="100" labelpaddingtop="0.5em" enctype="multipart/form-data" form_action_type="redirect" form_action_div return_data_type="" name="member_login_190-1" class=" ">
2424<input type="hidden" name="sized" value="0" id="member_login_190-1-element-0"/><input type="hidden" name="form" value="myform" id="member_login_190-1-element-1"/><input type="hidden" name="formname" value="member_login" id="member_login_190-1-element-2"/><input type="hidden" name="dowiz" value="1" id="member_login_190-1-element-3"/><input type="hidden" name="save" value="1" id="member_login_190-1-element-4"/><input type="hidden" name="url_origin_pars" value="/login" id="member_login_190-1-element-5"/><input type="hidden" name="action" autocomplete="off" value="login" id="member_login_190-1-element-6"/><h2 class="nomargin member-login-h2-form-title">Member Login</h2><hr><style type='text/css'> #containerGoogleLogin #gBtn {
2425    display: inline-block;
2426    text-align: center;
2427    width: 216px;
2428}
2429
2430.module #containerFBLogin #facebookAction img, .module #containerFBLogin #facebookAction img {
2431    position: absolute !important;
2432}
2433.module #containerFBLogin a#facebookAction {
2434    max-width: 200px;
2435    position: relative;
2436    left: -8px;
2437    
2438} </style>    <!-- Required Font-Family for Social Buttons -->
2439    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">
2440    <noscript>
2441        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">
2442    </noscript>
2443
2444    <div class="row social-login-row">
2445    </div><div class="form-group"><label class="vertical-label bd-email" for="member_login_190-1-element-9"><span class="required">* </span>Email Address</label><input type="email" name="email" required placeholder="[email protected]" autocomplete="off" value class="form-control input-lg" id="member_login_190-1-element-9"/></div><div class="form-group"><label class="vertical-label bd-password" for="member_login_190-1-element-10"><span class="required">* </span>Password</label><button type="button" tabindex="-1" id="togglePassword" onclick="showPassword(this);"> <i class="fa fa-lock" aria-hidden="true"></i></button><input type="password" name="pass" required placeholder="Enter Password" autocomplete="off" value class="form-control input-lg" id="member_login_190-1-element-10"/></div><span class="help-block bpad bmargin notmargin"> <a href="/login/retrieval">Forgot Password? Click to Reset Password</a></span><div class="form-group"><div class="form-group security_question_label">
2446            <div id="member_login_190-1-captchaContainer" class="control-group">
2447        <div class="g-recaptcha"  id="member_login_190-1-google-recaptcha"></div>
2448    </div>
2449    <small class="help-block" id="recaptcha_error" style="display:none;" data-fv-validator="notEmpty" data-fv-for="recaptcha" data-fv-result="INVALID" />The security check was not completed successfully.</small>
2450    <div class="clearfix bmargin"></div>
2451    <input type="hidden" name="recaptcha" id="member_login_190-1-rcap">
2452</div>
2453    <style>
2454        .modal .g-recaptcha-scale, .col-md-4 .g-recaptcha-scale, .col-md-3 .g-recaptcha-scale, .col-lg-3 .g-recaptcha-scale, .col-lg-4 .g-recaptcha-scale {
2455            transform: scale(0.77);
2456            -webkit-transform: scale(0.77);
2457            transform-origin: 0 0;
2458            -webkit-transform-origin: 0 0;
2459            margin-bottom: -15px;
2460        }
2461
2462        .modal #member_login_190-1-captchaContainer, .col-md-4 #member_login_190-1-captchaContainer, .col-md-3 #member_login_190-1-captchaContainer, .col-lg-3 #member_login_190-1-captchaContainer, .col-lg-4 #member_login_190-1-captchaContainer {
2463            transform: scale(0.77);
2464            -webkit-transform: scale(0.77);
2465            transform-origin: 0 0;
2466            -webkit-transform-origin: 0 0;
2467            margin-bottom: -15px;
2468        }
2469    </style>
2470    
2470<script type="text/javascript">
2471        if(typeof formsFound == "undefined"){
2472            var formID                  = '';
2473            var currentCaptcha          = {};
2474            var captchaHolders          = {};
2475            var formsFound              = {};
2476            var captchaApiRequested     = false;
2477            /* The forms the visitor has actually interacted with - only these get a widget. */
2478            var captchaArmedForms       = [];
2479            /* api.js stays lazy - nothing is fetched from Google until the visitor actually
2480               touches the form. 'click' alone was too narrow: a keyboard-only visitor tabs in
2481               and presses Enter without ever clicking, so api.js never loaded, the captcha
2482               never rendered, and the form POSTed an empty token. */
2483            var captchaTriggerEvents    = ['click', 'keydown', 'focusin', 'touchstart'];
2484
2485            window.addEventListener('load', () => {
2486                formID = document.querySelectorAll('[name="recaptcha"]');
2487                if (typeof formID != "undefined" && formID !== null) {
2488                    for (let i = 0; i < formID.length; i++) {
2489                        let formIDForm      = formID[i].closest('form');
2490                        let captchaHolder   = formIDForm.querySelector(".g-recaptcha");
2491
2492                        if (typeof formsFound[formIDForm.id] != "undefined") {
2493                            formsFound[formIDForm.id]['counter']++;
2494                        }else{
2495                            formsFound[formIDForm.id] = {'counter' : 1};
2496                        }
2497
2498                        formIDForm.setAttribute('data-counter', formsFound[formIDForm.id]['counter']);
2499                        captchaHolder.setAttribute('id',captchaHolder.id+'-'+formsFound[formIDForm.id]['counter']);
2500
2501                        if (typeof formIDForm != "undefined" && formIDForm !== null) {
2502                            captchaTriggerEvents.forEach( evt =>
2503                                formIDForm.addEventListener(evt, reCaptchaOnFormInteraction, false)
2504                            );
2505                        }
2506                    }
2507                }
2508            });
2509        }
2510
2511        function reCaptchaOnFormInteraction(event) {
2512            if (event && event.currentTarget) {
2513                captchaArmForm(event.currentTarget);
2514            }
2515            if (captchaApiRequested) {
2516                renderArmedCaptchas();
2517                return;
2518            }
2519            captchaApiRequested = true;
2520
2521            var head    = document.getElementsByTagName('head')[0];
2522            var script  = document.createElement('script');
2523            script.type = 'text/javascript';
2524            script.src  = 'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=en';
2525            head.appendChild(script);
2526        }
2527
2528        var captchaArmForm = function (formEl) {
2529            if (!formEl) {
2530                return;
2531            }
2532            for (var a = 0; a < captchaArmedForms.length; a++) {
2533                if (captchaArmedForms[a] === formEl) {
2534                    return;
2535                }
2536            }
2537            captchaArmedForms.push(formEl);
2538        };
2539
2540        var captchaSolvedCallback = function (holder) {
2541            return function () {
2542                var formEl = holder.closest('form');
2543                if (!formEl) {
2544                    return;
2545                }
2546                $(formEl).find('.security_question_label').removeClass('has-error');
2547                $(formEl).find('#recaptcha_error').css('display', 'none');
2548                var notification = document.getElementById(formEl.id + '-notification');
2549                if (notification && notification.classList.contains('alert-danger-subtle')) {
2550                    $(notification).slideUp();
2551                }
2552            };
2553        };
2554
2555        var renderArmedCaptchas = function () {
2556            if (typeof grecaptcha === "undefined" || typeof grecaptcha.render !== "function") {
2557                return;
2558            }
2559            for (var f = 0; f < captchaArmedForms.length; f++) {
2560                var holder = captchaArmedForms[f].querySelector('div[class=g-rec
2560aptcha]');
2561
2562                if (!holder || !holder.id || holder.getClientRects().length === 0) {
2563                    continue;
2564                }
2565                /* Guard a second render: grecaptcha throws on an element it already claimed. */
2566                if (typeof captchaHolders[holder.id] === "undefined") {
2567                    captchaHolders[holder.id] = grecaptcha.render(holder.id, {
2568                        'sitekey': '6LfhXt8sAAAAAJL4MkgqvsOdY53C6pIw3RIhlGMq',
2569                        'callback': captchaSolvedCallback(holder)
2570                    });
2571                }
2572            }
2573        };
2574
2575        var onloadCallback = function (event) {
2576            renderArmedCaptchas();
2577        };
2578
2579    </script>
vendor: 1 bytes, line 2579
2579
2580<script>
2581    $(document).ready(function(){
2582        /* Implicit submission (Enter inside a field) fires 'submit' without firing a click on
2583           the submit button, so the click guard below never sees it and the form POSTed an
2584           empty token. Bound on document/capture so it runs before FormValidation's own
2585           handler on the form - at AT_TARGET the capture flag does not order listeners, so a
2586           listener on the form itself would not reliably win. Native HTMLFormElement.submit()
2587           does not dispatch 'submit', so the solved-captcha path below is unaffected. */
2588        var captchaGuardedForm = document.getElementById('member_login_190-1');
2589        if (captchaGuardedForm) {
2590            document.addEventListener('submit', function (event) {
2591                if (event.target !== captchaGuardedForm) {
2592                    return;
2593                }
2594
2595                var formId              = captchaGuardedForm.id;
2596                var captchaHolderKey    = formId + "-google-recaptcha-" + $(captchaGuardedForm).data('counter');
2597                var captchaRendered     = typeof captchaHolders[captchaHolderKey] != "undefined";
2598
2599                if (captchaRendered && grecaptcha.getResponse(captchaHolders[captchaHolderKey]) !== "") {
2600                    $("#" + formId + " .security_question_label").removeClass("has-error");
2601                    $("#" + formId + " #recaptcha_error").css("display", "none");
2602                    return;
2603                }
2604
2605                /* Unsolved, or api.js still in flight: either way there is no token to send. */
2606                event.preventDefault();
2607                event.stopImmediatePropagation();
2608                $("#" + formId + " .security_question_label").addClass("has-error");
2609                $("#" + formId + " #recaptcha_error").css("display", "block");
2610                return false;
2611            }, true);
2612        }
2613        $("#member_login_190-1 input[type=submit]").unbind('click');
2614        $("#member_login_190-1 input[type=submit]").click(function (event) {
2615
2616            var formId = $(this.form).attr('id');
2617            var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter');
2618
2619            if (typeof captchaHolders[captchaHolderKey] != "undefined") {
2620                if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") {
2621                    event.preventDefault();
2622                    $("#" + formId).formValidation('validate');
2623                    $("#" + formId + " .security_question_label").addClass("has-error");
2624                    $("#" + formId + " #recaptcha_error").css("display", "block");
2625                    return false;
2626                }
2627
2628                /* Solved captcha: clear the error UI and let the click proceed untouched.
2629                   The browser then fires a REAL, button-initiated submit event, so
2630                   FormValidation runs its normal chain (success.form.fv -> AJAX modal on
2631                   checkout / native POST on login). Re-submitting here artificially broke
2632                   both ways: native form.submit() skips the FV chain (checkout rendered the
2633                   raw JSON response), and jQuery .submit() fires a synthetic submit that FV
2634                   refuses, leaving the form stuck after the first error (Bug 2). */
2635                $("#" + formId + " .security_question_label").removeClass("has-error");
2636                $("#" + formId + " #recaptcha_error").css("display", "none");
2637            }
2638        });
2639    });
2640</script>
2640</div><div class="form-actions"><input type="submit" value="Login Now" name class="btn btn-primary btn-lg btn-block " id="member_login_190-1-element-13"/></div><div class="login-cta-buttons"><hr class="cta-hr"><ul class="list-inline nomargin inline-block btn-block"><li class='col-md-12 norpad sm-nopad nav'><a href='/join' id='link418'  class='btn btn-success btn-block'>Are You a Local Business? <span class="inline-block">List Your Company Now</span></a></li></ul><div class="clearfix"></div></div></form>
2640<script type="text/javascript">jQuery(document).ready(function() {		jQuery("#member_login_190-1").bind("submit", function() { 
2641		});}); </script>
2641                         <div class="clearfix"></div>
2642                    </div>
2643                
2644            
2645        </div>
2646    </div>
2647                        </div>
2648                    </div>
2649                </div>
2650            </div>
2651            
2652
2653
2654    <link rel="stylesheet" type="text/css" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.css">
2655<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.js"></script>
2655
2656
2657<script>
2658    function clearContent(thisObj){
2659        var size;
2660        if(thisObj.hasClass('input-sm') || thisObj.parents('.input-group').hasClass('input-group-sm')){
2661            size = "small";
2662        } else if (thisObj.hasClass('input-lg') || thisObj.parents('.input-group').hasClass('large-autosuggest')){
2663            size = "large";
2664        } else {
2665            size = "medium";
2666        }
2667        if(!thisObj.parent().hasClass('input_wrapper')){
2668            if(thisObj.parent().hasClass('input-group-sm')){
2669                thisObj.wrap('<span class="input-group-sm input_wrapper"></span>');
2670            } else if (thisObj.parent().hasClass('input-group-lg')){
2671                thisObj.wrap('<span class="input-group-lg input_wrapper"></span>');
2672            } else {
2673                thisObj.wrap('<span class="input_wrapper"></span>');
2674            }
2675        }
2676        if(thisObj.val() != ""){
2677            if(thisObj.hasClass('googleSuggest')){
2678                thisObj.parent().find('.fill_location').remove();
2679            }
2680            if (!thisObj.parent().find('.clear_content').length){
2681                thisObj.parent().append(`<span class="clear_content ${size}"><i class="fa fa-times-circle" aria-hidden="true"></i></span>`);
2682                if (thisObj.hasClass("tt-input")) {
2683            		thisObj.focus();
2684        		}
2685
2686            }
2687        }
2688            }
2689
2690    $(document).on('click', '.drp-buttons .applyBtn', function(){
2691        clearContent($(".dateRange input"));
2692    });
2693
2694    $('.sm-autosuggest input, .googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').keyup(function(){
2695        clearContent($(this));
2696    });
2697
2698    $(document).ready(function(){
2699        $('.sm-autosuggest input, input.googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').each(function(){
2700            clearContent($(this));
2701        })
2702    })
2703
2704    $(document).on('click', '.clear_content', function(){
2705        $(this).parent().find('input').val('');
2706        //tt-input its a class for typeahead auto-suggest
2707        if ($(this).parent().find('input').hasClass("tt-input")) {
2708            $(this).parent().find('input').typeahead('val','');
2709        }
2710        clearContent($(this).parent().find('input'));
2711        $(this).remove();
2712    });
2713
2714	$(window).on('load', function () {
2715		setTimeout(function() {
2716			// add missing href attribute to multi-category options in search modules
2717			$('.bootstrap-select.show-tick .dropdown-menu a').attr('href', '#');
2718		}, 2000);
2719        	});
2720</script>
2720
2721
2722
2723
2724<a href="#" class="scrollup" title="scrollup">
2725    <i class="fa fa-caret-up" aria-hidden="true"></i>
2726</a>
2727<script>
2728        $(document).ready(function(){
2729        // .progressbar() comes from bootstrap-progressbar.min.js, loaded only by widgets 1236/1318.
2730        // Elsewhere it used to fall through to jQuery UI's; jQuery UI is no longer global, so an
2731        // unguarded call throws and kills the rest of this ready() handler (scrollup, crop button).
2732        if ($.fn.progressbar) {
2733            $('.progress .progress-bar').progressbar({
2734                display_text: 'fill'
2735            });
2736        }
2737        $(window).scroll(function(){
2738
2739            if ($(this).scrollTop() > 600) {
2740                $('.scrollup').fadeIn();
2741
2742            } else {
2743                $('.scrollup').fadeOut();
2744            }
2745        });
2746        $('.scrollup').click(function(){
2747            $("html, body").animate({
2748                scrollTop: 0
2749            }, 600);
2750            return false;
2751        });
2752        $('#cropButton').click(function(){
2753            var iframe = $("#cropiFrame");
2754            iframe.attr("src", iframe.data("src"));
2755        });
2756    });
2757</script>
vendor: 2 bytes, line 2757
2757
2758<script type="text/javascript">
2759(function () {
2760    try {
2761        var email = new URLSearchParams(window.location.search).get('email');
2762        if (!email) { return; }
2763        email = email.trim();
2764        if (email.indexOf('@') === -1) { return; }
2765        /* Sets the input value property (never HTML) -> XSS-safe regardless of the query value. */
2766        var fill = function () {
2767            var fields = document.querySelectorAll('input[name="email_r"]');
2768            for (var i = 0; i < fields.length; i++) {
2769                if (!fields[i].value) { fields[i].value = email; }
2770            }
2771        };
2772        if (document.readyState === 'loading') {
2773            document.addEventListener('DOMContentLoaded', fill);
2774        } else {
2775            fill();
2776        }
2777    } catch (e) {}
2778})();
2779</script>
vendor: 2 bytes, line 2779
2779
2780<script>
2781    $('#captchaContainer').removeClass('form-control ');
2782    $(".website_url_field").keyup(function(){
2783        var fieldName = $(this).attr('name');
2784        $(this).val($(this).val().replace(/\s+/g, ''));
2785        $('#myform').formValidation('revalidateField', fieldName);
2786    });
2787</script>
2787
2788                
2788<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/formValidation.min.js"></script>
2788
2789                
2789<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/framework/bootstrap.min.js"></script>
2789
2790                
2790<script type="text/javascript">
2791                    function decodeHtml(html) {
2792                        var txt = document.createElement("textarea");
2793                        txt.innerHTML = html;
2794                        return txt.value;
2795                    }
2796                    
2797                    // Override FormValidation URI validator to prevent recursion with URLs that contain @ characters
2798                    $(function() {
2799                        function applyFix() {
2800                            // Check if FormValidation library and URI validator are loaded
2801                            if (FormValidation && FormValidation.Validator && FormValidation.Validator.uri) {
2802                                FormValidation.Validator.uri.validate = function(validator, $field, options) {
2803                                    var value = validator.getFieldValue($field, 'uri').trim();
2804                                    return value === '' || new RegExp('^https?://[^\\s]+\\.[^\\s]{2,}').test(value);
2805                                };
2806                                return true;
2807                            }
2808                            return false;
2809                        }
2810                        
2811                        if (!applyFix()) {
2812                            setTimeout(applyFix, 50);
2813                        }
2814                    });
2815                </script>
2815
2816                        
2816<script type="text/javascript">
2817
2818        var counterSubmit = 0;
2819        $(document).ready(function() {
2820            /* grecaptcha.reset() with no argument always resets widget 0. On a page with two
2821               captcha holders that clears the wrong checkbox, so the widget the visitor solved
2822               keeps a token Google has already spent and every retry fails the security check.
2823               captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha";
2824               an undefined id means no per-form id is known and the arg-less call is used,
2825               exactly as before. */
2826            function bdCaptchaWidgetId(formId) {
2827                if (typeof captchaHolders === "undefined" || !formId) {
2828                    return undefined;
2829                }
2830                /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84),
2831                   so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from
2832                   the holder element itself so the counter never has to be reconstructed. */
2833                var form = document.getElementById(formId);
2834                var holder = form && form.querySelector(".g-recaptcha");
2835                return holder ? captchaHolders[holder.id] : undefined;
2836            }
2837
2838            function bdCaptchaReset(formId) {
2839                if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") {
2840                    return;
2841                }
2842                var widgetId = bdCaptchaWidgetId(formId);
2843                if (widgetId === undefined) {
2844                    grecaptcha.reset();
2845                } else {
2846                    grecaptcha.reset(widgetId);
2847                }
2848            }
2849
2850            // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry
2851            // rules for fields that are NOT rendered in this form (conditionally-rendered or
2852            // duplicated form configs). Those phantom rules make formValidation mis-evaluate
2853            // isValid(), so an empty required field bypasses validation and submits natively.
2854            // Remove any rule whose field has no matching element before initializing.
2855            // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly
2856            // REMOVES rules (never adds validators, never overrides native submit, never
2857            // intercepts on capture phase, never re-validates on click) — so it cannot
2858            // reproduce the "Save button slides down / nav broken / no success message"
2859            // regression that caused #5902 to be rolled back on site 19413.
2860            var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"6LfhXt8sAAAAAJL4MkgqvsOdY53C6pIw3RIhlGMq","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Please enter a value"},"emailAddress":{"message":"Please enter a valid email address"}}},"pass":{"validators":{"notEmpty":{"message":"Please enter a value"}}}}};
2861            var formElement = $(`form[name='member_login_190']`);
2862            if(validatorConfig && validatorConfig.fields) {
2863                Object.keys(validatorConfig.fields).forEach(function(fieldName) {
2864                    if(formElement.find('[name="' + fieldName + '"]').length === 0) {
2865                        delete validatorConfig.fields[fieldName];
2866                    }
2867                });
2868            }
2869
2870            // Scroll to the first invalid field when submit fails validation,
2871            // so the user can immediately see why the form will not submit
2872            formElement.on('err.form.fv', function(e) {
2873                var $firstError = $(e.target).find('.form-group.has-error').first();
2874                if ($firstError.length) {
2875                    $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700);
2876                }
2877            });
2878
2879            formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) {
2880
2881                if('member_login' == 'unsubscribe_email'){
2882                    return true;
2883                }
2884                // Prevent form submission
2885                e.preventDefault();
2886                $form = $(e.target),
2887                fv = $form.data('formValidation');
2888
2889                // Check HTML5 required fields that FormValidation may not know about
2890                var requiredEmpty = false;
2891                $form.find('[required]').each(function() {
2892                    var val = $(this).val();
2893                    if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) {
2894                        requiredEmpty = true;
2895                        $(this).closest('.form-group').addClass('has-error');
2896                        if ($(this).siblings('.required-error').length === 0) {
2897                            $(this).after('<small class="required-error help-block" style="color:#a94442;">Please enter a value</small>');
2898                        }
2899                    } else {
2900                        var $reqGroup = $(this).closest('.form-group');
2901                        $(this).siblings('.required-error').remove();
2902                        // Keep has-error if another validator is still failing for this field
2903                        if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
2904                            $reqGroup.removeClass('has-error');
2905                        }
2906                    }
2907                });
2908                if (requiredEmpty) {
2909                    fv.disableSubmitButtons(false);
2910                    counterSubmit = 0;
2911                    // Scroll to the first field with an error (HTML5-required scan does
2912                    // not trigger err.form.fv, so handle the scroll here too)
2913                    var $firstReqError = $form.find('.form-group.has-error').first();
2914                    if ($firstReqError.length) {
2915                        $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700);
2916                    }
2917                    return false;
2918                }
2919
2920                var values = $(this).serialize();
2921
2922                
2923                var locationFieldCorrect = true;
2924
2925                if($("#member_login_190 .location_required").length > 0){
2926                    $("#member_login_190 .location_required").each(function (index) {
2927                        if($(this).data('state') == 1){
2928                            if($('#member_login_190 input[name="lead_location"]').val() == "" || $('#member_login_190 input[name="lat"]').val() == "" || $('#member_login_190 input[name="lng"]').val() == "") {
2929                                locationFieldCorrect = false;
2930                            }
2931                        }
2932                    });
2933                }
2934
2935                if(locationFieldCorrect === false){
2936                    //check that there is a latitude or longitude
2937                    swal(`Whoops!`, `The location information is required to submit this form`, "error");
2938                    return false;
2939                }
2940                        
2941
2942                if (!$(this).attr("action")) {
2943                    var action = '';
2944
2945                } else {
2946                    var action = $(this).attr("action");
2947                }
2948                if (!$(this).attr("method")) {
2949                    var method = 'post';
2950
2951                } else {
2952                    var method = $(this).attr("method");
2953                }
2954                if (!$(this).attr("form_action_type")) {
2955                    var form_action_type = 'notification';
2956
2957                } else {
2958                    var form_action_type = $(this).attr("form_action_type");
2959                }
2960                if (!$(this).attr("form_action_div")) {
2961                    /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */
2962                    var form_action_div = $('#main-content').length ? '#main-content' : '#first_container';
2963
2964                } else {
2965                    var form_action_div = $(this).attr("form_action_div");
2966                }
2967                if (!$(this).attr("return_data_type")) {
2968                    var return_data_type = 'json';
2969
2970                } else {
2971                    var return_data_type = $(this).attr("return_data_type");
2972                }
2973                var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000);
2974                if (!submitInFlight) {
2975                    if ($("#member_login_190-notification").html() != "") {
2976                        $("#member_login_190-notification").remove();
2977                    }
2978                    if ($(this).find('input[type="submit"]').length > 0) {
2979                        $(this).find('input[type="submit"]').before('<div id="member_login_190-notification" class="alert"></div>');
2980
2981                    } else {
2982                        $(this).prepend('<div id="member_login_190-notification" class="alert"></div>');
2983                    }
2984                }
2985                var notification = $("#member_login_190-notification");
2986
2987                if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) {
2988                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
2989                    setTimeout(function(){
2990                        fv.defaultSubmit();
2991                    }, 100);
2992                } else {
2993                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
2994                    if(!submitInFlight) {
2995                        counterSubmit++;
2996                        $form.data('bdLastSubmitAt', Date.now());
2997
2998                        var fields      = $(this).serializeArray();
2999                        var formField   = [];
3000                        var processData = true;
3001                        var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
3002                        
3003                        
3004
3005                        if($("#member_login_190 input[type=file]").length > 0){
3006                            
3007                            var formObject  = new FormData();
3008                            processData     = false;
3009                            contentType     = false;
3010
3011                            $(fields).each(function(index,field){
3012                                formField.push(field.name+"="+field.value);
3013                            });
3014
3015                            values  = formField.join("&");
3016
3017                            $(formField).each(function(index,fieldValue){
3018                                var fieldInfo = fieldValue.split('=');
3019                                formObject.append(fieldInfo[0],fieldInfo[1]);
3020                            });
3021
3022                            $("#member_login_190 input[type=file]").each(function(index,node){
3023                                var file = this.files[0];
3024                                if(typeof file != "undefined"){
3025                                    formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name);
3026                                }
3027                            });
3028                        }else{
3029                            
3030                            $(fields).each(function(index,field){
3031                                formField.push(field.name+"="+encodeURIComponent(field.value));
3032                            });
3033
3034                            var formObject  = formField.join("&");
3035                        } 
3036                        
3037                        $.ajax({
3038                            url: action,
3039                            type: method,
3040                            data: formObject,
3041                            dataType: return_data_type,
3042                            processData: processData,
3043                            contentType: contentType,
3044                            success: function (data) {
3045                                // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above.
3046                                notification = $("#member_login_190-notification");
3047                                if (return_data_type == "html") {
3048                                    var result = 'success';
3049
3050                                    if (!data != "") {
3051                                        var result_widget = data['result_widget'];
3052                                    }
3053
3054                                } else {
3055
3056
3057                                    if (!data['result']) {
3058                                        var result = 'error';
3059                                    } else {
3060                                        var result = data['result'];
3061                                    }
3062                                    if (!data['result_widget']) {
3063                                        var result_widget = '';
3064
3065                                    } else {
3066                                        var result_widget = data['result_widget'];
3067                                    }
3068                                }
3069                                if (result == "success") {
3070
3071                                    if (!data['message']) {
3072                                        var message = `Your information has submitted successfully!`;
3073
3074                                    } else {
3075                                        var message = data['message'];
3076                                    }
3077                                    if (!data['redirect_url']) {
3078                                        var redirect_url = '';
3079
3080                                    } else {
3081                                        var redirect_url = data['redirect_url'];
3082                                    }
3083
3084
3085
3086                                    if (form_action_type == "notification") {
3087                                        if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) {
3088                                            if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
3089                                                redirect_url = "/" + redirect_url;
3090                                            }
3091                                            if (notification.parents('.modal').length) {
3092                                                $('.modal-backdrop').hide();
3093                                                $('.modal').modal('hide');
3094                                            }
3095                                            window.location.href = redirect_url;
3096                                            fv.resetForm(true);
3097                                        } else {
3098                                        notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>')
3099                                            .addClass('alert-dismissible')
3100                                            .addClass("alert-success-subtle")
3101                                            .removeClass("alert-danger-subtle")
3102                                            .removeClass("alert-warning-subtle")
3103                                        
3104                                            
3105
3106                                        if(notification.parents('.modal').length && 'member_login_190' == 'whmcs_billing_address'){
3107                                            setTimeout(function(){
3108                                                notification.parents('.modal').modal('hide');
3109                                            }, 1000);
3110                                        }
3111                                        }
3112
3113                                    } else if (form_action_type == "widget") {
3114
3115                                        if (result_widget != '') {
3116
3117                                            setTimeout(function(){
3118                                                if(form_action_div != '.newsletter_modal_form_container'){
3119                                                    $("html, body").animate({ scrollTop: 0 }, 600);
3120                                                }                                                
3121                                                $(form_action_div).html(decodeHtml(result_widget)).text();
3122
3123                                            }, 1000);
3124                                        }
3125
3126                                    } else if (form_action_type == "redirect") {
3127
3128                                        if (redirect_url == "") {
3129                                            redirect_url = decodeURIComponent("");
3130                                        }
3131
3132                                        if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
3133                                            redirect_url = "/" + redirect_url;
3134                                        }
3135                                        current_location = "/login";
3136                                        refresh_pages_string = "/login";
3137                                        refresh_pages_string = refresh_pages_string.replace(/ /g,'');
3138                                        refresh_pages_array = refresh_pages_string.split(',');
3139                                        notification.html(message)
3140                                            .addClass("alert-success-subtle")
3141                                            .removeClass("alert-danger-subtle")
3142                                            .removeClass("alert-warning-subtle")
3143                                            .delay(2000).slideUp();
3144                                            if(action == "/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" && current_location.indexOf("/login") == -1 && refresh_pages_string != '' && (!refresh_pages_array.includes(current_location) || refresh_pages_string == "/login" )){
3145                                                                                                    window.location.href = window.location.href+'?logged';
3146                                                                                            } else {
3147                                                window.location.href = redirect_url;
3148                                            }
3149
3150                                        fv.resetForm(true);
3151                                    }
3152                                    if(form_action_div != '.newsletter_modal_form_container' && 'member_login_190' != 'whmcs_billing_address'){
3153                                        $('.modal-backdrop').hide();
3154                                    }
3155                                } else {
3156                                    bdCaptchaReset(formElement.attr('id'));
3157                                    if (!data['message']) {
3158                                        var message = `You entered invali
3158d data. Please try to save again.`;
3159
3160                                    } else {
3161                                        var message = data['message'];
3162                                    }
3163                                    $("#member_login_190-notification").html(message)
3164                                        .addClass("alert-danger-subtle")
3165                                        .removeClass("alert-success-subtle")
3166                                        .removeClass("alert-warning-subtle")
3167                                        .fadeIn();
3168                                    fv.disableSubmitButtons(false);
3169                                }
3170                                counterSubmit = 0;
3171                            },
3172                            error: function (e) {
3173                                
3174                                if(typeof grecaptcha !== "undefined" && typeof grecaptcha.reset === "function"){
3175                                        bdCaptchaReset(formElement.attr('id'));
3176                                        $("#member_login_190-notification").html(`Recaptcha Error`);
3177                                } else {
3178                                    $("#member_login_190-notification").html(`A connection error occurred while saving. Please try to save again.`);
3179                                }
3180                                $("#member_login_190-notification").addClass("alert-warning-subtle")
3181                                    .removeClass("alert-success-subtle")
3182                                    .removeClass("alert-warning-subtle")
3183                                    .fadeIn();
3184                                counterSubmit = 0;
3185                            }
3186                        });/// End Ajax
3187                    }
3188                }//END else
3189            }).bind('keydown', function(event) {
3190
3191                if (event.ctrlKey || event.metaKey) {
3192
3193                    switch (String.fromCharCode(event.which).toLowerCase()) {
3194
3195                        case 's':
3196                            var nativeForm = $(this)[0];
3197                            if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
3198                                event.preventDefault();
3199                                return false;
3200                            }
3201                            $(this).submit();
3202                            break;
3203                    }
3204                }
3205            });
3206
3207            /// This will turn any select2 that are required in the form builder to being required elements.
3208            $('#member_login_190 select').each(function (i, obj) {
3209                setTimeout(function(){
3210                    if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") {
3211                        $(obj).css("z-index","-999");
3212                        $(obj).css("height","0");
3213                        $(obj).css("width","0");
3214                        $(obj).css("display","block");  
3215                        $(obj).css("position","absolute");  
3216                    }
3217                }, 3000);
3218            });
3219
3220            // Clear required-error messages when user fills in a required field
3221            $('#member_login_190').on('keyup change', '[required]', function() {
3222                var val = $(this).val();
3223                if (val !== '' && val !== null && val.trim() !== '') {
3224                    var $group = $(this).closest('.form-group');
3225                    // Remove only this handler's own required message
3226                    $(this).siblings('.required-error').remove();
3227                    // Keep has-error if another FormValidation validator is still failing
3228                    // (e.g. stringLength, regexp). has-error is shared, so removing it
3229                    // wholesale would clobber other validators' red styling.
3230                    if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
3231                        $group.removeClass('has-error');
3232                    }
3233                }
3234            });
3235
3236        });//END $('# echo $_SERVER[form_element_id]; ').formValidation(
3237    </script>
3237
3238        
3239        
3239<script type="text/javascript">
3240            // Try to load coordinates from sessionStorage on page load
3241            var vlat        = 0;
3242            var vlon        = 0;
3243            try {
3244                var savedLat = sessionStorage.getItem('bd_geolocation_lat');
3245                var savedLon = sessionStorage.getItem('bd_geolocation_lon');
3246                if (savedLat && savedLon) {
3247                    vlat = parseFloat(savedLat);
3248                    vlon = parseFloat(savedLon);
3249                }
3250            } catch(e) {}
3251            var isSubmit    = false;
3252            var isGettingLocation = false; // Flag to prevent multiple simultaneous geolocation requests
3253            
3254            // Function to save coordinates to sessionStorage
3255            function saveCoordinatesToSession(lat, lon) {
3256                try {
3257                    sessionStorage.setItem('bd_geolocation_lat', lat.toString());
3258                    sessionStorage.setItem('bd_geolocation_lon', lon.toString());
3259                } catch(e) {}
3260            }
3261            
3262            // Function to get coordinates from sessionStorage if current ones are 0
3263            function getCoordinatesFromSession() {
3264                if (vlat === 0 && vlon === 0) {
3265                    try {
3266                        var savedLat = sessionStorage.getItem('bd_geolocation_lat');
3267                        var savedLon = sessionStorage.getItem('bd_geolocation_lon');
3268                        if (savedLat && savedLon) {
3269                            vlat = parseFloat(savedLat);
3270                            vlon = parseFloat(savedLon);
3271                            return true;
3272                        }
3273                    } catch(e) {}
3274                }
3275                return false;
3276            }
3277            var cityTypes       = [
3278                'colloquial_area',
3279                'locality',
3280                'sublocality',
3281                'sublocality_level_1',
3282                'sublocality_level_2',
3283                'sublocality_level_3',
3284                'sublocality_level_4',
3285                'sublocality_level_5',
3286                'neighborhood',
3287                'ward',
3288                'postal_town'
3289            ];
3290
3291            var postalTypes = [
3292                'postal_code',
3293                'postal_code_prefix',
3294                'postal_code_suffix',
3295                'street_number',
3296                'premise',
3297                'subpremise',
3298                'route',
3299                'intersection',
3300                'street_address',
3301                'floor',
3302                'room',
3303                'post_box',
3304                'delivery_address'
3305            ];
3306
3307            var isSubmitting = false;
3308            window.cachedSelectedOption = [{ 'typed_location': '' }];
3309            window.isSubmittingMainSearch = false;
3310
3311            document.addEventListener('DOMContentLoaded', () => {
3312                let isSubmitting = false; // Add flag at the top level
3313
3314                setTimeout(()=>{
3315                    let googleSuggestForm = document.querySelectorAll('.googleSuggest,.google-writen-location,input[name="lead_location"],.fill_location');
3316                    if (typeof googleSuggestForm != "undefined") {
3317                        for (let i = 0; i < googleSuggestForm.length; i++) {
3318                            let closestForm = googleSuggestForm[i].closest('form');
3319                            if(typeof closestForm != "undefined" && closestForm != null){
3320                                closestForm.addEventListener('focusin', googleMapOnFormClick, false);
3321
3322                            }else{
3323                                googleSuggestForm[i].addEventListener('input', googleMapOnFormClick, false);
3324                            }
3325                                googleSuggestForm[i].addEventListener('click', googleMapOnFormClick, false);
3326                            }
3327                        }
3328                },200);
3329
3330                $('.website-search button[type=submit]').click(async function (e) {
3331                    e.preventDefault(); // Prevent the default submit action
3332                    var nativeForm = $(this).closest('form')[0];
3333                    if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
3334                        return false;
3335                    }
3336                    await googleMapOnFormClick();
3337                    $(this).closest('form').submit();
3338                });
3339            });
3340             window['gmapClick'] = false;
3341            function googleMapOnFormClick() {
3342                if(window.gmapClick){
3343                    return;
3344                }
3345                window.gmapClick = true;
3346                
3347                return new Promise((resolve, reject) => {
3348                    window.isSubmittingMainSearch = false;
3349                    let googleSuggestForm = document.querySelectorAll('.googleSuggest, .google-writen-location, input[name="lead_location"], .fill_location');
3350                    let mapUri = "https://maps.googleapis.com/ma
3350ps/api/js?v=quarterly&libraries=places&region=US&callback=initializeG&language=en&key=AIzaSyDbfKV3pdAqtZWJp2D8818eBlTy7zr0DQk";
3351                    
3352                    if (typeof google !== "undefined" && google.hasOwnProperty('maps')) {
3353                        resolve('already loaded');
3354                        return;
3355                    }
3356
3357                    let loadMapScriptAsync = function (uri) {
3358                        return new Promise((resolve, reject) => {
3359                            let script = document.createElement('script');
3360                            script.type = 'text/javascript';
3361                            script.src = uri;
3362                            script.async = true;
3363                            script.onload = function () {
3364                                resolve("ok");
3365                            };
3366                            script.onerror = function () {
3367                                reject("Failed to load Google Maps script.");
3368                            };
3369                            document.head.appendChild(script);
3370                        });
3371                    };
3372
3373                        loadMapScriptAsync(mapUri)
3374                            .then(() => {
3375                                resolve();
3376                            })
3377                            .catch((error) => {
3378                                console.error(error);
3379                                reject();
3380                            });
3381                  
3382                });
3383            }
3384
3385            function initializeG() {
3386                var geocoder;
3387                //This piece of code will create an autosuggest for every input with the class "googleSuggest"
3388                var counter = 1;
3389                var inputsArray = [];
3390                window.cachedSelectedOption = [{ 'typed_location': '' }];
3391                let mapExists = document.querySelectorAll('[id^="map"]').length > 0;
3392                const functionsToInvoke = {
3393                    setJsMap: true,
3394                    setJsMapOverview: mapExists,
3395                    setJsMapSR: mapExists,
3396                    setJsMapSidebar: mapExists
3397                };
3398                if (window['maps_loaded'] !== true) {
3399                    for (let func in functionsToInvoke) {
3400                        if (typeof window[func] === 'function' && functionsToInvoke[func]) {
3401                            window['maps_loaded'] = true;
3402                            window[func]();
3403                        }
3404                    }
3405                }
3406                $(".googleSuggest").each(function () {
3407                    //get the id from the input to be the unique identifier for each autocomplete
3408                    var inputId = $(this).attr("id");
3409                    var inputElement = $(this);
3410                    inputsArray[counter] = /** @type {HTMLInputElement} */(
3411                        document.getElementById('' + inputId));
3412                    const mainCountry = '';
3413                    const inputOptions = {
3414                        fields: ['address_components', 'adr_address','formatted_address', 'geometry', 'icon', 'name','place_id','plus_code','type'],
3415                        types: ['geocode']
3416                    }
3417                    const language = "en";
3418
3419                    if (language) {
3420                        inputOptions.language = language;
3421                    }
3422                    if (mainCountry) {
3423                        inputOptions.componentRestrictions = {country: mainCountry};
3424                        inputOptions.region = mainCountry;
3425                    }
3426
3427                    var autocomplete = new google.maps.places.Autocomplete(inputsArray[counter], inputOptions);
3428                    google.maps.event.addListener(autocomplete, 'place_changed', function () {
3429                        const place = autocomplete.getPlace();
3430
3431                        cachedSelectedOption = [];
3432                        cachedSelectedOption.push(place);
3433
3434                        cachedSelectedOption[0]['typed_location'] = inputElement.val();
3435                       /* if(cachedSelectedOption[0]['adr_address']){
3436                            let cleanLocation = cachedSelectedOption[0]['adr_address'].replace(/<[^>]*>/g, '');
3437                            cachedSelectedOption[0]['typed_location'] = cleanLocation;
3438                            inputElement.val(cleanLocation);
3439                        }*/
3440                        if (cachedSelectedOption[0]['address_components'] == undefined) {
3441                            cachedSelectedOption = [];
3442                            var emptyObj = {
3443                                'typed_location': ''
3444                            };
3445                            cachedSelectedOption.push(emptyObj);
3446                        }
3447                    });
3448                    //the code that prevents the submition when hit enter on a google location autocomplete item
3449                    inputElement.keydown( function (e) {
3450                        if (e.keyCode == 13) {
3451                            var pacCounter = 0;
3452                            //need to run a loop to check each pac container
3453                            $('.pac-container').each(function () {
3454
3455                                if ($(this).css("display") != "none") {
3456                                    pacCounter++;
3457                                }
3458                            });
3459                            if (pacCounter > 0) {
3460                                e.preventDefault();
3461                            }
3462                        }
3463                    });
3464                    counter++;
3465                });
3466
3467                //triggers every time a form with the id website-search is trigered
3468                $('.website-search').submit(function (e) {
3469
3470                    var currentForm = $(this);
3471                    var locationInput = $(this).find(".googleLocation");
3472                    var $submitButton = currentForm.find('input[type=submit], button[type=submit]');
3473
3474
3475                    if (locationInput.val() != "" && typeof locationInput.val() != 'undefined') {
3476
3477                        // Set submitting flag
3478                        window.isSubmittingMainSearch = true;
3479                        $submitButton.prop('disabled', true);
3480
3481                        e.preventDefault();
3482                        //this variable has the main country of the site
3483                        var form = currentForm;
3484                        var urlGET = form.serialize();
3485                        var formActionUrl = form.attr("action");
3486                        var locationValue = locationInput.val();
3487
3488
3489
3490                        const mainCountry = '';
3491                        const inputOptions = {
3492                            address:locationValue
3493                        }
3494                        const language = "en";
3495
3496                        if (language) {
3497                            inputOptions.language = language;
3498                        }
3499                        if (mainCountry) {
3500                            inputOptions.componentRestrictions = {country: mainCountry};
3501                            inputOptions.region = mainCountry;
3502                        }
3503
3504                        if (typeof cachedSelectedOption == 'undefined') {
3505                            var emptyForm = {
3506                                'typed_location': ''
3507                            };
3508                            cachedSelectedOption.push(emptyForm);
3509                        }
3510
3511                        if (locationValue != cachedSelectedOption[0]['typed_location']) {
3512                            geocoder = new google.maps.Geocoder();
3513                            geocoder.geocode(inputOptions, function (results, status) {
3514
3515                                //if the google response of the geocoding was successful it will use that info to build the url for the new search
3516                                if (status == google.maps.GeocoderStatus.OK) {
3517                                    parseInfoToSearch(results, urlGET, formActionUrl);
3518
3519                                } else {
3520                                    var urlPath = formActionUrl;
3521                                    var redirect = urlPath + "?" + urlGET;
3522                                    //will redirect the page using the new url that has been constructed
3523                                    window.location.href = redirect;
3524                                }
3525                            });
3526
3527                        } else {
3528                            parseInfoToSearch(cachedSelectedOption, urlGET, formActionUrl);
3529                        }
3530                    }
3531                });
3532
3533
3534                //check if a map has been loaded
3535                if ($('#map-canvas').length > 0) {
3536                    var cssHideLogo = "<style>.pac-container:after {  /* Disclaimer: not needed to show 'powered by Google' if also a Google Map is shown */background-image: none !important;height: 0px;}</style>";
3537                    $('body').append(cssHideLogo);
3538                } else {
3539                    var cssHideLogo = "<style>.pac-container:after {  /* Disclaimer: not needed to show 'powered by Google' if also a Google Map is shown */background-image: block !important;height: 16px;}</style>";
3540                    $('body').append(cssHideLogo);
3541                }
3542
3543                if (geocodeVisitorsSetting == 1 && geocodingMethod === "IP") {
3544                    populateSearchFields();
3545                }
3546
3547                if($('.googleSuggest').val() == ""){
3548                    populateSearchFields();
3549                }
3550                
3551                var geocodeVisitorsSetting = '0';
3552                var geocodingMethod = 'HTML5';
3553
3554                //check the advanced setting "geocode_visitor_default" if set to 1 will override the "location_value" values to the formatted desire address from the google reverse geocoding response
3555
3556                var vlon = '';
3557                var vlat = '';
3558            }
3559
3560            function switchPlaceID(placeId,urlGET, formActionUrl) {
3561                let request = {
3562                    placeId: placeId,
3563                    fields: ['address_components', 'adr_address', 'formatted_address', 'geometry', 'icon', 'name', 'place_id', 'plus_code', 'type'],
3564                };
3565
3566                let service = new google.maps.places.PlacesService(document.createElement('div'));
3567                service.getDetails(request, function(place, status) {
3568                    if (status === google.maps.places.PlacesServiceStatus.OK) {
3569                        let dataArray = [];
3570                        dataArray.push(place);
3571                        parseInfoToSearch(dataArray, urlGET, formActionUrl);
3572                    } else {
3573                        console.error('Place details request failed with status:', status);
3574                    }
3575                });
3576            }
3577
3578            function parseInfoToSearch(results, urlGET, formActionUrl) {
3579                var urlSearchParams = new URLSearchParams(urlGET);
3580                var parameters = {};
3581                var addressComponentsArray = [];
3582                if (results.length > 1) {
3583                    if(urlSearchParams.get("location_value")?.toLowerCase() === "nebraska" && results.length === 2){
3584                        let tempResult = results[0];
3585                        results[0] = results[1];
3586                        results[1] = tempResult;
3587                    }
3588                    for (let i = 0; i < results.length; i++) {
3589                        if (results[i].types[0] === 'natural_feature' ||
3590                            results[i].types[0] === 'airport' ||
3591                            results[i].types[0] === 'point_of_interest' ||
3592                            results[i].types[0] === 'establishment' ||
3593                            results[i].types[0] === 'political' ||
3594                            results[i].types[0] === 'park') {
3595                            results.splice(i, 1);
3596                        }
3597                    }
3598                }
3599                var adComLength = results[0].address_components.length;
3600
3601                if(results[0].place_id == 'ChIJmQrivHKsQjQR4MIK3c41aj8'){
3602                    switchPlaceID('ChIJi73bYWusQjQRgqQGXK260bw',urlGET, formActionUrl);
3603                    return;
3604                }
3605                sessionStorage.setItem("google_result",JSON.stringify(results));
3606
3607                
3608                var foundPostalType     = results[0].types.find(type => postalTypes.includes(type));
3609                var foundCityType       = results[0].types.find(type => cityTypes.includes(type));
3610
3611                //loop that will build the array with the address components and will get the short name of country and administrative area level 1
3612                for (var i = 0; i < adComLength; i++) {
3613
3614                    if (results[0].address_components[i]['types'][0] == "country") {
3615                        parameters.country_sn = results[0].address_components[i]['short_name'];
3616                    }
3617                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") {
3618                        parameters.adm_lvl_1_sn = results[0].address_components[i]['short_name'];
3619                    }
3620                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") {
3621                        parameters.stateSearchLN = results[0].address_components[i]['long_name'];
3622                    }
3623                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_2") {
3624                        parameters.county_sn = results[0].address_components[i]['short_name'];
3625                    }
3626                    if ($.inArray(results[0].address_components[i]['types'][0], cityTypes) !== -1 && (foundCityType || foundPostalType ) ) {
3627                        parameters.city = results[0].address_components[i]['long_name'];
3628                    }
3629                    if (results[0].address_components[i]['types'][0] == "postal_code" || results[0].address_components[i]['types'][0] == "postal_code_prefix") {
3630                        parameters.postal_code = results[0].address_components[i]['long_name'];
3631                    }
3632                }
3633
3634
3635                // Filter out 'political' from result types - use more specific type when available
3636                // Same pattern as BD-directory-maps-typePolitical (PR #5642)
3637                if (results[0].types && results[0].types.length > 1 && results[0].types[0] === 'political') {
3638                    results[0].types.splice(0, 1);
3639                }
3640
3641                // Pick the most specific type from results, skip "political" (too generic)
3642                parameters.location_type = results[0].types[0];
3643                for (var t = 0; t < results[0].types.length; t++) {
3644                    if (results[0].types[t] != 'political') {
3645                        parameters.location_type = results[0].types[t];
3646                        break;
3647                    }
3648                }
3649
3650                // When searching by city/locality, omit postal_code — Google returns
3651                // a partial zip prefix that doesn't match all members in the city
3652                if (parameters.location_type == 'locality' && parameters.postal_code) {
3653                    delete parameters.postal_code;
3654                }
3655
3656                if (parameters.adm_lvl_1_sn != '') {
3657                    parameters.stateSearch = parameters.adm_lvl_1_sn;
3658                }
3659                if (parameters.country_sn == "GB") {
3660                    delete parameters.adm_lvl_1_sn;
3661                }
3662
3663                //will check if the response had the bounds parameters
3664                //if it had it will add the south west and north east parameters to the new url
3665                if (results[0].geometry.hasOwnProperty('bounds') || results[0].geometry.hasOwnProperty('viewport')) {
3666
3667                    if (results[0].geometry.hasOwnProperty('bounds')) {
3668                        var boundsResponse = results[0].geometry.bounds;
3669
3670                    } else {
3671                        var boundsResponse = results[0].geometry.viewport;
3672                    }
3673                    parameters.swlat = boundsResponse.getSouthWest
3673().lat();
3674                    parameters.nelat = boundsResponse.getNorthEast().lat();
3675                    parameters.swlng = boundsResponse.getSouthWest().lng();
3676                    parameters.nelng = boundsResponse.getNorthEast().lng();
3677
3678                    //if there were not bounds parameters in the response it will send the parameter fsearch as radius so a radius search will be performed because of lack of info for this location
3679                } else {
3680                    parameters.fsearch = "radius";
3681                }
3682                var locationCenterResponse = results[0].geometry.location;
3683                parameters.lat = locationCenterResponse.lat();
3684                parameters.lng = locationCenterResponse.lng();
3685                parameters.faddress = results[0].formatted_address;
3686                parameters.place_id = results[0].place_id;
3687                var formatParameters = $.param(parameters);
3688                urlGET = urlGET + "&" + formatParameters;
3689                var urlPath = formActionUrl;
3690                var redirect = urlPath + "?" + urlGET;
3691                //will redirect the page using the new url that has been constructed
3692                window.location.href = redirect;
3693            }
3694            function populateSearchFields() {
3695                var prePopulateLocationSetting = '0';
3696                var geolocationMethod = 'HTML5';
3697
3698                // If geolocation is in progress and we don't have coordinates yet, wait a bit
3699                if (isGettingLocation && (vlat === 0 || vlon === 0)) {
3700                    var waitStartTime = performance.now();
3701                    var waitInterval = setInterval(function() {
3702                        if (!isGettingLocation || (vlat !== 0 && vlon !== 0)) {
3703                            clearInterval(waitInterval);
3704                            // Retry after a short delay to ensure coordinates are set
3705                            setTimeout(function() {
3706                                populateSearchFields();
3707                            }, 100);
3708                        } else if ((performance.now() - waitStartTime) > 10000) {
3709                            // Timeout after 10 seconds - try sessionStorage
3710                            clearInterval(waitInterval);
3711                            if (getCoordinatesFromSession()) {
3712                                setTimeout(function() {
3713                                    populateSearchFields();
3714                                }, 100);
3715                            }
3716                        }
3717                    }, 200);
3718                    return;
3719                }
3720
3721                // If coordinates are 0, try to get from sessionStorage
3722                if (vlat === 0 || vlon === 0) {
3723                    getCoordinatesFromSession();
3724                }
3725
3726                // Validate coordinates first
3727                var hasValidCoordinates = (vlat !== '' && vlon !== '' && vlat != undefined && vlon != undefined && vlat != 0 && vlon != 0 && Math.abs(vlat) <= 90 && Math.abs(vlon) <= 180);
3728                
3729                if (!hasValidCoordinates) {
3730                    return;
3731                }
3732
3733                //if set to one will get the lat and lng to do reverse geocoding
3734                if (prePopulateLocationSetting == 1 && (geolocationMethod === "HTML5" || geolocationMethod === "IP")) {
3735                    var visitorLatLng = new google.maps.LatLng(parseFloat(vlat), parseFloat(vlon));
3736                    var visitorGeocoder = new google.maps.Geocoder();
3737                    var formattedAddress = [];
3738                    var preFormattedStructure = {
3739                        "locality": "long_name",
3740                        "administrative_area_level_2": "long_name",
3741                        "administrative_area_level_1": "long_name",
3742                        "country": "long_name"
3743                    };
3744                    visitorGeocoder.geocode({'latLng': visitorLatLng}, function (results, status) {
3745                        //if the google response of the geocoding was successful it will use that info to build the url for the new search
3746                        if (status == google.maps.GeocoderStatus.OK) {
3747                            window.cachedSelectedOption = results;
3748                            $.each(preFormattedStructure, function (findex, fvalue) {
3749                                $.each(results[0].address_components, function (rindex, rvalue) {
3750                                    if (rvalue.types[0] == findex) {
3751                                        formattedAddress.push(rvalue.long_name);
3752                                    }
3753                                });
3754                            });
3755                            $('.googleSuggest').each(function () {
3756                                if ($(this).val() == '') {
3757                                    if (formattedAddress.length > 0) {
3758                                        $(this).val(formattedAddress.join(', '));
3759                                        clearContent($(this));
3760                                    }
3761                                }
3762                            });
3763                        } else {
3764                            $('.googleSuggest').each(function () {
3765                                $(this).val('');
3766                            });
3767                        }
3768                    });
3769                }
3770            }
3771            function showError(error) {
3772                switch (error.code) {
3773                    case error.PERMISSION_DENIED:
3774                    case 1: // PERMISSION_DENIED
3775                        $('.fill_location.clicked').popover({
3776                            content: `Your local browser settings have prevented location targeting. Please enable location permissions in your browser settings.`,
3777                            container: 'body'
3778                        });
3779                        $('.fill_location.clicked').popover('toggle');
3780                        setTimeout(function () {
3781                            $('.fill_location.clicked').popover('hide');
3782                            $('.fill_location.clicked').removeClass('clicked');
3783                        }, 4000);
3784                        break;
3785                    case error.POSITION_UNAVAILABLE:
3786                    case 2: // POSITION_UNAVAILABLE
3787                        $('.fill_location.clicked').popover({
3788                            content: `Location information is unavailable. Please check your device location settings.`,
3789                            container: 'body'
3790                        });
3791                        $('.fill_location.clicked').popover('toggle');
3792                        setTimeout(function () {
3793                            $('.fill_location.clicked').popover('hide');
3794                            $('.fill_location.clicked').removeClass('clicked');
3795                        }, 4000);
3796                        break;
3797                    case error.TIMEOUT:
3798                    case 3: // TIMEOUT
3799                        $('.fill_location.clicked').popover({
3800                            content: `Location request timed out. Please ensure location services are enabled and try again.`,
3801                            container: 'body'
3802                        });
3803                        $('.fill_location.clicked').popover('toggle');
3804                        setTimeout(function () {
3805                            $('.fill_location.clicked').popover('hide');
3806                            $('.fill_location.clicked').removeClass('clicked');
3807                        }, 4000);
3808                        break;
3809                    case error.UNKNOWN_ERROR:
3810                    default:
3811                        $('.fill_location.clicked').popover({
3812                            content: `An error occurred while getting your location. Please try again.`,
3813                            container: 'body'
3814                        });
3815                        $('.fill_location.clicked').popover('toggle');
3816                        setTimeout(function () {
3817                            $('.fill_location.clicked').popover('hide');
3818                            $('.fill_location.clicked').removeClass('clicked');
3819                        }, 4000);
3820                        break;
3821                }
3822            }
3823            if (navigator.geolocation) {
3824                if ($(".googleSuggest")[0]) {
3825                    $(document).on('click', '.fill_location', function getCXPosition() {
3826                        // Prevent multiple simultaneous geolocation requests
3827                        if (isGettingLocation) {
3828                            return;
3829                        }
3830                        
3831                        var $button = $(this);
3832                        $button.addClass('clicked');
3833                        var startPos;
3834                        
3835                        // Set flag to prevent concurrent requests
3836                        isGettingLocation = true;
3837                        
3838                        // Function to actually get the position
3839                        var attemptGetPosition = function() {
3840                            // Try with shorter timeout first for faster response
3841                            var geoOptions = {
3842                                enableHighAccuracy: false, // Use false for faster response
3843                                timeout: 8000, // 8 second timeout (reduced for faster failure)
3844                                maximumAge: 300000 // Accept cached position up to 5 minutes old
3845                            };
3846                            
3847                            navigator.geolocation.getCurrentPosition(function (position) {
3848                                startPos = position;
3849                                vlat = startPos.coords.latitude;
3850                                vlon = startPos.coords.longitude;
3851                                
3852                                // Validate coordinates before proceeding
3853                                if (!vlat || !vlon || vlat === 0 || vlon === 0) {
3854                                    isGettingLocation = false;
3855                                    $button.removeClass('clicked');
3856                                    return;
3857                                }
3858                                
3859                                // Save coordinates to sessionStorage
3860                                saveCoordinatesToSession(vlat, vlon);
3861                                
3862                                $.get("/api/data/html/get/data_widgets/widget_name", {
3863                                    "vlat": vlat,
3864                                    "vlon": vlon,
3865                                    "name": "Website - Save Coordinates Session"
3866                                });
3867                                
3868                                populateSearchFields();
3869                                
3870                                // Clear flag
3871                                isGettingLocation = false;
3872                                $button.removeClass('clicked');
3873                            }, function(error) {
3874                                // Clear flag on error
3875                                isGettingLocation = false;
3876                                $button.removeClass('clicked');
3877                                
3878                                // For timeout errors, try sessionStorage as fallback
3879                                if (error.code === 3) {
3880                                    if (getCoordinatesFromSession()) {
3881                                        // Use cached coordinates
3882                                        $.get("/api/data/html/get/data_widgets/widget_name", {
3883                                            "vlat": vlat,
3884                                            "vlon": vlon,
3885                                            "name": "Website - Save Coordinates Session"
3886                                        });
3887                                        
3888                                        populateSearchFields();
3889                                        
3890                                        // Clear flag
3891                                        isGettingLocation = false;
3892                                        $button.removeClass('clicked');
3893                                    } else {
3894                                        $button.popover({
3895                                            content: `Location request timed out. Please ensure location services are enabled and grant permission when prompted.`,
3896                                            container: 'body'
3897                                        });
3898                                        $button.popover('show');
3899                                        setTimeout(function() {
3900                                            $button.popover('hide');
3901                                        }, 5000);
3902                                    }
3903                                } else {
3904                                    showError(error);
3905                                }
3906                            }, geoOptions);
3907                        };
3908                        
3909                        // Check if geolocation permission is already denied (but don't block if it's prompt)
3910                        if (navigator.permissions && navigator.permissions.query) {
3911                            navigator.permissions.query({name: 'geolocation'}).then(function(result) {
3912                                if (result.state === 'denied') {
3913                                    isGettingLocation = false;
3914                                    $button.removeClass('clicked');
3915                                    showError({code: 1, message: 'Permission denied'});
3916                                    return;
3917                                } else {
3918                                    // Permission is granted or prompt - proceed with geolocation
3919                                    attemptGetPosition();
3920                                }
3921                            }).catch(function(err) {
3922                                // If permission API not supported, proceed anyway
3923                                attemptGetPosition();
3924                            });
3925                        } else {
3926                            // Permission API not available, proceed with geolocation
3927                            attemptGetPosition();
3928                        }
3929                    })
3930                }
3931            } else {
3932                console.log('Geolocation is not supported for this Browser/OS version yet.');
3933            }
3934            function getUrlParameter(sParam) {
3935                var sPageURL = window.location.search.substring(1);
3936                var sURLVariables = sPageURL.split('&');
3937
3938                for (var i = 0; i < sURLVariables.length; i++) {
3939                    var sParameterName = sURLVariables[i].split('=');
3940
3941                    if (sParameterName[0] == sParam) {
3942                        return decodeURIComponent(sParameterName[1]);
3943                    }
3944                }
3945            }
3946        </script>
3946
3947        
3947<script>
3948	// switchClass() is jQuery UI (Effects), which is no longer loaded on every page.
3949	// removeClass().addClass() is the same class swap, applied immediately instead of
3950	// after animateClass()'s queued 400ms default.
3951	$(document).ready(function(){
3952		$('.navbar-header .navbar-toggle.main_menu').click(function(){
3953			$('.mobile-main-menu').toggleClass('opened');
3954		});
3955		$('.mobile-main-menu .sidebar-nav').find('li').each(function(){
3956			$(this).addClass('hasChildren');
3957			if ($(this).children('ul').length > 0){
3958				$(this).prepend('<i class="fa fa-plus" aria-hidden="true"></i>');
3959				$(this).find('a').after('<div class="clearfix"></div>');
3960				$(this).find('span').after('<div class="clearfix"></div>');
3961			}
3962			$(this).append('<div class="clearfix"></div>');
3963		});
3964
3965		$('.mobile-main-menu .sidebar-nav li i').click(function(){
3966			if ($(this).parent().children('ul').length > 0){
3967				$(this).parent().toggleClass('sub_open');
3968			}
3969			if ($(this).hasClass('fa-plus')){
3970				$(this).removeClass('fa-plus').addClass('fa-minus');
3971			} else {
3972				$(this).removeClass('fa-minus').addClass('fa-plus');
3973			}
3974		});
3975	})
3976
3977	if ($(window).width() > 740 && $(window).width() < 1100) {
3978
3979		$(document).ready(function(){
3980			$('.tablet-menu .tablet-menu-ul').find('li').each(function(){
3981
3982				if ($(this).children('ul').length > 0){
3983					$(this).prepend('<i class="fa fa-plus tablet-fa hidden-sm hidden-md hidden-lg" aria-hidden="true"></i>');
3984					$(this).find('a').after('<div class="clearfix"></div>');
3985					var this_link = $(this).children('a').text().replace(/[^\x00-\x7F]/g, "");;
3986					$(this).children('a').html(this_link);
3987					$(this).find('span').after('<div class="clearfix"></div>');
3988				}
3989				$(this).append('<div class="clearfix"></div>');
3990			});
3991
3992			$('.tablet-menu .tablet-menu-ul li i').click(function(){
3993
3994				if ($(this).parent().children('ul').length > 0){
3995					$(this).parent().toggleClass('sub_open');
3996
3997					if ($(this).siblings( "ul" ).hasClass('tablet-block')){
3998						$(this).siblings( "ul" ).removeClass('tablet-block').addClass('tablet-none');
3999					} else {
4000						$(this).siblings( "ul" ).addClass( "tablet-block" );
4001
4002						if ($(this).siblings( "ul" ).hasClass('tablet-none')){
4003							$(this).siblings( "ul" ).removeClass('tablet-none')
4004						}
4005
4006						if ($(this).parent().siblings().children('ul').hasClass('tablet-block')) {
4007							$(this).parent().siblings().children('ul').removeClass('tablet-block').addClass('tablet-none');
4008							$(this).parent().siblings().children('i').removeClass('fa-minus').addClass('fa-plus');
4009						}
4010
4011						if ($(this).parent().siblings().children('ul').children().children('ul').hasClass('tablet-block')) {
4012							$(this).parent().siblings().children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none');
4013							$(this).parent().siblings().children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus');
4014						}
4015
4016						if ($(this).siblings('ul').children('ul').children().children('ul').hasClass('tablet-block')) {
4017							$(this).siblings('ul').children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none');
4018							$(this).siblings('ul').children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus');
4019						}
4020
4021					}
4022
4023				}
4024
4025				if ($(this).hasClass('fa-plus')){
4026					$(this).removeClass('fa-plus').addClass('fa-minus');
4027				} else {
4028					$(this).removeClass('fa-minus').addClass('fa-plus');
4029				}
4030			});
4031		})
4032	}
4033	// Append unique ID attribute for mobile main menu links
4034	$('.mobile-main-menu a,.mobile-main-menu span').attr("id", function() { return $(this).attr("id") + "-mobile" });
4035</script>
4035
4036
4037<script>
4038/* Keeps the announcement bar flush with the navbar: this widget's CSS emits static 50px
4039   offsets that are blind to the hide-menu settings, so a hidden or fixed compact-logo
4040   navbar leaves a gap or an overlap. Measure the real navbar state and own the offset. */
4041(function () {
4042    function alignAnnouncementToNavbar() {
4043        var ann = document.querySelector('.announcement-bar');
4044        if (!ann) { return; }
4045        /* above the widget's own offset breakpoints: restore stylesheet values */
4046        if (window.innerWidth > 1100) {
4047            ann.style.removeProperty('margin-top');
4048            ann.style.removeProperty('top');
4049            return;
4050        }
4051        var navbar = document.querySelector('.header nav.navbar.navbar-default');
4052        var navStyle = navbar ? window.getComputedStyle(navbar) : null;
4053        /* navbar hidden: the 50px offsets have nothing to clear, sit flush */
4054        if (!navbar || navStyle.display === 'none') {
4055            ann.style.setProperty('margin-top', '0px', 'important');
4056            ann.style.setProperty('top', '0px', 'important');
4057            return;
4058        }
4059        if (window.innerWidth >= 768) { return; }
4060        /* only act while the navbar is pinned and showing the compact logo */
4061        if (navStyle.position !== 'fixed') { return; }
4062        var logo = navbar.querySelector('.mobile_website_logo');
4063        if (!logo || window.getComputedStyle(logo).display === 'none') { return; }
4064        var navRect = navbar.getBoundingClientRect();
4065        var annRect = ann.getBoundingClientRect();
4066        var delta = Math.round(navRect.bottom - annRect.top); /* >0 overlap, <0 gap */
4067        if (delta === 0) { return; }
4068        var currentMt = parseFloat(window.getComputedStyle(ann).marginTop) || 0;
4069        var nextMt = currentMt + delta;
4070        /* a transient element above the bar during load can inflate the measure; a
4071           negative margin would pull the bar behind the navbar, so clamp at 0 */
4072        if (nextMt < 0) { nextMt = 0; }
4073        /* !important to beat the widget's "margin-top: 50px !important" rule */
4074        ann.style.setProperty('margin-top', nextMt + 'px', 'important');
4075    }
4076
4077    function run() {
4078        alignAnnouncementToNavbar();
4079        /* re-run after late layout shifts (fonts, async embeds) */
4080        window.setTimeout(alignAnnouncementToNavbar, 250);
4081        window.setTimeout(alignAnnouncementToNavbar, 1200);
4082    }
4083
4084    if (document.readyState === 'loading') {
4085        document.addEventListener('DOMContentLoaded', run);
4086    } else {
4087        run();
4088    }
4089    window.addEventListener('load', alignAnnouncementToNavbar);
4090    var resizeTimer;
4091    window.addEventListener('resize', function () {
4092        window.clearTimeout(resizeTimer);
4093        resizeTimer = window.setTimeout(alignAnnouncementToNavbar, 150);
4094    });
4095})();
4096</script>
vendor: 2 bytes, line 4096
4096
4097<script>
4098     $('#newsletter input[name="email"]').on('keypress', function() {
4099        $("#newsletter > .gdpr_consent_email").show();
4100    });
4101	$('#newsletter_signup_footer input[name="email"]').on('keypress', function() {
4102        $("#newsletter_signup_footer > .gdpr_consent_email").show();
4103    });
4104</script>
4104        
4104<script type="text/javascript">
4105
4106        var counterSubmit = 0;
4107        $(document).ready(function() {
4108            /* grecaptcha.reset() with no argument always resets widget 0. On a page with two
4109               captcha holders that clears the wrong checkbox, so the widget the visitor solved
4110               keeps a token Google has already spent and every retry fails the security check.
4111               captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha";
4112               an undefined id means no per-form id is known and the arg-less call is used,
4113               exactly as before. */
4114            function bdCaptchaWidgetId(formId) {
4115                if (typeof captchaHolders === "undefined" || !formId) {
4116                    return undefined;
4117                }
4118                /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84),
4119                   so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from
4120                   the holder element itself so the counter never has to be reconstructed. */
4121                var form = document.getElementById(formId);
4122                var holder = form && form.querySelector(".g-recaptcha");
4123                return holder ? captchaHolders[holder.id] : undefined;
4124            }
4125
4126            function bdCaptchaReset(formId) {
4127                if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") {
4128                    return;
4129                }
4130                var widgetId = bdCaptchaWidgetId(formId);
4131                if (widgetId === undefined) {
4132                    grecaptcha.reset();
4133                } else {
4134                    grecaptcha.reset(widgetId);
4135                }
4136            }
4137
4138            // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry
4139            // rules for fields that are NOT rendered in this form (conditionally-rendered or
4140            // duplicated form configs). Those phantom rules make formValidation mis-evaluate
4141            // isValid(), so an empty required field bypasses validation and submits natively.
4142            // Remove any rule whose field has no matching element before initializing.
4143            // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly
4144            // REMOVES rules (never adds validators, never overrides native submit, never
4145            // intercepts on capture phase, never re-validates on click) — so it cannot
4146            // reproduce the "Save button slides down / nav broken / no success message"
4147            // regression that caused #5902 to be rolled back on site 19413.
4148            var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"6LfhXt8sAAAAAJL4MkgqvsOdY53C6pIw3RIhlGMq","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Please enter a value"},"emailAddress":{"message":"Please enter a valid email address"}}}}};
4149            var formElement = $(`form[name='newsletter_modal_signup_380']`);
4150            if(validatorConfig && validatorConfig.fields) {
4151                Object.keys(validatorConfig.fields).forEach(function(fieldName) {
4152                    if(formElement.find('[name="' + fieldName + '"]').length === 0) {
4153                        delete validatorConfig.fields[fieldName];
4154                    }
4155                });
4156            }
4157
4158            // Scroll to the first invalid field when submit fails validation,
4159            // so the user can immediately see why the form will not submit
4160            formElement.on('err.form.fv', function(e) {
4161                var $firstError = $(e.target).find('.form-group.has-error').first();
4162                if ($firstError.length) {
4163                    $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700);
4164                }
4165            });
4166
4167            formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) {
4168
4169                if('newsletter_modal_signup' == 'unsubscribe_email'){
4170                    return true;
4171                }
4172                // Prevent form submission
4173                e.preventDefault();
4174                $form = $(e.target),
4175                fv = $form.data('formValidation');
4176
4177                // Check HTML5 required fields that FormValidation may not know about
4178                var requiredEmpty = false;
4179                $form.find('[required]').each(function() {
4180                    var val = $(this).val();
4181                    if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) {
4182                        requiredEmpty = true;
4183                        $(this).closest('.form-group').addClass('has-error');
4184                        if ($(this).siblings('.required-error').length === 0) {
4185                            $(this).after('<small class="required-error help-block" style="color:#a94442;">Please enter a value</small>');
4186                        }
4187                    } else {
4188                        var $reqGroup = $(this).closest('.form-group');
4189                        $(this).siblings('.required-error').remove();
4190                        // Keep has-error if another validator is still failing for this field
4191                        if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
4192                            $reqGroup.removeClass('has-error');
4193                        }
4194                    }
4195                });
4196                if (requiredEmpty) {
4197                    fv.disableSubmitButtons(false);
4198                    counterSubmit = 0;
4199                    // Scroll to the first field with an error (HTML5-required scan does
4200                    // not trigger err.form.fv, so handle the scroll here too)
4201                    var $firstReqError = $form.find('.form-group.has-error').first();
4202                    if ($firstReqError.length) {
4203                        $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700);
4204                    }
4205                    return false;
4206                }
4207
4208                var values = $(this).serialize();
4209
4210                
4211                var locationFieldCorrect = true;
4212
4213                if($("#newsletter_modal_signup_380 .location_required").length > 0){
4214                    $("#newsletter_modal_signup_380 .location_required").each(function (index) {
4215                        if($(this).data('state') == 1){
4216                            if($('#newsletter_modal_signup_380 input[name="lead_location"]').val() == "" || $('#newsletter_modal_signup_380 input[name="lat"]').val() == "" || $('#newsletter_modal_signup_380 input[name="lng"]').val() == "") {
4217                                locationFieldCorrect = false;
4218                            }
4219                        }
4220                    });
4221                }
4222
4223                if(locationFieldCorrect === false){
4224                    //check that there is a latitude or longitude
4225                    swal(`Whoops!`, `The location information is required to submit this form`, "error");
4226                    return false;
4227                }
4228                        
4229
4230                if (!$(this).attr("action")) {
4231                    var action = '';
4232
4233                } else {
4234                    var action = $(this).attr("action");
4235                }
4236                if (!$(this).attr("method")) {
4237                    var method = 'post';
4238
4239                } else {
4240                    var method = $(this).attr("method");
4241                }
4242                if (!$(this).attr("form_action_type")) {
4243                    var form_action_type = 'notification';
4244
4245                } else {
4246                    var form_action_type = $(this).attr("form_action_type");
4247                }
4248                if (!$(this).attr("form_action_div")) {
4249                    /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */
4250                    var form_action_div = $('#main-content').length ? '#main-content' : '#first_container';
4251
4252                } else {
4253                    var form_action_div = $(this).attr("form_action_div");
4254                }
4255                if (!$(this).attr("return_data_type")) {
4256                    var return_data_type = 'json';
4257
4258                } else {
4259                    var return_data_type = $(this).attr("return_data_type");
4260                }
4261                var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000);
4262                if (!submitInFlight) {
4263                    if ($("#newsletter_modal_signup_380-notification").html() != "") {
4264                        $("#newsletter_modal_signup_380-notification").remove();
4265                    }
4266                    if ($(this).find('input[type="submit"]').length > 0) {
4267                        $(this).find('input[type="submit"]').before('<div id="newsletter_modal_signup_380-notification" class="alert"></div>');
4268
4269                    } else {
4270                        $(this).prepend('<div id="newsletter_modal_signup_380-notification" class="alert"></div>');
4271                    }
4272                }
4273                var notification = $("#newsletter_modal_signup_380-notification");
4274
4275                if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) {
4276                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
4277                    setTimeout(function(){
4278                        fv.defaultSubmit();
4279                    }, 100);
4280                } else {
4281                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
4282                    if(!submitInFlight) {
4283                        counterSubmit++;
4284                        $form.data('bdLastSubmitAt', Date.now());
4285
4286                        var fields      = $(this).serializeArray();
4287                        var formField   = [];
4288                        var processData = true;
4289                        var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
4290                        
4291                        
4292
4293                        if($("#newsletter_modal_signup_380 input[type=file]").length > 0){
4294                            
4295                            var formObject  = new FormData();
4296                            processData     = false;
4297                            contentType     = false;
4298
4299                            $(fields).each(function(index,field){
4300                                formField.push(field.name+"="+field.value);
4301                            });
4302
4303                            values  = formField.join("&");
4304
4305                            $(formField).each(function(index,fieldValue){
4306                                var fieldInfo = fieldValue.split('=');
4307                                formObject.append(fieldInfo[0],fieldInfo[1]);
4308                            });
4309
4310                            $("#newsletter_modal_signup_380 input[type=file]").each(function(index,node){
4311                                var file = this.files[0];
4312                                if(typeof file != "undefined"){
4313                                    formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name);
4314                                }
4315                            });
4316                        }else{
4317                            
4318                            $(fields).each(function(index,field){
4319                                formField.push(field.name+"="+encodeURIComponent(field.value));
4320                            });
4321
4322                            var formObject  = formField.join("&");
4323                        } 
4324                        
4325                        $.ajax({
4326                            url: action,
4327                            type: method,
4328                            data: formObject,
4329                            dataType: return_data_type,
4330                            processData: processData,
4331                            contentType: contentType,
4332                            success: function (data) {
4333                                // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above.
4334                                notification = $("#newsletter_modal_signup_380-notification");
4335                                if (return_data_type == "html") {
4336                                    var result = 'success';
4337
4338                                    if (!data != "") {
4339                                        var result_widget = data['result_widget'];
4340                                    }
4341
4342                                } else {
4343
4344
4345                                    if (!data['result']) {
4346                                        var result = 'error';
4347                                    } else {
4348                                        var result = data['result'];
4349                                    }
4350                                    if (!data['result_widget']) {
4351                                        var result_widget = '';
4352
4353                                    } else {
4354                                        var result_widget = data['result_widget'];
4355                                    }
4356                                }
4357                                if (result == "success") {
4358
4359                                    if (!data['message']) {
4360                                        var message = `Your information has submitted successfully!`;
4361
4362                                    } else {
4363                                        var message = data['message'];
4364                                    }
4365                                    if (!data['redirect_url']) {
4366                                        var redirect_url = '';
4367
4368                                    } else {
4369                                        var redirect_url = data['redirect_url'];
4370                                    }
4371
4372
4373
4374                                    if (form_action_type == "notification") {
4375                                        if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) {
4376                                            if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
4377                                                redirect_url = "/" + redirect_url;
4378                                            }
4379                                            if (notification.parents('.modal').length) {
4380                                                $('.modal-backdrop').hide();
4381                                                $('.modal').modal('hide');
4382                                            }
4383                                            window.location.href = redirect_url;
4384                                            fv.resetForm(true);
4385                                        } else {
4386                                        notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>')
4387                                            .addClass('alert-dismissible')
4388                                            .addClass("alert-success-subtle")
4389                                            .removeClass("alert-danger-subtle")
4390                                            .removeClass("alert-warning-subtle")
4391                                        
4392                                            
4393
4394                                        if(notification.parents('.modal').length && 'newsletter_modal_signup_380' == 'whmcs_billing_address'){
4395                                            setTimeout(function(){
4396                                                notification.parents('.modal').modal('hide');
4397                                            }, 1000);
4398                                        }
4399                                        }
4400
4401                                    } else if (form_action_type == "widget") {
4402
4403                                        if (result_widget != '') {
4404
4405                                            setTimeout(function(){
4406                                                if(form_action_div != '.newsletter_modal_form_container'){
4407                                                    $("html, body").animate({ scrollTop: 0 }, 600);
4408                                                }                                                
4409                                                $(form_action_div).html(decodeHtml(result_widget)).text();
4410
4411                                            }, 1000);
4412                                        }
4413
4414                                    } else if (form_action_type == "redirect") {
4415
4416                                        if (redirect_url == "") {
4417                                            redirect_url = decodeURIComponent("");
4418                                        }
4419
4420                                        if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
4421                                            redirect_url = "/" + redirect_url;
4422                                        }
4423                                        current_location = "/login";
4424                                        refresh_pages_string = "/login";
4425                                        refresh_pages_string = refresh_pages_string.replace(/ /g,'');
4426                                        refresh_pages_array = refresh_pages_string.split(',');
4427                                        notification.html(message)
4428                                            .addClass("alert-success-subtle")
4429                                            .removeClass("alert-danger-subtle")
4430                                            .removeClass("alert-warning-subtle")
4431                                            .delay(2000).slideUp();
4432                                            if(action == "/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" && current_location.indexOf("/login") == -1 && refresh_pages_string != '' && (!refresh_pages_array.includes(current_location) || refresh_pages_string == "/login" )){
4433                                                                                                    window.location.href = window.location.href+'?logged';
4434                                                                                            } else {
4435                                                window.location.href = redirect_url;
4436                                            }
4437
4438                                        fv.resetForm(true);
4439                                    }
4440                                    if(form_action_div != '.newsletter_modal_form_container' && 'newsletter_modal_signup_380' != 'whmcs_billing_address'){
4441                                        $('.modal-backdrop').hide();
4442                                    }
4443                                } else {
4444                                    bdCaptchaReset(formElement.attr('id'));
4445                                    if (!data['message']) {
4446                                        var message = `You entered invali
4446d data. Please try to save again.`;
4447
4448                                    } else {
4449                                        var message = data['message'];
4450                                    }
4451                                    $("#newsletter_modal_signup_380-notification").html(message)
4452                                        .addClass("alert-danger-subtle")
4453                                        .removeClass("alert-success-subtle")
4454                                        .removeClass("alert-warning-subtle")
4455                                        .fadeIn();
4456                                    fv.disableSubmitButtons(false);
4457                                }
4458                                counterSubmit = 0;
4459                            },
4460                            error: function (e) {
4461                                
4462                                if(typeof grecaptcha !== "undefined" && typeof grecaptcha.reset === "function"){
4463                                        bdCaptchaReset(formElement.attr('id'));
4464                                        $("#newsletter_modal_signup_380-notification").html(`Recaptcha Error`);
4465                                } else {
4466                                    $("#newsletter_modal_signup_380-notification").html(`A connection error occurred while saving. Please try to save again.`);
4467                                }
4468                                $("#newsletter_modal_signup_380-notification").addClass("alert-warning-subtle")
4469                                    .removeClass("alert-success-subtle")
4470                                    .removeClass("alert-warning-subtle")
4471                                    .fadeIn();
4472                                counterSubmit = 0;
4473                            }
4474                        });/// End Ajax
4475                    }
4476                }//END else
4477            }).bind('keydown', function(event) {
4478
4479                if (event.ctrlKey || event.metaKey) {
4480
4481                    switch (String.fromCharCode(event.which).toLowerCase()) {
4482
4483                        case 's':
4484                            var nativeForm = $(this)[0];
4485                            if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
4486                                event.preventDefault();
4487                                return false;
4488                            }
4489                            $(this).submit();
4490                            break;
4491                    }
4492                }
4493            });
4494
4495            /// This will turn any select2 that are required in the form builder to being required elements.
4496            $('#newsletter_modal_signup_380 select').each(function (i, obj) {
4497                setTimeout(function(){
4498                    if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") {
4499                        $(obj).css("z-index","-999");
4500                        $(obj).css("height","0");
4501                        $(obj).css("width","0");
4502                        $(obj).css("display","block");  
4503                        $(obj).css("position","absolute");  
4504                    }
4505                }, 3000);
4506            });
4507
4508            // Clear required-error messages when user fills in a required field
4509            $('#newsletter_modal_signup_380').on('keyup change', '[required]', function() {
4510                var val = $(this).val();
4511                if (val !== '' && val !== null && val.trim() !== '') {
4512                    var $group = $(this).closest('.form-group');
4513                    // Remove only this handler's own required message
4514                    $(this).siblings('.required-error').remove();
4515                    // Keep has-error if another FormValidation validator is still failing
4516                    // (e.g. stringLength, regexp). has-error is shared, so removing it
4517                    // wholesale would clobber other validators' red styling.
4518                    if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
4519                        $group.removeClass('has-error');
4520                    }
4521                }
4522            });
4523
4524        });//END $('# echo $_SERVER[form_element_id]; ').formValidation(
4525    </script>
4525
4526        <div class="modal fade" id="newsletter_subscribe_modal" tabindex="-1" role="dialog" aria-hidden="true">
4527	<div class="modal-dialog">
4528		<div class="modal-content">
4529			<div class="container-fluid">
4530				<div class="row">
4531					<div class="col-md-12">
4532						<br>
4533						<button type="button" class="close" data-dismiss="modal" aria-label="Close">
4534							<span aria-hidden="true">&times;</span>
4535						</button>
4536						<h3 class="nomargin">
4537							Join Our Newsletter
4538						</h3>
4539						<hr>
4540						<div class="newsletter_modal_form_container">
4541							 <style type="text/css">label span.required { color: #B94A48; }span.help-inline, span.help-block {font-size: .9em; }</style><form action="/api/widget/json/get/Bootstrap%20Theme%20-%20Module%20-%20Newsletter%20Actions" id="newsletter_modal_signup_380" method="post" labelwidth="100" labelpaddingtop="0.5em" enctype="multipart/form-data" form_action_type="widget" form_action_div=".newsletter_modal_form_container" return_data_type="" name="newsletter_modal_signup_380" class=" "><input type="hidden" name="sized" value="0" id="newsletter_modal_signup_380-element-0"/><input type="hidden" name="form" value="myform" id="newsletter_modal_signup_380-element-1"/><input type="hidden" name="formname" value="newsletter_modal_signup" id="newsletter_modal_signup_380-element-2"/><input type="hidden" name="dowiz" value="1" id="newsletter_modal_signup_380-element-3"/><input type="hidden" name="save" value="1" id="newsletter_modal_signup_380-element-4"/><input type="hidden" name="url_origin_pars" value="/login" id="newsletter_modal_signup_380-element-5"/><input type="hidden" name="action" autocomplete="off" value="subscribe" id="newsletter_modal_signup_380-element-6"/><div class="form-group"><input type="text" name="first_name" placeholder="Name" autocomplete="off" value class="form-control control-group  form-control " id="newsletter_modal_signup_380-element-7"/></div><div class="form-group"><input type="email" name="email" required placeholder="Enter email address" autocomplete="off" value class="form-control control-group form-control" id="newsletter_modal_signup_380-element-8"/></div><div class="form-group"><div class="form-group security_question_label">
4542            <div id="newsletter_modal_signup_380-captchaContainer" class="control-group">
4543        <div class="g-recaptcha"  id="newsletter_modal_signup_380-google-recaptcha"></div>
4544    </div>
4545    <small class="help-block" id="recaptcha_error" style="display:none;" data-fv-validator="notEmpty" data-fv-for="recaptcha" data-fv-result="INVALID" />The security check was not completed successfully.</small>
4546    <div class="clearfix bmargin"></div>
4547    <input type="hidden" name="recaptcha" id="newsletter_modal_signup_380-rcap">
4548</div>
4549    <style>
4550        .modal .g-recaptcha-scale, .col-md-4 .g-recaptcha-scale, .col-md-3 .g-recaptcha-scale, .col-lg-3 .g-recaptcha-scale, .col-lg-4 .g-recaptcha-scale {
4551            transform: scale(0.77);
4552            -webkit-transform: scale(0.77);
4553            transform-origin: 0 0;
4554            -webkit-transform-origin: 0 0;
4555            margin-bottom: -15px;
4556        }
4557
4558        .modal #newsletter_modal_signup_380-captchaContainer, .col-md-4 #newsletter_modal_signup_380-captchaContainer, .col-md-3 #newsletter_modal_signup_380-captchaContainer, .col-lg-3 #newsletter_modal_signup_380-captchaContainer, .col-lg-4 #newsletter_modal_signup_380-captchaContainer {
4559            transform: scale(0.77);
4560            -webkit-transform: scale(0.77);
4561            transform-origin: 0 0;
4562            -webkit-transform-origin: 0 0;
4563            margin-bottom: -15px;
4564        }
4565    </style>
4566    
4566<script type="text/javascript">
4567        if(typeof formsFound == "undefined"){
4568            var formID                  = '';
4569            var currentCaptcha          = {};
4570            var captchaHolders          = {};
4571            var formsFound              = {};
4572            var captchaApiRequested     = false;
4573            /* The forms the visitor has actually interacted with - only these get a widget. */
4574            var captchaArmedForms       = [];
4575            /* api.js stays lazy - nothing is fetched from Google until the visitor actually
4576               touches the form. 'click' alone was too narrow: a keyboard-only visitor tabs in
4577               and presses Enter without ever clicking, so api.js never loaded, the captcha
4578               never rendered, and the form POSTed an empty token. */
4579            var captchaTriggerEvents    = ['click', 'keydown', 'focusin', 'touchstart'];
4580
4581            window.addEventListener('load', () => {
4582                formID = document.querySelectorAll('[name="recaptcha"]');
4583                if (typeof formID != "undefined" && formID !== null) {
4584                    for (let i = 0; i < formID.length; i++) {
4585                        let formIDForm      = formID[i].closest('form');
4586                        let captchaHolder   = formIDForm.querySelector(".g-recaptcha");
4587
4588                        if (typeof formsFound[formIDForm.id] != "undefined") {
4589                            formsFound[formIDForm.id]['counter']++;
4590                        }else{
4591                            formsFound[formIDForm.id] = {'counter' : 1};
4592                        }
4593
4594                        formIDForm.setAttribute('data-counter', formsFound[formIDForm.id]['counter']);
4595                        captchaHolder.setAttribute('id',captchaHolder.id+'-'+formsFound[formIDForm.id]['counter']);
4596
4597                        if (typeof formIDForm != "undefined" && formIDForm !== null) {
4598                            captchaTriggerEvents.forEach( evt =>
4599                                formIDForm.addEventListener(evt, reCaptchaOnFormInteraction, false)
4600                            );
4601                        }
4602                    }
4603                }
4604            });
4605        }
4606
4607        function reCaptchaOnFormInteraction(event) {
4608            if (event && event.currentTarget) {
4609                captchaArmForm(event.currentTarget);
4610            }
4611            if (captchaApiRequested) {
4612                renderArmedCaptchas();
4613                return;
4614            }
4615            captchaApiRequested = true;
4616
4617            var head    = document.getElementsByTagName('head')[0];
4618            var script  = document.createElement('script');
4619            script.type = 'text/javascript';
4620            script.src  = 'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=en';
4621            head.appendChild(script);
4622        }
4623
4624        var captchaArmForm = function (formEl) {
4625            if (!formEl) {
4626                return;
4627            }
4628            for (var a = 0; a < captchaArmedForms.length; a++) {
4629                if (captchaArmedForms[a] === formEl) {
4630                    return;
4631                }
4632            }
4633            captchaArmedForms.push(formEl);
4634        };
4635
4636        var captchaSolvedCallback = function (holder) {
4637            return function () {
4638                var formEl = holder.closest('form');
4639                if (!formEl) {
4640                    return;
4641                }
4642                $(formEl).find('.security_question_label').removeClass('has-error');
4643                $(formEl).find('#recaptcha_error').css('display', 'none');
4644                var notification = document.getElementById(formEl.id + '-notification');
4645                if (notification && notification.classList.contains('alert-danger-subtle')) {
4646                    $(notification).slideUp();
4647                }
4648            };
4649        };
4650
4651        var renderArmedCaptchas = function () {
4652            if (typeof grecaptcha === "undefined" || typeof grecaptcha.render !== "function") {
4653                return;
4654            }
4655            for (var f = 0; f < captchaArmedForms.length; f++) {
4656                var holder = captchaArmedForms[f].querySelector('div[class=g-rec
4656aptcha]');
4657
4658                if (!holder || !holder.id || holder.getClientRects().length === 0) {
4659                    continue;
4660                }
4661                /* Guard a second render: grecaptcha throws on an element it already claimed. */
4662                if (typeof captchaHolders[holder.id] === "undefined") {
4663                    captchaHolders[holder.id] = grecaptcha.render(holder.id, {
4664                        'sitekey': '6LfhXt8sAAAAAJL4MkgqvsOdY53C6pIw3RIhlGMq',
4665                        'callback': captchaSolvedCallback(holder)
4666                    });
4667                }
4668            }
4669        };
4670
4671        var onloadCallback = function (event) {
4672            renderArmedCaptchas();
4673        };
4674
4675    </script>
vendor: 1 bytes, line 4675
4675
4676<script>
4677    $(document).ready(function(){
4678        /* Implicit submission (Enter inside a field) fires 'submit' without firing a click on
4679           the submit button, so the click guard below never sees it and the form POSTed an
4680           empty token. Bound on document/capture so it runs before FormValidation's own
4681           handler on the form - at AT_TARGET the capture flag does not order listeners, so a
4682           listener on the form itself would not reliably win. Native HTMLFormElement.submit()
4683           does not dispatch 'submit', so the solved-captcha path below is unaffected. */
4684        var captchaGuardedForm = document.getElementById('newsletter_modal_signup_380');
4685        if (captchaGuardedForm) {
4686            document.addEventListener('submit', function (event) {
4687                if (event.target !== captchaGuardedForm) {
4688                    return;
4689                }
4690
4691                var formId              = captchaGuardedForm.id;
4692                var captchaHolderKey    = formId + "-google-recaptcha-" + $(captchaGuardedForm).data('counter');
4693                var captchaRendered     = typeof captchaHolders[captchaHolderKey] != "undefined";
4694
4695                if (captchaRendered && grecaptcha.getResponse(captchaHolders[captchaHolderKey]) !== "") {
4696                    $("#" + formId + " .security_question_label").removeClass("has-error");
4697                    $("#" + formId + " #recaptcha_error").css("display", "none");
4698                    return;
4699                }
4700
4701                /* Unsolved, or api.js still in flight: either way there is no token to send. */
4702                event.preventDefault();
4703                event.stopImmediatePropagation();
4704                $("#" + formId + " .security_question_label").addClass("has-error");
4705                $("#" + formId + " #recaptcha_error").css("display", "block");
4706                return false;
4707            }, true);
4708        }
4709        $("#newsletter_modal_signup_380 input[type=submit]").unbind('click');
4710        $("#newsletter_modal_signup_380 input[type=submit]").click(function (event) {
4711
4712            var formId = $(this.form).attr('id');
4713            var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter');
4714
4715            if (typeof captchaHolders[captchaHolderKey] != "undefined") {
4716                if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") {
4717                    event.preventDefault();
4718                    $("#" + formId).formValidation('validate');
4719                    $("#" + formId + " .security_question_label").addClass("has-error");
4720                    $("#" + formId + " #recaptcha_error").css("display", "block");
4721                    return false;
4722                }
4723
4724                /* Solved captcha: clear the error UI and let the click proceed untouched.
4725                   The browser then fires a REAL, button-initiated submit event, so
4726                   FormValidation runs its normal chain (success.form.fv -> AJAX modal on
4727                   checkout / native POST on login). Re-submitting here artificially broke
4728                   both ways: native form.submit() skips the FV chain (checkout rendered the
4729                   raw JSON response), and jQuery .submit() fires a synthetic submit that FV
4730                   refuses, leaving the form stuck after the first error (Bug 2). */
4731                $("#" + formId + " .security_question_label").removeClass("has-error");
4732                $("#" + formId + " #recaptcha_error").css("display", "none");
4733            }
4734        });
4735    });
4736</script>
4736</div><div class="form-group"><input type="hidden" name="bd_hpc" autocomplete="off" value class="form-control control-group " id="newsletter_modal_signup_380-element-11"/></div><div class="form-actions"><input type="submit" value="Subscribe Now" name class="btn btn-primary btn-block btn-lg  bold " id="newsletter_modal_signup_380-element-12"/></div><input type='hidden' name='origin' value='/login'></form>
4736<script type="text/javascript">jQuery(document).ready(function() {		jQuery("#newsletter_modal_signup_380").bind("submit", function() { 
4737		});}); </script>
4737 						</div>						
4738						<br>
4739					</div>
4740				</div>
4741			</div>
4742		</div>
4743	</div>
4744</div>                
4744<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/formValidation.min.js"></script>
4744
4745                
4745<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/framework/bootstrap.min.js"></script>
4745
4746                
4746<script type="text/javascript">
4747                    function decodeHtml(html) {
4748                        var txt = document.createElement("textarea");
4749                        txt.innerHTML = html;
4750                        return txt.value;
4751                    }
4752                    
4753                    // Override FormValidation URI validator to prevent recursion with URLs that contain @ characters
4754                    $(function() {
4755                        function applyFix() {
4756                            // Check if FormValidation library and URI validator are loaded
4757                            if (FormValidation && FormValidation.Validator && FormValidation.Validator.uri) {
4758                                FormValidation.Validator.uri.validate = function(validator, $field, options) {
4759                                    var value = validator.getFieldValue($field, 'uri').trim();
4760                                    return value === '' || new RegExp('^https?://[^\\s]+\\.[^\\s]{2,}').test(value);
4761                                };
4762                                return true;
4763                            }
4764                            return false;
4765                        }
4766                        
4767                        if (!applyFix()) {
4768                            setTimeout(applyFix, 50);
4769                        }
4770                    });
4771                </script>
4771
4772                        
4772<script type="text/javascript">
4773
4774        var counterSubmit = 0;
4775        $(document).ready(function() {
4776            /* grecaptcha.reset() with no argument always resets widget 0. On a page with two
4777               captcha holders that clears the wrong checkbox, so the widget the visitor solved
4778               keeps a token Google has already spent and every retry fails the security check.
4779               captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha";
4780               an undefined id means no per-form id is known and the arg-less call is used,
4781               exactly as before. */
4782            function bdCaptchaWidgetId(formId) {
4783                if (typeof captchaHolders === "undefined" || !formId) {
4784                    return undefined;
4785                }
4786                /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84),
4787                   so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from
4788                   the holder element itself so the counter never has to be reconstructed. */
4789                var form = document.getElementById(formId);
4790                var holder = form && form.querySelector(".g-recaptcha");
4791                return holder ? captchaHolders[holder.id] : undefined;
4792            }
4793
4794            function bdCaptchaReset(formId) {
4795                if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") {
4796                    return;
4797                }
4798                var widgetId = bdCaptchaWidgetId(formId);
4799                if (widgetId === undefined) {
4800                    grecaptcha.reset();
4801                } else {
4802                    grecaptcha.reset(widgetId);
4803                }
4804            }
4805
4806            // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry
4807            // rules for fields that are NOT rendered in this form (conditionally-rendered or
4808            // duplicated form configs). Those phantom rules make formValidation mis-evaluate
4809            // isValid(), so an empty required field bypasses validation and submits natively.
4810            // Remove any rule whose field has no matching element before initializing.
4811            // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly
4812            // REMOVES rules (never adds validators, never overrides native submit, never
4813            // intercepts on capture phase, never re-validates on click) — so it cannot
4814            // reproduce the "Save button slides down / nav broken / no success message"
4815            // regression that caused #5902 to be rolled back on site 19413.
4816            var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"6LfhXt8sAAAAAJL4MkgqvsOdY53C6pIw3RIhlGMq","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Please enter a value"},"emailAddress":{"message":"Please enter a valid email address"}}},"pass":{"validators":{"notEmpty":{"message":"Please enter a value"}}}}};
4817            var formElement = $(`form[name='member_login_190-1']`);
4818            if(validatorConfig && validatorConfig.fields) {
4819                Object.keys(validatorConfig.fields).forEach(function(fieldName) {
4820                    if(formElement.find('[name="' + fieldName + '"]').length === 0) {
4821                        delete validatorConfig.fields[fieldName];
4822                    }
4823                });
4824            }
4825
4826            // Scroll to the first invalid field when submit fails validation,
4827            // so the user can immediately see why the form will not submit
4828            formElement.on('err.form.fv', function(e) {
4829                var $firstError = $(e.target).find('.form-group.has-error').first();
4830                if ($firstError.length) {
4831                    $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700);
4832                }
4833            });
4834
4835            formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) {
4836
4837                if('member_login' == 'unsubscribe_email'){
4838                    return true;
4839                }
4840                // Prevent form submission
4841                e.preventDefault();
4842                $form = $(e.target),
4843                fv = $form.data('formValidation');
4844
4845                // Check HTML5 required fields that FormValidation may not know about
4846                var requiredEmpty = false;
4847                $form.find('[required]').each(function() {
4848                    var val = $(this).val();
4849                    if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) {
4850                        requiredEmpty = true;
4851                        $(this).closest('.form-group').addClass('has-error');
4852                        if ($(this).siblings('.required-error').length === 0) {
4853                            $(this).after('<small class="required-error help-block" style="color:#a94442;">Please enter a value</small>');
4854                        }
4855                    } else {
4856                        var $reqGroup = $(this).closest('.form-group');
4857                        $(this).siblings('.required-error').remove();
4858                        // Keep has-error if another validator is still failing for this field
4859                        if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
4860                            $reqGroup.removeClass('has-error');
4861                        }
4862                    }
4863                });
4864                if (requiredEmpty) {
4865                    fv.disableSubmitButtons(false);
4866                    counterSubmit = 0;
4867                    // Scroll to the first field with an error (HTML5-required scan does
4868                    // not trigger err.form.fv, so handle the scroll here too)
4869                    var $firstReqError = $form.find('.form-group.has-error').first();
4870                    if ($firstReqError.length) {
4871                        $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700);
4872                    }
4873                    return false;
4874                }
4875
4876                var values = $(this).serialize();
4877
4878                
4879                var locationFieldCorrect = true;
4880
4881                if($("#member_login_190-1 .location_required").length > 0){
4882                    $("#member_login_190-1 .location_required").each(function (index) {
4883                        if($(this).data('state') == 1){
4884                            if($('#member_login_190-1 input[name="lead_location"]').val() == "" || $('#member_login_190-1 input[name="lat"]').val() == "" || $('#member_login_190-1 input[name="lng"]').val() == "") {
4885                                locationFieldCorrect = false;
4886                            }
4887                        }
4888                    });
4889                }
4890
4891                if(locationFieldCorrect === false){
4892                    //check that there is a latitude or longitude
4893                    swal(`Whoops!`, `The location information is required to submit this form`, "error");
4894                    return false;
4895                }
4896                        
4897
4898                if (!$(this).attr("action")) {
4899                    var action = '';
4900
4901                } else {
4902                    var action = $(this).attr("action");
4903                }
4904                if (!$(this).attr("method")) {
4905                    var method = 'post';
4906
4907                } else {
4908                    var method = $(this).attr("method");
4909                }
4910                if (!$(this).attr("form_action_type")) {
4911                    var form_action_type = 'notification';
4912
4913                } else {
4914                    var form_action_type = $(this).attr("form_action_type");
4915                }
4916                if (!$(this).attr("form_action_div")) {
4917                    /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */
4918                    var form_action_div = $('#main-content').length ? '#main-content' : '#first_container';
4919
4920                } else {
4921                    var form_action_div = $(this).attr("form_action_div");
4922                }
4923                if (!$(this).attr("return_data_type")) {
4924                    var return_data_type = 'json';
4925
4926                } else {
4927                    var return_data_type = $(this).attr("return_data_type");
4928                }
4929                var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000);
4930                if (!submitInFlight) {
4931                    if ($("#member_login_190-1-notification").html() != "") {
4932                        $("#member_login_190-1-notification").remove();
4933                    }
4934                    if ($(this).find('input[type="submit"]').length > 0) {
4935                        $(this).find('input[type="submit"]').before('<div id="member_login_190-1-notification" class="alert"></div>');
4936
4937                    } else {
4938                        $(this).prepend('<div id="member_login_190-1-notification" class="alert"></div>');
4939                    }
4940                }
4941                var notification = $("#member_login_190-1-notification");
4942
4943                if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) {
4944                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
4945                    setTimeout(function(){
4946                        fv.defaultSubmit();
4947                    }, 100);
4948                } else {
4949                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
4950                    if(!submitInFlight) {
4951                        counterSubmit++;
4952                        $form.data('bdLastSubmitAt', Date.now());
4953
4954                        var fields      = $(this).serializeArray();
4955                        var formField   = [];
4956                        var processData = true;
4957                        var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
4958                        
4959                        
4960
4961                        if($("#member_login_190-1 input[type=file]").length > 0){
4962                            
4963                            var formObject  = new FormData();
4964                            processData     = false;
4965                            contentType     = false;
4966
4967                            $(fields).each(function(index,field){
4968                                formField.push(field.name+"="+field.value);
4969                            });
4970
4971                            values  = formField.join("&");
4972
4973                            $(formField).each(function(index,fieldValue){
4974                                var fieldInfo = fieldValue.split('=');
4975                                formObject.append(fieldInfo[0],fieldInfo[1]);
4976                            });
4977
4978                            $("#member_login_190-1 input[type=file]").each(function(index,node){
4979                                var file = this.files[0];
4980                                if(typeof file != "undefined"){
4981                                    formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name);
4982                                }
4983                            });
4984                        }else{
4985                            
4986                            $(fields).each(function(index,field){
4987                                formField.push(field.name+"="+encodeURIComponent(field.value));
4988                            });
4989
4990                            var formObject  = formField.join("&");
4991                        } 
4992                        
4993                        $.ajax({
4994                            url: action,
4995                            type: method,
4996                            data: formObject,
4997                            dataType: return_data_type,
4998                            processData: processData,
4999                            contentType: contentType,
5000                            success: function (data) {
5001                                // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above.
5002                                notification = $("#member_login_190-1-notification");
5003                                if (return_data_type == "html") {
5004                                    var result = 'success';
5005
5006                                    if (!data != "") {
5007                                        var result_widget = data['result_widget'];
5008                                    }
5009
5010                                } else {
5011
5012
5013                                    if (!data['result']) {
5014                                        var result = 'error';
5015                                    } else {
5016                                        var result = data['result'];
5017                                    }
5018                                    if (!data['result_widget']) {
5019                                        var result_widget = '';
5020
5021                                    } else {
5022                                        var result_widget = data['result_widget'];
5023                                    }
5024                                }
5025                                if (result == "success") {
5026
5027                                    if (!data['message']) {
5028                                        var message = `Your information has submitted successfully!`;
5029
5030                                    } else {
5031                                        var message = data['message'];
5032                                    }
5033                                    if (!data['redirect_url']) {
5034                                        var redirect_url = '';
5035
5036                                    } else {
5037                                        var redirect_url = data['redirect_url'];
5038                                    }
5039
5040
5041
5042                                    if (form_action_type == "notification") {
5043                                        if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) {
5044                                            if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
5045                                                redirect_url = "/" + redirect_url;
5046                                            }
5047                                            if (notification.parents('.modal').length) {
5048                                                $('.modal-backdrop').hide();
5049                                                $('.modal').modal('hide');
5050                                            }
5051                                            window.location.href = redirect_url;
5052                                            fv.resetForm(true);
5053                                        } else {
5054                                        notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>')
5055                                            .addClass('alert-dismissible')
5056                                            .addClass("alert-success-subtle")
5057                                            .removeClass("alert-danger-subtle")
5058                                            .removeClass("alert-warning-subtle")
5059                                        
5060                                            
5061
5062                                        if(notification.parents('.modal').length && 'member_login_190-1' == 'whmcs_billing_address'){
5063                                            setTimeout(function(){
5064                                                notification.parents('.modal').modal('hide');
5065                                            }, 1000);
5066                                        }
5067                                        }
5068
5069                                    } else if (form_action_type == "widget") {
5070
5071                                        if (result_widget != '') {
5072
5073                                            setTimeout(function(){
5074                                                if(form_action_div != '.newsletter_modal_form_container'){
5075                                                    $("html, body").animate({ scrollTop: 0 }, 600);
5076                                                }                                                
5077                                                $(form_action_div).html(decodeHtml(result_widget)).text();
5078
5079                                            }, 1000);
5080                                        }
5081
5082                                    } else if (form_action_type == "redirect") {
5083
5084                                        if (redirect_url == "") {
5085                                            redirect_url = decodeURIComponent("");
5086                                        }
5087
5088                                        if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
5089                                            redirect_url = "/" + redirect_url;
5090                                        }
5091                                        current_location = "/login";
5092                                        refresh_pages_string = "/login";
5093                                        refresh_pages_string = refresh_pages_string.replace(/ /g,'');
5094                                        refresh_pages_array = refresh_pages_string.split(',');
5095                                        notification.html(message)
5096                                            .addClass("alert-success-subtle")
5097                                            .removeClass("alert-danger-subtle")
5098                                            .removeClass("alert-warning-subtle")
5099                                            .delay(2000).slideUp();
5100                                            if(action == "/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" && current_location.indexOf("/login") == -1 && refresh_pages_string != '' && (!refresh_pages_array.includes(current_location) || refresh_pages_string == "/login" )){
5101                                                                                                    window.location.href = window.location.href+'?logged';
5102                                                                                            } else {
5103                                                window.location.href = redirect_url;
5104                                            }
5105
5106                                        fv.resetForm(true);
5107                                    }
5108                                    if(form_action_div != '.newsletter_modal_form_container' && 'member_login_190-1' != 'whmcs_billing_address'){
5109                                        $('.modal-backdrop').hide();
5110                                    }
5111                                } else {
5112                                    bdCaptchaReset(formElement.attr('id'));
5113                                    if (!data['message']) {
5114                                        var message = `You entered invali
5114d data. Please try to save again.`;
5115
5116                                    } else {
5117                                        var message = data['message'];
5118                                    }
5119                                    $("#member_login_190-1-notification").html(message)
5120                                        .addClass("alert-danger-subtle")
5121                                        .removeClass("alert-success-subtle")
5122                                        .removeClass("alert-warning-subtle")
5123                                        .fadeIn();
5124                                    fv.disableSubmitButtons(false);
5125                                }
5126                                counterSubmit = 0;
5127                            },
5128                            error: function (e) {
5129                                
5130                                if(typeof grecaptcha !== "undefined" && typeof grecaptcha.reset === "function"){
5131                                        bdCaptchaReset(formElement.attr('id'));
5132                                        $("#member_login_190-1-notification").html(`Recaptcha Error`);
5133                                } else {
5134                                    $("#member_login_190-1-notification").html(`A connection error occurred while saving. Please try to save again.`);
5135                                }
5136                                $("#member_login_190-1-notification").addClass("alert-warning-subtle")
5137                                    .removeClass("alert-success-subtle")
5138                                    .removeClass("alert-warning-subtle")
5139                                    .fadeIn();
5140                                counterSubmit = 0;
5141                            }
5142                        });/// End Ajax
5143                    }
5144                }//END else
5145            }).bind('keydown', function(event) {
5146
5147                if (event.ctrlKey || event.metaKey) {
5148
5149                    switch (String.fromCharCode(event.which).toLowerCase()) {
5150
5151                        case 's':
5152                            var nativeForm = $(this)[0];
5153                            if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
5154                                event.preventDefault();
5155                                return false;
5156                            }
5157                            $(this).submit();
5158                            break;
5159                    }
5160                }
5161            });
5162
5163            /// This will turn any select2 that are required in the form builder to being required elements.
5164            $('#member_login_190-1 select').each(function (i, obj) {
5165                setTimeout(function(){
5166                    if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") {
5167                        $(obj).css("z-index","-999");
5168                        $(obj).css("height","0");
5169                        $(obj).css("width","0");
5170                        $(obj).css("display","block");  
5171                        $(obj).css("position","absolute");  
5172                    }
5173                }, 3000);
5174            });
5175
5176            // Clear required-error messages when user fills in a required field
5177            $('#member_login_190-1').on('keyup change', '[required]', function() {
5178                var val = $(this).val();
5179                if (val !== '' && val !== null && val.trim() !== '') {
5180                    var $group = $(this).closest('.form-group');
5181                    // Remove only this handler's own required message
5182                    $(this).siblings('.required-error').remove();
5183                    // Keep has-error if another FormValidation validator is still failing
5184                    // (e.g. stringLength, regexp). has-error is shared, so removing it
5185                    // wholesale would clobber other validators' red styling.
5186                    if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
5187                        $group.removeClass('has-error');
5188                    }
5189                }
5190            });
5191
5192        });//END $('# echo $_SERVER[form_element_id]; ').formValidation(
5193    </script>
5193
5194            
5194<script>
5195        window.addEventListener('load', (event) => {
5196            setTimeout(() => {
5197                    }, 501);
5198        });
5199    </script>
vendor: 2 bytes, line 5199
5199
5200<script>
5201	function decision(message, url) {
5202		if (confirm(message)) {
5203			setTimeout(function () {
5204				window.location = url;
5205			}, 0);
5206		}
5207	}
5208</script>
vendor: 2 bytes, line 5208
5208
5209<script>
5210	// Function to add alt, width, and height attributes to <img> elements without them
5211	function addAttributesToImages() {
5212		var images = document.querySelectorAll('img:not([alt]), img:not([width]), img:not([height])');
5213		Array.prototype.forEach.call(images, function(img) {
5214			// Skip if we've already processed this image
5215			if (img.dataset.processed === 'true') {
5216				return;
5217			}
5218			
5219			// Mark this image as being processed
5220			img.dataset.processed = 'true';
5221			
5222			// Add alt attribute if missing
5223			if (!img.hasAttribute('alt')) {
5224				var src = img.getAttribute('src') || 'image';  // Default src to 'image' if missing
5225				var altText = src.split('/').pop().split('?')[0].replace(/\.\w+$/, '');
5226
5227				try {
5228					altText = decodeURIComponent(altText)
5229					.replace(/[_\-+,.:;]+/g, ' ')
5230					.replace(/\s+/g, ' ')
5231					.trim();
5232				} catch (e) {
5233					altText = 'image';  // Fallback to 'image' if decoding fails
5234				}
5235
5236				// Ensure altText is not empty, otherwise use 'image'
5237				altText = altText || 'image';
5238
5239				img.setAttribute('alt', altText);
5240			}
5241
5242			// Add width and height attributes if missing
5243			if (!img.hasAttribute('width') || !img.hasAttribute('height')) {
5244				// Handle SVG differently
5245				if (img.src && img.src.endsWith('.svg')) {
5246					// For SVG, use the viewBox to set width and height, if available
5247					fetch(img.src)
5248					.then(response => {
5249						if (!response.ok) {
5250							throw new Error('Failed to fetch SVG: ' + response.status);
5251						}
5252						return response.text();
5253					})
5254					.then(svgText => {
5255						var parser = new DOMParser();
5256						var svgDoc = parser.parseFromString(svgText, "image/svg+xml");
5257						var svgElement = svgDoc.querySelector('svg');
5258						
5259						if (svgElement) {
5260							var viewBox = svgElement.getAttribute('viewBox');
5261							if (viewBox) {
5262								var viewBoxValues = viewBox.split(' ');
5263								var width = viewBoxValues[2];
5264								var height = viewBoxValues[3];
5265
5266								if (!img.hasAttribute('width')) {
5267									img.setAttribute('width', width);
5268								}
5269								if (!img.hasAttribute('height')) {
5270									img.setAttribute('height', height);
5271								}
5272							}
5273						}
5274					})
5275					.catch(error => {
5276						// Fallback to default dimensions for SVG
5277						if (!img.hasAttribute('width')) {
5278							img.setAttribute('width', '100');
5279						}
5280						if (!img.hasAttribute('height')) {
5281							img.setAttribute('height', '100');
5282						}
5283					});
5284				} else {
5285					// For non-SVG images, use natural dimensions
5286					var tempImg = new Image();
5287					tempImg.src = img.src;
5288					
5289					tempImg.onload = function() {
5290						if (!img.hasAttribute('width')) {
5291							img.setAttribute('width', tempImg.naturalWidth);
5292						}
5293						if (!img.hasAttribute('height')) {
5294							img.setAttribute('height', tempImg.naturalHeight);
5295						}
5296					};
5297					
5298					tempImg.onerror = function() {
5299						// Fallback to default dimensions
5300						if (!img.hasAttribute('width')) {
5301							img.setAttribute('width', '100');
5302						}
5303						if (!img.hasAttribute('height')) {
5304							img.setAttribute('height', '100');
5305						}
5306					};
5307				}
5308			}
5309		});
5310	}
5311
5312	document.addEventListener('DOMContentLoaded', function() {
5313		// Run the function initially to catch images already in the DOM
5314		addAttributesToImages();
5315
5316		// Create a MutationObserver to monitor the DOM for added/changed images
5317		var observer = new MutationObserver(function(mutations) {
5318			mutations.forEach(function(mutation) {
5319				if (mutation.addedNodes.length > 0 || mutation.type === 'attributes') {
5320					// Only process if we have new images or src attribute changes
5321					var hasNewImages = false;
5322					
5323					if (mutation.addedNodes.length > 0) {
5324						mutation.addedNodes.forEach(function(node) {
5325							if (node.nodeType === 1) { // Element node
5326								if (node.tagName === 'IMG' || node.querySelectorAll) {
5327									hasNewImages = true;
5328								}
5329							}
5330						});
5331					}
5332					
5333					if (mutation.type === 'attributes' && mutation.attributeName === 'src') {
5334						hasNewImages = true;
5335					}
5336					
5337					if (hasNewImages) {
5338						addAttributesToImages();
5339					}
5340				}
5341			});
5342		});
5343
5344		// Start observing the document body for changes
5345		observer.observe(document.body, {
5346			childList: true, // Watch for added or removed nodes
5347			subtree: true, // Watch the entire subtree
5348			attributes: true, // Watch for attribute changes
5349			attributeFilter: ['src'] // Specifically watch for changes in the 'src' attribute
5350		});
5351	});
5352</script>
5352<style type='text/css'> select#sid[disabled], select#tid[disabled], select.combobox[disabled], select#bd-chained[disabled], select#category-chained[disabled], select.infinite-chained[disabled], select.subcategory-chained[disabled], select.search-chained[disabled], select#country-chained[disabled], select#state-chained[disabled], select#country-chained-2[disabled], select#state-chained-2[disabled], select#profession_id[disabled] {
5353    cursor: wait
5354}
5355select.select2-preload {
5356    line-height: initial;
5357}
5358
5359select#sid, select#tid, select#ttid, select.combobox, select#bd-chained, select#category-chained, select.infinite-chained, select.subcategory-chained, select.search-chained, select#country-chained, select#state-chained, select#country-chained-2, select#state-chained-2, select#profession_id, [name^="bd_phone_country_code"] {
5360    -webkit-appearance: none;
5361    -moz-appearance: none;
5362    appearance: none;
5363    background-image: url(/images/select2ArrowDown.png) !important;
5364    background-repeat: no-repeat !important;
5365    background-size: 10px 9px !important;
5366    background-position: 99% 16px;
5367    border-radius: 6px;
5368    overflow: hidden;
5369}
5370.module select#sid, .module select#tid, .module select.combobox, .module select#bd-chained, .module select#category-chained, .module select.infinite-chained, .module select.subcategory-chained, .module select.search-chained, .module select#country-chained, .module select#state-chained, .module select#country-chained-2, .module select#state-chained-2, .module select#profession_id, [name^="bd_phone_country_code"] {
5371    background-position: 98.2% 12px;
5372} </style>
5372<script>
5373    // Function to add aria-label to <select> elements without it, for better pagespeed accessibility score
5374    $(document).ready(function() {
5375        var ariaLabelCounter = {}; // Object to keep track of aria-label counts for uniqueness
5376
5377        // Iterate over each select element that does not have an aria-label
5378        $('select:not([aria-label])').each(function() {
5379            // Use the ID or placeholder as the base for the aria-label, stripping HTML tags
5380            var baseLabel = this.id || $(this).attr('placeholder') || 'select';
5381            baseLabel = baseLabel.replace(/<[^>]*>/g, '').trim(); // Remove HTML tags and trim
5382
5383            // Ensure uniqueness of each aria-label
5384            ariaLabelCounter[baseLabel] = (ariaLabelCounter[baseLabel] || 0) + 1;
5385            var ariaLabel = baseLabel + '-' + ariaLabelCounter[baseLabel];
5386
5387            // Truncate aria-label to 100 characters
5388            ariaLabel = ariaLabel.length > 100 ? ariaLabel.substring(0, 100) : ariaLabel;
5389
5390            // Set the aria-label attribute to the unique label
5391            $(this).attr('aria-label', ariaLabel);
5392        });
5393    });
5394</script>
vendor: 2 bytes, line 5394
5394
5395<script type="application/ld+json">
5396{
5397    "@context": "https://schema.org",
5398    "@graph": [
5399        {
5400            "@type": "WebSite",
5401            "@id": "https://www.westminsterchamber.org/#website",
5402            "name": "Westminster Chamber of Commerce",
5403            "url": "https://www.westminsterchamber.org/",
5404            "inLanguage": "en-US",
5405            "dateModified": "2026-09-01T00:00:00-07:00",
5406            "potentialAction": {
5407                "@type": "SearchAction",
5408                "target": "https://www.westminsterchamber.org/sitesearch?q={search_term_string}",
5409                "query-input": "required name=search_term_string",
5410                "name": "Search Directory: Westminster Chamber of Commerce"
5411            },
5412            "publisher": {
5413                "@id": "https://www.westminsterchamber.org/#organization"
5414            }
5415        },
5416        {
5417            "@type": "Organization",
5418            "@id": "https://www.westminsterchamber.org/#organization",
5419            "name": "Westminster Chamber of Commerce",
5420            "description": "Search the most complete westminster california businesses directory. Find westminster california businesses.",
5421            "url": "https://www.westminsterchamber.org/",
5422            "mainEntityOfPage": {
5423                "@type": "WebPage",
5424                "@id": "https://www.westminsterchamber.org/#webpage"
5425            },
5426            "contactPoint": [
5427                {
5428                    "@type": "ContactPoint",
5429                    "email": "[email protected]",
5430                    "contactType": "customer support",
5431                    "availableLanguage": [
5432                        "en"
5433                    ],
5434                    "areaServed": "US"
5435                }
5436            ],
5437            "areaServed": {
5438                "@type": "Country",
5439                "name": "US"
5440            },
5441            "telephone": "714-898-9648",
5442            "sameAs": [
5443                "https://www.facebook.com/WestminsterChamberOfCommerce/",
5444                "https://www.instagram.com/wmchamber/"
5445            ],
5446            "logo": {
5447                "@type": "ImageObject",
5448                "@id": "https://www.westminsterchamber.org/#logo",
5449                "url": "/images/Logo/change-logo.png"
5450            },
5451            "image": {
5452                "@type": "ImageObject",
5453                "@id": "https://www.westminsterchamber.org/#image",
5454                "url": "/images/Logo/change-logo.png"
5455            },
5456            "keywords": [
5457                "Westminster California Business",
5458                "Westminster California Businesses",
5459                "Westminster Chamber of Commerce",
5460                "Westminster Chamber of Commerce",
5461                "Westminster California Businesses",
5462                "Westminster California Business"
5463            ]
5464        }
5465    ]
5466}</script>
5466
5467
5468<script>
5469// Bootstrap Icons fallback loader - ensures Bootstrap Icons work even if HEAD widget is customized, do not delete
5470(function() {
5471    if (!document.querySelector('link[href*="bootstrap-icons"]')) {
5472        var link = document.createElement('link');
5473        link.rel = 'stylesheet';
5474        link.href = 'https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1';
5475        document.head.appendChild(link);
5476    }
5477})();
5478</script>
5478
5479<style type='text/css'> .input-group.normal-autosuggest input,.input-group.sm-autosuggest input, .input-group.md-autosuggest input {
5480			border-radius: 0 8px 8px 0 !important;
5481	}
5482.normal-autosuggest .twitter-typeahead, .sm-autosuggest .twitter-typeahead, .md-autosuggest .twitter-typeahead, .large-autosuggest .twitter-typeahead {
5483	display: inline-block;
5484	height: 25px;
5485	position: relative;
5486	width: 100%;
5487}
5488.input-group.normal-autosuggest .twitter-typeahead, .input-group.sm-autosuggest .twitter-typeahead, .input-group.large-autosuggest .twitter-typeahead:not(.search_box .twitter-typeahead) {
5489	width: inherit;
5490}
5491.normal-autosuggest .twitter-typeahead .clear_content.medium{
5492	bottom: 0px;
5493}
5494.sm-autosuggest .twitter-typeahead .clear_content.small{
5495	bottom: -4px;
5496}
5497.md-autosuggest.input-group .twitter-typeahead .clear_content.medium  {
5498    bottom: -2px;
5499}
5500.md-autosuggest .twitter-typeahead {
5501	height: 32px;
5502}
5503.md-autosuggest .input-group-addon + .input_wrapper .twitter-typeahead {
5504	height: 38px;
5505	vertical-align: top;
5506}
5507.md-autosuggest-input + .clear_content.medium {
5508    bottom: 0px;
5509}
5510.large-autosuggest .twitter-typeahead {
5511	height: 40px;
5512}
5513.normal-autosuggest .twitter-typeahead{
5514	height: 38px;
5515}
5516.normal-autosuggest .twitter-typeahead .tt-hint, .sm-autosuggest .twitter-typeahead .tt-hint {
5517	background: #fff !important;
5518	border: 1px solid #ccc!important;
5519	border-radius: 0 8px 8px 0;
5520	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important;
5521	color: transparent;
5522	left: 0;
5523	padding: 4px 11px;
5524	position: absolute;
5525	top: 0;
5526	width: 100%;
5527	font-size:12px;
5528}
5529.normal-autosuggest.input-group-addon .fa, .sm-autosuggest .input-group-addon .fa, .input-group-sm .input-group-addon .fa {font-size:12px}
5530.md-autosuggest .twitter-typeahead .tt-hint {
5531	height: 100%;
5532	background: #ffffff none repeat scroll 0 0 !important;
5533	border: 1px solid #cccccc !important;
5534	border-radius: 0 8px 8px 0;
5535	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset !important;
5536	color: rgba(0, 0, 0, 0);
5537	left: 0;
5538	padding: 6px 11px;
5539	position: absolute;
5540	top: 0;
5541	width: 100%;
5542}
5543.large-autosuggest {background: #fff !important;border-radius:10px;}
5544.large-autosuggest input {width: 100%!important;box-shadow:none; border-radius: 10px;}
5545	.input-group.large-autosuggest input,.input-group.large-autosuggest .twitter-typeahead .tt-hint {
5546		border-radius: 0 10px 10px 0!important;
5547	}
5548	.large-autosuggest .twitter-typeahead .tt-hint {
5549	background: #fff !important;
5550	border: 1px solid #ccc!important;
5551	border-radius: 10px;
5552	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important;
5553	color: transparent;
5554	left: 0;
5555	position: absolute;
5556	top: 0;
5557	width: 100%;
5558	font-size: 18px;
5559	height: 46px;
5560	line-height: 1.33333;
5561	padding: 10px 15px;
5562}	
5563.tt-dataset .empty-message {
5564	display: none !important;
5565}
5566.twitter-typeahead .tt-query {background-color:#fff!important}
5567.input-group.large-autosuggest span:first-child .tt-hint {border-radius: 0 !important;}
5568span.tt-dropdown-menu {
5569	border: 1px solid #FCFCFC;
5570	border-radius: 5px;
5571	box-shadow: 0 5px 10px rgba(0,0,0,.2);
5572	width: 100% !important;
5573}
5574.tt-is-under-cursor a.suggest-link {
5575	background: #55ACEE;
5576}
5577
5578.tt-is-under-cursor .media-heading,
5579.tt-is-under-cursor .suggest-origin,
5580.tt-is-under-cursor .location{
5581	color:#fff!important;
5582}
5583.tt-suggestion .media .media-body .suggest-origin {
5584		color: rgba(45, 91, 137,0.9);
5585	padding: 1px 0;
5586	border-radius: 6px;
5587	font-weight: bold;
5588	line-height: 12px;
5589}
5590.tt-suggestion {
5591	background: #fff;
5592	border-bottom: 1px solid #eee;
5593	-webkit-transition: all 0.3s ease-in-out;
5594	-moz-transition: all 0.3s ease-in-out;
5595	-o-transition: all 0.3s ease-in-out;
5596	transition: all 0.3s ease-in-out;
5597}
5598body .tt-suggestions .media.br-bottom img {
5599	max-width: 45px;
5600	height: auto;
5601}
5602body .tt-suggestions .media-body span {
5603	font-size: 10px;
5604}
5605body .tt-suggestions .media-body h4 {
5606	font-size: 12px;
5607	margin: 2px 0px;
5608	text-transform: capitalize;
5609}
5610a.suggest-link {
5611	padding: 5px;
5612	display: block;
5613}
5614a.suggest-link img {
5615	border-radius: 100px;
5616	display: block;
5617	margin: 0 auto;
5618	height: 100%!important;
5619	width: 100%;
5620	object-fit: cover;
5621}
5622.left-suggest-col {
5623	display: inline-block;
5624	vertical-align: middle;
5625	width: 44px;
5626	height: 44px;
5627}
5628.right-suggest-col {
5629	display: inline-block;
5630	padding-left: 1%;
5631	text-align: left;
5632	vertical-align: middle;
5633	width: calc(100% - 1% - 50px);
5634}
5635p.media-heading {
5636	color: #333;
5637	font-size: 12px;
5638	font-weight: 600;
5639	margin-bottom: 0;
5640}
5641p.suggest-origin {
5642	font-size: 10px;
5643	color: #333;
5644	margin:0;
5645}
5646p.location {
5647	color: #333;
5648	font-size: 10px;
5649	margin: 2px 0;
5650}
5651body .tt-is-under-cursor a.suggest-link {
5652	background: #F7F7F7;
5653}
5654body .tt-is-under-cursor .media-heading, body .tt-is-under-cursor .suggest-origin, body .tt-is-under-cursor .location {
5655	color: #333!important;
5656}
5657a.suggest-link[data-heading="heading"] {
5658	 pointer-events: none;
5659  	cursor: default;
5660  	text-decoration: none;
5661}
5662body .tt-is-under-cursor a.suggest-link[data-heading="heading"] {
5663	background: rgb(71, 134, 141);
5664}
5665/* --- all the novalue css --- */
5666a.suggest-link .suggest-origin[data-state="novalue"] {
5667	display: none;
5668}
5669a.suggest-link .location[data-state="novalue"] {
5670	display: none;
5671}
5672a.suggest-link img[data-state="novalue"] {
5673	display: none;
5674}
5675a.suggest-link .suggest-origin[data-state="heading"] {
5676	display: none;
5677}
5678a.suggest-link .media-heading[data-heading="heading"] {
5679	color:rgb(255, 255, 255)!important;
5680	font-weight: bold;
5681	padding: 4px;
5682	font-size: 13px;
5683}
5684.left-suggest-col[data-photo="novalue"], .left-suggest-col[data-photo="undefined"] {
5685	display: none;
5686}
5687.right-suggest-col[data-photo="novalue"], .right-suggest-col[data-photo="undefined"] {
5688	width: 100%;
5689}
5690a.suggest-link[href="novalue"] {
5691	cursor: default !important;
5692	pointer-events: none;
5693}
5694a.suggest-link[data-heading="heading"] {
5695	background-color: rgb(71, 134, 141);
5696}
5697div.content-shell {
5698	overflow: inherit;
5699}
5700span.tt-dropdown-menu div {
5701	float: none;
5702}
5703.tt-menu {
5704	border-radius: 0 0 6px 6px;
5705	box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
5706	overflow: hidden;
5707	width: 100%;
5708	z-index: 150 !important;
5709}
5710.tt-menu .tt-dataset {
5711    overflow-y: auto;
5712    max-height: 200px;
5713} </style>        
5713<script type="text/javascript">
5714            
5715            if (typeof decodeHtml != "function") {
5716                function decodeHtml(html) {
5717                    var txt = document.createElement("textarea");
5718                    txt.innerHTML = html;
5719                    return txt.value;
5720                }
5721            }
5722                        function initializeTypeheadMember_search() {
5723                var member_searchEngine = new Bloodhound({
5724                    initialize: false,
5725                    datumTokenizer: function (d) {
5726                        return Bloodhound.tokenizers.whitespace(value);
5727                    },
5728                    queryTokenizer: Bloodhound.tokenizers.whitespace,
5729                    remote: {
5730                        url: `/api/suggest/json/get/1,users_data,Listings,1,1,1,1,1,3|88,list_professions,Main Categories,1,0,1,1,1,3|89,list_services,Sub Categories,1,0,1,1,1,3?tID=35&q=%QUERY`,
5731                        wildcard: '%QUERY',
5732                        filter: function (response) {
5733
5734                            if (response != null) {
5735                                //var response = response.slice(1);
5736                                $.each(
5737                                    response, function (key, value) {
5738                                        response[key]['value'] = decodeHtml(value['value']);
5739                                        response[key]['comes_f'] = decodeHtml(value['comes_f']);
5740                                        response[key]['location'] = decodeHtml(value['location']);
5741
5742                                        if (response[key]['value'].indexOf('-/-') >= 0) {
5743                                            var splitResult = response[key]['value'].split('-/-');
5744                                            response[key]['value'] = splitResult[0];
5745                                        }
5746                                    }
5747                                );
5748
5749                            } else {
5750                                response = {error: "null"};
5751                            }
5752
5753                            return response;
5754                        }
5755                    }
5756                });
5757                var member_searchDataSrc = member_searchEngine.initialize();
5758
5759                member_searchDataSrc
5760                    .done(function () { /*console.log('Autosuggestions engine initialized.'); */
5761                    })
5762                    .fail(function () { /*console.log('err, something went wrong while initializing autosuggestions engine:(');*/
5763                    })
5764
5765                $('.member_search').typeahead({
5766                        minLength:  2,
5767                        highlight: true,
5768                        hint: false                    },
5769                    {
5770                        display: 'value',
5771                        source: member_searchEngine.ttAdapter(),
5772                        limit: 10,
5773                        templates: {
5774                            empty: [
5775                                '<div class="empty-message">',
5776                                'Result not found',
5777                                '</div>'
5778                            ].join(" "),
5779                            notFound: [
5780                                '<div class="notFound-message">',
5781                                'Result not found',
5782                                '</div>'
5783                            ].join(" "),
5784                            suggestion: function (data) {
5785
5786                                if (data == "null") {
5787                                    strTemplate = '<div class="empty-message">Result not found</div>';
5788
5789                                } else {
5790                                    strTemplate = '<a class="suggest-link" href="' + data.link + '" data-state="' + data.link + '" data-heading="' + data.comes_f + '"> <div class="left-suggest-col" data-photo="' + data.photo + '"> <img src="' + data.photo + '" data-state="' + data.photo + '"> </div> <div class="right-suggest-col" data-photo="' + data.photo + '"> <p class="media-heading" data-state="' + data.value + '" data-heading="' + data.comes_f + '">' + data.value + '</p> <p class="suggest-origin" data-state="' + data.comes_f + '">' + data.comes_f + '</p> <p class="location" data-state="' + data.location + '">' + data.location + '</p> </div> </a> ';
5791
5792                                    if ((data.link == undefined) || (data.link == "") || (data.link == "novalue")) {
5793                                        strTemplate = strTemplate.replace(/href=".*?"/, "href='#'");
5794                                    }
5795
5796                                    if ((data.photo == undefined) || (data.photo == "") || (data.photo == "novalue")) {
5797                                        strTemplate = strTemplate.replace(/<img src=".*?>/, "");
5798                                    }
5799                                }
5800
5801                                return strTemplate;
5802                            }
5803                        },
5804                    }).on('typeahead:selected', function (obj, datum) {
5805                    /*
5806                    console.log(obj);
5807                    console.log(datum);
5808                    */
5809                });
5810
5811                $('.member_search').each(function () {
5812                    var inputWidth = $(this).outerWidth();
5813                    $(this).siblings('.tt-dropdown-menu').css('width', inputWidth + 'px');
5814                });
5815            }
5816        </script>
5816
5817            
5817<script>
5818        let typeheadElement = '.member_search';
5819        let TypeheadNameListFunction = 'initializeTypeheadMember_search';
5820        let typeheadFormElement = undefined;
5821        window.addEventListener('load', () => {
5822            if(typeheadElement.length > 1) {
5823                typeheadFormElement = document.querySelectorAll(typeheadElement);
5824            }
5825            if (typeof typeheadFormElement != "undefined") {
5826                for (let i = 0; i < typeheadFormElement.length; i++) {
5827                    let closestForm = typeheadFormElement[i].closest('form');
5828                    if (typeof closestForm != "undefined" && closestForm != null) {
5829                        closestForm.addEventListener('focus', typeheadFormClick, false);
5830                    }
5831                    typeheadFormElement[i].addEventListener('focus', typeheadFormClick, false);
5832                }
5833            }
5834        });
5835        function initializeTypehead(){
5836            let splitFunctionNames= TypeheadNameListFunction.split(',');
5837            for ( let funcName of splitFunctionNames)
5838                if (typeof funcName != 'function') {
5839                    window[funcName](); // execute the function
5840
5841                }
5842        }
5843        function typeheadFormClick(event) {
5844
5845            let head = document.getElementsByTagName('head')[0];
5846            let script = document.createElement('script');
5847            let elementClicked = event.target;
5848            script.type = 'text/javascript';
5849            script.src = "https://cdnjs.cloudflare.com/ajax/libs/corejs-typeahead/0.11.1/typeahead.bundle.min.js";
5850            script.onload = function () {
5851                initializeTypehead();
5852                elementClicked.focus();
5853            };
5854            head.appendChild(script);
5855            if (typeof typeheadFormElement != "undefined") {
5856                for (let i = 0; i < typeheadFormElement.length; i++) {
5857                    let closestForm = typeheadFormElement[i].closest('form');
5858                    if (typeof closestForm != "undefined" && closestForm != null) {
5859                        closestForm.removeEventListener('focus', typeheadFormClick, false);
5860                    }
5861                    typeheadFormElement[i].removeEventListener('focus', typeheadFormClick, false)
5862                }
5863            }
5864        }
5865
5866
5867    </script>
5867
5868
5869    
5869<script>
5870    window.addEventListener('load', () => {
5871        let embedlyClass = document.querySelector('.fr-embedly');
5872        if (typeof embedlyClass != "undefined" && embedlyClass != null) {
5873            let embedlyURI = "https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/embedly_widget.min.js";
5874            let head = document.getElementsByTagName("head")[0];
5875            let script = document.createElement('script');
5876            script.type = 'text/javascript';
5877            script.src = embedlyURI;
5878            script.async = true;
5879            script.onload = function() {
5880                setTimeout(function() {
5881                    if (typeof embedly !== 'undefined' && embedly.card) {
5882                        document.querySelectorAll('.embedly-card').forEach(function(card) {
5883                            embedly.card(card);
5884                        });
5885                    }
5886                }, 500);
5887            };
5888            head.appendChild(script);
5889        }
5890    });
5891</script>
5891<script type="text/javascript" src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js"></script>
5891<script>
5892                            $(function () {
5893                                $(".lazyloader").Lazy({
5894                                    afterLoad: function(element) {
5895                                        $(".gridView.activeView").click();
5896                                    }
5897                                });
5898                                
5899                            });
5900                            $("button[class*='slick'],button[id*='slick']").click(function () {
5901                              $(this).parents(".row").find(".lazyloader").lazy({
5902                                    bind: "event",
5903                                    delay: 0
5904                                });
5905                            });
5906                            $("[class*='slick'],[id*='slick']").on("swipe",function(){
5907                              $(this).parents(".row").find(".lazyloader").lazy({
5908                                    bind: "event",
5909                                    delay: 0
5910                                });
5911                            });
5912                        </script>
5912<script defer src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0"></script>
5912
5913            </body>
5914        </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.