var resetFlag=0,timeOutId,logOutTimeId;
var jsessionRemain,jsessionWarning,jsessionExpiry, jCounter;
// this method will reset vairables to zero
function sessionInitialise(sessionWarning,sessionExpiry,counter) // 476,595,121
{
jsessionWarning = sessionWarning ;
jsessionExpiry = sessionExpiry ;
jCounter = counter;
destroy();
}
function destroy() {
clearTimeout(timeOutId);
timeOutId = 0;
clearTimeout(logOutTimeId);
logOutTimeId = 0;
sessionHandlerReSetter();
/* updated for DUAL UI Start*/
if ($("#sessionnav").hasClass('modal')) {
$("#sessionnav").modal("hide");
}else{
document.getElementById("sessionnav").style.display = 'none';
document.getElementById("skiptomain").style.display = '';
}
/* updated for DUAL UI End*/
}
function sessionHandlerReSetter() {
if (timeOutId > 0) {
clearTimeout(timeOutId);
timeOutId = 0;
}
if (logOutTimeId > 0) {
clearTimeout(logOutTimeId);
logOutTimeId = 0;
}
resetFlag = 0;
sessionHandlerStart();
}
// this method will show alert on header for session expire
var count;
var myVar;
function sessionHandlerWarning(){
document.getElementById("lblSessionExpire").innerHTML = '';
/* updated for DUAL UI Start*/
if ($("#sessionnav").hasClass('modal')) {
/* $("#sessionnav").modal("show");*/
$('#sessionnav').modal({
keyboard: true,
show: true
});
}else{
document.getElementById("sessionnav").style.display = '';
document.getElementById("skiptomain").style.display = 'none';
}
/* updated for DUAL UI End*/
clearInterval(myVar);
count =counter ;
myVar = setInterval(countDownMsg, 1000);
}
// this method will countdown timer in alert
function countDownMsg(){
count=count-1;
if (count <= 0)
{
clearInterval(myVar);
return;
}
var minutes = Math.floor(count / 60);
var seconds = count - minutes * 60;
var minVal = '';
var secVal = '';
var alertMsg = '';
if(minutes > 0)
minVal = minutes+' minute(s)';
if(minutes > 0 && seconds > 0)
secVal = ' and '+seconds+' seconds';
else if(seconds > 0)
secVal = seconds+' seconds';
if ($("#sessionnav").hasClass('modal')) {
alertMsg = 'Total Session time is 45 minutes. System has been idle for last 36 minutes. System will log out if there is no activity in the next 9 minutes. To stay logged in Click Ok';
document.getElementById("lblSessionExpire").innerHTML = alertMsg;
//document.getElementById("lblSessionExpire").innerHTML = "You will automatically logged out in "+ minVal + secVal + " due to inactivity. To stay logged in Click Ok";
}
else{
alertMsg = 'Total Session time is 45 minutes. System has been idle for last 36 minutes. System will log out if there is no activity in the next 9 minutes. To stay logged in ';
document.getElementById("lblSessionExpire").innerHTML = alertMsg+"CLICK HERE"+".";
//document.getElementById("lblSessionExpire").innerHTML = "You will automatically logged out in "+ minVal + secVal + " due to inactivity. To stay logged in "+"CLICK HERE"+".";
}
}
function fn_ResetSession(){
var token = $("meta[name='_csrf']").attr("content");
var xmlHttpRequest = getHttpXMLRequest();
/* xmlHttpRequest.onreadystatechange = getReadyStateHandlerColName(xmlHttpRequest); */
xmlHttpRequest.onreadystatechange = getReadyStateHandlerForSession(xmlHttpRequest);
xmlHttpRequest.open("POST", "webHP?requestType=ApplicationRH&actionVal=resetSession&queryType=Select&screenId=114&_csrf="+token, false);
xmlHttpRequest.send();
}
function getReadyStateHandlerForSession(xmlHttpRequest)
{
return function()
{
if (xmlHttpRequest.readyState == 4)
{
if (xmlHttpRequest.status == 200)
{
sessionInitialise(jsessionWarning,jsessionExpiry,jCounter);
}
}
};
}
function getReadyStateHandlerColName(xmlHttpRequest)
{
return function()
{
if (xmlHttpRequest.readyState == 4)
{
if (xmlHttpRequest.status == 200)
{
sessionInitialise(jsessionWarning,jsessionExpiry,jCounter);
}
}
};
}
// this method will call logout function if no activity performed for specific period of time
function sessionHandlerStart()
{
if(resetFlag==0)
{
var tempSessionWarning=jsessionWarning*1000;
timeOutId=setTimeout('sessionHandlerWarning()',tempSessionWarning);
var sessionExpiryTimeOut = jsessionExpiry;
logOutTimeId = setTimeout(function(){ fnLogout(); },sessionExpiryTimeOut*1000);
}
else
{
sessionHandlerReSetter();
}
}
function getHttpXMLRequest()
{
var xmlHttpReq;
// to create XMLHttpRequest object in non-Microsoft browsers
if (window.XMLHttpRequest)
{
xmlHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
//to create XMLHttpRequest object in later versions of Internet Explorer
xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (exp1)
{
try
{
//to create XMLHttpRequest object in later versions of Internet Explorer
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (exp2)
{
//xmlHttpReq = false;
document.getElementById("incUserName").innerHTML = ("Exception in getXMLHttpRequest()!");
}
}
}
return xmlHttpReq;
}