// code to do cooking conversions
// javascript only understands 1D arrays so need array of arrays to define conversion constants 

var c0 = new Array(1.0, 0.001, 0.03527, 0.002204);  // grams
var c1 = new Array(1000.0 , 1.0, 35.274, 2.2046);  //kilograms
var c2 = new Array(28.35, 0.02836, 1.0, 0.0625);  //ounces
var c3 = new Array(453.6, 0.4536, 16.0, 1.0);  //pounds
var ccw = new Array(c0, c1, c2, c3);

var cc0 = new Array(1.0, 0.001, 0.03527, 0.002201, 0.2, 0.1, 0.06667, 0.004); //millilites
var cc1 = new Array(1000.0 , 1.0, 35.274, 2.201, 200.0 , 100.0, 66.67, 4.0); //litres
var cc2 = new Array(28.35, 0.02836, 1.0, 0.0625, 5.67, 2.835, 1.89, 0.1134); //fluid ounces
var cc3 = new Array(453.6, 0.4536, 16.0, 1.0, 90.27, 45.36, 30.24, 1.8144); //pints
var cc4 = new Array(5.0, 0.005, 0.17635, 0.01102, 1.0, 0.5, 0.3333, 0.02); //teaspoons
var cc5 = new Array(10.0 , 0.01, 0.3527, 0.02201, 2.0, 1.0, 0.6667, 0.04); //dessertspoons
var cc6 = new Array(15.0, 0.015, 0.529, 0.03306, 3.0, 1.5, 1.0, 0.06); //tablespoons
var cc7 = new Array(250.0, 0.25, 8.8185, 0.5502, 50.0, 25.0, 16.667, 1.0); //cups
var ccv = new Array(cc0, cc1, cc2, cc3, cc4, cc5, cc6, cc7);

// load the Celsius temperature pictures

var i, s;
for (i=0; i<21; i++)
   {
   s = 100 + i * 10;
   s = "t" + s.toString();
   eval (s + " = new Image()");
   eval (s + ".src = 'temperature/" + s + ".gif'");
   eval (s + "x = new Image()");
   eval (s + "x.src = 'temperature/" + s + "x.gif'");
   }

// conversion functions

function tconvgas (t)
   {
   if (t > 245 && t < 280) { return " slow" }
   else if (t > 295 && t < 330) { return " moderately slow" }
   else if (t > 340 && t < 360) { return " moderate" }
   else if (t > 365 && t < 385) { return " moderately hot" }
   else if (t > 395 && t < 455) { return " hot" }
   else if (t > 470 && t < 510) { return " very hot" }
   else { return " " };
   }

function tconvelectric (t)
   {
   if (t > 245 && t < 301) { return " slow" }
   else if (t > 300 && t < 330) { return " moderately slow" }
   else if (t > 345 && t < 405) { return " moderate" }
   else if (t > 420 && t < 455) { return " moderately hot" }
   else if (t > 470 && t < 510) { return " hot" }
   else if (t > 520 && t < 560) { return " very hot" }
   else { return " " };
   }

function tconvreg (t)
   {
   if (t < 125) { return " 1/4" }
   else if (t < 135) { return " 1/2" }
   else if (t < 145) { return " 1" }
   else if (t < 155) { return " 2" }
   else if (t < 170) { return " 3" }
   else if (t < 185) { return " 4" }
   else if (t < 195) { return " 5" }
   else if (t < 210) { return " 6" }
   else if (t < 225) { return " 7" }
   else if (t < 235) { return " 8" }
   else if (t < 255) { return " 9" }
   else { return " " };
   }

// convert from Celsius to Farhenheit and then into oven temperature descriptions

function tconv (celsius)
   {
   s = celsius.toString();
   eval ("document.t_" + s + ".src = t" + s + "x.src"); 
   var fahrenheit = 32 + (celsius * 9) / 5;
   fahrenheit = Math.round(fahrenheit);
   document.tform.tfahrenheit.value = " " + fahrenheit;
   document.tform.tgas.value = tconvgas(fahrenheit);
   document.tform.telectric.value = tconvelectric(fahrenheit);
   document.tform.tregulo.value = tconvreg(celsius);
   }

// convert weights

function wconv ()
   {
   var c = new Array(4);
   c = ccw[document.wform.wunits.selectedIndex];
   var v = document.wform.ww.value;
   for (var i=0; i<4; i++)
      {
      var cv = v * c[i];
      cv = Math.round(cv*100) / 100;
      if (cv > 10) cv = Math.round(cv*10) / 10;
      if (cv > 100) cv = Math.round(cv);
      cv = ' ' + cv.toString();
      eval ("document.wform.ww_" + i.toString() + ".value = " + cv);
      if (cv <= 0) eval ("document.wform.ww_" + i.toString() + ".value = ' very few'");
      if (cv > 10000) eval ("document.wform.ww_" + i.toString() + ".value = ' lots of'");
      }
   }

// convert volumes
// array c holds the set of conversion factors for the selected units

function vconv ()
   {
   var c = new Array(8);
   c = ccv[document.vform.vunits.selectedIndex];
   var v = document.vform.vv.value;
   for (var i=0; i<8; i++)
      {
      var cv = v * c[i];
      cv = Math.round(cv*100) / 100;
      if (cv > 10) cv = Math.round(cv*10) / 10;
      if (cv > 100) cv = Math.round(cv);
      cv = ' ' + cv.toString();
      eval ("document.vform.vv_" + i.toString() + ".value = " + cv);
      if (cv <= 0) eval ("document.vform.vv_" + i.toString() + ".value = ' very few'");
      if (cv > 10000) eval ("document.vform.vv_" + i.toString() + ".value = ' lots of'");
      }
   }

