// Shipping methods
Ground = 0;
Air = 1;
AKHI = 2;

// Order amounts
ranges = [
  [0, 3, 5, 10, 20, 30, 50, 75, 100, 0, 0],
  [0, 3, 5, 10, 20, 30, 50, 75, 100, 0, 0],
  [0, 3, 5, 10, 20, 30, 50, 75, 100, 0, 0],
];

// Shipping rates
rates = [
 [1.99, 2.49, 3.49, 4.99, 5.99, 6.99, 7.99, 8.99, 0.00, 0.00, 0.00],
 [4.69, 5.29, 5.99, 6.99, 7.99, 8.99, 9.99, 11.49, 5.99, 9.99, 0.00],
 [4.69, 5.29, 5.99, 6.99, 7.99, 8.99, 9.99, 11.49, 5.99, 9.99, 0.00]
];

// Other charges
Handling = 0.00;
PerItem = 0.00;

// Extract order total
function getTotal(write)
{
  var form = document.forms["vw-form"];
  if (!form || !form.elements["vwtotal"]) return;
  var total = form.elements["vwtotal"].value;
  if(write) document.write(total);
  else return total;
}

// Extract item count
function getCount(write)
{
  var form = document.forms["vw-form"];
  if (!form) return;
  var count = 0;
  for(i=0; i<form.elements.length; i++) {
    if(form.elements[i].type == "text") {
      count += parseInt(form.elements[i].value); }
  }
  if(write) document.write(count);
  else return count;
}

// Perform rate table lookup
function getRate(total,method,write)
{
  if (!parseFloat(total)>0) return;
  var rate = -1;
  var base = Handling + (PerItem * getCount(false));
  for(i=0; i<ranges[method].length; i++) {
    if(total>=ranges[method][i]) {
	  if(ranges[method][i+1]==0 || total<ranges[method][i+1]) {
        rate=base + rates[method][i]; break; }
	}
  }
  if (write) document.write(rate.toFixed?rate.toFixed(2):rate);
  else return rate; 
}

