//************* // some useful functions //************* function set_div_text(toSetID, text){ if(document.all){ (document.all[toSetID]).innerHTML = text; }else if(document.getElementById){//gecko(NN6) + IE 5+ (document.getElementById(toSetID)).innerHTML = text; } } //************* // the class for describing each location //************* function site(id, name, desc, image, permlink, lat, lng){ this.id = id; this.name = name; this.desc = desc; this.image = image; this.permlink = permlink; this.lat = lat; this.lng = lng; this.point = new GPoint(this.lng, this.lat); this.marker; this.marker2; } document.sites = new Array(); //*********** // draw the map controls and logo // with different filetypes, for // compatibility reasons. // also, give these controls their functions. //*********** var images_folder = "PNG"; var images_extension = "png"; // Microsoft spoils everyone's fun again. Since IE doesn't support pngs, // Things will have to look a bit different. if(navigator.appName == "Microsoft Internet Explorer"){ images_folder = "IE"; images_extension = "gif"; } //************** // some vars //************** var selected = new GMarker(0, 0); var selectedSite; var nothingSelectedYet = true; var showAllLink = "Show all sites" ; //************** // map nav functions //************** // map control functions var north="north"; var east="east"; var south="south"; var west="west"; function pan(map, dir){ var bounds = map.getBoundsLatLng(); var xCenter = bounds.minX + (bounds.maxX - bounds.minX) / 2; var yCenter = bounds.minY + (bounds.maxY - bounds.minY) / 2; if(dir==north) map.recenterOrPanToLatLng(new GPoint(xCenter, bounds.maxY)); if(dir==east) map.recenterOrPanToLatLng(new GPoint(bounds.maxX, yCenter)); if(dir==south) map.recenterOrPanToLatLng(new GPoint(xCenter, bounds.minY)); if(dir==west) map.recenterOrPanToLatLng(new GPoint(bounds.minX, yCenter)); } function origin(map){ map.recenterOrPanToLatLng(startCenter); } function zoomCtl(map, lvl){ map.zoomTo(lvl); for(var i=0; i < 18; i++){ document.images['z'+i].src = 'http://www.bondst.org/'+'images/'+images_folder+'/ctlZoomNotch.'+images_extension; } document.images['z'+lvl].src = 'http://www.bondst.org/'+'images/'+images_folder+'/ctlZoomSel.'+images_extension; } function createMarker(map, site) { var marker = new GMarker(site.point, icon); GEvent.addListener(marker, "click", markerOnClick); site.marker = marker; map.addOverlay(marker); } function markerOnClick(){ var p = this.getPoint(); //make and delete whatever markers need to be be made or deleted if(!nothingSelectedYet){ //remove old selected marker var markerParent = findMarkerParent(selectedSite.marker, document.sites); map.removeOverlay(selectedSite.marker); //map.removeOverlay(selectedSite.marker2); //replace old marker createMarker(map, markerParent); } else { nothingSelectedYet=false; } //find new marker's site var markerParent = findMarkerParent(this, document.sites); selectedSite = markerParent; // display the summary above the map // selectSite(selectedSite); //replace the selected site's marker with the selected version map.removeOverlay(selectedSite.marker); // markerParent.marker = new GMarker(markerParent.point, iconSel); // markerParent.marker2 = new GMarker(markerParent.point, iconSelLine); // map.addOverlay(markerParent.marker2); // map.addOverlay(markerParent.marker); markerParent.marker = new GMarker(markerParent.point, iconSel); var marker = markerParent.marker; map.addOverlay(marker); marker.openInfoWindowHtml(selectedSiteDisplayWindowHTML(selectedSite)); } function findMarkerParent(marker, haystack){ var needle; for(var i=0; i < haystack.length; i++){ if(haystack[i].marker == marker) needle = haystack[i]; } return needle; } /* function selectSite(siteSel){ set_div_text("map_article_image", siteSel.image); var titletext= '
'+siteSel.name+'
'; titletext += ''+siteSel.permlink+'
'; set_div_text("map_article_desc", desctext); } */ function selectedSiteDisplayWindowHTML(siteSel){ var titletext= ''+siteSel.name+'
'; titletext += ''+siteSel.permlink+'
'; var txt ='