/*
 *----------------------------------------------------------------------------
 * editCache: save editor data
 * add by panghe @2009-2-16
 * 
 * Example:
 *   editCache.initUserData();
 *   editCache.set('content','content');
 *   editCache.get('content');
 *   editCache.remove('content');
 *-----------------------------------------------------------------------------
 */

var editCache = {

	error:false,	//error debug switch

	isIE : function(){
		return !!document.all;
	},

	initUserData : function(){
		try{
			if(this.isIE()){
				document.documentElement.addBehavior("#default#userdata");
			}
			return true;
		}catch (e){
			if(this.error){
				alert(e.name + ":" + e.message );
			}
			return false;
		}
	},

	set : function(key, value){
		if(this.isIE()){
			//for ie5.0+
			with(document.documentElement){
				try{
					load(key);
					setAttribute("value", value);
					save(key);
					return true;
				}catch (e){
					if(this.error){
						alert(e.name + ":" + e.message );
					}
					return false;
				}
			}
		}else if(window.sessionStorage){
			//for firefox2.0+
			try{
				sessionStorage.setItem(key,value);
				return true;
			}catch (e){
				if(this.error){
					alert(e.name + ":" + e.message );
				}
				return false;
			}
		}else{
			if(this.error){
				alert("Error occured in user data deleting. your browser do not support user data.");
			}
			return false;
		}
	},

	get : function(key){
		if(this.isIE()){
			with(document.documentElement){
				try{
					load(key);
					return getAttribute("value");
				}catch (e){
					if(this.error){
						alert(e.name + ":" + e.message );
					}
					return false;
				}
			}
		}else if(window.sessionStorage){
			try{
				return sessionStorage.getItem(key);
			}catch (e){
				if(this.error){
					alert(e.name + ":" + e.message );
				}
				return false;
			}
		}else{
			if(this.error){
				alert("Error occured in user data deleting. your browser do not support user data.")
			}
			return false;
		}
	},

	remove : function(key){
		if(this.isIE()){
			with(document.documentElement){
				try{
					load(key);
					expires = new Date(315532799000).toUTCString();
					save(key);
					return true;
				}catch (e){
					if(this.error){
						alert(e.name + ":" + e.message );
					}
					return false;
				}
			}
		}else if(window.sessionStorage){
			try{
				sessionStorage.removeItem(key);
				return true;
			}catch (e){
				if(this.error){
					alert(e.name + ":" + e.message );
				}
				return false;
			}
		}else{
			if(this.error){
				alert("Error occured in user data deleting. your browser do not support user data.")
			}
			return false;
		}
	}

}

editCache.initUserData();