function CalculateTotal(frm)
{
	var order_total = 0
	// bottles - so we can ensure they order at least 3
	var bottles = 0
	
	// run through all the form fields
	for (var i=0; i < frm.elements.length; ++i)
		{
		
			// get the current field
			form_field = frm.elements[i]
		
			// Get the field's name
			form_name = form_field.name
		
			// is it a "product" field
			if (form_name.substring(0,4) == "PROD")
			{
		
				// If so, extract the price from the name
				item_price = parseFloat(form_name.substring(form_name.lastIndexOf("_") + 1))
				
				// we extract the product code to enter the sub-total
				// var item_code = (form_name.substring(5,8))
				
				// get the quantity
				item_quantity = parseInt(form_field.value)
		
		
		// set 0 to ''
				if (item_quantity == '0'){ form_field.value = '' }
		
		
		/*
		if ((item_quantity <= 5 ) && (item_quantity != ''))
					{
					alert("You must order six or more of an item");
					form_field.value = '0'
					form_field.focus()
					return(false)
					}
		*/
		
		
				// update the order total - will iterate through each
				if ((item_quantity >= 0) || (item_quantity == ''))
					{
						
						// add order to quantity for freight
						bottles += item_quantity
						
						// update quantity field
						document.FORM.quantity.value = bottles
					
						subtotal = item_quantity * item_price
						// update the subtotal field
						// alert(subtotal)
					
						var item_code = (form_name.substring(5,8))
						var itemsub = 'sub' + item_code
						// var itemsub = 'document.FORM.sub' + item_code
						//alert(itemsub)
						document.FORM[itemsub].value = round_decimals(subtotal, 2)
						//	document.FORM.itemsub.value = subtotal
						// itemsub.value = subtotal
						order_total += subtotal
					}
		
	// frm.item_code.value = round_decimals(subtotal, 2)
	
			}
		} // end of the for
		
	// update total
	frm.TOTAL.value = round_decimals(order_total, 2)
	document.FORM.quantity.value = bottles
	
	
	// orders of 12 or more get a 10% discount
	if (bottles <= 23) {
// alert ('Less than 23 bottles');

document.FORM.freight.value = '8.00'

var grandtotal = order_total + 8.00

document.FORM.TOTAL.value = round_decimals(grandtotal, 2)

	/*
		// var freightammount = '16.00'
		// var discount = round_decimals(discountammount, 2)
		document.FORM.freight.value = "16.00"
		
		var freighttotal = frm.TOTAL.value + 16.00


		frm.TOTAL.value = round_decimals(freighttotal, 2)
*/
	}
	else {
/*		document.FORM.freight.value = "0.00"
		
		// frm.GRANDTOTAL.value = frm.TOTAL.value
		// frm.TOTAL.value = round_decimals(freighttotal, 2)
*/
document.FORM.freight.value = "FREE"
}
}


// round decimals
function round_decimals(original_number, decimals)
	{
		var result1 = original_number * Math.pow(10, decimals)
		var result2 = Math.round(result1)
		var result3 = result2 / Math.pow(10, decimals)
		return pad_with_zeros(result3, decimals)
	}


// pad zeros
function pad_with_zeros(rounded_value, decimal_places)
	{
	// Convert the number to a string
	var value_string = rounded_value.toString()
	
	// Locate the decimal point
	var decimal_location = value_string.indexOf(".")
	
	// Is there a decimal point?
	if (decimal_location == -1)
		{
			
			// If no, then all decimal places will be padded with 0s
			decimal_part_length = 0
			
			// If decimal_places is greater than zero, tack on a decimal point
			value_string += decimal_places > 0 ? "." : ""
		}
	else
		{
	
		// If yes, then only the extra decimal places will be padded with 0s
		decimal_part_length = value_string.length - decimal_location - 1
		}
	
	// Calculate the number of decimal places that need to be padded with 0s
	var pad_total = decimal_places - decimal_part_length
	
	if (pad_total > 0) 
		{	
		// Pad the string with 0s
		for (var counter = 1; counter <= pad_total; counter++) 
			value_string += "0"
		}

	return value_string
}