if(typeof ecommerceproductpackagebuilder == 'undefined') {
var ecommerceproductpackagebuilder = {};
 
// updates the total information

ecommerceproductpackagebuilder.update = function(evt) {
 	var element = evt.target || Event.element(evt);
	var form = Selector.findElement([element].concat(element.ancestors()), 'form', 0);
	if (!form)
		return;
	var totalEl = Element.select(form,"span.product_packager_total_quantity");
	if (!totalEl || totalEl.length == 0)
		return;
	totalEl = totalEl.pop();
	
	var pkgid = form.elements['package'].value;
	var maxEl = Element.select(form,"span.package_max_qty_"+pkgid);
	if (maxEl && maxEl.length > 0)
		maxEl = maxEl.pop();
	else
		maxEl = null;
	var total = 0;
	var el, list;
	list = Element.select(form,'td.quantity input');
	while (el = list.pop()) {
		try
		{
			var q = parseInt(el.value);
			if (q > 0)
				total += q;
		} catch (e) { }
	}
	
	if (maxEl)
		cms.setInnerHTML(totalEl, total + " / " + maxEl.innerHTML);
	else
		cms.setInnerHTML(totalEl, total);
		
	if (total > parseInt(maxEl.innerHTML))
		Element.addClassName(totalEl, "error");
	else
		Element.removeClassName(totalEl, "error");
}

cms.executeOnWindowLoadOrAfter(function() {
	var el, list;
	list = $$('td.quantity input');
	while (el = list.pop())
		Event.observe(el, 'change', ecommerceproductpackagebuilder.update, false);
	for(var i = 0; el = document.forms[i]; i++) {
		var select = el.elements['package'];
		if (!select)
			continue;
		if (select.type=='select-one') {
			Event.observe(select, 'change', ecommerceproductpackagebuilder.update, false);
		}
		ecommerceproductpackagebuilder.update({ target: select });
	}
});

}
 
