function requestData(url, userFunction)
{
	http_request = false;
	if(window.XMLHttpRequest)
	{
		// Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/xml');
		}
	}
	else if(window.ActiveXObject)
	{
		// IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if(!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) {
			userFunction(http_request);
		}
	}
	http_request.open('GET', url, true);
	http_request.send(null);
}

function pushData(url, data)
{
	http_request = false;
	if(window.XMLHttpRequest)
	{
		// Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if(window.ActiveXObject) {
		// IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if(!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	http_request.open('POST', url, false);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(data);
	return http_request.responseText;
}

function requestDataExt(url, data, userFunction)
{
	http_request = false;
	if(window.XMLHttpRequest)
	{
		// Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/xml');
		}
	}
	else if(window.ActiveXObject)
	{
		// IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if(!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function() {
		if(http_request.readyState == 4) {
			userFunction(http_request);
/* Get smart, handle some other cases */
		} else if(url == url_path+'/'+account+'/timestamp/') {
if(http_request.readyState != 1 && http_request.readyState != 2
 && http_request.readyState != 3) {
			alert(http_request.readyState);
}
/**/
		}
	}
	http_request.open('POST', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.setRequestHeader("Content-length", data.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(data);
	return true;
}

function pushDataExt(url, data, userFunction)
{
	http_request = false;
	if(window.XMLHttpRequest)
	{
		// Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/xml');
		}
	}
	else if(window.ActiveXObject)
	{
		// IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if(!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) {
			userFunction(http_request);
		}
	}
	http_request.open('POST', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.setRequestHeader("Content-length", data.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(data);
	return true;
}
