// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject(); 

// retrieves the XMLHttpRequest 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("Извините, в Вашем браузере этот раздел не работает.");
  else 
    return xmlHttp;
}

// make asynchronous HTTP request using the XMLHttpRequest object 
function process()
{
  // proceed only if the xmlHttp object isn't busy
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
    // retrieve the name typed by the user on the form
    name = encodeURIComponent(document.getElementById("myName"+cardnumber).value);
//   name = document.getElementById("myName"+cardnumber).value;

	if (name != '')
     {
	    // execute the quickstart.php page from the server
	    xmlHttp.open("GET", "quickstart.php?name=" + name, true);  
	    // define the method to handle server responses
	    xmlHttp.onreadystatechange = handleServerResponse;
	    // make the server request
	    xmlHttp.send(null);
	  }
	 else
	  {
	document.getElementById("myName"+cardnumber).style.background="#FFFFFF";
	document.getElementById("divMessage"+cardnumber).innerHTML='';
	  }
  }
  else
    // if the connection is busy, try again after one second  
    setTimeout('process()', 1000);
}

// executed automatically when a message is received from the server
function handleServerResponse() 
{
  // 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 retrieved from the server

      xmlResponse = xmlHttp.responseXML;
      xmlDocumentElement = xmlResponse.documentElement;
	
	 errorArray=xmlDocumentElement.getElementsByTagName('error');

	  if (errorArray.item(0).firstChild.data == 'none')
		{document.getElementById("myName"+cardnumber).style.background="#FFCCCC";}
	  else if (errorArray.item(0).firstChild.data == 'one')
		{document.getElementById("myName"+cardnumber).value=xmlDocumentElement.getElementsByTagName('cardname').item(0).firstChild.data;
		 document.getElementById("myName"+cardnumber).style.background="#FFFFFF";}
	  else 
		{document.getElementById("myName"+cardnumber).style.background="#CCFFCC";}

	  if (errorArray.item(0).firstChild.data=="some")
		 {
		  optionArray=xmlDocumentElement.getElementsByTagName('option');
		  elementsNumber=optionArray.length;
		  if (elementsNumber==1) {elementsNumber=2;}
		  if (elementsNumber > 10) {elementsNumber=10;}
	      cardVariants="<select id='CardSelector' size='"+elementsNumber+"' onChange=\"SelectCardFromHelp(document.getElementById('CardSelector').value);\" style='width:300; background=#FFFFCC;'>";
		  for (i=0; i < optionArray.length; i++)
			{
		      cardVariants = cardVariants + '<option value="'+optionArray.item(i).firstChild.data+'">'+optionArray.item(i).firstChild.data+'</option>';
			}
	      cardVariants = cardVariants + "</select>";

		  document.getElementById("divMessage"+cardnumber).innerHTML=cardVariants;

			 }
	   else {
		  document.getElementById("divMessage"+cardnumber).innerHTML = '';
			}	

      // restart sequence

    } 
    // a HTTP status different than 200 signals an error
    else 
    {
      alert("There was a problem accessing the server: " + xmlHttp.statusText);
    }
  }

}
function SelectCardFromHelp(card)
{
document.getElementById("myName"+cardnumber).value=card;
document.getElementById("myName"+cardnumber).style.background="#FFFFFF";
document.getElementById("divMessage"+cardnumber).innerHTML='';
}
