var map;
var bounds = new GLatLngBounds();

var localSearch = new GlocalSearch();

function loadMap(lat,lng) {
	if (GBrowserIsCompatible()) {
        	map = new GMap2( document.getElementById("map_container") );
                map.addControl( new GLargeMapControl() );
                map.addControl( new GMapTypeControl() );
                map.setCenter( new GLatLng(lat,lng) );
        }
}

function addMarker( img , html, zoom, lat, lng ) {
	var icon = new GIcon(G_DEFAULT_ICON , img);
        icon.iconAnchor = new GLatLng(17,17);
        icon.infoWindowAnchor = new GLatLng(17,17);
        icon.iconSize = new GSize(24,24);

        var point = new GLatLng(lat,lng);
        var marker = new GMarker( point , icon );

	if ( html != "" ) {
        	GEvent.addListener(marker, "click", function() {
                	marker.openInfoWindowHtml(html);
                });
        } else {
               marker = new GMarker( point , icon );
        }

        bounds.extend( point );

       	if ( zoom > 0 ) {
		map.setZoom(zoom);
        } else {
            bnd = map.getBoundsZoomLevel(bounds);
        	if(bnd > 14)
        	{
        	   map.setZoom(14);
            }
            else
            {
                map.setZoom(bnd);
            }
        }
        
	map.setCenter( bounds.getCenter() );
        map.addOverlay(marker);
}

function usePointFromPostcode(postcode, callbackFunction) {
	
	localSearch.setSearchCompleteCallback(null, 
		function() {
			
			if (localSearch.results[0])
			{		
				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				var point = new GLatLng(resultLat,resultLng);
				callbackFunction(point);
			}else{
				$('#map_error').html('<span class="map_error">You must enter a valid postcode</span>');                    

			}
		});	
		
	localSearch.execute(postcode + ", UK");
}



