function validateQty(formObj){
	var ok, formVarObj, pattern, basketContainsItems, msg;
	ok = true;
	basketContainsItems = false;
	for(var i=0; i<formObj.length; i++) {
		formVarObj = formObj.elements[i];
		if (formVarObj.name.substr(0,3) == 'qty') {
			basketContainsItems = true;
			formVar = formVarObj.value;
			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 (!ok) {
		alert(msg);
	}
	return ok;
}


// the testQtys param determines whether we should test form quantities. There are no quantities on the courses form (because they're always 0 or 1), so we
// always want the courses to pass this test - it's easiest just to bypass it.
function updateBasket(formObj,testQtys) {
	formObj.checkout.value='';
	if (testQtys) {
		if (validateQty(formObj)) {
			formObj.submit()
		}
	} else {
		formObj.submit()
	}
}


// the testQtys param determines whether we should test form quantities. There are no quantities on the courses form (because they're always 0 or 1), so we
// always want the courses to pass this test - it's easiest just to bypass it.
function checkout(formObj,testQtys) {
	if (testQtys) {
		if (validateQty(formObj)) {
			formObj.checkout.value='1';
			formObj.submit();
		}
	} else {
		formObj.checkout.value='1';
		formObj.submit();
	}
	return false;
}

function update_delivery(formObj, formElm) {
	if (formElm.options[1].selected==true)
		formObj.oneDayDelivery.options[0].selected=true;
	formObj.submit();
}


function validatePostcodeIncBFPO(tab,fieldName,fieldLabel,compulsory, regex) {
	if(document.form1.postcode.value.substr(0,4).toUpperCase() = "BFPO") {
		return true;
	} else {
		return validatePostcodeExt(tab,fieldName,fieldLabel,compulsory);
	}
}

function reset_auto_address() {
	document.form1.autoaddress_.options[0].selected=true;
}
