<!--

// Parts of this are Copyright © caeus.com Ltd.
// www.caeus.com
// 0800 970 2955
// All Rights Reserved
// These scripts must not be reproduced in any way without permission.
// Please, however, feel free to link to the page from your web site.



// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();

// retrieves the HMLHttpRequest object
function createXmlHttpRequestObject()
{
   // will store the reference to the XMLHttpRequest object
   var xmlHttp;
   
   // if running Internet Explorer
   if(window.ActiveXObject)
   {
      try
	  {
	     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	  }
	  catch (e)
	  {
	     xmlHttp = false;
	  }
   }
   // if running Mozilla or other browsers
   else {
      try
	  {
	     xmlHttp = new XMLHttpRequest();
	  }
	  catch (e)
	  {
	     xmlHttp = false;
	  }
   }
   
   // return the created object or display an error message
   if (!xmlHttp)
      alert("Error creating the XMLHttpRequest object.");
   else
      return xmlHttp;
}

// executed automatically when a message is received from the server
function handleServerResponse(tr)
{
   // move forward only if the transaction has completed
   if (xmlHttp.readyState == 4)
   {
      // status of 200 indicates the transaction completed successfully
	  if (xmlHttp.status == 200)
	  {
	     // extract the XML received from the server
		 xmlResponse = xmlHttp.responseXML;
		 
		 // obtain the document element (the root element) of the XML structure
		 xmlDocumentElement = xmlResponse.documentElement;
		 
		 // get the text message, which is in the first child of the document element
		 resultMessage = xmlDocumentElement.firstChild.data;
		 
		 // ensure a clean canvas to write to
		 document.getElementById("ajaxDiv"+tr).innerHTML = "";
		 
		 // update the client display using the data received from the server
		 document.getElementById("ajaxDiv"+tr).innerHTML = resultMessage;
		 
		 // restart sequence
		 //setTimeout('process()', 250);
	  }
	  // a HTTP status other than 200 signals an error
	  else {
	     alert("There was a problem accessing the server: " + xmlHttp.status + " - " + xmlHttp.StatusText);
	  }
   }
}

function processCheckUsername(admincreate)
{

// make asynchronous HTTP request using the XMLHttpRequest object

   // proceed only if the xmlHttp object isn't busy
   if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
   {	  
	  // retrieve the username entered
	  username = encodeURIComponent(document.getElementById("username").value);
	  
	  if(admincreate == "0")
	  {
	     relpath = "./";
	  }
	  else {
	     relpath = "../";
	  }

	  // execute the .php page from the server
	  xmlHttp.open("GET", relpath + "tools/ajax_check_username_availability.php?username=" + username + "&admincreate=" + admincreate, true);
	  
	  // define the method to handle server responses
	  xmlHttp.onreadystatechange = function() {
	     handleServerResponse(""); //pass empty string as here there's only one ajaxDiv on the page to be updated 
	  }
	  
	  // make the server request
	  xmlHttp.send(null);
   }
   else {
       // if the connection is busy, try again after 1 second
	  setTimeOut('processCheckUsername()', 1000);
   }
}


//-->
