function Resource() {}
Resource.map = {
	//id		: name
	"poweredit" : "用户名",
	"powerpass" : "登陆密码"
};

Resource.getProperty = function(key) {
	return Resource.map[key] != null ? Resource.map[key] : key;
}

//1024-bit RSA public key
var blob1024 =	"BgIAAACkAABSU0ExAAQAAAEAAQB9c1D3SS9zFSzSghlhRUyGWxFGCKhvnzsDXNBN+AKO2Hi+c9fZZ2Lu" +
			"5MJCOsFSbr/6DD4XI21MLPlG2iLSoEB6CpTq/abbkjIXc94Z6aEds0NhgJbGBFxsHt1xIxn9LeSK0jdp" +
			"a1BZV5mptEIhRG7BfT9I5vm2XFwOk7h/j8Cbxw==";//PUBLICKEYBLOB of KEYPAIR-20070726
var blob ="BgIAAACkAABSU0ExAAQAAAEAAQC5Vu/yvjV5mpy2lFpQTBFpqwcOTNw0A9Drbm2iwmyXmGnusmH/wulxaahRKdgaM88Gvs9Mwx0Nf5aaWMvq/mzlPj2nSWgjR6qoO0Cq9oq5AVikO6vLGOWDvMqREleOeAeIgHxqljHa0lTK52eqwZvKVzruV5RYRx0BfWEIHPhAbg==";

//var blob ="BgIAAACkAABSU0ExAAQAAAEAAQA7Cf+1QaVpbvW6x8459ssrHAqh/b91RHZ8t6oqpN0OWumcpoMLuaqjB0wWMu/u9+fP6kMPcHh4W2X5ERsz98i9LtFDfcKj3ZsGiBjbvlbPeL0Q95itdUMz1ll/QWw7YrZhDDrj81oaXM5TT4ZH+UUeldpIBDVWeG6uNDtmQxJnmA==";


function commit(oid, commitId) {
	var obj = document.getElementById(oid);
	var result = obj.commit(commitId);
	switch(result) {
	case 0://OK
		return true;
	case -1://fieldName is empty!
		alert(Resource.getProperty(oid) + "定义错误！缺少fieldName属性值。");
		return false;
	case -2://Input contents illegal.
		var accepts = getParamValue(oid,"accepts");
		var minLen = getParamValue(oid,"minLength");
		alert(Resource.getProperty(oid) + "输入有误！长度需>：" + minLen + ",接受字符(正则表达式)："+accepts);
		return false;
	default://Other error.
		alert(obj.lastError());
		return false;
	}
};


function powerConfig(args) {
	var defaults = { "width":150, "height":19, "maxLength":12, "minLength":6, "maskChar":"#", "backColor":"#FFFFFF", "textColor":"#060606", "borderColor":"#C6C5CB", "accepts":".*$" };
	for (var p in args)
		if (args[p] != null) defaults[p] = args[p];
	return defaults;
};

function writeObject(oid, clsid, cfg) {
	document.write('<object id="' + oid + '" codebase="js/PowerEnter.ocx#version=1,0,0,17" classid="' + clsid
		+ '" width="' + cfg.width + '" height="' + cfg.height
		+ '" style="width:' + cfg.width + 'px;height:' + cfg.height + 'px">');
	for (var name in cfg)
		document.write('<param name="' + name + '" value="' + cfg[name] + '">');
	document.write('</object>');
};

function writeCommitObject(oid) {
	if (!oid || typeof(oid) != "string") {
		alert("writeCommitObj Failed: oid is required!");
	} else {
		writeObject(oid, "clsid:3A98B402-BA1C-4CEC-A3B1-1A69BE4DF277", {"width":0,"height":0,"frameName":"mainFrame"});
	}
};

function writeUtilityObject(oid) {
	if (!oid || typeof(oid) != "string") {
		alert("writeUtilityObj Failed: oid is required!");
	} else {
		writeObject(oid, "clsid:515FA908-16F7-4279-8E20-750CEEA576F2", {"width":0,"height":0,"frameName":"mainFrame"});
	}
};

function writeEditObject(oid, cfg) {
	if (!oid || typeof(oid) != "string" || !cfg.fieldName) {
		alert("writeEditObj Failed: oid and cfg.fieldName are required!");
	} else {
		writeObject(oid, "clsid:C8E6DC58-DAF3-4A4E-9F5E-4059E16B7653", powerConfig(cfg));
	}
};

function writePassObject(oid, cfg) {
	if (!oid || typeof(oid) != "string" || !cfg.fieldName) {
		alert("writePassObj Failed: oid and cfg.fieldName are required!");
	} else {
		writeObject(oid, "clsid:083E972E-2D7B-4361-9801-739554787540", powerConfig(cfg));
	}
};

function getParamValue(oid, key) {
	var nodes = document.getElementById(oid).childNodes;
	for (var i = 0; i < nodes.length; i++)
		if (nodes[i].nodeName.toLowerCase() == "param")
			if (nodes[i].getAttribute("name").toLowerCase() == key.toLowerCase())
				return nodes[i].getAttribute("value");
	return null;
}

