PageSourceSearch

https://evelynperezlarin.com/11/search/11

html evelynperezlarin.com collected 2026-09-30 14:00:53 UTC 78,176 bytes, 1,589 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" ng-app="dpiApp">
3
4<head>
5    <meta charset="utf-8">
6    <meta http-equiv="X-UA-Compatible" content="IE=edge">
7    <meta name="google-site-verification"
8        content="" />
9    <meta name="viewport" content="width=device-width, initial-scale=1">
10    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
11    <title>
12        Evelyn Perez-Larin Fortune Christie's International Real Estate | Search    </title>
13    <link rel="icon" type="image/png" href="https://evelynperezlarin.com/themes/609/images/Logoskl.png"
14        sizes="24x24">
15    <meta name="description"
16        content="Now it’s easy to search the MLS for active Properties for Sale, for Rent, and view New Developments with floor plans. All active listings with photos and details.
17 - Fortune Christie's International Real Estate" />
18    <meta property="og:title"
19        content="Evelyn Perez-Larin Fortune Christie's International Real Estate | Search" />
20    <meta property="og:description"
21        content="Now it’s easy to search the MLS for active Properties for Sale, for Rent, and view New Developments with floor plans. All active listings with photos and details.
22
23Now it’s easy to search the MLS for active Properties for Sale, for Rent, and view New Developments with floor plans. All active listings with photos and details.
24" />
25    <meta property="og:type" content="website" />
26
27        <meta property="og:image"
28        content="https://evelynperezlarin.com/uploads/default_template/medium/default_share.jpg" />
29        <meta property="og:url" content="" />
30    <meta itemprop="description"
31        content="Now it’s easy to search the MLS for active Properties for Sale, for Rent, and view New Developments with floor plans. All active listings with photos and details.
32
33Now it’s easy to search the MLS for active Properties for Sale, for Rent, and view New Developments with floor plans. All active listings with photos and details.
34">
35    <!-- Bootstrap -->
36    <link href="https://evelynperezlarin.com/themes/public-common-files/bootstrap/css/bootstrap.min.css" rel="stylesheet">
37    <link rel="stylesheet" type="text/css"
38        href="https://evelynperezlarin.com/themes/609/css/animate.min.css" />
39    <link rel="stylesheet" type="text/css"
40        href="https://evelynperezlarin.com/themes/609/css/overlay.css" />
41    <link rel="stylesheet" type="text/css"
42        href="https://evelynperezlarin.com/themes/609/css/swiper-bundle.min.css" />
43    <link rel="stylesheet" type="text/css"
44        href="https://evelynperezlarin.com/themes/609/css/lightslider.min.css" />
45    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/bootstrap-utilities.css">
46    <!-- Custom CSS -->
47    <link rel="stylesheet" type="text/css"
48        href="https://evelynperezlarin.com/themes/609/css/jquery-ui-1.12.1.css" />
49    <link rel="stylesheet" type="text/css"
50        href="https://evelynperezlarin.com/themes/609/css/chosen-1.4.2.css" />
51    <link rel="stylesheet" type="text/css"
52        href="https://evelynperezlarin.com/themes/609/css/owl.carousel.min.css" />
53    <link rel="stylesheet" type="text/css"
54        href="https://evelynperezlarin.com/themes/609/css/owl.theme.default.min.css" />
55    <link href="https://evelynperezlarin.com/themes/609/css/jquery.mCustomScrollbar.css"
56        rel="stylesheet">
57    <link rel='stylesheet' href='https://evelynperezlarin.com/themes/609/css/loading-bar.min.css'
58        type='text/css' media='all' />
59    <!-- menu extra items -->
60    <link href="https://evelynperezlarin.com/themes/609/css/tutorial.css" rel="stylesheet">
61    <link href="https://evelynperezlarin.com/themes/609/css/style.css?v=1775715013" rel="stylesheet">
62<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBGVeBE3SlV5VZR-ln_jj0qacva5Ju-IUc&libraries=drawing&callback=Function.prototype&v=3.64"></script>
62<link href="https://evelynperezlarin.com/themes/609/css/search-page-style.css?v=1775715013" rel="stylesheet">    <link href="https://evelynperezlarin.com/themes/609/css/dev.css" rel="stylesheet">
63    <link href="https://evelynperezlarin.com/themes/609/css/responsive.css" rel="stylesheet">
64<link href="https://evelynperezlarin.com/themes/609/css/aistyle.css?v=1707381953" rel="stylesheet"><link href="https://unpkg.com/[email protected]/dist/aos.css" rel="stylesheet">
65
66    
66<script src="https://evelynperezlarin.com/themes/public-common-files/js/modernizr.js"></script>
vendor: 1 bytes, line 66
66
67<script src="https://unpkg.com/[email protected]/dist/aos.js"></script>
67
68
69    
69<script>
70        var base_url = 'https://evelynperezlarin.com';
71        var current_theme = '609';
72var html_version = "1790776853";
73                            var mls_ids = "[1]";        var uri_prefix = '/';
74        var user_id = '609';
75        var theme_image_url = '/../dpi_beta/uploads/';
76    </script>
76
77    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
78    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
79    <!--[if lt IE 9]>
80            
80<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
80
81            
81<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
81
82            <![endif]-->
83    <base href="https://evelynperezlarin.com/">
84    <!-- $uri_prefix made in Admin\Masters\ThemePreviewController -->
85    
85<script>
86        (function (i, s, o, g, r, a, m) {
87            i['GoogleAnalyticsObject'] = r;
88            i[r] = i[r] || function () {
89                (i[r].q = i[r].q || []).push(arguments)
90            }, i[r].l = 1 * new Date();
91            a = s.createElement(o),
92                m = s.getElementsByTagName(o)[0];
93            a.async = 1;
94            a.src = g;
95            m.parentNode.insertBefore(a, m)
96        })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
97    </script>
97
98    <!-- Meta Pixel Code -->
99    
99<script>
vendor: 591 bytes, lines 99-111
99
100        !function (f, b, e, v, n, t, s) {
101            if (f.fbq) return; n = f.fbq = function () {
102                n.callMethod ?
103                n.callMethod.apply(n, arguments) : n.queue.push(arguments)
104            };
105            if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
106            n.queue = []; t = b.createElement(e); t.async = !0;
107            t.src = v; s = b.getElementsByTagName(e)[0];
108            s.parentNode.insertBefore(t, s)
109        }(window, document, 'script',
110            'https://connect.facebook.net/en_US/fbevents.js');
111        fbq('init', '
1111442231646227751
vendor: 42 bytes, lines 111-113
111');
112        fbq('track', 'PageView');
113    
113</script>
113
114    <noscript>
115        <img height="1" width="1" style="display:none"
116            src="https://www.facebook.com/tr?id=1442231646227751&ev=PageView&noscript=1" />
117    </noscript>
118    <!-- End Meta Pixel Code -->
119
120<script>
121    window.addEventListener('load', function() {
122        console.log('Checking URL parameters for auth token...');
123        
124        // Use URLSearchParams to extract query parameters directly
125        const urlParams = new URLSearchParams(window.location.search);
126        
127        const token = urlParams.get('auth_token');
128        const userInfo = urlParams.get('usr_info');
129        // Edit params
130        const saveSearchEditing = urlParams.get('save_search_editing');
131        const saveSearchId = urlParams.get('save_search_id');
132        const polygonLatLongForSavedSearch = urlParams.get('polygon_lat_long_for_saved_search');
133        const ngStorageSearchParams = urlParams.get('ngStorage-search_params');
134        const hitSavedSearch = urlParams.get('hit_saved_search');
135        
136        console.log('Token from URL:', token);
137
138        if (token) {
139            console.log('will run after 3sec');
140            
141            // setTimeout(() => {
142                console.log('Storing auth token and user info in localStorage...');
143                localStorage.setItem('access_token', token);
144                if (userInfo) localStorage.setItem('usr_info', userInfo);
145
146                // Clean URL
147                const cleanUrl = window.location.pathname + window.location.hash;
148                window.history.replaceState({}, document.title, cleanUrl);
149                localStorage.setItem('save_search_editing', saveSearchEditing);
150                localStorage.setItem('save_search_id', saveSearchId);
151                localStorage.setItem('polygon_lat_long_for_saved_search', polygonLatLongForSavedSearch);
152                console.log('typeof localStorage.getItem(ngStorage-search_params)- ', typeof localStorage.getItem('ngStorage-search_params'));
153                console.log('typeof localStorage.getItem(ngStorage-search_params) !== undefined ', typeof localStorage.getItem('ngStorage-search_params') !== 'undefined');
154                
155                console.log('localStorage.getItem(ngStorage-search_params)', localStorage.getItem('ngStorage-search_params'));
156                
157                console.log('ngStorageSearchParams  -', ngStorageSearchParams);
158                
159                if (typeof localStorage.getItem('ngStorage-search_params') !== 'undefined') {
160                    console.log('ngstorage search setting');
161                    
162                    localStorage.setItem('ngStorage-search_params', ngStorageSearchParams);
163                    localStorage.setItem('hit_saved_search', hitSavedSearch);
164                    console.log('localStorage.getItem(ngStorage-search_params)222', localStorage.getItem('ngStorage-search_params'));
165                }
166                if (angular) {
167                    console.log('Setting in to AngularJS');
168                    angular.element(document).ready(function () {
169                        var scope = angular.element(document.querySelector('[ng-app]')).scope();
170                        scope.$apply(function() {
171                            scope.is_front_logged = 1;  // Update the variable in AngularJS scope
172                        });
173                        if (ngStorageSearchParams) {
174                            console.log('Setting ngStorage.search_params...');
175                            var $localStorage = angular.element(document.querySelector('[ng-app]')).injector().get('$localStorage');
176                            $localStorage.search_params = ngStorageSearchParams;
177                        }
178                    });
179                } else {
180                    console.log('AngularJS not found, cannot update scope variable.');
181                }
182
183                
184            // }, 10000);
185        }
186    });
187
188    function updateCrmLink(el) {
189        var encodedId = encodeURIComponent(
190            btoa(unescape(encodeURIComponent(user_id)))
191        );
192
193        el.href = 'https://crm.dpirealtywebsites.com/login?member_id=' + encodedId;
194    }
195
196</script>
196  
197
198                        <link rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css"/>
199                        
199<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
199
200                    </head></head>
201
202<body ng-controller='indexcontroller' ng-cloak ng-show="show_body">
203    <div id="page">
204        <div id="fb-root"></div>
205        <!--
205<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.3&appId=295624401368296&autoLogAppEvents=1"></script>
205-->
206        
206<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_GB/sdk.js?version=v10.0">
207        </script>
207
208        <!-- Dynamic Header Start -->
209        <header class="main-header">
210            <div class="container">
211                <div class="header-inner d-flex align-items-center">
212                    <div class="header-left">
213                        <span class="menu-close-btn">
214                            <em>+</em>
215                        </span>
216                        <div class="main-menu">
217                            <ul>
218                                <li data-is-active="active"><a
219                                        href="https://evelynperezlarin.com/">Home</a></li>
220
221
222                                <li data-is-active>
223                                    <a href="#">Search</a>
224                                    <ul>
225                                      
226                                  
227                                     
228                                        <li><a href="https://evelynperezlarin.com/for_sale">For
229                                                Sale</a></li>
230                                        <li><a href="https://evelynperezlarin.com/for_rent">For
231                                                Rent</a></li>
232
233
234<li><a href="https://evelynperezlarin.com/my_listings">My Listings</a></li>
235<li><a href="https://evelynperezlarin.com/our_listings">Our Listings</a></li>
236
237  <li><a
238                                                href="https://evelynperezlarin.com/11/search/11">Property Search</a>
239                                        </li>
240                                    </ul>
241
242
243
244
245                                </li>
246
247
248
249
250
251
252
253                   
254
255 
256                                   <li><a
257                                                href="https://evelynperezlarin.com/existing_developments">New
258                                                Developments</a></li>
259
260
261
262                                 
263
264
265    <li><a
266                                                href="https://evelynperezlarin.com/9/about/9">About</a></li>
267                              
268
269
270                                <li data-is-active>
271                                    <a href="#">RESOURCES</a>
272                                    <ul>
273<li><a href="https://evelynperezlarin.com/median-home-values">AI Median Home Values</a></li><li><a href="https://evelynperezlarin.com/107/ask_ai/2283">Ask AI</a></li>
274                                  <li><a href="https://evelynperezlarin.com/195/free_home_evaluation/278">Free Home Evaluation</a></li>
275                                     
276                                 
277                                 
278                                        <li><a
279                                                href="https://evelynperezlarin.com/107/what_is_my_home_worth/1635">What
280                                                Is My Home Worth</a></li>
281                                       
282                                        <li><a href="https://evelynperezlarin.com/mortage-calculator">Mortgage
283                                                Calculator</a></li>
284                                        <li><a href="https://evelynperezlarin.com/dream-home-finder">Dream
285                                                Home Finder</a></li>
286                                        <li><a href="https://evelynperezlarin.com/school-information">School
287                                                Information</a></li>
288                                        
289                                    </ul>
290                                </li>
291                                <li data-is-active><a
292                                        href="https://evelynperezlarin.com/blog">BLOG</a></li>
293  
294
295                                
296                                <li data-is-active><a
297                                        href="https://evelynperezlarin.com/16/contact_me/16">Contact</a>
298                                </li>
299                            </ul>
300                        </div>
301                    </div>
302                    <div class="header-logo">
303                                         <a href="https://evelynperezlarin.com/">    <img src="https://evelynperezlarin.com/themes/609/images/Evelyn-Logo.png"/> </a>
304                    </div>
305
306
307
308
309                         
310                                
311                               
312                             
313
314       <div class="header-right d-flex">
315                      
316                        <div class="contact-box">
317
318                            <a href="tel:{{agentDetails.offc_phone}}"
319                                ng-hide="agentDetails.contact_info_display==0 && agentDetails.account_type!='individual'" style="color: #fff;">
320                                <img src="https://evelynperezlarin.com/themes/609/images/call.svg"
321                                    alt="" /> 
322                            </a>
323                            <a href="mailto:{{agentDetails.account_email}}"
324                                ng-hide="agentDetails.contact_info_display==0 && agentDetails.account_type!='individual'">
325                                <img src="https://evelynperezlarin.com/themes/609/images/mail.svg"
326                                    alt="" />
327                            </a>
328                        </div>
329                        <div class="menu-open-btn">
330                            <span></span>
331                            <span></span>
332                            <span></span>
333                        </div>
334                        <div class="page-overlay"></div>
335                    </div>
336                </div>
337            </div>
338        </header>
339        <!--/.site-header -->
340        <!-- Dynamic Header End -->
341        <!-- This is the place where the dynamic html will be placed start -->
342        <div ng-if="is_maintain==1" class="text-center">
343            <img class="img-responsive" ng-src="https://evelynperezlarin.com/backend/images/underconstruction.png"
344                style="display: inline-block;">
345            <h4>{{status_msg}}</h4>
346        </div>
347        <ng-view ng-if="is_maintain==0" autoscroll="true">
348        </ng-view>
349        <!-- This is the place where the dynamic html will be placed end -->
350
351        <section class="section-gap home-bottom-section" style="padding-bottom: 0;background: #000;background-position: center;background-size: cover;">
352            <div class="container">
353                <div class="top-info d-flex flex-wrap align-items-center">
354                    <div class="profile-info d-flex flex-wrap align-items-center">
355                        <figure>
356                            <img src="https://evelynperezlarin.com/themes/609/images/image0(1).png"
357                                alt="">
358                        </figure>
359                        <div class="user-text">
360                        </div>
361                    </div>
362                    <div class="info-right d-flex align-items-center flex-wrap justify-content-between">
363                        <div class="contact-box">
364   <h3 class="info-name" ng-if="agentDetails.account_type=='individual'" style="color: #fff;text-transform: uppercase;">{{agentDetails.first_name+''+((agentDetails.middle_name_display==1)?' '+agentDetails.middle_name:'')+' '+agentDetails.last_name}}</h3>
365                            <span class="info-title" ng-if="agentDetails.account_type=='individual'">{{agentDetails.title}}</span>
366
367                            <div class="info-row">
368                                <img src="https://evelynperezlarin.com/themes/609/images/office.svg"
369                                    alt="">
370                                <span class="title">Office</span>
371
372     <p>{{ agentDetails.company || agentDetails.team }}
373                            </p>
374                                <p> {{agentDetails.address1?agentDetails.address1:''}}{{agentDetails.address2?',
375                                    '+agentDetails.address2:''}}
376                                    </br>
377                                    {{agentDetails.city_name?agentDetails.city_name:''}}{{agentDetails.state_code?',
378                                    '+agentDetails.state_code:''}}{{agentDetails.zip?', '+agentDetails.zip:''}}
379                                </p>
380                            </div>
381                        </div>
382                        <div class="contact-box">
383                            <div class="info-row" ng-show="agentDetails.offc_phone!=''">
384                                <img src="https://evelynperezlarin.com/themes/609/images/call2.svg"
385                                    alt="">
386                                <span class="title">Phone</span>
387                                <p><a href="tel:{{agentDetails.offc_phone}}">{{agentDetails.offc_phone}}</a></p>
388                            </div>
389
390
391
392                            <div class="info-row">
393                                <img src="https://evelynperezlarin.com/themes/609/images/mail-2.svg"
394                                    alt="">
395                                <span class="title">Email</span>
396                                <p><a href="mailto:{{agentDetails.account_email}}">{{agentDetails.account_email}}</a>
397                                </p>
398                            </div>
399                        </div>
400                    </div>
401                    <div class="col-sm-12">
402                        <div class="social-icons text-center">
403                            <ul class="list-inline d-flex justify-content-center flex-wrap">
404                                <li ng-if="agentDetails.fb_url!=''">
405                                    <a href="{{agentDetails.fb_url | httpCheck}}" class="facebook" target="_blank">
406                                        <i class="fa fa-facebook"></i>
407                                    </a>
408                                </li>
409                                <li ng-if="agentDetails.twitter_url!=''">
410                                    <a href="{{agentDetails.twitter_url | httpCheck}}" class="twitter" target="_blank">
411                                        <svg xmlns="http://www.w3.org/2000/svg" height="18px" width="18px" viewBox="0 0 512 512">
411<path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg>
412                                    </a>
413                                </li>
414                                <li ng-if="agentDetails.linkedin_url!=''">
415                                    <a href="{{agentDetails.linkedin_url | httpCheck}}" class="linkedin"
416                                        target="_blank">
417                                        <i class="fa fa-linkedin"></i>
418                                    </a>
419                                </li>
420                                <li ng-if="agentDetails.google_url!=''">
421                                    <a href="https://g.page?andreafabianafernandez?gm" class="google-plus"
422                                        target="_blank">
423                                        <i class="fa fa-google-plus"></i>
424                                    </a>
425                                </li>
426                                <li ng-if="agentDetails.youtube_url!=''">
427                                    <a href="{{agentDetails.youtube_url | httpCheck}}" class="youtube_url"
428                                        target="_blank">
429                                        <i class="fa fa-youtube-square" aria-hidden="true"></i>
430                                    </a>
431                                </li>
432                                <li ng-if="agentDetails.instagram_url!=''">
433                                    <a href="{{agentDetails.instagram_url | httpCheck}}" target="_blank">
434                                        <i class="fa fa-instagram"></i>
435                                    </a>
436                                </li>
437                                <li ng-if="agentDetails.pinterest_url!=''">
438                                    <a href="{{agentDetails.pinterest_url | httpCheck}}" target="_blank">
439                                        <i class="fa fa-pinterest"></i>
440                                    </a>
441                                </li>
442                                <li ng-if="agentDetails.zillow_url!=''">
443                                    <a href="{{agentDetails.zillow_url | httpCheck}}" target="_blank">
444                                        <img class="img-responsive"
445                                            src="https://evelynperezlarin.com/themes/609/images/icon/zilo.png">
446                                    </a>
447                                </li>
448                                <li ng-if="agentDetails.trulia_url!=''">
449                                    <a href="{{agentDetails.trulia_url | httpCheck}}" target="_blank">
450                                        <img class="img-responsive"
451                                            src="https://evelynperezlarin.com/themes/609/images/icon/trulia.png">
452                                    </a>
453                                </li>
454
455                           <li ng-if="agentDetails.agent_tiktok_url!=''" >
456                                <a href="{{ agentDetails.agent_tiktok_url | httpCheck }}" target="_blank" style="color: #b40101;">
457                                    <svg height="18px" width="18px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 209.9a210.1 210.1 0 0 1 -122.8-39.3V349.4A162.6 162.6 0 1 1 185 188.3V278.2a74.6 74.6 0 1 0 52.2 71.2V0l88 0a121.2 121.2 0 0 0 1.9 22.2h0A122.2 122.2 0 0 0 381 102.4a121.4 121.4 0 0 0 67 20.1z"/></svg>
458                                </a>
459                            </li>                            </ul>
460                        </div>
461                    </div>
462                </div>
463
464            
465
466
467            </div>
468    </div>
469    </div>
470    </div>
471    </section>
472
473
474
475
476    <!-- Dyanamic Footer For Preview Page Start  ng-show="show_dyanamic_data==1"-->
477
478
479    <footer class="main-footer">
480
481<div class="row no-gutters v3_credit_disclaimers">
482	
483	<div class="col-md my-auto v3_credit_disclaimers_left">
484				<img src="https://evelynperezlarin.com/themes/609/images/whiteR.png" style="max-height: 35px; padding-right: 5px; width: auto;" alt="Equal Housing Logo">
485				
486<a href="#" onclick="updateCrmLink(this);" target="_blank">Agent Login</a> / 
487	
488<a
489                            ng-hide="is_front_logged!=0" style="cursor: pointer;" ng-click="showClientLoginPopup()">Guest Login</a>
489<a ng-show="is_front_logged!=0" style="cursor: pointer;" ng-click="logout()">Logout</a> / 
490
491 <a href="#" data-toggle="modal" data-target="#myModal">Accessibility ADA</a> 
492
493  
494                
495              
496<br>
497 <p style="font-size: 9px;">ADA Compliance: In concurrence with the National Association of Realtors guidelines, Evelyn Perez-Larin
498
499
500
501                    is committed to providing an accessible website. If you have difficulty accessing content, have
502                    difficulty viewing a file on the website, or notice any accessibility problems, please contact me at
503                    		+1.786.486.7650 to specify the nature of the accessibility issue and any assistive technology you use.
504                    We strive to provide the content you need in the format you require.</p>
505
506  <p>Powered by <a href="http://dpishowcase.com/" target="_blank">DPI Realty Websites</a> |
507                    &copy; Copyright
508                    2026 DPI Realty Websites. All Rights Reserved.
509                </p>
510
511
512	</div>
513	
514	<div class="col-md my-auto v3_credit_disclaimers_right"> 
515			</div>
516	
517</div>
518
519        <div class="container">
520        </div>
521    </footer>
522
523                           
524                            <!-- Dyanamic Footer For Preview Page End-->
525    </div>
526    <!--/#page-->
527
528    <!-- start ada modal -->
529    <div class="modal fade" id="myModal" role="dialog">
530        <div class="modal-dialog">
531            <div class="modal-content">
532                <div class="modal-header">
533                    <button type="button" class="close" data-dismiss="modal">&times;</button>
534                    <h4 class="modal-title">Accessibility Widget</h4>
535                </div>
536                <div class="modal-body">
537                    <table class="table table-bordered">
538                        <thead>
539                        </thead>
540                        <tbody>
541                            <tr>
542                                <td>
543                                    <button id="bigtext" type="button" class="btn btn-primary" onclick="bigSize()">
544                                        Bigger Text
545                                    </button>
546                                    <div id="progress"></div>
547                                </td>
548                                <td>
549                                    <button id="stext" type="button" class="btn btn-primary" onclick="speechtext()">
550                                        Speechd Text
551                                    </button>
552                                </td>
553                            </tr>
554                        </tbody>
555                    </table>
556                </div>
557            </div>
558        </div>
559    </div>
560    <!-- end ada modal -->
561
562
563<div style="position:fixed; bottom:45px; left: 20px; z-index: 2000;">
564	<a href="https://api.whatsapp.com/send?phone=17864867650" target="_blank"><img src="https://evelynperezlarin.com/themes/609/images/wap_logo_2.png" alt="Real Estate For Sale" width="55px" height="55px"><span style="display:none;">More Info</span></a>
565 </div>
566
567
568
569
570    <div class="quick-contact-box">
571        <div class="box-handel">Send Us a Message</div>
572        <div class="box-form">
573            <div class="form-horizontal">
574<style>
575    .quick-contact-box .box-form .btn:focus {
576        background: #fff;
577        border-color: #fff;
578        color: #000;
579    }
580
581    .quick-contact-box .box-form .btn {
582        border-color: #fff;
583    }
584
585    /* Fixing footer form */
586    .quick-contact-box .schedule-appointment-banner {
587        color: #fff;
588    }
589    .quick-contact-box .scheduleAppointmentLink,
590    .quick-contact-box .scheduleAppointmentLink:hover,
591    .quick-contact-box .scheduleAppointmentLink:focus {
592        color: #fff !important;
593        text-decoration: underline;
594    }
595    .quick-contact-box .schedule-appointment-banner {
596        padding: 0;
597        margin-bottom: 0;
598    }
599
600    /* Footer slot modal after reparent to body (Option 1) */
601    .slotBookingModal.slot-booking-from-footer .modal-header p,
602    .slotBookingModal.slot-booking-from-footer .modal-body .chooseDate label,
603    .slotBookingModal.slot-booking-from-footer .slotGrid .slotBox label {
604        color: #000 !important;
605    }
606    .slotBookingModal.slot-booking-from-footer .slotGrid .slotBox input:checked + label {
607        color: #fff !important;
608    }
609    /* Hide quick-contact-box show send us a message text is hidden*/
610    .quick-contact-box {
611        display: none !important;
612    }
613</style>
614
615
616
617                
618            </div>
619        </div>
620    </div>
621
622    <!-- Bower js -->
623    
623<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/jquery/dist/jquery.min.js"></script>
623
624    
624<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular/angular.min.js"></script>
vendor: 1 bytes, line 624
624
625<script src="https://evelynperezlarin.com/themes/public-common-files/js/angular-ui-router.min.js"></script>
625    
625<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/bootstrap/dist/js/bootstrap.min.js">
626</script>
626
627    
627<script
628    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-animate/angular-animate.min.js">
629</script>
629
630    
630<script
631    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-cookies/angular-cookies.min.js">
632</script>
632
633    
633<script
634    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-resource/angular-resource.min.js">
635</script>
635
636    
636<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-route/angular-route.min.js">
637</script>
637
638    
638<script
639    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-sanitize/angular-sanitize.min.js">
640</script>
640
641    
641<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-touch/angular-touch.min.js">
642</script>
642
643    
643<script
644    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-update-meta/dist/update-meta.min.js">
645</script>
645
646    
646<script
647    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/marker_cluster/src/markerclusterer.js">
648</script>
648
649    
649<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/ng-idle/angular-idle.min.js">
650</script>
650
651    
651<script type="text/javascript" src="https://evelynperezlarin.com/themes/public-common-files/js/lodash.min-2.4.1.js">
652</script>
652
653    
653<script type="text/javascript" src="https://evelynperezlarin.com/themes/public-common-files/js/angular-highlightjs.js">
654</script>
654
655    
655<script type="text/javascript" src="https://evelynperezlarin.com/themes/public-common-files/js/ui-bootstrap-tpls-1.0.0.js">
656</script>
656
657    
657<script src="https://evelynperezlarin.com/themes/public-common-files/bootstrap/js/bootstrap-hover-dropdown.min.js">
658</script>
658
659    
659<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/moment/moment.js"></script>
659
660    
660<script
661    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js">
662</script>
662
663    
663<script type="text/javascript" src="https://evelynperezlarin.com/themes/public-common-files/js/swiper-bundle.min.js">
664</script>
664
665    
665<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/jquery-ui/jquery-ui.min.js"></script>
665
666    
666<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/oclazyload/dist/ocLazyLoad.min.js">
667</script>
667
668    
668<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/odometer/odometer.min.js"></script>
668
669    
669<script
670    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-odometer/dist/angular-odometer.min.js">
671</script>
671
672    
672<script
673    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-messages/angular-messages.min.js">
674</script>
674
675    
675<script
676    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-validation-match/dist/angular-validation-match.min.js">
677</script>
677
678    
678<script
679    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-loading-bar/build/loading-bar.min.js">
680</script>
680
681    
681<script src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-aria/angular-aria.min.js">
682</script>
682
683    
683<script
684    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-material/angular-material.min.js">
685</script>
685
686    
686<script
687    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-payments/lib/angular-payments.min.js">
688</script>
688
689    
689<script
690    src="https://evelynperezlarin.com/themes/public-common-files/bower_components/angular-tablesort/js/angular-tablesort.js">
691</script>
691
692    <!-- Bower js -->
693    <!-- Public js -->
694    
694<script type='text/javascript' src="https://evelynperezlarin.com/themes/public-common-files/js/loading-bar.min.js">
695</script>
695
696    
696<script src="https://evelynperezlarin.com/themes/public-common-files/js/angular-validator.min.js"></script>
696
697    
697<script src="https://evelynperezlarin.com/themes/public-common-files/js/jquery.flexslider.js"></script>
697
698    
698<script src="https://evelynperezlarin.com/themes/public-common-files/js/imgLiquid-min.js"></script>
698
699    
699<script src="https://evelynperezlarin.com/themes/public-common-files/js/jquery.simpleWeather.min.js"></script>
699
700    
700<script src="https://evelynperezlarin.com/themes/public-common-files/js/lightslider.min.js" type="text/javascript">
701</script>
701
702    
702<script src="https://evelynperezlarin.com/themes/public-common-files/js/jquery.mCustomScrollbar.concat.min.js"
703    type="text/javascript"></script>
703
704    
704<script src="https://evelynperezlarin.com/themes/public-common-files/js/chosen.jquery.min-1.4.2.js"></script>
704
705    
705<script src="https://evelynperezlarin.com/themes/public-common-files/js/angular-chosen.min.js"></script>
705
706    
706<script src="https://evelynperezlarin.com/themes/public-common-files/js/jquery.sticky-kit.min.js"></script>
706
707    
707<script src="https://evelynperezlarin.com/themes/public-common-files/js/ngStorage-0.3.6.min.js"></script>
707
708    
708<script src="https://evelynperezlarin.com/themes/public-common-files/js/ng-infinite-scroll.min.js"></script>
708
709    
709<script src="https://evelynperezlarin.com/themes/public-common-files/js/owl.carousel.js"></script>
709
710    <!-- extra menu items js -->
711    
711<script src="https://evelynperezlarin.com/themes/public-common-files/js/tutorial.js"></script>
711
712    
712<script src="https://evelynperezlarin.com/themes/public-common-files/js/isotope.pkgd.min.js"></script>
712
713    
713<script src="https://evelynperezlarin.com/themes/public-common-files/js/init.js"></script>
713
714    <!-- Public js -->
715    <!-- Angular Scripts -->
716    
716<script src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/config/angularconfig.js"></script>
716
717    
717<script src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/config/config-service.js"></script>
717
718    
718<script
719    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/app.js?v=1790759615">
720</script>
720
721    
721<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>
721
722    
722<script
723    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/shared/agent-register-modal.js?v=1782392222">
724</script>
vendor: 1 bytes, line 724
724
725<script
726    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/recentlysoldpropertycontroller.js?v=1789109828">
727</script>
727    
727<script
728    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/homecontroller.js?v=1785409119">
729</script>
vendor: 1 bytes, line 729
729
730<script
731    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/ourlistingscontroller.js?v=1789109828">
732</script>
732<script
733    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/mylistingscontroller.js?v=1789109828">
734</script>
734<script
735    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/resetpasswordcontroller.js?v=1782392222">
736</script>
736    
736<script
737    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/idxcontroller.js?v=1786709036">
738</script>
738
739    
739<script
740    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/databasepoweredcontroller.js?v=1782392222">
741</script>
741
742    
742<script
743    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/criteriacontroller.js?v=1782392222">
744</script>
744
745    
745<script
746    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/searchpropertycontroller.js?v=1790759615">
747</script>
vendor: 1 bytes, line 747
747
748<script
749    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/propertylistcriteriacontroller.js?v=1789109828">
750</script>
750    
750<script
751    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/projectcontroller.js?v=1782392222">
752</script>
752
753    
753<script
754    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/resourcescontroller.js?v=1784007458">
755</script>
755
756    
756<script
757    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/staticcontroller.js?v=1782392222">
758</script>
758
759    
759<script
760    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/registercontroller.js?v=1782392222">
761</script>
761
762    
762<script
763    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/listingcontroller.js?v=1782392222">
764</script>
764
765    
765<script
766    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/recentsalelistingcontroller.js?v=1782392222">
767</script>
767
768    
768<script
769    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/recentlyclosedsearchpropertycontroller.js?v=1782392222">
770</script>
770
771    
771<script
772    src="https://evelynperezlarin.com/resources/assets/themes/asset-common-files/controllers/commercialsearchcontroller.js?v=1785490177">
773</script>
773
774    
775    <!-- Code provided by Google -->
776    <div id="google_translate_element" style='display:none'></div>
777    
777<script type="text/javascript">
778        function googleTranslateElementInit() {
779            new google.translate.TranslateElement({
780                pageLanguage: 'en',
781                layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
782                autoDisplay: false
783            }, 'google_translate_element');
784        }
785    </script>
785
786    
786<script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit" type="text/javascript">
787    </script>
787
788    <!-- Flag click handler -->
789    
789<script type="text/javascript">
790
791                                function reloadUrl() {
792                                    // cache busting: Reliable but modifies URL
793                                    var queryParams = new URLSearchParams(window.location.search);
794                                    queryParams.set("lr", new Date().getTime());
795                                    var query = queryParams.toString();
796                                    window.location.search = query; // navigates
797                                }
798                                    $('.translation-links a').click(function () {
799            let sel_html = $(this)[0].outerHTML;
800            console.log('sel_html', sel_html);
801            var lang = $(this).data('lang');
802            var $frame = $('.goog-te-menu-frame:first');
803            if (!$frame.size()) {
804                alert("Error: Could not find Google translate frame.");
805                return false;
806            }
807            $frame.contents().find('.goog-te-menu2-item span.text:contains(' + lang + ')').get(0).click();
808            $('.select-language').html(sel_html);
809            return false;
810        });
811
812        $(document).ready(function () {
813            $("#dpionloadloader").css("display", "block");
814        });
815    </script>
815
816
817    
817<script type="text/javascript">
818        // New Translation Element Init
819        function googleTranslateElementInit() {
820            new google.translate.TranslateElement({
821                pageLanguage: "en",
822                autoDisplay: false
823            },
824                "google_translate_element"
825            ); //remove the layout
826        }
827        // New Translation Element Init
828        // Flag click handler 
829        $(".translation-links a").click(function () {
830            var lang = $(this).data("lang");
831            var $frame = $(".goog-te-menu-frame:first");
832            if (!$frame.size()) {
833                alert("Error: Could not find Google translate frame.");
834                return false;
835            }
836            $frame.contents().find(".goog-te-menu2-item span.text:contains(" + lang + ")").get(0).click();
837            return false;
838        });
839        // New Translation code
840        $(document).ready(function () {
841            setTimeout(() => {
842                googleTranslateElementInit();
843                var lang = "English";
844                $("#google_translate_element select option").each(function () {
845                    if ($(this).text().indexOf(lang) > -1) {
846                        $(this).parent().val($(this).val());
847                        var container = document.getElementById(
848                            "google_translate_element"
849                        );
850                        var select = container.getElementsByTagName("select")[0];
851                        triggerHtmlEvent(select, "change");
852                    }
853                });
854                console.log("Translation reset");
855                // Hide the translation bar
856                $(".skiptranslate").hide();
857            }, 900);
858        });
859        function triggerHtmlEvent(element, eventName) {
860            var event;
861            if (document.createEvent) {
862                event = document.createEvent("HTMLEvents");
863                event.initEvent(eventName, true, true);
864                element.dispatchEvent(event);
865            } else {
866                event = document.createEventObject();
867                event.eventType = eventName;
868                element.fireEvent("on" + event.eventType, event);
869            }
870        }
871        // Flag click handler
872        $(".translation-links a").off("click").click(function (e) {
873            e.preventDefault();
874            console.log("Flag clicked");
875            var lang = $(this).data("lang");
876            $("#google_translate_element select option").each(function () {
877                if ($(this).text().indexOf(lang) > -1) {
878                    $(this).parent().val($(this).val());
879                    var container = document.getElementById(
880                        "google_translate_element"
881                    );
882                    var select = container.getElementsByTagName("select")[0];
883                    triggerHtmlEvent(select, "change");
884                }
885            });
886
887            // Hide the translation bar
888            $(".skiptranslate").hide();
889        });
890        // New Translation code
891    </script>
891
892    <!--start ada js -->
893    
893<script>
894        bcount = 0;
895
896        function bigSize() {
897            bcount++;
898            if (bcount == 1) {
899                document.getElementById("bigtext").innerHTML = 'Bigger Text <span class="glyphicon glyphicon-ok"></span>';
900                document.getElementById("progress").innerHTML =
901                    '<span class="glyphicon glyphicon-minus"></span><span class="glyphicon glyphicon-minus"></span>';
902                document.body.style.fontSize = "20px";
903            }
904            if (bcount == 2) {
905                document.getElementById("bigtext").innerHTML = 'Bigger Text <span class="glyphicon glyphicon-ok"></span>';
906                document.getElementById("progress").innerHTML =
907                    '<span class="glyphicon glyphicon-minus"></span><span class="glyphicon glyphicon-minus"></span><span class="glyphicon glyphicon-minus"></span>';
908                document.body.style.fontSize = "25px";
909            }
910            if (bcount == 3) {
911                document.getElementById("bigtext").innerHTML = 'Bigger Text <span class="glyphicon glyphicon-ok"></span>';
912                document.getElementById("progress").innerHTML =
913                    '<span class="glyphicon glyphicon-minus"></span><span class="glyphicon glyphicon-minus"></span><span class="glyphicon glyphicon-minus"></span><span class="glyphicon glyphicon-minus"></span>';
914                document.body.style.fontSize = "30px";
915            }
916            if (bcount >= 4) {
917                document.getElementById("bigtext").innerHTML = 'Bigger Text';
918                document.getElementById("progress").innerHTML = '';
919                document.body.style.fontSize = null;
920                bcount = 0;
921            }
922        }
923
924        function speech(speechmsg) {
925            var synth = window.speechSynthesis;
926            synth.cancel();
927            var utterance1 = new SpeechSynthesisUtterance(speechmsg);
928            synth.speak(utterance1);
929            speechmsg = '';
930        }
931
932        function myFunction(e) {
933            speech(e.target.innerText)
934        }
935        var count = 0;
936
937        function speechtext() {
938            count++;
939            if (count == 1) {
940                speech('Screen reader enable');
941                document.getElementById("stext").innerHTML =
942                    'Speech Text <span class="glyphicon glyphicon-volume-up"></span>';
943                document.addEventListener("click", myFunction);
944            } else {
945                speech('Screen reader disable');
946                document.getElementById("stext").innerHTML = 'Speech Text';
947                document.removeEventListener("click", myFunction);
948                count = 0;
949            }
950        }
951    </script>
951
952    <!--end ada js -->
953    
953<script src="https://apis.google.com/js/api:client.js"></script>
953
954    
954<script>
955        const modal_pic = '445457131.png';
956        const gm_api_key = 'AIzaSyBGVeBE3SlV5VZR-ln_jj0qacva5Ju-IUc';
957    </script>
957
958    <div ng-controller="agentregistermodalcontroller">
959        <modal></modal>
960    </div>
961    <!-- start ada css -->
962    <style type="text/css">
963        .modal-dialog {
964            /*width: 350px;*/
965            /*height: auto;*/
966        }
967
968        .modal-backdrop {
969            background-color: transparent;
970        }
971    </style>
972    <!-- end ada css -->
973
974    
974<script src="https://cdn.jsdelivr.net/npm/vanilla-hcaptcha"></script>
974
975
976                                
976<script>
977                                    $(document).ready(function() {
978                                        $(".main-menu ul li").has("ul").append("<span class='subToggle'></span>");
979
980                                        $(".subToggle").click(function() {
981                                            $(this).prev("ul").slideToggle(0);
982                                            $(this).toggleClass("active");
983                                        });
984
985                                        $(".menu-open-btn").click(function() {
986                                            $(".header-left").addClass("show");
987                                            $("body").addClass("overflow");
988                                            $(".page-overlay").show(0);
989                                        });
990
991                                        $(".page-overlay,.menu-close-btn").click(function() {
992                                            $(".header-left").removeClass("show");
993                                            $("body").removeClass("overflow");
994                                            $(".page-overlay").hide(0);
995                                        });
996
997                                        $(".main-header .main-menu ul li a").click(function() {
998                                            $(".header-left").removeClass("show");
999                                            $("body").removeClass("overflow");
1000                                            $(".page-overlay").hide(0);
1001                                        });
1002
1003                                        $(window).resize(function() {
1004                                            if ($(window).width() > 1200) {
1005                                                $(".header-left").removeClass("show");
1006                                                $("body").removeClass("overflow");
1007                                                $(".page-overlay").hide(0);
1008                                                $(".subToggle").removeClass("active");
1009                                                $(".main-menu").find("ul").removeAttr("style");
1010                                            }
1011                                        });
1012                                    });
1013                                </script>
1013
1014<!-- Client registration and registration popup -->
1015<div class="modal fade register-modal" tabindex="-1" role="dialog" id="clientRegistrationModal">
1016    <div class="modal-dialog modal-lg" role="document">
1017        <div class="modal-content">
1018
1019            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
1020                    aria-hidden="true">&times;</span></button>
1021
1022            <div class="register-modal-row">
1023                <div class="image-col">
1024                    <div class="image-holder">
1025                        <img src="{{ popupProfileImage }}">
1026                    </div>
1027
1028                </div> <!-- end image-col -->
1029
1030                <div class="register-content-col">
1031                    <div class="register-content-heading-block">
1032                        <h3 class="headingText">Get The Jump On Real Estate Deals</h3>
1033                        <p class="sub-headingText">Sign up today and receive email alerts of new listings that come
1034                            on
1035                            the
1036                            market.</p>
1037                    </div>
1038
1039                    <div class="other-login">
1040
1041                        <div
1042                            class="other-btn-holder text-center d-md-flex flex-row align-items-center justify-content-center">
1043
1044                            <a class="btn other-btn mx-1 my-1" onclick="fblogin()"
1045                                ng-show="agentDetails.facebook_app_id && agentDetails.facebook_app_id != 'null'">
1046                                <img src="{{ base_url }}/uploads/index_files/icons/facebook-login.svg" width="10">Sign
1047                                in
1048                                with Facebook</a>
1049
1050                            <a class="btn other-btn mx-1 my-1" ng-click="loginWithGoogle()">
1051                                <img src="{{ base_url }}/uploads/index_files/icons/google-login.svg" width="17"> Sign
1052                                up
1053                                with Google </a>
1054
1055                        </div>
1056                        <div class="orDevider mt-4 mb-3 text-center">
1057                            <div class="orText">or Sign in with Email</div>
1058                        </div>
1059                    </div>
1060
1061                    <form angular-validator-submit="submitClientRegistration()" name="agentForm" angular-validator
1062                        novalidate>
1063                        <div class="form-area text-left">
1064                            <div class="form-group">
1065                                <label class="control-label">Name <sup class="text-danger">*</sup></label>
1066                                <input type="text" class="form-control" name="name" id="name" ng-model="agentform.name"
1067                                    required>
1068                                <div ng-show="agentForm.$submitted">
1069                                    <div ng-show="agentForm.name.$error.required" style="color:red">Name field is
1070                                        required</div>
1071                                </div>
1072                            </div>
1073                            <div class="form-group">
1074                                <label class="control-label">Email Address <sup class="text-danger">*</sup></label>
1075                                <input type="email" class="form-control" name="agent_email" id="agent_email"
1076                                    ng-model="agentform.email" required>
1077                                <div ng-show="agentForm.$submitted">
1078                                    <div ng-show="agentForm.agent_email.$error.required" style="color:red">Email
1079                                        field
1080                                        is required</div>
1081                                </div>
1082                            </div>
1083                            <div class="form-group">
1084                                <label class="control-label">Mobile Number <sup class="text-danger">*</sup></label>
1085                                <input type="text" class="form-control" name="primary_phone" id="primary_phone"
1086                                    ng-model="agentform.primary_phone" required>
1087                                <div ng-show="agentForm.$submitted">
1088                                    <div ng-show="agentForm.primary_phone.$error.required" style="color:red">
1089                                        Mobile
1090                                        Number field is required</div>
1091                                </div>
1092                            </div>
1093                            <div class="form-group">
1094                                <label class="control-label">What Zip Code Are You Interested In</label>
1095                                <input type="text" class="form-control" name="zip_code" id="zip_code"
1096                                    ng-model="agentform.zip_code">
1097                            </div>
1098
1099                    <div class="form-group">
1100                        <custom-captcha model="agentform.captcha"></custom-captcha>
1101                    </div>
1102                                            <div class="form-btn-holder">
1103                                <button type="submit" class="btn btn-comn-regal-blue btn-center">Register</button>
1104                            </div>
1105                        </div>
1106                    </form>
1107                    <p class="register-modal-infoText">Already Have an
1108                        Account?
1109                        Please <a ng-click="showClientLoginPopup()" style="cursor:pointer">Sign In</a></p>
1110
1111                </div> <!-- end register-content-col -->
1112            </div> <!-- end register-modal-row -->
1113        </div>
1114    </div>
1115</div>
1116<div class="modal fade register-modal" tabindex="-1" role="dialog" id="forgotPasswordModal">
1117    <div class="modal-dialog modal-lg" role="document">
1118        <div class="modal-content">
1119
1120            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
1121                    aria-hidden="true">&times;</span></button>
1122
1123            <div class="register-modal-row">
1124                <div class="image-col">
1125                    <div class="image-holder">
1126                        <img src="{{ popupProfileImage }}">
1127                    </div>
1128
1129                </div> <!-- end image-col -->
1130
1131                <div class="register-content-col">
1132                    <div class="register-content-heading-block">
1133                        <h3 class="headingText">Get The Jump On Real Estate Deals</h3>
1134                        <p class="sub-headingText">Sign in to receive updates.</p>
1135                    </div>
1136
1137                    <div class="other-login">
1138                        <div class="orDevider mt-4 mb-3 text-center">
1139                            <div class="orText">Please enter your email address to reset your password</div>
1140                        </div>
1141                    </div>
1142
1143                    <form angular-validator-submit="submitForgotPassword()" name="agentForm" angular-validator novalidate>
1144                        <div class="form-area text-left">
1145                            <div class="form-group">
1146                                <label class="control-label">Email Address <sup class="text-danger">*</sup></label>
1147                                <input type="email" class="form-control" name="agent_email" id="agent_email"
1148                                    ng-model="agentform.email" required>
1149                                <div ng-show="agentForm.$submitted">
1150                                    <div ng-show="agentForm.agent_email.$error.required" style="color:red">Email
1151                                        field
1152                                        is required</div>
1153                                </div>
1154                            </div>
1155                            <div class="form-group">
1156                                <custom-captcha model="agentform.captcha"></custom-captcha>
1157                            </div>
1158                            <div class="form-btn-holder">
1159                                <button type="submit" class="btn btn-comn-regal-blue btn-center">Send Password Reset Link</button>
1160                            </div>
1161                        </div>
1162                    </form>
1163                    <p class="register-modal-infoText">Remember your password?
1164                        Please <a style="cursor: pointer;" ng-click="showClientLoginPopup()">Sign In</a>
1165                    </p>
1166
1167                </div> <!-- end register-content-col -->
1168            </div> <!-- end register-modal-row -->
1169        </div>
1170    </div>
1171</div><div class="modal fade register-modal" tabindex="-1" role="dialog" id="clientLoginModal">
1172    <div class="modal-dialog modal-lg" role="document">
1173        <div class="modal-content">
1174
1175            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
1176                    aria-hidden="true">&times;</span></button>
1177
1178            <div class="register-modal-row">
1179                <div class="image-col">
1180                    <div class="image-holder">
1181                        <img src="{{ popupProfileImage }}">
1182                    </div>
1183
1184                </div> <!-- end image-col -->
1185
1186                <div class="register-content-col">
1187                    <div class="register-content-heading-block">
1188                        <h3 class="headingText">Get The Jump On Real Estate Deals</h3>
1189                        <p class="sub-headingText">Sign in to receive updates.</p>
1190                    </div>
1191
1192                    <div class="other-login">
1193
1194                        <div
1195                            class="other-btn-holder text-center d-md-flex flex-row align-items-center justify-content-center">
1196
1197                            <a class="btn other-btn mx-1 my-1" onclick="fblogin()"
1198                                ng-show="agentDetails.facebook_app_id && agentDetails.facebook_app_id != 'null'">
1199                                <img src="{{ base_url }}/uploads/index_files/icons/facebook-login.svg" width="10">Sign
1200                                in
1201                                with Facebook</a>
1202
1203                            <a class="btn other-btn mx-1 my-1" ng-click="loginWithGoogle()">
1204                                <img src="{{ base_url }}/uploads/index_files/icons/google-login.svg" width="17"> Sign
1205                                in
1206                                with Google </a>
1207
1208                        </div>
1209                        <div class="orDevider mt-4 mb-3 text-center">
1210                            <div class="orText">or Sign in with Email</div>
1211                        </div>
1212                    </div>
1213
1214                    <form angular-validator-submit="submitClientLogin()" name="agentForm" angular-validator novalidate>
1215                        <div class="form-area text-left">
1216                            <div class="form-group">
1217                                <label class="control-label">Email Address <sup class="text-danger">*</sup></label>
1218                                <input type="email" class="form-control" name="agent_email" id="agent_email"
1219                                    ng-model="agentform.email" required>
1220                                <div ng-show="agentForm.$submitted">
1221                                    <div ng-show="agentForm.agent_email.$error.required" style="color:red">Email
1222                                        field
1223                                        is required</div>
1224                                </div>
1225                            </div>
1226                            <div class="form-group">
1227                                <label class="control-label">Password <sup class="text-danger">*</sup></label>
1228                                <input type="password" class="form-control" name="password" id="password"
1229                                    ng-model="agentform.password" required>
1230                                <div ng-show="agentForm.$submitted">
1231                                    <div ng-show="agentForm.password.$error.required" style="color:red">Password
1232                                        is required</div>
1233                                </div>
1234                            </div>
1235
1236                    <div class="form-group">
1237                        <custom-captcha model="agentform.captcha"></custom-captcha>
1238                    </div>
1239                                            <div class="form-btn-holder">
1240                                <button type="submit" class="btn btn-comn-regal-blue btn-center">Login</button>
1241                            </div>
1242                        </div>
1243                    </form>
1244                    <p class="register-modal-infoText">Don't Have an
1245                        Account?
1246                        Please <a style="cursor: pointer;" ng-click="showClientRegistrationPopup()">Sign Up</a>
1247                    </p>
1248
1249                </div> <!-- end register-content-col -->
1250            </div> <!-- end register-modal-row -->
1251        </div>
1252    </div>
1253</div>
1254
1255<div class="modal fade register-modal" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog"
1256    id="updateProfileModal">
1257    <div class="modal-dialog modal-md" role="document">
1258        <div class="modal-content p-5">
1259            <div class="row">
1260                <div class="col-md-12">
1261                    <div class="register-content-heading-block">
1262                        <h3 class="headingText">Complete the registration</h3>
1263                        <p class="sub-headingText">Complete the registration to receive updates</p>
1264                    </div>
1265                    <form angular-validator-submit="updateProfile()" name="agentForm" angular-validator novalidate>
1266                        <div class="form-area text-left">
1267                            <div class="form-group">
1268                                <label class="control-label">Mobile Number <sup class="text-danger">*</sup></label>
1269                                <input type="text" class="form-control" name="primary_phone" id="primary_phone"
1270                                    ng-model="agentform.primary_phone" required>
1271                                <div ng-show="agentForm.$submitted">
1272                                    <div ng-show="agentForm.primary_phone.$error.required" style="color:red">
1273                                        Mobile
1274                                        Number field is required</div>
1275                                </div>
1276                            </div>
1277                            <div class="form-group">
1278                                <label class="control-label">What Zip Code Are You Interested In</label>
1279                                <input type="text" class="form-control" name="zip_code" id="zip_code"
1280                                    ng-model="agentform.zip_code">
1281                            </div>
1282                            <div class="form-btn-holder">
1283                                <button type="submit" class="btn btn-comn-regal-blue btn-center">Update</button>
1284                            </div>
1285                        </div>
1286                    </form>
1287                </div> <!-- end register-content-col -->
1288            </div> <!-- end register-modal-row -->
1289            <br>
1290        </div>
1291    </div>
1292</div>                            
1293<script>
1294    let responseData = {};
1295    let clientEmail = "";
1296    responseData.booking_info = {};
1297
1298    function setupChatbotBooking(apiData, contact) {
1299        var injector = angular.element(document.body).injector();
1300        var BookingService = injector.get("BookingService");
1301        BookingService.setInitialData({
1302            member_id: user_id
1303        });
1304        BookingService.setAfterContact(apiData);
1305        return BookingService.isBookingLinkVisible();
1306    }
1307
1308    function onCrmChatReady(api) {
1309        api.on('lead_captured', function(lead) {
1310            console.log('lead_captured', lead);
1311            clientEmail = lead.email;
1312            responseData.booking_info.client_id = lead.client_id;
1313            responseData.booking_info.member_id = lead.member.id;
1314            responseData.booking_info.client_email = clientEmail;
1315
1316            // Member info
1317            responseData.booking_info.member_details = lead.member;
1318
1319            // Login here
1320            const payload = {
1321                page: "search",
1322                member_id: String(responseData.booking_info.member_id),
1323                client_id: lead.client_id
1324            };
1325            const loginUrl = base_url + "/firstclient/client-login";
1326            fetch(loginUrl, {
1327                    method: "POST",
1328                    credentials: "include", // Remove if not needed
1329                    headers: {
1330                        "Content-Type": "application/json"
1331                    },
1332                    body: JSON.stringify(payload)
1333                })
1334                .then(async (response) => {
1335                    if (!response.ok) {
1336                        throw new Error(`HTTP ${response.status}`);
1337                    }
1338
1339                    const data = await response.json();
1340                    // Login the user
1341                    const loginData = data.login_data;
1342                    if (loginData) {
1343                        localStorage.setItem('access_token', loginData.token);
1344                        localStorage.setItem('usr_info', loginData.encripted_usr_info);
1345                        var injector = angular.element(document.querySelector('[ng-app]')).injector();
1346                        var $rootScope = injector.get('$rootScope');
1347
1348                        $rootScope.$applyAsync(function() {
1349                            $rootScope.is_front_logged = 1;
1350                            $rootScope.refreshLoggedUser();
1351                        });
1352                        console.log("User logged in successfully");
1353                    }
1354                })
1355                .catch((error) => {
1356                    console.error("Save Search Error:", error);
1357                });
1358
1359            setupChatbotBooking(responseData, lead);
1360        });
1361        api.on('save_search', function(lead) {
1362            console.log(lead);
1363            // return;
1364
1365            // Saving the search
1366            // {
1367            //     "page": "search",
1368            //     "parsed_data": "{\"property_type\":\"\",\"property_types\":[\"Single Family\"],\"bedroom\":0,\"bathroom\":0,\"min_price\":100000,\"max_price\":1000000,\"search_listing_sort\":\"listprice_desc\",\"search_listing_date_sort\":\"listdate_\",\"image_category\":\"\",\"limit\":20,\"page\":1,\"advance_search\":\"{\\\"city\\\":[\\\"Miami\\\"],\\\"bedrooms\\\":0,\\\"bathrooms\\\":0}\",\"advance_search_updated\":\"{\\\"city\\\":[\\\"Miami\\\"]}\",\"agentid\":\"1150\",\"all_bound\":\"{}\",\"menu_id\":null,\"criteria_id\":null,\"page_name\":null}",
1369            //     "member_id": "1150"
1370            // }
1371
1372
1373            // const lead = {
1374            //     budget: "100000-2000000",
1375            //     client_id: 96522,
1376            //     email: "[email protected]",
1377            //     full_name: "Wasim Kabir",
1378            //     location: "Miami",
1379            //     member_id: 1150,
1380            //     move_time: "Next month",
1381            //     primary_phone: "9087654321",
1382            //     property_type: "Single Family",
1383            // }
1384
1385
1386
1387            // Parse budget
1388            let minPrice = null;
1389            let maxPrice = null;
1390
1391            if (lead.budget) {
1392                const budget = lead.budget.split("-").map(Number);
1393                if (budget.length === 1) {
1394                    // min 20% below budget, max 20% above budget
1395                    minPrice = Math.floor(budget[0] * 0.8);
1396                    maxPrice = Math.ceil(budget[0] * 1.2);
1397                } else if (budget.length > 1) {
1398                    minPrice = budget[0];
1399                    maxPrice = budget[1];
1400                }
1401            }
1402            // else {
1403            //     minPrice = budget[0] || null;
1404            //     maxPrice = budget.length > 1 ? budget[1] : null;
1405            // }
1406            let advanceSearch = {};
1407            let advanceSearchUpdated = {};
1408
1409            if (lead.zip_code != null && lead.zip_code != '') {
1410                // Advance search objects
1411                advanceSearch = {
1412                    zip_code: [lead.zip_code],
1413                    bedrooms: 0,
1414                    bathrooms: 0
1415                };
1416
1417                advanceSearchUpdated = {
1418                    zip_code: [lead.zip_code],
1419                };
1420            } else {
1421                // Advance search objects
1422                advanceSearch = {
1423                    // city: [lead.location],
1424                    city: [lead.city],
1425                    bedrooms: 0,
1426                    bathrooms: 0
1427                };
1428
1429                advanceSearchUpdated = {
1430                    // city: [lead.location]
1431                    city: [lead.city]
1432                };
1433            }
1434
1435
1436            // Build parsed_data
1437            const parsedData = {
1438                property_type: "",
1439                // property_types: [lead.property_type],
1440                property_types: [],
1441                bedroom: 0,
1442                bathroom: 0,
1443                min_price: minPrice,
1444                ...(maxPrice !== null && {
1445                    max_price: maxPrice
1446                }),
1447                search_listing_sort: "listprice_desc",
1448                search_listing_date_sort: "listdate_",
1449                image_category: "",
1450                limit: 20,
1451                page: 1,
1452                advance_search: JSON.stringify(advanceSearch),
1453                advance_search_updated: JSON.stringify(advanceSearchUpdated),
1454                agentid: String(lead.member.id),
1455                all_bound: "{}",
1456                menu_id: null,
1457                criteria_id: null,
1458                page_name: null
1459            };
1460
1461            // Final payload
1462            const payload = {
1463                page: "search",
1464                parsed_data: JSON.stringify(parsedData),
1465                member_id: String(responseData.booking_info.member_id),
1466                client_id: lead.client_id
1467            };
1468            // const saveSearchUrl = base_url + "/firstclient/save-search-and-login";
1469            const saveSearchUrl = base_url + "/firstclient/save-search";
1470            fetch(saveSearchUrl, {
1471                    method: "POST",
1472                    credentials: "include", // Remove if not needed
1473                    headers: {
1474                        "Content-Type": "application/json"
1475                    },
1476                    body: JSON.stringify(payload)
1477                })
1478                .then(async (response) => {
1479                    if (!response.ok) {
1480                        throw new Error(`HTTP ${response.status}`);
1481                    }
1482
1483                    const data = await response.json();
1484                    console.log("Save Search Success:", data);
1485                    // // Login the user
1486                    // const loginData = data.login_data;
1487                    // if(loginData) {
1488                    //     localStorage.setItem('access_token', loginData.token);
1489                    //     localStorage.setItem('usr_info', loginData.encripted_usr_info);
1490                    //     var injector = angular.element(document.querySelector('[ng-app]')).injector();
1491                    //     var $rootScope = injector.get('$rootScope');
1492
1493                    //     $rootScope.$applyAsync(function () {
1494                    //         $rootScope.is_front_logged = 1;
1495                    //         $rootScope.refreshLoggedUser();
1496                    //     });
1497                    //     console.log("User logged in successfully");
1498                    // }
1499                })
1500                .catch((error) => {
1501                    console.error("Save Search Error:", error);
1502                });
1503            console.log(lead);
1504        });
1505        api.on('schedule_calendar_booking', function(data) {
1506            console.log(responseData);
1507
1508            console.log("Minimize the chat");
1509            api.minimize();
1510
1511            console.log('schedule_calendar_booking', data);
1512            var injector = angular.element(document.body).injector();
1513
1514            if (!injector) {
1515                console.error('AngularJS injector not found.');
1516                return;
1517            }
1518
1519            injector.invoke(function(
1520                $compile,
1521                $rootScope,
1522                $timeout,
1523                BookingService
1524            ) {
1525
1526                BookingService.setInitialData({
1527                    member_id: responseData.booking_info.member_details.id
1528                });
1529
1530                BookingService.setAfterContact(responseData);
1531
1532                // Create a child scope
1533                var chatbotScope = $rootScope.$new();
1534
1535                // Give the directive its own member_details
1536                chatbotScope.chatbotMemberDetails = responseData.booking_info.member_details;
1537
1538                // Remove previous instance
1539                angular.element("#chatbot-slot-booking").remove();
1540                // Hide any modal-backdrop divs that might be present
1541                // <div class="modal-backdrop fade in"></div>
1542                // Remove the fade and in classes to prevent the backdrop from blocking interaction
1543                // $(".modal-backdrop").removeClass("fade in");
1544                $('.slotBookingModal').on('hidden.bs.modal', function() {
1545                    // 1. Remove the backdrop element from the DOM
1546                    $('.modal-backdrop').remove();
1547
1548                    // 2. Restore scrolling to the main page body
1549                    $('body').removeClass('modal-open');
1550                });
1551
1552                var el = angular.element(
1553                    '<div id="chatbot-slot-booking">' +
1554                    '<slot-booking ' +
1555                    'member-details="chatbotMemberDetails" ' +
1556                    'chatbot-mode="true">' +
1557                    '</slot-booking>' +
1558                    '</div>'
1559                );
1560
1561                angular.element(document.body).append(el);
1562
1563                $compile(el)(chatbotScope);
1564                chatbotScope.$digest();
1565
1566                $timeout(function() {
1567                    $rootScope.$broadcast("slotBooking:open");
1568                });
1569            });
1570
1571            document.addEventListener('bookingCompleted', (event) => {
1572                console.log(event.detail.booking_info);
1573                let bookingId = event.detail.booking_info.data.meeting_id;
1574                // Minimize the booking calendar
1575                $('.slotBookingModal').hide();
1576
1577                api.open();
1578                api.confirmBooking(bookingId);
1579            });
1580        });
1581    }
1582</script>
vendor: 1 bytes, line 1582
1582
1583<script src="https://chatbot.dpirealtywebsites.com/embed/chatbot-loader.js" data-member-id="609"
1584    data-title="Chat with us" data-primary-color="#0d6efd"
1585    data-booking-url="https://new-crm.dpirealtywebsites.com/book?member_id=609"
1586    data-callback="onCrmChatReady" defer></script>
1586
1587</body>
1588
1589</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.