club_cookie.prototype.nppcmfl = 3;
club_cookie.prototype.nppcmul = 1;
club_cookie.prototype.nppcn = 'ppnewsinfo';

club_cookie.prototype.gnppc = function(){
	var nppcv = this.getCookie(this.nppcn,0);
	if(nppcv != ""){
		var nppcva = nppcv.split("|");
		if(nppcva.length == 3 && nppcva[0] == "1001"){
			var ck = nppcva[2];
			var fa = this.fnppc(ck);
			if(typeof(fa) === 'object'){
				return fa;
			}
		}
	}
	return "";
};

/**
* 有效数据的cookie格式unescape以后应该形如: [[['b','c','n'],['b','c','n'],'u'],[['b1','c1','n1'],['b1','c1','n1'],'u1']]
*
*/
club_cookie.prototype.gunppc = function(fa,u){
	var ufa = "";
	fa.each(function(uf,i){
		var ufindex = uf.length - 1;
		if(uf[ufindex] == u){
			ufa = uf;
		}
	});
	return ufa;
};

//将文本数据转换成数组数据
club_cookie.prototype.fnppc = function(ck){
	var str = unescape(ck);
	try {
		eval('var fa = '+str+';');
		if(typeof(fa) === 'object'){
			return fa;
		}
		return "";
	}
	catch(e){
		return "";
	}
};

//重新将数组数据转换成文本数据
club_cookie.prototype.rfnppc = function(fa){
	var fastr = "[";
	fa.each(function(s,i){
		if(typeof(s) != 'object'){
			return"";
		}
		fastr += "[";
		s.each(function(s1,i1){
			if(typeof(s1) === 'object'){
				fastr += "[";
				s1.each(function(s2,i2){
					fastr += "'"+s2+"'";
					if(i2+1 < s1.length){
						fastr += ",";
					}
				});
				fastr += "],";
			}
			else{
				fastr += "'"+s1+"'";
			}
		});
		fastr += "]";
		if(i+1 < fa.length){
			fastr += ",";
		}
	});
	fastr += "]";
	return escape(fastr);
};

club_cookie.prototype.snppc = function(b,c,n,u){
	var fa = this.gnppc();
	var uds = [b,c,n].toString();
	if(typeof(fa) === 'object'){ //有用户数据
		var ufa = this.gunppc(fa,u);
		if(typeof(ufa) === 'object'){ //有当前用户数据
			fa = fa.without(ufa); //先在数组中删除当前用户数据
			ufa.each(function(ud,i){
				if(i != this.nppcmfl){
					if(ud.toString() == uds){ //有相同的数据，删除这条数据
						ufa = ufa.without(ud);
					}
				}
			});

			ufa.unshift([b,c,n]); //在用户数据最开始加入一条记录
			if(ufa.length-1 > this.nppcmfl){ //存储的用户数据超过上线，删除最后一个
				var ufaindex = this.nppcmfl;
				ufa.splice(ufaindex,1);
			}
		}
		else{
			ufa = [[b,c,n],u];
		}
		fa.push(ufa); //往整体数据中最后加入一条记录
		if(fa.length > this.nppcmul){ //超过用户数据量，删除第一数据
			fa.shift();
		}
	}
	else{
		fa = [[[b,c,n],u]];
	}
	var fastr = this.rfnppc(fa);
	var fastr = "1001|"+ben(u)+"|"+fastr;
	this.setCookie(this.nppcn,fastr,"365",0);
};
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";

var base64encode = function(str) {
	var out, i, len;
	var c1, c2, c3;
	len = str.length;
　i = 0;
　out = "";
　while(i < len) {
 		c1 = str.charCodeAt(i++) & 0xff;
 		if(i == len){
　　 out += base64EncodeChars.charAt(c1 >> 2);
　　 out += base64EncodeChars.charAt((c1 & 0x3) << 4);
　　 out += "==";
　　 break;
 		}
 		c2 = str.charCodeAt(i++);
 		if(i == len){
 			out += base64EncodeChars.charAt(c1 >> 2);
　　 	out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
　　 	out += base64EncodeChars.charAt((c2 & 0xF) << 2);
　　 	out += "=";
　　 	break;
 		}
 		c3 = str.charCodeAt(i++);
 		out += base64EncodeChars.charAt(c1 >> 2);
 		out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
 		out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
 		out += base64EncodeChars.charAt(c3 & 0x3F);
　}
　return out;
};
var utf16to8 = function(str){
	var out, i, len, c;
　out = "";
　len = str.length;
　for(i = 0; i < len; i++) {
		c = str.charCodeAt(i);
		if((c >= 0x0001) && (c <= 0x007F)){
			out += str.charAt(i);
 		}
 		else if(c > 0x07FF){
　		out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
　　	out += String.fromCharCode(0x80 | ((c >>　6) & 0x3F));
　　	out += String.fromCharCode(0x80 | ((c >>　0) & 0x3F));
		}
		else{
　　	out += String.fromCharCode(0xC0 | ((c >>　6) & 0x1F));
　　	out += String.fromCharCode(0x80 | ((c >>　0) & 0x3F));
 		}
　}
　return out;
};
var ben = function(str){
　return base64encode(utf16to8(str));
};