var pg = {

  subscribe: function() {
    var http  = pg.http_object();
    var url   = "/cgi-bin/subscribe.cgi";
    var input = document.getElementById('email');

    http.open("GET", url + '?email=' + escape(input.value), true);
    http.onreadystatechange = function() {
      if (http.readyState == 4) {
        pg.notify(http.responseText.replace(/^\s+|\s+$/g, ''));
      }
    }
    http.send(null);
    return false;
  },

  notify: function(response) {
    msg = document.getElementById('msg');
    switch(response) {
    case 'duplicate':
      msg.innerHTML = "Email address is already subscribed.";
      break;
    case 'invalid':
      msg.innerHTML = "Invalid email address.";
      break;
    default:
      msg.innerHTML = "Email address has been subscribed.";
    }
  },

  http_object: function() { 
    if (typeof XMLHttpRequest != 'undefined') { 
      return new XMLHttpRequest(); 
    } 
    try { 
      return new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch (e) { 
      try { 
        return new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch (e) {} 
    } 
    return false; 
  }
}

