
var __flashRemoteLoggerQueue = '';
var __globalScreenName;

var _browser=navigator.appName;
var _b_version=navigator.appVersion;
var _version=parseFloat(_b_version);

var _remoteLogTimeout = 10000;

if ( window.opera ) {
    history.navigationMode = 'compatible';
    _remoteLogTimeout = 3000;
}

var __remoteLogTimer = setInterval("sendCurrentStats()", _remoteLogTimeout);

function sendCurrentStats() {
    if(__flashRemoteLoggerQueue.length==0)return;
    xmlhttp=null;
    // code for Mozilla, etc.
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    // code for IE
    else if (window.ActiveXObject)
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (xmlhttp!=null)
    {
        xmlhttp.open("POST",'/flashlogger.html',true);
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        var content = "q="+escape(__flashRemoteLoggerQueue)+"&s="+__globalScreenName;
        if(typeof gVideoSessionID!='undefined') {
            content += "&vsi="+gVideoSessionID;
        }
        xmlhttp.send(content);
        __flashRemoteLoggerQueue = '';
        return true;
    }
    else
    {
        //browser does not support XMLHTTP
        return;
    }

}

function sendStats(screenname,component,messageID,info,browserinfo) {
    var d = new Date();
    if(this.i==undefined) {
        statsRegisterEvents();
        this.i = 0;
        this.startTime = Date.parse(d.toUTCString());
        // log page load
        __globalScreenName = screenname;
        var bi = _browser.substring(0,3)+"/"+_version;
        sendStats(screenname,'page', 17, window.location.href, bi);
    }
    this.i++;
    var content = "c="+escape(component)+"&m="+escape(messageID)+"&e="+this.i+"&t="+(Date.parse(d.toUTCString())/1000);
    if(info) {
        content += "&i="+escape(info);
    }
    if(browserinfo) {
        content += "&b="+escape(browserinfo);
    }
    __flashRemoteLoggerQueue += '^'+content;
}

function sendAllStats() {
    // log page unload
    sendStats(__globalScreenName,'page', 18, window.location.href);
    xmlhttp=null;
    // code for Mozilla, etc.
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    // code for IE
    else if (window.ActiveXObject)
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (xmlhttp!=null)
    {
        xmlhttp.open("POST",'/flashlogger.html',false);
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        var content = "q="+escape(__flashRemoteLoggerQueue)+"&s="+__globalScreenName;
        if(typeof gVideoSessionID!='undefined') {
            content += "&vsi="+gVideoSessionID;
        }
        xmlhttp.send(content);
        return true;
    }
    else
    {
        //browser does not support XMLHTTP
        return;
    }
}


function statsRegisterEvents() {
    if(window.addEventListener) {
        window.addEventListener("unload", sendAllStats, false);
        window.addEventListener("close", sendAllStats, false);
    }
    else if(window.attachEvent) {
        window.attachEvent("onbeforeunload", sendAllStats);
    }
    else {
        window.onunload = sendAllStats;
    }
}

