
var polys = new Array();
var markers = new Array();
var oldMarkers = new Array();
var map;
var lastZoom = 0;
var timer = null;
var intervalTimer = null;
var marker = null;
var lastInfoWindow = null;

function retrieveNewLines() {
	if (timer != null) clearTimeout(timer);
	var ne = map.getBounds().getNorthEast();
	var sw = map.getBounds().getSouthWest();
	dojo.xhrGet({
	   url: baseUrl + "?type=line&zoom=" + map.getZoom() + "&neLat=" + ne.lat() + "&neLon=" + ne.lng() + "&swLat=" + sw.lat() + "&swLon=" + sw.lng() + "&mapLat=" + map.getCenter().lat() + "&mapLon=" + map.getCenter().lng(),
	    handleAs:"text",
	    load: function(data){
	       showNewPolyLines_cb(data);
	    }
	});
	lastZoom = map.getZoom();
}

function initialize() {
	var myOptions = {
		zoom : initialZoom,
		center : mapCentre,
		mapTypeId : google.maps.MapTypeId.ROADMAP,
		scaleControl: true,
	    scaleControlOptions: {
	        position: google.maps.ControlPosition.BOTTOM_RIGHT
	    }    
	}
	map = new google.maps.Map(document.getElementById("map_canvas"),
			myOptions);
	
	google.maps.event.addListener(map, 'zoom_changed', function(e) {
		if (map.getZoom() < 3) 
			map.setZoom(3);
		if (map.getZoom() > 16) 
			map.setZoom(16);

	});
	google.maps.event.addListener(map, 'bounds_changed', function(e) {
		if (timer != null) clearTimeout(timer);
		timer = setTimeout("retrieveNewLines()", 100);
	});
	//setInterval("retrieveNewLines()",1200000);
}
function removePolyLines() {
	for (var i = 0; i < polys.length; i++) {
		polys[i].setMap(null);
	}
	polys = new Array();
}
function removeMarkers() {
	for (var i = 0; i < oldMarkers.length; i++) {
		oldMarkers[i].setMap(null);
	}
}
function showNewPolyLines_cb(r) {
	removePolyLines();
	oldMarkers = markers;
	markers = new Array();
	eval(r);
	removeMarkers();
}
function getPolyClickedString(line) {
	var ppm = "";
	var introString = "The carbon dioxide level here is around ";
	switch (line.strokeColor) {
	case "#000000":
		return "The carbon dioxide level here is unknown.<br /><br />" + line.timeRecorded;
		break;
	case "#00FF00":
		ppm = "200-300";
		break;
	case "#44FF00":
		ppm = "300-350";
		break;
	case "#88FF00":
		ppm = "350-400";
		break;
	case "#AAFF00":
		ppm = "400-450";
		break;
	case "#FFFF00":
		ppm = "450-500";
		break;
	case "#FFAA00":
		ppm = "500-550";
		break;
	case "#FF8800":
		ppm = "550-600";
		break;
	case "#FF4400":
		ppm = "600-650";
		break;
	default:
		introString = "The carbon dioxide level here is over ";
		ppm = "650";
	}
	return introString + ppm + "ppm.<br /><br />" + line.timeRecorded;
}

