PageSourceSearch

http://www.atlshopper.com/

html atlshopper.com collected 2026-10-10 01:48:08 UTC 237,776 bytes, 4,924 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/favicon.webp">
13    <link rel="icon" type="image/webp" href="/images/favicon.webp">
14	
15    <!-- Site Meta Data -->
16    <title>Member Directory - Find Members - Metro Atlanta Shopper</title>
17    <meta name="description" content="Search the most complete member directory. Find members.">
18    <meta name="keywords" content="Professional,Member, Metro Atlanta Shopper">
19    <meta name="robots" content="index, follow">
20
21    <!-- Canonical URL -->
22	<link rel="canonical" href="http://www.atlshopper.com/">
23    	<!-- Social Media Meta Data -->
24    <meta property="og:type" content="website">
25    <meta property="og:url" content="http://www.atlshopper.com">
26    <meta property="og:site_name" content="Metro Atlanta Shopper">
27    <meta property="og:title" content="Member Directory - Find Member - Metro Atlanta Shopper">
28    <meta property="og:description" content="Search the most complete member database. Find Member.">
29    <meta property="og:image" content="http://www.atlshopper.com/images/ATL4.jpg">
30	
30<script>
31	var siteInfoSpan=document.createElement('span');
32	siteInfoSpan.style.cssText='position:absolute;color:transparent;width:100%;z-index:-1;height:50px;top:0;';
33	siteInfoSpan.textContent='www.atlshopper.com - Metro Atlanta Shopper';
34	document.documentElement.appendChild(siteInfoSpan);
35	</script>
35
36
37	<!-- Preload -->
38	<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>
39	<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|Open+Sans:300,400,600,700,800,900&display=swap" fetchpriority="high">
40	<link rel="preload" href="/images/ATL4.jpg" as="image" fetchpriority="high">
41		
42    <!-- Non-Critical Stylesheet - Render Before Critical Styles -->
43	<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>
44	<noscript>
45		<link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/non-critical-styles.pkgd.min.css" crossorigin>
46	</noscript>
47		
48	<!-- Critical Stylesheet -->
49	<link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/critical-styles.pkgd.min.css?v=09.05.26" crossorigin>
50    	
51    <!-- Google Fonts Stylesheet -->    
52    <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|Open+Sans:300,400,600,700,800,900&display=swap">
53    <noscript>
54        <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|Open+Sans:300,400,600,700,800,900&display=swap">
55    </noscript>
56	
57    <!-- FontAwesome Stylesheet -->
58    <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>
59    <noscript>
60        <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/font-awesome/css/font-awesome.min.css" crossorigin>
61    </noscript>
62	
63    <!-- Bootstrap Icons Stylesheet -->
64    <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>
65    <noscript>
66        <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1" crossorigin>
67    </noscript>
68	
69    <!-- Critical JavaScript -->
70    
70<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/jquery.min.js"></script>
70
71	
71<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/bootstrap-3.3.5.min.js"></script>
71
72	
72<script>
73		/* jQuery.event.special.touchstart = {
74			setup: function( _, ns, handle ) {
75				this.addEventListener("touchstart", handle, { passive: !ns.includes("noPreventDefault") });
76			}
77		}; */
78		jQuery.event.special.touchmove = {
79			setup: function( _, ns, handle ) {
80				this.addEventListener("touchmove", handle, { passive: !ns.includes("noPreventDefault") });
81			}
82		};
83		jQuery.event.special.wheel = {
84			setup: function( _, ns, handle ){
85				this.addEventListener("wheel", handle, { passive: true });
86			}
87		};
88		jQuery.event.special.mousewheel = {
89			setup: function( _, ns, handle ){
90				this.addEventListener("mousewheel", handle, { passive: true });
91			}
92		};
93	</script>
93
94
95		
96	
97    <!-- Prefetch -->
98    <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js" as="script">
99    <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0" as="script">
100
101        
102</head>
103
104<body class="general-session"><!--
105IMPORTANT: 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.
106
107INSTEAD: If custom CSS rules are needed, add them directly into the DESIGN SETTINGS > CUSTOM CSS section.
108-->
109<style>
110    .upload-form-field::before {
111        content: "choose files";
112        display: inline-block;
113        border: 1px solid #999;
114        border-radius: 3px;
115        padding: 5px 8px;
116    }
117    #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 {
118        white-space: nowrap !important;
119    }
120    /* Main Website Design */
121    body,.modal-header,.modal-content,.modal-body,.modal-footer {
122        background: rgb(255, 255, 255);
123        color: rgb(44, 44, 44);
124        font-family: 'Cabin';
125        font-size: 14px;
126    }
127    .select2-container .select2-choice {
128        font-family: 'Cabin'!important;
129    }
130        html{
131        background: rgb(44, 44, 44)    }
132        .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) a, .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) td,.datepicker th.picker-switch,.datepicker .dow {
133        color: #000 !important;
134    }    
135    a,a.h1,a.h2,a.h3,a.h4,a.h5,a.h6,.pricing_menu li ul li a:not(.btn) {
136        color: rgb(0, 102, 153);
137    }
138    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 {
139        color: rgb(14, 122, 176);
140    }
141    .breadcrumb a{
142            color: rgba(118, 118, 118,0.9);
143    }
144    .breadcrumb a:hover, .breadcrumb a:focus,.breadcrumb > .active {
145        color: rgb(118, 118, 118);
146    }
147    .help-inline, .help-block {
148            color: rgba(44, 44, 44,0.5);
149    }
150    .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
151        font-family: 'PT Sans';
152    }
153        /* Header Design */
154    .header, .mobile_website_logo img {
155        background: rgb(255, 255, 255);
156    }
157    .header .mini-nav li a:not(.btn):not(.network-icon), .header .mini-nav span {
158        color: rgb(118, 118, 118);
159            font-size: 14px;
160        }
161    .header .mini-nav li a:not(.btn):hover {
162            color: rgba(118, 118, 118,0.95);
163    }
164    .header .btn_get_listed {
165		background-color: rgb(240, 52, 52);
166        border: 1px solid rgb(240, 52, 52);
167        color: rgb(255, 255, 255)!important;
168    }
169    .header .btn_get_listed:hover, .header .btn_get_listed:focus {
170		        background-color: rgba(240, 52, 52,0.97);        
171    }
172    .header .btn_search {
173            background-color: rgba(0, 102, 153,0.97);
174        border: 1px solid rgb(0, 102, 153);
175        color: rgb(255, 255, 255);
176    }
177    .header .btn_search:hover, .header .btn_search:focus {
178        background-color: rgb(0, 102, 153);
179        color: rgb(255, 255, 255);
180    }
181
182    /* Logo Design */
183    .logo,.logo:hover,.logo:focus {
184        color: rgb(44, 44, 44);
185        font-family: 'PT Sans';
186    }
187    .logo .slogan {
188        color: rgb(118, 118, 118);
189    }
190    .logo .fa {
191        color: rgb(0, 102, 153);
192            display: none;
193        }
194
195    /* Main Menu Design */
196    .member-profile-tabs > ul, .member-profile-tabs .tabs-container {
197        background: rgb(221, 221, 221);
198        position: sticky;
199        z-index: 1;
200            top: 0px;
201        }
202	/* Google Translate When Main Menu Sticky Top */
203	    @media only screen and (max-width: 1100px) {
204        .member-profile-tabs > ul, .member-profile-tabs .tabs-container {
205                    top: 50px;
206                }
207    }
208    .header ul.nav.navbar-nav li ul {
209        background-color: rgb(255, 255, 255);
210    }
211    .header ul.nav.navbar-nav li ul li a, .header ul.nav.navbar-nav li ul li span {
212        color: rgb(0, 102, 153);
213                font-weight: 400;
214            }
215    .header .navbar-default, .pagination > .active > a {
216        background-color: rgb(245, 245, 245);
217    }
218    .header ul.nav.navbar-nav li ul li a:hover, .header ul.nav.navbar-nav li ul li a:focus{
219        border-left-color: rgb(0, 102, 153);
220        background: rgb(0, 102, 153);
221        color: rgb(255, 255, 255);
222    }
223    .navbar-default .navbar-toggle .icon-bar {
224        background-color: rgb(71, 71, 71);
225    }
226	.user_sidebar, .main_menu, .compact-mobile-search {
227        color: rgb(71, 71, 71);
228    }
229    .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span  {
230        color: rgb(71, 71, 71);
231                font-weight: 400;
232            }
233    .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 {
234        color: rgb(71, 71, 71);
235    }
236    .navbar-default .navbar-nav > li {
237        font-family: 'Cabin';
238    }
239    
240    
241
242    /* Footer Design */
243    .footer {
244        background-color: rgb(44, 44, 44);
245        display: block;
246    }
247    .footer, .footer_menu a,.footer_terms a,.footer_menu .content {
248        color: rgb(239, 239, 239);
249    }
250    .footer_menu a:hover, .footer_terms a:hover, .footer_menu a:focus, .footer_terms a:focus {
251        color: rgb(255, 255, 255);
252    }
253    .footer_menu .head {
254        color: rgb(255, 255, 255);
255    }
256    .btn_footer_get_listed {
257		background-color: rgb(240, 52, 52);
258        border: 1px solid rgb(240, 52, 52);
259        color: rgb(255, 255, 255)!important;
260    }
261    .btn_footer_get_listed:hover, .btn_footer_get_listed:focus{
262				background-color: rgba(240, 52, 52,0.95);        
263    }
264    
265    /* Homepage Design */
266        .homepage_settings h1, .homepage_settings h2, .homepage_map h1, .homepage_map h2 {
267        font-family: 'PT Sans';
268    }
269    .homepage_settings h1, .homepage_map h1 {
270        color: rgb(255, 255, 255);
271            font-weight: 600;
272            text-align: center;
273    }
274    .homepage_settings h2, .homepage_map h2 {
275        color: rgb(41, 41, 41);
276            font-weight: 400;
277            text-align: center;
278
279    }
280    .homepage_settings .search_box label {
281        color: rgb(49, 49, 49);
282    }
283    .btn_home_search, .search_box input[type=submit] {
284		background-color: rgb(0, 102, 153);
285        border: 1px solid rgb(0, 102, 153);
286        color: rgb(255, 255, 255);
287    }
288    .btn_home_search:hover, .btn_home_search:focus, .search_box input[type=submit]:hover, .search_box input[type=submit]:focus {
289		        background-color: rgba(0, 102, 153,0.97);        
290        color: rgb(255, 255, 255);
291    }
292	.homepage_settings .search_box {
293		
294				background-color: rgba( 255, 255, 255, 0.8);
295	}
296
297    /* Homepage Steps Module */
298    .homepage_steps {
299            background: none;
300        box-shadow: none;
301        padding: 0;
302                color: rgb(255, 255, 255);
303            }
304    .homepage_steps a.homepage_step_link,.homepage_steps a.homepage_step_link:hover,.homepage_steps a.homepage_step_link:active{
305        color: rgb(255, 255, 255)!important;
306    }
307    .homepage_steps .fa {
308        color: rgb(118, 118, 118);
309            background-color: rgba(118, 118, 118,0.075);
310    }
311	.homepage_steps h2 + p {
312        opacity: .6;
313	}
314
315    /* Blog Posts Slider Settings */
316    #myCarousel h2 a, .carousel-caption p,#myCarousel .list-group-item h2, #myCarousel li.list-group-item h4 {
317            color: rgb(71, 71, 71);
318        }
319    #myCarousel .list-group-item {
320            background-color: rgba(245, 245, 245,0.9);
321        border-color: rgba(245, 245, 245,0.80);
322    }
323    #myCarousel .carousel-caption {
324            background-color: rgba(245, 245, 245,0.8);
325    }
326    #myCarousel .list-group, #myCarousel .carousel-inner {
327            background-color: rgb(245, 245, 245)        }
328    #myCarousel .list-group .active, #myCarousel .list-group-item:hover {
329            background-color: rgb(245, 245, 245)        }
330    #myCarousel .list-group .active h2, #myCarousel .list-group-item:hover h2{
331            color: rgb(71, 71, 71);
332        }
333
334    /* Additional Settings */
335    .well blockquote {
336        background: rgb(255, 255, 255) none repeat scroll 0 0;
337        border-color: rgb(221, 221, 221);
338        color: rgb(44, 44, 44);
339        padding: 10px 20px;
340    }
341    .account-form-box form table tr td table {
342        background-color: transparent!important;
343        border: none!important;
344    }
345
346    .account-form-box form table tr td table td {
347        background-color: transparent!important;
348        color: rgb(44, 44, 44)!important;
349        border: none!important;
350    }
351    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{
352        color: rgb(44, 44, 44)!important;
353    }
354	.table.dataTable > thead > tr > th, .table > thead > tr > th, .fr-view table th, .fr-view table tfoot td {
355				border-color: rgba(85, 85, 85,0.1);
356		background-color: rgb(245, 245, 245);
357		color: rgb(85, 85, 85);
358		font-weight:600;
359		border-left: none;
360		border-bottom-width: 1px;
361	}
362	.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, table.dataTable.no-footer {
363				border-color: rgba(85, 85, 85,0.1);
364	}
365	.table > tfoot > tr > td:not(:last-child) {
366		border-right: 1px solid rgba(85, 85, 85,0.1);
367	}
368	table.dataTable.no-footer, table.dataTable {
369		border: 1px solid rgb(221, 221, 221)!important;
370	}
371	.table-view li:not(.table-display-about_me li, .froala-data li), .table-view .table-view-group > div {
372		border-top:1px solid rgb(221, 221, 221);
373	}
374	.table-view .table-view-group:last-child {
375		border-bottom:1px solid rgb(221, 221, 221);
376	}
377	table.dataTable tbody tr, .table-striped.dataTable, .table-striped, .fr-view .table-striped {
378		background-color: rgb(245, 245, 245)!important;
379	}
380	.table-striped.dataTable, .table-striped, .fr-view .table-striped {
381				border: 1px solid rgba(85, 85, 85,0.15);
382		border-collapse: separate;
383		overflow: hidden;
384	}
385	table#feature-body-datatable:has(.dropdown.open),table#digital-products-transactions:has(.dropdown.open), table#example:has(.dropdown.open) { 
386    	overflow: visible;
387	}
388	.table-striped.dataTable tbody > tr:nth-of-type(2n+1),.table-striped > tbody > tr:nth-of-type(2n+1) {
389				background-color: rgba(255, 255, 255,0.5)!important;
390	}
391	.nav-tabs, hr, .account-menu-title, .modal-header {
392		border-color: rgb(221, 221, 221);
393	}
394    .sidemenu_panel .list-group-item{
395        background-color: transparent!important;
396        color: rgb(41, 41, 41)!important;
397    }
398    .img-thumbnail {
399        background-color: rgb(245, 245, 245)!important;
400        border: 1px solid rgb(221, 221, 221);
401    }
402    .member_admin_sidemenu p, .member_admin_sidemenu h3 {
403        color: rgb(41, 41, 41)!important;
404    }
405    .close {
406        color: rgb(44, 44, 44);
407        opacity: 1;
408    }
409    .member_results_header h1, .content_w_sidebar.feature-search h1, .feature_results_header h1 {
410        font-size:34px;
411        display: block;
412    }
413    .member_results_header h2, .feature_results_header h2 {
414        font-size:28px;
415        display: block;
416    }
417    .homepage_settings {
418        padding-top: 90px;
419        padding-bottom: 200px;
420    }
421    @media (max-width: 768px) { .mobile_website_logo .visible-xs {display: block !important;}} 
422    @media only screen and (max-width: 768px) {
423                        .member-profile-header .favorite {float:none}
424    }
425    
426
427    @media only screen and (max-width: 1100px) {
428        }
429    .views > i.fa.activeView, .views > i.fa:hover {
430        background-color: rgb(44, 44, 44);
431        color: rgb(255, 255, 255);
432    }
433	.views > i.fa {
434		        background-color: rgba(44, 44, 44,0.1);
435		color: rgb(44, 44, 44);
436	}
437    .ui-rangeSlider-label {
438        background-color: rgb(245, 245, 245)!important;
439        color: rgb(71, 71, 71)!important;
440    }
441    .pricing_menu li .title {
442        background: rgb(0, 102, 153);
443        color: rgb(255, 255, 255);
444    }
445    p.account-tip{
446        color: rgb(44, 44, 44);
447    }
448    .circled_number {
449        background: rgb(0, 102, 153);
450        color: rgb(255, 255, 255);
451    }
452    .pic {
453            background-color: rgba(0, 102, 153,0.8);
454        color: rgb(255, 255, 255);
455        background-repeat: no-repeat;
456        background-position: center;
457        }
458    .pic .pic-caption {
459            background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%,rgba(0, 102, 153,0.85) 50%);
460        color: rgb(255, 255, 255);
461    }
462    .slick-prev-fa i, .slick-next-fa i{
463        color: rgb(0, 102, 153);
464    }
465    .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 {
466        background-color: rgb(245, 245, 245);
467        border-color: rgb(221, 221, 221);
468        color: rgb(41, 41, 41);
469    }
470    .nav-pills > li.active a, .nav-pills > li > a:hover {
471        background-color: rgb(0, 102, 153)!important;
472        border-color: rgb(0, 102, 153)!important;
473        color: rgb(255, 255, 255)!important;
474    }
475    .sidemenu_panel .panel-heading {
476        color: rgb(41, 41, 41)!important;
477        background-color: rgb(245, 245, 245)!important;
478    }
479    .member-profile-tabs .nav-tabs > li:not(.active) > a, .login-register-tabs.nav-tabs > li:not(.active) > a, .nav-tabs > li:not(.active) > a {
480            background: rgba(245, 245, 245,0.5);
481        color:  #616161;
482    }
483    .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 {
484            background: rgba(245, 245, 245,1);
485        color:  rgb(44, 44, 44);
486    }
487    .author-snapshot .well:not(.well.bg-default) {
488        background-color: rgb(245, 245, 245)!important;
489        border-color: rgb(221, 221, 221)!important;
490        color: rgb(41, 41, 41)!important;
491    }
492    .nav-tabs>li>a, .nav-pills>li>a {
493        font-weight: 600;
494    }
495        .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{
496            color: rgba(41, 41, 41,0.5);
497    }
498    #service_areas_table td,#service_areas_table_wrapper label, #service_areas_table_info, #service_areas_table_paginate > a {
499        color: rgb(41, 41, 41) !important;
500    }
501    .popover {
502        background-color: rgb(245, 245, 245);
503        border-color: rgb(245, 245, 245);
504        padding:0;
505        text-align:left;
506    }
507    .popover-title, .popover-content {
508        background-color: rgb(245, 245, 245);
509        color: rgb(41, 41, 41);
510        border-color: rgb(245, 245, 245);
511        text-align:left;
512    }
513    .popover-content {
514    		background-color: rgba(41, 41, 41,.05);
515		border-radius: 4px;
516		transform: translate(-1px, -1px);
517		width: calc(100% + 2px);
518		margin-bottom: -2px;
519    }
520    .popover.left > .arrow::after {
521        border-left-color: rgb(245, 245, 245)!important;
522    }
523    .popover.right > .arrow::after {
524        border-right-color: rgb(245, 245, 245)!important;
525    }
526    .popover.bottom > .arrow::after {
527        border-bottom-color: rgb(245, 245, 245)!important;
528    }
529    .popover.top > .arrow::after {
530        border-top-color: rgb(245, 245, 245)!important;
531    }
532    .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{
533        background-color: rgb(255, 255, 255);
534        color: rgb(44, 44, 44);
535    }
536    .module h1, .module h2, .module h3, .module h4, .module h5 {
537        color: rgb(62, 62, 62);
538    }
539    .module p:not(.fr-box.fr-basic .fr-element p) {
540        color: rgb(41, 41, 41);
541    }
542    .pagination>.active>a {
543            border-color: rgba(71, 71, 71,0.2);
544    }
545    .pagination>.active>a {
546        color: rgb(71, 71, 71);
547    }
548    .pagination > .active > a:hover, .pagination > .active > a:focus {
549            border-color: rgba(71, 71, 71,0.2);
550        background-color: rgb(245, 245, 245);
551        color: rgb(71, 71, 71);
552    }
553    .pagination > li > a {
554        color: rgb(245, 245, 245);
555            border-color: rgba(245, 245, 245,0.2);
556        background-color: rgb(71, 71, 71);
557    }
558    .pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover {
559        background-color: rgb(245, 245, 245);
560        border-color: rgb(245, 245, 245);
561        color: rgb(71, 71, 71);
562    }
563
564    .nav-pills.nav-wizard > li a, .nav-pills.nav-wizard > li a:hover{
565        background-color: rgb(250, 250, 250)!important;
566        color: rgb(41, 41, 41)!important;
567    }
568    .member_wizard2 li.incomplete a, .member_wizard2 li.incomplete a:hover {
569        background-color: rgb(240, 52, 52)!important;
570        border-color: rgb(240, 52, 52);
571        color: rgb(255, 255, 255);
572    }
573    .nav-pills.nav-wizard > li.active a, .nav-pills.member_wizard > li.active:hover a {
574        background-color: rgb(51, 122, 183)!important;
575        color: rgb(255, 255, 255)!important;
576    }
577    .member_wizard2 li.completed a, .member_wizard2 li.completed a:hover {
578        background-color: rgb(0, 102, 153)!important;
579        border-color: rgb(0, 102, 153);
580        color: rgb(255, 255, 255);
581    }
582
583        .nav-pills.nav-wizard > li.active .nav-arrow, .nav-pills.nav-wizard > li.active:hover .nav-arrow {
584        border-color: transparent transparent transparent rgb(51, 122, 183)!important;
585    }
586    .nav-pills.nav-wizard > li.active .nav-wedge, .nav-pills.nav-wizard > li.active:hover .nav-wedge{
587        border-color: rgb(51, 122, 183) rgb(51, 122, 183) rgb(51, 122, 183) transparent!important;
588    }
589    
590        li.completed .nav-wedge, .nav-pills.nav-wizard > li.completed:hover .nav-wedge {
591        border-color: rgb(0, 166, 128) rgb(0, 166, 128) rgb(0, 166, 128) transparent!important;
592    }
593    
594        li.incomplete .nav-wedge, .nav-pills.nav-wizard > li.incomplete:hover .nav-wedge {
595        border-color: rgb(250, 250, 250) rgb(250, 250, 250) rgb(250, 250, 250) transparent!important;
596    }
597    
598    .nav-pills.member_wizard > li.completed a, .nav-pills.member_wizard > li.completed a:hover {
599        background-color: rgb(0, 166, 128)!important;
600        color: rgb(255, 255, 255)!important;
601    }
602
603    .member_wizard2 li {
604        color: rgb(255, 255, 255);
605        border-right: 10px solid rgb(255, 255, 255);
606    }
607
608        li.completed .nav-arrow, .nav-pills.nav-wizard > li.completed:hover .nav-arrow {
609        border-color: transparent transparent transparent rgb(0, 166, 128)!important;
610    }
611    
612        li.incomplete .nav-arrow, .nav-pills.nav-wizard > li.incomplete:hover .nav-arrow{
613        border-color: transparent transparent transparent rgb(250, 250, 250)!important;
614    }
615    
616    /* Default Colors */
617    .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 {
618    	background-color: rgb(0, 102, 153);
619        border-color: rgb(0, 102, 153);
620        color: rgb(255, 255, 255);
621    }
622    .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 {        
623		        background-color: rgba(0, 102, 153,0.95);
624        border-color: rgb(0, 102, 153);
625        color: rgb(255, 255, 255);
626    }
627	.panel-primary {
628        background-color: #d9e8f0;
629		border-color: rgb(0, 102, 153);
630	}
631    .bg-primary,.progress-bar-primary,.module p.bg-primary,.label-primary,.badge-primary,.pricing_menu .title.bg-primary, .
631well .well.bg-primary, .module .well.bg-primary, .well .module.bg-primary,.tab-content .module.bg-primary,.tab-content .well.bg-primary {
632        background-color: rgb(0, 102, 153);
633        color: rgb(255, 255, 255);
634    }
635    .bg-primary .badge {
636        background-color:rgb(255, 255, 255);
637        color: rgb(0, 102, 153);
638    }
639    .btn-primary.btn-outline {
640        background: transparent;
641        color: rgb(0, 102, 153);
642        transition: all 250ms ease-in-out 0ms;
643    }
644    .btn-primary.btn-outline:hover {
645            background: rgba(0, 102, 153,0.1);
646		color: rgb(0, 102, 153);
647    }
648    .alert-primary {
649            background-color:rgba(0, 102, 153,0.7);
650        border-color:rgba(0, 102, 153,0.2);
651            color: rgba(255, 255, 255,0.9);
652    }
653	.alert-primary-subtle, .label-primary-subtle, .badge-primary-subtle {
654		background-color: #cce0eb;
655		border-color: #cce0eb;
656		color: rgb(0, 102, 153);
657		color: color-mix(in srgb, rgb(0, 102, 153) 50%, rgb(44, 44, 44) 50%);
658	}
659    .btn.dropdown-toggle.btn-primary *, .btn-primary a {
660        color: rgb(255, 255, 255);
661    }
662    .text-primary{
663        color: rgb(0, 102, 153);
664    }
665    .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 {
666		background-color: rgb(60, 187, 222);
667        border-color: rgb(60, 187, 222);
668        color: rgb(255, 255, 255);
669    }
670    .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 {
671		        background-color: rgba(60, 187, 222,0.95);
672        border-color: rgb(60, 187, 222);
673        color: rgb(255, 255, 255);
674    }
675	.panel-info {
676        background-color: #e2f5fa;
677		border-color: rgb(60, 187, 222);
678	}
679    .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 {
680        background-color: rgb(60, 187, 222);
681        color: rgb(255, 255, 255);
682    }
683    .bg-info .badge {
684        background-color:rgb(255, 255, 255);
685        color: rgb(60, 187, 222);
686    }
687    .btn-info.btn-outline {
688        background: transparent;
689        color: rgb(60, 187, 222);
690        transition: all 250ms ease-in-out 0ms;
691    }
692    .btn-info.btn-outline:hover {
693            background: rgba(60, 187, 222,0.1);
694		color: rgb(60, 187, 222);
695    }
696    .alert-info {
697            background-color:rgba(60, 187, 222,0.7);
698        border-color:rgba(60, 187, 222,0.2);
699            color: rgba(255, 255, 255,0.9);
700    }
701	.alert-info-subtle, .label-info-subtle, .badge-info-subtle {
702		background-color: #d8f1f8;
703		border-color: #d8f1f8;
704		color: rgb(60, 187, 222);
705		color: color-mix(in srgb, rgb(60, 187, 222) 50%, rgb(44, 44, 44) 50%);
706	}
707    .btn.dropdown-toggle.btn-info *, .btn-info a {
708        color: rgb(255, 255, 255);
709    }
710    .text-info{
711        color: rgb(60, 187, 222);
712    }
713    .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 {
714		background-color: rgb(0, 102, 153);
715        border-color: rgb(0, 102, 153);
716        color: rgb(255, 255, 255);
717    }
718    .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 {        
719		        background-color: rgba(0, 102, 153,0.95);
720        border-color: rgb(0, 102, 153);
721        color: rgb(255, 255, 255);
722    }
723    .panel-success {
724        background-color: #d9e8f0;
725        border-color: rgb(0, 102, 153);
726    }
727    .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 {
728        background-color: rgb(0, 102, 153);
729        color: rgb(255, 255, 255);
730    }
731    .bg-success .badge {
732        background-color: rgb(255, 255, 255);
733        color: rgb(0, 102, 153);
734    }
735    .btn-success.btn-outline {
736        background: transparent;
737        color: rgb(0, 102, 153);
738        transition: all 250ms ease-in-out 0ms;
739    }
740    .btn-success.btn-outline:hover {
741            background: rgba(0, 102, 153,0.1);
742		color: rgb(0, 102, 153);
743    }
744    .alert-success {
745            background-color:rgba(0, 102, 153,0.7);
746        border-color:rgba(0, 102, 153,0.2);
747            color: rgba(255, 255, 255,0.9);
748    }
749	.alert-success-subtle, .label-success-subtle, .badge-success-subtle {
750		background-color: #cce0eb;
751		border-color: #cce0eb;
752		color: rgb(0, 102, 153);
753		color: color-mix(in srgb, rgb(0, 102, 153) 50%, rgb(44, 44, 44) 50%);
754	}
755    .btn.dropdown-toggle.btn-success *, .btn-success a {
756        color: rgb(255, 255, 255);
757    }
758    .text-success{
759        color: rgb(0, 102, 153);
760    }
761    .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 {
762		background-color: rgb(240, 52, 52);
763        border-color: rgb(240, 52, 52);
764        color: rgb(255, 255, 255);
765    }
766    .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 {        
767		        background-color: rgba(240, 52, 52,0.95);
768        border-color: rgb(240, 52, 52);
769        color: rgb(255, 255, 255);
770    }
771	.panel-warning {
772        background-color: #fde1e1;
773		border-color: rgb(240, 52, 52);
774	}
775    .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 {
776        background-color: rgb(240, 52, 52);
777        color: rgb(255, 255, 255);
778    }
779    .bg-warning .badge {
780        background-color: rgb(255, 255, 255);
781        color: rgb(240, 52, 52);
782    }
783    .btn-warning.btn-outline {
784        background: transparent;
785        color: rgb(240, 52, 52);
786        transition: all 250ms ease-in-out 0ms;
787    }
788    .btn-warning.btn-outline:hover {
789            background: rgba(240, 52, 52,0.1);
790		color: rgb(240, 52, 52);
791    }
792    .alert-warning {
793            background-color:rgba(240, 52, 52,0.7);
794        border-color:rgba(240, 52, 52,0.2);
795            color: rgba(255, 255, 255,0.9);
796    }
797	.alert-warning-subtle, .label-warning-subtle, .badge-warning-subtle {
798		background-color: #fcd6d6;
799		border-color: #fcd6d6;
800		color: rgb(240, 52, 52);
801		color: color-mix(in srgb, rgb(240, 52, 52) 50%, rgb(44, 44, 44) 50%);
802	}
803    .btn.dropdown-toggle.btn-warning *, .btn-warning a {
804        color: rgb(255, 255, 255);
805    }
806    .text-warning {
807        color: rgb(240, 52, 52);
808    }
809    .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 {
810		background-color: rgb(240, 52, 52);
811        border-color: rgb(240, 52, 52);
812        color: rgb(255, 255, 255);
813    }
814    .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 {        
815		        background-color: rgba(240, 52, 52,0.95);
816        border-color: rgb(240, 52, 52);
817        color: rgb(255, 255, 255);
818    }
819    .has-error .form-control {
820        border-color: rgb(240, 52, 52);
821    }
822    .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 {
823        background: rgb(240, 52, 52);
824        color: rgb(255, 255, 255) !important;
825    }
826    .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 {
827        color: rgb(240, 52, 52);
828    }
829	.panel-danger {
830        background-color: #fde1e1;
831		border-color: rgb(240, 52, 52);
832	}
833    .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 {
834        background-color: rgb(240, 52, 52);
835        color: rgb(255, 255, 255);
836    }
837    .bg-danger .badge {
838        background-color: rgb(255, 255, 255);
839        color: rgb(240, 52, 52);
840    }
841    .btn-danger.btn-outline {
842        background: transparent;
843        color: rgb(240, 52, 52);
844        transition: all 250ms ease-in-out 0ms;
845    }
846    .btn-danger.btn-outline:hover {
847            background: rgba(240, 52, 52,0.1);
848		color: rgb(240, 52, 52);
849    }
850    .alert-danger {
851            background-color:rgba(240, 52, 52,0.7);
852        border-color:rgba(240, 52, 52,0.2);
853            color: rgba(255, 255, 255,0.9);
854    }
855	.alert-danger-subtle, .label-danger-subtle, .badge-danger-subtle {
856		background-color: #fcd6d6;
857		border-color: #fcd6d6;
858		color: rgb(240, 52, 52);
859		color: color-mix(in srgb, rgb(240, 52, 52) 50%, rgb(44, 44, 44) 50%);
860	}	
861    .btn.dropdown-toggle.btn-danger *, .btn-danger a {
862        color: rgb(255, 255, 255);
863    }
864    .text-danger{
865        color: rgb(240, 52, 52);
866    }
867    .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
867s, 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 {
868		background-color: rgb(245, 245, 245);
869        border-color: rgb(245, 245, 245);
870        color: rgb(85, 85, 85);
871    }
872    .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 {        
873		        background-color: rgba(245, 245, 245,0.95);
874        border-color: rgb(245, 245, 245);
875        color: rgb(85, 85, 85);
876    }
877    .sidemenu_panel .panel-default .panel_heading {
878        background-color: rgb(245, 245, 245)!important;
879        border-color: rgb(245, 245, 245)!important;
880        color: rgb(85, 85, 85)!important;
881    }
882	.panel-default .panel-heading, .member_accounts .panel-default > .panel-heading, .panel-default.categories-panel .panel-heading {
883				
884		box-shadow: 0 0 1000px 0 rgba(85, 85, 85,0.02) inset;
885		background-color: rgb(245, 245, 245);
886	}
887    .panel-default, .member_accounts .panel-default {
888			
889        background-color: rgba(245, 245, 245,0.15);
890		border-color: #fefefe;
891		border-color: color-mix(in srgb,rgb(245, 245, 245) 100%,rgba(245, 245, 245) 10%);
892	}
893	.member_admin_sidemenu .panel-default {
894		background-color: transparent;
895	}
896    .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 {
897        background-color: rgb(245, 245, 245);
898        color: rgb(85, 85, 85);
899    }
900    .bg-default .badge {
901        background-color: rgb(85, 85, 85);
902        color: rgb(245, 245, 245);
903    }
904    .btn-default.btn-outline {
905        background: transparent;
906        color: rgb(245, 245, 245);
907        transition: all 250ms ease-in-out 0ms;
908    }
909    .btn-default.btn-outline:hover {
910            background: rgba(245, 245, 245,0.1);
911		color: rgb(245, 245, 245);
912    }
913	.alert-default {
914		background-color:rgb(245, 245, 245);
915		border-color:rgb(245, 245, 245);
916		color: rgb(85, 85, 85);
917	}
918	.alert-default-subtle, .label-default-subtle, .badge-default-subtle {
919				background-color:rgba(245, 245, 245,0.5);
920		border-color: rgba(245, 245, 245,0.5);
921		color: rgb(85, 85, 85);
922		color: color-mix(in srgb, rgb(85, 85, 85) 50%, rgb(44, 44, 44) 50%);
923	}	
924    .btn.dropdown-toggle.btn-default *, .btn-default a {
925        color: rgb(85, 85, 85);
926    }
927    .text-default{
928        color: rgb(245, 245, 245);
929    }
930    .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 {
931		background-color: rgb(44, 44, 44);
932        border: 1px solid rgb(44, 44, 44);
933        color: rgb(255, 255, 255);
934    }
935    .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 {        
936		        background-color: rgba(44, 44, 44,0.95);
937        border-color: rgb(44, 44, 44);
938        color: rgb(255, 255, 255);
939    }
940    .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 {
941        background-color: rgb(44, 44, 44);
942        color: rgb(255, 255, 255);
943    }
944    .bg-secondary .badge {
945        background-color:rgb(255, 255, 255);
946        color: rgb(44, 44, 44);
947    }
948    .btn-secondary.btn-outline {
949        background: transparent;
950        color: rgb(44, 44, 44);
951        transition: all 250ms ease-in-out 0ms;
952    }
953    .btn-secondary.btn-outline:hover {
954            background: rgba(44, 44, 44,0.1);
955		color: rgb(44, 44, 44);
956    }
957	.panel-secondary {
958        background-color: #dfdfdf;
959		border-color: rgb(44, 44, 44);
960	}
961	.alert-secondary {
962		background-color:rgb(44, 44, 44);
963		border-color:rgb(44, 44, 44);
964		color: rgb(255, 255, 255);
965	}
966	.alert-secondary-subtle, .label-secondary-subtle, .badge-secondary-subtle {
967				background-color:rgba(44, 44, 44,0.8);
968		border-color: rgba(44, 44, 44,0.5);
969		color: rgb(255, 255, 255);
970	}
971	.btn-outline {
972		-webkit-backdrop-filter: blur(5px);
973		backdrop-filter: blur(5px);
974	}
975	.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 {
976		background-color: rgb(255, 255, 255);
977		border: 1px solid rgb(255, 255, 255);
978		color: rgb(44, 44, 44);
979	}
980	.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 {        
981				background-color: rgba(255, 255, 255,0.95);
982		border: 1px solid rgb(255, 255, 255);
983		color: rgb(44, 44, 44);
984	}	
985	.btn.btn-body.dropdown-toggle * {
986		color: rgb(44, 44, 44)	
987	}
988	.btn-body.dropdown-toggle + ul li, .daterangepicker .ranges {
989		color: #333;
990	}
991    .bg-body {
992        background: rgb(255, 255, 255);
993        color: rgb(44, 44, 44);
994    }
995    .bg-content-box {
996        background: rgb(245, 245, 245);
997        color: rgb(41, 41, 41);
998    }
999    .bg-content-box-border {
1000        background: rgb(221, 221, 221);
1001    }
1002    .btn.dropdown-toggle.btn-secondary *, .btn-secondary a {
1003        color: rgb(255, 255, 255);
1004    }
1005    .text-secondary {
1006        color: rgb(44, 44, 44);
1007    }
1008	.text-body {
1009		color: rgb(255, 255, 255);
1010	}
1011    .feature-post #post-content .alert-secondary.btn-block, .feature-search .img_section .alert-secondary.btn-block, .search_result .img_section  .alert-secondary {
1012		border-radius: 10px;
1013        background-color: rgba(44, 44, 44,0.2);
1014    }
1015
1016    /* Footer Newsletter Row */
1017    .newsletter_row .alert {
1018        color: rgb(255, 255, 255);
1019    }
1020    .newsletter_row {
1021        background-color: rgb(0, 102, 153);
1022        color: rgb(255, 255, 255);
1023    }
1024    .newsletter_row input[type="submit"],.newsletter_footer_button {
1025            background-color: rgba(0, 166, 128,0.97);
1026        color: rgb(255, 255, 255);
1027        border-color: rgb(0, 166, 128);
1028    }
1029    .newsletter_row input[type="submit"]:hover,.newsletter_row input[type="submit"]:focus,.newsletter_footer_button:hover,.newsletter_footer_button:focus {
1030        background-color: rgb(0, 166, 128);
1031        color: rgb(255, 255, 255);
1032    }
1033    .newsletter_button_left {
1034            border-right: 1px solid rgba(255, 255, 255,0.2);
1035    }
1036    .newsletter_button_right {
1037        border-left: 1px solid rgba(255, 255, 255,0.2);
1038    }
1039    .newsletter_row small.help-block {
1040        background: rgb(255, 255, 255);
1041        margin-top: -5px;
1042        float: left;
1043        padding: 8px;
1044        border-radius: 1px;
1045        color: rgb(0, 102, 153);
1046        text-transform: capitalize;
1047    }
1048    .newsletter_row .has-success .checkbox,.newsletter_row .has-error .checkbox{
1049        color: rgb(255, 255, 255);
1050    }
1051    @media only screen and (max-width: 767px) {
1052        .newsletter_button_right,.newsletter_button_left{
1053            border: none;
1054            margin: 5px 0;
1055        }
1056    }
1057
1058    /* Font Sizes */
1059
1060    .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span {
1061        font-size: 16px;
1062    }
1063    .header .logo {
1064        font-size: 36px;
1065    }
1066    .homepage_title h1, .homepage_settings h1 {
1067		letter-spacing: -1px;
1068        font-size: 80px;
1069					margin-bottom: 20px;
1070				    }
1071    @media only screen and (max-width: 768px) {
1072        .homepage_title h1, .homepage_settings h1 {margin-bottom: 15px;}
1073    }	
1074    .homepage_settings h2 {
1075        font-size: 28px;
1076    }
1077
1078    .ui-rangeSlider-bar{
1079        background: rgb(0, 102, 153)!important;
1080    }
1081
1082    
1083    
1084    @media only screen and (max-width: 1024px){
1085        .modal {margin-top: 40px;}
1086    }
1087    @media only screen and (max-width: 768px){
1088        .modal {margin-top: 60px;}
1089    }
1090
1091    /* Calendar Styles */
1092
1093    #cal-slide-content {
1094        color: rgb(85, 85, 85)!important;
1095        background-color: rgb(245, 245, 245)!important;
1096        -webkit-box-shadow: none!important;
1097        box-shadow: none!important;
1098    }
1099    #cal-slide-content a.event-item {
1100        color: rgb(85, 85, 85)!important;
1101        font-weight:bold!important;
1102    }
1103    #cal-slide-content a.event-item small {
1104        display: inline-block;
1105    }
1106    .cal-month-box, .cal-year-box, .cal-week-box {
1107        border: 1px solid rgb(221, 221, 221)!important;
1108    }
1109    .cal-year-box .row-fluid, .cal-month-box .cal-row-fluid {
1110        border-bottom: 1px solid rgb(221, 221, 221)!important;
1111    }
1112    .cal-year-box [class*="span"], .cal-month-box [class*="cal-cell"] {
1113        border-right: 1px solid rgb(221, 221, 221)!important;
1114    }
1115    .cal-year-box .row-fluid, .cal-row-fluid, #cal-day-box .cal-day-hour:nth-child(odd) {
1116        background-color: rgb(255, 255, 255)!important;
1117    }
1118    .cal-month-day span:not(.pull-right):not(.events-count-label):not(.events-label) {
1119        color: rgb(85, 85, 85)!important;
1120    }
1121    .cal-day-today span[data-cal-date] {
1122        color: rgb(44, 44, 44)!important;
1123    }
1124    .cal-year-box .row-fluid [class*="span"]:last-child, .cal-month-box .cal-row-fluid [class*="cal-cell"]:last-child {
1125        border: 0!important;
1126    }
1127    .cal-row-head {
1128        background: rgb(245, 245, 245)!important;
1129    }
1130    .day-highlight:hover, .day-highlight {
1131        background-color: rgb(221, 221, 221)!important;
1132    }
1133    .cal-event-list .event.pull-left {
1134        background-color: rgb(44, 44, 44)!important;
1135        opacity: 0.4;
1136        margin-top: 7px!important;
1137    }
1138    .cal-day-today {
1139        background-color: rgb(221, 221, 221)!important;
1140    }
1141    #cal-day-tick {
1142        border: 1px solid rgb(221, 221, 221)!important;
1143        background-color: rgb(221, 221, 221)!important;
1144    }
1145    .cal-day-weekend span[data-cal-date]{
1146        color: rgb(44, 44, 44)!important;
1147    }
1148        .rsDefault, .rsDefault .rsOverflow, .rsDefault .rsSlide, .rsDefault .rsVideoFrameHolder, .rsDefault .rsThumbs {
1149		border-radius: 10px;
1150        background: #151515!important;
1151    }
1152	.img_section .no-radius-bottom + .alert-secondary .rsDefault .rsSlide, .img_section .no-radius-bottom + .alert-secondary  .rsDefault .rsOverflow {
1153		border-radius:0;
1154	}
1155    
1156    #first_container .favorite, #first_container .fa.favorite {
1157        color: rgb(170, 184, 194);
1158        background: rgb(245, 245, 245);
1159        border: 1px solid rgb(245, 245, 245);
1160        white-space:nowrap!important;
1161		height:24px;
1162		padding:0 6px;
1163		border-radius:8px;
1164    }
1165    #first_container .favorite span, #first_container .fa.favorite span {
1166        font-family: 'Cabin';
1167        white-space:nowrap!important;
1168    }
1169    #first_container .favoriteActive:not(.favorite.comments-count-badge), #first_container .fa.favoriteActive:not(.favorite.comments-count-badge .fa) {
1170        color: rgb(226, 38, 77);
1171    }
1172        #first_container .favorite::after, #first_container .fa.favorite::after {
1173        font-family: 'Cabin';
1174        margin-left: 3px;
1175    }
1176    #first_container .favorite span, #first_container .fa.favorite span{
1177        padding-left: 4px;
1178        font-family: 'Cabin';
1179        font-size: 11px;
1180		letter-spacing:.5px;
1181		top:-1px;
1182		position:relative;
1183		font-weight:700;		
1184    }
1185	#first_container .favorite span:empty, #first_container .fa.favorite span:empty {
1186		padding: 0;
1187	}
1188	#first_container .favorite .bookmark-number, #first_container .fa.favorite .bookmark-number {
1189		padding: 1px 0;
1190		border-radius: 100px;
1191		display: inline-block;
1192		font-weight: bold;
1193		min-width: 15px;
1194		font-size: .8em;
1195		vertical-align: bottom;
1196		height: 15px;
1197		line-height: 13px;
1198		margin-left: 3px;
1199		text-align: center;
1200	}
1201    #first_container .favorite.favoriteActive .bookmark-number:not(.comments-count-badge .bookmark-number), #first_container .fa.favorite.favoriteActive .bookmark-number {
1202        background: rgb(226, 38, 77);
1203		color: #fff;
1204    }
1205    
1206    span.checkbox_value::after {
1207        content: ', ';
1208    }
1209
1210    span.checkbox_value:last-child::after {
1211        content: '';
1212    }
1213    
1214    
1215    
1216
1217    /*  Homepage Sections Background Color Logic */
1218
1219    
1220    .homepage-section-1 {
1221        padding: 40px 0 40px;
1222    }
1223
1224    
1225    .homepage-section-1 {
1226        background: rgb(44, 44, 44);
1227    }
1228
1229    
1230    .homepage-section-2 {
1231        padding: 40px 0 40px;
1232    }
1233
1234    
1235    .homepage-section-3 {
1236        padding: 40px 0 40px;
1237    }
1238
1239    
1240    .homepage-section-4 {
1241        padding: 40px 0 40px;
1242    }
1243
1244    
1245    .homepage-section-5 {
1246        padding: 40px 0 40px;
1247    }
1248
1249    
1250    .homepage-section-6 {
1251        padding: 40px 0 40px;
1252    }
1253
1254    
1255    .homepage-section-7 {
1256        padding: 40px 0 40px;
1257    }
1258
1259    
1260    .homepage-section-8 {
1261        padding: 40px 0 40px;
1262    }
1263
1264    
1265    .homepage-section-9 {
1266        padding: 40px 0 40px;
1267    }
1268
1269    
1270    .homepage-section-10 {
1271        padding: 40px 0 40px;
1272    }
1273
1274    
1275    .homepage-section-11 {
1276        padding: 40px 0 40px;
1277    }
1278
1279    
1280    .homepage-section-12 {
1281        padding: 40px 0 40px;
1282    }
1283
1284    
1285    .homepage-section-13 {
1286        padding: 40px 0 40px;
1287    }
1288
1289    
1290    .homepage-section-14 {
1291        padding: 40px 0 40px;
1292    }
1293
1294    
1295    .homepage-section-15 {
1296        padding: 40px 0 40px;
1297    }
1298
1299    
1300    /* Additional Settings */
1301
1302    
1303    /* Streaming Widgets Title Settings */
1304
1305    .streaming-title {
1306        text-align: left;
1307        font-size: 30px;
1308		line-height:1.5em;
1309            font-weight: 600;
1310                font-family: 'PT Sans';
1311            padding-bottom: 0px;
1312    }
1313	
1314	@media only screen and (max-width: 990px) {
1315		.streaming-title {
1316			line-height:1.1em;
1317		}
1318	}
1319
1320        
1321    .homepage-join-module .module h2:first-of-type {
1322        color: rgb(62, 62, 62);
1323    }
1324
1325    .homepage-join-module .module{
1326        background: rgb(245, 245, 245);
1327        border-color: rgb(221, 221, 221);
1328    }
1329
1330    .homepage-about-module .module h2:first-of-type {
1331        color: rgb(62, 62, 62);
1332    }
1333
1334    .homepage-about-module .module{
1335        background: rgb(245, 245, 245);
1336        border-color: rgb(221, 221, 221);
1337
1338	}
1339
1340	.the-post-description > :is(h2, h3, h4, h5):not(:first-child) {
1341		font-weight: 600;
1342		margin-top: 20px;
1343	}
1344	
1345	/* Keep: Ensure ul/ol respect padding and margins */
1346	.the-post-description > :is(ul, ol) {
1347		display: flow-root;
1348	}
1349	.the-post-description li {
1350		margin-bottom: 8px;
1351	}
1352
1353    
1354    
1355    .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 {
1356        border-radius:1000px!important;
1357    }
1358
1359    .img-rounded img, img.fr-dib.img-rounded{
1360        border-radius: 10px!important;
1361    }
1362    
1363    /* Google Translate Module */
1364        .skiptranslate{font-size:0}
1365    .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}
1366    .skiptranslate.goog-te-gadget span,img.goog-te-gadget-icon{display:none!important}
1367    .goog-te-gadget .goog-te-combo{margin-bottom:-4px}
1368    .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)}
1369    @media only screen and (max-width: 1100px) {
1370        .skiptranslate:not(.skiptranslate[style="display: none;"]){height:39px}
1371        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header{margin-top:10px!important}
1372        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar{margin-top:10px}
1373        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar ~ .header{margin-top:0!important}
1374        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .mobile-main-menu{top:89px!important;height:calc(100% - 90px)!important}
1375        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .navbar{top:39px}
1376        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ #first_container .member_sidebar.open{top: 89px;}
1377    }
1378    @media only screen and (max-width: 767px) {
1379        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar.hidden-xs ~ .header{margin-top:10px!important}
1380    }
1381
1382    
1383    
1384</style>
1385
1386<!--GOOGLE TAG MANAGER CODE--><div class="header">
1387            <div class="container">
1388			<div class="row header-main-row">
1389				<style type='text/css'> .logo-text:has(.logo_title:empty) {
1390	display:none
1391} </style><div id="website_logo" class="col-md-5 xs-nopad xs-hpad sm-text-center xs-bmargin header-left-container">
1392		
1393      <a class="logo logo-text center-block vpad sm-nopad sm-tmargin" title="Metro Atlanta Shopper" href="http://www.atlshopper.com">
1394          		  	<i class="fa fa-image pull-left hidden-sm hidden-xs bmargin"></i>
1395		            <span class="logo_title">ATL Shopper</span>
1396          <span class="line-height-xl slogan">Find Local Deals, Discounts & Savings</span>
1397      </a> 
1398    	<div class="clearfix"></div>
1399</div>
1400									<style type='text/css'> body input.tt-hint,body input.form-control.normal-autosuggest-input.tt-query {
1401	background-color: white !important;
1402}
1403.mini-nav:not(:has(li)) {
1404	display: none!important;
1405}
1406/* Parent Container - Main List */
1407.mini-nav li:has(ul) {
1408	position: relative;
1409	border-radius: 8px 8px 0 0;
1410}
1411.mini-nav > li:has(ul) {
1412	padding-left: 0;
1413	padding-right: 0;
1414	background: rgb(255, 255, 255);
1415}
1416.mini-nav > li:has(ul) > a:not(.btn), .mini-nav > li:has(ul) > span {
1417	padding: 10px 15px;
1418	margin: 0!important;
1419}
1420.mini-nav > li:hover:has(ul), .mini-nav > li:hover:has(ul) {
1421	box-shadow: 0 -1px 3px rgba(118, 118, 118,0.25);
1422}
1423/* Parent Links */
1424.mini-nav > li > a:not(.btn), .mini-nav > li > span:not(.btn) {
1425	display:inline-block;
1426	border-radius: 8px 8px 0 0;
1427}
1428.mini-nav > li:hover > a:not(.btn), .mini-nav > li:hover > span {
1429	background: rgb(255, 255, 255);
1430	display: inline-block;
1431	position: relative;
1432	z-index: 1000;
1433}
1434/* First Level Dropdowns */
1435.mini-nav li ul {
1436	background: rgb(255, 255, 255);
1437	box-shadow: 0 0px 3px rgba(118, 118, 118,0.25), 0 5px 5px 5px rgba(118, 118, 118,0.05);
1438	text-align: left;
1439	display: none;
1440	border-radius: 0 8px 8px 8px;
1441	list-style: none;
1442	padding: 10px;
1443	position: absolute;
1444	white-space: nowrap;
1445	min-width: 130%;
1446	width: auto;
1447	top: 100%;
1448	left: 0;
1449	z-index: 999;
1450	margin-top: -1px;
1451}
1452.mini-nav li:hover > ul {
1453	display: block;
1454}
1455/* First Level Dropdown Items */
1456.mini-nav li ul li {
1457	position: relative;
1458	display: block;
1459	width: 100%;
1460}
1461.mini-nav li ul li a, .mini-nav li ul li span {
1462	font-size: 12.95px !important;
1463	display: block;
1464	font-weight: 400;
1465	padding: 8px 12px;
1466	border-radius: 8px;
1467	text-decoration: none;
1468	width: 100%;
1469}
1470.mini-nav li ul li a:hover, .mini-nav li ul li span:hover {
1471	box-shadow: 0 0 0 25px rgba(118, 118, 118,0.05) inset;
1472}
1473/* Second Level Dropdowns */
1474.mini-nav li ul li ul {
1475	display: none;
1476	position: absolute;
1477	top: 0;
1478	left: 100%;
1479	margin: 0;
1480	border-radius: 8px;
1481}
1482.mini-nav li ul li:hover > ul {
1483	display: block;
1484}
1485/* Edge Positioning - Last Child Dropdowns */
1486.mini-nav > li:last-child ul {
1487	right: 0;
1488	left: auto;
1489	border-radius: 8px 0 8px 8px;
1490}
1491.mini-nav > li:last-child ul li ul {
1492	right: 100%;
1493	left: auto;
1494}
1495/* Flex Spacing Utility */
1496.mini-nav.mini-nav-flex-spaced {
1497	display: flex;
1498	justify-content: space-between;
1499	align-items: center;
1500	flex-wrap: wrap;
1501	row-gap: 0;
1502}
1503.mini-nav.mini-nav-flex-spaced > li {
1504	flex: none;
1505	padding: 0;
1506	margin: 2px 0;
1507	order: 2;
1508}
1509.mini-nav.mini-nav-flex-spaced > li.header-member-account-links,
1510.mini-nav:has(li ul) > li.header-member-account-links {
1511	order: 1;
1512	margin-left: auto;
1513	width: 100%;
1514	margin-bottom: 10px;
1515}
1516.logged-in-member-header .mini-nav.mini-nav-flex-spaced.list-inline > li {
1517	line-height: 1em;
1518	min-height: 0;
1519}
1520@media (min-width: 992px) {
1521	.header-main-row {
1522		display: flex;
1523		align-items: center;
1524		flex-wrap: wrap;
1525	}
1526}
1527@media (max-width: 991px) {
1528	.mini-nav.mini-nav-flex-spaced {
1529		justify-content: center;
1530	}
1531	.mini-nav.mini-nav-flex-spaced > li {
1532		margin-left: 5px !important;
1533		margin-right: 5px !important;
1534	}
1535} </style><div class="col-md-7 text-right sm-text-center header-right-container nolpad xs-hpad">
1536            <ul class="mini-nav  nobmargin list-inline xs-nopad xs-tmargin tpad">
1537            <li class='bmargin'><span id='link207'  class='bmargin'> (800) 555-5555</span></li><li class='bmargin'><a href='/about/contact' id='link209'  class='hpad bmargin'>Contact Us</a></li><li class='bmargin'><a href='/login' id='link208'  class='rpad bmargin'>Member Login</a></li><li class='bmargin norpad'><a href='/join' id='link210'  class='btn btn_get_listed bold'>Members - Get Listed Today</a></li>        </ul>
1538            <div class="clearfix"></div>
1539                <form action="/search_results" name="frm1" class="form-inline website-search">
1540                                    <div class="input-group input-group-sm bmargin sm-autosuggest">
1541                        <span class="input-group-addon"><i class="fa fa-search"></i></span>
1542                        <input type="text"
1543                               placeholder="Find Business by Name" value="" name="q"
1544                               class="member_search form-control input-sm" autocomplete="off">
1545                    </div>
1546                                    <input type="submit" value="Search" class="btn btn-sm btn_search bmargin xs-btn-block bold">
1547            </form>
1548            </div>
1549				            </div>
1550        </div>
1551        <style type='text/css'> .mobile-main-menu .hasChildren span a {
1552	padding: 0px;
1553}
1554
1555.user_sidebar > img {
1556	width: 32px;
1557	height: 32px;
1558	position: absolute;
1559	z-index: 10;
1560	border-radius: 100px;
1561	top: -1px;
1562	object-fit: cover;
1563	left: -10px;
1564	background: rgb(245, 245, 245);
1565}
1566#member_sidebar_toggle img+.fa {
1567	display: none;
1568}
1569.main_menu, .user_sidebar, .compact-mobile-search {
1570	padding: 5px 8px;
1571	margin-right:0;
1572	min-height: 33.0333px;
1573	min-width: 38.116px;	
1574}
1575.main_menu i, .user_sidebar i {
1576	font-size: 16px;
1577}
1578.navbar-nav li {
1579	float: none!Important;
1580}
1581.navbar-default{
1582	-webkit-transition: all .6s ease-in-out;
1583	-moz-transition: all .6s ease-in-out;
1584	-o-transition: all .6s ease-in-out;
1585	transition: all .6s ease-in-out;
1586}
1587.transparent_menu {
1588		background-color: rgba(245, 245, 245,0.95)!important;
1589}
1590@media only screen and (max-width: 991px) {
1591	#popover {display: none}
1592}
1593@media only screen and (max-width: 1100px){
1594	.mobile-main-menu{display:block!important}
1595	.navbar-toggle {display: block}
1596	#bs-main_menu .nav {display: none!important}
1597}
1598.mobile-main-menu {
1599	position: fixed;
1600	height: calc(100% - 50px)!important;
1601	width: 250px;
1602	background: rgb(245, 245, 245);
1603	z-index: 99999;
1604	right: -250px;
1605	top: 50px;
1606	display: none;
1607	-webkit-transition: all .6s ease-in-out;
1608	-moz-transition: all .6s ease-in-out;
1609	-o-transition: all .6s ease-in-out;
1610	transition: all .6s ease-in-out;
1611	overflow-y: auto!important;
1612	overflow-x: hidden!important;
1613}
1614.mobile-main-menu ul li i {
1615	color: rgb(71, 71, 71);
1616	cursor: pointer;
1617	float: right;
1618	padding: 13px;
1619}
1620.mobile-main-menu.opened{
1621	right: 0px!important;
1622}
1623.mobile-main-menu ul li a, .mobile-main-menu ul li span {
1624	display: inline-block;
1625	float: left;
1626	-webkit-touch-callout: none;
1627	-webkit-user-select: none;
1628	-khtml-user-select: none;
1629	-moz-user-select: none;
1630	-ms-user-select: none;
1631	user-select: none;
1632	padding: 10px 0px;
1633	width: 80%;
1634	width: calc(100% - 40px);
1635}
1636.mobile-main-menu .sidebar-nav li ul {
1637	height: 0px;
1638	overflow: hidden;
1639	list-style: none;
1640	color: rgb(71, 71, 71);
1641	padding-left: 10px;
1642}
1643.mobile-main-menu .sidebar-nav li.sub_open > ul{
1644	height: 100%;
1645}
1646.mobile-main-menu ul.sidebar-nav {
1647	position: absolute;
1648	width: 250px;
1649	margin: 0;
1650	padding: 0;
1651	list-style: none;
1652	font-size: 14px;
1653}
1654.mobile-main-menu .sidebar-nav > li {
1655	display: block;
1656	line-height: 20px;
1657	padding: 0 15px 0 20px;
1658}
1659.mobile-main-menu .sidebar-nav li a, .mobile-main-menu .sidebar-nav li span {
1660	text-decoration: none;
1661	color: rgb(71, 71, 71);
1662	padding-left:10px;
1663}
1664.mobile-main-menu .sidebar-nav li a i, .mobile-main-menu .sidebar-nav li span i {
1665	display: none;
1666}
1667
1668 </style><div class="mobile-main-menu">
1669	<ul class="sidebar-nav">
1670		<li class=''><a href='/home' id='link1'>Home</a></li><li class=''><a href='/search_results' id='link319'>Hot Spots <i class="fa fa-angle-down"></i></a><ul><li class=''><a href='/search_results' id='link320'>Business Directory</a></li><li class=''><a href='/categories' id='link322'>Brose by Category</a></li><li class=''><a href='/join' id='link323'>Add Your Business</a></li></ul></li><li class=''><a href='/top-level-category' id='link324'>Metro Location</a><ul><li class=''><a href='/search_results' id='link352'>Bartow County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link346'>Cherokee County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link347'>Clayton County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link349'>Cobb County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link340'>Dekalb County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link350'>Douglas County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link341'>Fayette County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link343'>Forsyth County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link344'>Fulton County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link354'>Gwinnett County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link353'>Hall County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link351'>Henry County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link355'>Paulding County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link356'>Rockdale & Newton County, GA & Surrounding Area</a></li></ul></li><li class=''><a href='/top-level-category' id='link325'>Sample Category</a></li><li class=''><a href='/top-level-category' id='link342'>Sample Category</a></li><li class=''><a href='/coupons' id='link326'>Deals & Offers</a></li><li class=''><a href='/events' id='link334'>Events & Shows</a></li><li class=''><a href='/blog' id='link335'>Travel Ideas</a></li>	</ul>
1671</div>
1672<nav class="navbar navbar-default ">
1673	<div class="container container-fluid">
1674
1675		<div class="navbar-header">
1676						<button type="button" class="navbar-toggle collapsed main_menu" data-toggle="collapse" aria-label="main_menu">
1677								<i class="fa fa-bars fa-fw"></i>
1678							</button>
1679
1680			
1681			
1682		</div>
1683
1684
1685		<div class="tablet-menu collapse navbar-collapse nopad" id="bs-main_menu">
1686			<ul class="tablet-menu-ul nav navbar-nav nav-justified">
1687				<li class=''><a href='/home' id='link1'>Home</a></li><li class=''><a href='/search_results' id='link319'>Hot Spots <i class="fa fa-angle-down"></i></a><ul><li class=''><a href='/search_results' id='link320'>Business Directory</a></li><li class=''><a href='/categories' id='link322'>Brose by Category</a></li><li class=''><a href='/join' id='link323'>Add Your Business</a></li></ul></li><li class=''><a href='/top-level-category' id='link324'>Metro Location</a><ul><li class=''><a href='/search_results' id='link352'>Bartow County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link346'>Cherokee County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link347'>Clayton County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link349'>Cobb County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link340'>Dekalb County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link350'>Douglas County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link341'>Fayette County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link343'>Forsyth County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link344'>Fulton County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link354'>Gwinnett County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link353'>Hall County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link351'>Henry County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link355'>Paulding County, GA & Surrounding Area</a></li><li class=''><a href='/search_results' id='link356'>Rockdale & Newton County, GA & Surrounding Area</a></li></ul></li><li class=''><a href='/top-level-category' id='link325'>Sample Category</a></li><li class=''><a href='/top-level-category' id='link342'>Sample Category</a></li><li class=''><a href='/coupons' id='link326'>Deals & Offers</a></li><li class=''><a href='/events' id='link334'>Events & Shows</a></li><li class=''><a href='/blog' id='link335'>Travel Ideas</a></li>			</ul>
1688		</div>
1689	</div>
1690</nav>
1691<!--CSS IF MENU IS FIXED TOP-->
1692
1693</div>
1694<!--
1695
1696IMPORTANT: This widget contains real Adsense code as a sample to show how this widget functions.  Please replace the current Adsense code below with your own code in order to generate revenue from this ad space.
1697
1698-->
1699<div class="container clearfix text-center banner-ad-unit above-content-banner-ad">
1700		<div class="clearfix"></div>
1701</div>
1702<div class="clearfix"></div><div class="clearfix"></div>
1703<!-- Begin  Content -->
1704<main role="main" id="main-content">
1705<div id="first_container" class="content-container fr-view">
1706        <div class="container">
1707                        <div class="clearfix body-content"></div>
1708        <style type='text/css'> 	.body-content {margin:0px;}
1709	#first_container {
1710			background-image: url('/images/ATL4.jpg');
1711		background-position: center top;
1712	background-repeat: no-repeat;
1713	position: relative;
1714				background-size: cover;
1715		}
1716
1717
1718.search_box,.homepage_settings .center-block {
1719float:
1720	none!important;
1721}
1722
1723
1724@media only screen and (max-width: 768px) {
1725	#first_container {
1726		background-position: center top;
1727			}
1728	.homepage_title,.homepage_settings h2,.search_box {
1729		float:none!important;
1730	}
1731	}
1732
1733[class^="homepage-section-"]:empty {
1734	display: none;
1735}
1736.primary-hero-content .search_box, .secondary-hero-content  .search_box {
1737	width: 100%;
1738}
1739.homepage_settings:has(.secondary-hero-content) {
1740	display: flex;
1741	align-items: center;
1742	flex-wrap: wrap;
1743}
1744.homepage_settings:has(.secondary-hero-content) > * {
1745	order: 10;
1746} </style>    <div class="row-fluid row homepage_settings">
1747            <div class="col-xs-12 col-sm-12 col-md-12 center-block homepage_title primary-hero-content">
1748                                    <h1 class="sm-text-center">Metro Atlanta Savings Guide</h1>
1749                                            </div>
1750            		<div class="clearfix"></div>
1751		<div class="col-md-12">
1752			
1753			<div class="clearfix"></div>
1754							<div class="clearfix"></div>
1755				    <div class="col-md-12 search_box fpad img-rounded">
1756                <div class="clearfix"></div>
1757        <div class="form-group nomargin hidden-xs hidden-sm col-md-4">
1758            <label class="nomargin">
1759                1. What Are You Looking For?
1760            </label>
1761        </div>
1762        <div class="form-group nomargin hidden-xs hidden-sm col-md-4 nolpad">
1763            <label class="nomargin">
1764                2. Select a Category:
1765            </label>
1766        </div>
1767        <div class="clearfix"></div>
1768        <form class="fpad form-inline" name="frm1" action="/search_results">
1769            <div class="form-group col-xs-12 col-md-4 nolpad sm-norpad">
1770                <div class="input-group col-xs-12">
1771                    <select placeholder="Select an option" name="sid" id="sid" class="form-control input-lg">
1772                        <option value=""></option>
1773                        <option value='2'>Accountants</option>
1774<option value='1'>Top-Level Category</option>
1775                    </select>
1776                </div>
1777            </div>
1778            <div class="form-group col-xs-12 col-md-4 nolpad sm-norpad">
1779                <div class="input-group col-xs-12">
1780                    <select placeholder="Select an option" name="tid" id="tid" next="ttid" class="form-control input-lg">
1781                        <option></option>
1782                    </select>
1783                </div>
1784            </div>
1785            <div class="form-group col-xs-12 col-md-4 nopad nomargin">
1786                <button type="submit" class="btn-block tmargin btn btn-lg btn_home_search notmargin">Search Now</button>
1787            </div>
1788            <div class="clearfix"></div>
1789        </form>
1790        <div class="clearfix"></div>
1791    </div>
1792				<div class="clearfix"></div>
1793						<div class="clearfix"></div>
1794			
1795			<div class="clearfix"></div>
1796		</div>
1797        <div class="clearfix"></div>
1798    </div>
1799    <div class="clearfix"></div>
1800    </div></div> <!-- closes container + content-container -->
1801
1802
1803<div class="homepage-sections fr-view">
1804        <div class="homepage-section-1"><div id="hero-divider" class="content-container homepage_steps">
1805    <div class="container">
1806				<div class="col-sm-12 col-md-4 text-center sm-bmargin sm-bpad sm-tmargin homepage_step_1">
1807			
1808								<p class="sm-tmargin">
1809										<a href="/categories" title="Business Directory">
1810						<i class="fa fa-briefcase"></i>
1811					</a>
1812									</p>
1813				
1814				
1815								<h2 class="bold sm-nomargin h3">Business Directory</h2>
1816				
1817								<p class="sm-bmargin">Find The Best Local Businesses</p>
1818				
1819								<a class="btn btn-success xs-center-block" href="/categories" title="Browse Bu
1819siness Directory">
1820					Browse Business Directory				</a>
1821				
1822							<div class="clearfix"></div>
1823		</div>
1824		<div class="clearfix hidden-lg hidden-md"></div>
1825				<div class="col-sm-12 col-md-4 text-center sm-bmargin sm-bpad sm-tmargin homepage_step_2">
1826			
1827								<p class="sm-tmargin">
1828										<a href="/events" title="Local Events">
1829						<i class="fa fa-ticket"></i>
1830					</a>
1831									</p>
1832				
1833				
1834								<h2 class="bold sm-nomargin h3">Local Events</h2>
1835				
1836								<p class="sm-bmargin">Check Out Upcoming Events</p>
1837				
1838								<a class="btn btn-success xs-center-block" href="/events" title="Browse Local Events">
1839					Browse Local Events				</a>
1840				
1841							<div class="clearfix"></div>
1842		</div>
1843		<div class="clearfix hidden-lg hidden-md"></div>
1844				<div class="col-sm-12 col-md-4 text-center sm-bmargin sm-bpad sm-tmargin homepage_step_3">
1845			
1846								<p class="sm-tmargin">
1847										<a href="/coupons" title="Popular Deals">
1848						<i class="fa fa-tags"></i>
1849					</a>
1850									</p>
1851				
1852				
1853								<h2 class="bold sm-nomargin h3">Popular Deals</h2>
1854				
1855								<p class="sm-bmargin">Discover Deals & Coupons</p>
1856				
1857								<a class="btn btn-success xs-center-block" href="/coupons" title="Browse Local Deals">
1858					Browse Local Deals				</a>
1859				
1860							<div class="clearfix"></div>
1861		</div>
1862		<div class="clearfix hidden-lg hidden-md"></div>
1863			</div>
1864</div></div>
1865        <div class="homepage-section-3"><div class="clearfix"></div>
1866<div class="content-container top-level-category-stream">
1867	<div class="clearfix"></div>
1868    <div class="container">
1869        <div class="row">
1870            <div class="col-md-12">
1871                                    <a href="/categories" class="view-all-btn-desktop hidden-xs btn btn-info">
1872                        View All
1873                    </a>
1874                                <h2 class="nomargin sm-text-center streaming-title" style="color: rgb(44, 44, 44)">
1875                    Activities & Attractions                    
1876                </h2>
1877                <hr>
1878            </div>
1879			<div class="clearfix"></div>
1880<div class="row">
1881<div class="col-md-12 slickTopCategories">
1882    <div class="top-category-single col-sm-6 col-md-3 text-center bmargin bpad">
1883                     <div class="pic lazyloader" >
1884                    <span class="pic-caption bottom-to-top" onclick>
1885                <h3 class="pic-title bmargin">
1886                    Accountants  
1887                </h3>
1888                <hr>
1889                <a alt="Accountants" title="Accountants" href="/accountants" title="Accountants" class="btn btn-success fpad-lg vpad view-more">
1890                    View Category
1891                </a>
1892            </span>
1893			<a aria-label="View Category" alt="Accountants" title="Accountants" href="/accountants" class="homepage-link-element hidden-xs"></a>
1894        </div>
1895    </div>
1896    <div class="top-category-single col-sm-6 col-md-3 text-center bmargin bpad">
1897                     <div class="pic lazyloader" >
1898                    <span class="pic-caption bottom-to-top" onclick>
1899                <h3 class="pic-title bmargin">
1900                    Top-Level Category  
1901                </h3>
1902                <hr>
1903                <a alt="Top-Level Category" title="Top-Level Category" href="/top-level-category" title="Top-Level Category" class="btn btn-success fpad-lg vpad view-more">
1904                    View Category
1905                </a>
1906            </span>
1907			<a aria-label="View Category" alt="Top-Level Category" title="Top-Level Category" href="/top-level-category" class="homepage-link-element hidden-xs"></a>
1908        </div>
1909    </div>
1910</div>
1911    <div class="clearfix"></div>
1912            <div class="col-md-6">
1913            <a href="/categories" class="btn btn-lg btn-info btn-block visible-xs-block">View All</a>
1914        </div>
1915    </div>
1916</div>
1917</div>
1918</div>
1919</div>
1920        <div class="homepage-section-4">    <div class="clearfix"></div>
1921    <div class="content-container articles-with-sidebar recent-blog-articles-with-sidebar">
1922        <div class="container">
1923            <div class="row">
1924                                <div class="col-md-8 ">
1925                    <div class="col-md-12">
1926                        <h2 class="h1 nomargin sm-text-center streaming-title" style="color: rgb(44, 44, 44)">Local Travel Ideas</h2>
1927                        <hr>
1928                    </div>
1929                                            <div class="row-fluid sm-text-center">
1930                                                            <div class="col-sm-4 sm
1930-bmargin">
1931                                    <a href="/blog/sample-blog-article-1">
1932                                                                            <img width="760" height="400" class="search_result_image img-rounded center-block lazyloader" loading="lazy"
1933                                            alt="Sample Blog Article 1" width="760" height="400" title="Sample Blog Article 1"
1934                                            src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1935                                            data-src="/uploads/news-pictures/2-new-york-blog-post-image-20190212234217.jpg"/>
1936                                                                        </a>
1937                                </div>
1938                            
1939                            <div class="col-sm-8">
1940                                <h2 class="h3 bold line-height-lg">
1941                                    <a title="Sample Blog Article 1"
1942                                    href="/blog/sample-blog-article-1">
1943                                        Sample Blog Article 1                                    </a>
1944                                </h2>
1945                                                                    <p>
1946                                        This is a sample blog article published by the Admin User - Blog Author. You can always publish more news articles by logging in to the back-end admin area for your site.From there, search for the member designated as the...
1947                                    </p>
1948                                                                <div class="row-fluid bpad">
1949                                    <div class="col-md-8 nopad font-sm">
1950                                        <p class="nomargin">
1951                                                                                            Posted on
1952                                                03/24/2020                                                                                    </p>
1953                                    </div>
1954                                    <a class="hidden-xs btn btn-success pull-right read-more-link read-more-link-blog-articles" href="/blog/sample-blog-article-1">Read More</a>
1955                                </div>
1956                            </div>
1957                        </div>
1958                        <div class="clearfix"></div>
1959                        <hr>
1960                        <div class="clearfix"></div>
1961                                            <div class="row-fluid sm-text-center">
1962                                                            <div class="col-sm-4 sm-bmargin">
1963                                    <a href="/blog/sample-blog-article-2">
1964                                                                            <img width="760" height="400" class="search_result_image img-rounded center-block lazyloader" loading="lazy"
1965                                            alt="Sample Blog Article 2" width="760" height="400" title="Sample Blog Article 2"
1966                                            src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1967                                            data-src="/uploads/news-pictures/2-new-york-blog-post-image-20190212234217.jpg"/>
1968                                                                        </a>
1969                                </div>
1970                            
1971                            <div class="col-sm-8">
1972                                <h2 class="h3 bold line-height-lg">
1973                                    <a title="Sample Blog Article 2"
1974                                    href="/blog/sample-blog-article-2">
1975                                        Sample Blog Article 2                                    </a>
1976                                </h2>
1977                                                                    <p>
1978                                        This is a sample blog article published by the Admin User - Blog Author. You can always publish more news articles by logging in to the back-end admin area for your site.From there, search for the member designated as the...
1979                                    </p>
1980                                                                <div class="row-fluid bpad">
1981                                    <div class="col-md-8 nopad font-sm">
1982                                        <p class="nomargin">
1983                                                                                            Posted on
1984                                                03/23/2020                                                                                    </p>
1985                                    </div>
1986                                    <a class="hidden-xs btn btn-success pull-right read-more-link read-more-link-blog-articles" href="/blog/sample-blog-article-2">Read More</a>
1987                                </div>
1988                            </div>
1989                        </div>
1990                        <div class="clearfix"></div>
1991                        <hr>
1992                        <div class="clearfix"></div>
1993                                            <div class="row-fluid sm-text-center">
1994                                                            <div class="col-sm-4 sm
1994-bmargin">
1995                                    <a href="/blog/sample-blog-article-3">
1996                                                                            <img width="760" height="400" class="search_result_image img-rounded center-block lazyloader" loading="lazy"
1997                                            alt="Sample Blog Article 3" width="760" height="400" title="Sample Blog Article 3"
1998                                            src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1999                                            data-src="/uploads/news-pictures/2-new-york-blog-post-image-20190212234217.jpg"/>
2000                                                                        </a>
2001                                </div>
2002                            
2003                            <div class="col-sm-8">
2004                                <h2 class="h3 bold line-height-lg">
2005                                    <a title="Sample Blog Article 3"
2006                                    href="/blog/sample-blog-article-3">
2007                                        Sample Blog Article 3                                    </a>
2008                                </h2>
2009                                                                    <p>
2010                                        This is a sample blog article published by the Admin User - Blog Author. You can always publish more news articles by logging in to the back-end admin area for your site.From there, search for the member designated as the...
2011                                    </p>
2012                                                                <div class="row-fluid bpad">
2013                                    <div class="col-md-8 nopad font-sm">
2014                                        <p class="nomargin">
2015                                                                                            Posted on
2016                                                03/22/2020                                                                                    </p>
2017                                    </div>
2018                                    <a class="hidden-xs btn btn-success pull-right read-more-link read-more-link-blog-articles" href="/blog/sample-blog-article-3">Read More</a>
2019                                </div>
2020                            </div>
2021                        </div>
2022                        <div class="clearfix"></div>
2023                        <hr>
2024                        <div class="clearfix"></div>
2025                                        <div class="clearfix"></div>
2026                                            <a class="btn btn-lg btn-block btn-info" href="/blog">View All</a>
2027                                        <div class="clearfix clearfix-lg"></div>
2028                </div>
2029                <div class="col-md-4">
2030                    <!--
2031
2032This search module will detect which of the default membership features' search results pages is being viewed and display the related search feature.
2033
2034IMPORTANT: This module will only work with the default search features that come with the software when they are using the default forms associated with those features.  If the form or the membership feature is modified, this widget may not work as expected.
2035
2036-->
2037
2038<!--
2039
2040IMPORTANT: This widget contains real Adsense code as a sample to show how this widget functions.  Please replace the current Adsense code below with your own code in order to generate revenue from this ad space.
2041
2042-->
2043			<a class="center-block text-center" href="" target="_blank">
2044				<img width="360" height="360" alt="Banner Ad" loading="lazy" src="/images/sample_banner_1.jpg">
2045			</a>
2046			<div class="clearfix clearfix-lg"></div>
2047		<div class="module member-join-offer">
2048	<h2>Are You a Local Business?</h2>
2049	<p>
2050		<b>1.</b> Become a registered member<br>
2051		<b>2.</b> Create your member profile<br> 
2052		<b>3.</b> Get L.A. news and updates
2053	</p>
2054	<a title="Become a Member Today" href="/join" class="btn btn-primary btn-block">Become a Member Today</a>
2055</div>	
2056                </div>
2057            </div>
2058        </div>
2059    </div>
2060    </div>
2061        <div class="homepage-section-5"></div>
2062    </div>
2063<script>
2064(function(){
2065    if (typeof performance === 'undefined' || performance.navigation.type !== 2) return;
2066
2067    var path = window.location.pathname.split('/').join('_');
2068    var storedSid  = sessionStorage.getItem('select2-sid' + path);
2069    var storedTid  = sessionStorage.getItem('select2-tid' + path);
2070    var storedTtid = sessionStorage.getItem('select2-ttid' + path);
2071
2072    if (!storedSid && !storedTid && !storedTtid) return;
2073
2074    window._bdCategoryPreloaded = true;
2075
2076    function waitForSelect2(selector, callback, maxWait) {
2077        maxWait = maxWait || 5000;
2078        var start = Date.now();
2079        var check = setInterval(function() {
2080            var $el = $(selector);
2081            if ($el.length && $el.data('select2')) {
2082                clearInterval(check);
2083                callback($el);
2084            } else if (Date.now() - start > maxWait) {
2085                clearInterval(check);
2086            }
2087        }, 100);
2088    }
2089
2090    function waitForOptions(selector, callback, maxWait) {
2091        maxWait = maxWait || 5000;
2092        var start = Date.now();
2093        var check = setInterval(function() {
2094            var $el = $(selector);
2095            if ($el.length && $el.data('select2') && $el.find('option').length > 1) {
2096                clearInterval(check);
2097                callback($el);
2098            } else if (Date.now() - start > maxWait) {
2099                clearInterval(check);
2100            }
2101        }, 100);
2102    }
2103
2104    $(document).ready(function(){
2105        if (typeof select2OnFormClick !== 'function') return;
2106
2107        // Clean up stale select2 DOM from bfcache before re-initializing
2108        var staleContainers = document.querySelectorAll('.select2-container');
2109        for (var i = 0; i < staleContainers.length; i++) {
2110            staleContainers[i].parentNode.removeChild(staleContainers[i]);
2111        }
2112        var offscreenSelects = document.querySelectorAll('.select2-offscreen');
2113        for (var j = 0; j < offscreenSelects.length; j++) {
2114            offscreenSelects[j].className = offscreenSelects[j].className.replace('select2-offscreen', '').trim();
2115            offscreenSelects[j].style.display = '';
2116        }
2117
2118        var initPromise = select2OnFormClick();
2119        var afterInit = function(){
2120            if (storedSid && $("#sid").length) {
2121                waitForSelect2('#sid', function($sid) {
2122                    $sid.select2('val', storedSid);
2123                    $sid.trigger('change');
2124                });
2125            }
2126
2127            $(".infinite-chained[name='sid']").each(function(){
2128                var el = this;
2129                if (storedSid && el.id !== 'sid') {
2130                    waitForSelect2('#' + el.id, function($el) {
2131                        $el.select2('val', storedSid);
2132                        $el.trigger('change');
2133                    });
2134                }
2135            });
2136
2137            if (storedTid) {
2138                waitForOptions('#tid', function($tid) {
2139                    $tid.select2('val', storedTid);
2140                    $tid.trigger('change');
2141                });
2142            }
2143
2144            if (storedTtid) {
2145                waitForOptions('#ttid', function($ttid) {
2146                    $ttid.select2('val', storedTtid);
2147                });
2148            }
2149        };
2150
2151        if (initPromise && typeof initPromise.then === 'function') {
2152            initPromise.then(afterInit);
2153        } else {
2154            setTimeout(afterInit, 500);
2155        }
2156    });
2157})();
2158</script>
2158        <div class="clearfix"></div>
2159    </div>
2160</div>
2161</main>
2162<!-- End Content -->
2163<div class="clearfix footer-clear-element "></div>
2164<!--
2165
2166IMPORTANT: This widget contains real Adsense code as a sample to show how this widget functions.  Please replace the current Adsense code below with your own code in order to generate revenue from this ad space.
2167
2168-->
2169<div class="clearfix"></div>
2170<div class="content-container banner-ad-unit footer-banner-container">
2171
2172	<div class="container text-center banner-ad-unit footer-banner-ad">
2173
2174				<div class="clearfix clearfix-lg"></div>
2175									<a class="center-block text-center" href="" target="_blank">
2176						<img width="970" height="90" loading="lazy" alt="Banner Ad" src="/images/sample_banner_2-(1).jpg">
2177					</a>
2178						<div class="clearfix clearfix-lg"></div>
2179	</div>	
2180</div>
2181<div class="clearfix"></div>
2182<style type='text/css'> .newsletter_row input[type="email"] {
2183    float: none;
2184    margin-left: auto;
2185    margin-right: auto;    
2186    width: 62% !important;
2187} </style><div class="content-container newsletter_row">
2188	<div class="container text-center vpad">
2189		<div class="col-md-12 xs-nopad">
2190			<style type='text/css'> @media only screen and (min-width: 768px) {
2191	.newsletter_footer_button {
2192		display: flex;
2193		align-items: center;
2194		margin-left: auto;
2195		margin-right: auto;
2196	}
2197} </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">
2198            <div class="col-sm-6 nopad newsletter_button_left">
2199            Join Our Newsletter
2200        </div> 
2201        <div class="col-sm-6 nopad newsletter_button_right">
2202            Click to Subscribe
2203            <i class='fa fa-chevron-circle-right fa-fw'></i>
2204        </div>
2205        
2206	<div class="clearfix"></div>
2207</a>
2208		</div>
2209	</div>
2210</div><div class="footer">
2211    <div class="container">
2212        <div class="row">
2213            <ul class="footer_menu sm-text-center">
2214                <li class='col-md-5'><span id='link157'  class='head'> About</span><ul><li class=''><span id='link158'  class='content'> Finding Members is easy by searching our trusted network of top-rated Members.</span></li></ul></li><li class='col-md-2 col-md-offset-1'><span id='link159'  class='head'> Website</span><ul><li class=''><a href='/about' id='link160'>How It Works</a></li><li class=''><a href='/join' id='link161'>List Your Business</a></li></ul></li><li class='col-md-2'><span id='link162'  class='head'> Search</span><ul><li class=''><a href='/categories' id='link163'>Browse Categories</a></li><li class=''><a href='/locations' id='link164'>Browse Locations</a></li></ul></li><li class='col-md-2'><span id='link165'  class='head'> Support</span><ul><li class=''><a href='/login' id='link166'>Member Login</a></li><li class=''><a href='/about/contact' id='link167'>Contact Us</a></li></ul></li><li class='col-md-12 clearfix'><span id='link226'>  </span></li><li class='col-md-5 vpad vmargin'><span id='link211'> <style>.network-icon.twitter,.network-icon.tiktok{background:#000}</style>
2215<div class="list-social-links">
2216	<a class="network-icon contact" href="/about/contact" title="Contact Us Metro Atlanta Shopper">
2217		<i class="bi bi-envelope"></i>
2218	</a> 
2219			     
2220	      
2221		 
2222						<div class="clearfix"></div>
2223</div></span></li><li class='col-md-6 col-md-offset-1 vpad vmargin'><a href='/join' id='link212'  class='btn btn_footer_get_listed btn-lg btn-block bold center sm-block' style='white-space:normal'>Members - Get Listed Today</a></li><li class='col-md-12 clearfix vmargin text-center'><span id='link313'>  </span><ul><li class='btn-lg font-sm  novpad  norpad inline-block'><span id='link315'> © 2026</span></li><li class='font-sm inline-block hpad'><a href='/' id='link314'  title='Metro Atlanta Shopper'>Metro Atlanta Shopper</a></li><li class='font-sm inline-block'><span id='link318'> All Rights Reserved</span></li><li class='font-sm inline-block hpad'><a href='/about/terms' id='link316'  title='Terms of Use'>Terms of Use</a></li><li class='font-sm inline-block'><a href='/about/privacy' id='link317'  title='Privacy Policy'>Privacy Policy</a></li></ul></li>            </ul>
2224        </div>
2225		    </div>
2226</div><style type='text/css'> .scrollup {
2227  border-radius: 3px;
2228  width: 40px;
2229  height: 40px;
2230  opacity: 0.4;
2231  position: fixed;
2232  bottom: 30px;
2233  right: 30px;
2234  display: none;
2235  background: rgba(119, 119, 119, 0.8);
2236  z-index: 1000000;
2237}
2238.scrollup i {
2239  font-size: 36px;
2240  color: white;
2241  position: relative;
2242  top: 0px;
2243  left: 10px;
2244} </style>
2245
2246
2247    <link rel="stylesheet" type="text/css" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.css">
2248<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.js"></script>
2248
2249
2250<script>
2251    function clearContent(thisObj){
2252        var size;
2253        if(thisObj.hasClass('input-sm') || thisObj.parents('.input-group').hasClass('input-group-sm')){
2254            size = "small";
2255        } else if (thisObj.hasClass('input-lg') || thisObj.parents('.input-group').hasClass('large-autosuggest')){
2256            size = "large";
2257        } else {
2258            size = "medium";
2259        }
2260        if(!thisObj.parent().hasClass('input_wrapper')){
2261            if(thisObj.parent().hasClass('input-group-sm')){
2262                thisObj.wrap('<span class="input-group-sm input_wrapper"></span>');
2263            } else if (thisObj.parent().hasClass('input-group-lg')){
2264                thisObj.wrap('<span class="input-group-lg input_wrapper"></span>');
2265            } else {
2266                thisObj.wrap('<span class="input_wrapper"></span>');
2267            }
2268        }
2269        if(thisObj.val() != ""){
2270            if(thisObj.hasClass('googleSuggest')){
2271                thisObj.parent().find('.fill_location').remove();
2272            }
2273            if (!thisObj.parent().find('.clear_content').length){
2274                thisObj.parent().append(`<span class="clear_content ${size}"><i class="fa fa-times-circle" aria-hidden="true"></i></span>`);
2275                if (thisObj.hasClass("tt-input")) {
2276            		thisObj.focus();
2277        		}
2278
2279            }
2280        }
2281            }
2282
2283    $(document).on('click', '.drp-buttons .applyBtn', function(){
2284        clearContent($(".dateRange input"));
2285    });
2286
2287    $('.sm-autosuggest input, .googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').keyup(function(){
2288        clearContent($(this));
2289    });
2290
2291    $(document).ready(function(){
2292        $('.sm-autosuggest input, input.googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').each(function(){
2293            clearContent($(this));
2294        })
2295    })
2296
2297    $(document).on('click', '.clear_content', function(){
2298        $(this).parent().find('input').val('');
2299        //tt-input its a class for typeahead auto-suggest
2300        if ($(this).parent().find('input').hasClass("tt-input")) {
2301            $(this).parent().find('input').typeahead('val','');
2302        }
2303        clearContent($(this).parent().find('input'));
2304        $(this).remove();
2305    });
2306
2307	$(window).on('load', function () {
2308		setTimeout(function() {
2309			// add missing href attribute to multi-category options in search modules
2310			$('.bootstrap-select.show-tick .dropdown-menu a').attr('href', '#');
2311		}, 2000);
2312        	});
2313</script>
2313
2314
2315
2316
2317<a href="#" class="scrollup" title="scrollup">
2318    <i class="fa fa-caret-up" aria-hidden="true"></i>
2319</a>
2320<script>
2321        $(document).ready(function(){
2322        // .progressbar() comes from bootstrap-progressbar.min.js, loaded only by widgets 1236/1318.
2323        // Elsewhere it used to fall through to jQuery UI's; jQuery UI is no longer global, so an
2324        // unguarded call throws and kills the rest of this ready() handler (scrollup, crop button).
2325        if ($.fn.progressbar) {
2326            $('.progress .progress-bar').progressbar({
2327                display_text: 'fill'
2328            });
2329        }
2330        $(window).scroll(function(){
2331
2332            if ($(this).scrollTop() > 600) {
2333                $('.scrollup').fadeIn();
2334
2335            } else {
2336                $('.scrollup').fadeOut();
2337            }
2338        });
2339        $('.scrollup').click(function(){
2340            $("html, body").animate({
2341                scrollTop: 0
2342            }, 600);
2343            return false;
2344        });
2345        $('#cropButton').click(function(){
2346            var iframe = $("#cropiFrame");
2347            iframe.attr("src", iframe.data("src"));
2348        });
2349    });
2350</script>
2350
2351
2352        
2352<script type="text/javascript">
2353    /* CT dissolved its county governments in 1960, so Google returns its 8 counties as
2354       colloquial_area instead of administrative_area_level_2 — they must never reach a
2355       city field. Google translates the component name to the site language, so the
2356       language-stable place_id is checked first and the word list only backs it up. */
2357    if (typeof window.bdIsColloquialCounty !== 'function') {
2358        window.bdIsColloquialCounty = function (componentName, resultPlaceId) {
2359            var countyPlaceIds = [
2360                'ChIJWRM2Nakw5okRoTCxHvz_5xw', /* Middlesex County, CT */
2361                'ChIJmeTbuDYH6IkR3xgeNvszpgg', /* Fairfield County, CT */
2362                'ChIJiT24cvvP54kR2fSPHkp0Akc', /* New Haven County, CT */
2363                'ChIJvYe7N7eQ54kRL6nZaXRwPkI', /* Litchfield County, CT */
2364                'ChIJtxC3p6qs54kRIvK-2bctar0', /* Hartford County, CT */
2365                'ChIJj-lvZQli5okRGCuGRd6xKt0', /* Tolland County, CT */
2366                'ChIJRWKqeLdi5okRLXWDlSEGeTY', /* Windham County, CT */
2367                'ChIJwTIQbvVv5okRU5_gSJczUTQ'  /* New London County, CT */
2368            ];
2369
2370            if (typeof resultPlaceId === 'string' && resultPlaceId !== ''
2371                && countyPlaceIds.indexOf(resultPlaceId) !== -1) {
2372                return true;
2373            }
2374
2375            if (typeof componentName !== 'string' || componentName === '') {
2376                return false;
2377            }
2378
2379            var name = componentName.toLowerCase();
2380
2381            /* Only unambiguous county words — generic ones (region, district) would strip
2382               legitimate colloquial areas, and their languages already match on place_id.
2383               Word-boundary matched so names like "Countyline, OK" are left alone. */
2384            var wordTokens = ['county', 'condado', 'comté', 'contea',
2385                              'comitatul', 'hrabstwo', 'megye', 'konderria'];
2386            var isAlnum = function (ch) {
2387                return (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9');
2388            };
2389
2390            for (var t = 0; t < wordTokens.length; t++) {
2391                var token = wordTokens[t];
2392                var from = 0;
2393                while (true) {
2394                    var at = name.indexOf(token, from);
2395                    if (at === -1) {
2396                        break;
2397                    }
2398                    var before = (at > 0) ? name.charAt(at - 1) : ' ';
2399                    var after = ((at + token.length) < name.length) ? name.charAt(at + token.length) : ' ';
2400                    if (!isAlnum(before) && !isAlnum(after)) {
2401                        return true;
2402                    }
2403                    from = at + 1;
2404                }
2405            }
2406
2407            /* Non-latin scripts have no alphanumeric word boundary. */
2408            var scriptTokens = ['каунти', 'کاؤنٹی', 'काउंटी', '카운티'];
2409            for (var s = 0; s < scriptTokens.length; s++) {
2410                if (name.indexOf(scriptTokens[s]) !== -1) {
2411                    return true;
2412                }
2413            }
2414
2415            return false;
2416        };
2417    }
2418
2419            // Try to load coordinates from sessionStorage on page load
2420            var vlat        = 0;
2421            var vlon        = 0;
2422            try {
2423                var savedLat = sessionStorage.getItem('bd_geolocation_lat');
2424                var savedLon = sessionStorage.getItem('bd_geolocation_lon');
2425                if (savedLat && savedLon) {
2426                    vlat = parseFloat(savedLat);
2427                    vlon = parseFloat(savedLon);
2428                }
2429            } catch(e) {}
2430            var isSubmit    = false;
2431            var isGettingLocation = false; // Flag to prevent multiple simultaneous geolocation requests
2432            
2433            // Function to save coordinates to sessionStorage
2434            function saveCoordinatesToSession(lat, lon) {
2435                try {
2436                    sessionStorage.setItem('bd_geolocation_lat', lat.toString());
2437                    sessionStorage.setItem('bd_geolocation_lon', lon.toString());
2438                } catch(e) {}
2439            }
2440            
2441            // Function to get coordinates from sessionStorage if current ones are 0
2442            function getCoordinatesFromSession() {
2443                if (vlat === 0 && vlon === 0) {
2444                    try {
2445                        var savedLat = sessionStorage.getItem('bd_geolocation_lat');
2446                        var savedLon = sessionStorage.getItem('bd_geolocation_lon');
2447                        if (savedLat && savedLon) {
2448                            vlat = parseFloat(savedLat);
2449                            vlon = parseFloat(savedLon);
2450                            return true;
2451                        }
2452                    } catch(e) {}
2453                }
2454                return false;
2455            }
2456            var cityTypes       = [
2457                'colloquial_area',
2458                'locality',
2459                'sublocality',
2460                'sublocality_level_1',
2461                'sublocality_level_2',
2462                'sublocality_level_3',
2463                'sublocality_level_4',
2464                'sublocality_level_5',
2465                'neighborhood',
2466                'ward',
2467                'postal_town'
2468            ];
2469
2470            var postalTypes = [
2471                'postal_code',
2472                'postal_code_prefix',
2473                'postal_code_suffix',
2474                'street_number',
2475                'premise',
2476                'subpremise',
2477                'route',
2478                'intersection',
2479                'street_address',
2480                'floor',
2481                'room',
2482                'post_box',
2483                'delivery_address'
2484            ];
2485
2486            var isSubmitting = false;
2487            window.cachedSelectedOption = [{ 'typed_location': '' }];
2488            window.isSubmittingMainSearch = false;
2489
2490            document.addEventListener('DOMContentLoaded', () => {
2491                let isSubmitting = false; // Add flag at the top level
2492
2493                setTimeout(()=>{
2494                    let googleSuggestForm = document.querySelectorAll('.googleSuggest,.google-writen-location,input[name="lead_location"],.fill_location');
2495                    if (typeof googleSuggestForm != "undefined") {
2496                        for (let i = 0; i < googleSuggestForm.length; i++) {
2497                            let closestForm = googleSuggestForm[i].closest('form');
2498                            if(typeof closestForm != "undefined" && closestForm != null){
2499                                closestForm.addEventListener('focusin', googleMapOnFormClick, false);
2500
2501                            }else{
2502                                googleSuggestForm[i].addEventListener('input', googleMapOnFormClick, false);
2503                            }
2504                                googleSuggestForm[i].addEventListener('click', googleMapOnFormClick, false);
2505                            }
2506                        }
2507                },200);
2508
2509                $('.website-search button[type=submit]').click(async function (e) {
2510                    e.preventDefault(); // Prevent the default submit action
2511                    var nativeForm = $(this).closest('form')[0];
2512                    if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
2513                        return false;
2514                    }
2515                    await googleMapOnFormClick();
2516                    $(this).closest('form').submit();
2517                });
2518            });
2519             window['gmapClick'] = false;
2520            function googleMapOnFormClick() {
2521                if(window.gmapClick){
2522                    return;
2523                }
2524                window.gmapClick = true;
2525                
2526                return new Promise((resolve, reject) => {
2527                    window.isSubmittingMainSearch = false;
2528                    let googleSuggestForm = document.querySelectorAll('.googleSuggest, .google-writen-location, input[name="lead_location"], .fill_location');
2529                    let mapUri = "https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places&region=US&callback=initializeG&language=en&key=AIzaSyApb1ltNftgByijDmSgEnSWmR6sNXfNYpU";
2530                    
2531                    if (typeof google !== "undefined" && google.hasOwnProperty('maps')) {
2532                        resolve('already loaded');
2533                        return;
2534                    }
2535
2536                    let loadMapScriptAsync = function (uri) {
2537                        return new Promise((resolve, reject) => {
2538                            let script = document.createElement('script');
2539                            script.type = 'text/javascript';
2540                            script.src = uri;
2541                            script.async = true;
2542                            script.onload = function () {
2543                                resolve("ok");
2544                            };
2545                            script.onerror = function () {
2546                                reject("Failed to load Google Maps script.");
2547                            };
2548                            document.head.appendChild(script);
2549                        });
2550                    };
2551
2552                        loadMapScriptAsync(mapUri)
2553                            .then(() => {
2554                                resolve();
2555                            })
2556                            .catch((error) => {
2557                                console.error(error);
2558                                reject();
2559                            });
2560                  
2561                });
2562            }
2563
2564            function initializeG() {
2565                var geocoder;
2566                //This piece of code will create an autosuggest for every input with the class "googleSuggest"
2567                var counter = 1;
2568                var inputsArray = [];
2569                window.cachedSelectedOption = [{ 'typed_location': '' }];
2570                let mapExists = document.querySelectorAll('[id^="map"]').length > 0;
2571                const functionsToInvoke = {
2572                    setJsMap: true,
2573                    setJsMapOverview: mapExists,
2574                    setJsMapSR: mapExists,
2575                    setJsMapSidebar: mapExists
2576                };
2577                if (window['maps_loaded'] !== true) {
2578                    for (let func in functionsToInvoke) {
2579                        if (typeof window[func] === 'function' && functionsToInvoke[func]) {
2580                            window['maps_loaded'] = true;
2581                            window[func]();
2582                        }
2583                    }
2584                }
2585                $(".googleSuggest").each(function () {
2586                    //get the id from the input to be the unique identifier for each autocomplete
2587                    var inputId = $(this).attr("id");
2588                    var inputElement = $(this);
2589                    inputsArray[counter] = /** @type {HTMLInputElement} */(
2590                        document.getElementById('' + inputId));
2591                    const mainCountry = '';
2592                    const inputOptions = {
2593                        fields: ['address_components', 'adr_address','formatted_address', 'geometry', 'icon', 'name','place_id','plus_code','type'],
2594                        types: ['geocode']
2595                    }
2596                    const language = "en";
2597
2598                    if (language) {
2599                        inputOptions.language = language;
2600                    }
2601                    if (mainCountry) {
2602                        inputOptions.componentRestrictions = {country: mainCountry};
2603                        inputOptions.region = mainCountry;
2604                    }
2605
2606                    var autocomplete = new google.maps.places.Autocomplete(inputsArray[counter], inputOptions);
2607                    google.maps.event.addListener(autocomplete, 'place_changed', function () {
2608                        const place = autocomplete.getPlace();
2609
2610                        cachedSelectedOption = [];
2611                        cachedSelectedOption.push(place);
2612
2613                        cachedSelectedOption[0]['typed_location'] = inputElement.val();
2614                       /* if(cachedSelectedOption[0]['adr_address']){
2615                            let cleanLocation = cachedSelectedOption[0]['adr_address'].replace(/<[^>]*>/g, '');
2616                            cachedSelectedOption[0]['typed_location'] = cleanLocation;
2617                            inputElement.val(cleanLocation);
2618                        }*/
2619                        if (cachedSelectedOption[0]['address_components'] == undefined) {
2620                            cachedSelectedOption = [];
2621                            var emptyObj = {
2622                                'typed_location': ''
2623                            };
2624                            cachedSelectedOption.push(emptyObj);
2625                        }
2626                    });
2627                    //the code that prevents the submition when hit enter on a google location autocomplete item
2628                    inputElement.keydown( function (e) {
2629                        if (e.keyCode == 13) {
2630                            var pacCounter = 0;
2631                            //need to run a loop to check each pac container
2632                            $('.pac-container').each(function () {
2633
2634                                if ($(this).css("display") != "none") {
2635                                    pacCounter++;
2636                                }
2637                            });
2638                            if (pacCounter > 0) {
2639                                e.preventDefault();
2640                            }
2641                        }
2642                    });
2643                    counter++;
2644                });
2645
2646                //triggers every time a form with the id website-search is trigered
2647                $('.website-search').submit(function (e) {
2648
2649                    var currentForm = $(this);
2650                    var locationInput = $(this).find(".googleLocation");
2651                    var $submitButton = currentForm.find('input[type=submit], button[type=submit]');
2652
2653
2654                    if (locationInput.val() != "" && typeof locationInput.val() != 'undefined') {
2655
2656                        // Set submitting flag
2657                        window.isSubmittingMainSearch = true;
2658                        $submitButton.prop('disabled', true);
2659
2660                        e.preventDefault();
2661                        //this variable has the main country of the site
2662                        var form = currentForm;
2663                        var urlGET = form.serialize();
2664                        var formActionUrl = form.attr("action");
2665                        var locationValue = locationInput.val();
2666
2667
2668
2669                        const mainCountry = '';
2670                        const inputOptions = {
2671                            address:locationValue
2672                        }
2673                        const language = "en";
2674
2675                        if (language) {
2676                            inputOptions.language = language;
2677                        }
2678                        if (mainCountry) {
2679                            inputOptions.componentRestrictions = {country: mainCountry};
2680                            inputOptions.region = mainCountry;
2681                        }
2682
2683                        if (typeof cachedSelectedOption == 'undefined') {
2684                            var emptyForm = {
2685                                'typed_location': ''
2686                            };
2687                            cachedSelectedOption.push(emptyForm);
2688                        }
2689
2690                        if (locationValue != cachedSelectedOption[0]['typed_location']) {
2691                            geocoder = new google.maps.Geocoder();
2692                            geocoder.geocode(inputOptions, function (results, status) {
2693
2694                                //if the google response of the geocoding was successful it will use that info to build the url for the new search
2695                                if (status == google.maps.GeocoderStatus.OK) {
2696                                    parseInfoToSearch(results, urlGET, formActionUrl);
2697
2698                                } else {
2699                                    var urlPath = formActionUrl;
2700                                    var redirect = urlPath + "?" + urlGET;
2701                                    //will redirect the page using the new url that has been constructed
2702                                    window.location.href = redirect;
2703                                }
2704                            });
2705
2706                        } else {
2707                            parseInfoToSearch(cachedSelectedOption, urlGET, formActionUrl);
2708                        }
2709                    }
2710                });
2711
2712
2713                //check if a map has been loaded
2714                if ($('#map-canvas').length > 0) {
2715                    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>";
2716                    $('body').append(cssHideLogo);
2717                } else {
2718                    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>";
2719                    $('body').append(cssHideLogo);
2720                }
2721
2722                if (geocodeVisitorsSetting == 1 && geocodingMethod === "IP") {
2723                    populateSearchFields();
2724                }
2725
2726                if($('.googleSuggest').val() == ""){
2727                    populateSearchFields();
2728                }
2729                
2730                var geocodeVisitorsSetting = '0';
2731                var geocodingMethod = 'HTML5';
2732
2733                //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
2734
2735                var vlon = '';
2736                var vlat = '';
2737            }
2738
2739            function switchPlaceID(placeId,urlGET, formActionUrl) {
2740                let request = {
2741                    placeId: placeId,
2742                    fields: ['address_components', 'adr_address', 'formatted_address', 'geometry', 'icon', 'name', 'place_id', 'plus_code', 'type'],
2743                };
2744
2745                let service = new google.maps.places.PlacesService(document.createElement('div'));
2746                service.getDetails(request, function(place, status) {
2747                    if (status === google.maps.places.PlacesServiceStatus.OK) {
2748                        let dataArray = [];
2749                        dataArray.push(place);
2750                        parseInfoToSearch(dataArray, urlGET, formActionUrl);
2751                    } else {
2752                        console.error('Place details request failed with status:', status);
2753                    }
2754                });
2755            }
2756
2757            function parseInfoToSearch(results, urlGET, formActionUrl) {
2758                var urlSearchParams = new URLSearchParams(urlGET);
2759                var parameters = {};
2760                var addressComponentsArray = [];
2761                if (results.length > 1) {
2762                    if(urlSearchParams.get("location_value")?.toLowerCase() === "nebraska" && results.length === 2){
2763                        let tempResult = results[0];
2764                        results[0] = results[1];
2765                        results[1] = tempResult;
2766                    }
2767                    for (let i = 0; i < results.length; i++) {
2768                        if (results[i].types[0] === 'natural_feature' ||
2769                            results[i].types[0] === 'airport' ||
2770                            results[i].types[0] === 'point_of_interest' ||
2771                            results[i].types[0] === 'establishment' ||
2772                            results[i].types[0] === 'political' ||
2773                            results[i].types[0] === 'park') {
2774                            results.splice(i, 1);
2775                        }
2776                    }
2777                }
2778                var adComLength = results[0].address_components.length;
2779
2780                if(results[0].place_id == 'ChIJmQrivHKsQjQR4MIK3c41aj8'){
2781                    switchPlaceID('ChIJi73bYWusQjQRgqQGXK260bw',urlGET, formActionUrl);
2782                    return;
2783                }
2784                sessionStorage.setItem("google_result",JSON.stringify(results));
2785
2786                
2787                var foundPostalType     = results[0].types.find(type => postalTypes.includes(type));
2788                var foundCityType       = results[0].types.find(type => cityTypes.includes(type));
2789
2790                //loop that will build the array with the address components and will get the short name of country and administrative area level 1
2791                for (var i = 0; i < adComLength; i++) {
2792
2793                    if (results[0].address_components[i]['types'][0] == "country") {
2794                        parameters.country_sn = results[0].address_components[i]['short_name'];
2795                    }
2796                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") {
2797                        parameters.adm_lvl_1_sn = results[0].address_components[i]['short_name'];
2798                    }
2799                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") {
2800                        parameters.stateSearchLN = results[0].address_components[i]['long_name'];
2801                    }
2802                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_2") {
2803                        /* short_name is what the service-area writer stores in
2804                           service_areas.county_sn, so the search must send the same
2805                           form or county matching breaks wherever short != long. */
2806                        parameters.county_sn = results[0].address_components[i]['short_name'];
2807                    }
2808                    if ($.inArray(results[0].address_components[i]['types'][0], cityTypes) !== -1 && (foundCityType || foundPostalType ) ) {
2809                        var addrType = results[0].address_components[i]['types'][0];
2810                        var addrLong = results[0].address_components[i]['long_name'];
2811                        /* CT counties come back as colloquial_area — keep them out of parameters.city. */
2812                        if (addrType !== 'colloquial_area'
2813                            || !window.bdIsColloquialCounty(addrLong, results[0].place_id)) {
2814                            parameters.city = addrLong;
2815                        }
2816                    }
2817                    if (results[0].address_components[i]['types'][0] == "postal_code" || results[0].address_components[i]['types'][0] == "postal_code_prefix") {
2818                        parameters.postal_code = results[0].address_components[i]['long_name'];
2819                    }
2820                }
2821
2822
2823                // Filter out 'political' from result types - use more specific type when available
2824                // Same pattern as BD-directory-maps-typePolitical (PR #5642)
2825                if (results[0].types && results[0].types.length > 1 && results[0].types[0] === 'political') {
2826                    results[0].types.splice(0, 1);
2827                }
2828
2829                // Pick the most specific type from results, skip "political" (too generic)
2830                parameters.location_type = results[0].types[0];
2831                for (var t = 0; t < results[0].types.length; t++) {
2832                    if (results[0].types[t] != 'political') {
2833                        parameters.location_type = results[0].types[t];
2834                        break;
2835                    }
2836                }
2837
2838                // When searching by city/locality, omit postal_code — Google returns
2839                // a partial zip prefix that doesn't match all members in the city
2840                if (parameters.location_type == 'locality' && parameters.postal_code) {
2841                    delete parameters.postal_code;
2842                }
2843
2844                if (parameters.adm_lvl_1_sn != '') {
2845                    parameters.stateSearch = parameters.adm_lvl_1_sn;
2846                }
2847                if (parameters.country_sn == "GB") {
2848                    delete parameters.adm_lvl_1_sn;
2849                }
2850
2851                //will check if the response had the bounds parameters
2852                //if it had it will add the south west and north east parameters to the new url
2853                if (results[0].geometry.hasOwnProperty('bounds') || results[0].geometry.hasOwnProperty('viewport')) {
2854
2855                    if (results[0].geometry.hasOwnProperty('bounds')) {
2856                        var boundsResponse = results[0].geometry.bounds;
2857
2858                    } else {
2859                        var boundsResponse = results[0].geometry.viewport;
2860                    }
2861                    parameters.swlat = boundsResponse.getSouthWest
2861().lat();
2862                    parameters.nelat = boundsResponse.getNorthEast().lat();
2863                    parameters.swlng = boundsResponse.getSouthWest().lng();
2864                    parameters.nelng = boundsResponse.getNorthEast().lng();
2865
2866                    //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
2867                } else {
2868                    parameters.fsearch = "radius";
2869                }
2870                var locationCenterResponse = results[0].geometry.location;
2871                parameters.lat = locationCenterResponse.lat();
2872                parameters.lng = locationCenterResponse.lng();
2873                parameters.faddress = results[0].formatted_address;
2874                parameters.place_id = results[0].place_id;
2875                var formatParameters = $.param(parameters);
2876                urlGET = urlGET + "&" + formatParameters;
2877                var urlPath = formActionUrl;
2878                var redirect = urlPath + "?" + urlGET;
2879                //will redirect the page using the new url that has been constructed
2880                window.location.href = redirect;
2881            }
2882            function populateSearchFields() {
2883                var prePopulateLocationSetting = '0';
2884                var geolocationMethod = 'HTML5';
2885
2886                // If geolocation is in progress and we don't have coordinates yet, wait a bit
2887                if (isGettingLocation && (vlat === 0 || vlon === 0)) {
2888                    var waitStartTime = performance.now();
2889                    var waitInterval = setInterval(function() {
2890                        if (!isGettingLocation || (vlat !== 0 && vlon !== 0)) {
2891                            clearInterval(waitInterval);
2892                            // Retry after a short delay to ensure coordinates are set
2893                            setTimeout(function() {
2894                                populateSearchFields();
2895                            }, 100);
2896                        } else if ((performance.now() - waitStartTime) > 10000) {
2897                            // Timeout after 10 seconds - try sessionStorage
2898                            clearInterval(waitInterval);
2899                            if (getCoordinatesFromSession()) {
2900                                setTimeout(function() {
2901                                    populateSearchFields();
2902                                }, 100);
2903                            }
2904                        }
2905                    }, 200);
2906                    return;
2907                }
2908
2909                // If coordinates are 0, try to get from sessionStorage
2910                if (vlat === 0 || vlon === 0) {
2911                    getCoordinatesFromSession();
2912                }
2913
2914                // Validate coordinates first
2915                var hasValidCoordinates = (vlat !== '' && vlon !== '' && vlat != undefined && vlon != undefined && vlat != 0 && vlon != 0 && Math.abs(vlat) <= 90 && Math.abs(vlon) <= 180);
2916                
2917                if (!hasValidCoordinates) {
2918                    return;
2919                }
2920
2921                //if set to one will get the lat and lng to do reverse geocoding
2922                if (prePopulateLocationSetting == 1 && (geolocationMethod === "HTML5" || geolocationMethod === "IP")) {
2923                    var visitorLatLng = new google.maps.LatLng(parseFloat(vlat), parseFloat(vlon));
2924                    var visitorGeocoder = new google.maps.Geocoder();
2925                    var formattedAddress = [];
2926                    var preFormattedStructure = {
2927                        "locality": "long_name",
2928                        "administrative_area_level_2": "long_name",
2929                        "administrative_area_level_1": "long_name",
2930                        "country": "long_name"
2931                    };
2932                    visitorGeocoder.geocode({'latLng': visitorLatLng}, function (results, status) {
2933                        //if the google response of the geocoding was successful it will use that info to build the url for the new search
2934                        if (status == google.maps.GeocoderStatus.OK) {
2935                            window.cachedSelectedOption = results;
2936                            $.each(preFormattedStructure, function (findex, fvalue) {
2937                                $.each(results[0].address_components, function (rindex, rvalue) {
2938                                    if (rvalue.types[0] == findex) {
2939                                        formattedAddress.push(rvalue.long_name);
2940                                    }
2941                                });
2942                            });
2943                            $('.googleSuggest').each(function () {
2944                                if ($(this).val() == '') {
2945                                    if (formattedAddress.length > 0) {
2946                                        $(this).val(formattedAddress.join(', '));
2947                                        clearContent($(this));
2948                                    }
2949                                }
2950                            });
2951                        } else {
2952                            $('.googleSuggest').each(function () {
2953                                $(this).val('');
2954                            });
2955                        }
2956                    });
2957                }
2958            }
2959            function showError(error) {
2960                switch (error.code) {
2961                    case error.PERMISSION_DENIED:
2962                    case 1: // PERMISSION_DENIED
2963                        $('.fill_location.clicked').popover({
2964                            content: `Your local browser settings have prevented location targeting. Please enable location permissions in your browser settings.`,
2965                            container: 'body'
2966                        });
2967                        $('.fill_location.clicked').popover('toggle');
2968                        setTimeout(function () {
2969                            $('.fill_location.clicked').popover('hide');
2970                            $('.fill_location.clicked').removeClass('clicked');
2971                        }, 4000);
2972                        break;
2973                    case error.POSITION_UNAVAILABLE:
2974                    case 2: // POSITION_UNAVAILABLE
2975                        $('.fill_location.clicked').popover({
2976                            content: `Location information is unavailable. Please check your device location settings.`,
2977                            container: 'body'
2978                        });
2979                        $('.fill_location.clicked').popover('toggle');
2980                        setTimeout(function () {
2981                            $('.fill_location.clicked').popover('hide');
2982                            $('.fill_location.clicked').removeClass('clicked');
2983                        }, 4000);
2984                        break;
2985                    case error.TIMEOUT:
2986                    case 3: // TIMEOUT
2987                        $('.fill_location.clicked').popover({
2988                            content: `Location request timed out. Please ensure location services are enabled and try again.`,
2989                            container: 'body'
2990                        });
2991                        $('.fill_location.clicked').popover('toggle');
2992                        setTimeout(function () {
2993                            $('.fill_location.clicked').popover('hide');
2994                            $('.fill_location.clicked').removeClass('clicked');
2995                        }, 4000);
2996                        break;
2997                    case error.UNKNOWN_ERROR:
2998                    default:
2999                        $('.fill_location.clicked').popover({
3000                            content: `An error occurred while getting your location. Please try again.`,
3001                            container: 'body'
3002                        });
3003                        $('.fill_location.clicked').popover('toggle');
3004                        setTimeout(function () {
3005                            $('.fill_location.clicked').popover('hide');
3006                            $('.fill_location.clicked').removeClass('clicked');
3007                        }, 4000);
3008                        break;
3009                }
3010            }
3011            if (navigator.geolocation) {
3012                if ($(".googleSuggest")[0]) {
3013                    $(document).on('click', '.fill_location', function getCXPosition() {
3014                        // Prevent multiple simultaneous geolocation requests
3015                        if (isGettingLocation) {
3016                            return;
3017                        }
3018                        
3019                        var $button = $(this);
3020                        $button.addClass('clicked');
3021                        var startPos;
3022                        
3023                        // Set flag to prevent concurrent requests
3024                        isGettingLocation = true;
3025                        
3026                        // Function to actually get the position
3027                        var attemptGetPosition = function() {
3028                            // Try with shorter timeout first for faster response
3029                            var geoOptions = {
3030                                enableHighAccuracy: false, // Use false for faster response
3031                                timeout: 8000, // 8 second timeout (reduced for faster failure)
3032                                maximumAge: 300000 // Accept cached position up to 5 minutes old
3033                            };
3034                            
3035                            navigator.geolocation.getCurrentPosition(function (position) {
3036                                startPos = position;
3037                                vlat = startPos.coords.latitude;
3038                                vlon = startPos.coords.longitude;
3039                                
3040                                // Validate coordinates before proceeding
3041                                if (!vlat || !vlon || vlat === 0 || vlon === 0) {
3042                                    isGettingLocation = false;
3043                                    $button.removeClass('clicked');
3044                                    return;
3045                                }
3046                                
3047                                // Save coordinates to sessionStorage
3048                                saveCoordinatesToSession(vlat, vlon);
3049                                
3050                                $.get("/api/data/html/get/data_widgets/widget_name", {
3051                                    "vlat": vlat,
3052                                    "vlon": vlon,
3053                                    "name": "Website - Save Coordinates Session"
3054                                });
3055                                
3056                                populateSearchFields();
3057                                
3058                                // Clear flag
3059                                isGettingLocation = false;
3060                                $button.removeClass('clicked');
3061                            }, function(error) {
3062                                // Clear flag on error
3063                                isGettingLocation = false;
3064                                $button.removeClass('clicked');
3065                                
3066                                // For timeout errors, try sessionStorage as fallback
3067                                if (error.code === 3) {
3068                                    if (getCoordinatesFromSession()) {
3069                                        // Use cached coordinates
3070                                        $.get("/api/data/html/get/data_widgets/widget_name", {
3071                                            "vlat": vlat,
3072                                            "vlon": vlon,
3073                                            "name": "Website - Save Coordinates Session"
3074                                        });
3075                                        
3076                                        populateSearchFields();
3077                                        
3078                                        // Clear flag
3079                                        isGettingLocation = false;
3080                                        $button.removeClass('clicked');
3081                                    } else {
3082                                        $button.popover({
3083                                            content: `Location request timed out. Please ensure location services are enabled and grant permission when prompted.`,
3084                                            container: 'body'
3085                                        });
3086                                        $button.popover('show');
3087                                        setTimeout(function() {
3088                                            $button.popover('hide');
3089                                        }, 5000);
3090                                    }
3091                                } else {
3092                                    showError(error);
3093                                }
3094                            }, geoOptions);
3095                        };
3096                        
3097                        // Check if geolocation permission is already denied (but don't block if it's prompt)
3098                        if (navigator.permissions && navigator.permissions.query) {
3099                            navigator.permissions.query({name: 'geolocation'}).then(function(result) {
3100                                if (result.state === 'denied') {
3101                                    isGettingLocation = false;
3102                                    $button.removeClass('clicked');
3103                                    showError({code: 1, message: 'Permission denied'});
3104                                    return;
3105                                } else {
3106                                    // Permission is granted or prompt - proceed with geolocation
3107                                    attemptGetPosition();
3108                                }
3109                            }).catch(function(err) {
3110                                // If permission API not supported, proceed anyway
3111                                attemptGetPosition();
3112                            });
3113                        } else {
3114                            // Permission API not available, proceed with geolocation
3115                            attemptGetPosition();
3116                        }
3117                    })
3118                }
3119            } else {
3120                console.log('Geolocation is not supported for this Browser/OS version yet.');
3121            }
3122            function getUrlParameter(sParam) {
3123                var sPageURL = window.location.search.substring(1);
3124                var sURLVariables = sPageURL.split('&');
3125
3126                for (var i = 0; i < sURLVariables.length; i++) {
3127                    var sParameterName = sURLVariables[i].split('=');
3128
3129                    if (sParameterName[0] == sParam) {
3130                        return decodeURIComponent(sParameterName[1]);
3131                    }
3132                }
3133            }
3134        </script>
3134
3135        
3135<script>
3136	// switchClass() is jQuery UI (Effects), which is no longer loaded on every page.
3137	// removeClass().addClass() is the same class swap, applied immediately instead of
3138	// after animateClass()'s queued 400ms default.
3139	$(document).ready(function(){
3140		$('.navbar-header .navbar-toggle.main_menu').click(function(){
3141			$('.mobile-main-menu').toggleClass('opened');
3142		});
3143		$('.mobile-main-menu .sidebar-nav').find('li').each(function(){
3144			$(this).addClass('hasChildren');
3145			if ($(this).children('ul').length > 0){
3146				$(this).prepend('<i class="fa fa-plus" aria-hidden="true"></i>');
3147				$(this).find('a').after('<div class="clearfix"></div>');
3148				$(this).find('span').after('<div class="clearfix"></div>');
3149			}
3150			$(this).append('<div class="clearfix"></div>');
3151		});
3152
3153		$('.mobile-main-menu .sidebar-nav li i').click(function(){
3154			if ($(this).parent().children('ul').length > 0){
3155				$(this).parent().toggleClass('sub_open');
3156			}
3157			if ($(this).hasClass('fa-plus')){
3158				$(this).removeClass('fa-plus').addClass('fa-minus');
3159			} else {
3160				$(this).removeClass('fa-minus').addClass('fa-plus');
3161			}
3162		});
3163	})
3164
3165	if ($(window).width() > 740 && $(window).width() < 1100) {
3166
3167		$(document).ready(function(){
3168			$('.tablet-menu .tablet-menu-ul').find('li').each(function(){
3169
3170				if ($(this).children('ul').length > 0){
3171					$(this).prepend('<i class="fa fa-plus tablet-fa hidden-sm hidden-md hidden-lg" aria-hidden="true"></i>');
3172					$(this).find('a').after('<div class="clearfix"></div>');
3173					var this_link = $(this).children('a').text().replace(/[^\x00-\x7F]/g, "");;
3174					$(this).children('a').html(this_link);
3175					$(this).find('span').after('<div class="clearfix"></div>');
3176				}
3177				$(this).append('<div class="clearfix"></div>');
3178			});
3179
3180			$('.tablet-menu .tablet-menu-ul li i').click(function(){
3181
3182				if ($(this).parent().children('ul').length > 0){
3183					$(this).parent().toggleClass('sub_open');
3184
3185					if ($(this).siblings( "ul" ).hasClass('tablet-block')){
3186						$(this).siblings( "ul" ).removeClass('tablet-block').addClass('tablet-none');
3187					} else {
3188						$(this).siblings( "ul" ).addClass( "tablet-block" );
3189
3190						if ($(this).siblings( "ul" ).hasClass('tablet-none')){
3191							$(this).siblings( "ul" ).removeClass('tablet-none')
3192						}
3193
3194						if ($(this).parent().siblings().children('ul').hasClass('tablet-block')) {
3195							$(this).parent().siblings().children('ul').removeClass('tablet-block').addClass('tablet-none');
3196							$(this).parent().siblings().children('i').removeClass('fa-minus').addClass('fa-plus');
3197						}
3198
3199						if ($(this).parent().siblings().children('ul').children().children('ul').hasClass('tablet-block')) {
3200							$(this).parent().siblings().children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none');
3201							$(this).parent().siblings().children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus');
3202						}
3203
3204						if ($(this).siblings('ul').children('ul').children().children('ul').hasClass('tablet-block')) {
3205							$(this).siblings('ul').children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none');
3206							$(this).siblings('ul').children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus');
3207						}
3208
3209					}
3210
3211				}
3212
3213				if ($(this).hasClass('fa-plus')){
3214					$(this).removeClass('fa-plus').addClass('fa-minus');
3215				} else {
3216					$(this).removeClass('fa-minus').addClass('fa-plus');
3217				}
3218			});
3219		})
3220	}
3221	// Append unique ID attribute for mobile main menu links
3222	$('.mobile-main-menu a,.mobile-main-menu span').attr("id", function() { return $(this).attr("id") + "-mobile" });
3223</script>
3223
3224
3225<script>
3226	$(document).ready(function() {
3227				var i;
3228        var imageRatio = 0.5625;
3229        		for (i = 0; i < 16; i++) {
3230
3231			var sectionid = ".homepage-section-" + i + " .pic";
3232			var calc = Math.floor($(sectionid).width() * imageRatio);
3233			$(sectionid).css({
3234				'height': calc + 'px'
3235			});
3236
3237			var spanid = ".homepage-section-" + i + " .pic .pic-caption";
3238			var calc2 = $(sectionid).height() - 42;
3239			$(spanid).css({
3240				'transform' : 'translateY(' + calc2 + 'px)'
3241			});
3242		}
3243			});
3244</script>
3244<script>
3245    $('#captchaContainer').removeClass('form-control ');
3246    $(".website_url_field").keyup(function(){
3247        var fieldName = $(this).attr('name');
3248        $(this).val($(this).val().replace(/\s+/g, ''));
3249        $('#myform').formValidation('revalidateField', fieldName);
3250    });
3251</script>
vendor: 2 bytes, line 3251
3251
3252<script>
3253     $('#newsletter input[name="email"]').on('keypress', function() {
3254        $("#newsletter > .gdpr_consent_email").show();
3255    });
3256	$('#newsletter_signup_footer input[name="email"]').on('keypress', function() {
3257        $("#newsletter_signup_footer > .gdpr_consent_email").show();
3258    });
3259</script>
3259                
3259<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/formValidation.min.js"></script>
3259
3260                
3260<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/framework/bootstrap.min.js"></script>
3260
3261                
3261<script type="text/javascript">
3262                    function decodeHtml(html) {
3263                        var txt = document.createElement("textarea");
3264                        txt.innerHTML = html;
3265                        return txt.value;
3266                    }
3267                    
3268                    // Override FormValidation URI validator to prevent recursion with URLs that contain @ characters
3269                    $(function() {
3270                        function applyFix() {
3271                            // Check if FormValidation library and URI validator are loaded
3272                            if (FormValidation && FormValidation.Validator && FormValidation.Validator.uri) {
3273                                FormValidation.Validator.uri.validate = function(validator, $field, options) {
3274                                    var value = validator.getFieldValue($field, 'uri').trim();
3275                                    return value === '' || new RegExp('^https?://[^\\s]+\\.[^\\s]{2,}').test(value);
3276                                };
3277                                return true;
3278                            }
3279                            return false;
3280                        }
3281                        
3282                        if (!applyFix()) {
3283                            setTimeout(applyFix, 50);
3284                        }
3285                    });
3286                </script>
3286
3287                        
3287<script type="text/javascript">
3288
3289        var counterSubmit = 0;
3290        $(document).ready(function() {
3291            /* grecaptcha.reset() with no argument always resets widget 0. On a page with two
3292               captcha holders that clears the wrong checkbox, so the widget the visitor solved
3293               keeps a token Google has already spent and every retry fails the security check.
3294               captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha";
3295               an undefined id means no per-form id is known and the arg-less call is used,
3296               exactly as before. */
3297            function bdCaptchaWidgetId(formId) {
3298                if (typeof captchaHolders === "undefined" || !formId) {
3299                    return undefined;
3300                }
3301                /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84),
3302                   so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from
3303                   the holder element itself so the counter never has to be reconstructed. */
3304                var form = document.getElementById(formId);
3305                var holder = form && form.querySelector(".g-recaptcha");
3306                return holder ? captchaHolders[holder.id] : undefined;
3307            }
3308
3309            function bdCaptchaReset(formId) {
3310                if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") {
3311                    return;
3312                }
3313                var widgetId = bdCaptchaWidgetId(formId);
3314                if (widgetId === undefined) {
3315                    grecaptcha.reset();
3316                } else {
3317                    grecaptcha.reset(widgetId);
3318                }
3319            }
3320
3321            // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry
3322            // rules for fields that are NOT rendered in this form (conditionally-rendered or
3323            // duplicated form configs). Those phantom rules make formValidation mis-evaluate
3324            // isValid(), so an empty required field bypasses validation and submits natively.
3325            // Remove any rule whose field has no matching element before initializing.
3326            // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly
3327            // REMOVES rules (never adds validators, never overrides native submit, never
3328            // intercepts on capture phase, never re-validates on click) — so it cannot
3329            // reproduce the "Save button slides down / nav broken / no success message"
3330            // regression that caused #5902 to be rolled back on site 19413.
3331            var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Required Field"},"emailAddress":{"message":"Please enter a valid email address"}}}}};
3332            var formElement = $(`form[name='newsletter_modal_signup_380']`);
3333            if(validatorConfig && validatorConfig.fields) {
3334                Object.keys(validatorConfig.fields).forEach(function(fieldName) {
3335                    if(formElement.find('[name="' + fieldName + '"]').length === 0) {
3336                        delete validatorConfig.fields[fieldName];
3337                    }
3338                });
3339            }
3340
3341            // Scroll to the first invalid field when submit fails validation,
3342            // so the user can immediately see why the form will not submit
3343            formElement.on('err.form.fv', function(e) {
3344                var $firstError = $(e.target).find('.form-group.has-error').first();
3345                if ($firstError.length) {
3346                    $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700);
3347                }
3348            });
3349
3350            formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) {
3351
3352                if('newsletter_modal_signup' == 'unsubscribe_email'){
3353                    return true;
3354                }
3355                // Prevent form submission
3356                e.preventDefault();
3357                $form = $(e.target),
3358                fv = $form.data('formValidation');
3359
3360                // Check HTML5 required fields that FormValidation may not know about
3361                var requiredEmpty = false;
3362                $form.find('[required]').each(function() {
3363                    var val = $(this).val();
3364                    if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) {
3365                        requiredEmpty = true;
3366                        $(this).closest('.form-group').addClass('has-error');
3367                        if ($(this).siblings('.required-error').length === 0) {
3368                            $(this).after('<small class="required-error help-block" style="color:#a94442;">Required Field</small>');
3369                        }
3370                    } else {
3371                        var $reqGroup = $(this).closest('.form-group');
3372                        $(this).siblings('.required-error').remove();
3373                        // Keep has-error if another validator is still failing for this field
3374                        if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
3375                            $reqGroup.removeClass('has-error');
3376                        }
3377                    }
3378                });
3379                if (requiredEmpty) {
3380                    fv.disableSubmitButtons(false);
3381                    counterSubmit = 0;
3382                    // Scroll to the first field with an error (HTML5-required scan does
3383                    // not trigger err.form.fv, so handle the scroll here too)
3384                    var $firstReqError = $form.find('.form-group.has-error').first();
3385                    if ($firstReqError.length) {
3386                        $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700);
3387                    }
3388                    return false;
3389                }
3390
3391                var values = $(this).serialize();
3392
3393                
3394                var locationFieldCorrect = true;
3395
3396                if($("#newsletter_modal_signup_380 .location_required").length > 0){
3397                    $("#newsletter_modal_signup_380 .location_required").each(function (index) {
3398                        if($(this).data('state') == 1){
3399                            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() == "") {
3400                                locationFieldCorrect = false;
3401                            }
3402                        }
3403                    });
3404                }
3405
3406                if(locationFieldCorrect === false){
3407                    //check that there is a latitude or longitude
3408                    swal(`Whoops!`, `The location information is required to submit this form`, "error");
3409                    return false;
3410                }
3411                        
3412
3413                if (!$(this).attr("action")) {
3414                    var action = '';
3415
3416                } else {
3417                    var action = $(this).attr("action");
3418                }
3419                if (!$(this).attr("method")) {
3420                    var method = 'post';
3421
3422                } else {
3423                    var method = $(this).attr("method");
3424                }
3425                if (!$(this).attr("form_action_type")) {
3426                    var form_action_type = 'notification';
3427
3428                } else {
3429                    var form_action_type = $(this).attr("form_action_type");
3430                }
3431                if (!$(this).attr("form_action_div")) {
3432                    /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */
3433                    var form_action_div = $('#main-content').length ? '#main-content' : '#first_container';
3434
3435                } else {
3436                    var form_action_div = $(this).attr("form_action_div");
3437                }
3438                if (!$(this).attr("return_data_type")) {
3439                    var return_data_type = 'json';
3440
3441                } else {
3442                    var return_data_type = $(this).attr("return_data_type");
3443                }
3444                var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000);
3445                if (!submitInFlight) {
3446                    if ($("#newsletter_modal_signup_380-notification").html() != "") {
3447                        $("#newsletter_modal_signup_380-notification").remove();
3448                    }
3449                    if ($(this).find('input[type="submit"]').length > 0) {
3450                        $(this).find('input[type="submit"]').before('<div id="newsletter_modal_signup_380-notification" class="alert"></div>');
3451
3452                    } else {
3453                        $(this).prepend('<div id="newsletter_modal_signup_380-notification" class="alert"></div>');
3454                    }
3455                }
3456                var notification = $("#newsletter_modal_signup_380-notification");
3457
3458                if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) {
3459                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
3460                    setTimeout(function(){
3461                        fv.defaultSubmit();
3462                    }, 100);
3463                } else {
3464                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
3465                    if(!submitInFlight) {
3466                        counterSubmit++;
3467                        $form.data('bdLastSubmitAt', Date.now());
3468
3469                        var fields      = $(this).serializeArray();
3470                        var formField   = [];
3471                        var processData = true;
3472                        var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
3473                        
3474                        
3475
3476                        if($("#newsletter_modal_signup_380 input[type=file]").length > 0){
3477                            
3478                            var formObject  = new FormData();
3479                            processData     = false;
3480                            contentType     = false;
3481
3482                            $(fields).each(function(index,field){
3483                                formField.push(field.name+"="+field.value);
3484                            });
3485
3486                            values  = formField.join("&");
3487
3488                            $(formField).each(function(index,fieldValue){
3489                                var fieldInfo = fieldValue.split('=');
3490                                formObject.append(fieldInfo[0],fieldInfo[1]);
3491                            });
3492
3493                            $("#newsletter_modal_signup_380 input[type=file]").each(function(index,node){
3494                                var file = this.files[0];
3495                                if(typeof file != "undefined"){
3496                                    formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name);
3497                                }
3498                            });
3499                        }else{
3500                            
3501                            $(fields).each(function(index,field){
3502                                formField.push(field.name+"="+encodeURIComponent(field.value));
3503                            });
3504
3505                            var formObject  = formField.join("&");
3506                        } 
3507                        
3508                        $.ajax({
3509                            url: action,
3510                            type: method,
3511                            data: formObject,
3512                            dataType: return_data_type,
3513                            processData: processData,
3514                            contentType: contentType,
3515                            success: function (data) {
3516                                // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above.
3517                                notification = $("#newsletter_modal_signup_380-notification");
3518                                if (return_data_type == "html") {
3519                                    var result = 'success';
3520
3521                                    if (!data != "") {
3522                                        var result_widget = data['result_widget'];
3523                                    }
3524
3525                                } else {
3526
3527
3528                                    if (!data['result']) {
3529                                        var result = 'error';
3530                                    } else {
3531                                        var result = data['result'];
3532                                    }
3533                                    if (!data['result_widget']) {
3534                                        var result_widget = '';
3535
3536                                    } else {
3537                                        var result_widget = data['result_widget'];
3538                                    }
3539                                }
3540                                if (result == "success") {
3541
3542                                    if (!data['message']) {
3543                                        var message = `Your information has submitted successfully!`;
3544
3545                                    } else {
3546                                        var message = data['message'];
3547                                    }
3548                                    if (!data['redirect_url']) {
3549                                        var redirect_url = '';
3550
3551                                    } else {
3552                                        var redirect_url = data['redirect_url'];
3553                                    }
3554
3555
3556
3557                                    if (form_action_type == "notification") {
3558                                        if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) {
3559                                            if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
3560                                                redirect_url = "/" + redirect_url;
3561                                            }
3562                                            if (notification.parents('.modal').length) {
3563                                                $('.modal-backdrop').hide();
3564                                                $('.modal').modal('hide');
3565                                            }
3566                                            window.location.href = redirect_url;
3567                                            fv.resetForm(true);
3568                                        } else {
3569                                        notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>')
3570                                            .addClass('alert-dismissible')
3571                                            .addClass("alert-success-subtle")
3572                                            .removeClass("alert-danger-subtle")
3573                                            .removeClass("alert-warning-subtle")
3574                                        
3575                                            
3576
3577                                        if(notification.parents('.modal').length && 'newsletter_modal_signup_380' == 'whmcs_billing_address'){
3578                                            setTimeout(function(){
3579                                                notification.parents('.modal').modal('hide');
3580                                            }, 1000);
3581                                        }
3582                                        }
3583
3584                                    } else if (form_action_type == "widget") {
3585
3586                                        if (result_widget != '') {
3587
3588                                            setTimeout(function(){
3589                                                if(form_action_div != '.newsletter_modal_form_container'){
3590                                                    $("html, body").animate({ scrollTop: 0 }, 600);
3591                                                }                                                
3592                                                $(form_action_div).html(decodeHtml(result_widget)).text();
3593
3594                                            }, 1000);
3595                                        }
3596
3597                                    } else if (form_action_type == "redirect") {
3598
3599                                        if (redirect_url == "") {
3600                                            redirect_url = decodeURIComponent("");
3601                                        }
3602
3603                                        if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
3604                                            redirect_url = "/" + redirect_url;
3605                                        }
3606                                        current_location = "/";
3607                                        refresh_pages_string = "/login";
3608                                        refresh_pages_string = refresh_pages_string.replace(/ /g,'');
3609                                        refresh_pages_array = refresh_pages_string.split(',');
3610                                        notification.html(message)
3611                                            .addClass("alert-success-subtle")
3612                                            .removeClass("alert-danger-subtle")
3613                                            .removeClass("alert-warning-subtle")
3614                                            .delay(2000).slideUp();
3615                                            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" )){
3616                                                                                                    window.location.href = window.location.href+'?logged';
3617                                                                                            } else {
3618                                                window.location.href = redirect_url;
3619                                            }
3620
3621                                        fv.resetForm(true);
3622                                    }
3623                                    if(form_action_div != '.newsletter_modal_form_container' && 'newsletter_modal_signup_380' != 'whmcs_billing_address'){
3624                                        $('.modal-backdrop').hide();
3625                                    }
3626                                } else {
3627                                    bdCaptchaReset(formElement.attr('id'));
3628                                    if (!data['message']) {
3629                                        var message = `You entered invali
3629d data. Please try to save again.`;
3630
3631                                    } else {
3632                                        var message = data['message'];
3633                                    }
3634                                    $("#newsletter_modal_signup_380-notification").html(message)
3635                                        .addClass("alert-danger-subtle")
3636                                        .removeClass("alert-success-subtle")
3637                                        .removeClass("alert-warning-subtle")
3638                                        .fadeIn();
3639                                    fv.disableSubmitButtons(false);
3640                                }
3641                                counterSubmit = 0;
3642                            },
3643                            error: function (e) {
3644                                bdCaptchaReset(formElement.attr('id'));
3645                                $("#newsletter_modal_signup_380-notification").html(`A connection error occurred while saving. Please try to save again.`)
3646                                    .addClass("alert-warning-subtle")
3647                                    .removeClass("alert-success-subtle")
3648                                    .removeClass("alert-danger-subtle")
3649                                    .fadeIn();
3650                                fv.disableSubmitButtons(false);
3651                                counterSubmit = 0;
3652                            }
3653                        });/// End Ajax
3654                    }
3655                }//END else
3656            }).bind('keydown', function(event) {
3657
3658                if (event.ctrlKey || event.metaKey) {
3659
3660                    switch (String.fromCharCode(event.which).toLowerCase()) {
3661
3662                        case 's':
3663                            var nativeForm = $(this)[0];
3664                            if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
3665                                event.preventDefault();
3666                                return false;
3667                            }
3668                            $(this).submit();
3669                            break;
3670                    }
3671                }
3672            });
3673
3674            /// This will turn any select2 that are required in the form builder to being required elements.
3675            $('#newsletter_modal_signup_380 select').each(function (i, obj) {
3676                setTimeout(function(){
3677                    if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") {
3678                        $(obj).css("z-index","-999");
3679                        $(obj).css("height","0");
3680                        $(obj).css("width","0");
3681                        $(obj).css("display","block");  
3682                        $(obj).css("position","absolute");  
3683                    }
3684                }, 3000);
3685            });
3686
3687            // Clear required-error messages when user fills in a required field
3688            $('#newsletter_modal_signup_380').on('keyup change', '[required]', function() {
3689                var val = $(this).val();
3690                if (val !== '' && val !== null && val.trim() !== '') {
3691                    var $group = $(this).closest('.form-group');
3692                    // Remove only this handler's own required message
3693                    $(this).siblings('.required-error').remove();
3694                    // Keep has-error if another FormValidation validator is still failing
3695                    // (e.g. stringLength, regexp). has-error is shared, so removing it
3696                    // wholesale would clobber other validators' red styling.
3697                    if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
3698                        $group.removeClass('has-error');
3699                    }
3700                }
3701            });
3702
3703        });//END $('# echo $_SERVER[form_element_id]; ').formValidation(
3704    </script>
3704
3705        <div class="modal fade" id="newsletter_subscribe_modal" tabindex="-1" role="dialog" aria-hidden="true">
3706	<div class="modal-dialog">
3707		<div class="modal-content">
3708			<div class="container-fluid">
3709				<div class="row">
3710					<div class="col-md-12">
3711						<br>
3712						<button type="button" class="close" data-dismiss="modal" aria-label="Close">
3713							<span aria-hidden="true">&times;</span>
3714						</button>
3715						<h3 class="nomargin">
3716							Join Our Newsletter
3717						</h3>
3718						<hr>
3719						<div class="newsletter_modal_form_container">
3720							 <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="/home" 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">
3721                <label for="captchaContainer">
3722            <span class="required">* </span>
3723            Answer Security Question
3724        </label>
3725        <div id="newsletter_modal_signup_380-captchaContainer" class="control-group">
3726        <div class="g-recaptcha"  id="newsletter_modal_signup_380-google-recaptcha"></div>
3727    </div>
3728    <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>
3729    <div class="clearfix bmargin"></div>
3730    <input type="hidden" name="recaptcha" id="newsletter_modal_signup_380-rcap">
3731</div>
3732    <style>
3733        .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 {
3734            transform: scale(0.77);
3735            -webkit-transform: scale(0.77);
3736            transform-origin: 0 0;
3737            -webkit-transform-origin: 0 0;
3738            margin-bottom: -15px;
3739        }
3740
3741        .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 {
3742            transform: scale(0.77);
3743            -webkit-transform: scale(0.77);
3744            transform-origin: 0 0;
3745            -webkit-transform-origin: 0 0;
3746            margin-bottom: -15px;
3747        }
3748    </style>
3749<script>
3750    $(document).ready(function(){
3751        $("#newsletter_modal_signup_380 input[type=submit]").unbind('click');
3752        $("#newsletter_modal_signup_380 input[type=submit]").click(function (event) {
3753
3754            var formId = $(this.form).attr('id');
3755            var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter');
3756
3757            if (typeof captchaHolders[captchaHolderKey] != "undefined") {
3758                if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") {
3759                    event.preventDefault();
3760                    $("#" + formId).formValidation('validate');
3761                    $("#" + formId + " .security_question_label").addClass("has-error");
3762                    $("#" + formId + " #recaptcha_error").css("display", "block");
3763                    return false;
3764                }
3765
3766                /* Solved captcha: clear the error UI and let the click proceed untouched.
3767                   The browser then fires a REAL, button-initiated submit event, so
3768                   FormValidation runs its normal chain (success.form.fv -> AJAX modal on
3769                   checkout / native POST on login). Re-submitting here artificially broke
3770                   both ways: native form.submit() skips the FV chain (checkout rendered the
3771                   raw JSON response), and jQuery .submit() fires a synthetic submit that FV
3772                   refuses, leaving the form stuck after the first error (Bug 2). */
3773                $("#" + formId + " .security_question_label").removeClass("has-error");
3774                $("#" + formId + " #recaptcha_error").css("display", "none");
3775            }
3776        });
3777    });
3778</script>
3778</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='/'></form>
3778<script type="text/javascript">jQuery(document).ready(function() {		jQuery("#newsletter_modal_signup_380").bind("submit", function() { 
3779		});}); </script>
3779 						</div>						
3780						<br>
3781					</div>
3782				</div>
3783			</div>
3784		</div>
3785	</div>
3786</div>
3786<script>
3787	function decision(message, url) {
3788		if (confirm(message)) {
3789			setTimeout(function () {
3790				window.location = url;
3791			}, 0);
3792		}
3793	}
3794</script>
vendor: 2 bytes, line 3794
3794
3795<script>
3796	// Function to add alt, width, and height attributes to <img> elements without them
3797	function addAttributesToImages() {
3798		var images = document.querySelectorAll('img:not([alt]), img:not([width]), img:not([height])');
3799		Array.prototype.forEach.call(images, function(img) {
3800			// Skip if we've already processed this image
3801			if (img.dataset.processed === 'true') {
3802				return;
3803			}
3804			
3805			// Mark this image as being processed
3806			img.dataset.processed = 'true';
3807			
3808			// Add alt attribute if missing
3809			if (!img.hasAttribute('alt')) {
3810				var src = img.getAttribute('src') || 'image';  // Default src to 'image' if missing
3811				var altText = src.split('/').pop().split('?')[0].replace(/\.\w+$/, '');
3812
3813				try {
3814					altText = decodeURIComponent(altText)
3815					.replace(/[_\-+,.:;]+/g, ' ')
3816					.replace(/\s+/g, ' ')
3817					.trim();
3818				} catch (e) {
3819					altText = 'image';  // Fallback to 'image' if decoding fails
3820				}
3821
3822				// Ensure altText is not empty, otherwise use 'image'
3823				altText = altText || 'image';
3824
3825				img.setAttribute('alt', altText);
3826			}
3827
3828			// Add width and height attributes if missing
3829			if (!img.hasAttribute('width') || !img.hasAttribute('height')) {
3830				// Handle SVG differently
3831				if (img.src && img.src.endsWith('.svg')) {
3832					// For SVG, use the viewBox to set width and height, if available
3833					fetch(img.src)
3834					.then(response => {
3835						if (!response.ok) {
3836							throw new Error('Failed to fetch SVG: ' + response.status);
3837						}
3838						return response.text();
3839					})
3840					.then(svgText => {
3841						var parser = new DOMParser();
3842						var svgDoc = parser.parseFromString(svgText, "image/svg+xml");
3843						var svgElement = svgDoc.querySelector('svg');
3844						
3845						if (svgElement) {
3846							var viewBox = svgElement.getAttribute('viewBox');
3847							if (viewBox) {
3848								var viewBoxValues = viewBox.split(' ');
3849								var width = viewBoxValues[2];
3850								var height = viewBoxValues[3];
3851
3852								if (!img.hasAttribute('width')) {
3853									img.setAttribute('width', width);
3854								}
3855								if (!img.hasAttribute('height')) {
3856									img.setAttribute('height', height);
3857								}
3858							}
3859						}
3860					})
3861					.catch(error => {
3862						// Fallback to default dimensions for SVG
3863						if (!img.hasAttribute('width')) {
3864							img.setAttribute('width', '100');
3865						}
3866						if (!img.hasAttribute('height')) {
3867							img.setAttribute('height', '100');
3868						}
3869					});
3870				} else {
3871					// For non-SVG images, use natural dimensions
3872					var tempImg = new Image();
3873					tempImg.src = img.src;
3874					
3875					tempImg.onload = function() {
3876						if (!img.hasAttribute('width')) {
3877							img.setAttribute('width', tempImg.naturalWidth);
3878						}
3879						if (!img.hasAttribute('height')) {
3880							img.setAttribute('height', tempImg.naturalHeight);
3881						}
3882					};
3883					
3884					tempImg.onerror = function() {
3885						// Fallback to default dimensions
3886						if (!img.hasAttribute('width')) {
3887							img.setAttribute('width', '100');
3888						}
3889						if (!img.hasAttribute('height')) {
3890							img.setAttribute('height', '100');
3891						}
3892					};
3893				}
3894			}
3895		});
3896	}
3897
3898	document.addEventListener('DOMContentLoaded', function() {
3899		// Run the function initially to catch images already in the DOM
3900		addAttributesToImages();
3901
3902		// Create a MutationObserver to monitor the DOM for added/changed images
3903		var observer = new MutationObserver(function(mutations) {
3904			mutations.forEach(function(mutation) {
3905				if (mutation.addedNodes.length > 0 || mutation.type === 'attributes') {
3906					// Only process if we have new images or src attribute changes
3907					var hasNewImages = false;
3908					
3909					if (mutation.addedNodes.length > 0) {
3910						mutation.addedNodes.forEach(function(node) {
3911							if (node.nodeType === 1) { // Element node
3912								if (node.tagName === 'IMG' || node.querySelectorAll) {
3913									hasNewImages = true;
3914								}
3915							}
3916						});
3917					}
3918					
3919					if (mutation.type === 'attributes' && mutation.attributeName === 'src') {
3920						hasNewImages = true;
3921					}
3922					
3923					if (hasNewImages) {
3924						addAttributesToImages();
3925					}
3926				}
3927			});
3928		});
3929
3930		// Start observing the document body for changes
3931		observer.observe(document.body, {
3932			childList: true, // Watch for added or removed nodes
3933			subtree: true, // Watch the entire subtree
3934			attributes: true, // Watch for attribute changes
3935			attributeFilter: ['src'] // Specifically watch for changes in the 'src' attribute
3936		});
3937	});
3938</script>
3938<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] {
3939    cursor: wait
3940}
3941select.select2-preload {
3942    line-height: initial;
3943}
3944
3945select#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"] {
3946    -webkit-appearance: none;
3947    -moz-appearance: none;
3948    appearance: none;
3949    background-image: url(/images/select2ArrowDown.png) !important;
3950    background-repeat: no-repeat !important;
3951    background-size: 10px 9px !important;
3952    background-position: 99% 16px;
3953    border-radius: 6px;
3954    overflow: hidden;
3955}
3956.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"] {
3957    background-position: 98.2% 12px;
3958} </style>    <!-- DROPDOWN SELECT SCRIPT -->
3959    <!-- Select2 CSS Included in website-styles.pkgd.min.css -->
3960    <!--[if lt IE 9]>
3961    
3961<script defer src="https://www.optimizecdn.com/directory/cdn/assets/html5shiv/3.7.2/html5shiv.min.js"></script>
3961
3962    
3962<script defer src="https://www.optimizecdn.com/directory/cdn/bootstrap/select2/master/js/respond.min.js"></script>
3962
3963    <![endif]-->
3964    
3964<script>
3965
3966        var preloaded_ttid  = false;
3967        var preloaded_tid   = false;
3968        var preloaded_sid   = false;
3969        var path2            = window.location.pathname.replace(/\//g, "_");
3970
3971        if (performance.navigation.type !== 2) {
3972            if (sessionStorage.getItem('select2-ttid'+path2) !== null) {
3973                sessionStorage.removeItem('select2-ttid'+path2);
3974            }
3975
3976            if (sessionStorage.getItem('select2-tid'+path2) !== null) {
3977                sessionStorage.removeItem('select2-tid'+path2);
3978            }
3979
3980            if (sessionStorage.getItem('select2-sid'+path2) !== null) {
3981                sessionStorage.removeItem('select2-sid'+path2);
3982            }
3983
3984        }else if(performance.navigation.type === 2){
3985            if (sessionStorage.getItem('select2-ttid'+path2) !== null) {
3986                preloaded_ttid = sessionStorage.getItem('select2-ttid'+path2);
3987            }
3988
3989            if (sessionStorage.getItem('select2-tid'+path2) !== null) {
3990                preloaded_tid = sessionStorage.getItem('select2-tid'+path2);
3991            }
3992
3993            if (sessionStorage.getItem('select2-sid'+path2) !== null) {
3994                preloaded_sid = sessionStorage.getItem('select2-sid'+path2);
3995            }
3996        }
3997
3998        window.addEventListener('load', () => {
3999            let select2Inputs = document.querySelectorAll('.select-category-chained,#sid,#tid,.combobox,#bd-chained,#category-chained,.infinite-chained,.subcategory-chained,.search-chained,select#country-chained,#state-chained,#country-chained-2,#state-chained-2,#profession_id,[name^="bd_phone_country_code"]');
4000            if (typeof select2Inputs != "undefined") {
4001                for (let i = 0; i < select2Inputs.length; i++) {
4002                    let inputPlaceHolder = select2Inputs[i].getAttribute('placeholder');
4003                    if (!select2Inputs[i].getAttribute('placeholder')) {
4004                        inputPlaceHolder = select2Inputs[i].getAttribute('data-placeholder');
4005                    }
4006                    let countryCode = select2Inputs[i].getAttribute('data-country-code');
4007                    if (select2Inputs[i].getAttribute('data-country-code') != null && countryCode > 0 && typeof isoCountries != 'undefined') {
4008                        for (let c = 0; c < isoCountries.length; c++) {
4009                            if(isoCountries[c].id == countryCode){
4010                                //   select2Inputs[i].querySelector('option:first-child').text = isoCountries[c].text;
4011                                select2Inputs[i].text = isoCountries[c].text;
4012                            }
4013                        }
4014
4015                    }
4016                    if(select2Inputs[i].hasAttribute('data-country-code')){
4017                        inputPlaceHolder = null; //reset the input
4018                    }
4019                    if (inputPlaceHolder != '' && inputPlaceHolder !== null) {
4020                        select2Inputs[i].querySelector('option:first-child').text = inputPlaceHolder;
4021                        select2Inputs[i].style.color = "#a8a8a8";
4022                        if(!select2Inputs[i].querySelector('option:first-child').hasAttribute('value')){
4023                            select2Inputs[i].querySelector('option:first-child').value='';
4024                        }
4025                    }
4026                    select2Inputs[i].classList.add("select2-preload");
4027                    select2Inputs[i].addEventListener('mousedown', select2OnFormClick, false);
4028                }
4029            }
4030        });
4031
4032        function select2OnFormClick(event = false) {
4033            let elemtClicked = '';
4034            if (event !== false) {
4035                event.preventDefault();
4036                event.stopImmediatePropagation();
4037                elemtClicked = event.target;
4038                elemtClicked.disabled = true;
4039            }
4040
4041            let loadScriptAsync = function (uri) {
4042                return new Promise((resolve, reject) => {
4043                    let script = document.createElement('script');
4044                    script.type = 'text/javascript';
4045                    script.src = uri;
4046                    script.async = true;
4047                    script.onload = function () {
4048                        if (event !== false) {
4049                            elemtClicked.disabled = false;
4050                            select2Initialize();
4051                            $(elemtClicked).select2('open');
4052                            $(elemtClicked).on("select2-close", function () {
4053                                setTimeout(function() {
4054                                    $('.select2-container-active').removeClass('select2-container-active');
4055                                    $(':focus').blur();
4056                                }, 1);
4057                            });
4058                            if (elemtClicked.hasAttribute('data-fv-field')) {
4059                                if (window.getComputedStyle(elemtClicked).display === "none") {
4060                                    // if element is display none, the formvalition can not read
4061                                    elemtClicked.style.cssText = "display: block;position: absolute;visibility: hidden !important;height: 0;width: 0;opacity: 0 !important;"
4062                                }
4063                            }
4064                        } else {
4065                            select2Initialize();
4066                        }
4067                        resolve("ok");
4068                    };
4069                    let head = document.getElementsByTagName('head')[0];
4070                    head.appendChild(script);
4071                });
4072            }
4073
4074            let select2Inputs = document.querySelectorAll('.select-category-chained,#sid,#tid,.combobox,#bd-chained,#category-chained,.infinite-chained,.subcategory-chained,.search-chained,select#country-chained,#state-chained,#country-chained-2,#state-chained-2,#profession_id,[name^="bd_phone_country_code"]');
4075
4076            if (typeof select2Inputs != "undefined") {
4077                for (let i = 0; i < select2Inputs.length; i++) {
4078                    let inputPlaceHolder = select2Inputs[i].getAttribute('placeholder');
4079                    if (!select2Inputs[i].getAttribute('placeholder')) {
4080                        inputPlaceHolder = select2Inputs[i].getAttribute('data-placeholder');
4081                    }
4082                    if(select2Inputs[i].hasAttribute('data-country-code')){
4083                        inputPlaceHolder = null; //reset the input
4084                    }
4085                    if (inputPlaceHolder != '' && inputPlaceHolder !== null) {
4086                        select2Inputs[i].querySelector('option:first-child').text = '';
4087                    }
4088                    select2Inputs[i].removeEventListener('mousedown', select2OnFormClick, false);
4089                }
4090            }
4091            let scriptLoaded = loadScriptAsync('https://www.optimizecdn.com/directory/cdn/bootstrap/select2/3.5.2/select2.min.js?v=3.5.5');
4092            return scriptLoaded;
4093        }
4094
4095        function select2Initialize(){
4096            function getSecondLevel(div,id) {
4097                $("#" + div).select2("data", {
4098                    id: "",
4099                    text: `Loading...`
4100                });
4101                $.ajax({
4102                    url : '/ajaxsearch/get-services',
4103                    type : "GET",
4104                    data : {
4105                        'specialty_id' : id
4106                    },
4107                    dataType: "json",
4108                    success : function(data) {
4109                        var options = '';
4110
4111                        for (var i = 0; i < data.length; i++) {
4112                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
4113                        }
4114                        if (div == "tid"){
4115                            $("#ttid").select2("data", {
4116                                id: "",
4117                                text: "No options available"
4118                            });
4119
4120
4121                            $("#ttid").select2("enable", false);
4122
4123                            $("#" + div).change(function () {
4124                                sessionStorage.setItem("select2-tid"+path2,$(this).val());
4125                            });
4126                        }
4127                        if (data.length > 1) {
4128                            $("#" + div).select2("enable",true);
4129                            $("#" + div).html(options);
4130                            $("#" + div).select2("val", "");
4131                            
4132                        } else {
4133                            $("#"+div).select2("data", {
4134                                id: "",
4135                                text: "No options available"
4136                            });
4137                            $("#"+div).select2("val", "");
4138                        }
4139
4140                        if(div == 'tid' && preloaded_tid !== false){
4141                            $("#" + div).select2("val", preloaded_tid);
4142                            $("#" + div).trigger('change');
4143                        }
4144                    }
4145                });
4146            }
4147            function getSecondLevelAccount(div,id) {
4148                $("#" + div).select2("data", {
4149                    id: "",
4150                    text: `Loading...`
4151                });
4152                $.ajax({
4153                    url : '/ajaxsearch/get-services',
4154                    type : "GET",
4155                    data : {
4156                        'specialty_id' : id
4157                    },
4158                    dataType: "json",
4159                    success : function(data) {
4160                        var options = '';
4161
4162                        for (var i = 0; i < data.length; i++) {
4163                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
4164                        }
4165                        if (data.length > 1) {
4166                            $("#" + div).select2("close");
4167                            $("#" + div).select2("val", "");
4168                            $("#" + div).select2("enable",true);
4169                            $("#" + div).html(options);
4170
4171                            
4172                        } else {
4173                            $("#"+div).select2("data", {
4174                                id: "",
4175                                text: "No options available"
4176                            });
4177                            $("#"+div).select2("val", "");
4178                        }
4179                    }
4180                });
4181            }
4182            function getThirdLevel(div,id,id2) {
4183                $("#"+div).select2("data", {
4184                    id: "",
4185                    text: `Loading...`
4186                });
4187
4188                $.ajax({
4189                    url : '/ajaxsearch/get-locations',
4190                    type : "GET",
4191                    data : {
4192                        'specialty_id' : id,
4193                        'treatment_id' : id2,
4194                    },
4195                    dataType: "json",
4196                    success : function(data) {
4197                        var options = '';
4198
4199                        for (var i = 0; i < data.length; i++) {
4200                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
4201                        }
4202                        if (data.length > 1) {
4203                            $("#" + div).select2("enable",true);
4204                            $("#" + div).html(options);
4205                            $("#" + div).select2("val", "");
4206                            
4207                        } else {
4208                            $("#"+div).select2("data", {
4209                                id: "",
4210                                text: "No options available"
4211                            });
4212                            $("#"+div).select2("val", "");
4213                        }
4214                    }
4215                });
4216            }
4217            var current_country = '';
4218            function getStateList(div,id) {
4219                if (id != current_country) {
4220                    current_country = id; /* BUGFIX p949P6dS: record the country being fetched so the select2-open re-fetch handler short-circuits at this guard instead of looping forever. current_country was declared (line 274) but never assigned, so this guard was always true: success -> select2("open") re-fired the open handler -> getStateList(id) -> re-fetch -> "Loading..." re-pinned -> infinite loop (Singapore = 2 regions). */
4221
4222                    $("#"+div).select2("data", {
4223                        id: "",
4224                        text: `Loading...`
4225                    });
4226                    $.ajax({
4227                        url : '/ajaxsearch/get-states',
4228                        type : "GET",
4229                        data : {
4230                            'country' : id
4231                        },
4232                        dataType: "json",
4233                        success : function(data) {
4234                            $("#" + div).html(''); // clear options
4235
4236                            /* p949P6dS: data[0] is always the server-side "(Select from List)" placeholder,
4237                               so <=2 entries means the country has at most 1 real region (Singapore,
4238                               Martinique, zero-region). Client wants those to read "No State/Province
4239                               Available" instead of "(Select from List)"; the single real region stays
4240                               selectable. Reset/enable now runs on EVERY response (was gated behind
4241                               data.length > 1, which left zero-region countries stuck on "Loading..."
4242                               and disabled); auto-open stays multi-region only. */
4243                            var hasStates = (data.length > 2);
4244                            for (var i = 0; i < data.length; i++) {
4245                                var optionTitle = (!hasStates && data[i].value === "") ? `No State/Province Available for This Country` : data[i].title;
4246                                var newOption = new Option(optionTitle, data[i].value, false, false);
4247                                $("#" + div).append(newOption).trigger('change');
4248
4249                            }
4250                            if (data.length === 0) {
4251                                $("#" + div).append(new Option(`No State/Province Available for This Country`, "", false, false)).trigger('change');
4252                            }
4253
4254                            $("#" + div).select2("enable",true);
4255                            $("#" + div).prop("disabled", false);
4256                            $("#" + div).select2("val", "");
4257                            if (hasStates) {
4258                                                                $("#" + div).select2("open");
4259                                                            }
4260                        }
4261                    });
4262                } else {
4263                    /* p949P6dS AC#3: the select2-open handler runs select2("enable",false) BEFORE
4264                       re-calling getStateList, and for a country with <=2 options (Singapore,
4265                       Martinique) that re-call short-circuits here on the id == current_country
4266                       guard. This branch previously only reset the value, so the field was left
4267                       permanently disabled: select2-container-disabled, clicks never open it, the
4268                       single real region is unselectable. Mirror the success path's re-enable so a
4269                       short-circuited re-open leaves the field usable. Multi-region countries never
4270                       hit this (their open handler is gated behind count <= 2). */
4271                    $("#" + div).select2("enable", true);
4272                    $("#" + div).prop("disabled", false);
4273                    $("#" + div).select2("val", "");
4274                }
4275            }
4276            /* p949P6dS: keep the checkout/billing required-State validation in sync with the
4277               server-side waiver, on BOTH layers. When the selected country has selectable
4278               sub-regions (Canada, US, ...) FormValidation validates state_code (inline "Required
4279               Field" on submit); when it has none (Singapore, Martinique, zero-region) the state_code
4280               validator is disabled + un-flagged so those countries are not blocked. Delegated so it
4281               binds even though the billing form is revealed after step 1; guarded to no-op on any
4282               page/form without FormValidation + a state_code field. The server still enforces the
4283               same rule (bd-core-files form_controller), so this is UX only, not the security gate. */
4284            function bdSyncStateRequired(hasStates) {
4285                var $stField = $("#state-chained");
4286                var $stForm = $stField.closest("form");
4287                var stFv = ($stForm.length) ? ($stForm.data("formValidation") || $stForm.data("bootstrapValidator")) : null;
4288                if (!stFv || !stFv.options || !stFv.options.fields || !stFv.options.fields.state_code) {
4289                    return;
4290                }
4291                stFv.options.fields.state_code.excluded = hasStates ? false : true;
4292                try { stFv.enableFieldValidators("state_code", hasStates); } catch (e) {}
4293
4294                /* p949P6dS: keep the visible "* " required marker on the State label in sync with the
4295                   waiver. functions_up.php renders <span class="required">* </span> on the state_code
4296                   label when AVS forces the field required; for a no-state country (Singapore,
4297                   Martinique) the field is genuinely waived so the asterisk must go away, and come
4298                   back when the country has selectable states again. Scoped to the state label. */
4299                var $stReq = $("label[for='state-chained'] .required", $stForm);
4300                $stReq.css("display", hasStates ? "" : "none");
4301
4302                /* p949P6dS: the ACTUAL blocker. The billing form carries a SECOND required layer,
4303                   independent of FormValidation: the form's success.form.fv handler loops
4304                   $form.find('[required]') and, for any empty one, appends <small class="required-error">
4305                   Required Field</small> + returns false, hard-blocking the submit. AVS renders the
4306                   state_code <select> with the HTML5 `required` attribute, so a no-state country
4307                   (empty state) stayed blocked with "Required Field" even after the FormValidation
4308                   waiver above. Drop the `required` attribute (+ clear its custom error) when the
4309                   country has no selectable states, and restore it when it does. Remember the server-
4310                   rendered original so we never ADD required to a field AVS left optional. */
4311                if ($stField.attr("data-bd-orig-required") === undefined) {
4312                    $stField.attr("data-bd-orig-required",
4313                        ($stField.prop("required") || $stField.attr("required") !== undefined) ? "1" : "0");
4314                }
4315                var stOrigRequired = ($stField.attr("data-bd-orig-required") === "1");
4316
4317                var $stRow = $stField.closest(".form-group,.fv-row,.row");
4318                if (!hasStates) {
4319                    try { if (typeof stFv.resetField === "function") { stFv.resetField("state_code", true); } } catch (e) {}
4320                    $stRow.removeClass("has-error has-success");
4321                    $stRow.find(".help-block[data-fv-validator]").css("display", "none");
4322                    /* drop the HTML5 required gate + its "Required Field" message for no-state country */
4323                    $stField.removeAttr("required").prop("required", false);
4324                    $stField.siblings(".required-error").remove();
4325                    $stRow.find(".required-error").remove();
4326
4327                    /* p949P6dS: on the Member-Dashboard billing modal the Save button is disabled by
4328                       FormValidation until the whole form is valid; for a no-state country the user
4329                       has no state to pick, so nothing re-enables it and Save stays stuck disabled ->
4330                       "cannot save". Re-enable it directly. IMPORTANT: do NOT call stFv.validate()
4331                       here — in this FormValidation build validate() on an already-valid form fires
4332                       success.form.fv (a real submit), which saved the address on the country change
4333                       AND consumed the one-time CSRF token, so the actual Save click then failed with
4334                       "You entered invalid data. Please try to save again." disableSubmitButtons only
4335                       toggles the button; no submit. Scoped to the billing modal so checkout is
4336                       untouched. */
4337                    if ($stForm.closest("#billing_address_modal").length) {
4338                        try { if (typeof stFv.disableSubmitButtons === "function") { stFv.disableSubmitButtons(false); } } catch (e) {}
4339                        $stForm.find("input.submitter, button.submitter, [type=submit]")
4340                               .removeClass("disabled").prop("disabled", false).removeAttr("disabled");
4341                    }
4342                } else if (stOrigRequired) {
4343                    /* country has states again — restore the required gate AVS originally set */
4344                    $stField.attr("required", "required").prop("required", true);
4345                }
4346            }
4347            $(document).off("change.bdStateReq").on("change.bdStateReq", "#country-chained", function() {
4348                var bdCc = $(this).val();
4349                var $bdForm = $("#state-chained").closest("form");
4350                var bdFv = ($bdForm.length) ? ($bdForm.data("formValidation") || $bdForm.data("bootstrapValidator")) : null;
4351                if (!bdFv || !bdFv.options || !bdFv.options.fields || !bdFv.options.fields.state_code || bdCc === "") {
4352                    return;
4353                }
4354                $.ajax({
4355                    url: "/ajaxsearch/get-states",
4356                    type: "GET",
4357                    data: { "country": bdCc },
4358                    dataType: "text",
4359                    success: function(bdResp) {
4360                        /* count entries without regex (DB+eval mangles backslashes): split on the
4361                           literal "value" key; total entries = splits - 1; >2 means placeholder + 2+
4362                           real regions == has selectable states. Text parse also survives the
4363                           malformed-JSON zero-region response. */
4364                        var bdTotal = bdResp.split(`"value"`).length - 1;
4365                        bdSyncStateRequired(bdTotal > 2);
4366                    }
4367                });
4368            });
4369            /* p949P6dS: the Member Dashboard billing modal (widget 1861) pre-selects the member's
4370               SAVED country_code at document.ready without firing a change event, so the handler
4371               above never ran for it and an AVS-forced required State (functions_up.php forces
4372               field_required=1 on state_code when whmcs_avs_on / stripe_accept_intl_payments is on)
4373               stayed active for a saved no-state country — blocking the save with "Required Field"
4374               on a country that has no state to pick. Sync once for an already-selected country.
4375               The namespaced trigger fires only this handler (not select2/getStateList), and the
4376               handler no-ops when the country is empty or state_code is not a validated field, so
4377               checkout and every other chained-select page are unaffected. */
4378            $("#country-chained").each(function() {
4379                if ($(this).val() !== "") {
4380                    $(this).trigger("change.bdStateReq");
4381                }
4382            });
4383            function getInfinityChained(div,id) {
4384                $("#"+div).select2("data", {
4385                    id: "",
4386                    text: `Loading...`
4387                });
4388                $.ajax({
4389                    url : '/ajaxsearch/get-subcategory',
4390                    type : "GET",
4391                    data : {
4392                        'parent' : id
4393                    },
4394                    dataType: "json",
4395                    success : function(data) {
4396                        var options = '';
4397
4398                        for (var i = 0; i < data.length; i++) {
4399                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
4400                        }
4401                        if (data.length > 1) {
4402                            $("#" + div).select2("enable",true);
4403                            $("#" + div).html(options);
4404                            if(div == 'tid' && '' != ''){
4405                                $("#" + div).select2("val", "");
4406                                $("#" + div).trigger('change');
4407                            } else if(div == 'tid' && preloaded_tid !== false){
4408                                $("#" + div).select2("val", preloaded_tid);
4409                                $("#" + div).trigger('change');
4410                            }else {
4411                                $("#" + div).select2("val", "");
4412                            }
4413
4414
4415
4416                            
4417                        } else {
4418                            $("#" + div).select2("data", {
4419                                id: "",
4420                                text: "No options available"
4421                            });
4422                        }
4423                    }
4424                });
4425            }
4426            function categoryChained(div,id) {
4427                $("#" + div).select2("data", {
4428                    id: "",
4429                    text: `Loading...`
4430                });
4431                if(div == "tid") {
4432                    url_link = '/ajaxsearch/get-services'
4433                    data_passed = {'specialty_id' : id}
4434                } else {
4435                    url_link = '/ajaxsearch/category-list';
4436                    data_passed = {'parent' : id} ;
4437                }
4438
4439                var selectName = $("select[next="+div+"]").prop("name");
4440
4441
4442                if( (selectName == "ttid" || selectName == "sid" || selectName == "tid") ){
4443
4444                    sessionStorage.setItem("select2-"+selectName+path2,id);
4445                }
4446
4447                $.ajax({
4448                    url : url_link,
4449                    type : "GET",
4450                    data : data_passed,
4451                    dataType: "json",
4452                    success : function(data) {
4453                        var options = '';
4454
4455                        for (var i = 0; i < data.length; i++) {
4456                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
4457                        }
4458
4459                        if (data.length > 1) {
4460                            $("#" + div).select2("enable",true);
4461                            $("#" + div).html(options);
4462
4463                            if(div == "ttid" && preloaded_ttid !== false){
4464                                $("#" + div).select2("val", preloaded_ttid);
4465                                $("#" + div).trigger('change');
4466                            }else if(div == "tid" && preloaded_tid !== false){
4467                                $("#" + div).select2("val", preloaded_tid);
4468                                $("#" + div).trigger('change');
4469                            }else{
4470                                $("#" + div).select2("val", "");
4471                            }
4472
4473
4474                            
4475                        } else {
4476                            $("#" + div).select2("data", {
4477                                id: "",
4478                                text: "No options available"
4479                            });
4480                        }
4481                    }
4482                });
4483            }
4484            function formatCountry(country) {
4485                if (!country.id && country.text.includes("+")) {
4486                    let dataCountry = country.text;
4487                    dataCountry = dataCountry.split('+')
4488                    country.code = dataCountry[0].trim();
4489                    country.id = dataCountry[1].trim();
4490                    return country;
4491                } else if (!country.code) {
4492                    return country.text;
4493                }
4494                var $country = $(
4495                    '<span class="flag-icon flag-icon-' + country.code.toLowerCase() + ' flag-icon-squared"></span>' +
4496                    '<span class="flag-text" style="margin-left:10px;">' + country.text + '</span>'
4497                );
4498                return $country;
4499            }
4500
4501            let phoneCountryCode = document.querySelector("[name^='bd_phone_country_code']");
4502            if (typeof phoneCountryCode != 'undefined' && phoneCountryCode != null && typeof isoCountries != 'undefined') {
4503                $("[name^='bd_phone_country_code']").select2({
4504                    placeholder:`Country`,
4505                    data:isoCountries,
4506                    searchInputPlaceholder: `Enter Country Code`,
4507                    formatResult : formatCountry,
4508                    dropdownAutoWidth: true,
4509                    width: "resolve",
4510                }).on("select2-opening", function (e) {
4511                    if (typeof e.currentTarget.attributes['data-default-country-code'] !== "undefined") {
4512                        $(this).val(e.currentTarget.attributes['data-default-country-code'].value)
4513                            .removeAttr("data-default-country-code")
4514                            .trigger('change')
4515                            .trigger('open');
4516                    }
4517                }).change(function (e) {
4518                    let select2Span = $(this).attr('id');
4519                    if (e.val) {
4520                        $('#'+$(this).attr('id')+'--flag').remove();
4521                        $('#s2id_' + select2Span + ' a span.select2-chosen').prepend('<span class="flag-icon flag-icon-' + e.added.code.toLowerCase() + ' flag-icon-squared" style="margin-right:10px"></span>')
4522                    }else{
4523                        $('#s2id_' + select2Span + ' a span.select2-chosen').prepend('<span class="flag-icon flag-icon-' + $(this).attr('data-default-country-flag').toLowerCase() + ' flag-icon-squared" style="margin-right:10px"></span>')
4524                    }
4525                    $(this).removeAttr("data-default-country-flag");
4526
4527                });
4528            }
4529            $("#bd-chained").select2({
4530                title: "Select An Option",
4531                placeholder: "Select An Option",
4532                allowClear: true,
4533                formatNoMatches: function () {
4534                    return "No matches found";
4535                }
4536            }).change(function () {
4537                var id = $(this).val();
4538                $("#tid").select2("enable",false);
4539                getInfinityChained("tid",id);
4540                            });
4541            $("#category-chained").select2({
4542                title: "Select An Option",
4543                placeholder: "Select An Option",
4544                allowClear: true
4545            }).change(function () {
4546                var id = $(this).val();
4547                $("#subcategory-chained").select2("enable",false);
4548                categoryChained("subcategory-chained",id);
4549                            });
4550
4551            $(".select-category-chained").select2({
4552                title: "Select An Option",
4553                placeholder: "Select An Option",
4554                allowClear: true
4555            })
4556            $(".infinite-chained").select2({
4557                title: "Select option from list",
4558                placeholder: "Click to select an option",
4559                allowClear: true,
4560                formatNoMatches: function () {
4561                    return "No matches found";
4562                }
4563            }).change(function () {
4564                var id          = $(this).val();
4565                var attr        = $(this).attr('next');
4566                var selectName  = $(this).prop('name');
4567                if ( selectName=='ttid' || attr =='ttid' ) {
4568                    $("#" + attr).select2("enable",false);
4569                    categoryChained(attr,id);
4570                                        sessionStorage.setItem("select2-"+selectName+path2,id);
4571                }
4572            }).on("select2-close", function () {
4573                setTimeout(function() {
4574                    $('.select2-container-active').removeClass('select2-container-active');
4575                    $(':focus').blur();
4576                }, 1);
4577            });
4578            $("#subcategory-chained").select2();
4579            $(".combobox").select2();
4580            $(".search-chained").select2();
4581
4582            $("select#country-chained").select2({
4583                title: "",
4584                placeholder: "",
4585                val: "",
4586                allowClear: true,
4587                formatNoMatches: function () {
4588                    return "No matches found";
4589                }
4590            }).change(function () {
4591                var id = $(this).val();
4592                $("#state-chained").select2("enable",false);
4593                getStateList("state-chained",id);
4594                var state = "";
4595
4596                if (id == "CA") {
4597                    state = "Province";
4598
4599                } else if (id == "UK") {
4600                    state = "Region";
4601
4602                } else if (id == "US" || id == "AU") {
4603                    state = "State";
4604
4605                } else {
4606                    state = "Region";
4607                }
4608                $("#state-chained").prev(".control-label").text(state);
4609            });
4610            $("#state-chained").select2();
4611
4612            $("#state-chained").on("select2-open", function(event) {
4613                event.preventDefault();
4614                var id = $("#country-chained").val();
4615                var count = $('#state-chained option').length;
4616
4617                if (id != "" && count <= 2) {
4618                    $("#state-chained").select2("enable",false);
4619                    getStateList("state-chained",id);
4620                    var state = "";
4621
4622                    if (id == "CA") {
4623                        state = "Province";
4624
4625                    } else if (id == "UK") {
4626                        state = "Region";
4627
4628                    } else if (id == "US" || id == "AU") {
4629                        state = "State";
4630
4631                    } else {
4632                        state = "Region";
4633                    }
4634                    $("#state-chained").prev(".control-label").text(state);
4635                }
4636            });
4637
4638            $("#country-chained-2").select2({
4639                title: "Select Country",
4640                placeholder: "(select country)",
4641                val: "",
4642                allowClear: true,
4643                formatNoMatches: function () {
4644                    return "No matches found";
4645                }
4646            }).change(function () {
4647                var id = $(this).val();
4648                $("#state-chained-2").select2("enable",false);
4649                getStateList("state-chained-2",id);
4650                var state = "";
4651
4652                if (id == "CA") {
4653                    state = "Province";
4654
4655                } else if (id == "UK") {
4656                    state = "Region";
4657
4658                } else if (id == "US" || id == "AU") {
4659                    state = "State";
4660
4661                } else {
4662                    state = "Region";
4663                }
4664                $("#state-chained-2").prev(".control-label").text(state);
4665            });
4666
4667            $("#state-chained-2").select2();
4668            $("#profession_id").select2({
4669                placeholder: "Select From List",
4670                allowClear: true,
4671                formatNoMatches: function () {
4672                    return "No matches found";
4673                }
4674            }).change(function () {
4675                var id = $(this).val();
4676                getSecondLevelAccount("category_id",id);
4677                            });
4678                        $("#sid").select2({
4679                title: "Select An Option",
4680                placeholder: "Select An Option",
4681                allowClear: true,
4682                formatNoMatches: function () {
4683                    return "No matches found";
4684                }
4685            }).change(function () {
4686                var id = $(this).val();
4687                $("#tid").select2("enable",false);
4688                getSecondLevel("tid",id);
4689                $("#tid").select2("open");
4690                sessionStorage.setItem("select2-sid"+path2,id);
4691            });
4692            $("#location_value_dropdown").select2({
4693                title: "Enter Postal Code",
4694                placeholder: "Enter Postal Code",
4695                allowClear: true,
4696                formatNoMatches: function () {
4697                    return "No matches found";
4698                }
4699            });
4700            $("#tid").select2({
4701                title: "Select An Option",
4702                placeholder: "Select An Option",
4703                allowClear: true,
4704                formatNoMatches: function () {
4705                    return "No matches found";
4706                }
4707                            });
4708            $("#location_value_dropdown").select2({
4709                title: "Enter Postal Code",
4710                placeholder: "Enter Postal Code",
4711                allowClear: true
4712            });
4713        }
4714
4715        if(preloaded_ttid !== false || preloaded_tid !== false || preloaded_sid !== false){
4716            $(document).ready(function(){
4717                // Skip if homepage widget already handles preload
4718                if(window._bdCategoryPreloaded) return;
4719
4720                if(preloaded_sid !== false && $("#sid").length > 0){
4721                    select2OnFormClick();
4722                    setTimeout(() => {
4723                        $("#sid").select2('val', preloaded_sid);
4724                        $('#sid').trigger('change');
4725                    }, 500);
4726                }else if(preloaded_tid !== false && $("#sid").length <= 0){
4727                    select2OnFormClick();
4728                    setTimeout(() => {
4729                        $("#tid").select2('val', preloaded_tid);
4730                        $('#tid').trigger('change');
4731                    }, 500);
4732                }
4733            });
4734        }
4735    </script>
vendor: 2 bytes, line 4735
4735
4736<script>
4737    // Function to add aria-label to <select> elements without it, for better pagespeed accessibility score
4738    $(document).ready(function() {
4739        var ariaLabelCounter = {}; // Object to keep track of aria-label counts for uniqueness
4740
4741        // Iterate over each select element that does not have an aria-label
4742        $('select:not([aria-label])').each(function() {
4743            // Use the ID or placeholder as the base for the aria-label, stripping HTML tags
4744            var baseLabel = this.id || $(this).attr('placeholder') || 'select';
4745            baseLabel = baseLabel.replace(/<[^>]*>/g, '').trim(); // Remove HTML tags and trim
4746
4747            // Ensure uniqueness of each aria-label
4748            ariaLabelCounter[baseLabel] = (ariaLabelCounter[baseLabel] || 0) + 1;
4749            var ariaLabel = baseLabel + '-' + ariaLabelCounter[baseLabel];
4750
4751            // Truncate aria-label to 100 characters
4752            ariaLabel = ariaLabel.length > 100 ? ariaLabel.substring(0, 100) : ariaLabel;
4753
4754            // Set the aria-label attribute to the unique label
4755            $(this).attr('aria-label', ariaLabel);
4756        });
4757    });
4758</script>
vendor: 2 bytes, line 4758
4758
4759<script type="application/ld+json">
4760{
4761    "@context": "https://schema.org",
4762    "@graph": [
4763        {
4764            "@type": "WebSite",
4765            "@id": "http://www.atlshopper.com/#website",
4766            "name": "Metro Atlanta Shopper",
4767            "url": "http://www.atlshopper.com/",
4768            "inLanguage": "en-US",
4769            "potentialAction": {
4770                "@type": "SearchAction",
4771                "target": "http://www.atlshopper.com/search_results?q={search_term_string}",
4772                "query-input": "required name=search_term_string",
4773                "name": "Search Directory: Metro Atlanta Shopper"
4774            },
4775            "publisher": {
4776                "@id": "http://www.atlshopper.com/#organization"
4777            }
4778        },
4779        {
4780            "@type": "Organization",
4781            "@id": "http://www.atlshopper.com/#organization",
4782            "name": "Metro Atlanta Shopper",
4783            "description": "Search the most complete member directory. Find members.",
4784            "url": "http://www.atlshopper.com/",
4785            "mainEntityOfPage": {
4786                "@type": "WebPage",
4787                "@id": "http://www.atlshopper.com/#webpage"
4788            },
4789            "contactPoint": [
4790                {
4791                    "@type": "ContactPoint",
4792                    "email": "[email protected]",
4793                    "contactType": "customer support",
4794                    "availableLanguage": [
4795                        "en"
4796                    ],
4797                    "areaServed": "US"
4798                }
4799            ],
4800            "areaServed": {
4801                "@type": "Country",
4802                "name": "US"
4803            },
4804            "telephone": "(800) 555-5555",
4805            "logo": {
4806                "@type": "ImageObject",
4807                "@id": "http://www.atlshopper.com/#logo",
4808                "url": "/images/favicon.webp"
4809            },
4810            "image": {
4811                "@type": "ImageObject",
4812                "@id": "http://www.atlshopper.com/#image",
4813                "url": "/images/favicon.webp"
4814            },
4815            "keywords": [
4816                "Professional",
4817                "Member",
4818                "Metro Atlanta Shopper",
4819                "Metro Atlanta Shopper",
4820                "Member",
4821                "Professional"
4822            ]
4823        },
4824        {
4825            "@type": "WebPage",
4826            "@id": "http://www.atlshopper.com/#webpage",
4827            "url": "http://www.atlshopper.com/",
4828            "name": "Member Directory - Find Members - Metro Atlanta Shopper",
4829            "description": "Search the most complete member directory. Find members.",
4830            "inLanguage": "en-US",
4831            "copyrightYear": "2026",
4832            "copyrightHolder": {
4833                "@id": "http://www.atlshopper.com/#organization"
4834            },
4835            "about": "Metro Atlanta Shopper",
4836            "spatialCoverage": {
4837                "@type": "Place",
4838                "address": {
4839                    "@type": "PostalAddress",
4840                    "addressCountry": "US"
4841                }
4842            },
4843            "mainEntityOfPage": {
4844                "@id": "http://www.atlshopper.com/#webpage"
4845            },
4846            "isPartOf": {
4847                "@id": "http://www.atlshopper.com/#website"
4848            },
4849            "publisher": {
4850                "@id": "http://www.atlshopper.com/#organization"
4851            },
4852            "keywords": [
4853                "Professional",
4854                "Member",
4855                "Metro Atlanta Shopper",
4856                "Metro Atlanta Shopper",
4857                "Member",
4858                "Professional"
4859            ],
4860            "dateModified": "2021-07-19T13:34:37-04:00",
4861            "primaryImageOfPage": {
4862                "@id": "http://www.atlshopper.com/#image"
4863            }
4864        }
4865    ]
4866}</script>
4866
4867
4868<script>
4869// Bootstrap Icons fallback loader - ensures Bootstrap Icons work even if HEAD widget is customized, do not delete
4870(function() {
4871    if (!document.querySelector('link[href*="bootstrap-icons"]')) {
4872        var link = document.createElement('link');
4873        link.rel = 'stylesheet';
4874        link.href = 'https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1';
4875        document.head.appendChild(link);
4876    }
4877})();
4878</script>
vendor: 2 bytes, line 4878
4878
4879<script>
4880    window.addEventListener('load', () => {
4881        let embedlyClass = document.querySelector('.fr-embedly');
4882        if (typeof embedlyClass != "undefined" && embedlyClass != null) {
4883            let embedlyURI = "https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/embedly_widget.min.js";
4884            let head = document.getElementsByTagName("head")[0];
4885            let script = document.createElement('script');
4886            script.type = 'text/javascript';
4887            script.src = embedlyURI;
4888            script.async = true;
4889            script.onload = function() {
4890                setTimeout(function() {
4891                    if (typeof embedly !== 'undefined' && embedly.card) {
4892                        document.querySelectorAll('.embedly-card').forEach(function(card) {
4893                            embedly.card(card);
4894                        });
4895                    }
4896                }, 500);
4897            };
4898            head.appendChild(script);
4899        }
4900    });
4901</script>
4901<script type="text/javascript" src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js"></script>
4901<script>
4902                            $(function () {
4903                                $(".lazyloader").Lazy({
4904                                    afterLoad: function(element) {
4905                                        $(".gridView.activeView").click();
4906                                    }
4907                                });
4908                                
4909                            });
4910                            $("button[class*='slick'],button[id*='slick']").click(function () {
4911                              $(this).parents(".row").find(".lazyloader").lazy({
4912                                    bind: "event",
4913                                    delay: 0
4914                                });
4915                            });
4916                            $("[class*='slick'],[id*='slick']").on("swipe",function(){
4917                              $(this).parents(".row").find(".lazyloader").lazy({
4918                                    bind: "event",
4919                                    delay: 0
4920                                });
4921                            });
4922                        </script>
4922<script defer src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0"></script>
4922
4923            </body>
4924        </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.