function GetUnit(value,ndec)
{
	var factor=Math.pow(10,ndec)
	if (value < 1e-9)
	{return "-12";}
	else  if (value < 1e-6)
	{return "-9";}
	else if (value < 1e-3)
	{return "-6";}
	else if (value < 1)
	{return "-3";}
	else
	{return "0";}
}

function FormatAmount(value,ndec)
{
	var factor=Math.pow(10,ndec)
	if (value < 1e-9)
	{return( Math.round((value/1e-12)*factor)/factor);}
	else  if (value < 1e-6)
	{return( Math.round((value/1e-9)*factor)/factor);}
	else if (value < 1e-3)
	{return( Math.round((value/1e-6)*factor)/factor);}
	else if (value < 1)
	{return( Math.round((value/1e-3)*factor)/factor);}
	else
	{return(Math.round((value)*factor)/factor);}
}

function CalcMolarity(form)
{
	if(form.MolWt.value == "")
	{
		alert("Please enter a value for the Molecular Weight");
	}
	else if(form.MassUnits.value < -6)
	{
		alert("Cannot use this unit of mass for this calculation");
	}
	else
	{
		var MassUnits 	= parseInt(form.MassUnits.value);
		var ConcUnits 	= parseInt(form.ConcUnits.value);
		var VolUnits 	= parseInt(form.VolUnits.value);
		var MolWt     	= parseFloat(form.MolWt.value);

		if(form.mass.value != '')
		{
			var mass = parseFloat(form.mass.value) * Math.pow(10,MassUnits);
		}

		if(form.concentration.value != '')
		{
			var conc = parseFloat(form.concentration.value) * Math.pow(10,ConcUnits);
		}

		if(form.volume.value != '')
		{
			var vol = parseFloat(form.volume.value) * Math.pow(10,VolUnits);
		}

		if(form.concentration.value == '')
		{
			if((form.volume.value != '') && (form.mass.value != ''))
			{
				var moles = mass / MolWt;
				var conc = moles / vol;
				form.concentration.value = FormatAmount(conc,4);
				form.ConcUnits.value = GetUnit(conc,4);
			}
			else
			{
				alert("Not enough information to perform the calculation");
			}
		}
		else if(form.volume.value == '')
		{
			if((form.concentration.value != '') && (form.mass.value != ''))
			{
				var moles = mass / MolWt;
				var vol = moles / conc;
				form.volume.value = FormatAmount(vol,4);
				form.VolUnits.value = GetUnit(vol,4);
			}
			else
			{
				alert("Not enough information to perform the calculation");
			}
		}
		else
		{
			if((form.concentration.value != '') && (form.volume.value != ''))
			{
				var moles = vol * conc;
				var mass = moles * MolWt;
				form.mass.value = FormatAmount(mass,4);
				form.MassUnits.value = GetUnit(mass,4);
			}
			else
			{
				alert("Not enough information to perform the calculation");
			}
		}
	}
}