/* Send contents of #address element to subscribe.php */

// Write ajax functions first to make this script totally independent of other files
var xmlhttp;

function fileLoad (file)
{
  try { xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) {}

  xmlhttp.onreadystatechange = triggered;
  xmlhttp.open("GET", file);
  xmlhttp.send(null);
}

function triggered ()
{
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
  {
  }
}
// End of ajax functions. Completely painless.

// Function to actually use them
function send (element, verboseStatus)
{
  var address = element.elements["address"];
  var status = document.getElementById("addressConfirmation");

  var errorBorder = "2px solid #F00";
  var successBorder = "2px solid #4F4";
  var errorText = "Email address is not in a valid format.";
  var successText = "Your address has been added to our mailing list.";

  var subscribePath = "/wp-content/themes/trinityhospice/plugins/subscribe/subscribe.php?address=";
  var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9]+([.-]?[a-zA-Z0-9]+)?([\.]{1}[a-zA-Z]{2,4}){1,4}$/;

  if (emailPattern.test(address.value))
  {
    fileLoad(subscribePath + address.value);
    if (!verboseStatus)
      address.style.border = successBorder;
    else
    {
      status.innerHTML = successText;
      status.style.border = successBorder;
    }
  }
  else
  {
    if (!verboseStatus)
      address.style.border = errorBorder;
    else
    {
      status.innerHTML = errorText;
      status.style.border = errorBorder;
    }
  }
}
