var MarkerIndex = 0;

/**
 * Runs an HTTP request against Ontok to backup
 * the Google geocoding service
 *
 *
 */
 function runOntok(addr){
 	var request = GXmlHttp.create();
	request.open("GET", "/website/power_lines/ontok_geocoder/get_coords_ajax.php?address="+addr, true);

	request.onreadystatechange = function() {
	  if (request.readyState == 4) {
	  	//alert(request.responseText);
	  		if(bIsIE)
				processOntok(GXml.parse(request.responseText));
			else
				processOntok_netscape(GXml.parse(request.responseText));
	  }
	}

	request.send(null);	
 }
 
/*
 * Parse the file returned from the HTTP
 * request and create overlays for each location
 * 
 * @param xmlData	file requested 
 *
 * IMPORTANT: Internet Explorer ONLY  
 */
function processOntok(xmlData)
{
	var listings = xmlData.getElementsByTagName("listing");	
	//alert(listings.length);		
	var info;
	var marker = new Array(0);	
			
	for (var i = 0; i < listings.length; i++) {
		var latitude = parseFloat(listings[i].childNodes[0].text);
		var longitude = parseFloat(listings[i].childNodes[1].text);
		var address = listings[i].childNodes[2].text;
		var score = listings[i].childNodes[3].text;

		if(score <=3)
			alert("Address was not found...");
		else
			refreshOntokMarker(address, latitude, longitude);
	}
}

/*
 * Parse the file returned from the HTTP
 * request and create overlays for each location
 * 
 * @param xmlData	file requested 
 *
 * IMPORTANT: Netscape/Firefox browsers
 */	
function processOntok_netscape(xmlData)
{
	var listings = xmlData.getElementsByTagName("listing");			

	var info;
	var marker = new Array(0);		
		
		
	for (var i = 0; i < listings.length; i++) {

		//alert(listings[i].getElementsByTagName("latitude")[0].firstChild.nodeValue);
		var latitude = listings[i].getElementsByTagName("lat")[0].firstChild.nodeValue;
		var longitude = listings[i].getElementsByTagName("long")[0].firstChild.nodeValue;
		var address = listings[i].getElementsByTagName("desc")[0].firstChild.nodeValue;
		var score = listings[i].getElementsByTagName("score")[0].firstChild.nodeValue;
		
		if(score <=3)
			alert("Address was not found...");
		else
			refreshOntokMarker(address, latitude, longitude);

	}
}

function refreshOntokMarker(addr, lat, lng){
      point = new GLatLng(lat, lng);
      map.setCenter(point, 11);
      info = new Array(point.x, point.y, addr);

	  //alert(addr);
	  //alert(mainMarker);
	  if(mainMarker)
	  	mainMarker.hideMarker();
      
      mainMarker = new LocationMarker(point, info);
      
     // getMarkerHtml(address);	
     mainMarker.openInfoWindow();
}	

function submitGoogleAddress(){

	startLoadingMap();

	var addr = document.getElementById("street_address").value;
	var city = document.getElementById("city").value;
	var state = document.getElementById("state").value;
	var zip = document.getElementById("zip").value;
	
	var address	= addr + " " + city + " " + state + " " + zip;
	
	if(trim(address) == "NY"){
		initializeMap();
		finishLoadingMap();
	}
	else
	{
	  getMarkerHtml(address);
		
      if (geocoder) {
        geocoder.getLatLng(address, function(point) {
        	
            if (!point) {
              //alert("Address was not found by Google...");
              runOntok(address);
              finishLoadingMap();
            } else {
              map.setCenter(point, 11);
             //alert(point.x);
	          info = new Array(point.x, point.y, address);

			  //alert(mainMarker);
			  if(mainMarker != null){
			  	  mainMarker.hideMarker();
				  mainMarker.init(point, info);
			  }
			  else{
	              mainMarker = new LocationMarker(point, info);
			  }
              

             // getMarkerHtml(address);	
             mainMarker.openInfoWindow();
             
            // document.getElementById("YouAreHere").style.display = '';


            }
          }
        );
      }	
	}
	      

function trim(str) {
	  var i = 0, j = 0;
	  while ( str.charAt(i)==" " ) i++;
	  j = str.length-1;
	  while ( str.charAt(j)==" " ) j--;
	  return str.substring(i,j+1);
	
	} 
}
