function validateQty(formObj){
	var ok, formVarObj, pattern, basketContainsItems, msg, totalItems, moreThanTwoItems;
	ok = true;
	basketContainsItems = false;
	totalItems = 0;
	moreThanTwoItems = 0;
	for(var i=0; i<formObj.length; i++) {
		formVarObj = formObj.elements[i];
		// fieldsets don't have names
		if (formVarObj.name) {
			if (formVarObj.name.substr(0,3) == 'qty') {
				basketContainsItems = true;
				formVar = formVarObj.value;
				totalItems += parseInt(formVar);
				// if there's more than 2 of this item, and the remove button for this item isn't checked, increment count
				if(parseInt(formVar)>2){
					if((!document.getElementById(formVarObj.name.replace(/qty/, "del")).checked) && 
					   (document.getElementById(formVarObj.name.replace(/qty/, "itemtype")).value == 'publication')){
						moreThanTwoItems++;
					}
				}
				pattern = /^\d+$/;
				regexp_pattern = new RegExp(pattern);
				if (!regexp_pattern.test(formVar)) {
					if (formVarObj.style) {
						formVarObj.style.backgroundColor = 'yellow';
					}
					ok = false;
					msg = 'Please ensure that all quantities are numbers.\nIf you wish to remove an item then set the quantity to 0.'
				}
			}
		}
	}
	if (basketContainsItems==false) {
		ok = false;
		msg = 'Please add one or more items to your basket before attempting to update or checkout.';
	}
	if (document.getElementById('isparent').value=='1') {
		if (moreThanTwoItems > 0) {
			ok = false;
			msg = 'Please reduce the quantities in your basket to no more than 2 copies of each publication.';
		}
	}
	if (!ok) {
		alert(msg);
	}
	return ok;
}


// the testQtys param determines whether we should test form quantities. There are no quantities on the summary form, so we
// always want this form to pass this test - it's easiest just to bypass it.
function updateBasket(formObj,testQtys) {
	if(formObj.checkout){formObj.checkout.value='';}
	if (testQtys) {
		if (validateQty(formObj)) {
			formObj.submit()
		}
	} else {
		formObj.submit()
	}
	return false;
}


function checkout() {
	var formObj = document.orderform;
	if (validateQty(formObj)) {
		formObj.checkout.value='1';
		formObj.submit();
	} else {
		history.go(0);
	}
	return false;
}
