//js document Function.prototype._Bind = function() { var __m = this, object = arguments[0], args = new Array(); for(var i = 1; i < arguments.length; i++){ args.push(arguments[i]); } return function() { var c_args = []; for(var k = 0; k < arguments.length; k++){ c_args.push(arguments[k]); } return __m.apply(object, c_args.concat(args)); } } S_SR_CORE = function() { this.Init.apply(this, arguments); }; S_SR_CORE.prototype = { _strCookieName : 'SR_SEL', Init : function() { }, LoadConfig : function() { //COOKIE格式: //版本号_全局_其他 名称 值 …… //版本号=1 var s, r, i, v, a, p; r = SINA_TYPES; for (i = 0; i < r.length; i++) { r[i].v = 511; } r[r.length] = {n : '其他', t : '_', v : 511}; s = (function(name) { var dc = document.cookie; var prefix = name + "="; var begin = dc.indexOf("; " + prefix); if (begin == -1) { begin = dc.indexOf(prefix); if (begin != 0) return null; } else begin += 2; var end = document.cookie.indexOf(";", begin); if (end == -1) end = dc.length; return unescape(dc.substring(begin + prefix.length, end)); })(this._strCookieName); if (!s) { this.SaveConfig(r); this._cfgdata = r; return r; } p = s.indexOf('_'); if (!p || (s.substr(0, p) != '1')) //version error { this.SaveConfig(r); this._cfgdata = r; return r; } s = s.substr(p + 1); a = this._ParseAlnum(s); v = a[0]; for (i = 0; i < r.length; i++) { r[i].v = v; } for (i = 1; i < a.length; i += 2) { for (j = 0; j < r.length; j++) { if (r[j].t == a[i]) { r[j].v = a[i + 1]; break; } } } this._cfgdata = r; return r; }, _ParseAlnum : function(src) { var t, i, s, r, x; r = new Array(); s = new Array(); t = 0; for (i = 0; i < src.length + 1; i++) { x = (i == src.length) ? -1 : this._CharType(src.charAt(i)); if (x == t)//当前类型 { if (x < 0) { break; } s.push(src.charAt(i)); } else { r.push(s.join('')); s = new Array(); t = x; i--; continue; } } return r; }, _CharType : function(c) { var x = c.charCodeAt(0); if (x >= 48 && x <= 57) //num { return 0; } else if ((x >= 0x41 && x <= 0x5a) || (x >= 61 && x <= 0x7a) || x == 0x5f) //alpha { return 1; } else { return -1; } }, SaveConfig : function(sel) { var i, j, a, m, mi, s; if (!sel) { sel = this._cfgdata; } else { this._cfgdata = sel; } a = new Array(); for (i = 0; i < sel.length; i++) { if (!a[sel[i].v]) { a[sel[i].v] = 1; } else { a[sel[i].v]++ }; } mi = -1; m = 0; for (i = 0; i < a.length; i++) { if (a[i] && a[i] > m) { mi = i; m = a[i]; } } s = '1_' + mi; for (i = 0; i < sel.length; i++) { if (sel[i].v != mi) { s += sel[i].t + sel[i].v; } } a = new Date(); a.setTime(a.getTime() + 90 * 86400 * 1000); (function(name, value, expires, path, domain, secure) { var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); document.cookie = curCookie; })(this._strCookieName, s, a, "/", "finance.sina.com.cn"); }, Filter3 : function(msg, cfg) { var t, i, a; if (!cfg) { cfg = this._cfgdata; } t = this._TypeToInt(msg.y); if (t == -1) { return false; } a = msg.o ? msg.o.split(',') : new Array(); for (i = 0; i < cfg.length; i++) { if ((cfg[i].v & t) && ((cfg[i].t == '_' && !msg.o) || (this._SearchInArray(a, cfg[i].t) >= 0))) { return true; } } return false; }, _SearchInArray : function(arr, val) { var i; for (i = 0; i < arr.length; i++) { if (arr[i] == val) { return i; } } return -1; }, _TypeToInt : function(t) { var i; for (i = 0; i < SINA_SRMSGTYPES.length; i++) { if (t == SINA_SRMSGTYPES[i].t) { return 1 << i; } } return -1; } }