function notBlank(field, desc) {
	if (field.value == '') {
		alert('You must enter ' + desc);
		field.focus();
		return false;
	}
	return true;
}

function isChecked(field, desc) {
	if (!field.checked) {
		alert('You must accept the ' + desc);
		return false;
	}
	return true;
}

function validEmail(field) {
	var whereAt1 = field.value.indexOf('@');
	var whereAt2 = field.value.indexOf('@', whereAt1 + 1);
	var whereDot1 = field.value.indexOf('.', whereAt1 + 1);
	var whereSpace = field.value.indexOf(' ');
	var whereEnd = field.value.length - 1;
	if ((whereAt2 > -1) || (whereAt1 < 1) || (whereDot1 < whereAt1 + 2) || (whereDot1 > whereEnd - 1) || (whereSpace > -1)) {
		alert('You must enter a valid email address');
		field.focus();		
		return false;
	}
	return true;
}

function doValidateCheckout() {
	var df = document.forms[0];
	if (notBlank(df.name, 'your name')) {
		if (notBlank(df.address1, 'your address')) {
			if (notBlank(df.city, 'your town/city')) {
				if (notBlank(df.postcode, 'your post code')) {
					if (notBlank(df.telephone, 'your telephone number')) {
						if (validEmail(df.email)) {
							if (isChecked(df.tandc, 'Terms and Conditions')) {
								return true;
							}
						}
					}
				}
			}
		}
	}
	return false;
}

function doValidateContact() {
	var df = document.forms[0];
	if (notBlank(df.name, 'your name')) {
		if (notBlank(df.position, 'your position')) {
			if (notBlank(df.company, 'your company name')) {
				if (notBlank(df.address1, 'your address')) {
					if (notBlank(df.city, 'your town/city')) {
						if (notBlank(df.postcode, 'your post code')) {
							if (notBlank(df.telephone, 'your telephone number')) {
								if (validEmail(df.email)) {
									if (notBlank(df.details, 'your comments')) {
										return true;
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return false;
}

function doValidateRegister() {
	var df = document.forms[0];
	if (notBlank(df.name, 'your name')) {
		if (notBlank(df.position, 'your position')) {
			if (notBlank(df.company, 'your company name')) {
				if (notBlank(df.address1, 'your address')) {
					if (notBlank(df.city, 'your town/city')) {
						if (notBlank(df.postcode, 'your post code')) {
							if (notBlank(df.telephone, 'your telephone number')) {
								if (validEmail(df.email)) {
									return true;
								}
							}
						}
					}
				}
			}
		}
	}
	return false;
}

function doShipping(price, subtotal, vat) {
	var priceObj = getObj('shipping_price');
	var totalObj = getObj('total_price');
	var total = roundCurr(parseFloat(price) + subtotal + vat);
	priceObj.innerHTML = '£' + price;
	totalObj.innerHTML = '£' + total;
}

function getObj(domID) {
	if (document.getElementById) var domObj = document.getElementById(domID);
	else if (document.all) var domObj = document.all[domID];
	return domObj;
}

function roundCurr(numberValue) {
	var num100 = Math.round(numberValue*100);
	var num1 = num100/100;
	var strNum = num1.toString();
	if (num100 % 100 == 0) {
		strNum += '.00';
	}
	else {
		if (num100 % 10 == 0) {
			strNum += '0';
		}
	}
	return strNum;
}
