$.validator.methods.equal = function(value, element, param) {
	return value == param;
};
$().ready(function() {

	
	// accordion functions
	var accordion = $("#stepForm").accordion({
		autoheight: true 
	}); 
	var current = 0;
	
	
	$.validator.addMethod("requiredC", 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) || match(3)) {
			return !this.optional(element);
		}
		return "dependency-mismatch";
	}, $.validator.messages.required)
	
	
	
	// validate signup form on keyup and submit
	//$("#scenario_form").validate({
	
	var v = $("#scenario_form").validate({
		//debug: true,
		//onkeyup: false,
		//onblur: false,
		//ignore : "input[id$='_']",
		rules: {
			'data[ScenarioSingleVote][scenario_option_id]': "requiredC",
			'data[ScenarioProportionalVote][percentage][1]': "requiredC",
			'data[ScenarioProportionalVote][percentage][2]': "requiredC",
			'data[ScenarioProportionalVote][percentage][3]': "requiredC",
			'data[User][user_age_group_id]': "requiredC",
			'data[User][user_economic_status_id]': "requiredC",
			'data[User][user_occupation_id]': "requiredC",
			'data[User][user_gender_id]': "requiredC",
			'data[User][user_residence_id]': "requiredC",
			'data[User][user_language_id]': "requiredC",
			'data[User][user_country_id]': "requiredC",
			'data[User][email]': {
				email: true
			}//,
			//'percen': {
			//	equal: 100	
			//}
		},
		messages: {
			'data[ScenarioSingleVote][scenario_option_id]': "Please vote for a scenario",
			'data[ScenarioProportionalVote][percentage][1]': "Please enter a percentage",
			'data[ScenarioProportionalVote][percentage][2]': "Please enter a percentage",
			'data[ScenarioProportionalVote][percentage][3]': "Please enter a percentage",
			'data[User][user_age_group_id]': "Please select an age group",
			'data[User][user_economic_status_id]': "Please select an occupational status",
			'data[User][user_occupation_id]': "Please select an occupational group",
			'data[User][user_gender_id]': "Please select a gender",
			'data[User][user_residence_id]': "Please select a residence",
			'data[User][user_language_id]': "Please select a language",
			'data[User][user_country_id]': "Please select a country",
			'data[User][email]': {
				email: "Please enter a valid email address"
			},
			'percen': "Please ensure that sum of the percentages equals 100%"
		},
		// the errorPlacement has to take the layout into account
		errorPlacement: function(error, element) {
			if ( element.is(":radio[id='ScenarioSingleVoteScenarioOptionId1']") ) {
				error.insertAfter( element.parent().parent().next().next().next() );
			} else if ( element.is(":radio[id='ScenarioProportionalVotePercentage1']") ) {
				error.insertAfter( element.parent().parent().next().next().next() );
			} else if ( element.is(":hidden[id='percenid']") ) {
				error.insertAfter( element );
			} else if ( element.is(":radio") ) {
				error.insertAfter( element.parent() );
			} else {
				error.appendTo( element.parent() );
			}
		}
	});
	
	
	
	
	/*var v = $("#cmaForm").validate({
		errorClass: "warning",
		onkeyup: false,
		onblur: false,
		submitHandler: function() {
			alert("Submitted, thanks!");
		}
	});*/
	
	// back buttons do not need to run validation
	$("#sf2 .prevbutton").click(function(){
		accordion.activate(0);
		current = 0;
	}); 
	$("#sf3 .prevbutton").click(function(){
		accordion.activate(1);
		current = 1;
	});  
	$("#sf4 .prevbutton").click(function(){
		accordion.activate(2);
		current = 2;
	}); 
	// these buttons all run the validation, overridden by specific targets above
	$(".open3").click(function() {
		$("#percenid").val($("input[id^='ScenarioProportionalVotePercentage']").sum());
		$("#percenid").rules("add", {
			 equal: 100,
			 minlength: 1
		});
		
		if (v.form()) {
			accordion.activate(3);
			current = 3;
		}
		$("input[id$='Id_']").attr("disabled","disabled");
	});
	$(".open2").click(function() {
		if (v.form()) {
			accordion.activate(2);
			current = 2;
		}
	});
	$(".open1").click(function() {
	  //if (v.form()) {
	    accordion.activate(1);
	    current = 1;
	  //}
	});
	$(".open0").click(function() {
	  if (v.form()) {
	    accordion.activate(0);
	    current = 0;
	  }
	});


});