title: Grabbing country from google geocode jquery
body: <p>I've had help to get a jquery script which will geocode a typed location via googles geocoding system.</p>
  
  <p>I need the short_name of country value put into the country field. For the life of me I can't get my head around how I should be integrating, and everything I try doesn't return the value. Can anyone please give some insight as to the correct way of achieving this please?</p>
  
  <p>JSFIDDLE: <a href="http://jsfiddle.net/spadez/jCB4s/2/" rel="nofollow">http://jsfiddle.net/spadez/jCB4s/2/</a></p>
  
  <pre><code>$(function () {
    var input = $("#loc"),
        lat   = $("#lat"),
        lng   = $("#lng"),
        lastQuery  = null,
        lastResult = null, // new!
        autocomplete;
  
    function processLocation(callback) { // accept a callback argument
      var query = $.trim(input.val()),
          geocoder;
  
      // if query is empty or the same as last time...
      if( !query || query == lastQuery ) {
        callback(lastResult); // send the same result as before
        return; // and stop here
      }
  
      lastQuery = query; // store for next time
  
      geocoder = new google.maps.Geocoder();
      geocoder.geocode({ address: query }, function(results, status) {
        if( status === google.maps.GeocoderStatus.OK ) {
          lat.val(results[0].geometry.location.lat());
          lng.val(results[0].geometry.location.lng());
          lastResult = true; // success!
        } else {
          alert("Sorry - We couldn't find this location. Please try an alternative");
          lastResult = false; // failure!
        }
        callback(lastResult); // send the result back
      });
    }
  
    autocomplete = new google.maps.places.Autocomplete(input[0], {
      types: ["geocode"],
      componentRestrictions: {
        country: "uk"
      }
    });
  
    google.maps.event.addListener(autocomplete, 'place_changed', processLocation);
  
    $('#searchform').on('submit', function (event) {
      var form = this;
  
      event.preventDefault(); // stop the submission
  
      processLocation(function (success) {
        if( success ) { // if the geocoding succeeded, submit the form
          form.submit()
        }
      });
  
    });
  });
  </code></pre>
  
  <p>According to the <a href="https://developers.google.com/maps/documentation/javascript/geocoding" rel="nofollow">API</a> I need this:</p>
  
  <pre><code>results[]: {
   types[]: string,
   formatted_address: string,
   address_components[]: {
     short_name: string,
     long_name: string,
     types[]: string
   },
   geometry: {
     location: LatLng,
     location_type: GeocoderLocationType
     viewport: LatLngBounds,
     bounds: LatLngBounds
   }
  }
  </code></pre>