function validate_contact_form(){
	valid = true;
	// # Internal methods:
	// # 	invalid()
	// # 	disable()
	// # 	enable()
	invalid = function(msg){
		valid = false;
		if(msg!=null&&msg!='') alert(msg);
		return false;
	}
	disable = function(){
		$('#contact_form_submit').attr('disabled', 'disabled');
		$('#contact_form_submit').val('Sending message...');
	}
	enable = function(){
		$('#contact_form_submit').attr('disabled', null);
		$('#contact_form_submit').val('Send Message');
	}
	
	// # Disable
	disable();
	
	// # Name
	if(valid && $('#contact_name').val()==''){
		$('#contact_name').focus();
		invalid('Please enter your name.');
	}
	// # Email
	if(valid){
		if(!is_email($('#contact_email')) || $('#contact_email').val() ==''){
			$('#contact_email').focus();
			invalid('Please enter a valid email address.');
		}
	}
	
	// # Message
	if(valid && $('#contact_message').val()==''){
		$('#contact_message').focus();
		invalid('Please enter your message.');
	}
	
	// # Invalid?
	if(!valid) enable();
	
	// # Return result
	return valid;
}

function is_email(obj){
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	str = obj.val();

	if(str.match(emailRegEx)){
		return true;
	}else{
		return false;
	}
}
