function validate(obj)
{
	var anum=/(^\.?\d+$)|(^\d+\.\d+$)|(^\d+?\.$)/

	if (anum.test(obj.value))
	{
		changebits(obj);
	}
	else if (obj.value != '.')
	{
		with (document.forms['conversion']) 
		{
			bits.value = "";
			bytes.value = "";
			kilobytes.value = "";
			megabytes.value = "";
			gigabytes.value = "";
			kilobits.value = "";
			megabits.value = "";
			gigabits.value = "";
		}
	}
}

function changebits (obj) 
{
	with (document.forms['conversion']) 
	{
		switch (obj.name) 
		{
			case "bits" :
				kilobits.value = (bits.value / 1000);
				megabits.value = (bits.value / 1000000);
				gigabits.value = (bits.value / 1000000000);
				bytes.value = (bits.value / 8);
				kilobytes.value = (bytes.value / 1024);
				megabytes.value = (bytes.value / 1048576);
				gigabytes.value = (bytes.value / 1073741824);
				break;
			case "bytes" :
				bits.value = (bytes.value * 8);
				kilobits.value = ((bytes.value * 8) / 1000);
				megabits.value = ((bytes.value * 8) / 1000000);
				gigabits.value = ((bytes.value * 8) / 1000000000);
				kilobytes.value = (bytes.value / 1024);
				megabytes.value = (bytes.value / 1048576);
				gigabytes.value = (bytes.value / 1073741824);
				break;				
			case "kilobits" :
				bits.value = (kilobits.value * 1000);
				megabits.value = (kilobits.value / 1000);
				gigabits.value = (kilobits.value / 1000000);
				bytes.value = ((kilobits.value * 1000) / 8);
				kilobytes.value = (((kilobits.value * 1000) / 8) / 1024);
				megabytes.value = (((kilobits.value * 1000) / 8) / 1048576);
				gigabytes.value = (((kilobits.value * 1000) / 8) / 1073741824);
				break;				
			case "kilobytes" :
				bits.value = ((kilobytes.value * 1024) * 8);
				kilobits.value = (((kilobytes.value * 1024) * 8) / 1000);
				megabits.value = (((kilobytes.value * 1024) * 8) / 1000000);
				gigabits.value = (((kilobytes.value * 1024) * 8) / 1000000000);
				bytes.value = (kilobytes.value * 1024);
				megabytes.value = (kilobytes.value / 1024);
				gigabytes.value = (kilobytes.value / 1048576);
				break;		
			case "megabits" :
				bits.value = (megabits.value * 1000000);
				kilobits.value = (megabits.value * 1000);
				gigabits.value = (megabits.value / 1000);
				bytes.value = ((megabits.value * 1000000) / 8);
				kilobytes.value = (((megabits.value * 1000000) / 8) / 1024);
				megabytes.value = (((megabits.value * 1000000) / 8) / 1048576);
				gigabytes.value = (((megabits.value * 1000000) / 8) / 1073741824);
				break;
			case "megabytes" :
				bits.value = ((megabytes.value * 1048576) * 8);
				kilobits.value = (((megabytes.value * 1048576) * 8) / 1000);
				megabits.value = (((megabytes.value * 1048576) * 8) / 1000000);
				gigabits.value = (((megabytes.value * 1048576) * 8) / 1000000000);
				bytes.value = (megabytes.value * 1048576);
				kilobytes.value = (megabytes.value * 1024);
				gigabytes.value = (megabytes.value / 1024);
				break;
			case "gigabits" :
				bits.value = (gigabits.value * 1000000000);
				kilobits.value = (gigabits.value * 1000000);
				megabits.value = (gigabits.value * 1000);
				bytes.value = ((gigabits.value * 1000000000) / 8);
				kilobytes.value = (((gigabits.value * 1000000000) / 8) / 1024);
				megabytes.value = (((gigabits.value * 1000000000) / 8) / 1048576);
				gigabytes.value = (((gigabits.value * 1000000000) / 8) / 1073741824);
				break;
			case "gigabytes" :
				bits.value = ((gigabytes.value * 1073741824) * 8);
				kilobits.value = (((gigabytes.value * 1073741824) * 8) / 1000);
				megabits.value = (((gigabytes.value * 1073741824) * 8) / 1000000);
				gigabits.value = (((gigabytes.value * 1073741824) * 8) / 1000000000);
				bytes.value = (gigabytes.value * 1073741824);
				kilobytes.value = (gigabytes.value * 1048576);
				megabytes.value = (gigabytes.value * 1024);
				break;
		}
	}
}