function populateUnits(id){
   	document.forms[id].answer.disabled = true; 
	document.forms[id].fromUnit.disabled = true; 
	document.forms[id].whatto.readonly = true; 
	document.forms[id].whatfrom.readonly = true; 
	document.forms[id].toUnit.disabled = true; 
	document.forms[id].submit();
}

function populatecategory(id,catid,catname) {
	document.forms[id].catid.value = catid;
	document.forms[id].catname.value = catname;
	//alert(catid);
	//alert(document.forms[id].catid.value);
	populateUnits(id);
	//document.forms[id].submit();
}

function clearlistbox(id) {
	//alert("Inside clear");
	if (document.forms[id].unitType.value == -1)
	{
		//document.forms[id].fromUnit.clear();
		document.forms[id].whatto.value = "";
		document.forms[id].whatfrom.value = "";
		document.forms[id].fromUnit.options.length = 0;
		document.forms[id].toUnit.options.length = 0;
	}
}

function CaptureEnter(){
    
	var evt = event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	if (charCode == 13){
		ConvertValues();
	}else if((charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46))
	{
		if (evt.charCode)
			evt.charCode = null;
		if (evt.keyCode)
			evt.keyCode = null;
		if (evt.which)
			evt.which = null;
	}
}

function ConvertValues() {
	if ( (document.forms['convert'].fromUnit.options.length != 0) && ( document.forms['convert'].unitType[document.forms['convert'].unitType.selectedIndex].value != -1)){
		var FromVal, ToVal, FromName, ToName, v1, Factor;

		v1 = document.forms['convert'].whatfrom.value;
			  
		v1 = stripBad(v1);
		v1 = parseFloat(v1);
		if (isNaN(v1)) v1 = 1;
		v1 = Math.abs(v1);
		document.forms['convert'].whatfrom.value = v1;
			  
		FromVal = document.forms['convert'].fromUnit[document.forms['convert'].fromUnit.selectedIndex].value;
		ToVal = document.forms['convert'].toUnit[document.forms['convert'].toUnit.selectedIndex].value;
		FromName = document.forms['convert'].fromUnit.options[document.forms['convert'].fromUnit.selectedIndex].text;
		ToName = document.forms['convert'].toUnit.options[document.forms['convert'].toUnit.selectedIndex].text; 
		Factor = eval("(" + FromVal + ")/(" + ToVal + ")");
		document.forms['convert'].whatto.value = getResult(v1, Factor);
		document.forms['convert'].answer.value = v1 + " " + FromName + " = " + getResult(v1, Factor) + " " + ToName;
		//alert(FromVal);
	}
}

function resetAnswer() {
	document.forms['convert'].answer.value = "";
}

function getResult(ff,factor){
	ff *= factor;

	if (Number.prototype.toFixed) {
		ff = ff.toFixed(7);
		ff = parseFloat(ff);
	}
	else {
		var leftSide = Math.floor(ff);
		var rightSide = ff - leftSide;
		ff = leftSide + Math.round(rightSide *10000000)/10000000;
	}

	return comma(ff);
}

function stripBad(string) {
    for (var i=0, output='', valid="eE-0123456789."; i<string.length; i++)
       if (valid.indexOf(string.charAt(i)) != -1)
          output += string.charAt(i)
    return output;
} 

function comma(num) {
	var n = Math.floor(num);
	var myNum = num + "";
	var myDec = ""

	if (myNum.indexOf('.',0) > -1){
		myDec = myNum.substring(myNum.indexOf('.',0),myNum.length);
	}

	var arr=new Array('0'), i=0; 
	while (n>0) 
		{arr[i]=''+n%1000; n=Math.floor(n/1000); i++;}
	arr=arr.reverse();
	for (var i in arr) if (i>0) //padding zeros
	
	while (arr[i].length<3) arr[i]='0'+arr[i];
	
	return arr.join() + myDec;
}