var WebtvStorage;

WebtvStorage = function ()
{
	
	this.init = function ()
	{
		this.get_data();
		Wlog('webtv.storage:: init');
	};
	
	this.store = function (key, value)
	{
		usersettings[key] = value;
		this.update();
	};
	
	this.update = function ()
	{
		var cookie, wdata, expire = new Date(), domain, path;
		try{
			cookie = 'wdata='+encodeURIComponent(Object.toJSON(usersettings))+';';			
			expire = new Date(expire.getTime() +1000*60*60*24*365);
			expire = 'expires='+expire.toGMTString()+';';
			cookie += expire;
			domain = webtv_settings.base.split('/')[2];
			//cookie += 'domain='+domain+';';
			path = webtv_settings.base.substr(webtv_settings.base.indexOf(domain)+String(domain).length);
			cookie += 'path='+path+';';			
			document.cookie = cookie;
		} catch(e){
			Wlog('webtv.storage:: could not update the storage ('+e+')');
		}
	};
	
	this.get_data = function ()
	{
		if(document.cookie){
			var cookie_data, i, tmp, wdata;
			cookie_data = document.cookie.split('; ');
			for(i=0;i<cookie_data.length;i++){
				tmp = cookie_data[i].split('=');
				if(tmp[0] == "wdata"){
					wdata = unescape(tmp[1]).evalJSON();
					break;
				}
			}
			for(i in wdata){
				if(wdata.hasOwnProperty(i)){
					usersettings[i] = wdata[i];
				}
			}
		}
	};
};

try{
	Webtv.prototype.storage = new WebtvStorage();
	Webtv_reg.push('storage');
	Wlog('webtv.storage:: bound');
}
catch(e){
	Wlog('webtv.storage:: could not bind myself | '+e);
}

