$(document).ready(function() {
	var form = 	$("#UpdateUserPreferencesForm");
	var password = $("#userPassword");
	var confirmPass = $("#userConfirmPassword");
	var createAccount = $("#createAccount");
	var submitButton = $("#manageSubsButton");

	password.addClass("required password").FSvalidate();
	confirmPass.addRule({'name':'confirmation', 'message': FS.local_lang.errors.passwordMatch, 'options' : {'selector': '#userPassword'}}).FSvalidate();
	form.FSvalidate();

	form.bind("submit", function(e) {
		e.preventDefault();
		if (form.valid()) {
			form.submit();
		}
	});

	if (createAccount.attr("checked")) {
		passwordToggle("enable", password, confirmPass);
	} else {
		passwordToggle("disable", password, confirmPass);
	}

	createAccount.bind("change", function(e) {
		if ($(this).attr("checked")) {
			passwordToggle("enable", password, confirmPass);
		} else {
			passwordToggle("disable", password, confirmPass);
		}
	});
});

function passwordToggle(state, pass, confPass) {
	switch (state) {
		case "enable":
			pass.removeAttr("disabled")
				.removeClass("disabled")
				.addClass("validate")
				.enableValidation();
			confPass.removeAttr("disabled")
				.removeClass("disabled")
				.addClass("validate")
				.enableValidation();
			break;

		case "disable":
			pass.attr("disabled", "disabled")
				.val('')
				.addClass("disabled")
				.removeClass("validate")
				.disableValidation();
			confPass.attr("disabled", "disabled")
				.val('')
				.addClass("disabled")
				.removeClass("validate")
				.disableValidation();
			break;
	}
}
