var lastKnownGoodQty = new Array();

function updateNumbers(prefix) {
	var qtyOrdered = $F(prefix + "Qty");
	
	if (qtyOrdered == parseInt(qtyOrdered)) {
		
		if (qtyOrdered < 0 && qtyOrdered > -500)
			qtyOrdered = Math.abs(qtyOrdered);
		if (qtyOrdered > 500)
			qtyOrdered = 500;
		if (qtyOrdered == 0)
			qtyOrdered = 1;
								
		$(prefix + "Qty").value = qtyOrdered;
		lastKnownGoodQty[prefix] = qtyOrdered;
		updatePercentage(prefix + "BottlesFree", qtyOrdered);
	}
}

function updatePercentage(field, qty) {
	if (qty == 1)
		$(field).update("0%");
	else if (qty == 2)
		$(field).update("10%");
	else if (qty >= 3 && qty < 6)
		$(field).update("20%");
	else if (qty >= 6)
		$(field).update("33%");
}

function setNumeric(prefix) {
	var qtyOrdered = $F(prefix + "Qty");

	if (qtyOrdered != parseInt(qtyOrdered))
		$(prefix + "Qty").value = lastKnownGoodQty[prefix];
}

function registerOrderElement(prefix) {
	if (!$(prefix + "Qty"))
		return false;
	
	lastKnownGoodQty[prefix] = $F(prefix + "Qty");
	updatePercentage(prefix + "BottlesFree", lastKnownGoodQty[prefix]);
	$(prefix + "Qty").onkeyup = function() { updateNumbers(prefix); };
	$(prefix + "Qty").onchange = function() { setNumeric(prefix); };
	return true;
}

document.observe("dom:loaded", function() {
	registerOrderElement("rc");
	registerOrderElement("rc4w");
	registerOrderElement("xc");
	registerOrderElement("mc");
	registerOrderElement("gc");
	registerOrderElement("fc");
});
