$(document).ready(function()
	{
		$('a.disabled').click(function(event)
			{
				event.stopPropagation();
				event.preventDefault();
				return false;
			}
		);
		$('a.tandcPop').click(function(event)
			{
				window.open($(this).attr('href'));
				event.stopPropagation();
				event.preventDefault();
				return false;
			}
		);
	}
);
jQuery.validator.addMethod(
	"dateITA",
	function(value, element) {
		var check = false;
		var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
		if( re.test(value)){
			var adata = value.split('/');
			var gg = parseInt(adata[0],10);
			var mm = parseInt(adata[1],10);
			var aaaa = parseInt(adata[2],10);
			var xdata = new Date(aaaa,mm-1,gg);
			if ( ( xdata.getFullYear() == aaaa ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == gg ) )
				check = true;
			else
				check = false;
		} else
			check = false;
		return this.optional(element) || check;
	},
	"Please enter date in correct format."
);
jQuery.validator.addMethod("postcode", function(value, element) {
	return this.optional(element) || /^([A-PR-UWYZ]([0-9]([0-9]|[A-HJKSTUW])?|[A-HK-Y][0-9]([0-9]|[ABEHMNPRVWXY])?)[0-9][ABD-HJLNP-UW-Z]{2}|GIR0AA)$/i.test(value.replace(' ', ''));
}, "Please enter a valid postcode.");
jQuery.validator.addMethod("telephone", function(value, element) {
	return this.optional(element) || /^\+*[0-9\-(),. ]+$/.test(value);
}, "Please enter a valid telephone number.");
jQuery.validator.addMethod("pastYear", function(value, element) {
	if(!this.optional(element)) {
		if(!/^\d{4}$/.test(value)) {
			return false;
		}
		var xdata = new Date();
		return xdata.getFullYear() >= value;
	}
	return true;
}, "Please enter a valid year that is not in the future.");
jQuery.validator.addMethod("positiveInteger", function(value, element) {
	return this.optional(element) || /^\d+$/.test(value);
}, "Please enter a positive integer.");
jQuery.validator.addMethod("positiveAmount", function(value, element) {
	return this.optional(element) || /^\d+$/.test(value.replace('£',''));
}, "Please enter a positive amount.");
jQuery.validator.addMethod("vehicleRegistration", function(value, element) {
	return this.optional(element) || /^[a-z0-9\s]+$/i.test(value);
}, "Please enter a valid vehicale registration number, letters, numbers and spaces only.");
jQuery.validator.addMethod("validateName", function(value, element) {
	return this.optional(element) || value.length >= 3;
}, "Please enter at least 3 characters.");
jQuery.validator.addMethod("termsAndConditions", function(value, element) {
	if(this.optional(element)) {
		return true;
	}
	//Thjis is really dirty but only way I can see.
	var val = $(':input[name='+$(element).attr('name')+']:checked', $(element).parents('form')).val();
	return  val == 'yes';
}, "This field is required.");
function hideFields(selector)
{
	var element = $(selector);
	if(element.length) {
		element.hide();
		var inputs = $(':input.required', element);
		if(inputs.length) {
			inputs.removeClass('required').addClass('requiredDisabled');
			inputs.rules('add', {required:false});
		}
	}
}
function showFields(selector)
{
	var element = $(selector);
	if(element.length) {
		element.show();
		var inputs = $(':input.requiredDisabled', element);
		if(inputs.length) {
			inputs.removeClass('requiredDisabled').addClass('required');
			inputs.rules('add', {required:true});
		}
	}
}
function updateBoxColours()
{
	$('div.box:visible:even').removeClass('pink_box');
	$('div.box:visible:even a.tooltip img').attr('src','images/info.jpg');
	$('div.box:visible:odd').addClass('pink_box');
	$('div.box:visible:odd a.tooltip img').attr('src','images/info2.jpg');
}
function createTooltips(tips)
{
	jQuery.each(tips, function(selector, tip)
		{
			tip = '<p>'+$('<p/>').text(tip).html()+'</p>';;
			var element = $(selector);
			if(element.length) {
				if(element.parents('.pink_box').length) {
					var anchor = $('<a class="tooltip" href="#"><img class="info" src="images/info2.jpg" alt="Info" /></a>');
				} else {
					var anchor = $('<a class="tooltip" href="#"><img class="info" src="images/info.jpg" alt="Info" /></a>');
				}
				$(anchor).tooltip({
					track: true,
					delay: 0,
					showURL: false,
					bodyHandler: function()
						{
							return tip;
						},
					fixPNG: true,
					opacity: 0.95,
					left: -120
				}).click(function(event)
					{
						event.stopPropagation();
						event.preventDefault();
						return false;
					}
				);
				var error = element.next('.error');
				if(error.length) {
					error.before(anchor);
				} else {
					element.parent().append(anchor);
				}
			}
		}
	);
}
