<!-- // --> <h1>Your browser does not support <a href="http://home.netscape.com/comprod/products/navigator/version_2.0/script/script_info/">JavaScript</a>, sorry</h1>.
<!-- // -->The conversion table below will not work with your browser<p><hr>
<!-- Replaced normalize by new one; modify compute's resize values; added api - HaviHarrison 02-May-2003
function checkNum(str) {
	for (var i=0; i<str.length; i++) {
	var ch = str.substring(i, i + 1)
	if (ch!="." && ch!="+" && ch!="-" && ch!="e" && ch!="E" && (ch < "0" || ch > "9")) {
		alert("Please enter a valid number.");
		return false
		}
	}
	return true
}

function normalize(input, rsize) {
   var invalid = "**************************";
   var nines = "999999999999999999999999";
   var strin = "" + input;
   var fltin = parseFloat(strin);
   if (strin.length <= rsize) return strin;
   if (strin.indexOf("e") != -1 ||
       fltin > parseFloat(nines.substring(0,rsize)+".4"))
      return invalid.substring(0, rsize);
   var rounded = "" + (fltin + (fltin - parseFloat(strin.substring(0, rsize))));
   return rounded.substring(0, rsize);
}



function oldnormalize(what,digits) {
	var str=""+what;
	var pp=Math.max(str.indexOf("+"),str.indexOf("-"));
	var idot=str.indexOf(".");
	if (idot>=1) {
		var ee=(pp>0)?str.substring(pp-1,str.length):"";
		digits+=idot;
		if (digits>=str.length)
			return str;
		if (pp>0 && digits>=pp)
			digits-=pp;
		var c=eval(str.charAt(digits));
		var ipos=digits-1;
		if (c>=5) {
			while (str.charAt(ipos)=="9") ipos--;
			if (str.charAt(ipos)==".") {
				var nc=eval(str.substring(0,idot))+1;
				if (nc==10 && ee.length>0) {
		nc=1;
					ee="e"+(eval(ee.substring(1,ee.length))+1);
				}
				return ""+nc+ee;
			}
			return str.substring(0,ipos)+(eval(str.charAt(ipos))+1)+ee;
		} else
			var ret=str.substring(0,digits)+ee;
		for (var i=0; i<ret.length; i++)
			if (ret.charAt(i)>"0" && ret.charAt(i)<="9")
					return ret;
			return str;
	 }
	 return str;
}

function compute(obj,val) {
	if (obj[val].value) {
		if (val=="Celsius") 
                        obj.Kelvin.value=normalize(eval(obj.Celsius.value)+273.15,9);
		else if (val=="Fahrenheit")
                        obj.Kelvin.value=normalize((eval(obj.Fahrenheit.value)-32)/9*5+273.15,9); 
		else if (val=="Rankine")
                        obj.Kelvin.value=normalize(eval(obj.Rankine.value)/1.8,9);
		obj.Celsius.value=normalize(eval(obj.Kelvin.value)-273.15,7);
                obj.Fahrenheit.value=normalize((eval(obj.Kelvin.value)-273.15)*9/5+32,7); 
                obj.Rankine.value=normalize(eval(obj.Kelvin.value)*1.8,7);
                obj.Kelvin.value=normalize(eval(obj.Kelvin.value),7);

		if (eval(obj.Kelvin.value)<0){
			alert("Entered temperature is theoretically impossible.\n" +
				" It can't be colder than 0 degrees Kelvin");
		    obj.Celsius.value="";
                obj.Fahrenheit.value=""; 
                obj.Rankine.value="";
                obj.Kelvin.value="";
                }
	}
}

function apcompute(obj,val) {
	if (obj[val].value) {
		if (val=="Spgr") 

		if (eval(obj.Spgr.value)>=1.075 || eval(obj.Spgr.value) <=0.6)
                  {
			alert("Specific gravity out valid range: 0.61 => 1.074");
                  obj.Spgr.value = ""; obj.Api.value = "";
                  }
              else
                        obj.Api.value=normalize(141.5/eval(obj.Spgr.value) - 131.5,6);
		else if (val=="Api")
		if (eval(obj.Api.value)>=100 || eval(obj.Api) <=0)
                  {
			alert("API gravity out valid range: 1 => 99");
                  obj.Spgr.value = ""; obj.Api.value = "";
                  }
              else

                        obj.Spgr.value=normalize(141.5/(eval(obj.Api.value) + 131.5),6);


	}
}


// -->
