/** 
* Factory method: 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.");
 }
}

/**
* Main behavior (defined in global scope, since it is used by subsequent makeRequest method...)
*/

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

/**
* Initiate an 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('secResult').innerHTML = receiveReq.responseText;
   if (document.getElementById('secResult').innerHTML.indexOf("OK")==-1) { // if NOT OK
     // update img
	   //Get a reference to CAPTCHA image
	   img = document.getElementById('secImg'); 
	   //Change the image
	   img.src = '/captcha-new/index.php?'+ session_name()+'='+session_id();
   } else {
     // Code OK => do not replace image but disable captcha textfield
     document.getElementById('secText2').value= document.getElementById('secText').value;     
     document.getElementById('secText').disabled= true; // disable possibility to retype captcha value	   
   }
 }
}

/** 
* Called every time when form is perfomed
*/
function getParam(theForm) {
 //Set the URL
 var url = '/captcha-new/captcha.php';
 //Set up the parameters of our AJAX call
 var postStr = theForm.secText.name + "=" + encodeURIComponent( theForm.secText.value );
 //Call the function that initiate the AJAX request
 makeRequest(url, postStr);
}

