jQuery(document).ready(function($) { function initialize() { var lat = ($('#lat').val()) ? $('#lat').val() : -33.8688; var lng = ($('#lang').val()) ? $('#lang').val() : 151.2195; var mapOptions = {center: new google.maps.LatLng(lat, lng),zoom: 15,mapTypeId: google.maps.MapTypeId.ROADMAP}; var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); var input = document.getElementById('searchTextField'); var autocomplete = new google.maps.places.Autocomplete(input); autocomplete.bindTo('bounds', map); var infowindow = new google.maps.InfoWindow(); if($('#lat').val()){ var marker = new google.maps.Marker({position: new google.maps.LatLng(lat, lng),map: map});} else{ var marker = new google.maps.Marker({map: map});} google.maps.event.addListener(autocomplete, 'place_changed', function() { infowindow.close(); var place = autocomplete.getPlace(); if (place.geometry.viewport) { map.fitBounds(place.geometry.viewport); } else { map.setCenter(place.geometry.location); map.setZoom(17); // Why 17? Because it looks good. } var image = new google.maps.MarkerImage(place.icon, new google.maps.Size(71, 71), new google.maps.Point(0, 0), new google.maps.Point(17, 34), new google.maps.Size(35, 35)); marker.setIcon(image); marker.setPosition(place.geometry.location); var address = ''; if (place.address_components) { address = [(place.address_components[0] && place.address_components[0].short_name || ''), (place.address_components[1] && place.address_components[1].short_name || ''), (place.address_components[2] && place.address_components[2].short_name || '')].join(' '); } $('#event_place').val(place.name); $('#lang').val(marker.position.lng()); $('#lat').val(marker.position.lat()); infowindow.setContent('
' + place.name + '
' + address); infowindow.open(map, marker); }); // Sets a listener on a radio button to change the filter type on Places // Autocomplete. function setupClickListener(id, types) { var radioButton = document.getElementById(id); google.maps.event.addDomListener(radioButton, 'click', function() { autocomplete.setTypes(types); }); } setupClickListener('changetype-all', []); setupClickListener('changetype-establishment', ['establishment']); setupClickListener('changetype-geocode', ['geocode']); } google.maps.event.addDomListener(window, 'load', initialize); if( $('#event_start_time') && $('#event_end_time') ){ $('#event_start_time, #event_end_time').datetimepicker({timeFormat: 'HH:mm', dateFormat: 'yy-mm-dd'}); } });