var map;
var geocoder;
//midden van nederland
var centerLatitude = 0; //52.120800;
var centerLongitude =0; //5.035950;

var locale = "fr";
//
var startZoom = 2;

var map_flags = new Array();

// Voor het starten van de pagina
//function load() {
//	var setLocation = new GLatLng(centerLatitude, centerLongitude);
//	if (GBrowserIsCompatible())
//	{ 
//		geocoder = new GClientGeocoder();
//	}
//	else
//	{
//		document.getElementById('map').innerHTML = 'Sorry, you browser dus not fully work, but your javascript is turned on.';
//	}
//}

function loadmap() {
	var setLocation = new GLatLng(centerLatitude, centerLongitude);
	if (GBrowserIsCompatible())
	{ 
		geocoder = new GClientGeocoder();
		map = new GMap2(document.getElementById('map'));
        
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());

		map.setCenter(setLocation, startZoom);

		map.enableDoubleClickZoom();
		map.enableScrollWheelZoom();
//		map.setMapType(G_HYBRID_MAP);
	}
	else
	{
		document.getElementById('map').innerHTML = 'Sorry, you browser dus not fully work, but your javascript is turned on.';
	}
}

// Controle na een update voor de locatie, connect naar server voor edit van string
//function placeset(input)
//{
//	var searchUrl = '/vestiging/?act=place&address='+input;
//	GDownloadUrl(searchUrl, function(data) {
//		var xml = GXml.parse(data);
//		var markers = xml.documentElement.getElementsByTagName('string');
//		input = markers[0].getAttribute('text');
//
//		document.getElementById('adres').value = input;
//		dresgetter();
//	});
//}

//De home position zetten
//function ownLocationPlace(position)
//{
//	var home = new GIcon(G_DEFAULT_ICON, "/images/home-dot.png");
//	home.iconSize = new GSize(32,32);
//	var marker = new GMarker(position, home);
//	map.addOverlay(marker);
//}

//Contact met de server voor moglelijke locaties in de buurt
function searchLocationsNear(lat, lng) {
//	var radius = 25;
	var center = new GLatLng(lat,lng);
	if (map)
		var searchUrl = '/'+sess_lang+hr+'?act=list';
	GDownloadUrl(searchUrl, function(data) {
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName('marker');

		if (map)
			map.clearOverlays();

//		var sidebar = document.getElementById('stores');
//		sidebar.innerHTML = '';
//		if (markers.length == 0) {
//			sidebar.innerHTML = 'Geen resultaat gevonden, geen een geldige postcode of plaats';
//			alert(setLocation);
//			if (map)
//				map.setCenter(setLocation, startZoom);
//			return;
//		}
//
		if (map)
		{
			var bounds = new GLatLngBounds();
			//ownLocationPlace(center);
		}
	
		for (var i = 0; i < markers.length; i++) {
			var name = markers[i].getAttribute('name');
//			var address = markers[i].getAttribute('address');
			var address = "";
//			var distance = parseFloat(markers[i].getAttribute('distance'));
			params = Array();
//			params["phone"] = markers[i].getAttribute('phone');
//			params["email"] = markers[i].getAttribute('email');
//			params["id"]	= markers[i].getAttribute('id');
			params["country"] = markers[i].getAttribute('country');
			params["group"] = markers[i].getAttribute('group');
//			params["url"] = markers[i].getAttribute('url');
			params["name"] = name;
			
			var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
			parseFloat(markers[i].getAttribute('lng')));

			var marker = createMarker(point, name, address, i, params);
			parseFloat(markers[i].getAttribute('lng'));
			if (map)
				map.addOverlay(marker);
			
//			var sidebarEntry = createSidebarEntry(marker, name, address, distance, i, params);
//			var dl = document.createElement('dl');
//			dl.appendChild(sidebarEntry);
//			sidebar.appendChild(dl);
//
			if (map)
				bounds.extend(point);
		} 
//		if (map)
//			map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)+1);
	});
}
// Het maken van de punten, de eerste is blauw
function createMarker(point, name, address, i, params)
{
//	var gicons = new GIcon(G_DEFAULT_ICON, "/images/blue-dot.png");
//	gicons.iconSize = new GSize(32,32);

//	if (params["type"] == "customer")
//	{
//		var gicons = new GIcon(G_DEFAULT_ICON, "/templates/i/map_flag_c_big.gif");
//	}
//	else if(params["type"] == "office")
//	{
//		var gicons = new GIcon(G_DEFAULT_ICON, "/templates/i/map_flag_o_big.gif");
//	}
//	else
//	{
//		var gicons = new GIcon(G_DEFAULT_ICON, "/templates/i/map_flag_d_big.gif");
//	}

	var gicons = new GIcon(G_DEFAULT_ICON, map_flags[params["group"]]);

//	gicons.iconSize = new GSize(14,18);
	gicons.iconSize = new GSize(20,34);
	gicons.shadow = "";

	if(i==0)
	{
//		var marker = new GMarker(point, gicons);
	}
	else
	{
//		var marker = new GMarker(point, gicons)
	}
	var marker = new GMarker(point, gicons);
	var html = '<b>' + name + '</b> ' + address+'<br/>'+params['country'];
	GEvent.addListener(marker, 'click', function() {
		marker.openInfoWindowHtml(html);
	});
	return marker;
}


//Het maken van de aanklikbaren keuzens in het menublakje, de eerste is blauw
//function createSidebarEntry(marker, name, address, distance, i)
//function createSidebarEntry(marker, name, address, distance, i, params)
//{
//	var dd = document.createElement('dd');
//	var locatie_van = document.getElementById('adres').value;
//
//	var html = '<b>' + name + '</b> (' + distance.toFixed(1) + 'Km)<br/>' + address;
//
//	if (!map)
//	{
//		var a = document.createElement('a');
//		a.href = "#";
//		a.innerHTML = html;
//		dd.appendChild(a);
//
//		a.onclick = function()
//		{
//			applyStore(params);
//			return false;
//		}
//	}
//	else
//	{
//		var div1 = document.createElement('div');
//		div1.className = "right";
//		var but = document.createElement('input');
//		but.src = "/images/btn_route.jpg";
//		but.type = "image";
//		but.onclick = function()
//		{
//			getroute(address ,locatie_van, i, marker);	
//			return false;
//		}
		
//		div1.appendChild(but);
//		dd.appendChild(div1);
//
		
//		var div3 = document.createElement('div');
//		div3.className = "right spacer-right";
//		var but2 = document.createElement('input');
//		
//		but2.src = "/images/btn_openingstijden.jpg";
//		but2.type = "image";
//		but2.onclick = function()
//		{
//			document.location = params["url"];
//			return false;
//		}
		
//		div3.appendChild(but2);
//		dd.appendChild(div3);

//		var span = document.createElement('span');
//		span.innerHTML = html;
//		dd.appendChild(span);

//	}

//	if(i==0)
//		dd.className = 'nearest'; 
//
//	return dd;
//}

//function handleErrors(){
//	if (directions.getStatus().code == G_GEO_UNKNOWN_ADDRESS) {
//		alert("De locatie van het opgegeven vertrekadres kon niet worden bepaald.n Foutcode: " + directions.getStatus().code);
//	}else if (directions.getStatus().code == G_GEO_SERVER_ERROR) {
//		alert("Er is iets misgegaan. Maar het is onduidelijk WAT!n Foutcode: " + directions.getStatus().code);
//	}else if (directions.getStatus().code == G_GEO_MISSING_QUERY) {
//		alert("Een parameter ontbreekt. Misschien was er geen vertrekpunt ingevoerd.n Foutcode: " + directions.getStatus().code);
//	}else if (directions.getStatus().code == G_GEO_BAD_KEY) {
//		alert("De Google Maps sleutel is ongeldig of de gebruikte sleutel is niet geldig voor dit domein. n Foutcode: " + directions.getStatus().code);
//	}else if (directions.getStatus().code == G_GEO_BAD_REQUEST) {
//		alert("De aanvraag voor het plannen van een route is mislukt.n Foutcode: " + directions.getStatus().code);
//	}else {
//		alert("Er is iets misgegaan. Maar het is volstrekt onduidelijk WAT de oorzaak is!");
//	}
//}

//function getroute(address, locatie_van, i, marker)
//{
//	map.setZoom(startZoom+1);
//	if(jQuery('#back') && !document.getElementById('store_id').value)
////		jQuery('#back').removeClass('hidden');
//		jQuery('#back').css("display", "block");
//
//	jQuery('#print').css("display", "block");
//
//	directionsPanel = document.getElementById("stores"); 
//	directionsPanel.innerHTML = "";
//	directions = new GDirections(map, directionsPanel);
//		
//	directions.load("from: "+locatie_van+", NL to: "+address+", NL",{getSteps:true, locale:locale});
//	GEvent.addListener(directions, "error", handleErrors);
//	GEvent.addListener(directions, "load", function() {
//		directions.getMarker(0).getIcon().image = "";
//		directions.getMarker(1).getIcon().image = "";
////		G_MAP_MARKER_PANE
//	//	var route = directions.getRoute(0);
//
//	//	var afstand = route.getDistance().meters;
//
//		map.addOverlay(marker);
//		GEvent.trigger(marker, 'click');
//		
////		if (afstand <= (afst*1000)){
////			alert(afstand);
////		}
//	});
//}

//function addLocatie(data, i)
//{
//	locaties = data.locaties.length;
//
//	if (locaties >= 1){
//		directions = new GDirections();
//
//		var locatie_van = postcode;
//		var locatie_naar;
//
//		if (data.locaties[i].locatie.straat != ""){
//			locatie_naar = data.locaties[i].locatie.straat + ", " + data.locaties[i].locatie.plaats+ ", " + data.locaties[i].locatie.provincie;
//		}else{
//			locatie_naar = data.locaties[i].locatie.postcode;
//		}
//
//		directions.load("from: "+locatie_van+", NL to: "+locatie_naar+", NL",{locale:locale,getSteps:true});
//
//		GEvent.addListener(directions, "error", handleErrors);
//		GEvent.addListener(directions, "load", function() {
//			var route = directions.getRoute(0);
//			var afstand = route.getDistance().meters;
//
//			if (afstand <= (afst*1000)){
//				var duur = route.getDuration();
//				duur = duur.html;
//				addRoute(routes, afstand, data.locaties[i].locatie.naam, data.locaties[i].locatie.postcode, data.locaties[i].locatie.straat, data.locaties[i].locatie.plaats, duur);
//				routes.sort(sortAfstand);
//
//				displayVestigingen(routes);
//			}
//
//			if ((i+1) != locaties){
//				addLocatie(data, (i+1));
//			}
//
//		});
//	}else{
//		//alert("Er zijn geen vestigingen gevonden.");
//	}
//}

//function addRoute(arr, afstand, naam, postcode, straat, plaats, tijd)
//{
//	arr[arr.length] = [afstand, naam, postcode, straat, plaats, tijd];
//}

//var route_id;

//function tekenRoute(p,i)
//{
//	route_id = i;
//
//	direction.load("from: "+postcode+", NL to: "+p+", NL",{getSteps:true});
//
//	GEvent.addListener(direction, "error", handleErrors);
//	GEvent.addListener(direction, "load", function(){
//		var html = '';
//		var numRoutes = direction.getNumRoutes();

//		for (var r = 0 ; r < numRoutes ; r++ ) {
//			var route = direction.getRoute(r);
//			var numSteps = route.getNumSteps();
//
//			html += '<table cellspacing="0" cellpadding="0" width="100%" class="text">';
//			for (var s = 0 ; s < numSteps ; s++ ) {
//				var step = route.getStep(s);
//				var stepBeschrijving = step.getDescriptionHtml();
//				var stepAfstand = step.getDistance();
//				var stepDuur = step.getDuration();
//
//				html += '<tr><td valign="top">&nbsp;' + (s+1) + '.</td><td> ' + stepBeschrijving + '</td><td>' + stepAfstand.html + '</td></tr>';
//			}
//			html += '</table>';
//		}
//		for(var i = 0; i < routes.length; i++){
//			document.getElementById("route"+ i+"").innerHTML = '';
//		}
//		document.getElementById("route"+route_id+"").innerHTML = html;
//	});
//}
//function viewStoreRoute(inpute, store_id)
//{
//	if (map)
//		map.clearOverlays();
//

//	if (store_id)
//	{
//		var searchUrl = './?act=getstore';
//
//		GDownloadUrl(searchUrl, function(data) {
//			var xml = GXml.parse(data);
//			var markers = xml.documentElement.getElementsByTagName('marker');
//	
//			map.clearOverlays();
//			var sidebar = document.getElementById('stores');
//			sidebar.innerHTML = '';
//			if (markers.length == 0) {
//				sidebar.innerHTML = 'No results found. Please try to add a city name or a postal code';
//				map.setCenter(setLocation, startZoom);
//				return;
//			}
	
	
//			var bounds = new GLatLngBounds();
				
//			for (var i = 0; i < markers.length; i++) {
//				var name = markers[i].getAttribute('name');
//				address = markers[i].getAttribute('address');
//				var distance = parseFloat(markers[i].getAttribute('distance'));
//				params = Array();
//				params["phone"] = markers[i].getAttribute('phone');
//				params["email"] = markers[i].getAttribute('email');
//				params["id"]	= markers[i].getAttribute('id');
//				params["city"] = markers[i].getAttribute('city');
//				params["url"] = markers[i].getAttribute('url');
//				params["name"] = name;
//					
//				var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
//				parseFloat(markers[i].getAttribute('lng')));
//	
//				marker = createMarker(point, name, address, i, params);
//				if (!inpute)
//				{
//					map.addOverlay(marker);
//					bounds.extend(point);
//					map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
//					GEvent.trigger(marker, 'click');
//				}
//			} 
//			
//			if (inpute)
//			{
//				geocoder.getLocations(inpute + " NL", function(latlng)
//				{
//					if (!latlng)
//					{
//						alert(address + ' not found');
//					}
//					else
//					{		
//						if (latlng.Placemark.length == 1)
//						{ 
//							var p = latlng.Placemark[0].Point.coordinates;
//							lat = p[1];
//							lng = p[0];
//							var center = new GLatLng(lat,lng);
//							getroute(address , inpute, 0, marker);	
//							ownLocationPlace(center);
//						}
//					}
//				}
//				);
//			}
//
//		//	GEvent.trigger(marker, 'click');
//		});
//	}
//	
//}

//function transport() {
//	if (typeof XMLHttpRequest != 'undefined')
//		return new XMLHttpRequest();
//	else
//		return new ActiveXObject("Microsoft.XMLHTTP");
//}

//function viewShops()
//{
//	var inpute = document.getElementById('adres').value;
//	if(inpute == "Poscode of woonplaats" || inpute == "voer postcode in")
//	{
//		inpute = '';
//	}

//	var req = transport();


//	req.onreadystatechange = function()
//	{
//		if (req.readyState!=4)
//			return;
//		if (req.status!=200)
//			return;
//	
//		xml = req.responseXML;
//		var markers = xml.documentElement.getElementsByTagName('marker');
//
//		var sidebar = document.getElementById('stores');
//		sidebar.innerHTML = '';
//		if (markers.length == 0) {
//			sidebar.innerHTML = 'No results found. Please try to add a city name or a postal code';
//			return;
//		}

//		for (var i = 0; i < markers.length; i++) {
//			var name = markers[i].getAttribute('name');
//			var address = markers[i].getAttribute('address');
//			var distance = parseFloat(markers[i].getAttribute('distance'));
//			params = Array();
//			params["phone"] = markers[i].getAttribute('phone');
//			params["email"] = markers[i].getAttribute('email');
//			params["id"]	= markers[i].getAttribute('id');
//			params["city"] = markers[i].getAttribute('city');
//			params["url"] = markers[i].getAttribute('url');
//			params["name"] = name;
//
//			var sidebarEntry = createSidebarEntry('', name, address, distance, i, params);
//			var dl = document.createElement('dl');
//			dl.appendChild(sidebarEntry);
//			sidebar.appendChild(dl);
//		} 
//
//	}
	
//	var searchUrl = '/vestiging/storeselector/?act=near&address='+inpute;	
//	req.open("GET", searchUrl);
//	req.send("");
//
//}

