	var gCenterZoom = 13;
	var gDataSource = '';
	var gDataSourceP = '';
	var getNewData = 1;
	var arrSchools = new Array();
	var arrPolluters = new Array();
	var intSchools = 0;
	var intPolluters = 0;
	var firstLoad = 1;

	// DEBUG VALUES
	var mpType;
	var mpId;

	var iconBlue = new GIcon();
		iconBlue.image = 'http://i.usatoday.net/_common/_images/_smokestack/school.png';
		iconBlue.iconSize = new GSize(35, 27);
		iconBlue.iconAnchor = new GPoint(1, 5);
		iconBlue.infoWindowAnchor = new GPoint(5, 15);

	var iconRed = new GIcon();
		iconRed.image = 'http://i.usatoday.net/_common/_images/_smokestack/polluter.png';
		iconRed.iconSize = new GSize(35, 27);
		iconRed.iconAnchor = new GPoint(6, 20);
		iconRed.infoWindowAnchor = new GPoint(5, 15);

	function map_load() {
		if(GBrowserIsCompatible()) {
			gmap = new GMap2(document.getElementById("gmap"));
			gmap.addControl(new GSmallMapControl());
			gmap.addControl(new GMenuMapTypeControl());
			gmap.enableContinuousZoom();
			gmap.setCenter(new GLatLng(gCenterLat, gCenterLng), gCenterZoom);
			GEvent.addListener(gmap,"moveend",function() {
				map_move();
			});

		        var mt = gmap.getMapTypes();
		        for ( i = 0; i < mt.length; i++ ) {
		        	mt[i].getMinimumResolution = function() { return 11; }
		        	mt[i].getMaximumResolution = function() { return 19; }
		        }
			map_move();
		}
	}
	
	function map_get_polluter_points() {
		if(gDataSourceP != '') {
			GDownloadUrl(gDataSourceP, function(data) {
				map_clear_polluters();
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
				for (var i = 0; i < markers.length; i++) {
					var latitude = markers[i].getAttribute("lat");
					var longitude = markers[i].getAttribute("lng");
					var name = markers[i].getAttribute("n");
					var street = markers[i].getAttribute("a");
					var city = markers[i].getAttribute("c");
					var state = markers[i].getAttribute("s");
					var facilityId = markers[i].getAttribute("id");
					arrPolluters[i] = map_create_polluter_marker(latitude, longitude, name, street, city, state, facilityId);
					gmap.addOverlay(arrPolluters[i]);
					intPolluters = i;
					
					if(firstLoad == 1) {
						if(mpType == 'polluter') {
							if(facilityId == mpId) {
								GEvent.trigger(arrPolluters[i],'click');
								firstLoad = 0;
							}
						}
					}					
					
				}				
			});
		}
	}
	
	function map_clear_schools() {
		for(i = 0; i < intSchools; i++) {
			gmap.removeOverlay(arrSchools[i]);
		}
		intSchools = 0;
		arrSchools = new Array();
	}
	
	function map_clear_polluters() {
				for(var i = 0; i < intPolluters; i++) {
					gmap.removeOverlay(arrPolluters[i]);
				}
				intPolluters = 0;
				arrPolluters = new Array();
	}
	
	function map_get_points() {
		if(gDataSource != '') {
			setGettingData();
			GDownloadUrl(gDataSource, function(data) {
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
				// clear school points
				map_clear_schools();


				for (var i = 0; i < markers.length; i++) {
					var latitude = markers[i].getAttribute("lat");
					var longitude = markers[i].getAttribute("lng");
					var schnam = markers[i].getAttribute("n");
					var lcity = markers[i].getAttribute("c");
					var lstreet = markers[i].getAttribute("a");
					var lstate = markers[i].getAttribute("s");
					var percentile = markers[i].getAttribute("p");
					var schoolId = markers[i].getAttribute("id");
					arrSchools[i] = map_create_school_marker(latitude, longitude, schnam, lstreet, lcity, lstate, percentile, schoolId);
					gmap.addOverlay(arrSchools[i]);
					intSchools = i;
					
					if(firstLoad == 1) {
						if(mpType == 'school') {
							if(schoolId == mpId) {
								GEvent.trigger(arrSchools[i],'click');
								firstLoad = 0;
							}
						}
					}
				}
				clearGettingData();		
			});
		}
	}
	
	function map_move() {
		if(getNewData == 1) {
			if(gmap.getZoom() >= 11) {
				// get local data points
				var nelng = gmap.getBounds().getNorthEast().lng() + .02;
				var nelat = gmap.getBounds().getNorthEast().lat() + .02;
				var swlng = gmap.getBounds().getSouthWest().lng() - .02;
				var swlat = gmap.getBounds().getSouthWest().lat() - .02;
				//gDataSource = "http://usat-vocdevweb1/test/bheath/trimap/maphandler.ashx?v=complete&swlat="+swlat+"&swlng="+swlng+"&nelat="+nelat+"&nelng="+nelng;
				//gDataSourceP = "http://usat-vocdevweb1/test/bheath/trimap/maphandler.ashx?v=polluters&swlat="+swlat+"&swlng="+swlng+"&nelat="+nelat+"&nelng="+nelng;
				gDataSource = "http://content.usatoday.com/asp/tools/flashdataproxy/toxicschools/maphandler.ashx?v=complete&swlat=" + swlat + "&swlng=" + swlng + "&nelat=" + nelat + "&nelng=" + nelng;
				gDataSourceP = "http://content.usatoday.com/asp/tools/flashdataproxy/toxicschools/maphandler.ashx?v=polluters&swlat=" + swlat + "&swlng=" + swlng + "&nelat=" + nelat + "&nelng=" + nelng;
} else {
				map_clear_schools();
				map_clear_polluters();
				gDataSource = "";
				gDataSourceP = '';
			}
			map_get_points();
			map_get_polluter_points();
			
		}
	}
	
	function map_create_school_marker(latitude,longitude,schnam,lstreet,lcity,lstate,percentile,schoolId) {
		var point = new GLatLng(latitude,longitude);
		var m = new GMarker(point, iconBlue);
		
		var rnk = '';
		var p = parseFloat(percentile);
		if(p <= 33) { 
			rnk = '<div class="national-rank-map rank-low">';
		} else if ( p <= 66) {
			rnk = '<div class="national-rank-map rank-mid">';
		} else {
			rnk = '<div class="national-rank-map rank-high">';
		}
		
		var suffix = '';
		var lc = percentile.substr(percentile.length-1,1);
		if((parseInt(percentile) <= 14) && (parseInt(percentile) >= 11)) {
			suffix = 'th';
		} else {
			if(lc == '1') {
				suffix = 'st';
			} else if (lc == '2') { 
				suffix = 'nd';
			} else if (lc == '3') {
				suffix = 'rd'; 
			} else {
				suffix = 'th';
			}
		}
		
		var html = '<div style="width:1px; height:12px;"></div>'
			+ rnk + '<dl><dt>National Rank</dt>'
			+ '<dd class="rank-number">' + percentile  + suffix + '</dd>'
			+ '<dd class="percentile">percentile</dd>'
			+ '</dl></div><dl class="school-map-info">'
			+ '<dt><a href="' + urlbase + 'school/' + schoolId + '">' + schnam + '</a></dt>'
			+ '<dd>' + lstreet + '</dd>'
			+ '<dd>' + lcity + ', ' + lstate + '</dd>'
			+ '</dl>';
		GEvent.addListener(m, 'click', function() {
			getNewData = 0;
			m.openInfoWindowHtml(html);
		});
		GEvent.addListener(m, 'infowindowopen',function() {
			getNewData = 0;
		});		
		GEvent.addListener(m, 'infowindowbeforeclose', function() {
			getNewData = 1;
		});		
		return m;
	}
	
	function map_create_polluter_marker(latitude, longitude, name, street, city, state, facilityId) {
		var point = new GLatLng(latitude,longitude);
		var m = new GMarker(point, iconRed);
		var html = '<div style="width:1px; height:8px;"></div>'
			+ '<dl class="polluter-map-info">'
			+ '<dt><a href="' + urlbase + 'polluter/' + facilityId + '">' + name + '</a></dt>'
			+ '<dd>' + street + '</dd>'
			+ '<dd>' + city + ', ' + state + '</dd>'
			+ '</dl>';
		GEvent.addListener(m, 'click', function() {
			getNewData = 0;
			m.openInfoWindowHtml(html);
		});
		GEvent.addListener(m, 'infowindowopen',function() {
			getNewData = 0;
		});		
		GEvent.addListener(m, 'infowindowbeforeclose', function() {
			getNewData = 1;
		});		
		return m;
	
	}

	function findPos(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
		}
		return [curleft,curtop];
	}
	
	function setGettingData() {
		var gmp = document.getElementById('gmap');
		var pos = findPos(gmp);
		var smz = document.getElementById('gmapStatus');
		smz.style.position = 'absolute';
		smz.style.fontWeigh = 'bold';
		smz.style.width = '600px';
		smz.style.height = '20px';
		smz.style.backgroundColor = 'black';
		smz.style.opacity = .5;
		smz.style.filter = 'alpha(opacity=50)';
		smz.style.top = ((pos[1] + gmp.offsetHeight) - 20) + 'px';
		smz.style.left = pos[0] + 'px';

		var smz = document.getElementById('gmapStatusMsg');
		smz.style.position = 'absolute';
		smz.style.fontWeigh = 'bolder';
		smz.style.color = 'white';
		smz.style.width = '600px';
		smz.style.height = '20px';
		smz.style.top = ((pos[1] + gmp.offsetHeight) - 20) + 'px';
		smz.style.left = pos[0] + 'px';
		smz.innerHTML = 'FINDING MORE SCHOOLS';
	}
	
	function clearGettingData() {
		var s = document.getElementById('gmapStatus');
		s.style.heihgt = '0px';
		s.style.width = '0px';
		s.innerHTML = '';			
		var s = document.getElementById('gmapStatusMsg');
		s.style.heihgt = '0px';
		s.style.width = '0px';
		s.innerHTML = '';	

	}
