
function mapClinics(form, base_url){
   window.clinics_found = 0;
   var request = GXmlHttp.create();
   request.open('POST', base_url +'ajax/gmapClinicList.php', true);
   request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
   request.onreadystatechange = function() {
	  if (request.readyState == 4) {
		 var map = new GMap2(document.getElementById("map"));
		 map.enableDoubleClickZoom();
		 map.addControl(new GLargeMapControl());
		 map.addControl(new GMapTypeControl());
		 map.setCenter(new GLatLng(40.4419,-95.1419), 4);
		 var xmlDoc = request.responseXML;
		 var venues = xmlDoc.documentElement.getElementsByTagName("venue");
		 for (var i = venues.length -1; i >= 0 ; i--) {
			map.addOverlay(venueMarker(venues[i], base_url));
		 }
		 foundClinics(window.clinics_found);
	  } else {
		 loadMessage();
	  }
   }
   request.send(getPostVarString(form));

   
}


function getPostVarString(form) {
   if(form == null)return '';
   var postVarString = '';
   for(i=0; i<form.elements.length; i++){
      element = form.elements[i];
      postVarString += element.name + '=';
      switch (element.type){
         case "text":
         case "textarea":
            postVarString += element.value; break;
         case "select-one":
         case "select-multiple":
            postVarString += element.value; break;
         case "radio":
         case "checkbox":
            if(element.checked){
               postVarString += element.value
            }
      }
      postVarString += '&';
   }
   return postVarString;
}




function venueMarker(venueXMLElement, base_url){
   var marker = new GMarker(new GLatLng(parseFloat(venueXMLElement.getAttribute("latitude")),
						  parseFloat(venueXMLElement.getAttribute("longitude")))
						  );
   var html = '<table class="map_info_window">';   
   var clinics = venueXMLElement.getElementsByTagName("clinic");
   window.clinics_found += clinics.length;
   for(i=clinics.length-1; i >= 0; i--){
      var clinicXMLElement = clinics[i];
      html += '<tr><td nowrap><a href="' + base_url + 'Clinics/moreInfo.php?clinic_id=' 
           + clinicXMLElement.getAttribute("id") + '">' + clinicXMLElement.getAttribute("name") 
           + '</a></td><td nowrap>' + clinicXMLElement.getAttribute("date") + '</td></tr>';
   }
   html += '<tr><td nowrap colspan="2">Venue: ' + venueXMLElement.getAttribute("name") + '&nbsp;&nbsp;&nbsp;';
   if(venueXMLElement.getAttribute("address") != ''){
      html += '<a href="http://maps.google.com/maps?q=' + venueXMLElement.getAttribute("address") + '" target="_blank">Directions</a>';
   } else if(venueXMLElement.getAttribute("approx_geo") == '1') {
      html += '(Map location approximate!)'
   }
   html += '</td></tr></table>';

   GEvent.addListener(marker, 'click', function(){marker.openInfoWindowHtml(html)} );
   return marker;
}



function loadMessage(){
   $("wait_img").style.display = 'inline';
   //document.getElementById("progress").style.display = 'inline';
   document.getElementById("map_status").innerHTML = 'Loading clinics...';
}


function foundClinics(count){
   $("wait_img").style.display = 'none';
   //document.getElementById("progress").style.display = 'none';
   document.getElementById("map_status").innerHTML = 'Found ' + count + ' clinics:';
}




