var captchaValidated = false;

$(document).ready(function()
{
	$('.hideEmail').each(function()
	{
		var emailAddress = '';
		$(this).find('input[name=Part]').each(function()
		{
			emailAddress += $(this).val();
		}).remove();
		$(this).attr('href', 'mailto:' + emailAddress);
	});
	
	$('form').submit(function(e)
	{
		// Validate form.
		if(!formValid(this))
			return false;
	});
	
	/*if($('input[name=_captcha]').size() > 0)
	{
		$('form').submit(function(e)
		{
			// Validate form first.
			if(!formValid(this))
				return false;
			
			$this = $(this);
			if(!captchaValidated)
			{
				e.preventDefault();
				$.ajax(
				{
					url: 'ajax/validateCaptcha.asp', 
					type: 'POST', 
					
					dataType: 'html', 
					data: 
					{
						input: $('input[name=_captcha]', this).val()
					}, 
					
					success: function(html)
					{
						if(html.indexOf('valid') != -1)
						{
							captchaValidated = true;
							$this.trigger('submit');
						}
						else
						{
							alert('Human verification value incorrect, please try again.');
						}
					}
				});
			}
		});
	}*/
});

function formValid(form)
{
	$this = $(form);
	
	var fields = $(':input', $this).removeClass('invalid');
		
	var invalid = Array();
	
	// Required.
	var invalidRequired = $(fields).filter('.required').filter(function()
	{
		return $(this).val().length == 0;
	});
	invalid = $.merge(invalid, invalidRequired);
	
	// Email validation.
	var invalidEmail = $(fields).filter('.email').filter(function()
	{
		var value = $(this).val();
		if(value.length > 0)
		{
			var regex = /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,5}$/;
			return !regex.test($.trim(value)) && value != '';
		}
		return false;
	});
	invalid = $.merge(invalid, invalidEmail);
	
	if($(invalid).size() > 0)
	{
		$(invalid).addClass('invalid');
		
		alert('Please complete all fields correctly.');
		return false;
	}
	return true;
}
