﻿$(function () {
    $("#map-list").load('/location/map/', bindLocationData);
});

function bindLocationData() {
    bindLocationLinks();

    var lat, lng, li, goldStandard;
    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"));
        goldStandard = li.attr("data-goldStandard");

        if (i == 0) {
            li.addClass("selected");
        }

        if (i == 1) {
            $("#locations-header").text($("#locations-header").text() + "s");
        }

        if (goldStandard == "True") {

            marker = new google.maps.Marker({
                position: new google.maps.LatLng(lat, lng),
                map: map,
                icon: '/images/goldstandard-pin.png'
            });
        }
        else {
            marker = new google.maps.Marker({
                position: new google.maps.LatLng(lat, lng),
                map: map,
                icon: '/images/map-pin.png'
            });
        }

        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;
    });

    $(".hours-link").live("click", function (e) {
        e.preventDefault();

        var table = $("#" + $(this).attr("data-id"));
        if (table.length == 0) {
            var parent = $(this).closest(".loc");
            jQuery.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", "/images/no-photo.gif");
    });
}
