$(document).ready(function()
{
	$('.fancyzoom').click(function(e)
	{
		e.preventDefault();
	
		GB_showCenter('', $(this).attr('href'), 390, 640);
	});
	
	$('#GB_overlay').live('click', function(e)
	{
		e.preventDefault();
		
		GB_hide();
	});
	
	$('#contactPage form').submit(function(e)
	{
		var fields = $('#contactPage form :input');
		$(fields).parents('dd').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 regex = /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,5}$/;
			return !regex.test($(this).val()) && $(this).val() != '';
		});
		invalid = $.merge(invalid, invalidEmail);
		
		// Integer validation.
		var invalidInteger = $(fields).filter('.integer').filter(function()
		{
			var regex = /[0-9]+/;
			return !regex.test($(this).val()) && $(this).val() != '';
		});
		invalid = $.merge(invalid, invalidInteger);
		
		// Postcode validation.
		var invalidPostcode = $(fields).filter('.postcode').filter(function()
		{
			var regex = /[0-9]{3,4}/;
			return (!regex.test($(this).val()) || $(this).val().length > 4) && $(this).val() != '';
		});
		invalid = $.merge(invalid, invalidPostcode);
		
		// Radio Required validation.
		var invalidRadio = $(fields).filter('[type=radio]').filter(function()
		{
			if($(this).parents('.required').size() > 0)
			{
				groupChecked = $('input[name=' + $(this).attr('name') + ']:checked');
				return groupChecked.size() == 0;
			}
			return false;
		});
		invalid = $.merge(invalid, invalidRadio);
		
		// Checkbox Required validation.
		var invalidCheckbox = $(fields).filter('[type=checkbox].required:not(:checked)');
		invalid = $.merge(invalid, invalidCheckbox);
		
		if($(invalid).size() > 0)
		{
			e.preventDefault();
			
			$(invalid).parents('dd').addClass('invalid');
			
			alert('Please complete all fields correctly.');
		}
	});
});
