var map;
var aPts = new Array();

var locationMarker = new Image();
locationMarker.src="/images/mm_20_green.png";
var currMarker = new Image();
currMarker.src="/images/icon2.png";

var clickIcon = new GIcon();
clickIcon.image = locationMarker.src;
clickIcon.iconSize = new GSize(12, 20);
clickIcon.iconAnchor = new GPoint(6, 20);
clickIcon.infoWindowAnchor = new GPoint(5, 1);

var currIcon = new GIcon();
currIcon.image = "/images/icon2.png";
currIcon.iconSize = new GSize(10, 19);
currIcon.iconAnchor = new GPoint(5, 17);
currIcon.infoWindowAnchor = new GPoint(5, 1);

var currMarker=null;

function drawTrafficMap() {
		map = new GMap(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
	
		GEvent.addListener(map, 'click', function(overlay, point) {
			if (overlay) {
			} else if (point) {
				if (currMarker!=null) {
					map.removeOverlay(currMarker);
				}
				//var icon = new GIcon(clickIcon);
				var icon = clickIcon;
				var marker = new GMarker(point, icon);
				map.addOverlay(marker);
				var html = "<nobr><a href='#' onclick=addPoint('"+point.x+"','"+point.y+"')><span id='addPointSpan'>Add Location</span></a></nobr><br>";
				marker.openInfoWindowHtml(html);
				checkAddPoint();
				currMarker=marker;
			}});
	
		drawPoints();
	
		if (typeof(onLoadCenterMapLong)!='undefined'&&typeof(onLoadCenterMapLat)!='undefined') {
			if (typeof(onLoadZoom)!='undefined'){
				map.centerAndZoom(new GPoint(onLoadCenterMapLong, onLoadCenterMapLat), onLoadZoom);
			} else {
				map.centerAndZoom(new GPoint(onLoadCenterMapLong, onLoadCenterMapLat), 1);
			}
			displayPointBubble(onLoadCenterMapLong,onLoadCenterMapLat);
		} else if (aPts.length==1) {
			map.centerAndZoom(new GPoint(aPts[0][0], aPts[0][1]), 2);
			displayPointBubble(aPts[0][0],aPts[0][1]);
		} else {
			map.centerAndZoom(new GPoint("-95.1416015625", "40.44694705960048"), 13);		
		}
}
function returnLocationInfoHTML(id, longitude, lat, text, comments, ratings, signatures, petitions) {
//	var html = text + "<br /><br />";
//style='min-width:175px;'
	var html = "<div class='infoBubble'>" + text + "<br /><br />";
	if (id==-1) {
		html += "<a href='#' onclick=addPoint('"+point.x+"','"+point.y+"')><span id='addPointSpan'>Add Location</span></a><br />";
	} else {
		if (comments==1) {
			html += comments + " comment | ";
		} else {
			html += comments + " comments | ";
		}
		if (ratings==1) {
			html += ratings + " rating | ";
		} else {
			html += ratings + " ratings | ";
		}
		if (signatures==1) {
			html += signatures + " signature<br />";
		} else {
			html += signatures + " signatures<br />";
		}

		html += "<a href='#' onclick=editPoint('"+longitude+"','"+lat+"')>Add Comment</a> | ";
		html += "<a href='/location.php?id="+id+"'>View Location</a><br />";
		if (petitions>0) {
			html += "<a href='petition.php?long="+longitude+"&lat="+lat+"'>View Petition</a>";
		} else {
			html += "<a href='#' onClick='createPetition(\""+longitude+"\",\""+lat+"\");return false;'>Create Petition</a>";
		}
	}
	html += "</div>";
	return html;
}
/*** BACKUP ***
function returnLocationInfoHTML(id, longitude, lat, text, comments, ratings, signatures, petitions) {
	var html = "<div style='min-width:175px;'>" + text + "<br><br>";
	if (id==-1) {
		html += "<a href='#' onclick=addPoint('"+point.x+"','"+point.y+"')><span id='addPointSpan'>Add Location</span></a><br>";
	} else {
		if (comments>0) {
			if (comments==1) {
				html += comments + " comment<br>";
			} else {
				html += comments + " comments<br>";
			}
		}
		if (ratings>0) {
			if (ratings==1) {
				html += ratings + " rating<br>";
			} else {
				html += ratings + " ratings<br>";
			}
		}
		if (petitions>0) {
			if (signatures==1) {
				html += signatures + " signature<br>";
			} else {
				html += signatures + " signatures<br>";
			}
			html += "<a href='petition.php?long="+longitude+"&lat="+lat+"'>View Petition</a><br>";
		} else {
			html += "<a href='#' onClick='createPetition(\""+longitude+"\",\""+lat+"\");return false;'>Create Petition</a><br>";
		}
		//map.showMapBlowup(point);

		html += "<br><a href='/location.php?id="+id+"'>View</a> | <a href='#' onclick=editPoint('"+longitude+"','"+lat+"')>Update</a><br>";
	}
	html += "</div>";
	return html;
}
**********/
function createMarker(point, number, id, text, comments, ratings, signatures, petitions) {
	//var icon = new GIcon(clickIcon);
	var icon = currIcon;
	var marker = new GMarker(point, icon);
	var html = returnLocationInfoHTML(id, point.x, point.y, text, comments, ratings, signatures, petitions);
	
	GEvent.addListener(marker, "click", function() {
		if (currMarker!=null) {
			map.removeOverlay(currMarker);
		}
		marker.openInfoWindowHtml(html);
		checkAddPoint();
	});

	return marker;
}
function drawPoints() {
	if (aPts.length>0) {
		map.centerAndZoom(new GPoint(aPts[0][0], aPts[0][1]), 2);		

		for (i=0;i<aPts.length;i++) {
			var point = new GPoint(aPts[i][0],aPts[i][1]);
			var marker = createMarker(point, i, aPts[i][2], aPts[i][3], aPts[i][4], aPts[i][5], aPts[i][6], aPts[i][7]);
			map.addOverlay(marker);
		}
	}
}
function checkAddPoint() {
	try {
		var span = document.getElementById('addPointSpan');
		if (typeof(span)!='undefined') {
			var currZoom=map.getZoomLevel();
			if (currZoom>0) {
				span.innerHTML = "Zoom In to Add Location";
			} else {
				span.innerHTML = "Add Location";
			}
		}
	} catch(ee) {}
}
var features = "scrollbars=yes,toolbar=no,titlebar=no,menubar=no,status=no,location=no,width=700,height=550,screenX=25;screenY=25,top=25,left=25";
function addPoint(longitude,lat) {
	var currZoom=map.getZoomLevel();
	if (currZoom>0) {
		map.zoomTo(currZoom-1);
		checkAddPoint();
	} else {
		var url = "/update.php?long="+longitude+"&lat="+lat;
		window.open(url, "UpdateLoaction", features).focus();
	}
}
function editPoint(longitude,lat) {
	var url = "/update.php?long="+longitude+"&lat="+lat;
	window.open(url, "UpdateLoaction", features).focus();
}
function createPetition(longitude,lat) {
	var url = "createpetition.php?long="+longitude+"&lat="+lat;
	window.open(url, "CreatePetition", features).focus();
}
function centerMap(longitude,lat) {
	map.centerAndZoom(new GPoint(longitude, lat), 1);
}
function zoom(longitude, lat) {
	//document.getElementById("map").scrollIntoView();
	centerMap(longitude,lat);
	displayPointBubble(longitude,lat);
}
function displayPointBubble(longitude,lat) {
	for (i=0;i<aPts.length;i++) {
		if (aPts[i][0]==longitude && aPts[i][1]==lat) {
			var html = returnLocationInfoHTML(aPts[i][2], longitude, lat, aPts[i][3], aPts[i][4], aPts[i][5], aPts[i][6], aPts[i][7]);

			var point = new GPoint(longitude, lat);
			//var icon = new GIcon(currIcon);
			var icon = currIcon;
			var marker = new GMarker(point,icon);
			map.addOverlay(marker);
			marker.openInfoWindowHtml(html);

			GEvent.addListener(marker, "click", function() {
				if (currMarker!=null) {
					map.removeOverlay(currMarker);
				}
				marker.openInfoWindowHtml(html);
				checkAddPoint();
			});

			break;
		}
	}
}
