
function loadCoverageMap() {

	// load the miniMap for item information
	map = new GMap2(document.getElementById("coverageMap"));
	centerPoint = new GLatLng(52,-98);
	map.setCenter(centerPoint,3);

	var padding = new GSize(10, 10);	//in pixels
	var position = G_ANCHOR_TOP_LEFT;
	var controlPosition = new GControlPosition(position, padding);

	//zoom and pan tool
	controlType = new GLargeMapControl();
	map.addControl(controlType, controlPosition);
	map.enableScrollWheelZoom();

}


/**
 * Ajax call to get the geometry of a specified metadata
 *
 * @param integer MetadataId
 * @param object clicked element
 *
 */
function getMetadataGeom(metadataId, elem) {

	swapImage(elem,'images/icons/magnifier_zoom_in.png','images/loading_small.gif');

	var url = 'ajax/coverage_ajax.php?a=getGeom&mid=' + metadataId;

	sendAjax('get', url, null, function () { displayGeom('metadataGeom'); });

}


/**
 * Ajax call to get the geometry of a specified coverage area
 *
 * @param string coverage name
 * @param object clicked element
 *
 */
function getCoverageGeom(coverage, elem) {
	
	swapImage(elem,'images/icons/magnifier_zoom_in.png','images/loading_small.gif');
	
	var url = 'ajax/coverage_ajax.php?a=getCoverage&ca=' + coverage;
	
	sendAjax('get', url, null, function () { displayGeom('coverageGeom'); });
	
}


/**
 * display the retrieved metadata geometry, the geometry is encoded
 */
function displayGeom(imageDiv) {

	if (http.readyState == 4 && http.status == 200) {

		var response = http.responseText;
		var result = JSON.parse(response);

		swapImage(imageDiv + result.id,'images/icons/magnifier_zoom_in.png','images/loading_small.gif');

		if (result.success) {

			removeMultiPolygon();

			for (polygon in result.polygon) {

				var gPolygon = new GPolygon.fromEncoded({
					polylines: [{
						color: "#FF0000",
						weight: 2,
						opacity: 0.7,
						points: result.polygon[polygon].points,
						levels: result.polygon[polygon].levels,
						zoomFactor: result.polygon[polygon].zoomFactor,
						numLevels: result.polygon[polygon].numLevels
					}],
					color: "#FF0000",
					opacity: 0.3,
					fill: true,
					outline: true
				});

				drawMultiPolygon(gPolygon, true, "", "", false, true);

			}

			zoomToMultiPolygon();

		} else {
		
			alert('The coverage area is currently not available.');
			
		}

	}

}