var map;
var geocoder = null;
var marker;
var myLat = 43.068887774169624;
var myLng = -15.46875;
var myType = G_PHYSICAL_MAP;
var myZoom = 1;
var myLid = 0;

function initMap() 
{
    if(GBrowserIsCompatible()) 
    {
        map = new GMap2(document.getElementById("map_canvas"));        
        map.addMapType(G_PHYSICAL_MAP);
        //map.addControl(new GLargeMapControl());
        //map.addControl(new GHierarchicalMapTypeControl());
		map.setUIToDefault();
        map.enableContinuousZoom();
        map.enableScrollWheelZoom();
        map.setCenter(new GLatLng(myLat, myLng), 1);
        map.setMapType(myType);
        map.setZoom(myZoom);		
        geocoder = new GClientGeocoder();
		
		if(myLid > 0){addMarker();}
    }
}

function addAddressToMap(response) 
{
    map.clearOverlays();

    if(!response || response.Status.code != 200) 
    {
        alert("Sorry, we were unable to locate that address.");
    } 
    else 
    {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
        marker = new GMarker(point, {draggable: true});			
		GEvent.addListener(marker, "dragend", showMarkerPos);
        map.addOverlay(marker);
        map.setCenter(point, 1);
        map.setZoom(6);		
		showMarkerPos();
    }
}

function showLocation() 
{
    var address = document.forms.geoSearchForm.q.value;
    geocoder.getLocations(address, addAddressToMap);
}

function findLocation(address) 
{
    document.forms.geoSearchForm.q.value = address;
    showLocation();
}

function showMarkerPos() 
{
    document.getElementById('mLat').value = marker.getPoint().lat().toFixed(6);
	document.getElementById('mLng').value = marker.getPoint().lng().toFixed(6);
}

function addMarker()
{
    removeMarker();	
	marker = new GMarker(map.getCenter(), {draggable: true});			
	GEvent.addListener(marker, "dragend", showMarkerPos);
	map.addOverlay(marker);	
	showMarkerPos();
}

function removeMarker()
{
	if(marker != null)
	{
    	map.removeOverlay(marker);
	}
	
	document.getElementById('mLat').value = '';
    document.getElementById('mLng').value = '';
}

function getMap()
{
	return map;	
}

function getMarker()
{
	return marker;	
}


