var FlashCookie = function() {
	function get(objectId) {
		if (document.getElementById && document.getElementById(objectId)) {
			// W3C DOM
			return document.getElementById(objectId);
		} else if (document.all && document.all(objectId)) {
			// MSIE 4 DOM
			return document.all(objectId);
		} else if (document.layers && document.layers[objectId]) {
			// NN 4 DOM.. note: this won't find nested layers
			return document.layers[objectId];
		} else {
			return false;
		}
	};
	function getHolder() {
		if (holder) {
			return holder;
		}
		if (holder = get(holderName)) {
			return holder;
		}
		return false;
		alert("FlashCookie::找不到\"" + holderName + "\"");
	}

	var browser = navigator.userAgent.indexOf("MSIE") != -1 ? 1 : 2;
	var holderName = "myFlash";
	var holder = null;

	// 获取本地共享对象
	function getLocal(name, localPath) {
		if (!getHolder())
			return;
		getHolder().getLocal(name, localPath);
	}
	// 获取共享对象的当前大小
	function getSize() {
		if (!getHolder())
			return;
		return getHolder().getSize();
	}
	// 读取数据
	function getProperty(key) {
		if (!getHolder())
			return;
		return getHolder().getProperty(key);
	}
	// 写入数据
	function setProperty(key, value) {
		if (!getHolder())
			return;
		getHolder().setProperty(key, value);
	}
	// 删除数据
	function delProperty(key) {
		if (!getHolder())
			return;
		getHolder().delProperty(key);
	}
	// 清除数据
	function clear() {
		if (!getHolder())
			return;
		getHolder().clear();
	}
	// 数据存盘
	function flush() {
		if (!getHolder())
			return;
		// "error"(出错)
		// "pending"(待定:等待用户允许或拒绝扩大存储空间)
		// "flushed"(成功)
		return getHolder().flush();
	}
	// 关闭
	function close() {
		if (!getHolder())
			return;
		getHolder().close();
	}
	// onFlashReady事件
	function onFlashReady() {
		//
	}
	// onFlushStatus事件
	function onFlushStatus(str) {
		// str="SharedObject.Flush.Success"(成功)
		// str="SharedObject.Flush.Failed"(失败)
	}
	// ///////////////////////////对外接口///////////////////////////////////////
	return {
		// 设置数据持有者(FlashObject)
		setHolderName : function(name) {
			holderName = name;
			holder = null;
		},
		// 读写删操作
		getLocal : getLocal,
		getSize : getSize,
		getProperty : getProperty,
		setProperty : setProperty,
		delProperty : delProperty,
		clear : clear,
		flush : flush,
		close : close,
		// 事件
		onFlashReady : onFlashReady,
		onFlushStatus : onFlushStatus
	}
}();
