/** The global request object. */
var http_request = false;

/**
 * Create the global request object.
 */
function newAjaxCall() {

  http_request = false;

  if (window.XMLHttpRequest) {
    http_request = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
  }

}

/**
 * Check a signup before submitting.
 */
function checkSignup() {

  if (checkFields("","newsletter")) {

    submitSignup("newsletter","newsletter");

  }

  // return false to prevent page reload
  return false;

}

/**
 * Submit a signup.
 */
function submitSignup(type,form) {

  var reqString = "";

  for (var x in inputFields[form]) {

    reqString = (reqString == "" ? reqString : reqString + "&") + x + "=" + escape(getValue("",form,x));

  }

  newAjaxCall();
  http_request.onreadystatechange = handleSignupResponse;
  http_request.open("GET", "signup.php?action=" + type + "&" + reqString, true);
  http_request.send(null);

}

/**
 * Handle a signup response.
 */
function handleSignupResponse() {

  // only do something if the request is complete
  if (http_request.readyState == 4) {

    // check for HTTP status code 200
    if (http_request.status == 200) {

      if (http_request.responseText == "error") {

        alert("Error: Could not complete request.");

      } else {

        var js_signupBox = document.getElementById("signup_box");
        var js_signupThanks = document.getElementById("signup_thanks");

        // display the confirmation message
        js_signupBox.style.display = "none";
        js_signupThanks.style.display = "block";

      }

    }

  }

}
