﻿function YahooGeocoder(inCallback)
{
  this.req = null;
  this.callback = inCallback;
  var me = this;
  this.geocode = function (inStreet, inCity, inState, inZip)
  {
//      var url = "http://api.local.yahoo.com/MapsService/V1/geocode?appid=YahooDemo&street=" + escape(inStreet);
//      url += "&city=" + escape(inCity);
//      url += "&state=" + escape(inState);
//      url += "&zip=" + escape(inZip);
//      url += "&output=json&callback=" + inCallback;

    var url = "YahooGeocoderJson.aspx?street=" + escape(inStreet);
    url += "&city=" + escape(inCity);
    url += "&state=" + escape(inState);
    url += "&zip=" + escape(inZip);
    
    //alert(url);
    //parent.window.location = url;
    if (window.XMLHttpRequest) 
    {
	    me.req = new XMLHttpRequest();
//	    alert("me.req:" + me.req + " me.callback:" + me.callback);
	    me.req.onreadystatechange = me.processResults;
	    me.req.open("GET", url, true);
	    me.req.send(null);
    // branch for IE/Windows ActiveX version
    } 
    else if (window.ActiveXObject) 
    {
	    me.req = new ActiveXObject("Microsoft.XMLHTTP");
	    if (me.req) {
//		    alert("me.req:" + me.req + " me.callback:" + me.callback);
		    me.req.onreadystatechange = me.processResults;
		    me.req.open("GET", url, true);
		    me.req.send();
	    }
    }
  }
    
  this.processResults = function()
  {
//    alert("Called");
//    alert("me.callback: " + me.callback);
//    alert("me.req: " + me.req);
//    alert("Readystate: " + me.req.readyState + "\nstatus: " + me.req.status);
    if (me.req.readyState == 4) 
    {
      // only if "OK"
      if (me.req.status == 200) 
      {
	      // ...processing statements go here...
	      //alert(me.req.responseText);
	      var resultsObj = eval('(' + me.req.responseText + ')');
	      eval(me.callback + '(resultsObj)');
      }
    }
  }


}

//function YahooGeocoder(inCallback)
//{
//  this.scriptObj = null;
//  this.geocode = 
//    function (inStreet, inCity, inState, inZip)
//    {
////      var url = "http://api.local.yahoo.com/MapsService/V1/geocode?appid=YahooDemo&street=" + escape(inStreet);
////      url += "&city=" + escape(inCity);
////      url += "&state=" + escape(inState);
////      url += "&zip=" + escape(inZip);
////      url += "&output=json&callback=" + inCallback;

//      var url = "http://www.crimehouston.com/YahooGeocoderJson.aspx&street=" + escape(inStreet);
//      url += "&city=" + escape(inCity);
//      url += "&state=" + escape(inState);
//      url += "&zip=" + escape(inZip);
//      url += "&callback=" + inCallback;

//      //alert(url);

//      this.scriptObj = document.createElement("script");
//      this.scriptObj.setAttribute("type", "text/javascript");
//      this.scriptObj.setAttribute("src", url);
//      this.scriptObj.setAttribute("id", "YahooGeocoderDynamicScript");
//      document.getElementsByTagName("head").item(0).appendChild(this.scriptObj);
//      //alert(url);
//    }
//  this.resultsFinished = 
//    function ()
//    {
//      document.getElementsByTagName("head").item(0).removeChild(this.scriptObj);
//      delete this.scriptObj;
//    }
//}
