function toggle_progress()
{
	Element.toggle("map_progress");
	Element.toggle("map_dim");
}

function handle_zoom_change(ne, sw)
{
	pos = encodeURIComponent("[" + ne + ";" + sw) + "]";
	debug("Looking for prospects south-east of " + ne + " and north-west of " + sw);
	var url = "/result?";
	var params = [];
	// params.push("filterbox=" + pos);
	var bounds = map.getBounds();
	var center = bounds.getCenter();
	var distance_in_meters = center.distanceFrom(ne);
	var distance_in_kilometers = Math.floor(distance_in_meters/1000);
	debug("Center is now at " + center + ", distance is " + distance_in_kilometers);
	params.push("center="+encodeURIComponent(center));
	params.push("radius=" + encodeURIComponent(distance_in_kilometers));
	params.push("sortby=+geo_spec");
	params.push("format=json");
	params.push("hits=100");
	if (current_query_parameters)
	{
		current_query_parameters.each(function(pair)
		{
			params.push(pair.join("="));
		})
	}
	url += params.join("&");
	toggle_progress();
	debug("Making request to " + url);
	var request = new Ajax.Request(url, {method:"get",onSuccess:function(response)
		{
			result = eval(response.responseText);
			debug("Got response containing " + result.length + " prospects");
			if (result.length > 0)
			{
					placeMarkers(result, 99, true);
			}
			else
			{
				alert("Beklager, vi fant ingen annonser innenfor området du anga");
			}
			toggle_progress();
		},
		onError: function(transport)
		{
			debug("Got an error from the server!");
			toggle_progress();
		}
	})
}

function placeMarkersOnMap(ads)
{
	ads.each(function(ad)
	{
		debug("Adding " + ad.title + " to the map ");
	});
}

function load_searchable_map()
{
	map.addMapType(G_PHYSICAL_MAP);
	map.addControl(new GMapTypeControl());
	var rectangle_options = 
	{
		opacity: .2,
		border: "2px solid #90103B"
	};

	var zoom_options = 
	{
		buttonHTML: "<img src='/images/design/activate_map_search.png' />",
		buttonZoomingHTML: "<img src='/images/design/deactivate_map_search.png' />",
		buttonStartingStyle: {width: '80px', height: '24px', position: "absolute", top: "-85px", left: "430px"}
	};

	/* Callbacks for the zoom object */
	var callbacks = {
		dragend: function(nw,ne,se,sw,nwpx,nepx,sepx,swpx)
		{
			handle_zoom_change(ne, sw);
		}
	};
	map.addControl(new DragZoomControl(rectangle_options, zoom_options, callbacks));	

}
