/* Code based on Google Map APIv3 Tutorials */ var gmapdata= new Array(); var gmapmarker = new Array(); function if_gmap_init(id, form_id) { if(document.getElementById(id+"_element"+form_id)){ map=document.getElementById(id+"_element"+form_id); var def_zoomval = parseInt(map.getAttribute("zoom")); var def_longval = map.getAttribute("center_x"); var def_latval = map.getAttribute("center_y"); var curpoint = new google.maps.LatLng(def_latval,def_longval); gmapdata[id] = new google.maps.Map(document.getElementById(id+"_element"+form_id), { center: curpoint, zoom: def_zoomval, mapTypeId: 'roadmap' }); gmapmarker[id] = new Array(); return false; } else { draggab=false; map=document.getElementById(id); var def_zoomval = parseInt(map.getAttribute("zoom")); var def_longval = map.getAttribute("long"); var def_latval = map.getAttribute("lat"); var curpoint = new google.maps.LatLng(def_latval,def_longval); gmapdata = new google.maps.Map(document.getElementById(id), { center: curpoint, zoom: def_zoomval, mapTypeId: 'roadmap' }); geocoder = new google.maps.Geocoder(); gmapmarker = new google.maps.Marker({ map: gmapdata, position: curpoint, draggable: draggab }); gmapmarker.setDraggable(draggab); infoW = new google.maps.InfoWindow; google.maps.event.addListener(gmapdata, 'mouseover', function(event) { if(!document.getElementById("longval")) gmapmarker.draggable=false; }); google.maps.event.addListener(gmapdata, 'click', function(event) { if(document.getElementById("longval")) { document.getElementById("longval").value = event.latLng.lng().toFixed(6); document.getElementById("latval").value = event.latLng.lat().toFixed(6); gmapmarker.setPosition(event.latLng); if_gmap_updateMap(); geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (results[0]) { if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address; } } }); } }); google.maps.event.addListener(gmapmarker, 'drag', function() { if(document.getElementById("longval")) { geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (results[0]) { if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address; } } }); if_gmap_updateMap(); document.getElementById("latval").value = gmapmarker.getPosition().lat().toFixed(6); document.getElementById("longval").value = gmapmarker.getPosition().lng().toFixed(6); } }); google.maps.event.addListener(gmapmarker, 'click', function() { infoW.setContent('
'+document.getElementById(id).getAttribute('info')+"
"); var infoWOpt = { maxWidth: "300" }; infoW.setOptions(infoWOpt); infoW.open(this.getMap(), this); }); if(document.getElementById("longval")) { document.getElementById("longval").value = def_longval; document.getElementById("latval").value = def_latval; geocoder.geocode({'latLng': gmapmarker.getPosition()}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (results[0]) { if(document.getElementById("addrval")) document.getElementById("addrval").value = results[0].formatted_address; } } }); } return false; } } // end of if_gmap_init function add_marker_on_map(id, i, w_long, w_lat, w_info, form_id, dragb) { var marker_point = new google.maps.LatLng(w_lat, w_long); gmapmarker[id][i] = new google.maps.Marker({ map: gmapdata[id], position: marker_point, draggable: dragb }); gmapmarker[id][i].setDraggable(dragb); if(dragb) { google.maps.event.addListener(gmapmarker[id][i], 'drag', function() { document.getElementById(id+"_lat"+form_id).value = gmapmarker[id][i].getPosition().lat().toFixed(6); document.getElementById(id+"_long"+form_id).value = gmapmarker[id][i].getPosition().lng().toFixed(6); }); } infoW = new google.maps.InfoWindow; google.maps.event.addListener(gmapmarker[id][i], 'click', function() { infoW.setContent('
'+document.getElementById(id+"_element"+form_id).getAttribute('info'+i)+"
"); var infoWOpt = { maxWidth: "300" }; infoW.setOptions(infoWOpt); infoW.open(this.getMap(), this); }); return false; } // end of if_gmap_init