
var item_subs = [];
var item_subs_d = [];
var subtotal = 0;


function ReCalcAll() {
	for (var i = 0; i <= last_index; i++)
		ReCalc(i);
}

function ReCalc(item_num) {
	if (!document.getElementById("item_sub["+item_num+"]"))
		return;
	var quant = document.getElementsByName("quantity["+item_num+"]").item(0).value;
	var amt = document.getElementsByName("amount["+item_num+"]").item(0).value;
	if (isNaN(quant)) { quant = 0; }
	if (isNaN(amt)) { amt = 0; }
	item_subs[item_num] = quant * amt;
	item_subs_d[item_num] = quant * roundNumberUp(amt * (1 - (discount_percent / 100)), 2);
	//alert(quant+"\n"+amt+"\n"+item_subs[item_num]);
	document.getElementById("item_sub["+item_num+"]").innerHTML = (quant*amt>0) ? formatCurrency(quant*amt) : "-";
	TallySubtotal();
}

function TallySubtotal() {
	subtotal = 0;
	var total = 0;
	for (var i = 0; i <= last_index; i++)
	{
		if (!isNaN(item_subs[i]))
		{
			subtotal += item_subs[i];
			total += item_subs_d[i];
		}
	}
	document.getElementById("display_subtotal").innerHTML = formatCurrency(subtotal);
	document.getElementById("display_total").innerHTML = formatCurrency(total);
	document.getElementById("display_discount").innerHTML = formatCurrency((subtotal - roundNumberUp(total, 2)));
}

function Validate() {
	if (subtotal >= required_subtotal)
		return true;
	alert("You must have a subtotal of at least "+formatCurrency(required_subtotal)+".\n"+
			"Your subtotal is currently "+formatCurrency(subtotal)+".");
	return false;
}


function IntegerOnly() {
	if(event.keyCode<48||event.keyCode>57)
		event.returnValue = false;
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) {num = "0";}
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) {cents = "0" + cents;}
	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 + '.' + cents);
}
function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}
function roundNumberUp(num, dec) {
	var result = Math.ceil(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}
function roundNumberDown(num, dec) {
	var result = Math.floor(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}
