//************* // 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= '
'; titletext += '

'+siteSel.name+'

'; titletext += '
'; set_div_text("map_article_title", titletext); var desctext = siteSel.desc; desctext += '

'+siteSel.permlink+'

'; set_div_text("map_article_desc", desctext); } */ function selectedSiteDisplayWindowHTML(siteSel){ var titletext= '
'; titletext += '

'+siteSel.name+'

'; titletext += '
'; var desctext = siteSel.desc; desctext += '

'+siteSel.permlink+'

'; var txt ='
'; txt += '
'+siteSel.image+'
'; txt += '
'; txt += '
'; txt += titletext; txt += '
'; txt += '
' + desctext + '
'; txt += '
'; txt += '
'; return txt; } function showAllSites(map){ map.clearOverlays(); for(var i = 0; i < document.sites.length; i++){ createMarker(map, document.sites[i]); } } //************** // some functions for the Latitude/Longitude Finder //************** function edInsertContent(myField, myValue){ // IE support if (document.selection){ myField.focus(); sel = document.selection.createRange(); sel.text = myValue; myField.focus(); } // Mozilla/Netscape support else if (myField.selectionStart || myField.selectionStart == '0'){ startPos = myField.selectionStart; endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); myField.focus(); myField.selectionStart = startPos + myValue.length; myField.selectionEnd = startPos + myValue.length; }else{ myField.value += myValue; myField.focus(); } } function insertTag(type){ var insert = document.latlngMarker.getPoint().y+', '+document.latlngMarker.getPoint().x; if ( window.opener.document.article){ if (type == 'custom_fields'){ var custom1 = window.opener.document.getElementsByName("custom_1"); for (i=0; i< custom1.length; i++) custom1[i].value = document.latlngMarker.getPoint().y; var custom2 = window.opener.document.getElementsByName("custom_2"); for (i=0; i< custom2.length; i++) custom2[i].value = document.latlngMarker.getPoint().x; } else { var temp = 'window.opener.document.article.' + window.opener.current; temp = eval(temp); window.opener.edInsertContent(temp, insert); } }else if (window.opener.document.forms[0].Form){ window.opener.edInsertContent(window.opener.document.forms[0].Form, insert); }else if (window.opener.document.forms[0].html){ window.opener.edInsertContent(window.opener.document.forms[0].html, insert); } return false; }