1/*global $,oms,WpstateMarker,wpestate_start_filtering_ajax,control_vars,googlecode_regular_vars,wpestate_custom_search_start_filtering_ajax,ajaxcalls_vars,MarkerClusterer,map,google,OverlappingMarkerSpiderfier,gmarkers, Modernizr , InfoBox,google_map_submit_vars ,mapfunctions_vars, googlecode_home_vars,jQuery,googlecode_property_vars*/ 2var pin_images=mapfunctions_vars.pin_images; 3var images = jQuery.parseJSON(pin_images); 4var ipad_time=0; 5var infobox_id=0; 6var shape = { 7 coord: [1, 1, 1, 38, 38, 59, 59 , 1], 8 type: 'poly' 9 }; 10 11var mcOptions; 12var mcluster; 13var clusterStyles; 14var pin_hover_storage; 15var first_time_wpestate_show_inpage_ajax_half=0; 16var panorama; 17var infoBox_sh=null; 18 19var poi_type=''; 20var placeCircle=''; 21var initialGeop=0; 22var heading=0; 23var width_browser=null; 24var infobox_width=null; 25var wraper_height=null; 26var info_image=null; 27var vertical_pan=-190; 28var vertical_off=150; 29var curent_gview_lat = jQuery('#gmap_wrapper').attr('data-cur_lat'); 30var curent_gview_long = jQuery('#gmap_wrapper').attr('data-cur_long'); 31var bounds_list; 32var circleLayer=''; 33 34 35function wpestate_agency_map_function(){ 36 "use strict"; 37 var curent_gview_lat = jQuery('#agency_map').attr('data-cur_lat'); 38 var curent_gview_long = jQuery('#agency_map').attr('data-cur_long'); 39 40 41 42 if(mapfunctions_vars.geolocation_type==1){ 43 44 45 var mapOptions_intern = { 46 flat:false, 47 noClear:false, 48 zoom: 15, 49 scrollwheel: false, 50 draggable: true, 51 center: new google.maps.LatLng(curent_gview_lat,curent_gview_long ), 52 streetViewControl:false, 53 disableDefaultUI: true, 54 mapTypeId: mapfunctions_vars.type.toLowerCase(), 55 gestureHandling: 'cooperative' 56 }; 57 58 59 var map_agency= new google.maps.Map(document.getElementById('agency_map'), mapOptions_intern); 60 if(mapfunctions_vars.map_style !==''){ 61 var styles = JSON.parse ( mapfunctions_vars.map_style ); 62 map_agency.setOptions({styles: styles}); 63 } 64 65 google.maps.visualRefresh = true; 66 google.maps.event.trigger(map_agency, 'resize'); 67 68 69 70 var myLatLng = new google.maps.LatLng(curent_gview_lat, curent_gview_long); 71 var marker = new google.maps.Marker({ 72 position: myLatLng, 73 map: map_agency, 74 icon: wpesate_custompin_agency(), 75 shape: shape, 76 title: 'we are here', 77 zIndex: 1, 78 infoWindowIndex : 0 79 }); 80 81 }else{ 82 wpresidence_agency_dev_map(curent_gview_lat,curent_gview_long,'agency_map'); 83 } 84 85 86 87} 88 89 90 91function wpresidence_agency_dev_map(latitude,longitude,map_name){ 92 "use strict"; 93 94 var mapCenter = L.latLng(latitude, longitude ); 95var map = L.map( map_name,{ 96 center: mapCenter, 97 zoom:7, 98 }); 99 100 var tileLayer = wpresidence_open_stret_tile_details(); 101 map.addLayer( tileLayer ); 102 103 104 var markerCenter = L.latLng( latitude, longitude ); 105 var markerImage = { 106 iconUrl: images['single_pin'], 107 iconSize: [44, 50], 108 iconAnchor: [20, 50], 109 popupAnchor: [1, -50] 110 }; 111 var markerOptions = { 112 riseOnHover: true 113 }; 114 115 116 markerOptions.icon = L.icon( markerImage ); 117 var propertyMarker = L.marker( markerCenter, markerOptions ); 118 119 propertyMarker.addTo( map ); 120 121 122} 123 124 125 126 127 128 129function wpesate_custompin_agency(){ 130 "use strict"; 131 var image = { 132 url: images['single_pin'], 133 size: new google.maps.Size(59, 59), 134 origin: new google.maps.Point(0,0), 135 anchor: new google.maps.Point(16,59 ) 136 }; 137 138 return image; 139} 140 141 142 143 144 145function wpestate_map_shortcode_function() { 146 "use strict"; 147 var maps = {}; // Object to hold map instances 148 var markersArrays = {}; // Object to hold markers for each map 149 150 jQuery('.googleMap_shortcode_class').each(function() { 151 var element = jQuery(this); 152 var elementParent = jQuery(this).parent(); 153 var element = jQuery(this); 154 var elementId = element.attr('id'); 155 var selected_id = parseInt(element.attr('data-post_id'), 10); 156 var curent_gview_lat = element.attr('data-cur_lat'); 157 var curent_gview_long = element.attr('data-cur_long'); 158 var zoom = ''; 159 markersArrays[elementId]= []; 160 if (typeof googlecode_property_vars === 'undefined') { 161 zoom=5; 162 heading=0; 163 164 if(jQuery('#modal_property_maps').length>0){ 165 zoom = element.attr('data-prop-zoom'); 166 heading = 0; 167 }else{ 168 zoom = 5; 169 heading = 0; 170 } 171 }else{ 172 zoom = googlecode_property_vars.page_custom_zoom; 173 heading = parseInt(googlecode_property_vars.camera_angle); 174 } 175 176 var i = 1; 177 var id = selected_id; 178 var lat = curent_gview_lat; 179 var lng = curent_gview_long; 180 var title = decodeURIComponent(element.attr('data-title')); 181 var pin = element.attr('data-pin'); 182 var counter = 1; 183 var image = decodeURIComponent(element.attr('data-thumb')); 184 var price = decodeURIComponent(element.attr('data-price')); 185 var single_first_type = decodeURIComponent(element.attr('data-single-first-type')); 186 var single_first_action = decodeURIComponent(element.attr('data-single-first-action')); 187 var link = decodeURIComponent(element.attr('data-prop_url')); 188 var city = ''; 189 var area = ''; 190 var rooms = decodeURIComponent(element.attr('data-rooms')); 191 var baths = decodeURIComponent(element.attr('data-bathrooms')); 192 var size = decodeURIComponent(element.attr('data-size')); 193 var single_first_type_name = decodeURIComponent(element.attr('data-single-first-type')); 194 var single_first_action_name = decodeURIComponent(element.attr('data-single-first-action')); 195 var agent_id = ''; 196 var county_state = ''; 197 var price_pin = decodeURIComponent(element.attr('data-pin_price')); 198 var cleanprice = decodeURIComponent(element.attr('data-clean_price')); 199 200 201 if (wp_estate_kind_of_map == 2) { 202 var mapCenter = L.latLng(curent_gview_lat, curent_gview_long); 203 maps[elementId] = L.map(element.attr('id'), { 204 center: mapCenter, 205 zoom: zoom 206 }).on('load', function(e) { 207 jQuery('#gmap-loading').remove(); 208 }); 209 210 wpresidence_leaflet_initialize_map_common(maps[elementId]); 211 wpestate_createMarker_sh_leaflet(price_pin, infoBox_sh, markersArrays[elementId] , maps[elementId], county_state, size, i,id, lat, lng, pin, title, counter, image, price, single_first_type, single_first_action, link, city, area, rooms, baths, cleanprice, single_first_type_name, single_first_action_name); 212 213 } else { 214 if (element.length > 0) { 215 216 var mapOptions_intern = { 217 flat: false, 218 noClear: false, 219 zoom: parseInt(zoom, 10), 220 scrollwheel: false, 221 draggable: true, 222 center: new google.maps.LatLng(curent_gview_lat, curent_gview_long), 223 streetViewControl: false, 224 disableDefaultUI: true, 225 mapTypeId: mapfunctions_vars.type.toLowerCase(), 226 gestureHandling: 'cooperative' 227 }; 228 229 maps[elementId] = new google.maps.Map(document.getElementById(elementId), mapOptions_intern); 230 google.maps.visualRefresh = true; 231 google.maps.event.trigger( maps[elementId], 'resize'); 232 233 var infobox_width = 700; 234 var vertical_pan = -215; 235 var width_browser = jQuery(window).width(); 236 237 if (width_browser < 900) { 238 infobox_width = 500; 239 } 240 if (width_browser < 600) { 241 infobox_width = 400; 242 } 243 if (width_browser < 400) { 244 infobox_width = 200; 245 } 246 var boxText = document.createElement("div"); 247 248 var myOptions = { 249 content: boxText, 250 disableAutoPan: true, 251 maxWidth: infobox_width, 252 boxClass: "mybox", 253 zIndex: null, 254 closeBoxMargin: "-13px 0px 0px 0px", 255 closeBoxURL: "", 256 infoBoxClearance: new google.maps.Size(1, 1), 257 isHidden: false, 258 pane: "floatPane", 259 enableEventPropagation: true 260 }; 261 var infoBox_sh = new InfoBox(myOptions); 262 263 if (mapfunctions_vars.map_style !== '') { 264 var styles = JSON.parse(mapfunctions_vars.map_style); 265 maps[elementId].setOptions({ styles: styles }); 266 } 267 268 269 wpestate_createMarker_sh(price_pin, infoBox_sh, markersArrays[elementId] , maps[elementId], 270 county_state, size,i, id, lat, lng, 271 pin, title, counter, image, price, 272 single_first_type, single_first_action, link, city, area, 273 rooms, baths, cleanprice, 274 single_first_type_name, single_first_action_name); 275 276 var viewPlace = new google.maps.LatLng(curent_gview_lat, curent_gview_long); 277 if (typeof (panorama_sh) === 'undefined') { 278 var panorama_sh; 279 } 280 var panorama_sh = maps[elementId].getStreetView(); 281 282 panorama_sh.setPosition(viewPlace); 283 panorama_sh.setPov({ 284 heading: heading, 285 pitch: 0 286 }); 287 288 elementParent.find('.slider_enable_street_sh').click(function() { 289 var cur_lat = element.attr('data-cur_lat'); 290 var cur_long = element.attr('data-cur_long'); 291 var myLatLng = new google.maps.LatLng(cur_lat, cur_long); 292 293 panorama_sh.setPosition(myLatLng); 294 panorama_sh.setVisible(true);
295 elementParent.find('.gmapzoomminus_sh, .gmapzoomplus_sh, .slider_enable_street_sh').hide(); 296 }); 297 298 google.maps.event.addListener(panorama_sh, "closeclick", function() { 299 300 elementParent.find('.gmapzoomminus_sh, .gmapzoomplus_sh, .slider_enable_street_sh').show(); 301 }); 302 303 304 if (mapfunctions_vars.hidden_map) { 305 google.maps.event.trigger(markersArrays[elementId][0], 'click'); 306 setTimeout(function() { 307 google.maps.event.trigger( maps[elementId], "resize"); 308 maps[elementId].setCenter(markersArrays[elementId][0].position); 309 }, 300); 310 } 311 wpestate_initialize_poi( maps[elementId], 2,elementId); 312 } 313 } 314 315 316 317 elementParent.find('.gmapzoomplus_sh').click(function() { 318 var current = parseInt( maps[elementId].getZoom(), 10); 319 current++; 320 if (current > 20) { 321 current = 20; 322 } 323 maps[elementId].setZoom(current); 324 }); 325 326 elementParent.find('.gmapzoomminus_sh').click(function() { 327 var current = parseInt( maps[elementId].getZoom(), 10); 328 current--; 329 if (current < 0) { 330 current = 0; 331 } 332 maps[elementId].setZoom(current); 333 }); 334 335 336 if (wp_estate_kind_of_map == 2) { 337 setTimeout(function() { maps[elementId].invalidateSize(); }, 1000); 338 } else { 339 setTimeout(function() { google.maps.event.trigger( maps[elementId], "resize"); }, 1000); 340 } 341 342 jQuery('.shtabmap, .shacctab,#overview_map').click(function(event) { 343 if (wp_estate_kind_of_map == 2) { 344 setTimeout(function() { maps[elementId].invalidateSize(); }, 100); 345 } else { 346 setTimeout(function() { google.maps.event.trigger( maps[elementId], "resize"); }, 100); 347 } 348 }); 349 }); 350} 351 352 353 354 355 356/* 357* 358* Create marker openstreet 359* 360*/ 361 362 363function wpestate_createMarker_sh_leaflet (pin_price,infoBox_sh,gmarkers_sh,map2,county_state, size, i,id,lat,lng,pin,title,counter,image,price,single_first_type,single_first_action,link,city,area,rooms,baths,cleanprice,single_first_type_name, single_first_action_name ){ 364 "use strict"; 365 var infoboxWrapper = document.createElement( "div" ); 366 infoboxWrapper.className = 'leafinfobox-wrapper'; 367 var infobox = ""; 368 369 var poss=0; 370 var infobox_class=" price_infobox "; 371 372 373 374 375 376 377 if( mapfunctions_vars.useprice === 'yes' ){ 378 infobox_class =' openstreet_map_price_infobox '; 379 } 380 381 382 var info_image=''; 383 if (image === '') { 384 info_image = mapfunctions_vars.path + '/idxdefault.jpg'; 385 } else { 386 info_image = image; 387 } 388 389 var category = decodeURIComponent(single_first_type.replace(/-/g, ' ')); 390 var action = decodeURIComponent(single_first_action.replace(/-/g, ' ')); 391 var category_name = decodeURIComponent(single_first_type_name.replace(/-/g, ' ')); 392 var action_name = decodeURIComponent(single_first_action_name.replace(/-/g, ' ')); 393 394 var in_type = mapfunctions_vars.in_text; 395 if (category === '' || action === '') { 396 in_type = " "; 397 } 398 in_type = " / "; 399 var infoguest,inforooms; 400 401 var infobaths; 402 if(baths!='' && baths!=0 ){ 403 infobaths ='<span id="infobath">'+baths+' '+mapfunctions_vars.ba+'</span>'; 404 }else{ 405 infobaths =''; 406 } 407 408 409 var inforooms; 410 if(rooms!='' && rooms!=0 ){ 411 inforooms='<span id="inforoom">'+rooms+' '+mapfunctions_vars.bd+'</span>'; 412 }else{ 413 inforooms=''; 414 } 415 416 var infosize; 417 if(size!=''){ 418 infosize ='<span id="infosize">'+size+'</span>'; 419 }else{ 420 infosize=''; 421 } 422 423 var title= title.substr(0, 30); 424 if(title.length > 30){ 425 title=title+"..."; 426 } 427 428 429 430 infobox += wpestate_generate_infobox_leaflet(infobox_class,title,link,info_image,price,cleanprice,infosize,infobaths,inforooms); 431 432 var markerOptions = { 433 riseOnHover: true 434 }; 435 436 var markerCenter = L.latLng( lat, lng ); 437 var propertyMarker = ''; 438 439 if( !mapfunctions_vars.hidden_map ){ 440 propertyMarker = L.circle(markerCenter, { 441 color: '#0073e1', 442 fillColor: '#0073e1', 443 fillOpacity: 0.4, 444 strokeWeight: 0.2, 445 radius: 120 446 447 448 }); 449 450 }else{ 451 452 if( mapfunctions_vars.useprice === 'yes' ){ 453 var price_pin_class= 'wpestate_marker openstreet_price_marker '+wpestate_makeSafeForCSS(single_first_type_name.trim() )+' '+wpestate_makeSafeForCSS(single_first_action_name.trim()); 454 455 var pin_price_marker = '<div class="'+price_pin_class+'">'; 456 if (typeof(price) !== 'undefined') { 457 if( mapfunctions_vars.use_price_pins_full_price==='no'){ 458 pin_price_marker +='<div class="interior_pin_price">'+pin_price+'</div>'; 459 }else{ 460 pin_price_marker +='<div class="interior_pin_price">'+price+'</div>'; 461 } 462 } 463 pin_price_marker += '</div>'; 464 465 466 467 var myIcon = L.divIcon({ 468 className:'someclass', 469 iconSize: new L.Point(0, 0), 470 html: pin_price_marker 471 }); 472 propertyMarker = L.marker( markerCenter, {icon: myIcon} ); 473 474 }else{ 475 var markerImage = { 476 iconUrl: wprentals_custompin_leaflet(pin), 477 iconSize: [44, 50], 478 iconAnchor: [20, 50],
479 popupAnchor: [1, -50] 480 }; 481 markerOptions.icon = L.icon( markerImage ); 482 propertyMarker = L.marker( markerCenter, markerOptions ); 483 } 484 } 485 486 propertyMarker.idul = id; 487 propertyMarker.pin = pin; 488 489 490 propertyMarker.addTo( map2 ); 491 492 493 gmarkers_sh.push(propertyMarker); 494 495 if (typeof (bounds_list) !== "undefined") { 496 bounds_list.extend(propertyMarker.getLatLng()); 497 }else{ 498 bounds_list = L.latLngBounds( propertyMarker.getLatLng(),propertyMarker.getLatLng() ); 499 } 500 501 infoboxWrapper.innerHTML = infobox; 502 propertyMarker.bindPopup( infobox ); 503 504 505 if( mapfunctions_vars.hidden_map ){ 506 propertyMarker.fire('click').openPopup(); 507 } 508 509} 510 511 512 513 514 515 516function wpestate_createMarker_sh ( 517 pin_price,infoBox_sh,gmarkers_sh,map2, 518 county_state, size, i,id,lat,lng, 519 pin,title,counter,image,price, 520 single_first_type,single_first_action,link,city,area, 521 rooms,baths,cleanprice, 522 single_first_type_name, single_first_action_name ){ 523 "use strict"; 524 525 526 527 528 var new_title = ''; 529 var myLatLng = new google.maps.LatLng(lat,lng); 530 var poss=0; 531 var infobox_class=" price_infobox "; 532 533 if(mapfunctions_vars.useprice === 'yes' && mapfunctions_vars.hidden_map){ 534 535 536 myLatLng = new google.maps.LatLng(lat,lng); 537 var Titlex = jQuery('<textarea />').html(title).text(); 538 539 var infoWindowIndex = 999; 540 poss=11; 541 542 var price2=price; 543 var my_custom_curr_pos = parseFloat( wpestate_getCookie_map('my_custom_curr_pos')); 544 if (!isNaN(my_custom_curr_pos) && my_custom_curr_pos !== -1) { 545 546 var converted_price= wpestate_get_price_currency(cleanprice,cleanprice); 547 var testRE = price.match('</span>(.*)<span class='); 548 if (testRE !== null ){ 549 price2=price.replace(testRE[1],converted_price); 550 } 551 } 552 553 554 marker= new WpstateMarker( 555 poss, 556 myLatLng, 557 map2, 558 Titlex, 559 counter, 560 image, 561 id, 562 563 price2, 564 pin_price, 565 single_first_type, 566 single_first_action, 567 link, 568 i, 569 rooms, 570 baths, 571 cleanprice, 572 size, 573 single_first_type_name, 574 single_first_action_name, 575 pin, 576 infoWindowIndex 577 ); 578 579 580 }else{ 581 infobox_class=" classic_info "; 582 var marker = new google.maps.Marker({ 583 position: myLatLng, 584 map: map2, 585 icon: wpestate_custompin(pin), 586 shape: shape, 587 title: title, 588 zIndex: counter, 589 image:image, 590 idul:id, 591 price:price, 592 category:single_first_type, 593 action:single_first_action, 594 link:link, 595 city:city, 596 area:area, 597 infoWindowIndex : i, 598 rooms:rooms, 599 baths:baths, 600 cleanprice:cleanprice, 601 size:size, 602 county_state:county_state, 603 category_name:single_first_type_name, 604 action_name:single_first_action_name 605 }); 606 } 607 608 gmarkers_sh.push(marker); 609 610 google.maps.event.addListener(marker, 'click', function() { 611 612 if(this.image===''){ 613 info_image='<img src="' + mapfunctions_vars.path + '/idxdefault.jpg" />'; 614 }else{ 615 info_image=this.image; 616 } 617 618 var category = decodeURIComponent ( this.category.replace(/-/g,' ') ); 619 var action = decodeURIComponent ( this.action.replace(/-/g,' ') ); 620 // var category_name = decodeURIComponent ( this.category_name.replace(/-/g,' ') ); 621 // var action_name = decodeURIComponent ( this.action_name.replace(/-/g,' ') ); 622 var in_type = mapfunctions_vars.in_text; 623 if(category==='' || action===''){ 624 in_type=" "; 625 } 626 627 var infobaths; 628 if(this.baths!='' && this.baths!=0){ 629 infobaths ='<span id="infobath">'+this.baths+' '+mapfunctions_vars.ba+'</span>'; 630 }else{ 631 infobaths =''; 632 } 633 634 var inforooms; 635 if(this.rooms!='' && this.rooms!=0){ 636 inforooms='<span id="inforoom">'+this.rooms+' '+mapfunctions_vars.bd+'</span>'; 637 }else{ 638 inforooms=''; 639 } 640 641 var infosize; 642 if(this.size!=''){ 643 infosize ='<span id="infosize">'+this.size; 644 infosize =infosize+'</span>'; 645 }else{ 646 infosize=''; 647 } 648 649
650 var title= this.title.substr(0, 30); 651 if(this.title.length > 30){ 652 title=title+"..."; 653 } 654 655 infoBox_sh.setContent( wpestate_generate_infobox_sh(infobox_class,title,link,info_image,price,cleanprice,infosize,infobaths,inforooms)); 656 infoBox_sh.open(map2, this); 657 map2.setCenter(this.position); 658 659 // Add a click listener to the infocloser 660 google.maps.event.addListenerOnce(infoBox_sh, 'domready', function () { 661 document.getElementById('infocloser').addEventListener('click', function () { 662 infoBox_sh.close(); 663 }); 664 }); 665 666 667 668 669 if (control_vars.show_adv_search_map_close === 'no') { 670 $('.search_wrapper').addClass('adv1_close'); 671 wpestate_adv_search_click(); 672 } 673 674 wpestate_close_adv_search(); 675 });/////////////////////////////////// end event listener 676 677 678 679} 680 681 682 683///////////////////////////////////////////////////////////////////////////////////////////////// 684// change map 685///////////////////////////////////////////////////////////////////////////////////////////////// 686 687function wpestate_change_map_type(map_type){ 688 "use strict"; 689 if(map_type==='map-view-roadmap'){ 690 map.setMapTypeId(google.maps.MapTypeId.ROADMAP); 691 }else if(map_type==='map-view-satellite'){ 692 map.setMapTypeId(google.maps.MapTypeId.SATELLITE); 693 }else if(map_type==='map-view-hybrid'){ 694 map.setMapTypeId(google.maps.MapTypeId.HYBRID); 695 }else if(map_type==='map-view-terrain'){ 696 map.setMapTypeId(google.maps.MapTypeId.TERRAIN); 697 } 698 699} 700 701///////////////////////////////////////////////////////////////////////////////////////////////// 702// set markers... loading pins over map 703///////////////////////////////////////////////////////////////////////////////////////////////// 704 705function wpestate_setMarkers(map, locations, with_bound) { 706 "use strict"; 707 var map_open; 708 var myLatLng; 709 var selected_id = parseInt( jQuery('#gmap_wrapper').attr('data-post_id') ); 710 if( isNaN(selected_id) ){ 711 selected_id = parseInt( jQuery('#googleMapSlider').attr('data-post_id'),10 ); 712 } 713 714 var open_height = parseInt(mapfunctions_vars.open_height,10); 715 var closed_height = parseInt(mapfunctions_vars.closed_height,10); 716 717 width_browser = jQuery(window).width(); 718 719 infobox_width=700; 720 vertical_pan=-215; 721 if (width_browser<900){ 722 infobox_width=500; 723 } 724 if (width_browser<600){ 725 infobox_width=400; 726 } 727 if (width_browser<400){ 728 infobox_width=200; 729 } 730 731 732 733 734 bounds = new google.maps.LatLngBounds(); 735 736 for (var i = 0; i < locations.length; i++) { 737 var beach = locations[i]; 738 var id = beach[10]; 739 var lat = beach[1]; 740 var lng = beach[2]; 741 var title = decodeURIComponent ( beach[0] ); 742 var pin = beach[8]; 743 var counter = beach[3]; 744 var image = decodeURIComponent ( beach[4] ); 745 var price = decodeURIComponent ( beach[5] ); 746 var single_first_type = decodeURIComponent ( beach[6] ); 747 var single_first_action = decodeURIComponent ( beach[7] ); 748 var link = decodeURIComponent ( beach[9] ); 749 var cleanprice = beach[11]; 750 var rooms = beach[12]; 751 var baths = beach[13]; 752 var size = beach[14]; 753 var single_first_type_name = decodeURIComponent ( beach[15] ); 754 var single_first_action_name = decodeURIComponent ( beach[16] ); 755 var pin_price = decodeURIComponent ( beach[17] ); 756 757 758 wpestate_createMarker ( pin_price,size, i,id,lat,lng,pin,title,counter,image,price,single_first_type,single_first_action,link,rooms,baths,cleanprice,single_first_type_name, single_first_action_name); 759 760 // found the property 761 if(selected_id===id){ 762 found_id=i; 763 } 764 765 766 }//end for 767 768 769 wpestate_map_cluster(); 770 if( !jQuery('body').hasClass('single-estate_property') ){ 771 oms = new OverlappingMarkerSpiderfier(map, {markersWontMove: true, markersWontHide: true,keepSpiderfied :true,legWeight:2}); 772 wpestate_setOms(gmarkers); 773 } 774 775 if(with_bound===1){ 776 if (!bounds.isEmpty()) { 777 778 wpestate_fit_bounds(bounds); 779 }else{ 780 wpestate_fit_bounds_nolsit(); 781 } 782 } 783 784 // pan to the latest pin for taxonmy and adv search 785 if(mapfunctions_vars.generated_pins!=='0'){ 786 myLatLng = new google.maps.LatLng(lat, lng); 787 } 788 789 790 791 792}// end wpestate_setMarkers 793 794 795///////////////////////////////////////////////////////////////////////////////////////////////// 796// create marker 797///////////////////////////////////////////////////////////////////////////////////////////////// 798 799 800function wpestate_createMarker ( pin_price,size, i,id,lat,lng,pin,title,counter,image,price,single_first_type,single_first_action,link,rooms,baths,cleanprice,single_first_type_name, single_first_action_name){ 801 802 "use strict"; 803 var myLatLng = new google.maps.LatLng(lat,lng); 804 var Titlex = jQuery('<textarea />').html(title).text(); 805 var poss = 0; 806 var infobox_class = " price_infobox "; 807 var boxText = document.createElement("div"); 808 809 var myOptions = { 810 content: boxText, 811 disableAutoPan: true, 812 maxWidth: infobox_width, 813 boxClass:"mybox", 814 zIndex: null, 815 closeBoxMargin: "-13px 0px 0px 0px", 816 closeBoxURL: "", 817 infoBoxClearance: new google.maps.Size(1, 1), 818 isHidden: false, 819 pane: "floatPane", 820 enableEventPropagation: true 821 }; 822 infoBox = new InfoBox(myOptions); 823 824 825 826 if(mapfunctions_vars.useprice === 'yes'){ 827 828 829 830 var price2=price; 831 var my_custom_curr_pos = parseFloat( wpestate_getCookie_map('my_custom_curr_pos')); 832 if (!isNaN(my_custom_curr_pos) && my_custom_curr_pos !== -1) { 833 var converted_price= wpestate_get_price_currency(cleanprice,cleanprice); 834 var testRE = price.match('</span>(.*)<span class='); 835 if (testRE !== null ){ 836 price2=price.replace(testRE[1],converted_price); 837 } 838 } 839 840 841 var myLatlng = new google.maps.LatLng(lat,lng); 842 marker= new WpstateMarker( 843 poss, 844 myLatlng, 845 map, 846 Titlex, 847 counter, 848 image, 849 id, 850 851 price2, 852 pin_price, 853 single_first_type, 854 single_first_action, 855 link, 856 i, 857 rooms, 858 baths, 859 cleanprice, 860 size, 861 single_first_type_name, 862 single_first_action_name, 863 pin, 864 i 865 ); 866 }else{ 867 infobox_class=" classic_info "; 868 var marker = new google.maps.Marker({ 869 position: myLatLng, 870 map: map, 871 icon: wpestate_custompin(pin), 872 shape: shape, 873 title: Titlex, 874 zIndex: counter, 875 image: image, 876 idul: id, 877 price: price, 878 category: single_first_type, 879 action: single_first_action, 880 link: link, 881 infoWindowIndex : i, 882 rooms: rooms, 883 baths: baths, 884 cleanprice: cleanprice, 885 size: size, 886 category_name: single_first_type_name, 887 action_name: single_first_action_name 888 }); 889 890 } 891 892 893 gmarkers.push(marker); 894 bounds.extend(marker.getPosition()); 895 google.maps.event.addListener(marker, 'click', function(event) { 896 897 // wpestate_new_open_close_map(1); 898 899 if( typeof(is_map_shortcode) ==="undefined" ){ 900 wpestate_map_callback( wpestate_new_open_close_map ); 901 google.maps.event.trigger(map, 'resize'); 902 } 903 904 if(this.image===''){ 905 info_image='<img src="' + mapfunctions_vars.path + '/idxdefault.jpg" />'; 906 }else{ 907 info_image=this.image; 908 } 909 910 var category = decodeURIComponent ( this.category.replace(/-/g,' ') ); 911 var action = decodeURIComponent ( this.action.replace(/-/g,' ') ); 912 var category_name = decodeURIComponent ( this.category_name.replace(/-/g,' ') ); 913 var action_name = decodeURIComponent ( this.action_name.replace(/-/g,' ') ); 914 var in_type = mapfunctions_vars.in_text; 915 if(category==='' || action===''){ 916 in_type=" "; 917 } 918 919 var infobaths; 920 if(this.baths!='' && this.baths!=0){ 921 infobaths ='<span id="infobath">'+this.baths+' '+mapfunctions_vars.ba+'</span>'; 922 }else{ 923 infobaths =''; 924 } 925 926 var inforooms; 927 if(this.rooms!='' && this.rooms!=0){ 928 inforooms='<span id="inforoom">'+this.rooms+' '+mapfunctions_vars.bd+'</span>'; 929 }else{ 930 inforooms=''; 931 } 932 933 var infosize; 934 if(this.size!=''){ 935 infosize ='<span id="infosize">'+this.size; 936 937 infosize =infosize+'</span>'; 938 }else{ 939 infosize=''; 940 } 941 942
943 var title= this.title.substr(0, 30); 944 if(this.title.length > 30){ 945 title=title+"..."; 946 } 947 948 949 infoBox.setContent( wpestate_generate_infobox(infobox_class,title,link,info_image,price,cleanprice,infosize,infobaths,inforooms)); 950 infoBox.open(map, this); 951 map.setCenter(this.position); 952 953 if (control_vars.show_adv_search_map_close === 'no') { 954 $('.search_wrapper').addClass('adv1_close'); 955 wpestate_adv_search_click(); 956 } 957 958 wpestate_close_adv_search(); 959 });/////////////////////////////////// end event listener 960 961 962 963} 964 965function wpestate_pan_to_last_pin(myLatLng){ 966 "use strict"; 967 map.setCenter(myLatLng); 968} 969 970 971function wpestate_generate_infobox(infobox_class,title,link,info_image,price,cleanprice,infosize,infobaths,inforooms){ 972 973 var infobox= '<div class="info_details '+infobox_class+'"><span id="infocloser" onClick=\'javascript:infoBox.close();\' ></span>'; 974 infobox = infobox+ '<div class="infobox_wrapper_image"> <a href="'+link+'">'+info_image+'</a></div>'; 975 infobox = infobox+ '<div class="infobox_title"><a href="'+link+'" id="infobox_title">'+title+'</a></div>'; 976 infobox = infobox+ '<div class="prop_pricex">'+wpestate_get_price_currency(price,cleanprice)+'</div>'; 977 infobox = infobox+ '<div class="infobox_details">'+inforooms+' '+infobaths+' '+infosize+'</div></div>'; 978 979 return infobox; 980 981} 982 983function wpestate_generate_infobox_sh(infobox_class,title,link,info_image,price,cleanprice,infosize,infobaths,inforooms){ 984 985 var infobox= '<div class="info_details '+infobox_class+'"><span id="infocloser" onClick=\'javascript:infoBox_sh.close();\' ></span>'; 986 infobox = infobox+ '<div class="infobox_wrapper_image"> <a href="'+link+'">'+info_image+'</a></div>'; 987 infobox = infobox+ '<div class="infobox_title"><a href="'+link+'" id="infobox_title">'+title+'</a></div>'; 988 infobox = infobox+ '<div class="prop_pricex">'+wpestate_get_price_currency(price,cleanprice)+'</div>'; 989 infobox = infobox+ '<div class="infobox_details">'+inforooms+' '+infobaths+' '+infosize+'</div></div>'; 990 991 return infobox; 992 993} 994 995 996function wpestate_generate_infobox_leaflet(infobox_class,title,link,info_image,price,cleanprice,infosize,infobaths,inforooms){ 997 var title= title.substr(0, 32); 998 if(title.length > 32){ 999 title=title+"..."; 1000 } 1001 var infobox= '<div class="info_details '+infobox_class+'"><span id="infocloser" onClick=\'javascript:jQuery(".leaflet-popup-close-button")[0].click();\' ></span>'; 1002 infobox = infobox+ '<div class="infobox_wrapper_image"> <a href="'+link+'">'+info_image+'</a></div>'; 1003 infobox = infobox+ '<div class="infobox_title"><a href="'+link+'" id="infobox_title">'+title+'</a></div>'; 1004 infobox = infobox+ '<div class="prop_pricex">'+wpestate_get_price_currency(price,cleanprice)+'</div>'; 1005 infobox = infobox+ '<div class="infobox_details">'+inforooms+' '+infobaths+' '+infosize+'</div></div>'; 1006 1007 return infobox; 1008 1009} 1010 1011 1012///////////////////////////////////////////////////////////////////////////////////////////////// 1013// map set search 1014///////////////////////////////////////////////////////////////////////////////////////////////// 1015function wpestate_setOms(gmarkers){ 1016 "use strict"; 1017 for (var i = 0; i < gmarkers.length; i++) { 1018 if(typeof oms !== 'undefined'){ 1019 oms.addMarker(gmarkers[i]); 1020 }else{ 1021 1022 } 1023 } 1024 1025} 1026 1027///////////////////////////////////////////////////////////////////////////////////////////////// 1028// map set search 1029///////////////////////////////////////////////////////////////////////////////////////////////// 1030 1031function wpestate_set_google_search(map){ 1032 "use strict"; 1033 if( parseInt(mapbase_vars.wp_estate_kind_of_map) == 2 || jQuery('#google-default-search').length===0 ){ 1034 return; 1035 } 1036 1037 1038 var input,searchBox,places,place; 1039 1040 input = (document.getElementById('google-default-search')); 1041 searchBox = new google.maps.places.SearchBox(input); 1042 1043 1044 google.maps.event.addListener(searchBox, 'places_changed', function() { 1045 places = searchBox.getPlaces(); 1046 1047 if (places.length == 0) { 1048 return; 1049 } 1050 1051 var bounds = new google.maps.LatLngBounds(); 1052 for (var i = 0; place = places[i]; i++) { 1053 var image = { 1054 url: place.icon, 1055 size: new google.maps.Size(71, 71), 1056 origin: new google.maps.Point(0, 0), 1057 anchor: new google.maps.Point(17, 34), 1058 scaledSize: new google.maps.Size(25, 25) 1059 }; 1060 1061 // Create a marker for each place. 1062 var marker = new google.maps.Marker({ 1063 map: map, 1064 icon: image, 1065 title: place.name, 1066 position: place.geometry.location 1067 }); 1068 1069 gmarkers.push(marker); 1070 bounds.extend(place.geometry.location); 1071 1072 } 1073 1074 map.fitBounds(bounds); 1075 if (!bounds.isEmpty()) { 1076 wpestate_fit_bounds(bounds); 1077 }else{ 1078 wpestate_fit_bounds_nolsit(); 1079 } 1080 map.setZoom(15); 1081 }); 1082 1083 1084 google.maps.event.addListener(map, 'bounds_changed', function() { 1085 var bounds = map.getBounds(); 1086 searchBox.setBounds(bounds); 1087 }); 1088 1089} 1090 1091function wpestate_fit_bounds_nolsit(){ 1092 "use strict"; 1093 map.setZoom(3); 1094} 1095 1096 1097 1098function wpestate_fit_bounds(bounds){ 1099 "use strict"; 1100 1101 if(placeCircle!=''){ 1102 map.fitBounds(placeCircle.getBounds()); 1103 }else{ 1104 map.fitBounds(bounds); 1105 google.maps.event.addListenerOnce(map, 'idle', function() { 1106 if( map.getZoom()>15 ) { 1107 map.setZoom(15); 1108 } 1109 }); 1110 } 1111 1112 1113} 1114 1115 1116///////////////////////////////////////////////////////////////////////////////////////////////// 1117// open close map 1118///////////////////////////////////////////////////////////////////////////////////////////////// 1119 1120function wpestate_new_open_close_map(type){ 1121 "use strict"; 1122 if( jQuery('#gmap_wrapper').hasClass('fullmap') ){ 1123 return; 1124 } 1125 1126 if(mapfunctions_vars.open_close_status !== '1'){ // we can resize map 1127 1128 var current_height = jQuery('#googleMap').outerHeight(); 1129 var closed_height = parseInt(mapfunctions_vars.closed_height,10); 1130 var open_height = parseInt(mapfunctions_vars.open_height,10); 1131 var googleMap_h = open_height; 1132 var gmapWrapper_h = open_height; 1133 1134 if( infoBox!== null){ 1135 infoBox.close(); 1136 } 1137 1138 if ( current_height === closed_height ) { 1139 googleMap_h = open_height; 1140 if (Modernizr.mq('only all and (max-width: 940px)')) { 1141 gmapWrapper_h = open_height; 1142 } else { 1143 jQuery('#gmap-menu').show(); 1144 gmapWrapper_h = open_height; 1145 } 1146 1147 wpestate_new_show_advanced_search(); 1148 vertical_off=0; 1149 jQuery('#openmap').empty().append('<i class="fas fa-angle-up"></i>'+mapfunctions_vars.close_map); 1150 1151 } else if(type===2) { 1152 jQuery('#gmap-menu').hide(); 1153 jQuery('#advanced_search_map_form').hide(); 1154 googleMap_h = gmapWrapper_h = closed_height; 1155 1156 // hide_advanced_search(); 1157 wpestate_new_hide_advanced_search(); 1158 vertical_off=150; 1159 } 1160 jQuery('#gmap_wrapper').css('height', gmapWrapper_h+'px'); 1161 jQuery('#googleMap').css('height', googleMap_h+'px'); 1162 jQuery('.tooltip').fadeOut("fast"); 1163 1164 if(wp_estate_kind_of_map===1){ 1165 setTimeout(function(){google.maps.event.trigger(map, "resize"); }, 300); 1166 } 1167 } 1168} 1169 1170 1171 1172 1173 1174///////////////////////////////////////////////////////////////////////////////////////////////// 1175// build map cluter 1176///////////////////////////////////////////////////////////////////////////////////////////////// 1177function wpestate_map_cluster(){ 1178 "use strict"; 1179 1180 if(mapfunctions_vars.user_cluster==='yes'){ 1181 clusterStyles = [ 1182 { 1183 textColor: '#ffffff', 1184 opt_textColor: '#ffffff', 1185 url: images['cloud_pin'], 1186 height: 72, 1187 width: 72, 1188 textSize:15, 1189 1190 } 1191 ]; 1192 mcOptions = {gridSize: 50, 1193 ignoreHidden:true, 1194 maxZoom: parseInt( mapfunctions_vars.zoom_cluster,10), 1195 styles: clusterStyles 1196 }; 1197 mcluster = new MarkerClusterer(map, gmarkers, mcOptions); 1198 mcluster.setIgnoreHidden(true); 1199 } 1200 1201} 1202 1203 1204 1205///////////////////////////////////////////////////////////////////////////////////////////////// 1206/// zoom
1207///////////////////////////////////////////////////////////////////////////////////////////////// 1208 1209 1210if( document.getElementById('gmapzoomplus') ){ 1211 jQuery('#gmapzoomplus').on('click',function(){ 1212 "use strict"; 1213 var current= parseInt( map.getZoom(),10); 1214 current++; 1215 if(current>20){ 1216 current=20; 1217 } 1218 map.setZoom(current); 1219 }); 1220} 1221 1222 1223if( document.getElementById('gmapzoomminus') ){ 1224 jQuery('#gmapzoomminus').on('click',function(){ 1225 "use strict"; 1226 var current= parseInt( map.getZoom(),10); 1227 current--; 1228 if(current<0){ 1229 current=0; 1230 } 1231 map.setZoom(current); 1232 }); 1233} 1234 1235 1236 1237///////////////////////////////////////////////////////////////////////////////////////////////// 1238/// geolocation 1239///////////////////////////////////////////////////////////////////////////////////////////////// 1240 1241if( document.getElementById('geolocation-button') ){ 1242 jQuery('#geolocation-button').on('click',function(){ 1243 "use strict"; 1244 wpestate_myposition(map); 1245 wpestate_close_adv_search(); 1246 }); 1247} 1248 1249 1250if( document.getElementById('mobile-geolocation-button') ){ 1251 jQuery('#mobile-geolocation-button').on('click',function(){ 1252 "use strict"; 1253 wpestate_myposition(map); 1254 wpestate_close_adv_search(); 1255 }); 1256} 1257 1258 1259 1260 1261 1262function wpestate_myposition(map){ 1263 "use strict"; 1264 if(navigator.geolocation){ 1265 var latLong; 1266 if (location.protocol === 'https:') { 1267 navigator.geolocation.getCurrentPosition(wpestate_showMyPosition_original,wpestate_errorCallback,{timeout:10000}); 1268 }else{ 1269 jQuery.getJSON("http://ipinfo.io", function(ipinfo){ 1270 latLong = ipinfo.loc.split(","); 1271 wpestate_showMyPosition (latLong); 1272 }); 1273 } 1274 1275 }else{ 1276 alert(mapfunctions_vars.geo_no_brow); 1277 } 1278} 1279 1280 1281function wpestate_errorCallback(){ 1282 "use strict"; 1283 alert(mapfunctions_vars.geo_no_pos); 1284} 1285 1286 1287 1288 1289function wpestate_showMyPosition_original(pos){ 1290 "use strict"; 1291 if(wp_estate_kind_of_map===1){ 1292 var shape = { 1293 coord: [1, 1, 1, 38, 38, 59, 59 , 1], 1294 type: 'poly' 1295 }; 1296 1297 var MyPoint= new google.maps.LatLng( pos.coords.latitude, pos.coords.longitude); 1298 map.setCenter(MyPoint); 1299 1300 var marker = new google.maps.Marker({ 1301 position: MyPoint, 1302 map: map, 1303 icon: wpestate_custompinchild(), 1304 shape: shape, 1305 title: '', 1306 zIndex: 999999999, 1307 image:'', 1308 price:'', 1309 category:'', 1310 action:'', 1311 link:'' , 1312 infoWindowIndex : 99 , 1313 radius: parseInt(mapfunctions_vars.geolocation_radius,10)+' '+mapfunctions_vars.geo_message 1314 }); 1315 1316 var populationOptions = { 1317 strokeColor: '#67cfd8', 1318 strokeOpacity: 0.6, 1319 strokeWeight: 1, 1320 fillColor: '#67cfd8', 1321 fillOpacity: 0.2, 1322 map: map, 1323 center: MyPoint, 1324 radius: parseInt(mapfunctions_vars.geolocation_radius,10) 1325 }; 1326 1327 var cityCircle = new google.maps.Circle(populationOptions); 1328 1329 var label = new Label({ 1330 map: map 1331 }); 1332 label.bindTo('position', marker); 1333 label.bindTo('text', marker, 'radius'); 1334 label.bindTo('visible', marker); 1335 label.bindTo('clickable', marker); 1336 label.bindTo('zIndex', marker); 1337 }else{ 1338 1339 var new_pos=[pos.coords.latitude, pos.coords.longitude]; 1340 wprentals_draw_leaflet_circle(new_pos); 1341 } 1342 1343} 1344 1345 1346var geo_markers = []; 1347var geo_circle = []; 1348var geo_label = []; 1349 1350function wpestate_showMyPosition(pos){ 1351 "use strict"; 1352 1353 if(wp_estate_kind_of_map===1){ 1354 wpresidence_draw_google_circle(pos); 1355 }else if(wp_estate_kind_of_map===2){ 1356 wprentals_draw_leaflet_circle(pos) 1357 } 1358 1359} 1360 1361 1362function wprentals_draw_leaflet_circle(pos){ 1363 1364 L.circle( [pos[0],pos[1]], parseInt(mapfunctions_vars.geolocation_radius, 10)).addTo(map); 1365 1366 var markerImage = { 1367 iconUrl: wprentals_custompinchild_leaflet(), 1368 iconSize: [38, 59], 1369 iconAnchor: [20, 50],
1370 popupAnchor: [1, -50] 1371 }; 1372 var markerOptions = { 1373 riseOnHover: true 1374 }; 1375 1376 var markerCenter = L.latLng( pos[0], pos[1] ); 1377 markerOptions.icon = L.icon( markerImage ); 1378 L.marker( markerCenter, markerOptions ).addTo( map ); 1379 1380 1381 var wpresidence_leaflet_label = '<div class="wpresidence_leaflet_label">'; 1382 wpresidence_leaflet_label+=parseInt(mapfunctions_vars.geolocation_radius, 10) + ' ' + mapfunctions_vars.geo_message 1383 wpresidence_leaflet_label += '</div>'; 1384 1385 var myIcon = L.divIcon({ 1386 className:'someclass', 1387 iconSize: new L.Point(0, 0), 1388 html: wpresidence_leaflet_label 1389 }); 1390 1391 L.marker( markerCenter, {icon: myIcon} ).addTo( map ); 1392 1393 1394 map.panTo(markerCenter); 1395 map.setZoom(10); 1396} 1397 1398 1399 1400 1401 1402 1403 1404function wpresidence_draw_google_circle(pos){ 1405 "use strict"; 1406 for (var i = 0; i < geo_markers.length; i++) { 1407 geo_markers[i].setMap(null); 1408 geo_circle[i].setMap(null); 1409 geo_label[i].setMap(null); 1410 } 1411 1412 geo_markers = []; 1413 geo_circle = []; 1414 geo_label = []; 1415 1416 1417 var shape = { 1418 coord: [1, 1, 1, 38, 38, 59, 59 , 1], 1419 type: 'poly' 1420 }; 1421 1422 // var MyPoint= new google.maps.LatLng( pos.coords.latitude, pos.coords.longitude); 1423 1424 var MyPoint= new google.maps.LatLng( pos[0], pos[1]); 1425 map.setCenter(MyPoint); 1426 map.setZoom(13); 1427 var marker = new google.maps.Marker({ 1428 position: MyPoint, 1429 map: map, 1430 icon: wpestate_custompinchild(), 1431 shape: shape, 1432 title: '', 1433 zIndex: 999999999, 1434 image:'', 1435 price:'', 1436 category:'', 1437 action:'', 1438 link:'' , 1439 infoWindowIndex : 99 , 1440 radius: parseInt(mapfunctions_vars.geolocation_radius,10)+' '+mapfunctions_vars.geo_message 1441 }); 1442 geo_markers.push(marker); 1443 1444 1445 var populationOptions = { 1446 strokeColor: '#67cfd8', 1447 strokeOpacity: 0.6, 1448 strokeWeight: 1, 1449 fillColor: '#67cfd8', 1450 fillOpacity: 0.2, 1451 map: map, 1452 center: MyPoint, 1453 radius: parseInt(mapfunctions_vars.geolocation_radius,10) 1454 }; 1455 1456 1457 1458 var cityCircle = new google.maps.Circle(populationOptions); 1459 geo_circle.push(cityCircle); 1460 1461 var label = new Label({ 1462 map: map 1463 }); 1464 1465 label.bindTo('position', marker); 1466 label.bindTo('text', marker, 'radius'); 1467 label.bindTo('visible', marker); 1468 label.bindTo('clickable', marker); 1469 label.bindTo('zIndex', marker); 1470 geo_label.push(cityCircle); 1471} 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481function wpestate_custompinchild(){ 1482 "use strict"; 1483 1484 var custom_img; 1485 var extension=''; 1486 var ratio = jQuery(window).dense('devicePixelRatio'); 1487 1488 if(ratio>1){ 1489 extension='_2x'; 1490 } 1491 1492 1493 if( typeof( images['userpin'] )=== 'undefined' || images['userpin']===''){ 1494 custom_img= mapfunctions_vars.path+'/'+'userpin'+extension+'.png'; 1495 }else{ 1496 custom_img=images['userpin']; 1497 if(ratio>1){ 1498 custom_img=wpestate_get_custom_retina_pin(custom_img); 1499 } 1500 } 1501 1502 1503 1504 1505 var image; 1506 if(ratio>1){ 1507 image = { 1508 url: custom_img, 1509 size: new google.maps.Size(88, 96), 1510 scaledSize : new google.maps.Size(44, 48), 1511 origin: new google.maps.Point(0,0), 1512 anchor: new google.maps.Point(16,59 ) 1513 }; 1514 1515 }else{ 1516 image = { 1517 url: custom_img, 1518 size: new google.maps.Size(59, 59), 1519 origin: new google.maps.Point(0,0), 1520 anchor: new google.maps.Point(16,59 ) 1521 }; 1522 } 1523 1524 1525 return image; 1526 1527} 1528 1529 1530 1531 1532///////////////////////////////////////////////////////////////////////////////////////////////// 1533/// 1534///////////////////////////////////////////////////////////////////////////////////////////////// 1535 1536if( document.getElementById('gmap') ){ 1537 google.maps.event.addDomListener(document.getElementById('gmap'), 'mouseout', function () { 1538 google.maps.event.trigger(map, "resize"); 1539 }); 1540} 1541 1542 1543if( document.getElementById('search_map_button') ){ 1544 google.maps.event.addDomListener(document.getElementById('search_map_button'), 'click', function () { 1545 infoBox.close(); 1546 }); 1547} 1548 1549 1550 1551if( document.getElementById('advanced_search_map_button') ){ 1552 google.maps.event.addDomListener(document.getElementById('advanced_search_map_button'), 'click', function () { 1553 infoBox.close(); 1554 }); 1555} 1556
1557//////////////////////////////////////////////////////////////////////////////////////////////// 1558/// navigate troguh pins 1559/////////////////////////////////////////////////////////////////////////////////////////////// 1560 1561jQuery('#gmap-next').on( 'click', function(event) { 1562 "use strict"; 1563 current_place++; 1564 external_action_ondemand=1; 1565 lealet_map_move_on_hover=1; 1566 1567 if (current_place>gmarkers.length){ 1568 current_place=1; 1569 } 1570 while(gmarkers[current_place-1].visible===false){ 1571 current_place++; 1572 if (current_place>gmarkers.length){ 1573 current_place=1; 1574 } 1575 } 1576 1577 if( map.getZoom() <15 ){ 1578 map.setZoom(15); 1579 } 1580 1581 1582 1583 1584 if(wp_estate_kind_of_map===1){ 1585 google.maps.event.trigger(gmarkers[current_place-1], 'click'); 1586 }else if(wp_estate_kind_of_map===2){ 1587 1588 map.setView(gmarkers[current_place - 1].getLatLng()); 1589 if (! gmarkers[current_place - 1]._icon) { 1590 gmarkers[current_place - 1].__parent.spiderfy(); 1591 } 1592 lealet_map_move_on_hover=1; 1593 1594 map.setZoom(20); 1595 1596 if( (current_place - 1)==0 || (current_place - 1)==gmarkers.length ){ 1597 setTimeout(function(){ gmarkers[current_place - 1].fire('click'); }, 1000); 1598 }else{ 1599 gmarkers[current_place - 1].fire('click'); 1600 } 1601 1602 1603 lealet_map_move_on_hover=1; 1604 wpestate_map_callback( wpestate_new_open_close_map ); 1605 } 1606 1607}); 1608 1609 1610jQuery('#gmap-prev').on( 'click', function(event) { 1611 "use strict"; 1612 external_action_ondemand=1; 1613 lealet_map_move_on_hover=1; 1614 current_place--; 1615 if (current_place<1){ 1616 current_place=gmarkers.length; 1617 } 1618 while(gmarkers[current_place-1].visible===false){ 1619 current_place--; 1620 if (current_place>gmarkers.length){ 1621 current_place=1; 1622 } 1623 } 1624 if( map.getZoom() <15 ){ 1625 map.setZoom(15); 1626 } 1627 1628 1629 if(wp_estate_kind_of_map===1){ 1630 google.maps.event.trigger(gmarkers[current_place-1], 'click'); 1631 }else if(wp_estate_kind_of_map===2){
1632 map.setView(gmarkers[current_place - 1].getLatLng()); 1633 if (! gmarkers[current_place - 1]._icon) gmarkers[current_place - 1].__parent.spiderfy(); 1634 lealet_map_move_on_hover=1; 1635 1636 map.setZoom(20); 1637 1638 if( (current_place - 1)==0 || (current_place )==gmarkers.length ){ 1639 setTimeout(function(){ gmarkers[current_place - 1].fire('click'); }, 1000); 1640 }else{ 1641 gmarkers[current_place - 1].fire('click'); 1642 } 1643 1644 lealet_map_move_on_hover=1; 1645 wpestate_map_callback( wpestate_new_open_close_map ); 1646 } 1647 current_place--; 1648}); 1649 1650 1651 1652 1653 1654 1655 1656 1657/////////////////////////////////////////////////////////////////////////////////////////////////////////// 1658/// filter pins 1659////////////////////////////////////////////////////////////////////////////////////////////////////////// 1660 1661jQuery('.advanced_action_div li').on( 'click', function(event) { 1662"use strict"; 1663 var action = jQuery(this).val(); 1664}); 1665 1666 1667 1668 1669 1670if( document.getElementById('gmap-menu') ){ 1671 google.maps.event.addDomListener(document.getElementById('gmap-menu'), 'click', function (event) { 1672 "use strict"; 1673 infoBox.close(); 1674 1675 if (event.target.nodeName==='INPUT'){ 1676 category=event.target.className; 1677 1678 if(event.target.name==="filter_action[]"){ 1679 if(actions.indexOf(category)!==-1){ 1680 actions.splice(actions.indexOf(category),1); 1681 }else{ 1682 actions.push(category); 1683 } 1684 } 1685 1686 if(event.target.name==="filter_type[]"){ 1687 if(categories.indexOf(category)!==-1){ 1688 categories.splice(categories.indexOf(category),1); 1689 }else{ 1690 categories.push(category); 1691 } 1692 } 1693 1694 show(actions,categories); 1695 } 1696 1697 }); 1698} 1699 1700function wpestate_getCookieMap(cname) { 1701 "use strict"; 1702 var name = cname + "="; 1703 var ca = document.cookie.split(';'); 1704 for(var i=0; i<ca.length; i++) { 1705 var c = ca[i]; 1706 while (c.charAt(0)==' ') c = c.substring(1); 1707 if (c.indexOf(name) == 0) return c.substring(name.length,c.length); 1708 } 1709 return ""; 1710} 1711 1712 1713 1714function wpestate_get_custom_value_tab_search(slug){ 1715 "use strict"; 1716 var value=''; 1717 var is_drop=0; 1718 1719 1720 if(slug === 'adv_categ' || slug === 'adv_actions' || slug === 'advanced_city' || slug === 'advanced_area' || slug === 'county-state' ){ 1721 1722 if(jQuery('.tab-pane.active #'+slug).hasClass('wpestatemultiselectselectpicker') ){ 1723 value = jQuery('.tab-pane.active #'+slug).val(); 1724 if(value=='')value='all'; 1725 1726 }else{ 1727 value = jQuery('.tab-pane.active #'+slug).attr('data-value'); 1728 } 1729 1730 1731 1732 1733 1734 } else if(slug === 'property_price' && mapfunctions_vars.slider_price==='yes'){ 1735 value = jQuery('.tab-pane.active #price_low').val(); 1736 }else if(slug === 'property-country'){ 1737 value = jQuery('.tab-pane.active #advanced_country').attr('data-value'); 1738 }else if(slug === 'property_status'){ 1739 1740 if(jQuery('.tab-pane.active #adv_status').hasClass('wpestatemultiselectselectpicker') ){ 1741 value = jQuery('.tab-pane.active #adv_status').val(); 1742 if(value=='')value='all'; 1743 }else{ 1744 value = jQuery('.tab-pane.active #adv_status').attr('data-value'); 1745 } 1746 1747 1748 }else if(slug === 'adv_location'){ 1749 1750 1751 value = jQuery('.tab-pane.active .adv_locations_search').val(); 1752 1753 1754 jQuery('.adv_locations_search').each(function() { 1755 1756 }); 1757 1758 }else{ 1759 1760 if(slug!==''){ 1761 if( jQuery('.tab-pane.active #'+slug).hasClass('filter_menu_trigger') ){ 1762 value = jQuery('.tab-pane.active #'+slug).attr('data-value'); 1763 is_drop=1; 1764 }else{ 1765 value = jQuery('.tab-pane.active #'+slug).val() ; 1766 } 1767 } 1768 } 1769 1770 return value; 1771 1772} 1773 1774 1775function wpestate_get_custom_value(slug){ 1776 "use strict"; 1777 var value; 1778 var is_drop=0; 1779 1780 if(slug === 'adv_categ' || slug === 'adv_actions' || slug === 'advanced_city' || slug === 'advanced_area' || slug === 'county-state'){ 1781 value = jQuery('#'+slug).attr('data-value'); 1782 1783 if(jQuery('#'+slug).hasClass('wpestatemultiselectselectpicker') ){ 1784 value = jQuery('#'+slug).val(); 1785 if(value=='')value='all'; 1786 1787 }else{ 1788 value = jQuery('#'+slug).attr('data-value'); 1789 1790 } 1791 1792 1793 1794 1795 } else if(slug === 'property_price' && mapfunctions_vars.slider_price==='yes'){ 1796 value = jQuery('#price_low').val(); 1797 }else if(slug === 'property_status'){ 1798 if(jQuery('#adv_status').hasClass('wpestatemultiselectselectpicker') ){ 1799 value = jQuery('#adv_status').val(); 1800 if(value=='')value='all'; 1801 1802 }else{ 1803 value = jQuery('#adv_status').attr('data-value'); 1804 } 1805 }else if(slug === 'property-country'){ 1806 value = jQuery('#advanced_country').attr('data-value'); 1807 }else if(slug === 'adv_location'){ 1808 1809 value = jQuery('.adv_locations_search').val(); 1810 1811 1812 }else{ 1813 1814 if( jQuery('#'+slug).hasClass('filter_menu_trigger') ){ 1815 value = jQuery('#'+slug).attr('data-value'); 1816 is_drop=1; 1817 }else{ 1818 value = jQuery('#'+slug).val() ; 1819 1820 } 1821 } 1822 1823 1824 if (typeof(value)!=='undefined'&& is_drop===0){ 1825 // value= value .replace(" ","-"); 1826 } 1827 1828 return value; 1829 1830} 1831 1832 1833 1834 1835 function wpestate_show_pins() { 1836 "use strict"; 1837 1838 jQuery("#results").show(); 1839 jQuery("#results_wrapper").empty().append('<div class="preview_results_loading">'+mapfunctions_vars.loading_results+'</div>').show(); 1840 1841 var action, category, city, area, rooms, baths, min_price, price_max, ajaxurl,postid,halfmap, all_checkers,newpage; 1842 1843 if( typeof infoBox!=='undefined' && infoBox!== null ){ 1844 infoBox.close(); 1845 } 1846 1847 jQuery('#gmap-loading').show(); 1848 //- removed && googlecode_regular_vars.is_adv_search!=='1' 1849 1850 if( typeof(googlecode_regular_vars)!='undefined' ) { 1851 if( (mapfunctions_vars.adv_search_type==='8' || mapfunctions_vars.adv_search_type==='9') && mapfunctions_vars.is_half_map_list!=='1' ){ 1852 wpestate_show_pins_type2_tabs(); 1853 return; 1854 } 1855 1856 if(mapfunctions_vars.adv_search_type==='2' && mapfunctions_vars.is_half_map_list!=='1' && mapfunctions_vars.is_adv_search!=='1' ){ 1857 wpestate_show_pins_type2(); 1858 return; 1859 } 1860 }else{ 1861 if( (mapfunctions_vars.adv_search_type==='8' || mapfunctions_vars.adv_search_type==='9') ){ 1862 wpestate_show_pins_type2_tabs(); 1863 return; 1864 } 1865 1866 if(mapfunctions_vars.adv_search_type==='2' && mapfunctions_vars.is_half_map_list!=='1' ){ 1867 wpestate_show_pins_type2(); 1868 return; 1869 } 1870 } 1871 1872 1873 1874 if(mapfunctions_vars.custom_search==='yes'){ 1875 wpestate_show_pins_custom_search(); 1876 return; 1877 } 1878 1879 1880 1881 action = jQuery('#adv_actions').attr('data-value'); 1882 category = jQuery('#adv_categ').attr('data-value'); 1883 city = jQuery('#advanced_city').attr('data-value'); 1884 area = jQuery('#advanced_area').attr('data-value'); 1885 rooms = parseFloat(jQuery('#adv_rooms').val(), 10); 1886 baths = parseFloat(jQuery('#adv_bath').val(), 10); 1887 min_price = parseFloat(jQuery('#price_low').val(), 10); 1888 price_max = parseFloat(jQuery('#price_max').val(), 10); 1889 postid = parseFloat(jQuery('#adv-search-1').attr('data-postid'), 10); 1890 ajaxurl = ajaxcalls_vars.admin_url + 'admin-ajax.php'; 1891 1892 1893 1894 if ( parseInt(mapfunctions_vars.is_half)===1 ){ 1895 if(first_time_wpestate_show_inpage_ajax_half===0){ 1896 first_time_wpestate_show_inpage_ajax_half=1; 1897 }else{ 1898 wpestate_show_inpage_ajax_half(); 1899 } 1900 1901 } 1902 1903 all_checkers = ''; 1904 jQuery('.search_wrapper .extended_search_check_wrapper input[type="checkbox"]').each(function () { 1905 if (jQuery(this).is(":checked")) { 1906 all_checkers = all_checkers + "," + jQuery(this).attr("name-title"); 1907 } 1908 }); 1909 1910 halfmap = 0; 1911 newpage = 0; 1912 if( jQuery('#google_map_prop_list_sidebar').length ){ 1913 halfmap = 1; 1914 } 1915 1916 postid=1; 1917 if( document.getElementById('search_wrapper') ){
1918 postid = parseInt(jQuery('#search_wrapper').attr('data-postid'), 10); 1919 } 1920 1921 1922 var geo_lat = ''; 1923 var geo_long = ''; 1924 var geo_rad = ''; 1925 1926 if( jQuery("#geolocation_search").length > 0){ 1927 geo_lat = jQuery('#geolocation_lat').val(); 1928 geo_long = jQuery('#geolocation_long').val(); 1929 geo_rad = jQuery('#geolocation_radius').val(); 1930 1931 } 1932 1933 var nonce = jQuery('#wpestate_ajax_filtering').val(); 1934 jQuery.ajax({ 1935 type: 'POST', 1936 url: ajaxurl, 1937 dataType: 'json', 1938 data: { 1939 'action' : 'wpestate_classic_ondemand_pin_load', 1940 'action_values' : action, 1941 'category_values' : category, 1942 'city' : city, 1943 'area' : area, 1944 'advanced_rooms' : rooms, 1945 'advanced_bath' : baths, 1946 'price_low' : min_price, 1947 'price_max' : price_max, 1948 'newpage' : newpage, 1949 'postid' : postid, 1950 'halfmap' : halfmap, 1951 'all_checkers' : all_checkers, 1952 'geo_lat' : geo_lat, 1953 'geo_long' : geo_long, 1954 'geo_rad' : geo_rad, 1955 'security' : nonce 1956 }, 1957 success: function (data) { 1958 var no_results = parseInt(data.no_results); 1959 1960 if(no_results!==0){ 1961 wpestate_load_on_demand_pins(data.markers,no_results,1); 1962 }else{ 1963 wpestate_show_no_results(); 1964 } 1965 jQuery('#gmap-loading').hide(); 1966 1967 }, 1968 error: function (errorThrown) { 1969 1970 } 1971 });//end ajax 1972 1973 } 1974 1975 1976 1977 1978 1979function wpestate_show_pins_type2(){ 1980 "use strict"; 1981 var action, category, location_search, ajaxurl,postid,halfmap, all_checkers,newpage; 1982 action = jQuery('#adv_actions').attr('data-value'); 1983 category = jQuery('#adv_categ').attr('data-value'); 1984 location_search = jQuery('#adv_location').val();
1985 postid = parseInt(jQuery('#adv-search-1').attr('data-postid'), 10); 1986 ajaxurl = ajaxcalls_vars.admin_url + 'admin-ajax.php'; 1987 1988 halfmap = 0; 1989 newpage = 0; 1990 1991 if( jQuery('#google_map_prop_list_sidebar').length ){ 1992 halfmap = 1; 1993 } 1994 1995 postid=1; 1996 1997 if( document.getElementById('search_wrapper') ){ 1998 postid = parseInt(jQuery('#search_wrapper').attr('data-postid'), 10); 1999 } 2000 var nonce = jQuery('#wpestate_ajax_filtering').val(); 2001 jQuery.ajax({ 2002 type: 'POST', 2003 url: ajaxurl, 2004 dataType: 'json', 2005 2006 data: { 2007 'action' : 'wpestate_classic_ondemand_pin_load_type2', 2008 'action_values' : action, 2009 'category_values' : category, 2010 'location' : location_search, 2011 'security' : nonce 2012 }, 2013 success: function (data) { 2014 var no_results = parseInt(data.no_results); 2015 2016 if(no_results!==0){ 2017 wpestate_load_on_demand_pins(data.markers,no_results,1); 2018 }else{ 2019 wpestate_show_no_results(); 2020 } 2021 jQuery('#gmap-loading').hide(); 2022 2023 }, 2024 error: function (errorThrown) { 2025 } 2026 });//end ajax 2027 2028 2029 if ( parseInt(mapfunctions_vars.is_half)===1 ){ 2030 if(first_time_wpestate_show_inpage_ajax_half===0){ 2031 first_time_wpestate_show_inpage_ajax_half=1; 2032 }else{ 2033 wpestate_show_inpage_ajax_half(); 2034 } 2035 2036 } 2037 } 2038 2039 2040 2041 2042 2043 2044function wpestate_show_pins_type2_tabs(){ 2045 "use strict"; 2046 var action, category, location_search, ajaxurl,postid,halfmap, all_checkers,newpage,picked_tax; 2047 2048 action = jQuery('.tab-pane.active #adv_actions').attr('data-value'); 2049 if(typeof action === 'undefined'){ 2050 action=''; 2051 } 2052 category = jQuery('.tab-pane.active #adv_categ').attr('data-value'); 2053 if(typeof category === 'undefined'){ 2054 category=''; 2055 } 2056 location_search = jQuery('.tab-pane.active #adv_location').val(); 2057 picked_tax = jQuery('.tab-pane.active .picked_tax').val(); 2058 2059
2060 postid = parseInt(jQuery('#adv-search-1').attr('data-postid'), 10); 2061 ajaxurl = ajaxcalls_vars.admin_url + 'admin-ajax.php'; 2062 ajaxurl = ajaxcalls_vars.wpestate_ajax; 2063 halfmap = 0; 2064 newpage = 0; 2065 2066 2067 if( jQuery('#google_map_prop_list_sidebar').length ){ 2068 halfmap = 1; 2069 } 2070 2071 postid=1; 2072 2073 if( document.getElementById('search_wrapper') ){ 2074 postid = parseInt(jQuery('#search_wrapper').attr('data-postid'), 10); 2075 } 2076 2077 var term_id=jQuery('.tab-pane.active .term_id_class').val(); 2078 2079 all_checkers = ''; 2080 jQuery('.tab-pane.active .extended_search_check_wrapper input[type="checkbox"]').each(function () { 2081 if (jQuery(this).is(":checked")) { 2082 all_checkers = all_checkers + "," + jQuery(this).attr("name-title"); 2083 } 2084 }); 2085 2086 var nonce = jQuery('#wpestate_ajax_filtering').val(); 2087 2088 jQuery.ajax({ 2089 type: 'POST', 2090 url: ajaxurl, 2091 dataType: 'json', 2092 2093 data: { 2094 'action' : 'wpestate_classic_ondemand_pin_load_type2_tabs', 2095 'action_values' : action, 2096 'category_values' : category, 2097 'location' : location_search, 2098 'picked_tax' : picked_tax, 2099 'all_checkers' : all_checkers, 2100 'security' : nonce 2101 }, 2102 success: function (data) { 2103 2104 var no_results = parseInt(data.no_results); 2105 2106 if(no_results!==0){ 2107 wpestate_load_on_demand_pins(data.markers,no_results,1); 2108 }else{ 2109 wpestate_show_no_results(); 2110 } 2111 jQuery('#gmap-loading').hide(); 2112 2113 }, 2114 error: function (errorThrown) { 2115 2116 } 2117 });//end ajax 2118 2119 if ( parseInt(mapfunctions_vars.is_half)===1 ){ 2120 if(first_time_wpestate_show_inpage_ajax_half===0){ 2121 first_time_wpestate_show_inpage_ajax_half=1; 2122 }else{ 2123 wpestate_show_inpage_ajax_half(); 2124 } 2125 2126 } 2127 } 2128 2129 2130function wpestate_show_pins_custom_search(){ 2131 "use strict"; 2132 2133 2134 2135 var ajaxurl,initial_array_last_item,array_last_item,how_holder,slug_holder,val_holder,position, inserted_val,temp_val,term_id,halfmap,newpage,postid,slider_min,slider_max; 2136 ajaxurl = ajaxcalls_vars.wpestate_ajax;; 2137 inserted_val = 0; 2138 array_last_item = parseInt( mapfunctions_vars.fields_no,10); 2139 initial_array_last_item =array_last_item; 2140 val_holder = []; 2141 slug_holder = []; 2142 how_holder = []; 2143 2144 //slug_holder = mapfunctions_vars.slugs; 2145 slug_holder = JSON.parse(JSON.stringify(mapfunctions_vars.slugs)); 2146 2147 // how_holder = mapfunctions_vars.hows; 2148 how_holder= JSON.parse(JSON.stringify(mapfunctions_vars.hows)); 2149 2150 2151 2152 var term_counter=0; 2153 2154 2155 2156 if( mapfunctions_vars.slider_price ==='yes' ){ 2157 slider_min = jQuery('#price_low').val(); 2158 slider_max = jQuery('#price_max').val(); 2159 2160 } 2161 2162 if(jQuery('.wpresidence-component3-min-price_input_class').length>0){ 2163 2164 slider_min = jQuery('.wpresidence-component3-min-price_input_class').val(); 2165 slider_max = jQuery('.wpresidence-component3-max-price_input_class').val(); 2166 } 2167 2168 2169 var i; 2170 term_counter=parseInt( jQuery('.tab-pane.active').find('.term_counter').val(),10); 2171 2172 2173 2174 2175 if( (mapfunctions_vars.adv_search_type==='6' || mapfunctions_vars.adv_search_type==='7' ) ){ //&& !jQuery('.halfsearch')[0] 2176 term_id=jQuery('.tab-pane.active .term_id_class').val(); 2177 2178 if( mapfunctions_vars.slider_price ==='yes' ){ 2179 slider_min = jQuery('#price_low_'+term_id).val(); 2180 slider_max = jQuery('#price_max_'+term_id).val(); 2181 } 2182 2183 if(jQuery('.tab-pane.active .wpresidence-component3-min-price_input_class').length>0){ 2184 slider_min = jQuery('.tab-pane.active .wpresidence-component3-min-price_input_class').val(); 2185 slider_max = jQuery('.tab-pane.active .wpresidence-component3-max-price_input_class').val(); 2186 } 2187 2188 var start_counter = term_counter *mapfunctions_vars.fields_no; 2189 if(term_counter>0){ 2190 array_last_item=(array_last_item*term_counter)+array_last_item; 2191 2192 } 2193 2194 2195 for ( i=start_counter; i<array_last_item;i++){ 2196 2197 2198 if ( how_holder[i]=='date bigger' || how_holder[i]=='date smaller'){ 2199 temp_val = wpestate_get_custom_value_tab_search (term_id+slug_holder[i]); 2200 }else{ 2201 temp_val = wpestate_get_custom_value_tab_search (slug_holder[i]); 2202 } 2203 2204 if(typeof(temp_val)==='undefined'){ 2205 temp_val=''; 2206 } 2207 2208 val_holder.push( temp_val ); 2209 2210 } 2211 2212 2213 2214 }else{ 2215 for (i=0; i<array_last_item;i++){ 2216 2217 temp_val = wpestate_get_custom_value (slug_holder[i]); 2218 if(typeof(temp_val)==='undefined'){ 2219 temp_val=''; 2220 } 2221 val_holder.push( temp_val ); 2222 } 2223 2224 } 2225 2226 2227 2228 2229 2230 if( (mapfunctions_vars.adv_search_type==='6' || mapfunctions_vars.adv_search_type==='7' || mapfunctions_vars.adv_search_type==='8' || mapfunctions_vars.adv_search_type==='9' ) ){ 2231 var tab_tax=jQuery('.adv_search_tab_item.active').attr('data-tax'); 2232 2233 2234 if( jQuery('.halfsearch')[0] ){ 2235 tab_tax=jQuery('.halfsearch').attr('data-tax'); 2236 } 2237 2238 2239 if(tab_tax === 'property_category'){ 2240 slug_holder[array_last_item]='adv_categ'; 2241 }else if(tab_tax === 'property_action_category'){ 2242 slug_holder[array_last_item]='adv_actions'; 2243 }else if(tab_tax === 'property_city'){ 2244 slug_holder[array_last_item]='advanced_city'; 2245 }else if(tab_tax === 'property_area'){ 2246 slug_holder[array_last_item]='advanced_area'; 2247 }else if(tab_tax === 'property_county_state'){ 2248 slug_holder[array_last_item]='county-state'; 2249 } 2250 2251 how_holder[array_last_item]='like'; 2252 2253 2254 val_holder[initial_array_last_item]=jQuery('.adv_search_tab_item.active').attr('data-term'); 2255 2256 2257 } 2258 2259 2260 if ( parseInt(mapfunctions_vars.is_half)===1 ){ 2261 if(first_time_wpestate_show_inpage_ajax_half===0){ 2262 2263 first_time_wpestate_show_inpage_ajax_half=1; 2264 }else{ 2265 2266 wpestate_show_inpage_ajax_half(); 2267 } 2268 2269 } 2270 //was 2 times ! 2271 2272 var all_checkers = ''; 2273 2274 if( mapfunctions_vars.adv_search_type==='6' ){ 2275 jQuery('.tab-pane.active .extended_search_check_wrapper input[type="checkbox"]').each(function () { 2276 if (jQuery(this).is(":checked")) { 2277 all_checkers = all_checkers + "," + jQuery(this).attr("name-title"); 2278 } 2279 }); 2280 }else{ 2281 2282 jQuery('.search_wrapper .extended_search_check_wrapper input[type="checkbox"]').each(function () { 2283 if (jQuery(this).is(":checked")) { 2284 all_checkers = all_checkers + "," + jQuery(this).attr("name-title"); 2285 } 2286 }); 2287 } 2288 2289 2290 2291 2292 2293 halfmap = 0; 2294 newpage = 0; 2295 if( jQuery('#google_map_prop_list_sidebar').length ){ 2296 halfmap = 1; 2297 } 2298 2299 postid=1; 2300 if( document.getElementById('search_wrapper') ){
2301 postid = parseInt(jQuery('#search_wrapper').attr('data-postid'), 10); 2302 } 2303 2304 var filter_search_action10 =''; 2305 var adv_location10 =''; 2306 2307 if( mapfunctions_vars.adv_search_type==='10' ){ 2308 filter_search_action10 = jQuery('#adv_actions').attr('data-value'); 2309 adv_location10 = jQuery('#adv_location').val(); 2310 2311 } 2312 2313 2314 var filter_search_action11 = ''; 2315 var filter_search_categ11 = ''; 2316 var keyword_search = ''; 2317 keyword_search = jQuery('#keyword').val(); 2318 if( mapfunctions_vars.adv_search_type==='11' ){ 2319 filter_search_action11 = jQuery('#adv_actions').attr('data-value'); 2320 filter_search_categ11 = jQuery('#adv_categ').attr('data-value'); 2321 keyword_search = jQuery('#keyword_search').val(); 2322 } 2323 2324 2325 var geo_lat = ''; 2326 var geo_long = ''; 2327 var geo_rad = ''; 2328 var componentsbeds = ''; 2329 var componentsbaths= ''; 2330 2331 if( jQuery("#geolocation_search").length > 0){ 2332 geo_lat = jQuery('#geolocation_lat').val(); 2333 geo_long = jQuery('#geolocation_long').val(); 2334 geo_rad = jQuery('#geolocation_radius').val(); 2335 2336 } 2337 if (jQuery('.tab-pane.active .geolocation_search_item').length>0){ 2338 2339 geo_lat = jQuery('.tab-pane.active .geolocation_lat').val(); 2340 geo_long = jQuery('.tab-pane.active .geolocation_long').val(); 2341 geo_rad = jQuery('.tab-pane.active #geolocation_radius').val(); 2342 } 2343 2344 2345 if (jQuery('.wpestate-beds-baths-popoup-component').length>0){ 2346 componentsbeds = jQuery('.wpresidence-componentsbeds').val(); 2347 componentsbaths = jQuery('.wpresidence-componentsbaths').val(); 2348 } 2349 2350 2351 if (jQuery('.tab-pane.active .wpestate-beds-baths-popoup-component').length>0){ 2352 componentsbeds = jQuery('.tab-pane.active .wpresidence-componentsbeds').val(); 2353 componentsbaths = jQuery('.tab-pane.active .wpresidence-componentsbaths').val(); 2354 } 2355 2356 2357 2358 2359 var nonce = jQuery('#wpestate_ajax_filtering').val(); 2360 jQuery.ajax({ 2361 type: 'POST', 2362 url: ajaxurl, 2363 dataType: 'json', 2364 data: { 2365 'action' : 'wpestate_custom_ondemand_pin_load', 2366 'search_type' : mapfunctions_vars.adv_search_type, 2367 'val_holder' : val_holder, 2368 'newpage' : newpage, 2369 'postid' : postid, 2370 'halfmap' : halfmap, 2371 'slider_min' : slider_min, 2372 'slider_max' : slider_max, 2373 'all_checkers' : all_checkers, 2374 'filter_search_action10' : filter_search_action10, 2375 'adv_location10' : adv_location10, 2376 'filter_search_action11' : filter_search_action11, 2377 'filter_search_categ11' : filter_search_categ11, 2378 'keyword_search' : keyword_search, 2379 'geo_lat' : geo_lat, 2380 'geo_long' : geo_long, 2381 'geo_rad' : geo_rad, 2382 'term_counter' : term_counter, 2383 'componentsbeds' : componentsbeds, 2384 'componentsbaths' : componentsbaths, 2385 'security' : nonce 2386 }, 2387 success: function (data) { 2388 2389 2390 var no_results = parseInt(data.no_results); 2391 if(no_results!==0){ 2392 wpestate_load_on_demand_pins(data.markers,no_results,1); 2393 }else{ 2394 wpestate_show_no_results(); 2395 wpestate_start_placing_geo_marker(); 2396 } 2397 jQuery('#gmap-loading').hide(); 2398 2399 }, 2400 error: function (errorThrown) { 2401 2402 2403 } 2404 });//end ajax 2405 2406 2407 } 2408 2409 2410 2411 2412function wpestate_empty_map(){ 2413 "use strict"; 2414 if (typeof gmarkers !== 'undefined') { 2415 2416 if(wp_estate_kind_of_map== 1 ){ 2417 for (var i = 0; i < gmarkers.length; i++) { 2418 gmarkers[i].setVisible(false); 2419 gmarkers[i].setMap(null); 2420 } 2421 gmarkers = []; 2422 2423 2424 if( typeof (mcluster)!=='undefined'){ 2425 mcluster.clearMarkers(); 2426 } 2427 } else if (wp_estate_kind_of_map==2){ 2428 if(typeof map !='undefined'){ 2429 if (mapfunctions_vars.user_cluster === 'yes') { 2430 if(map.hasLayer(markers_cluster)){ 2431 map.removeLayer(markers_cluster); 2432 } 2433 }else{ 2434 for (var i = 0; i < gmarkers.length; i++) { 2435 map.removeLayer(gmarkers[i]); 2436 } 2437 } 2438 gmarkers = [];
2439 markers_cluster=L.markerClusterGroup({ 2440 showCoverageOnHover: false, 2441 iconCreateFunction: function(cluster) { 2442 return L.divIcon({ html: '<div class="leaflet_cluster">' + cluster.getChildCount() + '</div>' }); 2443 }, 2444 }); 2445 map.addLayer(markers_cluster); 2446 } 2447 } 2448 } 2449} 2450 2451 2452var use_geolocation_marker=0; 2453function wpestate_load_on_demand_pins(markers,no_results,show_results_bar){ 2454 "use strict"; 2455 jQuery('#gmap-noresult').hide(); 2456 2457 wpestate_empty_map(); 2458 if( document.getElementById('googleMap') ){ 2459 //wpestate_setMarkers(map, markers); 2460 bounds_list =undefined; 2461 wpresidence_map_general_set_markers(map, markers,1); 2462 2463 wpestate_preview_listings(markers); 2464 2465 //set map cluster 2466 wpresidence_map_general_cluster(); 2467 2468 wpresidence_map_general_fit_to_bounds(1); 2469 2470 }else{ 2471 wpestate_preview_listings(markers); 2472 } 2473 2474 wpestate_start_placing_geo_marker(); 2475} 2476 2477 2478 2479function wpestate_start_placing_geo_marker(){ 2480 2481 if( initialGeop === 0){ 2482 var place_lat = jQuery('#geolocation_lat').val(); 2483 var place_lng = jQuery('#geolocation_long').val(); 2484 2485 if(place_lat!=='' && place_lng!='' && typeof(place_lat)!=='undefined' && typeof(place_lng)!='undefined' ){ 2486 initialGeop=1; 2487 wpestate_geolocation_marker(place_lat,place_lng); 2488 } 2489 } 2490} 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502function wpestate_preview_listings(markers){ 2503 "use strict"; 2504 var i = 0; 2505 var to_append = ''; 2506 var image = ''; 2507 var title = ''; 2508 var link = ''; 2509 var clean_price = ''; 2510 var price = ''; 2511 for (i = 0; i < markers.length; i++) { 2512 image = decodeURIComponent(markers[i][18]); 2513 title = decodeURIComponent(markers[i][0]); 2514 link = decodeURIComponent(markers[i][9]); 2515 clean_price = decodeURIComponent(markers[i][11]); 2516 price = wpestate_get_price_currency ( decodeURIComponent(markers[i][5]),clean_price ); 2517 2518 to_append=to_append+'<div class="preview_listing_unit" data-href="'+link+'">'+image+' <h4>'+title+'</h4><div class="preview_details">'+price+'</div></div>'; 2519 2520 2521 } 2522 2523 jQuery('#results_wrapper').empty(); 2524 jQuery('#results_no').show().text( markers.length); 2525 2526 jQuery('#results_wrapper').append(to_append); 2527 2528 jQuery('.preview_listing_unit').on( 'click', function(event) { 2529 event.preventDefault(); 2530 var new_link; 2531 new_link = jQuery(this).attr('data-href'); 2532 window.open (new_link,'_self',false); 2533 }); 2534 2535 2536} 2537 2538 2539function wpestate_get_price_currency(price,clean_price){ 2540 "use strict"; 2541 var new_price =''; 2542 2543 var my_custom_curr_symbol = decodeURIComponent ( wpestate_getCookie_map('my_custom_curr_symbol') ); 2544 var my_custom_curr_coef = parseFloat( wpestate_getCookie_map('my_custom_curr_coef')); 2545 var my_custom_curr_pos = parseFloat( wpestate_getCookie_map('my_custom_curr_pos')); 2546 var my_custom_curr_cur_post= wpestate_getCookie_map('my_custom_curr_cur_post'); 2547 var slider_counter = 0; 2548 2549 2550 if (!isNaN(my_custom_curr_pos) && my_custom_curr_pos !== -1) { 2551 var temp_price =Number(clean_price*my_custom_curr_coef).toFixed(2); 2552 if (my_custom_curr_cur_post === 'before') { 2553 new_price = my_custom_curr_symbol+' '+temp_price; 2554 } else { 2555 new_price = temp_price+' '+my_custom_curr_symbol; 2556 } 2557 2558 } else { 2559 new_price=price; 2560 } 2561 2562 return new_price; 2563} 2564 2565function wpestate_getCookie_map(cname) { 2566 "use strict"; 2567 var name = cname + "="; 2568 var ca = document.cookie.split(';'); 2569 for(var i=0; i<ca.length; i++) { 2570 var c = ca[i]; 2571 while (c.charAt(0)==' ') c = c.substring(1); 2572 if (c.indexOf(name) == 0) return c.substring(name.length,c.length); 2573 } 2574 return ""; 2575 } 2576 2577 2578 2579function wpestate_show_no_results(){ 2580 "use strict"; 2581 jQuery('#results_no').show().text('0'); 2582 2583 jQuery("#results_wrapper").empty().append('<div class="preview_results_loading">'+mapfunctions_vars.half_no_results+'</div>').show(); 2584 jQuery('#gmap-noresult').show(); 2585 if( document.getElementById('google_map_prop_list_wrapper') ){ 2586 jQuery('#listing_ajax_container').empty().append('<p class=" no_results_title ">'+mapfunctions_vars.half_no_results+'</p>'); 2587 } 2588} 2589 2590 2591 2592function wpestate_show_inpage_ajax_tip2(){ 2593 "use strict"; 2594 if( jQuery('#gmap-full').hasClass('spanselected')){ 2595 jQuery('#gmap-full').trigger('click'); 2596 } 2597 2598 2599 if(mapfunctions_vars.custom_search==='yes'){ 2600 wpestate_custom_search_start_filtering_ajax(1); 2601 }else{ 2602 wpestate_start_filtering_ajax(1); 2603 } 2604} 2605 2606 2607 2608function wpestate_show_inpage_ajax_half(){ 2609 "use strict"; 2610 2611 jQuery('.half-pagination').remove(); 2612 if(mapfunctions_vars.custom_search==='yes'){ 2613 wpestate_custom_search_start_filtering_ajax(1); 2614 }else{ 2615 wpestate_start_filtering_ajax(1); 2616 } 2617} 2618 2619 2620function wpestate_enable_half_map_pin_action (){ 2621 "use strict"; 2622 2623 jQuery('#google_map_prop_list_sidebar .listing_wrapper').each(function(event){ 2624 var listing_id = jQuery(this).attr('data-listid'); 2625 2626 jQuery(this).on('mouseenter', function () { 2627 wpestate_hover_action_pin(listing_id); 2628 }) 2629 2630 jQuery(this).on('mouseleave', function () { 2631 wpestate_return_hover_action_pin(listing_id); 2632 }) 2633 2634 }); 2635 2636 2637 2638} 2639 2640 2641///////////////////////////////////////////////////////////////////////////////////////////////// 2642/// get pin image
2643///////////////////////////////////////////////////////////////////////////////////////////////// 2644function wpestate_convertToSlug(Text){ 2645 "use strict"; 2646 return Text 2647 .toLowerCase() 2648 .replace(/ /g,'-') 2649 .replace(/[^\w-]+/g,'') 2650 ; 2651} 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661function wpestate_custompin(image){ 2662 "use strict"; 2663 2664 if( !mapfunctions_vars.hidden_map ){ 2665 image ={ 2666 path: google.maps.SymbolPath.CIRCLE, 2667 scale: 60, 2668 fillColor: "#0073e1", 2669 fillOpacity: 0.4, 2670 strokeWeight: 0.2 2671 } 2672 return image; 2673 } 2674 2675 2676 2677 2678 var extension=''; 2679 var ratio = jQuery(window).dense('devicePixelRatio'); 2680 if(ratio>1){ 2681 extension='_2x'; 2682 } 2683 var custom_img; 2684 2685 2686 2687 if(mapfunctions_vars.use_single_image_pin==='no'){ 2688 if(image!==''){ 2689 if( typeof( images[image] )=== 'undefined' || images[image]===''){ 2690 custom_img= mapfunctions_vars.path+'/'+image+extension+'.png'; 2691 }else{ 2692 custom_img=images[image]; 2693 2694 if(ratio>1){ 2695 custom_img =wpestate_get_custom_retina_pin(custom_img); 2696 } 2697 } 2698 }else{ 2699 custom_img= mapfunctions_vars.path+'/none.png'; 2700 } 2701 2702 if(typeof (custom_img)=== 'undefined'){ 2703 custom_img= mapfunctions_vars.path+'/none.png'; 2704 } 2705 }else{ 2706 2707 if(ratio>1){ 2708 custom_img= wpestate_get_custom_retina_pin( images['single_pin'] ); 2709 }else{ 2710 custom_img= images['single_pin']; 2711 } 2712 } 2713 2714 2715 if(ratio>1){ 2716 image = { 2717 url: custom_img, 2718 size : new google.maps.Size(118, 118), 2719 scaledSize : new google.maps.Size(44, 48), 2720 origin: new google.maps.Point(0,0), 2721 anchor: new google.maps.Point(16,49 ), 2722 optimized:false 2723 }; 2724 2725 }else{ 2726 image = { 2727 url: custom_img, 2728 size : new google.maps.Size(59, 59), 2729 origin: new google.maps.Point(0,0), 2730 anchor: new google.maps.Point(16,49 ) 2731 }; 2732 } 2733 return image; 2734} 2735 2736 2737///////////////////////////////////////////////////////////////////////////////////////////////// 2738//// Circle label 2739///////////////////////////////////////////////////////////////////////////////////////////////// 2740 2741function Label(opt_options) { 2742 "use strict"; 2743 // Initialization 2744 this.setValues(opt_options); 2745 2746 2747 // Label specific 2748 var span = this.span_ = document.createElement('span'); 2749 span.style.cssText = 'position: relative; left: -50%; top: 8px; ' + 2750 'white-space: nowrap; ' + 2751 'padding: 2px; background-color: white;opacity:0.7'; 2752 2753 2754 var div = this.div_ = document.createElement('div'); 2755 div.appendChild(span); 2756 div.style.cssText = 'position: absolute; display: none'; 2757} 2758 2759 2760if (typeof google !== 'undefined') { 2761 Label.prototype = new google.maps.OverlayView; 2762} 2763 2764// Implement onAdd 2765Label.prototype.onAdd = function() { 2766 "use strict"; 2767 var pane = this.getPanes().overlayImage; 2768 pane.appendChild(this.div_); 2769 2770 2771 // Ensures the label is redrawn if the text or position is changed. 2772 var me = this; 2773 this.listeners_ = [ 2774 google.maps.event.addListener(this, 'position_changed', function() { me.draw(); }), 2775 google.maps.event.addListener(this, 'visible_changed', function() { me.draw(); }), 2776 google.maps.event.addListener(this, 'clickable_changed', function() { me.draw(); }), 2777 google.maps.event.addListener(this, 'text_changed', function() { me.draw(); }), 2778 google.maps.event.addListener(this, 'zindex_changed', function() { me.draw(); }), 2779 google.maps.event.addDomListener(this.div_, 'click', function() { 2780 if (me.get('clickable')) { 2781 google.maps.event.trigger(me, 'click'); 2782 } 2783 }) 2784 ]; 2785}; 2786 2787 2788// Implement onRemove 2789Label.prototype.onRemove = function() { 2790 "use strict"; 2791 this.div_.parentNode.removeChild(this.div_); 2792 2793 2794 // Label is removed from the map, stop updating its position/text. 2795 for (var i = 0, I = this.listeners_.length; i < I; ++i) { 2796 google.maps.event.removeListener(this.listeners_[i]); 2797 } 2798}; 2799 2800 2801// Implement draw 2802Label.prototype.draw = function() { 2803 "use strict"; 2804 var projection = this.getProjection(); 2805 var position = projection.fromLatLngToDivPixel(this.get('position')); 2806 2807 2808 var div = this.div_; 2809 div.style.left = position.x + 'px'; 2810 div.style.top = position.y + 'px'; 2811 2812 2813 var visible = this.get('visible'); 2814 div.style.display = visible ? 'block' : 'none'; 2815 2816 2817 var clickable = this.get('clickable'); 2818 this.span_.style.cursor = clickable ? 'pointer' : ''; 2819 2820 2821 var zIndex = this.get('zIndex'); 2822 div.style.zIndex = zIndex; 2823 2824 2825 this.span_.innerHTML = this.get('text').toString(); 2826}; 2827 2828 2829 2830///////////////////////////////////////////////////////////////////////////////////////////////// 2831/// close advanced search 2832///////////////////////////////////////////////////////////////////////////////////////////////// 2833function wpestate_close_adv_search(){ 2834 "use strict"; 2835} 2836
2837////////////////////////////////////////////////////////////////////// 2838/// show advanced search 2839////////////////////////////////////////////////////////////////////// 2840 2841 2842function wpestate_new_show_advanced_search(){ 2843 "use strict"; 2844 jQuery("#search_wrapper").removeClass("hidden"); 2845} 2846 2847function wpestate_new_hide_advanced_search(){ 2848 "use strict"; 2849 if( mapfunctions_vars.show_adv_search ==='no' ){ 2850 jQuery("#search_wrapper").addClass("hidden"); 2851 } 2852 2853} 2854function is_marker_in_cluster (marker, cluster) { 2855 2856 var length = cluster.length; 2857 2858 for(var j = 0; j < length; j++) { 2859 2860 if ( cluster[j].idul == marker ) { 2861 return true; 2862 } 2863 } 2864 return false; 2865} 2866 2867 2868function wpestate_hover_action_pin(listing_id){ 2869 "use strict"; 2870 for (var i = 0; i < gmarkers.length; i++) { 2871 if ( parseInt( gmarkers[i].idul,10) === parseInt( listing_id,10) ){ 2872 if(wp_estate_kind_of_map===1){ 2873 2874 google.maps.event.trigger(gmarkers[i], 'click'); 2875 if(mapfunctions_vars.useprice !== 'yes'){ 2876 pin_hover_storage=gmarkers[i].icon; 2877 gmarkers[i].setIcon(wpestate_custompinhover()); 2878 }else{ 2879 gmarkers[i].addHoverClass(); 2880 } 2881 2882 2883 2884 }else if(wp_estate_kind_of_map===2){ 2885 wpestate_hover_action_pin_leaflet(listing_id,i); 2886 } 2887 2888 } 2889 } 2890} 2891 2892 2893 2894 2895function wpestate_hover_action_pin_leaflet(listing_id,in_array_id){ 2896 const marker = gmarkers[in_array_id]; 2897 map.panTo(marker.getLatLng()); 2898 markers_cluster.refreshClusters(); 2899 lealet_map_move_on_hover = 1; 2900 2901 if (!marker._icon) { 2902 marker.__parent.spiderfy(); 2903 } 2904 2905 marker.togglePopup(); 2906 2907 if (mapfunctions_vars.useprice === 'yes') { 2908 L.DomUtil.addClass(marker._icon, 'openstreet_price_marker_on_click_parent'); 2909 } else { 2910 marker.setIcon(wpestate_custompinhover()); 2911 } 2912 2913 map.invalidateSize(); markers_cluster.refreshClusters(); 2914} 2915//unspiderfy 2916 2917 2918 2919 2920function wpestate_return_hover_action_pin_leaflet(listing_id,in_array_id){ 2921 const marker = gmarkers[in_array_id]; 2922 2923 marker.togglePopup(); 2924 lealet_map_move_on_hover = 0; 2925 2926 if (!marker._icon) { 2927 marker.__parent.unspiderfy(); 2928 } 2929 2930 if (mapfunctions_vars.useprice !== 'yes') { 2931 const markerImage = { 2932 iconUrl: wprentals_custompin_leaflet(marker.pin), 2933 iconSize: [44, 50], 2934 iconAnchor: [20, 50], 2935 popupAnchor: [1, -50] 2936 }; 2937 marker.setIcon(L.icon(markerImage)); 2938 } else { 2939 L.DomUtil.removeClass(marker._icon, 'openstreet_price_marker_on_click_parent'); 2940 } 2941 2942 map.invalidateSize(); 2943 markers_cluster.refreshClusters(); 2944 2945} 2946 2947 2948 2949 2950 2951function wpestate_return_hover_action_pin(listing_id){ 2952 2953 "use strict"; 2954 for (var i = 0; i < gmarkers.length; i++) { 2955 if ( parseInt( gmarkers[i].idul,10) === parseInt( listing_id,10) ){ 2956 2957 if(wp_estate_kind_of_map===1){ 2958 if (parseInt(gmarkers[i].idul, 10) === parseInt(listing_id, 10)) { 2959 2960 infoBox.close(); 2961 if(mapfunctions_vars.useprice !== 'yes'){ 2962 gmarkers[i].setIcon(pin_hover_storage); 2963 }else{ 2964 gmarkers[i].removeHoverClass(); 2965 } 2966 } 2967 } else if(wp_estate_kind_of_map===2){ 2968 wpestate_return_hover_action_pin_leaflet(listing_id,i); 2969 2970 } 2971 2972 2973 } 2974 } 2975 2976} 2977 2978 2979function wpestate_custompinhover(){ 2980 "use strict"; 2981 2982 var custom_img,image; 2983 var extension=''; 2984 var ratio = jQuery(window).dense('devicePixelRatio'); 2985 2986 if(ratio>1){ 2987 extension='_2x'; 2988 } 2989 custom_img= mapfunctions_vars.path+'/hover'+extension+'.png'; 2990 2991 if(wp_estate_kind_of_map===2){ 2992 if(ratio>1){ 2993 2994 var markerImage = L.icon({ 2995 iconUrl: custom_img, 2996 iconSize: [90, 90], 2997 iconAnchor: [40, 90], 2998 popupAnchor: [1, -90] 2999 }); 3000 }else{ 3001 var markerImage = L.icon({ 3002 iconUrl: custom_img, 3003 iconSize: [44, 50], 3004 iconAnchor: [20, 50],
3005 popupAnchor: [1, -50] 3006 }); 3007 } 3008 return markerImage; 3009 3010 } 3011 3012 3013 if(ratio>1){ 3014 3015 image = { 3016 url: custom_img, 3017 size : new google.maps.Size(132, 144), 3018 scaledSize : new google.maps.Size(66, 72), 3019 origin: new google.maps.Point(0,0), 3020 anchor: new google.maps.Point(25,72 ) 3021 }; 3022 3023 }else{ 3024 image = { 3025 url: custom_img, 3026 size: new google.maps.Size(90, 90), 3027 origin: new google.maps.Point(0,0), 3028 anchor: new google.maps.Point(25,72 ) 3029 }; 3030 } 3031 3032 3033 return image; 3034} 3035 3036 3037 3038 3039function wpestate_map_callback(callback){ 3040 "use strict"; 3041 callback(1); 3042} 3043 3044/* 3045* 3046* return google poi types for selected poi 3047* 3048*/ 3049 3050 function wpestate_return_poi_values (poi_type){ 3051 var show_poi; 3052 switch(poi_type) { 3053 case 'transport': 3054 show_poi = ['bus_station', 'airport', 'train_station', 'subway_station']; 3055 break; 3056 case 'supermarkets': 3057 show_poi = ['grocery_or_supermarket', 'shopping_mall']; 3058 break; 3059 case 'schools': 3060 show_poi = ['school', 'university']; 3061 break; 3062 case 'restaurant': 3063 show_poi=['restaurant']; 3064 break; 3065 case 'pharma': 3066 show_poi = ['pharmacy']; 3067 break; 3068 case 'hospitals': 3069 show_poi = ['hospital']; 3070 break; 3071 } 3072 return show_poi; 3073}; 3074 3075 3076/* 3077* 3078* add poi markers on the map 3079* 3080*/ 3081 3082function wpestate_googlemap_display_poi (results, status,map_for_poi,poi_marker_array) { 3083 if ( google.maps.places.PlacesServiceStatus.OK == status ) { 3084 for (var i = 0; i < results.length; i++) { 3085 poi_marker = wpestate_create_poi_marker(results[i],map_for_poi); 3086 poi_marker_array.push(poi_marker); 3087 } 3088 } 3089 return poi_marker_array; 3090}; 3091 3092/* 3093* 3094* create the poi markers 3095* 3096*/ 3097 3098function wpestate_create_poi_marker (place,map_for_poi){ 3099 var marker = new google.maps.Marker({ 3100 map: map_for_poi, 3101 position: place.geometry.location, 3102 show_poi:poi_type, 3103 icon: mapfunctions_vars.path+'/poi/'+poi_type+'.png' 3104 }); 3105 3106 3107 var boxText = document.createElement("div"); 3108 var infobox_poi = new InfoBox({ 3109 content: boxText, 3110 boxClass:"estate_poi_box", 3111 pixelOffset: new google.maps.Size(-30, -70), 3112 zIndex: null, 3113 maxWidth: 275, 3114 closeBoxMargin: "-13px 0px 0px 0px", 3115 closeBoxURL: "", 3116 infoBoxClearance: new google.maps.Size(1, 1), 3117 pane: "floatPane", 3118 enableEventPropagation: false 3119 }); 3120 3121 google.maps.event.addListener(marker, 'mouseover', function(event) { 3122 infobox_poi.setContent(place.name); 3123 infobox_poi.open(map_for_poi, this); 3124 }); 3125 3126 google.maps.event.addListener(marker, 'mouseout', function(event) { 3127 if( infobox_poi!== null){ 3128 infobox_poi.close(); 3129 } 3130 }); 3131 return marker; 3132}; 3133 3134 3135/* 3136* 3137* initialize poi values 3138* 3139*/ 3140 3141function wpestate_initialize_poi ( map_for_poi,what,elementId){ 3142 "use strict"; 3143 3144 var poi_marker_array=[]; 3145 3146 3147 3148 3149 if( parseInt(mapbase_vars.wp_estate_kind_of_map) == 2 || typeof(google.maps.places)==='undefined'){ 3150 return; 3151 } 3152 var poi_service = new google.maps.places.PlacesService( map_for_poi ); 3153 var already_serviced = ''; 3154 var show_poi = ''; 3155 var map_bounds = map_for_poi.getBounds(); 3156 var selector = '.google_poi'; 3157 if(what==2){ 3158 selector = '.google_poish'; 3159 } 3160 3161 3162 3163 var elementWrapper = jQuery('#'+elementId).parent(); 3164 3165 elementWrapper.find(selector).on( 'click', function(event) { 3166 event.stopPropagation(); 3167 poi_type = jQuery(this).attr('data-value'); 3168 var position = map_for_poi.getCenter(); 3169 var show_poi = wpestate_return_poi_values(poi_type); 3170 3171 3172 if( jQuery(this).hasClass('poi_active')){ 3173 wpestate_show_hide_poi(poi_type,'hide',poi_marker_array); 3174 }else{ 3175 3176 already_serviced = wpestate_show_hide_poi(poi_type,'show', poi_marker_array); 3177 if(already_serviced===1){ 3178 3179 var request = { 3180 location: position, 3181 types: show_poi, 3182 bounds: map_bounds, 3183 radius: 2500, 3184 }; 3185 poi_service.nearbySearch( request,function (results, status){ 3186 poi_marker_array=wpestate_googlemap_display_poi(results, status,map_for_poi, poi_marker_array); 3187 }); 3188 } 3189 } 3190 jQuery(this).toggleClass('poi_active'); 3191 }); 3192 3193}; 3194 3195 3196/* 3197* 3198*hide-show poi 3199* 3200*/ 3201 3202 3203function wpestate_show_hide_poi (poi_type,showhide,poi_marker_array){ 3204 var is_hiding=1; 3205 3206 3207 for (var i = 0; i < poi_marker_array.length; i++) { 3208 if (poi_marker_array[i].show_poi === poi_type){ 3209 if(showhide==='hide'){ 3210 poi_marker_array[i].setVisible(false); 3211 }else{ 3212 poi_marker_array[i].setVisible(true); 3213 is_hiding=0; 3214 } 3215 } 3216 } 3217 3218 return is_hiding; 3219}; 3220 3221 3222 3223 3224/* 3225* 3226* 3227* 3228*/ 3229 3230function wpestate_geolocation_marker (place_lat, place_lng){ 3231 "use strict"; 3232 3233 var place_radius; 3234 var read_radius =parseInt( jQuery('#geolocation_radius').val(),10 ); 3235 3236 if ( isNaN(read_radius) ){ 3237 read_radius = parseInt( mapfunctions_vars.geolocation_radius,10); 3238 } 3239 3240 if(control_vars.geo_radius_measure==='miles'){ 3241 place_radius =parseInt( read_radius*1609.34) ; 3242 }else{ 3243 place_radius =parseInt( read_radius*1000 ); 3244 } 3245 3246 if( wp_estate_kind_of_map===1){ 3247 var place_position=new google.maps.LatLng(place_lat, place_lng); 3248 map.setCenter(place_position); 3249 3250 if(placeCircle!=''){ 3251 placeCircle.setMap(null); 3252 placeCircle=''; 3253 } 3254 3255 /*var marker = new google.maps.Marker({ 3256 map: map, 3257 position: place_position, 3258 icon: mapfunctions_vars.path+'/poi/location.png' 3259 }); 3260 */ 3261 3262 var populationOptions = { 3263 strokeColor: '#67cfd8', 3264 strokeOpacity: 0.6, 3265 strokeWeight: 1, 3266 fillColor: '#1CA8DD', 3267 fillOpacity: 0.2, 3268 map: map, 3269 center: place_position, 3270 radius: parseInt(place_radius,10) 3271 }; 3272 placeCircle = new google.maps.Circle(populationOptions); 3273 map.fitBounds(placeCircle.getBounds()); 3274 }else{ 3275 var markerCenter = L.latLng(place_lat, place_lng ); 3276 map.panTo(markerCenter); 3277 3278 var markerImage = { 3279 iconUrl: mapfunctions_vars.path+'/poi/location.png', 3280 iconSize: [28, 38], 3281 iconAnchor: [10, 19], 3282 popupAnchor: [1, -18] 3283 }; 3284 var markerOptions = { 3285 riseOnHover: true 3286 }; 3287 3288 if(circleLayer!=='' && map.hasLayer(circleLayer)){ 3289 map.removeLayer(circleLayer); 3290 } 3291 circleLayer=L.featureGroup(); 3292 markerOptions.icon = L.icon( markerImage ); 3293 L.marker( markerCenter, markerOptions ).addTo( map ); 3294 placeCircle= L.circle( markerCenter, parseInt(place_radius,10) ).addTo(circleLayer); 3295 3296 map.addLayer(circleLayer); 3297 map.fitBounds(placeCircle.getBounds()); 3298 } 3299 3300 3301 3302} 3303 3304 3305function wpestate_makeSafeForCSS(name) { 3306 return name.replace(/[^a-z0-9]/g, function(s) {
3307 var c = s.charCodeAt(0); 3308 if (c == 32) return '-'; 3309 if (c >= 65 && c <= 90) return s.toLowerCase(); 3310 return ('000' + c.toString(16)).slice(-4); 3311 }); 3312} 3313 3314 3315
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.