/// 2011-07-25 - nickcl
///	 Added window.alert msg for debugging variables
/// 2011-08-09 - nickcl
///	Fixed bug with recording KB rather than kb.
///

function test_completed(download_speed, upload_speed, latency, jitter, packet_loss, server_id) {
        download_rate = Math.round((download_speed/8)*10)/10;
        upload_rate = Math.round((upload_speed/8)*10)/10;
        var speed = document.getElementById('speed');
	var testserver;
	var site = "speedtest.slingshot.co.nz"; /// Change me depending on what site user
				/// is at.

	if (server_id == "1") testserver = "nz-akl";
	else if (server_id == "3") testserver = "us-la";
	else testserver="unknown";
	
//DEBUG CODE

//	var msg = 
//		"download_speed: " + download_speed + "\r\n" +
//		"upload_speed: " + download_speed + "\r\n" +
//		"upload_rate: " + upload_rate + "\r\n" +
//		"download_rate: " + download_rate + "\r\n" +
//		"speed: " + speed + "\r\n" +
//		"latency: " + latency + "\r\n" +
//		"jitter: " + jitter + "\r\n" +
//		"packet_loss: " + packet_loss + "\r\n\" +
//		"server_id: " + server_id + "\r\n" +
//		"";

	
//	window.alert(msg);
	

	var dbResults = new Array();
	var recordResults = new Array();

	dbResults.push("d=" + escape(download_speed));
	recordResults.push("download=" + escape(download_speed));

	dbResults.push("u=" + escape(upload_speed));
	recordResults.push("upload=" + escape(upload_speed));

	if (packet_loss >= 0) {
		dbResults.push("p=" + escape(packet_loss));
		recordResults.push("packetloss=" + escape(packet_loss));
	}
	if (latency >= 0) {
		dbResults.push("l=" + escape(latency));
		recordResults.push("latency=" + escape(latency));
	}
	if (jitter >= 0) {
		dbResults.push("j=" + escape(jitter));
		recordResults.push("jitter=" + escape(jitter));
	}
	
	//TODO recordResults for site and testserver
	// Do we need to, can we, do we want to?
	dbResults.push("server=" + escape(testserver));
	recordResults.push("server=" + escape(testserver));
	dbResults.push("site=" + escape(site));
	recordResults.push("site=" + escape(site));

	// Now do the nice descriptions for the customer
	// TODO: This shouldn't be done as innerHTML, but 
	// IE6 makes me sad.

	var results = new Array();
	results.push("Download Speed: <strong>" + download_speed + 
			"</strong> kps (" + download_rate + " KB/sec " +
			"transfer rate)<br />");
	results.push("Upload Speed: <strong>" + upload_speed + 
			"</strong> kps (" + upload_rate + " KB/sec " +
			"transfer rate)<br />");
	
	if (packet_loss < 100) {
		var nice_loss;
		if (packet_loss < 0) {
			nice_loss =  0;
		} else {
			nice_loss =  packet_loss;
		}
		results.push("Packet Loss: <strong>" + nice_loss + 
			"</strong> %<br />");
	}
	if (jitter > -1) {
		results.push("Jitter: <strong>" + jitter + "</strong> ms<br/>");
	}
	if (latency > -1) {
		results.push("Latency: <strong>" + latency + "</strong> ms " +
			"<br />");
	} 
	results.push("Test Server: <strong>" + testserver + "</strong><br />");

	// Now build the speed.innerHTML to include the nice
	// description, then include the two images
	var description = results.join(" ");
	var dbStr = dbResults.join("&");
	var recordStr = recordResults.join("&");

	var slingshotRecorder = 
		'http://www.slingshot.co.nz/redirections/speedtest.asp?';
	var speedtestRecorder =
		'http://speedtest.slingshot.co.nz/recorder.php?';

	if (speed) { // If we can find the speed div
		speed.innerHTML = description + 
			'<img src="' + slingshotRecorder + dbStr + '"' + 
				'width="1" height="1" />' +
			'<img src="' + speedtestRecorder + recordStr + '"' +
				'width="1" height="1" />';
	}

        var abovebefore = document.getElementById('abovebefore');
        if (abovebefore) {
                abovebefore.style.display = "none";
        }
        var belowbefore = document.getElementById('belowbefore');
        if (belowbefore) {
                belowbefore.style.display = "none";
        }
        var aboveafter = document.getElementById('aboveafter');
        if (aboveafter) {
                aboveafter.style.display = "block";
        }
        var belowafter = document.getElementById('belowafter');
        if (belowafter) {
                belowafter.style.display = "block";
        }
}

