function pricePerUnit(keyversion, quantity, currency, discount) {
  // calc volume discount for PayPal multi-orders
  // 20080429, 20090219, 20090830, 20100101
  // 20100521, now using modDebug.VolumeDiscounts
  
  // lifetime; eu, us, uk
  var pricesXY1 = new Array();
  pricesXY1[0]=[49.95, 69.95, 44.95];
  pricesXY1[1]=[42.46, 59.46, 38.21];
  pricesXY1[2]=[39.96, 55.96, 35.96];
  pricesXY1[3]=[34.97, 48.97, 31.47];
  // standard; eu, us, uk
  var pricesXY2 = new Array();
  pricesXY2[0]=[29.95, 42.95, 26.95];
  pricesXY2[1]=[25.46, 36.51, 22.91];
  pricesXY2[2]=[23.96, 34.36, 21.56];
  pricesXY2[3]=[20.97, 30.07, 18.87];
  // home; eu, us, uk; 20100811: identical to SL
  var pricesXY3 = new Array();
  pricesXY3[0]=[29.95, 42.95, 26.95];
  pricesXY3[1]=[25.46, 36.51, 22.91];
  pricesXY3[2]=[23.96, 34.36, 21.56];
  pricesXY3[3]=[20.97, 30.07, 18.87];
  // lifetime academic; eu, us, uk (NO volume discount)
  var pricesXY1AC = new Array();
  pricesXY1AC[0]=[24.95, 34.95, 22.45];
  pricesXY1AC[1]=[24.95, 34.95, 22.45];
  pricesXY1AC[2]=[24.95, 34.95, 22.45];
  pricesXY1AC[3]=[24.95, 34.95, 22.45];
  // standard academic; eu, us, uk (NO volume discount)
  var pricesXY2AC = new Array();
  pricesXY2AC[0]=[14.95, 21.45, 13.45];
  pricesXY2AC[1]=[14.95, 21.45, 13.45];
  pricesXY2AC[2]=[14.95, 21.45, 13.45];
  pricesXY2AC[3]=[14.95, 21.45, 13.45];
  
  var iVDblock = 0;
  if (quantity <= 1) {
    iVDblockock = 0;
  } else if (quantity < 10) {
    iVDblock = 1;
  } else if (quantity < 25) {
    iVDblock = 2;
  } else {
    iVDblock = 3;
  }
  
  var iCurrency = 0;
  if (currency == 'EUR') {
    iCurrency = 0;
  } else if (currency == 'USD') {
    iCurrency = 1;
  } else if (currency == 'GBP') {
    iCurrency = 2;
  }
  
  var price = 0;
  if (keyversion == 1) {
    if (discount == 1) {
      price = pricesXY1AC[iVDblock][iCurrency]; 
    } else {  
      price = pricesXY1[iVDblock][iCurrency]; 
    }
  } else if (keyversion == 2) {
    if (discount == 1) {
      price = pricesXY2AC[iVDblock][iCurrency]; 
    } else {
      price = pricesXY2[iVDblock][iCurrency];
    } 
  } else if (keyversion == 3) {
    price = pricesXY3[iVDblock][iCurrency]; 
  }
  return price;
}

