// The Image file name followed by its size in KBytes.
// Global variables
var timerState = 'stopped';
var startTime;
var stopTime;
var payloadSize;
var payloadFile;

// Change the selected file
function setTestFile(testFile,testSize)
{
}


function imgError()
{
	alert("img Error");
}


function imgLoaded()
{
	if(timerState == 'started')
	{
		stopTimer();
		var deltaTime = (stopTime - startTime) /1000;
		
		if(deltaTime == 0) {
		   displayResults(0,0,0,0);
		} else {
		   var Kbps = calculateResults(deltaTime);
			var formname = document.getElementById('name').value;
			var formemail = document.getElementById('email').value;
			ajax('ajaxdiv','sendresult.php?kbps='+Kbps+'&name='+formname+'&email='+formemail,'');
		}
	}
}

// This function calculates the results
function calculateResults(deltaTime)
{
	// Convert file size into Kbps
	var fileSize = payloadSize * 8;  
	var Kbps = Math.round(fileSize/deltaTime);
	var Mbps = Math.round((Kbps/1024)*100)/100;
	
	displayResults(Kbps,deltaTime,fileSize/8,deltaTime);
	return Kbps;
}
	
// This function displays the results.
function displayResults(_kbps,deltaTime,fileSize,deltaTime)
{
	var fileInfo = document.getElementById('fileInfo');
	var mbps = document.getElementById('mbps');
	var startButton = document.getElementById('startButton');
	var info = document.getElementById('startButton');
	
	//Time and date
	var currentTime = new Date();
	var minutes = currentTime.getMinutes();
	var hours = currentTime.getHours();
	var month = currentTime.getMonth() + 1;
	var day = currentTime.getDate();
	var year = currentTime.getFullYear();
	var timeDate;
	
	timeDate = day + "/" + month + "/" + year + " ";
	if (minutes < 10)	{
		timeDate = timeDate + hours + ":" + '0' + minutes;
	} else {
		timeDate = timeDate + hours + ":" + minutes;
	}
	
	if(_kbps == 0)	{
		fileInfo.innerHTML = "Error";
		mbps.innerHTML = "Error";
		info.value = "An Error occured while testing";
		
	} else {
		fileInfo.innerHTML = fileSize/1000 + "MB file took " + deltaTime + " Secs";
		mbps.innerHTML =  _kbps + ' Kbps';
		info.value = "Test successfully completed";
		testTime.innerHTML = timeDate;
	}
	resetInterface();
}

function resetStartButton()
{
	var startButton = document.getElementById('startButton');
	startButton.value = "Perform Speed Test";
	startButton.disabled = false;
}

// Resets Buttons
function resetInterface()
{
	var startButton = document.getElementById('startButton');
	setTimeout("resetStartButton()", 2000);
}

// Function to start the timer.
function startTimer()
{
	var currentDate = new Date();
	startTime = currentDate.getTime();
	timerState = 'started';
}

// Function to stop the timer
function stopTimer()
{
	var currentDate = new Date();
	stopTime = currentDate.getTime();
	timerState = 'stopped';
}

// Function to start running the test.
function speedTest(url,fileSize)
{
	var img = new Image();
	var info = document.getElementById('startButton');
	payloadSize = fileSize;
	initOutput();
	startTimer();
	img.src = url + '?sid=' + Math.random();
	img.onload = imgLoaded;
	img.onerror = imgError;
//	alert(url);
	info.value = "Speed test in progress";
}

// Initialise some text in the HTML
function initOutput()
{
	var startButton = document.getElementById('startButton');
	var mbps = document.getElementById('mbps');
		
	startButton.disabled = true;
	mbps.innerHTML = '?';
	testTime.innerHTML = '?';
}

function changeStatus()
{
   
}

function radio_button_checker()
{
	var radio_choice = false;
	
	// Loop from zero to the one minus the number of radio button selections
	for(counter=0;counter<radio_form.radio_button.length;counter++)
	{
		// If a radio button has been selected it will return true
		// (If not it will return false)
		if (radio_form.radio_button[counter].checked)
			radio_choice = true; 
	}

	if (!radio_choice)
	{
		// If there were no selections made display an alert box 
		alert("Please select a File Size.")
		return (false);
	}	
	return (true);
}

