function isValidEmail(sEmail) {
	// Regex based email validation
	// Same as used in PHP validation
	return (/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i.test(sEmail));
}

function validateLoginForm() {
	var form = document.getElementById('loginForm');
	var email = form.email;
	if (!isValidEmail(email.value)) {
		email.focus();
		alert('The email address you entered was not valid. Please try again.');
		return false;
	}
	var password = form.password;
	if (password.value.length < 6) {
		password.value = "";
		password.focus();
		alert('The password you entered was not valid. Your password should be at least 6 characters long.');
		return false;
	}
}

function validateRegistrationForm() {
	var form = document.getElementById('registrationForm');
	var firstname = form.firstname;
	if (firstname.value.length < 1) {
		firstname.focus();
		alert('You must enter your first name.');
		return false;
	}
	var surname = form.surname;
	if (surname.value.length < 1) {
		surname.focus();
		alert('You must enter your surname.');
		return false;
	}
	var email = form.email;
	if (!isValidEmail(email.value)) {
		email.focus();
		alert('You must enter a valid email address.');
		return false;
	}
	var password = form.password;
	var password2 = form.password2;
	if (password.value.length < 6) {
		password.value = "";
		password.focus();
		alert('Your password must be at least 6 characters long.');
		return false;
	} else {
		if (password.value != password2.value) {
			password.value = "";
			password2.value = "";
			password.focus();
			alert('The passwords you entered were not the same.');
			return false;
		}
	}
	var secretquestionanswer = form.secretquestionanswer;
	if (secretquestionanswer.value.length < 1) {
		secretquestionanswer.focus();
		alert('You must answer a secret question.');
		return false;
	}
	return true;
}

function validateContactForm() {
	var form = document.getElementById('contactForm');
	var email = form.email;
	if (!isValidEmail(email.value)) {
		email.focus();
		alert('The email address you entered was not valid. Please try again.');
		return false;
	}
	var firstname = form.firstname;
	if (firstname.value.length < 1) {
		firstname.focus();
		alert('You must enter your firstname.');
		return false;
	}
	var surname = form.surname;
	if (surname.value.length < 1) {
		surname.focus();
		alert('You must enter your surname.');
		return false;
	}
	var subject = form.subject;
	if (subject.value.length < 3) {
		subject.focus();
		alert('The subject must be at least 3 characters long.');
		return false;
	}
	var message = form.message;
	if (message.value.length < 6) {
		message.focus();
		alert('Your message must be at least 6 characters long.');
		return false;
	}
}

function validateAccountChangePasswordForm() {
	var form = document.getElementById('accountChangePasswordForm');
	var oldpassword = form.oldpassword;
	if (oldpassword.value.length < 1) {
		oldpassword.focus();
		alert('You must enter your current password.');
		return false;
	}
	var password = form.password;
	var password2 = form.password2;
	if (password.value.length < 6) {
		password.value = "";
		password.focus();
		alert('Your password must be at least 6 characters long.');
		return false;
	} else {
		if (password.value != password2.value) {
			password.value = "";
			password2.value = "";
			password.focus();
			alert('The passwords you entered were not the same.');
			return false;
		}
	}
	return true;
}

function validateUserEditForm() {
	var form = document.getElementById('userEditForm');
	var firstname = form.firstname;
	if (firstname.value.length < 1) {
		firstname.focus();
		alert('You must enter your first name.');
		return false;
	}
	var surname = form.surname;
	if (surname.value.length < 1) {
		surname.focus();
		alert('You must enter your surname.');
		return false;
	}
	var email = form.email;
	if (!isValidEmail(email.value)) {
		email.focus();
		alert('You must enter a valid email address.');
		return false;
	}
	return true;
}

function validateEntryForm() {
	var form = document.getElementById('entryForm');
	var name = form.name;
	if (name.value.length < 1) {
		name.focus();
		alert('You must enter a name.');
		return false;
	}
	var email = form.email;
	if (email.value.length < 1) {
		return confirm('You have not added an email address.\r\nGreetings sent to this contact will only be available through the search box on The Birthday Site homepage.\r\n\r\nDo you wish to continue?');
	}
	if (!isValidEmail(email.value)) {
		email.focus();
		alert('The email address you entered was not valid.');
		return false;
	}
	var sendsms = form.sendsms;
	if (sendsms.checked) {
		var mobile = form.mobile;
		if (mobile.value.length < 9) {
			mobile.focus();
			alert('You must enter a valid mobile number. Please use international formatting for non-UK numbers.');
			return false;
		}
	}
	return true;
}

function validateCreateGreetingForm() {
	var form = document.getElementById('createGreetingForm');
	var recipientlist = form.recipientlist;
	if (recipientlist.options.length < 1) {
		return confirm('You have not added any recipients to this greeting.\r\nThe greeting will only be available through the search box on The Birthday Site homepage.\r\n\r\nDo you wish to continue?');
	}
	return true;
}

