
function onSubmit(form) {
	form.submit();
}

function highlight_elements(element, errorClass) {
	/*
    $(element).fadeOut(function() {
      $(element).fadeIn()
    })
	*/
}

function onInvalid(form, validator) {
  /*
  $(document).find("input.error").each(function () {
		alert($(this).offset().top);
  });
  */
}



function add_validator() {
	
	jQuery.validator.addMethod("sender_name", function(value, element) {
		var user = /[(0-9\@\*\(\)\[\]\+\.\,\/\?\:\;\"\`\~\\#\$\%\^\&\<\>)+]/;
		if (!value.match(user)) {
			return true;
		} else {
			return false;
		}
	}, "Il campo deve contenere almeno 2 caratteri. Numeri o caratteri speciali non sono ammessi");
	
	jQuery.validator.addMethod("phone", function(value, element) {
		var phone = /^(\+){0,1}([0-9-()]|( ))+$/;
		if (value.match(phone)) {
			return true;
		} else {
			return false;
		}
	}, "Devi inserire un numero di telefono valido");
	
}

function contacts_generate() {
	var s = generate(3);
	$("#mail3").append(s);
	s = generate(4);
	$("#mail4").append(s);
}

$(document).ready(function() {
	contacts_generate();
	add_validator();
	$('#form').validate({
		submitHandler: onSubmit,
		invalidHandler: onInvalid,
		highlight: highlight_elements,
		rules : {
			name: {
		      required: true,
		      sender_name: true,
		      minlength: 2
		    },
		    phone: {
		    	required: true,
		    	phone: true
		    },
		    message: {
		      required: true,
			  minlength: 10
		   	},
		    email: {
		      required: true,
	    	  email: true
		   	},
		    agreement: {
		      required: true
		    },
			captcha: {
		    	required: true
		    }
		}
	});
});
