var plantData = new Array();
var plantCount = 0;
function PlantData( name, type, status, capacity, lat, lng, addr ) {
	this.name = name;
	this.type = type;
	this.status = status;
	this.capacity = capacity;
	this.lat = lat;
	this.lng = lng;
	this.addr = addr;
}
var map;
var markers;

function showMap(displayType) {
	if (GBrowserIsCompatible() && plantData.length > 0 ) {
		map = new GMap2(document.getElementById("proj_map_div"));
		map.addControl(new GLargeMapControl3D());
		map.addControl(new GMenuMapTypeControl());
		map.addMapType(G_PHYSICAL_MAP);
		if ( displayType == "one")
			map.setMapType(G_NORMAL_MAP);
		else
			map.setMapType(G_PHYSICAL_MAP);
		map.clearOverlays();
		map.setCenter(new GLatLng(20, 0));
		markers = new Array(plantData.length);
		var bounds = new GLatLngBounds();
		for (var row = 0; row <plantData.length; row++) {
			if ( parseInt(plantData[row].lat) > 0 && parseInt(plantData[row].lng) > 0 ) {
				var latlng = new GLatLng(plantData[row].lat,plantData[row].lng);
				bounds.extend(latlng);
				if ( plantData[row].type == "Hydro" )
					var marker = createMarker(latlng, "blue", getInfo(row, displayType));
				else if ( plantData[row].type == "Biomass" )
					var marker = createMarker(latlng, "green", getInfo(row, displayType));
				else if ( plantData[row].type == "Gas" )
					var marker = createMarker(latlng, "purple", getInfo(row, displayType));
				markers[row] = marker;
				if ( displayType == "one")
					marker.openInfoWindowHtml(getInfo(row, displayType));
				map.addOverlay(marker);
			}
		}
		var zoom = map.getBoundsZoomLevel(bounds);
		if (8 < zoom) zoom = 8;
		if (1 < zoom) map.setCenter(bounds.getCenter());
		map.setZoom(zoom);
	}
}

function getInfo(row, displayType) {
	var textName = document.createTextNode(plantData[row].name);
	var textInfo;
	if ( displayType == "one" ) {
		var addr = plantData[row].addr;
		var addrs = addr.split(",");
		var div3 = document.createElement("div");
		for ( var i=0; i<addrs.length; i++) {
			if ( i < addrs.length-1)
				text = document.createTextNode(addrs[i] + ",");
			else
				text = document.createTextNode(addrs[i]);
			div3.appendChild(text);
			if ( i%2 != 0 )
				div3.appendChild(document.createElement("br"));
		}
		textInfo = div3;
	}
	else
		textInfo = document.createTextNode(plantData[row].capacity + " " +  plantData[row].type + " Power Project" );
	var div = document.createElement("div");
	var div1 = document.createElement("div");
	div1.appendChild(textName);
	div1.setAttribute('className', "f_proj_map_title");
	div1.setAttribute('class', "f_proj_map_title");
	div.appendChild(div1);
	var div2 = document.createElement("div");
	div2.appendChild(textInfo);
	div2.setAttribute('className', "f_proj_map_info");
	div2.setAttribute('class', "f_proj_map_info");
	div.appendChild(div2);
	if ( displayType == "all" ) {
		var linkUrl = "business/index.asp";
		if ( plantData[row].type == "Hydro" && plantData[row].status == "O" ) 
			linkUrl = "business/hydro_operational.asp";
		else if ( plantData[row].type == "Hydro" && plantData[row].status == "D" ) 
			linkUrl = "business/hydro_development.asp";
		else if ( plantData[row].type == "Biomass" && plantData[row].status == "O" ) 
			linkUrl = "business/biomass_operational.asp";
		else if ( plantData[row].type == "Biomass" && plantData[row].status == "D" ) 
			linkUrl = "business/biomass_development.asp";
		else if ( plantData[row].type == "Gas" && plantData[row].status == "O" ) 
			linkUrl = "business/gas_operational.asp";
		else if ( plantData[row].type == "Gas" && plantData[row].status == "D" ) 
			linkUrl = "business/gas_development.asp";
		var linkInfo = document.createElement('a'); 
		linkInfo.setAttribute('href', linkUrl);
		linkInfo.setAttribute('className', "a_body_def");
		linkInfo.setAttribute('class', "a_body_def");
		var text = document.createTextNode(String.fromCharCode(187) + " More Info");
		linkInfo.appendChild(text);
		div.appendChild(linkInfo);
	}
	return div;
}

function createMarker(latlng, iconType, info) {
	var icon = new GIcon(G_DEFAULT_ICON);
	icon.image = "img/map_marker_" + iconType + ".png";
	icon.iconSize = new GSize(20, 20);
	icon.infoWindowAnchor = new GPoint(9, 0);
	icon.iconAnchor = new GPoint(10, 10);
	icon.shadowSize = new GSize(32, 20);
	markerOptions = { icon:icon };
	var marker = new GMarker(latlng, markerOptions);
	GEvent.addListener(marker, "click", function() {
	marker.openInfoWindowHtml(info);
	});
	/*
	GEvent.addListener(marker, "mouseover", function() {
	marker.openInfoWindowHtml(info);
	});
	GEvent.addListener(marker, "mouseout", function() {
	marker.closeInfoWindow();
	});
	*/
	return marker;
}
