var infoTextMaxWidth = 300;			// When there is a marker for the infowindow, this is the max width
var defaultZoom = 12;				// Default zoom level

function loadGoogleMaps(startLat, startLong, startZoom, draggable, infotext)		// draggable -> boolean, can the marker be moved, infotext -> html text for info window
{
	if(startLat == undefined)
		startLat = 51.9044;

	if(startLong == undefined)
		startLong = 4.1635;

	if(startZoom == undefined)
		startZoom = defaultZoom;
	
	if (GBrowserIsCompatible() && document.getElementById("map"))
	{
		/* Create a new Google maps object */
        var map = new GMap2(document.getElementById("map"));
		
		/* Set the startpoint of the map */
		map.setCenter(new GLatLng(startLat, startLong), startZoom);
		var center = map.getCenter();

		/* Map zoom and scroll buttons */
		map.addControl(new GSmallMapControl());
		
		/* Map type selector buttons */
		map.addControl(new GMapTypeControl());
		
		/* Print the lat and long variables for the center of the map (debug info) */
		/*
		GEvent.addListener(map, "moveend", function()
		{
			var center = map.getCenter();
			document.getElementById("message").innerHTML = center.toString();
		});
		*/

		/* Set new icon image for other markers */
		var icon = new GIcon();
		icon.image = "/images/mapsMarker.png";
		icon.iconSize = new GSize(45, 45);
		icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(20, 20);
		
		if(draggable)
		{
			/* Place a draggable marker */
			var marker = new GMarker(center, {draggable: true, bouncy: false, icon: icon});

			GEvent.addListener(marker, "dragstart", function()
			{
				map.closeInfoWindow();
			});

			GEvent.addListener(marker, "dragend", function()
			{
				newPosition = marker.getPoint();
				document.getElementById("google_lat").value = newPosition.lat().toString();
				document.getElementById("google_long").value = newPosition.lng().toString();
				//marker.openInfoWindowHtml("Nieuwe positie gezet");
			});
		}
		else
		{
			/* Place a marker (not draggable) */
			var marker = new GMarker(center, {draggable: false, icon: icon});
	
			/* Add an infowindow for this marker */


			GEvent.addListener(marker, "click", function()
			{
				map.openInfoWindowHtml(center,infotext,{maxWidth: infoTextMaxWidth}); 
			});

			/*if(infotext != undefined)
			{
				map.openInfoWindowHtml(center,infotext,{maxWidth: infoTextMaxWidth}); 
			}*/
		}
		map.addOverlay(marker);



		if (document.getElementById('resizeLink') != undefined)
		{
			/* Add a listener for zooming when switching to large google maps */
			GEvent.addDomListener(document.getElementById("resizeLink"), "click", function()
			{
				centerOfHolland = new GLatLng(52.09, 5.24);
                map.checkResize()
                map.panTo(center);
				//map.setZoom(8);
                overviewMap = new GOverviewMapControl()                
                map.addControl(overviewMap);
				
				/* caseArray is an array of markers, other then the current one */
				if(caseArray.length > 0)
				{
					for(i=0; i<caseArray.length; i++)
					{
						newPos = new GLatLng(caseArray[i][0], caseArray[i][1]);
						map.addOverlay(createMarker(newPos, icon, caseArray[i][2]));
					}
				}  
			});

			/* Add a listener for zooming back when switching to small google maps */
			GEvent.addDomListener(document.getElementById("googleSmall"), "click", function()
			{                
                map.removeControl(overviewMap);
                map.checkResize()
				originalMarker = new GLatLng(startLat, startLong);
				map.panTo(originalMarker);
				//map.setZoom(defaultZoom);
                
			});
		}
	}
}

function createMarker(point, icon, text)
{
	var marker = new GMarker(point, {draggable: false, icon: icon});

	GEvent.addListener(marker, "click", function()
	{
		marker.openInfoWindowHtml(text);
	});

	return marker;
}


function setGoogleSize(type)
{
	if(type == 'large')
	{
		document.getElementById('googleWrapper').style.position = 'absolute';
		document.getElementById('googleWrapper').style.top = '10px';
		document.getElementById('googleWrapper').style.left = '10px';
        
        document.getElementById('googleWrapper').style.width = '905px';
		document.getElementById('googleWrapper').style.height = '578px';

        document.getElementById('caseItemWrapper').style.display = 'block';        
        
		document.getElementById('map').style.width = '880px';
		document.getElementById('map').style.height = '550px';
        document.getElementById('map').style.marginTop = '20px';		
        
        document.getElementById('googleWrapper').style.padding = '15px';
        document.getElementById('googleWrapper').style.paddingTop = '5px';
        document.getElementById('googleWrapper').style.paddingRight = '5px';
        document.getElementById('googleWrapper').style.border = '1px';
        document.getElementById('googleWrapper').style.borderColor = '#c1c1c1';
        document.getElementById('googleWrapper').style.borderStyle = 'solid';
        
        
		document.getElementById('googleSmall').style.display = 'block';
		//document.getElementById('resizeLink').style.display = 'none';

		if(document.getElementById('vraagstuk'))
		{
			document.getElementById('vraagstuk').style.display = 'none';
		}
		if(document.getElementById('maatregelCat'))
		{
			document.getElementById('maatregelCat').style.display = 'none';
		}
	}
	else if(type == 'small')
	{
        document.getElementById('caseItemWrapper').style.display = 'none';
        document.getElementById('googleSmall').style.display = 'none';
        
		document.getElementById('googleWrapper').style.width = '340px';
		document.getElementById('googleWrapper').style.height = '220px';
        document.getElementById('googleWrapper').style.border = '0px';

		document.getElementById('map').style.width = '340px';
		document.getElementById('map').style.height = '220px';
        document.getElementById('map').style.margin = '0px';

		document.getElementById('googleWrapper').style.top = '0px';
		document.getElementById('googleWrapper').style.left = '0px';
        document.getElementById('googleWrapper').style.padding = '0px';
        document.getElementById('googleWrapper').style.position = 'relative';
		               

		
		//document.getElementById('resizeLink').style.display = 'inline';

		if(document.getElementById('vraagstuk'))
		{
			document.getElementById('vraagstuk').style.display = 'block';
		}
		if(document.getElementById('maatregelCat'))
		{
			document.getElementById('maatregelCat').style.display = 'block';
		}
	}
}