//--****************************
//--* Register Form Validation *
//--****************************
$().ready(function(){
	// set focus on page
	$("#Email1").focus();
	// validate registeration form
	$("#form-2").validate({
		rules: {
			Email1: {
				required: true,
				minlength: 5,
				email: true
			},
			Email2: {
				required: true,
				minlength: 5,
				email: true,
				equalTo: "#Email1"
			},
			Password1: {
				required: true,
				minlength: 6
			},
			Password2: {
				required: true,
				minlength: 6,
				equalTo: "#Password1"
			},
			Title: "required",
			FirstName: "required",
			LastName: "required",
			NationalityID: "required",
			Address1: "required",
			County: {
				required: function(element)
				{
        			return $("#Country").val() == 'United Kingdom';
      			}
			},
			Postcode: {
				required: function(element)
				{
        			return $("#Country").val() == 'United Kingdom';
      			},
				minlength: 5
			},
			Country: "required",
			Telephone: {
				required: true,
				digits: true,
				rangelength: [8,20]
			},
			Mobile: {
				required: false,
				digits: true,
				rangelength: [8,20]
			},
			EUEligible: "required",
			RelevantDocumentID: "required",
			NoticePeriodID: "required",
			IsMember: "required",
			MembershipNo: {
				required: function(element)
				{
        			return $('input[name=IsMember]:checked').val() == 'Y';
      			}
			},
			IsMember2: "required",
			MembershipNo2: {
				required: function(element)
				{
        			return $('input[name=IsMember2]:checked').val() == 'Y';
      			}
			},
			JobTitle: "required",
			QualificationID: "required",
			JobStatusID: "required",
			JobSectorID: "required",
			JobTypeID: "required",
			LocationID: "required",
			SalaryID: "required",
			CVFile: "required"
		},
		messages: {
			Email1: {
				required: "Required field",
				minlength: "Must contain at least 5 chars",
				email: "Invalid E-mail address"
			},
			Email2: {
				required: "Required field",
				minlength: "Must contain at least 5 chars",
				email: "Invalid E-mail address",
				equalTo: "Enter same E-mail as above"
			},
			Password1: {
				required: "Required field",
				minlength: "Must contain at least 6 chars"
			},
			Password2: {
				required: "Required field",
				minlength: "Must contain at least 6 chars",
				equalTo: "Enter same password as above"
			},
			Title: "Required field",
			FirstName: "Required field",
			LastName: "Required field",
			NationalityID: "Required field",
			Address1: "Required field",
			County: "Required field (for UK only)",
			Postcode: {
				required: "Required field (for UK only)",
				minlength: "Invalid postcode"
			},
			Country: "Required field",
			Telephone: {
				required: "Required field",
				digits: "Must contain numbers only",
				rangelength: "Must contain at least 8 digits"
			},
			Mobile: {
				digits: "Must contain numbers only",
				rangelength: "Must contain at least 8 digits"
			},
			EUEligible: "Required field",
			RelevantDocumentID: "Required field",
			NoticePeriodID: "Required field",
			IsMember: "Required field",
			MembershipNo: "Required field (see above)",
			IsMember2: "Required field",
			MembershipNo2: "Required field (see above)",
			JobTitle: "Required field",
			QualificationID: "Required field",
			JobStatusID: "Required field",
			JobSectorID: "Required field",
			JobTypeID: "Required field",
			LocationID: "Required field",
			SalaryID: "Required field",
			CVFile: "Required field"
		},
		// the errorPlacement has to take the table layout into account
		errorPlacement: function(error, element) {
			if ( element.is(":radio") )
				error.appendTo( element.parent().next().next().next().next().next() );
			else if ( element.is(":checkbox") )
				error.appendTo ( element.next() );
			else
				error.appendTo( element.parent().next() );
		},
		// set this class to error-labels to indicate valid fields
		success: function(label) {
			// set &nbsp; as text for IE
			label.html("&nbsp;").addClass("checked");
		}
	});
});