	
	var oldValue            = new Array();
	oldValue["inches"]      = "not assigned";
	oldValue["feet"]        = "not assigned";
	oldValue["yards"]       = "not assigned";
	oldValue["acres"]       = "not assigned";
	oldValue["miles"]       = "not assigned";
	oldValue["millimeters"] = "not assigned";
	oldValue["centimeters"] = "not assigned";
	oldValue["meters"]      = "not assigned";
	oldValue["hectares"]    = "not assigned";
	oldValue["kilometers"]  = "not assigned";
	
	function CalculateValues(source) {
		
		var srcEl = document.getElementById(source);
		if (oldValue[source] == document.getElementById(source).value) return false;
	
		var km,mi,m,ft,kt,cm,mm,ins,yd,ha,ac;
		km  = document.getElementById("kilometers");
		mi  = document.getElementById("miles");
		m   = document.getElementById("meters");
		ft  = document.getElementById("feet");
		cm  = document.getElementById("centimeters");
		mm  = document.getElementById("millimeters");
		ins = document.getElementById("inches");
		yd  = document.getElementById("yards");
		ha  = document.getElementById("hectares");
		ac  = document.getElementById("acres");
	
		//alert(source);
		switch (source) {
		
			case "miles":
				
				m.value   = mi.value * 2589988.11;
				ft.value  = m.value * 10.7639104;
				km.value  = m.value * 1.0e-06;
				cm.value  = m.value * 10000;
				mm.value  = m.value * 1000000;
				ins.value = m.value * 1550.0031;
				yd.value  = m.value * 1.19599005;
				ha.value  = m.value * 0.0001;
				ac.value  = m.value * 0.000247105381;
				break;
				
			case "kilometers":
			
				m.value   = km.value * 1000000;
				ft.value  = m.value * 10.7639104;
				mi.value  = m.value * 3.86102159e-07;
				cm.value  = m.value * 10000;
				mm.value  = m.value * 1000000;
				ins.value = m.value * 1550.0031;
				yd.value  = m.value * 1.19599005;
				ha.value  = m.value * 0.0001;
				ac.value  = m.value * 0.000247105381;
				break;
				
			case "meters":
			
				m.value   = m.value;
				ft.value  = m.value * 10.7639104;
				mi.value  = m.value * 3.86102159e-07;
				km.value  = m.value * 1.0e-06;
				cm.value  = m.value * 10000;
				mm.value  = m.value * 1000000;
				ins.value = m.value * 1550.0031;
				yd.value  = m.value * 1.19599005;
				ha.value  = m.value * 0.0001;
				ac.value  = m.value * 0.000247105381;
				break;
				
			case "feet":
			
				m.value   = ft.value * 0.09290304;
				mi.value  = m.value * 3.86102159e-07;
				km.value  = m.value * 1.0e-06;
				cm.value  = m.value * 10000;
				mm.value  = m.value * 1000000;
				ins.value = m.value * 1550.0031;
				yd.value  = m.value * 1.19599005;
				ha.value  = m.value * 0.0001;
				ac.value  = m.value * 0.000247105381;
				break;
				
			case "centimeters":
			
				m.value   = cm.value *  0.0001;
				ft.value  = m.value * 10.7639104;
				mi.value  = m.value * 3.86102159e-07;
				km.value  = m.value * 1.0e-06;
				mm.value  = m.value * 1000000;
				ins.value = m.value * 1550.0031;
				yd.value  = m.value * 1.19599005;
				ha.value  = m.value * 0.0001;
				ac.value  = m.value * 0.000247105381;
				break;
				
			case "millimeters":
			
				m.value   = mm.value * 1.0e-06;
				ft.value  = m.value * 10.7639104;
				mi.value  = m.value * 3.86102159e-07;
				km.value  = m.value * 1.0e-06;
				cm.value  = m.value * 10000;
				ins.value = m.value * 1550.0031;
				yd.value  = m.value * 1.19599005;
				ha.value  = m.value * 0.0001;
				ac.value  = m.value * 0.000247105381;
				break;
				
			case "inches":
			
				m.value  = ins.value * 0.00064516;
				ft.value = m.value * 10.7639104;
				mi.value = m.value * 3.86102159e-07;
				km.value = m.value * 1.0e-06;
				cm.value = m.value * 10000;
				mm.value = m.value * 1000000;
				yd.value = m.value * 1.19599005;
				ha.value = m.value * 0.0001;
				ac.value = m.value * 0.000247105381;
				break;
				
			case "yards":
			
				m.value   = yd.value * 0.83612736;
				ft.value  = m.value * 10.7639104;
				mi.value  = m.value * 3.86102159e-07;
				km.value  = m.value * 1.0e-06;
				cm.value  = m.value * 10000;
				mm.value  = m.value * 1000000;
				ins.value = m.value * 1550.0031;
				ha.value  = m.value * 0.0001;
				ac.value  = m.value * 0.000247105381;
				break;
				
			case "hectares":
			
				m.value   = ha.value * 10000;
				ft.value  = m.value * 10.7639104;
				mi.value  = m.value * 3.86102159e-07;
				km.value  = m.value * 1.0e-06;
				cm.value  = m.value * 10000;
				mm.value  = m.value * 1000000;
				ins.value = m.value * 1550.0031;
				yd.value  = m.value * 1.19599005;
				ac.value  = m.value * 0.000247105381;
				break;
				
			case "acres":
			
				m.value   = ac.value * 4046.85642;
				ft.value  = m.value * 10.7639104;
				mi.value  = m.value * 3.86102159e-07;
				km.value  = m.value * 1.0e-06;
				cm.value  = m.value * 10000;
				mm.value  = m.value * 1000000;
				ins.value = m.value * 1550.0031;
				yd.value  = m.value * 1.19599005;
				ha.value  = m.value * 0.0001;
				break;
				
		}
		
		if (source != "inches")      {ins.value = (new Number(ins.value)).toFixed(4);}
		if (source != "feet")        {ft.value  = (new Number(ft.value)).toFixed(4);}
		if (source != "yards")       {yd.value  = (new Number(yd.value)).toFixed(4);}
		if (source != "acres")       {ac.value  = (new Number(ac.value)).toFixed(4);}
		if (source != "miles")       {mi.value  = (new Number(mi.value)).toFixed(4);}
		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 != "hectares")    {ha.value  = (new Number(ha.value)).toFixed(4);}
		if (source != "kilometers")  {km.value  = (new Number(km.value)).toFixed(4);}
		
		oldValue["inches"]      = ins.value;
		oldValue["feet"]        = ft.value;
		oldValue["yards"]       = yd.value;
		oldValue["acres"]       = ac.value;
		oldValue["miles"]       = mi.value;
		oldValue["millimeters"] = mm.value;
		oldValue["centimeters"] = cm.value;
		oldValue["meters"]      = m.value;
		oldValue["hectares"]    = ha.value;
		oldValue["kilometers"]  = km.value;
		
	}
