var shouldbehash = ""; var currenthash = window.location.hash; if (currenthash){ var initzoom = 16; } else { var initzoom = 14; } var infowindow = null; var marker = new Array(); var sites = [ ]; $(document).ready(function () { initialize(); $(".markerjump").click(function(e){ if ($(this).hasClass('multilocs')) { e.preventDefault(); var droplocs = $(this).parent().next('ul'); if (droplocs.is(':visible')) { droplocs.slideUp(320); } else { droplocs.slideDown(320); } infowindow.close(); } else { var droplocs = $('.multilocs').parent().next('ul'); if (!$(this).hasClass('childloc')) { droplocs.slideUp(320); } $("body, html").animate({ scrollTop: 0 }, 400); var marker_id = $(this).attr("href").replace("#",""); moveAndInfo(marker_id); } }); if(currenthash != "" && currenthash != shouldbehash) { var marker_id = currenthash.replace("#",""); moveAndInfo(marker_id); } }); function moveAndInfo(marker_id){ var row = find(marker_id, sites, 5); var loc = new google.maps.LatLng(sites[row][1], sites[row][2]); map.setCenter(loc); infowindow.setContent(sites[row][4]); infowindow.open(map, marker[row]); } function find(thing, theArray, sub_i) { var results, col, row, subArray; results = []; // Empty array for (row = 0; row < theArray.length; ++row) { subArray = theArray[row]; value = subArray[sub_i]; if (value == thing) { return row; } } return results; } function initialize() { var centerMap = new google.maps.LatLng(55.95224810983899, -3.188283020019526); var myOptions = { zoom: initzoom, center: centerMap, mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); setMarkers(map, sites); infowindow = new google.maps.InfoWindow({ content: "loading..." }); } function setMarkers(map, markers) { var image1 = new google.maps.MarkerImage(pin1, new google.maps.Size(29.0, 34.0), new google.maps.Point(0, 0), new google.maps.Point(6, 32) ); var image2 = new google.maps.MarkerImage(pin2, new google.maps.Size(29.0, 34.0), new google.maps.Point(0, 0), new google.maps.Point(6, 32) ); var shadow = new google.maps.MarkerImage("/img/artwork/pin_shadow.png", new google.maps.Size(47.0, 34.0), new google.maps.Point(0, 0), new google.maps.Point(6, 32) ); var hash = ""; for (var i = 0; i < markers.length; i++) { var sites = markers[i]; if (sites[6] == 1){ var image = image1; } else { var image = image2; } var siteLatLng = new google.maps.LatLng(sites[1], sites[2]); marker[i] = new google.maps.Marker({ position: siteLatLng, map: map, icon: image, shadow: shadow, title: sites[0], zIndex: sites[3], html: sites[4], hash: sites[5] }); var contentString = "Some content"; google.maps.event.addListener(marker[i], "click", function () { infowindow.setContent(this.html); infowindow.open(map, this); window.location.hash = "#"+this.hash; }); } }