	
	var map;
    var geocoder;
	var gl_MarkerMgr;
	var allPoints = Array();
	
	function mapShowPrograms(district)
	{
		var showDist = false;
		var button = document.getElementById("anchor_" + district).className;
		
		if(button == 'accordion-plus') {
			
			for(var x = 1; x < 20; x++)
			{
				if(document.getElementById("districtProg_" + x)) {
					document.getElementById("districtProg_" + x).style.display = 'none';
					document.getElementById("anchor_" + x).className = 'accordion-plus';
				}
			}
			
			document.getElementById("anchor_" + district).className = 'accordion-minus';
			document.getElementById("districtProg_" + district).innerHTML = '<div style="width: 100%; height: 45px; text-align: center; margin-top: 15px;"><img src="img/waiting.gif" /><span style="float: left; width: 100%; margin-top: 5px;">Searching...</span></div>';
			document.getElementById("districtProg_" + district).style.display = 'block';
			
			showDist = true;
		} else {
			document.getElementById("anchor_" + district).className = 'accordion-plus';
			document.getElementById("districtProg_" + district).style.display = 'none';
			map.clearOverlays();
			map.setCenter(new GLatLng(37.779530, -122.416750), 13);
		}
		
		if(showDist)
		{
			var params 	= "method=99" + "&district=" + district;						
			var xReq 	= getHTTPObject();
			
			xReq.open("POST", url_admin, true);
			xReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xReq.setRequestHeader("Content-length", params.length);
			xReq.setRequestHeader("Connection", "close");
			
			xReq.onreadystatechange = function()
			{
				if (xReq.readyState == 4)
				{
					if(xReq.status == 200)
					{
						var prgContent 	= '';
						var prgList 	= '';
						
						var results 	= xReq.responseText.split("~");
						var prgHeadr 	= results[0].split("^");
						var prgVendr 	= results[1].split("^");
						var prgNames 	= results[2].split("^");
						var prgAddrs 	= results[3].split("^");
						var prgCity 	= results[4].split("^");
						var prgInfo  	= results[5].split("^");
						var prgTotal 	= results[6].split("^");
						
						map.clearOverlays();
						map.setCenter(new GLatLng(37.779530, -122.416750), 13);
						
						if(prgTotal > 0) {
							var overflow = '';
							if(prgTotal > 15) {
								overflow = 'style="height: 220px; overflow-y: scroll; overflow-x: hidden;"';
							}
							
							gl_MarkerMgr = new GMarkerManager(map);
							
							prgList = setMarkers(map, prgHeadr, prgVendr, prgNames, prgAddrs, prgCity, prgInfo, district);
							prgContent = '<ul id="ulDist_' + district + '" ' +overflow+'>' +prgList+ '</ul>';
							
						} else {
							prgContent = '<div style="width: 100%; height: 45px; text-align: center; margin-top: 15px; font-size: 18px; font-weight; bold;">No Records Found</div>';
						}
						
						document.getElementById("districtProg_" + district).innerHTML = prgContent;
						document.getElementById("districtProg_" + district).style.display = 'block';
						
						//- Populate addresses
						for(var x = 0; x < prgTotal; x++)
						{
							var thisElement = "districtProg_" + district + '_' + x;
							if(document.getElementById(thisElement)) {
								$('#'+thisElement).delay(500);
								$('#'+thisElement).click();
							}
						}
					}
				}
			}
			xReq.send(params);
		}
		return;
	}
	
	
	function mapShowEmergencyDistricts()
	{
		var params 	= "method=95";						
		var xReq 	= getHTTPObject();
		
		xReq.open("POST", url_admin, true);
		xReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xReq.setRequestHeader("Content-length", params.length);
		xReq.setRequestHeader("Connection", "close");
		
		document.getElementById('updateSection').innerHTML = '<div style="width: 100%; height: 115px; text-align: center; margin-top: 115px;"><img src="img/waiting.gif" /><span style="float: left; width: 100%; margin-top: 5px;">Loading...</span></div>';		
		
		xReq.onreadystatechange = function()
		{
			if (xReq.readyState == 4)
			{
				if(xReq.status == 200)
				{
					var content = '';
					var date = new Date();
					
					content += '<div id="cbhsEmergencyMap" class="cbhsEmergencyMapClass">';
					content += '	<div id="MapBuilderSideBar" style="float:left; margin-right: 10px;">';
					
					content += '		<div class="art-Block-body" style="width: 350px; height: 420px;">';
					content += '			<div class="art-BlockHeader">';
					content += '				<div class="l"></div>';
					content += '				<div class="r"></div>';
					content += '				<div class="art-header-tag-icon">';
					content += '					<div id="updateSectionTitle" class="t noprint">Community Programs by District</div>';
					content += '				</div>';
					content += '			</div>';
					content += '			<div class="art-BlockContent" >';
					content += '				<div class="art-BlockContent-tl"></div>';
					content += '				<div class="art-BlockContent-tr"></div>';
					content += '				<div class="art-BlockContent-bl"></div>';
					content += '				<div class="art-BlockContent-br"></div>';
					content += '				<div class="art-BlockContent-tc"></div>';
					content += '				<div class="art-BlockContent-bc"></div>';
					content += '				<div class="art-BlockContent-cl"></div>';
					content += '				<div class="art-BlockContent-cr"></div>';
					content += '				<div class="art-BlockContent-cc"></div>';
					content += '				<div class="art-BlockContent-body">';
					content += '					<div id="updateSection" style="height: auto;">';
					content += '						<div id="emergencyDist"></div>';
					content += '					</div>';
					content += '				<div class="cleared"></div>';
					content += '			</div>';
					content += '		</div>';
					content += '		<div class="cleared"></div>';
					content += '	</div>';
					content += '</div>';
						
					content += '	<div id="MapHolder" style="float:left;">';
					content += '		<div id="MapBuilderMap" style="width: 790px; height: 600px; border-style: inset;"></div>';
							
					content += '		<div id="erdCopyright" style="margin-top: 5px; text-align: left; margin-bottom: 10px; font-size: 11px;">';
					content += '			&copy; 2010-' +date.getFullYear()+ ' San Francisco Department of Public Health - Public Health Emergency Preparedness &amp; Response Section (PHEPR)&nbsp;&nbsp;-&nbsp;&nbsp;All Rights Reserved.<br />';
					content += '			<div id="prnButtonDiv"><input type="button" value="Print" onclick="ClickToPrint();" /></div>';
					content += '		</div>';
					content += '	</div>';
					content += '</div>';
					
					document.getElementById('updateSection').innerHTML = content;
					
					map = new GMap2(document.getElementById('MapBuilderMap'));
					map.addControl(new GLargeMapControl());
					map.setCenter(new GLatLng(37.779530, -122.416750), 13);
					geocoder = new GClientGeocoder();
					
					var results = xReq.responseText.split("~");
					var prgDistricts = results[0];
					
					document.getElementById('updateSectionTitle').innerHTML = "Emergency Response Districts - Community Programs";
					document.getElementById('emergencyDist').innerHTML = prgDistricts;
					
					document.location.href = '#cbhsToolbar';
				}
			}
		}
		xReq.send(params);
		
		return;
	}
	
	
	function setMarkers(map, prgHeadr, prgVendr, prgNames, prgAddrs, prgCity, prgInfo, district)
	{
		allPoints = Array();
		var progList = '';
		
		for(var i = 0; i < prgAddrs.length; i++)
		{
			if(prgNames[i])
			{
				var thisAddress = prgAddrs[i] +' '+prgCity[i];
				
				geocoder.getLatLng(thisAddress,
									function(point) 
									{
										if (!point) {
										} else {
											var cbhsImg = '<div class="formLogo" style="margin-left: 0px; margin-top: -10px; margin-right: 5px;"><img alt="" src="img/sfSeal.png" width="50" height="50" /></div>';
											var marker = createMarker(i, map, point, '<br />' +cbhsImg+ 'Click the (+) to see complete information about:<br /><br /><b>' + prgNames[i] + '</b>', prgNames[i], '<br />' + unescape(prgInfo[i]));
											map.addOverlay(marker);
										}
									});
				
				var letter = (i+1).toString();
				progList += '<li style="line-height: 1.5em; margin-left: 25px;"><a id="districtProg_' +district+ '_' + i + '" style="text-decoration: none;" href="javascript:void(0);" onclick="showAddress(\'' +thisAddress+ '\',' +i+', map, \'' +prgVendr[i]+ '\', \'' +escape(prgNames[i])+ '\', \'' +escape(prgInfo[i])+ '\');">' +'('+letter+') ' +prgNames[i]+ '</a></li>';
			}
		}
		return progList;
	}
	
	
	function createMarker(index, thisMap, point, myHtml, thisTitle, thisContent)
	{
		//var letter = String.fromCharCode("A".charCodeAt(0) + index);
		var letter = (index+1).toString();
		//var newIcon = MapIconMaker.createLabeledMarkerIcon({label: letter, width: 32, height: 32, primaryColor: "#ff00ff"});
		var newIcon = MapIconMaker.createLabeledMarkerIcon({label: letter, width: 32, height: 32, primaryColor: "#FFDF77"});
		var marker = new GMarker(point, {icon: newIcon});
		
		GEvent.addListener(marker, "click", function() 
		{
			//alert("click here");
			
			window.open(myHtml, '_blank');
			
			/*
			thisMap.openInfoWindowHtml(point, myHtml, {
			  maxTitle: thisTitle,
			  maxContent: thisContent
			});
			*/
		});
		
		return marker;
	}
	
	
	function showAddress(address, i, map, prgVendr, prg_name, prgInfo)
	{
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng(address,
							function(point) 
							{
								if (!point) {
								} else {
									var cbhsImg = '<div class="formLogo" style="margin-left: 0px; margin-top: -10px; margin-right: 5px;"><img alt="" src="img/sfSeal.png" width="50" height="50" /></div>';
									var marker = createMarker(i, map, point, '<br />' +cbhsImg+ 'Click the (+) to see complete information about:<br /><br /><b>' + unescape(prg_name) + '</b>', unescape(prg_name), '<br />' + unescape(prgInfo));
									map.addOverlay(marker);
									marker.openInfoWindowHtml(cbhsImg + '<b style="color: blue;">' +prgVendr+ '</b><br />' + '<b>' +unescape(prg_name)+ '</b><br />' + address + '<br /><hr style="float: left; width: 100%;" /><br />Click on icon to see details...');
								}
							});
							
		return;
	}
	
	
	function ClickToPrint() 
    {
		var w = 790;
		var h = 1600;
        w += 32;
        h += 96;
        var wleft = (screen.width - w) / 2;
        var wtop = (screen.height - h) / 2;
		
		var district = 1;
		
		for(var dist=1; dist < 20; dist++)
		{
			if(document.getElementById("districtProg_" + dist) && document.getElementById("districtProg_" + dist).style.display == "block") {
				district = dist;
				break;
			}
		}
		
        var disp_setting	= "toolbar=no, location=no, menubar=yes, resizable=1, scrollbars=yes, width=780," + 'width=' + w + ', height=' + h + ', ' + 'left=' + wleft + ', top=' + wtop;
		var sideMap 		= document.getElementById("districtProg_" + district).innerHTML;
		var sideMap2 		= document.getElementById("cbhsEmergencyMap").innerHTML;
		var currentMap 		= document.getElementById("MapHolder").innerHTML;
		
		var docprint=window.open("","ERDMap",disp_setting); 
		docprint.document.open();
		docprint.document.write('<html><head><title>Emergency Response District ' +district+'</title>');
		docprint.document.write('</head><body onLoad="window.print();">');
		docprint.document.write('<div style="display: block;">');
		docprint.document.write('</div>');
		docprint.document.write(currentMap);
		docprint.document.write('<div style="display: block;">');
		docprint.document.write(sideMap);
		docprint.document.write('</div>');
		docprint.document.write('</body>');
		
		docprint.document.write('<script>document.getElementById("prnButtonDiv").style.display="none";</script>');
		docprint.document.write('<script>document.getElementById("ulDist_' +district+'").style.height="auto";</script>');
		docprint.document.write('<script>document.getElementById("ulDist_' +district+'").style.overflowY="auto";</script>');
		
		docprint.document.write('</html>');
		docprint.document.close();
		docprint.focus();
		return;
   }
   
   
	//-----------------------------------------------------------------------//
	//- Get Coordinates
	//-----------------------------------------------------------------------//
	function getMapCoordinates(address)
	{
	   var thisCoord = Array();
	   var geocoder = new GClientGeocoder();
	   
	   geocoder.getLatLng(address,
							function(point) 
							{
								if (!point) {
								} else {
									thisCoord = point;
									alert(address);
									alert(point);
									alert(point.lat());
									alert(point.lng());
								}
							});
	   return thisCoord;
	}
	
	
	//-----------------------------------------------------------------------//
	//- Set Coordinates
	//-----------------------------------------------------------------------//
	function setMapCoordinates(thisDiv, address, pointInfo, pointTitle, pointContent)
	{
		var thisMap = new GMap2(document.getElementById(thisDiv));
		thisMap.addControl(new GLargeMapControl());
		
	   	var thisCoord = Array();
	   	var geocoder = new GClientGeocoder();
	   	
	   	geocoder.getLatLng(address,
		function(point) 
		{
			if (!point) {
			} else {
				thisMap.setCenter(new GLatLng(point.lat(), point.lng()), 13);
				thisCoord = point;
				
				var marker = createMarker(0, thisMap, point, pointInfo, pointTitle, pointContent);
				thisMap.addOverlay(marker);
			}
		});
		return thisCoord;
	}
	
	
	//-----------------------------------------------------------------------//
	//- Set Markers
	//-----------------------------------------------------------------------//
	function setMapMarkers(index, thisMap, address, pointInfo, pointTitle, pointContent)
	{
	   	var thisCoord = Array();
	   	var geocoder = new GClientGeocoder();
	   	
	   	geocoder.getLatLng(address,
		function(point) 
		{
			if (!point) {
			} else {
				thisMap.setCenter(new GLatLng(point.lat(), point.lng()), 11);
				thisCoord = point;
				
				var marker = createMarker(index, thisMap, point, pointInfo, pointTitle, pointContent);
				thisMap.addOverlay(marker);
			}
		});
		return thisCoord;
	}
	
	
	
	//-----------------------------------------------------------------------//
	//- Set Street View
	//-----------------------------------------------------------------------//
	function setStreetView(address)
	{
		var geocoder = new GClientGeocoder();
	   	
	   	geocoder.getLatLng(address,
		function(point) 
		{
			if (!point) {
				if(document.getElementById("streetViewDiv")) {
					document.getElementById("streetViewDiv").style.display = 'none';
				}
			} 
			else
			{
			   var thisLocation = new GLatLng(point.lat(),point.lng()); 
			   panoramaOptions = { latlng:thisLocation }; 
			   var thisLocationPano = new GStreetviewPanorama(document.getElementById("vaMerchantMap"), panoramaOptions);
			   
			   if(!thisLocationPano) {
			   } else {
				   GEvent.addListener(thisLocationPano, "error", vaHandleNoFlash);
			   }
			}
	   });
	   return;
	}
	
	
	function vaHandleNoFlash(errorCode)
	{
		if (errorCode == 603)
		{
			alert("Error: Flash doesn't appear to be supported by your browser");
			return;
		}
	}

