var KeepAliveTime = 300000; // Every 5 minutes
//KeepAliveTime = 30000; 
var KeepAliveUrl = DetermineKeepAliveUrl();
var KeepAliveTimer;
if( KeepAliveUrl != null )
	window.setTimeout('MakeKeepAliveRequest()', KeepAliveTime);



function MakeKeepAliveRequest()
{
    //alert("I'm keeping alive");
	if (!KeepAliveUrl)
		return;
		
	if (KeepAliveTimer != null)
		window.clearTimeout(KeepAliveTimer);

	var x = null;
	if (typeof XMLHttpRequest != "undefined") 
	{
		x = new XMLHttpRequest();
		
	} 
	else 
	{
		try { x = new ActiveXObject("Msxml2.XMLHTTP"); } 
		catch (e) 
		{
			try { x = new ActiveXObject("Microsoft.XMLHTTP"); } 
			catch (e) {}
		}
	}
	
	try
	{
		// don't do this asynchronously
		
		x.open("GET", KeepAliveUrl, false, "", "");
		x.send(null);
		
	}
	catch (e) {}
	
	window.setTimeout(MakeKeepAliveRequest, KeepAliveTime);
}

function DetermineKeepAliveUrl()
{
	var scripts = document.getElementsByTagName("SCRIPT");
	var i;
	var url;
	
	for (i = 0; i < scripts.length; i++)
	{
		url = scripts[i].src.toLowerCase();
		idx = url.indexOf('keepalive.js');
		if( idx != -1 )
		{
			url = url.substring( 0, idx-1 )+"/keepalive.aspx";
			//alert(url);
			return url;
		}
	}
	
	return null;
}

