text: /**
   * @author Jordan Burrows
   */
  
  function initialize(lat, lon) {
    var mapOptions = {
      center: new google.maps.LatLng(lat, lon),
      zoom: 13,
      maxZoom: 15,
      draggable: false,
      mapTypeControl: false,
      streetViewControl: false,
      draggable: false,
      zoomControl: false,
      disableDoubleClickZoom: true
    };
    var map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);
  
    var input = /** @type {HTMLInputElement} */(
        document.getElementById('pac-input'));
  
    map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);
  
    var autocomplete = new google.maps.places.Autocomplete(input, 
      {
        types: ['address'],
        componentRestrictions: {country: 'us'} 
      });
    autocomplete.bindTo('bounds', map);
  
    var infowindow = new google.maps.InfoWindow();
    var marker = new google.maps.Marker({
      map: map,
      anchorPoint: new google.maps.Point(0, -29)
    });
    google.maps.event.addListener(autocomplete, 'place_changed', function() {
      infowindow.close();
      marker.setVisible(false);
      var place = autocomplete.getPlace();
      if (!place.geometry) {
        window.alert("Autocomplete's returned place contains no geometry");
        return;
      }
      // If the place has a geometry, then present it on a map.
      if (place.geometry.viewport) {
        map.fitBounds(place.geometry.viewport);
      } else {
        map.setCenter(place.geometry.location);
        map.setZoom(16);  // Why 16? Because it looks good.
      }
      marker.setIcon(/** @type {google.maps.Icon} */({
        url: place.icon,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(35, 35)
      }));
      marker.setPosition(place.geometry.location);
      marker.setVisible(true);
  
      var address = '';
      if (place.address_components) {
        address = [
          (place.address_components[0] && place.address_components[0].short_name || ''),
          (place.address_components[1] && place.address_components[1].short_name || ''),
          (place.address_components[2] && place.address_components[2].short_name || '')
        ].join(' ');
      }
  
      infowindow.setContent('<div><strong>' + place.name + '</strong><br>' + address);
      infowindow.open(map, marker);
      var componentForm = {
        street_number: 'short_name',
        route: 'long_name',
        locality: 'long_name',
        administrative_area_level_1: 'short_name',
        country: 'long_name',
        postal_code: 'short_name'
      };
      var candy = [];
      function fillInAddress() {
        // Get the place details from the autocomplete object.
        var place = autocomplete.getPlace();
  
        //for (var component in componentForm) {
          //document.getElementById(component).value = '';
          //document.getElementById(component).disabled = false;
        //}
  
        // Get each component of the address from the place details
        // and fill the corresponding field on the form.
        for (var i = 0; i < place.address_components.length; i++) {
          var addressType = place.address_components[i].types[0];
          if (componentForm[addressType]) {
            var val = place.address_components[i][componentForm[addressType]];
            //document.getElementById(addressType).value = val;
            componentForm[addressType] = val;
          }
        }
      }
      fillInAddress();
      Ti.App.fireEvent('app:getAddressWebView', { address : componentForm });
    });
  }
  
  //google.maps.event.addDomListener(window, 'load', initialize);