band = {};
band.testIndex = -1;
band.testCount = 6;
band.xhr;
band.testLocation = "speedtesting/test";
band.results = [];
band.currentResult;
band.startDate;
band.onFinish;

band.setUp = function(evt){
	band.doContinue();
}
band.record = function(req){
	var elapsed = new Date() - band.startDate;
	
	var contentLen = req.getResponseHeader("Content-Length");
	
	band.results[band.testIndex] = contentLen*1000 / elapsed;
	
}
band.doContinue = function(){
	if(band.testIndex<band.testCount)
	{
		band.testIndex++;
		band.xhr = band.getXmlHttpRequestObj();
		band.startDate = new Date();
		band.sendRequest();
	}
	else band.doEnd();
}
band.doEnd = function(){
	var result=0;
	for(var i=0;i<band.results.length;i++)
	{
		result+=band.results[i];
	}
	var rest = result/band.testCount;
	var obj = {
		bitrate:rest
	};
	band.onFinish(obj);
}
band.handleRequest = function(){
	if(band.xhr.readyState==4)
	{
		band.record(band.xhr);
		band.doContinue();
	}
}
band.getXmlHttpRequestObj = function()
{
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		document.getElementById('p_status').innerHTML = 
		'Status: Cound not create XmlHttpRequest Object.' +
		'Consider upgrading your browser.';
	}
}
band.sendRequest = function()
{
	band.xhr.open("GET",band.testLocation+band.testIndex+".xml",true);
	band.xhr.onreadystatechange = band.handleRequest;
	band.startDate = new Date();
	band.xhr.send(null);
}


