function isValidPostcode(value)
{
	return /\b([A-PR-UWYZ][A-HK-Y0-9][A-HJKSTUW0-9]?[ABEHMNPRVWXY0-9]?)*[0-9][ABD-HJLN-UW-Z]{2}\b/i.test(value);	
}
$(document).ready(function()
{
	$('#start-test').click(function(){showTest();});
});

function showTest()
{
	var error = false;
			
	if ($('#providers').val() == "##NULL" || $('#providers').val() == "")
	{
		error = "Please tell us who provides your broadband"; 
	}
	else if ($("#upto-speed").val() == "##NULL")
	{
		error = "Please tell us your advertised 'up to' speed"; 
	}
	else if (!isValidPostcode($("#postcode").val()))
	{
		error = "Please enter a valid postcode e.g. NW6 3EB"; 
	}
	
	if (error)
	{
		$("#message").hide().html(error).fadeIn("slow");
		return false;
	}
	
	//$("#messsage").hide();
	
	
	$('#step-1').hide();
	$('#header').html("Start your broadband speed test").fadeIn("slow");
	$('#step-2').fadeIn("slow");
	
	return false;
}

function test_completed(download_speed, upload_speed, latency, server_id)
{
	download_rate = Math.round((download_speed/8)*10)/10;
	upload_rate = Math.round((upload_speed/8)*10)/10;
	
	var curdate = new Date();
	var speed = document.getElementById('speed');
	if (speed) {
		if (latency) {
			speed.innerHTML = "<strong>Last Result:</strong><br/>" + "Download Speed: <strong>" + download_speed + "</strong> kbps (" + download_rate + " KB/sec transfer rate)<br/>" + "Upload Speed: <strong>" + upload_speed + "</strong> kbps (" + upload_rate + " KB/sec transfer rate)<br/>" + "Latency: <strong>" + latency + "</strong> ms<br/>" + curdate.toLocaleString();
		} else {
			speed.innerHTML = "<strong>Last Result:</strong><br/>" + "Download Speed: <strong>" + download_speed + "</strong> kbps (" + download_rate + " KB/sec transfer rate)<br/>" + "Upload Speed: <strong>" + upload_speed + "</strong> kbps (" + upload_rate + " KB/sec transfer rate)<br/>" + curdate.toLocaleString();
		}
	}
	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";
	}
	
	$("#download").val(download_speed);
	$("#upload").val(upload_speed);
	
	
	submitDetails();
}

function test_started(test_count, server_id) {
	
	$('#header').html("Running your broadband speed test").fadeIn("slow");
	
	var teststarted = document.getElementById('teststarted');
	if (teststarted) {
		teststarted.style.display = "block";
	}
}

function submitDetails()
{	
	var str =  $("#form-1").serialize();
	var path = "/_ajax/speedtest.php";
				
	$.ajax(
	{
		type: "POST", url: path, data: str, dataType: "html", timeout: 5000, success: function(data)
		{
			var response = $(data).find('#results').html();
			$('#step-2').fadeOut("slow");
			$('#step-2').hide().html(response).fadeIn("slow");
			$('#header').html("Your broadband speed test results:").fadeIn("slow");
			$('#header-desc').html("Thank you for taking our broadband speed test. If you found it useful, please share it with your friends using the links at the bottom.").fadeIn("slow");
		},
		
		error: function ()
		{
		}
	
	});
					
	return false;
}
