/* XXX Lots overlap with map-OpenLayers.js - refactor! XXX Things still need to be changed for mobile use, probably won't work there. TODO Pin size on report page */ var fixmystreet = fixmystreet || {}; fixmystreet.maps = {}; (function() { fixmystreet.maps.update_pin = function(lonlat) { var lat = lonlat.lat(); var lon = lonlat.lng(); document.getElementById('fixmystreet.latitude').value = lat; document.getElementById('fixmystreet.longitude').value = lon; return { 'url': { 'lon': lon, 'lat': lat }, 'state': { 'lon': lon, 'lat': lat } }; }; fixmystreet.maps.begin_report = function(lonlat) { if (typeof lonlat.lat !== 'function') { lonlat = new google.maps.LatLng(lonlat.lat, lonlat.lon); } if (fixmystreet.page == 'new') { /* Already have a pin */ fixmystreet.report_marker.setPosition(lonlat); } else { var marker = new google.maps.Marker({ position: lonlat, draggable: true, animation: google.maps.Animation.DROP, map: fixmystreet.map }); var l = google.maps.event.addListener(marker, 'dragend', function(){ fixmystreet.update_pin( marker.getPosition() ); }); fixmystreet.report_marker = marker; google.maps.event.removeListener(fixmystreet.event_update_map); for (var m=0; m" + translation_strings.more_details + ""); infowindow.open(fixmystreet.map, marker); }; } function markers_list(pins, transform) { var markers = []; if (fixmystreet.markers) { for (var m=0; m