var map;
var marker;
var geocoder;

	function setLatLng()
	{
		$('lat').value = marker.getPoint().y;
	    $('lng').value = marker.getPoint().x;
	}

	function init() 
	{
	  	if (!GBrowserIsCompatible()) {
	    	alert('Your browser is not compatible with the Google Maps API');
	    	return;
	  	}
	
	  	map = new GMap2($("mapmini"));
	  	geocoder = new GClientGeocoder();
	  	map.setCenter(new GLatLng(39.985538, -3.88916), 1);
	  	map.addControl(new GSmallMapControl());
	  	map.addControl(new GMapTypeControl());
	
	  	GEvent.addListener(map, "click", manageMarker);
	}

	function manageMarker(overlay, point)
	{
		if (marker == null) 
		{
			marker = createMarker(point, "green");
	      	marker.enableDragging();
	
	      	GEvent.addListener(marker, "drag", setLatLng);
	
	      	map.addOverlay(marker);
	    } 
		else 
		{
	      	marker.setPoint(point);
	    }
	    
	    setLatLng();
	}


	function createMarker(point, color) 
	{
	  	var f = new GIcon();
	  	f.image = "http://labs.google.com/ridefinder/images/mm_20_" + color + ".png";
	  	f.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	  	f.iconSize = new GSize(12,20);
	  	f.shadowSize = new GSize(22,20);
	  	f.iconAnchor = new GPoint(6,20);
	  	f.infoWindowAnchor = new GPoint(6,1);
	  	f.infoShadowAnchor = new GPoint(13,13);
	
	  	newMarker = new GMarker(point, {icon: f, draggable: true});
	
	  	return newMarker;
	}

	function changePoint()
	{
		if (isNaN($('lat').value))
		{
			$('lat').value = 0;
			return;
		}
		
		if (isNaN($('lng').value))
		{
			$('lng').value = 0;
			return;
		}
		
		
		var newPoint = new GLatLng(parseFloat($('lat').value), parseFloat($('lng').value));
		map.setCenter(newPoint, 10);
		manageMarker(null, newPoint);
	}

	function showAddress() 
	{
	  geocoder.getLatLng(
	    $('address').value,
	    function(point) {
	      if (!point) 
		  {
	        alert($('address').value + " not found");
	      } 
		  else 
		  {
	        map.setCenter(point, 10);
	        manageMarker(null, point);    	
	      }
	    }
	  );
	}


	function newCam()
	{
		new Ajax.Request('newcam.php?date'+Date(),
		  {
		    method:'get',
		    parameters: Form.serialize('newcam'),
		    onSuccess: finish,
		    onFailure: function() { alert(message[0]) } ,
		    onLoading: loading
		  });
	}
	
	function finish(response) 
	{
		new Effect.Fade('load')
	    Form.enable($('newcam'));
	    new Effect.Appear('finish');
	}
	
	function loading() 
	{
	 	new Effect.Fade('newcam')
	    Form.disable($('newcam'));
	    new Effect.Appear('load');
	}	
	
	function othercam() 
	{
		Form.reset($('newcam'));
		new Effect.Fade('finish');	
		new Effect.Appear('newcam');
	}