var actionID = 1001; var currentURI = "http://www.privateschoolreview.com/maps/markers.php"; var arrMarkersqs = {"type":"1","stateid":"NV","letter":"A"}; var county_name = ""; var tmpobj; var minlat, minlong; var maxlat, maxlong; var pageinit = false; minlat = 0; minlong = 0; maxlat = 0; maxlong = 0; Ajax.responseFunction = function(sResponse) { myServerCallback(sResponse); } function myCallServer(ajaxargs) { Ajax.callServer(ajaxargs); } function onChangeMap() { var obj; var qs = arrMarkersqs; var selection = document.getElementById("selection"); var myVal = selection.options[selection.selectedIndex].value; obj = { "cmd": "LIST", "actionID": actionID, "myval": myVal }; // Include all of the query string parameters for (x in qs) { if ("string" == typeof(x) && (x != "toJSONString")) { eval("obj." + x + " = '" + qs[x] + "'"); } } obj.referrer = referrer; myCallServer(obj.toJSONString()); } function addMapBounds(obj) { var bounds = map.getBounds(); obj.viewArea = { "lllat": bounds.getSouthWest().lat(), "lllng": bounds.getSouthWest().lng(), "urlat": bounds.getNorthEast().lat(), "urlng": bounds.getNorthEast().lng() }; return obj; } // Fires when drop down list of schools changes function selectChange(selection) { map.closeInfoWindow(); onChangeMap(); } function showListings(obj) { var selection = document.getElementById("selection"); var myVal = selection.options[selection.selectedIndex].value; var qs = arrMarkersqs; var arrNewCitySet = []; var numrows = obj.count; var i, j, k; map.closeInfoWindow(); for (i=0; i Standalone Map // Center on array of markers and add them/init map if ((qs['city']) && ("" != qs['city']) && standalone) { qs['city'] = qs['city'].replace(/ /,"_"); centerByArray(qs['city'], true, true); map.addOverlays(qs['city']); } // If less than X markers, and not on the stand-alone, then auto-plot them on initial map else if ((numrows < maxStartMarkers) && !(qs['first_school']) && !(qs['letter']) && !(qs['specific_type']) && !standalone) { for (i=0; i 0))) { setMinMaxLatLong(arrNewCitySet); reCenterMap(); for (i=0; i 0)) { setMinMaxLatLong(arrNewCitySet); reCenterMap(); } else if (("" != qs['myType'])) { //getPoly("","state","",qs['stateid']); } } } else { // Add entire array based on variable type if ((myVal.indexOf('all') != -1) && (myVal != 'all')) { var temp = myVal.split('='); var showArray = temp[1]; // If we aren't on the stand alone map, no need to popup a new window for > x markers if (!standalone) { // If Array is > X amount of markers, then open in a new page if (obj.count > maxMarkers) // 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/' + qs['zipList'] + '/' + qs['radius'] + '/type' + qs['school_type_search'] + '/' + qs['school_type_code'] + '/' + qs['school_level'] + '/' + showArray); } for (i=0; i x markers if (!standalone) { if (cntMarker > maxMarkers) // 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/all'); else window.open('/search/' + qs['zipList'] + '/' + qs['radius'] + '/type' + qs['school_type_search'] + '/' + qs['school_type_code'] + '/' + qs['school_level'] + '/all'); } } } for (i=0; i maxlat) { maxlat = lat; } if (lng < minlong) { minlong = lng; } else if (lng > maxlong) { maxlong = lng; } } } } } return !bFirst; } // Takes an array of markers and centers/zooms map based on marker range function centerByArray(cityName, recenter, newMaxMin) { if (newMaxMin == true) reMaxMin(cityName); for (var i = 0; i < eval(cityName + ".schools.length"); i++) { var markLng = eval(cityName + ".schools[i].marker.getPoint().x"); var markLat = eval(cityName + ".schools[i].marker.getPoint().y"); if (markLat > maxlat) maxlat = markLat; if (markLng > maxlong) maxlong = markLng; if (markLat < minlat) minlat = markLat; if (markLng < minlong) minlong = markLng; } if (recenter) reCenterMap(); } // Reinit max/mins function reMaxMin(cityName) { if (!minlat) { return; } maxlong = eval(cityName + ".schools[0].marker.getPoint().x"); maxlat = eval(cityName + ".schools[0].marker.getPoint().y"); minlong = eval(cityName + ".schools[0].marker.getPoint().x"); minlat = eval(cityName + ".schools[0].marker.getPoint().y"); } // Recenter map based on global max/mins function reCenterMap() { if (!minlat) { return; } var bounds = new GLatLngBounds(); bounds.extend(new GLatLng(minlat, minlong)); bounds.extend(new GLatLng(maxlat, maxlong)); 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,10); /* var center = new GPoint( (maxlong + minlong)/2, (maxlat+minlat)/2 ); var delta = new GSize(maxlong - minlong, 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); */ } function myServerCallback(data) { var obj; //alert(data); //document.getElementById("divmsg").appendChild(document.createElement("br")); //document.getElementById("divmsg").appendChild(document.createTextNode(data)); if (data) { obj = data.parseJSON(); if (obj) { switch (obj.cmd) { case "LIST": showListings(obj); break; default: break; } actionID++; } } }