var map;
var geocoder;
var address;
var markers = [];
var lastI;

function init() {
 	geocoder = new google.maps.Geocoder();
	var myLatlng = new google.maps.LatLng(52.074257,-1.020677);
	var myOptions = {
		zoom: 8,
		center: myLatlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	map = new google.maps.Map(document.getElementById("gmap"), myOptions);
	
	$.ajax({
		url: '/site/dealershipAddresses',
		dataType: 'json',
		success: function(data,textStatus,XMLHttpRequest)
		{
			addPointsToMap(data);
		}
	});
}

function addPointsToMap(data)
{
	
	for(i=0;i<data.addresses.length;i++)
	{
	
		if (data.addresses[i].coords)
		{
			markers[i] = new Object;
			markers[i].latlng = new google.maps.LatLng(data.addresses[i].coords[1],data.addresses[i].coords[0]);
			markers[i].marker = new google.maps.Marker({
				map: map,
				icon: data.map_icon,
				clickable: true,
				title: data.addresses[i].title,
				position: markers[i].latlng
			});
			markers[i].html = data.addresses[i].infowindow;
			infowindow = new google.maps.InfoWindow({
				content: data.addresses[i].infowindow
			});
			
			markers[i].infowindow = infowindow;
		
			if (i == 0) 
			{
				map.setCenter(markers[i].latlng);
				markers[i].infowindow.open(map,markers[i].marker);
			}
			
			markers[i].listener = makeClosure(i,markers[i].marker);	
		}

	}	
}

function makeClosure(i,marker)
{
	var listener = google.maps.event.addListener(marker, 'click', function() {
	
    	openInfoWindow(i) ;
   	});
   	
   return listener ;
}	

function openInfoWindow(i)
{
	if ( typeof(lastI) == 'number' && typeof(markers[lastI].infowindow) == 'object' )
	{ 
		markers[lastI].infowindow.close() ;
	}
	lastI = i ;    
	markers[i].infowindow.open(map,markers[i].marker) ;    
}

document.write('<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&amp;callback=init&amp;region=GB"><\/script>');
