var request = new Object();
var lastRequest = new Date();
var lastResponse = new Date();

function makeRequest()
{
	var xmlhttp=false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	 try {
	  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
	  try {
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (E) {
	   xmlhttp = false;
	  }
	 }
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	if(!request) alert('Unable to create XML-objekt.')
	else request = xmlhttp

}

function sendRequest(url, data)
{
	
	//alert('Sending request...' + data);
	
	request.onreadystatechange = onResponse;

	/*
	if(document.location.href.indexOf('translate.google.com') > 0) {
		
		// Use JSONscriptRequest (JSONscriptRequest.js)

		if(data.length > 0) data += '&';
		
		data += 'j=son'
	
		var objSCript = new JSONscriptRequest(url + '?' + data);
		
		objSCript.buildScriptTag();
		objSCript.addScriptTag();
		objSCript.removeScriptTag();
	}
	*/
	

	request.open("GET", url + '?' + data, true);
	
	// Clear common headers that we do not need

	//request.setRequestHeader('User-Agent', '');
	request.setRequestHeader('Accept', '');
	request.setRequestHeader('Accept-Language', '');
	//request.setRequestHeader('Accept-Encoding', '');
	//request.setRequestHeader('Accept-Charset', '');
	//request.setRequestHeader('Referer', '');
	//request.setRequestHeader('Cookie', '');


	if(IE) {
		safeSet("User-Agent", 'IE');
	}
	else if(FIREFOX) {
		safeSet("User-Agent", null);
	}


	//showText(null, null, "Sending request to " + url + ' with data=' + data);

	lastRequest = new Date();

	request.send(null);
	
	
}

function checkReadyState(obj)
{
	if(obj.readyState == 4)
	{
		if(obj.status == 200)
		{
			//lastUpdate = new Date(); // Needs to be here because
			return true;
		}
		else
		{
			showText(null, null, "HTTP Error " + obj.status + ' Body:' + request.responseText);
		}
	}
	return false;
}

function onResponse()
{

	if(checkReadyState(request))
	{
		//alert('Got response:' + request.responseText);
		lastResponse = new Date();
		
		delay = (lastResponse.getTime() - lastRequest.getTime());
		
		showResult(request.responseText);
	}
}


function safeSet(k, v) {
	try {
		request.setRequestHeader(k, v);
	} catch(e) {}
}


