// JavaScript Document

function showWV()
{
	document.getElementById('tab1').style.backgroundColor="#DDDDDD";
	document.getElementById('tab1').style.color="#333333";	
	document.getElementById('tab2').style.backgroundColor="#666666";
	document.getElementById('tab2').style.color="#CCCCCC";	
	document.getElementById('tab3').style.backgroundColor="#666666";
	document.getElementById('tab3').style.color="#CCCCCC";	
	document.getElementById('tab4').style.backgroundColor="#666666";
	document.getElementById('tab4').style.color="#CCCCCC";	
	
	document.form1.reset();
	document.getElementById('wv_result').innerHTML="";
	
	document.getElementById('wv').style.visibility="visible";
	document.getElementById('vv').style.visibility="hidden";
	document.getElementById('m').style.visibility="hidden";
	document.getElementById('basic').style.visibility="hidden";
}

function showVV()
{
	document.getElementById('tab1').style.backgroundColor="#666666";
	document.getElementById('tab1').style.color="#CCCCCC";	
	document.getElementById('tab2').style.backgroundColor="#DDDDDD";
	document.getElementById('tab2').style.color="#333333";	
	document.getElementById('tab3').style.backgroundColor="#666666";
	document.getElementById('tab3').style.color="#CCCCCC";	
	document.getElementById('tab4').style.backgroundColor="#666666";
	document.getElementById('tab4').style.color="#CCCCCC";
	
	document.form2.reset();
	document.getElementById('vv_result').innerHTML="";
	
	document.getElementById('wv').style.visibility="hidden";
	document.getElementById('vv').style.visibility="visible";
	document.getElementById('m').style.visibility="hidden";
	document.getElementById('basic').style.visibility="hidden";
}

function showM()
{
	document.getElementById('tab1').style.backgroundColor="#666666";
	document.getElementById('tab1').style.color="#CCCCCC";	
	document.getElementById('tab2').style.backgroundColor="#666666";
	document.getElementById('tab2').style.color="#CCCCCC";	
	document.getElementById('tab3').style.backgroundColor="#DDDDDD";
	document.getElementById('tab3').style.color="#333333";	
	document.getElementById('tab4').style.backgroundColor="#666666";
	document.getElementById('tab4').style.color="#CCCCCC";
	
	document.form3.reset();
	document.getElementById('m_result').innerHTML="";
	
	document.getElementById('wv').style.visibility="hidden";
	document.getElementById('vv').style.visibility="hidden";
	document.getElementById('m').style.visibility="visible";
	document.getElementById('basic').style.visibility="hidden";
}

function showBasic()
{
	document.getElementById('tab1').style.backgroundColor="#666666";
	document.getElementById('tab1').style.color="#CCCCCC";	
	document.getElementById('tab2').style.backgroundColor="#666666";
	document.getElementById('tab2').style.color="#CCCCCC";	
	document.getElementById('tab3').style.backgroundColor="#666666";
	document.getElementById('tab3').style.color="#CCCCCC";	
	document.getElementById('tab4').style.backgroundColor="#DDDDDD";
	document.getElementById('tab4').style.color="#333333";	
	
	document.getElementById('wv').style.visibility="hidden";
	document.getElementById('vv').style.visibility="hidden";
	document.getElementById('m').style.visibility="hidden";
	document.getElementById('basic').style.visibility="visible";
}

// calculation
function calWV(p,v,uni)
{
	if(isNumeric(p) && isNumeric(v))
	{
		var per=Number(p);
		var vol=Number(v);
		if(uni=="L")
		{
			var sol=vol*10*per;
		}
		else
		{
			var sol=vol*per/100;
		}
		document.getElementById("wv_result").innerHTML="Dissolve "+String(sol)+" grams of solute into the solvent and make the final volume up to "+v+" "+uni+".";
	}
	else
	{
		alert("Please input numbers only and try again.");
	}
}

function calVV(p,v,uni)
{
	if(isNumeric(p) && isNumeric(v))
	{
		var per=Number(p);
		var vol=Number(v);
		if(uni=="L")
		{
			var sol=vol*10*per;
		}
		else
		{
			var sol=vol*per/100;
		}
		document.getElementById("vv_result").innerHTML="Dissolve "+String(sol)+" ml of solute into the solvent and make the final volume up to "+v+" "+uni+".";
	}
	else
	{
		alert("Please input numbers only and try again.");
	}
}

function calM(c,c_uni,mw,v,v_uni)
{
	if(isNumeric(c) && isNumeric(v) && isNumeric(mw))
	{
		var conc=Number(c);
		var vol=Number(v);
		var m=Number(mw);
		if(v_uni=="L" && c_uni=="M")
		{
			var sol=m*vol*c;
		}
		else if(v_uni=="ml" && c_uni=="M")
		{
			var sol=m*vol*c/1000;
		}
		else if(v_uni=="ml" && c_uni=="mM")
		{
			var sol=m*vol*c/1000000;
		}
		else if(v_uni=="L" && c_uni=="mM")
		{
			var sol=m*vol*c/1000;
		}
		
		if(sol<0.02)
		{	
			sol=parseInt(sol*1000000)/1000;
			document.getElementById("m_result").innerHTML="Dissolve "+String(sol)+" mg of solute into the solvent and make the final volume up to "+v+" "+v_uni+".";
		}
		else
		{
			sol=parseInt(sol*1000)/1000;
			document.getElementById("m_result").innerHTML="Dissolve "+String(sol)+" g of solute into the solvent and make the final volume up to "+v+" "+v_uni+".";
		}
	}
	else
	{
		alert("Please input numbers only and try again.");
	}
}

//  check for valid numeric strings	
function isNumeric(str)
{
	var strValidChars = "0123456789.";
	var strChar;
	var blnResult = true;
	
	if (str.length == 0) return false;

   //  test strString consists of valid characters listed above
	for (i = 0; i < str.length && blnResult == true; i++)
	{
		strChar = str.charAt(i);
		if (strValidChars.indexOf(strChar) == -1)
		{
			blnResult = false;
			break;
		}
	}
	return blnResult;	
}


