var map = null;
var firstMarker = null;

function pointKeyPress(e, inp)
{
	if ((e.keyCode && e.keyCode==13) || 
		(e.which && e.which==13))
	{
		createPoint(inp);
	}
	return true;
}

function onLoadGooglemap(widget)
{
	map = widget.gmap;

	map.setUIToDefault();
	
	var marker = widget.item.markers[0];
	firstMarker = marker.gmarker;

	GEvent.addListener(map, "infowindowopen", function()
	{
		var infoWindow = map.getInfoWindow();
		var tmppoint = map.fromLatLngToContainerPixel(infoWindow.getPoint());
		tmppoint.y -= 90;
		map.panTo(map.fromContainerPixelToLatLng(tmppoint));
	});
	
	var infoWindow = document.createElement("div");
	marker.titleNode = document.createElement("span");
	marker.titleNode.style.fontWeight = "bold"; 
	marker.titleNode.appendChild(document.createTextNode(marker.title));
	infoWindow.appendChild(marker.titleNode);
	
	marker.contentNode = document.createElement("div");
	marker.contentNode.innerHTML = marker.content;	
	infoWindow.appendChild(marker.contentNode);

	map.openInfoWindow(marker.gmarker.getLatLng(), infoWindow);
	
	
	var par = widget.divObject.nextSibling;
	var routeDiv = document.createElement("div");
	
	xajax.call("xajax_getHTML", {parameters:["route"], context: {
		callback: function(html)
		{
			routeDiv.innerHTML = html;
			document.getElementById("content").insertBefore(routeDiv, par);
		}
	}});
}

var marker = '';
var directions = 'init';
function createPoint(inp)
{
	map.removeOverlay(marker);
	
	var x = document.getElementById(inp).value;
	var str = x.replace(/ /g,"+");
	var geocoder = new GClientGeocoder();

	geocoder.getLatLng(str, function(point) {
		if (!point)
			{ window.alert("Er is geen geldig adres ingevoerd"); }
		else
		{
			firstMarker.hide();
			
		    var icon = new GIcon();
		    icon.image = "images/layout/marker.png";
		    icon.iconSize = new GSize(47, 56);
		    icon.iconAnchor = new GPoint(10, 56);
		    icon.infoWindowAnchor = new GPoint(10, 56);
			
			marker = new GMarker(point,
			{
				title: x,
				icon: icon,
				clickable: false,
				draggable: false,
				hide: true
			});
			map.addOverlay(marker);

			directionsPanel = document.getElementById("routeDiv");
			if (directions == 'init')
				directions = new GDirections(map, directionsPanel);
			
			var firstLocation = new GLatLng();
			firstLocation = firstMarker.getLatLng();
				
  			directions.load("from: "+point.lat()+","+point.lng()+" to: "+firstLocation.lat()+","+firstLocation.lng(),
  				{
					"locale": "nl_NL"
				}
			);
			document.getElementById('printP').href = "http://maps.google.com/maps?f=d&hl=nl&geocode=" + 
													"&saddr=" + str +
													"&daddr=" + firstMarker.getLatLng() + "&ie=UTF8&z=13&pw=2";
			
			document.getElementById('printP').style.display = "block";
			document.getElementById("routeDiv").style.display = "block";
		}
	});
}
