PageSourceSearch

https://www.anthonyrealtors.com/myportal/searches

html anthonyrealtors.com collected 2026-10-08 17:47:25 UTC 151,423 bytes, 2,094 lines download raw bytes

1<!DOCTYPE html> <html lang="en"> <head><meta name="description" content=""> <meta charset="utf-8"> <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="msvalidate.01" content="52D8CD5F9EA2B1031F2D2472023A5D34"> <title>MyPortal | Saved Searches</title> <link rel="preconnect" href="https://www.google.com"> <link rel="preconnect" href="https://www.gstatic.com" crossorigin> <link rel="dns-prefetch" href="https://cdn1.brivityidx.com"> 
1<script>
2            var head = document.getElementsByTagName('head')[0]
3            var insertBefore = head.insertBefore;
4            head.insertBefore = function (newElement, referenceElement) {
5                // intercept style elements for IEs
6                if (newElement.tagName.toLowerCase() === 'style'
7                    && newElement.styleSheet
8                    && newElement.styleSheet.cssText
9                    && newElement.styleSheet.cssText.replace('\r\n', '').indexOf('.gm-style') === 0) {
10                    return;
11                }
12                // intercept style elements for other browsers
13                if (newElement.tagName.toLowerCase() === 'style'
14                    && newElement.innerHTML
15                    && newElement.innerHTML.replace('\r\n', '').indexOf('.gm-style') === 0) {
16                    return;
17                }
18                insertBefore.call(head, newElement, referenceElement);
19            }; 
20        </script>
20 <link rel="shortcut icon" href="https://cdn1.brivityidx.com/assets/images/uploads/104558/place_favicon_image.png" type="image/x-icon"> <link href="https://cdn1.brivityidx.com/assets/css/build-site.min.css?ck=" rel="stylesheet"> <link href="https://cdn1.brivityidx.com/assets/css/build-chatbot-v1.min.css?ck=" rel="stylesheet" media="print" onload="this.media='all'"><noscript><link href="https://cdn1.brivityidx.com/assets/css/build-chatbot-v1.min.css?ck=" rel="stylesheet"></noscript> <link rel="canonical" href="https://www.anthonyrealtors.com/myportal/searches"> 
20<script>
21            function deferScriptOnLoad(url, sleep = 0) {
22                window.addEventListener('load', function () {
23                    deferScript(url, sleep);
24                });
25            }
26            function deferScript(url, sleep = 0) {
27                if (sleep > 0) {
28                    setTimeout(() => {
29                        deferScript(url);
30                    }, sleep);
31                    return;
32                }
33                let s = document.createElement('script');
34                s.type = 'text/javascript';
35                s.async = true;
36                s.src = url;
37                let x = document.getElementsByTagName('head')[0];
38                x.appendChild(s);
39            }
40
41            /* PLACE_COMPONENTS_LOADER_START */
42            window.sitebuilderPlaceComponents = (function () {
43                var DEFAULT_URL = 'https://mobile-component-services-library-dev.brivity.com/web-components.min.js?ck=1';
44                var BUNDLE_URLS = { default: DEFAULT_URL };
45                var loadPromises = {};
46                var LOAD_TIMEOUT_MS = 10000;
47
48                function urlForTag(tagName) {
49                    return BUNDLE_URLS[tagName] || BUNDLE_URLS.default;
50                }
51
52                function ensureLoaded(tagName) {
53                    var url = urlForTag(tagName);
54                    if (loadPromises[url]) {
55                        return loadPromises[url];
56                    }
57                    loadPromises[url] = new Promise(function (resolve, reject) {
58                        var settled = false;
59                        var timer = setTimeout(function () {
60                            if (settled) return;
61                            settled = true;
62                            reject(new Error('web-components load timeout'));
63                        }, LOAD_TIMEOUT_MS);
64                        var s = document.createElement('script');
65                        s.type = 'text/javascript';
66                        s.async = true;
67                        s.src = url;
68                        s.onerror = function () {
69                            if (settled) return;
70                            settled = true;
71                            clearTimeout(timer);
72                            reject(new Error('web-components script onerror'));
73                        };
74                        document.getElementsByTagName('head')[0].appendChild(s);
75                        if (window.customElements && customElements.whenDefined) {
76                            customElements.whenDefined(tagName).then(function () {
77                                if (settled) return;
78                                settled = true;
79                                clearTimeout(timer);
80                                resolve();
81                            });
82                        }
83                    });
84                    return loadPromises[url];
85                }
86
87                var EAGER_SELECTOR = 'place-propertycard, place-searchpagefilter, place-bedbathfiltermodal, ' +
88                                     'place-listingstatusmodal, place-propertytypemodal, place-savesearchmodal, ' +
89                                     'place-basicmodal, place-details, place-agentbio, place-agentmessaging, ' +
90                                     'place-contactyouragent, place-menu, place-collectionpopup, ' +
91                                     'place-copycollectionmodal, place-removecollectionpopup, place-vs-accumulate';
92
93                function warmIfEagerTagsPresent() {
94                    if (document.querySelector(EAGER_SELECTOR)) {
95                        ensureLoaded('place-propertycard').catch(function () {});
96                    }
97                }
98                if (document.readyState === 'loading') {
99                    document.addEventListener('DOMContentLoaded', warmIfEagerTagsPresent);
100                } else {
101                    warmIfEagerTagsPresent();
102                }
103
104                var INTERACTION_SELECTOR = 'place-getyourhomecta, place-generictoast, ' + EAGER_SELECTOR +
105                                           ', [data-needs-place-components]';
106                function onInteract(e) {
107                    var t = e.target;
108                    if (t && t.closest && t.closest(INTERACTION_SELECTOR)) {
109                        ensureLoaded('place-generictoast').catch(function () {});
110                    }
111                }
112                document.addEventListener('pointerdown', onInteract, true);
113                document.addEventListener('focusin', onInteract, true);
114
115                function idleWarm() {
116                    ensureLoaded('place-generictoast').catch(function () {});
117                }
118                if ('requestIdleCallback' in window) {
119                    requestIdleCallback(idleWarm, { timeout: 5000 });
120                } else {
121                    setTimeout(idleWarm, 3000);
122                }
123
124                return { ensureLoaded: ensureLoaded };
125            })();
126            /* PLACE_COMPONENTS_LOADER_END */
127
128            const googleApiKey = 'AIzaSyAjpuNg6WGCMV5rzoJcIP2QmMTVto6hYmc'
129
130            /* Lazy loader for Google Maps API + turf.js.
131             * The TURF_INLINE / MAPS_API_INLINE placeholders below are emitted by
132             * Sitemodel.php only on pages whose blocks actually consume Maps/turf.
133             * On other pages those tags are stripped, and consumers call
134             * sitebuilderMapsApi.ensureLoaded() to inject them on demand.
135             *
136             * Safari fix vs. the prior reverted attempt (commit 0cef3135e): uses
137             * Google's official &callback= parameter, not setTimeout, to detect
138             * Maps readiness.
139             */
140            window.sitebuilderMapsApi = (function () {
141                var TURF_URL = 'https://cdn.jsdelivr.net/npm/@turf/[email protected]/turf.min.js';
142                var MAPS_URL = 'https://maps.googleapis.com/maps/api/js?libraries=geocoding,places,marker,drawing&key=' +
143                               googleApiKey + '&map_ids=85c127b7bf0255d9&callback=__sitebuilderMapsReady';
144                var LOAD_TIMEOUT_MS = 15000;
145                var loadPromise = null;
146
147                function injectScript(url) {
148                    var s = document.createElement('script');
149                    s.type = 'text/javascript';
150                    s.async = true;
151                    s.src = url;
152                    document.getElementsByTagName('head')[0].appendChild(s);
153                    return s;
154                }
155
156                function loadTurf() {
157                    return new Promise(function (resolve, reject) {
158                        if (window.turf) { resolve(); return; }
159                        var s = injectScript(TURF_URL);
160                        s.onload = function () { resolve(); };
161                        s.onerror = function () { reject(new Error('turf load failed')); };
162                    });
163                }
164
165                function loadMaps() {
166                    return new Promise(function (resolve, reject) {
167                        if (window.google && window.google.maps) { resolve(); return; }
168                        window.__sitebuilderMapsReady = function () { resolve(); };
169                        var s = injectScript(MAPS_URL);
170                        s.onerror = function () { reject(new Error('maps load failed')); };
171                    });
172                }
173
174                function ensureLoaded() {
175                    if (loadPromise) return loadPromise;
176                    if (window.google && window.google.maps && window.turf) {
177                        loadPromise = Promise.resolve();
178                        return loadPromise;
179                    }
180                    loadPromise = new Promise(function (resolve, reject) {
181                        var settled = false;
182                        var timer = setTimeout(function () {
183                            if (settled) return;
184                            settled = true;
185                            reject(new Error('maps/turf load timeout'));
186                        }, LOAD_TIMEOUT_MS);
187                        Promise.all([loadTurf(), loadMaps()]).then(function () {
188                            if (settled) return;
189                            settled = true;
190                            clearTimeout(timer);
191                            resolve();
192                        }, function (err) {
193                            if (settled) return;
194                            settled = true;
195                            clearTimeout(timer);
196                            reject(err);
197                        });
198                    });
199                    return loadPromise;
200                }
201
202                return { ensureLoaded: ensureLoaded };
203            })();
204        </script>
204 <link href="https://cdn1.brivityidx.com/assets/css/style-headers.css" rel="stylesheet"><link href="https://cdn1.brivityidx.com/assets/css/style-premium.css" rel="stylesheet"><link href="https://cdn1.brivityidx.com/assets/css/style-footers.min.css" rel="stylesheet"><link href="https://cdn1.brivityidx.com/idx-sites/2/0/1/20117/site_custom.css?v=1790847831" rel="stylesheet">
204<script type="text/javascript" src="https://cdn1.brivityidx.com/idx-sites/2/0/1/20117/global_js_variables.js?v=1790847831"></script>
204<link rel="stylesheet" href="https://use.typekit.net/mao5ffc.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=0"/>
vendor: 64 bytes, line 204
204 <script async src="https://www.googletagmanager.com/gtag/js?id=
204AW-16842485412
vendor: 13 bytes, lines 204-205
204">
205</script> 
205<script>
206  
vendor: 134 bytes, lines 206-210
206window.dataLayer = window.dataLayer || [];
207  function gtag(){dataLayer.push(arguments);}
208  gtag('js', new Date());
209
210  gtag('config', '
210AW-16842485412
vendor: 4 bytes, line 210
210');
211</script>
211 
211<script>
212var propDetailsPixelOnReady = function(){
213  let propDetFpst = new FbRealEstatePixelTracker({"eventType": "ViewContent", "content_ids": [""]});
214  propDetFpst.fireEvent();
215};
216if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) {
217  propDetailsPixelOnReady();
218} else {
219  document.addEventListener("DOMContentLoaded", propDetailsPixelOnReady);
220}
221
222</script>
222 
222<script>
vendor: 327 bytes, lines 222-226
222(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
223new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
224j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
225'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
226})(window,document,'script','dataLayer','
226GTM-5VGR382H
vendor: 3 bytes, line 226
226');
226</script>
226 <meta property="og:url" content="https://www.anthonyrealtors.com/myportal/searches"> <meta property="og:image" content="http://images.brivityidx.com/assets/images/uploads/104558/AnthonyRealtors-OG.png"> <meta property="og:image:secure_url" content="https://images.brivityidx.com/assets/images/uploads/104558/AnthonyRealtors-OG.png"> <meta property="og:description" content=""> <meta property="og:title" content="MyPortal | Saved Searches"> </head> <body>
vendor: 68 bytes, line 226
226 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
226GTM-5VGR382H
vendor: 83 bytes, line 226
226" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 
226<script>
227                  window.fbAsyncInit = function() {
228                    FB.init({
229                      appId      : '1',
230                      cookie     : true,
231                      xfbml      : true,
232                      version    : 'v17.0'
233                    });
234                    FB.AppEvents.logPageView();
235                  };
236
237                  setTimeout(() => {(function(d, s, id){
238                     var js, fjs = d.getElementsByTagName(s)[0];
239                     if (d.getElementById(id)) {return;}
240                     js = d.createElement(s); js.id = id;
241                     js.defer = true;
242                     js.xfbml = false;
243                     js.src = "//connect.facebook.net/en_US/sdk.js";
244                     fjs.parentNode.insertBefore(js, fjs);
245                   }(document, 'script', 'facebook-jssdk'))}, 5000);
246                </script>
246<meta property="fb:app_id" content="1"><meta name="google-signin-client_id" content="1"><meta name="apple-signin-flag" content="1"><meta name="main_sitebuilder_domain" content="https://sitebuilder.brivity.com"> <div id="site-registration-bar" class="collapse"> <input type="hidden" id="huser_id" value=""> <div class="row" style="width: 100%; margin: 0;"> <div class="col-md-12" style="display: none;" id="logged-in"> <div class="topBar flex aiCenter jcBetween"> <div class="topBarLeft flex aiCenter"> <span><topbar_show_agent_name/></span> </div> <div class="topBarRight flex aiCenter"> <a class="topLink flex aiCenter thin favoritesTop" href="/myportal/collections"> <svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#clip0_16761_179132)"> <path d="M14.2659 3.57333C13.9254 3.23267 13.5211 2.96243 13.0761 2.77806C12.6312 2.59368 12.1542 2.49878 11.6726 2.49878C11.1909 2.49878 10.714 2.59368 10.269 2.77806C9.82401 2.96243 9.41973 3.23267 9.07922 3.57333L8.37256 4.28L7.66589 3.57333C6.97809 2.88554 6.04524 2.49914 5.07256 2.49914C4.09987 2.49914 3.16702 2.88554 2.47922 3.57333C1.79143 4.26113 1.40503 5.19398 1.40503 6.16667C1.40503 7.13936 1.79143 8.07221 2.47922 8.76L3.18589 9.46667L8.37256 14.6533L13.5592 9.46667L14.2659 8.76C14.6066 8.4195 14.8768 8.01521 15.0612 7.57024C15.2455 7.12526 15.3404 6.64832 15.3404 6.16667C15.3404 5.68501 15.2455 5.20807 15.0612 4.7631C14.8768 4.31812 14.6066 3.91384 14.2659 3.57333V3.57333Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </g> <defs> <clipPath id="clip0_16761_179132"> <rect width="16" height="16" fill="white" transform="translate(0.372559 0.5)"/> </clipPath> </defs> </svg> <span class="ml6 topLabel">Collections&nbsp;</span> </a> <a class="topLink flex aiCenter thin saveSearchTop" href="/myportal/searches"> <svg width="16" height="16" viewBox="0 4 20 17" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M19 21L12 16L5 21V5C5 4.46957 5.21071 3.96086 5.58579 3.58579C5.96086 3.21071 6.46957 3 7 3H17C17.5304 3 18.0391 3.21071 18.4142 3.58579C18.7893 3.96086 19 4.46957 19 5V21Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /> </svg> <span class="ml6 topLabel">Saved Searches&nbsp;</span> </a> <a class="topLink flex aiCenter thin market-report-top" style="display:none" href="/myportal/reports"> <svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7.70589 13.1667C10.6514 13.1667 13.0392 10.7789 13.0392 7.83333C13.0392 4.88781 10.6514 2.5 7.70589 2.5C4.76037 2.5 2.37256 4.88781 2.37256 7.83333C2.37256 10.7789 4.76037 13.1667 7.70589 13.1667Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M14.3725 14.5L11.4725 11.6" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> <span class="ml6 topLabel">My Reports&nbsp;</span> </a> <a class="aiCenter flex topBarProfile thin" href="/myportal/profile"> <span class="profileName"></span> </a> <a style="padding-right: 0px" class="aiCenter flex thin" id="topBarLogout" href="javascript:void()"> <svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#clip0_16761_179186)"> <path d="M16.4003 16.214C19.0038 13.6106 19.0038 9.38945 16.4003 6.78595C13.7968 4.18246 9.57572 4.18246 6.97222 6.78595C4.36873 9.38945 4.36873 13.6105 6.97222 16.214C9.57572 18.8175 13.7968 18.8175 16.4003 16.214Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M9.80066 9.61438L13.5719 13.3856" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M9.80066 13.3856L13.5719 9.61438" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </g> <defs> <clipPath id="clip0_16761_179186"> <rect width="16" height="16" fill="white" transform="translate(0.372559 11.5) rotate(-45)"/> </clipPath> </defs> </svg> <span class="ml6">Log Out</span> </a> </div> </div> </div> <div id="not-logged-in"> <topbar_agent_info_not_logged_in/> <ul class="list-unstyled list-inline no-margin"> <li class="topBarSignin"><a href="#" onclick="showGoogleOneTap(true);"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus-circle mr10"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line>
246<line x1="8" y1="12" x2="16" y2="12"></line></svg> Sign In</a></li> </ul> </div> </div> </div> <input type="hidden" id="huser_email" value=""> <input type="hidden" id="huser_first_name" value=""> <input type="hidden" id="huser_last_name" value=""> <input type="hidden" id="huser_phone" value=""> <input type="hidden" id="huser_uuid" value=""> <div id="page" class="page"> <div class="place-hiring-modal modal fade magic-modal" id="sell-modal" tabindex="-1" role="dialog" aria-labelledby="sell-modal" style="display: none;"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body" style="text-align: center;"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" data-selector="a.btn, button.btn, button" style="outline: none; cursor: inherit;"><span aria-hidden="true">×</span></button> <h4 class="prmry-color" data-selector="h1, h2, h3, h4, h5, h6" style="outline: none; cursor: inherit;">We're Hiring!</h4> <p class="" data-selector="p" style="outline: none; cursor: inherit;">Join one of the fastest growing real estate teams in the US and Canada. Fill out the form below and we will contact you with more info.</p> <form class="form-contact" id="form-contact4" _lpchecked="1"> <input type="hidden" name="lead_type" value="recruit"> <input type="hidden" name="tags" value="Hiring Submission"> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <input name="contact4_fullname" id="contact4_fullname" placeholder="Full Name" class="form-control" required="" type="text" autocomplete="off" style='background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAkCAYAAADo6zjiAAAAAXNSR0IArs4c6QAAAbNJREFUWAntV8FqwkAQnaymUkpChB7tKSfxWCie/Yb+gbdeCqGf0YsQ+hU95QNyDoWCF/HkqdeiIaEUqyZ1ArvodrOHxanQOiCzO28y781skKwFW3scPV1/febP69XqarNeNTB2KGs07U3Ttt/Ozp3bh/u7V7muheQf6ftLUWyYDB5yz1ijuPAub2QRDDunJsdGkAO55KYYjl0OUu1VXOzQZ64Tr+IiPXedGI79bQHdbheCIAD0dUY6gV6vB67rAvo6IxVgWVbFy71KBKkAFaEc2xPQarXA931ot9tyHphiPwpJgSbfe54Hw+EQHMfZ/msVEEURjMfjCjbFeG2dFxPo9/sVOSYzxmAwGIjnTDFRQLMQAjQ5pJAQkCQJ5HlekeERxHEsiE0xUUCzEO9AmqYQhiF0Oh2Yz+ewWCzEY6aYKKBZCAGYs1wuYTabKdNNMWWxnaA4gp3Yry5JBZRlWTXDvaozUgGTyQSyLAP0dbb3DtQlmcan0yngT2ekE9ARc+z4AvC7nauh9iouhpcGamJeX8XF8MaClwaeROWRA7nk+tUnyzGvZrKg0/40gdME/t8EvgG0/NOS6v9NHQAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-attachment: scroll; background-size: 16px 18px; background-position: 98% 50%;'> </div> <div id="honeypot-div"> <input name="age_required" id="age_required" value="" type="text" style="display: none;"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact4_email" id="contact4_email" placeholder="Email Address" class="form-control" required="" type="email"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact4_phone" id="contact4_phone" placeholder="Phone Number" class="form-control phone_mask" type="tel"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact4_position" id="contact4_position" placeholder="Job Position" class="form-control contact_position" required="" type="text"> </div> </div> <div class="col-sm-6"> <div class="form-group dropdown-wrapper"> <select id="contact4_license" name="contact4_license" required="" class="form-control dropdown" type="text"> <option value="I don’t have a real estate license">I don’t have a real estate license</option> <option value="I have started real estate license coursework">I have started real estate license coursework</option> <option value="I am currently licensed to practice real estate">I am currently licensed to practice real estate</option> </select> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact4_availability_date" id="contact4_availability_date" placeholder="Availability Date" class="form-control contact_date" type="text"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <textarea name="contact4_resume" id="contact4_resume" class="form-control" rows="3" placeholder="Resumé Link (Dropbox/Google Drive)"></textarea> </div> </div> <div class="col-sm-6"> <div class="form-group"> <textarea name="contact4_message" id="contact4_message" class="form-control" rows="3" placeholder="Your Message" required=""></textarea> </div> </div> </div> <button class="btn btn-primary" type="submit" id="cf-submit" name="submit" data-selector="a.btn, button.btn, button" style="outline: none; cursor: inherit;">Send</button> </form> </div> </div> </div> </div> <div class="modal fade magic-modal" id="getmarketingplan" tabindex="-1" role="dialog" aria-labelledby="getmarketingplan" style="display: none;"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <button type="button" class="close" data-dismiss="modal" aria-label="Close" data-selector="a.btn, button.btn, button" style="outline: none; cursor: inherit;"><span aria-hidden="true">×</span></button> <h4 class="prmry-color" data-selector="h1, h2, h3, h4, h5, h6" style="outline: none; cursor: inherit;">Request property marketing plan</h4> <p data-selector="p" style="outline: none; cursor: inherit;">You're one step away from getting a free marketing plan that shows how we'll sell your home for the most amount of money in the least amount of time - hassle free.</p> <form class="form-contact" id="form-contact6"> <input type="hidden" name="lead_type" value="seller"> <input type="hidden" name="tags" value="Marketing_Plan_Requested"> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <input name="contact6_fname" id="contact6_fname" placeholder="First Name" class="form-control" required="" type="text"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact6_lname" id="contact6_lname" placeholder="Last Name" class="form-control" required="" type="text"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact6_email" id="contact6_email" placeholder="Email Address" class="form-control" required="" type="email"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact6_phone" id="contact6_phone" placeholder="Phone Number" class="form-control" required="" type="tel"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact6_address" id="contact6_address" placeholder="Address" class="form-control" required="" type="text"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact6_city" id="contact6_city" placeholder="City" class="form-control" required="" type="text"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact6_state" id="contact6_state" placeholder="State" class="form-control" required="" type="text"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="contact6_zip" id="contact6_zip" placeholder="ZIP" 
246class="form-control" required="" type="text"> </div> </div> <div class="col-sm-12"> <div class="form-group"> <select name="contact6_whenareyouselling" id="contact6_whenareyouselling" class="form-control" placeholder="When are you planning to sell?"> <option value="" disabled selected>When are you planning to sell?</option> <option value="1">Now</option> <option value="2">0-6 months</option> <option value="3">6+ months</option> </select> </div> </div> </div> <button class="btn btn-primary" type="submit" id="cf-submit" name="submit" data-selector="a.btn, button.btn, button" style="outline: none; cursor: inherit;">Send</button> </form> </div> </div> </div> </div> <header id="premium-navigation" data-selector="#premium-navigation" style="outline: none; cursor: inherit;"> <div class="main-nav"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse" style="outline: none; cursor: inherit;" data-selector="a.btn, button.btn, button"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/" style="outline: none; cursor: inherit;"> <img class="img-responsive site_custom_logo" src="https://cdn1.brivityidx.com/assets/images/agent-photos/1/3/8/13838992/AnthonyRealtors-Logo-PLACE-White-Green-web.png" alt="Logo" style="outline: none; cursor: inherit;" data-selector="img"></a> </div> <div class="collapse navbar-collapse"> <ul class="nav navbar-nav navbar-right" style="outline: none; cursor: inherit;"> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a class="nav-link-color" href="/search" style="outline: none; cursor: inherit;">SEARCH LISTINGS</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a class="nav-link-color" href="/homevalue" style="outline: none; cursor: inherit;">Home Value</a> </li> <li class="nav-item dropdown"><a class="dropdown-toggle sec-nav-link-color" data-toggle="dropdown" data-hover="dropdown" data-delay="0" data-close-others="false" href="/top_areas" aria-expanded="false">Top Areas<i class="fa fa-angle-down"></i></a><ul class="dropdown-menu"><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Allen%20County,%20IN&amp;multi_cat=CountyState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=Allen%20County,%20IN&amp;multi_cat=CountyState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Allen County</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Auburn,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=Auburn,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Auburn</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Columbia%20City,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=Columbia%20City,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Columbia City</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Fort%20Wayne,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=Fort%20Wayne,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Fort Wayne</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Grabill,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=Grabill,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Grabill</a></li><li class="sec-nav-drop-color">
246<a class="sec-nav-drop-link-color" href="/search?multi_search=Huntertown,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=Huntertown,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Huntertown</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Huntington,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=Huntington,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Huntington</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Kendallville,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=Kendallville,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Kendallville</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Leo,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=Leo,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Leo</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=46741%7C46765%7C46788&amp;multi_cat=Zip%7CZip%7CZip&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=46741%7C46765%7C46788&amp;multi_cat=Zip%7CZip%7CZip&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">Leo-Cedarville</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=New%20Haven,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1#?mlsId=285&amp;price=10000:&amp;multi_search=New%20Haven,%20IN&amp;multi_cat=CityState&amp;propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&amp;status=1%7C3&amp;q_sort=createdAt-&amp;q_offset=0">New Haven</a></li></ul></li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a class="nav-link-color" href="/buying" style="outline: none; cursor: inherit;">BUY</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a class="nav-link-color" href="/selling" style="outline: none; cursor: inherit;">SELL</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a class="nav-link-color" href="/financing" style="outline: none; cursor: inherit;">FINANCE</a> </li> <li data-selector="li" style="outline: none; cursor: inherit;"> <a class="menu-toggle nav-link-color" style="outline: none; cursor: inherit;"> <span>MENU</span> <svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"> <line x1="3" y1="12" x2="21" y2="12"></line> <line x1="3" y1="6" x2="21" y2="6"></line> <line x1="3" y1="18" x2="21" y2="18"></line> </svg> </a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a id="top-nav-marketing-plan" data-toggle="modal" data-target="#sell-modal" class="nav-link-color" style="outline: none; cursor: inherit;">WE'RE HIRING</a> </li> </ul> </div> </div> </div> </header> <div id="slide-out-nav" class=""> <div class="close-nav"> <svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x-circle"> <circle cx="12" cy="12" r="10"></circle> <line x1="15" y1="9" x2="9" y2="15"></line> <line x1="9" y1="9" x2="15" y2="15"></line> </svg> </div> <div class="render-menu"><ul class="nav navbar-nav navbar-right"><li class="nav-item"><a class="sec-nav-link-color" href="/search">SEARCH LISTINGS</a></li><li class="nav-item"><a class="sec-nav-link-color" href="/buying">BUYING</a></li><li class="nav-item"><a class="sec-nav-link-color" href="/selling">SELLING</a></li><li class="nav-item dropdown"><a class="dropdown-toggle sec-nav-link-color" data-toggle="dropdown" data-hover="dropdown" data-delay="0" data-close-others="false">Top Areas<i class="fa fa-angle-down"></i></a><ul class="dropdown-menu"><li class="sec-nav-drop-color">
246<a class="sec-nav-drop-link-color" href="/search?multi_search=Allen%20County,%20IN&amp;multi_cat=CountyState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Allen County</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Auburn,%20IN&amp;multi_cat=CityState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Auburn</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Columbia%20City,%20IN&amp;multi_cat=CityState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Columbia City</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Fort%20Wayne,%20IN&amp;multi_cat=CityState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Fort Wayne</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Grabill,%20IN&amp;multi_cat=CityState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Grabill</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Huntertown,%20IN&amp;multi_cat=CityState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Huntertown</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Huntington,%20IN&amp;multi_cat=CityState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Huntington</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Kendallville,%20IN&amp;multi_cat=CityState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Kendallville</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=Leo,%20IN&amp;multi_cat=CityState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Leo</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=46741%7C46765%7C46788&amp;multi_cat=Zip%7CZip%7CZip&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">Leo-Cedarville</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/search?multi_search=New%20Haven,%20IN&amp;multi_cat=CityState&amp;propertyType=|Residential|Multi-Family|Condo/Townhome&amp;status=1|3&amp;mlsId=285&amp;price=10000:&amp;q_sort=createdAt-&amp;q_offset=0">New Haven</a></li></ul><li class="nav-item"><a class="sec-nav-link-color" href="/financing">FINANCING</a></li><li class="nav-item"><a class="sec-nav-link-color" href="/homevalue">Home Value</a></li><li class="nav-item"><a class="sec-nav-link-color" href="/realestateagent/search">MEET THE TEAM</a></li><li class="nav-item"><a class="sec-nav-link-color" href="/reviews">REVIEWS</a></li><li class="nav-item"><a class="sec-nav-link-color" href="/careers">CAREERS</a></li><li class="nav-item dropdown"><a class="dropdown-toggle sec-nav-link-color" data-toggle="dropdown" data-hover="dropdown" data-delay="0" data-close-others="false">Resources<i class="fa fa-angle-down"></i></a><ul class="dropdown-menu"><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/home-sale-calculator">Home Sale Calculator</a></li><li class="sec-nav-drop-color"><a class="sec-nav-drop-link-color" href="/mortgage-calculator">Mortgage Calculator</a></li><li class="sec-nav-drop-color">
246<a class="sec-nav-drop-link-color" href="/affordability-calculator">Affordability Calculator</a></li></ul><li class="nav-item"><a class="sec-nav-link-color" href="https://www.place.com/">ABOUT PLACE</a></li><li class="nav-item"><a class="sec-nav-link-color" href="/connect">CONNECT</a></li><li class="nav-item"><a class="sec-nav-link-color" href="https://blog.anthonyrealtors.com">blog</a></li></ul></div> </div> <div id="slide-out"> <div class="container-fluid"> <div class="row"> <div class="col-md-12"> <div class="header-flex"> <a class="navbar-brand" href="/" style="outline: none; cursor: inherit;"> <img class="img-responsive site_custom_logo" alt="Logo" src="https://cdn1.brivityidx.com/assets/images/agent-photos/1/3/8/13838992/AnthonyRealtors-Logo-PLACE-White-Green-web.png" data-selector="img" style="outline: none; cursor: inherit;"></a> <div class="menu-toggle"> <svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"> <line x1="3" y1="12" x2="21" y2="12"></line> <line x1="3" y1="6" x2="21" y2="6"></line> <line x1="3" y1="18" x2="21" y2="18"></line> </svg> </div> </div> </div> </div> </div> </div>  <style> 
247        .css-1dbjc4n {
248            z-index: unset;
249        }
250
251       .center-modal {
252            display:flex;
253            justify-content: center;
254            align-items:center;
255            position:fixed;
256            background-color:rgba(0,0,0,0.4);
257            left:0;
258            top:0;
259            right:0; 
260            bottom:0;
261            z-index: 100;
262        }
263
264        #saved-searches{
265            gap: 24px
266        }
267
268        .my-feed-parent{
269            width: 90vw;
270            margin-top: 20px
271        }
272        .page-width-parent{
273            max-width: 1280px;
274            margin: 0 auto;
275        }
276        @media only screen and (min-width: 1280px) {
277            .collection-page {
278                padding:48px 48px 48px 120px;
279            }
280
281            .my-feed-parent{
282                max-width: 100%;
283                overflow: hidden;
284            }
285
286            .saved-search-cards{
287                width:calc(50% - 12px);
288            }
289        }
290
291        @media only screen and (min-width:768px) and (max-width:1279px) {
292            .collection-page {
293                padding:60px 16px 16px 16px;
294            }
295
296            .saved-search-cards{
297                width:calc(50% - 12px);
298            }
299        }
300
301         @media only screen and (max-width:767px) {
302            .collection-page {
303                padding:60px 16px 16px 16px;
304            }
305
306            .saved-search-cards{
307                width:100%;               
308            }
309        }
310
311    </style> 
311<script>
312    window.addEventListener("load", () => {
313    const key = localStorage.getItem('authorization');  
314    
315        if( !key) {
316            $("#sign-up-modal").modal('show');
317
318            $("#sign-up-modal").on("hidden.bs.modal", function () {
319                location.reload();
320            });
321        }
322        else{
323
324            let myPortalPage = document.getElementById('myportal-page');
325            myPortalPage.style.display = "block";
326
327            window.location.hash = ""
328
329            class logger extends Collections.BaseLogger {
330                log(e) {
331                    console.log(e);
332                }
333            }
334            
335            class Pubsub {
336                static events = {};
337                constructor() {
338                    //this.events = {};
339                }
340
341                static subscription (eventName, func) {
342                    return {
343                        subscribe: () => {
344                            if (this.events[eventName]) {
345                                this.events[eventName].push(func);
346                            } else {
347                                this.events[eventName] = [func];
348                            }
349                        },
350
351                        unsubscribe: () => {
352                            if(this.events[eventName]){
353                                this.events[eventName] = this.events[eventName].filter((subscriber) => subscriber !== func);
354                            }
355                        }
356                    }
357                } 
358
359
360                static publish(eventName, ...args) {
361                    const funcs = this.events[eventName];
362                    if (Array.isArray(funcs)) {
363                        funcs.forEach((func) => {
364                            func.apply(null, args);
365                        });
366                    }
367                }
368            }
369
370            class SubHeader {
371                constructor() {
372                    this.element = document.querySelector('place-pagesubheader');
373
374                    this.element.addEventListener('button_on_press', (e) => {
375                        window.open('../../search.php', '_blank');
376                    })
377
378                        this.element.addEventListener('top_header_on_press', (e) => {
379                        Pubsub.publish('top_header_back_pressed', e)
380                    })
381
382                    this.element.addEventListener('on_menu_item_pressed', (e) => {
383                        Pubsub.publish('top_header_menu_item_pressed', e.detail)
384                    })
385                }
386
387                setTitle(title) {
388                    this.element.setAttribute('title', title)
389                }
390
391                setTopHeaderTitle(title){
392                    this.element.setAttribute('top_header_title', title)
393                }
394
395                showTopHeader(){
396                    this.element.setAttribute('show_top_header', true)
397                }
398
399                hideTopHeader(){
400                    this.element.setAttribute('show_top_header', false)
401                }
402
403                showMenuButton() {
404                    this.element.setAttribute('show_menu_button', true)
405                }
406
407                hideMenuButton() {
408                    this.element.setAttribute('show_menu_button', false)
409                }
410
411                showPrimaryButton() {
412                    this.element.setAttribute('show_button', true)
413                }
414
415                hidePrimaryButton() {
416                    this.element.setAttribute('show_button', false)
417                }
418
419                hideMenu() {
420                    this.element.setAttribute('show_menu', false)
421                }
422            }
423
424            class SaveSearchBlock {
425                constructor() {
426                    this.element = document.getElementById('save-search-block');
427
428                    this.element.addEventListener('on_main_press', (e) => {
429                        window.open('../../search.php', '_blank');
430                    })
431                }
432
433                show(collectionUUID, propertyCollectionUUID) {
434                    this.element.setAttribute('style', 'display:flex')
435                }
436
437                hide() {
438                    this.element.setAttribute('style', 'display:none');
439                }
440            }
441
442            class BrivityHomeApp {
443                constructor(blueroofMiddlewareApi) {
444                    this.element = document.querySelector('place-gethomeapp');
445                    this.blueroofMiddlewareApi = blueroofMiddlewareApi;
446
447                    this.element.addEventListener('on_button_pressed', (e) => {
448                        this.blueroofMiddlewareApi.getBrivityHomeAppInvite(e.detail).then((data) => {
449                            toast.show('Invite has been sent!')
450                        }).catch((error) => {
451                            toast.show('Error sending invite')
452                        })  
453                    })
454                }
455                hide(){
456                    this.element.setAttribute('style', 'display:none')
457                }
458            }
459
460            class SavedSearchCard    {
461                constructor(savedSearch) {
462                    
463                        
464                    this.element = document.createElement('place-savedsearchcard');
465                    
466                    this.savedSearch = savedSearch;
467                
468                    this.element.addEventListener(`on_menu_open`, (e) => {    
469                        this.element.setAttribute("show_menu", e.detail);
470                    });
471
472                    this.element.addEventListener('on_search_pressed', (e) => {
473                        window.open(`../../${this.savedSearch.searchUrl}`, '_blank');
474                    })
475
476                    this.element.addEventListener('on_updates_pressed', (e) => {
477                        window.location.hash = savedSearch.alertId;
478                        Pubsub.publish('save_search_block_updates_pressed', savedSearch);
479                    })
480
481                    this.element.addEventListener('on_icon_pressed', (e) => {
482                        Pubsub.publish('saved_search_block_icon_pressed', {icon:e.detail, savedSearch});
483                    })
484
485                    this.element.addEventListener('on_menu_item_pressed', (e) => {
486                        if(e.detail == 'Delete Saved Search'){
487                        
488                            Pubsub.publish('delete_saved_search_pressed', this?.savedSearch?.alertId);
489                        }
490                        else if(e.detail == 'Share Saved Search'){
491                            Pubsub.publish('share_saved_search_pressed', this?.savedSearch);
492                        }
493                        else if(e.detail == 'Manage Alerts'){
494                            Pubsub.publish('manage_alerts_pressed', this?.savedSearch);
495                        }
496
497                    
498                    })
499
500                    let data = {
501                        city: savedSearch?.cityStates?.length > 0 ? savedSearch?.cityStates[0]?.city : "",
502                        state: savedSearch?.cityStates?.length > 0  ?  savedSearch?.cityStates[0]?.state : "",
503                        bathrooms: savedSearch?.bathsMin || 0,
504                        bathrooms_max: savedSearch?.bathsMax || 0,
505                        bedrooms: savedSearch?.bedsMin || 0,
506                        bedrooms_max: savedSearch?.bedsMax || 0,
507                        max_price: savedSearch?.priceMax || 0,
508                        min_price: savedSearch?.priceMin  || 0,
509                        search_name: savedSearch?.searchName,
510                        statistics: {
511                            total : savedSearch?.statistics?.total || 0,
512                            new : savedSearch?.statistics?.new || 0,
513                            openHouse : savedSearch?.statistics?.openHouse || 0,
514                            sold: savedSearch?.statistics?.statusChange || 0,
515                            priceChange:savedSearch?.statistics?.priceChange || 0
516                        }
517                    }
518
519                    this.element.setAttribute('id', savedSearch?.alertId);
520                    this.element.setAttribute('saved_search', JSON.stringify(data));
521                    
522
523                }
524
525
526
527                show = () => {
528                    this.collectionSection.style.display = 'flex'
529                }
530
531                hide = () => {
532                    this.collectionSection.style.display = 'none'
533                }
534            }
535
536            class PropertyCard {
537                constructor(property){
538                    this.element = document.createElement('place-propertycard');
539
540                    this.element.addEventListener('on_press_carousel', (e) => {
541                        window.open(`/homes-for-sale/${property.state}/${slugify(property.city)}/${slugify(property.postalCode)}/${slugify(property.streetAddress)}/bid-${property.blossorId}`,`_blank`);
542                    });
543
544                    this.element.addEventListener('on_menu_item_pressed', (e) => {
545                        if(e.detail == 'Share Property'){
546                            let url = this.getPropertyUrl(property);
547                             
548                            property.searchUrl = url;
549                            Pubsub.publish('share_property', {property});
550                        }
551                        else if(e.detail == 'Add to Collection'){
552                            
553                             
554                            
555                            Pubsub.publish('add_property_to_collection', {property});
556                            
557                        }
558                       
559                    })
560
561                    this.element.addEventListener('on_favorite_press', (e) => {
562                        
563                        let isAddingFavorite = e.detail
564
565                        if(isAddingFavorite){
566                           
567                            
568                            Pubsub.publish('add_property_to_collection', {property});
569                        }
570                        else{
571                            Pubsub.publish('remove_property_from_collections', {property});
572                        }
573                    });
574
575                    this.element.setAttribute('id', property.blossorId);
576                    this.element.setAttribute("display_menu", "true");
577                    this.element.setAttribute("show_menu", "false");
578                    this.element.setAttribute("items", '[{"icon":"share-2","text":"Share Property"},{"icon":"layers","text":"Add to Collection"}]');
579                    this.element.setAttribute("property_created_at", property?.listDate);
580                    this.element.setAttribute("active_status", "true");
581                    if(property?.priceLastReduced?.length > 0){
582                        const priceLastReduced = new Date(property?.priceLastReduced)?.getTime();
583                        if(priceLastReduced > sevenDaysAgo) this.element.setAttribute('mls_price_history', property?.history[property.history.length-1]?.price);
584                    }
585                    if(property.openhouses.length > 0){
586                        this.element.setAttribute('open_house','true')
587                        this.element.setAttribute('open_house_date', property.openhouses[0].startDate)
588                        this.element.setAttribute('open_house_end_time',property.openhouses[0].endDate)
589                    }else{
590                        this.element.setAttribute('open_house','false')
591                    }
592                    this.element.setAttribute('appearance','small')
593                    this.element.setAttribute('layout_width', '300')
594                    this.element.setAttribute('display_tag', 'true')
595                    this.element.setAttribute('display_favorite', 'true')
596                    this.element.setAttribute('image_height', '184')
597                    this.element.setAttribute('mls',`{
598                        "status":"${property.standardStatus}", 
599                        "favorite":${property?.favorite},
600                        "image":[{"uri":"${property?.photos[0].url}"}], 
601                        "price":"${property?.price}",
602                        "address":"${property?.streetAddress}",
603                        "state":"${property?.state}", 
604                        "city":"${property?.city}", 
605                        "postalCode":"${property?.postalCode}", 
606                        "beds":"${property?.bedrooms}", 
607                        "baths":"${property?.fullBaths}", 
608                        "sqft":"${property?.squareFeet}"
609                    }`)
610                    
611                }
612                getPropertyUrl = (property) => {
613                    let state = property.state;
614                    let city = this.slugify(property.city);
615                    let zip = property.postal_code
616                    let address = this.slugify(property.streetAddress);
617                    let blossorId = property.blossorId;
618                    return `homes-for-sale/${state}/${city}/${zip}/${address}/bid-${blossorId}`;
619                }
620
621                slugify(text) {
622                    // replace non letter or digits by -
623                    text = text.replace(/[^\pL\d]+~u/g, '_');
624                    // transliterate
625                    text = text.normalize('NFKD').replace(/[\u0300-\u036F]/g,'')
626                    // remove unwanted characters
627                    text = text.replace(/[^_\w]+/g, '_');
628                    // trim
629                    text = text.trim();
630                    // remove duplicate -
631                    text = text.replace(/_+/g, '-');
632                    // lowercase
633                    text = text.toLowerCase();
634                    if (!text) {
635                        return 'n-a';
636                    }
637                    return text
638                }
639            }
640            
641            let dateNow = new Date();
642            dateNow.setDate(dateNow.getDate()-7);
643            dateNow.setHours(0);
644            dateNow.setMinutes(0);
645            dateNow.setSeconds(0);
646            dateNow.setMilliseconds(0);
647            const sevenDaysAgo = dateNow.getTime();
648
649            class UpdatedListingsSection {
650                constructor(collectionsService) {
651                    this.collectionsService = collectionsService;
652                    this.element = document.getElementById('updated-listings-section');
653                    this.listingElement = document.getElementById('updated-listings');
654                }
655
656                async show(properties) {
657                    if(properties){
658                        this.properties = properties
659                    }
660                        this.element.style.display = 'flex'  
661                       await this.addPropertyCards();
662                }
663
664                hide() {
665                    this.element.style.display = 'none'
666                }
667
668                async addPropertyCards(){
669
670                    this.listingElement.innerHTML = "";
671
672                    let updatedPropertiesBlossorIds = this.properties.map(property => property.blossorId);
673                        
674
675                    let propertiesInCollections = await this.collectionsService.checkIfInCollection(updatedPropertiesBlossorIds) 
676
677                    this.properties.forEach((property) => {
678                        let propertyCardWrapper = document.createElement('div');
679                        property.favorite = propertiesInCollections?.data[property?.blossorId] != null || false
680                        let propertyCard = new PropertyCard(property);
681                        propertyCardWrapper.appendChild(propertyCard.element);
682                        this.listingElement.appendChild(propertyCardWrapper);
683                    })
684                        
685
686                }
687
688                filterProperties(filter) {
689
690                    let filteredProperties;
691
692                    
693                    
694
695                    if(filter == 'open_house'){
696                        filteredProperties = this.properties.filter((property) => {
697                            return property.openhouses.length > 0;
698                        })
699                    }
700                    else if(filter == 'price_change'){
701                        filteredProperties = this.properties.filter((property) => {
702                            if(property?.priceLastReduced?.length > 0){
703                                const priceLastReduced = new Date(property?.priceLastReduced)?.getTime();
704                                return priceLastReduced >= sevenDaysAgo;
705                            }
706                            else {
707                                return false;
708                            }
709                        })
710                    }
711                    else if(filter == 'status_change') {
712                        filteredProperties = this.properties.filter((property) => {
713                            const listDate = new Date(property?.listDate).getTime();
714
715                            if(property?.lastStatusChangeDate?.length > 0 ){
716                                const lastStatusChangeDate = new Date(property?.lastStatusChangeDate)?.getTime();
717                                return lastStatusChangeDate >= sevenDaysAgo;
718                            }
719                            else {
720                                return false;
721                            }                                
722                        })
723                    }
724                    else if(filter == 'new'){
725                        filteredProperties = this.properties.filter((property) => {
726                            const listDate = new Date(property?.listDate).getTime();
727                            return listDate >= sevenDaysAgo;
728                        })
729                    }
730                    else {
731                        filteredProperties = this.properties;
732                    }
733                    
734                    this.listingElement.innerHTML = "";
735                    
736                    if(filteredProperties.length > 0 ){
737                        filteredProperties.forEach((property) => {
738                            let propertyCardWrapper = document.createElement('div');
739                           
740                            let propertyCard = new PropertyCard(property);
741                            propertyCardWrapper.appendChild(propertyCard.element);
742                            this.listingElement.appendChild(propertyCardWrapper);
743                        })
744                    }
745                }
746            }
747
748            class SavedSearchesSection  {
749                constructor() {
750                    this.element = document.getElementById('saved-searches');
751                }
752
753                
754                addSavedSearchCards(savedSearches){
755                    this.savedSearches = savedSearches;
756                    savedSearches.forEach((savedSearch) => {
757                        const savedSearchCard = new SavedSearchCard(savedSearch);
758                        const savedSearchCardWrapper = document.createElement('div');
759                        savedSearchCardWrapper.setAttribute('class', 'saved-search-cards');
760
761                        savedSearchCardWrapper.append(savedSearchCard.element);
762                        this.element.append(savedSearchCardWrapper);
763                    })
764                }
765
766                removeSavedSearchCard(alertId){
767
768                    const savedSearchCard = document.getElementById(alertId).parentElement;
769                    if(savedSearchCard){
770                            savedSearchCard.remove();
771                    }
772                    
773            
774                }
775
776                show() {
777                    this.element.style.display = 'flex'
778                }
779
780                hide() {
781                    this.element.style.display = 'none'
782                }
783            }
784
785            class ShareSavedSearchModal {
786                constructor() {
787                    let _this = this;
788                    this.savedSearch = {}
789                    this.element = document.getElementById('share-saved-search-modal');
790
791                    this.element.addEventListener("on_primary_press", (e) => {
792
793                        navigator.clipboard.writeText(this.link)
794                        _this.hide();
795                        toast.show('Link Copied!')
796                        
797                    });
798
799                    this.element.addEventListener("on_close_press", (e) => {
800                        _this.hide();
801                    });
802                }
803
804                show = (savedSearch) => {
805                
806                    if(savedSearch){
807                        this.savedSearch = savedSearch;
808                    }
809                    this.link = document.location.origin + "/" +  this.savedSearch.searchUrl
810                    this.element.setAttribute('share_link_text', this.link)
811                    this.element.setAttribute('style', 'display:flex')
812                }
813
814                hide = () => {
815                    this.element.setAttribute('style', 'display:none');
816                }
817            }
818
819            class DeleteSavedSearchModal {
820                constructor(blueroofMiddlewareApi) {
821                        
822                    this.blueroofMiddlewareApi = blueroofMiddlewareApi;
823                    this.savedSearch = {}
824                    this.element = document.getElementById('delete-saved-search-modal');
825
826                    this.element.addEventListener("on_primary_press", (e) => {
827                        this.hide();
828                        this.blueroofMiddlewareApi.deleteSavedListing(this.savedSearch).then((response) => {
829                            toast.show('Saved search has been deleted');
830                        })
831                    });
832
833                    this.element.addEventListener("on_tertiary_press", (e) => {
834                        this.hide();
835                    });
836
837                    this.element.addEventListener("on_close_press", (e) => {
838                        this.hide();
839                    });
840                }
841
842                show = (savedSearch) => {
843                
844                    if(savedSearch){
845                        this.savedSearch = savedSearch;
846                    }
847                    this.element.setAttribute('style', 'display:flex')
848                }
849
850                hide = () => {
851                    this.element.setAttribute('style', 'display:none');
852                }
853            }
854
855            class FrequencyModal {
856                constructor() {
857                    this.element = document.querySelector('place-frequencymodal');
858
859                    this.element.addEventListener('on_close_press', (e) => {
860                        this.hide()
861                    })
862
863                    this.element.addEventListener('on_save_press', (e) => {
864                        Pubsub.publish('frequency_modal_save_clicked', e.detail)
865                    }) 
866                }
867
868                show(reportData) {
869
870                    let frequency = reportData.frequency;
871
872                    //daily, twice_daily, weekly, bi_weekly, monthly
873
874                    switch(reportData.frequency){
875
876                        case 'daily':
877                            frequency = 'Daily';
878                            break;
879                        case 'bi_weekly':
880                            frequency = 'Every 2 Weeks';
881                            break;
882                        case 'twice_daily':
883                            frequency = 'Twice Daily';
884                            break;
885                        case 'four_times_daily':
886                            frequency = 'Multiple Times Per Day';
887                            break;
888                        case 'weekly':
889                            frequency = 'Weekly';
890                            break;                                                
891                        case 'monthly':
892                            frequency = 'Monthly';
893                            break;                        
894                    }
895
896                    let description = `Listing alerts keep you up to date on the latest market activity so you can stay one step ahead of the game.\n\nHow often would you like email updates?`;
897                    this.element.setAttribute('description', description);
898                    this.element.setAttribute('selected_menu_item', frequency);
899                    this.element.setAttribute('style', 'display:flex')
900                }
901
902                hide() {
903                    this.element.setAttribute('style', 'display:none');
904                }
905            }
906
907            class PillSelector {
908                constructor() {
909                    this.element = document.createElement('div');
910                    this.element.setAttribute('style', 'display:flex;flex-direction:column;width:100%;margin-bottom:24px;')
911
912                    
913
914                    this.savedSearchFilter = document.createElement('place-text')
915
916                    this.weeksUpdates = document.createElement('place-text')
917                    this.weeksUpdates.setAttribute('style', 'margin-bottom:8px; margin-top: 40px;')
918                    
919                        
920
921                    this.pillSelector = document.createElement('place-pillselector')
922
923
924                    this.pillSelector.addEventListener('on_press', (e) => {
925                        Pubsub.publish('pill_selector_item_selected', e.detail);
926                    })
927
928                    this.element.append(this.savedSearchFilter)
929                    this.element.append(this.weeksUpdates)
930                    this.element.append(this.pillSelector)
931                }
932
933                setCurrentSavedSearch(savedSearch){
934                    
935                    this.savedSearch = savedSearch
936                    this.stats = savedSearch.statistics
937
938                    const items = [
939                        {
940                            "text": `All (${this.stats.total})`,
941                            "value": "all"
942                        },
943                        {
944                            "text": `New (${this.stats.new})`,
945                            "value": "new"
946                        },
947                        {
948                            "text": `Price Change (${this.stats.priceChange})`,
949                            "value": "price_change"
950                        },
951                        {
952                            "text": `Open House (${this.stats.openHouse})`,
953                            "value": "open_house"
954                        },
955                        {
956                            "text": `Status Change (${this.stats.statusChange})`,
957                            "value": "status_change"
958                        }
959                    ]
960
961                    this.pillSelector.setAttribute('items', JSON.stringify(items))
962                    this.pillSelector.setAttribute('active_pill', 'all')
963
964                        let city = this.savedSearch?.cityStates?.length > 0 && this.savedSearch?.cityStates[0].city || "";
965                        let baths = this.savedSearch?.bathsMin || 0;
966                        let beds = this.savedSearch?.bedsMin || 0;
967                        let minPrice = this.savedSearch?.priceMin || 0;
968                        let maxPrice = this.savedSearch?.priceMax || 0;
969                    
970                    let searchFilter = `${city} ${baths}+ baths ${beds}+ beds`
971
972                    if(minPrice > 0 || maxPrice > 0){
973                        searchFilter += ` $${this.formatNumberToSymbol(minPrice)} - $${this.formatNumberToSymbol(maxPrice)}`
974                    }
975
976                    
977                    this.savedSearchFilter.innerText = searchFilter
978
979                    this.weeksUpdates.innerText = "This Week's Updates";
980                }
981
982                formatNumberToSymbol = (num) => {
983                    if (num > 999 && num < 1000000) {
984                        return (num / 1000).toFixed() + "K"; // convert to K for number from > 1000 < 1 million
985                    } else if (num >= 1000000) {
986                        return (num / 1000000).toFixed() + "M"; // convert to M for number from > 1 million
987                    } else if (num < 900) {
988                        return num; // if value < 1000, nothing to do
989                    }
990                };
991
992                    
993            }
994
995            class BlueroofMiddlewareApi {
996                constructor() {
997                    this.baseUrl = "https://brivity-home-middleware.production.brivity.com";
998                    this.apiKey = localStorage.getItem('authorization');
999                }
1000
1001                getStats = async () => {
1002                    const response = await fetch(`${this.baseUrl}/listingAlerts/all/forPerson/withStatistics`, {
1003                        method: 'GET',
1004                        headers: {
1005                            'Content-Type': 'application/json',
1006                            'Authorization': `${this.apiKey}`
1007                        }
1008                    });
1009
1010                    const data = await response.json();
1011                    return data;
1012                }
1013
1014                getSavedListings = async () => {
1015                    const response = await fetch(`${this.baseUrl}/listingalerts/all/forperson/withStatistics`, {
1016                        method: 'GET',
1017                        headers: {
1018                            'Content-Type': 'application/json',
1019                            'Authorization': `${this.apiKey}`
1020                        }
1021                    });
1022
1023                    const data = await response.json();
1024                    return data;
1025                }
1026
1027                getUpdatedListings = async (id) => {
1028                        const response = await fetch(`${this.baseUrl}/listingalerts//recentlyUpdatedListings/${id}`, {
1029                        method: 'GET',
1030                        headers: {
1031                            'Content-Type': 'application/json',
1032                            'Authorization': `${this.apiKey}`
1033                        }
1034                    });
1035
1036                    const data = await response.json();
1037                    return data;
1038                }
1039
1040                deleteSavedListing = async (alertId) => {
1041                    const response = await fetch(`${this.baseUrl}/listingalerts/${alertId}`, {
1042                        method: 'DELETE',
1043                        headers: {
1044                            'Content-Type': 'application/json',
1045                            'Authorization': `${this.apiKey}`
1046                        }
1047                    });
1048
1049                    if(!response.ok){
1050                        throw new Error();
1051                    }
1052
1053                    const data = await response;
1054                    if(response.status == 200){
1055                        Pubsub.publish('saved_search_deleted', alertId);
1056                    }
1057                    return data;
1058                }
1059
1060                updateSavedListings = async (updatedListingData) => {
1061                    const response = await fetch(`${this.baseUrl}/listingalerts/${updatedListingData.alertId}`, {
1062                        method: 'PUT',
1063                        headers: {
1064                            'Content-Type': 'application/json',
1065                            'Authorization': `${this.apiKey}`
1066                        },
1067                        body: JSON.stringify(updatedListingData)
1068                    });
1069
1070                    if(!response.ok){
1071                        throw new Error();
1072                    }
1073
1074                    const data = await response
1075                    return data;
1076                }
1077
1078                getBrivityHomeAppInvite = async (number) => {
1079                    const response = await fetch(`${this.baseUrl}/brivityLeads/sendHomeAppInvite`, {
1080                        method: 'POST',
1081                        headers: {
1082                            'Content-Type': 'application/json',
1083                            'Authorization': `${this.apiKey}`
1084                        },
1085                        body: JSON.stringify({
1086                            "phoneNumber": number
1087                        })
1088                    });
1089
1090                    const data = await response.json();
1091                    return data;
1092                }
1093
1094                getMyFeed = async () => {
1095                    const response = await fetch(`${this.baseUrl}/listings/voltron`, {
1096                        method: 'POST',
1097                        headers: {
1098                            'Content-Type': 'application/json',
1099                            'Authorization': `${this.apiKey}`
1100                        },
1101                        body: JSON.stringify([])
1102
1103                    });
1104
1105                    const data = await response.json();
1106                    return data;
1107                }
1108
1109                getLeadBasicInfo = async () => {
1110                    const response = await fetch(`${this.baseUrl}/blueroofleads/basicinfo`, {
1111                        method: 'GET',
1112                        headers: {
1113                            'Content-Type': 'application/json',
1114                            'Authorization': `${this.apiKey}`
1115                        },
1116                    
1117                    });
1118
1119                    const data = await response.json();
1120                    return data;
1121                }
1122
1123                getAgentProfile = async (brivityUserId) => {
1124                    const response = await fetch(`${this.baseUrl}/blueroofagents/profile`, {
1125                        method: 'POST',
1126                        headers: {
1127                            'Content-Type': 'application/json',
1128                            'Authorization': `${this.apiKey}`
1129                        },
1130                        body: `{"brivityUserId": ${brivityUserId}}`
1131                    
1132                    });
1133
1134                    const data = await response.json();
1135                    return data;
1136                }
1137            }
1138
1139            class ShareSavedPropertyModal {
1140                constructor() {
1141                    let _this = this;
1142                    this.savedProperty = {}
1143                    this.element = document.getElementById('share-saved-property-modal');
1144
1145                    this.element.addEventListener("on_primary_press", (e) => {
1146
1147                        navigator.clipboard.writeText(this.link)
1148                        _this.hide();
1149                        toast.show('Link Copied!')
1150                        
1151                    });
1152
1153                    this.element.addEventListener("on_close_press", (e) => {
1154                        _this.hide();
1155                    });
1156                }
1157
1158                show = (savedProperty) => {
1159                
1160                     
1161                    this.savedProperty = savedProperty;
1162                    
1163                    this.link = document.location.origin + "/" +  savedProperty.searchUrl
1164                    this.element.setAttribute('share_link_text', this.link)
1165                    this.element.setAttribute('style', 'display:flex')
1166                }
1167
1168                hide = () => {
1169                    this.element.setAttribute('style', 'display:none');
1170                }
1171            }
1172
1173            class CollectionModal  {
1174                
1175                constructor() {
1176                    
1177                    let _this = this;
1178                    this.element = document.querySelector('place-collectionpopup');
1179                    this.collectionUUID = 0;
1180
1181                    this.element.addEventListener("on_close_press", (e) => {
1182                        _this.hide();
1183                    });
1184
1185                    this.element.addEventListener("on_save_press", (e) => {
1186                        this.showError(false);
1187                        e.detail.collectionUUID = this.collectionUUID
1188                         e.detail.type = this.isEditingCollection ? 'edit' : 'save'
1189                        Pubsub.publish('on_new_collection_saved', e.detail);
1190                    });
1191                    
1192                }
1193
1194                setName(name) {
1195                    this.element.setAttribute('name_value', name)
1196                }
1197
1198                setDescription(description) {
1199                    this.element.setAttribute('description_value', description)
1200                }
1201
1202                showError(error) {
1203                    this.element.setAttribute('show_error', error)
1204                }
1205
1206                show(collectionUUID, isEditingCollection) {
1207                    this.isEditingCollection = isEditingCollection;
1208                    if(collectionUUID){
1209                        this.collectionUUID = collectionUUID;
1210                    }
1211                    this.element.setAttribute('style', 'display:flex')
1212                }
1213
1214                hide() {
1215                    this.element.setAttribute('style', 'display:none');
1216
1217                    this.showError(false)
1218
1219                    // terrible hack.. only way i could get it to respond to prop changes
1220                    // to clear the input fields after closing the modal
1221                    this.setName('none')
1222                    this.setDescription('none')
1223                    setTimeout(() => {
1224                        this.setName('')
1225                        this.setDescription('')
1226                    }, 100);
1227                }
1228            }
1229
1230            class CopyPropertyToCollectionModal {
1231                constructor(){
1232                    
1233                    this.element = document.querySelector('place-copycollectionmodal');
1234                    this.property = {}
1235
1236                    this.element.addEventListener('close_button', (e) => {
1237                        this.hide();
1238                    });
1239
1240                    this.element.addEventListener('cancel_button', (e) => {
1241                        this.hide();
1242                    });
1243
1244                    this.element.addEventListener('on_save', (e) => {
1245                        Pubsub.publish('copy_property_to_collection_modal_save_pressed', {'collectionUUID':e.detail, 'property':this.property});
1246                    });
1247
1248                    this.element.addEventListener('set_selected_collection', (e) => {
1249                        console.log('set_selected_collection', e)
1250                    });
1251
1252                    this.element.addEventListener('on_link_press', (e) => {
1253                        Pubsub.publish('show_new_collection_modal');
1254                    });
1255
1256                }
1257                getCollectionData(){
1258                    return JSON.parse(this.element.getAttribute("collections"));
1259                }
1260
1261                setCollectionData(collections){
1262                    this.element.setAttribute('collections', JSON.stringify(collections))
1263                }
1264
1265                setIsAddingToCollection(isAddingToCollection){
1266                    this.element.setAttribute('is_add_to_collection', isAddingToCollection);
1267                }
1268
1269                show(property) {
1270                    
1271                    if(property){
1272                        this.property = property;
1273                    }
1274
1275                   
1276
1277                    let mls = {
1278                        status: property?.status || property?.standardStatus || "",
1279                        image: this.getPropertyImageUrl(property),
1280                        price: property?.price || "0",
1281                        address: property?.address || property?.streetAddress || "",
1282                        state: property?.state || "",
1283                        city: property?.city || "",
1284                        postal_code: property?.postal_code || "",
1285                        beds: property?.beds || property?.bedrooms || 0,
1286                        baths: property?.baths || property?.bathsTotalDecimal || 0,
1287                        sqft: property?.sqft || property?.squareFeet || 0,
1288                        creator: property?.creator || "",
1289                    }
1290
1291                    this.element.setAttribute('mls', JSON.stringify(mls))
1292                    this.element.setAttribute('image_url',mls?.image || "")
1293                    this.element.setAttribute('style', 'display:flex')
1294                }
1295
1296                getPropertyImageUrl(property){
1297                   // property?.image[0]?.uri || property?.photos[0]?.url || "",
1298
1299                    if(property.image && property.image.length > 0){
1300                       return property.image[0].uri
1301                    }
1301 else if (property.photos && property.photos.length > 0){
1302                       return property.photos[0].url
1303                    } else {
1304                        return ""
1305                    }
1306                }
1307
1308                hide() {
1309                    this.element.setAttribute('style', 'display:none');
1310                }
1311            }
1312
1313            class MyFeed {
1314                constructor(blueroofMiddlewareApi, collectionsService) {
1315                    this.blueroofMiddlewareApi = blueroofMiddlewareApi;
1316                    this.collectionsService = collectionsService;
1317                    this.element = document.querySelector('place-myfeedblock');
1318
1319                    this.element.addEventListener('on_menu_open', (e) => {
1320                        this.element.setAttribute('show_menu', e.detail.e);
1321                        this.element.setAttribute('show_menu_index', e.detail.index);
1322                    });
1323
1324                    this.element.addEventListener('on_view_all_pressed', (e) => {
1325                        window.open('../../search.php', '_blank');
1326                    });
1327
1328                    this.element.addEventListener('on_add_collection', (e) => {
1329                         
1330                        let property = e.detail;
1331                        Pubsub.publish('add_property_to_collection', {property});
1332
1333                    });
1334
1335                    this.element.addEventListener('on_share_pressed', (e) => {
1336                    
1337                        let property = e.detail
1338                    
1339                        let url = this.getPropertyUrl(property);
1340                        property.searchUrl = url;
1341                        
1342                        Pubsub.publish('share_property', {property});
1343                    });
1344
1345                    this.element.addEventListener('on_favorite_pressed', (e) => {
1346                        
1347                        let property = e.detail.property;
1348                        let isAddingFavorite = e.detail.isAddingFavorite;
1349
1350                        if(isAddingFavorite){
1351                             
1352                           
1353                            Pubsub.publish('add_property_to_collection', {property});
1354                        }
1355                        else{
1356                            Pubsub.publish('remove_property_from_collections', {property});
1357                        }
1358
1359                        
1360                        
1361                    });
1362
1363                    this.element.addEventListener('on_property_pressed', (e) => {
1364                        let property = e.detail
1365                    
1366                        let url = this.getPropertyUrl(property);
1367                        property.searchUrl = url;
1368                        window.open('../../' + url, '_blank');
1369                    });
1370                
1371
1372                    this.blueroofMiddlewareApi.getMyFeed().then((data) => {
1373
1374                        let myFeedBlossorIds = data.map(property => property.blossorId);
1375                        
1376
1377                        this.collectionsService.checkIfInCollection(myFeedBlossorIds).then((propertiesInCollections) => {
1378
1379                            let feed = []
1380                            data.forEach((item) => {
1381                            feed.push({
1382                                image: [
1383                                    {
1384                                        title: "",
1385                                        id: 0,
1386                                        uri: item?.photos[0].url,
1387                                    },
1388                                    ],
1389                                    price: item?.price,
1390                                    favorite: propertiesInCollections?.data[item?.blossorId] != null || false,
1391                                    address: item?.streetAddress,
1392                                    city: item?.city,
1393                                    state: item?.state,
1394                                    postal_code: item?.postalCode,
1395                                    beds: item?.bedrooms,
1396                                    status: item?.standardStatus,
1397                                    baths: item?.bathsTotalDecimal,
1398                                    sqft: item?.squareFeet,
1399                                    creator: "",
1400                                    mls_price_history: item?.history[item.history.length-1]?.price,
1401                                    blossorId: item?.blossorId,
1402                                    open_house : item?.openhouses.length > 0 ? true : false,
1403                                    open_house_date : item?.openhouses[0]?.startDate,
1404                                    open_house_end_time : item?.openhouses[0]?.endDate,
1405                                    property_created_at : item?.listDate,
1406                                    lastStatusChangeDate : item?.lastStatusChangeDate,
1407                                })
1408                            })
1409
1410                            if(feed && feed?.length > 0){
1411                                this.show();
1412                                this.element.setAttribute('mls_data', JSON.stringify(feed));
1413                            }
1414                        });
1415                    });
1416                    
1417                }
1418
1419                getPropertyUrl = (property) => {
1420                    let state = property.state;
1421                    let city = this.slugify(property.city);
1422                    let zip = property.postal_code
1423                    let address = this.slugify(property.address);
1424                    let blossorId = property.blossorId;
1425                    return `homes-for-sale/${state}/${city}/${zip}/${address}/bid-${blossorId}`;
1426                }
1427
1428                slugify(text) {
1429                    // replace non letter or digits by -
1430                    text = text.replace(/[^\pL\d]+~u/g, '_');
1431                    // transliterate
1432                    text = text.normalize('NFKD').replace(/[\u0300-\u036F]/g,'')
1433                    // remove unwanted characters
1434                    text = text.replace(/[^_\w]+/g, '_');
1435                    // trim
1436                    text = text.trim();
1437                    // remove duplicate -
1438                    text = text.replace(/_+/g, '-');
1439                    // lowercase
1440                    text = text.toLowerCase();
1441                    if (!text) {
1442                        return 'n-a';
1443                    }
1444                    return text
1445                }
1446
1447                getMlsData = () => {
1448                    return JSON.parse(this.element.getAttribute('mls_data'));
1449                }
1450
1451                setMlsData = (data) => {
1452                    this.element.setAttribute('mls_data', JSON.stringify(data));
1453                }
1454
1455
1456                show() {
1457                    this.element.setAttribute('style', 'display:flex')
1458                }
1459
1460                hide() {
1461                    this.element.setAttribute('style', 'display:none')
1462                }
1463            }
1464
1465            class Page {
1466                constructor() {
1467                    this.selectedSearch = null;
1468                    this.lead = {}
1469                    this.agent = {}
1470
1471                    this.authorizationData = JSON.parse(atob(blueroofMiddlewareApi.apiKey.split('.')[1]));
1472                    this.is_blueroof_person = this.authorizationData?.is_blueroof_person;
1473                    this.viewingUpdatedListings = false;
1474
1475                }
1476
1477                setSelectedSearch(search){
1478                    this.selectedSearch = search;
1479                }
1480
1481                scrollToTop(){
1482                    document.getElementById('site-registration-bar').scrollIntoView({ behavior: 'smooth', block: 'start'});
1483                }
1484            }
1485
1486            class messagingEmitter extends Messaging.BaseEmitter {
1487        
1488                newMessage(message) {
1489                    Pubsub.publish('messaging_emitter_new_message', message);
1490                }
1491            }
1492
1493            const blueroofMiddlewareApi = new BlueroofMiddlewareApi();
1494            const page = new Page(blueroofMiddlewareApi);
1495
1496            let url = 'https://messaging.brivity.com'
1497            const messaging = new Messaging.Service(url, blueroofMiddlewareApi.apiKey, new messagingEmitter());
1498
1499
1500            (async () => {
1501                let lead =  await blueroofMiddlewareApi.getLeadBasicInfo();
1502                let agent = await blueroofMiddlewareApi.getAgentProfile(lead.data?.brivity_agent_id);
1503
1504                page.lead = lead.data;
1505                page.agent = agent.data;
1506
1507                const menu = new Menu(page?.is_blueroof_person || false, page?.agent, blueroofMiddlewareApi.baseUrl, blueroofMiddlewareApi.apiKey);
1508                
1509            
1510                const collectionsService = new Collections.Service(window?.globalSiteVariables?.options?.apis?.collections?.url ?? '',blueroofMiddlewareApi.apiKey, "sitebuilder", new logger());
1511                collectionsService.getCollections(0, 30).then((e) => {
1512                    collections = e.data.Items;
1513
1514                    let collectionList = [];
1515
1516                    collections.forEach(collection => {
1517                        collectionList.push({
1518                            collection_title: collection.collectionName,
1519                            id: collection.collectionUUID,
1520                            propertiesImages: collection?.propertiesImages?.length > 0 ? collection?.propertiesImages : [],
1521
1522                        })
1523                    });
1524
1525                    copyPropertyToCollectionModal.setCollectionData(collectionList);
1526
1527                    
1528
1529                });
1530            
1531                const saveSearchBlock = new SaveSearchBlock();
1532                const subHeader = new SubHeader();
1533                const brivityHomeApp = new BrivityHomeApp(blueroofMiddlewareApi);
1534                const savedSearchSection = new SavedSearchesSection();
1535                const deleteSavedSearchModal = new DeleteSavedSearchModal(blueroofMiddlewareApi);
1536                const shareSavedSearchModal = new ShareSavedSearchModal();
1537                const updatedListingsSection = new UpdatedListingsSection(collectionsService);
1538                const pillSelector = new PillSelector();
1539                const myFeed = new MyFeed(blueroofMiddlewareApi, collectionsService);
1540                const shareSavedPropertyModal = new ShareSavedPropertyModal();
1541                const copyPropertyToCollectionModal = new CopyPropertyToCollectionModal();
1542                const collectionModal = new CollectionModal();
1543                const frequencyModal = new FrequencyModal();
1544
1545                if(page?.is_blueroof_person) brivityHomeApp.hide();
1546
1547                blueroofMiddlewareApi.getSavedListings().then((savedSearches) => {
1548                    if(savedSearches.length > 0 ){
1549                        savedSearchSection.addSavedSearchCards(savedSearches);
1550                    }
1551                    else {
1552                        saveSearchBlock.show();
1553                    }
1554                })
1555
1556                document.addEventListener("click", (e) => {
1557
1558                    const elements = document.querySelectorAll("[show_menu]");
1559                    elements.forEach((el) => {
1560                        el.setAttribute("show_menu", "false");
1561                    });
1562
1563                    document.getElementById("c2dfac72-6233-4e8d-b0d2-f44e4240ebb4")?.setAttribute("show_menu", "false");
1564                });
1565
1566
1567                async function showUpdatedListings(savedSearch) {
1568                    let updatedListings =  await blueroofMiddlewareApi.getUpdatedListings(savedSearch.alertId) 
1569                    page.setSelectedSearch(savedSearch);
1570
1571                    savedSearchSection.hide()
1572                    
1573                    await updatedListingsSection.show(updatedListings);
1574                    subHeader.showTopHeader();
1575                    subHeader.setTopHeaderTitle("Saved Searches");
1576                    subHeader.setTitle(savedSearch.searchName);
1577
1578                    subHeader.hidePrimaryButton();
1579                    subHeader.showMenuButton();
1580
1581                    let currentSearch = savedSearchSection.savedSearches.find((search) => search.alertId == savedSearch.alertId)
1582
1583                    
1584                    pillSelector.setCurrentSavedSearch(currentSearch);
1585                    updatedListingsSection.element.prepend(pillSelector.element)
1586                    
1587                    page.viewingUpdatedListings = true;
1588                    page.scrollToTop()
1589
1590                }
1591
1592                Pubsub.subscription('messaging_emitter_new_message', (message) => {
1593                    toast.show('New message from ' + message.createdByAlias)
1594                }).subscribe();
1595                
1596                Pubsub.subscription("delete_saved_search_pressed",deleteSavedSearchModal.show).subscribe()
1597                Pubsub.subscription("share_saved_search_pressed", shareSavedSearchModal.show).subscribe()
1598
1599                Pubsub.subscription('manage_alerts_pressed', ( savedSearch) => {
1600                    page.selectedSearch = savedSearch;
1601                    frequencyModal.show(savedSearch);
1602                }).subscribe();
1603
1604                Pubsub.subscription('frequency_modal_save_clicked', (reportFrequency) => {
1605
1606                    let frequency = '';
1607                    switch(reportFrequency){
1608
1609                        case 'Daily':
1610                            frequency = 'daily';
1611                            break;
1612                        case 'Twice Daily':
1613                            frequency = 'twice_daily';
1614                            break;
1615                        case 'Multiple Times Per Day':
1616                            frequency = 'four_times_daily';
1617                            break;
1618                        case 'Weekly':
1619                            frequency = 'weekly';
1620                            break;
1621                        case 'Every 2 Weeks':
1622                            frequency = 'bi_weekly';
1623                            break;
1624                        case 'Monthly':
1625                            frequency = 'monthly';
1626                            break;                        
1627                    }
1628                    
1629                    let updateListingAlert = {
1630                        alertId: page?.selectedSearch?.alertId,
1631                        frequency: frequency,
1632                        mlsIds: page?.selectedSearch?.mlsIds,
1633                        source: page?.selectedSearch?.source,
1634                        activeForEmails: page?.selectedSearch?.activeForEmails,
1635                        activeForAppNotifications: page?.selectedSearch?.activeForAppNotifications,
1636                        searchName: page?.selectedSearch?.searchName,
1637                        neighborhoodCityStates: page?.selectedSearch?.neighborhoodCityStates,
1638                        cityStates: page?.selectedSearch?.cityStates,
1639                        streetAddress: page?.selectedSearch?.streetAddress,
1640                        countyStates: page?.selectedSearch?.countyStates,
1641                        postalCodes: page?.selectedSearch?.postalCodes,
1642                        mlsAreas: page?.selectedSearch?.mlsAreas,
1643                        polygon: page?.selectedSearch?.polygon,
1644                        mlsNums: page?.selectedSearch?.mlsNums,
1645                        blossorIds: page?.selectedSearch?.blossorIds
1646
1647                    }
1648
1649                    blueroofMiddlewareApi.updateSavedListings(updateListingAlert).then((updatedSearch) => {
1650                        
1651                        frequencyModal.hide();
1652                        toast.show('Frequency updated');
1653                    }).catch((e) => {
1654                        toast.show('Error updating frequency', true);
1655                    })
1656
1657                    
1658                    
1659                }).subscribe();
1660
1661                Pubsub.subscription("saved_search_deleted", (alertId) => {
1662                    savedSearchSection.removeSavedSearchCard(alertId)
1663                    if(page.viewingUpdatedListings) {
1664                        Pubsub.publish("top_header_back_pressed");
1665                    }
1666                    
1667                }).subscribe()
1668                Pubsub.subscription("save_search_block_updates_pressed", showUpdatedListings).subscribe()
1669
1670                Pubsub.subscription("saved_search_block_icon_pressed", (e) => {
1671                    let icon = e.icon
1672                    let savedSearch = e.savedSearch;
1673                    let filter; 
1674
1675
1676                    switch(icon){
1677                        case 'new':
1678                            filter = 'new';
1679                            break;
1680                        case 'openHouse':
1681                            filter = 'open_house';
1682                            break;
1683                        case 'sold':
1684                            filter = 'status_change';
1685                            break;
1686                        case 'priceChange':
1687                            filter = 'price_change';
1688                            break;
1689                    }
1690
1691                    showUpdatedListings(savedSearch).then(() => {
1692                        pillSelector.pillSelector.setAttribute('active_pill', filter)
1693                        updatedListingsSection.filterProperties(filter)
1694                    })
1695                     
1696                }).subscribe();
1697                
1698                
1699                Pubsub.subscription("top_header_back_pressed", () => {
1700                    window.location.hash = '';
1701                    subHeader.hideTopHeader();
1702                    subHeader.showPrimaryButton();
1703                    subHeader.hideMenuButton();
1704                    subHeader.setTitle("Saved Searches");
1705                    updatedListingsSection.hide();
1706                    savedSearchSection.show();
1707                    page.setSelectedSearch('');
1708                    page.scrollToTop();
1709                    page.viewingUpdatedListings = false;
1710                }).subscribe()
1711                Pubsub.subscription("pill_selector_item_selected",(e) => {updatedListingsSection.filterProperties(e)}).subscribe();
1712               
1713                Pubsub.subscription("top_header_menu_item_pressed", (menuItemPressed) => {
1714                    
1715                    if(menuItemPressed == 'Delete Saved Search'){
1716                        Pubsub.publish('delete_saved_search_pressed', page.selectedSearch.alertId);
1717                    }
1718                    else if(menuItemPressed == 'Share Saved Search'){
1719                        Pubsub.publish('share_saved_search_pressed', page.selectedSearch);
1720                    }
1721                    else if(menuItemPressed == 'Manage Alerts'){
1722                        Pubsub.publish('manage_alerts_pressed', page.selectedSearch);
1723                    }
1724                }).subscribe();
1725
1726                Pubsub.subscription('share_property', (e) => {
1727                    shareSavedPropertyModal.show(e.property);
1728                }).subscribe();
1729
1730                Pubsub.subscription('add_property_to_collection', (e) => {
1731                    copyPropertyToCollectionModal.setIsAddingToCollection(true);
1732                    copyPropertyToCollectionModal.show(e.property);
1733                }).subscribe();
1734
1735                Pubsub.subscription('remove_property_from_collections', (e) => {
1736                    let blossorId = e.property.blossorId;
1737                    let myFeedData = myFeed.getMlsData();
1738                    collectionsService.checkIfInCollection([blossorId]).then((propertiesInCollections) => {
1739                        if(propertiesInCollections.data[blossorId]){
1740                            propertiesInCollections.data[blossorId].forEac
1740h((collection) => {
1741                                collectionsService.removePropertyFromCollection(collection.collectionUUID, collection.propertyUUID).then(() => {
1742                                    
1743                                    let data =  copyPropertyToCollectionModal.getCollectionData();
1744                                    let collectionUUID = collection.collectionUUID;
1745                                    collectionsService.getCollectionProperties(collectionUUID,1,1).then((e) => {
1746                                    
1747                                        let collectionIndex =  data.findIndex((x) => x.id == collectionUUID);
1748                                        let collection = data[collectionIndex];
1749                                    
1750                                        collection.propertiesImages = [];
1751                                        if(e?.data?.properties?.length > 0){
1752                                            collection.propertiesImages.push({mainPhoto: e?.data?.properties[0]?.photos[0]?.url});
1753                                        }
1754                                        
1755                                        data[collectionIndex] = collection;
1756                                        
1757                                        copyPropertyToCollectionModal.setCollectionData(data);
1758                                    })
1759
1760                                    //update my feed to set property heart as not favorited
1761                                    let myFeedPropertyIndex = myFeedData.findIndex((x) => x.blossorId == blossorId);
1762                                    if(myFeedPropertyIndex > -1){
1763                                        myFeedData[myFeedPropertyIndex].favorite = false;
1764                                        myFeed.setMlsData(myFeedData);
1765                                    }
1766
1767                                    //update property in update search
1768                                    let propertyCard = document.getElementById(blossorId);
1769                                    let propertyCardMLS = JSON.parse(propertyCard.getAttribute('mls'));
1770                                    propertyCardMLS.favorite = false;
1771                                    propertyCard.setAttribute('mls', JSON.stringify(propertyCardMLS));
1772                 
1773
1774                                }).catch((e) => {
1775                                    toast.show('Error removing from collection');
1776                                });
1777                            });
1778                        }
1779                    });
1780                }).subscribe();
1781
1782                Pubsub.subscription('copy_property_to_collection_modal_save_pressed', (e) => {
1783                    let collectionUUID = e.collectionUUID;
1784                    let blossorId = e.property.blossorId;
1785                    collectionsService.addPropertyToCollection(collectionUUID, [blossorId]).then(() => {
1786
1787
1788                        let data =  copyPropertyToCollectionModal.getCollectionData();
1789                        let myFeedData = myFeed.getMlsData();
1790                        
1791                        collectionsService.getCollectionProperties(collectionUUID,1,1).then((e) => {
1792                        
1793                            let collectionIndex =  data.findIndex((x) => x.id == collectionUUID);
1794                            let collection = data[collectionIndex];
1795                        
1796                            collection.propertiesImages = [];
1797                            if(e?.data?.properties?.length > 0){
1798                                collection.propertiesImages.push({mainPhoto: e?.data?.properties[0]?.photos[0]?.url});
1799                            }
1800                            
1801                            data[collectionIndex] = collection;
1802                            
1803                            copyPropertyToCollectionModal.setCollectionData(data);
1804
1805                            //update my feed to set property heart as favorited
1806                            let myFeedPropertyIndex = myFeedData.findIndex((x) => x.blossorId == blossorId);
1807                            if(myFeedPropertyIndex > -1){
1808                                myFeedData[myFeedPropertyIndex].favorite = true;
1809                                myFeed.setMlsData(myFeedData);
1810                            }
1811
1812                            //update property in update search
1813                            let propertyCard = document.getElementById(blossorId);
1814                            let propertyCardMLS = JSON.parse(propertyCard.getAttribute('mls'));
1815                            propertyCardMLS.favorite = true;
1816                            propertyCard.setAttribute('mls', JSON.stringify(propertyCardMLS));
1817                        })
1818
1819                        copyPropertyToCollectionModal.hide();
1820                    }); 
1821                }).subscribe();
1822
1823                Pubsub.subscription('on_new_collection_saved', (e) => {         
1824                    if(e.type == 'save'){
1825                         
1826                        let people = [{ personUUID: page.lead.brivity_uuid, role: "lead" }];
1827                        let properties = [""];
1828                        collectionsService.createCollection(e.name, e.description,  page.lead.brivity_uuid, people, properties).then((e) => {
1829                            
1830                            let collections =  copyPropertyToCollectionModal.getCollectionData();
1831                            let newCollection = {
1832                                collection_title: e.data.collectionName,
1833                                id: e.data.collectionUUID,
1834                                propertiesImages: [],
1835                            }
1836                            collections.unshift(newCollection);
1837                            copyPropertyToCollectionModal.setCollectionData(collections);
1838                            
1839                            collectionModal.hide();
1840                             
1841                        }).catch((e) => {
1842                            collectionModal.showError(true)
1843                        });
1844                    }
1845                    
1846                }).subscribe();
1847
1848                Pubsub.subscription('show_new_collection_modal', (e) => {
1849                    collectionModal.show();
1850                }).subscribe();
1851
1852                window.addEventListener( "hashchange", function( event ) {
1853                    if(window.location.hash == ''){
1854                        Pubsub.publish("top_header_back_pressed");
1855                    }
1856                });
1857
1858                let modalBackdrop = document.getElementsByClassName('center-modal');
1859                for(let i = 0; i < modalBackdrop.length; i++){
1860                    modalBackdrop[i].addEventListener('click', (e) => {
1861                        if(e.target == modalBackdrop[i]){
1862                            modalBackdrop[i].style.display = 'none';
1863                        }
1864                    });
1865                }
1866
1867                document.addEventListener("click", (e) => {
1868
1869                    const elements = document.querySelectorAll("[show_menu]");
1870                    elements.forEach((el) => {
1871                        el.setAttribute("show_menu", "false");
1872                    });
1873
1874                //  document.getElementById("c2dfac72-6233-4e8d-b0d2-f44e4240ebb4")?.setAttribute("show_menu", "false");
1875                });
1876            })();
1877        }
1878    })
1879
1880</script>
1880 <div id="myportal-page" style="display:none"> <div style="position:relative; width:100%;"> <div style="position:absolute;z-index:10; top:0; bottom:0; "> <place-menu></place-menu> </div> <div class="collection-page" style="flex:1;"> <div class="page-width-parent"> <place-pagesubheader title="SAVED SEARCHES" show_top_header="false" button_title="Create New" button_icon="plus" show_menu="false" menu_items='[{"icon":"bell", "text": "Manage Alerts"},{ "icon": "share-2", "text": "Share Saved Search" },{ "icon": "trash", "text": "Delete Saved Search" }]' ></place-pagesubheader> <div style="margin: 24px 0"> <place-actioncard style="display:none;" id="save-search-block" title="Save Search" sub_title="Save your customized searches and be the first to know about new properties" button_text="Search" button_icon="search" button_icon_fill="#fff" card_width="315" > </place-actioncard> </div> <div id="saved-searches" style="display:flex; flex-wrap:wrap; margin: 24px 0;"> </div> <div id="updated-listings-section" style="display:none; flex-wrap:wrap;"> <div id="updated-listings" style="display:flex;flex-wrap:wrap;gap:24px;margin-bottom:24px;"> </div> </div> <div style="margin-bottom:32px"> <place-gethomeapp></place-gethomeapp> </div> <div class="my-feed-parent"> <place-myfeedblock style="display:none" display_menu="false"></place-myfeedblock> </div> </div> </div> </div> <place-basicmodal id="delete-saved-search-modal" class="center-modal" style="display:none" title="Delete Saved Search" sub_title="Deleting a saved search will permanently remove it from your account and you will be unsubscribed to any connected listing alerts. Are you sure you would like to delete this search?" title_icon="trash" primary_button_text="Delete" tertiary_button_text="Cancel" ></place-basicmodal> <place-basicmodal id="share-saved-search-modal" class="center-modal" style="display:none" title="Share Saved Search" sub_title="Copy link to share search." title_icon="share-2" primary_button_text="Copy Link" ></place-basicmodal> <place-basicmodal id="share-saved-property-modal" class="center-modal" style="display:none" title="Share Property" sub_title="Copy link to share property." title_icon="share" primary_button_text="Copy Link" ></place-basicmodal> <place-copycollectionmodal class="center-modal" style="display:none" collections='[]' ></place-copycollectionmodal> <place-collectionpopup class="center-modal" style="display:none" ></place-collectionpopup> <place-frequencymodal class="center-modal" style="display:none" title="Manage Listing Alerts" title_icon="bell" menu_items='[{ "text": "Daily" },{ "text": "Twice Daily" }, { "text": "Multiple Times Per Day" },{ "text": "Weekly" },{ "text": "Every 2 Weeks" },{ "text": "Monthly" }]' selected_menu_item="Never" > </place-frequencymodal> </div> </div> <footer id="footer-9n" data-selector="footer" style="outline: none; cursor: inherit;"> <div class="container"> <div class="row"> <div class="col-md-2"> <div class="render-menu hot-nav animated fadeInUp wow animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated" style="visibility: visible; animation-name: fadeInUp;"> <ul class="" style="outline: none; cursor: inherit;"> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a href="/index" style="outline: none; cursor: inherit;">Home</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a href="/search" style="outline: none; cursor: inherit;">Listings</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a href="/buying" style="outline: none; cursor: inherit;">Buying</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a class="white" href="/selling" style="outline: none; cursor: inherit;">Selling</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a href="/financing" style="outline: none; cursor: inherit;">Financing</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a href="/homevalue" style="outline: none; cursor: inherit;">Home Value</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a href="/realestateagent/search" style="outline: none; cursor: inherit;">Who We Are</a> </li> <li class="nav-item" data-selector="li" style="outline: none; cursor: inherit;"> <a href="/connect" style="outline: none; cursor: inherit;">Connect</a> </li> </ul> </div> </div>
1880 <div class="col-md-7 col-md-offset-1 animated fadeInUp wow animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated" animation-delay="0.1s" style="visibility: visible; animation-name: fadeInUp;"> <h3 class="white" id="text-3" style="font-size: 23pt; color: rgb(255, 255, 255) !important; outline: none; cursor: inherit;" data-selector="h1, h2, h3, h4, h5, h6">Let's talk real estate.</h3> <form id="form-contact1" action="" class="form-contact"> <input type="hidden" name="tags" value="footer_signup"> <div class="row margin-bottom-0"> <div class="col-sm-6" style="margin-bottom: 20px;"> <div class="form-group"> <input name="contact1_fname" id="contact1_fname" placeholder="First Name" class="form-control contact_fname" type="text" required="" style='background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAfBJREFUWAntVk1OwkAUZkoDKza4Utm61iP0AqyIDXahN2BjwiHYGU+gizap4QDuegWN7lyCbMSlCQjU7yO0TOlAi6GwgJc0fT/fzPfmzet0crmD7HsFBAvQbrcrw+Gw5fu+AfOYvgylJ4TwCoVCs1ardYTruqfj8fgV5OUMSVVT93VdP9dAzpVvm5wJHZFbg2LQ2pEYOlZ/oiDvwNcsFoseY4PBwMCrhaeCJyKWZU37KOJcYdi27QdhcuuBIb073BvTNL8ln4NeeR6NRi/wxZKQcGurQs5oNhqLshzVTMBewW/LMU3TTNlO0ieTiStjYhUIyi6DAp0xbEdgTt+LE0aCKQw24U4llsCs4ZRJrYopB6RwqnpA1YQ5NGFZ1YQ41Z5S8IQQdP5laEBRJcD4Vj5DEsW2gE6s6g3d/YP/g+BDnT7GNi2qCjTwGd6riBzHaaCEd3Js01vwCPIbmWBRx1nwAN/1ov+/drgFWIlfKpVukyYihtgkXNp4mABK+1GtVr+SBhJDbBIubVw+Cd/TDgKO2DPiN3YUo6y/nDCNEIsqTKH1en2tcwA9FKEItyDi3aIh8Gl1sRrVnSDzNFDJT1bAy5xpOYGn5fP5JuL95ZjMIn1ya7j5dPGfv0A5eAnpZUY3n5jXcoec5J67D9q+VuAPM47D3XaSeL4AAAAASUVORK5CYII="); background-repeat: no-repeat; background-attachment: scroll; background-size: 16px 18px; background-position: 98% 50%; cursor: auto;'> </div> </div> <div class="col-sm-6" style="margin-bottom: 20px;"> <div class="form-group"> <input name="contact1_lname" id="contact1_lname" placeholder="Last Name" class="form-control contact_lname" type="text" required=""> </div> </div> </div> <div class="row margin-bottom-0"> <div class="col-sm-6" style="margin-bottom: 20px;"> <div class="form-group"> <input name="contact1_email" id="contact1_email" placeholder="Email Address" class="form-control contact_email" type="email" required=""> </div> </div> <div class="col-sm-6" style="margin-bottom: 20px;"> <div class="form-group"> <input name="contact1_phone" id="contact1_phone" placeholder="Phone Number" class="form-control contact_phone" type="tel" required=""> </div> </div> </div> <div class="row margin-bottom-0"> <div class="col-sm-12" style="margin-bottom: 20px;"> <i class="fa fa-caret-down" style="position: absolute; top: 13px; right: 30px; font-size: 14px; outline: none; cursor: inherit;" data-selector=".fa"></i> <select name="lead_type" style="width: 100%; height: 40px; padding-left: 12px; font-size: 14px; border-radius: 5px !important; -webkit-appearance: none; -webkit-border-radius: 0px;"> <option value="buyer">I'm interested in buying a home</option> <option value="seller">I'm interested in selling a home</option> <option value="seller/buyer">I'm interested in buying and selling</option> <option value="tenant">I'm interested in finding a home to rent</option> <option value="recruit">I'm interested in a real estate career</option> <option value="n/a">Other reason to contact an agent</option> </select> </div> </div> <div class="row margin-bottom-0"> <div class="col-sm-12" style="margin-bottom: 20px;"> <textarea name="contact1_message" id="contact1_message" class="form-control contact_message" rows="3" placeholder="Your Message"></textarea> </div> </div> <div class="text-right"> <input type="text" id="contact1_robot_field" name="contact1_robot_field" style="display: none;"><button type="submit" class="btn btn-footer" data-selector="a.btn, button.btn, button" style="outline: none; cursor: inherit;">Send Us A Message</button> </div> <div id="honeypot-div"> <input name="age_required" id="age_required" value="" type="text" style="display: none;"> </div> </form> </div> <div class="col-md-2 col-md-offset-1 animated fadeInUp wow animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated" id="logo-group" animation-delay="0.2s" style="visibility: visible; animation-name: fadeInUp;"> <img data-selector="img" style="border-style: none; outline: none; cursor: inherit; margin-bottom: 10px; display: block; margin-left: auto; margin-right: auto;" class="ftr-logo margin-bottom-40" src="https://images.brivityidx.com/assets/images/uploads/104558/Anthony_Realtors_.png" alt="Keller Williams Logo"> <img class="ftr-logo" src="https://images.brivityidx.com/assets/images/uploads/4595/powered-by-place-logo-white.png" alt="Powered by PLACE Logo" data-selector="img" style="border-style: none; margin-bottom: 10px; display: block; margin-left: auto; margin-right: auto; outline: none; cursor: inherit;"> <div class="text-left" id="text-1" style="outline: medium none; cursor: inherit;"> <ul style="list-style-type: none; outline: none; cursor: inherit;"> <br> <li data-selector="li" style="outline: none; cursor: inherit;"> <span class="agent_address_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading">4039 S Wayne Ave</span> <br><span class="agent_city_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading">Fort Wayne</span>, <span class="agent_state_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading">IN</span> <span class="agent_zip_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading">46807</span> </li> <li data-selector="li" style="outline: none; cursor: inherit;"> <a class="agent_phone_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading" href="tel:2603084335" src="tel:" style="outline: none; cursor: inherit;">(260) 308-4335</a> </li> </ul> </div> </div> </div> <div class="row ftr-anchor animated fadeInUp wow animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated animated" style="visibility: visible; animation-name: fadeInUp;"> <div class="col-sm-6 anchor-col no-padding editContent" style="outline: none; cursor: inherit;" data-selector=".editContent"> <p class="no-margin" style="outline: none; cursor: inherit;" data-selector="p"><span class="get_this_year">2023</span> © <b>David Brough | Anthony REALTORS | </b><a href="https://www.place.com/" target="_blank" style="font-weight: bold; outline: none; cursor: inherit;">PLACE</a></p> <p style="margin: 10px 0px; outline: none; cursor: inherit;" data-selector="p"> <img src="https://images.brivityidx.com/assets/images/uploads/1428/Equal-Housing-Realtor_gray50.png" alt="Equal Housing | Realtor" style="width: 50px; outline: none; cursor: inherit;" data-selector="img">   Each office is independently owned and operated. </p> </div> <div class="col-sm-6 anchor-col no-padding"> <ul class="list-inline social" style="outline: none; cursor: inherit;"> <li data-selector="li" style="outline: none; cursor: inherit;"> <a class="agent_facebook_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading" href="https://www.facebook.com/anthonyrealtors" target="_blank" style="outline: none; cursor: inherit;"> <svg alt="Facebook Icon" viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="0" fill="currentColor" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1"> <path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path> </svg></a> </li> <li data-selector="li" style="outline: none; cursor: inherit;"> <a class="agent_twitter_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading" href="https://twitter.com/" target="_blank" style="outline: none; cursor: inherit;"> <svg alt="Twitter Icon" viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="0" fill="currentColor" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1"> <path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"> </path> </svg></a> </li> <li data-selector="li" style="outline: none; cursor: inherit;"> <a class="agent_linkedin_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading" href="https://www.linkedin.com/" target="_blank" style="outline: none; cursor: inherit;"> <svg alt="LinkedIn Icon" viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="0" fill="currentColor" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1"> <path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"> </path> <rect x="2" y="9" width="4" height="12"></rect> <circle cx="4" cy="4" r="2"></circle> </svg></a> </li> <li data-selector="li" style="outline: none; cursor: inherit;"> <a class="agent_instagram_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading" href="https://www.instagram.com/" target="_blank" style="outline: none; cursor: inherit;"> <svg alt="Instagram Icon" viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1"> <rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect> <path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path> <line x1="17.5" y1="6.5" x2="17.5" y2="6.5"></line> </svg></a> </li> <li data-selector="li" style="outline: none; cursor: inherit;"> <a class="agent_youtube_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading" href="https://www.youtube.com/" target="_blank" style="outline: none; cursor: inherit;"> <svg alt="YouTube Icon" viewbox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1"> <path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"> </path> <polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"></polygon> </svg></a> </li> <li data-selector="li" style="outline: none; cursor: inherit;"> <a class="agent_pinterest_dynamic dynamic_loading dynamic_loading dynamic_loading dynamic_loading dynamic_loading" href="https://www.pinterest.com/" target="_blank" style="outline: none; cursor: inherit;"> <svg alt="Pinterest Icon" width="24" height="24" viewbox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12ZM12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1ZM12.5494 5.07703C15.8009 5.07703 17.941 7.39568 17.941 9.88451C17.941 13.1764 16.0835 15.6358 13.3465 15.6369C12.4262 15.6369 11.5613 15.147 11.2652 14.5905C11.2652 14.5905 10.7711 16.524 10.666 16.8971C10.4896 17.5278 10.1493 18.1574 9.83274 18.656C9.38281 19.2234 8.86387 18.8023 8.80169 18.2851C8.78133 17.7089 8.80393 17.027 8.95206 16.4061C9.11487 15.7253 10.0476 11.8332 10.0476 11.8332C10.0476 11.8332 9.77511 11.2975 9.77511 10.5054C9.77511 9.26149 10.5066 8.33296 11.4178 8.33296C12.1922 8.33296 12.5664 8.90687 12.5664 9.5932C12.5664 10.0824 12.3646 10.7265 12.1521 11.4045C12.0313 11.7897 11.9072 12.1859 11.8146 12.5709C11.6009 13.4612 12.2668 14.1868 13.1588 14.1868C14.7733 14.1868 15.8597 12.1453 15.8597 9.72519C15.8597 7.88663 14.6025 6.50966 12.3154 6.50966C9.73212 6.50966 8.12222 8.40819 8.12222 10.5282C8.12222 11.2593 8.34042 11.7743 8.68412 12.1748C8.84124 12.3592 8.86387 12.4323 8.8062 12.6429C8.78317 12.7299 8.74315 12.8868 8.70577 13.0333C8.67708 13.1457 8.64994 13.2521 8.63324 13.3161C8.57671 13.5278 8.40146 13.6042 8.207 13.5256C7.01656 13.0477 6.46259 11.7634 6.46259 10.3199C6.46259 7.93578 8.50209 5.07703 12.5494 5.07703Z" fill="currentColor"></path> </svg></a> </li> </ul> </div> </div> </div> </footer> </div> <section id="seo-anchor"> <div class="container"> <ul class="powered-by"> <li>Powered by <a class="pb-vendor" href="https://www.brivity.com/"> Brivity</a></li> <li class="pb-admin-login"><a href="https://login.brivityidx.com/login"><span class='pb-admin-login-text'>Admin Log In</span></a></li> </ul> <ul class="seo-anchor-links"> <li><a href="/privacy_policy">Privacy Policy</a></li> <li><a href="/tos">DMCA &amp; Terms of Service</a></li> <li><a id='sitemapUrl' href='/sitemap' style='display: inline;'>Sitemap</a></li> </ul> </div> </section> <input type="hidden" id="hchatbot_settings" data-chatbot-version="1" value="{&quot;chat_position&quot;:&quot;right&quot;,&quot;call_to_action_text&quot;:&quot;Hi there! Please let us know if you have any questions and an agent will reach out to you as soon as possible.&quot;,&quot;initial_message&quot;:&quot;Enter your question below and an agent will be in touch with you.&quot;,&quot;tags&quot;:&quot;IDX Chat&quot;,&quot;version&quot;:&quot;1&quot;}">
1881<!-- chatbot v1 -->
1882<!-- Chatbot drawer container -->
1883<div class="chatbot-drawer-container loading">
1884    <div class="chatbot-content-wrapper">
1885        <div class="chatbot-outside-content">
1886            <div class="chatbot-bubble-message-container cb-hide">
1887                <img src="https://cdn.brivity.com/images/people/47675483/0eb6a891b5a203ed98f7eaa275998119280e6792-original.png?1777237751" class="chatbot-agent-img" alt="Agent profile image in chat bubble"/>
1888                <div id="call-to-action" class="bubble-message"></div>
1889                <button type="button" class="chatbox-bubble-close" data-dismiss="modal" aria-label="Close">
1890                    <span aria-hidden="true">&times;</span>
1891                </button>
1892            </div>
1893            <button id="chatbot-open-btn" class="chatbot-open-btn bg-prmry" aria-label="Chatbot Open Button">
1894                <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
1895                    <path d="M20.8 6.35501V16C20.8 17.765 19.365 19.195 17.6 19.195L11.2 19.2L5.755 22.28C5.645 22.365 5.52 22.4 5.4 22.4C5.09 22.4 4.8 22.155 4.8 21.8V19.2H3.2C1.4375 19.2 0 17.765 0 16V6.35501C0 4.63751 1.4375 3.20001 3.2 3.20001H17.6C19.365 3.20001 20.8 4.63751 20.8 6.35501ZM7.2 18.705L10.57 16.8H17.6C18.035 16.8 18.4 16.44 18.4 16V6.40001C18.4 5.96251 18.035 5.60001 17.6 5.60001H3.2C2.7625 5.60001 2.4 5.96251 2.4 6.40001V16C2.4 16.44 2.7625 16.8 3.2 16.8H7.2V18.705ZM12.8 22.4V20.8H15.2V22.4C15.2 22.835 15.56 23.2 16 23.2H21.43L24.8 25.105V23.2H28.8C29.235 23.2 29.6 22.835 29.6 22.4V12.8C29.6 12.365 29.235 12 28.8 12H22.4V9.60001H28.8C30.565 9.60001 32 11.035 32 12.755V22.4C32 24.165 30.565 25.6 28.8 25.6H27.2V28.2C27.2 28.555 26.91 28.8 26.6 28.8C26.48 28.8 26.355 28.765 26.245 28.68L20.8 25.6L16 25.595C14.24 25.595 12.8 24.165 12.8 22.4Z" fill="white"/>
1896                </svg>
1897            </button>
1898        </div>
1899        <div class="chatbot-drawer">
1900            <div class="chatbot-header bg-prmry">
1901                <div class="chatbot-agent-info">
1902                    <img src="https://cdn.brivity.com/images/people/47675483/0eb6a891b5a203ed98f7eaa275998119280e6792-original.png?1777237751" class="chatbot-agent-img" alt="Agent profile image in chat header"/>
1903                    <div class="chatbot-agent">
1904                        <h3 class="chatbot-agent-name">David Brough</h3>
1905                        <h4><span class="chatbot-agent-title"></span> | <span class="chatbot-agent-company">Anthony REALTORS | PLACE</span></h4>
1906                    </div>
1907                    <a id="chatbot-agent-phone" style="display: none;">12603084335</a>
1908                </div>
1909                <button id="close-chatbot-drawer" type="button" class="chatbox-modal-close" data-dismiss="modal" aria-label="Close">
1910                    <span aria-hidden="true">&times;</span>
1911                </button>
1912            </div>
1913            <div class="chatbot-body">
1914                <div class="chatbot-message-container">
1915                    <img src="https://cdn.brivity.com/images/people/47675483/0eb6a891b5a203ed98f7eaa275998119280e6792-original.png?1777237751" class="chatbot-agent-img" alt="Agent profile image in message"/>
1916                    <h4 id="initial_message" class="chatbot-chat-messages not-loaded"></h4>
1917                    <div class="chatbot-chat-messages loading">
1918                        <span class="typing-indicator">
1919                            <span></span>
1920                            <span></span>
1921                            <span></span>
1922                        </span>
1923                    </div>
1924                </div>
1925                <form id="chatbotForm" class="chatbot-form">
1926                    <input type="name" id="chatbot_fullname" class="chatbox-form-control no-native-focus" placeholder="Full Name"
1927                        pattern="^[A-Za-z'\- ]+ [A-Za-z'\- ]+$"
1928                        required />
1929                    <input type="tel" id="chatbot_phone" class="chatbox-form-control no-native-focus" placeholder="Phone" required />
1930                    <input type="email" id="chatbot_email" class="chatbox-form-control no-native-focus" placeholder="Email"
1931                        pattern="^[^@\s]+@[^@\s]+\.[^@\s]+$"
1932                        required />
1933                    <textarea id="chatbot_message" class="chatbox-form-control chatbot-message" rows="5" name="notes" placeholder="Any Comments or Questions"></textarea>
1934                    <div class="chatbot-consent-container">
1935                        <div class="chatbot-toggle">
1936                                                            By proceeding and clicking the sign up button, you consent to receive calls and texts (SMS/MMS) including marketing and promotional communications, from <span class="agent_name_dynamic"></span>, its affiliates, and agents or vendors acting on their behalf. These 
1936communications may be delivered using an automatic telephone dialing system or by using an artificial or prerecorded voice. Message and data rates may apply. To opt out of text messages, reply STOP. Your consent is not required as a condition of any purchase. By continuing, you also agree to our <a class="opt-out-href" href="/tos">Terms of Use</a> and <a class="opt-out-href" href="/privacy_policy">Privacy Policy</a>.
1937                            </div>
1938                    </div>
1939                    <input type="hidden" id="chatbot_tags">
1940                                    </form>
1941            </div>
1942            <div class="chatbot-footer">
1943                <button type="submit" form="chatbotForm" class="chatbot-send bg-prmry chatbot-btn-disabled" data-dismiss="modal" aria-label="Close" disabled>
1944                    Send 
1945                    <span aria-hidden="true"> 
1946                        <svg class="chatbot-btn-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
1947                            <g clip-path="url(#clip0_2435_997)">
1948                                <path d="M14.6667 1.33331L7.33337 8.66665" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
1949                                <path d="M14.6667 1.33331L10 14.6666L7.33337 8.66665L1.33337 5.99998L14.6667 1.33331Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
1950                            </g>
1951                            <defs>
1952                                <clipPath id="clip0_2435_997">
1953                                    <rect width="16" height="16" fill="white"/>
1954                                </clipPath>
1955                            </defs>
1956                        </svg>
1957                    </span>
1958                </button>
1959            </div>
1960        </div>
1961    </div>
1962</div> <style>
1963                                .signup-consent-checkbox-section {
1964                                    display: none;
1965                                    flex-direction:column;
1966                                    align-items:flex-start;
1967                                    padding: 6px 0;
1968                                }
1969
1970                                .signup-consent-checkbox-section .checkbox {
1971                                    display:flex; 
1972                                    align-items:flex-start; 
1973                                    justify-content:center; 
1974                                    gap:8px; 
1975                                    padding:0 !important;
1976                                }
1977
1978                                .signup-consent-checkbox-section .checkbox input {
1979                                    position:unset;
1980                                    margin:2px 0 0 0 !important;
1981                                }
1982
1983                                .signup-consent-checkbox-section .checkbox span {
1984                                    color: #666666;
1985                                    font-size: 14px;
1986                                    font-weight: 400;
1987                                    line-height:16px;
1988                                }
1989
1990                                .signup-verbage {
1991                                    text-align:center;
1992                                    font-size:10px;
1993                                    line-height:16px;
1994                                }
1995
1996                                .signup-verbage span {
1997                                   color: #8C8C8C; 
1998                                   font-weight:600; 
1999                                }
2000
2001                                .signup-verbage a {
2002                                    color:#5386E4 !important;
2003                                    font-weight:400;
2004                                }
2005
2006                                .signup-verbage .twilio-enabled-verbage {
2007                                    display:none;
2008                                }
2009
2010                                
2011                                
2012                            </style> <div id="modal-mount" data-modal-bundle="https://cdn1.brivityidx.com/assets/modals/v1/all.html?ck=1790798866"></div>
2012 <div id="credential_picker_container_centered"> <div id="credential_picker_header_bar"> <p><button class="signOrLogBtn" onclick="showSignupModal();">Sign up</button> or <button class="signOrLogBtn" onclick="showLoginModal();">Login</button> another way</p> </div> <div id="credential_picker_header_bar_separator"></div> </div> <place-getyourhomecta id="contact_modal" style="display:none; justify-content: center; align-items: center; position:fixed; background-color:rgba(0,0,0,0.4); left:0; top:0; right:0; bottom:0; z-index: 100;" interest_items='[{"text":"Looking to sell ASAP"},{"text":"Looking to sell (1-3 months)"},{"text":"Looking to sell (3-6 months)"}, {"text":"Looking to sell (6-12 months)"},{"text":"Looking to sell (12+ months)"}, {"text":"Just curious"}]' > </place-getyourhomecta> <place-generictoast appear_from_both="true" container_style="right-1/2 z-200"></place-generictoast> 
2012<script>
2013            document.addEventListener("DOMContentLoaded", () => {
2014                class Toast {
2015                    constructor() {
2016                        this.element = document.querySelector('place-generictoast');
2017                    }
2018
2019                    show(message, error = false, link) {
2020                        var dispatch = function () {
2021                            window.dispatchEvent(
2022                                new CustomEvent("ShowToast", {
2023                                    detail: {
2024                                        text: message,
2025                                        error: error,
2026                                        link: link,
2027                                    },
2028                                })
2029                            );
2030                        };
2031                        if (window.sitebuilderPlaceComponents && window.sitebuilderPlaceComponents.ensureLoaded) {
2032                            window.sitebuilderPlaceComponents
2033                                .ensureLoaded('place-generictoast')
2034                                .then(dispatch)
2035                                .catch(function (err) {
2036                                    console.warn('toast.show fallback (web-components unavailable):', message, err);
2037                                });
2038                        } else {
2039                            dispatch();
2040                        }
2041                    }
2042                }
2043
2044                window.toast = new Toast();
2045            });
2046        </script>
2046 
2046<script src="https://cdn.jsdelivr.net/npm/@turf/[email protected]/turf.min.js"></script>
2046 
2046<script src="https://maps.googleapis.com/maps/api/js?libraries=geocoding,places,marker,drawing&key=AIzaSyAjpuNg6WGCMV5rzoJcIP2QmMTVto6hYmc&map_ids=85c127b7bf0255d9"></script>
2046 
2046<script src="https://cdn1.brivityidx.com/assets/js/build.min.js?ck="></script>
2046 
2046<script src="https://cdn1.brivityidx.com/assets/js/top_bar_v2.min.js?ck="></script>
2046 
2046<script src="https://cdn1.brivityidx.com/assets/js/global_js.min.js?ck=1790798865"></script>
2046 
2046<script>deferScript("https://cdn1.brivityidx.com/assets/js/global_js_defer.min.js?ck=1790798865", 5000);</script>
2046 
2046<script>
2047            function shouldLoadChatbotImmediately() {
2048                const settingsEl = document.getElementById('hchatbot_settings');
2049                if (!settingsEl) return false;
2050
2051                const version = Number(settingsEl.dataset.chatbotVersion);
2052                let isInitialized = false;
2053
2054                try {
2055                    const session = JSON.parse(sessionStorage.getItem('cbSession') || '{}');
2056                    isInitialized = session.chatbotInitialized === true;
2057                } catch (e) {}
2058
2059                return version > 1 && isInitialized;
2060            }
2061        </script>
2061 
2061<script>document.getElementById('hchatbot_settings') && Number(document.getElementById('hchatbot_settings').dataset.chatbotVersion) > 1 && deferScript("https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/9.0.6/signalr.min.js", 0);</script>
2061 
2061<script>document.getElementById('hchatbot_settings') && deferScript(Number(document.getElementById('hchatbot_settings').dataset.chatbotVersion) > 1 ? "https://cdn1.brivityidx.com/assets/js/chatbot_v2.min.js?ck=1790798864" : "https://cdn1.brivityidx.com/assets/js/chatbot.min.js?ck=1790798864", shouldLoadChatbotImmediately() ? 50 : 5000);</script>
2061 
2061<script type="text/javascript" src="https://cdn1.brivityidx.com/assets/js/jquery.geocomplete.min.js"></script>
2061<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.3/js/bootstrapValidator.min.js"></script>
2061<script type="text/javascript" src="https://cdn1.brivityidx.com/assets/js/menu2.js"></script>
2061<script type="text/javascript" src="https://cdn1.brivityidx.com/assets/js/member_area_components.js"></script>
2061<script type="text/javascript" src="https://cdn1.brivityidx.com/assets/js/update_agent_info.min.js"></script>
2061 
2061<script src="https://mobile-component-services-library.s3.amazonaws.com/collections_service.min.js?ck=1"></script>
2061 
2061<script src="https://mobile-component-services-library.s3.amazonaws.com/messaging_service.min.js?ck=1"></script>
2061 
2061<script>$(document).ready(function(){function changePlaceholder(){if($(window).width()<=556){$("#home_value_my_portal_search_address").attr("placeholder","Address")}else if($(window).width()>556){$("#home_value_my_portal_search_address").attr("placeholder","Enter Property Address")}}
2062$(window).resize(changePlaceholder).trigger('resize')})</script>
2062 
2062<script>$(document).ready(function(){$("ul.seo-anchor-links li:nth-of-type(4) a").attr("href","/search")})</script>
2062 
2062<script>$(document).ready(function(){$("#sitemap-listings > div.container > div > div.col-xs-12.col-md-12.col-lg-4.col-lg-push-8.seo-intro > a").attr("href","/search")})</script>
2062 
2062<script>$('.menu-toggle').click(function(){$('#slide-out-nav, .slide-out-nav-overlay').addClass('open')});$('.close-nav, .slide-out-nav-overlay').click(function(){$('#slide-out-nav, .slide-out-nav-overlay').removeClass('open')})</script>
2062 
2062<script>$("#slide-out-nav > div.render-menu > ul").append('<li class="nav-item"><a style="color:#fff!important; border-radius:5px; max-width:250px; margin:0 auto;" id="top-nav-marketing-plan" class="nav-link-color" data-toggle="modal" data-target="#getmarketingplan">Get Marketing Plan</a></li>')</script>
2062 
2062<script>$("#contact1_availability_date").click(function(){$(this).prop('type','date')})</script>
2062 
2062<script>$(document).ready(function(){if($('#slide-out-nav .render-menu ul li a:contains("ABOUT PLACE")')){$('#slide-out-nav .render-menu ul li a:contains("ABOUT PLACE")').attr('target','_blank')}})</script>
2062 
2062<script>$("a.pb-vendor").attr({"target":"_blank"})</script>
2062 
2062<script>$('#seo-anchor a.pb-vendor').html('<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 822.81 228.05"><defs><style>.cls-1{fill:#5f605f;}.cls-2{fill:#f3714f;}.cls-3{fill:#5bc5c4;}.cls-4{fill:#fdfeff;}.cls-5{fill:#376e7b;}</style></defs><path class="cls-1" d="M373.61,341.21A61.3,61.3,0,0,1,386,342.42a30,30,0,0,1,10.42,4.14,22,22,0,0,1,7.21,7.71,23.86,23.86,0,0,1,2.71,11.92A24.26,24.26,0,0,1,405,374a23.82,23.82,0,0,1-3.64,6.85,23.38,23.38,0,0,1-5.57,5.21,20.81,20.81,0,0,1-7.21,3v.29q9.86,1.29,15.7,8.07t5.85,16.77a40.79,40.79,0,0,1-.42,5.49,27,27,0,0,1-1.72,6.28,26.28,26.28,0,0,1-3.71,6.36,22,22,0,0,1-6.49,5.49,39.23,39.23,0,0,1-10,3.86,58.63,58.63,0,0,1-14.21,1.49H330.5V341.21Zm0,44.67a33.93,33.93,0,0,0,10.14-1.35,21.17,21.17,0,0,0,7.13-3.71,15.28,15.28,0,0,0,4.29-5.5,16,16,0,0,0,1.42-6.71q0-19.12-23-19.13h-33.4v36.4Zm0,49a54.59,54.59,0,0,0,10.28-.93,23.53,23.53,0,0,0,8.56-3.36,17.09,17.09,0,0,0,5.86-6.49,21.75,21.75,0,0,0,2.14-10.21q0-9.84-6.92-14.77t-19.92-4.93h-33.4v40.69Z" transform="translate(-9.57 -307.21)"/><path class="cls-1" d="M466.68,341.21a44.11,44.11,0,0,1,11.92,1.57,28.7,28.7,0,0,1,9.85,4.78,23,23,0,0,1,6.71,8.28,26.74,26.74,0,0,1,2.5,11.92,28.63,28.63,0,0,1-5,16.84q-5,7.14-14.85,9.13V394a22.8,22.8,0,0,1,8.28,2.64,16.71,16.71,0,0,1,5.36,4.93,20.35,20.35,0,0,1,3,6.92,50.57,50.57,0,0,1,1.22,8.49c.09,1.72.19,3.81.28,6.28s.29,5,.57,7.5a46.45,46.45,0,0,0,1.36,7.13,13.54,13.54,0,0,0,2.5,5.21H489.66a12.34,12.34,0,0,1-1.35-3.49,31,31,0,0,1-.72-4.29c-.14-1.47-.26-2.92-.35-4.35s-.2-2.66-.29-3.71q-.29-5.43-.93-10.78a29.53,29.53,0,0,0-2.71-9.56,16.84,16.84,0,0,0-6-6.78q-3.93-2.57-10.78-2.29H429.71v45.25H420V341.21ZM466,389.6a26.16,26.16,0,0,0,8.42-1.36,20.84,20.84,0,0,0,7-3.93,19.3,19.3,0,0,0,4.79-6.21,18.85,18.85,0,0,0,1.78-8.35q0-9.42-5.43-14.84T466,349.48H429.71V389.6Z" transform="translate(-9.57 -307.21)"/><path class="cls-1" d="M522.78,341.21V443.12h-9.71V341.21Z" transform="translate(-9.57 -307.21)"/><path class="cls-1" d="M546,341.21l33.12,91.21h.29l32.83-91.21h10.27L584.73,443.12H573.45L535.77,341.21Z" transform="translate(-9.57 -307.21)"/><path class="cls-1" d="M642,341.21V443.12h-9.71V341.21Z" transform="translate(-9.57 -307.21)"/><path class="cls-1" d="M735.89,341.21v8.27H700.35v93.64h-9.71V349.48h-35.4v-8.27Z" transform="translate(-9.57 -307.21)"/><path class="cls-1" d="M742.45,341.21h11.42l33.55,51.67,33.4-51.67h11.56l-40.25,60v42h-9.71v-42Z" transform="translate(-9.57 -307.21)"/><path class="cls-2" d="M350.67,470q7,0,10.54,3.57t3.57,10q0,6.45-3.57,10.06t-10.54,3.54H336.62V516H330.5V470Zm-2.06,22q5.22.07,7.64-2.12a8.1,8.1,0,0,0,2.41-6.32,8,8,0,0,0-2.41-6.28q-2.42-2.16-7.64-2.16h-12V492Z" transform="translate(-9.57 -307.21)"/><path class="cls-2" d="M380,470v40.85h24.35V516H373.87V470Z" transform="translate(-9.57 -307.21)"/><path class="cls-2" d="M430.57,470l18,46h-6.76l-5-13.85H417.3L412.14,516h-6.25l17.91-46Zm4.25,27-7.67-21.46H427L419.23,497Z" transform="translate(-9.57 -307.21)"/><path class="cls-2" d="M443.84,475.16V470h36.79v5.15H465.3V516h-6.12V475.16Z" transform="translate(-9.57 -307.21)"/><path class="cls-2" d="M517.55,470v5.15h-24.1v14.63h21.14v5.15H493.45V516h-6.12V470Z" transform="translate(-9.57 -307.21)"/><path class="cls-2" d="M524.73,484a22.84,22.84,0,0,1,4.16-7.7,20.2,20.2,0,0,1,6.89-5.35,24,24,0,0,1,19.2,0,20.23,20.23,0,0,1,6.9,5.35A22.84,22.84,0,0,1,566,484a30.36,30.36,0,0,1,0,18.1,22.84,22.84,0,0,1-4.16,7.7,19.91,19.91,0,0,1-6.9,5.32,24.49,24.49,0,0,1-19.2,0,19.88,19.88,0,0,1-6.89-5.32,22.84,22.84,0,0,1-4.16-7.7,30.36,30.36,0,0,1,0-18.1Zm5.64,15.91a18.51,18.51,0,0,0,2.84,6.09,14.38,14.38,0,0,0,5,4.35,16.69,16.69,0,0,0,14.43,0,14.38,14.38,0,0,0,5-4.35,18.51,18.51,0,0,0,2.84-6.09,26.59,26.59,0,0,0,0-13.72,18.51,18.51,0,0,0-2.84-6.09,14.59,14.59,0,0,0-5-4.35,16.69,16.69,0,0,0-14.43,0,14.59,14.59,0,0,0-5,4.35,18.51,18.51,0,0,0-2.84,6.09,26.59,26.59,0,0,0,0,13.72Z" transform="translate(-9.57 -307.21)"/><path class="cls-2" d="M598.16,470q6.57,0,10.27,3.22a11.1,11.1,0,0,1,3.71,8.83,14,14,0,0,1-1.9,7.34,9.77,9.77,0,0,1-6.09,4.32v.13a8.26,8.26,0,0,1,3.25,1.29,7.08,7.08,0,0,1,2,2.16,9.92,9.92,0,0,1,1.1,2.8,31.32,31.32,0,0,1,.54,3.22c.09,1.12.15,2.26.19,3.41a31.69,31.69,0,0,0,.33,3.42,20.93,20.93,0,0,0,.74,3.19,7.68,7.68,0,0,0,1.45,2.67h-6.83a3.8,3.8,0,0,1-.87-1.93,19.54,19.54,0,0,1-.29-2.74c0-1-.09-2.09-.13-3.25a21.57,21.57,0,0,0-.39-3.42c-.17-1.11-.38-2.18-.64-3.19a7.56,7.56,0,0,0-1.23-2.64,5.9,5.9,0,0,0-2.19-1.8,8.12,8.12,0,0,0-3.61-.68H582.63V516h-6.12V470Zm1.28,20.88a9,9,0,0,0,3.39-1.26,7,7,0,0,0,2.32-2.51A8.48,8.48,0,0,0,606,483a8.27,8.27,0,0,0-1.94-5.67q-1.94-2.19-6.25-2.19h-15.2v16h12.76A25.08,25.08,0,0,0,599.44,490.89Z" transform="translate(-9.57 -307.21)"/><path class="cls-2" d="M630.76,470l14.5,38.66L659.82,470h8.37v46H662.4V477.74h-.13L647.9,516h-5.22l-14.37-38.27h-.13V516h-5.8V470Z" transform="translate(-9.57 -307.21)"/><polygon class="cls-3" points="185.03 208.82 83.95 193.78 52.82 228.05 53.17 188.88 0 179.09 0 40.92 185.38 31.83 185.03 208.82"/><polygon class="cls-2" points="77.3 0 87.09 99.69 142.71 34.28 198.67 99.69 184.33 100.04 184.68 165.44 215.81 159.15 241.69 195.53 242.74 153.2 267.93 146.91 277.02 28.33 77.3 0"/><polygon class="cls-4" points="198.67 99.69 142.71 34.28 87.09 99.69 86.74 100.04 87.09 100.04 101.78 100.04 101.78 181.88 101.78 182.58 184.68 165.79 184.68 165.44 184.33 100.04 198.67 99.69"/><polygon class="cls-5" points="81.15 37.08 142.71 34.28 86.74 99.69 81.15 37.08"/></svg>')</script>
2062 
2062<script>$("a.pb-vendor").attr("href","https://brivity.com/")</script>
2062 
2062<script>$(document).ready(function(){$('#sign-up-modal.modal #signupForm').append('<input type="hidden" name="tags" value="registration_signup">')})</script>
2062 
2062<script src="https://static.elfsight.com/platform/platform.js" data-use-service-core defer></script>
2062 
2062<script type="text/javascript">
2063              /* <![CDATA[ */
2064              goog_snippet_vars = function() {
2065                var w = window;
2066                w.google_conversion_id = 10212567898;
2067                w.google_conversion_label = "G-39TQNLQPVK";
2068                w.google_remarketing_only = false;
2069              }
2070              // DO NOT CHANGE THE CODE BELOW.
2071              goog_report_conversion = function(url) {
2072                goog_snippet_vars();
2073                window.google_conversion_format = "3";
2074                var opt = new Object();
2075                opt.onload_callback = function() {
2076                if (typeof(url) != 'undefined') {
2077                  window.location = url;
2078                }
2079              }
2080              var conv_handler = window['google_trackConversion'];
2081              if (typeof(conv_handler) == 'function') {
2082                conv_handler(opt);
2083              }
2084            }
2085            /* ]]> */
2086            </script>
2086 
2086<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion_async.js">
2087            </script>
2087 
2087<script type="text/javascript">
2088            /* <![CDATA[ */
2089            var google_conversion_id = 10212567898;
2090            var google_custom_params = window.google_tag_params;
2091            var google_remarketing_only = true;
2092            /* ]]> */
2093            </script>
2093 
2093<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
2094            </script>
2094 <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/10212567898/?guid=ON&amp;script=0"> </div> </noscript></body> </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.