var map;
var marker;

function initialize(varLat,varLng) {
	
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
		geocoder = new GClientGeocoder();
		
        map.setCenter(new GLatLng(60.0,15.52), 6);
        map.setMapType(G_NORMAL_MAP);
		map.addControl(new GLargeMapControl3D());

		combineFields(document.getElementById('observation'));
		
		GEvent.addListener(map,"click", function(overlay, latlng) {     
			
			if (latlng) {
				var newDot = createMarker(latlng, 1, map);
				
				if (typeof(marker) != 'undefined') {
					
					marker.remove();
				}
				map.addOverlay(newDot);
				marker = newDot;
				document.getElementById('lat').value = latlng.lat();
			  	document.getElementById('lng').value = latlng.lng();
  			}
		});

		if (typeof(varLat) == 'string' && typeof(varLng) == 'string') {
			latlng = new GLatLng(varLat, varLng)
			map.clearOverlays()
			map.setCenter(latlng, 14);
			marker = new GMarker(latlng, {draggable: true});  
			map.addOverlay(marker);
			GEvent.addListener(marker, "dragend", function() {
				var pt = marker.getPoint();
				map.panTo(pt);

				document.getElementById('lat').value = pt.lat();
			  	document.getElementById('lng').value = pt.lng();
			});
			
		}

		function createMarker(latlng, number, map) {
		  var marker = new GMarker(latlng, {draggable: true});
		  //var message = ["This","is","the","secret","message"];
		  //marker.value = number;
		  //GEvent.addListener(marker, "click", function() {
			//var myHtml = "<b>#" + number + "</b><br/>" + message[number -1];
			//map.openInfoWindowHtml(latlng, myHtml);
		  //});
		  
		  GEvent.addListener(marker, "dragend", function() {
						var pt = marker.getPoint();
						map.panTo(pt);
						document.getElementById("lat").value = pt.lat();
						document.getElementById("lng").value = pt.lng();
					});
					
		  
		  return marker;
		}
		

}
	  
}


function showAddress(address) {
//			var map = new GMap2(document.getElementById("map_canvas"));
//			map.setMapType(G_NORMAL_MAP);
//			map.addControl(new GLargeMapControl3D());
//alert(address);
       		if (geocoder) {
        		geocoder.getLatLng(address, function(point) {
            	if (!point) {
					//alert(address + " not found");
					document.getElementById("map_message").innerHTML = "<br/>Kunde inte hitta en kartträff för angiven ort och landskap. Du kan välja på att spara din rapport, ändra till en större ort eller via kartan här nere placera din exakta position.<br/><label for='extramapserach'>Gatuadress eller annat söknamn</label><input type='text' name='extramapsearch' id='extramapsearch' onchange='combineFields(this);'> <input type='button' value='uppdatera'><br/><i>(Används endast att placera nålen, text sparas ej!)";
				} else {
					document.getElementById("map_message").innerHTML = "<br/>Vill du placera nålen mera noggrant så flytta den med musen eller skriv in adress, område i fältet. <br/><label for='extramapserach'>Gatuadress eller annat söknamn</label><input type='text' name='extramapsearch' id='extramapsearch' onchange='combineFields(this);'> <input type='button' value='uppdatera'><br/><i>(Används endast att placera nålen, text sparas ej!)</i>";
					document.getElementById("lat").value = point.lat();
					document.getElementById("lng").value = point.lng();
					map.clearOverlays()
					map.setCenter(point, 14);
					marker = new GMarker(point, {draggable: true});  
					map.addOverlay(marker);

					GEvent.addListener(marker, "dragend", function() {
						var pt = marker.getPoint();
						map.panTo(pt);
						document.getElementById("lat").value = pt.lat();
						document.getElementById("lng").value = pt.lng();
					});
				
					/**
					GEvent.addListener(map, "moveend", function() {
						map.clearOverlays();
						var center = map.getCenter();
						marker = new GMarker(center, {draggable: true});
						map.addOverlay(marker);
						document.getElementById("lat").value = center.lat();
						document.getElementById("lng").value = center.lng();
						
						
						GEvent.addListener(marker, "dragend", function() {
							var pt = marker.getPoint();
							map.panTo(pt);
							document.getElementById("lat").value = pt.lat();
							document.getElementById("lng").value = pt.lng();
						});
						
 
				});
				*/
			}
		});
	}
}
