var arrFactors = new Array(6);
var prevValue = 0;
var prevBox = null;
var decimalPlaces = 3;
arrFactors[1] = parseFloat('1');
arrFactors[2] = parseFloat('1');
arrFactors[3] = parseFloat('1');
arrFactors[4] = parseFloat('1');
arrFactors[5] = parseFloat('1');
function convertTemps(fromID, toID, val) {
switch (fromID) {
case 1: // deg Fahrenheit
switch (toID) {
case 1: return val;// to deg Fahrenheit 
case 2: return (val - 32) * 5 / 9;// to deg Celsius
case 3: return (val + 459.67) / 1.8;// to Kelvin
case 4: return val + 459.67; // to deg Rankine
case 5: return (val - 32) * 4 / 9;// to deg Reaumur
}
case 2: // deg Celsius
switch (toID) {
case 1: return val * 9 / 5 + 32;// to deg Fahrenheit
case 2: return val;// to deg Celsius
case 3: return val + 273.15;// to Kelvin
case 4: return val * 9 / 5 + 32 + 459.67; // to deg Rankine
case 5: return val * 8 / 10;// to deg Reaumur
}
case 3: // Kelvin
switch (toID) {
case 1: return val * 1.8 - 459.67;// to deg Fahrenheit
case 2: return val - 273.15;// to deg Celsius
case 3: return val;// to Kelvin
case 4: return val * 1.8; // to deg Rankine
case 5: return (val - 273.15) * 8 / 10;// to deg Reaumur
}
case 4: // deg Rankine
switch (toID) {
case 1: return val - 459.67;// to deg Fahrenheit
case 2: return (val - 459.67 - 32) * 5 / 9;// to deg Celsius
case 3: return val / 1.8;// to Kelvin
case 4: return val; // to deg Rankine
case 5: return (val - 459.67 - 32) * 4 / 9;// to deg Reaumur
}
case 5: // deg Reaumur
switch (toID) {
case 1: return val * 9 / 4 + 32;// to deg Fahrenheit
case 2: return val * 10 / 8; // to deg Celsius
case 3: return val * 10 / 8 + 273.15;// to Kelvin
case 4: return val * 9 / 4 + 32 + 459.67; // to deg Rankine
case 5:return val;// to deg Reaumur
} 
}
}
function roundDP(n, decplaces) {
var t = Number('1e' + decplaces);
return Math.round(n * t) / t;
}
function convert(form, id) {
var val, fromFactor, i;
// start at 1 since 0 is temp element
val = parseFloat(form[id].value);
if (isNaN(val) || prevValue == val) return; 
// highlight the new box for visibility
if (form[id].style) {
if (prevBox != null) {
form[prevBox].style.color = '';
document.getElementById('temp' + prevBox).style.fontWeight = 'normal';
}
form[id].style.color = '#ffff00';
form[id].style.fontWeight = 'bold';
document.getElementById('temp' + id).style.fontWeight = 'bold';
}
prevBox = id;
if (val == '' || isNaN(val)) val = 0;
fromFactor = arrFactors[id];
for (i = 1; i < form.length; i++) 
if (i != id) form[i].value = roundDP(convertTemps(id, i, val), decimalPlaces); 
}
function enterBox(form, id) {
prevValue = parseFloat(form[id].value);
}


