map storeFinder with draggend problem when loading the websites in the sidebar

by sebababi

HTML

<script src="http://maps.google.com/maps/api/js?sensor=false&amp;libraries=places&amp;language=en"></script>
 <div id="locationField">
    <input id="autocomplete" type="text" />
  </div>
  <div id="controls">
    <form name="controls">
    <input type="radio" name="type" value="establishment" onclick="search()" checked="checked"/>All<br/>
    <input type="radio" name="type" value="restaurant" onclick="search()" />Restaurants<br/>
    <input type="radio" name="type" value="lodging" onclick="search()" />Lodging
    </form>
  </div>
  <div id="map_canvas"></div>
  <div id="listing"><table id="results"></table></div>

CSS

body {
  font-family: sans-serif;
}
#map_canvas {
  position: absolute;
  width: 399px;
  height: 399px;
  top: 25px;
  left: 0px;
  border: 1px solid grey;
}
#listing {
  position: absolute;
  width: 200px;
  height: 360px;
  overflow: auto;
  left: 401px;
  top: 65px;
  cursor: pointer;
}
#controls {
  width: 200px;
  position: absolute;
  top: 0px;
  left: 400px;
  height: 60px;
  padding: 5px;
  font-size: 12px;
}
.placeIcon {
  width: 16px;
  height: 16px;
  margin: 2px;
}
#resultsTable {
  font-size: 10px;
  border-collapse: collapse;
}
#locationField {
  width: 400px;
  height: 25px;
  top: 0px;
  left: 0px;
  position: absolute;
}
#autocomplete {
  width: 400px;
}

JavaScript

var map, places, iw;
  var markers = [];
  var autocomplete;
  

  function initialize() {
    var loc = new google.maps.LatLng(37.783259, -122.402708);
    var myOptions = {
      zoom: 12,
      center: loc
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    places = new google.maps.places.PlacesService(map);
    google.maps.event.addListener(map, 'tilesloaded', tilesLoaded);
    autocomplete = new google.maps.places.Autocomplete(document.getElementById('autocomplete'));
    google.maps.event.addListener(autocomplete, 'place_changed', function() {
      showSelectedPlace();
    });
  }
  
  function tilesLoaded() {
    google.maps.event.clearListeners(map, 'tilesloaded');
    google.maps.event.addListener(map, 'zoom_changed', search);
    google.maps.event.addListener(map, 'dragend', search);
    search();
  }
  
  function showSelectedPlace() {
    clearResults();
    clearMarkers();
    var place = autocomplete.getPlace();
    map.panTo(place.geometry.location);
    markers[0] = new google.maps.Marker({
      position: place.geometry.location,
      map: map
    });
    iw = new google.maps.InfoWindow({
      content: getIWContent(place)
    });
    iw.open(map, markers[0]);
      
                  console.log('before iw clicked '+iw);
            google.maps.event.addDomListener(iw,"closeclick",function(){
// Uncaught TypeError: Cannot read property 'addEventListener' of undefined 
 
                
                console.log('iw clicked');
        });
            
  }
  
  function search() {
    var type;
    for (var i = 0; i < document.controls.type.length; i++) {
      if (document.controls.type[i].checked) {
        type = document.controls.type[i].value;
      }
    }
    
    autocomplete.setBounds(map.getBounds());
    
    var search = {
      bounds: map.getBounds()
    };
    
    if (type != 'establishment') {
      search.types = [ type ];
    }
    
    places.search(search, function(results, status)...