function toggleCategory(category) {
$.each(gmap_markers, function (key, marker) {
if (marker.category == category) {
if (marker.getVisible() == true) {
marker.setVisible(false)
} else {
marker.setVisible(true)
}
}
})
}
function toggleTag(tag) {
$.each(gmap_markers, function (key, marker) {
$.each(marker.tags, function (key, this_tag) {
if (this_tag == tag) {
if (marker.getVisible() == true) {
marker.setVisible(false)
} else {
marker.setVisible(true)
}
}
})
})
}
$(document).ready(function () {
var myLatlng = new Array();
var open_marker = '';
myLatlng[0] = new google.maps.LatLng(28.5000, -81.4500);
var map = new google.maps.Map(document.getElementById("gmap_canvas"), {
zoom: 1,
center: myLatlng[0],
mapTypeId: google.maps.MapTypeId.ROADMAP
});
$.getJSON('/map/markers.json', function (data) {
var categories = new Array();
var tags = new Array();
var infowindow = new google.maps.InfoWindow({content: ''})
gmap_markers = []
$.each(data, function (key, item) {
var content = '' + item.fields.name + '
' + item.fields.phone + '
' + item.fields.email + '
' + item.fields.url + '
'
var latLng = new google.maps.LatLng(item.fields.latitude, item.fields.longitude)
var marker = new google.maps.Marker({
position: latLng,
map: map,
title: item.fields.name,
category: item.fields.category,
tags: item.fields.sub_categories,
})
google.maps.event.addListener(marker, "click", function () {
infowindow.content = content
infowindow.open(map, marker);
});
gmap_markers.push(marker)
if ($.inArray(item.fields.category, categories) == -1) {
categories.push(item.fields.category)
}
$.each(item.fields.sub_categories, function (key, item) {
if ($.inArray(item, tags) == -1) {
tags.push(item)
}
})
})
$.each(categories, function (key, category) {
var $button = $(' ' + category + ' ').bind('click', function () {
toggleCategory(category)
})
$('#gmap_categories').append($button)
})
$.each(tags, function (key, tag) {
var $button = $(' ' + tag + ' ').bind('click', function () {
toggleTag(tag)
})
$('#gmap_sub_categories').append($button)
})
})
google.maps.event.addListener(map, 'click', function () {
if (open_marker != '') {
open_marker.close();
}
open_marker = '';
});
})