function validate_form(form)
{
	var errors 			= new Array();
	var error_messages 	= new Array();
	var error_alert		= "Following errors encountered:\r\n\r\n";
	var valid 			= new Array();
	
	if(form.name == "register")
	{
		if(is_empty(form.user_username.value))
		{
			error_messages.push("Username must be at least 4 chars");
			errors.push("username_status");

		}
		else
		{
			valid.push("username_status");
		}
		
		if(form.user_username.value.indexOf(" ") != -1)
		{
			error_messages.push("Username cannot contain spaces");
			errors.push("username_status");

		}
		else
		{
			valid.push("username_status");
		}
		
		
		if(!is_valid_email(form.user_email.value))
		{
			error_messages.push("Invalid email address");
			errors.push("email_status");
		}
		else
		{
			valid.push("email_status");		
		}
		
		if(is_empty(form.user_password.value))
		{
			error_messages.push("Password is mandatory");
			errors.push("password_status");
		}
		else
		{
			valid.push("password_status");
		}
		
		if(form.user_password2.value != form.user_password.value)
		{
			error_messages.push("Passwords do not match");
			errors.push("password2_status");
		}
		else
		{
			valid.push("password2_status");
		}
		/*
		if(is_empty(form.user_name.value))
		{
			error_messages.push("Name is mandatory");
			errors.push("name_status");
		}
		else
		{
			valid.push("name_status");
		}
		
		if(is_empty(form.user_address.value))
		{
			error_messages.push("Address is mandatory");
			errors.push("address_status");
		}
		else
		{
			valid.push("address_status");
		}
		
		if(is_empty(form.user_city.value))
		{
			error_messages.push("City is mandatory");
			errors.push("city_status");
		}
		else
		{
			valid.push("city_status");
		}
		
		if(is_empty(form.user_postcode.value))
		{
			error_messages.push("Postcode is mandatory");
			errors.push("postcode_status");
		}
		else
		{
			valid.push("postcode_status");
		}
		
		if(is_empty(form.user_phone.value))
		{
			error_messages.push("Phone is mandatory");
			errors.push("phone_status");
		}
		else
		{
			valid.push("phone_status");
		}
		
		if(is_empty(form.user_mobile.value))
		{
			error_messages.push("Mobile is mandatory");
			errors.push("mobile_status");
		}
		else
		{
			valid.push("mobile_status");
		}
		*/
		for(i=0;i<valid.length;i++)
		{
			document.getElementById(valid[i]).style.color = "white";		
		}
		
		if(errors.length > 0)
		{
			for(i=0;i<errors.length;i++)
			{
				document.getElementById(errors[i]).style.color = "red";	
				error_alert += " - " + error_messages[i] + "\r\n";
			}
			
			window.alert(error_alert);
			
			return false;
		}
		
		return true;
	}
	else if(form.name == "test")
	{
		
	}
}

function is_empty(str)
{
	empty_string = /^\s*$/;
	if(empty_string.test(str))
	{
		return true;
	}
	
	return false;
}

function is_valid_email(email)
{
	var email_filter 	= /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if(!(email_filter.test(email)))
	{ 
		return false;
	}

	return true;    
}

function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '')
}