// JavaScript Document
    	var map;
    	var geocoder;
		var polyline= new Array();
		var marker = new Array();
		var markerClear = new Array();
		var myDragStart;
		var myMoveEnd;
		var myMoveStart;
		var progressBar;
		
	   var blueIcon = new GIcon(G_DEFAULT_ICON);
			blueIcon.shadow = "";
			blueIcon.printShadow ="";
			blueIcon.image = "images/blue.png";
			blueIcon.printImage = "images/blue.png";
			blueIcon.mozPrintImage = "images/blue.png";
			blueIcon.iconSize = new GSize(18, 16);
			blueIcon.iconAnchor = new GPoint(9, 8);
      	    blueIcon.infoWindowAnchor = new GPoint(10, 4);
		var redIcon = new GIcon(G_DEFAULT_ICON);
			redIcon.image = "images/red.png";
			redIcon.shadow = "";
			redIcon.printShadow ="";
			redIcon.printImage = "images/red.png";
			redIcon.mozPrintImage = "images/red.png";
			redIcon.iconSize = new GSize(18, 16);
			redIcon.iconAnchor = new GPoint(9, 8);
      	    redIcon.infoWindowAnchor = new GPoint(10, 4);
		var greenIcon = new GIcon(G_DEFAULT_ICON);
        	greenIcon.printShadow ="";
			greenIcon.shadow ="";
			greenIcon.printImage = "images/green.png";
			greenIcon.image = "images/green.png";
			greenIcon.iconSize = new GSize(18, 16);
			greenIcon.iconAnchor = new GPoint(9, 8);
      	    greenIcon.infoWindowAnchor = new GPoint(10, 9);
		var siteIcon = new GIcon(G_DEFAULT_ICON);
        	siteIcon.printShadow ="";
			siteIcon.shadow ="";
			siteIcon.printImage = "images/site.png";
			siteIcon.image = "images/site.png";
			siteIcon.iconSize = new GSize(18, 16);
			siteIcon.iconAnchor = new GPoint(9, 8);
      	    siteIcon.infoWindowAnchor = new GPoint(10, 9);
			
	// Set up our GMarkerOptions object
		markerBlue = { icon:blueIcon };
		markerRed = { icon:redIcon };
		markerGreen = { icon:greenIcon };
		markerSite = { icon:siteIcon };
		
function load() {
  if (GBrowserIsCompatible()) {
	// Make sure that SVG is on.
	if(document.implementation.hasFeature(
		"http://www.w3.org/TR/SVG11/feature#SVG","1.1")){ 
	  _mSvgEnabled = true;
	  _mSvgForced  = true;
	}

	map = new GMap2(document.getElementById("map"));
	map.addControl(new GMapTypeControl(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(5, 5)));
	map.addControl(new GLargeMapControl3D(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(5, 25)));
    map.enableDoubleClickZoom();
	map.setCenter(new GLatLng(32.79161, -86.82760), 7);
	var ovSize=new GSize(150, 120);
	var ovMap=new GOverviewMapControl(ovSize);
	map.addControl(ovMap);
	var mini=ovMap.getOverviewMap();
	map.enableGoogleBar();
  }
}


function loadDivLayer(url, dName)
{
divName = dName;

xmlhttp=null;

if (window.XMLHttpRequest)
  {// code for Firefox, Opera, IE7, etc.
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change;
  xmlhttp.open("GET",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function state_Change()
{
if (xmlhttp.readyState==4)
  {// 4 = "loaded"
  if (xmlhttp.status==200)
    {// 200 = "OK"
    document.getElementById(divName).innerHTML=xmlhttp.responseText;
    }
  else
    {
    alert("Problem retrieving data:" + xmlhttp.statusText);
    }
  }
return;
}


function drawCircle(center, radius, nodes, liColor, liWidth) {
	var bounds = new GLatLngBounds();
	var latConv = center.distanceFrom(new GLatLng(center.lat()+0.1, center.lng()))/100;
	var lngConv = center.distanceFrom(new GLatLng(center.lat(), center.lng()+0.1))/100;
	var points = [];
	var step = parseInt(360/nodes)||10;
	for(var i=0; i<=360; i+=step)
	{
		var pint = new GLatLng(center.lat() + (radius/latConv * Math.cos(i * Math.PI/180)), center.lng() + 
		(radius/lngConv * Math.sin(i * Math.PI/180)));
		points.push(pint);
		bounds.extend(pint); 
	}
	//	var poly = new GPolygon(points,liColor,liWidth,liOpa,fillColor,fillOpa);
	var poly = new GPolyline(points,liColor,3,.8);
	map.addOverlay(poly);
}

function loadProps(pLat, pLng){
		var point = new GLatLng(pLat,pLng);
		map.setCenter(point, 12);
		drawCircle(point, 8.045, 60, '#000000', 2);
		document.getElementById('locatedAddressMultiLIHTC').style.height = '0px';
		document.getElementById('locatedAddressMultiLIHTC').style.visibility = 'hidden';
		document.getElementById('lihtcIntroDiv').style.visibility='hidden';
		 var marker = new GMarker(point, markerSite);
	 	var html = 'Search location:<br>' + point;
       GEvent.addListener(marker, 'click', function() {
         marker.openInfoWindowHtml(html);
       });
	   map.addOverlay(marker);
		var searchUrl = "genXML/lihtc_genxml.php?lat="+pLat+"&lng="+pLng;
		//alert (searchUrl);
	GDownloadUrl(searchUrl, function(data) {
	   var xml = GXml.parse(data);
	   var markers = xml.documentElement.getElementsByTagName('marker');
       var bounds = new GLatLngBounds();
	   for (var i = 0; i < markers.length; i++) {
		 var name = markers[i].getAttribute('name');
		 var addr = markers[i].getAttribute('address');
		 var cityStateZip = markers[i].getAttribute('CityStateZip');
		// var distance = parseFloat(markers[i].getAttribute('distance'));
		 var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
								 parseFloat(markers[i].getAttribute('lng')));
		 var lat = parseFloat(markers[i].getAttribute('lat'));
		 var lng = parseFloat(markers[i].getAttribute('lng'));
		 var target = parseFloat(markers[i].getAttribute('target'));
		 var tUnits = parseFloat(markers[i].getAttribute('tUnits'));
		 var liUnits = parseFloat(markers[i].getAttribute('liUnits'));
		 var yAlloc = parseFloat(markers[i].getAttribute('yAlloc'));
		 var HUD_ID = markers[i].getAttribute('HUD_ID');
		 marker[i] = createMarker(point, name, addr, cityStateZip, lat, lng, target, tUnits, liUnits, yAlloc, HUD_ID);
		 map.addOverlay(marker[i]);
		}
	});
	var to = loadDivLayer('lihtc_totals.php?lat=' + pLat + '&lng=' + pLng, 'lihtcDataCol')
}
function createMarker(point, name, addr, cityStateZip, lat, lng, target, tUnits, liUnits, yAlloc, HUD_ID) {
	if (target==1){	
			markerBlue = { icon:blueIcon,title: name };
			var marker = new GMarker(point, markerBlue);
	} else if (target==2){	
			markerGreen = { icon:greenIcon,title: name };
      		var marker = new GMarker(point, markerGreen);
	} else if(target==3){
			markerRed = { icon:redIcon,title: name };
      		var marker = new GMarker(point, markerRed);
	}
	var html = '<a href="javascript:openFullRec(\'' + HUD_ID + '\')">' + name + '</a><br><font size="-2">' + addr + ', ' + cityStateZip + '</font><br><font size="-1">Units Total/LIHTC:' + tUnits + '/' + liUnits +'<br>Year Allocated: '+ yAlloc + '</font>';	
    GEvent.addListener(marker, 'click', function() {
			marker.openInfoWindowHtml(html);
		  });
    return marker; 
}

function searchLocations() {
    map.clearOverlays();
	document.getElementById('lihtcIntroDiv').style.visibility='hidden';
	document.getElementById('map').style.visibility='visible';
	document.getElementById('locatedAddressMultiLIHTC').style.height = '0px';
	document.getElementById('locatedAddressMultiLIHTC').style.visibility = 'hidden';
     var address = document.getElementById('location').value;
	 var geocod = new GClientGeocoder();
	 geocod.setBaseCountryCode('US');
	 document.getElementById("locatedAddressMultiLIHTC").innerHTML = 'Searching....';
	 map.clearOverlays();
	 geocod.getLocations(address, function (result)
          { 
            // If that was successful
            if (result.Status.code == G_GEO_SUCCESS) {
              // How many resuts were found
              //document.getElementById("message").innerHTML = "Found " +result.Placemark.length +" results";
              // Loop through the results, placing markers
			  if (result.Placemark.length == 0){
				  document.getElementById("locatedAddressMultiLIHTC").innerHTML = "Could Not Locate";
			  } else if(result.Placemark.length == 1){
				  var p = result.Placemark[0].Point.coordinates;
				  var marker = new GMarker(new GLatLng(p[1],p[0]));
				  document.getElementById("locatedAddressMultiLIHTC").innerHTML = "Located: "+ result.Placemark[0].address + marker.getPoint();
				  var f = loadProps(p[1],p[0]);
			  }else{
				document.getElementById("locatedAddressMultiLIHTC").innerHTML = '';
				document.getElementById('locatedAddressMultiLIHTC').innerHTML = "That search returned " +result.Placemark.length +" results, please click the correct one or search again.";
				  for (var i=0; i<result.Placemark.length; i++) {
					var p = result.Placemark[i].Point.coordinates;
					var marker = new GMarker(new GLatLng(p[1],p[0]));
					document.getElementById('locatedAddressMultiLIHTC').innerHTML += "<br><a href='javascript:loadProps("+p[1]+","+p[0]+"," + escape("'" + result.Placemark[i].address + "'") + ")'>" +(i+1)+": "+ result.Placemark[i].address + marker.getPoint() + "</a>";
				  }
				  mi = (20* result.Placemark.length) + 20;
				  document.getElementById('locatedAddressMultiLIHTC').style.height = mi + 'px';
				  document.getElementById('locatedAddressMultiLIHTC').style.visibility = 'visible';
			  }
            }
            // ====== error status ======
            else {
              var reason="Code "+result.Status.code;
              if (reasons[result.Status.code]) {
                reason = reasons[result.Status.code]
              } 
              alert('Could not find "'+address+ '" ' + reason);
			  document.getElementById("locatedAddrMultiLIHTC").innerHTML = '';
            }
          }
        );
}

function openFullRec(inID) {
	var w = window.open("displayLIHTC.php?id=" + inID, "HUD", "width=750,height=600,status=no,resizable=yes,toolbar=no,location=no,scrollbars=yes,menubar=no");
}
function redirectLogin(){
var m = alert('Please log-in to use this free tool');
var w = document.open('../vwbLogin.php?accesscheck=NLIHTC2009/lihtcMap.php', '_self','');
}