﻿/*
--------------------------------------------------
Rally #US414: Idle Session timeout utility
Developed on: 24 Dec, 2010
Developed by: Darshit (cyb)
--------------------------------------------------
*/
var OldX = 0;
var OldY = 0;
var NewX = 0;
var NewY = 0;
var Ticker = 0;
function SetCoordinates() {
    try {
        var docMainFrame = document.getElementById('MainFrame').contentWindow.document;
        var docLeftFrame = document.getElementById('LeftFrame').contentWindow.document;
        var docTopFrame = document.getElementById('TopFrame').contentWindow.document;
        var docWorkFrame = document.getElementById('WorkFrame').contentWindow.document;
        var docFrameMain = this.document;

        if (navigator.appName == "Microsoft Internet Explorer") {
            docMainFrame.attachEvent("onmousemove", HandleFrameMouseMoveEvent);
            docLeftFrame.attachEvent("onmousemove", HandleFrameMouseMoveEvent);
            docTopFrame.attachEvent("onmousemove", HandleFrameMouseMoveEvent);
            docWorkFrame.attachEvent("onmousemove", HandleFrameMouseMoveEvent);
            docFrameMain.attachEvent("onmousemove", HandleFrameMouseMoveEvent);
        }
        else {
            docMainFrame.addEventListener("mousemove", HandleFrameMouseMoveEvent, false);
            docLeftFrame.addEventListener("mousemove", HandleFrameMouseMoveEvent, false);
            docTopFrame.addEventListener("mousemove", HandleFrameMouseMoveEvent, false);
            docWorkFrame.addEventListener("mousemove", HandleFrameMouseMoveEvent, false);
            docFrameMain.addEventListener("mousemove", HandleFrameMouseMoveEvent, false);
        }
    }
    catch (e)
    { }
}
function HandleFrameMouseMoveEvent(e) {
    try {
        NewX = (e || event).clientX;
        NewY = (e || event).clientY;
        if (OldX == null)
            OldX = NewX;
        if (OldY == null)
            OldY = NewY;
        //alert(NewX + '||' + NewY);
    }
    catch (e) {
    }
}
function SetFrameOtherEvents() {
    try {
        var winMainFrame = document.getElementById('MainFrame').contentWindow;
        var docMainFrame = document.getElementById('MainFrame').contentWindow.document;
        var docLeftFrame = document.getElementById('LeftFrame').contentWindow.document;
        var docTopFrame = document.getElementById('TopFrame').contentWindow.document;
        var docWorkFrame = document.getElementById('WorkFrame').contentWindow.document;
        var docFrameMain = this.document;

        if (navigator.appName == "Microsoft Internet Explorer") {
            //winMainFrame.attachEvent("onscroll", HandleFrameScrollEvent);

            docMainFrame.attachEvent("onmousedown", ResetTicker);
            docMainFrame.attachEvent("onkeypress", ResetTicker);

            docLeftFrame.attachEvent("onmousedown", ResetTicker);
            docLeftFrame.attachEvent("onkeypress", ResetTicker);

            docTopFrame.attachEvent("onmousedown", ResetTicker);
            docTopFrame.attachEvent("onkeypress", ResetTicker);

            docWorkFrame.attachEvent("onmousedown", ResetTicker);
            docWorkFrame.attachEvent("onkeypress", ResetTicker);

            docFrameMain.attachEvent("onmousedown", ResetTicker);
            docFrameMain.attachEvent("onkeypress", ResetTicker);
        }
        else {
            docMainFrame.addEventListener("mousedown", ResetTicker, false);
            docMainFrame.addEventListener("keypress", ResetTicker, false);

            docLeftFrame.addEventListener("mousedown", ResetTicker, false);
            docLeftFrame.addEventListener("keypress", ResetTicker, false);

            docTopFrame.addEventListener("mousedown", ResetTicker, false);
            docTopFrame.addEventListener("keypress", ResetTicker, false);

            docWorkFrame.addEventListener("mousedown", ResetTicker, false);
            docWorkFrame.addEventListener("onkeypress", ResetTicker, false);

            docFrameMain.addEventListener("mousedown", ResetTicker, false);
            docFrameMain.addEventListener("keypress", ResetTicker, false);
        }
    }
    catch (e) {
    }
}
function TickWatch() {
    try {
        if (OldX != null && OldY != null && NewX != null && NewY != null) {
            //alert(OldX + '||' + OldY + '||' + NewX + '||' + NewY);
            if (OldX == NewX && OldY == NewY) {
                try {
                    var temp = document.getElementById('MainFrame').contentWindow.document.location;
                    Ticker = Ticker + 1;
                }
                catch (e) {
                    if (e.message.search(/access/i) > -1 || e.message.search(/permission/i) > -1)
                        Ticker = 0;
                }
            }
            else {
                Ticker = 0;
                OldX = NewX;
                OldY = NewY;
            }
            if (Ticker > UserTimeOut) {
                window.location.replace('LogOff.aspx');
                //alert('2. Logout' + OldX + '||' + OldY + '||' + NewX + '||' + NewY);
                return false;
            }
        }
        setTimeout('TickWatch()', 1000);
    }
    catch (e) {
    }
}
function ResetTicker() {
    try {
        Ticker = 0;
    }
    catch (e) {
    }
}
TickWatch();
