function open_date() {

      var HTTP = {};
      // This is a list of XMLHttpRequest-creation factiory functions to try
      HTTP._factories = [
         function() {return new XMLHttpRequest(); },
         function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
         function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
      ];

      // When we find a factory that works, store it here.
      HTTP.factory = null;

      // Create and return a new XMLHttpRequest object.
      //
      // The first time we're called, try the list of factory functions until
      // we find one that returns a nonnull value and does not throw an
      // exception.  Once we find a working factory, remember it for later use.
      HTTP.newRequest = function() {
         if (HTTP._factory != null) return HTTP._factory();

         for(var i = 0; i < HTTP._factories.length; i++) {
            try {
               var factory = HTTP._factories[i];
               var request = factory();
               if (request != null) {
                  HTTP._factory = factory;
                  return request;
               }
            } catch(e) {
               continue;
            }
         }

         // If we get here, none of the factory candidates succeeded,
         // so throw an exception now and for all future calls.
         HTTP._factory = function() {
            throw new Error("XMLHttpRequest not supported");
         }
         HTTP._factory(); // Throw an error
      };

      // Create an XMLHttpRequest using the uitlity defined earlier
      var request = HTTP.newRequest();

      // Register an event handler to recieve asynchronous notifications.
      // This code says what to do with the response, and it appears in a nested
      // function her before we have even submitted the request
      request.onreadystatechange = function() {
         if (request.readyState == 4) { // If the request is finished
            if (request.status == 200) { // If it was sucessful
               var spanElement = document.getElementById('yyear');
                  spanElement.innerHTML = '';
                  try {
                     spanElement.innerHTML = request.responseText;
                  } catch (e) {
                     var wrappingElement = document.createElement('div');
                     wrappingElement.innerHTML = request.responseText;
                     spanElement.appendChild(wrappingElement);
                  }
            }
         } 
      }

      var mystation_id = document.getElementById('pestStationForm').station.value;
      var url = "includes/ajax3.php?station_id="+mystation_id;
      // make a Get request for a given URL. We don't pass a third argument,
      // so this is an asynchronous request
      request.open("GET", url, true);

      // We could set additional request headers here if we needed to.

      // Now send the request. Since it isa GET request, we pass null for
      // the body.  Since it is asyncvhronous, send() does not block but
      // returns immediately.
      request.send(null);

}

