PageSourceSearch

https://www.atozhealthguide.com/search_results

html atozhealthguide.com collected 2026-10-06 13:16:08 UTC 416,321 bytes, 8,344 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>Natural Healths - Find &amp; Compare Natural Health and fitness Professionals</title>
17    <meta name="description" content="Search our Natural Health and fitness database and connect with top rated Natural Healths.">
18    <meta name="keywords" content="Natural Health and fitness,Natural Health,Natural Healths,search Natural Healths,find Natural Healths">
19    <meta name="robots" content="index, follow">
20
21    <!-- Canonical URL -->
22	<link rel="canonical" href="https://www.atozhealthguide.com/search_results">	
23	<link rel="alternate" type="application/rss+xml" title="A to Z health Guide RSS Feed" href="https://www.atozhealthguide.com/rss" />
24	
25    	<!-- Social Media Meta Data -->
26    <meta property="og:type" content="website">
27    <meta property="og:url" content="https://www.atozhealthguide.com/search_results">
28    <meta property="og:site_name" content="A to Z health Guide">
29    <meta property="og:title" content="The Best Natural Healths Rated By Past Clients">
30    <meta property="og:description" content="Who is the best Natural Health? Compare and connect with the top rated Natural Healths.">
31    <meta property="og:image" content="https://www.atozhealthguide.com/images/headerforatoz1800-600.jpg">
32	
32<script>
33	var siteInfoSpan=document.createElement('span');
34	siteInfoSpan.style.cssText='position:absolute;color:transparent;width:100%;z-index:-1;height:50px;top:0;';
35	siteInfoSpan.textContent='www.atozhealthguide.com - A to Z health Guide';
36	document.documentElement.appendChild(siteInfoSpan);
37	</script>
37
38
39	<!-- Preload -->
40	<link rel="preload" as="style" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/critical-styles.pkgd.min.css?v=09.05.26" fetchpriority="high" crossorigin>
41	<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Inter:300,400,600,700,800,900|Roboto:300,400,600,700,800,900|Poppins:300,400,600,700,800,900&display=swap" fetchpriority="high">
42		
43    <!-- Non-Critical Stylesheet - Render Before Critical Styles -->
44	<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>
45	<noscript>
46		<link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/non-critical-styles.pkgd.min.css" crossorigin>
47	</noscript>
48		
49	<!-- Critical Stylesheet -->
50	<link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/critical-styles.pkgd.min.css?v=09.05.26" crossorigin>
51    	
52    <!-- Google Fonts Stylesheet -->    
53    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Inter:300,400,600,700,800,900|Roboto:300,400,600,700,800,900|Poppins:300,400,600,700,800,900&display=swap">
54    <noscript>
55        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300,400,600,700,800,900|Roboto:300,400,600,700,800,900|Poppins:300,400,600,700,800,900&display=swap">
56    </noscript>
57	
58    <!-- FontAwesome Stylesheet -->
59    <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>
60    <noscript>
61        <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/font-awesome/css/font-awesome.min.css" crossorigin>
62    </noscript>
63	
64    <!-- Bootstrap Icons Stylesheet -->
65    <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>
66    <noscript>
67        <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1" crossorigin>
68    </noscript>
69	
70    <!-- Critical JavaScript -->
71    
71<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/libraries/latest/jquery.min.js"></script>
71
72	
72<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/libraries/latest/bootstrap.min.js"></script>
72
73	
73<script>
74		/* jQuery.event.special.touchstart = {
75			setup: function( _, ns, handle ) {
76				this.addEventListener("touchstart", handle, { passive: !ns.includes("noPreventDefault") });
77			}
78		}; */
79		jQuery.event.special.touchmove = {
80			setup: function( _, ns, handle ) {
81				this.addEventListener("touchmove", handle, { passive: !ns.includes("noPreventDefault") });
82			}
83		};
84		jQuery.event.special.wheel = {
85			setup: function( _, ns, handle ){
86				this.addEventListener("wheel", handle, { passive: true });
87			}
88		};
89		jQuery.event.special.mousewheel = {
90			setup: function( _, ns, handle ){
91				this.addEventListener("mousewheel", handle, { passive: true });
92			}
93		};
94	</script>
94
95
96	<!-- Breadcrumb Position -->
97	<style>html.bc-relocate .container:has(> .breadcrumb):has(~ .hero_section_container) .breadcrumb{display:none!important;}html.bc-relocate .hero_section_container + .clearfix + .container::before{content:"";display:block;min-height:24px;}.hero_section_container + .clearfix + .container > .breadcrumb:first-child{position:relative;top:-24px;}</style>
98	
98<script>document.documentElement.classList.add('bc-relocate');document.addEventListener('DOMContentLoaded',function(){var bc=document.querySelector('ol.breadcrumb'),hero=document.querySelector('.hero_section_container');if(bc&&hero){var t=hero.nextElementSibling;while(t&&!t.classList.contains('container'))t=t.nextElementSibling;if(t)t.insertBefore(bc,t.firstChild);}document.documentElement.classList.remove('bc-relocate');});</script>
98
99		
100	
101    <!-- Prefetch -->
102    <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js" as="script">
103    <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0" as="script">
104
105    <!-- Custom Site-wide HEAD Content --><!-- Google Tag Manager -->
106<script>
vendor: 331 bytes, lines 106-110
106(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
107new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
108j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
109'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
110})(window,document,'script','dataLayer','
110GTM-N6MJHMN3
vendor: 3 bytes, line 110
110');
110</script>
110
111<!-- End Google Tag Manager -->
112
113
114
115
116
117
118
119
120
121<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 121-122
121
122<script async src="https://www.googletagmanager.com/gtag/js?id=
122G-PL5P0970X4
vendor: 13 bytes, line 122
122"></script>
123<script>
124  
vendor: 138 bytes, lines 124-128
124window.dataLayer = window.dataLayer || [];
125  function gtag(){dataLayer.push(arguments);}
126  gtag('js', new Date());
127
128  gtag('config', '
128G-PL5P0970X4
vendor: 5 bytes, line 128
128');
129</script>
129
130<!-- Include CSS for Slick Slider -->
131<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css" />
132<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.min.css" />
133
134
135
136<!-- Include jQuery -->
137<!-- Include Slick Slider JS -->
138<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script>
138
139
140<script>
141$(document).ready(function () {
142    // Initialize Slick Slider
143    $('.video-slider').slick({
144        infinite: true,
145        slidesToShow: 4,
146        slidesToScroll: 1,
147        arrows: true,
148        dots: true,
149        autoplay: false,
150        autoplaySpeed: 3000,
151        customPaging: function (slider, i) {
152            return `<button></button>`;
153        },
154        responsive: [
155            {
156                breakpoint: 600,
157                settings: { slidesToShow: 1, slidesToScroll: 1 }
158            },
159            {
160                breakpoint: 769,
161                settings: { slidesToShow: 2, slidesToScroll: 1 }
162            },
163            {
164                breakpoint: 1100,
165                settings: { slidesToShow: 2, slidesToScroll: 1 }
166            },
167           {
168                breakpoint: 1200,
169                settings: { slidesToShow: 3, slidesToScroll: 1 }
170           }
171        ]
172    });
173
174    function updateDotClasses() {
175        let $dots = $('.slick-dots li');
176        let activeIndex = $dots.filter('.slick-active').index();
177
178        $dots.removeClass('prev-1 prev-2 prev-3 next-1 next-2 next-3');
179
180        $dots.each(function (index) {
181            let diff = index - activeIndex;
182            if (diff === -1) $(this).addClass('prev-1');
183            if (diff === -2) $(this).addClass('prev-2');
184            if (diff === -3) $(this).addClass('prev-3');
185            if (diff === 1) $(this).addClass('next-1');
186            if (diff === 2) $(this).addClass('next-2');
187            if (diff === 3) $(this).addClass('next-3');
188        });
189    }
190
191    $('.video-slider').on('afterChange', function () {
192        updateDotClasses();
193    });
194
195    updateDotClasses();
196});
197</script>
197
198
199
200
201
202<!-- Meta Pixel Code -->
203<script>
vendor: 408 bytes, lines 203-212
203
204!function(f,b,e,v,n,t,s)
205{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
206n.callMethod.apply(n,arguments):n.queue.push(arguments)};
207if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
208n.queue=[];t=b.createElement(e);t.async=!0;
209t.src=v;s=b.getElementsByTagName(e)[0];
210s.parentNode.insertBefore(t,s)}(window, document,'script',
211'https://connect.facebook.net/en_US/fbevents.js');
212fbq('init', '
2121487663298447280
vendor: 32 bytes, lines 212-213
212');
213fbq('track', 'PageView');
214</script>
214
215<noscript><img height="1" width="1" style="display:none"
216src="https://www.facebook.com/tr?id=1487663298447280&ev=PageView&noscript=1"
217/></noscript>
218<!-- End Meta Pixel Code -->    
219</head>
220<body>
221<style type='text/css'> 
222 </style><!--GOOGLE TAG MANAGER CODE-->
223<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 223-224
223
224<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
224GTM-PKRS9SL
vendor: 85 bytes, lines 224-225
224"
225height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
226<!-- End Google Tag Manager (noscript) --><!--
227IMPORTANT: 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.
228
229INSTEAD: If custom CSS rules are needed, add them directly into the DESIGN SETTINGS > CUSTOM CSS section.
230-->
231<style>
232    .upload-form-field::before {
233        content: "choose files";
234        display: inline-block;
235        border: 1px solid #999;
236        border-radius: 3px;
237        padding: 5px 8px;
238    }
239    #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 {
240        white-space: nowrap !important;
241    }
242    /* Main Website Design */
243    body,.modal-header,.modal-content,.modal-body,.modal-footer {
244        background: rgb(255, 255, 255);
245        color: rgb(41, 41, 41);
246        font-family: 'Inter';
247        font-size: 16px;
248    }
249    .select2-container .select2-choice {
250        font-family: 'Inter'!important;
251    }
252        html{
253        background: rgb(227, 227, 227)    }
254        .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) a, .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) td,.datepicker th.picker-switch,.datepicker .dow {
255        color: #000 !important;
256    }    
257    a,a.h1,a.h2,a.h3,a.h4,a.h5,a.h6,.pricing_menu li ul li a:not(.btn) {
258        color: rgb(51, 122, 183);
259    }
260    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 {
261        color: rgb(35, 82, 124);
262    }
263    .breadcrumb a{
264            color: rgba(119, 119, 119,0.9);
265    }
266    .breadcrumb a:hover, .breadcrumb a:focus,.breadcrumb > .active {
267        color: rgb(119, 119, 119);
268    }
269    .help-inline, .help-block {
270            color: rgba(41, 41, 41,0.5);
271    }
272    .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
273        font-family: 'Roboto';
274    }
275        @media (min-width:1200px) {
276        .container {
277            width:1420px;
278			max-width: 95vw;
279        }
280		.fr-view .froala-table td .froala-table {   
281			max-width: 1420px;
282			max-width: min(95vw, 1420px);
283		}
284	}
285        /* Header Design */
286    .header, .mobile_website_logo img {
287        background: rgb(255, 255, 255);
288    }
289    .header .mini-nav li a:not(.btn):not(.network-icon), .header .mini-nav span {
290        color: rgb(41, 41, 41);
291            font-size: 14px;
292        }
293    .header .mini-nav li a:not(.btn):hover {
294            color: rgba(41, 41, 41,0.95);
295    }
296    .header .btn_get_listed {
297		background-color: rgb(42, 178, 123);
298        border: 1px solid rgb(42, 178, 123);
299        color: rgb(255, 255, 255)!important;
300    }
301    .header .btn_get_listed:hover, .header .btn_get_listed:focus {
302		        background-color: rgba(42, 178, 123,0.97);        
303    }
304    .header .btn_search {
305            background-color: rgba(42, 178, 123,0.97);
306        border: 1px solid rgb(42, 178, 123);
307        color: rgb(255, 255, 255);
308    }
309    .header .btn_search:hover, .header .btn_search:focus {
310        background-color: rgb(42, 178, 123);
311        color: rgb(255, 255, 255);
312    }
313
314    /* Logo Design */
315    .logo,.logo:hover,.logo:focus {
316        color: rgb(41, 41, 41);
317        font-family: 'Roboto';
318    }
319    .logo .slogan {
320        color: rgb(102, 102, 102);
321    }
322    .logo .fa {
323        color: rgb(42, 178, 123);
324        }
325
326    /* Main Menu Design */
327    .member-profile-tabs > ul, .member-profile-tabs .tabs-container {
328        background: rgb(238, 238, 238);
329        position: sticky;
330        z-index: 1;
331            top: 0px;
332        }
333	/* Google Translate When Main Menu Sticky Top */
334	    @media only screen and (max-width: 1100px) {
335        .member-profile-tabs > ul, .member-profile-tabs .tabs-container {
336                    top: 50px;
337                }
338    }
339    .header ul.nav.navbar-nav li ul {
340        background-color: rgb(238, 238, 238);
341    }
342    .header ul.nav.navbar-nav li ul li a, .header ul.nav.navbar-nav li ul li span {
343        color: rgb(102, 102, 102);
344                font-weight: 400;
345            }
346    .header .navbar-default, .pagination > .active > a {
347        background-color: rgb(238, 238, 238);
348    }
349    .header ul.nav.navbar-nav li ul li a:hover, .header ul.nav.navbar-nav li ul li a:focus{
350        border-left-color: rgb(102, 102, 102);
351        background: rgb(102, 102, 102);
352        color: rgb(238, 238, 238);
353    }
354    .navbar-default .navbar-toggle .icon-bar {
355        background-color: rgb(102, 102, 102);
356    }
357	.user_sidebar, .main_menu, .compact-mobile-search {
358        color: rgb(102, 102, 102);
359    }
360    .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span  {
361        color: rgb(102, 102, 102);
362                font-weight: 400;
363            }
364    .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 {
365        color: rgb(41, 41, 41);
366    }
367    .navbar-default .navbar-nav > li {
368        font-family: 'Inter';
369    }
370    
371    
372
373    /* Footer Design */
374    .footer {
375        background-color: rgb(227, 227, 227);
376        display: block;
377    }
378    .footer, .footer_menu a,.footer_terms a,.footer_menu .content {
379        color: rgb(41, 41, 41);
380    }
381    .footer_menu a:hover, .footer_terms a:hover, .footer_menu a:focus, .footer_terms a:focus {
382        color: rgb(42, 178, 123);
383    }
384    .footer_menu .head {
385        color: rgb(41, 41, 41);
386    }
387    .btn_footer_get_listed {
388		background-color: rgb(217, 83, 79);
389        border: 1px solid rgb(217, 83, 79);
390        color: rgb(255, 255, 255)!important;
391    }
392    .btn_footer_get_listed:hover, .btn_footer_get_listed:focus{
393				background-color: rgba(217, 83, 79,0.95);        
394    }
395    
396    /* Homepage Design */
397        .homepage_settings h1, .homepage_settings h2, .homepage_map h1, .homepage_map h2 {
398        font-family: 'Roboto';
399    }
400    .homepage_settings h1, .homepage_map h1 {
401        color: rgb(0, 0, 0);
402            font-weight: 800;
403            text-align: left;
404    }
405    .homepage_settings h2, .homepage_map h2 {
406        color: rgb(0, 0, 0);
407            font-weight: 600;
408            text-align: left;
409
410    }
411    .homepage_settings .search_box label {
412        color: rgb(255, 255, 255);
413    }
414    .btn_home_search, .search_box input[type=submit] {
415		background-color: rgb(42, 178, 123);
416        border: 1px solid rgb(42, 178, 123);
417        color: rgb(255, 255, 255);
418    }
419    .btn_home_search:hover, .btn_home_search:focus, .search_box input[type=submit]:hover, .search_box input[type=submit]:focus {
420		        background-color: rgba(42, 178, 123,0.97);        
421        color: rgb(255, 255, 255);
422    }
423	.homepage_settings .search_box {
424				padding: 15px;
425		
426				background-color: rgba( 255, 255, 255, 0.1);
427	}
428
429    /* Homepage Steps Module */
430    .homepage_steps {
431            background: none;
432        box-shadow: none;
433        padding: 0;
434                color: rgb(102, 102, 102);
435            }
436    .homepage_steps a.homepage_step_link,.homepage_steps a.homepage_step_link:hover,.homepage_steps a.homepage_step_link:active{
437        color: rgb(102, 102, 102)!important;
438    }
439    .homepage_steps .fa {
440        color: rgb(42, 178, 123);
441            background-color: rgba(42, 178, 123,0.075);
442    }
443	.homepage_steps h2 + p {
444        opacity: .6;
445	}
446
447    /* Blog Posts Slider Settings */
448    #myCarousel h2 a, .carousel-caption p,#myCarousel .list-group-item h2, #myCarousel li.list-group-item h4 {
449            color: rgb(255, 255, 255);
450        }
451    #myCarousel .list-group-item {
452            background-color: rgba(52, 73, 94,0.9);
453        border-color: rgba(52, 73, 94,0.80);
454    }
455    #myCarousel .carousel-caption {
456            background-color: rgba(52, 73, 94,0.8);
457    }
458    #myCarousel .list-group, #myCarousel .carousel-inner {
459            background-color: rgb(52, 73, 94)        }
460    #myCarousel .list-group .active, #myCarousel .list-group-item:hover {
461            background-color: rgb(52, 73, 94)        }
462    #myCarousel .list-group .active h2, #myCarousel .list-group-item:hover h2{
463            color: rgb(250, 250, 250);
464        }
465
466    /* Additional Settings */
467    .well blockquote {
468        background: rgb(255, 255, 255) none repeat scroll 0 0;
469        border-color: rgb(238, 238, 238);
470        color: rgb(41, 41, 41);
471        padding: 10px 20px;
472    }
473    .account-form-box form table tr td table {
474        background-color: transparent!important;
475        border: none!important;
476    }
477
478    .account-form-box form table tr td table td {
479        background-color: transparent!important;
480        color: rgb(41, 41, 41)!important;
481        border: none!important;
482    }
483    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{
484        color: rgb(41, 41, 41)!important;
485    }
486	.table.dataTable > thead > tr > th, .table > thead > tr > th, .fr-view table th, .fr-view table tfoot td {
487				border-color: rgba(85, 85, 85,0.1);
488		background-color: rgb(238, 238, 238);
489		color: rgb(85, 85, 85);
490		font-weight:600;
491		border-left: none;
492		border-bottom-width: 1px;
493	}
494	.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, table.dataTable.no-footer {
495				border-color: rgba(85, 85, 85,0.1);
496	}
497	.table > tfoot > tr > td:not(:last-child) {
498		border-right: 1px solid rgba(85, 85, 85,0.1);
499	}
500	table.dataTable.no-footer, table.dataTable {
501		border: 1px solid rgb(238, 238, 238)!important;
502	}
503	.table-view li:not(.table-display-about_me li, .froala-data li), .table-view .table-view-group > div {
504		border-top:1px solid rgb(238, 238, 238);
505	}
506	.table-view .table-view-group:last-child {
507		border-bottom:1px solid rgb(238, 238, 238);
508	}
509	table.dataTable tbody tr, .table-striped.dataTable, .table-striped, .fr-view .table-striped {
510		background-color: rgb(250, 250, 250)!important;
511	}
512	.table-striped.dataTable, .table-striped, .fr-view .table-striped {
513				border: 1px solid rgba(85, 85, 85,0.15);
514		border-collapse: separate;
515		overflow: hidden;
516	}
517	table#feature-body-datatable:has(.dropdown.open),table#digital-products-transactions:has(.dropdown.open), table#example:has(.dropdown.open) { 
518    	overflow: visible;
519	}
520	.table-striped.dataTable tbody > tr:nth-of-type(2n+1),.table-striped > tbody > tr:nth-of-type(2n+1) {
521				background-color: rgba(255, 255, 255,0.5)!important;
522	}
523	.nav-tabs, hr, .account-menu-title, .modal-header {
524		border-color: rgb(238, 238, 238);
525	}
526    .sidemenu_panel .list-group-item{
527        background-color: transparent!important;
528        color: rgb(41, 41, 41)!important;
529    }
530    .img-thumbnail {
531        background-color: rgb(250, 250, 250)!important;
532        border: 1px solid rgb(238, 238, 238);
533    }
534    .member_admin_sidemenu p, .member_admin_sidemenu h3 {
535        color: rgb(41, 41, 41)!important;
536    }
537    .close {
538        color: rgb(41, 41, 41);
539        opacity: 1;
540    }
541    .member_results_header h1, .content_w_sidebar.feature-search h1, .feature_results_header h1 {
542        font-size:36px;
543        display: block;
544    }
545    .member_results_header h2, .feature_results_header h2 {
546        font-size:30px;
547        display: block;
548    }
549    .homepage_settings {
550        padding-top: 180px;
551        padding-bottom: 180px;
552    }
553    @media (max-width: 768px) { .mobile_website_logo .visible-xs {display: block !important;}} 
554    @media only screen and (max-width: 768px) {
555                        .header-right-container .website-search, .header-right-container .list-social-links {display: none;}
556            .member-profile-header .favorite {float:none}
557    }
558    
559
560    @media only screen and (max-width: 1100px) {
561        }
562    .views > i.fa.activeView, .views > i.fa:hover {
563        background-color: rgb(41, 41, 41);
564        color: rgb(255, 255, 255);
565    }
566	.views > i.fa {
567		        background-color: rgba(41, 41, 41,0.1);
568		color: rgb(41, 41, 41);
569	}
570    .ui-rangeSlider-label {
571        background-color: rgb(238, 238, 238)!important;
572        color: rgb(102, 102, 102)!important;
573    }
574    .pricing_menu li .title {
575        background: rgb(42, 178, 123);
576        color: rgb(255, 255, 255);
577    }
578    p.account-tip{
579        color: rgb(41, 41, 41);
580    }
581    .circled_number {
582        background: rgb(13, 69, 108);
583        color: rgb(255, 255, 255);
584    }
585    .pic {
586            background-color: rgba(42, 178, 123,0.8);
587        color: rgb(255, 255, 255);
588        background-repeat: no-repeat;
589        background-position: center;
590        }
591    .pic .pic-caption {
592            background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%,rgba(42, 178, 123,0.85) 50%);
593        color: rgb(255, 255, 255);
594    }
595    .slick-prev-fa i, .slick-next-fa i{
596        color: rgb(42, 178, 123);
597    }
598    .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 {
599        background-color: rgb(250, 250, 250);
600        border-color: rgb(238, 238, 238);
601        color: rgb(41, 41, 41);
602    }
603    .nav-pills > li.active a, .nav-pills > li > a:hover {
604        background-color: rgb(51, 122, 183)!important;
605        border-color: rgb(51, 122, 183)!important;
606        color: rgb(255, 255, 255)!important;
607    }
608    .sidemenu_panel .panel-heading {
609        color: rgb(41, 41, 41)!important;
610        background-color: rgb(250, 250, 250)!important;
611    }
612    .member-profile-tabs .nav-tabs > li:not(.active) > a, .login-register-tabs.nav-tabs > li:not(.active) > a, .nav-tabs > li:not(.active) > a {
613            background: rgba(250, 250, 250,0.5);
614        color:  #5f5f5f;
615    }
616    .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 {
617            background: rgba(250, 250, 250,1);
618        color:  rgb(41, 41, 41);
619    }
620    .author-snapshot .well:not(.well.bg-default) {
621        background-color: rgb(250, 250, 250)!important;
622        border-color: rgb(238, 238, 238)!important;
623        color: rgb(41, 41, 41)!important;
624    }
625    .nav-tabs>li>a, .nav-pills>li>a {
626        font-weight: 600;
627    }
628        .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{
629            color: rgba(41, 41, 41,0.5);
630    }
631    #service_areas_table td,#service_areas_table_wrapper label, #service_areas_table_info, #service_areas_table_paginate > a {
632        color: rgb(41, 41, 41) !important;
633    }
634    .popover {
635        background-color: rgb(250, 250, 250);
636        border-color: rgb(250, 250, 250);
637        padding:0;
638        text-align:left;
639    }
640    .popover-title, .popover-content {
641        background-color: rgb(250, 250, 250);
642        color: rgb(41, 41, 41);
643        border-color: rgb(250, 250, 250);
644        text-align:left;
645    }
646    .popover-content {
647    		background-color: rgba(41, 41, 41,.05);
648		border-radius: 4px;
649		transform: translate(-1px, -1px);
650		width: calc(100% + 2px);
651		margin-bottom: -2px;
652    }
653    .popover.left > .arrow::after {
654        border-left-color: rgb(250, 250, 250)!important;
655    }
656    .popover.right > .arrow::after {
657        border-right-color: rgb(250, 250, 250)!important;
658    }
659    .popover.bottom > .arrow::after {
660        border-bottom-color: rgb(250, 250, 250)!important;
661    }
662    .popover.top > .arrow::after {
663        border-top-color: rgb(250, 250, 250)!important;
664    }
665    .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{
666        background-color: rgb(255, 255, 255);
667        color: rgb(41, 41, 41);
668    }
669    .module h1, .module h2, .module h3, .module h4, .module h5 {
670        color: rgb(0, 0, 0);
671    }
672    .module p:not(.fr-box.fr-basic .fr-element p) {
673        color: rgb(41, 41, 41);
674    }
675    .pagination>.active>a {
676            border-color: rgba(102, 102, 102,0.2);
677    }
678    .pagination>.active>a {
679        color: rgb(102, 102, 102);
680    }
681    .pagination > .active > a:hover, .pagination > .active > a:focus {
682            border-color: rgba(102, 102, 102,0.2);
683        background-color: rgb(238, 238, 238);
684        color: rgb(102, 102, 102);
685    }
686    .pagination > li > a {
687        color: rgb(238, 238, 238);
688            border-color: rgba(238, 238, 238,0.2);
689        background-color: rgb(102, 102, 102);
690    }
691    .pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover {
692        background-color: rgb(238, 238, 238);
693        border-color: rgb(238, 238, 238);
694        color: rgb(102, 102, 102);
695    }
696
697    .nav-pills.nav-wizard > li a, .nav-pills.nav-wizard > li a:hover{
698        background-color: rgb(250, 250, 250)!important;
699        color: rgb(41, 41, 41)!important;
700    }
701    .member_wizard2 li.incomplete a, .member_wizard2 li.incomplete a:hover {
702        background-color: rgb(240, 173, 78)!important;
703        border-color: rgb(240, 173, 78);
704        color: rgb(255, 255, 255);
705    }
706    .nav-pills.nav-wizard > li.active a, .nav-pills.member_wizard > li.active:hover a {
707        background-color: rgb(51, 122, 183)!important;
708        color: rgb(255, 255, 255)!important;
709    }
710    .member_wizard2 li.completed a, .member_wizard2 li.completed a:hover {
711        background-color: rgb(92, 184, 92)!important;
712        border-color: rgb(92, 184, 92);
713        color: rgb(255, 255, 255);
714    }
715
716        .nav-pills.nav-wizard > li.active .nav-arrow, .nav-pills.nav-wizard > li.active:hover .nav-arrow {
717        border-color: transparent transparent transparent rgb(51, 122, 183)!important;
718    }
719    .nav-pills.nav-wizard > li.active .nav-wedge, .nav-pills.nav-wizard > li.active:hover .nav-wedge{
720        border-color: rgb(51, 122, 183) rgb(51, 122, 183) rgb(51, 122, 183) transparent!important;
721    }
722    
723        li.completed .nav-wedge, .nav-pills.nav-wizard > li.completed:hover .nav-wedge {
724        border-color: rgb(92, 184, 92) rgb(92, 184, 92) rgb(92, 184, 92) transparent!important;
725    }
726    
727        li.incomplete .nav-wedge, .nav-pills.nav-wizard > li.incomplete:hover .nav-wedge {
728        border-color: rgb(250, 250, 250) rgb(250, 250, 250) rgb(250, 250, 250) transparent!important;
729    }
730    
731    .nav-pills.member_wizard > li.completed a, .nav-pills.member_wizard > li.completed a:hover {
732        background-color: rgb(92, 184, 92)!important;
733        color: rgb(255, 255, 255)!important;
734    }
735
736    .member_wizard2 li {
737        color: rgb(255, 255, 255);
738        border-right: 10px solid rgb(255, 255, 255);
739    }
740
741        li.completed .nav-arrow, .nav-pills.nav-wizard > li.completed:hover .nav-arrow {
742        border-color: transparent transparent transparent rgb(92, 184, 92)!important;
743    }
744    
745        li.incomplete .nav-arrow, .nav-pills.nav-wizard > li.incomplete:hover .nav-arrow{
746        border-color: transparent transparent transparent rgb(250, 250, 250)!important;
747    }
748    
749    /* Default Colors */
750    .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 {
751    	background-color: rgb(51, 122, 183);
752        border-color: rgb(51, 122, 183);
753        color: rgb(255, 255, 255);
754    }
755    .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 {        
756		        background-color: rgba(51, 122, 183,0.95);
757        border-color: rgb(51, 122, 183);
758        color: rgb(255, 255, 255);
759    }
760	.panel-primary {
761        background-color: #e0ebf4;
762		border-color: rgb(51, 122, 183);
763	}
764    .bg-primary,.progress-bar-primary,.module p.bg-primary,.label-primary,.badge-primary,.pricing_menu .title.bg-primary, .well .well.bg-primary, .module .well.bg-primary, .well .module.bg-primary,.tab-content .module.bg-primary,.tab-content .well.bg-primary {
765        background-color: rgb(51, 122, 183);
766        color: rgb(255, 255, 255);
767    }
768    .bg-primary .badge {
769        background-color:rgb(255, 255, 255);
770        color: rgb(51, 122, 183);
771    }
772    .btn-primary.btn-outline {
773        background: transparent;
774        color: rgb(51, 122, 183);
775        transition: all 250ms ease-in-out 0ms;
776    }
777    .btn-primary.btn-outline:hover {
778            background: rgba(51, 122, 183,0.1);
779		color: rgb(51, 122, 183);
780    }
781    .alert-primary {
782            background-color:rgba(51, 122, 183,0.7);
783        border-color:rgba(51, 122, 183,0.2);
784            color: rgba(255, 255, 255,0.9);
785    }
786	.alert-primary-subtle, .label-primary-subtle, .badge-primary-subtle {
787		background-color: #d6e4f1;
788		border-color: #d6e4f1;
789		color: rgb(51, 122, 183);
790		color: color-mix(in srgb, rgb(51, 122, 183) 50%, rgb(41, 41, 41) 50%);
791	}
792    .btn.dropdown-toggle.btn-primary *, .btn-primary a {
793        color: rgb(255, 255, 255);
794    }
795    .text-primary{
796        color: rgb(51, 122, 183);
797    }
798    .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 {
799		background-color: rgb(91, 192, 222);
800        border-color: rgb(91, 192, 222);
801        color: rgb(255, 255, 255);
802    }
803    .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 {
804		        background-color: rgba(91, 192, 222,0.95);
805        border-color: rgb(91, 192, 222);
806        color: rgb(255, 255, 255);
807    }
808	.panel-info {
809        background-color: #e6f6fa;
810		border-color: rgb(91, 192, 222);
811	}
812    .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 {
813        background-color: rgb(91, 192, 222);
814        color: rgb(255, 255, 255);
815    }
816    .bg-info .badge {
817        background-color:rgb(255, 255, 255);
818        color: rgb(91, 192, 222);
819    }
820    .btn-info.btn-outline {
821        background: transparent;
822        color: rgb(91, 192, 222);
823        transition: all 250ms ease-in-out 0ms;
824    }
825    .btn-info.btn-outline:hover {
826            background: rgba(91, 192, 222,0.1);
827		color: rgb(91, 192, 222);
828    }
829    .alert-info {
830            background-color:rgba(91, 192, 222,0.7);
831        border-color:rgba(91, 192, 222,0.2);
832            color: rgba(255, 255, 255,0.9);
833    }
834	.alert-info-subtle, .label-info-subtle, .badge-info-subtle {
835		background-color: #def2f8;
836		border-color: #def2f8;
837		color: rgb(91, 192, 222);
838		color: color-mix(in srgb, rgb(91, 192, 222) 50%, rgb(41, 41, 41) 50%);
839	}
840    .btn.dropdown-toggle.btn-info *, .btn-info a {
841        color: rgb(255, 255, 255);
842    }
843    .text-info{
844        color: rgb(91, 192, 222);
845    }
846    .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 {
847		background-color: rgb(92, 184, 92);
848        border-color: rgb(92, 184, 92);
849        color: rgb(255, 255, 255);
850    }
851    .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 {        
852		        background-color: rgba(92, 184, 92,0.95);
853        border-color: rgb(92, 184, 92);
854        color: rgb(255, 255, 255);
855    }
856    .panel-success {
857        background-color: #e7f4e7;
858        border-color: rgb(92, 184, 92);
859    }
860    .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 {
861        background-color: rgb(92, 184, 92);
862        color: rgb(255, 255, 255);
863    }
864    .bg-success .badge {
865        background-color: rgb(255, 255, 255);
866        color: rgb(92, 184, 92);
867    }
868    .btn-success.btn-outline {
869        background: transparent;
870        color: rgb(92, 184, 92);
871        transition: all 250ms ease-in-out 0ms;
872    }
873    .btn-success.btn-outline:hover {
874            background: rgba(92, 184, 92,0.1);
875		color: rgb(92, 184, 92);
876    }
877    .alert-success {
878            background-color:rgba(92, 184, 92,0.7);
879        border-color:rgba(92, 184, 92,0.2);
880            color: rgba(255, 255, 255,0.9);
881    }
882	.alert-success-subtle, .label-success-subtle, .badge-success-subtle {
883		background-color: #def1de;
884		border-color: #def1de;
885		color: rgb(92, 184, 92);
886		color: color-mix(in srgb, rgb(92, 184, 92) 50%, rgb(41, 41, 41) 50%);
887	}
888    .btn.dropdown-toggle.btn-success *, .btn-success a {
889        color: rgb(255, 255, 255);
890    }
891    .text-success{
892        color: rgb(92, 184, 92);
893    }
894    .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 {
895		background-color: rgb(240, 173, 78);
896        border-color: rgb(240, 173, 78);
897        color: rgb(255, 255, 255);
898    }
899    .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 {        
900		        background-color: rgba(240, 173, 78,0.95);
901        border-color: rgb(240, 173, 78);
902        color: rgb(255, 255, 255);
903    }
904	.panel-warning {
905        background-color: #fdf3e4;
906		border-color: rgb(240, 173, 78);
907	}
908    .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 {
909        background-color: rgb(240, 173, 78);
910        color: rgb(255, 255, 255);
911    }
912    .bg-warning .badge {
913        background-color: rgb(255, 255, 255);
914        color: rgb(240, 173, 78);
915    }
916    .btn-warning.btn-outline {
917        background: transparent;
918        color: rgb(240, 173, 78);
919        transition: all 250ms ease-in-out 0ms;
920    }
921    .btn-warning.btn-outline:hover {
922            background: rgba(240, 173, 78,0.1);
923		color: rgb(240, 173, 78);
924    }
925    .alert-warning {
926            background-color:rgba(240, 173, 78,0.7);
927        border-color:rgba(240, 173, 78,0.2);
928            color: rgba(255, 255, 255,0.9);
929    }
930	.alert-warning-subtle, .label-warning-subtle, .badge-warning-subtle {
931		background-color: #fcefdc;
932		border-color: #fcefdc;
933		color: rgb(240, 173, 78);
934		color: color-mix(in srgb, rgb(240, 173, 78) 50%, rgb(41, 41, 41) 50%);
935	}
936    .btn.dropdown-toggle.btn-warning *, .btn-warning a {
937        color: rgb(255, 255, 255);
938    }
939    .text-warning {
940        color: rgb(240, 173, 78);
941    }
942    .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 {
943		background-color: rgb(217, 83, 79);
944        border-color: rgb(217, 83, 79);
945        color: rgb(255, 255, 255);
946    }
947    .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 {        
948		        background-color: rgba(217, 83, 79,0.95);
949        border-color: rgb(217, 83, 79);
950        color: rgb(255, 255, 255);
951    }
952    .has-error .form-control {
953        border-color: rgb(217, 83, 79);
954    }
955    .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 {
956        background: rgb(217, 83, 79);
957        color: rgb(255, 255, 255) !important;
958    }
959    .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 {
960        color: rgb(217, 83, 79);
961    }
962	.panel-danger {
963        background-color: #f9e5e5;
964		border-color: rgb(217, 83, 79);
965	}
966    .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 {
967        background-color: rgb(217, 83, 79);
968        color: rgb(255, 255, 255);
969    }
970    .bg-danger .badge {
971        background-color: rgb(255, 255, 255);
972        color: rgb(217, 83, 79);
973    }
974    .btn-danger.btn-outline {
975        background: transparent;
976        color: rgb(217, 83, 79);
977        transition: all 250ms ease-in-out 0ms;
978    }
979    .btn-danger.btn-outline:hover {
980            background: rgba(217, 83, 79,0.1);
981		color: rgb(217, 83, 79);
982    }
983    .alert-danger {
984            background-color:rgba(217, 83, 79,0.7);
985        border-color:rgba(217, 83, 79,0.2);
986            color: rgba(255, 255, 255,0.9);
987    }
988	.alert-danger-subtle, .label-danger-subtle, .badge-danger-subtle {
989		background-color: #f7dddc;
990		border-color: #f7dddc;
991		color: rgb(217, 83, 79);
992		color: color-mix(in srgb, rgb(217, 83, 79) 50%, rgb(41, 41, 41) 50%);
993	}	
994    .btn.dropdown-toggle.btn-danger *, .btn-danger a {
995        color: rgb(255, 255, 255);
996    }
997    .text-danger{
998        color: rgb(217, 83, 79);
999    }
1000    .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
1000s, 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 {
1001		background-color: rgb(238, 238, 238);
1002        border-color: rgb(238, 238, 238);
1003        color: rgb(85, 85, 85);
1004    }
1005    .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 {        
1006		        background-color: rgba(238, 238, 238,0.95);
1007        border-color: rgb(238, 238, 238);
1008        color: rgb(85, 85, 85);
1009    }
1010    .sidemenu_panel .panel-default .panel_heading {
1011        background-color: rgb(238, 238, 238)!important;
1012        border-color: rgb(238, 238, 238)!important;
1013        color: rgb(85, 85, 85)!important;
1014    }
1015	.panel-default .panel-heading, .member_accounts .panel-default > .panel-heading, .panel-default.categories-panel .panel-heading {
1016				
1017		box-shadow: 0 0 1000px 0 rgba(85, 85, 85,0.02) inset;
1018		background-color: rgb(238, 238, 238);
1019	}
1020    .panel-default, .member_accounts .panel-default {
1021			
1022        background-color: rgba(238, 238, 238,0.15);
1023		border-color: #fdfdfd;
1024		border-color: color-mix(in srgb,rgb(238, 238, 238) 100%,rgba(238, 238, 238) 10%);
1025	}
1026	.member_admin_sidemenu .panel-default {
1027		background-color: transparent;
1028	}
1029    .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 {
1030        background-color: rgb(238, 238, 238);
1031        color: rgb(85, 85, 85);
1032    }
1033    .bg-default .badge {
1034        background-color: rgb(85, 85, 85);
1035        color: rgb(238, 238, 238);
1036    }
1037    .btn-default.btn-outline {
1038        background: transparent;
1039        color: rgb(238, 238, 238);
1040        transition: all 250ms ease-in-out 0ms;
1041    }
1042    .btn-default.btn-outline:hover {
1043            background: rgba(238, 238, 238,0.1);
1044		color: rgb(238, 238, 238);
1045    }
1046	.alert-default {
1047		background-color:rgb(238, 238, 238);
1048		border-color:rgb(238, 238, 238);
1049		color: rgb(85, 85, 85);
1050	}
1051	.alert-default-subtle, .label-default-subtle, .badge-default-subtle {
1052				background-color:rgba(238, 238, 238,0.5);
1053		border-color: rgba(238, 238, 238,0.5);
1054		color: rgb(85, 85, 85);
1055		color: color-mix(in srgb, rgb(85, 85, 85) 50%, rgb(41, 41, 41) 50%);
1056	}	
1057    .btn.dropdown-toggle.btn-default *, .btn-default a {
1058        color: rgb(85, 85, 85);
1059    }
1060    .text-default{
1061        color: rgb(238, 238, 238);
1062    }
1063    .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 {
1064		background-color: rgb(41, 41, 41);
1065        border: 1px solid rgb(41, 41, 41);
1066        color: rgb(255, 255, 255);
1067    }
1068    .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 {        
1069		        background-color: rgba(41, 41, 41,0.95);
1070        border-color: rgb(41, 41, 41);
1071        color: rgb(255, 255, 255);
1072    }
1073    .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 {
1074        background-color: rgb(41, 41, 41);
1075        color: rgb(255, 255, 255);
1076    }
1077    .bg-secondary .badge {
1078        background-color:rgb(255, 255, 255);
1079        color: rgb(41, 41, 41);
1080    }
1081    .btn-secondary.btn-outline {
1082        background: transparent;
1083        color: rgb(41, 41, 41);
1084        transition: all 250ms ease-in-out 0ms;
1085    }
1086    .btn-secondary.btn-outline:hover {
1087            background: rgba(41, 41, 41,0.1);
1088		color: rgb(41, 41, 41);
1089    }
1090	.panel-secondary {
1091        background-color: #dfdfdf;
1092		border-color: rgb(41, 41, 41);
1093	}
1094	.alert-secondary {
1095		background-color:rgb(41, 41, 41);
1096		border-color:rgb(41, 41, 41);
1097		color: rgb(255, 255, 255);
1098	}
1099	.alert-secondary-subtle, .label-secondary-subtle, .badge-secondary-subtle {
1100				background-color:rgba(41, 41, 41,0.8);
1101		border-color: rgba(41, 41, 41,0.5);
1102		color: rgb(255, 255, 255);
1103	}
1104	.btn-outline {
1105		-webkit-backdrop-filter: blur(5px);
1106		backdrop-filter: blur(5px);
1107	}
1108	.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 {
1109		background-color: rgb(255, 255, 255);
1110		border: 1px solid rgb(255, 255, 255);
1111		color: rgb(41, 41, 41);
1112	}
1113	.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 {        
1114				background-color: rgba(255, 255, 255,0.95);
1115		border: 1px solid rgb(255, 255, 255);
1116		color: rgb(41, 41, 41);
1117	}	
1118	.btn.btn-body.dropdown-toggle * {
1119		color: rgb(41, 41, 41)	
1120	}
1121	.btn-body.dropdown-toggle + ul li, .daterangepicker .ranges {
1122		color: #333;
1123	}
1124    .bg-body {
1125        background: rgb(255, 255, 255);
1126        color: rgb(41, 41, 41);
1127    }
1128    .bg-content-box {
1129        background: rgb(250, 250, 250);
1130        color: rgb(41, 41, 41);
1131    }
1132    .bg-content-box-border {
1133        background: rgb(238, 238, 238);
1134    }
1135    .btn.dropdown-toggle.btn-secondary *, .btn-secondary a {
1136        color: rgb(255, 255, 255);
1137    }
1138    .text-secondary {
1139        color: rgb(41, 41, 41);
1140    }
1141	.text-body {
1142		color: rgb(255, 255, 255);
1143	}
1144    .feature-post #post-content .alert-secondary.btn-block, .feature-search .img_section .alert-secondary.btn-block, .search_result .img_section  .alert-secondary {
1145		border-radius: 10px;
1146        background-color: rgb(255, 255, 255);
1147    }
1148
1149    /* Footer Newsletter Row */
1150    .newsletter_row .alert {
1151        color: rgb(255, 255, 255);
1152    }
1153    .newsletter_row {
1154        background-color: rgb(42, 178, 123);
1155        color: rgb(255, 255, 255);
1156    }
1157    .newsletter_row input[type="submit"],.newsletter_footer_button {
1158            background-color: rgba(51, 122, 183,0.97);
1159        color: rgb(255, 255, 255);
1160        border-color: rgb(51, 122, 183);
1161    }
1162    .newsletter_row input[type="submit"]:hover,.newsletter_row input[type="submit"]:focus,.newsletter_footer_button:hover,.newsletter_footer_button:focus {
1163        background-color: rgb(51, 122, 183);
1164        color: rgb(255, 255, 255);
1165    }
1166    .newsletter_button_left {
1167            border-right: 1px solid rgba(255, 255, 255,0.2);
1168    }
1169    .newsletter_button_right {
1170        border-left: 1px solid rgba(255, 255, 255,0.2);
1171    }
1172    .newsletter_row small.help-block {
1173        background: rgb(255, 255, 255);
1174        margin-top: -5px;
1175        float: left;
1176        padding: 8px;
1177        border-radius: 1px;
1178        color: rgb(42, 178, 123);
1179        text-transform: capitalize;
1180    }
1181    .newsletter_row .has-success .checkbox,.newsletter_row .has-error .checkbox{
1182        color: rgb(255, 255, 255);
1183    }
1184    @media only screen and (max-width: 767px) {
1185        .newsletter_button_right,.newsletter_button_left{
1186            border: none;
1187            margin: 5px 0;
1188        }
1189    }
1190
1191    /* Font Sizes */
1192
1193    .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span {
1194        font-size: 15px;
1195    }
1196    .header .logo {
1197        font-size: 33px;
1198    }
1199    .homepage_title h1, .homepage_settings h1 {
1200		letter-spacing: -1px;
1201        font-size: 68px;
1202					margin-bottom: 20px;
1203				    }
1204    @media only screen and (max-width: 768px) {
1205        .homepage_title h1, .homepage_settings h1 {margin-bottom: 15px;}
1206    }	
1207    .homepage_settings h2 {
1208        font-size: 24px;
1209    }
1210
1211    .ui-rangeSlider-bar{
1212        background: rgb(42, 178, 123)!important;
1213    }
1214
1215    
1216    
1217    @media only screen and (max-width: 1024px){
1218        .modal {margin-top: 40px;}
1219    }
1220    @media only screen and (max-width: 768px){
1221        .modal {margin-top: 60px;}
1222    }
1223
1224    /* Calendar Styles */
1225
1226    #cal-slide-content {
1227        color: rgb(85, 85, 85)!important;
1228        background-color: rgb(238, 238, 238)!important;
1229        -webkit-box-shadow: none!important;
1230        box-shadow: none!important;
1231    }
1232    #cal-slide-content a.event-item {
1233        color: rgb(85, 85, 85)!important;
1234        font-weight:bold!important;
1235    }
1236    #cal-slide-content a.event-item small {
1237        display: inline-block;
1238    }
1239    .cal-month-box, .cal-year-box, .cal-week-box {
1240        border: 1px solid rgb(238, 238, 238)!important;
1241    }
1242    .cal-year-box .row-fluid, .cal-month-box .cal-row-fluid {
1243        border-bottom: 1px solid rgb(238, 238, 238)!important;
1244    }
1245    .cal-year-box [class*="span"], .cal-month-box [class*="cal-cell"] {
1246        border-right: 1px solid rgb(238, 238, 238)!important;
1247    }
1248    .cal-year-box .row-fluid, .cal-row-fluid, #cal-day-box .cal-day-hour:nth-child(odd) {
1249        background-color: rgb(255, 255, 255)!important;
1250    }
1251    .cal-month-day span:not(.pull-right):not(.events-count-label):not(.events-label) {
1252        color: rgb(85, 85, 85)!important;
1253    }
1254    .cal-day-today span[data-cal-date] {
1255        color: rgb(41, 41, 41)!important;
1256    }
1257    .cal-year-box .row-fluid [class*="span"]:last-child, .cal-month-box .cal-row-fluid [class*="cal-cell"]:last-child {
1258        border: 0!important;
1259    }
1260    .cal-row-head {
1261        background: rgb(250, 250, 250)!important;
1262    }
1263    .day-highlight:hover, .day-highlight {
1264        background-color: rgb(238, 238, 238)!important;
1265    }
1266    .cal-event-list .event.pull-left {
1267        background-color: rgb(41, 41, 41)!important;
1268        opacity: 0.4;
1269        margin-top: 7px!important;
1270    }
1271    .cal-day-today {
1272        background-color: rgb(238, 238, 238)!important;
1273    }
1274    #cal-day-tick {
1275        border: 1px solid rgb(238, 238, 238)!important;
1276        background-color: rgb(238, 238, 238)!important;
1277    }
1278    .cal-day-weekend span[data-cal-date]{
1279        color: rgb(41, 41, 41)!important;
1280    }
1281        .rsDefault, .rsDefault .rsOverflow, .rsDefault .rsSlide, .rsDefault .rsVideoFrameHolder, .rsDefault .rsThumbs {
1282		border-radius: 10px;
1283        background: rgb(255, 255, 255)!important;
1284    }
1285	.img_section .no-radius-bottom + .alert-secondary .rsDefault .rsSlide, .img_section .no-radius-bottom + .alert-secondary  .rsDefault .rsOverflow {
1286		border-radius:0;
1287	}
1288    
1289    #first_container .favorite, #first_container .fa.favorite {
1290        color: rgb(85, 85, 85);
1291        background: rgb(238, 238, 238);
1292        border: 1px solid rgb(238, 238, 238);
1293        white-space:nowrap!important;
1294		height:24px;
1295		padding:0 6px;
1296		border-radius:8px;
1297    }
1298    #first_container .favorite span, #first_container .fa.favorite span {
1299        font-family: 'Inter';
1300        white-space:nowrap!important;
1301    }
1302    #first_container .favoriteActive:not(.favorite.comments-count-badge), #first_container .fa.favoriteActive:not(.favorite.comments-count-badge .fa) {
1303        color: rgb(217, 83, 79);
1304    }
1305        #first_container .favorite::after, #first_container .fa.favorite::after {
1306        font-family: 'Inter';
1307        margin-left: 3px;
1308    }
1309    #first_container .favorite span, #first_container .fa.favorite span{
1310        padding-left: 4px;
1311        font-family: 'Inter';
1312        font-size: 11px;
1313		letter-spacing:.5px;
1314		top:-1px;
1315		position:relative;
1316		font-weight:700;		
1317    }
1318	#first_container .favorite span:empty, #first_container .fa.favorite span:empty {
1319		padding: 0;
1320	}
1321	#first_container .favorite .bookmark-number, #first_container .fa.favorite .bookmark-number {
1322		padding: 1px 0;
1323		border-radius: 100px;
1324		display: inline-block;
1325		font-weight: bold;
1326		min-width: 15px;
1327		font-size: .8em;
1328		vertical-align: bottom;
1329		height: 15px;
1330		line-height: 13px;
1331		margin-left: 3px;
1332		text-align: center;
1333	}
1334    #first_container .favorite.favoriteActive .bookmark-number:not(.comments-count-badge .bookmark-number), #first_container .fa.favorite.favoriteActive .bookmark-number {
1335        background: rgb(217, 83, 79);
1336		color: #fff;
1337    }
1338    
1339    span.checkbox_value::after {
1340        content: ', ';
1341    }
1342
1343    span.checkbox_value:last-child::after {
1344        content: '';
1345    }
1346        #first_container .member-profile-tabs .profile-tabs-nav {
1347        overflow-x: auto;
1348        overflow-y: hidden;
1349        display: flex;
1350        flex-direction: row
1351    }
1352
1353    #first_container .member-profile-tabs .profile-tabs-nav > li * {
1354        white-space: nowrap !important
1355    }
1356
1357    .member-profile-tabs .profile-tabs-nav::-webkit-scrollbar {
1358        display: none
1359    }
1360
1361    .member-profile-tabs .profile-tabs-nav {
1362        scrollbar-width: none
1363    }
1364
1365    .member-profile-tabs .tabs-container {
1366        display: flex;
1367        align-items: center;
1368        border-radius:8px 8px 0 0;
1369    }
1370    .member-profile-tabs .tabs-container > ul {
1371        border: none;
1372    }
1373    .member-profile-tabs .scroll-arrow {
1374        display: none;
1375        cursor: pointer;
1376        z-index: 2;
1377        padding: 0 15px;
1378        background-color: rgb(238, 238, 238);
1379        color: rgb(85, 85, 85);
1380        height: 41px;
1381        line-height: 42px;
1382        margin-top: 2px;
1383        margin-left: 5px;
1384        border-radius:4px;
1385    }
1386
1387    .member-profile-tabs .scroll-arrow.left-arrow {
1388        margin-right: -6px;
1389    }
1390
1391    .member-profile-tabs .scroll-arrow.right-arrow {
1392        margin-left: -10px;
1393        margin-right: 5px;
1394    }
1395    
1396    .member_results .grid_element{
1397	position:relative;
1398	overflow:hidden;
1399	display: inline-block;
1400	width:100%;
1401}
1402.member_results .grid_element::before {
1403	position: absolute;
1404	top: 24px;
1405	text-align: center;
1406	width: 200px;
1407	left: -62px;
1408	transform: rotate(-45deg);
1409	-webkit-transform: rotate(-45deg);
1410	z-index: 1;
1411	line-height: 1.2em;
1412	padding: 6px 0;
1413	font-weight: bold;
1414	letter-spacing: 1px;
1415}
1416@media only screen and (max-width: 767px) {
1417	.member_results .grid-container > hr {
1418		border-color: transparent;
1419	}
1420	.member_results .grid_element{
1421		overflow:visible;
1422	}
1423	.member_results .grid_element::before {
1424		top: -19px!important;
1425		transform: rotate(0deg);
1426		-webkit-transform: rotate(0deg);
1427		font-size: 10px !important;
1428		letter-spacing: 0;
1429		width: auto;
1430		padding: 3px 6px;
1431	}
1432}
1433
1434
1435
1436                    .member_results .grid-container {
1437                        margin-top: 30px;
1438                    }
1439                    .member_results .grid-container > hr {
1440                        border-color: transparent;
1441						background: transparent;
1442                    }
1443                    .member_results.level_2 .grid_element{
1444                        overflow:visible;
1445                    }
1446                    .member_results.level_2 .grid_element::before {
1447                        top: calc(-10px - 12px);
1448                        transform: rotate(0deg);
1449                        -webkit-transform: rotate(0deg);
1450                        letter-spacing: 0;
1451                        width: auto;
1452                        padding: 3px 8px;
1453                        left: calc(-2px + 0.5px);
1454                    }
1455                
1456                .member_results.level_11 .grid_element {
1457                    border-style: solid;
1458                    border-radius:4px;border-width:7px;
1458border-color:rgb(8, 0, 1); }			
1459                .member_results.level_11 .grid_element::before {
1460					border-bottom-left-radius:0!important;
1461                    border-radius:4px;color:rgb(229, 238, 74);background-color:rgb(8, 0, 1);font-size:13px;content:'Most Trusted';					
1462                }
1463				.member_results.level_11 .grid_element {
1464					padding:10px;
1465				}				
1466                @media only screen and (max-width: 767px) {
1467                    .member_results.level_11 .grid_element::before {
1468                    left:-7px;}}
1469                .member_results.level_15 .grid_element {
1470                    border-style: solid;
1471                    border-radius:3px;border-width:10px;border-color:rgb(197, 239, 206); }			
1472                .member_results.level_15 .grid_element::before {
1473					border-bottom-left-radius:0!important;
1474                    border-radius:3px;color:rgb(3, 0, 0);background-color:rgb(197, 239, 206);font-size:13px;content:'Most Trusted';					
1475                }
1476				.member_results.level_15 .grid_element {
1477					padding:10px;
1478				}				
1479                @media only screen and (max-width: 767px) {
1480                    .member_results.level_15 .grid_element::before {
1481                    left:-10px;}}
1482                    .member_results .grid-container {
1483                        margin-top: 30px;
1484                    }
1485                    .member_results .grid-container > hr {
1486                        border-color: transparent;
1487						background: transparent;
1488                    }
1489                    .member_results.level_15 .grid_element{
1490                        overflow:visible;
1491                    }
1492                    .member_results.level_15 .grid_element::before {
1493                        top: calc(-10px - 13px);
1494                        transform: rotate(0deg);
1495                        -webkit-transform: rotate(0deg);
1496                        letter-spacing: 0;
1497                        width: auto;
1498                        padding: 3px 8px;
1499                        left: calc(-10px + 0.5px);
1500                    }
1501                
1502                .member_results.level_17 .grid_element {
1503                    border-style: solid;
1504                    border-radius:0px;border-width:3px;border-color:rgb(195, 182, 177); }			
1505                .member_results.level_17 .grid_element::before {
1506					border-bottom-left-radius:0!important;
1507                    border-radius:0px;color:rgb(0, 0, 0);background-color:rgb(195, 182, 177);font-size:14px;content:'Trusted';					
1508                }
1509				.member_results.level_17 .grid_element {
1510					padding:10px;
1511				}				
1512                @media only screen and (max-width: 767px) {
1513                    .member_results.level_17 .grid_element::before {
1514                    left:-3px;}}
1515                    .member_results .grid-container {
1516                        margin-top: 30px;
1517                    }
1518                    .member_results .grid-container > hr {
1519                        border-color: transparent;
1520						background: transparent;
1521                    }
1522                    .member_results.level_17 .grid_element{
1523                        overflow:visible;
1524                    }
1525                    .member_results.level_17 .grid_element::before {
1526                        top: calc(-10px - 14px);
1527                        transform: rotate(0deg);
1528                        -webkit-transform: rotate(0deg);
1529                        letter-spacing: 0;
1530                        width: auto;
1531                        padding: 3px 8px;
1532                        left: calc(-3px + 0.5px);
1533                    }
1534                
1535                .member_results.level_21 .grid_element {
1536                    border-style: solid;
1537                    border-radius:3px;border-width:10px;border-color:rgb(197, 239, 206); }			
1538                .member_results.level_21 .grid_element::before {
1539					border-bottom-left-radius:0!important;
1540                    border-radius:3px;color:rgb(3, 0, 0);background-color:rgb(197, 239, 206);font-size:13px;content:'Most Trusted';					
1541                }
1542				.member_results.level_21 .grid_element {
1543					padding:10px;
1544				}				
1545                @media only screen and (max-width: 767px) {
1546                    .member_results.level_21 .grid_element::before {
1547                    left:-10px;}}
1548                    .member_results .grid-container {
1549                        margin-top: 30px;
1550                    }
1551                    .member_results .grid-container > hr {
1552                        border-color: transparent;
1553						background: transparent;
1554                    }
1555                    .member_results.level_21 .grid_element{
1556                        overflow:visible;
1557                    }
1558                    .member_results.level_21 .grid_element::before {
1559                        top: calc(-10px - 13px);
1560                        transform: rotate(0deg);
1561                        -webkit-transform: rotate(0deg);
1562                        letter-spacing: 0;
1563                        width: auto;
1564                        padding: 3px 8px;
1565                        left: calc(-10px + 0.5px);
1566                    }
1567                    .member-profile-tabs ul li a small {
1568        display: none;
1569    }
1570        .popover .popover-content img,.member_results .info_window img,.member_results .search_result_image, .featured-member-image img, .recent-member-image img, .member-review-image img, .member-profile-header > div:not(.member-badges) img, .review_photo, .contact-image, .member_result > div > div img, .member_sidebar .member_admin_sidemenu .img-thumbnail, .current-photo-container img, .current-logo-container img, .author-snapsh
1570ot .search_result_image, .saved-member {
1571        border-radius: 1000px!important;
1572    }
1573    
1574    
1575
1576    /*  Homepage Sections Background Color Logic */
1577
1578    
1579    .homepage-section-1 {
1580        padding: 30px 0 50px;
1581    }
1582
1583    
1584    .homepage-section-1 {
1585        background: rgb(238, 238, 238);
1586    }
1587
1588    
1589    .homepage-section-2 {
1590        padding: 50px 0 30px;
1591    }
1592
1593    
1594    .homepage-section-3 {
1595        padding: 30px 0 30px;
1596    }
1597
1598    
1599    .homepage-section-3 {
1600        background: rgb(241, 249, 255);
1601    }
1602
1603    
1604    .homepage-section-4 {
1605        padding: 40px 0 40px;
1606    }
1607
1608    
1609    .homepage-section-5 {
1610        padding: 40px 0 40px;
1611    }
1612
1613    
1614    .homepage-section-6 {
1615        padding: 40px 0 40px;
1616    }
1617
1618    
1619    .homepage-section-7 {
1620        padding: 40px 0 40px;
1621    }
1622
1623    
1624    .homepage-section-8 {
1625        padding: 40px 0 40px;
1626    }
1627
1628    
1629    .homepage-section-9 {
1630        padding: 40px 0 40px;
1631    }
1632
1633    
1634    .homepage-section-10 {
1635        padding: 40px 0 40px;
1636    }
1637
1638    
1639    .homepage-section-11 {
1640        padding: 40px 0 40px;
1641    }
1642
1643    
1644    .homepage-section-12 {
1645        padding: 40px 0 40px;
1646    }
1647
1648    
1649    .homepage-section-13 {
1650        padding: 40px 0 40px;
1651    }
1652
1653    
1654    .homepage-section-14 {
1655        padding: 40px 0 40px;
1656    }
1657
1658    
1659    .homepage-section-15 {
1660        padding: 40px 0 40px;
1661    }
1662
1663    
1664    /* Additional Settings */
1665
1666    
1667    /* Streaming Widgets Title Settings */
1668
1669    .streaming-title {
1670        text-align: center;
1671        font-size: 58px;
1672		line-height:1.5em;
1673            font-weight: 300;
1674                font-family: 'Roboto';
1675            padding-bottom: 40px;
1676    }
1677	
1678	@media only screen and (max-width: 990px) {
1679		.streaming-title {
1680			line-height:1.1em;
1681		}
1682	}
1683
1684            .streaming-title + hr {
1685        display: none;
1686    }
1687    
1688    .homepage-join-module .module h2:first-of-type {
1689        color: rgb(62, 62, 62);
1690    }
1691
1692    .homepage-join-module .module{
1693        background: rgb(250, 250, 250);
1694        border-color: rgb(238, 238, 238);
1695    }
1696
1697    .homepage-about-module .module h2:first-of-type {
1698        color: rgb(62, 62, 62);
1699    }
1700
1701    .homepage-about-module .module{
1702        background: rgb(250, 250, 250);
1703        border-color: rgb(238, 238, 238);
1704
1705	}
1706
1707	.the-post-description > :is(h2, h3, h4, h5):not(:first-child) {
1708		font-weight: 600;
1709		margin-top: 20px;
1710	}
1711	
1712	/* Keep: Ensure ul/ol respect padding and margins */
1713	.the-post-description > :is(ul, ol) {
1714		display: flow-root;
1715	}
1716	.the-post-description li {
1717		margin-bottom: 8px;
1718	}
1719
1720    
1721        .write_comment_container, .tab-content, .well:not(.well .well):not(.module .well):not(.tab-content .well):not(.well.make-connection):not(.slick-slide .well), .module:not(.module .module):not(.well .module):not(.tab-content .module):not(.search_box .module):not(.posted-by-snippet), .panel, .pic:not(.slick-slide .pic), .member_accounts > .account-form-box {
1722        box-shadow: 0 8px 8px -4px #0000001a,0 4px 4px -4px #0000001a;
1723    }
1724    
1725    .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 {
1726        border-radius:1000px!important;
1727    }
1728
1729    .img-rounded img, img.fr-dib.img-rounded{
1730        border-radius: 10px!important;
1731    }
1732    
1733    /* Google Translate Module */
1734        .skiptranslate{font-size:0}
1735    .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}
1736    .skiptranslate.goog-te-gadget span,img.goog-te-gadget-icon{display:none!important}
1737    .goog-te-gadget .goog-te-combo{margin-bottom:-4px}
1738    .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)}
1739    @media only screen and (max-width: 1100px) {
1740        .skiptranslate:not(.skiptranslate[style="display: none;"]){height:39px}
1741        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header{margin-top:10px!important}
1742        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar{margin-top:10px}
1743        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar ~ .header{margin-top:0!important}
1744        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .mobile-main-menu{top:89px!important;height:calc(100% - 90px)!important}
1745        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .navbar{top:39px}
1746        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ #first_container .member_sidebar.open{top: 89px;}
1747    }
1748    @media only screen and (max-width: 767px) {
1749        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar.hidden-xs ~ .header{margin-top:10px!important}
1750    }
1751
1752    
1753    
1754</style>
1755
1756    <!-- ON-PAGE CSS FUNCTIONS -->
1757    <style type="text/css">
1758        <!-- Meta Pixel Code -->
1759<script>
vendor: 408 bytes, lines 1759-1768
1759
1760!function(f,b,e,v,n,t,s)
1761{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
1762n.callMethod.apply(n,arguments):n.queue.push(arguments)};
1763if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
1764n.queue=[];t=b.createElement(e);t.async=!0;
1765t.src=v;s=b.getElementsByTagName(e)[0];
1766s.parentNode.insertBefore(t,s)}(window, document,'script',
1767'https://connect.facebook.net/en_US/fbevents.js');
1768fbq('init', '
17682251960508333791
vendor: 32 bytes, lines 1768-1769
1768');
1769fbq('track', 'PageView');
1770</script>
1770
1771<noscript><img height="1" width="1" style="display:none"
1772src="https://www.facebook.com/tr?id=2251960508333791&ev=PageView&noscript=1"
1773/></noscript>
1774<!-- End Meta Pixel Code -->
1775.footer {
1776    background: #232323;
1777    padding: 40px 0 0;
1778}
1779.slick-prev-fa {
1780     left: 0;     z-index: 1;
1781}
1782.slick-next-fa {
1783    right: 0;    z-index: 1;
1784}
1785.member-profile-header
1786{
1787      padding: 0 11px;
1788}
1789img.swal2-image {
1790    display: none !important;
1791}
1792#first_container
1793{
1794      overflow: hidden;
1795}
1796.slick-track
1797{
1798      transform: translate3d(-263px, 0px, 0px);
1799}
1800.input_wrapper, .input_wrapper input.form-control {
1801    width: 100% !important;
1802     margin-bottom: 0px !important; 
1803}
1804@media(max-width:1000px){
1805  .search_result_image.img-rounded.center-block
1806{
1807  margin-top:0px;
1808}
1809}    </style>
1810    <div class="header">
1811            <div class="container">
1812			<div class="row header-main-row">
1813				<style type='text/css'> .logo-text:has(.logo_title:empty) {
1814	display:none
1815} </style><div id="website_logo" class="col-md-5 xs-nopad xs-hpad sm-text-center xs-bmargin header-left-container">
1816			<a class="logo logo-image inline-block vpad sm-nopad sm-tmargin" href="https://www.atozhealthguide.com" title="A to Z health Guide">
1817			<img width="429" height="120" src="/images/healthguideatoz4.png" alt="A to Z health Guide">
1818		</a>
1819		<div class="clearfix"></div>
1820</div>
1821									<style type='text/css'> body input.tt-hint,body input.form-control.normal-autosuggest-input.tt-query {
1822	background-color: white !important;
1823}
1824.mini-nav:not(:has(li)) {
1825	display: none!important;
1826}
1827/* Parent Container - Main List */
1828.mini-nav li:has(ul) {
1829	position: relative;
1830	border-radius: 8px 8px 0 0;
1831}
1832.mini-nav > li:has(ul) {
1833	padding-left: 0;
1834	padding-right: 0;
1835	background: rgb(255, 255, 255);
1836}
1837.mini-nav > li:has(ul) > a:not(.btn), .mini-nav > li:has(ul) > span {
1838	padding: 10px 15px;
1839	margin: 0!important;
1840}
1841.mini-nav > li:hover:has(ul), .mini-nav > li:hover:has(ul) {
1842	box-shadow: 0 -1px 3px rgba(41, 41, 41,0.25);
1843}
1844/* Parent Links */
1845.mini-nav > li > a:not(.btn), .mini-nav > li > span:not(.btn) {
1846	display:inline-block;
1847	border-radius: 8px 8px 0 0;
1848}
1849.mini-nav > li:hover > a:not(.btn), .mini-nav > li:hover > span {
1850	background: rgb(255, 255, 255);
1851	display: inline-block;
1852	position: relative;
1853	z-index: 1000;
1854}
1855/* First Level Dropdowns */
1856.mini-nav li ul {
1857	background: rgb(255, 255, 255);
1858	box-shadow: 0 0px 3px rgba(41, 41, 41,0.25), 0 5px 5px 5px rgba(41, 41, 41,0.05);
1859	text-align: left;
1860	display: none;
1861	border-radius: 0 8px 8px 8px;
1862	list-style: none;
1863	padding: 10px;
1864	position: absolute;
1865	white-space: nowrap;
1866	min-width: 130%;
1867	width: auto;
1868	top: 100%;
1869	left: 0;
1870	z-index: 999;
1871	margin-top: -1px;
1872}
1873.mini-nav li:hover > ul {
1874	display: block;
1875}
1876/* First Level Dropdown Items */
1877.mini-nav li ul li {
1878	position: relative;
1879	display: block;
1880	width: 100%;
1881}
1882.mini-nav li ul li a, .mini-nav li ul li span {
1883	font-size: 12.95px !important;
1884	display: block;
1885	font-weight: 400;
1886	padding: 8px 12px;
1887	border-radius: 8px;
1888	text-decoration: none;
1889	width: 100%;
1890}
1891.mini-nav li ul li a:hover, .mini-nav li ul li span:hover {
1892	box-shadow: 0 0 0 25px rgba(41, 41, 41,0.05) inset;
1893}
1894/* Second Level Dropdowns */
1895.mini-nav li ul li ul {
1896	display: none;
1897	position: absolute;
1898	top: 0;
1899	left: 100%;
1900	margin: 0;
1901	border-radius: 8px;
1902}
1903.mini-nav li ul li:hover > ul {
1904	display: block;
1905}
1906/* Edge Positioning - Last Child Dropdowns */
1907.mini-nav > li:last-child ul {
1908	right: 0;
1909	left: auto;
1910	border-radius: 8px 0 8px 8px;
1911}
1912.mini-nav > li:last-child ul li ul {
1913	right: 100%;
1914	left: auto;
1915}
1916/* Flex Spacing Utility */
1917.mini-nav.mini-nav-flex-spaced {
1918	display: flex;
1919	justify-content: space-between;
1920	align-items: center;
1921	flex-wrap: wrap;
1922	row-gap: 0;
1923}
1924.mini-nav.mini-nav-flex-spaced > li {
1925	flex: none;
1926	padding: 0;
1927	margin: 2px 0;
1928	order: 2;
1929}
1930.mini-nav.mini-nav-flex-spaced > li.header-member-account-links,
1931.mini-nav:has(li ul) > li.header-member-account-links {
1932	order: 1;
1933	margin-left: auto;
1934	width: 100%;
1935	margin-bottom: 10px;
1936}
1937.logged-in-member-header .mini-nav.mini-nav-flex-spaced.list-inline > li {
1938	line-height: 1em;
1939	min-height: 0;
1940}
1941@media (min-width: 992px) {
1942	.header-main-row {
1943		display: flex;
1944		align-items: center;
1945		flex-wrap: wrap;
1946	}
1947}
1948@media (max-width: 991px) {
1949	.mini-nav.mini-nav-flex-spaced {
1950		justify-content: center;
1951	}
1952	.mini-nav.mini-nav-flex-spaced > li {
1953		margin-left: 5px !important;
1954		margin-right: 5px !important;
1955	}
1956} </style><div class="col-md-7 text-right sm-text-center header-right-container nolpad xs-hpad">
1957            <ul class="mini-nav  nobmargin list-inline xs-nopad xs-tmargin tpad">
1958            <li class='bmargin xs-nomargin'><span id='link368'  class='bmargin'> 4168947217</span></li><li class='bmargin xs-nomargin'><a href='/login' id='link370'  class='rpad bmargin'>A to Z health Vendor's Login</a></li><li class='bmargin norpad xs-nopad xs-vmargin'><a href='/join' id='link371'  class='btn btn_get_listed bold'>Natural Healths - Get Listed Today</a></li>        </ul>
1959            <div class="clearfix"></div>
1960                <form action="/search_results" name="frm1" class="form-inline website-search">
1961                                    <div class="input-group input-group-sm bmargin sm-autosuggest">
1962                        <span class="input-group-addon"><i class="fa fa-search"></i></span>
1963                        <input type="text"
1964                               placeholder="Name or Keyword" value="" name="q"
1965                               class="member_search form-control input-sm" autocomplete="off">
1966                    </div>
1967                                        <div class="input-group input-group-sm bmargin">
1968                        <span class="input-group-addon"><i class="fa fa-location-arrow"></i></span>
1969                        <input type="text" autocomplete="off" placeholder="City or Post Code"
1970                               value="" id="location_google_maps_header" name="location_value"
1971                               class="googleSuggest googleLocation form-control">
1972                    </div>
1973                                    <input type="submit" value="Search" class="btn btn-sm btn_search bmargin xs-btn-block bold">
1974            </form>
1975            </div>
1976				            </div>
1977        </div>
1978        <style type='text/css'> .mobile-main-menu .hasChildren span a {
1979	padding: 0px;
1980}
1981
1982.user_sidebar > img {
1983	width: 32px;
1984	height: 32px;
1985	position: absolute;
1986	z-index: 10;
1987	border-radius: 100px;
1988	top: -1px;
1989	object-fit: cover;
1990	left: -10px;
1991	background: rgb(238, 238, 238);
1992}
1993#member_sidebar_toggle img+.fa {
1994	display: none;
1995}
1996.main_menu, .user_sidebar, .compact-mobile-search {
1997	padding: 5px 8px;
1998	margin-right:0;
1999	min-height: 33.0333px;
2000	min-width: 38.116px;	
2001}
2002.main_menu i, .user_sidebar i {
2003	font-size: 16px;
2004}
2005.navbar-nav li {
2006	float: none!Important;
2007}
2008.navbar-default{
2009	-webkit-transition: all .6s ease-in-out;
2010	-moz-transition: all .6s ease-in-out;
2011	-o-transition: all .6s ease-in-out;
2012	transition: all .6s ease-in-out;
2013}
2014.transparent_menu {
2015		background-color: rgba(238, 238, 238,0.95)!important;
2016}
2017@media only screen and (max-width: 991px) {
2018	#popover {display: none}
2019}
2020@media only screen and (max-width: 1100px){
2021	.mobile-main-menu{display:block!important}
2022	.navbar-toggle {display: block}
2023	#bs-main_menu .nav {display: none!important}
2024}
2025.mobile-main-menu {
2026	position: fixed;
2027	height: calc(100% - 50px)!important;
2028	width: 250px;
2029	background: rgb(238, 238, 238);
2030	z-index: 99999;
2031	right: -250px;
2032	top: 50px;
2033	display: none;
2034	-webkit-transition: all .6s ease-in-out;
2035	-moz-transition: all .6s ease-in-out;
2036	-o-transition: all .6s ease-in-out;
2037	transition: all .6s ease-in-out;
2038	overflow-y: auto!important;
2039	overflow-x: hidden!important;
2040}
2041.mobile-main-menu ul li i {
2042	color: rgb(102, 102, 102);
2043	cursor: pointer;
2044	float: right;
2045	padding: 13px;
2046}
2047.mobile-main-menu.opened{
2048	right: 0px!important;
2049}
2050.mobile-main-menu ul li a, .mobile-main-menu ul li span {
2051	display: inline-block;
2052	float: left;
2053	-webkit-touch-callout: none;
2054	-webkit-user-select: none;
2055	-khtml-user-select: none;
2056	-moz-user-select: none;
2057	-ms-user-select: none;
2058	user-select: none;
2059	padding: 10px 0px;
2060	width: 80%;
2061	width: calc(100% - 40px);
2062}
2063.mobile-main-menu .sidebar-nav li ul {
2064	height: 0px;
2065	overflow: hidden;
2066	list-style: none;
2067	color: rgb(102, 102, 102);
2068	padding-left: 10px;
2069}
2070.mobile-main-menu .sidebar-nav li.sub_open > ul{
2071	height: 100%;
2072}
2073.mobile-main-menu ul.sidebar-nav {
2074	position: absolute;
2075	width: 250px;
2076	margin: 0;
2077	padding: 0;
2078	list-style: none;
2079	font-size: 14px;
2080}
2081.mobile-main-menu .sidebar-nav > li {
2082	display: block;
2083	line-height: 20px;
2084	padding: 0 15px 0 20px;
2085}
2086.mobile-main-menu .sidebar-nav li a, .mobile-main-menu .sidebar-nav li span {
2087	text-decoration: none;
2088	color: rgb(102, 102, 102);
2089	padding-left:10px;
2090}
2091.mobile-main-menu .sidebar-nav li a i, .mobile-main-menu .sidebar-nav li span i {
2092	display: none;
2093}
2094
2095 </style><div class="mobile-main-menu">
2096	<ul class="sidebar-nav">
2097		<li class=''><a href='/home' id='link320'>Home</a><ul><li class=''><a href='/about' id='link322'>How It Works</a></li></ul></li><li class=''><a href='/join' id='link400'>Join</a><ul><li class=''><a href='/join' id='link324'>Join Today</a></li><li class=''><a href='/whyjoin' id='link401'>Why Join</a></li></ul></li><li class=''><a href='/search_results' id='link321'>Companies</a><ul><li class=''><a href='/search_results' id='link340'>All Companies</a></li><li class=''><a href='/categories' id='link338'>By categories</a></li><li class=''><a href='/Locations' id='link339'>By Locations</a></li></ul></li><li class=''><span id='link326'> Videos</span><ul><li class=''><a href='/admin-videos' id='link431'>Health videos</a></li><li class=''><a href='/canada/whitby/professional-services/maxqsoft-84?post_id=323' id='link432'>Profile Video</a></li></ul></li><li class=''><span id='link329'> Articles</span><ul><li class=''><a href='/blog' id='link323'>Blogs</a></li></ul></li><li class=''><span id='link325'> Media</span><ul><li class=''><a href='/audio' id='link327'>Audio</a></li><li class=''><a href='/Photo-albums' id='link328'>Photos</a></li></ul></li><li class=''><span id='link331'> Links</span></li>	</ul>
2098</div>
2099<nav class="navbar navbar-default ">
2100	<div class="container container-fluid">
2101
2102		<div class="navbar-header">
2103						<button type="button" class="navbar-toggle collapsed main_menu" data-toggle="collapse" aria-label="main_menu">
2104								<i class="fa fa-bars fa-fw"></i>
2105							</button>
2106
2107			
2108			
2109		</div>
2110
2111
2112		<div class="tablet-menu collapse navbar-collapse nopad" id="bs-main_menu">
2113			<ul class="tablet-menu-ul nav navbar-nav nav-justified">
2114				<li class=''><a href='/home' id='link320'>Home</a><ul><li class=''><a href='/about' id='link322'>How It Works</a></li></ul></li><li class=''><a href='/join' id='link400'>Join</a><ul><li class=''><a href='/join' id='link324'>Join Today</a></li><li class=''><a href='/whyjoin' id='link401'>Why Join</a></li></ul></li><li class=''><a href='/search_results' id='link321'>Companies</a><ul><li class=''><a href='/search_results' id='link340'>All Companies</a></li><li class=''><a href='/categories' id='link338'>By categories</a></li><li class=''><a href='/Locations' id='link339'>By Locations</a></li></ul></li><li class=''><span id='link326'> Videos</span><ul><li class=''><a href='/admin-videos' id='link431'>Health videos</a></li><li class=''><a href='/canada/whitby/professional-services/maxqsoft-84?post_id=323' id='link432'>Profile Video</a></li></ul></li><li class=''><span id='link329'> Articles</span><ul><li class=''><a href='/blog' id='link323'>Blogs</a></li></ul></li><li class=''><span id='link325'> Media</span><ul><li class=''><a href='/audio' id='link327'>Audio</a></li><li class=''><a href='/Photo-albums' id='link328'>Photos</a></li></ul></li><li class=''><span id='link331'> Links</span></li>			</ul>
2115		</div>
2116	</div>
2117</nav>
2118<!--CSS IF MENU IS FIXED TOP-->
2119
2120</div>
2121<div class="clearfix"></div>
2122<!-- Begin  Content -->
2123<div id="first_container" class="content-container fr-view">
2124    
2125
2126	
2127    <div class="container">
2128                        <div class="clearfix body-content"></div>
2129        <style type='text/css'> div#map-bounds {
2130	width: 100%;
2131	height: 600px;
2132	display: block;
2133}
2134.gsc-control-cse.gsc-control-cse-en {
2135	border-radius: 4px;
2136	margin-top: 20px;
2137	padding-top: 0;
2138}
2139.mid_section .btn-sm.btn-block {
2140	width:auto;
2141	display:inline-block
2142}
2143.tab-content #results > div > hr {   
2144	display: none; 
2145} </style>            <div class="clearfix"></div>
2146                <div class="row content_w_sidebar member_results">
2147            
2148                    <div class='col-md-9 col-md-push-3 main-container'><style type='text/css'> .views {
2149    margin-top: -1px!important;
2150}
2151.member-search-result-filters + .clearfix + div > hr {   
2152	margin-top: 10px; 
2153}
2154@media only screen and (max-width: 767px) {
2155    .member_results .sort-members-select, .member_results .overall_rating_filter {
2156        float: left;
2157        width: 150px;
2158    }
2159} </style>
2160    <div class="col-xs-12 col-sm-4 fpad-sm nohpad member-search-result-count-container">
2161        Showing 1        - <span class="current__amount__js">9</span> of
2162
2163        <span class="total__js">19,783</span> Results
2164            </div>
2165    <div class="col-xs-12 col-sm-8 nopad text-right bmargin member-search-result-filters">
2166        <div class="form-inline">
2167                        <div class="form-group sort-members-select">
2168                <select class="form-control pull-right input-sm" name=sort
2169                        onchange="window.location='/search_results?sort='+this.value;" id="sortbox">
2170                    <option value="" selected>Sort Results
2171                    </option>
2172
2173                                            <option value="reviews" >
2174                            Sort by Most Reviews
2175                        </option>
2176                                            <option value="name ASC" >
2177                            Sort by Name A-Z
2178                        </option>
2179                                            <option value="name DESC" >
2180                            Sort by Name Z-A
2181                        </option>
2182                                            <option value="last_name_asc" >
2183                            Sort By Last Name A-Z
2184                        </option>
2185                                            <option value="last_name_desc" >
2186                            Sort By Last Name Z-A
2187                        </option>
2188                                    </select>
2189            </div>
2190            <div class="form-group">
2191                <style type='text/css'> 	.gridBreak {
2192		display:block!important;
2193		border: 0;
2194		margin: 0;
2195	}
2196	
2197.search_result.grid {
2198	display: grid;
2199}
2200.views > i {
2201	font-size: 18px;
2202	margin-left: 5px;
2203	border-radius: 4px;
2204	cursor: pointer;
2205	width: 30px;
2206	height: 30px;
2207	line-height: 30px;
2208	display: inline-flex;
2209	align-items: center;
2210	justify-content: center;
2211	text-align: center;
2212	vertical-align: top;
2213	transition: all 100ms linear 0ms;
2214}
2215a.gridA {
2216	font-size: 18px;
2217	text-align: center;
2218	margin: 10px 0;
2219	display: block;
2220}
2221.grid .favorite::after, .grid p + .clearfix.fpad-sm, .grid .clearfix.fpad-sm + .clearfix.fpad-sm, .map_container, .views .mapView, .grid .member-search-full-name::after {
2222	display:none;
2223}
2224.visible-lg {
2225	word-wrap: break-word;
2226}
2227.grid .post-location-snippet b + span {
2228	display: block;
2229}
2230@media only screen and (max-width: 767px) {
2231	.member_results .sort-members-select, .member_results .overall_rating_filter {
2232		float: left;
2233		width: 150px;
2234	}
2235} </style>    <div class='views pull-right '>
2236                    <i class='fa fa-th-list activeView listView'></i>
2237                            <i class='fa fa-th js-click gridView hidden-xs'></i>
2238                            <i class="fa fa-map-marker mapView"></i>
2239            </div>
2240            </div>
2241        </div>
2242        <div class="clearfix"></div>
2243    </div>
2244    <div class="clearfix"></div>
2245
2246    <div class="member_results_header">
2247        <h1 class="bold nomargin">natural health  Results</h1>
2248            </div>
2249                <div itemscope itemtype="https://schema.org/CollectionPage" itemid="https://www.atozhealthguide.com/search_results#entity">
2250                    <meta itemprop="name" content="Natural Healths - Find & Compare Natural Health and fitness Professionals">
2251                    <meta itemprop="headline" content="natural health  Results">
2252                    <meta itemprop="description" content="Search our Natural Health and fitness database and connect with top rated Natural Healths.">
2253										<link itemprop="primaryImageOfPage" href="/images/healthguideatoz4.png">
2254															<meta itemprop="keywords" content="natural health  Results, A to Z health Guide, natural health">
2255										<meta itemprop="inLanguage" content="en-US">
2256					<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2257					<meta itemprop="mainEntityOfPage" content="https://www.atozhealthguide.com/search_results#page">
2258					<meta itemprop="copyrightYear" content="2026">
2259					<link itemprop="copyrightHolder" href="https://www.atozhealthguide.com/#organization">
2260					<link itemprop="isPartOf" href="https://www.atozhealthguide.com/#website">
2261					<link itemprop="publisher" href="https://www.atozhealthguide.com/#organization">
2262										                    <div itemprop="mainEntity" itemscope itemtype="https://schema.org/ItemList" itemid="https://www.atozhealthguide.com/search_results#itemlist">
2263                        <meta itemprop="name" content="natural health  Results">
2264                        <link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2265                        <meta itemprop="description" content="Search our Natural Health and fitness database and connect with top rated Natural Healths.">
2266                        <meta itemprop="mainEntityOfPage" content="https://www.atozhealthguide.com/search_results#page">
2267                        <meta itemprop="itemListOrder" content="http://schema.org/ItemListOrderAscending">
2268                                                <meta itemprop="numberOfItems" content="9">
2269                                                <hr>
2270<div class="grid-container"><div class="row-fluid member_results level_10 search_result  clearfix" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
2271	<meta itemprop="name" content="Maxq Admin Video">
2272	<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2273	<meta itemprop="position" content="1">
2274		<div itemprop="item" itemscope itemtype="https://schema.org/LocalBusiness" itemid="https://www.atozhealthguide.com/internet-services/maxq-admin-video#entity">
2275		<meta itemprop="name" content="Maxq Admin Video">
2276		<link itemprop="url" href="https://www.atozhealthguide.com/internet-services/maxq-admin-video">
2277		<link itemprop="image" href="https://www.atozhealthguide.com/logos/profile/limage-12647-421-photo.jpg">
2278		<meta itemprop="priceRange" content="$$">
2279		<meta itemprop="telephone" content="N/A">
2280				<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
2281			<meta itemprop="streetAddress" content="N/A">
2282			<meta itemprop="addressLocality" content="N/A">
2283			<meta itemprop="addressRegion" content="N/A">
2284			<meta itemprop="postalCode" content="N/A">
2285			<meta itemprop="addressCountry" content="CA">
2286		</div>
2287				<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
2288			<meta itemprop="latitude" content="0.00000000">
2289			<meta itemprop="longitude" content="0.00000000">
2290		</div>
2291				<link itemprop="mainEntityOfPage" href="https://www.atozhealthguide.com/internet-services/maxq-admin-video#page">
2292	</div>
2293        <div class="grid_element">
2294        <div class="img_section col-xs-2 nopad">
2295            <a title="Maxq Admin Video - Natural Health" href="/internet-services/maxq-admin-video">
2296								<img class="search_result_image img-rounded center-block" loading="auto" width="400" height="400" alt="Maxq Admin Video" src="https://www.atozhealthguide.com/logos/profile/limage-12647-421-photo.jpg" />
2297				   
2298            </a>
2299        </div>
2300        <div class="mid_section col-xs-10 col-sm-7 norpad">
2301            <span class="postItem" data-userid="12647" data-datatype="10" data-dataid="10" data-postid="0"></span><button class="item-post-list-0 favorite fa fa-star" aria-label="LIKE" data-count="0" data-postid="0" data-state="0" data-activefeature="1" data-activefavorite="ADMIN GTA Videos"  data-toggle="modal" data-target="#myModal"  ><span id='bookmark-content'>LIKE</span> <span class='' id='number-0'></span></button>            <a class="center-block" title="Maxq Admin Video" href="/internet-services/maxq-admin-video">
2302                <span class="h3 bold inline-block nomargin member-search-full-name notranslate">
2303                    Maxq Admin Video                </span>
2304                            </a>
2305			<div class="clearfix fpad-sm nobpad"></div>
2306						<div class="clearfix fpad-sm nobpad"></div>
2307						
2308                                </div>
2309        <div class="info_section hidden-xs col-sm-3 norpad">
2310            <div class="module nomargin fpad-md text-center">
2311                				<a 
2312				title="View Listing - Maxq Admin Video" 
2313				aria-label="View Listing - Maxq Admin Video" 
2314				class="btn btn-sm btn-primary btn-block bold search_view_listing_button" 
2315				href="/internet-services/maxq-admin-video">View Listing</a>
2316								<div class="clearfix fpad-sm nobpad"></div>
2317				<a 
2318				title="Send Message - Maxq Admin Video" 
2319				aria-label="Send Message - Maxq Admin Video" 
2320				class="btn btn-sm btn-secondary btn-block bold search_contact_now_button" 
2321				href="/internet-services/maxq-admin-video/connect">Send Message</a>
2322				<div class="clearfix"></div>
2323                            </div>
2324        </div>
2325		<div class="clearfix"></div>
2326    </div>
2327</div>
2328<div class="clearfix"></div>
2329<hr>
2330<span class="google-pin-location" id="google-pin" data-token="12647"data-hideMessages="0" data-lat="0.00000000" data-lng="0.00000000" data-name="Maxq Admin Video" data-filename="/internet-services/maxq-admin-video" data-photo="/logos/profile/limage-12647-421-photo.jpg" data-phone="" data-addon="1"></span><div class="row-fluid member_results level_11 search_result  clearfix" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
2331	<meta itemprop="name" content="Maxqsoft">
2332	<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2333	<meta itemprop="position" content="2">
2334		<div itemprop="item" itemscope itemtype="https://schema.org/LocalBusiness" itemid="https://www.atozhealthguide.com/canada/whitby/internet-services/maxqsoft#entity">
2335		<meta itemprop="name" content="Maxqsoft">
2336		<link itemprop="url" href="https://www.atozhealthguide.com/canada/whitby/internet-services/maxqsoft">
2337		<link itemprop="image" href="https://www.atozhealthguide.com/logos/profile/limage-19-117-photo.png">
2338		<meta itemprop="priceRange" content="$$">
2339		<meta itemprop="telephone" content="4168947217">
2340				<meta itemprop="description" content="  MaxqSoft is a full service web development &amp;amp; software firm. We were started with the commitment to provide effective web development services to small and mid-sized">
2341				<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
2342			<meta itemprop="streetAddress" content="38 Oceanpearl cresent">
2343			<meta itemprop="addressLocality" content="Whitby">
2344			<meta itemprop="addressRegion" content="ON">
2345			<meta itemprop="postalCode" content="L1N 0C2">
2346			<meta itemprop="addressCountry" content="CA">
2347		</div>
2348				<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
2349			<meta itemprop="latitude" content="43.87611990">
2350			<meta itemprop="longitude" content="-78.90536620">
2351		</div>
2352				<link itemprop="mainEntityOfPage" href="https://www.atozhealthguide.com/canada/whitby/internet-services/maxqsoft#page">
2353	</div>
2354        <div class="grid_element">
2355        <div class="img_section col-xs-2 nopad">
2356            <a title="Maxqsoft - Natural Health" href="/canada/whitby/internet-services/maxqsoft">
2357								<img class="search_result_image img-rounded center-block" loading="auto" width="400" height="400" alt="Maxqsoft" src="https://www.atozhealthguide.com/logos/profile/limage-19-117-photo.png" />
2358				   
2359            </a>
2360        </div>
2361        <div class="mid_section col-xs-10 col-sm-7 norpad">
2362            <span class="postItem" data-userid="19" data-datatype="10" data-dataid="10" data-postid="0"></span><button class="item-post-list-0 favorite fa fa-star" aria-label="LIKE" data-count="0" data-postid="0" data-state="0" data-activefeature="1" data-activefavorite="Premium monthly plan"  data-toggle="modal" data-target="#myModal"  ><span id='bookmark-content'>LIKE</span> <span class='' id='number-0'></span></button>            <a class="center-block" title="Maxqsoft" href="/canada/whitby/internet-services/maxqsoft">
2363                <span class="h3 bold inline-block nomargin member-search-full-name notranslate">
2364                    Maxqsoft                </span>
2365                            </a>
2366			<div class="clearfix fpad-sm nobpad"></div>
2367						<div class="clearfix fpad-sm nobpad"></div>
2368						
2369                        				<p class="small nomargin member-search-description">
2370					  MaxqSoft is a full service web development &amp; software firm. We were started with the commitment to provide effective web development services to small and mid-sized				</p>
2371			                <div class="clearfix fpad-sm nobpad"></div>
2372                <span class="member-search-location rmargin">
2373                <i class="fa fa-map-marker text-danger"></i>
2374					<small>
2375						Whitby, Ontario, <span class="inline-block">L1N 0C2</span>, <span class=inline-block>Canada</span></small></span>        </div>
2376        <div class="info_section hidden-xs col-sm-3 norpad">
2377            <div class="module nomargin fpad-md text-center">
2378                				<a 
2379				title="View Listing - Maxqsoft" 
2380				aria-label="View Listing - Maxqsoft" 
2381				class="btn btn-sm btn-primary btn-block bold search_view_listing_button" 
2382				href="/canada/whitby/internet-services/maxqsoft">View Listing</a>
2383								<div class="clearfix fpad-sm nobpad"></div>
2384				<a 
2385				title="Send Message - Maxqsoft" 
2386				aria-label="Send Message - Maxqsoft" 
2387				class="btn btn-sm btn-secondary btn-block bold search_contact_now_button" 
2388				href="/canada/whitby/internet-services/maxqsoft/connect">Send Message</a>
2389				<div class="clearfix"></div>
2390                	<div class="clearfix fpad-sm nobpad"></div>
2391    <span class="btn btn-secondary btn-outline btn-sm bold click-to-call-button search_show_phone_button btn-block">
2392		<div class="myPhoneHideParent" onClick="clickToCall(this)" title="Show Phone Number" data-token="19" style="text-overflow:ellipsis;white-space:nowrap;overflow:hidden;">
2393			<i class="fa fa-phone fa-fw"></i> 
2394			Show Phone Number
2395		</div>
2396        <div class="hide myphoneHide">
2397          <a href="tel:4168947217"><span class="text-secondary">Call: <u>4168947217</u></span></a>        </div>
2398    </span>
2399              </div>
2400        </div>
2401		<div class="clearfix"></div>
2402    </div>
2403</div>
2404<div class="clearfix"></div>
2405<hr>
2406<span class="google-pin-location" id="google-pin" data-token="19"data-hideMessages="0" data-lat="43.87611990" data-lng="-78.90536620" data-name="Maxqsoft" data-filename="/canada/whitby/internet-services/maxqsoft" data-photo="/logos/profile/limage-19-117-photo.png" data-phone="4168947217" data-addon="1"></span><div class="row-fluid member_results level_17 search_result  clearfix" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
2407	<meta itemprop="name" content="Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano">
2408	<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2409	<meta itemprop="position" content="3">
2410		<div itemprop="item" itemscope itemtype="https://schema.org/LocalBusiness" itemid="https://www.atozhealthguide.com/canada/mississauga/health-medicine/sleep-disorders-dentistry-clinic-seminars-dr-john-viviano#entity">
2411		<meta itemprop="name" content="Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano">
2412		<link itemprop="url" href="https://www.atozhealthguide.com/canada/mississauga/health-medicine/sleep-disorders-dentistry-clinic-seminars-dr-john-viviano">
2413		<link itemprop="image" href="https://www.atozhealthguide.com/logos/profile/limage-14279.jpg">
2414		<meta itemprop="priceRange" content="$$">
2415		<meta itemprop="telephone" content="+1905-212-7732">
2416				<meta itemprop="description" content=" Sleep Disorders Dentistry Clinic, located in Mississauga, Ontario, specializes in dental solutions tailored for individuals facing sleep disorders. Dr. John Viviano leads">
2417				<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
2418			<meta itemprop="streetAddress" content="5045 Orbitor Dr #10-300">
2419			<meta itemprop="addressLocality" content="Mississauga">
2420			<meta itemprop="addressRegion" content="ON">
2421			<meta itemprop="postalCode" content="L4W 4Y4">
2422			<meta itemprop="addressCountry" content="CA">
2423		</div>
2424				<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
2425			<meta itemprop="latitude" content="43.65672880">
2426			<meta itemprop="longitude" content="-79.59963740">
2427		</div>
2428				<link itemprop="mainEntityOfPage" href="https://www.atozhealthguide.com/canada/mississauga/health-medicine/sleep-disorders-dentistry-clinic-seminars-dr-john-viviano#page">
2429	</div>
2430        <div class="grid_element">
2431        <div class="img_section col-xs-2 nopad">
2432            <a title="Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano - Natural Health" href="/canada/mississauga/health-medicine/sleep-disorders-dentistry-clinic-seminars-dr-john-viviano">
2433								<img class="search_result_image img-rounded center-block" loading="auto" width="400" height="400" alt="Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano" src="https://www.atozhealthguide.com/logos/profile/limage-14279.jpg" />
2434				   
2435            </a>
2436        </div>
2437        <div class="mid_section col-xs-10 col-sm-7 norpad">
2438            <span class="postItem" data-userid="13767" data-datatype="10" data-dataid="10" data-postid="0"></span><button class="item-post-list-0 favorite fa fa-star" aria-label="LIKE" data-count="0" data-postid="0" data-state="0" data-activefeature="1" data-activefavorite="Trusted Free plan"  data-toggle="modal" data-target="#myModal"  ><span id='bookmark-content'>LIKE</span> <span class='' id='number-0'></span></button>            <a class="center-block" title="Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano" href="/canada/mississauga/health-medicine/sleep-disorders-dentistry-clinic-seminars-dr-john-viviano">
2439                <span class="h3 bold inline-block nomargin member-search-full-name notranslate">
2440                    Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano                </span>
2441                            </a>
2442			<div class="clearfix fpad-sm nobpad"></div>
2443						<div class="clearfix fpad-sm nobpad"></div>
2444						
2445                        				<p class="small nomargin member-search-description">
2446					 Sleep Disorders Dentistry Clinic, located in Mississauga, Ontario, specializes in dental solutions tailored for individuals facing sleep disorders. Dr. John Viviano leads				</p>
2447			                <div class="clearfix fpad-sm nobpad"></div>
2448                <span class="member-search-location rmargin">
2449                <i class="fa fa-map-marker text-danger"></i>
2450					<small>
2451						Mississauga, Ontario, <span class="inline-block">L4W 4Y4</span>, <span class=inline-block>Canada</span></small></span>        </div>
2452        <div class="info_section hidden-xs col-sm-3 norpad">
2453            <div class="module nomargin fpad-md text-center">
2454                				<a 
2455				title="View Listing - Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano" 
2456				aria-label="View Listing - Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano" 
2457				class="btn btn-sm btn-primary btn-block bold search_view_listing_button" 
2458				href="/canada/mississauga/health-medicine/sleep-disorders-dentistry-clinic-seminars-dr-john-viviano">View Listing</a>
2459								<div class="clearfix fpad-sm nobpad"></div>
2460				<a 
2461				title="Send Message - Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano" 
2462				aria-label="Send Message - Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano" 
2463				class="btn btn-sm btn-secondary btn-block bold search_contact_now_button" 
2464				href="/canada/mississauga/health-medicine/sleep-disorders-dentistry-clinic-seminars-dr-john-viviano/connect">Send Message</a>
2465				<div class="clearfix"></div>
2466                	<div class="clearfix fpad-sm nobpad"></div>
2467    <span class="btn btn-secondary btn-outline btn-sm bold click-to-call-button search_show_phone_button btn-block">
2468		<div class="myPhoneHideParent" onClick="clickToCall(this)" title="Show Phone Number" data-token="13767" style="text-overflow:ellipsis;white-space:nowrap;overflow:hidden;">
2469			<i class="fa fa-phone fa-fw"></i> 
2470			Show Phone Number
2471		</div>
2472        <div class="hide myphoneHide">
2473          <a href="tel:+19052127732"><span class="text-secondary">Call: <u>+1905-212-7732</u></span></a>        </div>
2474    </span>
2475              </div>
2476        </div>
2477		<div class="clearfix"></div>
2478    </div>
2479</div>
2480<div class="clearfix"></div>
2481<hr>
2482<span class="google-pin-location" id="google-pin" data-token="13767"data-hideMessages="0" data-lat="43.65672880" data-lng="-79.59963740" data-name="Sleep Disorders Dentistry Clinic | Seminars | Dr. John Viviano" data-filename="/canada/mississauga/health-medicine/sleep-disorders-dentistry-clinic-seminars-dr-john-viviano" data-photo="/logos/profile/limage-14279.jpg" data-phone="+1905-212-7732" data-addon="1"></span><div class="row-fluid member_results level_17 search_result  clearfix" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
2483	<meta itemprop="name" content="Sauga Smiles Dental">
2484	<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2485	<meta itemprop="position" content="4">
2486		<div itemprop="item" itemscope itemtype="https://schema.org/LocalBusiness" itemid="https://www.atozhealthguide.com/canada/mississauga/health-medicine/sauga-smiles-dental#entity">
2487		<meta itemprop="name" content="Sauga Smiles Dental">
2488		<link itemprop="url" href="https://www.atozhealthguide.com/canada/mississauga/health-medicine/sauga-smiles-dental">
2489		<link itemprop="image" href="https://www.atozhealthguide.com/logos/profile/limage-14286.jpg">
2490		<meta itemprop="priceRange" content="$$">
2491		<meta itemprop="telephone" content="+1905-277-1560">
2492				<meta itemprop="description" content="Sauga Smiles Dental, your trusted Mississauga dentist and dental clinic, is dedicated to fostering personalized care, enduring connections, and your ultimate comfort. We ">
2493				<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
2494			<meta itemprop="streetAddress" content="800 Burnhamthorpe Rd W Unit #1">
2495			<meta itemprop="addressLocality" content="Mississauga">
2496			<meta itemprop="addressRegion" content="ON">
2497			<meta itemprop="postalCode" content="L5C 2R9">
2498			<meta itemprop="addressCountry" content="CA">
2499		</div>
2500				<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
2501			<meta itemprop="latitude" content="43.57622360">
2502			<meta itemprop="longitude" content="-79.65462060">
2503		</div>
2504				<link itemprop="mainEntityOfPage" href="https://www.atozhealthguide.com/canada/mississauga/health-medicine/sauga-smiles-dental#page">
2505	</div>
2506        <div class="grid_element">
2507        <div class="img_section col-xs-2 nopad">
2508            <a title="Sauga Smiles Dental - Natural Health" href="/canada/mississauga/health-medicine/sauga-smiles-dental">
2509								<img class="search_result_image img-rounded center-block" loading="auto" width="400" height="400" alt="Sauga Smiles Dental" src="https://www.atozhealthguide.com/logos/profile/limage-14286.jpg" />
2510				   
2511            </a>
2512        </div>
2513        <div class="mid_section col-xs-10 col-sm-7 norpad">
2514            <span class="postItem" data-userid="13774" data-datatype="10" data-dataid="10" data-postid="0"></span><button class="item-post-list-0 favorite fa fa-star" aria-label="LIKE" data-count="0" data-postid="0" data-state="0" data-activefeature="1" data-activefavorite="Trusted Free plan"  data-toggle="modal" data-target="#myModal"  ><span id='bookmark-content'>LIKE</span> <span class='' id='number-0'></span></button>            <a class="center-block" title="Sauga Smiles Dental" href="/canada/mississauga/health-medicine/sauga-smiles-dental">
2515                <span class="h3 bold inline-block nomargin member-search-full-name notranslate">
2516                    Sauga Smiles Dental                </span>
2517                            </a>
2518			<div class="clearfix fpad-sm nobpad"></div>
2519						<div class="clearfix fpad-sm nobpad"></div>
2520						
2521                        				
2522				<p class="small nomargin member-search-description">
2523					Sauga Smiles Dental, your trusted Mississauga dentist and dental clinic, is dedicated to fostering personalized care, enduring connections, and your ultimate comfort. We 				</p>
2524                            <div class="clearfix fpad-sm nobpad"></div>
2525                <span class="member-search-location rmargin">
2526                <i class="fa fa-map-marker text-danger"></i>
2527					<small>
2528						Mississauga, Ontario, <span class="inline-block">L5C 2R9</span>, <span class=inline-block>Canada</span></small></span>        </div>
2529        <div class="info_section hidden-xs col-sm-3 norpad">
2530            <div class="module nomargin fpad-md text-center">
2531                				<a 
2532				title="View Listing - Sauga Smiles Dental" 
2533				aria-label="View Listing - Sauga Smiles Dental" 
2534				class="btn btn-sm btn-primary btn-block bold search_view_listing_button" 
2535				href="/canada/mississauga/health-medicine/sauga-smiles-dental">View Listing</a>
2536								<div class="clearfix fpad-sm nobpad"></div>
2537				<a 
2538				title="Send Message - Sauga Smiles Dental" 
2539				aria-label="Send Message - Sauga Smiles Dental" 
2540				class="btn btn-sm btn-secondary btn-block bold search_contact_now_button" 
2541				href="/canada/mississauga/health-medicine/sauga-smiles-dental/connect">Send Message</a>
2542				<div class="clearfix"></div>
2543                	<div class="clearfix fpad-sm nobpad"></div>
2544    <span class="btn btn-secondary btn-outline btn-sm bold click-to-call-button search_show_phone_button btn-block">
2545		<div class="myPhoneHideParent" onClick="clickToCall(this)" title="Show Phone Number" data-token="13774" style="text-overflow:ellipsis;white-space:nowrap;overflow:hidden;">
2546			<i class="fa fa-phone fa-fw"></i> 
2547			Show Phone Number
2548		</div>
2549        <div class="hide myphoneHide">
2550          <a href="tel:+19052771560"><span class="text-secondary">Call: <u>+1905-277-1560</u></span></a>        </div>
2551    </span>
2552              </div>
2553        </div>
2554		<div class="clearfix"></div>
2555    </div>
2556</div>
2557<div class="clearfix"></div>
2558<hr>
2559<span class="google-pin-location" id="google-pin" data-token="13774"data-hideMessages="0" data-lat="43.57622360" data-lng="-79.65462060" data-name="Sauga Smiles Dental" data-filename="/canada/mississauga/health-medicine/sauga-smiles-dental" data-photo="/logos/profile/limage-14286.jpg" data-phone="+1905-277-1560" data-addon="1"></span><div class="row-fluid member_results level_17 search_result  clearfix" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
2560	<meta itemprop="name" content="Triangle Physiotherapy Mississauga">
2561	<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2562	<meta itemprop="position" content="5">
2563		<div itemprop="item" itemscope itemtype="https://schema.org/LocalBusiness" itemid="https://www.atozhealthguide.com/canada/mississauga/natural-health/triangle-physiotherapy-mississauga#entity">
2564		<meta itemprop="name" content="Triangle Physiotherapy Mississauga">
2565		<link itemprop="url" href="https://www.atozhealthguide.com/canada/mississauga/natural-health/triangle-physiotherapy-mississauga">
2566		<link itemprop="image" href="https://www.atozhealthguide.com/logos/profile/limage-13446.jpg">
2567		<meta itemprop="priceRange" content="$$">
2568		<meta itemprop="telephone" content="+1905-270-1400">
2569				<meta itemprop="description" content="Triangle Physiotherapy Mississauga has highly qualified massage therapists, physiotherapists, chiropractors that put in their best effort to help you by providing the bes">
2570				<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
2571			<meta itemprop="streetAddress" content="4188 Living Arts Dr">
2572			<meta itemprop="addressLocality" content="Mississauga">
2573			<meta itemprop="addressRegion" content="ON">
2574			<meta itemprop="postalCode" content="L5B 0H7">
2575			<meta itemprop="addressCountry" content="CA">
2576		</div>
2577				<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
2578			<meta itemprop="latitude" content="43.58995680">
2579			<meta itemprop="longitude" content="-79.64810230">
2580		</div>
2581				<link itemprop="mainEntityOfPage" href="https://www.atozhealthguide.com/canada/mississauga/natural-health/triangle-physiotherapy-mississauga#page">
2582	</div>
2583        <div class="grid_element">
2584        <div class="img_section col-xs-2 nopad">
2585            <a title="Triangle Physiotherapy Mississauga - Natural Health" href="/canada/mississauga/natural-health/triangle-physiotherapy-mississauga">
2586								<img class="search_result_image img-rounded center-block lazyloader" loading="auto" width="400" height="400" alt="Triangle Physiotherapy Mississauga" data-src="https://www.atozhealthguide.com/logos/profile/limage-13446.jpg">
2587				   
2588            </a>
2589        </div>
2590        <div class="mid_section col-xs-10 col-sm-7 norpad">
2591            <span class="postItem" data-userid="12934" data-datatype="10" data-dataid="10" data-postid="0"></span><button class="item-post-list-0 favorite fa fa-star" aria-label="LIKE" data-count="0" data-postid="0" data-state="0" data-activefeature="1" data-activefavorite="Trusted Free plan"  data-toggle="modal" data-target="#myModal"  ><span id='bookmark-content'>LIKE</span> <span class='' id='number-0'></span></button>            <a class="center-block" title="Triangle Physiotherapy Mississauga" href="/canada/mississauga/natural-health/triangle-physiotherapy-mississauga">
2592                <span class="h3 bold inline-block nomargin member-search-full-name notranslate">
2593                    Triangle Physiotherapy Mississauga                </span>
2594                            </a>
2595			<div class="clearfix fpad-sm nobpad"></div>
2596						<div class="clearfix fpad-sm nobpad"></div>
2597						
2598                        				
2599				<p class="small nomargin member-search-description">
2600					Triangle Physiotherapy Mississauga has highly qualified massage therapists, physiotherapists, chiropractors that put in their best effort to help you by providing the bes				</p>
2601                            <div class="clearfix fpad-sm nobpad"></div>
2602                <span class="member-search-location rmargin">
2603                <i class="fa fa-map-marker text-danger"></i>
2604					<small>
2605						Mississauga, Ontario, <span class="inline-block">L5B 0H7</span>, <span class=inline-block>Canada</span></small></span>        </div>
2606        <div class="info_section hidden-xs col-sm-3 norpad">
2607            <div class="module nomargin fpad-md text-center">
2608                				<a 
2609				title="View Listing - Triangle Physiotherapy Mississauga" 
2610				aria-label="View Listing - Triangle Physiotherapy Mississauga" 
2611				class="btn btn-sm btn-primary btn-block bold search_view_listing_button" 
2612				href="/canada/mississauga/natural-health/triangle-physiotherapy-mississauga">View Listing</a>
2613								<div class="clearfix fpad-sm nobpad"></div>
2614				<a 
2615				title="Send Message - Triangle Physiotherapy Mississauga" 
2616				aria-label="Send Message - Triangle Physiotherapy Mississauga" 
2617				class="btn btn-sm btn-secondary btn-block bold search_contact_now_button" 
2618				href="/canada/mississauga/natural-health/triangle-physiotherapy-mississauga/connect">Send Message</a>
2619				<div class="clearfix"></div>
2620                	<div class="clearfix fpad-sm nobpad"></div>
2621    <span class="btn btn-secondary btn-outline btn-sm bold click-to-call-button search_show_phone_button btn-block">
2622		<div class="myPhoneHideParent" onClick="clickToCall(this)" title="Show Phone Number" data-token="12934" style="text-overflow:ellipsis;white-space:nowrap;overflow:hidden;">
2623			<i class="fa fa-phone fa-fw"></i> 
2624			Show Phone Number
2625		</div>
2626        <div class="hide myphoneHide">
2627          <a href="tel:+19052701400"><span class="text-secondary">Call: <u>+1905-270-1400</u></span></a>        </div>
2628    </span>
2629              </div>
2630        </div>
2631		<div class="clearfix"></div>
2632    </div>
2633</div>
2634<div class="clearfix"></div>
2635<hr>
2636<span class="google-pin-location" id="google-pin" data-token="12934"data-hideMessages="0" data-lat="43.58995680" data-lng="-79.64810230" data-name="Triangle Physiotherapy Mississauga" data-filename="/canada/mississauga/natural-health/triangle-physiotherapy-mississauga" data-photo="/logos/profile/limage-13446.jpg" data-phone="+1905-270-1400" data-addon="1"></span><div class="row-fluid member_results level_17 search_result  clearfix" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
2637	<meta itemprop="name" content="Lorne Park Dental Associates">
2638	<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2639	<meta itemprop="position" content="6">
2640		<div itemprop="item" itemscope itemtype="https://schema.org/LocalBusiness" itemid="https://www.atozhealthguide.com/canada/mississauga/health-medicine/lorne-park-dental-associates#entity">
2641		<meta itemprop="name" content="Lorne Park Dental Associates">
2642		<link itemprop="url" href="https://www.atozhealthguide.com/canada/mississauga/health-medicine/lorne-park-dental-associates">
2643		<link itemprop="image" href="https://www.atozhealthguide.com/logos/profile/limage-14281.jpg">
2644		<meta itemprop="priceRange" content="$$">
2645		<meta itemprop="telephone" content="+1905-278-5972">
2646				<meta itemprop="description" content="Lorne Park Dental Associates provides a full range of dental services for family members of all ages. Our conveniently-located Mississauga office features free parking an">
2647				<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
2648			<meta itemprop="streetAddress" content="1151 Lorne Park Rd">
2649			<meta itemprop="addressLocality" content="Mississauga">
2650			<meta itemprop="addressRegion" content="ON">
2651			<meta itemprop="postalCode" content="L5H 3A6">
2652			<meta itemprop="addressCountry" content="CA">
2653		</div>
2654				<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
2655			<meta itemprop="latitude" content="43.53141720">
2656			<meta itemprop="longitude" content="-79.61558280">
2657		</div>
2658				<link itemprop="mainEntityOfPage" href="https://www.atozhealthguide.com/canada/mississauga/health-medicine/lorne-park-dental-associates#page">
2659	</div>
2660        <div class="grid_element">
2661        <div class="img_section col-xs-2 nopad">
2662            <a title="Lorne Park Dental Associates - Natural Health" href="/canada/mississauga/health-medicine/lorne-park-dental-associates">
2663								<img class="search_result_image img-rounded center-block lazyloader" loading="auto" width="400" height="400" alt="Lorne Park Dental Associates" data-src="https://www.atozhealthguide.com/logos/profile/limage-14281.jpg">
2664				   
2665            </a>
2666        </div>
2667        <div class="mid_section col-xs-10 col-sm-7 norpad">
2668            <span class="postItem" data-userid="13769" data-datatype="10" data-dataid="10" data-postid="0"></span><button class="item-post-list-0 favorite fa fa-star" aria-label="LIKE" data-count="0" data-postid="0" data-state="0" data-activefeature="1" data-activefavorite="Trusted Free plan"  data-toggle="modal" data-target="#myModal"  ><span id='bookmark-content'>LIKE</span> <span class='' id='number-0'></span></button>            <a class="center-block" title="Lorne Park Dental Associates" href="/canada/mississauga/health-medicine/lorne-park-dental-associates">
2669                <span class="h3 bold inline-block nomargin member-search-full-name notranslate">
2670                    Lorne Park Dental Associates                </span>
2671                            </a>
2672			<div class="clearfix fpad-sm nobpad"></div>
2673						<div class="clearfix fpad-sm nobpad"></div>
2674						
2675                        				
2676				<p class="small nomargin member-search-description">
2677					Lorne Park Dental Associates provides a full range of dental services for family members of all ages. Our conveniently-located Mississauga office features free parking an				</p>
2678                            <div class="clearfix fpad-sm nobpad"></div>
2679                <span class="member-search-location rmargin">
2680                <i class="fa fa-map-marker text-danger"></i>
2681					<small>
2682						Mississauga, Ontario, <span class="inline-block">L5H 3A6</span>, <span class=inline-block>Canada</span></small></span>        </div>
2683        <div class="info_section hidden-xs col-sm-3 norpad">
2684            <div class="module nomargin fpad-md text-center">
2685                				<a 
2686				title="View Listing - Lorne Park Dental Associates" 
2687				aria-label="View Listing - Lorne Park Dental Associates" 
2688				class="btn btn-sm btn-primary btn-block bold search_view_listing_button" 
2689				href="/canada/mississauga/health-medicine/lorne-park-dental-associates">View Listing</a>
2690								<div class="clearfix fpad-sm nobpad"></div>
2691				<a 
2692				title="Send Message - Lorne Park Dental Associates" 
2693				aria-label="Send Message - Lorne Park Dental Associates" 
2694				class="btn btn-sm btn-secondary btn-block bold search_contact_now_button" 
2695				href="/canada/mississauga/health-medicine/lorne-park-dental-associates/connect">Send Message</a>
2696				<div class="clearfix"></div>
2697                	<div class="clearfix fpad-sm nobpad"></div>
2698    <span class="btn btn-secondary btn-outline btn-sm bold click-to-call-button search_show_phone_button btn-block">
2699		<div class="myPhoneHideParent" onClick="clickToCall(this)" title="Show Phone Number" data-token="13769" style="text-overflow:ellipsis;white-space:nowrap;overflow:hidden;">
2700			<i class="fa fa-phone fa-fw"></i> 
2701			Show Phone Number
2702		</div>
2703        <div class="hide myphoneHide">
2704          <a href="tel:+19052785972"><span class="text-secondary">Call: <u>+1905-278-5972</u></span></a>        </div>
2705    </span>
2706              </div>
2707        </div>
2708		<div class="clearfix"></div>
2709    </div>
2710</div>
2711<div class="clearfix"></div>
2712<hr>
2713<span class="google-pin-location" id="google-pin" data-token="13769"data-hideMessages="0" data-lat="43.53141720" data-lng="-79.61558280" data-name="Lorne Park Dental Associates" data-filename="/canada/mississauga/health-medicine/lorne-park-dental-associates" data-photo="/logos/profile/limage-14281.jpg" data-phone="+1905-278-5972" data-addon="1"></span><div class="row-fluid member_results level_17 search_result  clearfix" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
2714	<meta itemprop="name" content="Physiotherapy &amp; Beyond">
2715	<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2716	<meta itemprop="position" content="7">
2717		<div itemprop="item" itemscope itemtype="https://schema.org/LocalBusiness" itemid="https://www.atozhealthguide.com/canada/mississauga/natural-health/physiotherapy-beyond#entity">
2718		<meta itemprop="name" content="Physiotherapy &amp; Beyond">
2719		<link itemprop="url" href="https://www.atozhealthguide.com/canada/mississauga/natural-health/physiotherapy-beyond">
2720		<link itemprop="image" href="https://www.atozhealthguide.com/logos/profile/limage-13448.jpg">
2721		<meta itemprop="priceRange" content="$$">
2722		<meta itemprop="telephone" content="+1905-278-7101">
2723				<meta itemprop="description" content="Our mission is to empower individuals to live life to the fullest by optimizing their physical well-being and enhancing their overall quality of life.
2724
2725Who We">
2726				<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
2727			<meta itemprop="streetAddress" content="1601 Lakeshore Rd W">
2728			<meta itemprop="addressLocality" content="Mississauga">
2729			<meta itemprop="addressRegion" content="ON">
2730			<meta itemprop="postalCode" content="L5J 1J4">
2731			<meta itemprop="addressCountry" content="CA">
2732		</div>
2733				<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
2734			<meta itemprop="latitude" content="43.52005700">
2735			<meta itemprop="longitude" content="-79.62054520">
2736		</div>
2737				<link itemprop="mainEntityOfPage" href="https://www.atozhealthguide.com/canada/mississauga/natural-health/physiotherapy-beyond#page">
2738	</div>
2739        <div class="grid_element">
2740        <div class="img_section col-xs-2 nopad">
2741            <a title="Physiotherapy &amp; Beyond - Natural Health" href="/canada/mississauga/natural-health/physiotherapy-beyond">
2742								<img class="search_result_image img-rounded center-block lazyloader" loading="auto" width="400" height="400" alt="Physiotherapy &amp; Beyond" data-src="https://www.atozhealthguide.com/logos/profile/limage-13448.jpg">
2743				   
2744            </a>
2745        </div>
2746        <div class="mid_section col-xs-10 col-sm-7 norpad">
2747            <span class="postItem" data-userid="12936" data-datatype="10" data-dataid="10" data-postid="0"></span><button class="item-post-list-0 favorite fa fa-star" aria-label="LIKE" data-count="0" data-postid="0" data-state="0" data-activefeature="1" data-activefavorite="Trusted Free plan"  data-toggle="modal" data-target="#myModal"  ><span id='bookmark-content'>LIKE</span> <span class='' id='number-0'></span></button>            <a class="center-block" title="Physiotherapy &amp; Beyond" href="/canada/mississauga/natural-health/physiotherapy-beyond">
2748                <span class="h3 bold inline-block nomargin member-search-full-name notranslate">
2749                    Physiotherapy &amp; Beyond                </span>
2750                            </a>
2751			<div class="clearfix fpad-sm nobpad"></div>
2752						<div class="clearfix fpad-sm nobpad"></div>
2753						
2754                        				
2755				<p class="small nomargin member-search-description">
2756					Our mission is to empower individuals to live life to the fullest by optimizing their physical well-being and enhancing their overall quality of life.
2757
2758Who We				</p>
2759                            <div class="clearfix fpad-sm nobpad"></div>
2760                <span class="member-search-location rmargin">
2761                <i class="fa fa-map-marker text-danger"></i>
2762					<small>
2763						Mississauga, Ontario, <span class="inline-block">L5J 1J4</span>, <span class=inline-block>Canada</span></small></span>        </div>
2764        <div class="info_section hidden-xs col-sm-3 norpad">
2765            <div class="module nomargin fpad-md text-center">
2766                				<a 
2767				title="View Listing - Physiotherapy &amp; Beyond" 
2768				aria-label="View Listing - Physiotherapy &amp; Beyond" 
2769				class="btn btn-sm btn-primary btn-block bold search_view_listing_button" 
2770				href="/canada/mississauga/natural-health/physiotherapy-beyond">View Listing</a>
2771								<div class="clearfix fpad-sm nobpad"></div>
2772				<a 
2773				title="Send Message - Physiotherapy &amp; Beyond" 
2774				aria-label="Send Message - Physiotherapy &amp; Beyond" 
2775				class="btn btn-sm btn-secondary btn-block bold search_contact_now_button" 
2776				href="/canada/mississauga/natural-health/physiotherapy-beyond/connect">Send Message</a>
2777				<div class="clearfix"></div>
2778                	<div class="clearfix fpad-sm nobpad"></div>
2779    <span class="btn btn-secondary btn-outline btn-sm bold click-to-call-button search_show_phone_button btn-block">
2780		<div class="myPhoneHideParent" onClick="clickToCall(this)" title="Show Phone Number" data-token="12936" style="text-overflow:ellipsis;white-space:nowrap;overflow:hidden;">
2781			<i class="fa fa-phone fa-fw"></i> 
2782			Show Phone Number
2783		</div>
2784        <div class="hide myphoneHide">
2785          <a href="tel:+19052787101"><span class="text-secondary">Call: <u>+1905-278-7101</u></span></a>        </div>
2786    </span>
2787              </div>
2788        </div>
2789		<div class="clearfix"></div>
2790    </div>
2791</div>
2792<div class="clearfix"></div>
2793<hr>
2794<span class="google-pin-location" id="google-pin" data-token="12936"data-hideMessages="0" data-lat="43.52005700" data-lng="-79.62054520" data-name="Physiotherapy & Beyond" data-filename="/canada/mississauga/natural-health/physiotherapy-beyond" data-photo="/logos/profile/limage-13448.jpg" data-phone="+1905-278-7101" data-addon="1"></span><div class="row-fluid member_results level_15 search_result verified_member_result clearfix" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
2795	<meta itemprop="name" content="Maxqsoft">
2796	<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2797	<meta itemprop="position" content="8">
2798		<div itemprop="item" itemscope itemtype="https://schema.org/LocalBusiness" itemid="https://www.atozhealthguide.com/canada/whitby/it-services-1/maxqsoft#entity">
2799		<meta itemprop="name" content="Maxqsoft">
2800		<link itemprop="url" href="https://www.atozhealthguide.com/canada/whitby/it-services-1/maxqsoft">
2801		<link itemprop="image" href="https://www.atozhealthguide.com/logos/profile/limage-84-108-photo.jpg">
2802		<meta itemprop="priceRange" content="$$">
2803		<meta itemprop="telephone" content="4168947217">
2804				<meta itemprop="description" content="Maxqsoft specializes in web design, business directories, and video marketing solutions. They create SEO-optimized websites, explainer videos, and MagaDirectory platform.">
2805				<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
2806			<meta itemprop="streetAddress" content="38 Oceanpearl Crescent">
2807			<meta itemprop="addressLocality" content="Whitby">
2808			<meta itemprop="addressRegion" content="ON">
2809			<meta itemprop="postalCode" content="L1N 8Y5">
2810			<meta itemprop="addressCountry" content="CA">
2811		</div>
2812				<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
2813			<meta itemprop="latitude" content="43.87611990">
2814			<meta itemprop="longitude" content="-78.90536620">
2815		</div>
2816				<link itemprop="mainEntityOfPage" href="https://www.atozhealthguide.com/canada/whitby/it-services-1/maxqsoft#page">
2817	</div>
2818        <div class="grid_element">
2819        <div class="img_section col-xs-2 nopad">
2820            <a title="Maxqsoft - Natural Health" href="/canada/whitby/it-services-1/maxqsoft">
2821								<img class="search_result_image img-rounded center-block lazyloader" loading="auto" width="400" height="400" alt="Maxqsoft" data-src="https://www.atozhealthguide.com/logos/profile/limage-84-108-photo.jpg">
2822				   
2823            </a>
2824        </div>
2825        <div class="mid_section col-xs-10 col-sm-7 norpad">
2826            <span class="postItem" data-userid="84" data-datatype="10" data-dataid="10" data-postid="0"></span><button class="item-post-list-0 favorite fa fa-star" aria-label="LIKE" data-count="0" data-postid="0" data-state="0" data-activefeature="1" data-activefavorite="Supreme Plan"  data-toggle="modal" data-target="#myModal"  ><span id='bookmark-content'>LIKE</span> <span class='' id='number-0'></span></button>            <a class="center-block" title="Maxqsoft" href="/canada/whitby/it-services-1/maxqsoft">
2827                <span class="h3 bold inline-block nomargin member-search-full-name notranslate">
2828                    Maxqsoft                </span>
2829                            </a>
2830			<div class="clearfix fpad-sm nobpad"></div>
2831						<div class="hidden-sm hidden-md hidden-lg center-block small line-height-xl talign mobile-distance-within">
2832				<div class='distance-within'><div class='clearfix'></div></div>			</div>
2833			<div class="clearfix fpad-sm nobpad"></div>
2834						<div class="rmargin inline-block">
2835				<style type='text/css'> .member-search-verified {
2836	display:inline-flex;
2837	align-items:center;
2838	border-radius:100px;
2839	padding:5px 8px;
2840	font-size:11px;
2841	line-height: 1.2em;
2842}
2843.member-search-verified-icon {
2844	font-size:14px;
2845	margin-right:5px;
2846} </style><div class="alert-success-subtle bold inline-block align-middle member-search-verified" title="This member verified their information">
2847	<span class="member-search-verified-icon">
2848		<i class='bi bi-check-circle-fill'></i>
2849	</span>
2850	<span class="member-search-verified-text">
2851		verified
2852	</span>
2853</div>
2854			</div>
2855						<div class="clearfix fpad-sm nobpad"></div>
2856						
2857                        				
2858				<p class="small nomargin member-search-description">
2859					Maxqsoft specializes in web design, business directories, and video marketing solutions. They create SEO-optimized websites, explainer videos, and MagaDirectory platform.				</p>
2860                            <div class="clearfix fpad-sm nobpad"></div>
2861                <span class="member-search-location rmargin">
2862                <i class="fa fa-map-marker text-danger"></i>
2863					<small>
2864						Whitby, Ontario, <span class="inline-block">L1N 8Y5</span>, <span class=inline-block>Canada</span></small></span>        </div>
2865        <div class="info_section hidden-xs col-sm-3 norpad">
2866            <div class="module nomargin fpad-md text-center">
2867                <div class='distance-within'><div class='clearfix'></div></div>                    <div class="clearfix bpad"></div>
2868                				<a 
2869				title="View Listing - Maxqsoft" 
2870				aria-label="View Listing - Maxqsoft" 
2871				class="btn btn-sm btn-primary btn-block bold search_view_listing_button" 
2872				href="/canada/whitby/it-services-1/maxqsoft">View Listing</a>
2873								<div class="clearfix fpad-sm nobpad"></div>
2874				<a 
2875				title="Send Message - Maxqsoft" 
2876				aria-label="Send Message - Maxqsoft" 
2877				class="btn btn-sm btn-secondary btn-block bold search_contact_now_button" 
2878				href="/canada/whitby/it-services-1/maxqsoft/connect">Send Message</a>
2879				<div class="clearfix"></div>
2880                	<div class="clearfix fpad-sm nobpad"></div>
2881    <span class="btn btn-secondary btn-outline btn-sm bold click-to-call-button search_show_phone_button btn-block">
2882		<div class="myPhoneHideParent" onClick="clickToCall(this)" title="Show Phone Number" data-token="84" style="text-overflow:ellipsis;white-space:nowrap;overflow:hidden;">
2883			<i class="fa fa-phone fa-fw"></i> 
2884			Show Phone Number
2885		</div>
2886        <div class="hide myphoneHide">
2887          <a href="tel:4168947217"><span class="text-secondary">Call: <u>4168947217</u></span></a>        </div>
2888    </span>
2889              </div>
2890        </div>
2891		<div class="clearfix"></div>
2892    </div>
2893</div>
2894<div class="clearfix"></div>
2895<hr>
2896<span class="google-pin-location" id="google-pin" data-token="84"data-hideMessages="0" data-lat="43.87611990" data-lng="-78.90536620" data-name="Maxqsoft" data-filename="/canada/whitby/it-services-1/maxqsoft" data-photo="/logos/profile/limage-84-108-photo.jpg" data-phone="4168947217" data-addon="1"></span><div class="row-fluid member_results level_20 search_result  clearfix" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
2897	<meta itemprop="name" content="Precision Movement &amp; Therapies">
2898	<link itemprop="url" href="https://www.atozhealthguide.com/search_results">
2899	<meta itemprop="position" content="9">
2900		<div itemprop="item" itemscope itemtype="https://schema.org/LocalBusiness" itemid="https://www.atozhealthguide.com/canada/winnipeg/physiotherapy/precision-movement-therapies#entity">
2901		<meta itemprop="name" content="Precision Movement &amp; Therapies">
2902		<link itemprop="url" href="https://www.atozhealthguide.com/canada/winnipeg/physiotherapy/precision-movement-therapies">
2903		<link itemprop="image" href="https://www.atozhealthguide.com/logos/profile/limage-27473.jpg">
2904		<meta itemprop="priceRange" content="$$">
2905		<meta itemprop="telephone" content="+1204-943-0751">
2906				<meta itemprop="description" content="Precision Movement &amp; Therapies provides comprehensive physiotherapy and rehabilitation services in Downtown Winnipeg, Manitoba. This multidisciplinary clinic specializ">
2907				<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
2908			<meta itemprop="streetAddress" content="164 Fort St">
2909			<meta itemprop="addressLocality" content="Winnipeg">
2910			<meta itemprop="addressRegion" content="MB">
2911			<meta itemprop="postalCode" content="R3C 1C9">
2912			<meta itemprop="addressCountry" content="CA">
2913		</div>
2914				<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
2915			<meta itemprop="latitude" content="49.89053390">
2916			<meta itemprop="longitude" content="-97.13765090">
2917		</div>
2918				<link itemprop="mainEntityOfPage" href="https://www.atozhealthguide.com/canada/winnipeg/physiotherapy/precision-movement-therapies#page">
2919	</div>
2920        <div class="grid_element">
2921        <div class="img_section col-xs-2 nopad">
2922            <a title="Precision Movement &amp; Therapies - Natural Health" href="/canada/winnipeg/physiotherapy/precision-movement-therapies">
2923								<img class="search_result_image img-rounded center-block lazyloader" loading="auto" width="400" height="400" alt="Precision Movement &amp; Therapies" data-src="https://www.atozhealthguide.com/logos/profile/limage-27473.jpg">
2924				   
2925            </a>
2926        </div>
2927        <div class="mid_section col-xs-10 col-sm-7 norpad">
2928            <span class="postItem" data-userid="22995" data-datatype="10" data-dataid="10" data-postid="0"></span><button class="item-post-list-0 favorite fa fa-star" aria-label="LIKE" data-count="0" data-postid="0" data-state="0" data-activefeature="1" data-activefavorite="import membership data 1"  data-toggle="modal" data-target="#myModal"  ><span id='bookmark-content'>LIKE</span> <span class='' id='number-0'></span></button>            <a class="center-block" title="Precision Movement &amp; Therapies" href="/canada/winnipeg/physiotherapy/precision-movement-therapies">
2929                <span class="h3 bold inline-block nomargin member-search-full-name notranslate">
2930                    Precision Movement &amp; Therapies                </span>
2931                            </a>
2932			<div class="clearfix fpad-sm nobpad"></div>
2933						<div class="clearfix fpad-sm nobpad"></div>
2934						
2935                        				
2936				<p class="small nomargin member-search-description">
2937					Precision Movement & Therapies provides comprehensive physiotherapy and rehabilitation services in Downtown Winnipeg, Manitoba. This multidisciplinary clinic specializ				</p>
2938                            <div class="clearfix fpad-sm nobpad"></div>
2939                <span class="member-search-location rmargin">
2940                <i class="fa fa-map-marker text-danger"></i>
2941					<small>
2942						Winnipeg, Manitoba, <span class="inline-block">R3C 1C9</span>, <span class=inline-block>Canada</span></small></span>        </div>
2943        <div class="info_section hidden-xs col-sm-3 norpad">
2944            <div class="module nomargin fpad-md text-center">
2945                				<a 
2946				title="View Listing - Precision Movement &amp; Therapies" 
2947				aria-label="View Listing - Precision Movement &amp; Therapies" 
2948				class="btn btn-sm btn-primary btn-block bold search_view_listing_button" 
2949				href="/canada/winnipeg/physiotherapy/precision-movement-therapies">View Listing</a>
2950								<div class="clearfix fpad-sm nobpad"></div>
2951				<a 
2952				title="Send Message - Precision Movement &amp; Therapies" 
2953				aria-label="Send Message - Precision Movement &amp; Therapies" 
2954				class="btn btn-sm btn-secondary btn-block bold search_contact_now_button" 
2955				href="/canada/winnipeg/physiotherapy/precision-movement-therapies/connect">Send Message</a>
2956				<div class="clearfix"></div>
2957                	<div class="clearfix fpad-sm nobpad"></div>
2958    <span class="btn btn-secondary btn-outline btn-sm bold click-to-call-button search_show_phone_button btn-block">
2959		<div class="myPhoneHideParent" onClick="clickToCall(this)" title="Show Phone Number" data-token="22995" style="text-overflow:ellipsis;white-space:nowrap;overflow:hidden;">
2960			<i class="fa fa-phone fa-fw"></i> 
2961			Show Phone Number
2962		</div>
2963        <div class="hide myphoneHide">
2964          <a href="tel:+12049430751"><span class="text-secondary">Call: <u>+1204-943-0751</u></span></a>        </div>
2965    </span>
2966              </div>
2967        </div>
2968		<div class="clearfix"></div>
2969    </div>
2970</div>
2971<div class="clearfix"></div>
2972<hr>
2973<span class="google-pin-location" id="google-pin" data-token="22995"data-hideMessages="0" data-lat="49.89053390" data-lng="-97.13765090" data-name="Precision Movement & Therapies" data-filename="/canada/winnipeg/physiotherapy/precision-movement-therapies" data-photo="/logos/profile/limage-27473.jpg" data-phone="+1204-943-0751" data-addon="1"></span></div>
2974<div class="col-md-12 text-center nopad clickToLoadMoreContainer">
2975       <div id="btnToLoadMorePost" class="btn btn-secondary btn-block btn-lg bold clickToLoadMoreBtn " data-page="2" data-lvl="" data-type="10" data-dc="1">Click To Load More Results</div>
2976</div><div class="clearfix clearfix-lg"></div>
2977<style>
2978    .gridBtnLazyLoadOld {
2979        clear: both;
2980        position: absolute;
2981        bottom: -30px;
2982    }
2983	.loadingMore{
2984		 pointer-events: none;
2985	}
2986	.grid-container.visible.row hr {
2987         display: none;
2988    }
2989</style>
2990    <div class="map_container" style="display:none;">
2991        <style type='text/css'> .info_window p {
2992	text-align: center;
2993	font-size: 12px;
2994	margin: 5px 0;
2995}
2996.info_window > a {
2997	display: block;
2998	text-align: center;
2999	margin: 5px 0;
3000}
3001.info_window img {
3002	display: block;
3003	max-width: 125px;
3004	margin: 0 auto;
3005	max-height:80px;
3006}
3007.info_window {
3008	width: 150px;
3009}
3010.gm-style-iw div div {
3011	overflow: visible!important;
3012}
3013#map-canvas {
3014	height: 500px;
3015	margin-bottom: 15px;
3016	width: 100%;
3017}
3018.suggestion-search-location {
3019	margin: 2px 2px;
3020	color: #333;
3021	background-color: #CEDDE9;
3022	display: inline-block;
3023	padding: 5px 11px;
3024}
3025
3026.other-locations-container {
3027	overflow: hidden;
3028	max-height: 32px;
3029	transition: all 0.5s ease 0s;
3030}
3031span.show-more-suggestions {
3032	padding: 5px;
3033	margin: 0px 13px 9px 4px;
3034	display: inline-block;
3035	cursor: pointer;
3036	color: #1a0dab;
3037	font-weight: 500;
3038}
3039span.show-more-suggestions:hover {
3040	text-decoration: underline;
3041}
3042.suggestions-heading {
3043	margin-bottom: 5px;
3044} </style><div data-id="map-canvas"></div>    </div>
3045<script>
3046	 function clickToCall (element, hideFlag=true) {
3047		 if(hideFlag){
3048       	 	$(element).siblings().toggleClass("hide");
3049        	$(element).remove();
3050		} else {
3051			$(element).addClass("hide").siblings().removeClass("hide");
3052		}
3053	 }
3054	</script>
3054
3055                    </div>
3056                </div>
3057					            </div>
3058
3059                        <div class="col-md-3 col-md-pull-9 sidebar-container">            <!--
3060
3061This search module will detect which of the default membership features' search results pages is being viewed and display the related search feature.
3062
3063IMPORTANT: 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.
3064
3065-->
3066
3067<div class="module sidebar-search-member-keyword-location">
3068	<h2>Find Natural Healths</h2>
3069	<form action="/search_results" class="website-search"  accept-charset="UTF-8" method="get">
3070				
3071		<div class="form-group normal-autosuggest">	
3072						<label>What do you need:</label>
3073						<input type="text" name="q" value="" placeholder="Name or Keyword" class="form-control member_search">
3074		</div>
3075		
3076		<div class="form-group">
3077						<label>Search by location:</label>
3078						<input type=text autocomplete="off" placeholder="City or Post Code" class="googleSuggest googleLocation form-control" id="location_google_maps_homepage" name="location_value" value="">
3079		</div>
3080		
3081		<div class="form-group nomargin">
3082			<button class="btn btn-primary btn-block" type="submit">Search Now</button>    
3083		</div>    
3084	</form>
3085</div><div class="module newsletter-sign-up-form">
3086	<h2 class="bpad text-center">Join Our Newsletter</h2>
3087	<a href="#" data-toggle="modal" data-target="#newsletter_subscribe_modal" class="btn btn-primary btn-block">
3088		Click to Subscribe
3089	</a>
3090</div>
3091
3092<div class="modal fade" id="newsletter_subscribe_modal" tabindex="-1" role="dialog" aria-hidden="true">
3093	<div class="modal-dialog">
3094		<div class="modal-content">
3095			<div class="container-fluid">
3096				<div class="row">
3097					<div class="col-md-12">
3098						<br>
3099						<button type="button" class="close" data-dismiss="modal" aria-label="Close">
3100							<span aria-hidden="true">&times;</span>
3101						</button>
3102						<h3 class="nomargin">
3103							Join Our Newsletter
3104						</h3>
3105						<hr>
3106						<div class="newsletter_modal_form_container">
3107							 <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="mysql_real_escape_string_runned" value="1" id="newsletter_modal_signup_380-element-1"/><input type="hidden" name="form" value="myform" id="newsletter_modal_signup_380-element-2"/><input type="hidden" name="formname" value="newsletter_modal_signup" id="newsletter_modal_signup_380-element-3"/><input type="hidden" name="dowiz" value="1" id="newsletter_modal_signup_380-element-4"/><input type="hidden" name="save" value="1" id="newsletter_modal_signup_380-element-5"/><input type="hidden" name="url_origin_pars" value="/search_results" id="newsletter_modal_signup_380-element-6"/><input type="hidden" name="action" autocomplete="off" value="subscribe" id="newsletter_modal_signup_380-element-7"/><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-8"/></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-9"/></div>	<div class="clearfix"></div>
3108	<div class="gdpr_consent_email well bmargin">
3109						<div class="form-group nomargin text-left">
3110					<div class="checkbox nomargin">
3111						<label class="bmargin small"> <input type="checkbox" class="consent_history" name="consent_history[1]" autocomplete="off" value="1" required="required" data-fv-notempty="true" data-fv-notempty-message="You must agree to the GDPR consent terms"/>
3112							<span class="required">* </span> I understand that the email I enter will be stored by the website. I understand that I may be contacted by the Admin of the website at this email.						</label>
3113					</div>
3114				</div>
3115				</div>
3116<div class="form-group"><div class="form-group security_question_label">
3117            <div id="newsletter_modal_signup_380-captchaContainer" class="control-group">
3118        <div class="g-recaptcha"  id="newsletter_modal_signup_380-google-recaptcha"></div>
3119    </div>
3120    <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>
3121    <div class="clearfix bmargin"></div>
3122    <input type="hidden" name="recaptcha" id="newsletter_modal_signup_380-rcap">
3123</div>
3124    <style>
3125        .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 {
3126            transform: scale(0.77);
3127            -webkit-transform: scale(0.77);
3128            transform-origin: 0 0;
3129            -webkit-transform-origin: 0 0;
3130            margin-bottom: -15px;
3131        }
3132
3133        .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 {
3134            transform: scale(0.77);
3135            -webkit-transform: scale(0.77);
3136            transform-origin: 0 0;
3137            -webkit-transform-origin: 0 0;
3138            margin-bottom: -15px;
3139        }
3140    </style>
3141    
3141<script type="text/javascript">
3142        if(typeof formsFound == "undefined"){
3143            var formID                  = '';
3144            var currentCaptcha          = {};
3145            var captchaHolders          = {};
3146            var formsFound              = {};
3147            var captchaApiRequested     = false;
3148            /* The forms the visitor has actually interacted with - only these get a widget. */
3149            var captchaArmedForms       = [];
3150            /* api.js stays lazy - nothing is fetched from Google until the visitor actually
3151               touches the form. 'click' alone was too narrow: a keyboard-only visitor tabs in
3152               and presses Enter without ever clicking, so api.js never loaded, the captcha
3153               never rendered, and the form POSTed an empty token. */
3154            var captchaTriggerEvents    = ['click', 'keydown', 'focusin', 'touchstart'];
3155
3156            window.addEventListener('load', () => {
3157                formID = document.querySelectorAll('[name="recaptcha"]');
3158                if (typeof formID != "undefined" && formID !== null) {
3159                    for (let i = 0; i < formID.length; i++) {
3160                        let formIDForm      = formID[i].closest('form');
3161                        let captchaHolder   = formIDForm.querySelector(".g-recaptcha");
3162
3163                        if (typeof formsFound[formIDForm.id] != "undefined") {
3164                            formsFound[formIDForm.id]['counter']++;
3165                        }else{
3166                            formsFound[formIDForm.id] = {'counter' : 1};
3167                        }
3168
3169                        formIDForm.setAttribute('data-counter', formsFound[formIDForm.id]['counter']);
3170                        captchaHolder.setAttribute('id',captchaHolder.id+'-'+formsFound[formIDForm.id]['counter']);
3171
3172                        if (typeof formIDForm != "undefined" && formIDForm !== null) {
3173                            captchaTriggerEvents.forEach( evt =>
3174                                formIDForm.addEventListener(evt, reCaptchaOnFormInteraction, false)
3175                            );
3176                        }
3177                    }
3178                }
3179            });
3180        }
3181
3182        function reCaptchaOnFormInteraction(event) {
3183            if (event && event.currentTarget) {
3184                captchaArmForm(event.currentTarget);
3185            }
3186            if (captchaApiRequested) {
3187                renderArmedCaptchas();
3188                return;
3189            }
3190            captchaApiRequested = true;
3191
3192            var head    = document.getElementsByTagName('head')[0];
3193            var script  = document.createElement('script');
3194            script.type = 'text/javascript';
3195            script.src  = 'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=en';
3196            head.appendChild(script);
3197        }
3198
3199        var captchaArmForm = function (formEl) {
3200            if (!formEl) {
3201                return;
3202            }
3203            for (var a = 0; a < captchaArmedForms.length; a++) {
3204                if (captchaArmedForms[a] === formEl) {
3205                    return;
3206                }
3207            }
3208            captchaArmedForms.push(formEl);
3209        };
3210
3211        var captchaSolvedCallback = function (holder) {
3212            return function () {
3213                var formEl = holder.closest('form');
3214                if (!formEl) {
3215                    return;
3216                }
3217                $(formEl).find('.security_question_label').removeClass('has-error');
3218                $(formEl).find('#recaptcha_error').css('display', 'none');
3219                var notification = document.getElementById(formEl.id + '-notification');
3220                if (notification && notification.classList.contains('alert-danger-subtle')) {
3221                    $(notification).slideUp();
3222                }
3223            };
3224        };
3225
3226        var renderArmedCaptchas = function () {
3227            if (typeof grecaptcha === "undefined" || typeof grecaptcha.render !== "function") {
3228                return;
3229            }
3230            for (var f = 0; f < captchaArmedForms.length; f++) {
3231                var holder = captchaArmedForms[f].querySelector('div[class=g-rec
3231aptcha]');
3232
3233                if (!holder || !holder.id || holder.getClientRects().length === 0) {
3234                    continue;
3235                }
3236                /* Guard a second render: grecaptcha throws on an element it already claimed. */
3237                if (typeof captchaHolders[holder.id] === "undefined") {
3238                    captchaHolders[holder.id] = grecaptcha.render(holder.id, {
3239                        'sitekey': '6Lf5x7ArAAAAANWNGogazYweb7go-_8lFv3BEpnO',
3240                        'callback': captchaSolvedCallback(holder)
3241                    });
3242                }
3243            }
3244        };
3245
3246        var onloadCallback = function (event) {
3247            renderArmedCaptchas();
3248        };
3249
3250    </script>
vendor: 1 bytes, line 3250
3250
3251<script>
3252    $(document).ready(function(){
3253        /* Implicit submission (Enter inside a field) fires 'submit' without firing a click on
3254           the submit button, so the click guard below never sees it and the form POSTed an
3255           empty token. Bound on document/capture so it runs before FormValidation's own
3256           handler on the form - at AT_TARGET the capture flag does not order listeners, so a
3257           listener on the form itself would not reliably win. Native HTMLFormElement.submit()
3258           does not dispatch 'submit', so the solved-captcha path below is unaffected. */
3259        var captchaGuardedForm = document.getElementById('newsletter_modal_signup_380');
3260        if (captchaGuardedForm) {
3261            document.addEventListener('submit', function (event) {
3262                if (event.target !== captchaGuardedForm) {
3263                    return;
3264                }
3265
3266                var formId              = captchaGuardedForm.id;
3267                var captchaHolderKey    = formId + "-google-recaptcha-" + $(captchaGuardedForm).data('counter');
3268                var captchaRendered     = typeof captchaHolders[captchaHolderKey] != "undefined";
3269
3270                if (captchaRendered && grecaptcha.getResponse(captchaHolders[captchaHolderKey]) !== "") {
3271                    $("#" + formId + " .security_question_label").removeClass("has-error");
3272                    $("#" + formId + " #recaptcha_error").css("display", "none");
3273                    return;
3274                }
3275
3276                /* Unsolved, or api.js still in flight: either way there is no token to send. */
3277                event.preventDefault();
3278                event.stopImmediatePropagation();
3279                $("#" + formId + " .security_question_label").addClass("has-error");
3280                $("#" + formId + " #recaptcha_error").css("display", "block");
3281                return false;
3282            }, true);
3283        }
3284        $("#newsletter_modal_signup_380 input[type=submit]").unbind('click');
3285        $("#newsletter_modal_signup_380 input[type=submit]").click(function (event) {
3286
3287            var formId = $(this.form).attr('id');
3288            var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter');
3289
3290            if (typeof captchaHolders[captchaHolderKey] != "undefined") {
3291                if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") {
3292                    event.preventDefault();
3293                    $("#" + formId).formValidation('validate');
3294                    $("#" + formId + " .security_question_label").addClass("has-error");
3295                    $("#" + formId + " #recaptcha_error").css("display", "block");
3296                    return false;
3297                }
3298
3299                /* Solved captcha: clear the error UI and let the click proceed untouched.
3300                   The browser then fires a REAL, button-initiated submit event, so
3301                   FormValidation runs its normal chain (success.form.fv -> AJAX modal on
3302                   checkout / native POST on login). Re-submitting here artificially broke
3303                   both ways: native form.submit() skips the FV chain (checkout rendered the
3304                   raw JSON response), and jQuery .submit() fires a synthetic submit that FV
3305                   refuses, leaving the form stuck after the first error (Bug 2). */
3306                $("#" + formId + " .security_question_label").removeClass("has-error");
3307                $("#" + formId + " #recaptcha_error").css("display", "none");
3308            }
3309        });
3310    });
3311</script>
3311</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-12"/></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-13"/></div><input type='hidden' name='origin' value='/search_results'></form>
3311<script type="text/javascript">jQuery(document).ready(function() {		jQuery("#newsletter_modal_signup_380").bind("submit", function() { 
3312		});}); </script>
3312 						</div>						
3313						<br>
3314					</div>
3315				</div>
3316			</div>
3317		</div>
3318	</div>
3319</div><div class="module member-join-offer">
3320	<h2>Join Our Community</h2>
3321	<p>
3322		<b>1.</b> Register a member account<br>
3323		<b>2.</b> Create a searchable listing<br> 
3324		<b>3.</b> Connect with more clients
3325	</p>
3326	<a title="Get Listed Today" href="/join" class="btn btn-primary btn-block">Get Listed Today</a>
3327</div>	
3328        </div>
3329        </div>
3330    
3331            <div class="clearfix"></div>
3332    </div>
3333</div>
3334<!-- End Content -->
3335<div class="clearfix footer-clear-element clearfix-lg"></div>
3336
3337<div class="footer">
3338    <div class="container">
3339        <div class="row">
3340            <ul class="footer_menu sm-text-center">
3341                <li class='col-md-5'><span id='link374'  class='head'> About</span><ul><li class=''><span id='link375'  class='content'> Search A to Z Health Guide to find top-rated health businesses, trusted professionals, and valuable wellness information. Whether you're looking for clinics, fitness centers, or expert advice, our directory connects you to the best in health and wellness—all in one easy-to-navigate place. Your health journey starts here!</span></li></ul></li><li class='col-md-2 col-md-offset-1'><span id='link376'  class='head'> Website</span><ul><li class=''><a href='/about' id='link377'>How It Works</a></li><li class=''><a href='/join' id='link378'>List Your Company</a></li><li class=''><a href='/categories' id='link380'>Browse Categories</a></li><li class=''><a href='/locations' id='link381'>Browse Locations</a></li><li class=''><a href='/login' id='link383'>Member Login</a></li><li class=''><a href='/about/contact' id='link384'>Contact Us</a></li></ul></li><li class='col-md-2'><span id='link379'  class='head'> Local Website</span><ul><li class=''><a href='https://www.inmississauga.com' id='link442'>Mississauga Directory</a></li><li class=''><a href='https://www.inoshawa.com' id='link443'>Oshawa Directory</a></li><li class=''><a href='https://www.inajax.com' id='link444'>Ajax Directory</a></li><li class=''><a href='https://www.inpickering.com' id='link445'>Pickering Directory</a></li><li class=''><a href='https://www.inwhitby.com' id='link446'>Whitby Directory</a></li><li class=''><a href='https://www.inthegta.com' id='link437'>GTA Directory</a></li></ul></li><li class='col-md-2'><span id='link382'  class='head'> Our Website</span><ul><li class=''><a href='https://www.legistq.com' id='link433'>Lawyer Directory</a></li><li class=''><a href='https://www.engineeringq.com' id='link434'>Engineering Directory</a></li><li class=''><a href='https://www.edensdirectory.com' id='link441'>Christian Directory</a></li><li class=''><a href='https://www.bridalq.com' id='link435'>Wedding Directory</a></li><li class=''><a href='https://www.torontoweddingbox.com' id='link436'>Toronto Wedding Directory</a></li><li class=''><a href='https://www.atozhealthguide.com' id='link438'>Health Directory</a></li><li class=''><a href='https://www.rehabq.com' id='link439'>Rehab Directory</a></li><li class=''><span id='link440'> </span></li></ul></li><li class='col-md-5 vpad vmargin'><span id='link386'> <style type='text/css'> .network-icon.twitter {
3342     background: black !important; 
3343} </style><div itemscope itemtype="http://schema.org/WebSite">
3344	<meta itemprop="name" content="A to Z health Guide" id="sitename">
3345	<link href="//www.atozhealthguide.com" itemprop="url" id="sitelink">
3346	<div class="list-social-links">
3347		<a class="network-icon contact" href="/about/contact" title="Contact Us A to Z health Guide">
3348			<i class="fa fa-envelope"></i>
3349		</a> 
3350				<a class="network-icon facebook" itemprop="sameAs" href="https://www.facebook.com/mrbusinessgta" target="_blank" title="A to Z health Guide Facebook">
3351			<i class="fa fa-facebook"></i>
3352		</a>
3353								<a class="network-icon image-icon twitter" itemprop="sameAs" href="https://x.com/mrbusiness_ca" target="_blank" title="A to Z health Guide X">
3354			<img alt="A to Z health Guide X" loading="lazy" class="talign img-circle" src="/images/twitter.png" width="40" height="40">
3355		</a>
3356		     
3357		      
3358				<a class="network-icon linkedin" itemprop="sameAs" href="https://www.linkedin.com/in/courtneymaxq" target="_blank" title="A to Z health Guide LinkedIn">
3359			<i class="fa fa-linkedin"></i>
3360		</a>
3361						<a class="network-icon youtube" itemprop="sameAs" href="https://www.youtube.com/channel/UCoIM-XyGhZjWvWLuUON2CUw" target="_blank" title="A to Z health Guide YouTube">
3362			<i class="fa fa-youtube"></i>
3363		</a>
3364		 
3365												<div class="clearfix"></div>
3366	</div>
3367</div></span></li><li class='col-md-6 col-md-offset-1 vpad vmargin'><a href='/join' id='link387'  class='btn btn_footer_get_listed btn-lg btn-block bold center sm-block'>Natural Healths - Get Listed Today</a></li><li class='col-md-12 clearfix vmargin text-center'><span id='link388'> </span><ul><li class='clearfix vmargin vpad inline-block'><span id='link389'> </span></li><li class='btn-lg font-sm  novpad  norpad inline-block'><span id='link390'> © 2026</span></li><li class='font-sm inline-block hpad'><a href='/' id='link391'  title='A to Z health Guide'>
3367A to Z health Guide</a></li><li class='font-sm inline-block'><span id='link392'> All Rights Reserved</span></li><li class='font-sm inline-block hpad'><a href='/about/terms' id='link393'  title='Terms of Use'>Terms of Use</a></li><li class='font-sm inline-block'><a href='/about/privacy' id='link394'  title='Privacy Policy'>Privacy Policy</a></li></ul></li>            </ul>
3368        </div>
3369		    </div>
3370</div><style type='text/css'> .scrollup {
3371  border-radius: 3px;
3372  width: 40px;
3373  height: 40px;
3374  opacity: 0.4;
3375  position: fixed;
3376  bottom: 30px;
3377  right: 30px;
3378  display: none;
3379  background: rgba(119, 119, 119, 0.8);
3380  z-index: 1000000;
3381}
3382.scrollup i {
3383  font-size: 36px;
3384  color: white;
3385  position: relative;
3386  top: 0px;
3387  left: 10px;
3388} </style>            <div class="myModal modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel"
3389                 data-backdrop="static" data-keyboard="false">
3390                <div class="modal-dialog" role="document">
3391                    <div class="modal-content">
3392                        <div class="modal-body nohpad nobpad">
3393                            <button type="button" style="z-index:10;position:absolute;right:15px;" class="close hmargin"
3394                                    data-dismiss="modal">&times;
3395                            </button>
3396                                <style>
3397        .member-login-container:not(.modal .module) {
3398            width: 555px;
3399            max-width: 100%;
3400            margin-left: auto;
3401            margin-right: auto;
3402            margin-bottom:0;
3403            background-color: rgb(250, 250, 250)!important;
3404            border-color: rgb(238, 238, 238)!important;
3405            color: rgb(41, 41, 41)!important;
3406        }
3407        .login-register-tabs, .login-register-content {
3408            width: 555px!important;
3409            max-width: 100%;
3410            margin-left: auto!important;
3411            margin-right: auto!important;
3412            background-color: rgb(238, 238, 238);
3413        }
3414        .login-register-content {
3415            background: transparent;
3416            padding: 0;
3417            border: none;
3418        }
3419        .login-register-content h2, .login-register-content h2+hr, .login-register-content .account-menu-title {
3420            display: none!important;
3421        }
3422        .express_login_create_account_prefix hr {
3423            margin: 15px 0 10px;
3424        }
3425        .modal-content #containerFBLogin, .modal-content #containerGoogleLogin {
3426            margin:15px 0;
3427        }
3428
3429        /* CSS When Login Form and Express Registration Rendered in Sidebar */
3430        .col-md-3 .bd-chat-well-container,.col-md-4 .bd-chat-well-container {
3431            padding: 15px 10px;
3432        }
3433        .col-md-3 .bd-chat-center-text,.col-md-4 .bd-chat-center-text {
3434            margin: 0;
3435            font-size: 20px;
3436            padding: 0 15px;
3437        }
3438        .col-md-3 .member-login-page-container .login-register-tabs *, .col-md-4 .member-login-page-container .login-register-tabs * {
3439            font-size: 12px;
3440            line-height: 1.2em;
3441            vertical-align: bottom;
3442        }
3443        .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {
3444            padding: 5px !important;
3445            height: 50px;
3446            vertical-align: middle;
3447            display: table-cell !important;
3448            width: 1%;
3449        }
3450        .col-md-3 .member-login-page-container .login-register-content, .col-md-4  .member-login-page-container .login-register-content {
3451            padding: 0;
3452        }
3453        .col-md-3 .member-login-container, .col-md-4 .member-login-container {
3454            padding: 15px !important;
3455            font-size: 13px;
3456        }
3457        .col-md-3 .member-login-page-container .input-lg, .col-md-4 .member-login-page-container .input-lg {
3458            height: 34px;
3459            padding: 6px 12px;
3460            font-size: 14px;
3461        }
3462        .col-md-3 .member-login-page-container .security_question_label, .col-md-4 .member-login-page-container .security_question_label {
3463            transform: scale(.85);
3464            margin: -1.15em -1.15em 0;
3465        }
3466        .col-md-3 #containerFBLogin, .col-md-4 #containerFBLogin, .col-md-3 #containerGoogleLogin, .col-md-4 #containerGoogleLogin, .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {
3467            width: 100%;
3468            display: block;
3469            margin-top:5px;
3470        }
3471        .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {
3472            padding:0
3473        }
3474        .col-md-3 .login-cta-buttons ul.nav, .col-md-4 .login-cta-buttons ul.nav {
3475            margin-top: -10px;
3476        }
3477        .col-md-3 #googleAction, .col-md-3 #facebookAction, .col-md-4 #googleAction, .col-md-4 #facebookAction {
3478            padding: 0;
3479            min-height: 0;
3480            font-size: 14px;
3481            margin: 0;
3482        }
3483        .col-md-3 #googleAction img, .col-md-3 #facebookAction img, .col-md-4 #googleAction img, .col-md-4 #facebookAction img {
3484            height: 36px !important;
3485            margin-right: 5px;
3486            position: relative!important;
3487            display: inline-block;
3488        }
3489        @media only screen and (max-width: 767px) {
3490            .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {
3491                display: block !important;
3492                width: 100%;
3493                line-height: 40px;
3494            }
3495
3496            #containerGoogleLogin {
3497                text-align: center;
3498                margin-top: 10px;
3499            }
3500            #containerGoogleLogin #gBtn {
3501                display: inline-block;
3502            }
3503        }
3504    </style>
3505    <div class="row member-login-page-container">
3506        <div class="fpad-lg novpad">
3507
3508            
3509                                    <div class="module fpad-xl member-login-container">
3510                         <style type="text/css">label span.required { color: #B94A48; }span.help-inline, span.help-block {font-size: .9em; }</style><form action="/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" id="member_login_190" method="post" labelwidth="100" labelpaddingtop="0.5em" enctype="multipart/form-data" form_action_type="redirect" form_action_div return_data_type="" name="member_login_190" class=" ">
3510<input type="hidden" name="sized" value="0" id="member_login_190-element-0"/><input type="hidden" name="mysql_real_escape_string_runned" value="1" id="member_login_190-element-1"/><input type="hidden" name="form" value="myform" id="member_login_190-element-2"/><input type="hidden" name="formname" value="member_login" id="member_login_190-element-3"/><input type="hidden" name="dowiz" value="1" id="member_login_190-element-4"/><input type="hidden" name="save" value="1" id="member_login_190-element-5"/><input type="hidden" name="url_origin_pars" value="/search_results" id="member_login_190-element-6"/><input type="hidden" name="action" autocomplete="off" value="login" id="member_login_190-element-7"/><h2 class="nomargin member-login-h2-form-title">Member Login</h2><hr><style type='text/css'> #containerGoogleLogin #gBtn {
3511    display: inline-block;
3512    text-align: center;
3513    width: 216px;
3514}
3515
3516.module #containerFBLogin #facebookAction img, .module #containerFBLogin #facebookAction img {
3517    position: absolute !important;
3518}
3519.module #containerFBLogin a#facebookAction {
3520    max-width: 200px;
3521    position: relative;
3522    left: -8px;
3523    
3524} </style>    <!-- Required Font-Family for Social Buttons -->
3525    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">
3526    <noscript>
3527        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">
3528    </noscript>
3529
3530    <div class="row social-login-row">
3531    </div><div class="form-group"><label class="vertical-label bd-email" for="member_login_190-element-10"><span class="required">* </span>Email Address</label><input type="email" name="email" required placeholder="[email protected]" autocomplete="off" value class="form-control input-lg" id="member_login_190-element-10"/></div><div class="form-group"><label class="vertical-label bd-password" for="member_login_190-element-11"><span class="required">* </span>Password</label>
3532                    <style>
3533                        #togglePassword {
3534                            background: none;
3535                            border: none;
3536                            cursor: pointer;
3537                            font-weight: bold;
3538                            font-size: .85em;
3539                            position: absolute;
3540                            right: 5px;
3541                            top: 0;
3542                        }
3543                    </style><button type="button" tabindex="-1" id="togglePassword" onclick="showPassword(this);"> <i class="fa fa-lock" aria-hidden="true"></i></button>
3544                
3544<script>
3545                    function showPassword(node){
3546                        const parent = node.closest('.form-group');
3547                        const passwordField = parent.querySelector(`input[type='password'], input[type='text']`);
3548                        const isPassword = passwordField.getAttribute('type') === 'password';
3549                        passwordField.setAttribute('type', isPassword ? 'text' : 'password');
3550                        const iconHTML = isPassword ? `<i class="fa fa-unlock" aria-hidden="true"></i>` : `<i class="fa fa-lock" aria-hidden="true"></i>`;
3551                        node.innerHTML = iconHTML;
3552                    }       
3553               </script>
3553<input type="password" name="pass" required placeholder="Enter Password" autocomplete="off" value class="form-control input-lg" id="member_login_190-element-11"/></div><span class="help-block bpad bmargin notmargin"> <a href="/login/retrieval">Forgot Password? Click to Reset Password</a></span><div class="form-group"><div class="form-group security_question_label">
3554            <div id="member_login_190-captchaContainer" class="control-group">
3555        <div class="g-recaptcha"  id="member_login_190-google-recaptcha"></div>
3556    </div>
3557    <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>
3558    <div class="clearfix bmargin"></div>
3559    <input type="hidden" name="recaptcha" id="member_login_190-rcap">
3560</div>
3561    <style>
3562        .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 {
3563            transform: scale(0.77);
3564            -webkit-transform: scale(0.77);
3565            transform-origin: 0 0;
3566            -webkit-transform-origin: 0 0;
3567            margin-bottom: -15px;
3568        }
3569
3570        .modal #member_login_190-captchaContainer, .col-md-4 #member_login_190-captchaContainer, .col-md-3 #member_login_190-captchaContainer, .col-lg-3 #member_login_190-captchaContainer, .col-lg-4 #member_login_190-captchaContainer {
3571            transform: scale(0.77);
3572            -webkit-transform: scale(0.77);
3573            transform-origin: 0 0;
3574            -webkit-transform-origin: 0 0;
3575            margin-bottom: -15px;
3576        }
3577    </style>
3578    
3578<script type="text/javascript">
3579        if(typeof formsFound == "undefined"){
3580            var formID                  = '';
3581            var currentCaptcha          = {};
3582            var captchaHolders          = {};
3583            var formsFound              = {};
3584            var captchaApiRequested     = false;
3585            /* The forms the visitor has actually interacted with - only these get a widget. */
3586            var captchaArmedForms       = [];
3587            /* api.js stays lazy - nothing is fetched from Google until the visitor actually
3588               touches the form. 'click' alone was too narrow: a keyboard-only visitor tabs in
3589               and presses Enter without ever clicking, so api.js never loaded, the captcha
3590               never rendered, and the form POSTed an empty token. */
3591            var captchaTriggerEvents    = ['click', 'keydown', 'focusin', 'touchstart'];
3592
3593            window.addEventListener('load', () => {
3594                formID = document.querySelectorAll('[name="recaptcha"]');
3595                if (typeof formID != "undefined" && formID !== null) {
3596                    for (let i = 0; i < formID.length; i++) {
3597                        let formIDForm      = formID[i].closest('form');
3598                        let captchaHolder   = formIDForm.querySelector(".g-recaptcha");
3599
3600                        if (typeof formsFound[formIDForm.id] != "undefined") {
3601                            formsFound[formIDForm.id]['counter']++;
3602                        }else{
3603                            formsFound[formIDForm.id] = {'counter' : 1};
3604                        }
3605
3606                        formIDForm.setAttribute('data-counter', formsFound[formIDForm.id]['counter']);
3607                        captchaHolder.setAttribute('id',captchaHolder.id+'-'+formsFound[formIDForm.id]['counter']);
3608
3609                        if (typeof formIDForm != "undefined" && formIDForm !== null) {
3610                            captchaTriggerEvents.forEach( evt =>
3611                                formIDForm.addEventListener(evt, reCaptchaOnFormInteraction, false)
3612                            );
3613                        }
3614                    }
3615                }
3616            });
3617        }
3618
3619        function reCaptchaOnFormInteraction(event) {
3620            if (event && event.currentTarget) {
3621                captchaArmForm(event.currentTarget);
3622            }
3623            if (captchaApiRequested) {
3624                renderArmedCaptchas();
3625                return;
3626            }
3627            captchaApiRequested = true;
3628
3629            var head    = document.getElementsByTagName('head')[0];
3630            var script  = document.createElement('script');
3631            script.type = 'text/javascript';
3632            script.src  = 'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=en';
3633            head.appendChild(script);
3634        }
3635
3636        var captchaArmForm = function (formEl) {
3637            if (!formEl) {
3638                return;
3639            }
3640            for (var a = 0; a < captchaArmedForms.length; a++) {
3641                if (captchaArmedForms[a] === formEl) {
3642                    return;
3643                }
3644            }
3645            captchaArmedForms.push(formEl);
3646        };
3647
3648        var captchaSolvedCallback = function (holder) {
3649            return function () {
3650                var formEl = holder.closest('form');
3651                if (!formEl) {
3652                    return;
3653                }
3654                $(formEl).find('.security_question_label').removeClass('has-error');
3655                $(formEl).find('#recaptcha_error').css('display', 'none');
3656                var notification = document.getElementById(formEl.id + '-notification');
3657                if (notification && notification.classList.contains('alert-danger-subtle')) {
3658                    $(notification).slideUp();
3659                }
3660            };
3661        };
3662
3663        var renderArmedCaptchas = function () {
3664            if (typeof grecaptcha === "undefined" || typeof grecaptcha.render !== "function") {
3665                return;
3666            }
3667            for (var f = 0; f < captchaArmedForms.length; f++) {
3668                var holder = captchaArmedForms[f].querySelector('div[class=g-rec
3668aptcha]');
3669
3670                if (!holder || !holder.id || holder.getClientRects().length === 0) {
3671                    continue;
3672                }
3673                /* Guard a second render: grecaptcha throws on an element it already claimed. */
3674                if (typeof captchaHolders[holder.id] === "undefined") {
3675                    captchaHolders[holder.id] = grecaptcha.render(holder.id, {
3676                        'sitekey': '6Lf5x7ArAAAAANWNGogazYweb7go-_8lFv3BEpnO',
3677                        'callback': captchaSolvedCallback(holder)
3678                    });
3679                }
3680            }
3681        };
3682
3683        var onloadCallback = function (event) {
3684            renderArmedCaptchas();
3685        };
3686
3687    </script>
vendor: 1 bytes, line 3687
3687
3688<script>
3689    $(document).ready(function(){
3690        /* Implicit submission (Enter inside a field) fires 'submit' without firing a click on
3691           the submit button, so the click guard below never sees it and the form POSTed an
3692           empty token. Bound on document/capture so it runs before FormValidation's own
3693           handler on the form - at AT_TARGET the capture flag does not order listeners, so a
3694           listener on the form itself would not reliably win. Native HTMLFormElement.submit()
3695           does not dispatch 'submit', so the solved-captcha path below is unaffected. */
3696        var captchaGuardedForm = document.getElementById('member_login_190');
3697        if (captchaGuardedForm) {
3698            document.addEventListener('submit', function (event) {
3699                if (event.target !== captchaGuardedForm) {
3700                    return;
3701                }
3702
3703                var formId              = captchaGuardedForm.id;
3704                var captchaHolderKey    = formId + "-google-recaptcha-" + $(captchaGuardedForm).data('counter');
3705                var captchaRendered     = typeof captchaHolders[captchaHolderKey] != "undefined";
3706
3707                if (captchaRendered && grecaptcha.getResponse(captchaHolders[captchaHolderKey]) !== "") {
3708                    $("#" + formId + " .security_question_label").removeClass("has-error");
3709                    $("#" + formId + " #recaptcha_error").css("display", "none");
3710                    return;
3711                }
3712
3713                /* Unsolved, or api.js still in flight: either way there is no token to send. */
3714                event.preventDefault();
3715                event.stopImmediatePropagation();
3716                $("#" + formId + " .security_question_label").addClass("has-error");
3717                $("#" + formId + " #recaptcha_error").css("display", "block");
3718                return false;
3719            }, true);
3720        }
3721        $("#member_login_190 input[type=submit]").unbind('click');
3722        $("#member_login_190 input[type=submit]").click(function (event) {
3723
3724            var formId = $(this.form).attr('id');
3725            var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter');
3726
3727            if (typeof captchaHolders[captchaHolderKey] != "undefined") {
3728                if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") {
3729                    event.preventDefault();
3730                    $("#" + formId).formValidation('validate');
3731                    $("#" + formId + " .security_question_label").addClass("has-error");
3732                    $("#" + formId + " #recaptcha_error").css("display", "block");
3733                    return false;
3734                }
3735
3736                /* Solved captcha: clear the error UI and let the click proceed untouched.
3737                   The browser then fires a REAL, button-initiated submit event, so
3738                   FormValidation runs its normal chain (success.form.fv -> AJAX modal on
3739                   checkout / native POST on login). Re-submitting here artificially broke
3740                   both ways: native form.submit() skips the FV chain (checkout rendered the
3741                   raw JSON response), and jQuery .submit() fires a synthetic submit that FV
3742                   refuses, leaving the form stuck after the first error (Bug 2). */
3743                $("#" + formId + " .security_question_label").removeClass("has-error");
3744                $("#" + formId + " #recaptcha_error").css("display", "none");
3745            }
3746        });
3747    });
3748</script>
3748</div><div class="form-actions"><input type="submit" value="Login Now" name class="btn btn-primary btn-lg btn-block " id="member_login_190-element-14"/></div><div class="login-cta-buttons"><hr class="cta-hr"><ul class="list-inline nomargin inline-block btn-block"><li class='col-md-12 text-center bold nav'><a href='/join' id='link198'>Don't Have an Account? Get Listed Today</a></li></ul><div class="clearfix"></div></div></form>
3748<script type="text/javascript">jQuery(document).ready(function() {		jQuery("#member_login_190").bind("submit", function() { 
3749		});}); </script>
3749                         <div class="clearfix"></div>
3750                    </div>
3751                
3752            
3753        </div>
3754    </div>
3755                        </div>
3756                    </div>
3757                </div>
3758            </div>
3759            
3760
3761
3762    <link rel="stylesheet" type="text/css" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.css">
3763<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.js"></script>
vendor: 2 bytes, line 3763
3763
3764<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/bundle.umd.min.js" onload="checkAdBlock()" async defer></script>
vendor: 2 bytes, line 3764
3764
3765<script>
3766	
3767		function checkAdBlock() {
3768			justDetectAdblock.detectAnyAdblocker().then(function(detected) {
3769                if(detected){
3770                    swal({
3771                        type: 'error',
3772                                                    title: `AdBlock detected`,
3773                                                    text: `Please Disable AdBlock For Visiting.`,
3774                                                    showConfirmButton: false,
3775                                                    confirmButtonText: 'OK',
3776                                                allowOutsideClick: false,
3777                        focusConfirm: false
3778                    });
3779                }
3780		    });
3781			
3782		}
3783</script>
3783
3784
3785<script>
3786    function clearContent(thisObj){
3787        var size;
3788        if(thisObj.hasClass('input-sm') || thisObj.parents('.input-group').hasClass('input-group-sm')){
3789            size = "small";
3790        } else if (thisObj.hasClass('input-lg') || thisObj.parents('.input-group').hasClass('large-autosuggest')){
3791            size = "large";
3792        } else {
3793            size = "medium";
3794        }
3795        if(!thisObj.parent().hasClass('input_wrapper')){
3796            if(thisObj.parent().hasClass('input-group-sm')){
3797                thisObj.wrap('<span class="input-group-sm input_wrapper"></span>');
3798            } else if (thisObj.parent().hasClass('input-group-lg')){
3799                thisObj.wrap('<span class="input-group-lg input_wrapper"></span>');
3800            } else {
3801                thisObj.wrap('<span class="input_wrapper"></span>');
3802            }
3803        }
3804        if(thisObj.val() != ""){
3805            if(thisObj.hasClass('googleSuggest')){
3806                thisObj.parent().find('.fill_location').remove();
3807            }
3808            if (!thisObj.parent().find('.clear_content').length){
3809                thisObj.parent().append(`<span class="clear_content ${size}"><i class="fa fa-times-circle" aria-hidden="true"></i></span>`);
3810                if (thisObj.hasClass("tt-input")) {
3811            		thisObj.focus();
3812        		}
3813
3814            }
3815        }
3816            }
3817
3818    $(document).on('click', '.drp-buttons .applyBtn', function(){
3819        clearContent($(".dateRange input"));
3820    });
3821
3822    $('.sm-autosuggest input, .googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').keyup(function(){
3823        clearContent($(this));
3824    });
3825
3826    $(document).ready(function(){
3827        $('.sm-autosuggest input, input.googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').each(function(){
3828            clearContent($(this));
3829        })
3830    })
3831
3832    $(document).on('click', '.clear_content', function(){
3833        $(this).parent().find('input').val('');
3834        //tt-input its a class for typeahead auto-suggest
3835        if ($(this).parent().find('input').hasClass("tt-input")) {
3836            $(this).parent().find('input').typeahead('val','');
3837        }
3838        clearContent($(this).parent().find('input'));
3839        $(this).remove();
3840    });
3841
3842	$(window).on('load', function () {
3843		setTimeout(function() {
3844			// add missing href attribute to multi-category options in search modules
3845			$('.bootstrap-select.show-tick .dropdown-menu a').attr('href', '#');
3846		}, 2000);
3847        	});
3848</script>
3848
3849
3850
3851
3852<a href="#" class="scrollup" title="scrollup">
3853    <i class="fa fa-caret-up" aria-hidden="true"></i>
3854</a>
3855<script>
3856        $(document).ready(function(){
3857        // .progressbar() comes from bootstrap-progressbar.min.js, loaded only by widgets 1236/1318.
3858        // Elsewhere it used to fall through to jQuery UI's; jQuery UI is no longer global, so an
3859        // unguarded call throws and kills the rest of this ready() handler (scrollup, crop button).
3860        if ($.fn.progressbar) {
3861            $('.progress .progress-bar').progressbar({
3862                display_text: 'fill'
3863            });
3864        }
3865        $(window).scroll(function(){
3866
3867            if ($(this).scrollTop() > 600) {
3868                $('.scrollup').fadeIn();
3869
3870            } else {
3871                $('.scrollup').fadeOut();
3872            }
3873        });
3874        $('.scrollup').click(function(){
3875            $("html, body").animate({
3876                scrollTop: 0
3877            }, 600);
3878            return false;
3879        });
3880        $('#cropButton').click(function(){
3881            var iframe = $("#cropiFrame");
3882            iframe.attr("src", iframe.data("src"));
3883        });
3884    });
3885</script>
vendor: 2 bytes, line 3885
3885
3886<script defer>
3887    var favoriteMode = "";
3888    var apiEngine = "";
3889    var api = 0;  // Set API to use. Default is 0
3890    var activeMembershipLevelEnable = "";
3891    var favoriteUserClickId = "";
3892    var bookmarkLabel = `LIKE`;
3893    var bookmarkCountLabel = `LIKES`;
3894    var currentButton;
3895
3896    function favoriteOn(lookForAll = false) {
3897        $('.col-md-6.col-md-offset-3').addClass("col-md-12").removeClass('col-md-6 col-md-offset-3');
3898        favoriteMode = 'search';
3899        if ($('.sidebarenabled').data('sidebar')) {
3900            favoriteMode = 'detail';
3901            if (!$('.sidebarenabled').siblings('.postItem').data('userid')) {
3902                $('.sidebarenabled').siblings('.listingData').remove();
3903            }
3904        }
3905        favoriteUserClickId = $('.favorite').data('activeuser');
3906        activeMembershipLevelEnable = $('.favorite').data('activefeatureenable');
3907
3908// Sets the API URL to use based on API value
3909        if (api == 0) {
3910            apiEngine = '/api/data/html/get/data_widgets/widget_name?name=Bootstrap%20Theme%20-%20Function%20-%20Add%20to%20Favorites%20Button';
3911        } else if (api == 1) {
3912            apiEngine = '/api/data/html/get/data_widgets/widget_name?name=Bootstrap Theme - Function - Add to Favorites Button';
3913        } else {
3914            apiEngine = '/api/widget/json/get/Bootstrap Theme - Function - Add to Favorites Button';
3915        }
3916        if (favoriteUserClickId) {
3917            var favoriteCounter = $('.favorite').siblings('.postItem');
3918            if ($('.sidebarenabled').data('sidebar') || lookForAll) {
3919
3920                if (favoriteCounter.length == 1) {
3921                    var favoriteMode = 'detail';
3922                    var favoriteDataType = $('.sidebarenabled').siblings('.postItem').data('datatype');
3923                    var favoriteDataId = $('.sidebarenabled').siblings('.postItem').data('dataid');
3924                    var favoritePostId = $('.sidebarenabled').siblings('.postItem').data('postid');
3925                    var favoriteUserId = [];
3926                    $('.sidebarenabled').siblings('.postItem').each(function () {
3927                        favoriteUserId.push($(this).data('userid'));
3928                    });
3929                } else {
3930                    var favoriteMode = 'multiSidebar';
3931                    var favoriteDataType = [];
3932                    var favoriteDataId = [];
3933                    var favoritePostId = [];
3934                    var favoriteUserId = [];
3935                    $('.postItem').each(function () {
3936                        favoriteDataType.push($(this).data('datatype'));
3937                        favoriteDataId.push($(this).data('dataid'));
3938                        favoritePostId.push($(this).data('postid'));
3939                        favoriteUserId.push($(this).data('userid'));
3940                    });
3941                }
3942            } else {
3943                var favoriteMode = 'search';
3944                var favoriteDataType = $('.favorite').siblings('.postItem').data('datatype');
3945                var favoriteDataId = $('.favorite').siblings('.postItem').data('dataid');
3946                if (lookForAll) {
3947                    favoriteDataType = (favoriteDataType == 10) ? 11 : 10;
3948                }
3949                if (favoriteDataType != 10) {
3950                    var favoritePostId = [];
3951                    $('.postItem').each(function () {
3952                        favoritePostId.push($(this).data('postid'));
3953                    });
3954                    var favoriteUserId = $('.favorite').siblings('.postItem').data('userid');
3955                } else {
3956                    var favoriteUserId = [];
3957                    $('.postItem').each(function () {
3958                        favoriteUserId.push($(this).data('userid'));
3959                    });
3960                    var favoritePostId = $('.favorite').siblings('.postItem').data('postid');
3961                }
3962            }
3963            favoriteCall(favoriteUserClickId, favoriteUserId, favoriteDataType, favoriteDataId, favoritePostId, favoriteMode, 'check');
3964        }
3965    }
3966
3967    $(document).on('click', '.favorite', function (e) {
3968        var favoriteUserClickId = $('.favorite').data('activeuser');
3969        if (favoriteUserClickId && activeMembershipLevelEnable) {
3970            var thisButton = $(this);
3971            currentButton = thisButton;
3972            $(thisButton).attr("disabled", true);
3973                        var favoriteUserClickId = $(this).data('activeuser');
3974            var favoriteUserId = $(this).siblings('.postItem').data('userid');
3975            var favoriteDataType = $(this).siblings('.postItem').data('datatype');
3976            var favoriteDataId = $(this).siblings('.postItem').data('dataid');
3977            var favoritePostId = $(this).siblings('.postItem').data('postid');
3978            $(this).toggleClass('favoriteActive');
3979            if ($(this).data('state') == 0) {
3980                favoriteCall(favoriteUserClickId, favoriteUserId, favoriteDataType, favoriteDataId, favoritePostId, favoriteMode, 'add');
3981                $(this).data('state', 1);
3982            } else {
3983                favoriteCall(favoriteUserClickId, favoriteUserId, favoriteDataType, favoriteDataId, favoritePostId, favoriteMode, 'delete');
3984                $(this).data('state', 0);
3985            }
3986            setTimeout(function () {
3987                $(thisButton).attr("disabled", false);
3988            }, 500);
3989        }
3990    });
3991
3992    function toogleBookmark(node) {
3993        var postId = $(node).data('postid');
3994        var count = $(node).data('count');
3995        var numberNode = $(node).find("#number-" + postId);
3996        var textLabelNode = $(node).find("#bookmark-content");
3997
3998        if ($(node).hasClass('favoriteActive') !== false) {
3999            count--;
4000        } else {
4001            count++;
4002        }
4003
4004        $(node).data("count", count);
4005
4006        if (count > 0) {
4007            $(textLabelNode).html(bookmarkCountLabel);
4008            $(numberNode).html(' (' + count + ')');
4009        } else {
4010            $(textLabelNode).html(bookmarkLabel);
4011            $(numberNode).html('');
4012        }
4013    }
4014
4015    // Function that Adds, Deletes and Selects Favorites from Backend
4016    function favoriteCall(favoriteUserClickId, favoriteUserId, favoriteDataType, favoriteDataId, favoritePostId, favoriteMode, favoriteAction) {
4017        $.post(apiEngine, {
4018            favoriteUserClickId: favoriteUserClickId,
4019            favoriteUserId: favoriteUserId,
4020            favoriteDataType: favoriteDataType,
4021            favoriteDataId: favoriteDataId,
4022            favoritePostId: favoritePostId,
4023            favoriteMode: favoriteMode,
4024            favoriteAction: favoriteAction
4025        }, function (data) {
4026            if (api == 0) {
4027                var splitData = data.split('<split>');
4028                data = splitData[1];
4029            }
4030
4031            if(favoriteAction == "add" && data == "save_favorite_error"){
4032                $(currentButton).trigger('click');
4033                swal({
4034                    type:"warning",
4035                    title: `Action Unavailable`,
4036                    html: `Your account is currently not ACTIVE. <br> Only ACTIVE accounts can perform this action.`,
4037                });
4038            }
4039            
4040            if (data !== null && data !== 'null') {
4041                // Checks if the action 'check' was send
4042                if (favoriteAction == 'check' && favoriteMode != 'multiSidebar') {
4043                    // Checks if we are in a Detail Page
4044                    if (!$('.sidebarenabled').data('sidebar')) {
4045                        // Checks if we are viewing a Member
4046                        if (favoriteDataType != 10) {
4047                            $.each(JSON.parse(data), function (index, value) {
4048                                $('.postItem[data-postid="' + value + '"]').siblings('.favorite').addClass('favoriteActive');
4049                                $('.postItem[data-postid="' + value + '"]').siblings('.favorite').data('state', 1);
4050                            });
4051                        } else {
4052                            $.each(JSON.parse(data), function (index, value) {
4053                                $('.member_results .postItem[data-userid="' + value + '"]').siblings('.favorite').addClass('favoriteActive');
4054                                $('.member_results .postItem[data-userid="' + value + '"]').siblings('.favorite').data('state', 1);
4055                            });
4056                        }
4057                    } else {
4058                        // Checks if we are viewing a Member
4059                        if (favoriteDataType != 10) {
4060                            $.each(JSON.parse(data), function (index, value) {
4061                                $('.sidebarenabled').siblings('.favorite').addClass('favoriteActive');
4062                                $('.sidebarenabled').siblings('.favorite').data('state', 1);
4063                            });
4064                        } else {
4065                            $.each(JSON.parse(data), function (index, value) {
4066                                $('.sidebarenabled').siblings('.favorite').addClass('favoriteActive');
4067                                $('.sidebarenabled').siblings('.favorite').data('state', 1);
4068                            });
4069                        }
4070                    }
4071                } else if (favoriteAction == 'check' && favoriteMode == 'multiSidebar') {
4072                    let totalDataCount = JSON.parse(data);
4073                    if (totalDataCount) {
4074                        totalDataCount = totalDataCount.length;
4075                        for (let i = 0; i < totalDataCount; i++) {
4076                            if (JSON.parse(data)[i].dataQuery != 0) {
4077                                $('.postItem[data-postid="' + JSON.parse(data)[i].postQuery + '"][data-dataid="' + JSON.parse(data)[i].dataQuery + '"]').siblings('.favorite').addClass('favoriteActive');
4078                                $('.postItem[data-postid="' + JSON.parse(data)[i].postQuery + '"][data-dataid="' + JSON.parse(data)[i].dataQuery + '"]').siblings('.favorite').data('state', 1);
4079                            } else {
4080                                /* dataQuery == 0 means a MEMBER favorite (users_favorite dataType 10).
4081                                   Restrict the match to member-type spans: on profile pages the owner's
4082                                   post spans carry the same data-userid, and without this filter one
4083                                   member favorite marked every post button of that owner as saved. */
4084                                $('.postItem[data-userid="' + JSON.parse(data)[i].postQuery + '"][data-datatype="10"]').siblings('.favorite').addClass('favoriteActive');
4085                                $('.postItem[data-userid="' + JSON.parse(data)[i].postQuery + '"][data-datatype="10"]').siblings('.favorite').data('state', 1);
4086                            }
4087                        }
4088                    }
4089                }
4090            }
4091        });
4092    }
4093
4094    // Code that runs once to show all favored posts by a registered user
4095
4096    favoriteOn();
4097    favoriteOn(true);
4098</script>
4098<script>
4099    const listView = document.getElementsByClassName('listView')[0];
4100    const gridView = document.getElementsByClassName('gridView')[0];
4101    const queryString = {"sized":0,"mysql_real_escape_string_runned":"1","form":"myform","formname":"member_login","dowiz":1,"save":1,"url_origin_pars":"\/search_results"};
4102    const profId = ``;
4103    const servId =null;
4104    const countryId = ``;
4105    const stateId = ``;
4106    const cityId = ``;
4107    const seed = `630063428`;
4108    const profs = {"new_filename":"search_results"};
4109    const btnPositionInside = document.querySelector('.grid-container .clickToLoadMoreContainer');
4110    const btnPositionOutside = document.querySelector('.grid-container ~ .clickToLoadMoreContainer');
4111    const amountToSum = 9;
4112    let currentAmountText = document.querySelector('.current__amount__js');
4113    let totalAmount = document.querySelector('.total__js');
4114    let btnClickMore = document.getElementsByClassName('clickToLoadMoreBtn')[0];
4115    let btnClickMoreContainer = document.getElementsByClassName('clickToLoadMoreContainer')[0];
4116    let flagFirstTime = true;
4117    let autoLoadResults = true;
4118    let lastElementPost ;
4119    if(typeof totalAmount !== "undefined" && totalAmount !== null){
4120        let removeCommasAndDots = /[.,\s]/g;
4121        totalAmount = totalAmount.innerHTML.replace(removeCommasAndDots, '');
4122    }
4123    /*event listener*/
4124    if (typeof btnClickMore !== "undefined") {
4125        btnClickMore.addEventListener('click',  function (event) {
4126            let viewIcons = document.querySelectorAll('.views i.gridView.activeView')[0];
4127            let featureDCId = this.dataset.dc;
4128            let currentPage = this.dataset.page;
4129            let dataType = this.dataset.type;
4130            let levId = this.dataset.lvl;
4131            this.dataset.page = parseInt(currentPage) + 1;
4132            let url = `/wapi/widget`;
4133            let currentBTN = this;
4134            let currentHTML = this.innerHTML;
4135            lastElementPost = document.querySelectorAll('.search_result');
4136            this.classList.add('loadingMore');
4137            this.innerHTML = `<i class="fa fa-circle-o-notch fa-spin fa-fw"></i> Loading...`;
4138            let formData = new FormData();
4139            autoLoadResults=false;
4140            setClassLoaded();
4141
4142            formData.append('dc_id', featureDCId);
4143            formData.append('header_type', 'html');
4144            formData.append('request_type', 'POST');
4145            formData.append('currentPage', currentPage);
4146            formData.append('dataType', dataType);
4147            formData.append('queryString', JSON.stringify(queryString));
4148            formData.append('profId', profId);
4149            formData.append('servId', JSON.stringify(servId));
4150            formData.append('countryId', countryId);
4151            formData.append('stateId', stateId);
4152            formData.append('cityId', cityId);
4153            formData.append('levId', levId);
4154            formData.append('seed', seed);
4155            formData.append('profsPost', JSON.stringify(profs));
4156            formData.append('widget_name', 'Add-On - Bootstrap Theme - Search - Lazy Loader');
4157            let myInit = {
4158                method: 'POST',
4159                body: formData
4160            };
4161            fetch(url, myInit)
4162                .then(function (response) {
4163                    return response.text();
4164                }).then(function (html) {
4165                let parser = new DOMParser();
4166
4167                // Parse the text
4168                let result = parser.parseFromString(html, "text/html");
4169                let newResultsHTML = result.getElementById('grabHTML__js').innerHTML;
4170                autoLoadResults =true;
4171                let amountOfClicks = result.getElementById('grabHTML__js').dataset.pages;
4172
4173                var countBefore = $('.grid-container .search_result').length;
4174
4175                if (typeof btnPositionOutside !== "undefined" && btnPositionOutside !== null) {
4176                    $('.grid-container').append(newResultsHTML);
4177                }
4178                if (typeof btnPositionInside !== "undefined" && btnPositionInside !== null || btnPositionOutside === null && dataType == 13) {
4179                    $('.clickToLoadMoreContainer').before(newResultsHTML);
4180                }
4181
4182                // Fade in only the actually new results
4183                var newCount = $('.grid-container .search_result').length - countBefore;
4184                var $allNew = $('.grid-container .search_result').slice(-newCount);
4185                $allNew.css({opacity: 0, transition: 'opacity 0.4s ease'});
4186
4187                currentBTN.innerHTML = currentHTML; // default html
4188                currentBTN.classList.remove('loadingMore');
4189
4190                if (typeof viewIcons !== 'undefined') {
4191                    applyGridClasses($allNew);
4192                    // Recalculate gridBreak classes and hide clearfix/hr between grid items
4193                    $('.gridBreak').removeClass('gridBreak');
4194                    /* Row-break stride must follow the column class actually on the page, same rule as applyGridClasses */
4195                    var bdGridFourPerRow = $('.grid-container .search_result.col-md-3.grid').length > 0;
4196                    $('.grid-container.visible > hr:nth-of-type(' + (bdGridFourPerRow ? '4n' : '3n') + ')').addClass('gridBreak');
4197                    $('.grid-container .col-md-4 + .clearfix:not(.search_result), .grid-container .col-md-3 + .clearfix:not(.search_result), .grid-container .clearfix + hr, .grid-container hr + .clearfix:not(.search_result)').hide();
4198                    if (typeof masonry_opened !== 'undefined' && masonry_opened == 1) {
4199                        setTimeout(function(){
4200                            $('.grid-container').masonry('appended', $allNew);
4201                            setTimeout(function(){ $allNew.css('opacity', 1); }, 100);
4202                            checkAllImagesLoaded();
4203                        }, 500);
4204                    } else {
4205                        setTimeout(function(){ $allNew.css('opacity', 1); }, 100);
4206                        checkAllImagesLoaded();
4207                    }
4208                } else {
4209                    setTimeout(function(){ $allNew.css('opacity', 1); }, 50);
4210                }
4211                if (typeof favoriteOn == 'function') {
4212                    favoriteOn();
4213                }
4214                if (typeof runRoyalSlider == 'function') {
4215                    runRoyalSlider();
4216                }
4217
4218                setAmountPages(currentBTN, amountOfClicks);
4219                if (typeof currentAmountText !== "undefined" && currentAmountText !== null) {
4220                    let newAmount = parseInt(currentAmountText.innerHTML) + parseInt(amountToSum);
4221                    if (newAmount >= parseInt(totalAmount)) {
4222                        newAmount = document.querySelector('.total__js').innerHTML;
4223                    }
4224                    currentAmountText.innerHTML = newAmount.toString()
4225                }
4226                if (typeof google != "undefined" && google.hasOwnProperty('maps')){
4227                    if (typeof initializeMapSR == 'function') {
4228                        initializeMapSR();
4229                    }else{
4230                        $('.mapView.activeView').click();
4231                    }
4232                }
4233            }).catch((error) => {
4234                console.error('Error:', error);
4235            });
4236        });
4237        // Check if insta_load_btn_behavior is set
4238        
4239    }
4240    if (typeof gridView !== "undefined" && typeof btnClickMoreContainer !== "undefined") {
4241        gridView.addEventListener('click', function () {
4242            gridView.classList.add('activeView');
4243            if (gridView.classList.contains('activeView')) {
4244                btnClickMoreContainer.classList.add('gridBtnLazyLoad');
4245            } else {
4246                btnClickMoreContainer.classList.remove('gridBtnLazyLoad');
4247            }
4248        });
4249    }
4250    if (typeof listView !== "undefined" && typeof btnClickMoreContainer !== "undefined") {
4251
4252        listView.addEventListener('click', function () {
4253            listView.classList.add('activeView');
4254            if (listView.classList.contains('activeView')) {
4255                btnClickMoreContainer.classList.remove('gridBtnLazyLoad');
4256            } else {
4257                btnClickMoreContainer.classList.add('gridBtnLazyLoad');
4258            }
4259        });
4260    }
4261
4262    function setAmountPages(btn, amount) {
4263        if (!("pages" in btn.dataset)) {
4264            btn.dataset.pages = parseInt(amount) - 1; // we do -1 because the one just clicked
4265        } else {
4266            btn.dataset.pages = parseInt(btn.dataset.pages) - 1;
4267        }
4268        if (btn.dataset.pages <= 0) {
4269            removeListenToScroll();
4270            btn.remove();
4271        }
4272    }
4273
4274    function setClassLoaded() {
4275        if (flagFirstTime) {
4276            flagFirstTime = false;
4277            let images = document.querySelectorAll('.grid-container img:not(.loaded)');
4278            images.forEach(image => {
4279                image.classList.add("loaded");
4280            });
4281        }
4282    }
4283    function applyGridClasses($el) {
4284        $el.find('.img_section.col-xs-2').removeClass('col-xs-2').addClass('col-xs-12 bmargin ex-col-2');
4285        $el.find('.img_section.col-sm-3').removeClass('col-sm-3').addClass('col-sm-12 bmargin ex-col-3');
4286        $el.find('.img_section.col-sm-4').removeClass('col-sm-4').addClass('col-sm-12 bmargin ex-col-4');
4287        $el.find('.mid_section.col-sm-9').removeClass('col-sm-9').addClass('col-sm-12 ex-col-9');
4288        $el.find('.mid_section.col-sm-6').removeClass('col-sm-6').addClass('col-sm-12 ex-col-6');
4289        $el.find('.mid_section.col-sm-7').removeClass('col-sm-7').addClass('col-sm-12 nohpad ex-col-7 text-center bpad');
4290        $el.find('.mid_section.col-sm-8').removeClass('col-sm-8').addClass('col-sm-12 ex-col-8 nohpad bpad');
4291        $el.find('.mid_section .post-location-snippet').addClass('text-center');
4292        $el.find('.mid_section.ex-col-7 .sm-block').addClass('show');
4293        $el.find('.mid_section .row-fluid.bpad .col-md-8').removeClass('col-md-8').addClass('col-sm-12 bmargin');
4294        $el.find('.mid_section .row-fluid.bpad a').addClass('btn-block');
4295        $el.find('.mid_section .row-fluid.bpad').addClass('text-center');
4296        $el.find('.info_section').removeClass('col-sm-3 norpad').addClass('col-sm-12 nopad');
4297        $el.find('.mid_section > div > p').addClass('text-center');
4298        $el.find('.mid_section h2').addClass('nomargin');
4299        $el.find('.mid_section a.h3').addClass('text-center h4 tmargin');
4300        $el.find('.mid_section .view-details').removeClass('rmargin');
4301        $el.find('.mid_section .contact-member').removeClass('lmargin');
4302        $el.find('.member-search-full-name').removeClass('rmargin');
4303        $el.find('.member-search-reviews').removeClass('rmargin');
4304        $el.find('.member-search-location').removeClass('rmargin rpad');
4305        $el.find('.member-search-company').addClass('btn-block');
4306        $el.find('.view_phone_number').addClass('center-block');
4307        $el.find('.phone_number').addClass('btn-block');
4308        $el.find('.search_result_image').addClass('grid_image');
4309        $el.find('.post-search-category').removeClass('inline-block').addClass('text-center');
4310        $el.find('.post-results-star').removeClass('pull-right').addClass('text-center tmargin');
4311        /* Mirror the column class the initial conversion (widget 2294) already applied - re-evaluating the conditions here can disagree and mix 3-per-row with 4-per-row; 2294 owns the decision (incl. the Web Page sidebar override) */
4312        if ($('.grid-container .search_result.col-md-3.grid').not($el).length > 0) {
4313            $el.addClass('col-xs-12 col-sm-3 col-md-3 grid').removeClass('row-fluid');
4314        } else {
4315            $el.addClass('col-xs-12 col-sm-4 col-md-4 grid').removeClass('row-fluid');
4316        }
4317        $el.find('.grid_element').addClass('well xs-center-block');
4318        $el.find('.col-md-3 + .clearfix, .col-md-4 + .clearfix, .clearfix + hr, hr + .clearfix, .mid_section > p, .mid_section .row-fluid.bpad p.nomargin, .tags, table.bmargin,.posted-by,.star_rating .the-rating-text').hide();
4319        $el.find('h2.h3.bold > a').addClass('gridA');
4320        $el.find('.info_section .module').removeClass('module fpad');
4321    }
4322
4323    function refreshUI(){
4324        if (typeof masonry_opened !== 'undefined' && masonry_opened == 1) {
4325            $('.grid-container').masonry('layout');
4326        }
4327    }
4328    function checkAllImagesLoaded() {
4329        let images = document.querySelectorAll('.grid-container img:not(.loaded)');
4330        let countImg = 0;
4331
4332        if (images.length === 0) {
4333            refreshUI();
4334            return;
4335        }
4336
4337        images.forEach(image => {
4338            image.classList.add("loaded");
4339
4340            if (image.complete) {
4341                countImg++;
4342                if (countImg === images.length) {
4343                    refreshUI();
4344                }
4345                return;
4346            }
4347
4348            image.addEventListener('load', () => {
4349                countImg++;
4350                if (countImg === images.length) {
4351                    refreshUI()
4352                }
4353            });
4354            image.addEventListener('error', () => {
4355                countImg++;
4356                if (countImg === images.length) {
4357                    refreshUI()
4358                }
4359            });
4360        });
4361
4362    }
4363
4364    // Variables
4365    let userStartedScrolling = false;  // Flag to check if the user has started scrolling
4366    let wasPreviouslyInViewport = false;  // To track if the button was in the viewport previously
4367
4368
4369    // Function to remove the scroll event listener
4370    function removeListenToScroll(){
4371        window.removeEventListener('scroll', listenToScroll);
4372    }
4373
4374    // Function to check button visibility and load content
4375    function listenToScroll() {
4376        const isInViewport = isElementInViewport(btnClickMore);
4377
4378        // Check if the button has just entered the viewport
4379        const justEnteredViewport = !wasPreviouslyInViewport && isInViewport;
4380
4381        // If button just entered the viewport, user has started scrolling, and autoLoadResults is true
4382        if (userStartedScrolling && justEnteredViewport && autoLoadResults) {
4383            // Add a delay (2 seconds) before automatically clicking the button to load content
4384            setTimeout(function() {
4385                btnClickMore.click();
4386                autoLoadResults = false; // Set the flag too false to avoid subsequent auto-clicks
4387            }, 2000);
4388        }
4389
4390        // If the button is out of the viewport, reset autoLoadResults
4391        if (!isInViewport) {
4392            autoLoadResults = true;
4393        }
4394
4395        // Update the previous viewport status for the next check
4396        wasPreviouslyInViewport = isInViewport;
4397    }
4398
4399    // Function to determine if a DOM element is in the viewport
4400    function isElementInViewport(el) {
4401        const rect = el.getBoundingClientRect();
4402        return (
4403            rect.top >= 0 &&
4404            rect.left >= 0 &&
4405            rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
4406            rect.right <= (window.innerWidth || document.documentElement.clientWidth)
4407        );
4408    }
4409
4410</script>
vendor: 2 bytes, line 4410
4410
4411<script type="text/javascript">
4412
4413
4414
4415    //function to get url GET parameters
4416    function getUrlParameter(sParam) {
4417        var sPageURL = window.location.search.substring(1);
4418        var sURLVariables = sPageURL.split('&');
4419
4420        for (var i = 0; i < sURLVariables.length; i++) {
4421            var sParameterName = sURLVariables[i].split('=');
4422            if (sParameterName[0] == sParam) {
4423                return decodeURIComponent(sParameterName[1]);
4424            }
4425        }
4426    }
4427
4428    //stating variables for the first initialize of the sidebar map
4429    var mapSR;
4430    var geocoder;
4431    var mapSRLat = parseFloat(getUrlParameter('lat'));
4432    var mapSRLng = parseFloat(getUrlParameter('lng'));
4433    var theZoom = 8;
4434    var bounds;
4435    if (isNaN(mapSRLat) || isNaN(mapSRLng)) {
4436
4437        mapSRLat = parseFloat(42.877742);
4438        mapSRLng = parseFloat(-97.380979);
4439        theZoom = parseFloat('6');
4440    }
4441    //function that initializes the creation of the google map
4442    function setJsMapSR(element=null) {
4443        if (window['setJsMapSR_var'] ===true) {
4444            return;
4445        }
4446        if(element == null){
4447            element = document.getElementById('map-canvas');
4448            if (element === null) {
4449                element = document.querySelector('div[data-id]');
4450            }
4451        }
4452        window['setJsMapSR_var']=true;
4453                var styles = [{"featureType":"landscape","stylers":[{"hue":"#FFBB00"},{"saturation":43.400000000000006},{"lightness":37.599999999999994},{"gamma":1}]},{"featureType":"road.highway","stylers":[{"hue":"#FFC200"},{"saturation":-61.8},{"lightness":45.599999999999994},{"gamma":1}]},{"featureType":"road.arterial","stylers":[{"hue":"#FF0300"},{"saturation":-100},{"lightness":51.19999999999999},{"gamma":1}]},{"featureType":"road.local","stylers":[{"hue":"#FF0300"},{"saturation":-100},{"lightness":52},{"gamma":1}]},{"featureType":"water","stylers":[{"hue":"#0078FF"},{"saturation":-13.200000000000003},{"lightness":2.4000000000000057},{"gamma":1}]},{"featureType":"poi","stylers":[{"hue":"#00FF6A"},{"saturation":-1.0989010989011234},{"lightness":11.200000000000017},{"gamma":1}]}];
4454            var styledMap = new google.maps.StyledMapType(styles, {name: "Styled Map"});
4455        
4456        let mapDivElement = element;
4457        if (typeof mapDivElement !== undefined && mapDivElement != null) {
4458            var mapSROptions = {
4459                center: {lat: mapSRLat, lng: mapSRLng},
4460                mapTypeControlOptions: {mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style']},
4461                mapTypeControl: false,
4462                zoom: theZoom,
4463                controlSize: 26,
4464                mapSRTypeControl: false,
4465                streetViewControl: false,
4466                scrollwheel: false
4467            };
4468            mapSR = new google.maps.Map(mapDivElement, mapSROptions);
4469                        mapSR.mapTypes.set('map_style', styledMap);
4470            mapSR.setMapTypeId('map_style');
4471            
4472            //This piece of code will create an autosuggest for every input with the class "googleSuggest"
4473            var counter = 1;
4474            var inputsArray = [];
4475            initializeMapSR(); // add markers
4476        }
4477    }
4478
4479    function isFloat(value) {
4480        value = parseFloat(value);
4481        if (
4482            typeof value === 'number' &&
4483            !Number.isNaN(value) &&
4484            !Number.isInteger(value)
4485        ) {
4486            return true;
4487        }
4488
4489        return false;
4490    }
4491
4492    function initializeMapSR() {
4493        //the markers process will only happen if there are spans with the class "google-pin-location"
4494        if ($('.google-pin-location:not(".marker-pin")').length > 0) {
4495            //array with all the markers
4496            var markersArray = [];
4497            // variable to close the last window
4498            var closeLastWindows = null;
4499            if (window['google_bounds'] != true) {
4500                window['google_bounds'] = true;
4501                bounds = new google.maps.LatLngBounds();
4502            }
4503            //function that will set a marker on the map for each user location
4504            $('.google-pin-location:not(".marker-pin")').each(function () {
4505                $(this).addClass('marker-pin');
4506                if( !isFloat($(this).attr("data-lat"))  ||  !isFloat($(this).attr("data-lng"))){
4507                    return;
4508                }
4509
4510                // Making the icon
4511                var iconImage = '/images/marker.png';
4512                //var markerLatLng = parseFloat($(this).attr("data-lat"))+","+parseFloat($(this).attr("data-lng"));
4513                var markerLatLng = {lat:parseFloat($(this).attr("data-lat")),lng:parseFloat($(this).attr("data-lng"))};
4514                var markerName = $(this).attr("data-name");
4515                var marker = new google.maps.Marker({
4516                    position: markerLatLng,
4517                    map: mapSR,
4518                    icon: iconImage,
4519                    title: markerName
4520                });
4521                bounds.extend(markerLatLng);
4522                var hideLink = $(this).attr('data-hideMessages');
4523                                var phonehtml = '';
4524                if ($(this).attr("data-phone") != "") {
4525                    phonehtml = '<p class="btn-xs btn-default btn-block"><i class="fa fa-phone fa-fw"></i>' + $(this).attr("data-phone") + '</p>';
4526                                        if ($(this).attr("data-addon") == 1) {
4527                        phonehtml = '<div class="btn btn-xs btn-block btn-secondary btn-outline js-btn" onClick="clickToCall(this, false)" title="Show Phone Number" data-token="' + $(this).attr("data-token") +'">Show Phone Number</div><p class="hide btn-phone btn btn-xs btn-block tmargin btn-secondary btn-outline"><i class="fa fa-phone fa-fw"></i> <a href="tel:' + $(this).attr("data-phone") +'"><span class="text-secondary">' + $(this).attr("data-phone") + '</span></a></p>';
4528                    }
4529                                    }
4530
4531                if (hideLink == 1) {
4532                    marker['infowindow'] = new google.maps.InfoWindow({
4533                        content: `<div class="info_window">
4534                                        <img src="` + $(this).attr("data-photo") + `">` +
4535                            `<a class="h5 bold" href=` + $(this).attr("data-filename") + `>`
4536                            + $(this).attr("data-name") +
4537                            `</a>`
4538                            + phonehtml +
4539                            `<a class="btn btn-xs btn-success btn-block view_profile" href=` + $(this).attr("data-filename") + `>
4540                                            View Listing
4541                                        </a>` +
4542                            `</div>`
4543                    });
4544                } else {
4545                    marker['infowindow'] = new google.maps.InfoWindow({
4546                        content: `<div class="info_window">
4547                                        <img src="` + $(this).attr("data-photo") + `">` +
4548                            `<a class="h5 bold" href=` + $(this).attr("data-filename") + `>`
4549                            + $(this).attr("data-name") +
4550                            `</a>`
4551                            + phonehtml +
4552                            `<a class="btn btn-xs btn-primary btn-block view_profile" href=` + $(this).attr("data-filename") + `>
4553                                            View Listing
4554                                        </a>` +
4555                            `<a class="btn btn-xs btn-secondary btn-block contact_now" href=` + $(this).attr("data-filename") + `/connect>
4556                                            Send Message
4557                                        </a>` +
4558                            `</div>`
4559                    });
4560                }
4561                                // assuming you also want to hide the infowindow when user mouses-out
4562
4563                function closeInfoWindows() {
4564                    if (closeLastWindows != null) {
4565                        closeLastWindows.close();
4566                    }
4567                }
4568
4569                var typeOfListener = 'mouseover'; // by default for desktop
4570                                google.maps.event.addListener(marker, typeOfListener, function () {
4571                    if (window['mapCloseTimeout']) {
4572                        clearTimeout(window['mapCloseTimeout']);
4573                    }
4574                    closeInfoWindows();
4575                    closeLastWindows = this['infowindow'];
4576                    this['infowindow'].open(mapSR, this);
4577                });
4578
4579                // Close infowindow when mouse leaves the marker (desktop only)
4580                if (typeOfListener === 'mouseover') {
4581                    google.maps.event.addListener(marker, 'mouseout', function () {
4582                        var self = this;
4583                        window['mapCloseTimeout'] = setTimeout(function () {
4584                            self['infowindow'].close();
4585                            if (closeLastWindows === self['infowindow']) {
4586                                closeLastWindows = null;
4587                            }
4588                        }, 300);
4589                    });
4590                }
4591
4592            });
4593
4594            // Keep infowindow open when mouse hovers over its content (desktop only)
4595            $(document).on('mouseenter', '.gm-style-iw', function () {
4596                if (window['mapCloseTimeout']) {
4597                    clearTimeout(window['mapCloseTimeout']);
4598                }
4599            }).on('mouseleave', '.gm-style-iw', function () {
4600                if (closeLastWindows != null) {
4601                    closeLastWindows.close();
4602                    closeLastWindows = null;
4603                }
4604            });
4605
4606            mapSR.fitBounds(bounds);
4607        }
4608        if ($('#map-canvas').length > 0) {
4609            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>";
4610            $('body').append(cssHideLogo);
4611
4612        } else {
4613            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>";
4614            $('body').append(cssHideLogo);
4615        }
4616    }
4617
4618    function showPhone(elemente) {
4619  $(elemente).addClass("hide").siblings().removeClass("hide");
4620}
4621    function initGMap() {
4622		
4623			// Check if the map is loaded.
4624			const mapIconView = document.querySelector('.mapView');
4625			if (typeof mapIconView !== undefined && mapIconView != null) {
4626				mapIconView.addEventListener('click', initGMap);
4627				mapIconView.removeEventListener('click', initGMap);
4628			}
4629			const mapDivID = document.getElementById('map-canvas');
4630
4631			if (typeof google === 'object' && google.hasOwnProperty('maps')) {
4632				// Set the map source.
4633				setJsMapSR(mapDivID);
4634			} else {
4635				// If the map is not loaded, wait for it to load before setting the source.
4636				googleMapOnFormClick().then(() => {
4637					setJsMapSR(mapDivID);
4638				});
4639			}
4640
4641			    }
4642
4643    window.addEventListener('load', () => {
4644        // Get the lazy map div, either by data-id or by ID.
4645        const lazyMapDiv = document.querySelector('div[data-id]')
4646        const mapDivID = document.getElementById('map-canvas');
4647        // Add a delay to allow the map to load before initializing it.
4648        setTimeout(() => {
4649            // Check if the map div exists.
4650            if (typeof lazyMapDiv !== "undefined" && lazyMapDiv !== null) {
4651                lazyMapDiv.id = lazyMapDiv.dataset.id;
4652                let mapIconView = document.querySelector('.mapView');
4653                if (typeof mapIconView !== undefined && mapIconView != null) {
4654                    mapIconView.addEventListener('click', initGMap);
4655                    // If map view is already active, initialize immediately
4656                    if (mapIconView.classList.contains('activeView')) {
4657                        initGMap();
4658                    }
4659                }
4660            } else if (typeof mapDivID !== "undefined" || mapDivID !== null) {
4661                // Initialize the map.
4662                initGMap();
4663            }
4664        }, 500);
4665    });
4666</script>
4666<script>
4667
4668$('.view_phone_number').click(function(event){
4669  event.preventDefault();
4670  $(this).hide();
4671  $(this).next('span.phone_number').css("display","inline-block");  
4672});
4673</script>
4673
4674
4675
4676        
4676<script type="text/javascript">
4677    /* CT dissolved its county governments in 1960, so Google returns its 8 counties as
4678       colloquial_area instead of administrative_area_level_2 — they must never reach a
4679       city field. Google translates the component name to the site language, so the
4680       language-stable place_id is checked first and the word list only backs it up. */
4681    if (typeof window.bdIsColloquialCounty !== 'function') {
4682        window.bdIsColloquialCounty = function (componentName, resultPlaceId) {
4683            var countyPlaceIds = [
4684                'ChIJWRM2Nakw5okRoTCxHvz_5xw', /* Middlesex County, CT */
4685                'ChIJmeTbuDYH6IkR3xgeNvszpgg', /* Fairfield County, CT */
4686                'ChIJiT24cvvP54kR2fSPHkp0Akc', /* New Haven County, CT */
4687                'ChIJvYe7N7eQ54kRL6nZaXRwPkI', /* Litchfield County, CT */
4688                'ChIJtxC3p6qs54kRIvK-2bctar0', /* Hartford County, CT */
4689                'ChIJj-lvZQli5okRGCuGRd6xKt0', /* Tolland County, CT */
4690                'ChIJRWKqeLdi5okRLXWDlSEGeTY', /* Windham County, CT */
4691                'ChIJwTIQbvVv5okRU5_gSJczUTQ'  /* New London County, CT */
4692            ];
4693
4694            if (typeof resultPlaceId === 'string' && resultPlaceId !== ''
4695                && countyPlaceIds.indexOf(resultPlaceId) !== -1) {
4696                return true;
4697            }
4698
4699            if (typeof componentName !== 'string' || componentName === '') {
4700                return false;
4701            }
4702
4703            var name = componentName.toLowerCase();
4704
4705            /* Only unambiguous county words — generic ones (region, district) would strip
4706               legitimate colloquial areas, and their languages already match on place_id.
4707               Word-boundary matched so names like "Countyline, OK" are left alone. */
4708            var wordTokens = ['county', 'condado', 'comté', 'contea',
4709                              'comitatul', 'hrabstwo', 'megye', 'konderria'];
4710            var isAlnum = function (ch) {
4711                return (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9');
4712            };
4713
4714            for (var t = 0; t < wordTokens.length; t++) {
4715                var token = wordTokens[t];
4716                var from = 0;
4717                while (true) {
4718                    var at = name.indexOf(token, from);
4719                    if (at === -1) {
4720                        break;
4721                    }
4722                    var before = (at > 0) ? name.charAt(at - 1) : ' ';
4723                    var after = ((at + token.length) < name.length) ? name.charAt(at + token.length) : ' ';
4724                    if (!isAlnum(before) && !isAlnum(after)) {
4725                        return true;
4726                    }
4727                    from = at + 1;
4728                }
4729            }
4730
4731            /* Non-latin scripts have no alphanumeric word boundary. */
4732            var scriptTokens = ['каунти', 'کاؤنٹی', 'काउंटी', '카운티'];
4733            for (var s = 0; s < scriptTokens.length; s++) {
4734                if (name.indexOf(scriptTokens[s]) !== -1) {
4735                    return true;
4736                }
4737            }
4738
4739            return false;
4740        };
4741    }
4742
4743            // Try to load coordinates from sessionStorage on page load
4744            var vlat        = 0;
4745            var vlon        = 0;
4746            try {
4747                var savedLat = sessionStorage.getItem('bd_geolocation_lat');
4748                var savedLon = sessionStorage.getItem('bd_geolocation_lon');
4749                if (savedLat && savedLon) {
4750                    vlat = parseFloat(savedLat);
4751                    vlon = parseFloat(savedLon);
4752                }
4753            } catch(e) {}
4754            var isSubmit    = false;
4755            var isGettingLocation = false; // Flag to prevent multiple simultaneous geolocation requests
4756            
4757            // Function to save coordinates to sessionStorage
4758            function saveCoordinatesToSession(lat, lon) {
4759                try {
4760                    sessionStorage.setItem('bd_geolocation_lat', lat.toString());
4761                    sessionStorage.setItem('bd_geolocation_lon', lon.toString());
4762                } catch(e) {}
4763            }
4764            
4765            // Function to get coordinates from sessionStorage if current ones are 0
4766            function getCoordinatesFromSession() {
4767                if (vlat === 0 && vlon === 0) {
4768                    try {
4769                        var savedLat = sessionStorage.getItem('bd_geolocation_lat');
4770                        var savedLon = sessionStorage.getItem('bd_geolocation_lon');
4771                        if (savedLat && savedLon) {
4772                            vlat = parseFloat(savedLat);
4773                            vlon = parseFloat(savedLon);
4774                            return true;
4775                        }
4776                    } catch(e) {}
4777                }
4778                return false;
4779            }
4780            var cityTypes       = [
4781                'colloquial_area',
4782                'locality',
4783                'sublocality',
4784                'sublocality_level_1',
4785                'sublocality_level_2',
4786                'sublocality_level_3',
4787                'sublocality_level_4',
4788                'sublocality_level_5',
4789                'neighborhood',
4790                'ward',
4791                'postal_town'
4792            ];
4793
4794            var postalTypes = [
4795                'postal_code',
4796                'postal_code_prefix',
4797                'postal_code_suffix',
4798                'street_number',
4799                'premise',
4800                'subpremise',
4801                'route',
4802                'intersection',
4803                'street_address',
4804                'floor',
4805                'room',
4806                'post_box',
4807                'delivery_address'
4808            ];
4809
4810            var isSubmitting = false;
4811            window.cachedSelectedOption = [{ 'typed_location': '' }];
4812            window.isSubmittingMainSearch = false;
4813
4814            document.addEventListener('DOMContentLoaded', () => {
4815                let isSubmitting = false; // Add flag at the top level
4816
4817                setTimeout(()=>{
4818                    let googleSuggestForm = document.querySelectorAll('.googleSuggest,.google-writen-location,input[name="lead_location"],.fill_location');
4819                    if (typeof googleSuggestForm != "undefined") {
4820                        for (let i = 0; i < googleSuggestForm.length; i++) {
4821                            let closestForm = googleSuggestForm[i].closest('form');
4822                            if(typeof closestForm != "undefined" && closestForm != null){
4823                                closestForm.addEventListener('focusin', googleMapOnFormClick, false);
4824
4825                            }else{
4826                                googleSuggestForm[i].addEventListener('input', googleMapOnFormClick, false);
4827                            }
4828                                googleSuggestForm[i].addEventListener('click', googleMapOnFormClick, false);
4829                            }
4830                        }
4831                },200);
4832
4833                $('.website-search button[type=submit]').click(async function (e) {
4834                    e.preventDefault(); // Prevent the default submit action
4835                    var nativeForm = $(this).closest('form')[0];
4836                    if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
4837                        return false;
4838                    }
4839                    await googleMapOnFormClick();
4840                    $(this).closest('form').submit();
4841                });
4842            });
4843             window['gmapClick'] = false;
4844            function googleMapOnFormClick() {
4845                if(window.gmapClick){
4846                    return;
4847                }
4848                window.gmapClick = true;
4849                
4850                return new Promise((resolve, reject) => {
4851                    window.isSubmittingMainSearch = false;
4852                    let googleSuggestForm = document.querySelectorAll('.googleSuggest, .google-writen-location, input[name="lead_location"], .fill_location');
4853                    let mapUri = "https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places&region=CA&callback=initializeG&language=en&key=AIzaSyDdSpe1kHbjL60UwRoZKuOxy-XEupmXbI0";
4854                    
4855                    if (typeof google !== "undefined" && google.hasOwnProperty('maps')) {
4856                        resolve('already loaded');
4857                        return;
4858                    }
4859
4860                    let loadMapScriptAsync = function (uri) {
4861                        return new Promise((resolve, reject) => {
4862                            let script = document.createElement('script');
4863                            script.type = 'text/javascript';
4864                            script.src = uri;
4865                            script.async = true;
4866                            script.onload = function () {
4867                                resolve("ok");
4868                            };
4869                            script.onerror = function () {
4870                                reject("Failed to load Google Maps script.");
4871                            };
4872                            document.head.appendChild(script);
4873                        });
4874                    };
4875
4876                        loadMapScriptAsync(mapUri)
4877                            .then(() => {
4878                                resolve();
4879                            })
4880                            .catch((error) => {
4881                                console.error(error);
4882                                reject();
4883                            });
4884                  
4885                });
4886            }
4887
4888            function initializeG() {
4889                var geocoder;
4890                //This piece of code will create an autosuggest for every input with the class "googleSuggest"
4891                var counter = 1;
4892                var inputsArray = [];
4893                window.cachedSelectedOption = [{ 'typed_location': '' }];
4894                let mapExists = document.querySelectorAll('[id^="map"]').length > 0;
4895                const functionsToInvoke = {
4896                    setJsMap: true,
4897                    setJsMapOverview: mapExists,
4898                    setJsMapSR: mapExists,
4899                    setJsMapSidebar: mapExists
4900                };
4901                if (window['maps_loaded'] !== true) {
4902                    for (let func in functionsToInvoke) {
4903                        if (typeof window[func] === 'function' && functionsToInvoke[func]) {
4904                            window['maps_loaded'] = true;
4905                            window[func]();
4906                        }
4907                    }
4908                }
4909                $(".googleSuggest").each(function () {
4910                    //get the id from the input to be the unique identifier for each autocomplete
4911                    var inputId = $(this).attr("id");
4912                    var inputElement = $(this);
4913                    inputsArray[counter] = /** @type {HTMLInputElement} */(
4914                        document.getElementById('' + inputId));
4915                    const mainCountry = '';
4916                    const inputOptions = {
4917                        fields: ['address_components', 'adr_address','formatted_address', 'geometry', 'icon', 'name','place_id','plus_code','type'],
4918                        types: ['geocode']
4919                    }
4920                    const language = "en";
4921
4922                    if (language) {
4923                        inputOptions.language = language;
4924                    }
4925                    if (mainCountry) {
4926                        inputOptions.componentRestrictions = {country: mainCountry};
4927                        inputOptions.region = mainCountry;
4928                    }
4929
4930                    var autocomplete = new google.maps.places.Autocomplete(inputsArray[counter], inputOptions);
4931                    google.maps.event.addListener(autocomplete, 'place_changed', function () {
4932                        const place = autocomplete.getPlace();
4933
4934                        cachedSelectedOption = [];
4935                        cachedSelectedOption.push(place);
4936
4937                        cachedSelectedOption[0]['typed_location'] = inputElement.val();
4938                       /* if(cachedSelectedOption[0]['adr_address']){
4939                            let cleanLocation = cachedSelectedOption[0]['adr_address'].replace(/<[^>]*>/g, '');
4940                            cachedSelectedOption[0]['typed_location'] = cleanLocation;
4941                            inputElement.val(cleanLocation);
4942                        }*/
4943                        if (cachedSelectedOption[0]['address_components'] == undefined) {
4944                            cachedSelectedOption = [];
4945                            var emptyObj = {
4946                                'typed_location': ''
4947                            };
4948                            cachedSelectedOption.push(emptyObj);
4949                        }
4950                    });
4951                    //the code that prevents the submition when hit enter on a google location autocomplete item
4952                    inputElement.keydown( function (e) {
4953                        if (e.keyCode == 13) {
4954                            var pacCounter = 0;
4955                            //need to run a loop to check each pac container
4956                            $('.pac-container').each(function () {
4957
4958                                if ($(this).css("display") != "none") {
4959                                    pacCounter++;
4960                                }
4961                            });
4962                            if (pacCounter > 0) {
4963                                e.preventDefault();
4964                            }
4965                        }
4966                    });
4967                    counter++;
4968                });
4969
4970                //triggers every time a form with the id website-search is trigered
4971                $('.website-search').submit(function (e) {
4972
4973                    var currentForm = $(this);
4974                    var locationInput = $(this).find(".googleLocation");
4975                    var $submitButton = currentForm.find('input[type=submit], button[type=submit]');
4976
4977
4978                    if (locationInput.val() != "" && typeof locationInput.val() != 'undefined') {
4979
4980                        // Set submitting flag
4981                        window.isSubmittingMainSearch = true;
4982                        $submitButton.prop('disabled', true);
4983
4984                        e.preventDefault();
4985                        //this variable has the main country of the site
4986                        var form = currentForm;
4987                        var urlGET = form.serialize();
4988                        var formActionUrl = form.attr("action");
4989                        var locationValue = locationInput.val();
4990
4991
4992
4993                        const mainCountry = '';
4994                        const inputOptions = {
4995                            address:locationValue
4996                        }
4997                        const language = "en";
4998
4999                        if (language) {
5000                            inputOptions.language = language;
5001                        }
5002                        if (mainCountry) {
5003                            inputOptions.componentRestrictions = {country: mainCountry};
5004                            inputOptions.region = mainCountry;
5005                        }
5006
5007                        if (typeof cachedSelectedOption == 'undefined') {
5008                            var emptyForm = {
5009                                'typed_location': ''
5010                            };
5011                            cachedSelectedOption.push(emptyForm);
5012                        }
5013
5014                        if (locationValue != cachedSelectedOption[0]['typed_location']) {
5015                            geocoder = new google.maps.Geocoder();
5016                            geocoder.geocode(inputOptions, function (results, status) {
5017
5018                                //if the google response of the geocoding was successful it will use that info to build the url for the new search
5019                                if (status == google.maps.GeocoderStatus.OK) {
5020                                    parseInfoToSearch(results, urlGET, formActionUrl);
5021
5022                                } else {
5023                                    var urlPath = formActionUrl;
5024                                    var redirect = urlPath + "?" + urlGET;
5025                                    //will redirect the page using the new url that has been constructed
5026                                    window.location.href = redirect;
5027                                }
5028                            });
5029
5030                        } else {
5031                            parseInfoToSearch(cachedSelectedOption, urlGET, formActionUrl);
5032                        }
5033                    }
5034                });
5035
5036
5037                //check if a map has been loaded
5038                if ($('#map-canvas').length > 0) {
5039                    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>";
5040                    $('body').append(cssHideLogo);
5041                } else {
5042                    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>";
5043                    $('body').append(cssHideLogo);
5044                }
5045
5046                if (geocodeVisitorsSetting == 1 && geocodingMethod === "IP") {
5047                    populateSearchFields();
5048                }
5049
5050                if($('.googleSuggest').val() == ""){
5051                    populateSearchFields();
5052                }
5053                
5054                var geocodeVisitorsSetting = '0';
5055                var geocodingMethod = 'HTML5';
5056
5057                //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
5058
5059                var vlon = '';
5060                var vlat = '';
5061            }
5062
5063            function switchPlaceID(placeId,urlGET, formActionUrl) {
5064                let request = {
5065                    placeId: placeId,
5066                    fields: ['address_components', 'adr_address', 'formatted_address', 'geometry', 'icon', 'name', 'place_id', 'plus_code', 'type'],
5067                };
5068
5069                let service = new google.maps.places.PlacesService(document.createElement('div'));
5070                service.getDetails(request, function(place, status) {
5071                    if (status === google.maps.places.PlacesServiceStatus.OK) {
5072                        let dataArray = [];
5073                        dataArray.push(place);
5074                        parseInfoToSearch(dataArray, urlGET, formActionUrl);
5075                    } else {
5076                        console.error('Place details request failed with status:', status);
5077                    }
5078                });
5079            }
5080
5081            function parseInfoToSearch(results, urlGET, formActionUrl) {
5082                var urlSearchParams = new URLSearchParams(urlGET);
5083                var parameters = {};
5084                var addressComponentsArray = [];
5085                if (results.length > 1) {
5086                    if(urlSearchParams.get("location_value")?.toLowerCase() === "nebraska" && results.length === 2){
5087                        let tempResult = results[0];
5088                        results[0] = results[1];
5089                        results[1] = tempResult;
5090                    }
5091                    for (let i = 0; i < results.length; i++) {
5092                        if (results[i].types[0] === 'natural_feature' ||
5093                            results[i].types[0] === 'airport' ||
5094                            results[i].types[0] === 'point_of_interest' ||
5095                            results[i].types[0] === 'establishment' ||
5096                            results[i].types[0] === 'political' ||
5097                            results[i].types[0] === 'park') {
5098                            results.splice(i, 1);
5099                        }
5100                    }
5101                }
5102                var adComLength = results[0].address_components.length;
5103
5104                if(results[0].place_id == 'ChIJmQrivHKsQjQR4MIK3c41aj8'){
5105                    switchPlaceID('ChIJi73bYWusQjQRgqQGXK260bw',urlGET, formActionUrl);
5106                    return;
5107                }
5108                sessionStorage.setItem("google_result",JSON.stringify(results));
5109
5110                
5111                var foundPostalType     = results[0].types.find(type => postalTypes.includes(type));
5112                var foundCityType       = results[0].types.find(type => cityTypes.includes(type));
5113
5114                //loop that will build the array with the address components and will get the short name of country and administrative area level 1
5115                for (var i = 0; i < adComLength; i++) {
5116
5117                    if (results[0].address_components[i]['types'][0] == "country") {
5118                        parameters.country_sn = results[0].address_components[i]['short_name'];
5119                    }
5120                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") {
5121                        parameters.adm_lvl_1_sn = results[0].address_components[i]['short_name'];
5122                    }
5123                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") {
5124                        parameters.stateSearchLN = results[0].address_components[i]['long_name'];
5125                    }
5126                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_2") {
5127                        /* short_name is what the service-area writer stores in
5128                           service_areas.county_sn, so the search must send the same
5129                           form or county matching breaks wherever short != long. */
5130                        parameters.county_sn = results[0].address_components[i]['short_name'];
5131                    }
5132                    if ($.inArray(results[0].address_components[i]['types'][0], cityTypes) !== -1 && (foundCityType || foundPostalType ) ) {
5133                        var addrType = results[0].address_components[i]['types'][0];
5134                        var addrLong = results[0].address_components[i]['long_name'];
5135                        /* CT counties come back as colloquial_area — keep them out of parameters.city. */
5136                        if (addrType !== 'colloquial_area'
5137                            || !window.bdIsColloquialCounty(addrLong, results[0].place_id)) {
5138                            parameters.city = addrLong;
5139                        }
5140                    }
5141                    if (results[0].address_components[i]['types'][0] == "postal_code" || results[0].address_components[i]['types'][0] == "postal_code_prefix") {
5142                        parameters.postal_code = results[0].address_components[i]['long_name'];
5143                    }
5144                }
5145
5146
5147                // Filter out 'political' from result types - use more specific type when available
5148                // Same pattern as BD-directory-maps-typePolitical (PR #5642)
5149                if (results[0].types && results[0].types.length > 1 && results[0].types[0] === 'political') {
5150                    results[0].types.splice(0, 1);
5151                }
5152
5153                // Pick the most specific type from results, skip "political" (too generic)
5154                parameters.location_type = results[0].types[0];
5155                for (var t = 0; t < results[0].types.length; t++) {
5156                    if (results[0].types[t] != 'political') {
5157                        parameters.location_type = results[0].types[t];
5158                        break;
5159                    }
5160                }
5161
5162                // When searching by city/locality, omit postal_code — Google returns
5163                // a partial zip prefix that doesn't match all members in the city
5164                if (parameters.location_type == 'locality' && parameters.postal_code) {
5165                    delete parameters.postal_code;
5166                }
5167
5168                if (parameters.adm_lvl_1_sn != '') {
5169                    parameters.stateSearch = parameters.adm_lvl_1_sn;
5170                }
5171                if (parameters.country_sn == "GB") {
5172                    delete parameters.adm_lvl_1_sn;
5173                }
5174
5175                //will check if the response had the bounds parameters
5176                //if it had it will add the south west and north east parameters to the new url
5177                if (results[0].geometry.hasOwnProperty('bounds') || results[0].geometry.hasOwnProperty('viewport')) {
5178
5179                    if (results[0].geometry.hasOwnProperty('bounds')) {
5180                        var boundsResponse = results[0].geometry.bounds;
5181
5182                    } else {
5183                        var boundsResponse = results[0].geometry.viewport;
5184                    }
5185                    parameters.swlat = boundsResponse.getSouthWest
5185().lat();
5186                    parameters.nelat = boundsResponse.getNorthEast().lat();
5187                    parameters.swlng = boundsResponse.getSouthWest().lng();
5188                    parameters.nelng = boundsResponse.getNorthEast().lng();
5189
5190                    //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
5191                } else {
5192                    parameters.fsearch = "radius";
5193                }
5194                var locationCenterResponse = results[0].geometry.location;
5195                parameters.lat = locationCenterResponse.lat();
5196                parameters.lng = locationCenterResponse.lng();
5197                parameters.faddress = results[0].formatted_address;
5198                parameters.place_id = results[0].place_id;
5199                var formatParameters = $.param(parameters);
5200                urlGET = urlGET + "&" + formatParameters;
5201                var urlPath = formActionUrl;
5202                var redirect = urlPath + "?" + urlGET;
5203                //will redirect the page using the new url that has been constructed
5204                window.location.href = redirect;
5205            }
5206            function populateSearchFields() {
5207                var prePopulateLocationSetting = '0';
5208                var geolocationMethod = 'HTML5';
5209
5210                // If geolocation is in progress and we don't have coordinates yet, wait a bit
5211                if (isGettingLocation && (vlat === 0 || vlon === 0)) {
5212                    var waitStartTime = performance.now();
5213                    var waitInterval = setInterval(function() {
5214                        if (!isGettingLocation || (vlat !== 0 && vlon !== 0)) {
5215                            clearInterval(waitInterval);
5216                            // Retry after a short delay to ensure coordinates are set
5217                            setTimeout(function() {
5218                                populateSearchFields();
5219                            }, 100);
5220                        } else if ((performance.now() - waitStartTime) > 10000) {
5221                            // Timeout after 10 seconds - try sessionStorage
5222                            clearInterval(waitInterval);
5223                            if (getCoordinatesFromSession()) {
5224                                setTimeout(function() {
5225                                    populateSearchFields();
5226                                }, 100);
5227                            }
5228                        }
5229                    }, 200);
5230                    return;
5231                }
5232
5233                // If coordinates are 0, try to get from sessionStorage
5234                if (vlat === 0 || vlon === 0) {
5235                    getCoordinatesFromSession();
5236                }
5237
5238                // Validate coordinates first
5239                var hasValidCoordinates = (vlat !== '' && vlon !== '' && vlat != undefined && vlon != undefined && vlat != 0 && vlon != 0 && Math.abs(vlat) <= 90 && Math.abs(vlon) <= 180);
5240                
5241                if (!hasValidCoordinates) {
5242                    return;
5243                }
5244
5245                //if set to one will get the lat and lng to do reverse geocoding
5246                if (prePopulateLocationSetting == 1 && (geolocationMethod === "HTML5" || geolocationMethod === "IP")) {
5247                    var visitorLatLng = new google.maps.LatLng(parseFloat(vlat), parseFloat(vlon));
5248                    var visitorGeocoder = new google.maps.Geocoder();
5249                    var formattedAddress = [];
5250                    var preFormattedStructure = {
5251                        "locality": "long_name",
5252                        "administrative_area_level_2": "long_name",
5253                        "administrative_area_level_1": "long_name",
5254                        "country": "long_name"
5255                    };
5256                    visitorGeocoder.geocode({'latLng': visitorLatLng}, function (results, status) {
5257                        //if the google response of the geocoding was successful it will use that info to build the url for the new search
5258                        if (status == google.maps.GeocoderStatus.OK) {
5259                            window.cachedSelectedOption = results;
5260                            $.each(preFormattedStructure, function (findex, fvalue) {
5261                                $.each(results[0].address_components, function (rindex, rvalue) {
5262                                    if (rvalue.types[0] == findex) {
5263                                        formattedAddress.push(rvalue.long_name);
5264                                    }
5265                                });
5266                            });
5267                            $('.googleSuggest').each(function () {
5268                                if ($(this).val() == '') {
5269                                    if (formattedAddress.length > 0) {
5270                                        $(this).val(formattedAddress.join(', '));
5271                                        clearContent($(this));
5272                                    }
5273                                }
5274                            });
5275                        } else {
5276                            $('.googleSuggest').each(function () {
5277                                $(this).val('');
5278                            });
5279                        }
5280                    });
5281                }
5282            }
5283            function showError(error) {
5284                switch (error.code) {
5285                    case error.PERMISSION_DENIED:
5286                    case 1: // PERMISSION_DENIED
5287                        $('.fill_location.clicked').popover({
5288                            content: `Your local browser settings have prevented location targeting. Please enable location permissions in your browser settings.`,
5289                            container: 'body'
5290                        });
5291                        $('.fill_location.clicked').popover('toggle');
5292                        setTimeout(function () {
5293                            $('.fill_location.clicked').popover('hide');
5294                            $('.fill_location.clicked').removeClass('clicked');
5295                        }, 4000);
5296                        break;
5297                    case error.POSITION_UNAVAILABLE:
5298                    case 2: // POSITION_UNAVAILABLE
5299                        $('.fill_location.clicked').popover({
5300                            content: `Location information is unavailable. Please check your device location settings.`,
5301                            container: 'body'
5302                        });
5303                        $('.fill_location.clicked').popover('toggle');
5304                        setTimeout(function () {
5305                            $('.fill_location.clicked').popover('hide');
5306                            $('.fill_location.clicked').removeClass('clicked');
5307                        }, 4000);
5308                        break;
5309                    case error.TIMEOUT:
5310                    case 3: // TIMEOUT
5311                        $('.fill_location.clicked').popover({
5312                            content: `Location request timed out. Please ensure location services are enabled and try again.`,
5313                            container: 'body'
5314                        });
5315                        $('.fill_location.clicked').popover('toggle');
5316                        setTimeout(function () {
5317                            $('.fill_location.clicked').popover('hide');
5318                            $('.fill_location.clicked').removeClass('clicked');
5319                        }, 4000);
5320                        break;
5321                    case error.UNKNOWN_ERROR:
5322                    default:
5323                        $('.fill_location.clicked').popover({
5324                            content: `An error occurred while getting your location. Please try again.`,
5325                            container: 'body'
5326                        });
5327                        $('.fill_location.clicked').popover('toggle');
5328                        setTimeout(function () {
5329                            $('.fill_location.clicked').popover('hide');
5330                            $('.fill_location.clicked').removeClass('clicked');
5331                        }, 4000);
5332                        break;
5333                }
5334            }
5335            if (navigator.geolocation) {
5336                if ($(".googleSuggest")[0]) {
5337                    $(document).on('click', '.fill_location', function getCXPosition() {
5338                        // Prevent multiple simultaneous geolocation requests
5339                        if (isGettingLocation) {
5340                            return;
5341                        }
5342                        
5343                        var $button = $(this);
5344                        $button.addClass('clicked');
5345                        var startPos;
5346                        
5347                        // Set flag to prevent concurrent requests
5348                        isGettingLocation = true;
5349                        
5350                        // Function to actually get the position
5351                        var attemptGetPosition = function() {
5352                            // Try with shorter timeout first for faster response
5353                            var geoOptions = {
5354                                enableHighAccuracy: false, // Use false for faster response
5355                                timeout: 8000, // 8 second timeout (reduced for faster failure)
5356                                maximumAge: 300000 // Accept cached position up to 5 minutes old
5357                            };
5358                            
5359                            navigator.geolocation.getCurrentPosition(function (position) {
5360                                startPos = position;
5361                                vlat = startPos.coords.latitude;
5362                                vlon = startPos.coords.longitude;
5363                                
5364                                // Validate coordinates before proceeding
5365                                if (!vlat || !vlon || vlat === 0 || vlon === 0) {
5366                                    isGettingLocation = false;
5367                                    $button.removeClass('clicked');
5368                                    return;
5369                                }
5370                                
5371                                // Save coordinates to sessionStorage
5372                                saveCoordinatesToSession(vlat, vlon);
5373                                
5374                                $.get("/api/data/html/get/data_widgets/widget_name", {
5375                                    "vlat": vlat,
5376                                    "vlon": vlon,
5377                                    "name": "Website - Save Coordinates Session"
5378                                });
5379                                
5380                                populateSearchFields();
5381                                
5382                                // Clear flag
5383                                isGettingLocation = false;
5384                                $button.removeClass('clicked');
5385                            }, function(error) {
5386                                // Clear flag on error
5387                                isGettingLocation = false;
5388                                $button.removeClass('clicked');
5389                                
5390                                // For timeout errors, try sessionStorage as fallback
5391                                if (error.code === 3) {
5392                                    if (getCoordinatesFromSession()) {
5393                                        // Use cached coordinates
5394                                        $.get("/api/data/html/get/data_widgets/widget_name", {
5395                                            "vlat": vlat,
5396                                            "vlon": vlon,
5397                                            "name": "Website - Save Coordinates Session"
5398                                        });
5399                                        
5400                                        populateSearchFields();
5401                                        
5402                                        // Clear flag
5403                                        isGettingLocation = false;
5404                                        $button.removeClass('clicked');
5405                                    } else {
5406                                        $button.popover({
5407                                            content: `Location request timed out. Please ensure location services are enabled and grant permission when prompted.`,
5408                                            container: 'body'
5409                                        });
5410                                        $button.popover('show');
5411                                        setTimeout(function() {
5412                                            $button.popover('hide');
5413                                        }, 5000);
5414                                    }
5415                                } else {
5416                                    showError(error);
5417                                }
5418                            }, geoOptions);
5419                        };
5420                        
5421                        // Check if geolocation permission is already denied (but don't block if it's prompt)
5422                        if (navigator.permissions && navigator.permissions.query) {
5423                            navigator.permissions.query({name: 'geolocation'}).then(function(result) {
5424                                if (result.state === 'denied') {
5425                                    isGettingLocation = false;
5426                                    $button.removeClass('clicked');
5427                                    showError({code: 1, message: 'Permission denied'});
5428                                    return;
5429                                } else {
5430                                    // Permission is granted or prompt - proceed with geolocation
5431                                    attemptGetPosition();
5432                                }
5433                            }).catch(function(err) {
5434                                // If permission API not supported, proceed anyway
5435                                attemptGetPosition();
5436                            });
5437                        } else {
5438                            // Permission API not available, proceed with geolocation
5439                            attemptGetPosition();
5440                        }
5441                    })
5442                }
5443            } else {
5444                console.log('Geolocation is not supported for this Browser/OS version yet.');
5445            }
5446            function getUrlParameter(sParam) {
5447                var sPageURL = window.location.search.substring(1);
5448                var sURLVariables = sPageURL.split('&');
5449
5450                for (var i = 0; i < sURLVariables.length; i++) {
5451                    var sParameterName = sURLVariables[i].split('=');
5452
5453                    if (sParameterName[0] == sParam) {
5454                        return decodeURIComponent(sParameterName[1]);
5455                    }
5456                }
5457            }
5458        </script>
5458
5459        
5459<script>
5460	// switchClass() is jQuery UI (Effects), which is no longer loaded on every page.
5461	// removeClass().addClass() is the same class swap, applied immediately instead of
5462	// after animateClass()'s queued 400ms default.
5463	$(document).ready(function(){
5464		$('.navbar-header .navbar-toggle.main_menu').click(function(){
5465			$('.mobile-main-menu').toggleClass('opened');
5466		});
5467		$('.mobile-main-menu .sidebar-nav').find('li').each(function(){
5468			$(this).addClass('hasChildren');
5469			if ($(this).children('ul').length > 0){
5470				$(this).prepend('<i class="fa fa-plus" aria-hidden="true"></i>');
5471				$(this).find('a').after('<div class="clearfix"></div>');
5472				$(this).find('span').after('<div class="clearfix"></div>');
5473			}
5474			$(this).append('<div class="clearfix"></div>');
5475		});
5476
5477		$('.mobile-main-menu .sidebar-nav li i').click(function(){
5478			if ($(this).parent().children('ul').length > 0){
5479				$(this).parent().toggleClass('sub_open');
5480			}
5481			if ($(this).hasClass('fa-plus')){
5482				$(this).removeClass('fa-plus').addClass('fa-minus');
5483			} else {
5484				$(this).removeClass('fa-minus').addClass('fa-plus');
5485			}
5486		});
5487	})
5488
5489	if ($(window).width() > 740 && $(window).width() < 1100) {
5490
5491		$(document).ready(function(){
5492			$('.tablet-menu .tablet-menu-ul').find('li').each(function(){
5493
5494				if ($(this).children('ul').length > 0){
5495					$(this).prepend('<i class="fa fa-plus tablet-fa hidden-sm hidden-md hidden-lg" aria-hidden="true"></i>');
5496					$(this).find('a').after('<div class="clearfix"></div>');
5497					var this_link = $(this).children('a').text().replace(/[^\x00-\x7F]/g, "");;
5498					$(this).children('a').html(this_link);
5499					$(this).find('span').after('<div class="clearfix"></div>');
5500				}
5501				$(this).append('<div class="clearfix"></div>');
5502			});
5503
5504			$('.tablet-menu .tablet-menu-ul li i').click(function(){
5505
5506				if ($(this).parent().children('ul').length > 0){
5507					$(this).parent().toggleClass('sub_open');
5508
5509					if ($(this).siblings( "ul" ).hasClass('tablet-block')){
5510						$(this).siblings( "ul" ).removeClass('tablet-block').addClass('tablet-none');
5511					} else {
5512						$(this).siblings( "ul" ).addClass( "tablet-block" );
5513
5514						if ($(this).siblings( "ul" ).hasClass('tablet-none')){
5515							$(this).siblings( "ul" ).removeClass('tablet-none')
5516						}
5517
5518						if ($(this).parent().siblings().children('ul').hasClass('tablet-block')) {
5519							$(this).parent().siblings().children('ul').removeClass('tablet-block').addClass('tablet-none');
5520							$(this).parent().siblings().children('i').removeClass('fa-minus').addClass('fa-plus');
5521						}
5522
5523						if ($(this).parent().siblings().children('ul').children().children('ul').hasClass('tablet-block')) {
5524							$(this).parent().siblings().children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none');
5525							$(this).parent().siblings().children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus');
5526						}
5527
5528						if ($(this).siblings('ul').children('ul').children().children('ul').hasClass('tablet-block')) {
5529							$(this).siblings('ul').children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none');
5530							$(this).siblings('ul').children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus');
5531						}
5532
5533					}
5534
5535				}
5536
5537				if ($(this).hasClass('fa-plus')){
5538					$(this).removeClass('fa-plus').addClass('fa-minus');
5539				} else {
5540					$(this).removeClass('fa-minus').addClass('fa-plus');
5541				}
5542			});
5543		})
5544	}
5545	// Append unique ID attribute for mobile main menu links
5546	$('.mobile-main-menu a,.mobile-main-menu span').attr("id", function() { return $(this).attr("id") + "-mobile" });
5547</script>
5547
5548
5549<script>
5550/* Keeps the announcement bar flush with the navbar: this widget's CSS emits static 50px
5551   offsets that are blind to the hide-menu settings, so a hidden or fixed compact-logo
5552   navbar leaves a gap or an overlap. Measure the real navbar state and own the offset. */
5553(function () {
5554    function alignAnnouncementToNavbar() {
5555        var ann = document.querySelector('.announcement-bar');
5556        if (!ann) { return; }
5557        /* above the widget's own offset breakpoints: restore stylesheet values */
5558        if (window.innerWidth > 1100) {
5559            ann.style.removeProperty('margin-top');
5560            ann.style.removeProperty('top');
5561            return;
5562        }
5563        var navbar = document.querySelector('.header nav.navbar.navbar-default');
5564        var navStyle = navbar ? window.getComputedStyle(navbar) : null;
5565        /* navbar hidden: the 50px offsets have nothing to clear, sit flush */
5566        if (!navbar || navStyle.display === 'none') {
5567            ann.style.setProperty('margin-top', '0px', 'important');
5568            ann.style.setProperty('top', '0px', 'important');
5569            return;
5570        }
5571        if (window.innerWidth >= 768) { return; }
5572        /* only act while the navbar is pinned and showing the compact logo */
5573        if (navStyle.position !== 'fixed') { return; }
5574        var logo = navbar.querySelector('.mobile_website_logo');
5575        if (!logo || window.getComputedStyle(logo).display === 'none') { return; }
5576        var navRect = navbar.getBoundingClientRect();
5577        var annRect = ann.getBoundingClientRect();
5578        var delta = Math.round(navRect.bottom - annRect.top); /* >0 overlap, <0 gap */
5579        if (delta === 0) { return; }
5580        var currentMt = parseFloat(window.getComputedStyle(ann).marginTop) || 0;
5581        var nextMt = currentMt + delta;
5582        /* a transient element above the bar during load can inflate the measure; a
5583           negative margin would pull the bar behind the navbar, so clamp at 0 */
5584        if (nextMt < 0) { nextMt = 0; }
5585        /* !important to beat the widget's "margin-top: 50px !important" rule */
5586        ann.style.setProperty('margin-top', nextMt + 'px', 'important');
5587    }
5588
5589    function run() {
5590        alignAnnouncementToNavbar();
5591        /* re-run after late layout shifts (fonts, async embeds) */
5592        window.setTimeout(alignAnnouncementToNavbar, 250);
5593        window.setTimeout(alignAnnouncementToNavbar, 1200);
5594    }
5595
5596    if (document.readyState === 'loading') {
5597        document.addEventListener('DOMContentLoaded', run);
5598    } else {
5599        run();
5600    }
5601    window.addEventListener('load', alignAnnouncementToNavbar);
5602    var resizeTimer;
5603    window.addEventListener('resize', function () {
5604        window.clearTimeout(resizeTimer);
5605        resizeTimer = window.setTimeout(alignAnnouncementToNavbar, 150);
5606    });
5607})();
5608</script>
vendor: 2 bytes, line 5608
5608
5609<script attribute='text/javascript'>
5610	var map;
5611	var members = {};
5612	function initializeMap() {
5613		map = new google.maps.Map(document.getElementById('map-bounds'), {
5614		center: {lat: 0, lng: 0},
5615		zoom: 8,
5616		disableDefaultUI: true,
5617		});
5618	}
5619	function toogleShapeBox(user_id,node){
5620		if($(node).is(':checked') == true){
5621			members['user_id_'+user_id].boundsShape.setMap(map);
5622		}else{
5623			members['user_id_'+user_id].boundsShape.setMap(null);
5624		}
5625	}
5626
5627	function loadMarker(lat,lng,showInfoWindow,title){
5628		var contentString = '';
5629		var marker = new google.maps.Marker({
5630          position: {lat:lat,lng:lng},
5631          map: map,
5632          title: 'Bounds Box Objects'
5633        });
5634        
5635		if(showInfoWindow === true){
5636			
5637			contentString = '<table>';
5638			
5639			$.each(members,function(index,value){
5640				contentString += '<tr>';
5641				contentString += '<td><input type="checkbox" checked="true" onchange="toogleShapeBox('+value.user_id+',this)"><td>';
5642                contentString += '<td>'+value.name+'<td>';
5643                contentString += '</tr>';
5644            });
5645			contentString += '</table>';
5646
5647			var infowindow = new google.maps.InfoWindow({
5648			  content: contentString
5649			});
5650
5651			marker.addListener('click', function() {
5652			  infowindow.open(map, marker);
5653			});
5654			
5655		}else{
5656			marker.setIcon('https://maps.google.com/mapfiles/ms/icons/green-dot.png');
5657			var infowindow = new google.maps.InfoWindow({
5658			  content: title
5659			});
5660
5661			marker.addListener('click', function() {
5662			  infowindow.open(map, marker);
5663			});
5664			
5665		}
5666	}
5667
5668	function drawBounds(lat,lng,swlat,swlng,nelat,nelng,color,address,user_id,name){
5669
5670		latlngs = [];
5671
5672		latlngs.push({ lat: swlat, 	lng: swlng });//bottom left
5673		latlngs.push({ lat: swlat, 	lng: lng });//bottom center
5674		latlngs.push({ lat: swlat, 	lng: nelng });//bottom right
5675		latlngs.push({ lat: lat, 	lng: nelng });// center right
5676		latlngs.push({ lat: nelat, 	lng: nelng });//top right
5677		latlngs.push({ lat: nelat, 	lng: lng });//top center
5678		latlngs.push({ lat: nelat, 	lng: swlng });//top left
5679		latlngs.push({ lat: lat, 	lng: swlng });//center left
5680
5681
5682		members['user_id_'+user_id] = {
5683			boundsShape:new google.maps.Polygon({
5684				paths: latlngs,
5685				strokeColor: color,
5686				strokeOpacity: 0.8,
5687				strokeWeight: 3,
5688				fillColor: 'color',
5689				fillOpacity: 0.35
5690			}),
5691			name:name,
5692			user_id:user_id,
5693			color:color
5694		}
5695
5696		members['user_id_'+user_id].boundsShape.setMap(map);
5697	}
5698
5699    
5700</script>
5700<script>
5701    function loadMasonryJs() {
5702        return new Promise((resolve, reject) => {
5703            if (window["masonryJs"]) {
5704                resolve("already load masonry");
5705            } else {
5706                let script = document.createElement('script');
5707                script.type = 'text/javascript';
5708                script.src = "https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/masonry_gridview.pkgd.min.js";
5709                script.async = true;
5710                script.onload = function () {
5711                    window['masonryJs'] = true;
5712                    resolve("ok");
5713                };
5714                let head = document.getElementsByTagName('head')[0];
5715                head.appendChild(script);
5716
5717            }
5718        });
5719    }
5720
5721    var map_opened = 0;
5722    var masonry_opened = 0;
5723
5724    $(".views > i").click(function () {
5725        $(".views > i").removeClass('activeView');
5726        $(this).addClass('activeView');
5727    });
5728        $(".views > i.gridView").click(async function () {
5729       await loadMasonryJs();
5730        $('.grid-container .clickToLoadMoreContainer').addClass('gridBtnLazyLoad')
5731        if (map_opened == 1) {
5732            $('.grid-container').removeClass('hidden');
5733            $('.map_container').hide();
5734            map_opened = 0;
5735        }
5736        $('.grid-container').addClass('visible');
5737        $('.img_section.col-xs-2').removeClass('col-xs-2').addClass('col-xs-12 bmargin ex-col-2');
5738        $('.img_section.col-sm-3').removeClass('col-sm-3').addClass('col-sm-12 bmargin ex-col-3');
5739        $('.img_section.col-sm-4').removeClass('col-sm-4').addClass('col-sm-12 bmargin ex-col-4');
5740        $('.mid_section.col-sm-9').removeClass('col-sm-9').addClass('col-sm-12 ex-col-9');
5741        $('.mid_section.col-sm-6').removeClass('col-sm-6').addClass('col-sm-12 ex-col-6');
5742        $('.mid_section.col-sm-7').removeClass('col-sm-7').addClass('col-sm-12 nohpad ex-col-7 text-center bpad');
5743        $('.mid_section.col-sm-8').removeClass('col-sm-8').addClass('col-sm-12 ex-col-8 nohpad bpad');
5744        $('.mid_section .post-location-snippet').addClass('text-center');
5745        $('.mid_section.ex-col-7 .sm-block').addClass('show');
5746        $('.mid_section .row-fluid.bpad .col-md-8').removeClass('col-md-8').addClass('col-sm-12 bmargin');
5747        $('.mid_section .row-fluid.bpad a').addClass('btn-block');
5748        $('.mid_section .row-fluid.bpad').addClass('text-center');
5749        $('.info_section').removeClass('col-sm-3 norpad').addClass('col-sm-12 nopad');
5750        $('.mid_section > div > p').addClass('text-center');
5751        $('.mid_section h2').addClass('nomargin');
5752        $('.mid_section a.h3').addClass('text-center h4 tmargin');
5753        $('.mid_section .view-details').removeClass('rmargin');
5754        $('.mid_section .contact-member').removeClass('lmargin');
5755        $('.member-search-full-name').removeClass('rmargin');
5756        $('.member-search-reviews').removeClass('rmargin');
5757        $('.member-search-location').removeClass('rmargin rpad');
5758        $('.member-search-company').addClass('btn-block');
5759        $('.view_phone_number').addClass('center-block');
5760        $('.phone_number').addClass('btn-block');
5761        $('.search_result_image').addClass('grid_image');
5762        $('.post-search-category').removeClass('inline-block').addClass('text-center');
5763        $('.post-results-star').removeClass('pull-right').addClass('text-center tmargin');
5764
5765                $('.grid-container.visible > hr:nth-of-type(3n)').addClass('gridBreak');
5766        $('.search_result').addClass('col-xs-12 col-sm-4 col-md-4 grid').removeClass('row-fluid');
5767                $('.grid_element').addClass('well xs-center-block');
5768
5769        $('.col-md-3 + .clearfix, .col-md-4 + .clearfix, .clearfix + hr, .search_result hr + .clearfix, .mid_section > p, .mid_section .row-fluid.bpad p.nomargin, .tags, table.bmargin,.posted-by,.star_rating .the-rating-text').hide();
5770        $('h2.h3.bold > a').addClass('gridA');
5771        $('.info_section .module').removeClass('module fpad');
5772        $('.grid-container').addClass('row');
5773        document.body.classList.add('bdGridDone');
5774        
5775    });
5776        $(".views > i.listView").click(function () {
5777        $('.grid-container .clickToLoadMoreContainer').removeClass('gridBtnLazyLoad')
5778
5779        $('.clearfix.spacing').remove();
5780                $('.grid-container').addClass('visible');
5781        $('.img_section.ex-col-2').removeClass('col-xs-12 ex-col-2 bmargin').addClass('col-xs-2');
5782        $('.img_section.ex-col-3').removeClass('col-sm-12 ex-col-3 bmargin').addClass('col-sm-3');
5783        $('.img_section.ex-col-4').removeClass('col-sm-12 ex-col-4 bmargin').addClass('col-sm-4');
5784        $('.mid_section.col-sm-12.ex-col-9').removeClass('col-sm-12').addClass('col-sm-9');
5785        $('.mid_section.col-sm-12.ex-col-6').removeClass('col-sm-12').addClass('col-sm-6');
5786        $('.mid_section.col-sm-12.ex-col-7').removeClass('col-sm-12 nohpad bpad ex-col-7 text-center').addClass('col-sm-7');
5787        $('.mid_section.col-sm-12.ex-col-8').removeClass('col-sm-12 nohpad bpad').addClass('col-sm-8');
5788        $('.mid_section .post-location-snippet.text-center').removeClass('text-center');
5789        $('.mid_section.col-sm-7 .sm-block').removeClass('show');
5790        $('.mid_section.col-sm-12.ex-col-12').removeClass('col-sm-12').addClass('col-sm-12');
5791        $('.mid_section .row-fluid.bpad .col-sm-12').removeClass('col-sm-12 bmargin').addClass('col-md-8');
5792        $('.mid_section .row-fluid.bpad a').removeClass('btn-block');
5793        $('.mid_section .row-fluid.bpad').removeClass('text-center');
5794        $('.info_section').removeClass('col-sm-12 nopad').addClass('col-sm-3 norpad');
5795        $('.info_section > div.nomargin').addClass('module fpad');
5796        $('.mid_section > div > p').removeClass('text-center');
5797        $('.mid_section h2').removeClass('nomargin');
5798        $('.mid_section a.h3').removeClass('text-center h4 tmargin');
5799        $('.mid_section .view-details').addClass('rmargin');
5800        $('.mid_section .contact-member').addClass('lmargin');
5801        $('.member-search-full-name').addClass('rmargin');
5802        $('.member-search-reviews').addClass('rmargin');
5803        $('.member-search-location').addClass('rmargin rpad');
5804        $('.member-search-company').removeClass('btn-block');
5805        $('.view_phone_number').removeClass('center-block');
5806        $('.search_result_image').removeClass('grid_image');
5807        $('.ex-col-8 h2.h3.bold a.gridA').removeClass('bmargin');
5808        $('.gridBreak').removeClass('gridBreak');
5809        $('.post-search-category').removeClass('text-center').addClass('inline-block');
5810        $('.post-results-star').removeClass('text-center tmargin').addClass(' pull-right');
5811                $('.search_result').removeClass('col-md-4 col-sm-4 col-xs-12 grid').addClass('row-fluid');
5812                $('.grid_element').removeClass('well');
5813        $('.search_result .grid_element + .clearfix, .clearfix + hr, hr + .clearfix, .clearfix, .mid_section > p, .mid_section .row-fluid.bpad p.nomargin, .tags,.posted-by, table.bmargin, .star_rating span').show();
5814        $('h2.h3.bold > a').removeClass('gridA');
5815        $('.grid-container').removeClass('row');
5816        if (map_opened == 1) {
5817            $('.grid-container').removeClass('hidden');
5818            $('.map_container').hide();
5819            map_opened = 0;
5820        }
5821    });
5822
5823    $('.views > i.mapView').click(function () {
5824        $('.clearfix.spacing').remove();
5825        $('.grid-container').addClass('hidden');
5826        $('.map_container').show();
5827        map_opened = 1;
5828        if(typeof initializeGoogleMaps === "function"){
5829            initializeGoogleMaps();
5830        }
5831    });
5832    if (document.getElementById("google-pin") !== null) {
5833        $('.mapView').css('display', 'inline-block');
5834    }
5835    $(document).ready(function () {
5836        if ($('.views .fa:visible').length == 1) {
5837            $('.views').hide();
5838        } else {
5839            $('.views').show();
5840        }
5841    })
5842</script>
5842<script>
5843    $('#captchaContainer').removeClass('form-control ');
5844    $(".website_url_field").keyup(function(){
5845        var fieldName = $(this).attr('name');
5846        $(this).val($(this).val().replace(/\s+/g, ''));
5847        $('#myform').formValidation('revalidateField', fieldName);
5848    });
5849</script>
vendor: 2 bytes, line 5849
5849
5850<script>
5851     $('#newsletter input[name="email"]').on('keypress', function() {
5852        $("#newsletter > .gdpr_consent_email").show();
5853    });
5854	$('#newsletter_signup_footer input[name="email"]').on('keypress', function() {
5855        $("#newsletter_signup_footer > .gdpr_consent_email").show();
5856    });
5857</script>
5857                
5857<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/formValidation.min.js"></script>
5857
5858                
5858<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/framework/bootstrap.min.js"></script>
5858
5859                
5859<script type="text/javascript">
5860                    function decodeHtml(html) {
5861                        var txt = document.createElement("textarea");
5862                        txt.innerHTML = html;
5863                        return txt.value;
5864                    }
5865                    
5866                    // Override FormValidation URI validator to prevent recursion with URLs that contain @ characters
5867                    $(function() {
5868                        function applyFix() {
5869                            // Check if FormValidation library and URI validator are loaded
5870                            if (FormValidation && FormValidation.Validator && FormValidation.Validator.uri) {
5871                                FormValidation.Validator.uri.validate = function(validator, $field, options) {
5872                                    var value = validator.getFieldValue($field, 'uri').trim();
5873                                    return value === '' || new RegExp('^https?://[^\\s]+\\.[^\\s]{2,}').test(value);
5874                                };
5875                                return true;
5876                            }
5877                            return false;
5878                        }
5879                        
5880                        if (!applyFix()) {
5881                            setTimeout(applyFix, 50);
5882                        }
5883                    });
5884                </script>
5884
5885                        
5885<script type="text/javascript">
5886
5887        var counterSubmit = 0;
5888        $(document).ready(function() {
5889            /* grecaptcha.reset() with no argument always resets widget 0. On a page with two
5890               captcha holders that clears the wrong checkbox, so the widget the visitor solved
5891               keeps a token Google has already spent and every retry fails the security check.
5892               captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha";
5893               an undefined id means no per-form id is known and the arg-less call is used,
5894               exactly as before. */
5895            function bdCaptchaWidgetId(formId) {
5896                if (typeof captchaHolders === "undefined" || !formId) {
5897                    return undefined;
5898                }
5899                /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84),
5900                   so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from
5901                   the holder element itself so the counter never has to be reconstructed. */
5902                var form = document.getElementById(formId);
5903                var holder = form && form.querySelector(".g-recaptcha");
5904                return holder ? captchaHolders[holder.id] : undefined;
5905            }
5906
5907            function bdCaptchaReset(formId) {
5908                if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") {
5909                    return;
5910                }
5911                var widgetId = bdCaptchaWidgetId(formId);
5912                if (widgetId === undefined) {
5913                    grecaptcha.reset();
5914                } else {
5915                    grecaptcha.reset(widgetId);
5916                }
5917            }
5918
5919            // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry
5920            // rules for fields that are NOT rendered in this form (conditionally-rendered or
5921            // duplicated form configs). Those phantom rules make formValidation mis-evaluate
5922            // isValid(), so an empty required field bypasses validation and submits natively.
5923            // Remove any rule whose field has no matching element before initializing.
5924            // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly
5925            // REMOVES rules (never adds validators, never overrides native submit, never
5926            // intercepts on capture phase, never re-validates on click) — so it cannot
5927            // reproduce the "Save button slides down / nav broken / no success message"
5928            // regression that caused #5902 to be rolled back on site 19413.
5929            var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"6Lf5x7ArAAAAANWNGogazYweb7go-_8lFv3BEpnO","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Required Field"},"emailAddress":{"message":"Please enter a valid email address"}}}}};
5930            var formElement = $(`form[name='newsletter_modal_signup_380']`);
5931            if(validatorConfig && validatorConfig.fields) {
5932                Object.keys(validatorConfig.fields).forEach(function(fieldName) {
5933                    if(formElement.find('[name="' + fieldName + '"]').length === 0) {
5934                        delete validatorConfig.fields[fieldName];
5935                    }
5936                });
5937            }
5938
5939            // Scroll to the first invalid field when submit fails validation,
5940            // so the user can immediately see why the form will not submit
5941            formElement.on('err.form.fv', function(e) {
5942                var $firstError = $(e.target).find('.form-group.has-error').first();
5943                if ($firstError.length) {
5944                    $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700);
5945                }
5946            });
5947
5948            formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) {
5949
5950                if('newsletter_modal_signup' == 'unsubscribe_email'){
5951                    return true;
5952                }
5953                // Prevent form submission
5954                e.preventDefault();
5955                $form = $(e.target),
5956                fv = $form.data('formValidation');
5957
5958                // Check HTML5 required fields that FormValidation may not know about
5959                var requiredEmpty = false;
5960                $form.find('[required]').each(function() {
5961                    var val = $(this).val();
5962                    if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) {
5963                        requiredEmpty = true;
5964                        $(this).closest('.form-group').addClass('has-error');
5965                        if ($(this).siblings('.required-error').length === 0) {
5966                            $(this).after('<small class="required-error help-block" style="color:#a94442;">Required Field</small>');
5967                        }
5968                    } else {
5969                        var $reqGroup = $(this).closest('.form-group');
5970                        $(this).siblings('.required-error').remove();
5971                        // Keep has-error if another validator is still failing for this field
5972                        if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
5973                            $reqGroup.removeClass('has-error');
5974                        }
5975                    }
5976                });
5977                if (requiredEmpty) {
5978                    fv.disableSubmitButtons(false);
5979                    counterSubmit = 0;
5980                    // Scroll to the first field with an error (HTML5-required scan does
5981                    // not trigger err.form.fv, so handle the scroll here too)
5982                    var $firstReqError = $form.find('.form-group.has-error').first();
5983                    if ($firstReqError.length) {
5984                        $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700);
5985                    }
5986                    return false;
5987                }
5988
5989                var values = $(this).serialize();
5990
5991                
5992                var locationFieldCorrect = true;
5993
5994                if($("#newsletter_modal_signup_380 .location_required").length > 0){
5995                    $("#newsletter_modal_signup_380 .location_required").each(function (index) {
5996                        if($(this).data('state') == 1){
5997                            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() == "") {
5998                                locationFieldCorrect = false;
5999                            }
6000                        }
6001                    });
6002                }
6003
6004                if(locationFieldCorrect === false){
6005                    //check that there is a latitude or longitude
6006                    swal(`Whoops!`, `The location information is required to submit this form`, "error");
6007                    return false;
6008                }
6009                        
6010
6011                if (!$(this).attr("action")) {
6012                    var action = '';
6013
6014                } else {
6015                    var action = $(this).attr("action");
6016                }
6017                if (!$(this).attr("method")) {
6018                    var method = 'post';
6019
6020                } else {
6021                    var method = $(this).attr("method");
6022                }
6023                if (!$(this).attr("form_action_type")) {
6024                    var form_action_type = 'notification';
6025
6026                } else {
6027                    var form_action_type = $(this).attr("form_action_type");
6028                }
6029                if (!$(this).attr("form_action_div")) {
6030                    /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */
6031                    var form_action_div = $('#main-content').length ? '#main-content' : '#first_container';
6032
6033                } else {
6034                    var form_action_div = $(this).attr("form_action_div");
6035                }
6036                if (!$(this).attr("return_data_type")) {
6037                    var return_data_type = 'json';
6038
6039                } else {
6040                    var return_data_type = $(this).attr("return_data_type");
6041                }
6042                var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000);
6043                if (!submitInFlight) {
6044                    if ($("#newsletter_modal_signup_380-notification").html() != "") {
6045                        $("#newsletter_modal_signup_380-notification").remove();
6046                    }
6047                    if ($(this).find('input[type="submit"]').length > 0) {
6048                        $(this).find('input[type="submit"]').before('<div id="newsletter_modal_signup_380-notification" class="alert"></div>');
6049
6050                    } else {
6051                        $(this).prepend('<div id="newsletter_modal_signup_380-notification" class="alert"></div>');
6052                    }
6053                }
6054                var notification = $("#newsletter_modal_signup_380-notification");
6055
6056                if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) {
6057                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
6058                    setTimeout(function(){
6059                        fv.defaultSubmit();
6060                    }, 100);
6061                } else {
6062                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
6063                    if(!submitInFlight) {
6064                        counterSubmit++;
6065                        $form.data('bdLastSubmitAt', Date.now());
6066
6067                        var fields      = $(this).serializeArray();
6068                        var formField   = [];
6069                        var processData = true;
6070                        var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
6071                        
6072                        
6073
6074                        if($("#newsletter_modal_signup_380 input[type=file]").length > 0){
6075                            
6076                            var formObject  = new FormData();
6077                            processData     = false;
6078                            contentType     = false;
6079
6080                            $(fields).each(function(index,field){
6081                                formField.push(field.name+"="+field.value);
6082                            });
6083
6084                            values  = formField.join("&");
6085
6086                            $(formField).each(function(index,fieldValue){
6087                                var fieldInfo = fieldValue.split('=');
6088                                formObject.append(fieldInfo[0],fieldInfo[1]);
6089                            });
6090
6091                            $("#newsletter_modal_signup_380 input[type=file]").each(function(index,node){
6092                                var file = this.files[0];
6093                                if(typeof file != "undefined"){
6094                                    formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name);
6095                                }
6096                            });
6097                        }else{
6098                            
6099                            $(fields).each(function(index,field){
6100                                formField.push(field.name+"="+encodeURIComponent(field.value));
6101                            });
6102
6103                            var formObject  = formField.join("&");
6104                        } 
6105                        
6106                        $.ajax({
6107                            url: action,
6108                            type: method,
6109                            data: formObject,
6110                            dataType: return_data_type,
6111                            processData: processData,
6112                            contentType: contentType,
6113                            success: function (data) {
6114                                // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above.
6115                                notification = $("#newsletter_modal_signup_380-notification");
6116                                if (return_data_type == "html") {
6117                                    var result = 'success';
6118
6119                                    if (!data != "") {
6120                                        var result_widget = data['result_widget'];
6121                                    }
6122
6123                                } else {
6124
6125
6126                                    if (!data['result']) {
6127                                        var result = 'error';
6128                                    } else {
6129                                        var result = data['result'];
6130                                    }
6131                                    if (!data['result_widget']) {
6132                                        var result_widget = '';
6133
6134                                    } else {
6135                                        var result_widget = data['result_widget'];
6136                                    }
6137                                }
6138                                if (result == "success") {
6139
6140                                    if (!data['message']) {
6141                                        var message = `Your information has submitted successfully!`;
6142
6143                                    } else {
6144                                        var message = data['message'];
6145                                    }
6146                                    if (!data['redirect_url']) {
6147                                        var redirect_url = '';
6148
6149                                    } else {
6150                                        var redirect_url = data['redirect_url'];
6151                                    }
6152
6153
6154
6155                                    if (form_action_type == "notification") {
6156                                        if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) {
6157                                            if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
6158                                                redirect_url = "/" + redirect_url;
6159                                            }
6160                                            if (notification.parents('.modal').length) {
6161                                                $('.modal-backdrop').hide();
6162                                                $('.modal').modal('hide');
6163                                            }
6164                                            window.location.href = redirect_url;
6165                                            fv.resetForm(true);
6166                                        } else {
6167                                        notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>')
6168                                            .addClass('alert-dismissible')
6169                                            .addClass("alert-success-subtle")
6170                                            .removeClass("alert-danger-subtle")
6171                                            .removeClass("alert-warning-subtle")
6172                                        
6173                                            
6174
6175                                        if(notification.parents('.modal').length && 'newsletter_modal_signup_380' == 'whmcs_billing_address'){
6176                                            setTimeout(function(){
6177                                                notification.parents('.modal').modal('hide');
6178                                            }, 1000);
6179                                        }
6180                                        }
6181
6182                                    } else if (form_action_type == "widget") {
6183
6184                                        if (result_widget != '') {
6185
6186                                            setTimeout(function(){
6187                                                if(form_action_div != '.newsletter_modal_form_container'){
6188                                                    $("html, body").animate({ scrollTop: 0 }, 600);
6189                                                }                                                
6190                                                $(form_action_div).html(decodeHtml(result_widget)).text();
6191
6192                                            }, 1000);
6193                                        }
6194
6195                                    } else if (form_action_type == "redirect") {
6196
6197                                        if (redirect_url == "") {
6198                                            redirect_url = decodeURIComponent("");
6199                                        }
6200
6201                                        if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
6202                                            redirect_url = "/" + redirect_url;
6203                                        }
6204                                        current_location = "/search_results";
6205                                        refresh_pages_string = "/login";
6206                                        refresh_pages_string = refresh_pages_string.replace(/ /g,'');
6207                                        refresh_pages_array = refresh_pages_string.split(',');
6208                                        notification.html(message)
6209                                            .addClass("alert-success-subtle")
6210                                            .removeClass("alert-danger-subtle")
6211                                            .removeClass("alert-warning-subtle")
6212                                            .delay(2000).slideUp();
6213                                            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" )){
6214                                                                                                    window.location.href = window.location.href+'?logged';
6215                                                                                            } else {
6216                                                window.location.href = redirect_url;
6217                                            }
6218
6219                                        fv.resetForm(true);
6220                                    }
6221                                    if(form_action_div != '.newsletter_modal_form_container' && 'newsletter_modal_signup_380' != 'whmcs_billing_address'){
6222                                        $('.modal-backdrop').hide();
6223                                    }
6224                                } else {
6225                                    bdCaptchaReset(formElement.attr('id'));
6226                                    if (!data['message']) {
6227                                        var message = `You entered invali
6227d data. Please try to save again.`;
6228
6229                                    } else {
6230                                        var message = data['message'];
6231                                    }
6232                                    $("#newsletter_modal_signup_380-notification").html(message)
6233                                        .addClass("alert-danger-subtle")
6234                                        .removeClass("alert-success-subtle")
6235                                        .removeClass("alert-warning-subtle")
6236                                        .fadeIn();
6237                                    fv.disableSubmitButtons(false);
6238                                }
6239                                counterSubmit = 0;
6240                            },
6241                            error: function (e) {
6242                                
6243                                if(typeof grecaptcha !== "undefined" && typeof grecaptcha.reset === "function"){
6244                                        bdCaptchaReset(formElement.attr('id'));
6245                                        $("#newsletter_modal_signup_380-notification").html(`Recaptcha Error`);
6246                                } else {
6247                                    $("#newsletter_modal_signup_380-notification").html(`A connection error occurred while saving. Please try to save again.`);
6248                                }
6249                                $("#newsletter_modal_signup_380-notification").addClass("alert-warning-subtle")
6250                                    .removeClass("alert-success-subtle")
6251                                    .removeClass("alert-warning-subtle")
6252                                    .fadeIn();
6253                                counterSubmit = 0;
6254                            }
6255                        });/// End Ajax
6256                    }
6257                }//END else
6258            }).bind('keydown', function(event) {
6259
6260                if (event.ctrlKey || event.metaKey) {
6261
6262                    switch (String.fromCharCode(event.which).toLowerCase()) {
6263
6264                        case 's':
6265                            var nativeForm = $(this)[0];
6266                            if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
6267                                event.preventDefault();
6268                                return false;
6269                            }
6270                            $(this).submit();
6271                            break;
6272                    }
6273                }
6274            });
6275
6276            /// This will turn any select2 that are required in the form builder to being required elements.
6277            $('#newsletter_modal_signup_380 select').each(function (i, obj) {
6278                setTimeout(function(){
6279                    if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") {
6280                        $(obj).css("z-index","-999");
6281                        $(obj).css("height","0");
6282                        $(obj).css("width","0");
6283                        $(obj).css("display","block");  
6284                        $(obj).css("position","absolute");  
6285                    }
6286                }, 3000);
6287            });
6288
6289            // Clear required-error messages when user fills in a required field
6290            $('#newsletter_modal_signup_380').on('keyup change', '[required]', function() {
6291                var val = $(this).val();
6292                if (val !== '' && val !== null && val.trim() !== '') {
6293                    var $group = $(this).closest('.form-group');
6294                    // Remove only this handler's own required message
6295                    $(this).siblings('.required-error').remove();
6296                    // Keep has-error if another FormValidation validator is still failing
6297                    // (e.g. stringLength, regexp). has-error is shared, so removing it
6298                    // wholesale would clobber other validators' red styling.
6299                    if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
6300                        $group.removeClass('has-error');
6301                    }
6302                }
6303            });
6304
6305        });//END $('# echo $_SERVER[form_element_id]; ').formValidation(
6306    </script>
6306
6307        
6307<script type="text/javascript">
6308(function () {
6309    try {
6310        var email = new URLSearchParams(window.location.search).get('email');
6311        if (!email) { return; }
6312        email = email.trim();
6313        if (email.indexOf('@') === -1) { return; }
6314        /* Sets the input value property (never HTML) -> XSS-safe regardless of the query value. */
6315        var fill = function () {
6316            var fields = document.querySelectorAll('input[name="email_r"]');
6317            for (var i = 0; i < fields.length; i++) {
6318                if (!fields[i].value) { fields[i].value = email; }
6319            }
6320        };
6321        if (document.readyState === 'loading') {
6322            document.addEventListener('DOMContentLoaded', fill);
6323        } else {
6324            fill();
6325        }
6326    } catch (e) {}
6327})();
6328</script>
6328
6329        
6329<script type="text/javascript">
6330
6331        var counterSubmit = 0;
6332        $(document).ready(function() {
6333            /* grecaptcha.reset() with no argument always resets widget 0. On a page with two
6334               captcha holders that clears the wrong checkbox, so the widget the visitor solved
6335               keeps a token Google has already spent and every retry fails the security check.
6336               captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha";
6337               an undefined id means no per-form id is known and the arg-less call is used,
6338               exactly as before. */
6339            function bdCaptchaWidgetId(formId) {
6340                if (typeof captchaHolders === "undefined" || !formId) {
6341                    return undefined;
6342                }
6343                /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84),
6344                   so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from
6345                   the holder element itself so the counter never has to be reconstructed. */
6346                var form = document.getElementById(formId);
6347                var holder = form && form.querySelector(".g-recaptcha");
6348                return holder ? captchaHolders[holder.id] : undefined;
6349            }
6350
6351            function bdCaptchaReset(formId) {
6352                if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") {
6353                    return;
6354                }
6355                var widgetId = bdCaptchaWidgetId(formId);
6356                if (widgetId === undefined) {
6357                    grecaptcha.reset();
6358                } else {
6359                    grecaptcha.reset(widgetId);
6360                }
6361            }
6362
6363            // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry
6364            // rules for fields that are NOT rendered in this form (conditionally-rendered or
6365            // duplicated form configs). Those phantom rules make formValidation mis-evaluate
6366            // isValid(), so an empty required field bypasses validation and submits natively.
6367            // Remove any rule whose field has no matching element before initializing.
6368            // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly
6369            // REMOVES rules (never adds validators, never overrides native submit, never
6370            // intercepts on capture phase, never re-validates on click) — so it cannot
6371            // reproduce the "Save button slides down / nav broken / no success message"
6372            // regression that caused #5902 to be rolled back on site 19413.
6373            var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"6Lf5x7ArAAAAANWNGogazYweb7go-_8lFv3BEpnO","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Required Field"},"emailAddress":{"message":"Please enter a valid email address"}}},"pass":{"validators":{"notEmpty":{"message":"Required Field"}}}}};
6374            var formElement = $(`form[name='member_login_190']`);
6375            if(validatorConfig && validatorConfig.fields) {
6376                Object.keys(validatorConfig.fields).forEach(function(fieldName) {
6377                    if(formElement.find('[name="' + fieldName + '"]').length === 0) {
6378                        delete validatorConfig.fields[fieldName];
6379                    }
6380                });
6381            }
6382
6383            // Scroll to the first invalid field when submit fails validation,
6384            // so the user can immediately see why the form will not submit
6385            formElement.on('err.form.fv', function(e) {
6386                var $firstError = $(e.target).find('.form-group.has-error').first();
6387                if ($firstError.length) {
6388                    $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700);
6389                }
6390            });
6391
6392            formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) {
6393
6394                if('member_login' == 'unsubscribe_email'){
6395                    return true;
6396                }
6397                // Prevent form submission
6398                e.preventDefault();
6399                $form = $(e.target),
6400                fv = $form.data('formValidation');
6401
6402                // Check HTML5 required fields that FormValidation may not know about
6403                var requiredEmpty = false;
6404                $form.find('[required]').each(function() {
6405                    var val = $(this).val();
6406                    if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) {
6407                        requiredEmpty = true;
6408                        $(this).closest('.form-group').addClass('has-error');
6409                        if ($(this).siblings('.required-error').length === 0) {
6410                            $(this).after('<small class="required-error help-block" style="color:#a94442;">Required Field</small>');
6411                        }
6412                    } else {
6413                        var $reqGroup = $(this).closest('.form-group');
6414                        $(this).siblings('.required-error').remove();
6415                        // Keep has-error if another validator is still failing for this field
6416                        if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
6417                            $reqGroup.removeClass('has-error');
6418                        }
6419                    }
6420                });
6421                if (requiredEmpty) {
6422                    fv.disableSubmitButtons(false);
6423                    counterSubmit = 0;
6424                    // Scroll to the first field with an error (HTML5-required scan does
6425                    // not trigger err.form.fv, so handle the scroll here too)
6426                    var $firstReqError = $form.find('.form-group.has-error').first();
6427                    if ($firstReqError.length) {
6428                        $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700);
6429                    }
6430                    return false;
6431                }
6432
6433                var values = $(this).serialize();
6434
6435                
6436                var locationFieldCorrect = true;
6437
6438                if($("#member_login_190 .location_required").length > 0){
6439                    $("#member_login_190 .location_required").each(function (index) {
6440                        if($(this).data('state') == 1){
6441                            if($('#member_login_190 input[name="lead_location"]').val() == "" || $('#member_login_190 input[name="lat"]').val() == "" || $('#member_login_190 input[name="lng"]').val() == "") {
6442                                locationFieldCorrect = false;
6443                            }
6444                        }
6445                    });
6446                }
6447
6448                if(locationFieldCorrect === false){
6449                    //check that there is a latitude or longitude
6450                    swal(`Whoops!`, `The location information is required to submit this form`, "error");
6451                    return false;
6452                }
6453                        
6454
6455                if (!$(this).attr("action")) {
6456                    var action = '';
6457
6458                } else {
6459                    var action = $(this).attr("action");
6460                }
6461                if (!$(this).attr("method")) {
6462                    var method = 'post';
6463
6464                } else {
6465                    var method = $(this).attr("method");
6466                }
6467                if (!$(this).attr("form_action_type")) {
6468                    var form_action_type = 'notification';
6469
6470                } else {
6471                    var form_action_type = $(this).attr("form_action_type");
6472                }
6473                if (!$(this).attr("form_action_div")) {
6474                    /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */
6475                    var form_action_div = $('#main-content').length ? '#main-content' : '#first_container';
6476
6477                } else {
6478                    var form_action_div = $(this).attr("form_action_div");
6479                }
6480                if (!$(this).attr("return_data_type")) {
6481                    var return_data_type = 'json';
6482
6483                } else {
6484                    var return_data_type = $(this).attr("return_data_type");
6485                }
6486                var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000);
6487                if (!submitInFlight) {
6488                    if ($("#member_login_190-notification").html() != "") {
6489                        $("#member_login_190-notification").remove();
6490                    }
6491                    if ($(this).find('input[type="submit"]').length > 0) {
6492                        $(this).find('input[type="submit"]').before('<div id="member_login_190-notification" class="alert"></div>');
6493
6494                    } else {
6495                        $(this).prepend('<div id="member_login_190-notification" class="alert"></div>');
6496                    }
6497                }
6498                var notification = $("#member_login_190-notification");
6499
6500                if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) {
6501                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
6502                    setTimeout(function(){
6503                        fv.defaultSubmit();
6504                    }, 100);
6505                } else {
6506                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
6507                    if(!submitInFlight) {
6508                        counterSubmit++;
6509                        $form.data('bdLastSubmitAt', Date.now());
6510
6511                        var fields      = $(this).serializeArray();
6512                        var formField   = [];
6513                        var processData = true;
6514                        var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
6515                        
6516                        
6517
6518                        if($("#member_login_190 input[type=file]").length > 0){
6519                            
6520                            var formObject  = new FormData();
6521                            processData     = false;
6522                            contentType     = false;
6523
6524                            $(fields).each(function(index,field){
6525                                formField.push(field.name+"="+field.value);
6526                            });
6527
6528                            values  = formField.join("&");
6529
6530                            $(formField).each(function(index,fieldValue){
6531                                var fieldInfo = fieldValue.split('=');
6532                                formObject.append(fieldInfo[0],fieldInfo[1]);
6533                            });
6534
6535                            $("#member_login_190 input[type=file]").each(function(index,node){
6536                                var file = this.files[0];
6537                                if(typeof file != "undefined"){
6538                                    formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name);
6539                                }
6540                            });
6541                        }else{
6542                            
6543                            $(fields).each(function(index,field){
6544                                formField.push(field.name+"="+encodeURIComponent(field.value));
6545                            });
6546
6547                            var formObject  = formField.join("&");
6548                        } 
6549                        
6550                        $.ajax({
6551                            url: action,
6552                            type: method,
6553                            data: formObject,
6554                            dataType: return_data_type,
6555                            processData: processData,
6556                            contentType: contentType,
6557                            success: function (data) {
6558                                // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above.
6559                                notification = $("#member_login_190-notification");
6560                                if (return_data_type == "html") {
6561                                    var result = 'success';
6562
6563                                    if (!data != "") {
6564                                        var result_widget = data['result_widget'];
6565                                    }
6566
6567                                } else {
6568
6569
6570                                    if (!data['result']) {
6571                                        var result = 'error';
6572                                    } else {
6573                                        var result = data['result'];
6574                                    }
6575                                    if (!data['result_widget']) {
6576                                        var result_widget = '';
6577
6578                                    } else {
6579                                        var result_widget = data['result_widget'];
6580                                    }
6581                                }
6582                                if (result == "success") {
6583
6584                                    if (!data['message']) {
6585                                        var message = `Your information has submitted successfully!`;
6586
6587                                    } else {
6588                                        var message = data['message'];
6589                                    }
6590                                    if (!data['redirect_url']) {
6591                                        var redirect_url = '';
6592
6593                                    } else {
6594                                        var redirect_url = data['redirect_url'];
6595                                    }
6596
6597
6598
6599                                    if (form_action_type == "notification") {
6600                                        if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) {
6601                                            if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
6602                                                redirect_url = "/" + redirect_url;
6603                                            }
6604                                            if (notification.parents('.modal').length) {
6605                                                $('.modal-backdrop').hide();
6606                                                $('.modal').modal('hide');
6607                                            }
6608                                            window.location.href = redirect_url;
6609                                            fv.resetForm(true);
6610                                        } else {
6611                                        notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>')
6612                                            .addClass('alert-dismissible')
6613                                            .addClass("alert-success-subtle")
6614                                            .removeClass("alert-danger-subtle")
6615                                            .removeClass("alert-warning-subtle")
6616                                        
6617                                            
6618
6619                                        if(notification.parents('.modal').length && 'member_login_190' == 'whmcs_billing_address'){
6620                                            setTimeout(function(){
6621                                                notification.parents('.modal').modal('hide');
6622                                            }, 1000);
6623                                        }
6624                                        }
6625
6626                                    } else if (form_action_type == "widget") {
6627
6628                                        if (result_widget != '') {
6629
6630                                            setTimeout(function(){
6631                                                if(form_action_div != '.newsletter_modal_form_container'){
6632                                                    $("html, body").animate({ scrollTop: 0 }, 600);
6633                                                }                                                
6634                                                $(form_action_div).html(decodeHtml(result_widget)).text();
6635
6636                                            }, 1000);
6637                                        }
6638
6639                                    } else if (form_action_type == "redirect") {
6640
6641                                        if (redirect_url == "") {
6642                                            redirect_url = decodeURIComponent("");
6643                                        }
6644
6645                                        if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
6646                                            redirect_url = "/" + redirect_url;
6647                                        }
6648                                        current_location = "/search_results";
6649                                        refresh_pages_string = "/login";
6650                                        refresh_pages_string = refresh_pages_string.replace(/ /g,'');
6651                                        refresh_pages_array = refresh_pages_string.split(',');
6652                                        notification.html(message)
6653                                            .addClass("alert-success-subtle")
6654                                            .removeClass("alert-danger-subtle")
6655                                            .removeClass("alert-warning-subtle")
6656                                            .delay(2000).slideUp();
6657                                            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" )){
6658                                                                                                    window.location.href = window.location.href+'?logged';
6659                                                                                            } else {
6660                                                window.location.href = redirect_url;
6661                                            }
6662
6663                                        fv.resetForm(true);
6664                                    }
6665                                    if(form_action_div != '.newsletter_modal_form_container' && 'member_login_190' != 'whmcs_billing_address'){
6666                                        $('.modal-backdrop').hide();
6667                                    }
6668                                } else {
6669                                    bdCaptchaReset(formElement.attr('id'));
6670                                    if (!data['message']) {
6671                                        var message = `You entered invali
6671d data. Please try to save again.`;
6672
6673                                    } else {
6674                                        var message = data['message'];
6675                                    }
6676                                    $("#member_login_190-notification").html(message)
6677                                        .addClass("alert-danger-subtle")
6678                                        .removeClass("alert-success-subtle")
6679                                        .removeClass("alert-warning-subtle")
6680                                        .fadeIn();
6681                                    fv.disableSubmitButtons(false);
6682                                }
6683                                counterSubmit = 0;
6684                            },
6685                            error: function (e) {
6686                                
6687                                if(typeof grecaptcha !== "undefined" && typeof grecaptcha.reset === "function"){
6688                                        bdCaptchaReset(formElement.attr('id'));
6689                                        $("#member_login_190-notification").html(`Recaptcha Error`);
6690                                } else {
6691                                    $("#member_login_190-notification").html(`A connection error occurred while saving. Please try to save again.`);
6692                                }
6693                                $("#member_login_190-notification").addClass("alert-warning-subtle")
6694                                    .removeClass("alert-success-subtle")
6695                                    .removeClass("alert-warning-subtle")
6696                                    .fadeIn();
6697                                counterSubmit = 0;
6698                            }
6699                        });/// End Ajax
6700                    }
6701                }//END else
6702            }).bind('keydown', function(event) {
6703
6704                if (event.ctrlKey || event.metaKey) {
6705
6706                    switch (String.fromCharCode(event.which).toLowerCase()) {
6707
6708                        case 's':
6709                            var nativeForm = $(this)[0];
6710                            if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
6711                                event.preventDefault();
6712                                return false;
6713                            }
6714                            $(this).submit();
6715                            break;
6716                    }
6717                }
6718            });
6719
6720            /// This will turn any select2 that are required in the form builder to being required elements.
6721            $('#member_login_190 select').each(function (i, obj) {
6722                setTimeout(function(){
6723                    if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") {
6724                        $(obj).css("z-index","-999");
6725                        $(obj).css("height","0");
6726                        $(obj).css("width","0");
6727                        $(obj).css("display","block");  
6728                        $(obj).css("position","absolute");  
6729                    }
6730                }, 3000);
6731            });
6732
6733            // Clear required-error messages when user fills in a required field
6734            $('#member_login_190').on('keyup change', '[required]', function() {
6735                var val = $(this).val();
6736                if (val !== '' && val !== null && val.trim() !== '') {
6737                    var $group = $(this).closest('.form-group');
6738                    // Remove only this handler's own required message
6739                    $(this).siblings('.required-error').remove();
6740                    // Keep has-error if another FormValidation validator is still failing
6741                    // (e.g. stringLength, regexp). has-error is shared, so removing it
6742                    // wholesale would clobber other validators' red styling.
6743                    if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
6744                        $group.removeClass('has-error');
6745                    }
6746                }
6747            });
6748
6749        });//END $('# echo $_SERVER[form_element_id]; ').formValidation(
6750    </script>
6750
6751            
6751<script>
6752        window.addEventListener('load', (event) => {
6753            setTimeout(() => {
6754                    }, 501);
6755        });
6756    </script>
vendor: 2 bytes, line 6756
6756
6757<script>
6758	function decision(message, url) {
6759		if (confirm(message)) {
6760			setTimeout(function () {
6761				window.location = url;
6762			}, 0);
6763		}
6764	}
6765</script>
vendor: 2 bytes, line 6765
6765
6766<script>
6767	// Function to add alt, width, and height attributes to <img> elements without them
6768	function addAttributesToImages() {
6769		var images = document.querySelectorAll('img:not([alt]), img:not([width]), img:not([height])');
6770		Array.prototype.forEach.call(images, function(img) {
6771			// Skip if we've already processed this image
6772			if (img.dataset.processed === 'true') {
6773				return;
6774			}
6775			
6776			// Mark this image as being processed
6777			img.dataset.processed = 'true';
6778			
6779			// Add alt attribute if missing
6780			if (!img.hasAttribute('alt')) {
6781				var src = img.getAttribute('src') || 'image';  // Default src to 'image' if missing
6782				var altText = src.split('/').pop().split('?')[0].replace(/\.\w+$/, '');
6783
6784				try {
6785					altText = decodeURIComponent(altText)
6786					.replace(/[_\-+,.:;]+/g, ' ')
6787					.replace(/\s+/g, ' ')
6788					.trim();
6789				} catch (e) {
6790					altText = 'image';  // Fallback to 'image' if decoding fails
6791				}
6792
6793				// Ensure altText is not empty, otherwise use 'image'
6794				altText = altText || 'image';
6795
6796				img.setAttribute('alt', altText);
6797			}
6798
6799			// Add width and height attributes if missing
6800			if (!img.hasAttribute('width') || !img.hasAttribute('height')) {
6801				// Handle SVG differently
6802				if (img.src && img.src.endsWith('.svg')) {
6803					// For SVG, use the viewBox to set width and height, if available
6804					fetch(img.src)
6805					.then(response => {
6806						if (!response.ok) {
6807							throw new Error('Failed to fetch SVG: ' + response.status);
6808						}
6809						return response.text();
6810					})
6811					.then(svgText => {
6812						var parser = new DOMParser();
6813						var svgDoc = parser.parseFromString(svgText, "image/svg+xml");
6814						var svgElement = svgDoc.querySelector('svg');
6815						
6816						if (svgElement) {
6817							var viewBox = svgElement.getAttribute('viewBox');
6818							if (viewBox) {
6819								var viewBoxValues = viewBox.split(' ');
6820								var width = viewBoxValues[2];
6821								var height = viewBoxValues[3];
6822
6823								if (!img.hasAttribute('width')) {
6824									img.setAttribute('width', width);
6825								}
6826								if (!img.hasAttribute('height')) {
6827									img.setAttribute('height', height);
6828								}
6829							}
6830						}
6831					})
6832					.catch(error => {
6833						// Fallback to default dimensions for SVG
6834						if (!img.hasAttribute('width')) {
6835							img.setAttribute('width', '100');
6836						}
6837						if (!img.hasAttribute('height')) {
6838							img.setAttribute('height', '100');
6839						}
6840					});
6841				} else {
6842					// For non-SVG images, use natural dimensions
6843					var tempImg = new Image();
6844					tempImg.src = img.src;
6845					
6846					tempImg.onload = function() {
6847						if (!img.hasAttribute('width')) {
6848							img.setAttribute('width', tempImg.naturalWidth);
6849						}
6850						if (!img.hasAttribute('height')) {
6851							img.setAttribute('height', tempImg.naturalHeight);
6852						}
6853					};
6854					
6855					tempImg.onerror = function() {
6856						// Fallback to default dimensions
6857						if (!img.hasAttribute('width')) {
6858							img.setAttribute('width', '100');
6859						}
6860						if (!img.hasAttribute('height')) {
6861							img.setAttribute('height', '100');
6862						}
6863					};
6864				}
6865			}
6866		});
6867	}
6868
6869	document.addEventListener('DOMContentLoaded', function() {
6870		// Run the function initially to catch images already in the DOM
6871		addAttributesToImages();
6872
6873		// Create a MutationObserver to monitor the DOM for added/changed images
6874		var observer = new MutationObserver(function(mutations) {
6875			mutations.forEach(function(mutation) {
6876				if (mutation.addedNodes.length > 0 || mutation.type === 'attributes') {
6877					// Only process if we have new images or src attribute changes
6878					var hasNewImages = false;
6879					
6880					if (mutation.addedNodes.length > 0) {
6881						mutation.addedNodes.forEach(function(node) {
6882							if (node.nodeType === 1) { // Element node
6883								if (node.tagName === 'IMG' || node.querySelectorAll) {
6884									hasNewImages = true;
6885								}
6886							}
6887						});
6888					}
6889					
6890					if (mutation.type === 'attributes' && mutation.attributeName === 'src') {
6891						hasNewImages = true;
6892					}
6893					
6894					if (hasNewImages) {
6895						addAttributesToImages();
6896					}
6897				}
6898			});
6899		});
6900
6901		// Start observing the document body for changes
6902		observer.observe(document.body, {
6903			childList: true, // Watch for added or removed nodes
6904			subtree: true, // Watch the entire subtree
6905			attributes: true, // Watch for attribute changes
6906			attributeFilter: ['src'] // Specifically watch for changes in the 'src' attribute
6907		});
6908	});
6909</script>
6909<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] {
6910    cursor: wait
6911}
6912select.select2-preload {
6913    line-height: initial;
6914}
6915
6916select#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"] {
6917    -webkit-appearance: none;
6918    -moz-appearance: none;
6919    appearance: none;
6920    background-image: url(/images/select2ArrowDown.png) !important;
6921    background-repeat: no-repeat !important;
6922    background-size: 10px 9px !important;
6923    background-position: 99% 16px;
6924    border-radius: 6px;
6925    overflow: hidden;
6926}
6927.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"] {
6928    background-position: 98.2% 12px;
6929} </style>    <!-- DROPDOWN SELECT SCRIPT -->
6930    <!-- Select2 CSS Included in website-styles.pkgd.min.css -->
6931    <!--[if lt IE 9]>
6932    
6932<script defer src="https://www.optimizecdn.com/directory/cdn/assets/html5shiv/3.7.2/html5shiv.min.js"></script>
6932
6933    
6933<script defer src="https://www.optimizecdn.com/directory/cdn/bootstrap/select2/master/js/respond.min.js"></script>
6933
6934    <![endif]-->
6935    
6935<script>
6936
6937        var preloaded_ttid  = false;
6938        var preloaded_tid   = false;
6939        var preloaded_sid   = false;
6940        var path2            = window.location.pathname.replace(/\//g, "_");
6941
6942        if (performance.navigation.type !== 2) {
6943            if (sessionStorage.getItem('select2-ttid'+path2) !== null) {
6944                sessionStorage.removeItem('select2-ttid'+path2);
6945            }
6946
6947            if (sessionStorage.getItem('select2-tid'+path2) !== null) {
6948                sessionStorage.removeItem('select2-tid'+path2);
6949            }
6950
6951            if (sessionStorage.getItem('select2-sid'+path2) !== null) {
6952                sessionStorage.removeItem('select2-sid'+path2);
6953            }
6954
6955        }else if(performance.navigation.type === 2){
6956            if (sessionStorage.getItem('select2-ttid'+path2) !== null) {
6957                preloaded_ttid = sessionStorage.getItem('select2-ttid'+path2);
6958            }
6959
6960            if (sessionStorage.getItem('select2-tid'+path2) !== null) {
6961                preloaded_tid = sessionStorage.getItem('select2-tid'+path2);
6962            }
6963
6964            if (sessionStorage.getItem('select2-sid'+path2) !== null) {
6965                preloaded_sid = sessionStorage.getItem('select2-sid'+path2);
6966            }
6967        }
6968
6969        window.addEventListener('load', () => {
6970            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"]');
6971            if (typeof select2Inputs != "undefined") {
6972                for (let i = 0; i < select2Inputs.length; i++) {
6973                    let inputPlaceHolder = select2Inputs[i].getAttribute('placeholder');
6974                    if (!select2Inputs[i].getAttribute('placeholder')) {
6975                        inputPlaceHolder = select2Inputs[i].getAttribute('data-placeholder');
6976                    }
6977                    let countryCode = select2Inputs[i].getAttribute('data-country-code');
6978                    if (select2Inputs[i].getAttribute('data-country-code') != null && countryCode > 0 && typeof isoCountries != 'undefined') {
6979                        for (let c = 0; c < isoCountries.length; c++) {
6980                            if(isoCountries[c].id == countryCode){
6981                                //   select2Inputs[i].querySelector('option:first-child').text = isoCountries[c].text;
6982                                select2Inputs[i].text = isoCountries[c].text;
6983                            }
6984                        }
6985
6986                    }
6987                    if(select2Inputs[i].hasAttribute('data-country-code')){
6988                        inputPlaceHolder = null; //reset the input
6989                    }
6990                    if (inputPlaceHolder != '' && inputPlaceHolder !== null) {
6991                        select2Inputs[i].querySelector('option:first-child').text = inputPlaceHolder;
6992                        select2Inputs[i].style.color = "#a8a8a8";
6993                        if(!select2Inputs[i].querySelector('option:first-child').hasAttribute('value')){
6994                            select2Inputs[i].querySelector('option:first-child').value='';
6995                        }
6996                    }
6997                    select2Inputs[i].classList.add("select2-preload");
6998                    select2Inputs[i].addEventListener('mousedown', select2OnFormClick, false);
6999                }
7000            }
7001        });
7002
7003        function select2OnFormClick(event = false) {
7004            let elemtClicked = '';
7005            if (event !== false) {
7006                event.preventDefault();
7007                event.stopImmediatePropagation();
7008                elemtClicked = event.target;
7009                elemtClicked.disabled = true;
7010            }
7011
7012            let loadScriptAsync = function (uri) {
7013                return new Promise((resolve, reject) => {
7014                    let script = document.createElement('script');
7015                    script.type = 'text/javascript';
7016                    script.src = uri;
7017                    script.async = true;
7018                    script.onload = function () {
7019                        if (event !== false) {
7020                            elemtClicked.disabled = false;
7021                            select2Initialize();
7022                            $(elemtClicked).select2('open');
7023                            $(elemtClicked).on("select2-close", function () {
7024                                setTimeout(function() {
7025                                    $('.select2-container-active').removeClass('select2-container-active');
7026                                    $(':focus').blur();
7027                                }, 1);
7028                            });
7029                            if (elemtClicked.hasAttribute('data-fv-field')) {
7030                                if (window.getComputedStyle(elemtClicked).display === "none") {
7031                                    // if element is display none, the formvalition can not read
7032                                    elemtClicked.style.cssText = "display: block;position: absolute;visibility: hidden !important;height: 0;width: 0;opacity: 0 !important;"
7033                                }
7034                            }
7035                        } else {
7036                            select2Initialize();
7037                        }
7038                        resolve("ok");
7039                    };
7040                    let head = document.getElementsByTagName('head')[0];
7041                    head.appendChild(script);
7042                });
7043            }
7044
7045            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"]');
7046
7047            if (typeof select2Inputs != "undefined") {
7048                for (let i = 0; i < select2Inputs.length; i++) {
7049                    let inputPlaceHolder = select2Inputs[i].getAttribute('placeholder');
7050                    if (!select2Inputs[i].getAttribute('placeholder')) {
7051                        inputPlaceHolder = select2Inputs[i].getAttribute('data-placeholder');
7052                    }
7053                    if(select2Inputs[i].hasAttribute('data-country-code')){
7054                        inputPlaceHolder = null; //reset the input
7055                    }
7056                    if (inputPlaceHolder != '' && inputPlaceHolder !== null) {
7057                        select2Inputs[i].querySelector('option:first-child').text = '';
7058                    }
7059                    select2Inputs[i].removeEventListener('mousedown', select2OnFormClick, false);
7060                }
7061            }
7062            let scriptLoaded = loadScriptAsync('https://www.optimizecdn.com/directory/cdn/bootstrap/select2/3.5.2/select2.min.js?v=3.5.5');
7063            return scriptLoaded;
7064        }
7065
7066        function select2Initialize(){
7067            function getSecondLevel(div,id) {
7068                $("#" + div).select2("data", {
7069                    id: "",
7070                    text: `Loading...`
7071                });
7072                $.ajax({
7073                    url : '/ajaxsearch/get-services',
7074                    type : "GET",
7075                    data : {
7076                        'specialty_id' : id
7077                    },
7078                    dataType: "json",
7079                    success : function(data) {
7080                        var options = '';
7081
7082                        for (var i = 0; i < data.length; i++) {
7083                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
7084                        }
7085                        if (div == "tid"){
7086                            $("#ttid").select2("data", {
7087                                id: "",
7088                                text: "No options available"
7089                            });
7090
7091
7092                            $("#ttid").select2("enable", false);
7093
7094                            $("#" + div).change(function () {
7095                                sessionStorage.setItem("select2-tid"+path2,$(this).val());
7096                            });
7097                        }
7098                        if (data.length > 1) {
7099                            $("#" + div).select2("enable",true);
7100                            $("#" + div).html(options);
7101                            $("#" + div).select2("val", "");
7102                            
7103                        } else {
7104                            $("#"+div).select2("data", {
7105                                id: "",
7106                                text: "No options available"
7107                            });
7108                            $("#"+div).select2("val", "");
7109                        }
7110
7111                        if(div == 'tid' && preloaded_tid !== false){
7112                            $("#" + div).select2("val", preloaded_tid);
7113                            $("#" + div).trigger('change');
7114                        }
7115                    }
7116                });
7117            }
7118            function getSecondLevelAccount(div,id) {
7119                $("#" + div).select2("data", {
7120                    id: "",
7121                    text: `Loading...`
7122                });
7123                $.ajax({
7124                    url : '/ajaxsearch/get-services',
7125                    type : "GET",
7126                    data : {
7127                        'specialty_id' : id
7128                    },
7129                    dataType: "json",
7130                    success : function(data) {
7131                        var options = '';
7132
7133                        for (var i = 0; i < data.length; i++) {
7134                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
7135                        }
7136                        if (data.length > 1) {
7137                            $("#" + div).select2("close");
7138                            $("#" + div).select2("val", "");
7139                            $("#" + div).select2("enable",true);
7140                            $("#" + div).html(options);
7141
7142                            
7143                        } else {
7144                            $("#"+div).select2("data", {
7145                                id: "",
7146                                text: "No options available"
7147                            });
7148                            $("#"+div).select2("val", "");
7149                        }
7150                    }
7151                });
7152            }
7153            function getThirdLevel(div,id,id2) {
7154                $("#"+div).select2("data", {
7155                    id: "",
7156                    text: `Loading...`
7157                });
7158
7159                $.ajax({
7160                    url : '/ajaxsearch/get-locations',
7161                    type : "GET",
7162                    data : {
7163                        'specialty_id' : id,
7164                        'treatment_id' : id2,
7165                    },
7166                    dataType: "json",
7167                    success : function(data) {
7168                        var options = '';
7169
7170                        for (var i = 0; i < data.length; i++) {
7171                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
7172                        }
7173                        if (data.length > 1) {
7174                            $("#" + div).select2("enable",true);
7175                            $("#" + div).html(options);
7176                            $("#" + div).select2("val", "");
7177                            
7178                        } else {
7179                            $("#"+div).select2("data", {
7180                                id: "",
7181                                text: "No options available"
7182                            });
7183                            $("#"+div).select2("val", "");
7184                        }
7185                    }
7186                });
7187            }
7188            var current_country = '';
7189            function getStateList(div,id) {
7190                if (id != current_country) {
7191                    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). */
7192
7193                    $("#"+div).select2("data", {
7194                        id: "",
7195                        text: `Loading...`
7196                    });
7197                    $.ajax({
7198                        url : '/ajaxsearch/get-states',
7199                        type : "GET",
7200                        data : {
7201                            'country' : id
7202                        },
7203                        dataType: "json",
7204                        success : function(data) {
7205                            $("#" + div).html(''); // clear options
7206
7207                            /* p949P6dS: data[0] is always the server-side "(Select from List)" placeholder,
7208                               so <=2 entries means the country has at most 1 real region (Singapore,
7209                               Martinique, zero-region). Client wants those to read "No State/Province
7210                               Available" instead of "(Select from List)"; the single real region stays
7211                               selectable. Reset/enable now runs on EVERY response (was gated behind
7212                               data.length > 1, which left zero-region countries stuck on "Loading..."
7213                               and disabled); auto-open stays multi-region only. */
7214                            var hasStates = (data.length > 2);
7215                            for (var i = 0; i < data.length; i++) {
7216                                var optionTitle = (!hasStates && data[i].value === "") ? `No State/Province Available for This Country` : data[i].title;
7217                                var newOption = new Option(optionTitle, data[i].value, false, false);
7218                                $("#" + div).append(newOption).trigger('change');
7219
7220                            }
7221                            if (data.length === 0) {
7222                                $("#" + div).append(new Option(`No State/Province Available for This Country`, "", false, false)).trigger('change');
7223                            }
7224
7225                            $("#" + div).select2("enable",true);
7226                            $("#" + div).prop("disabled", false);
7227                            $("#" + div).select2("val", "");
7228                            if (hasStates) {
7229                                                                $("#" + div).select2("open");
7230                                                            }
7231                        }
7232                    });
7233                } else {
7234                    /* p949P6dS AC#3: the select2-open handler runs select2("enable",false) BEFORE
7235                       re-calling getStateList, and for a country with <=2 options (Singapore,
7236                       Martinique) that re-call short-circuits here on the id == current_country
7237                       guard. This branch previously only reset the value, so the field was left
7238                       permanently disabled: select2-container-disabled, clicks never open it, the
7239                       single real region is unselectable. Mirror the success path's re-enable so a
7240                       short-circuited re-open leaves the field usable. Multi-region countries never
7241                       hit this (their open handler is gated behind count <= 2). */
7242                    $("#" + div).select2("enable", true);
7243                    $("#" + div).prop("disabled", false);
7244                    $("#" + div).select2("val", "");
7245                }
7246            }
7247            /* p949P6dS: keep the checkout/billing required-State validation in sync with the
7248               server-side waiver, on BOTH layers. When the selected country has selectable
7249               sub-regions (Canada, US, ...) FormValidation validates state_code (inline "Required
7250               Field" on submit); when it has none (Singapore, Martinique, zero-region) the state_code
7251               validator is disabled + un-flagged so those countries are not blocked. Delegated so it
7252               binds even though the billing form is revealed after step 1; guarded to no-op on any
7253               page/form without FormValidation + a state_code field. The server still enforces the
7254               same rule (bd-core-files form_controller), so this is UX only, not the security gate. */
7255            function bdSyncStateRequired(hasStates) {
7256                var $stField = $("#state-chained");
7257                var $stForm = $stField.closest("form");
7258                var stFv = ($stForm.length) ? ($stForm.data("formValidation") || $stForm.data("bootstrapValidator")) : null;
7259                if (!stFv || !stFv.options || !stFv.options.fields || !stFv.options.fields.state_code) {
7260                    return;
7261                }
7262                stFv.options.fields.state_code.excluded = hasStates ? false : true;
7263                try { stFv.enableFieldValidators("state_code", hasStates); } catch (e) {}
7264
7265                /* p949P6dS: keep the visible "* " required marker on the State label in sync with the
7266                   waiver. functions_up.php renders <span class="required">* </span> on the state_code
7267                   label when AVS forces the field required; for a no-state country (Singapore,
7268                   Martinique) the field is genuinely waived so the asterisk must go away, and come
7269                   back when the country has selectable states again. Scoped to the state label. */
7270                var $stReq = $("label[for='state-chained'] .required", $stForm);
7271                $stReq.css("display", hasStates ? "" : "none");
7272
7273                /* p949P6dS: the ACTUAL blocker. The billing form carries a SECOND required layer,
7274                   independent of FormValidation: the form's success.form.fv handler loops
7275                   $form.find('[required]') and, for any empty one, appends <small class="required-error">
7276                   Required Field</small> + returns false, hard-blocking the submit. AVS renders the
7277                   state_code <select> with the HTML5 `required` attribute, so a no-state country
7278                   (empty state) stayed blocked with "Required Field" even after the FormValidation
7279                   waiver above. Drop the `required` attribute (+ clear its custom error) when the
7280                   country has no selectable states, and restore it when it does. Remember the server-
7281                   rendered original so we never ADD required to a field AVS left optional. */
7282                if ($stField.attr("data-bd-orig-required") === undefined) {
7283                    $stField.attr("data-bd-orig-required",
7284                        ($stField.prop("required") || $stField.attr("required") !== undefined) ? "1" : "0");
7285                }
7286                var stOrigRequired = ($stField.attr("data-bd-orig-required") === "1");
7287
7288                var $stRow = $stField.closest(".form-group,.fv-row,.row");
7289                if (!hasStates) {
7290                    try { if (typeof stFv.resetField === "function") { stFv.resetField("state_code", true); } } catch (e) {}
7291                    $stRow.removeClass("has-error has-success");
7292                    $stRow.find(".help-block[data-fv-validator]").css("display", "none");
7293                    /* drop the HTML5 required gate + its "Required Field" message for no-state country */
7294                    $stField.removeAttr("required").prop("required", false);
7295                    $stField.siblings(".required-error").remove();
7296                    $stRow.find(".required-error").remove();
7297
7298                    /* p949P6dS: on the Member-Dashboard billing modal the Save button is disabled by
7299                       FormValidation until the whole form is valid; for a no-state country the user
7300                       has no state to pick, so nothing re-enables it and Save stays stuck disabled ->
7301                       "cannot save". Re-enable it directly. IMPORTANT: do NOT call stFv.validate()
7302                       here — in this FormValidation build validate() on an already-valid form fires
7303                       success.form.fv (a real submit), which saved the address on the country change
7304                       AND consumed the one-time CSRF token, so the actual Save click then failed with
7305                       "You entered invalid data. Please try to save again." disableSubmitButtons only
7306                       toggles the button; no submit. Scoped to the billing modal so checkout is
7307                       untouched. */
7308                    if ($stForm.closest("#billing_address_modal").length) {
7309                        try { if (typeof stFv.disableSubmitButtons === "function") { stFv.disableSubmitButtons(false); } } catch (e) {}
7310                        $stForm.find("input.submitter, button.submitter, [type=submit]")
7311                               .removeClass("disabled").prop("disabled", false).removeAttr("disabled");
7312                    }
7313                } else if (stOrigRequired) {
7314                    /* country has states again — restore the required gate AVS originally set */
7315                    $stField.attr("required", "required").prop("required", true);
7316                }
7317            }
7318            $(document).off("change.bdStateReq").on("change.bdStateReq", "#country-chained", function() {
7319                var bdCc = $(this).val();
7320                var $bdForm = $("#state-chained").closest("form");
7321                var bdFv = ($bdForm.length) ? ($bdForm.data("formValidation") || $bdForm.data("bootstrapValidator")) : null;
7322                if (!bdFv || !bdFv.options || !bdFv.options.fields || !bdFv.options.fields.state_code || bdCc === "") {
7323                    return;
7324                }
7325                $.ajax({
7326                    url: "/ajaxsearch/get-states",
7327                    type: "GET",
7328                    data: { "country": bdCc },
7329                    dataType: "text",
7330                    success: function(bdResp) {
7331                        /* count entries without regex (DB+eval mangles backslashes): split on the
7332                           literal "value" key; total entries = splits - 1; >2 means placeholder + 2+
7333                           real regions == has selectable states. Text parse also survives the
7334                           malformed-JSON zero-region response. */
7335                        var bdTotal = bdResp.split(`"value"`).length - 1;
7336                        bdSyncStateRequired(bdTotal > 2);
7337                    }
7338                });
7339            });
7340            /* p949P6dS: the Member Dashboard billing modal (widget 1861) pre-selects the member's
7341               SAVED country_code at document.ready without firing a change event, so the handler
7342               above never ran for it and an AVS-forced required State (functions_up.php forces
7343               field_required=1 on state_code when whmcs_avs_on / stripe_accept_intl_payments is on)
7344               stayed active for a saved no-state country — blocking the save with "Required Field"
7345               on a country that has no state to pick. Sync once for an already-selected country.
7346               The namespaced trigger fires only this handler (not select2/getStateList), and the
7347               handler no-ops when the country is empty or state_code is not a validated field, so
7348               checkout and every other chained-select page are unaffected. */
7349            $("#country-chained").each(function() {
7350                if ($(this).val() !== "") {
7351                    $(this).trigger("change.bdStateReq");
7352                }
7353            });
7354            function getInfinityChained(div,id) {
7355                $("#"+div).select2("data", {
7356                    id: "",
7357                    text: `Loading...`
7358                });
7359                $.ajax({
7360                    url : '/ajaxsearch/get-subcategory',
7361                    type : "GET",
7362                    data : {
7363                        'parent' : id
7364                    },
7365                    dataType: "json",
7366                    success : function(data) {
7367                        var options = '';
7368
7369                        for (var i = 0; i < data.length; i++) {
7370                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
7371                        }
7372                        if (data.length > 1) {
7373                            $("#" + div).select2("enable",true);
7374                            $("#" + div).html(options);
7375                            if(div == 'tid' && '' != ''){
7376                                $("#" + div).select2("val", "");
7377                                $("#" + div).trigger('change');
7378                            } else if(div == 'tid' && preloaded_tid !== false){
7379                                $("#" + div).select2("val", preloaded_tid);
7380                                $("#" + div).trigger('change');
7381                            }else {
7382                                $("#" + div).select2("val", "");
7383                            }
7384
7385
7386
7387                            
7388                        } else {
7389                            $("#" + div).select2("data", {
7390                                id: "",
7391                                text: "No options available"
7392                            });
7393                        }
7394                    }
7395                });
7396            }
7397            function categoryChained(div,id) {
7398                $("#" + div).select2("data", {
7399                    id: "",
7400                    text: `Loading...`
7401                });
7402                if(div == "tid") {
7403                    url_link = '/ajaxsearch/get-services'
7404                    data_passed = {'specialty_id' : id}
7405                } else {
7406                    url_link = '/ajaxsearch/category-list';
7407                    data_passed = {'parent' : id} ;
7408                }
7409
7410                var selectName = $("select[next="+div+"]").prop("name");
7411
7412
7413                if( (selectName == "ttid" || selectName == "sid" || selectName == "tid") ){
7414
7415                    sessionStorage.setItem("select2-"+selectName+path2,id);
7416                }
7417
7418                $.ajax({
7419                    url : url_link,
7420                    type : "GET",
7421                    data : data_passed,
7422                    dataType: "json",
7423                    success : function(data) {
7424                        var options = '';
7425
7426                        for (var i = 0; i < data.length; i++) {
7427                            options += '<option value="' + data[i].value + '">' + data[i].title + '</option>';
7428                        }
7429
7430                        if (data.length > 1) {
7431                            $("#" + div).select2("enable",true);
7432                            $("#" + div).html(options);
7433
7434                            if(div == "ttid" && preloaded_ttid !== false){
7435                                $("#" + div).select2("val", preloaded_ttid);
7436                                $("#" + div).trigger('change');
7437                            }else if(div == "tid" && preloaded_tid !== false){
7438                                $("#" + div).select2("val", preloaded_tid);
7439                                $("#" + div).trigger('change');
7440                            }else{
7441                                $("#" + div).select2("val", "");
7442                            }
7443
7444
7445                            
7446                        } else {
7447                            $("#" + div).select2("data", {
7448                                id: "",
7449                                text: "No options available"
7450                            });
7451                        }
7452                    }
7453                });
7454            }
7455            function formatCountry(country) {
7456                if (!country.id && country.text.includes("+")) {
7457                    let dataCountry = country.text;
7458                    dataCountry = dataCountry.split('+')
7459                    country.code = dataCountry[0].trim();
7460                    country.id = dataCountry[1].trim();
7461                    return country;
7462                } else if (!country.code) {
7463                    return country.text;
7464                }
7465                var $country = $(
7466                    '<span class="flag-icon flag-icon-' + country.code.toLowerCase() + ' flag-icon-squared"></span>' +
7467                    '<span class="flag-text" style="margin-left:10px;">' + country.text + '</span>'
7468                );
7469                return $country;
7470            }
7471
7472            let phoneCountryCode = document.querySelector("[name^='bd_phone_country_code']");
7473            if (typeof phoneCountryCode != 'undefined' && phoneCountryCode != null && typeof isoCountries != 'undefined') {
7474                $("[name^='bd_phone_country_code']").select2({
7475                    placeholder:`Country`,
7476                    data:isoCountries,
7477                    searchInputPlaceholder: `Enter Country Code`,
7478                    formatResult : formatCountry,
7479                    dropdownAutoWidth: true,
7480                    width: "resolve",
7481                }).on("select2-opening", function (e) {
7482                    if (typeof e.currentTarget.attributes['data-default-country-code'] !== "undefined") {
7483                        $(this).val(e.currentTarget.attributes['data-default-country-code'].value)
7484                            .removeAttr("data-default-country-code")
7485                            .trigger('change')
7486                            .trigger('open');
7487                    }
7488                }).change(function (e) {
7489                    let select2Span = $(this).attr('id');
7490                    if (e.val) {
7491                        $('#'+$(this).attr('id')+'--flag').remove();
7492                        $('#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>')
7493                    }else{
7494                        $('#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>')
7495                    }
7496                    $(this).removeAttr("data-default-country-flag");
7497
7498                });
7499            }
7500            $("#bd-chained").select2({
7501                title: "Select Category",
7502                placeholder: "Select Category",
7503                allowClear: true,
7504                formatNoMatches: function () {
7505                    return "No matches found";
7506                }
7507            }).change(function () {
7508                var id = $(this).val();
7509                $("#tid").select2("enable",false);
7510                getInfinityChained("tid",id);
7511                            });
7512            $("#category-chained").select2({
7513                title: "Select Category",
7514                placeholder: "Select Category",
7515                allowClear: true
7516            }).change(function () {
7517                var id = $(this).val();
7518                $("#subcategory-chained").select2("enable",false);
7519                categoryChained("subcategory-chained",id);
7520                            });
7521
7522            $(".select-category-chained").select2({
7523                title: "Select Category",
7524                placeholder: "Select Category",
7525                allowClear: true
7526            })
7527            $(".infinite-chained").select2({
7528                title: "Select option from list",
7529                placeholder: "Click to select an option",
7530                allowClear: true,
7531                formatNoMatches: function () {
7532                    return "No matches found";
7533                }
7534            }).change(function () {
7535                var id          = $(this).val();
7536                var attr        = $(this).attr('next');
7537                var selectName  = $(this).prop('name');
7538                if ( selectName=='ttid' || attr =='ttid' ) {
7539                    $("#" + attr).select2("enable",false);
7540                    categoryChained(attr,id);
7541                                        sessionStorage.setItem("select2-"+selectName+path2,id);
7542                }
7543            }).on("select2-close", function () {
7544                setTimeout(function() {
7545                    $('.select2-container-active').removeClass('select2-container-active');
7546                    $(':focus').blur();
7547                }, 1);
7548            });
7549            $("#subcategory-chained").select2();
7550            $(".combobox").select2();
7551            $(".search-chained").select2();
7552
7553            $("select#country-chained").select2({
7554                title: "",
7555                placeholder: "",
7556                val: "",
7557                allowClear: true,
7558                formatNoMatches: function () {
7559                    return "No matches found";
7560                }
7561            }).change(function () {
7562                var id = $(this).val();
7563                $("#state-chained").select2("enable",false);
7564                getStateList("state-chained",id);
7565                var state = "";
7566
7567                if (id == "CA") {
7568                    state = "Province";
7569
7570                } else if (id == "UK") {
7571                    state = "Region";
7572
7573                } else if (id == "US" || id == "AU") {
7574                    state = "State";
7575
7576                } else {
7577                    state = "Region";
7578                }
7579                $("#state-chained").prev(".control-label").text(state);
7580            });
7581            $("#state-chained").select2();
7582
7583            $("#state-chained").on("select2-open", function(event) {
7584                event.preventDefault();
7585                var id = $("#country-chained").val();
7586                var count = $('#state-chained option').length;
7587
7588                if (id != "" && count <= 2) {
7589                    $("#state-chained").select2("enable",false);
7590                    getStateList("state-chained",id);
7591                    var state = "";
7592
7593                    if (id == "CA") {
7594                        state = "Province";
7595
7596                    } else if (id == "UK") {
7597                        state = "Region";
7598
7599                    } else if (id == "US" || id == "AU") {
7600                        state = "State";
7601
7602                    } else {
7603                        state = "Region";
7604                    }
7605                    $("#state-chained").prev(".control-label").text(state);
7606                }
7607            });
7608
7609            $("#country-chained-2").select2({
7610                title: "Select Country",
7611                placeholder: "(select country)",
7612                val: "",
7613                allowClear: true,
7614                formatNoMatches: function () {
7615                    return "No matches found";
7616                }
7617            }).change(function () {
7618                var id = $(this).val();
7619                $("#state-chained-2").select2("enable",false);
7620                getStateList("state-chained-2",id);
7621                var state = "";
7622
7623                if (id == "CA") {
7624                    state = "Province";
7625
7626                } else if (id == "UK") {
7627                    state = "Region";
7628
7629                } else if (id == "US" || id == "AU") {
7630                    state = "State";
7631
7632                } else {
7633                    state = "Region";
7634                }
7635                $("#state-chained-2").prev(".control-label").text(state);
7636            });
7637
7638            $("#state-chained-2").select2();
7639            $("#profession_id").select2({
7640                placeholder: "Select From List",
7641                allowClear: true,
7642                formatNoMatches: function () {
7643                    return "No matches found";
7644                }
7645            }).change(function () {
7646                var id = $(this).val();
7647                getSecondLevelAccount("category_id",id);
7648                            });
7649                        $("#sid").select2({
7650                title: "Select Category",
7651                placeholder: "Select Category",
7652                allowClear: true,
7653                formatNoMatches: function () {
7654                    return "No matches found";
7655                }
7656            }).change(function () {
7657                var id = $(this).val();
7658                $("#tid").select2("enable",false);
7659                getSecondLevel("tid",id);
7660                $("#tid").select2("open");
7661                sessionStorage.setItem("select2-sid"+path2,id);
7662            });
7663            $("#location_value_dropdown").select2({
7664                title: "More Options",
7665                placeholder: "More Options",
7666                allowClear: true,
7667                formatNoMatches: function () {
7668                    return "No matches found";
7669                }
7670            });
7671            $("#tid").select2({
7672                title: "Select Sub-category",
7673                placeholder: "Select Sub-category",
7674                allowClear: true,
7675                formatNoMatches: function () {
7676                    return "No matches found";
7677                }
7678                            });
7679            $("#location_value_dropdown").select2({
7680                title: "More Options",
7681                placeholder: "More Options",
7682                allowClear: true
7683            });
7684        }
7685
7686        if(preloaded_ttid !== false || preloaded_tid !== false || preloaded_sid !== false){
7687            $(document).ready(function(){
7688                // Skip if homepage widget already handles preload
7689                if(window._bdCategoryPreloaded) return;
7690
7691                if(preloaded_sid !== false && $("#sid").length > 0){
7692                    select2OnFormClick();
7693                    setTimeout(() => {
7694                        $("#sid").select2('val', preloaded_sid);
7695                        $('#sid').trigger('change');
7696                    }, 500);
7697                }else if(preloaded_tid !== false && $("#sid").length <= 0){
7698                    select2OnFormClick();
7699                    setTimeout(() => {
7700                        $("#tid").select2('val', preloaded_tid);
7701                        $('#tid').trigger('change');
7702                    }, 500);
7703                }
7704            });
7705        }
7706    </script>
vendor: 2 bytes, line 7706
7706
7707<script>
7708    // Function to add aria-label to <select> elements without it, for better pagespeed accessibility score
7709    $(document).ready(function() {
7710        var ariaLabelCounter = {}; // Object to keep track of aria-label counts for uniqueness
7711
7712        // Iterate over each select element that does not have an aria-label
7713        $('select:not([aria-label])').each(function() {
7714            // Use the ID or placeholder as the base for the aria-label, stripping HTML tags
7715            var baseLabel = this.id || $(this).attr('placeholder') || 'select';
7716            baseLabel = baseLabel.replace(/<[^>]*>/g, '').trim(); // Remove HTML tags and trim
7717
7718            // Ensure uniqueness of each aria-label
7719            ariaLabelCounter[baseLabel] = (ariaLabelCounter[baseLabel] || 0) + 1;
7720            var ariaLabel = baseLabel + '-' + ariaLabelCounter[baseLabel];
7721
7722            // Truncate aria-label to 100 characters
7723            ariaLabel = ariaLabel.length > 100 ? ariaLabel.substring(0, 100) : ariaLabel;
7724
7725            // Set the aria-label attribute to the unique label
7726            $(this).attr('aria-label', ariaLabel);
7727        });
7728    });
7729</script>
vendor: 2 bytes, line 7729
7729
7730<script type="application/ld+json">
7731{
7732    "@context": "https://schema.org",
7733    "@graph": [
7734        {
7735            "@type": "WebSite",
7736            "@id": "https://www.atozhealthguide.com/#website",
7737            "name": "A to Z health Guide",
7738            "url": "https://www.atozhealthguide.com/",
7739            "inLanguage": "en-US",
7740            "potentialAction": {
7741                "@type": "SearchAction",
7742                "target": "https://www.atozhealthguide.com/sitesearch?q={search_term_string}",
7743                "query-input": "required name=search_term_string",
7744                "name": "Search Directory: A to Z health Guide"
7745            },
7746            "publisher": {
7747                "@id": "https://www.atozhealthguide.com/#organization"
7748            }
7749        },
7750        {
7751            "@type": "Organization",
7752            "@id": "https://www.atozhealthguide.com/#organization",
7753            "name": "A to Z health Guide",
7754            "description": "Search A to Z health Guide for the best businesses and health information",
7755            "url": "https://www.atozhealthguide.com/",
7756            "mainEntityOfPage": {
7757                "@type": "WebPage",
7758                "@id": "https://www.atozhealthguide.com/#webpage"
7759            },
7760            "contactPoint": [
7761                {
7762                    "@type": "ContactPoint",
7763                    "email": "[email protected]",
7764                    "contactType": "customer support",
7765                    "availableLanguage": [
7766                        "en"
7767                    ],
7768                    "areaServed": "CA"
7769                }
7770            ],
7771            "areaServed": {
7772                "@type": "Country",
7773                "name": "CA"
7774            },
7775            "telephone": "4168947217",
7776            "sameAs": [
7777                "https://www.facebook.com/mrbusinessgta",
7778                "https://x.com/mrbusiness_ca",
7779                "https://www.linkedin.com/in/courtneymaxq",
7780                "https://www.youtube.com/channel/UCoIM-XyGhZjWvWLuUON2CUw"
7781            ],
7782            "logo": {
7783                "@type": "ImageObject",
7784                "@id": "https://www.atozhealthguide.com/#logo",
7785                "url": "/images/healthguideatoz4.png"
7786            },
7787            "image": {
7788                "@type": "ImageObject",
7789                "@id": "https://www.atozhealthguide.com/#image",
7790                "url": "/images/healthguideatoz4.png"
7791            },
7792            "keywords": [
7793                "Search A to Z health Guide for the best businesses and health information",
7794                "A to Z health Guide",
7795                "natural health",
7796                "Natural Health and fitness"
7797            ]
7798        }
7799    ]
7800}</script>
7800
7801
7802<script>
7803// Bootstrap Icons fallback loader - ensures Bootstrap Icons work even if HEAD widget is customized, do not delete
7804(function() {
7805    if (!document.querySelector('link[href*="bootstrap-icons"]')) {
7806        var link = document.createElement('link');
7807        link.rel = 'stylesheet';
7808        link.href = 'https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1';
7809        document.head.appendChild(link);
7810    }
7811})();
7812</script>
7812
7813<style type='text/css'> .input-group.normal-autosuggest input,.input-group.sm-autosuggest input, .input-group.md-autosuggest input {
7814			border-radius: 0 8px 8px 0 !important;
7815	}
7816.normal-autosuggest .twitter-typeahead, .sm-autosuggest .twitter-typeahead, .md-autosuggest .twitter-typeahead, .large-autosuggest .twitter-typeahead {
7817	display: inline-block;
7818	height: 25px;
7819	position: relative;
7820	width: 100%;
7821}
7822.input-group.normal-autosuggest .twitter-typeahead, .input-group.sm-autosuggest .twitter-typeahead, .input-group.large-autosuggest .twitter-typeahead:not(.search_box .twitter-typeahead) {
7823	width: inherit;
7824}
7825.normal-autosuggest .twitter-typeahead .clear_content.medium{
7826	bottom: 0px;
7827}
7828.sm-autosuggest .twitter-typeahead .clear_content.small{
7829	bottom: -4px;
7830}
7831.md-autosuggest.input-group .twitter-typeahead .clear_content.medium  {
7832    bottom: -2px;
7833}
7834.md-autosuggest .twitter-typeahead {
7835	height: 32px;
7836}
7837.md-autosuggest .input-group-addon + .input_wrapper .twitter-typeahead {
7838	height: 38px;
7839	vertical-align: top;
7840}
7841.md-autosuggest-input + .clear_content.medium {
7842    bottom: 0px;
7843}
7844.large-autosuggest .twitter-typeahead {
7845	height: 40px;
7846}
7847.normal-autosuggest .twitter-typeahead{
7848	height: 38px;
7849}
7850.normal-autosuggest .twitter-typeahead .tt-hint, .sm-autosuggest .twitter-typeahead .tt-hint {
7851	background: #fff !important;
7852	border: 1px solid #ccc!important;
7853	border-radius: 0 8px 8px 0;
7854	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important;
7855	color: transparent;
7856	left: 0;
7857	padding: 4px 11px;
7858	position: absolute;
7859	top: 0;
7860	width: 100%;
7861	font-size:12px;
7862}
7863.normal-autosuggest.input-group-addon .fa, .sm-autosuggest .input-group-addon .fa, .input-group-sm .input-group-addon .fa {font-size:12px}
7864.md-autosuggest .twitter-typeahead .tt-hint {
7865	height: 100%;
7866	background: #ffffff none repeat scroll 0 0 !important;
7867	border: 1px solid #cccccc !important;
7868	border-radius: 0 8px 8px 0;
7869	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset !important;
7870	color: rgba(0, 0, 0, 0);
7871	left: 0;
7872	padding: 6px 11px;
7873	position: absolute;
7874	top: 0;
7875	width: 100%;
7876}
7877.large-autosuggest {background: #fff !important;border-radius:10px;}
7878.large-autosuggest input {width: 100%!important;box-shadow:none; border-radius: 10px;}
7879	.input-group.large-autosuggest input,.input-group.large-autosuggest .twitter-typeahead .tt-hint {
7880		border-radius: 0 10px 10px 0!important;
7881	}
7882	.large-autosuggest .twitter-typeahead .tt-hint {
7883	background: #fff !important;
7884	border: 1px solid #ccc!important;
7885	border-radius: 10px;
7886	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important;
7887	color: transparent;
7888	left: 0;
7889	position: absolute;
7890	top: 0;
7891	width: 100%;
7892	font-size: 18px;
7893	height: 46px;
7894	line-height: 1.33333;
7895	padding: 10px 15px;
7896}	
7897.tt-dataset .empty-message {
7898	display: none !important;
7899}
7900.twitter-typeahead .tt-query {background-color:#fff!important}
7901.input-group.large-autosuggest span:first-child .tt-hint {border-radius: 0 !important;}
7902span.tt-dropdown-menu {
7903	border: 1px solid #FCFCFC;
7904	border-radius: 5px;
7905	box-shadow: 0 5px 10px rgba(0,0,0,.2);
7906	width: 100% !important;
7907}
7908.tt-is-under-cursor a.suggest-link {
7909	background: #55ACEE;
7910}
7911
7912.tt-is-under-cursor .media-heading,
7913.tt-is-under-cursor .suggest-origin,
7914.tt-is-under-cursor .location{
7915	color:#fff!important;
7916}
7917.tt-suggestion .media .media-body .suggest-origin {
7918		color: rgba(45, 91, 137,0.9);
7919	padding: 1px 0;
7920	border-radius: 6px;
7921	font-weight: bold;
7922	line-height: 12px;
7923}
7924.tt-suggestion {
7925	background: #fff;
7926	border-bottom: 1px solid #eee;
7927	-webkit-transition: all 0.3s ease-in-out;
7928	-moz-transition: all 0.3s ease-in-out;
7929	-o-transition: all 0.3s ease-in-out;
7930	transition: all 0.3s ease-in-out;
7931}
7932body .tt-suggestions .media.br-bottom img {
7933	max-width: 45px;
7934	height: auto;
7935}
7936body .tt-suggestions .media-body span {
7937	font-size: 10px;
7938}
7939body .tt-suggestions .media-body h4 {
7940	font-size: 12px;
7941	margin: 2px 0px;
7942	text-transform: capitalize;
7943}
7944a.suggest-link {
7945	padding: 5px;
7946	display: block;
7947}
7948a.suggest-link img {
7949	border-radius: 100px;
7950	display: block;
7951	margin: 0 auto;
7952	height: 100%!important;
7953	width: 100%;
7954	object-fit: cover;
7955}
7956.left-suggest-col {
7957	display: inline-block;
7958	vertical-align: middle;
7959	width: 44px;
7960	height: 44px;
7961}
7962.right-suggest-col {
7963	display: inline-block;
7964	padding-left: 1%;
7965	text-align: left;
7966	vertical-align: middle;
7967	width: calc(100% - 1% - 50px);
7968}
7969p.media-heading {
7970	color: #333;
7971	font-size: 12px;
7972	font-weight: 600;
7973	margin-bottom: 0;
7974}
7975p.suggest-origin {
7976	font-size: 10px;
7977	color: #333;
7978	margin:0;
7979}
7980p.location {
7981	color: #333;
7982	font-size: 10px;
7983	margin: 2px 0;
7984}
7985body .tt-is-under-cursor a.suggest-link {
7986	background: #F7F7F7;
7987}
7988body .tt-is-under-cursor .media-heading, body .tt-is-under-cursor .suggest-origin, body .tt-is-under-cursor .location {
7989	color: #333!important;
7990}
7991a.suggest-link[data-heading="heading"] {
7992	 pointer-events: none;
7993  	cursor: default;
7994  	text-decoration: none;
7995}
7996body .tt-is-under-cursor a.suggest-link[data-heading="heading"] {
7997	background: rgb(238, 238, 238);
7998}
7999/* --- all the novalue css --- */
8000a.suggest-link .suggest-origin[data-state="novalue"] {
8001	display: none;
8002}
8003a.suggest-link .location[data-state="novalue"] {
8004	display: none;
8005}
8006a.suggest-link img[data-state="novalue"] {
8007	display: none;
8008}
8009a.suggest-link .suggest-origin[data-state="heading"] {
8010	display: none;
8011}
8012a.suggest-link .media-heading[data-heading="heading"] {
8013	color:rgb(102, 102, 102)!important;
8014	font-weight: bold;
8015	padding: 4px;
8016	font-size: 13px;
8017}
8018.left-suggest-col[data-photo="novalue"], .left-suggest-col[data-photo="undefined"] {
8019	display: none;
8020}
8021.right-suggest-col[data-photo="novalue"], .right-suggest-col[data-photo="undefined"] {
8022	width: 100%;
8023}
8024a.suggest-link[href="novalue"] {
8025	cursor: default !important;
8026	pointer-events: none;
8027}
8028a.suggest-link[data-heading="heading"] {
8029	background-color: rgb(238, 238, 238);
8030}
8031div.content-shell {
8032	overflow: inherit;
8033}
8034span.tt-dropdown-menu div {
8035	float: none;
8036}
8037.tt-menu {
8038	border-radius: 0 0 6px 6px;
8039	box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
8040	overflow: hidden;
8041	width: 100%;
8042	z-index: 150 !important;
8043}
8044.tt-menu .tt-dataset {
8045    overflow-y: auto;
8046    max-height: 200px;
8047} </style>        
8047<script type="text/javascript">
8048            
8049            if (typeof decodeHtml != "function") {
8050                function decodeHtml(html) {
8051                    var txt = document.createElement("textarea");
8052                    txt.innerHTML = html;
8053                    return txt.value;
8054                }
8055            }
8056                        function initializeTypeheadMember_search() {
8057                var member_searchEngine = new Bloodhound({
8058                    initialize: false,
8059                    datumTokenizer: function (d) {
8060                        return Bloodhound.tokenizers.whitespace(value);
8061                    },
8062                    queryTokenizer: Bloodhound.tokenizers.whitespace,
8063                    remote: {
8064                        url: `/api/suggest/json/get/1,users_data,Listings,1,1,1,1,1,3|88,list_professions,Main Categories,1,0,1,1,1,3|89,list_services,Sub Categories,1,0,1,1,1,3?tID=35&q=%QUERY`,
8065                        wildcard: '%QUERY',
8066                        filter: function (response) {
8067
8068                            if (response != null) {
8069                                //var response = response.slice(1);
8070                                $.each(
8071                                    response, function (key, value) {
8072                                        response[key]['value'] = decodeHtml(value['value']);
8073                                        response[key]['comes_f'] = decodeHtml(value['comes_f']);
8074                                        response[key]['location'] = decodeHtml(value['location']);
8075
8076                                        if (response[key]['value'].indexOf('-/-') >= 0) {
8077                                            var splitResult = response[key]['value'].split('-/-');
8078                                            response[key]['value'] = splitResult[0];
8079                                        }
8080                                    }
8081                                );
8082
8083                            } else {
8084                                response = {error: "null"};
8085                            }
8086
8087                            return response;
8088                        }
8089                    }
8090                });
8091                var member_searchDataSrc = member_searchEngine.initialize();
8092
8093                member_searchDataSrc
8094                    .done(function () { /*console.log('Autosuggestions engine initialized.'); */
8095                    })
8096                    .fail(function () { /*console.log('err, something went wrong while initializing autosuggestions engine:(');*/
8097                    })
8098
8099                $('.member_search').typeahead({
8100                        minLength:  2,
8101                        highlight: true,
8102                        hint: false                    },
8103                    {
8104                        display: 'value',
8105                        source: member_searchEngine.ttAdapter(),
8106                        limit: 10,
8107                        templates: {
8108                            empty: [
8109                                '<div class="empty-message">',
8110                                'Result not found',
8111                                '</div>'
8112                            ].join(" "),
8113                            notFound: [
8114                                '<div class="notFound-message">',
8115                                'Result not found',
8116                                '</div>'
8117                            ].join(" "),
8118                            suggestion: function (data) {
8119
8120                                if (data == "null") {
8121                                    strTemplate = '<div class="empty-message">Result not found</div>';
8122
8123                                } else {
8124                                    strTemplate = '<a class="suggest-link" href="' + data.link + '" data-state="' + data.link + '" data-heading="' + data.comes_f + '"> <div class="left-suggest-col" data-photo="' + data.photo + '"> <img src="' + data.photo + '" data-state="' + data.photo + '"> </div> <div class="right-suggest-col" data-photo="' + data.photo + '"> <p class="media-heading" data-state="' + data.value + '" data-heading="' + data.comes_f + '">' + data.value + '</p> <p class="suggest-origin" data-state="' + data.comes_f + '">' + data.comes_f + '</p> <p class="location" data-state="' + data.location + '">' + data.location + '</p> </div> </a> ';
8125
8126                                    if ((data.link == undefined) || (data.link == "") || (data.link == "novalue")) {
8127                                        strTemplate = strTemplate.replace(/href=".*?"/, "href='#'");
8128                                    }
8129
8130                                    if ((data.photo == undefined) || (data.photo == "") || (data.photo == "novalue")) {
8131                                        strTemplate = strTemplate.replace(/<img src=".*?>/, "");
8132                                    }
8133                                }
8134
8135                                return strTemplate;
8136                            }
8137                        },
8138                    }).on('typeahead:selected', function (obj, datum) {
8139                    /*
8140                    console.log(obj);
8141                    console.log(datum);
8142                    */
8143                });
8144
8145                $('.member_search').each(function () {
8146                    var inputWidth = $(this).outerWidth();
8147                    $(this).siblings('.tt-dropdown-menu').css('width', inputWidth + 'px');
8148                });
8149            }
8150        </script>
8150
8151                
8151<script type="text/javascript">
8152                        function initializeTypeheadVideos() {
8153                var videosEngine = new Bloodhound({
8154                    initialize: false,
8155                    datumTokenizer: function (d) {
8156                        return Bloodhound.tokenizers.whitespace(value);
8157                    },
8158                    queryTokenizer: Bloodhound.tokenizers.whitespace,
8159                    remote: {
8160                        url: `/api/suggest/json/get/81,data_posts,Videos,1,1,1,0,1,3?tID=264&q=%QUERY`,
8161                        wildcard: '%QUERY',
8162                        filter: function (response) {
8163
8164                            if (response != null) {
8165                                //var response = response.slice(1);
8166                                $.each(
8167                                    response, function (key, value) {
8168                                        response[key]['value'] = decodeHtml(value['value']);
8169                                        response[key]['comes_f'] = decodeHtml(value['comes_f']);
8170                                        response[key]['location'] = decodeHtml(value['location']);
8171
8172                                        if (response[key]['value'].indexOf('-/-') >= 0) {
8173                                            var splitResult = response[key]['value'].split('-/-');
8174                                            response[key]['value'] = splitResult[0];
8175                                        }
8176                                    }
8177                                );
8178
8179                            } else {
8180                                response = {error: "null"};
8181                            }
8182
8183                            return response;
8184                        }
8185                    }
8186                });
8187                var videosDataSrc = videosEngine.initialize();
8188
8189                videosDataSrc
8190                    .done(function () { /*console.log('Autosuggestions engine initialized.'); */
8191                    })
8192                    .fail(function () { /*console.log('err, something went wrong while initializing autosuggestions engine:(');*/
8193                    })
8194
8195                $('.videos').typeahead({
8196                        minLength:  3,
8197                        highlight: true,
8198                        hint: false                    },
8199                    {
8200                        display: 'value',
8201                        source: videosEngine.ttAdapter(),
8202                        limit: 3,
8203                        templates: {
8204                            empty: [
8205                                '<div class="empty-message">',
8206                                'Result not found',
8207                                '</div>'
8208                            ].join(" "),
8209                            notFound: [
8210                                '<div class="notFound-message">',
8211                                'Result not found',
8212                                '</div>'
8213                            ].join(" "),
8214                            suggestion: function (data) {
8215
8216                                if (data == "null") {
8217                                    strTemplate = '<div class="empty-message">Result not found</div>';
8218
8219                                } else {
8220                                    strTemplate = '<a class="suggest-link" href="' + data.link + '" data-state="' + data.link + '" data-heading="' + data.comes_f + '"> <div class="left-suggest-col" data-photo="' + data.photo + '"> <img src="' + data.photo + '" data-state="' + data.photo + '"> </div> <div class="right-suggest-col" data-photo="' + data.photo + '"> <p class="media-heading" data-state="' + data.value + '" data-heading="' + data.comes_f + '">' + data.value + '</p> <p class="suggest-origin" data-state="' + data.comes_f + '">' + data.comes_f + '</p> <p class="location" data-state="' + data.location + '">' + data.location + '</p> </div> </a> ';
8221
8222                                    if ((data.link == undefined) || (data.link == "") || (data.link == "novalue")) {
8223                                        strTemplate = strTemplate.replace(/href=".*?"/, "href='#'");
8224                                    }
8225
8226                                    if ((data.photo == undefined) || (data.photo == "") || (data.photo == "novalue")) {
8227                                        strTemplate = strTemplate.replace(/<img src=".*?>/, "");
8228                                    }
8229                                }
8230
8231                                return strTemplate;
8232                            }
8233                        },
8234                    }).on('typeahead:selected', function (obj, datum) {
8235                    /*
8236                    console.log(obj);
8237                    console.log(datum);
8238                    */
8239                });
8240
8241                $('.videos').each(function () {
8242                    var inputWidth = $(this).outerWidth();
8243                    $(this).siblings('.tt-dropdown-menu').css('width', inputWidth + 'px');
8244                });
8245            }
8246        </script>
8246
8247            
8247<script>
8248        let typeheadElement = '.member_search,.videos';
8249        let TypeheadNameListFunction = 'initializeTypeheadMember_search,initializeTypeheadVideos';
8250        let typeheadFormElement = undefined;
8251        window.addEventListener('load', () => {
8252            if(typeheadElement.length > 1) {
8253                typeheadFormElement = document.querySelectorAll(typeheadElement);
8254            }
8255            if (typeof typeheadFormElement != "undefined") {
8256                for (let i = 0; i < typeheadFormElement.length; i++) {
8257                    let closestForm = typeheadFormElement[i].closest('form');
8258                    if (typeof closestForm != "undefined" && closestForm != null) {
8259                        closestForm.addEventListener('focus', typeheadFormClick, false);
8260                    }
8261                    typeheadFormElement[i].addEventListener('focus', typeheadFormClick, false);
8262                }
8263            }
8264        });
8265        function initializeTypehead(){
8266            let splitFunctionNames= TypeheadNameListFunction.split(',');
8267            for ( let funcName of splitFunctionNames)
8268                if (typeof funcName != 'function') {
8269                    window[funcName](); // execute the function
8270
8271                }
8272        }
8273        function typeheadFormClick(event) {
8274
8275            let head = document.getElementsByTagName('head')[0];
8276            let script = document.createElement('script');
8277            let elementClicked = event.target;
8278            script.type = 'text/javascript';
8279            script.src = "https://cdnjs.cloudflare.com/ajax/libs/corejs-typeahead/0.11.1/typeahead.bundle.min.js";
8280            script.onload = function () {
8281                initializeTypehead();
8282                elementClicked.focus();
8283            };
8284            head.appendChild(script);
8285            if (typeof typeheadFormElement != "undefined") {
8286                for (let i = 0; i < typeheadFormElement.length; i++) {
8287                    let closestForm = typeheadFormElement[i].closest('form');
8288                    if (typeof closestForm != "undefined" && closestForm != null) {
8289                        closestForm.removeEventListener('focus', typeheadFormClick, false);
8290                    }
8291                    typeheadFormElement[i].removeEventListener('focus', typeheadFormClick, false)
8292                }
8293            }
8294        }
8295
8296
8297    </script>
8297
8298
8299    
8299<script>
8300    window.addEventListener('load', () => {
8301        let embedlyClass = document.querySelector('.fr-embedly');
8302        if (typeof embedlyClass != "undefined" && embedlyClass != null) {
8303            let embedlyURI = "https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/embedly_widget.min.js";
8304            let head = document.getElementsByTagName("head")[0];
8305            let script = document.createElement('script');
8306            script.type = 'text/javascript';
8307            script.src = embedlyURI;
8308            script.async = true;
8309            script.onload = function() {
8310                setTimeout(function() {
8311                    if (typeof embedly !== 'undefined' && embedly.card) {
8312                        document.querySelectorAll('.embedly-card').forEach(function(card) {
8313                            embedly.card(card);
8314                        });
8315                    }
8316                }, 500);
8317            };
8318            head.appendChild(script);
8319        }
8320    });
8321</script>
8321<script type="text/javascript" src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js"></script>
8321<script>
8322                            $(function () {
8323                                $(".lazyloader").Lazy({
8324                                    afterLoad: function(element) {
8325                                        $(".gridView.activeView").click();
8326                                    }
8327                                });
8328                                
8329                            });
8330                            $("button[class*='slick'],button[id*='slick']").click(function () {
8331                              $(this).parents(".row").find(".lazyloader").lazy({
8332                                    bind: "event",
8333                                    delay: 0
8334                                });
8335                            });
8336                            $("[class*='slick'],[id*='slick']").on("swipe",function(){
8337                              $(this).parents(".row").find(".lazyloader").lazy({
8338                                    bind: "event",
8339                                    delay: 0
8340                                });
8341                            });
8342                        </script>
8342<script defer src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0"></script>
8342
8343            </body>
8344        </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.