/* 
		Alan Ferguson
		http://www.alanferguson.net
		
		New User Validation
*/

function validate(form) {
	
	// Illegal characters expression
	var illegalChars = /\W/;

	// Validate username
	if ((form.username.value.length < 4) || (form.username.value.length > 32)) {
		
		alert('Username must be at least four characters, and no longer than 32.');
		
		form.username.focus();
		
		return false;
		
	}
		
	if (illegalChars.test(form.username.value)) {
	
		alert('Username contains illegal characters. Please use letters and numbers only.');
		
		form.username.focus();
		
		return false;
		
	}
	
	// Validate password
	if ((form.pw.value.length < 5) || (form.pw.value.length > 32)) {
	
		alert('Password must be at least five characters, and no more than 32.');
		
		form.pw.focus();
		
		return false;
		
	}
	
	if (form.pw.value != form.pwconfirm.value) {
	
		alert('Your password does not match. Please try again.');
		
		form.pw.value = '';
		
		form.pwconfirm.value = '';
		
		form.pw.focus();
		
		return false;
		
	}
	
	// Validate company name if provided
	if (form.company.value.length > 32) {
		
		alert('Company name must be no longer than 32 characters.');
		
		form.company.focus();
		
		return false;
		
	}
	
	// First name is required
	if (form.firstname.value.length < 1) {
		
			alert('First name required!');
			
			form.firstname.focus();
			
			return false;
			
	}
	
	// Validate first name
	if (form.firstname.value.length > 32) {
		
		alert('First name must be no longer than 32 characters.');
		
		form.firstname.focus();
		
		return false;
		
	}
	
	//Validate last name if provided
	if (form.lastname.value.length > 32) {
	
		alert('Last name must be no longer than 32 characters.');
		
		form.lastname.focus();
		
		return false;
		
	}

	// Validate e-mail address if provided.
	var emailRegxp = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;
	
	if ((form.email.value.length > 0) && (emailRegxp.test(form.email.value) == false)) {
	
		alert('Please provide a valid e-mail address.');
		
		form.email.focus();
		
		return false;
		
	}
	
	// Form validates. Proceed.
	return true;
	
}
