﻿$(document).ready(function() {

	var myOptions = {
		center: new google.maps.LatLng(51.30063, 0.48964),
		zoom: 10,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};

	var map = new google.maps.Map(document.getElementById("map"), myOptions);

	addMarkersToMap(map);

});

var sharedMarkers = [];

function addMarkersToMap(map) {

	var latLngs = [];

	$(".stockistForCoords").each(function() {

		var stockistId = $(".id", this).text();
		var name = $(".name", this).text();
		var address = $(".address", this).text();
		var longitude = $(".longitude", this).text();
		var latitude = $(".latitude", this).text();

		var latLng = new google.maps.LatLng(latitude, longitude);

			latLngs.push(latLng);

			var marker = new google.maps.Marker({
				position: latLng,
				map: map
			});

		attachPopupToMarker(map, marker, name, address);

		var markerLink = $("a[rel=showonmap_" + stockistId + "]");

		markerLink.click(function(e) {
				e.preventDefault();
				closeInfoWindows();
				marker.infoWindow.open(map, marker);
				map.setCenter(latLng);
			//map.setZoom(20);
				$('html,body').animate({ scrollTop: $("#map").offset().top - 20 }, 'slow');
			});

			sharedMarkers.push(marker);

	});

	if (latLngs.length > 1) {

		var bounds = new google.maps.LatLngBounds();
		for (var i = 0, LtLgLen = latLngs.length; i < LtLgLen; i++) {
			bounds.extend(latLngs[i]);
		}

		map.fitBounds(bounds);

	} else {

		map.setCenter(latLngs[0]);
		
	}

}

function attachPopupToMarker(map, marker, name, address) {

	marker.infoWindow = new google.maps.InfoWindow({
		content: "<div style='height: 100px; width: 250px;'><strong>" + name + "</strong><br /><br />" + address + "</div>"
	});

	google.maps.event.addListener(marker, 'click', function() {
		closeInfoWindows();
		marker.infoWindow.open(map, marker);
	});

}

function closeInfoWindows() {

	$(sharedMarkers).each(function() {
		this.infoWindow.close();
	});

}
