function trim(t) { // removes whitespace from both sides of input string

  return t.replace(/^\s+|\s+$/g,"");

}

function lcase(l) { // converts input string to lowercase

  return l.toLowerCase();

}

function EmailAddress(placeholder, address, display, subject) {

  if (placeholder == undefined) { alert('Error: "placeholder" not defined.'); return null; }
  if (address == undefined) { address = 'webmaster'; } else { address = lcase(trim(address)); }
  if (display == undefined) { display = ''; } else { display = trim(display); }
  if (subject == undefined) { subject = ''; } else { subject = trim(subject); }

  var xmlhttp;

  if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) { // code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else {
    alert("Your browser does not support XMLHTTP!");
  }

  xmlhttp.onreadystatechange = function() {

    if(xmlhttp.readyState==4) {
      document.getElementById(placeholder).innerHTML = xmlhttp.responseText;
    }

  }

  var url = "emailaddress.php" +
            "?address=" + escape(address) +
            "&display=" + escape(display) +
            "&subject=" + escape(subject) +
            "&session=" + Math.random();

  xmlhttp.open("GET", url, true);
  xmlhttp.send(null);

}
