var dealer = false;
var dealers = {};
var map;
var markers = [];

$(function () {

	if (!document.getElementById("map")) return;

	var latlng = new google.maps.LatLng(65.76824,15.66914);
	var mapOptions =
	{
		zoom: 4,
		center: latlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP
		// disableDefaultUI: true,
		// navigationControl: true,
		// mapTypeControl: false,
		// scaleControl: false
	};

	map = new google.maps.Map(document.getElementById("map"), mapOptions);

	google.maps.event.addListener(map, 'click', function (e) {
		// console.log(e.latLng);
		console.log(map.getCenter());
	});

	$.each(dealers, function (key, data) {
		addMarker(data, key);
	});

	if (dealer) addMarker(dealer, false);

	$("#map_links").find("a").click(function (e) {
		
		e.preventDefault();
	
		var center = false;
		var zoom = false;

		var location = $(this).attr("rel");
		switch (location)
		{
			// Nord
			case "2.1":
				center = new google.maps.LatLng(67.30315, 15.10883);
				zoom = 5;
			break;
			// Vest
			case "2.3":
				center = new google.maps.LatLng(60.21436, 6.47358);
				zoom = 6;
			break;
			// Ost - nord
			case "2.4":
				center = new google.maps.LatLng(61.11318, 10.71430);
				zoom = 7;
				break;
			// Ost - syd
			case "2.5":
				center = new google.maps.LatLng(59.68069, 10.62641);
				zoom = 7;
				break;
		}

		$("#dealer_list h2").text( $(this).text() );
		$("#dealer_list p").show();
		$("#dealer_list p").not("[rel='"+ location +"']").hide();

		map.setCenter(center);
		map.setZoom(zoom);
	});


		$("#service_list").find("a").click(function () {
		removeMarkers();
		var service = $(this).attr("rel");
		$.each(dealers, function (key, data) {
			var services = data.services.split(", ");
			if (service == "all" || jQuery.inArray(service, services) != -1)
			{
				addMarker(data, key);
			}
		});
	});

});


function addMarker (data, key)
{
	if (!data.coordinates || data.coordinates == '')
	{
		var gc = new google.maps.Geocoder();
		gc.geocode( {'address': data.address +" "+ data.city }, function (results, status) {
			if (status == google.maps.GeocoderStatus.OK)
			{
				data.latlng = results[0].geometry.location;
				createMarker(data, key);
			}
			// else console.log(status);
		});
	}
	else
	{
		var coords = data.coordinates.split(",");
		data.latlng = new google.maps.LatLng(coords[0], coords[1]);
		createMarker(data, key);
	}
}

function createMarker (data, key)
{

	var markerImage = new google.maps.MarkerImage(
		'/files/Vianor2006/2009-images/map-vianor-icon-bubble.png',
		new google.maps.Size(56, 69),
		new google.maps.Point(0, 0),
		new google.maps.Point(6, 69)
	);

	var markerImage2 = '/files/Vianor2006/2009-images/icon.png';

	var marker = new google.maps.Marker({
		map: map,
		position: data.latlng,
		title: (data.name ? data.name : ''),
		icon: (key ? markerImage2 : markerImage)
	});

	markers.push(marker);

	if (key)
	{
		var infowindow = new google.maps.InfoWindow({
			content:
				'<b><a href="/verkstad_info?myyntipiste='+ data.name +'">'+ data.name +'</a></b><br />'+
				data.address +'<br />'+
				data.zip +' '+ data.city +'<br />'+
				(data.open ? '<br />Ã?pningstider:<br />'+ data.open +'<br />' : '') +
				'<a href="/verkstad_info?myyntipiste='+ data.name +'">Gå til avdelingens hjemmeside</a></b><br />'+
				''
		});

		google.maps.event.addListener(marker, 'click', function () {
			infowindow.open(map, marker);
		});
	}
	else
	{
		map.setCenter(data.latlng);
		map.setZoom(14);
	}
}

function removeMarkers ()
{
	if (!markers.length) return;
	$.each(markers, function (i, marker) {
		marker.setMap(null);
	});
}

/*
function getParameterByName (name)
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return decodeURIComponent(results[1].replace(/\+/g, " "));
}
*/
