// Normal Signup Map

if (GBrowserIsCompatible()) {
	if (document.getElementById('map')) {
		SignupMap();
	}
	if (document.getElementById('contribution_map')) {
		ContributionMap();
	}
}

function SignupMap() {
	var map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(37,-95), 3);
	map.addControl(new GSmallMapControl());
	
	var icons = new Array();

	for (i = 1; i <= 5; i++) {
		icons[i] = new GIcon();
		icons[i].image = "http://www.singingrevolution.com/images/markers/" + i + ".png";
		
		switch(i) {
			case 1: icons[i].iconSize = new GSize(10,16);
					icons[i].iconAnchor = new GPoint(5,16);
					icons[i].infoWindowAnchor = new GPoint(5,16);
					break;
			case 2: icons[i].iconSize = new GSize(14,21);
					icons[i].iconAnchor = new GPoint(7,21);
					icons[i].infoWindowAnchor = new GPoint(7,21);
					break;
			case 3: icons[i].iconSize = new GSize(17,27);
					icons[i].iconAnchor = new GPoint(8,27);
					icons[i].infoWindowAnchor = new GPoint(8,27);
					break;
			case 4: icons[i].iconSize = new GSize(23,36);
					icons[i].iconAnchor = new GPoint(11,36);
					icons[i].infoWindowAnchor = new GPoint(11,36);
					break;
			case 5: icons[i].iconSize = new GSize(31,49);
					icons[i].iconAnchor = new GPoint(15,49);
					icons[i].infoWindowAnchor = new GPoint(15,49);
					break;
		}
	}
	
	GDownloadUrl("/cgi-local/markers.cgi.xml", function(data, responseCode) {
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
		for (var i = 0; i < markers.length; i++) {
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
			parseFloat(markers[i].getAttribute("lng")));
			var signups = markers[i].getAttribute("signups");
			var title = markers[i].getAttribute("title");
			map.addOverlay(createMarker(point, title, signups));
		}
	});
	
	function createMarker(point, title, signups) {
		rank = 1;
		if (signups > 5) rank = 2;
		if (signups > 19) rank = 3;
		if (signups > 49) rank = 4;
		if (signups > 100) rank = 5;
		
		var marker = new GMarker(point,icons[rank]);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml("<b>" + title + " Area</b>:<br/>" + signups + " friend" + (signups > 1 ? "s" : ''));
		});
		return marker;
	}
}

function ContributionMap() {
 	var map = new GMap2(document.getElementById("contribution_map"));
 	map.setCenter(new GLatLng(37,-95), 3);
 	map.addControl(new GSmallMapControl());
 	
 	var icons = new Array();

	for (i = 1; i <= 5; i++) {
		icons[i] = new GIcon();
		icons[i].image = "http://www.singingrevolution.com/images/markers/" + i + ".png";
		
		switch(i) {
			case 1: icons[i].iconSize = new GSize(10,16);
					icons[i].iconAnchor = new GPoint(5,16);
					icons[i].infoWindowAnchor = new GPoint(5,16);
					break;
			case 2: icons[i].iconSize = new GSize(14,21);
					icons[i].iconAnchor = new GPoint(7,21);
					icons[i].infoWindowAnchor = new GPoint(7,21);
					break;
			case 3: icons[i].iconSize = new GSize(17,27);
					icons[i].iconAnchor = new GPoint(8,27);
					icons[i].infoWindowAnchor = new GPoint(8,27);
					break;
			case 4: icons[i].iconSize = new GSize(23,36);
					icons[i].iconAnchor = new GPoint(11,36);
					icons[i].infoWindowAnchor = new GPoint(11,36);
					break;
			case 5: icons[i].iconSize = new GSize(31,49);
					icons[i].iconAnchor = new GPoint(15,49);
					icons[i].infoWindowAnchor = new GPoint(15,49);
					break;
		}
	}
	
	GDownloadUrl("/cgi-local/contribution_markers.cgi.xml", function(data, responseCode) {
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
		for (var i = 0; i < markers.length; i++) {
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
			parseFloat(markers[i].getAttribute("lng")));
			var contributions = markers[i].getAttribute("contributions");
			var title = markers[i].getAttribute("title");
			map.addOverlay(createMarker(point, title, contributions));
		}
	});
	
	function createMarker(point, title, contributions) {
		rank = 1;
		if (contributions > 5) rank = 2;
		if (contributions > 19) rank = 3;
		if (contributions > 49) rank = 4;
		if (contributions > 100) rank = 5;
		
		var marker = new GMarker(point,icons[rank]);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml("<b>" + title + " Area</b>:<br/>$" + contributions + ' Total Contributions');
		});
		return marker;
	}
}