$(document).ready(function(){

	//Mask
	$("#cf").mask("****************");
	$("#cap").mask("99999");
	
	// add * to required field labels
	$('label.required').append('&nbsp;<strong class="red">*</strong>&nbsp;');

	// accordion functions
	var accordion = $("#stepForm").accordion(); 
	var current = 0;
	
	$.validator.addMethod("pageRequired", function(value, element) {
		var $element = $(element)
		function match(index) {
			return current == index && $(element).parents("#sf" + (index + 1)).length;
		}
		if (match(0) || match(1) || match(2)) {
			return !this.optional(element);
		}
		return "dependency-mismatch";
	}, $.validator.messages.required)
	
	var v = $("#cmaForm").validate({
		onkeyup: false,
		onblur: false,
		submitHandler: function() {
			document.getElementById('cmaForm').submit();
		},
		rules: {
			firstname: "required",
			lastname: "required",
			password: {
				required: true,
				minlength: 6
			},
			confirmation: {
				required: true,
				minlength: 6,
				equalTo: "#password"
			},
			email_address: {
				required: true,
				email: true
			},
			username: {
				required: true
			},
			cprivacy: {
				required: true
			}
		},
		messages: {
			firstname: "Inserisci il tuo Nome",
			lastname: "Inserisci il tuo Cognome",
			password: {
				required: "Inserisci una password",
				minlength: "La tua password deve essere lunga almeno 6 caratteri"
			},
			confirmation: {
				required: "Ripeti la password",
				minlength: "La tua password deve essere lunga almeno 6 caratteri",
				equalTo: "Inserisci la stessa password"
			},
			email_address: "Inserisci un indirizzo email valido",
			username: "Username",
			cprivacy: "Devi accettare le condizioni del servizio!"
		}
	});
	
	// back buttons do not need to run validation
	$("#sf2 .prevbutton").click(function(){
		accordion.accordion("activate", 0);
		current = 0;
	}); 
	$("#sf3 .prevbutton").click(function(){
		accordion.accordion("activate", 1);
		current = 1;
	}); 
	// these buttons all run the validation, overridden by specific targets above
	$(".open2").click(function() {
	  if (v.form()) {
	    accordion.accordion("activate", 2);
	    current = 2;
	  }
	});
	$(".open1").click(function() {
	  if (v.form()) {
	    accordion.accordion("activate", 1);
	    current = 1;
	  }
	});
	$(".open0").click(function() {
	  if (v.form()) {
	    accordion.accordion("activate", 0);
	    current = 0;
	  }
	});
 
});