var map;
var mapkey = "ABQIAAAALXIZ9No0d5n0x_VByNKWRxSJfFTA0uVO-DbHT7ucTy8GBhOKNBQ45mIybc0CeNWIPd1qDzCuPrGlfg";
var paneSplitter;
var _pid;
function dhtml_init() {
	/* STEP 1 */
	/* Create the data model for the panes */
	var paneModel = new DHTMLSuite.paneSplitterModel();
	DHTMLSuite.commonObj.setCssCacheStatus(false);
	// Creating west pane
	var paneWest = new DHTMLSuite.paneSplitterPaneModel({ position: "west", id: "westPane", size: 200, minSize: 100, maxSize: 300, scrollbars: false });
	paneWest.addContent(new DHTMLSuite.paneSplitterContentModel({ id: "wMapContent", htmlElementId: 'mapTreeDiv', title: 'Map Control:', tabTitle: 'Map Control:', closable: false }));
	paneWest.addContent(new DHTMLSuite.paneSplitterContentModel({ id: "wEarthContent", htmlElementId: 'earthTreeDiv', title: 'Emissions:', tabTitle: 'Earth Tree:', closable: false }));
	paneModel.addPane(paneWest);

	// Creating east pane
	var paneEast = new DHTMLSuite.paneSplitterPaneModel({ position: "east", id: "eastPane", size: 250, minSize: 100, maxSize: 600 });
	paneEast.addContent(new DHTMLSuite.paneSplitterContentModel({ id: "eastContent", htmlElementId: 'sidebar', title: 'Summary Table:', tabTitle: 'Side Table:', closable: false }));
	//paneEast.addContent( new DHTMLSuite.paneSplitterContentModel( { id:"eastContent2",htmlElementId:'top10P',title:'Top Pollutants:',tabTitle:'Top Pollutants:' } ) );
	//paneEast.addContent( new DHTMLSuite.paneSplitterContentModel( { id:"eastContent3",htmlElementId:'top10S',title:'Top Sources:',tabTitle:'Top Sources:' } ) );

	paneModel.addPane(paneEast);

	// Creating south pane
	var paneSouth = new DHTMLSuite.paneSplitterPaneModel({ position: "south", id: "southPane", size: 50, minSize: 20, maxSize: 80, resizable: true });
	paneSouth.addContent(new DHTMLSuite.paneSplitterContentModel({ id: "southContent", htmlElementId: 'southContent', title: '<font color="red" style="background-color: yellow;">This is a development site, data are not verified and are used for development only.</font>' }));
	paneModel.addPane(paneSouth);

	// Creating north pane
	var paneNorth = new DHTMLSuite.paneSplitterPaneModel({ position: "north", id: "northPane", size: 150, scrollbars: false, resizable: false });
	paneNorth.addContent(new DHTMLSuite.paneSplitterContentModel({ id: "northContent", htmlElementId: 'northContent', title: '' }));
	paneModel.addPane(paneNorth);

	// Creating center pane
	var pidDD = "Pollutants: "; //pollutant dropdown
	pidDD += "<select id='PID' name='PID' onchange='javascript:wsEmissionData(0);'>";
	pidDD += "<option value='11101' name='Particulate Matter' selected>Particulate Matter</option>";
	pidDD += "<option value='42101' name='Carbon Monoxide'>Carbon Monoxide</option>";
	pidDD += "<option value='42401' name='Sulfur Dioxide'>Sulfur Dioxide</option>";
	pidDD += "<option value='42603' name='Oxides of Nitrogen'>Oxides of Nitrogen</option>";
	pidDD += "<option value='43101' name='Total Organic Gas'>Total Organic Gas</option>";
	pidDD += "</select>";

	var chartDD = "Chart View: "; //chartview dropdown
	chartDD += "<select id='VID' name='VID' onchange='javascript:onChartView(this);'>";
	chartDD += "<option value='1' selected>By Pollutant</option>";
	chartDD += "<option value='2'>By Source</option>";
	chartDD += "<option value='3'>By Category</option>";
	chartDD += "</select>";

	var paneCenter = new DHTMLSuite.paneSplitterPaneModel({ position: "center", id: "centerPane", size: 800, minSize: 400, maxSize: 800 });
	paneCenter.addContent(new DHTMLSuite.paneSplitterContentModel({ id: 'mapPane', htmlElementId: 'map', title: pidDD, tabTitle: 'Map View', closable: false }));
	paneCenter.addContent(new DHTMLSuite.paneSplitterContentModel({ id: 'chartPane', htmlElementId: 'chart', title: chartDD, tabTitle: 'Chart View', closable: false }));
	paneModel.addPane(paneCenter);

	/* STEP 2 */
	/* Create the pane object */
	paneSplitter = new DHTMLSuite.paneSplitter();
	paneSplitter.addModel(paneModel); // Add the data model to the pane splitter
	paneSplitter.init(); // Add the data model to the pane splitter

	var menuModel = new DHTMLSuite.menuModel();
	//DHTMLSuite.commonObj.setCssCacheStatus(false);

	menuModel.addItem(1, 'Air Quality', '', 'http://gate1.baaqmd.gov/aq', false, '', '');
	menuModel.addSeparator();
	menuModel.addItem(2, 'Meteorology', '', 'http://gate1.baaqmd.gov/met', false);
	menuModel.addSeparator();
	menuModel.addItem(3, 'Emission Inventory', '', '', false);
	menuModel.addSeparator();
	menuModel.addItem(40, 'Help', '', '', false);
	menuModel.setSubMenuWidth(40, 130);
	menuModel.addItem(41, 'About', 'images/baaqmd.png', '', 40);

	menuModel.init();

	var menuBar = new DHTMLSuite.menuBar();
	menuBar.addMenuItems(menuModel);
	menuBar.setTarget('menuBarContainer');
	menuBar.init();

	menuBar.setMenuItemState(3, 'disabled');

	var mapTree = new DHTMLSuite.JSDragDropTree();
	mapTree.setTreeId('mapTree');
	mapTree.setFolderImage("gmap.gif");
	mapTree.setMaximumDepth(5);
	mapTree.setMessageMaximumDepthReached('Maximum depth reached'); // If you want to show a message when maximum depth is reached, i.e. on drop.
	mapTree.init();
	//mapTree.expandAll();

	var earthTree = new DHTMLSuite.JSDragDropTree();
	earthTree.setTreeId('earthTree');
	earthTree.setFolderImage("gearth.gif");
	earthTree.setMaximumDepth(3);
	earthTree.setMessageMaximumDepthReached('Maximum depth reached'); // If you want to show a message when maximum depth is reached, i.e. on drop.
	earthTree.init();
	earthTree.expandAll();

}

var Xmin = -122.994727;
var Xmax = -121.03120459;
var Ymin = 36.93394248;
var Ymax = 38.978199;
var x0 = 37.783501;
var y0 = 122.4204;

var gmarkers = [];
var gTop10 = [];
var htmls = [];
var s = 0;
// An array of sidebars
var sidebar_html = "";

//var pointMap;
var bounds = new GLatLngBounds();
var geocoder;
var barIcon = new Array();
var barSizeX = new Array(14, 19, 21, 28, 32, 36, 41, 41, 47, 53);
var barSizeY = new Array(26, 36, 51, 61, 77, 87, 99, 112, 126, 142);
for (var i = 0; i < 10; i++) {
	barIcon[i] = new GIcon();
	if (i > 8) barIcon[i].image = "images/Green_cyl_" + (i + 1) + ".png";
	else barIcon[i].image = "images/Green_cyl_0" + (i + 1) + ".png";
	barIcon[i].iconAnchor = new GPoint(barSizeX[i] / 2, barSizeY[i]);
	barIcon[i].infoWindowAnchor = barIcon[i].iconAnchor;
}
var topIcon = new Array();
for (var i = 0; i < 10; i++) {
	topIcon[i] = new GIcon();
	topIcon[i].image = "images/marker" + (i + 1) + ".png";
	topIcon[i].shadow = "http://www.google.com/mapfiles/shadow50.png";
	topIcon[i].iconAnchor = new GPoint(9, 34);
	topIcon[i].infoWindowAnchor = new GPoint(9, 34);
}

var siteIcon = new GIcon();
siteIcon.image = "images/mm_20_purple.png";
siteIcon.shadow = "images/mm_20_shadow.png";
//siteIcon.image = "http://maps.google.com/mapfiles/kml/pal2/icon21.png";
//siteIcon.shadow = "http://maps.google.com/mapfiles/kml/pal2/icon29.png";
siteIcon.iconSize = new GSize(12, 20);
siteIcon.shadowSize = new GSize(22, 20);
siteIcon.iconAnchor = new GPoint(6, 20);
siteIcon.infoWindowAnchor = new GPoint(5, 1);


var copyCollection = new GCopyrightCollection('baaqmd');
var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(36.5, -123.0), new GLatLng(39.0, -121.0)), 0, "©2006 baaqmd.gov");
copyCollection.addCopyright(copyright);
//var areaMap = [new GTileLayer(copyCollection,0,17)];

function load() {
	dhtml_init();
	//showHeaderMap(x0+",-"+y0);
	showHeaderMap("Berkeley,CA");
	if (GBrowserIsCompatible()) {
		//copyright();
		var divMap = document.getElementById('map');
		map = new GMap2(divMap, { size: new GSize(800, 500), draggableCursor: "move", draggingCursor: "crosshair" });
		/*
		map.addControl(new GLargeMapControl());
		map.addControl(new GScaleControl());
		map.addControl(new GOverviewMapControl());
	  
		map.addMapType(G_SATELLITE_3D_MAP);
		map.addControl(new GHierarchicalMapTypeControl());
		map.addControl(new GMapTypeControl(), new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(50, 5)));
		
		// Uncomment the following line to start the map with 3D enabled.
		// map.setMapType(G_SATELLITE_3D_MAP);
	  
		// Obtain a pointer to the Google Earth instance attached to
		// your map.
		map.getEarthInstance(getEarthInstanceCB);
		*/
		map.setUIToDefault();

		var T03KML = new GGeoXml("http://gate1.baaqmd.gov/emissions/xml/T03_county.kml");
		setZoom();		
		wsEmissionData(0, "");
		//map.addOverlay(T03KML);

		var areaMap = new GTileLayer(new GCopyrightCollection(), 0, 17);
		areaMap.getTileUrl = function(a, b) {
			b = this.maxResolution() - b;
			return "http://maps.google.com/mapsdt?id=http://gate1.baaqmd.gov/emissions/xml/T03_county.kml&x=" + a.x + "&y=" + a.y + "&zoom=" + b;
		}
		//areaMap.getOpacity = function() {return 0.5;}
		map.addOverlay(new GTileLayerOverlay(areaMap));

		map.enableDoubleClickZoom();
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		new GKeyboardHandler(map);
	}
}

var ge;
function getEarthInstanceCB(object) {
	ge = object;
	// You can now manipulate ge using the full Google Earth API.
}

function reset() {
	gmarkers = [];
	gTop10 = [];
	htmls = [];
	s = 0;
	bounds = new GLatLngBounds();
	sidebar_html = '';
	map.clearOverlays();
}

function setZoom() {
	//map.setCenter(new GLatLng(37.783501, -122.42040), 7, G_SATELLITE_MAP);

	var point1 = new GLatLng(Ymin, Xmin);
	var point2 = new GLatLng(Ymax, Xmax);
	var bounds = new GLatLngBounds(point1, point2);
	map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	GEvent.addListener(map, 'zoomend', function(oldLevel, newLevel) {
		//gmapOverlap();
	});
	GEvent.addListener(map, 'moveend', function() {
		//gmapOverlap();
	});
}

function zoomToBounds(b) {
	var center = b.getCenter();
	map.setCenter(center, map.getBoundsZoomLevel(b)-1);
	//gmapOverlap();
}

function gmapOverlap() {
	//if (pointMap !=null) map.removeOverlay(pointMap);
	var s = map.getSize();
	var w = s.width;
	var h = s.height;
	var z = map.getZoom();
	var b = map.getBounds();
	var c = b.getCenter();
	var southWest = b.getSouthWest();
	var northEast = b.getNorthEast();
	var lngDelta = (northEast.lng() - southWest.lng());
	var latDelta = (northEast.lat() - southWest.lat());
	var latS = southWest.lat();
	var lngW = southWest.lng();
	var latN = northEast.lat();
	var lngE = northEast.lng();
	var url = "http://gate1.baaqmd.gov/emissions/mapView.aspx?pid=" + getPID().value + "&w=" + w + "&h=" + h + "&latS=" + latS + "&lngW=" + lngW + "&latN=" + latN + "&lngE=" + lngE;
	//GLog.write(url);
	//pointMap = new EInsert(c,url,s,z,1);
	//map.addOverlay(pointMap);
}

function getPID() {
	try {
		var pollutant = document.getElementById("PID");
		var i = pollutant.selectedIndex;
		var pid = new Object();
		pid.id = pollutant.options[i].value;
		pid.name = pollutant.options[i].text;
		_pid = pid;
		return pid;
	} catch (err) {
		return _pid;
	}
}
function setPID(p) {
	try {
		var pollutant = document.getElementById("PID");
		//pollutant.text=p.name;  
		pollutant.selectedIndex = p.id;
	} catch (err) {
	}
}
function onChartView(cv) {
	var chart1 = document.getElementById("chart1")
	var src = chart1.src;
	var n = src.indexOf("&source=");
	if (n > 0) src = src.substring(0, n);
	var i = parseInt(cv.options[cv.selectedIndex].value);
	switch (i) {
		case 1: //pullants
			{
				chart1.src = src;
				break;
			}
		case 2: //source
			{
				chart1.src = src + "&source=Source";
				break;
			}
		case 3: //category
			{
				chart1.src = src + "&source=Category";
				break;
			}
		default:
	}
}
function wsEmissionData(view, name) {
	reset();
	if (name == null || name == "" || name == " " || name == "Bay Area") {
		name = "";
		view = 0;
	} else if (name.indexOf("-") == 0) {
		name = name.substring(1);
		view--;
	}

	showHeaderMap(name.replace(" ", "+") + ",CA");
	var pid = getPID();
	var s = map.getSize();
	var w = s.width;
	var h = s.height;
	var url = "ws/wsEmission.asmx/getPointData";
	var param = "?pid=" + pid.id + "&w=" + w + "&h=" + h;
	var chart1 = document.getElementById("chart1")
	//var chart2 = document.getElementById("chart2")
	//var chart3 = document.getElementById("chart3")  
	switch (view) {
		case 0: //bayarea
			param += "&county=" + name + "&city=&zip=0";
			break;
		case 1: //county
			param += "&county=" + name + "&city=&zip=0";
			break;
		case 2: //city
			param += "&county=&city=" + name + "&zip=0";
			break;
		case 3: //zip
			param += "&county=&city=&zip=" + name;
			break;
	}
	url += param;
	chart1.src = "EmissionView.aspx" + param;
	//chart2.src="EmissionView.aspx"+param+"&source=Source";
	//chart3.src="EmissionView.aspx"+param+"&source=Category";
	//GLog.write(url);
	GDownloadUrl(url, function(data, responseCode) {
		var xml = GXml.parse(data);
		view++;
		switch (view) {
			case 1: //bayarea
				parseCounty(pid, xml, view, "Bay Area");
				break;
			case 2: //county
				parseCity(pid, xml, view, name);
				break;
			case 3: //city
				parseZip(pid, xml, view, name);
				break;
			case 4: //zip
				parseSite(pid, xml, view, name);
		}
		paneSplitter.showContent("mapPane");
		paneSplitter.setContentTitle("eastContent", pid.name);
		paneSplitter.setContentTabTitle("eastContent", pid.name);
		setPID(pid);
		zoomToBounds(bounds);
	});
}
function parseCounty(pid, xml, view, name) {
	sidebar_html = '<table id="sidetable"><thead><tr><td>County</td><td>Cities</td><td>Sites</td><td>Emission</td></tr></thead><tbody>';

	var counties = xml.documentElement.getElementsByTagName("siteData");
	for (var i = 0; i < counties.length; i++) {
		var pollutant = '<table border="1" rules="all"><thead><tr><td>Pollutant</td><td>Sites</td><td>Emitted</td></tr></thead><tbody>';
		var countyName = counties[i].getElementsByTagName("county")[0].childNodes[0].nodeValue;
		var cities = counties[i].getElementsByTagName("cities")[0].childNodes[0].nodeValue;
		var sites = counties[i].getElementsByTagName("sites")[0].childNodes[0].nodeValue;
		var ems = counties[i].getElementsByTagName("ems")[0].childNodes[0].nodeValue;
		//pollutant+="<tr><td align='right'>"+counties[i].getElementsByTagName("POLLUTANT_NAME")[0].childNodes[0].nodeValue+"</td><td align='right'>"+site+"</td><td align='right'>"+emit+"</td></tr>";
		var x = parseFloat(counties[i].getElementsByTagName("X0")[0].childNodes[0].nodeValue);
		var y = parseFloat(counties[i].getElementsByTagName("Y0")[0].childNodes[0].nodeValue);
		var point = new GLatLng(y, x);
		var info = '<table class="datatable" border="1" rules="all"><thead><tr><td>Cities</td><td>Sites</td><td>' + pid.name + '</td></tr></thead>';
		info += '<tbody><tr><td align="right">' + cities + '</td><td align="right">' + sites + '</td><td align="right">' + ems + '</td></tr></tbody></table>';

		// ======= Add the sidebar entry to one of the sidebars =====
		side_html = '<tr><td><a href="javascript:sidclick(' + s + ');">' + countyName + '</a></td>';
		side_html += '<td>' + cities + '</td><td>' + sites + '</td><td>' + ems + '</td></tr>';
		sidebar_html += side_html;
		pollutant += "</tbody></table>";
		// ==========================================================
		var bar = Math.round(parseInt(ems) / 200);
		var infoTabs = [
      new GInfoWindowTab(countyName, info),
      new GInfoWindowTab("Pollutant", pollutant)
      ];
		var text = countyName + ' County ' + pid.name + ': ' + ems;
		createSite(text, point, infoTabs, bar, view);
	}
	sidebar_html += '</tbody></table>';
	document.getElementById("sidebar").innerHTML = '<div>' + sidebar_html + '</div>';
	sortTable("sidetable", Array('S', 'N', 'N', 'N'), 0);
	//parseTop10(xml,name);
}
function parseCity(pid, xml, view, name) {
	name += " County";
	sidebar_html = '<table id="sidetable" rules="all"><thead><tr><td>Cities</td><td>Sites</td><td>Emitted</td></tr></thead><tbody>';
	var cities = xml.documentElement.getElementsByTagName("siteData");
	for (var i = 0; i < cities.length; i++) {
		var pollutant = '<table border="1" rules="all"><thead><tr><td>Pollutant</td><td>Sites</td><td>Emitted</td></tr></thead><tbody>';
		var cityname = cities[i].getElementsByTagName("city")[0].childNodes[0].nodeValue;
		var sites = cities[i].getElementsByTagName("sites")[0].childNodes[0].nodeValue;
		var emitted = cities[i].getElementsByTagName("ems")[0].childNodes[0].nodeValue;
		var x = cities[i].getElementsByTagName("X0")[0].childNodes[0].nodeValue;
		var y = cities[i].getElementsByTagName("Y0")[0].childNodes[0].nodeValue;
		var point = new GLatLng(parseFloat(y), parseFloat(x));
		var info = '<table class="datatable" border="1" rules="all"><thead><tr><td>Sites</td><td>Emitted</td></tr></thead>';
		info += '<tbody><tr><td align="right">' + sites + '</td><td align="right">' + emitted + '</td></tr></tbody></table>';
		// ======= Add the sidebar entry to one of the sidebars =====
		side_html = '<tr><td><a href="javascript:sidclick(' + s + ')">' + cityname + '</a></td>';
		side_html += '<td align="right">' + sites + '</td><td align="right">' + emitted + '</td></tr>';
		sidebar_html += side_html;
		// ==========================================================		      
		var bar = Math.round(parseInt(emitted) / 20);
		var infoTabs = [
      new GInfoWindowTab(cityname, info),
      new GInfoWindowTab("Pollutant", pollutant)
      ];
		createSite(cityname + ' City', point, infoTabs, bar, view);
	}
	sidebar_html += '</tbody></table>';
	document.getElementById("sidebar").innerHTML = '<div>' + sidebar_html + '</div>';
	//initTableWidget('sidetable','100%',400,Array('S','N','N'));
	sortTable("sidetable", Array('S', 'N', 'N'), 0);
	//parseTop10(xml,name);
}
function parseZip(pid, xml, view, name) {
	var divZip = 'Zip: <select id="listZip" name="listZip" onchange="wsEmissionData(3,this.options[this.selectedIndex].value);"><option value="-' + name + '">All Zipcodes</option>';
	name += " City";
	sidebar_html = '<table id="sidetable" rules="all"><thead><tr><td>Zip Code</td><td>Sites</td><td>Emitted</td></tr></thead><tbody>';
	var zips = xml.documentElement.getElementsByTagName("siteData");
	for (var i = 0; i < zips.length; i++) {
		var pollutant = '<table border="1" rules="all"><thead><tr><td>Pollutant</td><td>Sites</td><td>Emitted</td></tr></thead><tbody>';
		var zip = zips[i].getElementsByTagName("zip")[0].childNodes[0].nodeValue;
		var sites = zips[i].getElementsByTagName("sites")[0].childNodes[0].nodeValue;
		var emitted = zips[i].getElementsByTagName("emitted")[0].childNodes[0].nodeValue;
		var x = zips[i].getElementsByTagName("X0")[0].childNodes[0].nodeValue;
		var y = zips[i].getElementsByTagName("Y0")[0].childNodes[0].nodeValue;
		var point = new GLatLng(parseFloat(y), parseFloat(x));
		var info = '<table class="datatable" border="1" rules="all"><tr><td>Sites</td><td>Emitted</td></tr></thead>';
		info += '</tbody><tr><td align="right">' + sites + '</td><td align="right">' + emitted + '</td></tr></tbody></table>';
		divZip += '<option value="' + zip + '">' + zip + '</option>';
		// ======= Add the sidebar entry to one of the sidebars =====
		side_html = '<tr><td><a href="javascript:sidclick(' + s + ')">' + zip + '</a></td>';
		side_html += '<td align="right">' + sites + '</td><td align="right">' + emitted + '</td></tr>';
		sidebar_html += side_html;
		// ==========================================================
		var bar = Math.round(parseInt(emitted) / 200);
		var infoTabs = [
      new GInfoWindowTab(zip, info),
      new GInfoWindowTab("Pollutant", pollutant)
      ];
		createSite(+'Zipcode: ' + zip, point, infoTabs, bar, view);
	}
	sidebar_html += '</tbody></table>';
	document.getElementById("sidebar").innerHTML = '<div>' + sidebar_html + '</div>';
	//document.getElementById("divZip").innerHTML = divZip+'</select>'; 
	//initTableWidget('sidetable','100%',400,Array('S','N','N'));
	sortTable("sidetable", Array('S', 'N', 'N'), 0);

	//parseTop10(xml,name);
}
function parseSite(pid, xml, view, name) {
	name += " Zipcode";
	sidebar_html = '<table id="sidetable" rules="all">';
	sidebar_html += '<thead><tr><td>Name</td><td>Address</td><td>Emitted</td></tr></thead><tbody>';
	var sites = xml.documentElement.getElementsByTagName("siteData");
	for (var i = 0; i < sites.length; i++) {
		var pollutant = '<table border="1" rules="all"><thead><tr><td>Pollutant</td><td>Sites</td><td>Emitted</td></tr></thead><tbody>';
		var x = sites[i].getElementsByTagName("X")[0].childNodes[0].nodeValue;
		var y = sites[i].getElementsByTagName("Y")[0].childNodes[0].nodeValue;
		var streetname = sites[i].getElementsByTagName("street")[0].childNodes[0].nodeValue;
		var cityname = sites[i].getElementsByTagName("city")[0].childNodes[0].nodeValue;
		var countyname = sites[i].getElementsByTagName("county")[0].childNodes[0].nodeValue;
		var sitename = sites[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
		//var pollutant = sites[i].getElementsByTagName("POLLUTANT_NAME")[0].childNodes[0].nodeValue;
		var emitted = sites[i].getElementsByTagName("emitted")[0].childNodes[0].nodeValue;
		var point = new GLatLng(parseFloat(y), parseFloat(x));
		//var info = streetname;	//+", "+cityname+", "+countyname+" County";
		var info = '<table border="1" rules="all"><tr><td>Name</td><td>Address</td><td>Emitted</td></tr>';
		info += '<tr><td>' + sitename + '</td><td>' + streetname + '</td><td>' + emitted + '</td></tr></table>';

		// ======= Add the sidebar entry to one of the sidebars =====
		side_html = '<tr><td><a href="javascript:sidclick(' + s + ')">' + sitename + '</a></td><td>' + streetname + '</td><td>' + emitted + '</td></tr>';
		sidebar_html += side_html;
		var infoTabs = [
      new GInfoWindowTab(streetname, info),
      new GInfoWindowTab("Pollutant", pollutant)
      ];
		var site = createSite('Address: ' + streetname, point, infoTabs, 0, view);
	}
	sidebar_html += '</tbody></table>';
	document.getElementById("sidebar").innerHTML = '<div>' + sidebar_html + '</div>';
	//initTableWidget('sidetable','100%',400,Array('S','N'));

	parseTop10(xml, name);
}
function parseTop10(xml, region) {
	var top10s_html = '<table id="topS" border="1" rules="all">';
	top10s_html += '<thead><tr><td>Plant Name</td><td>Emitted</td></tr></thead><tbody>';
	var pollutant = '<table border="1" rules="all"><thead><tr><td>Pollutant</td><td>Sites</td><td>Emitted</td></tr></thead><tbody></tbody></table>';
	var tops = xml.documentElement.getElementsByTagName("Top10s");
	for (var i = 0; i < tops.length; i++) {
		var plantName = tops[i].getElementsByTagName("plant")[0].childNodes[0].nodeValue;
		var emitted = parseInt(tops[i].getElementsByTagName("emitted")[0].childNodes[0].nodeValue);
		var x = parseFloat(tops[i].getElementsByTagName("X")[0].childNodes[0].nodeValue);
		var y = parseFloat(tops[i].getElementsByTagName("Y")[0].childNodes[0].nodeValue);
		var point = new GLatLng(y, x);
		var info = '<table class="datatable" border="1" rules="all"><thead><tr><td>Plant Name</td><td>Emitted</td></tr></thead>';
		info += '<tbody class="scrollingContent"><tr><td>' + plantName + '</td><td align="right">' + emitted + '</td></tr></tbody></table>';

		// ======= Add the sidebar entry to one of the sidebars =====
		var top10_html = '<tr><td><a href="javascript:sidclick(' + s + ')">' + plantName + '</a></td><td align="right">' + emitted + '</td></tr>';
		top10s_html += top10_html;
		var infoTabs = [
      new GInfoWindowTab("Top " + (i + 1), info),
      new GInfoWindowTab("Pollutant", pollutant)
      ];
		var site = createSite(plantName, point, infoTabs, i, -1);
	}
	top10s_html += '</tbody></table>';
	var top10p = document.getElementById("top10P")
	top10p.innerHTML = "<div>" + top10s_html + "</div>";
	//sortTable("sidetable","Array('S','N','N','N')",0);  
	//document.getElementById("profile").innerText=region+":";
}
function parsePollutants(xml, region) {
	var top10s_html = '<table id="topP" border="1" rules="all"><thead><tr><td>Pollutant Name</td><td>Emitted</td></tr></thead><tbody class="scrollingContent">';
	var pollutant = '<table border="1" rules="all"><thead><tr><td>Pollutant</td><td>Sites</td><td>Emitted</td></tr></thead><tbody></tbody></table>';
	var tops = xml.documentElement.getElementsByTagName("pollutants");
	for (var i = 0; i < tops.length; i++) {
		var pollutantName = tops[i].getElementsByTagName("pollutant")[0].childNodes[0].nodeValue;
		var emitted = parseInt(tops[i].getElementsByTagName("emitted")[0].childNodes[0].nodeValue);
		var top10_html = '<tr><td>' + pollutantName + '</a></td><td align="right">' + emitted + '</td></tr>';
		top10s_html += top10_html;
	}
	top10s_html += '</tbody></table>';
	var top10 = document.getElementById("pollutants")
	top10.innerHTML = "<div>" + top10s_html + "</div>";
}
function createSite(name, point, info, bar, view) {
	var site = new createMarker(name, point, info, bar, view);
	map.addOverlay(site);
}

// A function to create the marker and set up the event window
function createMarker(name, point, info, bar, view) {
	bounds.extend(point);
	var cIcon;
	if (view == -1) {
		cIcon = topIcon[bar];
	} else if (view < 4) {
		if (bar > 9) bar = 9;
		cIcon = barIcon[bar];
	} else {
		cIcon = siteIcon;
	}
	var marker = new GMarker(point, { icon: cIcon, title: name });
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowTabsHtml(info);
	});
	/*
	GEvent.addListener(marker, "dblclick", function() {
	//map.showMapBlowup(point);
	map.setCenter(point,map.getZoom()+1);
	if (view < 4) wsEmissionData(view,name);			    
	});				
	*/
	gmarkers[s] = marker;
	htmls[s] = info;
	s++;
	return marker;
}

function sidclick(i) {
	gmarkers[i].openInfoWindowTabsHtml(htmls[i]);
}
function sortTable(id, cols, n) {
	var tableWidgetObj = new DHTMLSuite.tableWidget();
	tableWidgetObj.setTableId(id);
	tableWidgetObj.setTableWidth('95%');
	tableWidgetObj.setTableHeight(250);
	tableWidgetObj.setColumnSort(cols);
	tableWidgetObj.init();
	tableWidgetObj.sortTableByColumn(n); // Initially sort the table by the first column
}

function showAddress(address) {
	if (geocoder) {
		geocoder.getLatLng(
	  address,
	  function(point) {
	  	if (!point) {
	  		alert(address + " not found");
	  	} else {
	  		map.setCenter(point, 10);
	  		var marker = new GMarker(point);
	  		map.addOverlay(marker);
	  		marker.openInfoWindowHtml(address);
	  	}
	  }
	  );
	}
}

function showHeaderMap(address) {
if (geocoder) {
	geocoder.getLatLng(
	  address,
	  function(point) {
	  	if (!point) {
	  		alert(address + " not found");
	  	} else {
	  		var sitemapurl = "http://maps.google.com/maps/api/staticmap?"
	  		sitemapurl += "?center=" + latlng; //+ "&" + marker
	  		sitemapurl += "&size=640x100&zoom=14&sensor=false"; //&key=" + mapkey
	  		var banner = document.getElementById("staticMapURL");
	  		banner.setAttribute("src", sitemapurl);
	  		//document.getElementById("staticMapURL").innerHTML = baseUrl + params.join("&") + "&sensor=TRUE_OR_FALSE&key=" + mapkey;
	  	}
	  }
	  );
	}
}
