PageSourceSearch

https://www.therodriguezgroupnj.com/9/about/9

html therodriguezgroupnj.com collected 2026-09-28 02:10:21 UTC 74,323 bytes, 1,532 lines download raw bytes

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