var oldValue = new Array();
oldValue["millimeters"] = "not assigned";
oldValue["centimeters"] = "not assigned";
oldValue["meters"] = "not assigned";
oldValue["milliliters"] = "not assigned";
oldValue["liters"] = "not assigned";
oldValue["hectoliters"] = "not assigned";
oldValue["inches"] = "not assigned";
oldValue["feet"] = "not assigned";
oldValue["ounces"] = "not assigned";
oldValue["cups"] = "not assigned";
oldValue["pints"] = "not assigned";
oldValue["gallons"] = "not assigned";

function CalculateValues(source){
	var srcEl = document.getElementById(source);
	if (oldValue[source] == document.getElementById(source).value) return false;
												
	var mm,cm,m,ml,l,hl,ins,ft,oz,cp,pt,ga;
	mm = document.getElementById("millimeters");
	cm = document.getElementById("centimeters");
	m = document.getElementById("meters");
	ml = document.getElementById("milliliters");
	l = document.getElementById("liters");
	hl = document.getElementById("hectoliters");
	ins = document.getElementById("inches");
	ft = document.getElementById("feet");
	oz = document.getElementById("ounces");
	cp = document.getElementById("cups");
	pt = document.getElementById("pints");
	ga = document.getElementById("gallons");
	
	//alert(source);
	switch (source) {
		case "millimeters":
			ml.value = mm.value * 0.001;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "centimeters":
			ml.value = cm.value;
			mm.value = ml.value * 1000;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "meters":
			ml.value = m.value * 1000000;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "milliliters":
			ml.value = ml.value;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "liters":
			ml.value = l.value * 1000;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "hectoliters":
			ml.value = hl.value * 100000;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "inches":
			ml.value = ins.value * 16.38706;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "feet":
			ml.value = ft.value * 28316.85;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "ounces":
			ml.value = oz.value * 29.57353;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "cups":
			ml.value = cp.value * 263.5882;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			pt.value = ml.value * 0.002113376;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "pints":
			ml.value = pt.value * 473.1765;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			ga.value = ml.value * 0.0002641721;
		break;
		
		case "gallons":
			ml.value = ga.value * 3785.412;
			mm.value = ml.value * 1000;
			cm.value = ml.value * 1;
			m.value = ml.value * 0.000001;
			l.value = ml.value * 0.001;
			hl.value = ml.value * 0.00001;
			ins.value = ml.value * 0.06102374;
			ft.value = ml.value * 0.00003531467;
			oz.value = ml.value * 0.03381402;
			cp.value = ml.value * 0.004226753;
			pt.value = ml.value * 0.002113376;
		break;
	}
	if (source != "millimeters") {mm.value = (new Number(mm.value)).toFixed(4);}
	if (source != "centimeters") {cm.value = (new Number(cm.value)).toFixed(4);}
	if (source != "meters") {m.value = (new Number(m.value)).toFixed(4);}
	if (source != "milliliters") {ml.value = (new Number(m.value)).toFixed(4);}
	if (source != "liters") {l.value = (new Number(l.value)).toFixed(4);}
	if (source != "hectoliters") {hl.value = (new Number(hl.value)).toFixed(4);}
	if (source != "inches") {ins.value = (new Number(ins.value)).toFixed(4);}
	if (source != "feet") {ft.value = (new Number(ft.value)).toFixed(4);}
	if (source != "ounces") {oz.value = (new Number(oz.value)).toFixed(4);}
	if (source != "cups") {cp.value = (new Number(cp.value)).toFixed(4);}
	if (source != "pints") {pt.value = (new Number(pt.value)).toFixed(4);}
	if (source != "gallons") {ga.value = (new Number(ga.value)).toFixed(4);}
	
	oldValue["millimeters"] = mm.value;
	oldValue["centimeters"] = cm.value;
	oldValue["meters"] = m.value;
	oldValue["milliliters"] = ml.value;
	oldValue["liters"] = l.value;
	oldValue["hectoliters"] = hl.value;
	oldValue["inches"] = ins.value;
	oldValue["feet"] = ft.value;
	oldValue["ounces"] = oz.value;
	oldValue["cups"] = cp.value;
	oldValue["pints"] = pt.value;
	oldValue["gallons"] = ga.value;
}
