﻿// JScript File

var RandomNumber = 0;
var KeepAlivePath = "";
var Pathext = "";

function CreateXmlReq()
{
    var objXmlReq;
	try{
		objXmlReq = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
		try{
			objXmlReq = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(oc){
			objXmlReq = null;
		}
	}
	if(!objXmlReq && typeof XMLHttpRequest != "undefined"){
		objXmlReq = new XMLHttpRequest();
	}
	return objXmlReq;
}

function KeepSessionAlive(ext){   
    if(ext==null || ext=="undefined"){
        Pathext = "";
    }
    RandomNumber = Math.random();
    KeepAlivePath = Pathext + "KeepSessionAlive.aspx?randomnumber=" + RandomNumber;
    var xmlReq = CreateXmlReq();
    if(xmlReq){        
        xmlReq.onreadystatechange = function(){
            if(xmlReq.readyState==4){
                if(xmlReq.status==200){
                    CallKeepSessionAlive(Pathext,60000);
                }else if(xmlReq.status==404){
                    Pathext = Pathext + "../";
                    CallKeepSessionAlive(Pathext,100);
                }
            }
        }
        xmlReq.open("GET",KeepAlivePath);
        xmlReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xmlReq.send(null);
    }else{
        var KeepSessionAliveImage = new Image();
        var DownloadImagePath = Pathext + "images/pixel_trans.gif";
        KeepSessionAliveImage.src = DownloadImagePath + RandomNumber;
        KeepSessionAliveImage.onerror = SetPathext;
        KeepSessionAliveImage.onload = Retry;
        KeepSessionAliveImage.onabort = Retry;
    }
}

function SetPathext(){
    Pathext += "../";
    CallKeepSessionAlive(Pathext,100);
}

function Retry(){
    CallKeepSessionAlive(Pathext,60000);
}

function CallKeepSessionAlive(ext,delay){
    setTimeout("KeepSessionAlive('"+ ext +"');",delay);
}

function triggerSessionAlive(){
    if(RandomNumber==0){
	    setTimeout("KeepSessionAlive()",1000);
	    RandomNumber = Math.random();
    }
}

onfocus = triggerSessionAlive;
onload = triggerSessionAlive;
