﻿var keepSessionTimeout = 7 * 60 * 1000 //every 5 minutes to be safe
var req = null;
var dialog = null;
var timeoutID = setTimeout("displayDialog();", keepSessionTimeout);
var closeID;

function keepSession() {
    var url = "/graphics/add.gif?" + Math.random();
    
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }

    req.open("GET", url, true);
    req.onreadystatechange = keepSessionCallback;
    req.send(null);
    //setTimeout("keepSession();", keepSessionTimeout);
}

function keepSessionCallback() {
    if (req.readyState == 4) {
        if (req.status == 200) {
            //the page request was a success                                                
        }
    }
}

function displayDialog() {
    // Open dialog
    clearTimeout(timeoutID);
    $dialog.dialog('open');
    timeoutID = setTimeout("displayDialog();", keepSessionTimeout);
    closeID = setTimeout("closeDialog();", keepSessionTimeout);
}

function closeDialog() {
    $dialog.dialog('close');
    document.location = '/login.aspx?ReturnUrl=%2ftar%2fdefault.aspx';
}

$(document).ready(function() {
    $dialog = $('<div  id="dialog-confirm" title="Session Timeout"></div>')
		.html('<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Your session will expire soon. Do you wish to continue your session?</p>')
		.dialog({
		    autoOpen: false,
		    title: 'Session Timeout',
		    resizable: false,
		    modal: true,
		    buttons: {
		        "Continue Session": function() {
		            keepSession();
		            clearTimeout(closeID);
		            $(this).dialog("close");
		        },
		        Cancel: function() {
		            clearTimeout(timeoutID);
		            $(this).dialog("close");
		        }
		    }
		});
});
