/*
Copyright © 2005 fishfriend.com, Leon Huang. All Rights Reserved.
Users are prohibited from modifying, copying, distributing, transmitting, displaying, publishing, 
selling, licensing, creating derivative works or using any part of this JavaScript for commercial 
or public purposes.
*/

<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

function ClearList() {
  for (var i=document.forms[1].lstResults.options.length-1; i>=0; i--){
    document.forms[1].lstResults.options[i] = null;
  }
  document.forms[1].lstResults.selectedIndex = -1;
}

function Conv_volume() {
	var selConvertFrom, selConvertTo;
	var intAmount;
	var strUnit;

	//Get selected units
	selConvertFrom = document.forms[1].selConvertFrom;
	selConvertTo = document.forms[1].selConvertTo;
	
	//Get entered amount
	intAmount = document.forms[1].txtAmount.value;

  switch (selConvertFrom.options[selConvertFrom.selectedIndex].value) {
      case "millilitre":
          switch (selConvertTo.options[selConvertTo.selectedIndex].value) {
              case "millilitre":
                  intAmount = intAmount;
                  strUnit = " ml";
                  break;
              case "litre":
                  intAmount = intAmount / 1000;
                  strUnit = " litres";
                  break;
              case "usgallon":
                  intAmount = (intAmount / 1000) * 0.264172051;
                  strUnit = " gallons(US)";
                  break;
              case "ukgallon":
                  intAmount = (intAmount / 1000) * 0.219969157;
                  strUnit = " gallons(UK)";
                  break;
              case "teaspoon":
                  intAmount = intAmount * 0.202884135;
                  strUnit = " teaspoons";
                  break;
              case "tablespoon":
                  intAmount = intAmount * 0.0676280451;
                  strUnit = " tablespoons";
                  break;
          }
          break;
      case "litre":
          switch (selConvertTo.options[selConvertTo.selectedIndex].value) {
              case "millilitre":
                  intAmount = intAmount * 1000;
                  strUnit = " ml";
                  break;
              case "litre":
                  intAmount = intAmount;
                  strUnit = " litres";
                  break;
              case "usgallon":
                  intAmount = intAmount * 0.264172051;
                  strUnit = " gallons(US)";
                  break;
              case "ukgallon":
                  intAmount = intAmount * 0.219969157;
                  strUnit = " gallons(UK)";
                  break;
              case "teaspoon":
                  intAmount = (intAmount * 1000) * 0.202884135;
                  strUnit = " teaspoons";
                  break;
              case "tablespoon":
                  intAmount = (intAmount * 1000) * 0.0676280451;
                  strUnit = " tablespoons";
                  break;
          }
          break;
      case "usgallon":
          switch (selConvertTo.options[selConvertTo.selectedIndex].value) {
              case "millilitre":
                  intAmount = (intAmount / 0.264172051) * 1000;
                  strUnit = " ml";
                  break;
              case "litre":
                  intAmount = intAmount / 0.264172051;
                  strUnit = " litres";
                  break;
              case "usgallon":
                  intAmount = intAmount;
                  strUnit = " gallons(US)";
                  break;
              case "ukgallon":
                  intAmount = intAmount * 0.832673844;
                  strUnit = " gallons(UK)";
                  break;
              case "teaspoon":
                  intAmount = intAmount * 768;
                  strUnit = " teaspoons";
                  break;
              case "tablespoon":
                  intAmount = intAmount * 256;
                  strUnit = " tablespoons";
                  break;
          }
          break;
      case "ukgallon":
          switch (selConvertTo.options[selConvertTo.selectedIndex].value) {
              case "millilitre":
                  intAmount = (intAmount / 0.219969157) * 1000;
                  strUnit = " ml";
                  break;
              case "litre":
                  intAmount = intAmount / 0.219969157;
                  strUnit = " litres";
                  break;
              case "usgallon":
                  intAmount = intAmount * 1.20095042;
                  strUnit = " gallons(US)";
                  break;
              case "ukgallon":
                  intAmount = intAmount;
                  strUnit = " gallons(UK)";
                  break;
              case "teaspoon":
                  intAmount = intAmount * 922.32992;
                  strUnit = " teaspoons";
                  break;
              case "tablespoon":
                  intAmount = intAmount * 307.443307;
                  strUnit = " tablespoons";
                  break;
          }
          break;
      case "teaspoon":
          switch (selConvertTo.options[selConvertTo.selectedIndex].value) {
              case "millilitre":
                  intAmount = intAmount * 4.92892161;
                  strUnit = " ml";
                  break;
              case "litre":
                  intAmount = intAmount * 0.00492892161;
                  strUnit = " litres";
                  break;
              case "usgallon":
                  intAmount = intAmount * 0.00130208333;
                  strUnit = " gallons(US)";
                  break;
              case "ukgallon":
                  intAmount = intAmount * 0.00108421073;
                  strUnit = " gallons(UK)";
                  break;
              case "teaspoon":
                  intAmount = intAmount;
                  strUnit = " teaspoons";
                  break;
              case "tablespoon":
                  intAmount = intAmount * 0.333333333;
                  strUnit = " tablespoons";
                  break;
          }
          break;
      case "tablespoon":
          switch (selConvertTo.options[selConvertTo.selectedIndex].value) {
              case "millilitre":
                  intAmount = intAmount * 14.7867648;
                  strUnit = " ml";
                  break;
              case "litre":
                  intAmount = intAmount * 0.0147867648;
                  strUnit = " litres";
                  break;
              case "usgallon":
                  intAmount = intAmount * 0.00390625;
                  strUnit = " gallons(US)";
                  break;
              case "ukgallon":
                  intAmount = intAmount * 0.0032526322;
                  strUnit = " gallons(UK)";
                  break;
              case "teaspoon":
                  intAmount = intAmount * 3;
                  strUnit = " teaspoons";
                  break;
              case "tablespoon":
                  intAmount = intAmount;
                  strUnit = " tablespoons";
                  break;
          }
          break;
  }

	//Round off results
	intAmount = Math.round(intAmount * 10000) / 10000;

	//Display results
	document.forms[1].txtResult.value = intAmount + strUnit;
}

//-->

