  var http_request = false;

  function makePOSTRequest(url, parameters) {
    http_request = false;

    try {
      http_request = new XMLHttpRequest();
      }
     catch (ms) {
      try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
       catch (nonms) {
        try {
          http_request = new ActiveXObject("Microsoft.XMLHTTP");
          }
         catch (failed) {
          http_request = null;
          }
        }
      }

    if (!http_request) {
      return false;
      }

    http_request.onreadystatechange = alertContents;
    http_request.open('POST', url, true);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", parameters.length);
    http_request.setRequestHeader("Connection", "close");
    http_request.send(parameters);
    }

  function alertContents() {
    if (http_request.readyState == 4) {
      if (http_request.status == 200) {


        var nStatus = http_request.responseXML.getElementsByTagName("status")[0].firstChild;
        var nMessage = http_request.responseXML.getElementsByTagName("message")[0].firstChild;

        var status = nStatus.nodeValue;
        var message = nMessage.nodeValue + "<br>";

        if (status=='0') {
          document.getElementById('errorspan').innerHTML = message;
          }
         else
          if (status=='1') {
            document.getElementById('formcontainer').innerHTML = message;
            }

        }
       else {
        alert('There was a problem with the request.');
        }
      }
    }

  function post_form(url, sFormId) {
    var i = 0, sPost = '';
    var form = document.getElementById(sFormId);

    for (i=0; i<form.elements.length; i++) {
      sPost += form.elements[i].id + "=" + form.elements[i].value;  //escape(encodeURI())
      if (i<form.elements.length-1)
        sPost += "&";
      }
    makePOSTRequest(url, sPost);
    }