//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
 if (window.XMLHttpRequest) {
    return new XMLHttpRequest(); //Mozilla, Safari ...
 } else if (window.ActiveXObject) {
    return new ActiveXObject("Microsoft.XMLHTTP"); //IE
 } else {
    //Display our error message
    alert("Your browser doesn't support the XmlHttpRequest object.");
 }
}

//Our XmlHttpRequest object
var receiveReq = getXmlHttpRequestObject();

//Initiate the AJAX request
function makeRequest(url, param) {
//If our readystate is either not started or finished, initiate a new request
 if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
   //Set up the connection to captcha_test.html. True sets the request to asyncronous(default)
   receiveReq.open("POST", url, true);
   //Set the function that will be called when the XmlHttpRequest objects state changes
   receiveReq.onreadystatechange = updatePage;

   receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   receiveReq.setRequestHeader("Content-length", param.length);
   receiveReq.setRequestHeader("Connection", "close");
   receiveReq.send(param);
 }
}

function updatePage() {
 if (receiveReq.readyState == 4) {
   document.getElementById('result').innerHTML = receiveReq.responseText;
   img = document.getElementById('imgCaptcha');
   img.src = 'create_image.php?' + Math.random();
 }
}

function getParam(theForm) {
 var url = 'captcha.php';
 var postStr = theForm.txtCaptcha.name + "=" + encodeURIComponent( theForm.txtCaptcha.value ) + "&nickz=" + encodeURIComponent( theForm.nickz.value ) + "&emailz=" + encodeURIComponent( theForm.emailz.value ) + "&passone=" + encodeURIComponent( theForm.passone.value ) + "&passtwo=" + encodeURIComponent( theForm.passtwo.value );
 makeRequest(url, postStr);
}
