;( function ( $, settings ) {
'use strict';
if ( window.Opalestate === undefined ) {
window.Opalestate = {};
}
/**
* GooglemapSearch
*/
var GooglemapSingle = Opalestate.GooglemapSingle = function ( data, id ) {
/**
* Create Google Map In Single Property Only
*/
var initializePropertyMap = function ( data, id ) {
var propertyMarkerInfo = data;
var enable = true;
var url = propertyMarkerInfo.icon;
var size = new google.maps.Size( 42, 57 );
var allMarkers = [];
var setMapOnAll = function ( markers, map ) {
for ( var i = 0; i < markers.length; i++ ) {
markers[ i ].setMap( map );
}
};
// retina
if ( window.devicePixelRatio > 1.5 ) {
if ( propertyMarkerInfo.retinaIcon ) {
url = propertyMarkerInfo.retinaIcon;
size = new google.maps.Size( 83, 113 );
}
}
var propertyLocation = new google.maps.LatLng( propertyMarkerInfo.latitude, propertyMarkerInfo.longitude );
var propertyMapOptions = {
center: propertyLocation,
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP,
scrollwheel: false
};
var propertyMap = new google.maps.Map( document.getElementById( id ), propertyMapOptions );
/**
*
*/
var createMarker = function ( position, icon ) {
var image = {
url: icon,
size: size,
scaledSize: new google.maps.Size( 32, 57 ),
origin: new google.maps.Point( 0, 0 ),
anchor: new google.maps.Point( 21, 56 )
};
var _marker = new google.maps.Marker( {
map: propertyMap,
position: position,
icon: image
} );
return _marker;
};
var infowindow = new google.maps.InfoWindow();
createMarker( propertyLocation, url );
/**
* Places near with actived types
*/
if ( enable ) {
var $navs = $( '#' + id ).parent().find( '.property-search-places' );
$( ' .btn-map-search', $navs ).unbind( 'click' ).bind( 'click', function () {
var service = new google.maps.places.PlacesService( propertyMap );
var type = $( this ).data( 'type' );
var $this = $( this ).parent();
var icon = {
url: opalesateJS.mapiconurl + $( this ).data( 'icon' ),
scaledSize: new google.maps.Size( 28, 28 ),
anchor: new google.maps.Point( 21, 16 ),
origin: new google.maps.Point( 0, 0 )
};
if ( !allMarkers[ type ] || allMarkers[ type ].length <= 0 ) {
var markers = [];
var bounds = propertyMap.getBounds();
var $this = $( this );
service.nearbySearch( {
location: propertyLocation,
radius: 2000,
bounds: bounds,
type: type
}, callbackNearBy );
function callbackNearBy( results, status ) {
if ( status === google.maps.places.PlacesServiceStatus.OK ) {
for ( var i = 0; i < results.length; i++ ) {
createMarkerNearBy( results[ i ] );
}
$( '.nearby-counter', $this ).remove();
$( 'span', $this )
.append( $( '' + markers.length + '' ) );
allMarkers[ type ] = markers;
}
}
function abc() {
if ( status === google.maps.places.PlacesServiceStatus.OK ) {
for ( var i = 0; i < results.length; i++ ) {
var place = results[ i ];
var marker = new google.maps.Marker( {
map: propertyMap,
position: place.geometry.location,
icon: icon,
visible: true
} );
marker.setMap( propertyMap );
google.maps.event.addListener( marker, 'click', function () {
infowindow.setContent( place.name );
infowindow.open( propertyMap, this );
} );
markers.push( marker );
}
$( '.nearby-counter', $this ).remove();
$( 'span', $this )
.append( $( '' + markers.length + '' ) );
allMarkers[ type ] = markers;
//console.log( place );
}
}
function createMarkerNearBy( place ) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker( {
map: propertyMap,
position: place.geometry.location,
icon: icon,
visible: true
} );
marker.setMap( propertyMap );
google.maps.event.addListener( marker, 'click', function () {
infowindow.setContent( place.name );
infowindow.open( propertyMap, this );
} );
markers.push( marker );
}
} else {
for ( var i = 0; i < allMarkers[ type ].length; i++ ) {
allMarkers[ type ][ i ].setMap( null );
}
allMarkers[ type ] = [];
}
$( this ).toggleClass( 'active' );
} );
}
};
initializePropertyMap( data, id );
};
var GoogleMapSearch = Opalestate.GooglemapSingle = function ( data ) {
var initializePropertiesMap = function ( properties ) {
// Properties Array
var mapOptions = {
zoom: 12,
maxZoom: 16,
scrollwheel: false,
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: false,
zoomControl: true,
mapTypeControl: false,
scaleControl: false,
streetViewControl: true,
overviewMapControl: false,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL,
position: google.maps.ControlPosition.RIGHT_TOP
},
streetViewControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP
}
};
if ( ( typeof opalestateGmap !== 'undefined' ) ) {
switch ( opalestateGmap.style ) {
case 'standard':
mapOptions.styles = GoogleMapStyles.standard;
break;
case 'silver':
mapOptions.styles = GoogleMapStyles.silver;
break;
case 'retro':
mapOptions.styles = GoogleMapStyles.retro;
break;
case 'dark':
mapOptions.styles = GoogleMapStyles.dark;
break;
case 'night':
mapOptions.styles = GoogleMapStyles.night;
break;
case 'aubergine':
mapOptions.styles = GoogleMapStyles.aubergine;
break;
case 'custom':
if ( opalestateGmap.custom_style != '' ) {
mapOptions.styles = $.parseJSON( opalestateGmap.custom_style );
}
break;
}
}
var map = new google.maps.Map( document.getElementById( 'opalestate-map-preview' ), mapOptions );
var bounds = new google.maps.LatLngBounds();
// Loop to generate marker and infowindow based on properties array
var markers = new Array();
for ( var i = 0; i < properties.length; i++ ) {
// console.log( properties[i] );
var url = properties[ i ].icon;
var size = new google.maps.Size( 42, 57 );
if ( window.devicePixelRatio > 1.5 ) {
if ( properties[ i ].retinaIcon ) {
url = properties[ i ].retinaIcon;
size = new google.maps.Size( 83, 113 );
}
}
var image = {
url: url,
size: size,
scaledSize: new google.maps.Size( 30, 51 ),
origin: new google.maps.Point( 0, 0 ),
anchor: new google.maps.Point( 21, 56 )
};
markers[ i ] = new google.maps.Marker( {
position: new google.maps.LatLng( properties[ i ].lat, properties[ i ].lng ),
map: map,
icon: image,
title: properties[ i ].title,
animation: google.maps.Animation.DROP,
visible: true
} );
bounds.extend( markers[ i ].getPosition() );
var boxText = document.createElement( 'div' );
var pricelabel = '';
if ( properties[ i ].pricelabel ) {
pricelabel = ' / ' + properties[ i ].pricelabel;
}
boxText.className = 'map-info-preview media';
function opalestate_get_property_icon( $key ) {
var $icon = $key;
switch ( $key ) {
case 'builtyear':
$icon = 'fas fa-calendar';
break;
case 'parking':
$icon = 'fas fa-car';
break;
case 'bedrooms':
$icon = 'fas fa-bed';
break;
case 'bathrooms':
$icon = 'fas fa-bath';
break;
case 'plotsize':
$icon = 'fas fa-map';
break;
case 'areasize':
$icon = 'fas fa-arrows-alt';
break;
case 'orientation':
$icon = 'fas fa-compass';
break;
case 'livingrooms':
$icon = 'fas fa-tv';
break;
case 'kitchens':
$icon = 'fas fa-utensils';
break;
case 'amountrooms':
$icon = 'fas fa-building';
break;
default:
$icon = $key;
break;
}
return $icon;
}
var meta = '
';
boxText.innerHTML = '' +
'' +
'
' + properties[ i ].address +
'
' + properties[ i ].pricehtml + pricelabel +
'
' + meta + '
' + '';
var myOptions = {
content: boxText,
disableAutoPan: true,
maxWidth: 0,
alignBottom: true,
pixelOffset: new google.maps.Size( -122, -48 ),
zIndex: null,
closeBoxMargin: '0 0 -16px -16px',
closeBoxURL: opalesateJS.mapiconurl + 'close.png',
infoBoxClearance: new google.maps.Size( 1, 1 ),
isHidden: false,
pane: 'floatPane',
enableEventPropagation: false
};
var ib = new InfoBox( myOptions );
attachInfoBoxToMarker( map, markers[ i ], ib, i );
}
var last = null;
$( 'body' ).delegate( '[data-related="map"]', 'mouseenter', function () {
if ( $( this ).hasClass( 'map-active' ) ) {
return true;
}
var i = $( this ).data( 'id' );
$( '[data-related="map"]' ).removeClass( 'map-active' );
$( this ).addClass( 'active' );
map.setZoom( 65536 );// alert( scale );
if ( markers[ i ] ) {
var marker = markers[ i ];
google.maps.event.trigger( markers[ i ], 'click' );
var scale = Math.pow( 2, map.getZoom() );
var offsety = ( ( 100 / scale ) || 0 );
var projection = map.getProjection();
var markerPosition = marker.getPosition();
var markerScreenPosition = projection.fromLatLngToPoint( markerPosition );
var pointHalfScreenAbove = new google.maps.Point( markerScreenPosition.x,
markerScreenPosition.y - offsety );
var aboveMarkerLatLng = projection.fromPointToLatLng( pointHalfScreenAbove );
map.setZoom( scale );
map.setCenter( aboveMarkerLatLng );
}
return false;
} );
map.fitBounds( bounds );
/* Marker Clusters */
var markerClustererOptions = {
ignoreHidden: true,
maxZoom: 14,
styles: [
{
textColor: '#000000',
url: opalesateJS.mapiconurl + 'cluster-icon.png',
height: 51,
width: 30
} ]
};
var markerClusterer = new MarkerClusterer( map, markers, markerClustererOptions );
function attachInfoBoxToMarker( map, marker, infoBox, i ) {
google.maps.event.addListener( marker, 'click', function () {
if ( $( '[data-related="map"]' ).filter( '[data-id="' + i + '"]' ).length > 0 ) {
var $m = $( '[data-related="map"]' ).filter( '[data-id="' + i + '"]' );
$( '[data-related="map"]' ).removeClass( 'map-active' );
$m.addClass( 'map-active' );
}
if ( last != null ) {
last.close();
}
var scale = Math.pow( 2, map.getZoom() );
var offsety = ( ( 100 / scale ) || 0 );
var projection = map.getProjection();
var markerPosition = marker.getPosition();
var markerScreenPosition = projection.fromLatLngToPoint( markerPosition );
var pointHalfScreenAbove = new google.maps.Point( markerScreenPosition.x,
markerScreenPosition.y - offsety );
var aboveMarkerLatLng = projection.fromPointToLatLng( pointHalfScreenAbove );
map.setCenter( aboveMarkerLatLng );
infoBox.open( map, marker );
last = infoBox;
} );
}
};
initializePropertiesMap( data );
};
var GoogleMapStyles = {
standard: [],
silver: [
{
'elementType': 'geometry',
'stylers': [
{
'color': '#f5f5f5'
}
]
},
{
'elementType': 'labels.icon',
'stylers': [
{
'visibility': 'off'
}
]
},
{
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#616161'
}
]
},
{
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#f5f5f5'
}
]
},
{
'featureType': 'administrative.land_parcel',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#bdbdbd'
}
]
},
{
'featureType': 'poi',
'elementType': 'geometry',
'stylers': [
{
'color': '#eeeeee'
}
]
},
{
'featureType': 'poi',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#757575'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'geometry',
'stylers': [
{
'color': '#e5e5e5'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#9e9e9e'
}
]
},
{
'featureType': 'road',
'elementType': 'geometry',
'stylers': [
{
'color': '#ffffff'
}
]
},
{
'featureType': 'road.arterial',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#757575'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'geometry',
'stylers': [
{
'color': '#dadada'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#616161'
}
]
},
{
'featureType': 'road.local',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#9e9e9e'
}
]
},
{
'featureType': 'transit.line',
'elementType': 'geometry',
'stylers': [
{
'color': '#e5e5e5'
}
]
},
{
'featureType': 'transit.station',
'elementType': 'geometry',
'stylers': [
{
'color': '#eeeeee'
}
]
},
{
'featureType': 'water',
'elementType': 'geometry',
'stylers': [
{
'color': '#c9c9c9'
}
]
},
{
'featureType': 'water',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#9e9e9e'
}
]
}
],
retro: [
{
'elementType': 'geometry',
'stylers': [
{
'color': '#ebe3cd'
}
]
},
{
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#523735'
}
]
},
{
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#f5f1e6'
}
]
},
{
'featureType': 'administrative',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#c9b2a6'
}
]
},
{
'featureType': 'administrative.land_parcel',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#dcd2be'
}
]
},
{
'featureType': 'administrative.land_parcel',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#ae9e90'
}
]
},
{
'featureType': 'landscape.natural',
'elementType': 'geometry',
'stylers': [
{
'color': '#dfd2ae'
}
]
},
{
'featureType': 'poi',
'elementType': 'geometry',
'stylers': [
{
'color': '#dfd2ae'
}
]
},
{
'featureType': 'poi',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#93817c'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'geometry.fill',
'stylers': [
{
'color': '#a5b076'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#447530'
}
]
},
{
'featureType': 'road',
'elementType': 'geometry',
'stylers': [
{
'color': '#f5f1e6'
}
]
},
{
'featureType': 'road.arterial',
'elementType': 'geometry',
'stylers': [
{
'color': '#fdfcf8'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'geometry',
'stylers': [
{
'color': '#f8c967'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#e9bc62'
}
]
},
{
'featureType': 'road.highway.controlled_access',
'elementType': 'geometry',
'stylers': [
{
'color': '#e98d58'
}
]
},
{
'featureType': 'road.highway.controlled_access',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#db8555'
}
]
},
{
'featureType': 'road.local',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#806b63'
}
]
},
{
'featureType': 'transit.line',
'elementType': 'geometry',
'stylers': [
{
'color': '#dfd2ae'
}
]
},
{
'featureType': 'transit.line',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#8f7d77'
}
]
},
{
'featureType': 'transit.line',
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#ebe3cd'
}
]
},
{
'featureType': 'transit.station',
'elementType': 'geometry',
'stylers': [
{
'color': '#dfd2ae'
}
]
},
{
'featureType': 'water',
'elementType': 'geometry.fill',
'stylers': [
{
'color': '#b9d3c2'
}
]
},
{
'featureType': 'water',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#92998d'
}
]
}
],
dark: [
{
'elementType': 'geometry',
'stylers': [
{
'color': '#212121'
}
]
},
{
'elementType': 'labels.icon',
'stylers': [
{
'visibility': 'off'
}
]
},
{
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#757575'
}
]
},
{
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#212121'
}
]
},
{
'featureType': 'administrative',
'elementType': 'geometry',
'stylers': [
{
'color': '#757575'
}
]
},
{
'featureType': 'administrative.country',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#9e9e9e'
}
]
},
{
'featureType': 'administrative.land_parcel',
'stylers': [
{
'visibility': 'off'
}
]
},
{
'featureType': 'administrative.locality',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#bdbdbd'
}
]
},
{
'featureType': 'poi',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#757575'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'geometry',
'stylers': [
{
'color': '#181818'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#616161'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#1b1b1b'
}
]
},
{
'featureType': 'road',
'elementType': 'geometry.fill',
'stylers': [
{
'color': '#2c2c2c'
}
]
},
{
'featureType': 'road',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#8a8a8a'
}
]
},
{
'featureType': 'road.arterial',
'elementType': 'geometry',
'stylers': [
{
'color': '#373737'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'geometry',
'stylers': [
{
'color': '#3c3c3c'
}
]
},
{
'featureType': 'road.highway.controlled_access',
'elementType': 'geometry',
'stylers': [
{
'color': '#4e4e4e'
}
]
},
{
'featureType': 'road.local',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#616161'
}
]
},
{
'featureType': 'transit',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#757575'
}
]
},
{
'featureType': 'water',
'elementType': 'geometry',
'stylers': [
{
'color': '#000000'
}
]
},
{
'featureType': 'water',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#3d3d3d'
}
]
}
],
night: [
{
'elementType': 'geometry',
'stylers': [
{
'color': '#242f3e'
}
]
},
{
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#746855'
}
]
},
{
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#242f3e'
}
]
},
{
'featureType': 'administrative.locality',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#d59563'
}
]
},
{
'featureType': 'poi',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#d59563'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'geometry',
'stylers': [
{
'color': '#263c3f'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#6b9a76'
}
]
},
{
'featureType': 'road',
'elementType': 'geometry',
'stylers': [
{
'color': '#38414e'
}
]
},
{
'featureType': 'road',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#212a37'
}
]
},
{
'featureType': 'road',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#9ca5b3'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'geometry',
'stylers': [
{
'color': '#746855'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#1f2835'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#f3d19c'
}
]
},
{
'featureType': 'transit',
'elementType': 'geometry',
'stylers': [
{
'color': '#2f3948'
}
]
},
{
'featureType': 'transit.station',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#d59563'
}
]
},
{
'featureType': 'water',
'elementType': 'geometry',
'stylers': [
{
'color': '#17263c'
}
]
},
{
'featureType': 'water',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#515c6d'
}
]
},
{
'featureType': 'water',
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#17263c'
}
]
}
],
aubergine: [
{
'elementType': 'geometry',
'stylers': [
{
'color': '#1d2c4d'
}
]
},
{
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#8ec3b9'
}
]
},
{
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#1a3646'
}
]
},
{
'featureType': 'administrative.country',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#4b6878'
}
]
},
{
'featureType': 'administrative.land_parcel',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#64779e'
}
]
},
{
'featureType': 'administrative.province',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#4b6878'
}
]
},
{
'featureType': 'landscape.man_made',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#334e87'
}
]
},
{
'featureType': 'landscape.natural',
'elementType': 'geometry',
'stylers': [
{
'color': '#023e58'
}
]
},
{
'featureType': 'poi',
'elementType': 'geometry',
'stylers': [
{
'color': '#283d6a'
}
]
},
{
'featureType': 'poi',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#6f9ba5'
}
]
},
{
'featureType': 'poi',
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#1d2c4d'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'geometry.fill',
'stylers': [
{
'color': '#023e58'
}
]
},
{
'featureType': 'poi.park',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#3C7680'
}
]
},
{
'featureType': 'road',
'elementType': 'geometry',
'stylers': [
{
'color': '#304a7d'
}
]
},
{
'featureType': 'road',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#98a5be'
}
]
},
{
'featureType': 'road',
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#1d2c4d'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'geometry',
'stylers': [
{
'color': '#2c6675'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'geometry.stroke',
'stylers': [
{
'color': '#255763'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#b0d5ce'
}
]
},
{
'featureType': 'road.highway',
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#023e58'
}
]
},
{
'featureType': 'transit',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#98a5be'
}
]
},
{
'featureType': 'transit',
'elementType': 'labels.text.stroke',
'stylers': [
{
'color': '#1d2c4d'
}
]
},
{
'featureType': 'transit.line',
'elementType': 'geometry.fill',
'stylers': [
{
'color': '#283d6a'
}
]
},
{
'featureType': 'transit.station',
'elementType': 'geometry',
'stylers': [
{
'color': '#3a4762'
}
]
},
{
'featureType': 'water',
'elementType': 'geometry',
'stylers': [
{
'color': '#0e1626'
}
]
},
{
'featureType': 'water',
'elementType': 'labels.text.fill',
'stylers': [
{
'color': '#4e6d70'
}
]
}
]
};
/////
$( document ).ready( function () {
function initialize_property_street_view( data, id ) {
var propertyMarkerInfo = data;
var propertyLocation = new google.maps.LatLng( propertyMarkerInfo.latitude, propertyMarkerInfo.longitude );
/**
* Street View
*/
var panoramaOptions = {
position: propertyLocation,
pov: {
heading: 34,
pitch: 10
}
};
var panorama = new google.maps.StreetViewPanorama( document.getElementById( id ), panoramaOptions );
google.maps.event.trigger( panorama, 'resize' );
}
$( '.property-preview-map' ).each( function () {
new GooglemapSingle( $( this ).data(), $( this ).attr( 'id' ) );
} );
$( '.tab-google-street-view-btn' ).click( function () {
$( '.property-preview-street-map' ).hide();
$( '.property-preview-street-map' ).each( function () {
var d = $( this ).data();
var i = $( this ).attr( 'id' );
initialize_property_street_view( d, i );
} );
$( '.property-preview-street-map' ).show( 100 );
} );
///
// auto set height for split google map
$( '.split-maps-container' ).each( function () {
$( '#opalestate-map-preview ' ).height( $( window ).height() );
} );
} );
$( document ).ready( function () {
// search
// show google maps
// update google maps
var updatePreviewGoogleMap = function ( url ) {
if ( $( '#opalestate-map-preview' ).length > 0 ) {
$.ajax( {
type: 'GET',
dataType: 'json',
url: opalesateJS.ajaxurl,
data: url,
success: function ( data ) {
new GoogleMapSearch( data );
}
} );
}
};
if ( $( '#opalestate-map-preview' ).length > 0 || $( '.opalesate-properties-results' ).length > 0 ) {
var currentLocation = location.search.substr( 1 ) + '&action=opalestate_ajx_get_properties&paged=' +
$( '#opalestate-map-preview' ).data( 'page' );
updatePreviewGoogleMap( currentLocation );
}
// update results
function updatePropertiesResults( data ) {
$( '.opalesate-properties-results' ).append( $( '' ) );
$.ajax( {
type: 'GET',
url: opalesateJS.ajaxurl,
data: data + '&action=opalestate_render_get_properties',
success: function ( response ) {
if ( response ) {
$( '.opalesate-properties-results' ).html( response );
}
$( '.opalesate-properties-results .opalestate-loading' ).remove();
$( '.opalestate-sortable select' ).select2( {
width: '100%',
minimumResultsForSearch: -1
} );
}
} );
}
function updatePropertiesByParseringHtml( newurl ) {
$( '.opalesate-properties-results .opalesate-archive-bottom' )
.append( $( '' ) );
$.ajax( {
type: 'GET',
url: newurl,
dataType: 'html',
cache: false,
success: function ( data ) {
if ( data ) {
$( '.opalesate-properties-results' )
.html( $( data ).find( '.opalesate-properties-results' ).html() );
$( '.opalestate-sortable select' ).select2( {
width: '100%',
minimumResultsForSearch: -1
} );
}
// $( '.opalesate-properties-results .opalestate-loading').remove();
}
} );
}
$( 'form.opalestate-search-form' ).submit( function () {
if ( $( '#opalestate-map-preview' ).length > 0 ) {
if ( $( '.opalesate-properties-results' ) && $( '.opalesate-properties-results' ).data( 'mode' ) ==
'html' ) {
var $form = $( this );
if ( history.pushState ) {
var ps = $form.serialize();
var newurl = window.location.protocol + '//' + window.location.host + window.location.pathname +
'?' + ps;
window.history.pushState( { path: newurl }, '', newurl );
updatePropertiesByParseringHtml( newurl );
}
} else {
updatePropertiesResults( $( this ).serialize() );
}
return false;
}
return true;
} );
$( '.ajax-search-form form.opalestate-search-form' ).each( function () {
var $form = $( this );
$( '.ajax-change select', this ).change( function () {
if ( history.pushState ) {
var ps = $form.serialize();
var newurl = window.location.protocol + '//' + window.location.host + window.location.pathname +
'?' + ps;
window.history.pushState( { path: newurl }, '', newurl );
}
$form.submit();
return false;
} );
} );
// // Sortable Change // //
$( 'body' ).delegate( '#opalestate-sortable-form select', 'change', function () {
var ps = '';
if ( $( 'form.opalestate-search-form' ).length > 0 ) {
var $form = $( 'form.opalestate-search-form' );
var ps = $form.serialize() + '&opalsortable=' + $( this ).val() + '&display=' +
$( '.display-mode a.active' ).data( 'mode' );
}
if ( $( '.opalesate-properties-results' ) && ps ) {
if ( history.pushState ) {
var newurl = window.location.protocol + '//' + window.location.host + window.location.pathname +
'?' + ps;
window.history.pushState( { path: newurl }, '', newurl );
updatePropertiesByParseringHtml( newurl );
}
} else {
$( '#opalestate-sortable-form' ).submit();
}
} );
// display mode
$( 'body' ).delegate( '.display-mode a', 'click', function () {
if ( $( '.opalesate-properties-results' ).length > 0 ) {
var newurl = $( this ).attr( 'href' );
window.history.pushState( { path: newurl }, '', newurl );
updatePropertiesByParseringHtml( newurl );
return false;
}
} );
// check any estate search form is enabled /////////////////
if ( $( '#opalestate-map-preview' ).length > 0 ) {
$( 'body' ).delegate( 'form.opalestate-search-form select', 'change', function () {
var params = $( 'form.opalestate-search-form' ).serialize();
var url = 'action=opalestate_ajx_get_properties&' + params;
updatePreviewGoogleMap( url );
$( 'form.opalestate-search-form' ).submit();
return true;
} );
$( 'body' ).delegate( 'form.opalestate-search-form input', 'change', function () {
if ( $( this ).hasClass( 'ranger-geo_radius' ) ) {
return false;
}
var params = $( 'form.opalestate-search-form' ).serialize();
var url = 'action=opalestate_ajx_get_properties&' + params;
updatePreviewGoogleMap( url );
$( 'form.opalestate-search-form' ).submit();
} );
}
/////////// ///////
} );
} )( jQuery );
//// //////
( function ( $ ) {
'use strict';
$( document ).ready( function () {
$( '.opalestate-search-opal-map' ).each( function () {
initializeMapAdressSearch( $( this ) );
} );
} );
function initializeMapAdressSearch( mapInstance ) {
var searchInput = mapInstance.find( '.opal-map-search' );
// Search
var autocomplete = new google.maps.places.Autocomplete( searchInput[ 0 ] );
// autocomplete.bindTo( 'bounds', map );
var latitude = mapInstance.find( '.opal-map-latitude' );
var longitude = mapInstance.find( '.opal-map-longitude' );
google.maps.event.addListener( autocomplete, 'place_changed', function () {
var place = autocomplete.getPlace();
if ( !place.geometry ) {
return;
}
if ( place.geometry.location.lat() ) {
$( mapInstance ).addClass( 'active' );
} else {
$( mapInstance ).removeClass( 'active' );
}
latitude.val( place.geometry.location.lat() );
longitude.val( place.geometry.location.lng() );
} );
$( '.map-remove', mapInstance ).click( function () {
latitude.val( '' );
longitude.val( '' );
searchInput.val( '' );
latitude.change();
} );
$( searchInput ).keypress( function ( event ) {
if ( 13 === event.keyCode ) {
event.preventDefault();
}
} );
}
} )( jQuery );