var kaHttpRequest = false;
var kaOldSessionId = '';
if (typeof kaDebug == 'undefined')
{
var kaDebug = false;
}
if (typeof kaServerPage == 'undefined')
{
var kaServerPage = 'session.asp';
}
if (typeof kaInterval == 'undefined')
{
var kaInterval = 60;
}
if (typeof kaOkMessage == 'undefined')
{
var kaOkMessage = 'Session alive';
}
if (typeof kaExpiredMessage == 'undefined')
{
var kaExpiredMessage = 'Session expired';
}
if (typeof kaErrorMessage == 'undefined')
{
var kaErrorMessage = 'Session check error';
}
if (typeof kaStatusElementID == 'undefined')
{
var kaStatusElementID = 'sessionstatus';
}
kaAjax('POST', kaServerPage, '', kaStatusElementID);
setInterval("kaAjax('POST', kaServerPage, '', kaStatusElementID)", kaInterval * 1000);
function kaAjax(httpRequestMethod, url, parameters, target)
{
kaHttpRequest = false;
document.getElementById(target).innerHTML = 'Wait...'
if (window.XMLHttpRequest)
{ // For Mozilla, Safari, Opera, IE7+
kaHttpRequest = new XMLHttpRequest();
if (kaHttpRequest.overrideMimeType)
{
kaHttpRequest.overrideMimeType('text/plain');
//Change MimeType to match the data type of the server response.
//Examples: "text/xml", "text/html", "text/plain"
}
}
else if (window.ActiveXObject)
{ // For IE6
try
{
kaHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
kaHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{}
}
}
if (!kaHttpRequest)
{
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
kaHttpRequest.onreadystatechange = function() {updateElement(target);};
if (httpRequestMethod == 'GET')
{
var ser = Math.round(Math.random()*1000000); // Anti-caching random number
kaHttpRequest.open('GET', url + '?' + parameters + '&random=' + ser, true);
kaHttpRequest.send(null);
}
else if (httpRequestMethod == 'POST')
{
kaHttpRequest.open('POST', url, true);
kaHttpRequest.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
kaHttpRequest.send(parameters);
}
else
{
alert('Sorry, unsupported HTTP method');
}
}
function updateElement(target)
{
if (kaHttpRequest.readyState == 4)
{
if (kaDebug == true)
{
alert(kaHttpRequest.responseText);
}
if (kaHttpRequest.status == 200)
{
if (kaOldSessionId == '')
{
kaOldSessionId = kaHttpRequest.responseText;
}
if (kaHttpRequest.responseText == kaOldSessionId)
{
document.getElementById(target).innerHTML = kaOkMessage;
}
else
{
document.getElementById(target).innerHTML = kaExpiredMessage;
}
}
else
{
document.getElementById(target).innerHTML = kaErrorMessage;
}
}
}