﻿/* measure browser connection speed in Kbps, add any other browser data, pass data to server via cookie */
var cstImageURL = rootPath + '/js/tools/browser/28629b.gif';
var cstImageSize = '28629';
var cstCookieName = 'ANX-T-BROWSER';
var cstSpeed = -1; /* -1 = undetermined speed */
var cstCookies = document.cookie;
var cstCookieStart = cstCookies.indexOf(cstCookieName + '=');

function RunCST(){
	cstStartTime = new Date();
	var cstImageTest = new Image(0,0);
	cstImageTest.onload = CalcCST;
	cstImageTest.src = cstImageURL + "?anxcst=" + cstStartTime.getTime(); /* randomize url to prevent image cache */
}

function CalcCST(){
	var flashVersion = getFlashVersion(); /* function of flashobject.js library */
	cstEndTime = new Date();
	var cstDownloadTime = (cstEndTime.getTime() - cstStartTime.getTime())/1000;
	if (cstDownloadTime == 0) cstDownloadTime = .001;
	var cstKBytes = cstImageSize/1024;
	var cstLineSpeed = cstKBytes/cstDownloadTime;
	cstSpeed = (Math.round((cstLineSpeed*8)*10*1.02))/10; /* Kbps */
	var cstExpiration = new Date();
	cstExpiration.setTime(cstExpiration.getTime() + 86400000); /* 86400000 = 24 hours */
	/* write cookie: speed(kbps)|width|height|flash version */
	document.cookie = cstCookieName + "=" + cstSpeed + '|' + screen.width + '|' + screen.height + '|' + flashVersion + "; expires=" + cstExpiration.toGMTString() + "; path=/";
}

if (cstCookieStart != -1){
	cstCookieStart += cstCookieName.length + 1;
	var cstCookieEnd = cstCookies.indexOf(";", cstCookieStart);
	if (cstCookieEnd == -1) cstCookieEnd = cstCookies.length;
	cstSpeed = cstCookies.substring(cstCookieStart, cstCookieEnd);
} else {
	window.onload = RunCST;
}

