﻿$(function () {
	$("#map-list").load('/locations/map/', bindLocationData);
});

function bindLocationData() {
	bindLocationLinks();

	var lat, lng, li;
	var items = $("#map-list li");
	var bounds = new google.maps.LatLngBounds();

	var myOptions = {
		mapTypeId: google.maps.MapTypeId.ROADMAP,
		mapTypeControl: false,
		zoom: 12
	};
	var map = new google.maps.Map(document.getElementById("map"), myOptions);

	var count = items.length;
	items.each(function (i, el) {
		li = $(el);
		lat = parseFloat(li.attr("lat"));
		lng = parseFloat(li.attr("lng"));

		if (i == 1) {
			$("#locations-header").text($("#locations-header").text() + "s");
		}

		var marker = new google.maps.Marker({
			position: new google.maps.LatLng(lat, lng),
			map: map
		});

		if (i == 0 && count == 1) {
			map.setCenter(marker.position);
			map.setZoom(10);
		} else {
			bounds.extend(marker.position);
			map.fitBounds(bounds);
		}
	});
}

var bindLocationLinksFlag = false;
function bindLocationLinks() {

	if (bindLocationLinksFlag) return;
	bindLocationLinksFlag = true;

	$("a.website,a.directions").live("click", function (e) {
		e.preventDefault();
		window.open($(this).attr("href"));
		return false;
	});

	$("a.hours-link").live("click", function (e) {
		e.preventDefault();
		var table = $("#" + $(this).attr("data-id"));
		if (table.length == 0) {
			var parent = $(this).closest(".loc");
			$.get($(this).attr("href"), function (responseText) {
				html = $(responseText);
				$("tr:odd", html).addClass("odd");
				parent.append(html);
			});
		} else if (table.is(":visible")) {
			table.hide();
		} else {
			table.show();
		}
		return false;
	});

	$(".location img").one('error', function () {
		$(this).attr("src", "/media/images/no-photo.gif");
	});
}
