jQuery.validator.addMethod("notdefault", function(value, element, param) {
  		return (value != element.defaultValue);
});

jQuery.validator.addMethod("isDate", function(value, element, param) {
	return (value.match(/^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d(?:(?=\x20\d)\x20|$))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/));
});

jQuery.validator.addMethod("curse", function(value, element, param) {
	return (value.search(/\bcunt(face)?|fuck(ing)?(er)?|bastard|\bwank(er)?(boy)?|dick head|arse bandit|shit(e)?/) == -1);
});

function updateDate(day, month, year, date){
	if($('#'+day).val()=="0"||$('#'+month).val()=="0"||$('#'+year).val()=="0"){
		val = "";
	}else{
		val = $('#'+day).val()+"/"+$('#'+month).val()+"/"+$('#'+year).val();
	}
	$('#'+date).val(val);
}

$(document).ready(function(){
	updateDate('day','month','year','dob');
	$('.datepart').change(function(){updateDate('day','month','year','dob');});
	$('#contactform').validate({
		groups: {
    		dob: "day month year"
  		},
		rules: {
			name: {required: true,	notdefault:true},
			lastname: {required: true, notdefault:true},
			email: {required: true,	email: true, notdefault:true},
			email_confirm: {required: true,	equalTo: "#email",	notdefault:true},
		},
		messages: {
			name: "Please enter your name",
			email: {required:"Please enter a valid email address", email:"Please enter a valid email address", notdefault:"Please enter a valid email address"},
			email_confirm: {required: "Please re-enter your email address",	equalTo: "Please enter the same email address as above", notdefault: "Please re-enter your email address"},
		},
		highlight: function(element, errorClass) {
     		if($(element).attr("name") == "dob"){
				$('.datepart').css({border:"#FF0000 solid 1px"});
			}else{
				$(element).css({border:"#FF0000 solid 1px"});
			}
  		},
		unhighlight: function(element, errorClass) {
     		if($(element).attr("name") == "dob"){
				$('.datepart').css({border:"#999999 solid 1px"});
			}else{
				$(element).css({border:"#999999 solid 1px"});
			}
  		},
		success: function(label) {
     		label.addClass("valid").html("Ok")
   		},
		errorContainer:".errorsummary",
		showErrors: function(errorMap, errorList) {
			$(".errorsummary").html("There are " + this.numberOfInvalids() + " errors in your submission, please address these and try again.");
			$(".errorsummary").show();						   
			this.defaultShowErrors();	
		},
		invalidHandler: function(form, validator){
			$('input:not(:submit),textarea').blur(function(){$(this).validate();})
		},
		
	});
	
	$('input:not(:submit),textarea').focus(function(){
		if(this.value == this.defaultValue) { this.value = ""; $(this).css("color", "#000000");};
	});
	$('input:not(:submit),textarea').blur(function(){ 
		if(this.value == "") { this.value = this.defaultValue; $(this).css("color", "#999999");};
	});
});

