// 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("Error creating the XMLHttpRequest object.");
	else
		return xmlHttp;
}

var form_type = "";
// make asynchronous HTTP request using the XMLHttpRequest object
function get_country_city(ltype)
{
	form_type = ltype;
	if(ltype == "india")
	{
		
		document.form_india.city.options.length = 0;
		if(document.form_india.state.value == "") return;
		// proceed only if the xmlHttp object isn't busy
		if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
		{
			
			// execute the quickstart.php page from the server
			xmlHttp.open("GET", "/get_city_india.php?state=" + document.form_india.state.value, true);
			// define the method to handle server responses
			xmlHttp.onreadystatechange = handleServerResponse;
			// make the server request
			xmlHttp.send(null);
		}
		else
			// if the connection is busy, try again after one second
			setTimeout('checkEmail()', 1000);
		}
	else
	{
		document.form_intl.city_intl.options.length = 0;
		if(document.form_intl.country_intl.value == "") return;
		// proceed only if the xmlHttp object isn't busy
		if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
		{
			// execute the quickstart.php page from the server
			xmlHttp.open("GET", "/get_city_intl.php?country=" + document.form_intl.country_intl.value, true);
			// define the method to handle server responses
			xmlHttp.onreadystatechange = handleServerResponse;
			// make the server request
			xmlHttp.send(null);
		}
		else
			// if the connection is busy, try again after one second
			setTimeout('checkEmail()', 1000);
	}
}

// executed automatically when a message is received from the server
function handleServerResponse()
{
	
	if(form_type == "india")
	{
		// 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;
				// 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 the document element
				helloMessage = xmlDocumentElement.firstChild.data;
				// update the client display using the data received from the server
				//alert(helloMessage);
				var var_response = helloMessage.split(",");
				for(var i = 0; i < var_response.length; i++)
				{
					document.form_india.city.options[i] = new Option(var_response[i], var_response[i].toLowerCase());
				}
				/*if(helloMessage == "yes")
					document.getElementById("email_message").innerHTML = "<font size='2' color='red'><i>Your Email ID already exists. Please try some other Email ID</i></font>";
				else
					document.getElementById("email_message").innerHTML = '';*/
			}
			// a HTTP status different than 200 signals an error
			else
			{
				//alert("There was a problem accessing the server: " + xmlHttp.statusText);
			}
		}
	}
	else
	{
		// 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;
				// 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 the document element
				helloMessage = xmlDocumentElement.firstChild.data;
				// update the client display using the data received from the server
				//alert(helloMessage);
				var var_response = helloMessage.split(",");
				for(var i = 0; i < var_response.length; i++)
				{
					document.form_intl.city_intl.options[i] = new Option(var_response[i], var_response[i].toLowerCase());
				}
				/*if(helloMessage == "yes")
					document.getElementById("email_message").innerHTML = "<font size='2' color='red'><i>Your Email ID already exists. Please try some other Email ID</i></font>";
				else
				document.getElementById("email_message").innerHTML = '';*/
			}
			// a HTTP status different than 200 signals an error
			else
			{
				//alert("There was a problem accessing the server: " + xmlHttp.statusText);
			}
		}
	}
}