//Weight measure variables
var grain = "grain(s)";
var gram = "gram(s)";
var kilogram = "kilogram(s)";
var ounce = "ounce(s)";
var pound = "pound(s)";
var hundredweight = "hundredweight(s)";
var ton = "ton(s)";
var longton = "long (or gross) ton(s)";

var grainAbbrev = "grain(s)";
var gramAbbrev = "g";
var kilogramAbbrev = "kg";
var ounceAbbrev = "oz";
var poundAbbrev = "lb";
var hundredweightAbbrev = "cwt";
var tonAbbrev = "T";
var longtonAbbrev = "long T";

var weightMeasureArray = new Array(7);

  var grainIndex = 0;
  var gramIndex = 1;
  var kilogramIndex = 2;
  var ounceIndex = 3;
  var poundIndex = 4;
  var hundredweightIndex = 5;
  var tonIndex = 6;
  var longtonIndex = 7;

  var graingramratio = .06479891;
  var grainozratio = 437.5;
  var grainlbratio = 7000;
  var graintonratio = 14000000;
  var grainlongratio = 15680000;

  var gramozratio = .035274;
  var gramlbratio = .00220462;
  var gramtonratio = 907184.74;
  var gramlongratio = 1016046.9088;

  var ozlbratio = 16;
  var oztonratio = 32000;
  var ozlongratio = 35840;

  var lbtonratio = 2000;
  var lblongratio = 2240;

  var tonlongratio = 1.12;

  var formlist = "";

function formatWeightArray(formatType)
{

  if (formatType == 'short')
  {
    weightMeasureArray[0] = grainAbbrev;
    weightMeasureArray[1] = gramAbbrev;
    weightMeasureArray[2] = kilogramAbbrev;
    weightMeasureArray[3] = ounceAbbrev;
    weightMeasureArray[4] = poundAbbrev;
    weightMeasureArray[5] = hundredweightAbbrev;
    weightMeasureArray[6] = tonAbbrev;
    weightMeasureArray[7] = longtonAbbrev;
  }
  else
  {
    weightMeasureArray[0] = grain;
    weightMeasureArray[1] = gram;
    weightMeasureArray[2] = kilogram;
    weightMeasureArray[3] = ounce;
    weightMeasureArray[4] = pound;
    weightMeasureArray[5] = hundredweight;
    weightMeasureArray[6] = ton;
    weightMeasureArray[7] = longton;
  }
}

function convertWeightMeasure()
{
  var result;
  
  var decimalplaces = Number(document.weightForm.weightMeasureDecimalPlaces.value);
  var quantity = getQuantity(document.weightForm.weightMeasureQuantity.value);
  var measureFrom = Number(document.weightForm.weightMeasureFrom.value);
  var measureTo = Number(document.weightForm.weightMeasureTo.value);

  //grainIndex
  if (measureFrom == grainIndex)
  {
    if (measureTo == grainIndex)
    {
      result = quantity;
    }
    else if (measureTo == gramIndex)
    {
      result = quantity * graingramratio;
    }
    else if (measureTo == kilogramIndex)
    {
      result = quantity * (graingramratio / 1000);
    }
    else if (measureTo == ounceIndex)
    {
      result = quantity * grainozratio;
    }
    else if (measureTo == poundIndex)
    {
      result = quantity / grainlbratio;
    }
    else if (measureTo == hundredweightIndex)
    {
      result = quantity / (grainlbratio * 100);
    }
    else if (measureTo == tonIndex)
    {
      result = quantity / graintonratio;
    }
    else if (measureTo == longtonIndex)
    {
      result = quantity / grainlongratio;
    }
  }
  //gramIndex
  if (measureFrom == gramIndex)
  {
    if (measureTo == grainIndex)
    {
      result = quantity / graingramratio;
    }
    else if (measureTo == gramIndex)
    {
      result = quantity;
    }
    else if (measureTo == kilogramIndex)
    {
      result = quantity / 1000;
    }
    else if (measureTo == ounceIndex)
    {
      result = quantity * gramozratio;
    }
    else if (measureTo == poundIndex)
    {
      result = quantity * gramlbratio;
    }
    else if (measureTo == hundredweightIndex)
    {
      result = quantity * (gramlbratio / 100);
    }
    else if (measureTo == tonIndex)
    {
      result = quantity / gramtonratio;
    }
    else if (measureTo == longtonIndex)
    {
      result = quantity / gramlongratio;
    }
  }
  //kilogramIndex
  if (measureFrom == kilogramIndex)
  {
    if (measureTo == grainIndex)
    {
      result = quantity / (graingramratio / 1000);
    }
    else if (measureTo == gramIndex)
    {
      result = quantity * 1000;
    }
    else if (measureTo == kilogramIndex)
    {
      result = quantity;
    }
    else if (measureTo == ounceIndex)
    {
      result = quantity * (gramozratio * 1000);
    }
    else if (measureTo == poundIndex)
    {
      result = quantity * (gramlbratio * 1000);
    }
    else if (measureTo == hundredweightIndex)
    {
      result = quantity * (gramlbratio * 10);
    }
    else if (measureTo == tonIndex)
    {
      result = quantity * (gramtonratio / 1000);
    }
    else if (measureTo == longtonIndex)
    {
      result = quantity * (gramlongratio / 1000);
    }
  }
  //ounceIndex
  if (measureFrom == ounceIndex)
  {
    if (measureTo == grainIndex)
    {
      result = quantity * grainozratio;
    }
    else if (measureTo == gramIndex)
    {
      result = quantity / gramozratio;
    }
    else if (measureTo == kilogramIndex)
    {
      result = quantity / (gramozratio * 1000);
    }
    else if (measureTo == ounceIndex)
    {
      result = quantity;
    }
    else if (measureTo == poundIndex)
    {
      result = quantity / ozlbratio;
    }
    else if (measureTo == hundredweightIndex)
    {
      result = quantity / (ozlbratio * 100);
    }
    else if (measureTo == tonIndex)
    {
      result = quantity / oztonratio;
    }
    else if (measureTo == longtonIndex)
    {
      result = quantity / ozlongratio;
    }
  }
  //poundIndex
  if (measureFrom == poundIndex)
  {
    if (measureTo == grainIndex)
    {
      result = quantity * grainlbratio;
    }
    else if (measureTo == gramIndex)
    {
      result = quantity / gramlbratio;
    }
    else if (measureTo == kilogramIndex)
    {
      result = quantity / (gramlbratio * 1000);
    }
    else if (measureTo == ounceIndex)
    {
      result = quantity * ozlbratio;
    }
    else if (measureTo == poundIndex)
    {
      result = quantity;
    }
    else if (measureTo == hundredweightIndex)
    {
      result = quantity / 100;
    }
    else if (measureTo == tonIndex)
    {
      result = quantity / lbtonratio;
    }
    else if (measureTo == longtonIndex)
    {
      result = quantity / lblongratio;
    }
  }
  //hundredweightIndex
  if (measureFrom == hundredweightIndex)
  {
    if (measureTo == grainIndex)
    {
      result = quantity * (grainlbratio * 100);
    }
    else if (measureTo == gramIndex)
    {
      result = quantity / (gramlbratio / 100);
    }
    else if (measureTo == kilogramIndex)
    {
      result = quantity / (gramlbratio * 10);
    }
    else if (measureTo == ounceIndex)
    {
      result = quantity * (ozlbratio * 100);
    }
    else if (measureTo == poundIndex)
    {
      result = quantity * 100;
    }
    else if (measureTo == hundredweightIndex)
    {
      result = quantity;
    }
    else if (measureTo == tonIndex)
    {
      result = quantity / (lbtonratio / 100);
    }
    else if (measureTo == longtonIndex)
    {
      result = quantity / (lblongratio / 100);
    }
  }
  //tonIndex
  if (measureFrom == tonIndex)
  {
    if (measureTo == grainIndex)
    {
      result = quantity * graintonratio;
    }
    else if (measureTo == gramIndex)
    {
      result = quantity * gramtonratio;
    }
    else if (measureTo == kilogramIndex)
    {
      result = quantity * (gramtonratio / 1000);
    }
    else if (measureTo == ounceIndex)
    {
      result = quantity * oztonratio;
    }
    else if (measureTo == poundIndex)
    {
      result = quantity * lbtonratio;
    }
    else if (measureTo == hundredweightIndex)
    {
      result = quantity * (lbtonratio / 100);
    }
    else if (measureTo == tonIndex)
    {
      result = quantity;
    }
    else if (measureTo == longtonIndex)
    {
      result = quantity / tonlongratio;
    }
  }
  //longtonIndex
  if (measureFrom == longtonIndex)
  {
    if (measureTo == grainIndex)
    {
      result = quantity * grainlongratio;
    }
    else if (measureTo == gramIndex)
    {
      result = quantity * gramlongratio;
    }
    else if (measureTo == kilogramIndex)
    {
      result = quantity * (gramlongratio / 1000);
    }
    else if (measureTo == ounceIndex)
    {
      result = quantity * ozlongratio;
    }
    else if (measureTo == poundIndex)
    {
      result = quantity * lblongratio;
    }
    else if (measureTo == hundredweightIndex)
    {
      result = quantity * (lblongratio / 100);
    }
    else if (measureTo == tonIndex)
    {
      result = quantity * tonlongratio;
    }
    else if (measureTo == longtonIndex)
    {
      result = quantity;
    }
  }

  document.weightForm.weightMeasureQuantity.value = quantity;
  document.weightForm.weightMeasureResult.value = document.weightForm.weightMeasureQuantity.value + ' ' + weightMeasureArray[measureFrom] + ' = ' + formatNumber(result,decimalplaces) + ' ' + weightMeasureArray[measureTo];
  return false;
}

function clearWeightResult()
{
  document.weightForm.weightMeasureResult.value = "";
}
