

  var rImageSize = [
    '35x35cm', '46x70cm', '50x50cm', '66x100cm', '75x75cm', '83x125cm',
    '100x100cm', '100x150cm', '125x125cm', '116x175cm',
    '133x200cm'
    ]

  var rImagePrice = [
    [ /* Outdoor image prices */
      60.00, 85.00, 85.00, 138.00, 129.00, 164.00, 164.00, 204.00, 204.00, 275.00,
      339.00
    ], 
    [ /* Indoor image prices */
      60.00, 85.00, 85.00, 138.00, 129.00, 164.00, 164.00, 204.00, 204.00, 275.00,
      339.00
    ]
  ]

/*
  var rDeliveryCost = [
    3.99, 3.99, 3.99, 3.99, 3.99, 4.99, 4.99, 4.99, 4.99, 5.99,
    5.99
    ]
*/
  var rDeliveryCost = [
    0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
    0.00
    ]

  var gIsOutdoorImg = false;

  var OWN_IMAGE_SURCHARGE = 10.00;

function onLoadHandler ()
{
  var elImageSize = document.getElementById('cmbImageSize');
  for (var i = 0; i < rImageSize.length; i++)
  {
    // HACK: Safari doesn't like this!
    // elImageSize.options.add (new Option(rImageSize[i], rImageSize[i])); 
    elImageSize.options[elImageSize.length] = new Option(rImageSize[i], rImageSize[i]);
  }

  var rdoOutdoor = document.getElementById('rdoOutdoor');
  gIsOutdoorImg = rdoOutdoor.checked;

  var elQuantity = document.getElementById('cmbQuantity');
  for (var i = 1; i <= 10; i++)
  {
    // HACK: Safari doesn't like this!
    // elQuantity.options.add (new Option(i, i));
    elQuantity.options[elQuantity.length] = new Option(i, i);
  }

  var elArtworkUnitCost = document.getElementById('artworkUnitCost');
  elArtworkUnitCost.readOnly = true;
  elArtworkUnitCost.value = rImagePrice[(gIsOutdoorImg ? 0 : 1)][0];

  var elArtworkTotalCost = document.getElementById('artworkTotalCost');
  elArtworkTotalCost.readOnly = true;
  // Assume quantity is initialized to 1.
  elArtworkTotalCost.value = rImagePrice[(gIsOutdoorImg ? 0 : 1)][0];

  var elDeliveryCost = document.getElementById('deliveryCost');
  elDeliveryCost.readOnly = true;
  // Assume quantity is initialized to 1.
  elDeliveryCost.value = rDeliveryCost[0];

  var elOwnImageSurcharge = document.getElementById('ownImageSurcharge');
  elOwnImageSurcharge.readOnly = true;
  // Assume quantity is initialized to 1.
  elOwnImageSurcharge.value = OWN_IMAGE_SURCHARGE;

  var elTotalCost = document.getElementById('totalCost');
  elTotalCost.readOnly = true;
  elTotalCost.value = CalcTotalCost();
}

function CalcTotalCost ()
{
  var totalCost, artworkTotalCost, totalDeliveryCost, ownImageSurchargeTotal;

  var elArtworkTotalCost = document.getElementById('artworkTotalCost');
  artworkTotalCost = parseFloat(elArtworkTotalCost.value);

  var elTotalDeliveryCost = document.getElementById('deliveryCost');
  totalDeliveryCost = parseFloat(elTotalDeliveryCost.value);

  var elOwnImageSurcharge = document.getElementById('ownImageSurcharge');
  ownImageSurchargeTotal = parseFloat(elOwnImageSurcharge.value);

  totalCost = artworkTotalCost + ownImageSurchargeTotal + totalDeliveryCost;

  return totalCost;
}

function inputCntl_onChange (control)
{
  switch(control.id)
  {
    case "rdoOutdoor":
    case "rdoIndoor":
    case "cmbImageSize":
    case "cmbQuantity":
      var elQuantity = document.getElementById('cmbQuantity');
      var elImageSize = document.getElementById('cmbImageSize');
      var elArtworkUnitCost = document.getElementById('artworkUnitCost');
      var elArtworkTotalCost = document.getElementById('artworkTotalCost');
      var elOwnImageSurcharge = document.getElementById('ownImageSurcharge');
      var elDeliveryCost = document.getElementById('deliveryCost');
      var elTotalCost = document.getElementById('totalCost');
      var rdoOutdoor = document.getElementById('rdoOutdoor');

      var quantity = parseInt(elQuantity.value);

      // Update artwork unit cost
      var iImageSize = elImageSize.selectedIndex;
      gIsOutdoorImg = rdoOutdoor.checked;
      elArtworkUnitCost.value = 
        rImagePrice[(gIsOutdoorImg ? 0 : 1)][iImageSize];

      // Update artwork total cost
      elArtworkTotalCost.value = 
	rImagePrice[(gIsOutdoorImg ? 0 : 1)][iImageSize] * quantity;

      // Update own image surcharge
      elOwnImageSurcharge.value = OWN_IMAGE_SURCHARGE * quantity;

      // Update delivery cost
      var deliveryCost = rDeliveryCost[elImageSize.selectedIndex] * quantity;
      elDeliveryCost.value = deliveryCost;

      // Update total cost
      elTotalCost.value = CalcTotalCost();
      break;
  }
  return true;
}

function validateOrderForm(form)
{
  // Map visible input control contents to PayPal hidden fields

  // Set 'item_name' hidden field
  var elItemName = document.getElementById('item_name');
  var rdoOutdoor = document.getElementById('rdoOutdoor');
  var elImageSize = document.getElementById('cmbImageSize');
  var elCmbQuantity = document.getElementById('cmbQuantity');

  var copies = elCmbQuantity.value;
  var imageSize = elImageSize.value;
  gIsOutdoorImg = rdoOutdoor.checked;
  elItemName.value = "" + copies + 
      (copies > 1 ? " copies of " : " copy of ") +  
      elImageSize.value + (gIsOutdoorImg ? " outdoor " : " indoor ") + "print";

  // Set 'os0' hidden field
  var elOs0 = document.getElementById('os0');
  elOs0.value = "[Own image(s) to be supplied]" ; 

  // Set 'shipping' hidden field
  var elShipping = document.getElementById('shipping');
  var elTotalDeliveryCost = document.getElementById('deliveryCost');
  elShipping.value = elTotalDeliveryCost.value;
  var totalDeliveryCost = parseFloat(elTotalDeliveryCost.value);

  // Set 'amount' hidden field
  var elAmount = document.getElementById('amount');
  var elTotalCost = document.getElementById('totalCost');
  var totalCostInclDelivery = parseFloat(elTotalCost.value);
  elAmount.value = totalCostInclDelivery - totalDeliveryCost;

  return true;
}


