define(function (require, exports, module) {
	var sessMgr = require("../account/sessionMgr.js");

	var resetInterfaceByUser = function () {
		var user = sessMgr.current;
		if (!user) {
			return;
		}

		var p = user.options || {};
		$("input[data-option-key],select[data-option-key]").each(function () {
			var type = this.type;
			var value = this.value;
			var svalue = p[this.dataset.optionKey];

			if (typeof (svalue) === "undefined") {
				return;
			}

			if (type === "checkbox")
				this.checked = svalue;
			else if (type === "radio") {
				this.checked = svalue == value;
			} else {
				$(this).val(svalue);
			}
		});
	};
	sessMgr.on("sessionChanged", resetInterfaceByUser);
	//初始化状态
	resetInterfaceByUser();

	$(document).on("change", "input[data-option-key],select[data-option-key]", function () {
		var u = sessMgr.current;
		var p = u.options || (u.options = {});
		var type = this.type;
		var key = this.dataset.optionKey;

		if (type === "radio") {
			var checked = $("input:radio[name=" + this.getAttribute("name") + "]:checked").val();
			switch (typeof (p[key])) {
				case "number":
					p[key] = parseInt(checked);
					break;
				case "boolean":
					p[key] = checked == 1;
					break;
				default:
					p[key] = checked;
			}
		} else if (type === "checkbox") {
			p[key] = this.checked ^ this.value == "0";
		} else if (type === "number") {
			p[key] = this.valueAsNumber;
		} else {
			p[key] = $(this).val();
		}
		sessMgr.save();
	});
});