$(document).ready(function(){
	setInterval(Calculate,100);
	Calculate();
	$('.numeric').keydown(function(e){
		switch(e.keyCode){
			case 8:
				return true;
				break;
			case 9:
				return true;
				break;
			case 46:
				return true;
				break;
			case 27:
				$(this).val('');
				break;
			default:
				if(e.keyCode > 47 && e.keyCode < 58 && !e.shiftKey){
					return true;
				}else{
					return false;
				}
		}
		if(e.keyCode > 48 && e.keyCode < 57){
			return true;
		}else{
			return false;
		}
	});
	$('.wrap input,.wrap select').each(function(){
		$(this).keyup(function(){
			Calculate();
		});
		$(this).change(function(){
			Calculate();
		});
	});
});
function Duration(Seconds){
	Years = Math.floor(Seconds/(60*60*24*365));
		Seconds %= 60*60*24*365;
	Weeks = Math.floor(Seconds/(60*60*24*7));
		Seconds %= 60*60*24*7;
	Days = Math.floor(Seconds/(60*60*24));
		Seconds %= 60*60*24;
	Hours = Math.floor(Seconds/(60*60));
		Seconds %= 60*60;
	Minutes = Math.floor(Seconds/60);
		Seconds = Math.floor(Seconds);
	var Result = '';
	if(Years >= 1){
		if(Years == 1){
			Result += Years+' year ';
		}else{
			Result += Years+' years ';
		}
	}
	if(Weeks >= 1){
		if(Weeks == 1){
			Result += Weeks+' week ';
		}else{
			Result +=  Weeks+' weeks ';
		}
	}
	if(Days >= 1){
		if(Days == 1){
			Result += Days+' day ';
		}else{
			Result += Days+' days ';
		}
	}
	if(Hours >= 1){
		if(Hours == 1){
			Result += Hours+' hour ';
		}else{
			Result += Hours+' hours ';
		}
	}
	if(Minutes >= 1){
		if(Minutes == 1){
			Result += Minutes+' minute ';
		}else{
			Result += Minutes+' minutes ';
		}
	}
	if(Seconds >= 1 && Seconds < 60){
		if(Seconds == 1){
			Result += Seconds+' second ';
		}else{
			Result += Seconds+' seconds ';
		}
	}
	return Result;
}
function Calculate(){
	Speed = $('#speed input').val();
	Size = $('#size input').val();
	SpeedUnit = $('#speed select').val();
	SizeUnit = $('#size select').val();
	BytesSpeed = Speed*eval(SpeedUnit);
	BytesSize = Size*eval(SizeUnit);
	TotalSeconds = BytesSize/BytesSpeed;
	$('#time span').text(Duration(TotalSeconds));
}
var Download;
function TestSpeed(){
	Download = new Image();
	Download.src = 'http://cdn.alanedwardes.com/labs/speed/3MB.bmp?'+Math.floor(Math.random()*999999999);
	StartTime = new Date().getTime();
	$('#speedtest').fadeIn();
	Download.onload = function(){
		Seconds = (new Date().getTime()-StartTime)*0.001;
		Speed = Math.round(1000/(Seconds/3).toString());
		$('#speed input').val(Speed);
		$('#speed select').val('1000');
		Calculate();
		$('#speedtest').fadeOut();
	}
}

