var xmlHttp;
var requestUrl;
var requestCount;

function makeRequest (url) {
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	xmlHttp.onreadystatechange = parseResult;
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
}

function parseResult () {
	if (xmlHttp.readyState != 4) return false;
	if (xmlHttp.status != 200) return false;
	
	var response = xmlHttp.responseXML.documentElement;
	
	if(response.hasChildNodes()) {
		var status = response.childNodes[0];
		var value = response.childNodes[1];
		var url = response.childNodes[2];
		
		var statusData = status.childNodes[0];
		var valueData = value.childNodes[0];
		var urlData = url.childNodes[0];
		if (statusData.nodeValue == "0") {
			window.location = urlData.nodeValue;
		} else if (requestCount++ > 20) {
			var div = document.getElementById("widgetStatus");
			div.innerHTML = "<i>The system is too busy now. Please try again later.</i>";
		} else if (statusData.nodeValue == "2") {
			var div = document.getElementById("widgetStatus");
			div.innerHTML = "<i>Please wait while the request is being processed ...</i>";
			window.setTimeout("checkStatus()", 3000);
		} else {
			var div = document.getElementById("widgetStatus");
			div.innerHTML = "<i>The domain seem to be not available. Please try another domain name ...</i>";
		}
	}
}

function checkStatus () {
	makeRequest (requestUrl);
}

function estimate(value) {
	var div = document.getElementById("widgetStatus");
	div.innerHTML = "<i>Please wait while the request is being processed ...</i>";
	requestCount = 0;
	requestUrl = "/widget/site?domain="+escape(value);
	checkStatus ();
}
