function makeHttpObject() {
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		try {return new XMLHttpRequest();}
		catch (e) {return false;}
	} else if (window.ActiveXObject) { // IE
		try {return new ActiveXObject('Msxml2.XMLHTTP');}
		catch (e) {
			try {return new ActiveXObject('Microsoft.XMLHTTP');}
			catch (e) {return false;}
		}
	} else {
		return false;
	}

}

function makeHttpRequest(url, func, method, params) {
	var request	 = makeHttpObject();
	
	if (!request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	} else if(func == 'return') {
		request.open(method, url, false);
		request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
		request.send(params);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				if (request.status == 200) {
					return request.responseText;
				} else {
					alert('There was a problem with the request.');
				}
			}
		};
		
		if (request.status == 200) {
			return request.responseText;
		} else {
			alert('There was a problem with the request.');
		}
	} else {
		request.open(method, url, true);
		request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
		request.send(params);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				if (request.status == 200) {
					func(request.responseText);
				} else {
					alert('There was a problem with the request.');
				}
			}
		};
	}
}

function keepalive(module, to) {
	if(to == null)
		to	 = 120000;
	
	if(makeHttpRequest('keepalive.php', 'return', 'POST', 'module='+module) == '1')
		window.timeout	 = window.setTimeout(function(){keepalive(module);module=null;}, to);
	else
		window.location	 = 'index.php';
}
