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 </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 </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 </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&multi_cat=CountyState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=Allen%20County,%20IN&multi_cat=CountyState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=Auburn,%20IN&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=Columbia%20City,%20IN&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=Fort%20Wayne,%20IN&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=Grabill,%20IN&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=Huntertown,%20IN&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=Huntington,%20IN&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=Kendallville,%20IN&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=Leo,%20IN&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=Zip%7CZip%7CZip&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=46741%7C46765%7C46788&multi_cat=Zip%7CZip%7CZip&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1#?mlsId=285&price=10000:&multi_search=New%20Haven,%20IN&multi_cat=CityState&propertyType=%7CResidential%7CMulti-Family%7CCondo/Townhome&status=1%7C3&q_sort=createdAt-&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&multi_cat=CountyState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=CityState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=CityState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=CityState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=CityState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=CityState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=CityState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=CityState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=CityState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=Zip%7CZip%7CZip&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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&multi_cat=CityState&propertyType=|Residential|Multi-Family|Condo/Townhome&status=1|3&mlsId=285&price=10000:&q_sort=createdAt-&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 & 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="{"chat_position":"right","call_to_action_text":"Hi there! Please let us know if you have any questions and an agent will reach out to you as soon as possible.","initial_message":"Enter your question below and an agent will be in touch with you.","tags":"IDX Chat","version":"1"}"> 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">×</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">×</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&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.