function validateExistingMember(form)
{
	var errors = "";
	if(form.eEmail.value == "")
		errors += "- An email address is required.\n";
	if(form.ePass.value == "")
		errors += "- A password is required.\n";
	if(errors != "")
		alert("The following errors must be corrected before you can login:\n\n"+errors);
	return (errors == "");
}

function validateNewMember(form)
{
	var errors = "";
	if(form.nName.value == "")
		errors += "- A contact name is required.\n";
	if(form.nEmail.value == "")
		errors += "- A valid contact email address is required.\n";
	if((form.nPassword.value == "") || ((form.nPassword.value).length < 6))
		errors += "- A password is required and must be at least 6 characters long.\n";
	if(form.nPassword.value != form.nPasswordConfirm.value)
		errors += "- Please ensure both passwords match.\n";
	if(form.nCompName.value == "")
		errors += "- A company name is required.\n";
	if(form.nWebsite.value == "")
		errors += "- The company website address is required.\n";
	if(form.nPublicEmail.value == "")
		errors += "- A valid public email address if required.\n";
	if(form.nPhone.value == "")
		errors += "- A phone number is required.\n";
	if(form.nAddress1.value == "")
		errors += "- An address is required.\n";
	if(form.nTown.value == "")
		errors += "- A town is required.\n";
	if((form.nCounty.value == "") || (form.nCounty.value == 0))
		errors += "- A county is required.\n";
	if(form.nPostcode.value == "")
		errors += "- A postcode is required.\n";
	if(form.nTerms.checked == 0)
		errors += "- You must confirm you have read and agree to the terms of use before you can register.\n";
	if(errors != "")
		alert("The following errors must be corrected before registration can continue:\n\n"+errors);
	return (errors == "");
}

function validateNewMemberStep2(form)
{
	var errors = "";
	if(form.nYear.value == "")
		errors += "- Year Established is required.\n";
	if((form.nShortDesc.value == "") || ((form.nShortDesc.value).length > 255))
		errors += "- Short Description is required and must contain no more than 255 characters. (Current length:"+(form.nShortDesc.value).length+").\n";
	if(form.nFullDesc.value == "")
		errors += "- Full Description is required.\n";
	if(errors != "")
		alert("The following errors must be corrected before registration can continue:\n\n"+errors);
	return (errors == "");
}

function validateForgottenPassword(form)
{
	var errors = "";
	if(form.email.value == "")
		errors = "- An email address is required.\n";
	if(errors != "")
		alert("The following errors must be corrected before your password can be sent to you:\n\n"+errors);
	return (errors == "");
}

function validateMemberChanges(form)
{
	var errors = "";
	if(form.nName.value == "")
		errors += "- A contact name is required.\n";
	if(form.nEmail.value == "")
		errors += "- A valid contact email address is required.\n";
	if((form.nPassword.value != "") && ((form.nPassword.value).length < 6))
		errors += "- Passwords must be at least 6 characters long.\n";
	if(form.nPassword.value != form.nPasswordConfirm.value)
		errors += "- Please ensure both passwords match.\n";
	if(form.nWebsite.value == "")
		errors += "- The company website address is required.\n";
	if(form.nPublicEmail.value == "")
		errors += "- A valid public email address if required.\n";
	if(form.nPhone.value == "")
		errors += "- A phone number is required.\n";
	if(form.nAddress1.value == "")
		errors += "- An address is required.\n";
	if(form.nTown.value == "")
		errors += "- A town is required.\n";
	if(form.nCounty.value == "")
		errors += "- A county is required.\n";
	if(form.nPostcode.value == "")
		errors += "- A postcode is required.\n";
	if(form.nShortDesc.value == "")
		errors += "- A short description is required.\n";
	if(form.nFullDesc.value == "")
		errors += "- A full description is required.\n";
	if(errors != "")
		alert("The following errors must be corrected before your details can be updated:\n\n"+errors);
	return (errors == "");
}

function validatePassword(form)
{
	var errors = "";
	if(form.nPassword.value == "")
		errors += "- Password is required.\n";
	if(errors != "")
		alert("The following errors must be corrected before your details can be updated:\n\n"+errors);
	return (errors == "");
}

function validateRequestReview(form)
{
	var errors = "";
	if(form.name.value == "")
		errors += "- The name of the person you are sending the request to is required.\n";
	if(form.email.value == "")
		errors += "- The email address to send the request to is required.\n";
	if(errors != "")
		alert("The following errors must be corrected before the review request can be sent:\n\n"+errors);
	return (errors == "");
}

function validateCategories(form)
{
	var count = 0;
	for(var i = 0; i < form.elements.length; i++)
	{
		var form_element = form.elements[i];
		if(form_element.name.substr(0, 8) == 'category')
			if(form.elements[i].checked)
				count++;
	}
	if (count == 0)
	{
		alert("The following errors must be corrected before your categories can be set:\n\n- At least 1 category must be selected.");
		return false;
	}
	else if (count > 8)
	{
		alert("The following errors must be corrected before your categories can be set:\n\n- At most 8 categories can be selected.\nYou currently have selected "+count+" categories.");
		return false;
	}
	else
		return true;
}

function updateRemaining(textarea, name)
{
	if(name=='short')
	{
		if(textarea.value.length > 255)
			document.getElementById('nShortDesc').value = document.getElementById('nShortDesc').value.substring(0, 255);
		else
			document.getElementById('shortRemaining').innerHTML = 255 - textarea.value.length;
	}
	else if(name=='full')
	{
		if(textarea.value.length > 2000)
			document.getElementById('nFullDesc').value = document.getElementById('nFullDesc').value.substring(0, 2000);
		else
			document.getElementById('fullRemaining').innerHTML = 2000 - textarea.value.length;
	}
	else
	{
		if(textarea.value.length > 2000)
			document.getElementById('review').value = document.getElementById('review').value.substring(0, 2000);
		else
			document.getElementById('reviewRemaining').innerHTML = 2000 - textarea.value.length;
	}
}