var gxslt = undefined;
var markersArray;
var markersInfo;
var lastPanelId = -1;
var url;
var map;
var xmlDocDistrict = undefined;
var loadType = "state";
var LeftMargin = 300;			
var RightMargin = 20;		
var TopMargin = 200;			
var BottomMargin = 10;		

// Create a base icon for all of our markers that specifies the shadow, icon
// dimensions, etc.
var baseIcon = new GIcon();
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

var vDistrict = "";
var vType = "";

function initDistrict(District)
{
	if (loadType == "state")
	{
		//alert("Please select a region first.");
		//var this_select = document.getElementById("ddDistrict");
		//this_select[0].selected = true;
		//return;
		if (vType == "")
		{
			alert("Now that you've chosen a district, please select a grade and subject.");
			this.vDistrict = District;
			return;
		}
	}

	if (loadType == "region")
	{
		if (vType == "")
		{
			alert("Now that you've chosen a district, please select a grade and subject.");
			this.vDistrict = District;
			return;
		}		
	}
	this.vDistrict = District;
	loadType = "schools";
	url = "CSAP/" + vDistrict + "_" + vType + ".xml";
	clearMap();
	loadDistricts();
}
function initType(Type)
{
	if (loadType == "state")
	{
		//alert("Please select a region first.");
		//var this_select = document.getElementById("subjectSelect");
		//this_select[0].selected = true;
		//return;
		if (vDistrict == "")
		{
			alert("Please select a district");
			this.vType = Type;
			return;
		}
		else
		{
			loadType = "region";
		}		
	}
	if (loadType == "region")
	{
		if (vDistrict == "")
		{
			alert("Please select a district");
			this.vType = Type;
			return;
		}		
	}
	this.vType = Type;
	url = "CSAP/" + vDistrict + "_" + vType + ".xml";
	clearMap();
	if (loadType != "schools")
	{
		loadDistricts();
		loadType = "schools";
	}
	reLoadSubjects();
}
function change_select(which, value)
{
	//loadType = "schools";
    var this_select = document.getElementById(which);
    var i;
    this_select[0].selected = true;
    for (i = 0; i < this_select.length; i++)
    {
        if ( this_select[i].value == value )
        {
            this_select[i].selected = true;
        }
    }

    if (vType == "")
    {
		//this_select = document.getElementById("subjectSelect");
		//this_select[1].selected = true;
		//this.vType = "3reading";
    }
    initDistrict(value);
}

function reSizeMap()
{
  var myWidth = 0, myHeight = 0;
	if (typeof( window.innerWidth ) == 'number' )
	{
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	}
	else if( document.documentElement &&
		( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
	{
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	}
	
	if (myWidth < 800)
	{
		alert("Your screen resolution is less than 1024 x 768.\nThis site is best viewed at 1024 x 768.");
	}
	var AvailWidth = myWidth - LeftMargin - RightMargin;
	var AvailHeight = myHeight - TopMargin - BottomMargin;
	
	var panelDiv = document.getElementById("panel");
	var mapDiv = document.getElementById("map");
	panelDiv.style.height = AvailHeight + "px";
	mapDiv.style.height = AvailHeight + "px";
	//mapDiv.style.width = AvailWidth + "px";
	
}
function onLoad()
{
	if (!GBrowserIsCompatible())
	{
		alert("Sorry, your browser is incompatible with Google Maps");
		return;
	}	
	reSizeMap();
	
	if (vDistrict != "" & vType != "")
	{
		url = "CSAP/" + vDistrict + "_" + vType + ".xml";
	}
	else
	{
		url = "CSAP/state.xml";
	}
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	//searchAroundControl = new iControl("Search Around");
	loadDistricts();
}

function reLoadSubjects()
{
	var panel = document.getElementById("panel");
	panel.innerHTML = "<center><b>Loading, please wait...</b></center>";
	var panelXsl = "sidepanel.xsl";      

	var request = GXmlHttp.create();
	request.open("GET", url, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4)
		{
			var xmlDoc = request.responseXML;
			var markers = xmlDoc.documentElement.getElementsByTagName("point");
			var overlay = xmlDoc.documentElement.getElementsByTagName("overlay");
			if (markers.length > 0) 
			{									
				markersArray = new Array(markers.length);
				markersInfo = new Array(markers.length);
				panel.innerHTML="";
				for (var i = 0; i < markers.length; i++)
				{
					try
					{
						if (markers[i].getAttribute("lat") != "")
						{
							markersInfo[i] = markers[i];
							var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
												parseFloat(markers[i].getAttribute("lng")));
							var marker = createMarker(markers[i].parentNode,"popup.xsl",point);
							markersArray[i] = marker;
							map.addOverlay(marker);
							panel.appendChild(createPanelItem(markers[i].parentNode, panelXsl));
						}
					}
				catch(E)
				{
				}
				}
				drawDistrictPolyLines();
				loadNearByDistricts();
			}
			else
			{
				var error = overlay[0].getElementsByTagName("error");
				if (error.length > 0)
				{
					map.setCenter(GLatLng, 13);
					panel.appendChild(createPanelItem(overlay[0], panelXsl));
				}
			}
		}
	}
	request.send(null);
}

function loadMap()
{
	// Using XML and Asynchronous RPC ("AJAX") with Maps
	// Center the map
	var panel = document.getElementById("panel");
	panel.innerHTML = "<center><b>Loading, please wait...</b></center>";
	var panelXsl = "sidepanel.xsl";      

	// Download the data in data.xml and load it on the map. The format we
	// expect is:
	// <markers>
	//   <marker lat="37.441" lng="-122.141"/>
	//   <marker lat="37.322" lng="-121.213"/>
	// </markers>
	var request = GXmlHttp.create();
	request.open("GET", url, true);
	
	request.onreadystatechange = function() {
		if (request.readyState == 4)
		{
			var xmlDoc = request.responseXML;
			var markers = xmlDoc.documentElement.getElementsByTagName("point");
			var center = xmlDocDistrict.documentElement.getElementsByTagName("center");
			var zoomLevel = xmlDocDistrict.documentElement.getElementsByTagName("zoomlevel");
			var overlay = xmlDoc.documentElement.getElementsByTagName("overlay");
		  map.setCenter(new GLatLng(parseFloat(center[0].getAttribute("lat")),parseFloat(center[0].getAttribute("lng"))), 17 - parseInt(zoomLevel[0].firstChild.nodeValue));
			
			if (markers.length > 0) 
			{
													
				markersArray = new Array(markers.length);
				markersInfo = new Array(markers.length);
				
				panel.innerHTML="";
				if (loadType == "schools")
				{
					for (var i = 0; i < markers.length; i++)
					{
						try
						{
						markersInfo[i] = markers[i];
						var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
											parseFloat(markers[i].getAttribute("lng")));
						var marker = createMarker(markers[i].parentNode,"popup.xsl",point);
						markersArray[i] = marker;
						map.addOverlay(marker);
						panel.appendChild(createPanelItem(markers[i].parentNode, panelXsl));
					}
					catch(E)
					{
					}
					
					}
				}
				
				if (loadType == "region")
				{
					panel.innerHTML = getSidePanelHTML();	
				}
				else
				{
					drawDistrictPolyLines();
					if (loadType == "state")
					{
						panel.innerHTML = getSidePanelHTML();	
					}
				}
				
				loadNearByDistricts();
//				GEvent.addListener(map, "click", function(marker) {
//				  //alert(marker.parentNode);
//				  loadRegion("reg9");
//				  //var regName = xmlElem.getElementsByTagName("regionname");
//					//regName = regName[0].firstChild.nodeValue;
//				  }
//				);

			}
			else
			{
				var error = overlay[0].getElementsByTagName("error");
				if (error.length > 0)
				{
					map.setCenter(GLatLng, 13);
					panel.appendChild(createPanelItem(overlay[0], panelXsl));
				}
			}
		}
	}
	request.send(null);

}

function loadDistricts()
{
	if (loadType == "state")
	{
		var url2 = this.url;
	}
	else
	{
		var url2 = "CSAP/" + this.vDistrict + "_district.xml";
	}
	
//	GDownloadUrl(url2, function(data, responseCode)
//	{
//  	//alert(data);
//  	xmlDocDistrict = data;
//  	loadMap();
//	}
//	);

	var request2 = GXmlHttp.create();
	request2.open("GET", url2, true);
	request2.onreadystatechange = function()
	{
		if (request2.readyState == 4)
		{
			xmlDocDistrict = request2.responseXML;
			loadMap();
		}
	}
	request2.send(null);
}

function drawDistrictPolyLines()
{
	var polylines = xmlDocDistrict.documentElement.getElementsByTagName("polyline");
	
	for (var xy = 0; xy < polylines.length; xy++)
	{
		var polypoint = polylines[xy].getElementsByTagName("polypoint");
		var polypointArray = [];
		for (var x = 0; x < polypoint.length; x++)
		{
			var points_array = polypoint[x].firstChild.nodeValue.split(",");
			polypointArray.push(new GLatLng(parseFloat(points_array[1]),parseFloat(points_array[0])));
		}				
		var polyline = new GPolyline(polypointArray,"#9900CC", 3);
		map.addOverlay(polyline);				
	}
}

function loadNearByDistricts()
{
	var NearByLocation = xmlDocDistrict.documentElement.getElementsByTagName("NearByLocation");
	for (var xy = 0; xy < NearByLocation.length; xy++)
	{
		var markers = NearByLocation[xy].getElementsByTagName("point");
		var point = new GLatLng(parseFloat(markers[0].getAttribute("lat")),
							parseFloat(markers[0].getAttribute("lng")));
		var marker = createDistrictMarker(markers[0].parentNode,"popup_district.xsl",point);
		map.addOverlay(marker);		
	}
}

function switchMap()
{
	if (vDistrict != "" & vType != "")
	{
		url = "CSAP/" + vDistrict + "_" + vType + ".xml";
		gxslt = undefined;
		markersArray = null;
		markersInfo = null;
		lastPanelId = -1;
		var panel = document.getElementById("panel");
		panel.innerHTML = "<center><b>Loading, please wait...</b></center>";
	}
	else
	{
		url = "CSAP/den_10reading.xml";
		vDistrict = "den";
		vType = "10reading";
	}
	clearMarkers();
	loadMap();
}
  
function createMarker(xmlElem, xsltUri, point)
{
	// Create our "tiny" marker icon
	var iconimage = xmlElem.getElementsByTagName("icon");
	var icon = new GIcon(baseIcon);
	icon.image = iconimage[0].getAttribute("image");
	var name = getNodeValue(xmlElem,"schoolname");
	
	//var marker = new GMarker(point,icon);
	var marker = new GMarker(point,{icon: icon, title:name});
	
	//var marker = new GxMarker(point,icon,name);
	var html = getPopupHTML(xmlElem);
	var markerID = xmlElem.getAttribute("id");;
	
	GEvent.addListener(marker, "click", function() {
	marker.openInfoWindowHtml(html);
	hightlightSidePanelItem(markerID);
	});
	return marker;
}

function getNodeValue(xmlElem,node)
{
	var xmlNode = xmlElem.getElementsByTagName(node);
	var returnValue = "";
	try
	{
		returnValue = xmlNode[0].firstChild.nodeValue;
	}
	catch(e)
	{
	}	
	return returnValue;
}

function getPopupHTML(xmlElem)
{
		var html = "<div style=\"margin-top: 5px; width:270px;\">";
		html += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
		html += "<tr><td><table cellpadding=\"0\" cellspacing=\"0\"><tr>";
		html += "<td width=\"270\" class=\"School\">" + getNodeValue(xmlElem,"schoolname") + "</td></tr>";
		html += "<tr><td class=\"Text\">" + getNodeValue(xmlElem,"schooladd") + "</td></tr></table></td></tr>";
		html += "<td class=\"Text\"># of students in class: " + getNodeValue(xmlElem,"studentqty") + "</td></tr>";
		html += "<tr><td>";
		
		html += "<table cellpadding=\"0\" cellspacing=\"0\">";
		html += "<tr>";
		html += "<td width=\"110\"></td>";
		html += "<td width=\"40\" align=\"right\" class=\"School\">2007</td>";
		html += "<td width=\"40\" align=\"right\" class=\"School\">2006</td>";
		html += "<td width=\"40\" align=\"right\" class=\"School\">2005</td>";
		html += "<td width=\"40\" align=\"right\" class=\"School\">2004</td>";
		html += "</tr>";
		
		html += "<tr bgcolor=\"#CCCCCC\">";
		html += "<td width=\"110\"><span class=\"Text\">% Advanced</span></td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"adv06") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"adv05") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"adv04") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"adv03") + "</td>";
		html += "</tr>";
		
		html += "<tr>";
		html += "<td width=\"110\"><span class=\"Text\">% Proficient</span></td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"prof06") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"prof05") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"prof04") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"prof03") + "</td>";
		html += "</tr>";
		
		html += "<tr bgcolor=\"#CCCCCC\">";
		html += "<td width=\"110\"><span class=\"Text\">% Partially Proficient</span></td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"p_prof06") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"p_prof05") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"p_prof04") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"p_prof03") + "</td>";
		html += "</tr>";
		
		html += "<tr>";
		html += "<td width=\"110\"><span class=\"Text\">% Unsat</span></td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"unsat06") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"unsat05") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"unsat04") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"unsat03") + "</td>";
		html += "</tr>";

		html += "<tr bgcolor=\"#CCCCCC\">";
		html += "<td width=\"110\"><span class=\"Text\">% Not Scored</span></td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"noscore06") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"noscore05") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"noscore04") + "</td>";
		html += "<td width=\"40\" align=\"right\" class=\"Text\">" + getNodeValue(xmlElem,"noscore03") + "</td>";
		html += "</tr>";				
		html += "</table>";

		//html += "</td></tr>";
		//html += "<tr>";
		//var schoolurl = getNodeValue(xmlElem,"schoolurl")
		//html += "<td height=\"36\"><div align=\"center\">";
		//if (schoolurl != "")
		//	html += "<a href=\"http://" + schoolurl + "\" target=\"_blank\" class=\"Link\">School Website</a></div></td>";
		
		//html += "</tr>";
		html += "</table>";
		
		html += "</div>";
		
		return html;
}
function loadRegionClick(regName)
{
	loadRegion(regName);
}
function createDistrictMarker(xmlElem, xsltUri, point)
{
	// Create a base icon for all of our markers that specifies the shadow, icon
	// dimensions, etc.
	var baseIcon2 = new GIcon();
	baseIcon2.iconSize = new GSize(20, 34);
	baseIcon2.shadow = "";
	baseIcon2.shadowSize = new GSize(0, 0);
	baseIcon2.iconAnchor = new GPoint(9, 34);
	baseIcon2.infoWindowAnchor = new GPoint(9, 2);
	baseIcon2.infoShadowAnchor = new GPoint(18, 25);
	
	// Create our "tiny" marker icon
	var iconimage = xmlElem.getElementsByTagName("icon");
	var icon = new GIcon(baseIcon2);
	icon.image = iconimage[0].getAttribute("image");
	var name;
	if (loadType == "region")
	{
		name = getNodeValue(xmlElem,"districtdrop");
		//var marker = new GxMarker(point,icon,name);
		var marker = new GMarker(point, {icon: icon, title: name});
	}
	else if (loadType == "schools")
	{
		name = getNodeValue(xmlElem,"districtdrop");
		//var marker = new GxMarker(point,icon,name);
		var marker = new GMarker(point, {icon: icon, title: name});
	}
	else
	{
		//name = getNodeValue(xmlElem,"regionname");
		//var marker = new GxMarker(point,icon);
		var marker = new GMarker(point,icon);
	}

	//var marker = new GMarker(point,{icon: icon, title:"My House"});
	// Show this marker's index in the info window when it is clicked
	var html =  "<div style=\"width:230px;\">";
	html += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
	html += "<tr>";
	html += "<td align=\"center\" class=\"School\" colspan=\"2\">" + getNodeValue(xmlElem,"districtname") + "</td>";
	html += "</tr>";
	html += "<tr>";
	html += "<td align=\"right\" class=\"Text\">Selection box name:&nbsp;";
	html += "<td class=\"Text\">" + getNodeValue(xmlElem,"districtdrop") + "</td>";
	html += "</tr>";
	html += "<tr><td colspan=\"2\" align=\"center\" class=\"Link\"><a href=javaScript:change_select(\"ddDistrict\",\"" + getNodeValue(xmlElem,"districtselect") + "\");>Go to this District</a></td></tr>";
	html += "</table>";
	html += "</div>";
	//html += "<td align=\"right\" class=\"School\">Official District Name:&nbsp;";
	if (loadType == "state")
	{
		if (loadType == "region")
		{
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml(html);
			});    
		}
		else
		{
			var regName = xmlElem.getElementsByTagName("regionname");
			regName = regName[0].firstChild.nodeValue;
			GEvent.addListener(marker, "click", function() {
				//alert(regName);
				//loadRegion(regName);
				var html2 =  "<div style=\"width:230px;\">";
				html2 += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
				html2 += "<tr><td colspan=\"2\" align=\"center\" class=\"Link\"><a href=javaScript:loadRegion(\"" + regName + "\");>Go to this Region</a></td></tr>";
				html2 += "</table>";
				html2 += "</div>";
				marker.openInfoWindowHtml(html2);
			});
			//GEvent.addListener(marker, "click", loadRegionClick);    
		}
	}
	else
	{
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(html);
		});        
	}

	return marker;
}

function loadRegion(regName)
{
	this.url = "CSAP/regions/" + regName + ".xml";
	clearMap();
	loadDistricts();	
	loadType = "region";
}

function clearMap()
{
	gxslt = undefined;
	markersArray = null;
	markersInfo = null;
	lastPanelId = -1;
	clearMarkers();
}
function createPanelItem(data, panelXsl)
{
	var div = document.createElement('div');
	var idKey = data.getAttribute("id");
	var html = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"250\">";
	html += "<tr style=\"cursor:pointer\" onclick=\"showLocationInfo('" + idKey + "')\">";
	html += "<td style=\"vertical-align: top;\" width=\"25\" valign=\"top\">";
	html += "<font size=\"5\" style=\"color: #" + getNodeValue(data,"iconhex") + "\">&#x25CF;</font></td>";
	html += "<td align=\"left\" valign=\"top\">";
	html += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"225\" id=\"" + idKey + "\">";
	html += "<tr><td align=\"left\" class=\"School\">" + getNodeValue(data,"schoolname") + "</td></tr>";
	html += "<tr><td align=\"left\" class=\"Text\">" + getNodeValue(data,"schooladd") + "</td></tr>";
	//var schoolurl = getNodeValue(data,"schoolurl")//Test for no url
	//if (schoolurl != "")
	//html += "<tr><td align=\"left\" class=\"Link\"><a href=\"http://" + schoolurl + "\" target=\"_blank\">School Website</a></td></tr>";
	html += "</table>";
	html += "</td></tr>";
	html += "<tr><td align=\"left\" colspan=\"2\"><hr size=\"1\" width=\"100%\"></hr></td></tr>";
	html += "</table>";
	div.innerHTML = html;

	return div;
}

function getPanelGXslt(panelXsl)
{
	alert("me" + gxslt);
	if (gxslt == undefined)
	{
		var request = GXmlHttp.create();
		request.open("GET", panelXsl, false);
		request.send(null);
		gxslt = GXslt.create(request.responseXML);
	}

	return gxslt;
}        

function showLocationInfo(markerId)
{
  var newMarkerID = getLocationId(markerId);
  var location = this.markersInfo[newMarkerID];

  if (location != null)
  {
	var html = getPopupHTML(location.parentNode);
	markersArray[newMarkerID].openInfoWindowHtml(html);
	hightlightSidePanelItem(markerId);	
  }
}

function hightlightSidePanelItem(markerId)
{
	if (lastPanelId != -1) {
		var panelRow = document.getElementById(lastPanelId);
		panelRow.bgColor = "#FFFFFF";
	}
	var panelRow = document.getElementById(markerId);
	panelRow.bgColor = "#CCCCCC";
	lastPanelId = markerId;
}

function getLocationById(a)
{
	for(var b=0; b<this.markersInfo.length; b++)
	{
		if(this.markersInfo[b].parentNode.getAttribute("id") == a)
		{
			return this.markersInfo[b];
		}	
	}
	return null
}

function getLocationId(a)
{
	for(var b=0; b<this.markersInfo.length; b++)
	{
		if(this.markersInfo[b].parentNode.getAttribute("id") == a)
		{
			return b;
		}	
	}
	return null
}

function clearMarkers()
{
	map.clearOverlays();
}

function drawPolyLine(point)
{
	var points = new Array(polypointArray.length);
	var prefix;
	for (var x = 0; x < polypointArray.length; x++)
	{
		var points_array = polypointArray[x].firstChild.nodeValue.split(",");
		points[x] = new GLatLng(points_array[0],points_array[1]);
	}	
	
	var polyline = new GPolyline(points,"#ff0000", 3);
	
	map.addOverlay(polyline);
}

function wopen(url, w, h)
{
	// Fudge factors for window decoration space.
	// In my tests these work well on all platforms & browsers.
	w += 32;
	h += 96;
	var win = window.open(url,
	'popup', 
	'width=' + w + ', height=' + h + ', ' +
	'location=no, menubar=no, ' +
	'status=no, toolbar=no, scrollbars=no, resizable=no');
	win.resizeTo(w, h);
	win.focus();
}

function MM_openBrWindow(theURL,winName,features)
{ //v2.0
	features += ",top=50,left=10";
  window.open(theURL,winName,features);
}

function getSidePanelHTML()
{
	if (loadType == "state")
	{
		var html = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
		html += "<tr><td height=\"10\"></td></tr>";
		html += "<tr>";
		html += "<td class=\"Text\"> <img src=\"images/sidepanel1.gif\" align=\"center\"> ";
		html += "<br>";
		html += "</tr>";
		html += "</table>";
		return html;		
	}
	else if (loadType == "region")
	{
		var html = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
		html += "<tr><td height=\"10\"></td></tr>";
		html += "<tr>";
		html += "<td class=\"Text\"> <img src=\"images/sidepanel2.gif\" align=\"center\"> ";html += "<br>";
		html += "</tr>";
		html += "</table>";	
		return html;		
	}
}

function HideShowTree()
{
	var panelDiv = document.getElementById("panelTD");
	var mapDiv = document.getElementById("mapTD");
	
	if(panelDiv.style.width == "0px")	
	{				
		panelDiv.style.width = "25%";
		mapDiv.style.width = "75%";
		//EntMgr_Dynamic.btnHideShow.value="Hide Tree";
	}
	else
	{
		panelDiv.style.width = "0px";
		mapDiv.style.width = "100%";
		//EntMgr_Dynamic.btnHideShow.value="Show Tree";
	}
}