/*
    Dependency:
        /js/lib/jquery-1.6.4.min.js
        /js/src/core.js
         
*/
if (typeof B2.GeoLocation == "undefined"){
	B2.GeoLocation = {};
}

B2.GeoLocation.FreeGeoIp = {
	  vendor_name: 'freegeoip',
	  rest_endpoint: 'http://freegeoip.net/json/',
	  successCallback: null,

	  resolve: function(successCallback) {
	    this.successCallback = successCallback;
	    $.ajax({
	      url: this.rest_endpoint,
	      dataType: 'jsonp',
	      jsonpCallback: 'B2.GeoLocation.FreeGeoIp.onSuccess'
	    });
	  },
	  onSuccess: function(data) {
	    // process successful response
	    this.successCallback(data.zipcode);
	    return true;
	  }
}
// default to using the freegeoip service
B2.GeoLocation.IpResolver = B2.GeoLocation.FreeGeoIp;

B2.GeoLocation.IpService = {
    requestPostalCode: function(successCallback) {
    	B2.GeoLocation.IpResolver.resolve(successCallback);
    }
}

