
function GoogleMap(mapId)
{var mapDiv=$('#'+mapId);var map;var infoWindow;var useBounds=false;var errorMsgSupport="Your Internet browser does not support Google maps.";var errorMsgMap="There was an error when loading the map.";return{load:function(lat,lng,zoom)
{try
{if(GBrowserIsCompatible())
{map=new GMap2(document.getElementById(mapId));map.addControl(new GLargeMapControl());map.addControl(new GMapTypeControl());if(false==useBounds)
{map.setCenter(new GLatLng(parseFloat(lat),parseFloat(lng)),parseInt(zoom));}
else
{map.setCenter(boundsMap.getCenter(),map.getBoundsZoomLevel(boundsMap));}
map.setMapType(G_NORMAL_MAP);map.enableScrollWheelZoom();}
else
{mapDiv.html(errorMsgSupport);}}
catch(e)
{mapDiv.html(errorMsgMap);}},registerMapMoveHandler:function(latObj,longObj,zoomObj)
{GEvent.addListener(map,"moveend",function(){latObj.val(map.getCenter().lat());longObj.val(map.getCenter().lng());zoomObj.val(map.getZoom());});},get:function(name)
{switch(name)
{case'map':return map;break;case'center':return map.getCenter();break;case'lat':return map.getCenter().lat();break;case'long':return map.getCenter().lng();break;case'zoom':return map.getZoom();break;case'infoWindow':return map.getInfoWindow();break;default:alert(name+" not implemented.");exit();}},openMapInfoWindow:function(point,html)
{infoWindow=map.openInfoWindowHtml(point,html);},hideMapInfoWindow:function()
{map.getInfoWindow().hide();}}}