/* SessionPinger.js 
   Build time: 13/04/2009-14:36:54  Copyright (c) 2008-2131 Patrick 'Zener' Brunet */

/* Requires MainLinker.js */

function InstallPinger()
{
    setInterval( 'PingSession()', 15 * 60 * 1000); /* Every 15 mn */
}

function PingSession() /* Actually reload the page */
{
    var catUrl = new Array();
    var catTemp = new Array();
    var tSeparator, tUrl;
    var bNoAmps;
    var uoPing, i, j;

    tSeparator = "?";
    uoPing = 1;
    catUrl = unescape( location.href).split( "?");
    tUrl = catUrl[0];
    if( catUrl.length > 1)
    {
        j = catUrl[1].indexOf( "=");
        if( j >= 0 && catUrl[1].substr( 0, j) == "ka")
            uoPing = 1 + parseInt( catUrl[1].substr( j + 1), 10);
        else
        {
            catTemp = catUrl[1].split( "&");
            tUrl = tUrl + "?" + catTemp[0];
            tSeparator = "&";
        }
    }
    catUrl = unescape( location.href).split( "&");
    /* Now we can drop catUrl[0] in any case */
    for( i = catUrl.length - 1; i >= 0; i--)
    {
        j = catUrl[i].indexOf( "=");
        if( j >= 0 && catUrl[i].substr( 0, j) == "ka")
        {
            uoPing = 1 + parseInt( catUrl[i].substr( j + 1), 10);
            break;
        }
    }
    /* The pages generally expire after 1 day (HTML meta) to get a chance to be indexed, */
    /* and we don't rely on the proxy to cache properly: this keep-alive count ensures   */
    /* the page will be queried from the server and so the session properly pinged.      */
    for( j = 1; j < catUrl.length; j++)
        if( j != i)
        {
            tUrl = tUrl + tSeparator + catUrl[j];
            tSeparator = "&";
        }
    tUrl = tUrl + tSeparator + "ka=" + uoPing;
    location.href = tUrl;
}

MainLinkerRegister( InstallPinger);

/* End */

