var clearedLocation;
var blueIcon;
var redIcon;

function clearLocationInput( value ) {
	
	$('location').removeClassName( 'smaller' );
	$('location').value = '';	
	
}

var map;
var geocoder = new GClientGeocoder();
var keepOverlays = false;

function load() {
  if (GBrowserIsCompatible()) {
  
	map = new GMap2(document.getElementById("map"));
	
	//map.enableScrollWheelZoom();
	map.addControl(new GLargeMapControl());
	//map.addControl(new GMapTypeControl());   
	map.addControl(new GScaleControl());     
	map.setCenter(new GLatLng( centerLat, centerLon), zoomFactor );
	
	//start search by map bounds on moveend
	GEvent.addListener(map, "moveend", function() { startSearchByBounds(); });
	
	//start search once
	startSearchByBounds();
  	
  }
}

function startSearchByBounds() {
	
	if ( map.getZoom() < ajaxSearchStartZoomLevelMinimum ) {
		map.clearOverlays();
		$('results').innerHTML = '';
		//$('zoomIn').show();
		return;
	}
	//$('zoomIn').hide();
	$('spinner').show();
	
	bounds = map.getBounds();
    
    var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	
  	findSnacks( southWest.lat(), northEast.lat(), southWest.lng(), northEast.lng() );
}

function resolveLocation( zoom ) {

	if ( zoom == undefined ) {
		zoom = 13;
	} 
	
	$('spinner').show();
		
	geocoder.getLatLng(
	 
		$('location').value+', deutschland',
		function(point) {
		
			if (!point) {
				//fail to resolve location
				$('spinner').hide();

				return;
			}
			else {
				 
				 map.setCenter(point, zoom);
			}
		 	
		}
	);
  
}

function findSnacks( minLat, maxLat, minLon, maxLon ) {
	new Ajax.Updater( 'results', ajaxSearchUrl, {
		parameters: {
			minLat		:	minLat,
			maxLat		:	maxLat,
			minLon		:	minLon,
			maxLon		:	maxLon,
			location	:   $('location').value,
			text		:	$('appetit').value,
			centerLat	:	map.getCenter().y,
			centerLon	:	map.getCenter().x,
			zoomFactor	:	map.getZoom()	
		},
		evalScripts: true
	} );
}

function search_keycheck( event ) {
	//pressed enter
	if (event && event.keyCode == 13) { 
		resolveLocation();  
		return false; 
	}
	
	return true;
}

function resolveTownName( string ) {
	$('location').value = string;
	resolveLocation( 11 );
	
} 
