$(document).ready(function(){

	//#####################################################################################
	//## FORMULARIO #######################################################################
	//#####################################################################################
	
	jQuery.validator.addMethod("phone", function(value, element){ 
		return this.optional(element) || /^[0-9 \/\+\;\-\/\(\)\,\.\:]*$/.test(value);}, 
		'Phone number not valid');
		
	$.validator.addMethod("findout_other", function(value) {
		return value == "buga";},
		'Please specify "Other"');

	//## Validacoes #######################################################################
	$('#utilizador_registo').validate({
		rules: {
			email: {
				required: true, 
				email: true,
				remote: "register_verifyUser.php"
			},
		    password: {
				required: true,
				minlength: 4
			},
		    check_password: {
				equalTo: "#password"
		    },			
			nome: {
				required: true
			},
			empresa: {
				required: true
			},
			pais: {
				required: true
			},
			telefone: {
				required: true,
				phone: true
			},
			telefone2: {
				phone: true
			},
			website: {
				url: true
			},
			findout: {
				required: true
			},
			other_detail:{
				required: function(element){
					var val_option = $("input[name=findout]:checked").val();
					if(val_option=="Other" && this.value!="")
						return true;
					else
						return false;
				}
			},
  			read_policy: {
				required: true
			},
			confirm_terms: {
				required: true
			}
		},
		messages: {
			email: {
				required: "Email required",
				email: "Invalid email",
				remote: "Email already exists"
			},
			password: {
				required: "Password required",
				minlength: jQuery.format("Minimum {0} characters")
			},
			check_password: {
				equalTo: "Passwords don't match"
			},
			nome: {
				required: "Name required"
			},
			pais: {
				required: "Country required"
			},
			empresa: {
				required: "Organization required"
			},
			telefone: {
				required: "Phone required"
			},
			website: {
				url: "Website address invalid"
			},
			findout: {
				required: "Information required"
			},
			other_detail: {
				required: "Specify other"
			},
			read_policy: {
				required: "Confirm that your have read the Privacy Policy"
			},
			confirm_terms: {
				required: "Confirm that you agree with the terms and conditions"
			}
		},
		errorPlacement: function(error, element) {
			if (element.is(":checkbox")) {
				error.appendTo(element.parent());
			}
			else {
				if (element.is(":radio")) 
					error.appendTo(element.parent("div").parent("div"));
				else 
					error.appendTo(element.parent());
			}
		},
		errorElement: "span"
	});

});

