var map;
var centerLatitude = 43.02071359427862;
var centerLongitude = -81.243896484375;
var startZoom = 6;
var geocoder;
var domains_xml;
var active_domain_button;
var active_domain = -1;

// The tile layers are stored here
var tileLayerOverlays = new Array;

var smallIcon = new GIcon();
smallIcon.image = "../images/mm_20_white.png";
smallIcon.shadow = "../images/mm_20_shadow.png";
smallIcon.iconSize = new GSize(12, 20);
smallIcon.shadowSize = new GSize(22, 20);
smallIcon.iconAnchor = new GPoint(6, 20);
smallIcon.infoWindowAnchor = new GPoint(5, 1);

// Function to get url parameters. We're interested in the session ID, mostly.
function get_url_parameter (name) {
	var regex_statement = "[\\?&]" + name + "=([^&#]*)";
	var regex = new RegExp(regex_statement);
	var results = regex.exec(window.location.href);
	if (results == null)
		return "";
	else
		return results[1];
}

function createTileLayerOverlay(domain_id) {
	// Create the tile layer object
	var detailLayer = new GTileLayer(new GCopyrightCollection(''));
	 
	// Method to retrieve the URL of the tile
	detailLayer.getTileUrl = function(tile, zoom){
		// pass the x and y position as well as the zoom
		var tileURL = 'dynamic.php?reaction=tile&x=' + tile.x + '&y=' + tile.y + '&zoom=' + zoom + '&domain_id=' + domain_id + '&ext=.png&session=' + get_url_parameter("session");
		return tileURL; 
	};
	 
	detailLayer.isPng = function() {
		return true;
	}

	return new GTileLayerOverlay(detailLayer);
}

var changeViewportListeners = function changeViewportListeners() {
	bounds = this.getBounds();
	latitude1 = bounds.getSouthWest().lat();
	longitude1 = bounds.getSouthWest().lng();
	latitude2 = bounds.getNorthEast().lat();
	longitude2 = bounds.getNorthEast().lng();
	url = 'dynamic.php?reaction=viewport&session=' + get_url_parameter("session") + '&lat1=' + latitude1 + '&lng1=' + longitude1 + '&lat2=' + latitude2 + '&lng2=' + longitude2 + '&domain_id=' + active_domain;

	new Ajax.Request(
		url, {onSuccess:modifyViewportListeners}
		);
}

var modifyViewportListeners = function modifyViewportListeners(response) {
	xml = response.responseXML.documentElement;

	result = xml.getElementsByTagName('Result')[0];

	num_members = result.getElementsByTagName('NumMembers')[0].childNodes[0].nodeValue;
	latitude1 = xml.getElementsByTagName('Query')[0].getElementsByTagName('Latitude1')[0].childNodes[0].nodeValue;
	longitude1 = xml.getElementsByTagName('Query')[0].getElementsByTagName('Longitude1')[0].childNodes[0].nodeValue;
	latitude2 = xml.getElementsByTagName('Query')[0].getElementsByTagName('Latitude2')[0].childNodes[0].nodeValue;
	longitude2 = xml.getElementsByTagName('Query')[0].getElementsByTagName('Longitude2')[0].childNodes[0].nodeValue;

	if (true) {
		$('members_on_map_num').innerHTML = num_members;
	}
}
