$().ready(function() {


$.validator.addMethod("checkinput", function(value,label) {
		return !value.match(/[^-a-zA-Z0-9', ]/);
}, 'illegal characters');


$.validator.addMethod("checktel", function(value, element) {
	return this.optional(element) || (!value.match(/[^-0-9 .+\(\)]/));
},'enter valid telephone number');


$.validator.addMethod("checkoptional", function(value,element) {
	return this.optional(element) || (!value.match(/[^-a-zA-Z0-9', ]/));
}, 'illegal characters');

$.validator.addMethod("checkurl", function(value,element) {
	return this.optional(element) || /http:\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(value);
}, 'enter a valid URL');

$.validator.addMethod("checkmessage", function(value,label) {
		return !value.match(/[^-a-zA-Z0-9'",.\!\?\/\\+\$\&\(\)@:;%_ ]/);
}, 'illegal characters');

$.validator.addMethod("checkoptional2", function(value,element) {
	return this.optional(element) || (!value.match(/[^-a-zA-Z0-9\\\/:_.\?=& ]/));
}, 'illegal characters');


jQuery.validator.setDefaults({ 
     errorPlacement: function(error, element) { 
  			var elid = element.attr("id");
  			var container = element.parent();  			
  			
  			switch(elid) {
   				case 'hospitalisation':
   					var upcontainer = $('#hospitalisation-error');
  					upcontainer.children('span').remove();
  					error.appendTo(upcontainer);
  					break;
  				
  				case 'agegroup':
   					var upcontainer = $('#agegroup-error');
  					upcontainer.children('span').remove();
  					error.appendTo(upcontainer);
  					break;
  				default: 
    					container.children('span').remove();
   					error.appendTo(container);
   					element.next('span').addClass("error"); 
   					break;
  			
  			
  			}	
                } 
        });




var validator = $("#caseForm").validate({

		rules: {
			fname:{
				required:true,
				checkinput:true
			},
			lname:{
				required:true,
				checkinput:true
			},
			tel:{
				required:true,
				checktel:true
			},
			email:{
				required:true,
				checkinput:true
			},
			member:{
				required:true,
				checkinput:true
			},
			area:{
				required:true,
				checkinput:true
			},
			site:{
				required:true,
				checkinput:true
			},
			attack:{
				required:true,
				checkmessage:true
			},
			injuries:{
				required:true,
				checkmessage:true
			},
			hospitalisation: {
				required: true
			},
			length:{
				required:true,
				checkinput:true
			},
			financial: {
				required: true
			},
			sickpay: {
				required: true
			},
			dutypay: {
				required: true
			},
			counselling: {
				required: true
			},
			police: {
				required: true
			},
			investigation: {
				required: true
			},
			changed: {
				required: true
			},
			support: {
				required: true
			}
			},
		messages: {
			fname: {
				required: "required",
				checkinput: "illegal characters"
				},
			lname: {
				required: "required",
				checkinput: "illegal characters"
				},
			tel: {
				required: "required",
				checktel: "illegal characters"
				},
			email: {
				required: "required",
				checkinput: "illegal characters"
				},
			member: {
				required: "required",
				checkinput: "illegal characters"
				},
			area: {
				required: "required",
				checkinput: "illegal characters"
				},
			site: {
				required: "required",
				checkinput: "illegal characters"
				},
			attack: {
				required: "required",
				checkmessage: "illegal characters"
				},
			injuries: {
				required: "required",
				checkmessage: "illegal characters"
				},
			hospitalisation: {
				required: "required"
			},
			length: {
				required: "required",
				checkinput: "illegal characters"
				},
			financial: {
				required: "required"
			},
			sickpay: {
				required: "required"
			},
			dutypay: {
				required: "required"
			},
			counselling: {
				required: "required"
			},
			police: {
				required: "required"
			},
			investigation: {
				required: "required"
			},
			changed: {
				required: "required"
			},
			support: {
				required: "required"
			}
			},
			errorElement: "span",
			success: function(error) {
				error.removeClass('error');
				error.addClass('success');
				error.html('&nbsp;');
		},
		submitHandler: function(form) {
			form.submit();
		},
		});


});
