var map;
var markers = new Array();
var ALL = 0;
//var COMPLETED = 1;
//var CURRENT = 2;
//var COMING = 3;
var UNDERGROUND_DIAMOND = 1;
var SURFACE_DIAMOND = 2;
var LONGHOLE = 3;
var RC = 4;
var AIR_VAC = 5;

/*
 *  Please initialize all the element names below by the function initializeMap().
 *  These names will be used in 'template_project.php' file to display the contents/values.
 */
var divIdForMap;

function initializeMap(map_div_name)
{
	divIdForMap = map_div_name;
	displayMap();
	generateMarkers();
}

function displayMap()
{
	map = new GMap2(document.getElementById(divIdForMap));
	map.setCenter(new GLatLng(-27.916766641249062,133.681640625),4);
	
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl());
	map.setMapType(G_NORMAL_MAP);
}

function generateMarkers()
{
	GDownloadUrl("/include/gmap_markers.php", function(data){
		var res_markers = eval( '(' + data + ')' );

//		var iconCompleted = getMarkerIcon("/images/completed.png", "/images/shadow.png", 20, 34, 38, 34);
//		var iconCurrent   = getMarkerIcon("/images/current.png", "/images/shadow.png", 20, 34, 38, 34);	
//		var iconComing   = getMarkerIcon("/images/coming.png", "/images/shadow.png", 20, 34, 38, 34);	

		var icon1  = getMarkerIcon("/images/markers/icon1.png", "/images/shadow.png", 20, 34, 38, 34);	
		var icon2  = getMarkerIcon("/images/markers/icon2.png", "/images/shadow.png", 20, 34, 38, 34);
		var icon3  = getMarkerIcon("/images/markers/icon3.png", "/images/shadow.png", 20, 34, 38, 34);
		var icon4  = getMarkerIcon("/images/markers/icon4.png", "/images/shadow.png", 20, 34, 38, 34);
		var icon5  = getMarkerIcon("/images/markers/icon5.png", "/images/shadow.png", 20, 34, 38, 34);
		var icon6  = getMarkerIcon("/images/markers/icon6.png", "/images/shadow.png", 20, 34, 38, 34);
		var icon7 = getMarkerIcon("/images/markers/icon7.png", "/images/shadow.png", 20, 34, 38, 34);
		var icon8 = getMarkerIcon("/images/markers/icon8.png", "/images/shadow.png", 20, 34, 38, 34);
		var icon9  = getMarkerIcon("/images/markers/icon9.png", "/images/shadow.png", 20, 34, 38, 34);
		var icon10  = getMarkerIcon("/images/markers/icon10.png", "/images/shadow.png", 20, 34, 38, 34);

		for(var i=0; i<res_markers.length; i++)
		{
			var latlng = new GLatLng(res_markers[i].latitude, res_markers[i].longitude, false);
			var myIcon;
			switch(res_markers[i].state)
			{
				case 1:
					myIcon = icon1;
					break;
				case 2:
					myIcon = icon2;
					break;
				case 3:
					myIcon = icon3;
					break;
				case 4:
					myIcon = icon4;
					break;
				case 5:
					myIcon = icon5;
					break;	
				case 6:
					myIcon = icon6;
					break;
				case 7:
					myIcon = icon7;
					break;
				case 8:
					myIcon = icon8;
					break;
				case 9:
					myIcon = icon9;
					break;
				case 10:
					myIcon = icon10;
					break;
			}
			var marker = new GMarker(latlng, {icon: myIcon});
			marker.id = res_markers[i].id;
			marker.title = res_markers[i].title;
			marker.location = res_markers[i].location;
			marker.blurb = res_markers[i].blurb;
			marker.pdf = res_markers[i].pdf;
			marker.state = res_markers[i].state;
			marker.state_name = res_markers[i].state_name;
			GEvent.addListener(marker, 'mouseover', function(){
				displayInfoWindow(this);
			});
			markers.push(marker);
		}
		displayMarkers(ALL); //Should be here.
	});
}

function displayInfoWindow(myMarker)
{
	var content = '<div  style="color: #444 !important;"><h2 style="color: #444; font-size: 16px;">' + myMarker.title + '</h2><p>' + myMarker.blurb + '</p></div>';
//alert(myMarker.blurb);	
	if(myMarker.pdf.length > 0){
		//content+='<div class="map_pdf_link"><a href="download_project_pdf.php?id=' + myMarker.id + '" target="_blank">View PDF</a></div>';
		content+='<div class="map_pdf_link"><a href="download_project_pdf.php?id=' + myMarker.id + '">Download PDF</a></div>';
	}
	content+='<div class="map_read_more_link"><a href="project_item.php?pid=' + myMarker.id + '">Read more...</a></div>';

	myMarker.openInfoWindowHtml(content, {maxWidth:300});
}

function displayInfoWindowById(myId)
{
	displayInfoWindow(getMarkerById(myId));	
}

function getMarkerById(myId)
{
	for(var i=0; i<markers.length; i++)
	{
		if(markers[i].id == myId)
		{
			return markers[i];
		}
	}
}

function displayMarkers(state)
{
	map.clearOverlays();
	if(state == ALL)
	{
		for(var i=0; i<markers.length; i++)
		{
			map.addOverlay(markers[i]);
		}
	}
	else
	{
		for(var i=0; i<markers.length; i++)
		{
			var myState = markers[i].state;
			if(state == myState)
			{
				map.addOverlay(markers[i]);
			}
		}
	}
}

function getMarkerIcon(imageUrl, shadowUrl, iconSizeX, iconSizeY, shadowSizeX, shadowSizeY)
{
	var myIcon = new GIcon();
	var xCenter = iconSizeX/2;
	
	myIcon.image = imageUrl;
	myIcon.shadow = shadowUrl;
	myIcon.iconSize = new GSize(iconSizeX, iconSizeY);
	myIcon.shadowSize = new GSize(shadowSizeX, shadowSizeY)
	myIcon.iconAnchor = new GPoint(xCenter, iconSizeY);
	myIcon.infoWindowAnchor = new GPoint(xCenter, 0);
	myIcon.infoShadowAnchor = new GPoint(xCenter, 0);
	
	return myIcon;
}