function isValidEmail( s ) {
	var bValid = true;
	
	// Check for @ symbol
	bValid = ( s.indexOf("@") != -1 );
	// Check for . after the @
	bValid = ( bValid && ( s.lastIndexOf(".") > s.indexOf("@") ) );
	// Check . is not last character
	bValid = ( bValid && ( s.lastIndexOf(".") < s.length - 2 ) );
	// Check @ is not first character
	bValid = ( bValid && ( s.indexOf(".") > 1 && s.indexOf("@") > 1 ) );
	
	return bValid;
}

function validatePayment() {
	with( document.payment ) {
		// Check a cover choice and shipping choice has been made
		var bCover = false;
		for( i = 0; i < cover_choice.length; i ++ ) {
			if ( cover_choice[i].checked ) {
				bCover = true;
			}
		}
		
		if ( ! bCover ) {
			alert("Please choose a type of cover for your book");
			return false;
		}
		
		var bShip = false;		
		if ( cover_choice[2].checked ) {
			bShip = true;
		} else {
			for( i = 0; i < shipping.length; i ++ ) {
				if ( shipping[i].checked ) {
					bShip = true;
				}
			}
		}
		
		if ( ! bShip ) {
			alert("Please choose a shipping option (UK/Ireland or International)");
			return false;
		}
		
		// Verify required fields are provided
		if ( CustomerName.value == "" || CustomerEmail.value == "" || ContactNumber.value == "" || BillingAddress.value == "" ||
			 BillingPostCode.value == "" || CardHolder.value == "" || CardNumber.value == "" || ExpiryDateYear.value == "" || CV2.value == "" ) {
			alert("Sorry, you have not completed all mandatory fields.\n\nPlease do so before continuing.");
			return false;
		}
		
		// If a Switch card, verify start date and issue are provided
		if ( CardType.value == "SWITCH" ) {
			if ( IssueNumber.value == "" ) {
				alert("Please enter the issue number of your Switch card.");
				return false;
			}
		}
		
		if ( ! isValidEmail( CustomerEmail.value ) ) {
			alert("Please enter a valid e-mail address");
			CustomerEmail.focus();
			return false;
		}
	}
	
	return true;
}


function validateEBookPayment() {
	with( document.payment ) {
		// Check a cover choice and shipping choice has been made
		var bCover = true;
		
		if ( ! bCover ) {
			alert("Please choose a type of cover for your book");
			return false;
		}
		
		var bShip = false;
		if ( cover_choice[2].checked ) {
			bShip = true;
		} else {
			for( i = 0; i < shipping.length; i ++ ) {
				if ( shipping[i].checked ) {
					bShip = true;
				}
			}
		}
		
		if ( ! bShip ) {
			alert("Please choose a shipping option (UK/Ireland or International)");
			return false;
		}
		
		// Verify required fields are provided
		if ( CustomerName.value == "" || CustomerEmail.value == "" || ContactNumber.value == "" || BillingAddress.value == "" ||
			 BillingPostCode.value == "" || CardHolder.value == "" || CardNumber.value == "" || ExpiryDateYear.value == "" || CV2.value == "" ) {
			alert("Sorry, you have not completed all mandatory fields.\n\nPlease do so before continuing.");
			return false;
		}
		
		// If a Switch card, verify start date and issue are provided
		if ( CardType.value == "SWITCH" ) {
			if ( IssueNumber.value == "" ) {
				alert("Please enter the issue number of your Switch card.");
				return false;
			}
		}
		
		if ( ! isValidEmail( CustomerEmail.value ) ) {
			alert("Please enter a valid e-mail address");
			CustomerEmail.focus();
			return false;
		}
	}
	
	return true;
}


function validateContact() {
	with( document.contact ) {
		if ( name.value == "" || email.value == "" || comments.value == "" ) {
			alert("Please enter an appropriate value into all fields before proceeding");
			return false;
		}
		
		if ( ! isValidEmail( email.value ) ) {
			alert("Please enter a valid e-mail address" );
			return false;
		}
	}
	
	return true;
}