/**
 * $Id$
 * Zorgt voor het opbouwen van de mapjes icm google maps js lib
 */

/**
 * Initialiseert een mapje voor meerdere vestigingen
 * @param object oMapDiv een html object waarin de map moet komen
 */
function initMultipleLocationsMap(oMapDiv)
{
	if(GBrowserIsCompatible() == undefined)
	{
		return;
	}
	
	map = new GMap2(oMapDiv);
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.enableScrollWheelZoom();
	map.setMapType(G_PHYSICAL_MAP);

	map.setCenter(new GLatLng(52.37, 4.89), 8);

	baseIcon                  = new GIcon();
	baseIcon.image            = "/images/gmap_icon_small.png";
	baseIcon.iconSize         = new GSize(18, 18);
	baseIcon.iconAnchor       = new GPoint(12, 12);
	baseIcon.infoWindowAnchor = new GPoint(12, 12);
}

/**
 * Initialiseert een mapje voor het tonen van 1 locatie
 * @param object oMapDiv een html object waarin de map moet komen
 */
function initSingleLocationMap(oMapDiv)
{
	if(GBrowserIsCompatible() == undefined)
	{
		return;
	}

	map = new GMap2(oMapDiv);
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.enableScrollWheelZoom();
	map.setMapType(G_NORMAL_MAP);

	baseIcon                  = new GIcon();
	baseIcon.image            = "/images/gmap_icon_large.png";
	baseIcon.iconSize         = new GSize(26, 26);
	baseIcon.iconAnchor       = new GPoint(12, 12);
	baseIcon.infoWindowAnchor = new GPoint(12, 12);
}

/**
 * @usedBy showAddress
 */ 
function createMarker(latlng)
{
	var snokIcon = new GIcon(baseIcon);
	return new GMarker(latlng, {icon:snokIcon});
}

/**
 * Toont een icoon in de mapjes op basis van een adres
 */
function showAddress(naam, address, postcode, plaats, xpos, ypos, bCenterMap)
{
	if(!xpos || !ypos)
	{
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng(postcode + ', Netherlands', function(latlng)
		{
			if(latlng)
			{
				if(bCenterMap) map.setCenter(latlng, 15);

				var marker = createMarker(latlng);
				GEvent.addListener(marker, "click", function()
				{
					marker.openInfoWindowHtml("<strong>" + naam + "</strong><br />" + address + "<br />" + postcode + "&nbsp;&nbsp;" + plaats);
				});
				//marker.openInfoWindowHtml("<strong>" + naam + "</strong><br />" + address + "<br />" + postcode + "&nbsp;&nbsp;" + plaats);
				map.addOverlay(marker);
			} else {
				geocoder.getLatLng(postcode + ', Netherlands', function(latlng)
				{
					if(latlng)
					{
						if(bCenterMap) map.setCenter(latlng, 15);

						var marker = createMarker(latlng);
						GEvent.addListener(marker, "click", function()
						{
							marker.openInfoWindowHtml("<strong>" + naam + "</strong><br />" + address + "<br />" + postcode + "&nbsp;&nbsp;" + plaats);
						});
						//marker.openInfoWindowHtml("<strong>" + naam + "</strong><br />" + address + "<br />" + postcode + "&nbsp;&nbsp;" + plaats);
						map.addOverlay(marker);
			
					}
				});
			}
		});
	}
	else
	{
		thisplace = new GLatLng(xpos, ypos);

		if(bCenterMap) map.setCenter(latlng, 15);

		var marker = createMarker(thisplace);
		GEvent.addListener(marker, "click", function()
		{
			marker.openInfoWindowHtml("<strong>" + naam + "</strong><br />" + address + "<br />" + postcode + "&nbsp;&nbsp;" + plaats);
		});
		//marker.openInfoWindowHtml("<strong>" + naam + "</strong><br />" + address + "<br />" + postcode + "&nbsp;&nbsp;" + plaats);
		map.addOverlay(marker);
	}
}

