﻿/* measure browser connection speed in Kbps, add any other browser data, pass data to ANX via cookie */
var cstCookieName = 'ANX-TB-' + rootId;
var cstImageURL = rootPath + '/js/tools/browser/28629b.gif';
var cstImageSize = '28629';
var cstSpeed = -1; /* -1 = undetermined speed */
var cstCookies = document.cookie;
var cstCookieStart = cstCookies.indexOf(cstCookieName + '=');

function CalcCST(){
	var flashVersion = 0;
	if (navigator.plugins && navigator.mimeTypes.length) {
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			var y = x.description;
   			flashVersion = y.charAt(y.indexOf('.')-1);
		}
	} else {
		result = false;
	    for(var i = 15; i >= 3 && result != true; i--){
   			execScript('on error resume next: result = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.'+i+'"))','VBScript');
   			flashVersion = i;
   		}
	}
	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 {
	$(document).ready(function(){ /* initialize load via jQuery */
		cstStartTime = new Date();
		var cstImageTest = new Image(0,0);
		cstImageTest.onload = CalcCST;
		cstImageTest.src = cstImageURL + "?anxcst=" + cstStartTime.getTime(); /* randomize url to prevent image cache */
   });
}


