google.load('maps' , '2');
google.load('search' , '1');

var map;
var searcher;

function OnLoad() {
  var contentDiv = document.getElementById('mapContent');
  contentDiv.innerHTML = '';
  
  
  var location = contentDiv.getAttribute("location");
  var searchItem = contentDiv.getAttribute("search");

  var mapContainer = document.createElement('div');
  mapContainer.style.height = '350px';
  mapContainer.style.width = '500px';
  
  var controlContainer = document.createElement('div');
  controlContainer.style.width = '350px';

  contentDiv.appendChild(mapContainer);
  contentDiv.appendChild(controlContainer);

  map = new google.maps.Map2(mapContainer);

  map.addControl(new google.maps.SmallMapControl());
  map.addControl(new google.maps.MapTypeControl());

  var searchControl = new google.search.SearchControl();

  searcher = new google.search.LocalSearch();
  searcher.setCenterPoint(map); 

  var options = new google.search.SearcherOptions(); 
  options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);

  searchControl.addSearcher(searcher , options);

  searchControl.setSearchCompleteCallback(searcher , function() {
	map.clearOverlays();
	var results = searcher.results; 
	for (var i = 0; i < results.length; i++) {
	  var result = results[i];
	  var markerLatLng = new google.maps.LatLng(parseFloat(result.lat), parseFloat(result.lng));
	  var marker = new google.maps.Marker(markerLatLng);

	  marker.bindInfoWindow(result.html.cloneNode(true));
	  result.marker = marker; 
	  map.addOverlay(marker);
	}

	var center = searcher.resultViewport.center;

	var ne = new google.maps.LatLng(searcher.resultViewport.ne.lat,searcher.resultViewport.ne.lng);
	var sw = new google.maps.LatLng(searcher.resultViewport.sw.lat,searcher.resultViewport.sw.lng);
	var bounds = new google.maps.LatLngBounds(sw, ne);
	var zoom = map.getBoundsZoomLevel(bounds, new google.maps.Size(350, 350));
	
	map.setCenter(new google.maps.LatLng(parseFloat(center.lat),parseFloat(center.lng)),zoom);
  });

  searchControl.draw(controlContainer);

  
	if(location=="Middleton") {
		// Middleton
		map.setCenter(new google.maps.LatLng(42.981921,-89.533424), 11);
	}
	else if(location=="Verona") {
		// Verona
		map.setCenter(new google.maps.LatLng(42.985497,-89.533411), 11);
	}
	else if(location=="Sun Prairie") {
		// Sun Prairie
		map.setCenter(new google.maps.LatLng(42.985497,-89.533411), 11);
	}
	else if(location=="Fitchburg") {
		// Fitchburg
		map.setCenter(new google.maps.LatLng(42.985497,-89.533411), 11);
	}
	else if(location=="Waunakee") {
		// Waunakee
		map.setCenter(new google.maps.LatLng(42.957101,-89.472155), 11);
	}
	else {
		// Madison
		map.setCenter(new google.maps.LatLng(43.062071,-89.400846), 11);
	}
  
  searchControl.execute(searchItem);
}

google.setOnLoadCallback(OnLoad);
