//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; 

     //Add HTTP headers to the request
     receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     receiveReq.setRequestHeader("Content-length", param.length);
     receiveReq.setRequestHeader("Connection", "close");

     //Make the request
     receiveReq.send(param);
   }   
}


//Called every time our XmlHttpRequest objects state changes
function updatePage() 
{
  //Check if our response is ready
  if (receiveReq.readyState == 4) 
  {
   //Set the content of the DIV element with the response text
   document.getElementById('result').innerHTML = receiveReq.responseText;
   //Get a reference to CAPTCHA image
   img = document.getElementById('imgCaptcha'); 
   //Change the image
   img.src = '/captcha3/gen/' + Math.random();
  }
}


//Called every time when form is perfomed
function getParam(theForm) 
{

  //Set the URL
  var url = '/captcha4';
  //Set up the parameters of our AJAX call
  var postStr = theForm.txtCaptcha.name + "=" + encodeURIComponent( theForm.txtCaptcha.value );

  //Set up the connection to captcha_test.html. True sets the request to asyncronous(default)
  receiveReq.open("POST", url, false);

  //Add HTTP headers to the request
  receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  receiveReq.setRequestHeader("Content-length", postStr.length);

  //Make the request
  receiveReq.send(postStr);

  //Set the content of the DIV element with the response text
  var r = receiveReq.responseText;

  if (r.indexOf("-ERR") > 0) 
  {
    msg = "Please enter letters shown in the image, inside the text box!";

    //Set the content of the DIV element with the response text
    document.getElementById('result').innerHTML = msg;

    //Get a reference to CAPTCHA image
    img = document.getElementById('imgCaptcha');

    //Change the image
    img.src = '/captcha3/gen/' + Math.random();
   
    return false; 
  }
  else
  {
    return true;
  }
}






