﻿ function SendClientTimeZoneOffset()
    {
        if (window.location.href.indexOf("offset") > 0)
            return;
        var now = new Date();            
        var offset = now.getTimezoneOffset();  
        setTimeout("window.location.href = '" + window.location.href + (window.location.href.indexOf("?") > 0 ? "&" : "?") + "offset=" + offset + "'", 200);                 
    }
    
    function InitNotifyChanges()
    {
        if (window.location.href.indexOf("?offset") < 0)
            return;
        setTimeout("NotifyChanges()", 15000);
    }
    
    function NotifyChanges()
    { 
        // remove expired sessions
        var tbl = document.getElementById("tblSessions");
        var countRows = tbl.rows.length;;
        var userDate = new Date();        
        
        for(var i = 1; i < countRows; i++)
        {         
            var eventTime = document.getElementById("repEvents_ctl" + (i < 10 ? "0" + i : i) + "_hiddenDate");  
            if(eventTime)
            {          
                var evTime = new Date(eventTime.value);
                // disable row if session is out of date
                if(userDate > evTime)
                {
                    var eventRow = document.getElementById("repEvents_ctl" + (i < 10 ? "0" + i : i) + "_trEvent");
                    if(eventRow && eventRow.style.display != "none")
                    {
                        document.getElementById("repEvents_ctl" + (i < 10 ? "0" + i : i) + "_trEvent").style.display = "none";                        
                        // update filtered session counter here
                        var sessionCountElem = document.getElementById("spanSessionCount");
                        sessionCountElem.innerHTML = sessionCountElem.innerHTML-1;
                    }
                }  
                else
                {
                    // previous item not deleted, stop checking
                    break;
                } 
            }            
        }
        
        // highlight new upcoming sessions (< 30min)
        var changed = false;
        for(var x = 1; x < countRows; x++)
        {  
            var helperSpace = document.getElementById("repEvents_ctl" + (x < 10 ? "0" + x : x) + "_helperSpace"); 
            if(helperSpace && helperSpace.innerHTML != "")
            {
                // first elem that is not within X min range, check if it should be added
                var tdLink = document.getElementById("repEvents_ctl" + (x < 10 ? "0" + x : x) + "_tdLink"); 
                var eventTime = document.getElementById("repEvents_ctl" + (x < 10 ? "0" + x : x) + "_hiddenDate");            
                var evTime = new Date(eventTime.value);
                if(addMinutes(evTime, -30) < userDate)
                {
                    var image = document.getElementById("repEvents_ctl" + (x < 10 ? "0" + x : x) + "_imgLink");                     
                    helperSpace.innerHTML = "";
                    image.style.visibility = "visible";
                    tdLink.className = "tdLink";
                    changed = true;                    
                }
                else
                {
                    if(changed)
                    {  
                        // first elem that was not changed, update style class                  
                        tdLink.className = "tdLink2first";
                    }
                    // stop checking
                    break;                    
                }
            } 
        }
        InitNotifyChanges();
    }
    
    function addMinutes(dateTimeObj, iMinutes)
    {
        var length = iMinutes * 60 * 1000;
        var iseconds = dateTimeObj.getTime();
        iseconds += length;
        var dt = new Date(iseconds);
        return dt;
    } 
