var geocoder;
var map;
var mgr;
var directionDisplay;
var myMarkers = [];
var points = [];
var markers= [];
var directionsService = new google.maps.DirectionsService();
var infowindow = new google.maps.InfoWindow();
var bounds = new google.maps.LatLngBounds();


function initialize(div,zoom) {
	if(!div)
		div = "map";
		
	if(!zoom)
		zoom  = 10;
		
		
	geocoder = new google.maps.Geocoder();
	directionsDisplay = new google.maps.DirectionsRenderer();

	var myOptions = {
	  	zoom: zoom,
	   	disableDefaultUI: false,
	   	scaleControl: false,

		center: new google.maps.LatLng(50.833333, 4.333333),
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	
	map = new google.maps.Map(document.getElementById(div), myOptions);
	directionsDisplay.setMap(map);
	directionsDisplay.setPanel(document.getElementById("directionsPanel"));
	
	mgr = new MarkerManager(map);
    setupMarkers();      
	google.maps.event.addListener(mgr, 'loaded', function(){

	});  
	
	var infowindow = new google.maps.InfoWindow(   { 
    	size: new google.maps.Size(150,50)
  	});

}

function codeAddress(address,html,tel,recom) {
   
	if (geocoder) {
		geocoder.geocode( { 'address': address}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
			
				point = results[0].geometry.location;
				points[tel] = point;
	
				if(recom)
					blueIcon = "http://maps.google.com/mapfiles/ms/micons/blue-dot.png";
				else
					blueIcon = "http://maps.google.com/mapfiles/ms/micons/red-dot.png";
					
				map.setCenter(point);
			  	var marker = new google.maps.Marker({
			    	map: map, 
			      	position: point,
			      	icon:blueIcon
			  	});
	
				google.maps.event.addListener(marker, 'click', function() {
					infowindow.setContent(html); 
					infowindow.open(map,marker);
				});
		      
				markers[tel] = marker;
				
		      	return marker;
	
			} else {
				return false;
			}
		});
	}
}

function calcRoute(from ) {
	
	
	if(!from) {
		alert("Gelieve een locatie in te geven");
	}
	else {
		address = $("#vestiging").attr("value");
	    var start = from;
	    var end = address;
	    var request = {
	        origin:start, 
	        destination:end,
	        travelMode: google.maps.DirectionsTravelMode.DRIVING
	    };
	    directionsService.route(request, function(response, status) {
	      if (status == google.maps.DirectionsStatus.OK) {
	      	directionsDisplay.setDirections(response);
	      	
	      	setTimeout(function() { var center = map.getCenter();  $("#map").height(($("#directionsPanel").height()+41)+"px"); google.maps.event.trigger(map, 'resize');  map.setCenter(center); },700);
	        
	      }
	    });
	    
	    
	}
}

function showMarker(i,zoom) {
	if(!zoom)
		zoom  = 14;
		
	map.setCenter(points[i]);
	map.setZoom(zoom);
	google.maps.event.trigger(markers[i],'click');
}
