function addMarkers(){ mySelect = document.getElementById('selection'); Dyke = [];Covington = [];Dillwyn = [];Goochland = [];Waynesboro = [];Fork_Union = [];Keswick = [];Christiansburg = [];Winchester = [];South_Boston = [];New_Castle = [];Woodberry_Forest = [];Norfolk = [];mySelect.options[mySelect.options.length] = new Option("Christiansburg schools",'all=Christiansburg'); mySelect.options[mySelect.options.length] = new Option("Covington schools",'all=Covington'); mySelect.options[mySelect.options.length] = new Option("Dillwyn schools",'all=Dillwyn'); mySelect.options[mySelect.options.length] = new Option("Dyke schools",'all=Dyke'); mySelect.options[mySelect.options.length] = new Option("Fork Union schools",'all=Fork_Union'); mySelect.options[mySelect.options.length] = new Option("Goochland schools",'all=Goochland'); mySelect.options[mySelect.options.length] = new Option("Keswick schools",'all=Keswick'); mySelect.options[mySelect.options.length] = new Option("New Castle schools",'all=New_Castle'); mySelect.options[mySelect.options.length] = new Option("Norfolk schools",'all=Norfolk'); mySelect.options[mySelect.options.length] = new Option("South Boston schools",'all=South_Boston'); mySelect.options[mySelect.options.length] = new Option("Waynesboro schools",'all=Waynesboro'); mySelect.options[mySelect.options.length] = new Option("Winchester schools",'all=Winchester'); mySelect.options[mySelect.options.length] = new Option("Woodberry Forest schools",'all=Woodberry_Forest'); mySelect.options[mySelect.options.length] = new Option("---------------------------",''); Dyke[Dyke.length] = createMarker(new GPoint(-78.55581900,38.26356700),"
Blue Ridge School
Highway 627
Dyke, VA 22935
All-boys school, 9-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Blue Ridge School",'Dyke=' + Dyke.length); Covington[Covington.length] = createMarker(new GPoint(-80.02119800,37.80453700),"
Boys' Home School
306 Boys Home Road
Covington, VA 24426
All-boys school, 6-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Boys' Home School",'Covington=' + Covington.length); Dillwyn[Dillwyn.length] = createMarker(new GPoint(-78.47547900,37.48397000),"
The Discovery School Of Virginia
Po Box 1160
Dillwyn, VA 23936
All-boys school, 6-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("The Discovery School Of Virginia",'Dillwyn=' + Dillwyn.length); Goochland[Goochland.length] = createMarker(new GPoint(-77.97953800,37.71993100),"
Elk Hill School
Po Box 99
Goochland, VA 23063
All-boys school, 7-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Elk Hill School",'Goochland=' + Goochland.length); Waynesboro[Waynesboro.length] = createMarker(new GPoint(-78.90450000,38.07380000),"
Fishburne Military School
255 South Wayne Avenue
Waynesboro, VA 22980
All-boys school, 8-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Fishburne Military School",'Waynesboro=' + Waynesboro.length); Fork_Union[Fork_Union.length] = createMarker(new GPoint(-78.26571900,37.78217000),"
Fork Union Military Academy
PO Box 278
Fork Union, VA 23055
All-boys school, 6-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Fork Union Military Academy",'Fork_Union=' + Fork_Union.length); Keswick[Keswick.length] = createMarker(new GPoint(-78.34520000,38.02010000),"
Little Keswick School
Po Box 24
Keswick, VA 22947
All-boys school, NS-NS
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Little Keswick School",'Keswick=' + Keswick.length); Christiansburg[Christiansburg.length] = createMarker(new GPoint(-80.40841200,37.13014200),"
Tekoa Community School
Po Box 6152
Christiansburg, VA 24068
All-boys school, 6-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Tekoa Community School",'Christiansburg=' + Christiansburg.length); Winchester[Winchester.length] = createMarker(new GPoint(-78.15320000,39.18530000),"
Timber Ridge School
Po Box 3160
Winchester, VA 22604
All-boys school, 6-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Timber Ridge School",'Winchester=' + Winchester.length); South_Boston[South_Boston.length] = createMarker(new GPoint(-79.13778500,36.70829700),"
Wellspring Academy
4131 Birch Elm Road
South Boston, VA 24592
All-boys school, 8-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Wellspring Academy",'South_Boston=' + South_Boston.length); New_Castle[New_Castle.length] = createMarker(new GPoint(-80.13190000,37.50320000),"
Wilderness Outdoor Opportunity
Po Box 307
New Castle, VA 24127
All-boys school, 7-11
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Wilderness Outdoor Opportunity",'New_Castle=' + New_Castle.length); Woodberry_Forest[Woodberry_Forest.length] = createMarker(new GPoint(-79.28843500,37.36286100),"
Woodberry Forest School
898 Woodberry Forest Rd
Woodberry Forest, VA 22989
All-boys school, 9-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Woodberry Forest School",'Woodberry_Forest=' + Woodberry_Forest.length); Norfolk[Norfolk.length] = createMarker(new GPoint(-76.29205900,36.86862000),"
Yeshiva Aish Kodosh/talmudical Academy/norfolk
Po Box 11587 420 Spotswood Avenue
Norfolk, VA 23517
All-boys school, 9-12
[ View School Profile ]
",iconBl); mySelect.options[mySelect.options.length] = new Option("Yeshiva Aish Kodosh/talmudical Academy/norfolk",'Norfolk=' + Norfolk.length); map.removeOverlays(Christiansburg); map.removeOverlays(Covington); map.removeOverlays(Dillwyn); map.removeOverlays(Dyke); map.removeOverlays(Fork_Union); map.removeOverlays(Goochland); map.removeOverlays(Keswick); map.removeOverlays(New_Castle); map.removeOverlays(Norfolk); map.removeOverlays(South_Boston); map.removeOverlays(Waynesboro); map.removeOverlays(Winchester); map.removeOverlays(Woodberry_Forest); setTimeout(function(){map.addOverlays(Christiansburg)},1000); setTimeout(function(){map.addOverlays(Covington)},1000); setTimeout(function(){map.addOverlays(Dillwyn)},1000); setTimeout(function(){map.addOverlays(Dyke)},1000); setTimeout(function(){map.addOverlays(Fork_Union)},1000); setTimeout(function(){map.addOverlays(Goochland)},1000); setTimeout(function(){map.addOverlays(Keswick)},1000); setTimeout(function(){map.addOverlays(New_Castle)},1000); setTimeout(function(){map.addOverlays(Norfolk)},1000); setTimeout(function(){map.addOverlays(South_Boston)},1000); setTimeout(function(){map.addOverlays(Waynesboro)},1000); setTimeout(function(){map.addOverlays(Winchester)},1000); setTimeout(function(){map.addOverlays(Woodberry_Forest)},1000); maxLng = -76.29205900; maxLat = 39.18530000; minLng = -80.40841200; minLat = 36.70829700; reCenterMap(); } // End addStateMarkers JavaScript Function // Takes an array of markers and centers/zooms map based on marker range function centerByArray(myArray, recenter, newMaxMin) { if (newMaxMin == true) reMaxMin(myArray); for (var i = 0; i < myArray.length; i++) { var markLng = myArray[i].getPoint().x; var markLat = myArray[i].getPoint().y; if (markLat > maxLat) maxLat = markLat; if (markLng > maxLng) maxLng = markLng; if (markLat < minLat) minLat = markLat; if (markLng < minLng) minLng = markLng; } if (recenter) reCenterMap(); } // Reinit max/mins function reMaxMin(myArray) { maxLng = myArray[0].getPoint().x; maxLat = myArray[0].getPoint().y; minLng = myArray[0].getPoint().x; minLat = myArray[0].getPoint().y; } // Recenter map based on global max/mins function reCenterMap() { var bounds = new GLatLngBounds(); bounds.extend(new GLatLng(minLat, minLng)); bounds.extend(new GLatLng(maxLat, maxLng)); var center_lat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) / 2.0; var center_lng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) / 2.0; var center = new GLatLng(center_lat, center_lng); var zoom = map.getBoundsZoomLevel(bounds); map.setCenter(center,zoom); //map.setCenter(center,11); /* var center = new GPoint( (maxLng + minLng)/2, (maxLat+minLat)/2 ); var delta = new GSize(maxLng - minLng, maxLat - minLat); var minZoom = map.spec.getLowestZoomLevel(center, delta, map.viewSize); if (minZoom < 4) minZoom = 4; // Lowest possible zoom is 4 map.centerAndZoom(center, minZoom); */ } // Fires when drop down list of schools changes function selectChange(selection) { var myVal = selection.options[selection.selectedIndex].value; map.closeInfoWindow(); // Add entire array based on variable type if (myVal.indexOf('all') != -1 && myVal != 'all') { var temp = myVal.split('='); var showArray = temp[1]; // If Array is > X amount of markers, then open in a new page if (eval(showArray).length > 20) // New window depends on whether or not we're on the search page if (location.href.indexOf('nearby_schools.php') == -1) window.open(location.href + '/map/' + showArray); else window.open('/search//////' + showArray); map.removeOverlays(Christiansburg); map.removeOverlays(Covington); map.removeOverlays(Dillwyn); map.removeOverlays(Dyke); map.removeOverlays(Fork_Union); map.removeOverlays(Goochland); map.removeOverlays(Keswick); map.removeOverlays(New_Castle); map.removeOverlays(Norfolk); map.removeOverlays(South_Boston); map.removeOverlays(Waynesboro); map.removeOverlays(Winchester); map.removeOverlays(Woodberry_Forest); map.addOverlays(eval(showArray)); centerByArray(eval(showArray), true, true); // Center and zoom on set of markers } // Add individual markers if (myVal.indexOf('all') == -1 && myVal != 'all' && myVal.length) { var temp = myVal.split('='); var myArray = temp[0]; var myIndex = parseInt(temp[1]) - 1; document.getElementById('map').width = "750"; map.removeOverlay(eval(myArray)[myIndex]); map.addOverlay(eval(myArray)[myIndex]); GEvent.trigger(eval(myArray)[myIndex],'click'); } // Show all markers if (myVal == 'all') { cntMarker = 0; reMaxMin(Dyke);map.removeOverlays(Christiansburg); map.removeOverlays(Covington); map.removeOverlays(Dillwyn); map.removeOverlays(Dyke); map.removeOverlays(Fork_Union); map.removeOverlays(Goochland); map.removeOverlays(Keswick); map.removeOverlays(New_Castle); map.removeOverlays(Norfolk); map.removeOverlays(South_Boston); map.removeOverlays(Waynesboro); map.removeOverlays(Winchester); map.removeOverlays(Woodberry_Forest); map.addOverlays(Christiansburg); centerByArray(Christiansburg, false, false); cntMarker += Christiansburg.length; map.addOverlays(Covington); centerByArray(Covington, false, false); cntMarker += Covington.length; map.addOverlays(Dillwyn); centerByArray(Dillwyn, false, false); cntMarker += Dillwyn.length; map.addOverlays(Dyke); centerByArray(Dyke, false, false); cntMarker += Dyke.length; map.addOverlays(Fork_Union); centerByArray(Fork_Union, false, false); cntMarker += Fork_Union.length; map.addOverlays(Goochland); centerByArray(Goochland, false, false); cntMarker += Goochland.length; map.addOverlays(Keswick); centerByArray(Keswick, false, false); cntMarker += Keswick.length; map.addOverlays(New_Castle); centerByArray(New_Castle, false, false); cntMarker += New_Castle.length; map.addOverlays(Norfolk); centerByArray(Norfolk, false, false); cntMarker += Norfolk.length; map.addOverlays(South_Boston); centerByArray(South_Boston, false, false); cntMarker += South_Boston.length; map.addOverlays(Waynesboro); centerByArray(Waynesboro, false, false); cntMarker += Waynesboro.length; map.addOverlays(Winchester); centerByArray(Winchester, false, false); cntMarker += Winchester.length; map.addOverlays(Woodberry_Forest); centerByArray(Woodberry_Forest, false, false); cntMarker += Woodberry_Forest.length; centerByArray(Dyke,true, false); if (cntMarker > 20) // New window depends on whether or not we're on the search page if (location.href.indexOf('schools-by-distance') == -1) window.open(location.href + '/map/all'); else window.open('/search///31899,35731,35735,28070,28173,31907,28264,28533,31911,28524,28171,28492,28540,31899,35731,35735,28173,28264,28492,/all'); //window.open('/map.php?type=2&schools=31899,35731,35735,28070,28173,31907,28264,28533,31911,28524,28171,28492,28540,31899,35731,35735,28173,28264,28492,&school_level=&radius=&zipcode=&school_type_search=&school_type_code='); } } function createMarker(point, label, icon) { var marker = new GMarker(point, icon); var html = label; GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); }); return marker; }