function formatCurrency(num) {
// Rounds and adds pound sign and trailing zeros
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	pence = num%100;
	num = Math.floor(num/100).toString();
	if(pence<10)
		pence = "0" + pence;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
		num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '£' + num + '.' + pence);
}


// prices
var price_cdrom_multiplication = 15.00;
var price_cdrom_numberpatterns = 15.00;
var price_cdrom_primeclimb = 10.00;
var price_cdrom_transformations = 15.00;

var price_magicmasks = 5.00;
var price_primeclimbpencil = 15.00;
var price_shapes25mm = 15.00;
var price_shapes40mm = 15.00;

var price_magicmanual = 0.00;

var price_bubbles_cd = 0.00;

var delCost = 0.00;


function doCalc() {

	// Get quantities from form
	var num_cdrom_multiplication = parseInt(document.orderform.cdrom_multiplication.value); 
	var num_cdrom_numberpatterns = parseInt(document.orderform.cdrom_numberpatterns.value); 
	var num_cdrom_primeclimb = parseInt(document.orderform.cdrom_primeclimb.value); 
	var num_cdrom_transformations = parseInt(document.orderform.cdrom_transformations.value); 
	
	var num_magicmasks = parseInt(document.orderform.magicmasks.value); 
	var num_primeclimbpencil = parseInt(document.orderform.primeclimbpencil.value); 
	var num_shapes25mm = parseInt(document.orderform.shapes25mm.value); 
	var num_shapes40mm = parseInt(document.orderform.shapes40mm.value); 
	
	var num_magicmanual = parseInt(document.orderform.magicmanual.value);
	
	var num_bubbles_cd = parseInt(document.orderform.bubbles_cd.value);
	
	


	// Calculate cost
	
	// Set cost to zero to start
	var Cost = 0;
	var numProds = 0;

	// For each non-zero item multiply by the cost and add quantity
	if (num_cdrom_multiplication == 0 || isNaN(num_cdrom_multiplication)) {} 
	else {Cost += (price_cdrom_multiplication * num_cdrom_multiplication); numProds += num_cdrom_multiplication;};
	
	if (num_cdrom_numberpatterns == 0 || isNaN(num_cdrom_numberpatterns)) {} 
	else {Cost += (price_cdrom_numberpatterns * num_cdrom_numberpatterns); numProds += num_cdrom_numberpatterns;};
	
	if (num_cdrom_primeclimb == 0 || isNaN(num_cdrom_primeclimb)) {} 
	else {Cost += (price_cdrom_primeclimb * num_cdrom_primeclimb); numProds += num_cdrom_primeclimb;};
	
	if (num_cdrom_transformations == 0 || isNaN(num_cdrom_transformations)) {} 
	else {Cost += (price_cdrom_transformations * num_cdrom_transformations); numProds += num_cdrom_transformations;};
	
	if (num_magicmasks == 0 || isNaN(num_magicmasks)) {} 
	else {Cost += (price_magicmasks * num_magicmasks); numProds += num_magicmasks;};
	
	if (num_primeclimbpencil == 0 || isNaN(num_primeclimbpencil)) {} 
	else {Cost += (price_primeclimbpencil * num_primeclimbpencil); numProds += num_primeclimbpencil;};
	
	if (num_shapes25mm == 0 || isNaN(num_shapes25mm)) {} 
	else {Cost += (price_shapes25mm * num_shapes25mm); numProds += num_shapes25mm;};
	
	if (num_shapes40mm == 0 || isNaN(num_shapes40mm)) {} 
	else {Cost += (price_shapes40mm * num_shapes40mm); numProds += num_shapes40mm;};
	
	if (num_magicmanual == 0 || isNaN(num_magicmanual)) {} 
	else {Cost += (price_magicmanual * num_magicmanual); numProds += num_magicmanual;};
	
	if (num_bubbles_cd == 0 || isNaN(num_bubbles_cd)) {} 
	else {Cost += (price_bubbles_cd * num_bubbles_cd); numProds += num_bubbles_cd;};
	

	// Add delivery - not currently required to activate
		  
	// Add trailing zeros to total eg 2.8 => 2.80
	Cost = formatCurrency(Cost);

	// Update form
	document.orderform.number_prods.value = parseInt(numProds);
	document.orderform.total_cost.value = Cost;	
}