//Gets the browser specific XmlHttpRequest Object 
function getXmlHttpRequestObject() {
 if (window.XMLHttpRequest) {
    return new XMLHttpRequest(); //Mozilla, Safari ...
 } else if (window.ActiveXObject) {
    return new ActiveXObject("Msxml2.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. True sets the request to asyncronous(default) 
   receiveReq.open("POST", url, true);
   //receiveReq.open("POST", url, false);
   //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");

   //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 || receiveReq.readyState == 'complete') {
   //Set the content of the DIV element with the response text
   if (receiveReq.responseText.toUpperCase().replace(/^\s+|\s+$/g, '') == "OK") {
     document.getElementById("loginContent").innerHTML='<br/><img src="/public/images/loading-white.gif" width="32" height="32"/><br/><br/>Loading..'
     top.location.href="/members/index.php";
   } else {
     responseMessage = "Login failed - please try again";
     if (receiveReq.responseText != "") {
       responseMessage = receiveReq.responseText;
     } else {
       responseMessage = responseMessage + " (" + receiveReq.status + ")";
     }
     document.getElementById('result').innerHTML = responseMessage;
     document.getElementById('btnCaptcha').value = 'Sign In';
     document.getElementById('btnCaptcha').disabled = false;
   }
 }
}

function requestNewImage() {
   img = document.getElementById('imgCaptcha').src = '/captcha_image.php?' + Math.random();
}

//Called every time when form is perfomed
function getParam(theForm) {
 document.getElementById('btnCaptcha').value = 'Signing In..';
 document.getElementById('btnCaptcha').disabled = true;
 //Set the URL
 var url = '/auth.php';
 //Set up the parameters of our AJAX call
 var postStr = theForm.username.name + "=" + encodeURIComponent( theForm.username.value ) + "&" + theForm.password.name + "=" + encodeURIComponent( theForm.password.value );
 txtCaptchaElement = document.getElementById('txtCaptcha');
 chkSavePasswordElement = document.getElementById('chkSavePassword'); 
 if (txtCaptchaElement) {
   postStr += "&" + txtCaptchaElement.name + "=" + encodeURIComponent( txtCaptchaElement.value );
 }
 if (chkSavePasswordElement && chkSavePasswordElement.checked) {
   postStr += "&" + chkSavePasswordElement.name + "=" + encodeURIComponent( chkSavePasswordElement.value );
 } 
 //Call the function that initiate the AJAX request
 makeRequest(url, postStr);
}

