(function() {
WebqCore.register("EQQ.Global",
function() {
this.initGlobal = function() {
EQQ.vfwebqq = alloy.portal.getVfWebQQ()
}
})
})(); (function() {
WebqCore.register("EQQ.Adapter",
function(d) {
this.proxysend = function(g, f) {
alloy.rpcService.send(g, {
context: null,
method: f.method || "GET",
data: {
r: d.json.stringify(f.param)
},
onSuccess: f.onSuccess,
onError: f.onError,
onTimeout: f.onTimeout
})
};
EQQ.BASE_CONST = alloy.CONST
})
})(); (function() {
WebqCore.register("EQQ.Extend",
function() {
this.cgi_module = function(d, g) {
return function(f) {
g.onError = g.errback ||
function() { };
g.onTimeout = g.timeback ||
function() { };
f = f ||
function() { };
g.onSuccess = function(d) {
g.callback(d, f)
};
EQQ.Adapter.proxysend(d, g)
}
};
this.cgi_module_d = function(d, g) {
return function(f) {
g.onError = g.errback ||
function() { };
g.onTimeout = g.timeback ||
function() { };
f = f ||
function() { };
g.onSuccess = function(d) {
g.callback(d, f)
};
EQQ.RPCService.send(d, g)
}
};
this.require = function(d, g) {
for (var f = d.length,
j = d.length,
t = function() {
f--;
f == 0 && g()
},
b = 0; b < j; b++) d[b](t)
}
})
})(); (function() {
WebqCore.register("EQQ",
function(d) {
var g = this,
f = d.dom,
j = d.event,
t = d.cookie,
b = !1,
a = {},
c, p = 0,
m, z, q, o = !1,
i = !1,
r, k;
k = window.location.host;
d.out(">>dName: " + k);
this.showLogin = function() {
alloy.portal.getLoginLevel();
t.get("ptwebqq") ? EQQ.init2({
panel: {
mainPanel: alloy.app.eqq.getWindow().body,
taskBar: alloy.layout.getPanel("taskBar").body
}
}) : alloy.layout.showLoginWindow("eqq", !0)
};
var D = {
onExit: function() {
alloy.layout.confirm("\u60a8\u786e\u8ba4\u8981\u5173\u95ed WebQQ \u5417\uff1f",
function() {
g.executeExit()
},
{
modal: !0
})
},
onNeedLogin: function() {
alloy.layout.showLoginWindow("eqq")
}
};
this.CONST = {
MAIN_DOMAIN: "qq.com",
EQQ_SERVER_URL: "http://" + k + "/",
CONN_SERVER_DOMAIN: "http://d.web2.qq.com/",
CONN_SERVER_DOMAINS: ["http://d.web2.qq.com/"],
CONN_PROXY_URLS: ["http://d.web2.qq.com/proxy.html?v=20110331002"],
CONN_SERVER_DOMAIN2: "http://" + k + "/",
CONN_PROXY_URL: "http://d.web2.qq.com/proxy.html?v=20110331002",
CHAT_PIC_SERVER: "http://" + k + "/",
AVATAR_SERVER_DOMAIN: "http://qun.qq.com/",
AVATAR_SERVER_DOMAINS: ["http://face1.qun.qq.com/", "http://face2.qun.qq.com/", "http://face3.qun.qq.com/", "http://face4.qun.qq.com/", "http://face5.qun.qq.com/", "http://face6.qun.qq.com/", "http://face7.qun.qq.com/", "http://face8.qun.qq.com/", "http://face9.qun.qq.com/", "http://face10.qun.qq.com/", "http://face11.qun.qq.com/"],
SYSTEM_FACE_URL: "http://0.web.qstatic.com/webqqpic/style/face/",
LOGIN_PROTECT_FINISH_URL: "./login_protect.html",
UPLOAD_CUSTOM_FACE_SERVER: "http://up.web2.qq.com/cgi-bin/cface_upload",
DOWNLOAD_CHAT_LOG_SERVER: "http://sns.qq.com/buddy_state/feed/save_chat.php",
FILE_SERVER: "http://file1.web.qq.com/",
OFFLINE_FILE_SERVER: "http://weboffline.ftn.qq.com:80/ftn_access/",
QZONE_SERVER_DOMAIN: "http://qzone.qq.com/",
QZONE_USER_SERVER_DOMAIN: "http://user.qzone.qq.com/",
QQ_GROUP_URL: "http://qun.qq.com/air/",
MAX_LOGIN_AMOUNT: 1,
MAX_FAIL_AMOUNT: 2,
Z_INDEX_BASE: 3E3,
LOAD_AVATAR_AMOUNT: 50,
TRANSFER_TABLE: [14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 50, 51, 96, 53, 54, 73, 74, 75, 76, 77, 78, 55, 56, 57, 58, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 32, 113, 114, 115, 63, 64, 59, 33, 34, 116, 36, 37, 38, 91, 92, 93, 29, 117, 72, 45, 42, 39, 62, 46, 47, 71, 95, 118, 119, 120, 121, 122, 123, 124, 27, 21, 23, 25, 26, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 52, 24, 22, 20, 60, 61, 89, 90, 31, 94, 65, 35, 66, 67, 68, 69, 70, 15, 16, 17, 18, 19, 28, 30, 40, 41, 43, 44, 48, 49],
T_TRANSFER_TABLE: {
14: 0,
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
6: 6,
7: 7,
8: 8,
9: 9,
10: 10,
11: 11,
12: 12,
13: 13,
0: 14,
50: 15,
51: 16,
96: 17,
53: 18,
54: 19,
73: 20,
74: 21,
75: 22,
76: 23,
77: 24,
78: 25,
55: 26,
56: 27,
57: 28,
58: 29,
79: 30,
80: 31,
81: 32,
82: 33,
83: 34,
84: 35,
85: 36,
86: 37,
87: 38,
88: 39,
97: 40,
98: 41,
99: 42,
100: 43,
101: 44,
102: 45,
103: 46,
104: 47,
105: 48,
106: 49,
107: 50,
108: 51,
109: 52,
110: 53,
111: 54,
112: 55,
32: 56,
113: 57,
114: 58,
115: 59,
63: 60,
64: 61,
59: 62,
33: 63,
34: 64,
116: 65,
36: 66,
37: 67,
38: 68,
91: 69,
92: 70,
93: 71,
29: 72,
117: 73,
72: 74,
45: 75,
42: 76,
39: 77,
62: 78,
46: 79,
47: 80,
71: 81,
95: 82,
118: 83,
119: 84,
120: 85,
121: 86,
122: 87,
123: 88,
124: 89,
27: 90,
21: 91,
23: 92,
25: 93,
26: 94,
125: 95,
126: 96,
127: 97,
128: 98,
129: 99,
130: 100,
131: 101,
132: 102,
133: 103,
134: 104,
52: 105,
24: 106,
22: 107,
20: 108,
60: 109,
61: 110,
89: 111,
90: 112,
31: 113,
94: 114,
65: 115,
35: 116,
66: 117,
67: 118,
68: 119,
69: 120,
70: 121,
15: 122,
16: 123,
17: 124,
18: 125,
19: 126,
28: 127,
30: 128,
40: 129,
41: 130,
43: 131,
44: 132,
48: 133,
49: 134
},
WEBQQMSGTIPS: "\n\u3010\u63d0\u793a\uff1a\u6b64\u7528\u6237\u6b63\u5728\u4f7f\u7528WebQQ\uff1ahttp://" + alloy.CONST.DOMAIN + "/\u3011"
};
this.hash = {
onlineStatus: {
callme: "callme",
online: "online",
away: "away",
busy: "busy",
silent: "silent",
hidden: "hidden",
offline: "offline"
},
onlineStatusText: {
callme: "Q\u6211\u5427",
online: "\u5728\u7ebf",
away: "\u79bb\u5f00",
busy: "\u5fd9\u788c",
silent: "\u9759\u97f3",
hidden: "\u9690\u8eab",
offline: "\u79bb\u7ebf"
},
clientType: {
1: "PC",
2: "PC",
3: "PC",
4: "PC",
5: "PC",
6: "PC",
10: "PC",
21: "Phone",
22: "Phone",
23: "Phone",
24: "Phone",
41: "WebQQ",
42: "PC",
1E4: "PC"
},
clientTypeText: {
1: "PC",
2: "PC",
3: "PC",
4: "PC",
5: "PC",
6: "PC",
10: "PC",
21: "\u624b\u673aQQ",
22: "\u624b\u673aQQ",
23: "\u624b\u673aQQ",
24: "\u624b\u673aQQ",
41: "WebQQ",
42: "PC",
1E4: "PC"
},
userClassType: {
online: "online",
stranger: "stranger",
blacklist: "blacklist"
}
};
document.domain = this.CONST.MAIN_DOMAIN;
j.on(document, "keydown",
function(l) {
l.keyCode === 27 && l.preventDefault()
});
this.init2 = function(e) {
b = !1;
a = {};
z = m = null;
i = !1;
this.panel = e.panel || {};
N = 0;
S = !1;
Y = 0;
j.addObserver(alloy.portal, "exit", C);
j.addObserver(alloy.portal, "DesktopSwitch", F);
j.addObserver(EQQ, "LoginSuccess", J);
j.addObserver(g, "LoginFailure", M);
j.addObserver(g, "VerifyLoginProtectSuccess", x);
j.addObserver(g, "exit", D.onExit);
j.addObserver(g, "needLogin", D.onNeedLogin);
j.addObserver(EQQ.RPCService, "NotLogin", Q);
j.addObserver(EQQ.RPCService, "NotReLogin", O);
j.addObserver(EQQ, "ReLinkStop", H);
j.addObserver(EQQ.RPCService, "FailCountOverMax", I);
j.addObserver(EQQ, "ReLinkSuccess", A);
j.addObserver(EQQ, "ReLinkFailure", I);
j.addObserver(EQQ, "UinNotInWhitelist", u);
j.addObserver(EQQ, "UinInBlacklist", s);
j.addObserver(EQQ, "Overload", K);
j.addObserver(EQQ, "PtwebqqFail", G);
j.addObserver(EQQ, "EQQLoginSuccess", R);
j.addObserver(EQQ.RPCService, "LogoutSuccess", l);
j.addObserver(EQQ.RPCService, "PollComplete", P);
j.addObserver(EQQ.RPCService, "CheckProtectSuccess", w);
j.addObserver(alloy.portal, "UACReady", E);
g.createContainer();
EQQ.RPCService.init();
EQQ.Presenter.MainPanel.init();
try {
EQQ.Presenter.ChatBox.init(),
EQQ.Presenter.TaskBar.init()
} catch (h) { }
EQQ.Model.BuddyList.init();
EQQ.Model.ChatMsg.init();
EQQ.Presenter.MainPanel.getCookieTips();
EQQ.Presenter.MainPanel.show();
e = alloy.portal.getTryLoginState() || "";
g.login(e)
};
this.loginEQQ = function() {
this.showLogin()
};
this.getDefaultState = function() {
return EQQ.hash.onlineStatus[d.string.mapQuery(window.location.search).login_state || "offline"]
};
this.getUserDefaultAvatar = function(l) {
l = l || 40;
return alloy.CONST.CDN_URL + "style/images/avatar_default_" + l + "_" + l + ".gif"
};
this.getFaceServer = function(l) {
return EQQ.CONST.AVATAR_SERVER_DOMAINS[l % 10]
};
this.getUserAvatar = function(l, e, a) {
e = "&vfwebqq=" + alloy.portal.getVfWebQQ();
a && (e = "");
return EQQ.getFaceServer(l) + "cgi/svr/face/getface?cache=0&type=1&fid=0&uin=" + l + e
};
this.getGroupAvatar = function(l) {
return EQQ.getFaceServer(l) + "cgi/svr/face/getface?cache=0&type=4&fid=0&uin=" + l + "&vfwebqq=" + alloy.portal.getVfWebQQ()
};
this.getQzoneUrl = function(l) {
return EQQ.CONST.QZONE_USER_SERVER_DOMAIN + l
};
this.getSendMailUrl = function(l) {
return "http://mail.qq.com/cgi-bin/login?Fun=clientwrite&vm=pt&email=" + l + "@qq.com"
};
this.createContainer = function() {
this.document = f.getDoc();
this.container = f.node("div", {
id: "EQQ_Container",
"class": "EQQ_Container"
});
this.container.innerHTML = '\t\t\t<div id="EQQ_MsgBox" class="EQQ_msgBox">\t\t\t\t<div class="EQQ_titleInMsgBox">\t\t\t\t\t<div class="EQQ_titleTextInMsgBox">\u6d88\u606f\u76d2\u5b50</div>\t\t\t\t\t<div id="EQQ_ViewMainPanelButtonInMsgBox" class="EQQ_viewMainPanelButtonInMsgBox" title="\u70b9\u51fb\u67e5\u770b\u597d\u53cb\u5217\u8868">\u597d\u53cb\u5217\u8868</div>\t\t\t\t</div>\t\t\t\t<div id="EQQ_MessageList" class="EQQ_messageList">\t\t\t\t</div>\t\t\t\t<div id="EQQ_IgnoreAllMsgButtonInMsgBox" class="EQQ_ignoreAllMsgButtonInMsgBox" title="\u70b9\u51fb\u5ffd\u7565\u5168\u90e8\u6d88\u606f">\u5ffd\u7565\u5168\u90e8</div>\t\t\t</div>\t\t\t<div id="EQQ_LoginBox" class="EQQ_LoginBox">\t\t\t\t<div class="EQQ_LoginBox_Title">\t\t\t\t\t<div id="EQQ_LoginBox_CloseButton" class="EQQ_LoginBox_CloseButton" title="\u5173\u95ed">X</div>\t\t\t\t\t<div class="EQQ_LoginBox_TitleText">WebQQ\u767b\u5f55\u4fdd\u62a4</div>\t\t\t\t</div>\t\t\t\t<iframe id="EQQ_LoginBox_Iframe" class="EQQ_LoginBox_Iframe" src="' + alloy.CONST.MAIN_URL + 'domain.html" frameborder="no" scrolling="no"></iframe>\t\t\t</div>\t\t';
this.document.body.appendChild(this.container)
};
this.getCookieSkey = function() {
return d.cookie.get("skey", EQQ.CONST.MAIN_DOMAIN)
};
this.getCookiePtWebQQ = function() {
return d.cookie.get("ptwebqq", EQQ.CONST.MAIN_DOMAIN)
};
this.getVfWebQQ = function() {
return m
};
this.setVfWebQQ = function(l) {
m = l;
alloy.portal.setVfWebQQ(l)
};
this.getPsessionid = function() {
return z
};
this.getClientKey = function() {
return q
};
this.dna_result_key = "";
this.login = function(l) {
EQQ.Presenter.MainPanel.showLogin();
this.loginStart = (new Date).getTime();
l = {
status: l || "online",
ptwebqq: alloy.portal.getPtwebqq(),
passwd_sig: this.dna_result_key
};
EQQ.RPCService.sendLogin(l)
};
var B = function() {
var l = alloy.config.configList.chatboxMode,
e = alloy.config.configList.isNotNeedCtrlKey;
EQQ.initChatboxMode(l);
EQQ.initSendMsgKey(e);
alloy.portal.getLoginLevel() > 2 && j.notifyObservers(EQQ, "eqqUacChange", {
chatboxMode: l,
isNotNeedCtrlKey: e
})
},
E = function() {
B()
},
w = function(l) {
l.type == "nop" && EQQ.Presenter.MainPanel.toggleShow()
},
x = function(l) {
if (l) g.dna_result_key = l,
EQQ.Presenter.MainPanel.toggleShow()
},
C = function() {
EQQ && EQQ.executeExit()
},
F = function(l) {
j.notifyObservers(EQQ, "DesktopSwitch", l)
};
this.executeExit = function() {
try {
EQQ.View.ChatBox.onExitHotkey()
} catch (l) { }
d.cookie.remove("ptwebqq", alloy.CONST.MAIN_DOMAIN);
j.notifyObservers(EQQ, "CloseWebQQ");
j.removeObserver(alloy.portal, "DesktopSwitch", F);
j.removeObserver(alloy.portal, "UACReady", E);
r = {};
j.removeObserver(alloy.messageCenter, "MessageHandled", h);
alloy.messageCenter.removeNotificationsBySource(50);
EQQ.stopPoll();
EQQ.logout();
alloy.portal.removeExitConfirm()
};
this.logout = function() {
d.out("EQQLOGOUT", null, 2);
EQQ.setIsLogin(!1);
EQQ.RPCService.sendLogout()
};
this.reLogin = function(l) {
var e = EQQ.Model.BuddyList.getSelf(),
a = "offline",
h = "online";
if (e) a = e.state,
h = e.oldState || "online";
a == "offline" && (a = h == "offline" ? "online" : h);
this.login(l || a)
};
var u = function() {
window.location = alloy.CONST.MAIN_URL + "overload.html"
},
s = function() { },
K = function() {
window.location = alloy.CONST.MAIN_URL + "overload.html"
},
G = function() {
d.out("onPtwebqqFail");
M({
text: "\u767b\u5f55\u5931\u8d25"
});
alloy.layout.showLoginWindow("eqq", !0, null, "\u9a8c\u8bc1\u4fe1\u606f\u8fc7\u671f\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55\uff01")
},
e = function() {
var l = {
status: EQQ.Model.BuddyList.getSelf().state,
ptwebqq: alloy.portal.getPtwebqq(),
passwd_sig: g.dna_result_key
};
try {
d.cookie.set("uin", alloy.portal.getOriginalUin(), alloy.CONST.MAIN_DOMAIN),
d.cookie.set("skey", alloy.portal.getSkey(), alloy.CONST.MAIN_DOMAIN),
d.cookie.set("ptwebqq", alloy.portal.getPtwebqq(), alloy.CONST.MAIN_DOMAIN)
} catch (e) { }
EQQ.RPCService.sendReLink(l)
},
n = g.showEQQtips = function(l) {
if (!g.eqqTips) {
var e = g.eqqTips = new d.ui.Bubble({
closeOnHide: !0
});
e.setTitle(l.title);
e.setContent(l.content);
e.showButton("ok", "\u767b\u5f55", !0);
e.showButton("next", "\u53d6\u6d88");
j.addObserver(e, "onBubbleOkBtnClick",
function() {
l.callback && l.callback();
g.eqqTips = null
});
j.addObserver(e, "onBubbleClose",
function() {
g.eqqTips = null
});
j.addObserver(e, "onBubbleNextBtnClick",
function() {
y();
l.cancle && l.cancle()
});
e.show({
pointerPosition: "bottom right",
pointerOffset: 15,
pointerSize: [18, 12],
target: alloy.taskBar.quickPanel.getQuickButton(50).getElement()
})
}
},
y = g.hideEQQtips = function() {
if (g.eqqTips) g.eqqTips.close(),
g.eqqTips = null
},
A = function(l) {
p = 0;
g.setVfWebQQ(l.vfwebqq);
z = l.psessionid;
y();
this.startPoll();
B();
l = EQQ.Model.BuddyList.getSelf().state;
j.notifyObservers(EQQ.Model.BuddyList, "SelfStateChange", l)
},
H = function() {
g.stopPoll();
y();
j.notifyObservers(g, "SelfOffline", {
message: "\u8eab\u4efd\u9a8c\u8bc1\u5931\u6548\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55",
action: "relogin"
})
},
I = function(l) {
g.stopPoll();
d.out("reLinkRetryCount: " + p);
p >= 2 && (n({
title: "\u8fde\u63a5\u4e2d\u65ad",
content: "\u56e0\u7f51\u7edc\u6216\u5176\u4ed6\u539f\u56e0\u4e0e\u670d\u52a1\u5668\u5931\u53bb\u8054\u7cfb\uff0c\u6b63\u5728\u5c1d\u8bd5\u91cd\u65b0\u767b\u5f55...",
callback: function() {
c && clearTimeout(c);
e()
},
cancle: function() {
c && clearTimeout(c);
EQQ.View.MainPanel.setSelfState("offline")
}
}), j.notifyObservers(EQQ.Model.BuddyList, "SelfStateChange", "offline"));
l && l.hasOwnProperty("t") ? c = setTimeout(function() {
e()
},
(parseInt(l.t) || 0) * 1E3) : l || (c = setTimeout(function() {
e()
},
1E4));
p++
},
Q = function() {
j.notifyObservers(g, "SelfOffline", {
message: "\u4f60\u7684\u767b\u5f55\u5df2\u5931\u6548\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55\u3002",
action: "relogin"
})
},
O = function() {
j.notifyObservers(g, "SelfOffline", {
message: "\u56e0\u7f51\u7edc\u6216\u5176\u4ed6\u539f\u56e0\u4e0e\u670d\u52a1\u5668\u5931\u53bb\u8054\u7cfb\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55\u3002",
action: "relogin"
})
},
l = function() {
j.notifyObservers(EQQ, "exitSuccess")
},
P = function() {
EQQ.getIsLogin() && typeof EQQ !== "undefined" && EQQ.keepPoll()
},
R = function() {
var l = alloy.app.eqq.getRunOption();
if (l && l.directChat) {
var e = l.directChatType,
a = l.directChat;
setTimeout(function() {
EQQ.handleNotification(a, e) || WebqCore.api.call(["chat", [e, a]])
},
500);
delete l.directChat;
delete l.directChatType
}
},
J = function(l) {
d.out("\u767b\u5f55\u7b2c\u4e00\u6b65\u6210\u529f");
p = 0;
g.setVfWebQQ(l.vfwebqq);
z = l.psessionid;
q = l.clientkey;
EQQ.setIsLogin(!0);
j.notifyObservers(alloy.portal, "GetLoginInfoSuccess");
g.start(l);
B();
y();
d.debug(">>>EQQ.js - onLoginSuccess")
};
this.start = function() {
this.mode = "master";
d.out("start: " + EQQ);
EQQ.Global.initGlobal();
EQQ.Model.BuddyList.reset();
EQQ.Presenter.MainPanel.View.showPullData();
alloy.util.report2h("eqqGetData", "start");
alloy.portal.speedTest.sRTS(14, "start", new Date);
alloy.portal.speedTest.sRTS(15, "start", new Date);
EQQ.Extend.require([EQQ.Model.BuddyList.sendGetBuddyList({
h: "hello"
}), EQQ.Model.BuddyList.sendGetGroupList()],
function() {
hasGetRecentList = !1;
WebqCore.api.ifDataReady.set(!0);
r = {};
j.addObserver(EQQ, "MessageReceive", T);
j.addObserver(alloy.messageCenter, "MessageHandled", h);
EQQ.startPoll();
EQQ.Model.BuddyList.sendGetDiscuList(function() {
j.notifyObservers(alloy.portal, "BeforeGetRecentList");
EQQ.Model.BuddyList.sendGetRecentList({})()
});
alloy.rpcService.sendGetSignature(alloy.portal.getUin());
alloy.portal.setLoginLevel(alloy.CONST.LOGIN_LEVEL_ALL);
setTimeout(function() {
WebqCore.api.makeCall()
},
13);
alloy.util.report2h("eqqGetData", "end_eqqGetData", "ok");
alloy.portal.speedTest.sRTS(11, "end", new Date, !0);
j.notifyObservers(EQQ, "EQQLoginSuccess");
j.notifyObservers(alloy.portal, "EQQLoginSuccess");
setTimeout(function() {
WebqCore.api.call(["chat", []])
},
12E4)
});
if (!b) b = !0,
this.timer = window.setInterval(U, 6E4)
};
this.handleNotification = function(l, e) {
var a = l + e;
return (a = r[a] && r[a].msgId || 0) ? alloy.messageCenter.handleNotification(a) : !1
};
var T = function(l) {
var e, a = l.uin || l.gid || l.did,
h;
for (h in l.msgList) {
e = l.msgList[h];
if (!a) a = e.from_uin;
var P = a + e.type,
f = !1;
/(single)|(group)|(discu)/.test(e.type) && (f = !0, r[P] || (r[P] = {
count: 1
}));
var c = a,
n = void 0,
b = void 0,
b = {
uin: c,
title: c,
content: "",
count: 1,
t: new Date,
type: e.type,
time: e.time || d.date.format(new Date, "YYYY-MM-DD hh:mm:ss"),
extra: null
},
w = alloy.config.configList.notifySetting || alloy.notifier.ENABLE_FLAGS.ENABLE_ALL,
g = alloy.notifier.translateFlag(["badge", "msg", "sound"]);
g &= w;
n = {
from: 50,
to: g,
type: "Unkown",
body: b
};
switch (e.type) {
case "single":
var x = WebqCore.api.__api.getChatBox(c);
if (x) g = alloy.notifier.translateFlag(["sound", "title", "marquee"]),
n.to = g & w;
n.type = "SingleChat";
b.title = e.sender ? e.sender.htmlShowName || c : c;
b.content = EQQ.util.trimChatMsg(e);
b.extra = {
isChatBoxOpen: x
};
break;
case "group":
x = WebqCore.api.__api.getChatBox(c);
g = EQQ.Model.BuddyList.isGroupPrompt(c);
if (x) if (g) g = alloy.notifier.translateFlag(["title", "marquee", "sound"]),
n.to = g & w;
else {
n = null;
break
} else if (!g) {
n = null;
break
}
n.type = "GroupChat";
w = EQQ.Model.BuddyList.getGroupByGid(c);
b.code = w.code;
b.title = w ? w.htmlShowName || c : c;
b.content = EQQ.util.trimChatMsg(e);
b.extra = {
isChatBoxOpen: x
};
break;
case "discu":
x = WebqCore.api.__api.getChatBox(c);
g = EQQ.Model.BuddyList.isDiscuPrompt(c);
if (x) if (g) g = alloy.notifier.translateFlag(["title", "marquee", "sound"]),
n.to = g & w;
else {
n = null;
break
} else if (!g) {
n = null;
break
}
n.type = "DiscuChat";
w = EQQ.Model.BuddyList.getDiscuById(c);
b.title = w ? w.htmlName || c : c;
b.content = EQQ.util.trimChatMsg(e);
b.extra = {
isChatBoxOpen: x
};
break;
case "add_buddy":
n.type = "BuddyAdd";
b.content = e.content;
b.title = e.title;
b.extra = e.opt;
break;
case "join_group":
n.type = "GroupJoin";
b.content = e.content;
b.title = e.title;
b.extra = e.opt;
break;
default:
n = null
}
if (e = n) {
if (f) e.body.count = r[P].count++;
e = alloy.messageCenter.notify(e);
if (f) r[P].msgId = e
} else f && (r[P] = null)
}
},
h = function(l) {
var e = l.body;
r[e.uin + e.type] = null;
switch (l.type) {
case "SingleChat":
WebqCore.api.call(["chat", ["single", e.uin]]);
break;
case "GroupChat":
d.profile("EQQ.onNotifyHasHandled - group.code: " + e.code);
WebqCore.api.call(["chat", ["group", e.code]]);
break;
case "DiscuChat":
d.profile("EQQ.onNotifyHasHandled - group.code: " + e.uin);
WebqCore.api.call(["chat", ["discu", e.uin]]);
break;
case "BuddyAdd":
alloy.portal.runApp("buddyAdder", e.extra);
break;
case "GroupJoin":
alloy.portal.runApp("groupSystemMsg", e.extra)
}
},
M = function(l) {
EQQ.setIsLogin(!1);
d.out("\u5bf9\u4e0d\u8d77\uff0c\u767b\u5f55\u5931\u8d25\uff01");
alloy.portal.setLoginLevel(alloy.CONST.LOGIN_LEVEL_NOCHAT);
EQQ.Presenter.MainPanel.showReLoginPanel(l.text)
},
L = 0,
U = function() {
L > 240 && (L = 0);
j.notifyObservers(EQQ, "NotifyBeat_1");
L % 2 == 0 && j.notifyObservers(EQQ, "NotifyBeat_2");
L % 5 == 0 && (j.notifyObservers(EQQ, "NotifyBeat_5"), L % 10 == 0 && (j.notifyObservers(EQQ, "NotifyBeat_10"), L % 30 == 0 && (j.notifyObservers(EQQ, "NotifyBeat_30"), L % 60 == 0 && (j.notifyObservers(EQQ, "NotifyBeat_60"), L % 120 == 0 && (j.notifyObservers(EQQ, "NotifyBeat_120"), L % 240 == 0 && j.notifyObservers(EQQ, "NotifyBeat_240"))))));
L++
},
V,
N = 0,
S = !1,
Y = 0;
this.startBeat2 = function() {
S = !0;
N = 0;
V = window.setInterval(ja, 250);
d.out(">>>>>>>>>: startBeat2")
};
this.stopBeat = function() {
this.stopBeat2();
window.clearInterval(this.timer);
this.timer = null
};
this.stopBeat2 = function() {
S = !1;
window.clearInterval(V);
N = 0;
V = null;
d.out(">>>>>>>>>: stopBeat2")
};
this.isStartBeat2 = function() {
return S
};
this.addNeedBeat2 = function(l) {
a[l] || (a[l] = !0, Y++);
EQQ.isStartBeat2() || EQQ.startBeat2()
};
this.removeNeedBeat2 = function(l) {
a[l] && (Y > 0 && Y--, delete a[l]);
Y === 0 && EQQ.stopBeat2()
};
var ja = function() {
N > 5E3 && (N = 0);
j.notifyObservers(EQQ, "NotifyBeat_250");
N % 2 == 0 && (j.notifyObservers(EQQ, "NotifyBeat_500"), N % 6 == 0 && j.notifyObservers(EQQ, "NotifyBeat_1000"), N % 10 == 0 && (j.notifyObservers(EQQ, "NotifyBeat_3000"), N % 20 == 0 && j.notifyObservers(EQQ, "NotifyBeat_5000")));
N++
};
this.startPoll = function() {
this.setNeedPollFlag(!0);
this.keepPoll();
EQQ.RPCService.pollWatcher.startWatch()
};
this.keepPoll = function() {
this.getNeedPollFlag() && EQQ.RPCService.sendPoll()
};
this.setNeedPollFlag = function(l) {
return i = l
};
this.getNeedPollFlag = function() {
return i
};
this.stopPoll = function() {
this.setNeedPollFlag(!1);
EQQ.RPCService.pollWatcher.stopWatch()
};
this.setIsLogin = function(l) {
o = l
};
this.getIsLogin = function() {
return o
};
this.getChatboxMode = function() {
return g.chatboxMode ? g.chatboxMode : "free"
};
this.getSendMsgKey = function() {
return g.isNotNeedCtrlKey
};
this.setSendMsgKey = function(l) {
g.isNotNeedCtrlKey = l;
alloy.rpcService.sendSetConfig({
context: this,
data: {
retype: 1,
r: {
appid: qqweb.config.__eqqid,
value: {
isNotNeedCtrlKey: l
}
}
}
});
alloy.hotkeyManager.setSendHotKey(l)
};
this.initSendMsgKey = function(l) {
g.isNotNeedCtrlKey = l
};
this.initChatboxMode = function(l) {
g.chatboxMode = l
};
this.setChatboxMode = function(l) {
g.chatboxMode = l;
alloy.rpcService.sendSetConfig({
context: this,
data: {
retype: 1,
r: {
appid: qqweb.config.__eqqid,
value: {
chatboxMode: l
}
}
}
})
};
this.getLoadLoginScript = function() {
return this.isLoadEqqScript
};
this.setLoadLoginScript = function(l) {
this.isLoadEqqScript = l
};
this.videoNotify = function(l) {
d.profile("videoNotify", "video");
var e = l.type,
a = l.uin;
if (e && a) switch (e) {
case "msg":
EQQ.Presenter.ChatBox.appendVideoMsg(l.uin, l.context);
break;
case "setVideoId":
d.profile("setVideoId" + l.context, "video");
EQQ.Presenter.ChatBox.setVideoId(a, l.context);
break;
case "pop":
EQQ.Presenter.ChatBox.popVideoWindow(a);
break;
case "inner":
EQQ.Presenter.ChatBox.innerVideoWindow(a);
break;
case "close":
l.context && EQQ.Presenter.ChatBox.appendVideoMsg(l.uin, l.context),
EQQ.Presenter.ChatBox.closeVideo(l.uin)
}
};
this.sendMsg = function(l, e) {
EQQ.Model.ChatMsg.sendMsg({
type: "single",
to: l,
content: [e],
isIgnoreHistory: !0
})
}
})
})(); (function() {
WebqCore.register("EQQ.util",
function(d) {
var g = d.dom,
f = d.string,
j = {},
t = 1,
b = function(b, g) {
var o = null;
if (b.from_uin && b.msg_id && b.raw_time && (o = String(b.from_uin) + String(b.msg_id) + String(b.raw_time), j[o])) return j[o];
var i = "";
if (g) for (var r = 0; r < b.content.length; r++) {
var k = b.content[r];
if (k[0] === "face") i += a(k[1]);
else if (k[0] === "cface") i += b.type == "group" || b.type == "discu" ? p(k[2]) : p(k[1]);
else if (k[0] === "cface_idx") i += b.type == "group" || b.type == "discu" ? p(k[2]) : p(k[1]);
else if (k[0] !== "pic_id" && k[0] !== "image") if (k[0] === "offpic") {
var D = EQQ.Model.ChatMsg.getSendPicUrlByFilePath(k[1]);
D != "" && (i += '<img src="' + D + '" id="cface_' + t++ + '" title="\u56fe\u7247\u6216\u81ea\u5b9a\u4e49\u8868\u60c5" />')
} else k[0] === "rffile" ? i += '<div class="msgFileBox">\u60a8\u62d2\u7edd\u63a5\u6536"' + f.encodeHtmlSimple(k[1]) + '",\u6587\u4ef6\u4f20\u8f93\u5931\u8d25.</div>' : k[0] === "agfile" ? i += '<div class="msgFileBox">\u60a8\u540c\u610f\u4e86\u63a5\u6536\u6587\u4ef6"' + f.encodeHtmlSimple(k[1]) + '".</div>' : k[0] === "sendfile" ? i += '<div class="msgFileBox">\u60a8\u53d1\u9001\u6587\u4ef6"' + f.encodeHtmlSimple(k[1]) + '"\u7ed9\u5bf9\u65b9.</div>' : k[0] === "transtimeout" ? i += '<div class="msgFileBox">\u63a5\u6536\u6587\u4ef6"' + f.encodeHtmlSimple(k[1]) + '"\u8d85\u65f6,\u6587\u4ef6\u4f20\u8f93\u5931\u8d25.</div>' : k[0] === "refusedbyclient" ? i += '<div class="msgFileBox">\u5bf9\u65b9\u53d6\u6d88\u4e86\u63a5\u6536\u6587\u4ef6"' + f.encodeHtmlSimple(k[1]) + '",\u6587\u4ef6\u4f20\u8f93\u5931\u8d25.</div>' : k[0] === "transok" ? i += '<div class="msgFileBox">\u6587\u4ef6"' + f.encodeHtmlSimple(k[1]) + '"\u4f20\u8f93\u6210\u529f.</div>' : k[0] === "transerror" ? i += '<div class="msgFileBox">\u5bf9\u65b9\u53d6\u6d88\u4e86\u63a5\u6536\u6587\u4ef6"' + f.encodeHtmlSimple(k[1]) + '"\u6216\u4f20\u8f93\u9519\u8bef,\u6587\u4ef6\u4f20\u8f93\u5931\u8d25.</div>' : d.isArray(k) || (i += m(f.encodeHtmlSimple(m(k, 1)), 2))
} else {
var r = b.sender_uin || b.from_uin,
D = b.from_uin || 0,
B = [],
E,
w,
x;
for (x = b.content[0][0] !== "font" ? 0 : 1; x < b.content.length; x++) if (k = b.content[x], d.isString(k) && k.substr(0, 4) === "\u3000 \u3000") b.content[0] = [],
k = "",
d.platform.iPad && (k = "\u4f46\u60a8\u4f7f\u7528\u7684\u8bbe\u5907\u4e0d\u652f\u6301\u89c6\u9891\u901a\u8bdd\u529f\u80fd\u3002"),
i += '<div class="msgFileBox">\u5bf9\u65b9\u5411\u60a8\u53d1\u8d77\u89c6\u9891\u9080\u8bf7\u3002' + k + "</div>";
else if (k[0] === "video") i += '<div class="msgFileBox">' + k[1] + "</div>";
else if (k[0] === "face") i += a(k[1]);
else if (k[0] === "cface") if (B.push(k), b.type == "group" || b.type == "discu") {
var C = b.group_code || EQQ.Model.BuddyList.decodeDid(b.did),
k = k[1],
F = b.sender_uin,
u = b.raw_time,
s = b.group_code ? 0 : 1,
K = k.server.toString().split(":"),
k = '<img src="' + EQQ.CONST.CHAT_PIC_SERVER + "cgi-bin/get_group_pic?type=" + s + "&gid=" + C + "&uin=" + F + "&rip=" + K[0] + "&rport=" + K[1] + "&fid=" + k.file_id + "&pic=" + k.name + "&vfwebqq=" + alloy.portal.getVfWebQQ() + "&t=" + u + '" id="_cface_' + t++ + '" title="\u56fe\u7247\u6216\u81ea\u5b9a\u4e49\u8868\u60c5" />';
i += k
} else i += c(b.msg_id, k[1], r),
alloy.util.report2m(133157),
alloy.util.report2m(133158);
else if (k[0] === "cface_idx") b.type == "group" || b.type == "discu" ? (C = b.group_code || EQQ.Model.BuddyList.decodeDid(b.did), k = B[k[1]][1], F = Math.round((new Date).getTime() / 1E3), k = '<img src="' + EQQ.CONST.AVATAR_SERVER_DOMAIN + "cgi/svr/chatimg/get?pic=" + k.name + "&gid=" + C + "&time=" + F + '" id="_cface_' + t++ + '" title="\u56fe\u7247\u6216\u81ea\u5b9a\u4e49\u8868\u60c5" />', i += k) : i += c(b.msg_id, B[k[1]][1], r);
else if (k[0] === "pic_id") C = EQQ.Model.BuddyList.getUserByUin(r),
!C.type || C.type == "groupBuddy" ? w = !0 : E = k[1];
else if (k[0] === "image") w ? i += "\u3010\u56fe\u7247\u3011\uff08\u5bf9\u65b9\u53d1\u9001\u4e86\u4e00\u5f20\u56fe\u7247\uff0cWebQQ\u4e34\u65f6\u4f1a\u8bdd\u6682\u4e0d\u652f\u6301\u63a5\u6536\uff09" : (i += '<img rdata="image" src="' + EQQ.CONST.CONN_SERVER_DOMAIN + "channel/get_image2?lcid=" + b.msg_id + "&guid={" + E + "}" + k[2] + "." + k[1] + "&to=" + r + "&count=1&time=1&psessionid=" + EQQ.getPsessionid() + "&clientid=" + EQQ.Model.ChatMsg.getClientidFromRpc() + '" id="_cface_' + t++ + '" title="\u56fe\u7247\u6216\u81ea\u5b9a\u4e49\u8868\u60c5" />', alloy.util.report2m(133153), alloy.util.report2m(133154));
else if (k[0] === "offpic") i += k[1].success == 1 ? '<img rdata="offpic" src="' + EQQ.CONST.CONN_SERVER_DOMAIN + "channel/get_offpic2?file_path=" + k[1].file_path + "&f_uin=" + D + "&clientid=" + EQQ.Model.ChatMsg.getClientidFromRpc() + "&psessionid=" + EQQ.getPsessionid() + '" id="_cface_' + t++ + '" title="\u56fe\u7247\u6216\u81ea\u5b9a\u4e49\u8868\u60c5" />' : '<img src="style/images/img_error.gif" title="\u56fe\u7247\u6216\u81ea\u5b9a\u4e49\u8868\u60c5\u63a5\u6536\u9519\u8bef\u6216\u4e0d\u5b58\u5728" />',
alloy.util.report2m(133167);
else if (k[0] === "rfile") {
C = b.from_uin + "_" + k[2];
F = EQQ.Model.ChatMsg.getFilesList();
i += '<div class="msgFileBox">\u5bf9\u65b9\u7ed9\u60a8\u53d1\u9001\u6587\u4ef6:<br />';
u = k[1];
if (typeof u == "undefined" || u == "") u = void 0;
else switch (u = u.split("."), u = u[u.length - 1].toLowerCase(), u) {
case "excel":
case "xls":
case "xlsx":
u = "excel";
break;
case "doc":
case "docx":
u = "word";
break;
case "ppt":
case "pptx":
u = "ppt";
break;
case "bmp":
case "png":
case "gif":
case "jpeg":
case "jpg":
case "ico":
u = "pic";
break;
case "tga":
case "tif":
case "psd":
case "tiff":
u = "pic";
break;
case "mov":
case "avi":
case "mpeg":
case "mpg":
case "ra":
case "rm":
case "rmvb":
case "qt":
case "asf":
case "wmv":
case "swf":
case "flv":
case "mp4":
u = "media";
break;
case "mp3":
case "wav":
case "mid":
u = "music";
break;
case "arj":
case "rar":
case "zip":
case "jar":
case "7z":
case "tar":
case "uc2":
case "gz":
case "lha":
case "ace":
case "tgz":
u = "rar-zip";
break;
case "txt":
case "text":
u = "share-txt";
break;
case "pdf":
u = "pdf16";
break;
case "com":
u = "exe16";
break;
default:
u = "others"
}
i += '<span class="icon_' + u + '"> </span>' + f.encodeHtmlSimple(k[1]);
i += '<span class="fileAct">';
F[C].isread ? i += " [\u540c\u610f][\u62d2\u7edd]" : (i += ' <a id="agree_' + C + '" href="#">[\u540c\u610f]</a>', i += ' <a id="refuse_' + C + '" href="#">[\u62d2\u7edd]</a>');
i += "</span>";
i += "</div>"
} else k[0] === "rffile" ? i += '<div class="msgFileBox">\u5bf9\u65b9\u53d6\u6d88\u4e86\u63a5\u6536\u6587\u4ef6"' + f.encodeHtmlSimple(k[1]) + '",\u6587\u4ef6\u4f20\u8f93\u5931\u8d25.</div>' : k[0] === "rtfile" ? i += '<div class="msgFileBox">\u63a5\u6536\u6587\u4ef6"' + f.encodeHtmlSimple(k[1]) + '"\u8d85\u65f6,\u6587\u4ef6\u4f20\u8f93\u5931\u8d25.</div>' : k[0] === "wrfile" ? i += '<div class="msgFileBox">\u5bf9\u65b9\u5df2\u540c\u610f\u63a5\u6536"' + f.encodeHtmlSimple(k[1]) + '",\u5f00\u59cb\u4f20\u8f93\u6587\u4ef6.</div>' : k[0] === "wrffile" ? i += '<div class="msgFileBox">\u5bf9\u65b9\u62d2\u7edd\u4e86\u63a5\u6536\u6587\u4ef6"' + f.encodeHtmlSimple(k[1]) + '",\u6587\u4ef6\u4f20\u8f93\u5931\u8d25.</div>' : k[0] === "cvideo" ? (i += f.encodeHtmlSimple(k[1]), i += ' <a id="video_' + b.attach.from_uin + "_" + b.attach.msg_id + '" fromuin="' + b.attach.from_uin + '" href="###">\u53d1\u8d77\u89c6\u9891</a>') : i += k[0] === "video" ? f.encodeHtmlSimple(k[1]) : m(f.encodeHtmlSimple(m(k, 1)), 2)
}
i = i.replace(/\r\n|\r|\n/ig, "<br />");
o && (j[o] = i);
return i
},
a = function(a) {
return '<img class="EQQ_faceImg" src="' + EQQ.CONST.SYSTEM_FACE_URL + EQQ.CONST.T_TRANSFER_TABLE[a] + '.gif" />'
},
c = function(a, d, b, c) {
return '<img rdata="cface" src="' + EQQ.CONST.CONN_SERVER_DOMAIN + "channel/get_cface2?lcid=" + a + "&guid=" + d + "&to=" + b + "&count=" + (c || 5) + "&time=1&clientid=" + EQQ.RPCService.getClientId() + "&psessionid=" + EQQ.getPsessionid() + '" id="_cface_' + t++ + '" title="\u56fe\u7247\u6216\u81ea\u5b9a\u4e49\u8868\u60c5" />'
},
p = function(a) {
return '<img src="' + EQQ.CONST.CONN_SERVER_DOMAIN2 + "cgi-bin/webqq_app/?cmd=2&bd=" + a + '" id="_cface_' + t++ + '" title="\u56fe\u7247\u6216\u81ea\u5b9a\u4e49\u8868\u60c5" />'
},
m = function(a, d) {
if (d === 2) var b = /\[url\][\s\S]+?\[(\/|/)url\]/g,
a = a.replace(b,
function(a) {
a = a.replace(/(\[url\]|\[(\/|/)url\])/g, "");
return '<a href="' + a.replace(/^www\./,
function(a) {
return "http://" + a
}) + '" class="chatLink" target="_blank"><span class="msgLink">' + a + "</span></a>"
});
else b = /((([a-zA-Z0-9]{3,10})?:\/\/)|(www\.)){1}[\w\.\/\?=%&@:#;\*\$\[\]\(\){}'"\-]+([0-9a-zA-Z\/#])+?/g,
a = a.replace(b,
function(a) {
return "[url]" + a + "[/url]"
});
return a
};
this.transUrl = m;
this.translateFontStyle = function(a) {
if (a[0] === "font") {
var b = a[1].style,
c = d.string.encodeHtmlAttributeSimple(a[1].name + ""),
c = (c = c.match(/\u5b8b\u4f53|\u9ed1\u4f53|\u96b6\u4e66|\u5fae\u8f6f\u96c5\u9ed1|\u6977\u4f53_GB2312|\u5e7c\u5706|Arial Black|Arial|Verdana|Times New Roman/)) ? c[0] : "\u5b8b\u4f53",
f = a[1].color.match(/([0-9a-f]{6})/),
f = f ? f[0] : "000";
return "color:#" + f + ";font-family:" + c + ";font-size:" + Number(a[1].size) + "pt;font-weight:" + (b[0] ? "bold" : "normal") + ";font-style:" + (b[1] ? "italic" : "normal") + ";text-decoration:" + (b[2] ? "underline" : "none") + ";"
} else return ""
};
this.translateChatMsg = b;
this.trimChatMsg = function(a) {
var a = b(a),
a = a.replace(/^(<br \/>| )+/ig, ""),
a = a.replace(/(<a([^>]+)>|<\/a>)/ig, ""),
a = a.replace(/<div class="msgFileBox">([\s\S]+?)<\/div>/ig,
function(a) {
a = a.replace(/(<span([\s\S]+?)<\/span>)+?/ig, "");
a = a.replace(/(:<br \/>)+?/ig, ":");
return a.replace(/(<div([^>]+?)>|<\/div>)+/ig, "")
}),
d = a.indexOf("<br />");
d != -1 && (a = a.substr(0, d));
a = a.replace(/( )+$/ig, "");
return a = a.replace(/<img.*?\/?>/ig,
function(a) {
return /class="EQQ_faceImg"/.test(a) ? a : '<img src="' + alloy.CONST.CDN_URL + 'style/images/image_icon.png?t=1" />'
})
};
this.transResendMsg = function(a) {
for (var a = d.json.parse(a.content), b = "", c = 0; c < a.length; c++) {
var g = a[c];
if (d.isArray(g)) if (g[0] == "face") b += "[\u56fe\u7247]";
else {
if (g[0] == "cface" || g[0] == "offpic") b += "[\u56fe\u7247]"
} else g == "\n" || g == " " || (b += g)
}
b = b.replace(EQQ.CONST.WEBQQMSGTIPS, "");
b.length > 20 && (b = f.cutByBytes(b.toString(), 20) + "...");
return f.encodeHtmlSimple(b)
};
this.Marquee = new d.Class({
init: function(a) {
var b = this;
this.speed = a.speed || 40;
this.stopTime = a.stopTime || 3E3;
this.lineHeight = a.lineHeight || 20;
this.target = a.target;
this.intervaler = this.lineTimer = this.timer = null;
this.scrollHeight = this.lineHeight;
this.isStop = !1;
this._onTimeRun = function() {
b.scrollOneLine()
}
},
scrollOneLine: function() {
if (this.scrollHeight > 0) {
this.scrollHeight--;
var a = this.target.style.top.match(/-?\d+/),
a = !a ? 0 : parseInt(a[0]);
this.target.style.top = --a + "px";
this.lineTimer = setTimeout(this._onTimeRun, this.speed)
} else this.isStop || this.update()
},
stop: function() {
this.timer && clearTimeout(this.timer)
},
stopAll: function() {
this.stop();
this.lineTimer && clearTimeout(this.lineTimer)
},
reset: function() {
this.target.style.top = "0px"
},
update: function() {
if (!this.isStop) {
this.timer && clearTimeout(this.timer);
this.scrollHeight = this.lineHeight;
var a = this.target.style.top.match(/\d+/),
b = g.getScrollHeight(this.target);
if (a && b && (a = parseInt(a[0]), a >= b)) {
this.target.style.top = this.lineHeight + "px";
this.scrollOneLine();
return
}
this.timer = setTimeout(this._onTimeRun, this.stopTime)
}
},
walkOnLastLine: function() {
this._onTimeRun()
}
})
})
})(); (function() {
WebqCore.register("EQQ.RPCService",
function(d) {
function g() {
var a = this;
this.pollRequst = void 0;
this.POLLTICK = 0;
this._check = function() {
a.check()
}
}
var f = this,
j = this,
t = d.dom,
b = d.event; (new Date).getTime();
var a = 0,
c = String(d.random(0, 99)) + String((new Date).getTime() % 1E6),
p = 0,
m = !1,
z = 0,
q = EQQ.CONST.CONN_SERVER_DOMAINS[0],
o,
i = function() {
return function(a, b) {
try {
if (arguments.length == 2) return !b || arguments.callee(a);
else {
var d = alloy.portal.getUin();
if (a.status) var c = [d, a.status, a.responseText.replace(/[\r\t\n\s]/g, "") + ":", decodeURIComponent(a.data), a.uri].join("{1}quot;);
else a = a.o,
c = [d, a.status, a.responseText.replace(/[\r\t\n\s]/g, "") + ":", decodeURIComponent(a.data), a.uri].join("{1}quot;);
alloy.rpcService.formSend("http://tj.qstatic.com/log", {
method: "POST",
data: {
r: c.replace(/,"/g, ":").replace(/[{"}]/g, "")
}
})
}
} catch (f) { }
}
},
i = i(),
r = function() {
a++;
d.out("onFail: " + a);
a > 4 && (a = 0, b.notifyObservers(f, "FailCountOverMax"))
},
k = !1,
D = [],
B;
this.onAjaxFrameLoad = function() {
d.out(B.readyState, null, 1);
if (o = window.frames.EQQ_ProxySendIframe.ajax) {
m = !1;
for (var a = 0; a < D.length; ++a) {
var b = 0 % EQQ.CONST.CONN_PROXY_URLS.length,
c = D[a].url;
if (c.indexOf(EQQ.CONST.CONN_SERVER_DOMAINS[b]) == -1) c = c.replace(/http:\/\/.*.com\//, ""),
D[a].url = EQQ.CONST.CONN_SERVER_DOMAINS[b] + c;
c = D[a].url;
b = D[a].option;
try {
return E(c, b)
} catch (f) {
d.out("eqq ajax\u4ee3\u7406\u51fa\u9519\uff1a" + c + " " + EQQ.CONST.CONN_PROXY_URL);
if (!b.onError) break;
c = {};
c.arguments = b.arguments || {};
b.onError.call(b.context, c)
}
}
} else a = EQQ.CONST.CONN_PROXY_URLS[0],
a += (/\?/.test(a) ? "&" : "?") + "callback=2",
B.setAttribute("src", a)
};
var E = function(a, b) {
b = b || {};
b.cacheTime = b.cacheTime || 0;
b.onSuccess = b.onSuccess ||
function() { };
b.onError = b.onError ||
function() { };
b.onTimeout = b.onTimeout ||
function() { };
b.onComplete = b.onComplete ||
function() { };
var f = {
method: b.method || "GET",
enctype: b.enctype || "",
data: b.data || {},
arguments: b.arguments || {},
context: b.context || null,
timeout: b.timeout,
onSuccess: function(a) {
var c = {},
f = !1;
a.responseText = a.responseText || "-";
try {
c = d.json.parse(a.responseText)
} catch (e) {
a.responseText += ":BJF:",
f = !0,
d.out("JSON\u683c\u5f0f\u51fa\u9519:" + e)
} finally {
c.arguments = b.arguments || {},
c.o = a,
b.onSuccess.call(b.context, c, f)
}
},
onError: function(a) {
b.onError.call(b.context, a)
},
onTimeout: function() {
var a = {};
a.arguments = b.arguments || {};
b.onTimeout.call(b.context, a)
},
onComplete: function() {
var a = {};
a.arguments = b.arguments || {};
b.onComplete.call(b.context, a)
}
};
f.data.clientid = c;
f.data.psessionid = EQQ.getPsessionid();
if (m) f.onError();
else {
alloy.portal.recoverCookie();
f.data = d.string.toQueryString(f.data);
if (f.method == "GET") {
var g = f.data;
b.cacheTime === 0 && (g += g ? "&t=" + (new Date).getTime() : "t=" + (new Date).getTime());
if (g) {
var k = alloy.portal.getVfWebQQ();
k && !/channel/ig.test(a) && (g += "&vfwebqq=" + k);
a = a + "?" + g
}
f.data = null
} else f.contentType = "application/x-www-form-urlencoded",
a.indexOf("?");
return o(a, f)
}
};
this._proxy = o;
g.prototype = {
pollStop: function() {
d.out("a poll Over...");
this.pollRequst = null;
this.POLLTICK = 0;
this.timer = null
},
check: function() {
d.out("check...");
this.pollRequst == null && (d.out("Oooops, somethingWrong..."), this.POLLTICK++, this.POLLTICK == 1 && setTimeout(this._check, 5E3));
if (this.POLLTICK == 2) d.out("Oooops, send..."),
alloy.rpcService.formSend("http://tj.qstatic.com/log", {
method: "POST",
data: {
j: "unwanted-poll-stop"
}
}),
this.POLLTICK = 0
},
startWatch: function() {
d.out("start...");
try {
b.addObserver(EQQ, "NotifyBeat_2", this._check)
} catch (a) { }
this.POLLTICK = 0
},
stopWatch: function() {
d.out("stop...");
try {
b.removeObserver(EQQ, "NotifyBeat_2", this._check)
} catch (a) { }
this.POLLTICK = 0
}
};
this.pollWatcher = new g;
this.init = function() { };
this.getClientId = function() {
return c
};
this.send = function(a, b) {
if (o) return E(a, b);
else if (D.push({
url: a,
option: b
}), !k) {
k = !0;
var d = document.body,
c = t.node("div");
c.innerHTML = '<iframe id="EQQ_ProxySendIframe" class="hiddenIframe" name="EQQ_ProxySendIframe" width="1" height="1" src="' + alloy.CONST.MAIN_URL + 'domain.html"></iframe>';
d.appendChild(c);
B = t.id("EQQ_ProxySendIframe");
d = EQQ.CONST.CONN_PROXY_URLS[0];
d += (/\?/.test(d) ? "&" : "?") + "callback=2";
B.setAttribute("src", d)
}
};
this.sendLogin = function(a) {
if (window.webTop) a.v = Number(webTop.version) + 1E4;
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
this.send(q + "channel/login2", {
context: this,
method: "POST",
data: {
r: d.json.stringify(a)
},
onSuccess: this.sendLoginSuccess,
onError: this.sendLoginError,
onTimeout: this.sendLoginTimeout
});
alloy.util.report2h("eqqLoginCgi", "start");
alloy.portal.speedTest.sRTS(16, "start", new Date)
};
this.sendLoginSuccess = function(a, c) {
switch (a.retcode) {
case 0:
z = 1;
b.notifyObservers(EQQ, "LoginSuccess", a.result);
alloy.portal.speedTest.sRTS(4, "start", new Date);
alloy.portal.speedTest.sRTS(5, "start", new Date);
break;
case 103:
b.notifyObservers(this, "NotLogin", a.result);
break;
case 106:
b.notifyObservers(EQQ, "UinNotInWhitelist", a.result);
break;
case 111:
b.notifyObservers(EQQ, "UinInBlacklist", a.result);
break;
case 112:
b.notifyObservers(EQQ, "Overload", a.result);
break;
case 1E5:
case 100001:
case 100002:
b.notifyObservers(EQQ, "PtwebqqFail", a.result);
break;
default:
d.out("\u672a\u77e5\u767b\u5f55\u5931\u8d25"),
b.notifyObservers(EQQ, "LoginFailure", {
text: "\u8fde\u63a5\u5931\u8d25"
}),
d.out("[sendLogin] error: " + a.retcode),
i(a, !c)
}
alloy.util.report2h("eqqLoginCgi", "end_eqqLoginCgi", ["ok"][a.retcode] || a.retcode);
i(a, c);
alloy.portal.speedTest.sRTS(16, "end", new Date, !0)
};
this.sendLoginError = function(a) {
d.out("sendLoginError");
b.notifyObservers(EQQ, "LoginFailure", {
text: "\u8fde\u63a5\u5931\u8d25"
});
alloy.util.report2h("eqqLoginCgi", "end_eqqLoginCgi", "error");
i(a)
};
this.sendLoginTimeout = function(a) {
d.out("sendLoginError");
b.notifyObservers(EQQ, "LoginFailure", {
text: "\u8fde\u63a5\u5931\u8d25"
});
alloy.util.report2h("eqqLoginCgi", "end_eqqLoginCgi", "timeout");
i(a)
};
this.sendLogout = function(a) {
this.send(q + "channel/logout2", {
context: this,
data: a,
onSuccess: function(a) {
a.retcode === 0 || a.retcode === 100 ? (z = 0, b.notifyObservers(this, "LogoutSuccess", a.result), d.out(":LogoutSuccess...")) : d.out("[SendLogout] error: " + a.retcode)
}
})
};
this.sendReLink = function(a) {
if (window.webTop) a.v = Number(webTop.version) + 1E4;
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
if (f._state) a.status = f._state;
this.send(q + "channel/login2", {
context: this,
method: "POST",
data: {
r: d.json.stringify(a)
},
onSuccess: this.sendReLinkSuccess,
onError: this.sendReLinkError,
onTimeout: this.sendReLinkTimeout
})
};
this.sendReLinkSuccess = function(a, d) {
switch (a.retcode) {
case 0:
z = 1;
b.notifyObservers(EQQ, "ReLinkSuccess", a.result);
break;
case 103:
b.notifyObservers(this, "NotReLogin", a.result);
break;
case 113:
case 115:
case 112:
b.notifyObservers(EQQ, "ReLinkFailure", a);
break;
default:
b.notifyObservers(EQQ, "ReLinkStop"),
i(a, !d)
}
i(a, d)
};
this.sendReLinkError = function(a) {
d.out("sendReLinkError");
b.notifyObservers(EQQ, "ReLinkFailure");
i(a)
};
this.sendReLinkTimeout = function(a) {
d.out("sendReLinkTimeout");
b.notifyObservers(EQQ, "ReLinkFailure");
i(a)
};
this.sendGetOnlineBuddies = function() {
this.send(q + "channel/get_online_buddies2", {
context: this,
data: {},
onSuccess: function(a, d) {
a.retcode === 0 ? b.notifyObservers(this, "GetOnlineBuddiesSuccess", a.result) : i(a, !d);
i(a, d)
},
onError: function(a) {
i(a)
}
})
};
this.sendMsg = function(a) {
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
this.send(q + "channel/send_buddy_msg2", {
context: this,
cacheTime: 0,
method: "POST",
data: {
r: d.json.stringify(a)
},
onSuccess: function(c, f) {
c.retcode === 0 ? b.notifyObservers(this, "SendMsgSuccess", c.result) : (d.out("[sendMsg] error: " + c.retcode + "-" + c.errmsg), b.notifyObservers(this, "SendMsgError", {
uin: a.to,
retcode: c.retcode,
errmsg: c.errmsg,
callback: EQQ.RPCService.sendMsg,
cbParam: a
}), i(c, !f));
i(c, f)
},
onError: function(a) {
i(a)
}
})
};
this.sendGroupMsg = function(a) {
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
this.send(q + "channel/send_qun_msg2", {
context: this,
method: "POST",
data: {
r: d.json.stringify(a)
},
onSuccess: function(c, f) {
c.retcode === 0 ? b.notifyObservers(this, "SendGroupMsgSuccess", c.result) : (d.out("[sendGroupMsg] error: " + c.retcode + "-" + c.errmsg), b.notifyObservers(this, "SendMsgError", {
uin: a.group_uin,
retcode: c.retcode,
errmsg: c.errmsg,
callback: EQQ.RPCService.sendGroupMsg,
cbParam: a
}), i(c, !f));
i(c, f)
},
onError: function(a) {
i(a)
}
})
};
this.sendPoll = function(a) {
a = a || {};
a = a.data || {};
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
a.key = alloy.portal.getSecretKey();
if (p < z) p++,
f.pollWatcher.pollRequst = this.send(q + "channel/poll2", {
context: this,
cacheTime: 0,
data: a,
timeout: 9E4,
onSuccess: this.sendPollSuccess,
onError: this.sendPollError,
onTimeout: this.sendPollTimeout
})
};
this.sendPollSuccess = function(c, g) {
f.pollWatcher.pollStop(); (new Date).getTime();
p--;
if (c.retcode === 0 || c.retcode === 102) {
a = 0;
try {
b.notifyObservers(this, "PollSuccess", c.result)
} catch (m) {
d.out("PollSuccess, but [PollSuccess notify] error!!!!!!!!!!!!!!!!!!!!!!!!", 1)
}
try {
b.notifyObservers(this, "PollComplete")
} catch (k) {
d.out("PollComplete, but [PollComplete notify] error!!!!!!!!!!!!!!!!!!!!!!!!", 1)
}
} else if (c.retcode === 100) b.notifyObservers(this, "NotReLogin");
else if (c.retcode === 120) b.notifyObservers(EQQ, "ReLinkFailure", c);
else if (c.retcode === 121) b.notifyObservers(EQQ, "ReLinkFailure", c);
else if (c.retcode === 116) alloy.portal.setPtwebqq(c.p),
b.notifyObservers(this, "PollComplete");
else {
try {
b.notifyObservers(j, "PollComplete")
} catch (t) {
d.out("PollComplete, but [PollComplete notify] error!!!!!!!!!!!!!!!!!!!!!!!!", 1)
}
c.retcode != 109 && c.retcode != 110 && r()
}
i(c, g)
};
this.sendPollTimeout = function() {
f.pollWatcher.pollStop();
p--;
try {
b.notifyObservers(this, "PollComplete")
} catch (a) {
d.out("PollComplete, but [PollComplete notify] error!!!!!!!!!!!!!!!!!!!!!!!!", 1)
}
r()
};
this.sendPollError = function(a) {
this.sendPollTimeout(a);
i(a)
};
this.sendChangeStatus = function(a) {
a = a || {
newstatus: "hidden"
};
this.send(q + "channel/change_status2", {
context: this,
data: a,
arguments: a,
onSuccess: function(a, c) {
if (a.retcode === 0) b.notifyObservers(this, "ChangeStatusSuccess", a.arguments.newstatus),
f._state = a.arguments.newstatus;
a.retcode === 108 ? b.notifyObservers(this, "NotReLogin", a.result) : i(a, !c);
i(a, c)
},
onError: function(a) {
i(a)
}
})
};
this.sendGetSessionSignature = function(a) {
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
this.send(q + "channel/get_c2cmsg_sig2", {
context: this,
data: a,
arguments: a,
onSuccess: function(c, d) {
if (c.retcode === 0) {
var f = c.result;
f.id = a.service_type === 0 ? a.id : EQQ.Model.BuddyList.encodeDid(a.id);
f.uin = a.to_uin;
b.notifyObservers(this, "GetSessionSignatureSuccess", f)
} else i(c, !d);
i(c, d)
},
onError: function(a) {
i(a)
}
})
};
this.sendGroupBuddyMsg = function(a) {
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
this.send(q + "channel/send_sess_msg2", {
context: this,
method: "POST",
data: {
r: d.json.stringify(a)
},
onSuccess: function(c, d) {
c.retcode === 0 ? b.notifyObservers(this, "SendMsgSuccess", c.result) : (b.notifyObservers(this, "SendMsgError", {
uin: a.to,
retcode: c.retcode,
errmsg: c.errmsg,
callback: EQQ.RPCService.sendGroupBuddyMsg,
cbParam: a
}), i(c, !d));
i(c, d)
},
onError: function(a) {
i(a)
}
})
};
this.sendGetCustomFaceList = function() {
alloy.portal.recoverCookie();
d.http.loadScript(EQQ.CONST.CONN_SERVER_DOMAIN2 + "cgi-bin/webqq_app/", {
query: "cmd=1?t=" + (new Date).getTime() + "&vfwebqq=" + alloy.portal.getVfWebQQ(),
onSuccess: function() {
typeof custom_face !== "undefined" ? b.notifyObservers(f, "SendGetCustomFaceListSuccess", custom_face) : f.sendGetCustomFaceList()
}
})
};
this.sendDeleteCustomFace = function(a) {
alloy.portal.recoverCookie();
d.http.loadScript(EQQ.CONST.CONN_SERVER_DOMAIN2 + "cgi-bin/webqq_app/", {
query: "cmd=12&bd=" + a.img + "&vfwebqq=" + alloy.portal.getVfWebQQ(),
onSuccess: function() {
typeof cface_delete_result !== "undefined" && b.notifyObservers(f, "SendDeleteCustomFaceSuccess", a.callback ||
function() { })
}
})
};
this.sendGetGroupCustomFaceKey = function(a) {
this.send(q + "channel/get_gface_sig2", {
context: this,
arguments: a.arguments,
onSuccess: function(c, d) {
c.retcode === 0 ? b.notifyObservers(this, "SendGetGroupCustomFaceKeySuccess", c) : (b.notifyObservers(this, "SendGetGroupCustomFaceKeyError", {
uin: a.to,
retcode: c.retcode,
errmsg: c.errmsg
}), i(c, !d));
i(c, d)
},
onError: function(a) {
i(a)
}
})
};
this.sendGetGroupCustomFaceInfo = function(a) {
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
this.send(q + "channel/send_qun_msg2", {
context: this,
method: "POST",
data: {
r: d.json.stringify(a)
},
onSuccess: function(c, d) {
c.retcode === 0 ? b.notifyObservers(this, "SendGetGroupCustomFaceInfoSuccess", c) : (b.notifyObservers(this, "SendMsgError", {
uin: a.group_uin,
retcode: c.retcode,
errmsg: c.errmsg,
callback: EQQ.RPCService.sendGetGroupCustomFaceInfo,
cbParam: a
}), i(c, !d));
i(c, d)
},
onError: function(a) {
i(a)
}
})
};
this.sendGetOfflinePicUrl = function(a) {
this.send(q + "channel/apply_offline_pic_dl2", {
context: this,
data: a,
onSuccess: function(a, c) {
a.retcode === 0 ? (b.notifyObservers(this, "sendGetOfflinePicUrlSuccess", a), alloy.util.report2m(133173)) : (b.notifyObservers(this, "getSendPicUrlError", a), d.out("[sendGetOfflinePicUrlError] error: "), i(a, !c), alloy.util.report2m(133174));
i(a, c)
},
onError: function(a) {
i(a);
alloy.util.report2m(133174)
}
})
};
this.sendRefuseFile = function(a) {
this.send(q + "channel/refuse_file2", {
context: this,
data: a,
onSuccess: function() { }
})
};
this.sendGetMyAvatarFlag = function(a) {
a = a || {};
a.type = 1;
a.psessionid = EQQ.getPsessionid();
a.clientid = EQQ.RPCService.getClientId();
this.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/query_user_flag", {
context: this,
method: "GET",
data: a,
arguments: {},
onSuccess: function(a) {
a.retcode === 0 ? b.notifyObservers(this, "GetMyAvatarFlagSuccess", a) : b.notifyObservers(this, "GetMyAvatarFlagError", a)
},
onError: function(a) {
b.notifyObservers(this, "GetMyAvatarFlagError", a)
}
})
};
this.sendDeleteMyAvatarFlag = function(a) {
a = a || {};
a.vfwebqq = alloy.portal.getVfWebQQ();
a.type = 1;
a.img_id = 0;
a.psessionid = EQQ.getPsessionid();
a.clientid = EQQ.RPCService.getClientId();
this.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/del_chead", {
context: this,
method: "POST",
data: {
r: d.json.stringify(a)
},
arguments: {},
onSuccess: function(a) {
a.retcode === 0 ? b.notifyObservers(this, "DeleteMyAvatarFlagSuccess", a) : b.notifyObservers(this, "DeleteMyAvatarFlagError", a)
},
onError: function(a) {
b.notifyObservers(this, "DeleteMyAvatarFlagError", a)
}
})
};
this.sendGroupRequestJoin = function(a, c, b, d) {
a = a || {};
this.send(q + "channel/op_group_join_req", {
context: this,
data: a,
arguments: c || {},
onSuccess: b ||
function() { },
onError: d ||
function() { }
})
};
this.sendGetDiscuList = function(a) {
a = {};
a.clientid = EQQ.RPCService.getClientId();
a.psessionid = EQQ.getPsessionid();
a.vfwebqq = alloy.portal.getVfWebQQ();
this.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/get_discu_list", {
context: f,
data: a,
arguments: a,
onSuccess: function(a) {
a.retcode === 0 ? (func(), getDiscuListSuccess()) : d.out("\u83b7\u53d6\u7fa4\u6700\u65b0\u4fe1\u606f\u5931\u8d25")
},
onError: function() {
d.out("\u83b7\u53d6\u7fa4\u6700\u65b0\u4fe1\u606f\u5931\u8d25")
}
})
};
this.sendDiscuMsg = function(a) {
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
this.send(q + "channel/send_discu_msg2", {
context: this,
method: "POST",
data: {
r: d.json.stringify(a)
},
onSuccess: function(c, f) {
c.retcode === 0 ? c.result.error == 3 ? b.notifyObservers(this, "DiscuNotExist", a) : b.notifyObservers(this, "SendDiscuMsgSuccess", c.result) : (d.out("[sendDiscuMsg] error: " + c.retcode + "-" + c.errmsg), b.notifyObservers(this, "SendMsgError", {
uin: EQQ.Model.BuddyList.encodeDid(a.did),
retcode: c.retcode,
errmsg: c.errmsg,
callback: EQQ.RPCService.sendDiscuMsg,
cbParam: a
}), i(c, !f));
i(c, f)
},
onError: function(a) {
i(a)
}
})
};
this.sendGetDiscuSessionSignature = function(a) {
this.send(q + "channel/get_session_sig3", {
context: this,
data: {
did: a.group_uin,
to_uin: a.to_uin
},
arguments: {
group_uin: a.group_uin,
to_uin: a.to_uin
},
onSuccess: function(a, c) {
a.retcode === 0 ? b.notifyObservers(this, "GetDiscuSessionSignatureSuccess", a) : i(a, !c);
i(a, c)
},
onError: function(a) {
i(a)
}
})
};
this.sendDiscuBuddyMsg = function(a) {
a.clientid = c;
a.psessionid = EQQ.getPsessionid();
a.service_type = 1;
this.send(q + "channel/send_sess_msg2", {
context: this,
method: "POST",
data: {
r: d.json.stringify(a)
},
onSuccess: function(c, d) {
c.retcode === 0 ? b.notifyObservers(this, "SendMsgSuccess", c.result) : (b.notifyObservers(this, "SendMsgError", {
uin: a.to,
retcode: c.retcode,
errmsg: c.errmsg,
callback: EQQ.RPCService.sendDiscuBuddyMsg,
cbParam: a
}), i(c, !d));
i(c, d)
},
onError: function(a) {
i(a)
}
})
}
})
})(); (function() {
WebqCore.register("EQQ.Model.BuddyList",
function(d) {
var g = this,
f = d.event,
j, t, b, a, c, p, m, z, q, o, i, r, k, D, B, E, w, x = [],
C = [];
discuListReloadCount = 0;
discuListReloadMax = 1;
var F = new d.Class({
init: function(a) {
this.uin = a.uin;
this.ruin = a.ruin;
this.allow = a.allow;
this.face = a.face;
this.age = a.age;
this.gender = a.gender;
this.vip = a.vip || !1;
this.clientType = a.clientType || "10000";
this.setAvatar(EQQ.getUserAvatar(this.uin));
this.setNick(a.nick || a.ruin || a.uin);
this.setState(a.state || EQQ.hash.onlineStatus.offline);
this.did = a.did || "";
this.chatSession = {};
this.setClassId(a.classId || 0)
},
setClientType: function(a) {
this.clientType = a || "10000"
},
setAvatar: function(a) {
this.avatarUrl = a;
f.notifyObservers(EQQ.Model.BuddyList, "AvatarChange", this)
},
getAvatar: function() {
return EQQ.getUserAvatar(this.uin)
},
setNick: function(a) {
if (!a && this.ruin) a = this.ruin;
this.nick = d.string.toSingleLine(a);
this.htmlNick = d.string.encodeHtmlSimple(this.nick);
this.titleNick = this.nick;
this.updateNames()
},
setMarkName: function(a) {
this.markName = d.string.toSingleLine(a.toString());
this.htmlMarkName = d.string.encodeHtmlSimple(this.markName.toString());
this.titleMarkName = d.string.encodeHtmlAttributeSimple(this.markName.toString());
this.updateNames()
},
updateNames: function() {
this.updateShowName();
this.updateAllName();
f.notifyObservers(EQQ.Model.BuddyList, "UserNameChange", this)
},
updateShowName: function() {
this.showName = (this.markName || this.nick || this.ruin || this.uin) + "";
this.htmlShowName = d.string.encodeHtmlSimple(this.showName.toString());
this.titleShowName = d.string.encodeHtmlAttributeSimple(this.showName.toString())
},
updateAllName: function() {
var a = this.allName = "";
this.markName ? (a = this.markName + "(" + this.nick + ")", this.allName = this.markName + "(" + this.nick + ")") : this.allName = a = this.nick;
this.htmlAllName = d.string.encodeHtmlSimple(this.allName);
this.titleAllName = d.string.encodeHtmlAttributeSimple(a)
},
setClassId: function(a) {
this.classId = a
},
setSignature: function(a) {
if (a != void 0) this.signature = a,
this.htmlSignature = d.string.encodeHtmlSimple(a),
this.titleSignature = d.string.encodeHtmlAttributeSimple(a);
f.notifyObservers(EQQ.Model.BuddyList, "UserSignatureChange", this)
},
getSignature: function() {
this.signature != void 0 ? this.setSignature() : alloy.rpcService.sendGetSignature(this.uin)
},
setQQLevel: function(a) {
if (a != void 0) this.level = a;
f.notifyObservers(EQQ.Model.BuddyList, "UserQQLevelChange", this)
},
getQQLevel: function() {
this.level != void 0 ? this.setQQLevel() : alloy.rpcService.sendGetQQLevel(this.uin)
},
setState: function(a) {
this.state = a
},
getState: function() {
return this.state
},
setFace: function(a) {
this.face = a
},
setGender: function(a) {
this.gender = a
},
setAllow: function(a) {
this.allow = a
},
setUsercard: function(a, e) {
this.usercard = this.usercard || {};
this.usercard[a] = {
title: e,
htmlAttribute: d.string.encodeHtmlAttributeSimple(e),
html: d.string.encodeHtmlSimple(e)
};
f.notifyObservers(EQQ.Model.BuddyList, "UserCardChange", this.usercard)
},
getUsercard: function(a) {
this.usercard = this.usercard || {};
return this.usercard[a]
}
}),
u = new d.Class({
init: function(a) {
this.gid = a.gid;
this.code = a.code;
this.mask = String(a.mask);
this.preMask = String(this.mask);
this.setName(a.name);
this.setMarkName(a.markName);
this.setType(a.type);
this.hasManageAuthority = this.isLoadInfo = !1;
this.uin2members = {};
this.level = 0
},
setMask: function(a) {
this.preMask = String(this.mask);
this.mask = String(a);
f.notifyObservers(EQQ.Model.BuddyList, "SingleGroupMaskChange", this)
},
setName: function(a) {
this.name = d.string.toSingleLine(a);
this.htmlName = d.string.encodeHtmlSimple(a);
this.titleName = d.string.encodeHtmlAttributeSimple(a);
this.updateNames()
},
setMarkName: function(a) {
if (typeof a == "undefined" || a == "") return !1;
this.markName = d.string.toSingleLine(a);
this.htmlMarkName = d.string.encodeHtmlSimple(a);
this.titleMarkName = d.string.encodeHtmlAttributeSimple(a);
this.updateNames()
},
updateNames: function() {
this.updateShowName();
this.updateAllName();
f.notifyObservers(EQQ.Model.BuddyList, "GroupNameChange", this)
},
updateShowName: function() {
this.showName = this.markName || this.name || String(this.code);
this.htmlShowName = d.string.encodeHtmlSimple(this.showName);
this.titleShowName = d.string.encodeHtmlAttributeSimple(this.showName)
},
updateAllName: function() {
var a = "";
this.allName = "";
this.markName ? (a = this.markName + "(" + this.name + ")", this.allName = this.markName + "(" + this.name + ")") : (a = this.name, this.allName = this.name + "<" + this.code + ">");
this.htmlAllName = d.string.encodeHtmlSimple(this.allName);
this.titleAllName = d.string.encodeHtmlAttributeSimple(a)
},
type2text: {
commonGroup: "\u666e\u901a\u7fa4",
seniorGroup: "\u9ad8\u7ea7\u7fa4",
superGroup: "\u8d85\u7ea7\u7fa4",
expireSuperGroup: "\u8fc7\u671f\u7684\u8d85\u7ea7\u7fa4",
enterpriseGroup: "\u4f01\u4e1a\u7fa4",
forbiddenGroup: "\u7981\u7528"
},
setType: function(a) {
this.type = a;
this.typeText = this.type2text[a] || "\u5176\u4ed6\u7c7b\u578b\u7fa4";
this.htmlTypeText = d.string.encodeHtmlSimple(this.typeText);
this.titleTypeText = d.string.encodeHtmlAttributeSimple(this.typeText)
},
setLevel: function(a) {
this.level = a || 0
},
setAnnouncement: function(a) {
if (typeof a != "undefined") this.announcement = a,
this.htmlAnnouncement = d.string.encodeHtmlSimple(a),
this.titleAnnouncement = d.string.encodeHtmlAttributeSimple(a),
f.notifyObservers(g, "GroupAnnouncementChange", this)
},
upAnnouncement: function(a) {
if (typeof a != "undefined") this.announcement = a,
this.htmlAnnouncement = d.string.encodeHtmlSimple(a),
this.titleAnnouncement = d.string.encodeHtmlAttributeSimple(a),
f.notifyObservers(g, "GroupAnnouncementChange", this)
},
updateMembers: function(a, e) {
if (a) this.members = a,
this.onlineMemberCount = e,
this.uin2members[a.uin] = a;
f.notifyObservers(g, "GroupMembersChange", this)
},
updateMemberState: function(a) {
for (var e = a.stats,
a = this.members,
c = 0,
b = {},
d = [], c = 0; c < e.length; c++) b[e[c].uin] = e[c].stat;
e = a.length;
for (c = 0; c < e; c++) {
var h = a[c].info,
n = h.uin;
b[n] = b[n] || 20;
if (h.gstate != b[n] && n != j) d.push({
uin: n,
stat: b[n],
oldStat: h.gstate
}),
h.gstate = b[n]
}
f.notifyObservers(g, "GroupMemberStateChange", {
t: this,
arg: d
})
},
updateMemberCard: function(a) {
var e = this.members,
c = !1,
b;
for (b in e) {
var n = e[b];
if (n.uin == a.uin) {
a.card == "" ? (this.members[b].usercard = d.string.encodeHtmlSimple(n.nick), this.members[b].info.setUsercard(this.code, n.nick)) : (this.members[b].usercard = d.string.encodeHtmlSimple(a.card), this.members[b].info.setUsercard(this.code, a.card));
c = !0;
break
}
}
c && f.notifyObservers(g, "GroupMemberCardChange", {
gid: this.gid,
gcode: this.code,
uin: a.uin
})
},
getMenberByUin: function(a) {
return this.uin2members[a]
}
}),
s = {
onSelfInfoReady: function(a) {
if (g.getSelf()) {
var e = g.getSelf();
e.setNick(a.nick);
e.setFace(a.face);
e.setGender(a.gender);
e.setAllow(a.allow);
e.vip = a.vip;
e.age = a.age
} else g.setSelf(a)
},
onSelfInfoChanged: function(a) {
var e = g.getSelf();
e.setNick(a.nick);
e.setGender(a.gender)
},
onGetUserInfoSuccess: function(a) {
var e = a.result;
if (e) {
var c = g.getUserByUin(a.arguments.uin);
c ? (c.setNick(e.nick), c.setFace(e.face), c.setGender(e.gender), c.setAllow(e.allow)) : (c = g.createUser({
uin: a.arguments.uin,
allow: e.allow,
nick: e.nick,
face: e.face,
ruin: e.ruin,
gender: e.gender
}), g.addStranger(c));
f.notifyObservers(g, "GetUserInfoSuccess", c)
}
},
onGetUserInfoError: function() { },
onGetBuddySignatureSuccess: function(a) {
var e = a.result,
c;
c = e.length == 0 ? "" : e[0].lnick;
e.length != 0 && e[0].uin == alloy.portal.getUin() && g.setSelfSignature(e[0].lnick); (a = g.getUserByUin(a.arguments.uin)) && a.setSignature(c);
f.notifyObservers(g, "GetBuddySignatureSuccess", a)
},
onGetMultiBuddySignatureSuccess: function(a) {
var a = a.result,
e;
for (e in a) {
var c = g.getUserByUin(a[e].tuin);
c && c.setSignature(a[e].lnick)
}
},
onChangeGroupMaskSuccess: function(a) {
a.uin == g.getSelfUin() ? (w = a.mask, f.notifyObservers(g, "GroupMaskChange", w)) : g.getGroupByGid(a.uin).setMask(a.mask)
},
onGetQQLevelSuccess: function(a) {
var e = g.getUserByUin(a.arguments.uin);
e && e.setQQLevel(a.result)
},
onGetGroupMaskConfigSuccess: function(a) {
for (var e in a) {
var c = parseInt(a[e]);
e === "global" && (w = c, f.notifyObservers(g, "GroupMaskChange", w))
}
},
onGetOnlineBuddiesSuccess: function(a) {
g.setAllBuddyState(a)
},
onGetSessionSignatureSuccess: function(a) {
g.setGroupBuddySessionSignature(a)
},
onBuddyStatusChange: function(a) {
g.setState(a.uin, a.status, a.client_type)
},
onBuddyListChange: function(a) {
if (a.removed_friends && a.removed_friends.length > 0) for (var e in a.removed_friends) {
var c = a.removed_friends[e];
g.setState(c.uin, EQQ.hash.onlineStatus.offline, null);
if (c = g.removeBuddy(c.uin)) {
var b = EQQ.hash.onlineStatus.offline,
n = g.getClassById(c.classId);
d.array.remove(n.list[b], c);
n.count -= 1;
n.onlineCount = n.count - n.list[b].length;
f.notifyObservers(g, "RemoveBuddy", c)
}
}
},
onGetSelfSignatureSuccess: function(a) {
g.setSelfSignature(a)
},
onGetBuddyListSuccess: function(a) {
for (var e = a.categories || [], c = !1, b = 0; b < e.length; b++) e[b].index == 0 && (c = !0);
c || e.unshift({
index: 0,
name: "\u6211\u7684\u597d\u53cb"
});
g.isBuddyList = !0;
g.setBuddyClass(a);
g.setBuddyList(a);
EQQ.RPCService.sendGetOnlineBuddies()
},
GetBuddyListError: function() {
f.notifyObservers(EQQ, "LoginFailure", {
text: "\u62c9\u53d6\u5931\u8d25"
})
},
onGetGroupListSuccess: function(a) {
g.isGroupList = !0;
for (var e = a.gmasklist || [], c = 0, b = 0; b < e.length; b++) {
var d = e[b];
if (d.gid === 1E3) c = d.mask;
else for (var h = 0; h < a.gnamelist.length; h++) if (a.gnamelist[h].gid === d.gid) {
a.gnamelist[h].mask = d.mask;
break
}
}
g.setGroupList(a);
g.setGroupMask(c)
},
GetGroupListError: function() {
f.notifyObservers(EQQ, "LoginFailure", {
text: "\u62c9\u53d6\u5931\u8d25"
})
},
onGetGroupInfoSuccess: function(a) {
g.setGroupInfo(a)
},
onGetRecentListSuccess: function(a) {
g.setRecentList(a)
},
onPollSuccess: function(a) {
if (a) for (var e = 0; e < a.length; e++) {
var c = a[e];
switch (c.poll_type) {
case "buddies_status_change":
s.onBuddyStatusChange(c.value);
break;
case "buddylist_change":
s.onBuddyListChange(c.value)
}
}
},
onLoginSuccess: function(a) {
var e = g.getSelfUin();
g.setState(e, a.status, "QQWeb");
EQQ.index = a.index;
EQQ.port = a.port
},
onAddANewBuddy: function(a) {
var e = a.gid,
c = a.newstate,
b = a.markname;
alloy.rpcService.sendGetUserInfo(a.tuin, null, null,
function(a) {
if (a.retcode === 0) {
var l = a.result,
a = a.arguments.uin,
d = g.getUserByUin(a);
d ? (d.setNick(l.nick), d.setFace(l.face), d.setGender(l.gender), d.setClassId(e), g.addBuddy(d)) : (d = g.createUser({
uin: a,
allow: l.allow,
nick: l.nick,
face: l.face,
gender: l.gender,
ruin: l.ruin,
classId: e
}), g.addBuddy(d), EQQ.Model.BuddyList.getClassById(e).count += 1, f.notifyObservers(EQQ.Model.BuddyList, "AddBuddy", {
user: d,
newstate: c,
markname: b
}))
}
})
},
onAddNewGroupToModel: function(a) {
var e = g.getGroupByCode(a);
if (!d.isUndefined(e) && e) return !0;
alloy.rpcService.sendGetGroupPublicInfo(a, a, EQQ.Model.BuddyList.onGetGroupPublicSuccess,
function() { })
}
};
this.init = function() {
t = [];
b = {};
a = [];
c = {};
p = [];
m = {};
z = [];
q = {};
o = [];
i = {};
m = {};
r = [];
k = [];
B = {};
E = {};
x = [];
C = [];
discuListReloadCount = 0;
f.addObserver(alloy.portal, "SelfInfoChanged", s.onSelfInfoChanged);
f.addObserver(alloy.rpcService, "GetUserInfoSuccess", s.onGetUserInfoSuccess);
f.addObserver(alloy.rpcService, "GetUserInfoError", s.onGetUserInfoError);
f.addObserver(alloy.rpcService, "GetGroupInfoSuccess", s.onGetGroupInfoSuccess);
f.addObserver(alloy.rpcService, "GetQQLevelSuccess", s.onGetQQLevelSuccess);
f.addObserver(alloy.rpcService, "GetBuddySignatureSuccess", s.onGetBuddySignatureSuccess);
f.addObserver(alloy.rpcService, "GetMultiBuddySignatureSuccess", s.onGetMultiBuddySignatureSuccess);
f.addObserver(EQQ, "LoginSuccess", s.onLoginSuccess);
f.addObserver(EQQ.RPCService, "GetOnlineBuddiesSuccess", s.onGetOnlineBuddiesSuccess);
f.addObserver(EQQ.RPCService, "GetSelfSignatureSuccess", s.onGetSelfSignatureSuccess);
f.addObserver(EQQ.RPCService, "GetSessionSignatureSuccess", s.onGetSessionSignatureSuccess);
f.addObserver(EQQ.RPCService, "PollSuccess", s.onPollSuccess);
f.addObserver(g, "AddANewBuddy", s.onAddANewBuddy);
f.addObserver(g, "BuddyStatusChange", s.onBuddyStatusChange);
f.addObserver(alloy.portal, "selfInfoReady", s.onSelfInfoReady);
f.addObserver(g, "AddNewGroupToModel", s.onAddNewGroupToModel);
f.addObserver(g, "ReloadGroupInfo", this.onReloadGroupInfo);
f.addObserver(EQQ.RPCService, "GetDiscuSessionSignatureSuccess", Q);
f.addObserver(EQQ.RPCService, "DiscuNotExist", O)
};
this.reset = function() {
j = 0;
t = [];
b = {};
a = [];
c = {};
p = [];
m = {};
z = [];
q = {};
o = [];
i = {};
m = {};
r = [];
k = [];
B = {};
E = {};
x = [];
C = [];
discuListReloadCount = 0;
this.setSelf({
uin: alloy.portal.getUin()
})
};
this.sendGetBuddyList = function(a) {
a = a || {};
a.vfwebqq = EQQ.vfwebqq;
return EQQ.Extend.cgi_module(EQQ.BASE_CONST.API_SERVER_URL + "get_user_friends2", {
context: this,
method: "POST",
param: a,
callback: function(a, e) {
a.retcode === 0 ? (s.onGetBuddyListSuccess(a.result), e(a)) : s.GetBuddyListError(a);
alloy.util.report2h("eqqGetData", "end_BuddyList", ["ok"][a.retcode] || a.retcode);
alloy.portal.speedTest.sRTS(14, "end", new Date, !0)
},
errback: function(a) {
s.GetBuddyListError(a);
alloy.util.report2h("eqqGetData", "end_BuddyList", "error")
},
timeback: function(a) {
s.GetBuddyListError(a);
qqweb.util.report2h("eqqGetData", "end_BuddyList", "timeout")
}
})
};
this.sendGetGroupList = function(a) {
a = a || {};
a.vfwebqq = EQQ.vfwebqq;
return EQQ.Extend.cgi_module(EQQ.BASE_CONST.API_SERVER_URL + "get_group_name_list_mask2", {
context: this,
method: "POST",
param: a,
callback: function(a, e) {
a.retcode === 0 ? (s.onGetGroupListSuccess(a.result), e(a)) : s.GetGroupListError(a);
alloy.util.report2h("eqqGetData", "end_GroupList", ["ok"][a.retcode] || a.retcode);
alloy.portal.speedTest.sRTS(15, "end", new Date, !0)
},
errback: function(a) {
s.GetGroupListError(a);
alloy.util.report2h("eqqGetData", "end_GroupList", "error")
},
timeback: function(a) {
s.GetGroupListError(a);
qqweb.util.report2h("eqqGetData", "end_GroupList", "timeout")
}
})
};
this.sendGetRecentList = function(a) {
a = a || {};
a.vfwebqq = EQQ.vfwebqq;
a.clientid = EQQ.RPCService.getClientId();
a.psessionid = EQQ.getPsessionid();
return EQQ.Extend.cgi_module_d(EQQ.BASE_CONST.CONN_SERVER_DOMAIN2 + "channel/get_recent_list2", {
context: this,
method: "POST",
data: {
r: d.json.stringify(a)
},
callback: function(a) {
if (a.retcode === 0) s.onGetRecentListSuccess(a.result)
},
errback: function() { }
})
};
this.getUserSignature = function(a) {
(a = this.getUserByUin(a)) && a.getSignature()
};
this.getMultiUserSignture = function(a) {
var e = [],
c;
for (c in a) {
var b = this.getUserByUin(a[c]);
typeof b.signature === "undefined" ? e.push(a[c]) : b.setSignature()
}
e.length && alloy.rpcService.sendGetMultiSignature("[" + e.toString() + "]")
};
this.sendGetQQLevel = function(a) {
(a = this.getUserByUin(a)) && a.getQQLevel()
};
this.setSelf = function(a) {
this.createUser({
uin: a.uin || null,
allow: a.allow || null,
nick: a.nick || null,
face: a.face || 0,
age: a.age || null,
gender: a.gender || null,
vip: a.vip || null
});
this.setSelfUin(a.uin);
var e = EQQ.getDefaultState();
this.setState(a.uin, e, "QQWeb");
f.notifyObservers(this, "SelfInfoChange", this.getSelf())
};
this.getSelf = function() {
return this.getUserByUin(this.getSelfUin())
};
this.getSelfState = function() {
var a = this.getSelf();
if (a) return a.state
};
this.setSelfUin = function(a) {
j = a || 0
};
this.getSelfUin = function() {
return j
};
this.setSelfSignature = function(a) {
this.getUserByUin(this.getSelfUin()).setSignature(a);
f.notifyObservers(this, "SelfSignatureChange", this.getSelf())
};
this.sendChangeStatus = function(a) {
EQQ.RPCService.sendChangeStatus({
newstatus: a
})
};
this.sendChangeGroupMask = function(a) {
var e = {
cAll: a.type === "global" ? a.mask : w,
idx: EQQ.index,
port: EQQ.port
},
c;
for (c in k) {
var b = k[c];
e[b.gid] = a.type === "single" && a.uin === b.gid ? a.mask : b.mask
}
qqweb.rpcService.sendMessageFilterConfig({
onSuccess: function() {
s.onChangeGroupMaskSuccess({
uin: a.uin,
mask: a.mask
})
},
context: this,
data: {
retype: 1,
app: "EQQ",
itemlist: '{"groupmask":' + d.json.stringify(e) + "}"
}
})
};
this.setBuddyClass = function(a) {
t = a.categories;
for (a = 0; a < t.length; a++) {
var e = t[a];
e.caculateName = e.name;
e.htmlName = d.string.encodeHtmlSimple(e.name);
e.titleName = d.string.encodeHtmlAttributeSimple(e.name);
e.count = 0;
e.onlineCount = 0;
e.list = {
callme: [],
online: [],
away: [],
busy: [],
silent: [],
offline: []
};
b[e.index] = e
}
f.notifyObservers(this, "BuddyClassChange", this.getClassList())
};
this.getClassList = function() {
return t
};
this.setAllBuddyState = function(a) {
r = [];
for (var e = 0; e < a.length; e++) {
var c = a[e];
this.setState(c.uin, c.status, c.client_type)
}
f.notifyObservers(this, "AllOnlineBuddyReady", this.getOnlineBuddy());
f.notifyObservers(this, "AllClassOnlineBuddyReady", this.getClassList())
};
this.setState = function(a, e, c) {
var b = this.getUserByUin(a);
if (b) {
var d = b.state;
b.setState(e);
b.clientType = c;
if (a == this.getSelfUin()) f.notifyObservers(this, "SelfStateChange", this.getSelfState());
else if (b.classId !== EQQ.hash.userClassType.stranger && b.classId !== EQQ.hash.userClassType.balck) {
var h = this.getClassByUin(b.uin);
h.list[b.state].unshift(b);
for (var b = h.list[d], n = 0; n < b.length; n++) b[n].uin == a && b.splice(n, 1);
b = EQQ.hash.onlineStatus.offline;
if (d == b || e == b) {
h.onlineCount = h.count - h.list[b].length;
if (e == b) for (e = 0; e < r.length; e++) r[e].uin == a && r.splice(e, 1);
else r.push({
uin: a,
state: e,
clientType: c
});
f.notifyObservers(this, "OnlineBuddyChange", a)
}
f.notifyObservers(this, "BuddyStateChange", a)
}
}
};
this.getState = function(a) {
return (a = this.getUserByUin(a)) ? a.getState() : null
};
this.getOnlineBuddy = function() {
return r
};
this.addUser = function(e) {
c[e.uin] || (c[e.uin] = e, a.push(e));
return e
};
this.addBuddy = function(a) {
if (!m[a.uin]) a.type = "buddy",
m[a.uin] = a,
p.push(a);
return a
};
this.removeBuddy = function(a) {
var e = null;
m[a] && (e = m[a], m[a] = null, delete m[a], d.array.remove(p, e));
return e
};
this.createUser = function(a) {
a = new F(a);
this.addUser(a);
return a
};
this.addStranger = function(a) {
q[a.uin] || (q[a.uin] = a, z.push(a));
return a
};
this.addBlack = function(a) {
if (!i[a.uin]) a.type = "black",
i[a.uin] = a,
o.push(a);
return a
};
this.getStrangerList = function() {
return z
};
this.setBuddyList = function(a) {
p = [];
for (var e = a.friends,
c = this.getSelfUin(), b = 0; b < e.length; b++) if (e[b].uin != c) {
var d = a.info[b],
d = this.createUser({
uin: d.uin,
allow: d.allow,
nick: d.nick,
face: d.face,
age: d.age,
gender: d.gender,
vip: d.vip,
ruin: d.ruin,
classId: this.getClassById(e[b].categories) ? e[b].categories : 0
});
this.addBuddy(d)
}
if (a = a.marknames) for (b = 0; b < a.length; b++) (d = this.getUserByUin(a[b].uin)) && d.setMarkName(a[b].markname);
for (b = 0; b < p.length; b++) p[b].uin != this.getSelfUin() && (a = this.getClassById(p[b].classId), a.list[p[b].state] || (a.list[p[b].state] = []), a.list[p[b].state].push(p[b]), a.count++);
f.notifyObservers(this, "BuddyListChange", this.getBuddyList())
};
this.getBuddyList = function() {
return p
};
this.addNewBuddy = function() { };
this.searchBuddy = function(a, e) {
var a = String(a).toLowerCase(),
c = [],
b = [];
if (a.length > 0) for (var d = 0; d < p.length; d++) {
var h = p[d];
if (String(h.nick).toLowerCase().indexOf(a) > -1 && String(h.nick) != "undefined" || String(h.markName).toLowerCase().indexOf(a) > -1 && String(h.markName) != "undefined") String(h.nick).toLowerCase() == a || String(h.markName).toLowerCase() == a ? b.push(h) : c.push(h);
if (c.length + b.length >= e) break
}
Array.prototype.push.apply(b, c);
return b
};
this.isUser = function(a) {
return Boolean(c[a])
};
this.isBuddy = function(a) {
return m[a]
};
this.getBuddyByUin = function(a) {
return m[a]
};
this.isStranger = function(a) {
return q[a]
};
this.isBlack = function(a) {
return i[a]
};
this.getUserByUin = function(a) {
if (c) return c[a]
};
this.getClassIdByUin = function(a) {
return c[a].classId
};
this.getClassByUin = function(a) {
return this.getClassById(this.getClassIdByUin(a))
};
this.getClassById = function(a) {
return b[a]
};
this.addGroup = function(a) {
E[a.code] || (E[a.code] = B[a.gid] = a, k.push(a));
return a
};
this.removeGroup = function(a) {
if (!d.isUndefined(E[a])) {
var e = E[a].gid;
delete E[a];
delete B[e];
for (var c in k) k[c].code == a && delete k[c]
}
};
this.onGetGroupPublicSuccess = function(a) {
a.retcode != 0 && d.error("onGetGroupPublic error:" + a.retcode);
var a = a.result.ginfo,
e = "commonGroup";
a.flag & 16 ? e = "seniorGroup" : a.flag & 33554432 ? e = "superGroup" : a.flag & 2 ? e = "forbiddenGroup" : a.flag & 256 ? e = "enterpriseGroup" : a.flag & 67108864 && (e = "expireSuperGroup");
a = new u({
gid: a.gid,
code: a.code,
type: e,
name: a.name,
markName: a.name,
mask: "0"
});
g.addGroup(a);
f.notifyObservers(g, "AddNewGroupToList", a)
};
this.setGroupList = function(a) {
var e = a.gnamelist,
a = a.gmarklist || [];
k = [];
for (var c = 0; c < e.length; c++) {
var b = e[c],
d = "commonGroup";
b.flag & 16 ? d = "seniorGroup" : b.flag & 33554432 ? d = "superGroup" : b.flag & 2 ? d = "forbiddenGroup" : b.flag & 256 ? d = "enterpriseGroup" : b.flag & 67108864 && (d = "expireSuperGroup");
var h;
a:
{
h = void 0;
for (h in a) if (a[h].uin == b.gid) {
h = a[h].markname;
break a
}
h = ""
}
this.addGroup(new u({
gid: b.gid,
code: b.code,
type: d,
name: b.name,
markName: h,
mask: b.mask || "0"
}))
}
f.notifyObservers(this, "GroupListChange", this.getGroupList())
};
this.setGroupMask = function(a) {
w = a;
f.notifyObservers(this, "GroupMaskChange", w)
};
this.getGroupMask = function() {
return w
};
this.getGroupList = function() {
return k
};
this.setRecentList = function(a) {
for (var e in a) if (a[e].type == 2) a[e].uin = this.encodeDid(a[e].uin);
D = a;
f.notifyObservers(this, "RecentListChange", this.getRecentList())
};
this.getRecentList = function() {
return D
};
this.setGroupInfo = function(a) {
for (var e = a.ginfo,
c = a.minfo,
b = a.stats,
n = {},
h = b.length; h--; ) n[b[h].uin] = b[h];
a = a.cards || [];
b = this.getGroupByCode(e.code);
b.setLevel(e.level);
h = this.getSelfUin();
b.setAnnouncement(e.memo || " ");
for (var g = e.members,
y = [], m = !1, k = 0, i = 0; i < g.length; i++) {
var t = "common";
g[i].mflag & 1 ? (t = "manager", g[i].muin === h && (m = !0)) : g[i].mflag & 2 && (t = "manager2", g[i].muin === h && (m = !0));
g[i].muin == e.owner && (t = "master", g[i].muin === h && (m = !0));
var j = g[i].muin,
A = (c[i].nick || c[i].ruin || "") + "",
p = c[i].nick;
p == "" && (p = (c[i].ruin || j) + "");
var H = n[j] && n[j].stat || 20,
I = n[j] && n[j].client_type || 1E4; (H != 20 || j === h) && k++;
for (var q = A,
z = A,
o = 0; o < a.length; o++) if (a[o].muin == j) {
p = a[o].card;
break
}
if (o = this.getUserByUin(g[i].muin)) {
var r = alloy.util.code2state(H);
if (o.uin != h) o.setState(r),
o.gstate = H;
o.type === "groupBuddy" || o.uin === h ? (H = p ? p : o.showName, o.setUsercard(e.code, H)) : p = p === A ? o.showName : p;
o.setClientType(I)
} else o = this.createUser({
uin: j,
nick: A,
clientType: I,
state: alloy.util.code2state(H)
}),
o.type = "groupBuddy",
o.setClassId(EQQ.hash.userClassType.stranger),
o.group = b,
o.gstate = H;
H = p ? p : o.showName;
o.setUsercard(e.code, H);
y[i] = {
uin: j,
flag: t,
gcode: e.code,
nick: A,
htmlNick: d.string.encodeHtmlSimple(A),
titleNick: A,
showName: q,
htmlShowName: d.string.encodeHtmlSimple(q),
titleShowName: d.string.encodeHtmlAttributeSimple(q),
allName: z,
htmlAllName: d.string.encodeHtmlSimple(z),
titleAllName: z,
usercard: d.string.encodeHtmlSimple(p)
};
y[i].info = o;
b.uin2members[j] = y[i]
}
b.isLoadInfo = !0;
b.hasManageAuthority = m;
b.updateMembers(y, k);
f.notifyObservers(this, "GroupInfoChange", b)
};
this.setMemberState = function(a) {
this.getGroupByCode(a.gcode).updateMemberState(a)
};
this.sendGetGroupInfo = function(a) {
a.vfwebqq = alloy.portal.getVfWebQQ();
alloy.rpcService.send(alloy.CONST.API_SERVER_URL + "get_group_info_ext2", {
context: g,
data: a,
arguments: a,
onSuccess: function(a) {
a.retcode === 0 ? g.setGroupInfo(a.result) : d.out("\u83b7\u53d6\u7fa4\u6700\u65b0\u4fe1\u606f\u5931\u8d25")
},
onError: function() {
d.out("\u83b7\u53d6\u7fa4\u6700\u65b0\u4fe1\u606f\u5931\u8d25")
}
})
};
this.sendGetMultiGroupInfo = function(a, e) {
a.vfwebqq = alloy.portal.getVfWebQQ();
alloy.rpcService.send(alloy.CONST.API_SERVER_URL + "get_group_info", {
context: g,
data: a,
arguments: a,
onSuccess: function(a) {
a.retcode === 0 ? e ? e(a) : f.notifyObservers(g, "GetMultiGroupInfoSuccess", a) : d.out("\u83b7\u53d6\u7fa4\u4fe1\u606f\u5931\u8d25")
},
onError: function() {
d.out("\u83b7\u53d6\u7fa4\u4fe1\u606f\u5931\u8d25")
}
})
};
this.sendGetGroupNewestState = function(a) {
a.vfwebqq = alloy.portal.getVfWebQQ();
alloy.rpcService.send(alloy.CONST.API_SERVER_URL + "get_group_member_stat2", {
context: g,
data: a,
arguments: a,
onSuccess: function(a) {
if (a.retcode === 0) g.onGetGroupNewestStateSuc(a.result);
else d.out("\u83b7\u53d6\u7fa4\u6700\u65b0\u4fe1\u606f\u5931\u8d25")
},
onError: function() {
d.out("\u83b7\u53d6\u7fa4\u6700\u65b0\u4fe1\u606f\u5931\u8d25")
}
})
};
this.onGetGroupNewestStateSuc = function(a) {
this.setMemberState(a)
};
this.getGroupByCode = function(a) {
return E[a]
};
this.getGroupByGid = function(a) {
return B[a]
};
this.getGroupInfo = function(a) {
var e = this.getGroupByCode(a);
if (e.isLoadInfo) return e.updateMembers(),
e.upAnnouncement(e.announcement),
f.notifyObservers(this, "GroupInfoChange", e),
e;
else this.sendGetGroupInfo({
gcode: a
})
};
var K = function(a) {
var e = a.arguments.gcode;
if (d.isArray(e)) b = g.getGroupByCode(e),
f = a.result ? a.result.memo || " " : " ",
b.setAnnouncement(f);
else for (var c in e) {
var b = e[c],
b = g.getGroupByCode(b),
f = a.result ? a.result.memo || " " : " ";
b.setAnnouncement(f)
}
};
this.getGroupAnnouncement = function(a) {
var e = g.getGroupByCode(a);
if (typeof e.announcement == "undefined") this.sendGetMultiGroupInfo({
gcode: "[" + a + "]",
retainKey: "memo"
},
K);
else return e
};
var G = function(a) {
if (a.result) for (var e in a.result) {
var b = a.result[e];
g.getGroupByCode(b.gcode).setAnnouncement(b.memo || " ")
}
};
this.getMultiGroupAnnounce = function(a) {
var e = [],
b;
for (b in a) typeof g.getGroupByCode(a[b]).announcement == "undefined" && e.push(a[b]);
e.length && this.sendGetMultiGroupInfo({
gcode: "[" + e.toString() + "]",
retainKey: "memo,gcode"
},
G)
};
this.onReloadGroupInfo = function(a) {
var e = this.getGroupByCode(a);
if (d.isUndefined(e) || !e) return !1;
this.sendGetGroupInfo({
gcode: a
})
};
this.sendGetSessionSignature = function(a) {
EQQ.RPCService.sendGetSessionSignature(a)
};
this.setGroupBuddySessionSignature = function(a) {
var e = this.getUserByUin(a.uin),
b = a.id;
if (a.type === 0) e.chatSession[b] = a.value,
f.notifyObservers(this, "GroupBuddySessionSignatureChange", e.uin)
};
this.sendGetUserInfo = function(a) {
alloy.rpcService.sendGetUserInfo_with_code(a)
};
this.isGroupPrompt = function(a) {
a = this.getGroupByGid(a);
w = parseInt(w);
switch (w) {
case 0:
switch (parseInt(a.mask)) {
case 0:
return !0;
case 1:
return !1;
case 2:
return !1
}
break;
case 1:
return !0;
case 2:
return !1;
case 3:
return !1
}
};
var e = new d.Class({
init: function(a) {
this.did = a.did;
this.mask = String(a.mask || 0);
this.preMask = String(this.mask);
this.setName(a.name);
this.isLoadInfo = !1;
this.members = [];
this.owner = "";
this.notSetName = !1;
this.hadModified = !0
},
setName: function(a) {
this.notSetName = d.isUndefined(a) || a == "" ? !0 : !1;
this.name = a = a || "\u666e\u901a\u8ba8\u8bba\u7ec4";
this.htmlName = d.string.encodeHtmlSimple(a.toString());
this.titleName = d.string.encodeHtmlAttributeSimple(a.toString());
this.setTopic(a)
},
setTopic: function(a) {
if (d.isUndefined(a)) return !1;
this.topic = a;
this.htmlTopic = d.string.encodeHtmlSimple(a);
this.titleTopic = d.string.encodeHtmlAttributeSimple(a)
},
addMember: function(a) {
this.members.push(a);
var e = g.getUserByUin(a.uin);
if (e) {
if (e.type == "stranger") e.setNick(a.nick || a.uin.toString()),
e.did = this.did
} else e = g.createUser({
uin: a.uin,
allow: !0,
nick: a.nick || a.uin.toString(),
face: "",
gender: "",
state: a.status,
ruin: a.ruin,
did: this.did
}),
e.type = "groupBuddy",
g.addStranger(e)
},
setMembers: function(a) {
this.members = a;
for (var e in a) {
var b = a[e],
c = g.getUserByUin(b.uin);
if (c) {
if (c.type == "stranger") c.setNick(b.nick || b.uin.toString()),
c.did = this.did
} else c = g.createUser({
uin: b.uin,
allow: !0,
nick: b.nick || b.uin.toString(),
face: "",
gender: "",
state: b.status,
ruin: b.ruin,
did: this.did
}),
c.type = "groupBuddy",
g.addStranger(c)
}
},
getMemberList: function() { },
modifyMemberStatus: function(a) {
var e = [],
b = [],
c;
for (c in a) {
var f = a[c];
b[f.uin] = f
}
a = alloy.portal.getPortalSelf("uin");
for (c in this.members) {
var f = this.members[c],
h = b[f.uin];
if (!d.isUndefined(h) && h.status != f.status) h.old_status = f.status,
f.status = a == f.uin && h.status == "offline" ? "hidden" : h.status,
e.push(h);
if (d.isUndefined(h) && f.status != "offline") h = {
uin: f.uin,
old_status: f.status,
status: a == f.uin ? "hidden" : "offline",
client_type: f.client_type
},
f.status = "offline",
e.push(h)
}
return e
},
setOwner: function(a) {
this.owner = a
},
setIsLoadInfo: function(a) {
this.isLoadInfo = a || !1
},
setMask: function(a) {
this.preMask = String(this.mask);
this.mask = String(a);
f.notifyObservers(EQQ.Model.BuddyList, "SingleDiscuMaskChange", this)
},
setHadModified: function(a) {
this.hadModified = a
},
getMemberByUin: function(a) {
var e = this.members,
b;
for (b in e) if (e[b].uin == a) return e[b];
return null
}
});
this.encodeDid = function(a) {
return "d" + a
};
this.decodeDid = function(a) {
return a.substring(1)
};
this.addDiscu = function(a) {
C[a.did] || (a = new e(a), C[a.did] = a, x.push(a))
};
this.removeDiscu = function(a) {
if (C[a.did]) {
delete C[a.did];
for (var e in x) if (x[e].did == a.did) {
x.splice(e, 1);
break
}
}
};
this.getDiscuById = function(a) {
return C[a]
};
this.getDiscuList = function() {
return x
};
this.sendGetDiscuList = function(a) {
var e = {};
e.clientid = EQQ.RPCService.getClientId();
e.psessionid = EQQ.getPsessionid();
e.vfwebqq = alloy.portal.getVfWebQQ();
EQQ.RPCService.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/get_discu_list_new2", {
context: g,
data: e,
arguments: e,
onSuccess: function(e) {
d.isUndefined(a) || a();
if (e.retcode === 0) {
var b = e.result,
e = b.dnamelist,
c = b.dmasklist,
b = [],
h;
for (h in c) {
var y = c[h];
b[y.did] = y.mask
}
for (h in e) c = e[h],
c.mask = b[c.did] || 0,
c.did = g.encodeDid(c.did),
g.addDiscu(c);
f.notifyObservers(g, "DiscuListChange", g.getDiscuList())
} else n()
},
onError: function() {
n();
d.isUndefined(a) || a()
}
})
};
var n = function() {
d.error("\u83b7\u53d6\u8ba8\u8bba\u7ec4\u5217\u8868\u5931\u8d25");
discuListReloadCount < discuListReloadMax ? (discuListReloadCount++, d.error("\u7b2c" + discuListReloadCount + "\u91cd\u62c9\u8ba8\u8bba\u7ec4\u5217\u8868"), g.sendGetDiscuList()) : f.notifyObservers(EQQ, "GetDiscuListFail", {
text: "\u83b7\u53d6\u8ba8\u8bba\u7ec4\u5217\u8868\u5931\u8d25"
})
};
this.getDiscuInfo = function(a) {
var e = this.getDiscuById(a); !d.isUndefined(e) && e.isLoadInfo ? f.notifyObservers(this, "DiscuInfoChange", e) : y(a)
};
this.refreshDiscuInfo = function(a) {
y(a)
};
var y = function(a) {
var e = {};
e.did = g.decodeDid(a);
e.clientid = EQQ.RPCService.getClientId();
e.psessionid = EQQ.getPsessionid();
e.vfwebqq = alloy.portal.getVfWebQQ();
EQQ.RPCService.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/get_discu_info", {
context: g,
data: e,
arguments: e,
onSuccess: function(a) {
a.retcode === 0 ? a.result.error == 3 ? O(e) : g.sendGetDiscuInfoSuccess(a) : d.error("\u83b7\u53d6\u8ba8\u8bba\u7ec4\u4fe1\u606f\u5931\u8d25")
},
onError: function() {
d.error("\u83b7\u53d6\u8ba8\u8bba\u7ec4\u4fe1\u606f\u5931\u8d25")
}
})
};
this.sendGetDiscuInfoSuccess = function(a) {
var e = this.getDiscuById(g.encodeDid(a.arguments.did)),
b = a.result.mem_info,
c = a.result.mem_status,
d = [],
h;
for (h in c) {
var n = c[h];
d[n.uin] = n.status
}
c = alloy.portal.getPortalSelf("uin");
n = [];
for (h in b) {
var y = b[h],
m = this.getUserByUin(y.uin);
if (m) y.markName = m.markName,
y.htmlMarkName = m.htmlMarkName;
y.status = d[y.uin] || (y.uin == c ? "hidden" : "offline");
y.name = y.nick;
y.htmlName = $S.encodeHtmlSimple(y.nick);
y.titleName = $S.encodeHtmlAttributeSimple(y.nick);
n.push(y)
}
e.setName(a.result.info.discu_name);
e.setMembers(n);
e.setOwner(a.result.info.discu_owner);
e.setIsLoadInfo(!0);
f.notifyObservers(this, "DiscuInfoChange", e)
};
var A, H = function(a, e) {
A = alloy.layout.messagebox('<div style="width:100%; height:100%; background-color:#FFFFFF; line-height:30px;">\t\t\t\t\t\t<div style ="text-align: left; padding-left: 10px;">\t\t\t\t\t\t\t<div>\u4e3a\u4e86\u60a8\u7684\u8d26\u53f7\u5b89\u5168\uff0c\u8bf7\u6267\u884c\u8eab\u4efd\u9a8c\u8bc1\uff0c\u5728\u8f93\u5165\u6846\u8f93\u5165\u4e0b\u56fe\u4e2d\u7684\u9a8c\u8bc1\u7801</div>\t\t\t\t\t\t\t<div>\u9a8c\u8bc1\u7801: <input id="eqq_verify_input_code" type="text" style="vertical-align:middle;" /></div>\t\t\t\t\t\t\t<img style="float:left;margin-right:10px" id="eqq_verify_img_code" src="" />\t\t\t\t\t\t\t<a style="display:inline;line-height:60px;" id="eqq_verify_a_code" alt="\u770b\u4e0d\u6e05\u6362\u4e00\u5f20" href="">\u770b\u4e0d\u6e05\u6362\u4e00\u5f20</a>\t\t\t\t\t\t\t<div id="eqq_verify_img_code_wrong" style="display:none;color:red;width:65px;">\u9a8c\u8bc1\u7801\u9519\u8bef</div>\t\t\t\t\t\t</div>\t\t\t\t\t</div>', {
title: "\u8eab\u4efd\u9a8c\u8bc1",
resize: !0,
width: 380,
height: 123,
hasOkButton: !0,
isSetCentered: !0
});
var b = $D.id("eqq_verify_img_code"),
c = $D.id("eqq_verify_a_code"),
n = $D.id("eqq_verify_input_code"),
h = null;
f.on(b, "load",
function() {
h = d.cookie.get("verifysession", alloy.CONST.MAIN_DOMAIN)
});
f.on(c, "click",
function(a) {
a.preventDefault();
$D.id("eqq_verify_img_code").src = "http://captcha.qq.com/getimage?aid=1003901&" + Math.random()
});
f.addObserver(A, "clickOkButton",
function() {
var b = n.value;
if (b && h) return e(a, b, h),
!1;
n.focus();
$D.id("eqq_verify_input_code").innerHTML = "\u8bf7\u5148\u8f93\u5165\u9a8c\u8bc1\u7801\uff01";
return !1
});
n.focus();
f.on(n, "keydown",
function(a) {
a.keyCode == 13 && f.notifyObservers(A, "clickOkButton") && setTimeout(function() {
A.close()
},
0)
});
$D.id("eqq_verify_img_code").src = "http://captcha.qq.com/getimage?aid=1003901&" + Math.random()
};
this.createDiscu = function(a) {
a = a || [];
if (a.length < 2) return !1;
var e = [],
b = [],
c = [],
d;
for (d in a) {
var f = a[d];
f.uin = f.uin.toString();
f.gid && f.gid.length > 3 ? (b.push(f.uin), c.push(f.gid.toString())) : e.push(f.uin)
}
I({
discu_name: "",
mem_list: e,
mem_list_u: b,
mem_list_g: c
})
};
var I = g.sendCreateDiscu = function(a, e, b) {
a = a || {};
a.code = e;
a.verifysession = b;
a.clientid = EQQ.RPCService.getClientId();
a.psessionid = EQQ.getPsessionid();
a.vfwebqq = alloy.portal.getVfWebQQ();
EQQ.RPCService.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/create_discu", {
context: g,
method: "POST",
data: {
r: d.json.stringify(a)
},
arguments: a,
onSuccess: function(e) {
if (e.retcode === 0) {
var b = !1; !d.isUndefined(e.result.result) && e.result.result > 0 && (b = !0);
setTimeout(function() {
try {
A && A.close()
} catch (a) { }
},
0);
b ? (alloy.layout.alert("\u521b\u5efa\u8ba8\u8bba\u7ec4\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5!"), d.error("\u521b\u5efa\u8ba8\u8bba\u7ec4\u5931\u8d25")) : g.sendCreateDiscuSuccess(e)
} else e.retcode === 1E3 ? H(a,
function(a, e, b) {
g.sendCreateDiscu(a, e, b)
}) : e.retcode === 1001 ? ($D.id("eqq_verify_img_code_wrong").style.display = "inline", $D.id("eqq_verify_img_code").src = "http://captcha.qq.com/getimage?aid=1003901&" + Math.random(), $D.id("eqq_verify_input_code").value = "", $D.id("eqq_verify_input_code").focus()) : (setTimeout(function() {
try {
A && A.close()
} catch (a) { }
},
0), alloy.layout.alert("\u521b\u5efa\u8ba8\u8bba\u7ec4\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5!"), d.error("\u521b\u5efa\u8ba8\u8bba\u7ec4\u5931\u8d25"))
},
onError: function() {
alloy.layout.alert("\u521b\u5efa\u8ba8\u8bba\u7ec4\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5!");
d.error("\u521b\u5efa\u8ba8\u8bba\u7ec4\u5931\u8d25")
}
})
};
this.sendCreateDiscuSuccess = function(a) {
a = g.encodeDid(a.result.did);
g.addDiscu({
did: a,
name: ""
});
var e = g.getDiscuById(a);
e.setHadModified(!1);
f.notifyObservers(g, "AddNewDiscuToList", e);
f.notifyObservers(g, "ToStartDiscuChat", a)
};
this.sendModifyDiscuTopic = function(a) {
a.did = g.decodeDid(a.did);
a = a || {};
a.dtype = 1;
a.clientid = EQQ.RPCService.getClientId();
a.psessionid = EQQ.getPsessionid();
a.vfwebqq = alloy.portal.getVfWebQQ();
EQQ.RPCService.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/modify_discu_info", {
context: g,
method: "POST",
data: {
r: d.json.stringify(a)
},
arguments: a,
onSuccess: function(e) {
if (e.retcode === 0) if (!d.isUndefined(e.result.error) && e.result.error == 2) alloy.layout.alert("\u4fee\u6539\u8ba8\u8bba\u7ec4\u4e3b\u9898\u5931\u8d25."),
d.error("\u4fee\u6539\u8ba8\u8bba\u7ec4\u4e3b\u9898\u5931\u8d25,\u6709\u810f\u8bcd"),
e = g.encodeDid(a.did),
e = g.getDiscuById(e),
f.notifyObservers(g, "ModifyDiscuTopicSuccess", e);
else if (!d.isUndefined(e.result.error) && e.result.error == 1) O(a);
else {
d.info("\u4fee\u6539\u8ba8\u8bba\u7ec4\u4e3b\u9898\u6210\u529f");
var e = a,
b = g.encodeDid(e.did),
b = g.getDiscuById(b);
b.setName(e.discu_name);
b.setHadModified(!0);
f.notifyObservers(g, "ModifyDiscuTopicSuccess", b)
} else alloy.layout.alert("\u4fee\u6539\u8ba8\u8bba\u7ec4\u4e3b\u9898\u5931\u8d25."),
d.error("\u4fee\u6539\u8ba8\u8bba\u7ec4\u4e3b\u9898\u5931\u8d25")
},
onError: function() {
d.error("\u4fee\u6539\u8ba8\u8bba\u7ec4\u4e3b\u9898\u5931\u8d25")
}
})
};
this.sendQuitDisc = function(a) {
var a = a || {},
e = a.did;
a.did = g.decodeDid(a.did);
a.clientid = EQQ.RPCService.getClientId();
a.psessionid = EQQ.getPsessionid();
a.vfwebqq = alloy.portal.getVfWebQQ();
EQQ.RPCService.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/quit_discu", {
context: g,
data: a,
arguments: a,
onSuccess: function(a) {
a.retcode === 0 ? (a = {
did: e
},
g.removeDiscu(a), f.notifyObservers(g, "QuitDiscuSuccess", a)) : (alloy.layout.alert("\u9000\u51fa\u8ba8\u8bba\u7ec4\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5!"), d.error("\u9000\u51fa\u8ba8\u8bba\u7ec4\u5931\u8d25"))
},
onError: function() {
alloy.layout.alert("\u9000\u51fa\u8ba8\u8bba\u7ec4\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5!");
d.error("\u9000\u51fa\u8ba8\u8bba\u7ec4\u5931\u8d25")
}
})
};
this.modifyDiscuMembers = function(a, e) {
a = a || [];
if (a.length < 1) return !1;
var b = [],
c = [],
d = [],
f;
for (f in a) {
var n = a[f];
n.uin = n.uin.toString();
n.gid && n.gid.length > 3 ? (c.push(n.uin), d.push(n.gid.toString())) : b.push(n.uin)
}
e.mem_list = b;
e.mem_list_u = c;
e.mem_list_g = d;
g.sendModifyMember(e)
};
this.sendModifyMember = function(a) {
var a = a || {},
e = a.did;
a.did = g.decodeDid(a.did);
a.clientid = EQQ.RPCService.getClientId();
a.psessionid = EQQ.getPsessionid();
a.vfwebqq = alloy.portal.getVfWebQQ();
EQQ.RPCService.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/change_discu_mem", {
context: g,
method: "POST",
data: {
r: d.json.stringify(a)
},
arguments: a,
onSuccess: function(a) {
a.retcode === 0 ? (y(e), d.info("\u4fee\u6539\u8ba8\u8bba\u7ec4\u6210\u5458\u6210\u529f")) : (alloy.layout.alert("\u9080\u8bf7\u6210\u5458\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5!"), d.error("\u4fee\u6539\u8ba8\u8bba\u7ec4\u6210\u5458\u5931\u8d25"))
},
onError: function() {
alloy.layout.alert("\u9080\u8bf7\u6210\u5458\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5!");
d.error("\u4fee\u6539\u8ba8\u8bba\u7ec4\u6210\u5458\u5931\u8d25")
}
})
};
this.sendGetDiscuMemberStatus = function(a) {
a = a || {};
a.did = g.decodeDid(a.did);
a.clientid = EQQ.RPCService.getClientId();
a.psessionid = EQQ.getPsessionid();
a.vfwebqq = alloy.portal.getVfWebQQ();
EQQ.RPCService.send(EQQ.CONST.CONN_SERVER_DOMAIN + "channel/get_discu_status_info", {
context: g,
data: a,
arguments: a,
onSuccess: function(a) {
a.retcode === 0 ? g.getDiscuMemberStatusSuccess(a) : d.error("\u83b7\u53d6\u8ba8\u8bba\u7ec4\u6210\u5458\u72b6\u6001\u5931\u8d25")
},
onError: function() {
d.error("\u83b7\u53d6\u8ba8\u8bba\u7ec4\u6210\u5458\u72b6\u6001\u5931\u8d25")
}
})
};
this.getDiscuMemberStatusSuccess = function(a) {
var e = g.encodeDid(a.arguments.did),
a = g.getDiscuById(e).modifyMemberStatus(a.result.mem_status);
a.length > 0 && f.notifyObservers(g, "GetDiscuMemberStatusSuccess", {
did: e,
list: a
})
};
this.isDiscuPrompt = function(a) {
a = this.getDiscuById(a);
switch (parseInt(a.mask)) {
case 0:
return !0;
case 1:
return !1;
case 2:
return !1
}
};
this.sendChangeDiscuMask = function(a) {
for (var e = {
idx: EQQ.index,
port: EQQ.port
},
b = 0; b < x.length; b++) {
var c = x[b],
f = g.decodeDid(c.did);
e[f] = a.uin == c.did ? a.mask.toString() : c.mask.toString()
}
qqweb.rpcService.sendMessageFilterConfig({
onSuccess: function() {
var e = {
uin: a.uin,
mask: a.mask
};
g.getDiscuById(e.uin).setMask(e.mask)
},
context: this,
data: {
retype: 1,
app: "EQQ",
itemlist: '{"discumask":' + d.json.stringify(e) + "}"
}
})
};
this.getAndAddDiscu = function(a) {
a = {
did: a.did,
name: a.name
};
g.addDiscu(a);
a = g.getDiscuById(a.did);
f.notifyObservers(g, "AddNewDiscuToList", a);
f.notifyObservers(g, "AddDiscuByMsgSuccess", a)
};
this.sendGetDiscuSessionSignature = function(a) {
var e = this.decodeDid(this.getUserByUin(a).did);
EQQ.RPCService.sendGetDiscuSessionSignature({
group_uin: e,
to_uin: a
})
};
var Q = function(a) {
var e = g.getUserByUin(a.arguments.to_uin);
if (a.result.verify_sig.type === 0 && a.result.group_sig.type === 0) e.chatSession = a.result,
f.notifyObservers(g, "GroupBuddySessionSignatureChange", e.uin)
},
O = function(a) {
alloy.layout.alert("\u8ba8\u8bba\u7ec4\u88ab\u5220\u9664!");
a.did = g.encodeDid(a.did);
g.removeDiscu(a);
f.notifyObservers(g, "QuitDiscuSuccess", a)
}
})
})(); (function() {
WebqCore.register("EQQ.Model.ChatMsg",
function(d) {
var g = this,
f = d.event,
j = {},
t = [],
b = [],
a = {},
c = [],
p = {},
m = [],
z = {},
q = null,
o = [],
i = null,
r = {},
k = {},
D = [],
B = {},
E = 0,
w,
x = 0,
C;
w = (new Date).getTime();
w = (w - w % 1E3) / 1E3;
w = w % 1E4 * 1E4;
var F = function() {
E++;
return w + E
},
u = function(a) {
d.isNumber(a) && (a *= 1E3);
return d.date.format(new Date(a), "YYYY-MM-DD hh:mm:ss")
},
s = function(a) {
if (d.isString(a.content[1]) && a.content[1].substr(0, 4) === "\u3000 \u3000") {
RegExp(/(\?.*)\s?$/).test(decodeURIComponent(a.content[1]));
var b = d.string.mapQuery(RegExp.$1).vk;
if (!g.uinToVideo) g.uinToVideo = [];
a = a.from_uin;
g.uinToVideo[a] = {
k: b
};
f.notifyObservers(g, "AskForVideo", {
uin: a,
k: b
})
}
};
this.init = function() {
j = {};
b = [];
a = {};
c = [];
p = {};
i = null;
r = {};
k = {};
D = [];
B = {};
x = E = 0;
C = null;
f.addObserver(EQQ.RPCService, "SendMsgSuccess", d.bind(this.onSendMsgSuccess, this));
f.addObserver(EQQ.RPCService, "PollSuccess", d.bind(this.onPollSuccess, this));
f.addObserver(EQQ.RPCService, "SendMsgError", d.bind(this.onSendMsgError, this));
f.addObserver(EQQ.RPCService, "SendGetGroupCustomFaceKeySuccess", d.bind(this.onSendGetGroupCustomFaceKeySuccess, this));
f.addObserver(EQQ.RPCService, "sendGetOfflinePicUrlSuccess", d.bind(this.onGetOfflinePicUrlSuccess, this));
f.addObserver(EQQ.RPCService, "getSendPicUrlError", d.bind(this.onSetSendPicUrlError, this));
f.addObserver(EQQ.Model.BuddyList, "AddDiscuByMsgSuccess", d.bind(this.onAddDiscuByMsgSuccess, this))
};
this.getMsgId = F;
this.setGroupCustomFaceKey = function(a) {
x = d.now();
C = {
key: a.gface_key,
signature: a.gface_sig
}
};
this.getGroupCustomFaceKey = function() {
return C
};
this.isGroupCustomFaceKeyTimeout = function() {
return d.now() - x > 432E6
};
this.sendGetGroupCustomFaceKey = function(a) {
EQQ.RPCService.sendGetGroupCustomFaceKey({
arguments: {
msg: a
}
})
};
this.onSendGetGroupCustomFaceKeySuccess = function(a) {
var b = a.arguments.msg;
this.setGroupCustomFaceKey(a.result);
this.sendGetGroupCustomFaceInfo(b)
};
this.sendGetGroupCustomFaceInfo = function(a) {
for (var b = this.getGroupCustomFaceKey(), c = 0; c < a.content.length; c++) {
var g = a.content[c];
g[0] === "face" && (g[1] = EQQ.CONST.TRANSFER_TABLE[g[1]])
}
if (a.type == "discu") return this.sendDiscuCustomFaceInfo(a),
!0;
EQQ.RPCService.sendGetGroupCustomFaceInfo({
group_uin: a.to,
group_code: EQQ.Model.BuddyList.getGroupByGid(a.to).code,
key: b.key,
sig: b.signature,
content: d.json.stringify(a.content)
});
b = F();
c = EQQ.Model.BuddyList.getSelf();
b = {
type: a.type,
from_uin: 0,
sender_uin: c.uin,
sender: c,
time: u(new Date),
content: a.content,
msg_id: b,
group_code: EQQ.Model.BuddyList.getGroupByGid(a.to).code
};
f.notifyObservers(this, "GroupMessageListChange", {
gid: a.to,
msgList: [b]
})
};
this.sendDiscuCustomFaceInfo = function(a) {
var b = EQQ.Model.BuddyList.getDiscuById(a.to);
b && G(b, a.content);
b = this.getGroupCustomFaceKey();
EQQ.RPCService.sendDiscuMsg({
did: EQQ.Model.BuddyList.decodeDid(a.to),
key: b.key,
sig: b.signature,
content: d.json.stringify(a.content)
});
var b = F(),
c = EQQ.Model.BuddyList.getSelf(),
b = {
type: a.type,
from_uin: 0,
sender_uin: c.uin,
sender: c,
time: u(new Date),
content: a.content,
msg_id: b,
did: a.to
};
f.notifyObservers(this, "DiscuMessageListChange", {
did: a.to,
msgList: [b]
})
};
this.callbackSendPic = function(a) {
if (a.filesize > 1048576) a.retcode = "100",
a.maxFileSize = "1MB",
f.notifyObservers(this, "uploadSendPicError", a);
else if (a.retcode != 0) f.notifyObservers(this, "uploadSendPicError", a);
else {
r[a.filepath] = a;
var b = EQQ.Model.BuddyList.getSelf();
EQQ.RPCService.sendGetOfflinePicUrl({
f_uin: b.uin,
file_path: a.filepath,
clientid: g.getClientidFromRpc()
});
alloy.util.report2m(133171)
}
};
this.onGetOfflinePicUrlSuccess = function(a) {
r[a.result.file_path].fileurl = a.result.url;
if (r[a.result.file_path]) a.fileid = r[a.result.file_path].fileid;
f.notifyObservers(this, "GetSendPicUrlSuccess", a)
};
this.onSetSendPicUrlError = function(a) {
if (r[a.result.file_path]) a.fileid = r[a.result.file_path].fileid;
f.notifyObservers(this, "getSendPicUrlError", a)
};
this.getSendPicUrlByFilePath = function(a) {
return typeof r[a] == "undefined" ? "" : r[a].fileurl
};
this.callbackSendPicGroup = function(a) {
if (a.ret === 0) {
var b = /[A-Fa-f0-9]{32}\.[A-Za-z]{3}/,
c = a.msg;
c.length > 36 && (c = c.substring(0, 36));
f.notifyObservers(this, "getSendPicGroupSuccess", c)
} else a.ret === 4 ? (b = /[A-Fa-f0-9]{32}\.[A-Za-z]{3}/, c = a.msg, c.length > 36 ? (c = c.substring(0, 36), b.test(c) ? f.notifyObservers(this, "getSendPicGroupSuccess", c) : f.notifyObservers(this, "sendPicGroupError", a)) : f.notifyObservers(this, "sendPicGroupError", a)) : f.notifyObservers(this, "sendPicGroupError", a)
};
this.sendMsg = function(a) {
var b = F(),
c = "",
c = {},
a = a || {};
a.type = a.type || "single";
for (var g = typeof a.attach != "undefined" && a.attach ? a.attach : "", m = EQQ.Model.BuddyList.getSelf(), c = 0; c < a.content.length; c++) {
var i = a.content[c];
i[0] === "face" && (i[1] = EQQ.CONST.TRANSFER_TABLE[i[1]])
}
c = d.json.stringify(a.content);
if (a.type === "group") c = {
group_uin: a.to,
content: c,
msg_id: b
},
EQQ.RPCService.sendGroupMsg(c),
b = {
type: a.type,
from_uin: 0,
sender_uin: m.uin,
sender: m,
time: u(new Date),
content: a.content,
msg_id: b,
group_code: EQQ.Model.BuddyList.getGroupByGid(a.to).code
},
f.notifyObservers(this, "GroupMessageListChange", {
gid: a.to,
msgList: [b]
});
else if (a.type === "discu") (g = EQQ.Model.BuddyList.getDiscuById(a.to)) && G(g, a.content),
c = {
did: EQQ.Model.BuddyList.decodeDid(a.to),
content: c,
msg_id: b
},
EQQ.RPCService.sendDiscuMsg(c),
b = {
type: a.type,
from_uin: 0,
sender_uin: m.uin,
sender: m,
time: u(new Date),
content: a.content,
msg_id: b,
did: a.to
},
f.notifyObservers(this, "DiscuMessageListChange", {
did: a.to,
msgList: [b]
});
else {
i = EQQ.Model.BuddyList.getUserByUin(a.to);
if (i.type === "groupBuddy") {
var k = i.currentId,
c = {
to: a.to,
group_sig: i.chatSession[k],
face: a.face,
content: c,
msg_id: b,
service_type: isNaN(k) ? 1 : 0
};
EQQ.RPCService.sendGroupBuddyMsg(c)
} else c = {
to: a.to,
face: a.face,
content: c,
msg_id: b
},
EQQ.RPCService.sendMsg(c);
b = {
type: a.type,
from_uin: 0,
sender_uin: m.uin,
sender: m,
time: u(new Date),
content: a.content,
msg_id: b,
attach: g
};
a.isIgnoreHistory || f.notifyObservers(this, "MessageListChange", {
uin: a.to,
msgList: [b]
})
}
a.isIgnoreHistory || (j[a.to] ? j[a.to].msgList.push(b) : j[a.to] = {
last: 0,
msgList: [b]
})
};
this.addMsgToList = function(a) {
var b = EQQ.Model.BuddyList.getSelf(),
c = F(),
b = {
type: a.type,
from_uin: a.from_uin,
sender_uin: b.uin,
sender: b,
time: u(new Date),
content: a.content,
msg_id: c,
attach: typeof a.attach != "undefined" && a.attach ? a.attach : ""
};
f.notifyObservers(this, "MessageListChange", {
uin: a.to,
msgList: [b]
});
j[a.to] ? j[a.to].msgList.push(b) : j[a.to] = {
last: 0,
msgList: [b]
}
};
this.onSendMsgSuccess = function(a) {
f.notifyObservers(this, "SendMsgError", a)
};
this.onSendMsgError = function(a) {
f.notifyObservers(this, "SendMsgError", a)
};
this.getMsgHistory = function(a) {
j[a] && f.notifyObservers(this, "MessageListChange", {
uin: a,
msgList: j[a].msgList
})
};
this.getGroupMsgHistory = function(a) {
j[a] && f.notifyObservers(this, "GroupMessageListChange", {
gid: a,
msgList: j[a].msgList
})
};
this.clearChatLog = function(a) {
j[a] && (j[a] = {
last: 0,
msgList: []
})
};
this.receiveMsg = function(a) {
var b = a.from_uin,
c = !1,
g = 0,
m = typeof a.attach != "undefined" && a.attach ? a.attach : "",
m = {
type: "single",
from_uin: b,
sender_uin: b,
sender: EQQ.Model.BuddyList.getUserByUin(b),
msg_id: a.msg_id,
content: a.content,
time: u(a.time),
raw_time: a.time,
attach: m
};
if (j[b]) {
for (var i = j[b].msgList, k = i.length, a = 0; a < k; a++) if (i[a].msg_id == m.msg_id) {
c = !0;
d.out("\u53d1\u73b0\u91cd\u590d\u4e2a\u4eba\u6d88\u606f\uff0cmsg_id\uff1a" + m.msg_id);
break
}
c || (i.push(m), g++)
} else j[b] = {
last: 0,
msgList: []
},
j[b].msgList.push(m),
g++;
B[b] = m.msg_id;
c = {
last: 0,
msgList: []
};
if (g > 0) {
for (a = 0; a < g; a++) c.msgList.push(j[b].msgList[j[b].msgList.length - (g - a)]);
j[b].last = 0;
f.notifyObservers(this, "MessageListChange", {
uin: b,
msgList: c.msgList
});
f.notifyObservers(EQQ, "MessageReceive", {
uin: b,
msgList: c.msgList
})
}
};
this.receiveSystemMsg = function(a) {
var b;
switch (a.type) {
case "added_buddy_sig":
case "added_buddy_nosig":
b = "\u6dfb\u52a0\u60a8\u4e3a\u597d\u53cb";
break;
case "verify_pass_add":
b = "\u63a5\u53d7\u4e86\u60a8\u7684\u8bf7\u6c42\uff0c\u5e76\u6dfb\u52a0\u60a8\u4e3a\u597d\u53cb";
var c = {
uin: a.from_uin,
status: alloy.util.code2state(a.stat),
client_type: a.client_type
};
f.notifyObservers(EQQ.Model.BuddyList, "AddANewBuddy", {
tuin: a.from_uin,
gid: a.group_id,
newstate: c
});
break;
case "verify_pass":
b = "\u63a5\u53d7\u4e86\u60a8\u7684\u8bf7\u6c42";
c = {
uin: a.from_uin,
status: alloy.util.code2state(a.stat),
client_type: a.client_type
};
f.notifyObservers(EQQ.Model.BuddyList, "AddANewBuddy", {
tuin: a.from_uin,
gid: 0,
newstate: c
});
break;
case "verify_required":
b = "\u8bf7\u6c42\u6dfb\u52a0\u60a8\u4e3a\u597d\u53cb\uff0c\u9644\u52a0\u4fe1\u606f(" + (a.msg || "\u65e0") + ")";
break;
case "verify_rejected":
b = "\u62d2\u7edd\u4e86\u60a8\u7684\u8bf7\u6c42\uff0c\u9644\u52a0\u4fe1\u606f(" + (a.msg || "\u65e0") + ")";
break;
default:
b = a.type
}
f.notifyObservers(EQQ, "MessageReceive", {
msgList: [{
type: "add_buddy",
sender: {
htmlShowName: String(a.account)
},
from_uin: a.from_uin,
title: a.account,
content: b,
msg_id: a.seq,
opt: {
uin: a.from_uin,
account: a.account,
nick: a.account,
allow: a.allow,
type: a.type,
msg: a.msg,
gid: a.group_id
}
}]
})
};
this.receiveSysGroupMsg = function(a) {
var b, c = alloy.portal.getUin();
switch (a.type) {
case "group_join":
b = c == a.new_member ? "\u60a8\u5df2\u7ecf\u52a0\u5165\u7fa4" + a.t_gcode : a.t_new_member + "\u5df2\u52a0\u5165\u7fa4" + a.t_gcode + "\u3002";
break;
case "group_leave":
a.op_type == 1 ? b = c == a.admin_uin ? "\u60a8\u5df2\u7ecf\u6210\u529f\u5730\u89e3\u6563\u4e86\u7fa4" + a.t_gcode : "\u7fa4" + a.t_gcode + "\u5df2\u7ecf\u88ab\u89e3\u6563" : a.op_type == 2 ? c != a.old_member && (b = a.t_old_member + "\u9000\u51fa\u7fa4" + a.t_gcode + "\u3002") : a.op_type == 3 && (b = c == a.old_member ? "\u60a8\u5df2\u7ecf\u88ab\u79fb\u9664\u51fa\u7fa4" + a.t_gcode : a.t_old_member + "\u5df2\u88ab\u7ba1\u7406\u5458\u79fb\u9664\u51fa\u7fa4" + a.t_gcode + "\u3002");
a.type = a.type + "_" + a.op_type;
break;
case "group_request_join":
b = a.t_request_uin + "\u7533\u8bf7\u52a0\u5165\u7fa4" + a.t_gcode;
break;
case "group_request_join_agree":
b = "\u7ba1\u7406\u5458\u5df2\u540c\u610f\u60a8\u52a0\u5165\u7fa4" + a.t_gcode;
break;
case "group_request_join_deny":
b = "\u7ba1\u7406\u5458\u5df2\u62d2\u7edd\u60a8\u52a0\u5165\u7fa4" + a.t_gcode;
break;
case "group_admin_op":
if (a.op_type == 0 || a.op_type == 2) b = c == a.uin ? "\u60a8\u5df2\u7ecf\u88ab\u53d6\u6d88\u7fa4" + a.t_gcode + "\u7684\u7ba1\u7406\u5458\u8eab\u4efd\u3002" : a.t_uin + "\u5df2\u7ecf\u88ab\u53d6\u6d88\u7fa4" + a.t_gcode + "\u7684\u7ba1\u7406\u5458\u8eab\u4efd\u3002";
else if (a.op_type == 1 || a.op_type == 3) b = c == a.uin ? "\u60a8\u5df2\u6210\u4e3a\u7fa4" + a.t_gcode + "\u7684\u7ba1\u7406\u5458\u3002" : a.t_uin + "\u5df2\u6210\u4e3a\u7fa4" + a.t_gcode + "\u7684\u7ba1\u7406\u5458\u3002";
else if (a.op_type == 255) if (c == a.old_uin) b = "\u60a8\u5df2\u7ecf\u6210\u529f\u5c06\u7fa4" + a.t_gcode + "\u7684\u7fa4\u4e3b\u8eab\u4efd\u8f6c\u8ba9\u7ed9" + a.t_new_uin + "\u3002";
else if (c == a.new_uin) b = a.t_gcode + "\u7684\u7fa4\u4e3b" + a.t_old_uin + "\u5df2\u7ecf\u5c06\u8be5\u7fa4\u8f6c\u8ba9\u7ed9\u60a8\uff0c\u73b0\u5728\u60a8\u4e3a\u8be5\u7fa4\u7fa4\u4e3b\u3002";
else return !1;
a.type = a.type + "_" + a.op_type;
break;
case "group_create":
b = "\u60a8\u5df2\u7ecf\u6210\u529f\u521b\u5efa\u7fa4" + a.t_gcode;
break;
default:
return !1
}
f.notifyObservers(EQQ, "MessageReceive", {
msgList: [{
type: "join_group",
sender: {
htmlShowName: String(a.from_uin)
},
from_uin: a.from_uin + "_" + a.type,
title: "\u7fa4\u7cfb\u7edf\u6d88\u606f",
content: b,
msg_id: a.msg_id,
opt: {
uin: a.from_uin || 0,
nick: a.from_uin,
allow: a.allow,
type: a.type,
msg: a.msg || "",
gid: a.from_uin,
value: a
}
}]
})
};
this.receiveGroupMsg = function(a) {
var b = a.from_uin,
c = !1,
g = 0,
m = {
type: "group",
from_uin: b,
sender_uin: a.send_uin,
sender: EQQ.Model.BuddyList.getUserByUin(a.send_uin),
msg_id: a.msg_id,
content: a.content,
group_code: EQQ.Model.BuddyList.getGroupByGid(b).code,
time: u(a.time),
raw_time: a.time
};
if (j[b]) {
for (var a = j[b].msgList.length, i = 0; i < a; i++) {
var k = j[b].msgList[i];
if (m.sender_uin == k.sender_uin && k.msg_id == m.msg_id) {
c = !0;
d.out("\u53d1\u73b0\u91cd\u590d\u7fa4\u6d88\u606f\uff0cmsg_id\uff1a" + m.msg_id);
break
}
}
c || (j[b].msgList.push(m), g++)
} else j[b] = {
last: 0,
msgList: []
},
j[b].msgList.push(m),
g++;
B[b] = m.msg_id;
c = j[b].msgList;
a = c.length;
m = [];
if (g > 0) {
for (i = g; i > 0; i--) m.push(c[a - i]);
j[b].last = 0;
f.notifyObservers(this, "GroupMessageListChange", {
gid: b,
msgList: m
});
f.notifyObservers(EQQ, "MessageReceive", {
gid: b,
msgList: m
})
}
};
this.addMessageBoxUserList = function(e) {
var c = a[e.from_uin];
c ? d.array.remove(b, c) : f.notifyObservers(this, "flexStartJump", e.from_uin);
a[e.from_uin] = e;
b.push(e);
f.notifyObservers(this, "MessageBoxUserListChange", this.getMessageBoxUserList())
};
this.getMessageBoxUserList = function() {
return b
};
this.removeMessageBoxUserList = function(e) {
var c = a[e];
c && d.array.remove(b, c);
delete a[e];
f.notifyObservers(this, "flexStopJump", e);
f.notifyObservers(this, "MessageBoxUserListChange", this.getMessageBoxUserList())
};
this.addMessageBoxGroupList = function(a) {
var b = p[a.from_uin];
b && d.array.remove(c, b);
p[a.from_uin] = a;
c.push(a);
f.notifyObservers(this, "MessageBoxGroupListChange", this.getMessageBoxGroupList())
};
this.getMessageBoxGroupList = function() {
return c
};
this.removeMessageBoxGroupList = function(a) {
var b = p[a];
b && d.array.remove(c, b);
delete p[a];
f.notifyObservers(this, "MessageBoxGroupListChange", this.getMessageBoxGroupList())
};
this.preloadGroupMessageImages = function(a, b) {
var b = b || 0,
c = a.content,
f = a.send_uin,
g = "",
g = "",
m = null,
i = a.group_code || EQQ.Model.BuddyList.decodeDid(a.did),
k = a.time,
l = "",
j = !0;
a.did && (j = !1);
for (var t = function() {
m = null;
d.out("preload-image-success!");
j && alloy.rpcService.reportQstatic("Monitor|Group|imgperload|Succeed")
},
p = function() {
m = null;
d.out("preload-image-error!");
j && alloy.rpcService.reportQstatic("Monitor|Group|imgperload|Failed")
},
o = 0, h = c.length; o < h; o++) if (c[o][0] === "cface") l = c[o][1],
g = l.server.toString().split(":"),
g = EQQ.CONST.CHAT_PIC_SERVER + "cgi-bin/get_group_pic?type=" + b + "&gid=" + i + "&uin=" + f + "&rip=" + g[0] + "&rport=" + g[1] + "&fid=" + l.file_id + "&pic=" + l.name + "&vfwebqq=" + alloy.portal.getVfWebQQ() + "&t=" + k,
m = new Image,
m.src = g,
m.onload = t,
m.onerror = p
};
this.onPollSuccess = function(a) {
if (a) {
a.sort(function(a, b) {
return (a.value && a.value.time || 0) < (b.value && b.value.time || 0) ? 1 : -1
});
for (var b = a.length - 1; b >= 0; b--) {
var c = a[b];
switch (c.poll_type) {
case "message":
c = c.value;
EQQ.Model.BuddyList.isUser(c.from_uin) ? this.receiveBuddyMsg(c) : c.msg_type === 9 ? this.receiveStrangerMsg(c) : (c.msg_type === 31 || c.msg_type === 140) && this.receiveGroupBuddyMsg(c);
break;
case "sess_message":
c = c.value;
this.receiveGroupBuddyMsg(c);
break;
case "group_message":
c = c.value;
this.addMessageBoxGroupList(c);
this.preloadGroupMessageImages(c);
this.receiveGroupMsg(c);
break;
case "kick_message":
d.out("\u8e22\u7ebf\u901a\u77e5\uff1a" + c.value);
var c = c.value,
g = "\u60a8\u7684\u5e10\u53f7\u5728\u53e6\u4e00\u5730\u70b9\u767b\u5f55\uff0c\u60a8\u5df2\u88ab\u8feb\u4e0b\u7ebf\u3002\u5982\u6709\u7591\u95ee\uff0c\u8bf7\u767b\u5f55:safe.qq.com\u4e86\u89e3\u66f4\u591a\u3002";
if (c.show_reason !== 0) g = c.reason;
f.notifyObservers(EQQ, "SelfOffline", {
message: g,
action: "none"
});
break;
case "file_message":
d.out("\u6587\u4ef6\u4fe1\u9053\u901a\u77e5" + c.value);
this.receiveFile(c.value);
break;
case "system_message":
d.out("\u6536\u5230\u7cfb\u7edf\u6d88\u606f" + c.value);
this.receiveSystemMsg(c.value);
f.notifyObservers(EQQ, "SystemMessageRecive", c.value);
break;
case "filesrv_transfer":
d.out("\u6587\u4ef6\u4f20\u8f93\u6d88\u606f" + c.value);
this.receiveTransferMsg(c.value);
break;
case "tips":
d.out("\u6536\u5230tips\u6d88\u606f" + c.value);
this.receiveTipsMsg(c.value);
break;
case "sys_g_msg":
d.out("\u6536\u5230\u7fa4\u7cfb\u7edf\u6d88\u606f" + c.value);
this.receiveSysGroupMsg(c.value);
break;
case "av_request":
d.out("\u6536\u5230\u89c6\u9891\u8bf7\u6c42" + c.value);
this.receiveVideoMsg(c.value);
break;
case "discu_message":
d.out("\u6536\u5230\u8ba8\u8bba\u7ec4\u6d88\u606f" + c.value),
this.receiveDiscuMsg(c.value)
}
}
}
};
this.receiveBuddyMsg = function(a) {
s(a);
this.addMessageBoxUserList(a);
this.receiveMsg(a)
};
this.receiveStrangerMsg = function(a) {
var b = a.from_uin,
c = {
uin: b
},
m = EQQ.Model.BuddyList.isStranger(b),
i = function() {
if (!m) {
var b = EQQ.Model.BuddyList.createUser(c);
b.type = "stranger";
EQQ.Model.BuddyList.addStranger(b);
b.setClassId(EQQ.hash.userClassType.stranger);
EQQ.Model.BuddyList.setState(b.uin, "online", "10000");
f.notifyObservers(g, "NewStranger", b)
}
s(a);
g.addMessageBoxUserList(a);
g.receiveMsg(a);
d.out("receiveStrangerMsg")
};
m ? i() : alloy.rpcService.sendGetUserInfo_with_code(b, "", "",
function(a) {
if (a.retcode === 0) c = a.result;
i()
},
function() {
i()
})
};
this.receiveGroupBuddyMsg = function(a) {
var b = a.from_uin,
c, m = {
uin: b
},
i = EQQ.Model.BuddyList.isUser(b),
k = function() {
i ? c = EQQ.Model.BuddyList.getUserByUin(b) : (c = EQQ.Model.BuddyList.createUser(m), c.type = "groupBuddy", EQQ.Model.BuddyList.addStranger(c), c.setClassId(EQQ.hash.userClassType.stranger), EQQ.Model.BuddyList.setState(c.uin, "online", "10000"), f.notifyObservers(g, "NewStranger", c), EQQ.Model.BuddyList.sendGetUserInfo(b));
if ("service_type" in a) if (a.service_type === 0) c.currentId = a.id;
else if (a.service_type === 1) c.currentId = EQQ.Model.BuddyList.encodeDid(a.id);
s(a);
g.addMessageBoxUserList(a);
g.receiveMsg(a);
d.out("receiveGroupBuddyMsg")
};
i ? k() : alloy.rpcService.sendGetUserInfo_with_code(b, "", "",
function(a) {
if (a.retcode === 0) m = a.result;
k()
},
function() {
k()
})
};
this.getMessagePointer = function(a) {
return B[a] || 0
};
this.getCustomFaceList = function() {
return i
};
this.getSendPicList = function() {
return r
};
this.loadCustomFaceList = function() {
f.addObserver(EQQ.RPCService, "SendGetCustomFaceListSuccess", K);
EQQ.RPCService.sendGetCustomFaceList()
};
var K = function(a) {
i = d.array.bubbleSort(a.data,
function(a, b) {
if (a && b) return a[1] - b[1]
});
f.notifyObservers(g, "GetCustomFaceListSuccess", i);
f.removeObserver(EQQ.RPCService, "SendGetCustomFaceListSuccess", K)
};
this.deleteCustomFace = function(a) {
EQQ.RPCService.sendDeleteCustomFace(a)
};
this.getClientidFromRpc = function() {
return EQQ.RPCService.getClientId()
};
this.sendFile = function(a) {
var b = [["sendfile", a.filename]],
c = {
type: "sendfile",
name: a.filename,
from_uin: a.to_uin,
time: (new Date).getTime(),
isread: !0,
session_id: a.lcid
};
k[a.to_uin + "_" + a.lcid] = c;
g.addMsgToList({
type: "single",
from_uin: 0,
to: a.to_uin,
content: b,
attach: c
})
};
this.receiveFile = function(a) {
if (a.mode === "recv") {
var b = [["rfile", a.name, a.session_id]];
a.content = b;
a.attach = {
type: "rfile",
name: a.name,
from_uin: a.from_uin,
time: a.time,
isread: !1,
session_id: a.session_id,
msg_type: a.msg_type
};
var c = a.from_uin + "_" + a.session_id;
k[c] ? k[c] = a.attach : (k[c] = a.attach, this.fileMsgToJumpUserList(a), this.receiveMsg(a));
alloy.util.report2m(133161)
} else if (a.mode === "refuse") {
if (a.type !== 161) {
if (a.cancel_type == 2 && (D[a.session_id] = !0, b = parseInt(a.session_id, 10).toString(2), b.length >= 12)) b = b.substr(b.length - 12, 12),
a.session_id = parseInt(b, 2).toString(10);
var c = a.from_uin + "_" + a.session_id,
d = k[c];
if (typeof d == "undefined") return !1;
if (d.isFinished) return !1;
else k[c].isFinished = !0;
b = [["rffile", d.name]];
d.type = "rffile";
if (a.cancel_type == 2) b = [["wrffile", d.name]],
d.type = "wrffile";
else if (a.cancel_type == 3) b = [["rtfile", d.name]],
d.type = "rtfile";
a.content = b;
a.attach = d;
this.fileMsgToJumpUserList(a);
this.receiveMsg(a);
a.cancel_type != 2 && f.notifyObservers(this, "fromCancenFile", c);
alloy.util.report2m(133178)
}
} else if (a.mode === "send_ack") {
b = parseInt(a.session_id, 10).toString(2);
if (b.length < 12) return !1;
b = b.substr(b.length - 12, 12);
a.session_id = parseInt(b, 2).toString(10);
c = a.from_uin + "_" + a.session_id;
d = k[c];
b = [["wrfile", d.name, d.session_id]];
a.content = b;
a.attach = {
type: "wrfile",
name: d.name,
from_uin: d.from_uin,
time: a.time,
session_id: a.session_id
};
this.fileMsgToJumpUserList(a);
this.receiveMsg(a);
alloy.util.report2m(133179)
}
};
this.receiveVideoMsg = function(a) {
a.content = [["cvideo", "\u5bf9\u65b9\u6b63\u5728\u4f7f\u7528QQ\u5ba2\u6237\u7aef\u5411\u60a8\u53d1\u8d77\u89c6\u9891\u9080\u8bf7\uff0cWebQQ\u6682\u65f6\u4e0d\u80fd\u54cd\u5e94\u5ba2\u6237\u7aef\u89c6\u9891\u9080\u8bf7\uff0c\u4f46\u60a8\u53ef\u4ee5\u4e3b\u52a8\u53d1\u8d77\u89c6\u9891\u3002"]];
a.attach = {
type: "cvideo",
from_uin: a.from_uin,
msg_id: a.msg_id,
isCvideo: !0
};
this.fileMsgToJumpUserList(a);
this.receiveMsg(a);
EQQ.sendMsg(a.from_uin, " \u5bf9\u65b9\u6b63\u5728\u4f7f\u7528WebQQ\u4e0d\u80fd\u54cd\u5e94\u60a8\u7684\u89c6\u9891\u9080\u8bf7\uff0c\u4f46\u5bf9\u65b9\u53ef\u4ee5\u4e3b\u52a8\u53d1\u8d77\uff08\u60a8\u9700\u8981\u70b9\u51fb\u9080\u8bf7\u94fe\u63a5\u8df3\u8f6c\u81f3WebQQ\u4e0e\u597d\u53cb\u8fdb\u884c\u89c6\u9891\u4f1a\u8bdd\uff09\u3002");
qqweb.util.report2im("mining|c2w|invite")
};
this.agreeReceiveFile = function(a) {
var b = [["agfile", a.name, a.session_id]];
a.type = "agfile";
g.addMsgToList({
type: "single",
from_uin: 0,
to: a.from_uin,
content: b,
attach: a
})
};
this.refuseReceiveFile = function(a) {
var b = [["rffile", a.name, a.session_id]];
a.type = "rffile";
g.addMsgToList({
type: "single",
from_uin: 0,
to: a.from_uin,
content: b,
attach: a
});
k[a.from_uin + "_" + a.session_id].isFinished = !0;
b = g.getClientidFromRpc();
EQQ.RPCService.sendRefuseFile({
to: a.from_uin,
lcid: a.session_id,
clientid: b
})
};
this.getFilesList = function() {
return k
};
this.fileMsgToJumpUserList = function(a) {
if (a.cancel_type && a.cancel_type == 2) return this.addMessageBoxUserList(a),
!0;
if (typeof a.msg_type === "undefined" && !a.msg_type) {
var b = k[a.from_uin + "_" + a.session_id];
if (typeof b.msg_type === "undefined" && !b.msg_type) return !1;
a.msg_type = b.msg_type
}
b = EQQ.Model.BuddyList.isBuddy(a.from_uin);
a.msg_type === 9 ? b ? this.addMessageBoxUserList(a) : this.receiveStrangerFileMsg(a) : a.msg_type === 10 ? b && this.receiveStrangerFileMsg(a) : a.msg_type === 31 && this.receiveGroupBuddyFileMsg(a)
};
this.receiveStrangerFileMsg = function(a) {
var b = a.from_uin;
EQQ.Model.BuddyList.isStranger(b) || (b = EQQ.Model.BuddyList.createUser({
uin: b
}), EQQ.Model.BuddyList.addStranger(b), b.setClassId(EQQ.hash.userClassType.stranger), EQQ.Model.BuddyList.setState(b.uin, "online", "unknown"), f.notifyObservers(this, "NewStranger", b));
this.addMessageBoxUserList(a);
d.out("receiveStrangerFileMsg")
};
this.receiveGroupBuddyFileMsg = function(a) {
var b = a.from_uin;
if (!EQQ.Model.BuddyList.isStranger(b)) {
var c = EQQ.Model.BuddyList.createUser({
uin: b
});
EQQ.Model.BuddyList.addStranger(c);
c.type = "groupBuddy";
c.setClassId(EQQ.hash.userClassType.stranger);
EQQ.Model.BuddyList.setState(c.uin, "online", "unknown");
f.notifyObservers(this, "NewStranger", c);
EQQ.Model.BuddyList.sendGetUserInfo(b)
}
this.addMessageBoxUserList(a);
d.out("receiveGroupBuddyFileMsg, finish")
};
this.receiveTransferMsg = function(a) {
var b = a.file_infos[0];
if (b.file_name != "") {
var c = "",
d = "";
if (b.file_status == 51) c = [["transtimeout", b.file_name, a.lc_id]],
d = {
type: "transtimeout",
name: b.file_name,
isread: !0
};
else if (b.file_status == 50) c = [["transerror", b.file_name, a.lc_id]],
d = {
type: "transerror",
name: b.file_name,
isread: !0
};
else if (b.file_status == 53) c = [["refusedbyclient", b.file_name, a.lc_id]],
d = {
type: "refusedbyclient",
name: b.file_name,
isread: !0
};
else if (b.file_status == 0) c = [["transok", b.file_name, a.lc_id]],
d = {
type: "transok",
name: b.file_name,
isread: !0
},
alloy.util.report2m(133176),
a.operation == 1 ? alloy.util.report2m(133152) : a.operation == 2 && alloy.util.report2m(133165);
else return b.file_status != 10 && alloy.util.report2m(133177),
!1;
b = k[a.from_uin + "_" + a.lc_id] || {};
if (b.isFinished || typeof D[a.session_id] != "undefined" && D[a.session_id] === !0) return !1;
else b.isFinished = !0;
g.addMsgToList({
type: "single",
from_uin: 0,
to: a.to_uin,
content: c,
attach: d
})
}
};
this.receiveTipsMsg = function(a) {
if ((a.url || "").indexOf("run=mySignature") === -1) return !1;
var b = a.txt3.replace("\r\n", ":");
a.content = b;
a.type = "mysigntips";
b = {
type: "mysigntips",
sender: {
htmlShowName: String(a.from_uin)
},
from_uin: a.from_uin,
allow: 1,
content: b,
msg_id: a.msg_id,
opt: {
uin: a.from_uin,
nick: a.from_uin,
msg_id: a.msg_id,
type: "mysigntips"
}
};
a.aMag = b;
f.notifyObservers(EQQ, "MessageReceive", {
msgList: [b]
})
};
this.getMoreLog = function(a) {
qqweb.rpcService.sendGetGroupLogByTime({
c: a.total,
gid: a.gid,
gcode: a.gcode,
uk: a.uin,
tt: a.time,
m: a.precount
},
this.getMoreLogSuccess, this.getMoreLogError)
};
this.getMoreLogSuccess = function(a) {
f.notifyObservers(EQQ.Model.ChatMsg, "GetMoreLogSuccess", a)
};
this.getMoreLogError = function(a) {
f.notifyObservers(EQQ.Model.ChatMsg, "GetMoreLogError", a);
d.error("getMoreLogError")
};
this.receiveDiscuMsg = function(a) {
a.did = EQQ.Model.BuddyList.encodeDid(a.did);
var b = EQQ.Model.BuddyList.getDiscuById(a.did);
if (b) this.addMessageBoxDiscuList(a),
this.preloadGroupMessageImages(a, 1),
this.parseDiscuMsg(a),
G(b, a.content);
else {
o[a.did] = o[a.did] || [];
o[a.did].push(a);
for (var b = {
did: a.did
},
c = "", f = 0; f < a.content.length; f++) {
var g = a.content[f];
if (d.isArray(g)) if (g[0] == "face") {
c = "[\u8868\u60c5]";
break
} else {
if (g[0] == "cface") {
c = "[\u56fe\u7247]";
break
}
} else {
c = $S.cutByBytes(g.toString(), 20);
break
}
}
b.name = c;
EQQ.Model.BuddyList.getAndAddDiscu(b)
}
};
this.parseDiscuMsg = function(a) {
var b = a.did,
c = !1,
g = 0,
m = {
type: "discu",
from_uin: b,
sender_uin: a.send_uin,
sender: EQQ.Model.BuddyList.getUserByUin(a.send_uin),
msg_id: a.msg_id,
content: a.content,
did: b,
time: u(a.time),
raw_time: a.time
};
if (j[b]) {
for (var i = j[b].msgList.length, k = 0; k < i; k++) {
var t = j[b].msgList[k];
if (m.sender_uin == t.sender_uin && t.msg_id == m.msg_id) {
c = !0;
d.out("\u53d1\u73b0\u91cd\u590ddiscu\u6d88\u606f\uff0cmsg_id\uff1a" + m.msg_id);
break
}
}
c || (j[b].msgList.push(m), g++)
} else j[b] = {
last: 0,
msgList: []
},
j[b].msgList.push(m),
g++;
B[b] = m.msg_id;
c = j[b].msgList;
i = c.length;
m = [];
if (g > 0) {
for (k = g; k > 0; k--) m.push(c[i - k]);
j[b].last = 0;
f.notifyObservers(this, "DiscuMessageListChange", {
did: b,
msgList: m
});
f.notifyObservers(EQQ, "MessageReceive", {
did: b,
msgList: m
})
}
q != null && q != a.info_seq && f.notifyObservers(this, "ServerDiscuInfochange", {
did: b
});
q = a.info_seq
};
this.addMessageBoxDiscuList = function(a) {
var b = z[a.did];
b && d.array.remove(m, b);
z[a.did] = a;
m.push(a);
f.notifyObservers(this, "MessageBoxDiscuListChange", this.getMessageBoxDiscuList())
};
this.getMessageBoxDiscuList = function() {
return m
};
this.removeMessageBoxDiscuList = function(a) {
var b = z[a];
b && d.array.remove(m, b);
delete z[a];
f.notifyObservers(this, "MessageBoxDiscuListChange", this.getMessageBoxDiscuList())
};
this.getDiscuMsgHistory = function(a) {
j[a] && f.notifyObservers(this, "DiscuMessageListChange", {
did: a,
msgList: j[a].msgList
})
};
this.onAddDiscuByMsgSuccess = function(a) {
var a = o[a.did],
b;
for (b in a) {
var c = a[b];
c.did = EQQ.Model.BuddyList.decodeDid(c.did);
this.receiveDiscuMsg(c)
}
};
var G = function(a, b) {
if (!a.notSetName || a.hadModified) return !1;
for (var c = {
did: a.did
},
f = "", g = 0; g < b.length; g++) {
var m = b[g];
if (d.isArray(m)) if (m[0] == "face") {
f = "[\u8868\u60c5]";
break
} else {
if (m[0] == "cface") {
f = "[\u56fe\u7247]";
break
}
} else if (!(m == "\n" || m == " ")) {
f = $S.cutByBytes(m.toString(), 20);
break
}
}
c.discu_name = f;
EQQ.Model.BuddyList.sendModifyDiscuTopic(c)
};
this.saveHtmlMsg = function(a, b) {
t[a] = t[a] || [];
t[a].push(b)
};
this.getHtmlMsg = function(a) {
return d.isUndefined(t[a]) ? "" : t[a].join("")
}
})
})(); (function() {
var d = {
statePanel: '<li class="EQQ_statePanel_li" id="EQQ_SetOnline" state="online"><div class="EQQ_stateSelect_icon EQQ_online"></div><div class="EQQ_stateSelect_text">\u6211\u5728\u7ebf\u4e0a</div></li> <li class="EQQ_statePanel_li" id="EQQ_SetCallme" state="callme"><div class="EQQ_stateSelect_icon EQQ_callme"></div><div class="EQQ_stateSelect_text">Q\u6211\u5427</div></li> <li class="EQQ_statePanel_li" id="EQQ_SetAway" state="away"><div class="EQQ_stateSelect_icon EQQ_away"></div><div class="EQQ_stateSelect_text">\u79bb\u5f00</div></li> <li class="EQQ_statePanel_li" id="EQQ_SetBusy" state="busy"><div class="EQQ_stateSelect_icon EQQ_busy"></div><div class="EQQ_stateSelect_text">\u5fd9\u788c</div></li> <li class="EQQ_statePanel_li" id="EQQ_SetSilent" state="silent"><div class="EQQ_stateSelect_icon EQQ_silent"></div><div class="EQQ_stateSelect_text">\u8bf7\u52ff\u6253\u6270</div></li> <li class="EQQ_statePanel_li" id="EQQ_SetHidden" state="hidden"><div class="EQQ_stateSelect_icon EQQ_hidden"></div><div class="EQQ_stateSelect_text">\u9690\u8eab</div></li> <li class="EQQ_statePanel_li" id="EQQ_SetOffline" state="offline"><div class="EQQ_stateSelect_icon EQQ_offline"></div><div class="EQQ_stateSelect_text">\u79bb\u7ebf</div></li> <li class="EQQ_statePanel_li EQQ_SetSound statusBar_sound_open" id="EQQ_SetSound"><div class="EQQ_stateSelect_icon EQQ_SetSound_icon"></div><div class="EQQ_stateSelect_text">\u9759\u97f3</div></li>',
groupMaskPanel: '<a id="GroupMask_Costom" state="0" class="simpleMenuItem" href="###"><div class="selectedIcon"></div>\u4f7f\u7528\u7fa4\u81ea\u8eab\u7684\u6d88\u606f\u8bbe\u7f6e</a>\t\t\t\t\t\t<a id="GroupMask_Prompt" state="1" class="simpleMenuItem" href="###"><div class="selectedIcon"></div>\u6240\u6709\u7fa4\u63a5\u6536\u5e76\u63d0\u793a\u6d88\u606f</a>\t\t\t\t\t\t<a id="GroupMask_NoPrompt" state="2" class="simpleMenuItem" href="###"><div class="selectedIcon"></div>\u6240\u6709\u7fa4\u63a5\u6536\u4e0d\u63d0\u793a\u6d88\u606f</a>\t\t\t\t\t\t<a id="GroupMask_Mask" state="3" class="simpleMenuItem" href="###"><div class="selectedIcon"></div>\u6240\u6709\u7fa4\u5b8c\u5168\u963b\u6b62\u7fa4\u6d88\u606f</a>',
miniCardPanel: '<div class="panel_1_outer">\t\t\t\t<div class="panel_1_inner">\t\t\t\t\t<div class="panel_1_container">\t\t\t\t\t\t<div id="panel_1_center" class="panel_1 panel_1_center"></div>\t\t\t\t\t\t<div id="panel_1_t" class="panel_1 panel_1_t"></div>\t\t\t\t\t\t<div id="panel_1_rt" class="panel_1 panel_1_rt"></div>\t\t\t\t\t\t<div id="panel_1_r" class="panel_1 panel_1_r"></div>\t\t\t\t\t\t<div id="panel_1_rb" class="panel_1 panel_1_rb"></div>\t\t\t\t\t\t<div id="panel_1_b" class="panel_1 panel_1_b"></div>\t\t\t\t\t\t<div id="panel_1_lb" class="panel_1 panel_1_lb"></div>\t\t\t\t\t\t<div id="panel_1_l" class="panel_1 panel_1_l"></div>\t\t\t\t\t\t<div id="panel_1_lt" class="panel_1 panel_1_lt"></div>\t\t\t\t\t</div>\t\t\t\t\t<div id="miniCardBody" class="panel_1_content">\t\t\t\t\t\t<img id="miniCard_avatar" class="miniCard_avatar" />\t\t\t\t\t\t<div class="miniCard_name">\t\t\t\t\t\t\t<div id="miniCard_name_inner" class="miniCard_name_inner"></div>\t\t\t\t\t\t</div>\t\t\t\t\t\t<div id="miniCard_signature" class="miniCard_signature">\t\t\t\t\t\t\t<div id="miniCard_signature_inner" class="miniCard_signature_inner"></div>\t\t\t\t\t\t</div>\t\t\t\t\t\t<div id="miniCard_clientType_innerWrapper" class ="miniCard_clientType_innerWrapper"><div class ="miniCard_clientTypeIcon"></div><div id="miniCard_clientType_inner" class="miniCard_clientType_inner"></div></div>\t\t\t\t\t\t<div id="miniCard_level" class="miniCard_level"></div>\t\t\t\t\t\t<div id="miniCard_level_upinfo" class="miniCard_level_upinfo"></div>\t\t\t\t\t\t<div id="miniCard_quickLink" class="miniCard_quickLink">\t\t\t\t\t\t\t<a id="miniCard_video" class="miniCard_video" type="video" title="\u5f00\u59cb\u89c6\u9891\u4f1a\u8bdd" hidefocus target="_blank" href="###"></a>\t\t\t\t\t\t\t<a id="miniCard_qzone" class="miniCard_qzone" type="qzone" title="\u8bbf\u95eeQQ\u7a7a\u95f4" hidefocus target="_blank" href="###"></a>\t\t\t\t\t\t\t<a id="miniCard_qmail" class="miniCard_qmail" type="qmail" title="\u53d1\u9001\u90ae\u4ef6" hidefocus target="_blank" href="###"></a>\t\t\t\t\t\t</div>\t\t\t\t\t\t<div id="miniCard_buddyOption_tabHead" class="buddyOption_tabHead">\t\t\t\t\t\t\t<div id="miniCard_userDetails" class="buddyOption_tabHead_div">\u8be6\u7ec6\u8d44\u6599</div>\t\t\t\t\t\t</div>\t\t\t\t\t\t<div id="miniCard_buddyOption_tabBody" class="buddyOption_tabBody">\t\t\t\t\t\t</div>\t\t\t\t\t</div>\t\t\t\t</div>\t\t\t</div>',
myPanel: '<div id="EQQ_MyPanel" class="EQQ_myPanel"> <img id="EQQ_MyAvatar" class="EQQ_myAvatar"/> <div id="EQQ_myInfo" class="EQQ_myInfo"> <div id="EQQ_MyState" class="EQQ_myState" title="\u6211\u7684\u72b6\u6001"> <div id="EQQ_MyStateShow" class="EQQ_myStateShow EQQ_offline">\u72b6\u6001</div> <div class="EQQ_myStateDown">\u4e0b</div> </div> <div id="EQQ_MyNick" class="EQQ_myNick" title=""></div> <\!--div id="EQQ_MyPanel_ExitButton" title="\u9000\u51fa">\u9000\u51fa</div--\> </div> <div id="EQQ_myService" class="EQQ_myService"> <div id="EQQ_mySignature_wraper" class="EQQ_mySignature_wraper"><input id="EQQ_MySignature" class="EQQ_mySignature" type="text" title="" /></div> </div> </div> <div id="eqqMypanelToolbar" class="eqq_mypanel_toolbar"> <a href="###" title="QQ\u7a7a\u95f4" appId="16" report="qzone" class="eqq_mypanel_toolbar_button"><span class="eqq_mypanel_toolbar_icon eqq_mypanel_toolbar_qzone"></span></a> <a href="###" title="QQ\u90ae\u7bb1" appId="17" report="mail" class="eqq_mypanel_toolbar_button "><span class="eqq_mypanel_toolbar_icon eqq_mypanel_toolbar_mail"></span></a> <a href="###" title="\u817e\u8baf\u5fae\u535a" appId="2" report="weibo" class="eqq_mypanel_toolbar_button "><span class="eqq_mypanel_toolbar_icon eqq_mypanel_toolbar_weibo"></span></a> <a href="###" title="\u6211\u7684\u8d44\u8baf" appId="14" report="news" class="eqq_mypanel_toolbar_button "><span class="eqq_mypanel_toolbar_icon eqq_mypanel_toolbar_news"></span></a> <a href="###" title="QQ\u94b1\u5305" appId="4333" report="money" class="eqq_mypanel_toolbar_button "><span class="eqq_mypanel_toolbar_icon eqq_mypanel_toolbar_money"></span></a> <a href="###" title="\u817e\u8baf\u670b\u53cb" appId="21" report="pengyou" class="eqq_mypanel_toolbar_button "><span class="eqq_mypanel_toolbar_icon eqq_mypanel_toolbar_pengyou"></span></a> <a href="###" title="\u7f51\u7edc\u786c\u76d8" appId="13" report="harddisk" class="eqq_mypanel_toolbar_button "><span class="eqq_mypanel_toolbar_icon eqq_mypanel_toolbar_harddisk" ' + (Jet().platform.iPad ? ' style="opacity:0.3;" ' : "") + " ></span></a> </div>",
mainPanelHeader: '<div class="EQQ_title">\t\t\t\t<div id="EQQ_PinDownButton" class="EQQ_PinDownButton" title="\u9489\u4f4f/\u6536\u8d77">\u9489\u4f4f/\u6536\u8d77</div>\t\t\t\t<div id="EQQ_CloseButton" class="EQQ_CloseButton" title="\u9690\u85cf\u597d\u53cb\u5217\u8868">\u6700\u5c0f\u5316</div>\t\t\t\t<div id="EQQ_MinButton" class="EQQ_MinButton" title="\u8bbe\u7f6e">\u8bbe\u7f6e</div>\t\t\t\t<a class="EQQ_FeedbackButton2" href="http://support.qq.com/portal/discuss_pdt/420_1.html" target="_blank">\u53cd\u9988</a>\t\t\t\t<div id="EQQ_SettingButton" class="EQQ_settingButton" title="\u8bbe\u7f6eWebQQ">\t\t\t\t\t<div class="EQQ_settingButtonIcon">\u4e0b</div>\t\t\t\t\t<div>\u8bbe\u7f6e</div>\t\t\t\t</div>\t\t\t\t<div class="EQQ_titleText" href="#" target="_blank" title="\u8054\u7cfb\u4eba">\u8054\u7cfb\u4eba</div>\t\t\t\t<div class="EQQ_betaText" title="1.0.10.12"></div>\t\t\t</div>\t\t\t<div id="EQQ_YellowTips" class="EQQ_YellowTips">\t\t\t\t<div id="EQQ_YellowTips_CloseButton" class="EQQ_YellowTips_CloseButton" title="\u5173\u95ed\u63d0\u793a">X</div>\t\t\t\t<a class="EQQ_YellowTips_Link" href="http://survey.qq.com/cgi-bin/submitsurvey?id=2473&qpage=1&page=1&rm=dnN4k1bBG" target="_blank">\u9080\u8bf7\u53c2\u4e0eWebQQ\u7528\u6237\u8c03\u67e5</a>\t\t\t</div>',
mainPanelFooter: '<div> <div id="EQQ_Logining">\u53d1\u8d77\u8fde\u63a5...</div> </div> <div id="EQQ_Logining_feedback"><a href="http://support.qq.com/write.shtml?guest=1&fid=513" target="_blank"> <span class="warnning_yellow"> </span>\u53cd\u9988\u767b\u5f55\u5efa\u8bae</a></div> <div id="EQQ_ReLoginPanel"> <div id="EQQ_ReLoginPanel_inner"><div style="display:inline;" id="EQQ_ReLoginButton_text">\u767b\u5f55\u5931\u8d25</div>\uff0c<span id="EQQ_ReLoginButton">\u91cd\u8bd5</span></div> </div>',
searchReaultPanel: '<div id="EQQ_SearchResultPanel" class="EQQ_SearchResultPanel-1"> <div class="EQQ_SearchResultItem" title="">Kevity1(666666)</div> <div class="EQQ_SearchResultItemHover" title="">Kevity2(666666)</div> <div class="EQQ_SearchResultItem" title="">Kevity3(66666)</div> </div>',
searchReaultPanelFlex: '<div id="EQQ_SearchResultPanel_iframeWrap" class="EQQ_SearchResultPanel_iframeWrap"> <div id="EQQ_SearchResultPanel" class="EQQ_SearchResultPanel"> <div class="EQQ_SearchResultItem" title="">Kevity1(666666)</div> <div class="EQQ_SearchResultItemHover" title="">Kevity2(666666)</div> <div class="EQQ_SearchResultItem" title="">Kevity3(66666)</div> </div> <iframe class="EQQ_SearchResultPanel_iframe"></iframe> </div>',
buddyListBody: "",
buddyListBodyFlex: '<iframe id="iframe_fflist" width="100%" height="100%" border="0" frameborder="0" style="border:0;overflow:hidden;" allowtransparency="true" src="' + qqweb.CONST.MAIN_URL + 'swf/fflist.html?t=20110113001"></iframe> <\!--<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%" id="fflist" align="middle"> <param name="movie" value="./module/eqq/swf/fflist.swf" /> <param name="quality" value="high" /> <param name="play" value="true" /> <param name="loop" value="true" /> <param name="wmode" value="transparent" /> <param name="scale" value="showall" /> <param name="menu" value="true" /> <param name="devicefont" value="false" /> <param name="salign" value="" /> <param name="allowScriptAccess" value="always" /> <embed wmode="transparent" src="./module/eqq/swf/fflist.swf" width="100%" height="100%" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"type="application/x-shockwave-flash"></embed></object--\>',
mainPanelBody: '<div id="EQQ_LoginSuccess">\t\t\t\t<div id="EQQ_SearchBar" class="EQQ_SearchBar">\t\t\t\t\t<input id="EQQ_SearchBox" class="EQQ_SearchBox" name="" type="text" value="\u641c\u7d22\u597d\u53cb..." title="\u641c\u7d22\u597d\u53cb..." />\t\t\t\t\t<div id="EQQ_SearchButton" class="EQQ_SearchButton" title="\u641c\u7d22...">\u641c\u7d22\u6309\u94ae</div>\t\t\t\t</div>\t\t\t\t<%=searchReaultPanel%>\t\t\t\t<ul class="EQQ_tab">\t\t\t\t\t<li id="EQQ_TabBuddyList" class="EQQ_tabBuddyList" title="\u8054\u7cfb\u4eba"><a href="###" id="EQQ_TabBuddyList_MenuIcon" class="EQQ_tabmenu_icon"></a><div class="EQQ_tabBuddyList_icon"></div></li>\t\t\t\t\t<li id="EQQ_TabGroupList" class="EQQ_tabGroupList" title="\u7fa4/\u8ba8\u8bba\u7ec4"><a href="###" id="EQQ_TabGroupList_MenuIcon" class="EQQ_tabmenu_icon"></a><div class="EQQ_tabGroupList_icon"></div></li>\t\t\t\t\t<li id="EQQ_TabRecentList" class="EQQ_tabRecentList" title="\u6700\u8fd1\u8054\u7cfb\u4eba"><a href="###" id="EQQ_TabRecentList_MenuIcon" class="EQQ_tabmenu_icon"></a><div class="EQQ_tabRecentList_icon"></div></li>\t\t\t\t</ul>\t\t\t\t<div id="EQQ_ListContainer">\t\t\t\t\t<div id="EQQ_buddyListPanel" class="EQQ_buddyListPanel ">\t\t\t\t\t\t<div id="EQQ_buddyList" class="EQQ_buddyList">\t\t\t\t\t\t<%=buddyListBody%> </div>\t\t\t\t\t\t<div id="EQQ_buddyListPanelBottom" class="EQQ_ListBottom">\t\t\t\t\t\t\t\t<a href="" id="EQQ_findBuddy" class="searchBuddy" target="_blank"><div class="searchBuddy_div"></div>\u67e5\u627e</a>\t\t\t\t\t\t\t\t<a href="" id="EQQ_buddyManage" class="buddy_manage_icon" target="_blank"><div class="buddy_manage_icon_div"></div>\u597d\u53cb\u7ba1\u7406</a> <a href="" id="EQQ_messageManage" class="message_manage_icon" target="_blank"><div class="message_manage_icon_div"></div>\u6d88\u606f\u7ba1\u7406</a>\t\t\t\t\t\t</div>\t\t\t\t\t</div>\t\t\t\t\t<div id="EQQ_groupListPanel" class="EQQ_groupListPanel ">\t\t\t\t\t\t<ul id="EQQ_groupTab" class="EQQ_groupTab"><li id="EQQ_groupTabGroup" class="seled">QQ\u7fa4</li><li id="EQQ_groupTabDiscu">\u8ba8\u8bba\u7ec4</li></ul>\t\t\t\t\t\t<div id="EQQ_groupBox" class="EQQ_groupBox">\t\t\t\t\t\t\t<div id="EQQ_groupListOuter" class="EQQ_groupListOuter"><div id="EQQ_groupListInner" class="EQQ_groupListInner"></div></div>\t\t\t\t\t\t\t<div id="EQQ_groupListPanelBottom" class="EQQ_ListBottom">\t\t\t\t\t\t\t\t<a id="EQQ_createGroupButton" class="createGroup" href="http://qun.qq.com/air/create" target="_blank" title="\u521b\u5efa\u7fa4"><div class="createGroup_div"></div>\u521b\u5efa</a>\t\t\t\t\t\t\t\t<a id="EQQ_searchGroupButton" class="searchGroup" href="http://qun.qq.com/air/search" target="_blank" title="\u67e5\u627e\u7fa4"><div class="searchGroup_div"></div>\u67e5\u627e</a>\t\t\t\t\t\t\t\t<div id="EQQ_ListBottom_maskButton"><div></div>\u7fa4\u5c4f\u853d</div>\t\t\t\t\t\t\t</div>\t\t\t\t\t\t</div>\t\t\t\t\t\t<div id="EQQ_discuBox" class="EQQ_groupBox" style="display:none">\t\t\t\t\t\t\t<div id="EQQ_discuListOuter" class="EQQ_groupListOuter">\t\t\t\t\t\t\t\t<div id="EQQ_discuListInner" class="EQQ_groupListInner"></div>\t\t\t\t\t\t\t\t<div id="EQQ_discuListFail" class="EQQ_groupListInner EQQ_failBox">\t\t\t\t\t\t\t\t\t<div id="EQQ_discuReLogin_text" style="display: inline;">\u767b\u5f55\u5931\u8d25,<a href="#">\u91cd\u8bd5</a></div> \t\t\t\t\t\t\t\t\t<div id="EQQ_discuReLogining_text" class="EQQ_discuReLogining_text">Loading...</div>\t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t<div id="EQQ_discuCreate" class="EQQ_discuCreate">\t\t\t\t\t\t\t\t\t<div class="EQQ_discuCreate_text">\u8ba8\u8bba\u7ec4\u80fd\u8f7b\u677e\u53d1\u8d77\u591a\u4eba\u4f1a\u8bdd</div>\t\t\t\t\t\t\t\t\t<div class="EQQ_discuCreate_button_container">\t\t\t\t\t\t\t\t\t\t<a id="EQQ_discuCreate_button" class="createGroup" href="#" target="_blank" title="\u521b\u5efa\u8ba8\u8bba\u7ec4"></a>\t\t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t</div>\t\t\t\t\t\t\t<div id="EQQ_discuListPanelBottom" class="EQQ_ListBottom">\t\t\t\t\t\t\t\t<a id="EQQ_createDiscuButton" class="createGroup" href="#" target="_blank" title="\u521b\u5efa\u8ba8\u8bba\u7ec4"><div class="createGroup_div"></div>\u521b\u5efa\u8ba8\u8bba\u7ec4</a>\t\t\t\t\t\t\t</div>\t\t\t\t\t\t</div>\t\t\t\t\t</div>\t\t\t\t\t<div id="EQQ_recentListPanel" class="EQQ_recentListPanel "><div id="EQQ_recentList" class="EQQ_recentList"></div></div>\t\t\t\t</div>\t\t\t</div>'
},
g = function(d) {
$D = d.dom;
$E = d.event;
$S = d.string;
var b = !1;
this.createDiscu = function(a) {
a.preventDefault();
alloy.portal.runApp("selectBuddy", {
title: "\u521b\u5efa\u8ba8\u8bba\u7ec4",
isAddSelf: !0,
maxBuddy: 20,
onSelected: EQQ.Model.BuddyList.createDiscu
})
};
this.onDiscuListClick = function(a) {
a = a.getAttribute("did");
$E.notifyObservers(this, "StartDiscuChat", a);
pgvSendClick({
hottag: "web2qq.qqpanel.discu.sendmsg"
});
alloy.util.report2im("qqpanel|dicussions|sendmsg")
};
this.getNewNode = function(a, b) {
var b = b || !1,
d = "",
f = b ? "EQQ_RecentList_State_" + a.did : "EQQ_discuList_State_" + a.did,
g = b ? "EQQ_RecentDiscuList_State_" + a.did : "EQQ_discuList_Name_" + a.did;
parseInt(a.mask) > 0 && (d = " EQQ_GroupMask_State");
d = $S.template('\t\t\t\t<div class="EQQ_GroupList_AvatarContainer">\t\t\t\t\t<div class="EQQ_discuList_Avatar"></div>\t\t\t\t\t<div class="EQQ_GroupList_State ' + d + '" id="' + f + '" title="\u8ba8\u8bba\u7ec4\u5c4f\u853d"></div>\t\t\t\t</div>\t\t\t\t<div class="EQQ_GroupList_RightContainer" title="<%=titleName%>">\t\t\t\t\t<div id="' + g + '" class="EQQ_GroupList_Name"><%=htmlName%></div>\t\t\t\t</div>\t\t\t', a);
f = $D.node("div", {
id: b ? "EQQ_Recent_" + a.did : "EQQ_Discu_" + a.did,
did: a.did,
"class": "EQQ_GroupList_Group"
});
f.innerHTML = d;
return f
};
this.removeDiscu = function(a) {
var b = $D.id("EQQ_Discu_" + a);
if (b && ($E.off(b), b.parentNode)) {
var d = b.parentNode;
d.removeChild(b)
}
if (a = $D.id("EQQ_Recent_" + a)) if ($E.off(a), a.parentNode) d = a.parentNode,
d.removeChild(a); (d = $D.id("EQQ_discuListInner")) && d.innerHTML == "" && this.showCreatePanel()
};
this.discuJumpUp = function(a) {
b = !0;
for (var c = 0; c < a.length; c++) {
var d = $D.id("EQQ_Discu_" + a[c]);
d && $D.addClass(d, "EQQ_jumpUpInGroupList")
}
};
this.discuJumpDown = function(a) {
b = !1;
for (var c = 0; c < a.length; c++) {
var d = $D.id("EQQ_Discu_" + a[c]);
d && $D.removeClass(d, "EQQ_jumpUpInGroupList")
}
};
this.discuJumpAvatar = function(a) {
b ? this.discuJumpDown(a) : this.discuJumpUp(a)
};
this.onCreateDiscu = function(a, b) {
a.preventDefault();
alloy.portal.runApp("selectBuddy", {
title: "\u521b\u5efa\u8ba8\u8bba\u7ec4",
isAddSelef: !0,
maxBuddy: 20,
onSelected: EQQ.Model.BuddyList.createDiscu
});
d.isUndefined(b) && alloy.util.report2im("qqpanel|dicussions|create")
};
this.updateDiscuName = function(a) {
var b = $D.id("EQQ_discuList_Name_" + a.did);
b.parentNode.title = a.titleName;
b.innerHTML = a.htmlName;
if (b = $D.id("EQQ_RecentDiscuList_State_" + a.did)) b.parentNode.title = a.titleName,
b.innerHTML = a.htmlName
};
this.setDiscuListMaskState = function(a, b) {
var d = $D.id("EQQ_discuList_State_" + a),
f = $D.id("EQQ_RecentList_State_" + a);
parseInt(b) > 0 ? (d && $D.addClass(d, "EQQ_GroupMask_State"), f && $D.addClass(f, "EQQ_GroupMask_State")) : (d && $D.removeClass(d, "EQQ_GroupMask_State"), f && $D.removeClass(f, "EQQ_GroupMask_State"))
};
this.onDiscuListContextMenu = function(a) {
a.preventDefault();
this.discuGlobalMenu.setZIndex(qqweb.layout.getTopZIndex(3));
this.discuGlobalMenu.show(a.clientX, a.clientY);
qqweb.util.report2qqweb("contextmenu|dicussions|all")
};
this.onDiscuContextMenu = function(a, b) {
a.preventDefault();
a.stopPropagation();
this.setDiscuMaskItemState(b);
this.discuMenu.setArgument(b);
this.discuMenu.setZIndex(qqweb.layout.getTopZIndex(3));
this.discuMenu.show(a.clientX, a.clientY)
};
this.setDiscuMaskItemState = function(a) {
var a = EQQ.Model.BuddyList.getDiscuById(a),
b = 2,
b = [this.discuMenu.getItemAt(b++), this.discuMenu.getItemAt(b++), this.discuMenu.getItemAt(b++)],
a = a.mask,
d;
for (d in b) b[d].option.argument.state == a ? b[d].setIcon({
style: "background: url(./style/images/eqq_sprite.gif) no-repeat 5px -33px;"
}) : b[d].setIcon(null)
};
this.onDiscuMaskItemClick = function(a, b) {
var d = b.option.argument,
f = this.discuMenu.getArgument();
EQQ.Model.BuddyList.sendChangeDiscuMask({
type: "single",
uin: f,
mask: d.state
});
qqweb.util.report2qqweb("contextmenu|dicussions|" + d.flag)
};
this.showReloadDiscuList = function() {
this.EQQ_discuListInner.innerHTML = "";
var a = $D.id("EQQ_discuListFail"),
b = $D.id("EQQ_discuReLogin_text"),
d = $D.id("EQQ_discuReLogining_text");
$D.show(a);
$D.show(b);
$D.hide(d);
$E.off(a, "click");
$E.on(a, "click",
function(a) {
a.preventDefault();
a.stopPropagation();
EQQ.Model.BuddyList.sendGetDiscuList();
$D.show(d);
$D.hide(b)
});
this.hideCreatePanel()
};
this.hideReloadDiscuList = function() {
var a = $D.id("EQQ_discuListFail");
$D.isShow(a) && $D.hide(a)
};
this.showCreatePanel = function() {
var a = $D.id("EQQ_discuCreate");
$D.isShow(a) || $D.show(a)
};
this.hideCreatePanel = function() {
var a = $D.id("EQQ_discuCreate");
$D.isShow(a) && $D.hide(a)
}
},
f = function(f) {
var b = this,
a = f.dom,
c = f.event,
j = f.string,
m = !1,
z = !1,
q = !1,
o = !1,
i = {},
r = [],
k = [],
D = [],
B = [],
E = [],
w = {},
x = 0,
C = 160,
F = "0",
u = alloy.layout.getPanel("desktop").body,
s,
K,
G = [],
e = !1,
n = !1,
y,
A = "single",
H = "group",
I = "",
Q = !1,
O;
EQQ.avatarMouseoverTimer = null;
var l = {},
P = !1;
g.apply(this, [f]);
var R = function(a, b) {
var c = b.option.argument,
d;
c.type == "single" ? (d = h.getArgument(), d = EQQ.Model.BuddyList.getGroupByCode(d).gid, d = {
type: c.type,
uin: d,
mask: c.state + ""
}) : d = {
type: c.type,
uin: EQQ.Model.BuddyList.getSelfUin(),
mask: c.state + ""
};
EQQ.Model.BuddyList.sendChangeGroupMask(d);
qqweb.util.report2qqweb("contextmenu|group|" + c.flag)
},
J,
T,
h,
M,
L,
U,
V,
N,
S,
Y = [{
text: "\u53d1\u9001\u5373\u65f6\u6d88\u606f",
onClick: function() {
var a = J.getArgument();
c.notifyObservers(b, "StartChat", a);
qqweb.util.report2qqweb("contextmenu|contancts|sendmsg")
}
},
{
text: "\u53d1\u9001\u7535\u5b50\u90ae\u4ef6",
onClick: function() {
var a = J.getArgument();
qqweb.rpcService.sendGetFriendUin2(a, 3,
function(a) {
qqweb.portal.runApp("6", {
url: EQQ.getSendMailUrl(a.result.account)
});
qqweb.util.report2qqweb("contextmenu|contancts|mail")
})
}
},
{
type: "separator"
},
{
text: "\u8bbf\u95eeQQ\u7a7a\u95f4",
onClick: function() {
var a = J.getArgument();
qqweb.rpcService.sendGetFriendUin2(a, 2,
function(a) {
qqweb.portal.runApp("6", {
url: EQQ.getQzoneUrl(a.result.account)
});
qqweb.util.report2qqweb("contextmenu|contancts|qzone")
})
}
},
{
text: "\u521b\u5efa\u684c\u9762\u8054\u7cfb\u4eba",
onClick: function() {
var a = J.getArgument();
alloy.desktopContact.addContactIcon({
t: "uin",
id: Number(a)
});
qqweb.util.report2qqweb("contextmenu|contancts|adddeskcontanct")
}
},
{
type: "separator"
},
{
text: "\u79fb\u52a8\u5206\u7ec4",
onClick: function() {
qqweb.portal.runApp("5", {});
qqweb.util.report2qqweb("contextmenu|contancts|manage")
}
},
{
text: "\u5220\u9664\u597d\u53cb",
onClick: function() {
qqweb.portal.runApp("5", {});
qqweb.util.report2qqweb("contextmenu|contancts|manage")
}
},
{
text: "\u4fee\u6539\u5907\u6ce8",
onClick: function() {
qqweb.portal.runApp("5", {});
qqweb.util.report2qqweb("contextmenu|contancts|manage")
}
},
{
text: "\u9690\u8eab\u8bbe\u7f6e",
onClick: function() {
qqweb.portal.runApp("5", {});
qqweb.util.report2qqweb("contextmenu|contancts|manage")
}
},
{
type: "separator"
},
{
text: "\u6d88\u606f\u8bb0\u5f55",
onClick: function() {
var a = J.getArgument();
qqweb.portal.runApp("chatLogViewer", a);
qqweb.util.report2qqweb("contextmenu|contancts|chats")
}
},
{
text: "\u67e5\u770b\u8d44\u6599",
onClick: function() {
var a = J.getArgument();
qqweb.portal.runApp("userDetails", a);
qqweb.util.report2qqweb("contextmenu|contancts|profile")
}
}],
ja = [{
text: "\u5934\u50cf\u663e\u793a",
type: "submenu",
icon: {
className: "eqq_header_switch_icon"
},
beforeShow: function(a) {
ba() ? (a.getItemAt(0).setIcon({
className: "eqq_cxmenu_check_icon"
}), a.getItemAt(1).setIcon()) : (a.getItemAt(0).setIcon(), a.getItemAt(1).setIcon({
className: "eqq_cxmenu_check_icon"
}))
},
items: [{
text: "\u5927\u5934\u50cf",
onClick: function() {
b.ifFlexReady ? b.setFlexBigHead(!0) : W("single", !0);
X("single", !0);
qqweb.util.report2qqweb("contextmenu|contancts|largeicon")
}
},
{
text: "\u5c0f\u5934\u50cf",
onClick: function() {
b.ifFlexReady ? b.setFlexBigHead(!1) : W("single", !1);
X("single", !1);
qqweb.util.report2qqweb("contextmenu|contancts|normalicon")
}
}]
},
{
text: "\u663e\u793a\u5728\u7ebf\u8054\u7cfb\u4eba",
onClick: function(v, c) {
if (P) {
for (var d = f.dom.mini(".EQQ_offlineBuddy", b.EQQ_buddyListPanel), e = 0, g = d.length; e < g; e++) a.show(d[e]);
c.setText("\u663e\u793a\u5728\u7ebf\u8054\u7cfb\u4eba");
P = !1
} else {
d = f.dom.mini(".EQQ_offlineBuddy", b.EQQ_buddyListPanel);
e = 0;
for (g = d.length; e < g; e++) a.hide(d[e]);
c.setText("\u663e\u793a\u6240\u6709\u8054\u7cfb\u4eba");
P = !0
}
qqweb.util.report2qqweb("contextmenu|contancts|onlineonly")
}
},
{
text: "\u597d\u53cb\u6279\u91cf\u7ba1\u7406",
onClick: function() {
qqweb.portal.runApp("5", {});
qqweb.util.report2qqweb("contextmenu|contancts|manage")
}
},
{
text: "\u67e5\u627e/\u6dfb\u52a0\u597d\u53cb",
onClick: function() {
qqweb.portal.runApp("buddyFinder", {});
qqweb.util.report2qqweb("contextmenu|contancts|add")
}
}],
Ca = [{
text: "\u53d1\u9001\u7fa4\u6d88\u606f",
onClick: function() {
var a = h.getArgument();
c.notifyObservers(b, "StartGroupChat", a);
qqweb.util.report2qqweb("contextmenu|group|sendmsg")
}
},
{
type: "separator"
},
{
text: "\u8bbf\u95ee\u7fa4\u793e\u533a",
onClick: function(a, b) {
var c = h.getArgument();
l[c] ? (qqweb.portal.openInWebBrowser({
url: EQQ.CONST.QQ_GROUP_URL + l[c],
title: b.option.title
}), qqweb.util.report2qqweb("contextmenu|group|qun")) : qqweb.rpcService.sendGetFriendUin2(c, 4,
function(a) {
qqweb.portal.openInWebBrowser({
url: EQQ.CONST.QQ_GROUP_URL + a.result.account,
title: b.option.title
});
qqweb.util.report2qqweb("contextmenu|group|qun")
})
}
},
{
text: "\u67e5\u770b\u7fa4\u8d44\u6599",
onClick: function() {
var a = h.getArgument(),
a = {
gid: EQQ.Model.BuddyList.getGroupByCode(a).gid,
gcode: a,
from: "groupDetail"
};
qqweb.portal.runApp("groupDetails", a);
qqweb.util.report2qqweb("contextmenu|group|profile")
}
},
{
text: "\u67e5\u770b\u6d88\u606f\u8bb0\u5f55",
onClick: function() {
var a = h.getArgument(),
a = {
gid: EQQ.Model.BuddyList.getGroupByCode(a).gid,
gcode: a,
from: "group"
};
qqweb.portal.runApp("chatLogViewer", a);
qqweb.util.report2qqweb("contextmenu|group|chats")
}
},
{
type: "separator"
},
{
text: "\u63a5\u6536\u5e76\u63d0\u793a\u7fa4\u6d88\u606f",
argument: {
type: "single",
state: 0,
flag: "single|withalert"
},
onClick: R
},
{
text: "\u63a5\u6536\u4e0d\u63d0\u793a\u7fa4\u6d88\u606f",
argument: {
type: "single",
state: 1,
flag: "single|withoutalert"
},
onClick: R
},
{
text: "\u5b8c\u5168\u963b\u6b62\u7fa4\u6d88\u606f",
argument: {
type: "single",
state: 2,
flag: "single|block"
},
onClick: R
},
{
type: "separator"
},
{
text: "\u521b\u5efa\u684c\u9762\u8054\u7cfb\u4eba",
onClick: function() {
var a = h.getArgument(),
b = EQQ.Model.BuddyList.getGroupByCode(a).gid;
alloy.desktopContact.addContactIcon({
t: "gid",
id: Number(a),
gid: b
});
qqweb.util.report2qqweb("contextmenu|group|adddeskcontanct")
}
},
{
text: "\u9000\u51fa\u8be5\u7fa4",
onClick: function() {
var a = h.getArgument();
qqweb.layout.confirm("\u60a8\u771f\u7684\u8981\u9000\u51fa\u8be5\u7fa4\u5417?(\u9000\u7fa4\u901a\u77e5\u4ec5\u7ba1\u7406\u5458\u53ef\u89c1)",
function() {
qqweb.rpcService.sendQuitGroup({
gcode: a
});
qqweb.util.report2qqweb("contextmenu|group|quit")
})
}
}],
Da = [{
text: "\u5934\u50cf\u663e\u793a",
type: "submenu",
icon: {
className: "eqq_header_switch_icon"
},
beforeShow: function(a) {
ca() ? (a.getItemAt(0).setIcon({
className: "eqq_cxmenu_check_icon"
}), a.getItemAt(1).setIcon()) : (a.getItemAt(0).setIcon(), a.getItemAt(1).setIcon({
className: "eqq_cxmenu_check_icon"
}))
},
items: [{
text: "\u5927\u5934\u50cf",
onClick: function() {
W("group", !0);
X("group", !0);
qqweb.util.report2qqweb("contextmenu|group|largeicon")
}
},
{
text: "\u5c0f\u5934\u50cf",
onClick: function() {
W("group", !1);
X("group", !1);
qqweb.util.report2qqweb("contextmenu|group|normalicon")
}
}]
},
{
text: "\u8bbf\u95ee\u6211\u7684\u7fa4\u4e3b\u9875",
link: EQQ.CONST.QQ_GROUP_URL,
onClick: function(a, b) {
a.preventDefault();
qqweb.portal.openInWebBrowser({
url: b.option.link,
title: b.option.title
});
qqweb.util.report2qqweb("contextmenu|group|all|qun")
}
},
{
type: "separator"
},
{
text: "\u4f7f\u7528\u7fa4\u81ea\u8eab\u7684\u6d88\u606f\u8bbe\u7f6e",
argument: {
type: "global",
state: 0,
flag: "all|self"
},
onClick: R
},
{
text: "\u6240\u6709\u7fa4\u63a5\u6536\u5e76\u63d0\u793a\u6d88\u606f",
argument: {
type: "global",
state: 1,
flag: "all|withalert"
},
onClick: R
},
{
text: "\u6240\u6709\u7fa4\u63a5\u6536\u4e0d\u63d0\u793a\u6d88\u606f",
argument: {
type: "global",
state: 2,
flag: "all|withoutalert"
},
onClick: R
},
{
text: "\u6240\u6709\u7fa4\u5b8c\u5168\u963b\u6b62\u7fa4\u6d88\u606f",
argument: {
type: "global",
state: 3,
flag: "all|block"
},
onClick: R
},
{
type: "separator"
},
{
text: "\u67e5\u627e\u6dfb\u52a0\u7fa4",
link: EQQ.CONST.QQ_GROUP_URL + "search",
onClick: function(a, b) {
a.preventDefault();
qqweb.portal.openInWebBrowser({
url: b.option.link,
title: b.option.title
});
qqweb.util.report2qqweb("contextmenu|group|search")
}
},
{
text: "\u521b\u5efa\u4e00\u4e2a\u7fa4",
link: EQQ.CONST.QQ_GROUP_URL + "create",
onClick: function(a, b) {
a.preventDefault();
qqweb.portal.openInWebBrowser({
url: b.option.link,
title: b.option.title
});
qqweb.util.report2qqweb("contextmenu|group|create")
}
}],
Ea = [{
text: "\u53d1\u9001\u8ba8\u8bba\u7ec4\u6d88\u606f",
onClick: function() {
var a = V.getArgument();
c.notifyObservers(b, "StartDiscuChat", a);
alloy.util.report2im("contextmenu|dicussions|sendmsg")
}
},
{
type: "separator"
},
{
text: "\u63a5\u6536\u5e76\u63d0\u793a\u8ba8\u8bba\u7ec4\u6d88\u606f",
argument: {
type: "single",
state: 0,
flag: "single|withalert"
},
onClick: function(a, c) {
b.onDiscuMaskItemClick(a, c)
}
},
{
text: "\u63a5\u6536\u4e0d\u63d0\u793a\u8ba8\u8bba\u7ec4\u6d88\u606f",
argument: {
type: "single",
state: 1,
flag: "single|withoutalert"
},
onClick: function(a, c) {
b.onDiscuMaskItemClick(a, c)
}
},
{
text: "\u5b8c\u5168\u963b\u6b62\u8ba8\u8bba\u7ec4\u6d88\u606f",
argument: {
type: "single",
state: 2,
flag: "single|block"
},
onClick: function(a, c) {
b.onDiscuMaskItemClick(a, c)
}
},
{
type: "separator"
},
{
text: "\u9000\u51fa\u8be5\u8ba8\u8bba\u7ec4",
onClick: function() {
var a = V.getArgument();
qqweb.layout.confirm("\u60a8\u771f\u7684\u8981\u9000\u51fa\u8be5\u8ba8\u8bba\u7ec4\u5417?",
function() {
c.notifyObservers(EQQ, "QuitDiscu", {
did: a
});
qqweb.util.report2qqweb("contextmenu|dicussions|quit")
})
}
}],
Fa = [{
text: "\u5934\u50cf\u663e\u793a",
type: "submenu",
icon: {
className: "eqq_header_switch_icon"
},
beforeShow: function(a) {
ca() ? (a.getItemAt(0).setIcon({
className: "eqq_cxmenu_check_icon"
}), a.getItemAt(1).setIcon()) : (a.getItemAt(0).setIcon(), a.getItemAt(1).setIcon({
className: "eqq_cxmenu_check_icon"
}))
},
items: [{
text: "\u5927\u5934\u50cf",
onClick: function() {
W("group", !0);
X("group", !0);
qqweb.util.report2qqweb("contextmenu|dicussions|largeicon")
}
},
{
text: "\u5c0f\u5934\u50cf",
onClick: function() {
W("group", !1);
X("group", !1);
qqweb.util.report2qqweb("contextmenu|dicussions|normalicon")
}
}]
},
{
text: "\u521b\u5efa\u8ba8\u8bba\u7ec4",
onClick: function(a) {
a.preventDefault();
b.onCreateDiscu(a, "contextmenu");
alloy.util.report2im("contextmenu|dicussions|create")
}
}],
Ga = [{
text: "\u5934\u50cf\u663e\u793a",
type: "submenu",
icon: {
className: "eqq_header_switch_icon"
},
beforeShow: function(a) {
da() ? (a.getItemAt(0).setIcon({
className: "eqq_cxmenu_check_icon"
}), a.getItemAt(1).setIcon()) : (a.getItemAt(0).setIcon(), a.getItemAt(1).setIcon({
className: "eqq_cxmenu_check_icon"
}))
},
items: [{
text: "\u5927\u5934\u50cf",
onClick: function() {
W("recent", !0);
X("recent", !0);
qqweb.util.report2qqweb("contextmenu|recent|largeicon")
}
},
{
text: "\u5c0f\u5934\u50cf",
onClick: function() {
W("recent", !1);
X("recent", !1);
qqweb.util.report2qqweb("contextmenu|recent|normalicon")
}
}]
}];
this.createContextMenu = function() {
J = new f.ui.ContextMenu({
id: "singleMenu",
container: qqweb.layout.getDesktop().body,
items: Y
});
T = new f.ui.ContextMenu({
id: "singleGlobalMenu",
container: qqweb.layout.getDesktop().body,
items: ja
});
h = new f.ui.ContextMenu({
id: "groupMenu",
container: qqweb.layout.getDesktop().body,
width: 150,
items: Ca
});
M = new f.ui.ContextMenu({
id: "groupGlobalMenu",
container: qqweb.layout.getDesktop().body,
width: 180,
beforeShow: Na,
items: Da
});
V = new f.ui.ContextMenu({
id: "discuMenu",
container: qqweb.layout.getDesktop().body,
width: 180,
items: Ea
});
N = new f.ui.ContextMenu({
id: "discuGlobalMenu",
container: qqweb.layout.getDesktop().body,
width: 150,
items: Fa
});
S = new f.ui.ContextMenu({
id: "recentGlobalMenu",
container: qqweb.layout.getDesktop().body,
width: 150,
items: Ga
});
b.discuMenu = V;
b.discuGlobalMenu = N;
y = {
single: T,
group: M,
discu: N,
recent: S
};
c.addObserver(qqweb.rpcService, "sendQuitGroupSuccess", Oa)
};
var Ha = function(a) {
a.preventDefault();
T.setZIndex(qqweb.layout.getTopZIndex(3));
T.show(a.clientX, a.clientY);
qqweb.util.report2qqweb("contextmenu|contancts|all")
},
Ia = function(a) {
a.preventDefault();
M.setZIndex(qqweb.layout.getTopZIndex(3));
M.show(a.clientX, a.clientY);
qqweb.util.report2qqweb("contextmenu|group|all")
},
Ja = function(a) {
a.preventDefault();
S.setZIndex(qqweb.layout.getTopZIndex(3));
S.show(a.clientX, a.clientY)
},
oa = function(a) {
a.preventDefault();
a.stopPropagation();
J.setArgument(this.getAttribute("uin"));
J.setZIndex(qqweb.layout.getTopZIndex(3));
J.show(a.clientX, a.clientY);
qqweb.util.report2qqweb("contextmenu|contancts|person")
},
Ka = function(a) {
a.preventDefault();
a.stopPropagation();
J.setArgument(this.getAttribute("uin"));
J.setZIndex(qqweb.layout.getTopZIndex(3));
J.show(a.clientX, a.clientY);
qqweb.util.report2qqweb("contextmenu|recent|person")
},
La = function(a) {
a.preventDefault();
a.stopPropagation();
var b = this.getAttribute("code");
pa(b);
h.setArgument(b);
h.setZIndex(qqweb.layout.getTopZIndex(3));
h.show(a.clientX, a.clientY);
qqweb.util.report2qqweb("contextmenu|group|single")
},
Ma = function(a) {
a.preventDefault();
a.stopPropagation();
var b = this.getAttribute("code");
pa(b);
h.setArgument(b);
h.setZIndex(qqweb.layout.getTopZIndex(3));
h.show(a.clientX, a.clientY);
qqweb.util.report2qqweb("contextmenu|recent|single")
},
ka = function(b) {
b.preventDefault();
b.stopPropagation();
b = A === "group" ? H : A;
if (y[b]) {
b = y[b];
b.setZIndex(qqweb.layout.getTopZIndex(3));
var c = a.getClientXY(this);
b.show(c[0], c[1] + 28, 0)
}
switch (A) {
case "single":
qqweb.util.report2qqweb("qqpanel|contacts|tabmenu|menu");
break;
case "group":
qqweb.util.report2qqweb("qqpanel|groups|tabmenu|menu");
break;
case "recent":
qqweb.util.report2qqweb("qqpanel|recent|tabmenu|menu")
}
},
Pa = function(c) {
c.preventDefault();
c = a.getClientXY(this);
c[0] -= b.statePanel ? b.statePanel.getWidth() : 100;
c[1] -= b.statePanel ? b.statePanel.getHeight() : 176;
ga(c);
alloy.util.report2im("contextmenu|statechange")
},
Oa = function(a) {
a = a.arguments.gcode;
qqweb.portal.getApp("50").run({
api: ["exitGroup", [a]],
loginMode: "logined"
})
},
pa = function(a) {
a = EQQ.Model.BuddyList.getGroupByCode(a);
if (!L) {
var b = 6;
L = [h.getItemAt(b++), h.getItemAt(b++), h.getItemAt(b++)]
}
var a = a.mask,
c;
for (c in L) L[c].option.argument.state == a ? L[c].setIcon({
className: "eqq_cxmenu_check_icon"
}) : L[c].setIcon(null)
},
Na = function() {
if (!U) {
var a = 3;
U = [M.getItemAt(a++), M.getItemAt(a++), M.getItemAt(a++), M.getItemAt(a++)]
}
var a = EQQ.Model.BuddyList.getGroupMask(),
b;
for (b in U) U[b].option.argument.state == a ? U[b].setIcon({
className: "eqq_cxmenu_check_icon"
}) : U[b].setIcon(null)
},
X = this.setBigHead = function(a, b) {
var c = alloy.config.configList.useBigHead;
switch (a) {
case "single":
b ? c |= 1 : c &= -2;
break;
case "group":
b ? (c |= 2, e || (e = !0, qa())) : c &= -3;
break;
case "recent":
b ? (c |= 4, n || (n = !0, ra())) : c &= -5
}
EQQ.Presenter.MainPanel.saveBigHeadSetting(c)
},
W = function(c, d) {
var f;
switch (c) {
case "single":
f = b.EQQ_buddyListPanel;
break;
case "group":
f = b.EQQ_groupListPanel;
break;
case "recent":
f = b.EQQ_recentListPanel
}
f && (d ? a.addClass(f, "EQQ_List_BigHead") : (a.removeClass(f, "EQQ_List_BigHead"), c == "single" && la()))
},
sa = function() {
ba() ? b.ifFlexReady ? b.setFlexBigHead(!0) : a.addClass(b.EQQ_buddyListPanel, "EQQ_List_BigHead") : b.ifFlexReady ? b.setFlexBigHead(!1) : a.removeClass(b.EQQ_buddyListPanel, "EQQ_List_BigHead");
ca() ? a.addClass(b.EQQ_groupListPanel, "EQQ_List_BigHead") : a.removeClass(b.EQQ_groupListPanel, "EQQ_List_BigHead");
da() ? a.addClass(b.EQQ_recentListPanel, "EQQ_List_BigHead") : a.removeClass(b.EQQ_recentListPanel, "EQQ_List_BigHead")
},
ba = this.isBuddyListUseBigHead = function() {
return alloy.config.configList.useBigHead & 1
},
ca = function() {
return alloy.config.configList.useBigHead & 2
},
da = function() {
return alloy.config.configList.useBigHead & 4
},
Qa = function() {
var a = this.getAttribute("state");
b.setSelfState(a);
pgvSendClick({
hottag: "web2qq.corner.topright." + a
})
},
ta = function() {
a.setStyle(this, "backgroundColor", "#cbe7fc")
},
ua = function() {
a.setStyle(this, "backgroundColor", "transparent")
},
Ra = function() {
a.removeClass(b.EQQ_MyState, "hover")
},
Sa = function() {
a.addClass(b.EQQ_MyState, "hover")
},
Ta = function() { },
va = function(a) {
b.toggleStatePanel(a)
},
ga = va,
Ua = function(c) {
c.stopPropagation();
c = a.getClientXY(b.EQQ_MyState);
c[1] += 16;
ga(c);
alloy.util.report2im("personalinfo|statechange")
},
Va = function() {
var a = this.getAttribute("classIndex");
b.toggleClass(a)
},
Wa = function(a) {
a.preventDefault();
alloy.sound.isMute() ? (alloy.sound.setMute(!1), alloy.util.report2im("personalinfo|setting|sound")) : (alloy.sound.setMute(!0), alloy.util.report2im("personalinfo|setting|mute"))
},
wa = function(c) {
b.EQQ_SetSound && (c ? a.replaceClass(b.EQQ_SetSound, "statusBar_sound_open", "statusBar_sound_mute") : a.replaceClass(b.EQQ_SetSound, "statusBar_sound_mute", "statusBar_sound_open"))
},
Z = function() {
a.setStyle(this, "backgroundColor", "#cbe7fc")
},
$ = function() {
a.setStyle(this, "backgroundColor", "transparent")
},
ha = function() {
var v = this.getAttribute("uin");
if (v) {
if (EQQ.avatarMouseoverTimer) clearTimeout(EQQ.avatarMouseoverTimer),
EQQ.avatarMouseoverTimer = null;
var d = a.getClientXY(this);
d[0] -= 218;
d[1] -= 5;
b.showMiniCardPanel(v, d);
c.notifyObservers(b, "AvatarMouseover", v)
}
},
ia = function() {
EQQ.avatarMouseoverTimer = window.setTimeout(xa, 500)
},
xa = function() {
b.hideMiniCardPanel()
},
Xa = function() {
if (EQQ.avatarMouseoverTimer) clearTimeout(EQQ.avatarMouseoverTimer),
EQQ.avatarMouseoverTimer = null
},
Ya = function() {
EQQ.avatarMouseoverTimer = window.setTimeout(xa, 500)
},
Za = function() {
alloy.portal.runApp("userDetails", b.miniCardPanel.uin);
pgvSendClick({
hottag: "web2qq.minicard.contacts.more"
});
alloy.util.report2im("minicard|contacts|more")
},
$a = function(a) {
a.preventDefault();
var b = this.getAttribute("href"),
c = /\d+/,
a = parseInt(b.match(c)[0]);
alloy.rpcService.sendGetFriendUin2(a, 2,
function(a) {
O = a.result.account;
alloy.portal.runApp("6", {
url: b.replace(c, O)
})
});
pgvSendClick({
hottag: "web2qq.minicard.contacts.qzone"
});
alloy.util.report2im("minicard|contacts|qzone")
},
ab = function(a) {
a.preventDefault();
var b = this.getAttribute("href"),
c = /\d+/,
a = parseInt(b.match(c)[0]);
a == alloy.portal.getUin() ? alloy.portal.runApp("17", {
url: b
}) : alloy.rpcService.sendGetFriendUin2(a, 3,
function(a) {
O = a.result.account;
alloy.portal.runApp("6", {
url: b.replace(c, O)
})
});
pgvSendClick({
hottag: "web2qq.minicard.contacts.qqmail"
});
alloy.util.report2im("minicard|contacts|email")
},
bb = function(a) {
a.preventDefault();
a = this.getAttribute("uin");
c.notifyObservers(b, "AskVideo", {
uin: a
});
c.notifyObservers(b, "StartChat", a)
},
aa = function(a) {
a.stopPropagation()
},
ma = function(a) {
a.preventDefault();
a.stopPropagation();
a = this.getAttribute("uin");
c.notifyObservers(b, "StartChat", a)
},
ya = function() {
var a = this.getAttribute("code");
c.notifyObservers(b, "StartGroupChat", a)
},
cb = function(a) {
a.preventDefault();
a.stopPropagation();
pgvSendClick({
hottag: "WEB2QQ.QQPANEL.QUN.GROUPSEEK"
});
alloy.util.report2im("qqpanel|groups|seek");
qqweb.portal.runApp("buddyFinder", {
from: "group"
})
},
db = function() {
a.addClass(this, "EQQ_MySignature_hover")
},
eb = function() {
a.removeClass(this, "EQQ_MySignature_hover")
},
fb = function(v) {
v.preventDefault();
if (!Q) Q = !0,
I = b.EQQ_MySignature.value,
c.on(b.EQQ_MySignature, "blur", na),
a.addClass(b.EQQ_MySignature_wraper, "EQQ_MySignature_edit"),
b.EQQ_MySignature.focus(),
b.EQQ_MySignature.select(),
pgvSendClick({
hottag: "web2qq.corner.topright.personalmsg"
})
},
za = function() {
Q = !1;
c.off(b.EQQ_MySignature, "blur", na);
a.removeClass(b.EQQ_MySignature_wraper, "EQQ_MySignature_edit");
b.EQQ_MySignature.blur()
},
na = function() {
za();
b.EQQ_MySignature.value == I ? b.EQQ_MySignature.title = I : (b.EQQ_MySignature.title = "\u7b7e\u540d\u66f4\u65b0\u4e2d:" + b.EQQ_MySignature.value, alloy.rpcService.sendSetSignature(b.EQQ_MySignature.value), alloy.util.report2im("personalinfo|personalmsg|personalmsgedit"))
},
hb = function(a) {
switch (a.keyCode) {
case 13:
na();
break;
case 27:
a.stopPropagation();
za();
b.EQQ_MySignature.title = I;
b.EQQ_MySignature.value = I;
break;
default:
gb()
}
},
gb = function() {
Aa(this, 150)
},
Aa = function(a, b) {
var c = String(a.value);
if (c.replace(/[^\x00-\xff]/g, "aaa").length > b) a.value = f.string.cutRight(c, 1),
Aa(a, b)
},
ib = function() {
var a = parseInt(this.getAttribute("uin"), 10);
a && (alloy.portal.runApp("userDetails", a), alloy.util.report2im("personalinfo|icon"))
},
jb = function(a) {
var b = a.target;
b.tagName == "SPAN" ? b = b.parentNode : b.tagName != "A" && (b = null);
if (b) {
var c = b.getAttribute("appId");
c && (a.preventDefault(), alloy.portal.runApp(c, {}), alloy.util.report2im("personalinfo|icon|" + b.getAttribute("target")))
}
};
this.init = function() {
G = [];
o = q = z = m = !1;
i = {};
r = [];
k = [];
D = [];
B = [];
E = [];
w = {};
x = 0;
K = s = null;
b.ifFlexReady = !1;
c.notifyObservers(b, "AddPObservers");
c.addObserver(alloy.sound, "SoundMuteChange", wa);
c.addObserver(alloy.app.eqq.window, "resize", f.bind(this.onEqqResize, this));
f.browser.ie !== 7 && c.addObserver(alloy.app.eqq.window, "dragEnd", Ba);
this.contactDragController = alloy.layout.getDesktopManager().getDragController();
this.EQQ_Container = a.id("EQQ_Container");
this.EQQ_MainPanel = a.id("EQQ_MainPanel");
this.EQQ_MyPanel = a.id("EQQ_MyPanel");
this.EQQ_MyAvatar = a.id("EQQ_MyAvatar");
this.EQQ_MyNick = a.id("EQQ_MyNick");
this.EQQ_MyState = a.id("EQQ_MyState");
this.EQQ_MyStateShow = a.id("EQQ_MyStateShow");
this.EQQ_MySignature = a.id("EQQ_MySignature");
this.EQQ_MySignature_wraper = a.id("EQQ_mySignature_wraper");
this.EQQ_myService = a.id("EQQ_myService");
this.EQQ_myInfo = a.id("EQQ_myInfo");
var v = a.id("eqqMypanelToolbar");
this.EQQ_MyState.title = "\u66f4\u6539\u5728\u7ebf\u72b6\u6001";
c.on(v, "click", jb);
c.on(this.EQQ_MyAvatar, "mouseover", ha);
c.on(this.EQQ_MyAvatar, "mouseout", ia);
c.on(this.EQQ_MyAvatar, "click", ib);
c.on(this.EQQ_MySignature_wraper, "mouseover", db);
c.on(this.EQQ_MySignature_wraper, "mouseout", eb);
c.on(this.EQQ_MySignature, "click", fb);
c.on(this.EQQ_MySignature, "keyup", hb);
c.off(this.EQQ_MyState, "click");
c.on(this.EQQ_MyState, "click", Ua);
this.EQQ_YellowTips = a.id("EQQ_YellowTips");
c.on(this.EQQ_YellowTips, "click", this.onYellowTipsClick);
this.EQQ_LoginSuccess = a.id("EQQ_LoginSuccess");
this.EQQ_SearchBar = a.id("EQQ_SearchBar");
this.EQQ_SearchBox = a.id("EQQ_SearchBox");
this.EQQ_SearchButton = a.id("EQQ_SearchButton");
this.EQQ_SearchResultPanel = a.id("EQQ_SearchResultPanel");
this.EQQ_SearchResultPanel_iframeWrap = a.id("EQQ_SearchResultPanel_iframeWrap");
c.on(this.EQQ_SearchBox, "mouseover", this.onSearchBoxMouseover);
c.on(this.EQQ_SearchBox, "mouseout", this.onSearchBoxMouseout);
c.on(this.EQQ_SearchBox, "focus", this.onSearchBoxFocus);
c.on(this.EQQ_SearchBox, "blur", this.onSearchBoxBlur);
c.on(this.EQQ_SearchBox, "keyup", this.onSearchBoxKeyup);
c.on(this.EQQ_SearchBox, "keydown", this.onSearchBoxKeydown);
c.on(this.EQQ_SearchBox, "click", f.bind(this.startSearch, this));
c.on(this.EQQ_SearchButton, "click", f.bind(function() {
s && (b.hideSearchResult(), c.notifyObservers(b, "StartChat", s.uin), pgvSendClick({
hottag: "web2qq.qqpanel.searchcontacts"
}), alloy.util.report2im("qqpanel|searchcontacts"))
},
this));
this.EQQ_Logining = a.id("EQQ_Logining");
this.EQQ_Logining_Container = this.EQQ_Logining.parentNode;
this.EQQ_Logining_feedback = a.id("EQQ_Logining_feedback");
this.EQQ_ReLoginPanel = a.id("EQQ_ReLoginPanel");
this.EQQ_ReLoginButton = a.id("EQQ_ReLoginButton");
this.EQQ_ReLoginButton_text = a.id("EQQ_ReLoginButton_text");
c.on(this.EQQ_ReLoginButton, "click", this.onReLoginButtonClick);
this.EQQ_TabBuddyList = a.id("EQQ_TabBuddyList");
this.EQQ_TabGroupList = a.id("EQQ_TabGroupList");
this.EQQ_TabRecentList = a.id("EQQ_TabRecentList");
var v = a.id("EQQ_TabBuddyList_MenuIcon"),
d = a.id("EQQ_TabGroupList_MenuIcon"),
g = a.id("EQQ_TabRecentList_MenuIcon");
c.on(v, "click", ka);
c.on(d, "click", ka);
c.on(g, "click", ka);
this.EQQ_ListContainer = a.id("EQQ_ListContainer");
this.EQQ_buddyListPanel = a.id("EQQ_buddyListPanel");
this.EQQ_buddyListPanelBottom = a.id("EQQ_buddyListPanelBottom");
this.EQQ_groupListOuter = a.id("EQQ_groupListOuter");
this.EQQ_groupListPanelBottom = a.id("EQQ_groupListPanelBottom");
f.platform.iPad && new f.ui.TouchScroller(this.EQQ_buddyListPanel);
this.EQQ_buddyList = a.id("EQQ_buddyList");
c.on(this.EQQ_buddyList, "mousedown", aa);
c.on(this.EQQ_buddyListPanel, "scroll", ea);
this.EQQ_createGroupButton = a.id("EQQ_createGroupButton");
this.EQQ_searchGroupButton = a.id("EQQ_searchGroupButton");
c.on(this.EQQ_createGroupButton, "click", alloy.util.observer.openInWebBrowser);
c.on(this.EQQ_createGroupButton, "click",
function() {
pgvSendClick({
hottag: "WEB2QQ.QQPANEL.QUN.CREATE"
});
alloy.util.report2im("qqpanel|groups|create")
});
c.on(this.EQQ_searchGroupButton, "click", cb);
this.EQQ_ListBottom_maskButton = a.id("EQQ_ListBottom_maskButton");
c.on(this.EQQ_ListBottom_maskButton, "click", kb);
this.EQQ_groupListPanel = a.id("EQQ_groupListPanel");
this.EQQ_groupListInner = a.id("EQQ_groupListInner");
f.platform.iPad && new f.ui.TouchScroller(this.EQQ_groupListInner.parentNode);
c.on(this.EQQ_groupListInner, "mousedown", aa);
this.EQQ_groupTabGroup = a.id("EQQ_groupTabGroup");
this.EQQ_groupTabDiscu = a.id("EQQ_groupTabDiscu");
this.EQQ_groupBox = a.id("EQQ_groupBox");
this.EQQ_discuBox = a.id("EQQ_discuBox");
c.on(this.EQQ_groupTabGroup, "click",
function() {
a.addClass(b.EQQ_groupTabGroup, "seled");
a.removeClass(b.EQQ_groupTabDiscu, "seled");
a.show(b.EQQ_groupBox);
a.hide(b.EQQ_discuBox);
H = "group";
alloy.util.report2im("qqpanel|groups|tab")
});
c.on(this.EQQ_groupTabDiscu, "click",
function() {
a.removeClass(b.EQQ_groupTabGroup, "seled");
a.addClass(b.EQQ_groupTabDiscu, "seled");
a.hide(b.EQQ_groupBox);
a.show(b.EQQ_discuBox);
H = "discu";
alloy.util.report2im("qqpanel|dicussions|tab")
});
this.EQQ_discuListOuter = a.id("EQQ_discuListOuter");
this.EQQ_discuListInner = a.id("EQQ_discuListInner");
this.EQQ_discuListPanelBottom = a.id("EQQ_discuListPanelBottom");
this.EQQ_createDiscuButton = a.id("EQQ_createDiscuButton");
c.on(this.EQQ_createDiscuButton, "click", this.onCreateDiscu);
this.EQQ_discuCreate_button = a.id("EQQ_discuCreate_button");
c.on(this.EQQ_discuCreate_button, "click", this.onCreateDiscu);
f.platform.iPad && new f.ui.TouchScroller(this.EQQ_discuListInner.parentNode);
this.EQQ_recentListPanel = a.id("EQQ_recentListPanel");
f.platform.iPad && new f.ui.TouchScroller(this.EQQ_recentListPanel);
this.EQQ_recentList = a.id("EQQ_recentList");
c.on(this.EQQ_recentList, "mousedown", aa);
this.EQQ_findBuddy = a.id("EQQ_findBuddy");
this.EQQ_buddyManage = a.id("EQQ_buddyManage");
this.EQQ_messageManage = a.id("EQQ_messageManage");
f.browser.mobileSafari && a.hide(this.EQQ_buddyManage);
c.on(this.EQQ_findBuddy, "click",
function(a) {
a.preventDefault();
a.stopPropagation();
pgvSendClick({
hottag: "WEB2QQ.QQPANEL.CONTACTS.SEEK"
});
alloy.util.report2im("qqpanel|contacts|seek");
alloy.portal.runApp("buddyFinder", {})
});
c.on(this.EQQ_buddyManage, "click",
function(a) {
a.preventDefault();
a.stopPropagation();
pgvSendClick({
hottag: "WEB2QQ.QQPANEL.CONTACTS.MANAGE"
});
alloy.util.report2im("qqpanel|contacts|manage");
alloy.portal.runApp("5", {})
});
c.on(this.EQQ_messageManage, "click",
function(a) {
a.preventDefault();
a.stopPropagation();
pgvSendClick({
hottag: "WEB2QQ.QQPANEL.CONTACTS.MSGMGR"
});
alloy.util.report2im("qqpanel|contacts|msgmgr");
alloy.portal.runApp("messageManager", {})
});
this.mainTab = new f.ui.Tab;
this.mainTab.add({
trigger: this.EQQ_TabBuddyList,
sheet: this.EQQ_buddyListPanel
});
this.mainTab.add({
trigger: this.EQQ_TabGroupList,
sheet: this.EQQ_groupListPanel
});
this.mainTab.add({
trigger: this.EQQ_TabRecentList,
sheet: this.EQQ_recentListPanel
});
this.mainTab.config.triggerEvent = "click";
this.mainTab.config.slideEnabled = !1;
this.mainTab.init();
c.addObserver(this.mainTab, "show",
function(a) {
switch (this.indexOf(a)) {
case 0:
A = "single";
pgvSendClick({
hottag: "WEB2QQ.QQPANEL.CONTACTS.CONTACTSLIST"
});
alloy.util.report2im("qqpanel|contacts|list");
break;
case 1:
A = "group"; !e && ca() && (e = !0, qa());
pgvSendClick({
hottag: "WEB2QQ.QQPANEL.QUN.QUNLIST"
});
alloy.util.report2im("qqpanel|groups|list");
break;
case 2:
A = "recent",
!n && da() && (n = !0, ra()),
pgvSendClick({
hottag: "WEB2QQ.QQPANEL.RECENT.RECENTLIST"
}),
alloy.util.report2im("qqpanel|recent|list")
}
});
c.on(this.EQQ_buddyListPanel, "contextmenu", Ha);
c.on(this.EQQ_groupBox, "contextmenu", Ia);
c.on(this.EQQ_discuBox, "contextmenu", f.bind(this.onDiscuListContextMenu, this));
c.on(this.EQQ_recentListPanel, "contextmenu", Ja);
c.on(this.EQQ_buddyListPanelBottom, "contextmenu", aa);
c.on(this.EQQ_groupListPanelBottom, "contextmenu", aa);
c.on(this.EQQ_discuListPanelBottom, "contextmenu", aa);
v = alloy.taskBar.quickPanel.getQuickButton(50);
v.setClass("EQQ_qucikButton");
c.on(v.getElement(), "contextmenu", Pa);
this.onEqqResize(alloy.app.eqq.window.getBodySize());
this.onWindowResize();
a.show(this.EQQ_MyState);
sa();
c.addObserver(EQQ, "eqqUacChange", sa)
};
this.createStatePanelDom = function() {
var b, e = d.statePanel;
f.browser.ie == 7 ? (b = a.node("div", {
id: "EQQ_StatePanel",
"class": "EQQ_statePanel_warp"
}), e = '<ul class="EQQ_statePanel EQQ_statePanel_ul">' + e + '</ul><iframe class="ui_maskBgIframe"></iframe>') : b = a.node("ul", {
id: "EQQ_StatePanel",
"class": "EQQ_statePanel"
});
b.innerHTML = e;
u.appendChild(b);
this.statePanel = new alloy.layout.PopupBox({
noCatchMouseUp: !0,
container: b
});
c.addObserver(this.statePanel, "hide", Ra);
c.addObserver(this.statePanel, "show", Sa);
this.EQQ_SetOnline = a.id("EQQ_SetOnline");
this.EQQ_SetCallme = a.id("EQQ_SetCallme");
this.EQQ_SetAway = a.id("EQQ_SetAway");
this.EQQ_SetBusy = a.id("EQQ_SetBusy");
this.EQQ_SetSilent = a.id("EQQ_SetSilent");
this.EQQ_SetHidden = a.id("EQQ_SetHidden");
this.EQQ_SetOffline = a.id("EQQ_SetOffline");
this.EQQ_SetSound = a.id("EQQ_SetSound");
c.on(this.EQQ_SetSound, "mouseover", ta);
c.on(this.EQQ_SetSound, "mouseout", ua);
c.on(this.EQQ_SetSound, "click", Wa);
b = [this.EQQ_SetOnline, this.EQQ_SetCallme, this.EQQ_SetAway, this.EQQ_SetBusy, this.EQQ_SetSilent, this.EQQ_SetHidden, this.EQQ_SetOffline];
f.array.forEach(b,
function(a) {
c.on(a, "mouseover", ta)
});
f.array.forEach(b,
function(a) {
c.on(a, "mouseout", ua)
});
f.array.forEach(b,
function(a) {
c.on(a, "click", Qa)
})
};
this.createGroupMaskPanelDom = function() {
var v = a.id("groupMaskPanelMenu");
v || (v = a.node("div", {
"class": "groupMaskPanel",
id: "groupMaskPanelMenu"
}));
u.appendChild(v);
b.groupMaskPanel = new alloy.layout.PopupBox({
container: v,
html: d.groupMaskPanel
});
this.costomDom = a.id("GroupMask_Costom");
this.promptDom = a.id("GroupMask_Prompt");
this.noPromptDom = a.id("GroupMask_NoPrompt");
this.maskDom = a.id("GroupMask_Mask");
f.array.forEach([this.costomDom, this.promptDom, this.noPromptDom, this.maskDom],
function(a) {
c.on(a, "click", lb)
});
this.setGroupMaskState(F)
};
var lb = function(a) {
a.preventDefault();
F = a = parseInt(this.getAttribute("state"));
c.notifyObservers(b, "SetGroupMaskState", a);
switch (a) {
case "0":
case 0:
pgvSendClick({
hottag:
"WEB2QQ.QQPANEL.MESSAGESETTING.QUNSELF"
});
alloy.util.report2im("qqpanel|groups|msgsetting|self");
break;
case "1":
case 1:
pgvSendClick({
hottag:
"WEB2QQ.QQPANEL.MESSAGESETTING.WIDTHALERTS"
});
alloy.util.report2im("qqpanel|groups|msgsetting|withalert");
break;
case "2":
case 2:
pgvSendClick({
hottag:
"WEB2QQ.QQPANEL.MESSAGESETTING.WIDTHOUTALERTS"
});
alloy.util.report2im("qqpanel|groups|msgsetting|withoutalert");
break;
case "3":
case 3:
pgvSendClick({
hottag:
"WEB2QQ.QQPANEL.MESSAGESETTING.BLOCK"
}),
alloy.util.report2im("qqpanel|groups|msgsetting|block")
}
};
this.setGroupMaskState = function(b) {
a.removeClass(this.costomDom, "simpleMenuItemSelected");
a.removeClass(this.promptDom, "simpleMenuItemSelected");
a.removeClass(this.noPromptDom, "simpleMenuItemSelected");
a.removeClass(this.maskDom, "simpleMenuItemSelected");
b = parseInt(b);
switch (b) {
case 0:
a.addClass(this.costomDom, "simpleMenuItemSelected");
break;
case 1:
a.addClass(this.promptDom, "simpleMenuItemSelected");
break;
case 2:
a.addClass(this.noPromptDom, "simpleMenuItemSelected");
break;
case 3:
a.addClass(this.maskDom, "simpleMenuItemSelected")
}
};
this.setGroupListMaskState = function(b, c) {
var d = a.id("EQQ_GroupList_State_" + b),
f = a.id("EQQ_RecentList_State_" + b);
c ? (d && a.removeClass(d, "EQQ_GroupMask_State"), f && a.removeClass(f, "EQQ_GroupMask_State")) : (d && a.addClass(d, "EQQ_GroupMask_State"), f && a.addClass(f, "EQQ_GroupMask_State"))
};
var kb = function(c) {
c.stopPropagation();
alloy.util.report2im("qqpanel|groups|msgsetting");
c = a.getClientXY(b.EQQ_ListBottom_maskButton);
b.toggleGroupMaskStatePanel(c)
};
this.toggleGroupMaskStatePanel = function(a) {
this.groupMaskPanel && this.groupMaskPanel.isShow() ? this.hideGroupMaskStatePanel() : this.showGroupMaskStatePanel(a)
};
this.showGroupMaskStatePanel = function(a) {
this.groupMaskPanel || this.createGroupMaskPanelDom();
if (a) {
var b = this.groupMaskPanel.getWidth(),
c = this.groupMaskPanel.getHeight(),
d = alloy.layout.getClientWidth(),
f = alloy.layout.getClientHeight(),
e = a[0],
a = a[1] - 100;
e < 2 && (e = 2);
a < 2 && (a = 2);
e > d - b - 2 && (e = d - b - 2);
a > f - c - 2 && (a = f - c - 2);
this.groupMaskPanel.setXY(e, a)
}
this.groupMaskPanel.setZIndex(alloy.layout.getTopZIndex(3));
this.groupMaskPanel.show()
};
this.hideGroupMaskStatePanel = function() {
this.groupMaskPanel && this.groupMaskPanel.hide()
};
this.createMiniCardPanelDom = function() {
var v = a.node("div", {
id: "miniCard",
"class": "panel_1"
});
v.innerHTML = d.miniCardPanel;
u.appendChild(v);
var e = a.id("miniCard_avatar"),
g = a.id("miniCard_name_inner"),
h = a.id("miniCard_signature"),
m = a.id("miniCard_signature_inner"),
i = a.id("miniCard_clientType_inner"),
k = a.id("miniCard_clientType_innerWrapper"),
l = a.id("miniCard_level"),
j = a.id("miniCard_level_upinfo"),
o = a.id("miniCard_qzone"),
n = a.id("miniCard_qmail"),
q = a.id("miniCard_video");
f.platform.iPad && a.hide(q);
var M = a.id("miniCard_userDetails");
c.on(v, "mouseover", Xa);
c.on(v, "mouseout", Ya);
c.on(M, "click", Za);
c.on(o, "click", $a);
c.on(n, "click", ab);
c.on(q, "click", bb);
this.miniCardPanel = new alloy.layout.Panel({
container: v,
body: a.id("miniCardBody"),
html: ""
});
this.miniCardPanel.setInfo = function(v) {
this.uin = v.uin;
var d = v.uin == alloy.portal.getUin();
e.src = EQQ.getUserDefaultAvatar();
e.src = v.avatarUrl;
d ? (M.innerHTML = "\u4fee\u6539\u8d44\u6599", e.src = alloy.util.getUserAvatar(v.uin, 1) + "&t=" + (new Date).getTime(), a.hide(q)) : (M.innerHTML = "\u8be6\u7ec6\u8d44\u6599", a.show(q));
f.platform.iPad && a.hide(q);
g.innerHTML = v.htmlAllName;
g.title = v.allName;
m.innerHTML = "";
l.innerHTML = "";
j.innerHTML = "";
o.href = EQQ.getQzoneUrl(v.uin);
n.title = v.uin == alloy.portal.getUin() ? "\u8fdb\u5165\u90ae\u7bb1" : "\u53d1\u9001\u90ae\u4ef6";
n.href = EQQ.getSendMailUrl(v.uin);
q.setAttribute("uin", v.uin);
d || v.clientType == "1" || v.clientType == "10000" || v.type == "stranger" || !v.clientType ? (k.className = "miniCard_clientType_innerWrapper", h.style.display = "block") : (k.className = "miniCard_clientType_" + EQQ.hash.clientType[v.clientType || "10000"], i.innerHTML = EQQ.hash.clientTypeText[v.clientType || "10000"] + "\u767b\u5f55\u4e2d", h.style.display = "none");
c.notifyObservers(b, "MiniCardShow", v)
};
this.miniCardPanel.setSignature = function(a) {
m.innerHTML = a.htmlSignature;
m.title = a.signature
};
this.miniCardPanel.setClientType = function(a) {
if (this.uin == a.uin) a.clientType == "1" ? (k.className = "miniCard_clientType_" + EQQ.hash.clientType[a.clientType || "10000"], i.innerHTML = EQQ.hash.clientTypeText[a.clientType || "10000"] + "\u767b\u5f55\u4e2d", h.style.display = "none") : (k.className = "miniCard_clientType_innerWrapper", h.style.display = "block")
};
this.miniCardPanel.setQQLevel = function(a) {
for (var b = a.level,
c = b.level,
v = parseInt(c / 64), d = parseInt(c % 64 / 16), f = parseInt(c % 64 % 16 / 4), e = c % 64 % 16 % 4, g = "", h = 0; h < v; h++) g += '<div class="miniCard_level_div qqLevel_queen"></div>';
for (h = 0; h < d; h++) g += '<div class="miniCard_level_div qqLevel_sun"></div>';
for (h = 0; h < f; h++) g += '<div class="miniCard_level_div qqLevel_moon"></div>';
for (h = 0; h < e; h++) g += '<div class="miniCard_level_div qqLevel_star"></div>';
l.innerHTML = g;
l.title = "\u7b49\u7ea7: " + c;
if (a.uin == alloy.portal.getUin()) j.innerHTML = '<div class="miniCard_level_upinfo_div" title="\u6d3b\u8dc3\u5929\u6570\uff1a' + b.days + '"><span class="icon days"></span>' + b.days + '\u5929</div><div class="miniCard_level_upinfo_div" title="\u8ddd\u5347\u7ea7\u5230' + (c + 1) + "\u7ea7\u8fd8\u6709" + b.remainDays + '\u5929"><span class="icon remainDays"></span>' + b.remainDays + "\u5929</div>"
}
};
this.showMiniCardPanel = function(a, b) {
this.miniCardPanel || this.createMiniCardPanelDom();
if (b) {
var c = this.miniCardPanel.getWidth() + 10,
d = this.miniCardPanel.getHeight() + 10,
f = alloy.layout.getClientWidth(),
e = alloy.layout.getClientHeight(),
g = b[0],
h = b[1];
g < 2 && (g = 2);
h < 2 && (h = 2);
g > f - c - 2 && (g = f - c - 2);
h > e - d - 2 && (h = e - d - 2);
this.miniCardPanel.setXY(g, h)
}
this.miniCardPanel.setInfo(EQQ.Model.BuddyList.getUserByUin(a), a);
this.miniCardPanel.setZIndex(alloy.layout.getTopZIndex(3));
this.miniCardPanel.show()
};
this.hideMiniCardPanel = function() {
if (this.miniCardPanel) {
var b = a.id("miniCard_buddyOption_tabBody");
a.setStyle(b, "display", "none");
this.miniCardPanel.hide()
}
};
this.setNoneFlashStyle = function() {
a.addClass(this.EQQ_buddyList, "EQQ_buddyList_noneFlash")
};
this.getHtml = function() {
return d.myPanel + '<div id="EQQ_MainPanel" class="EQQ_mainPanel">' + d.mainPanelHeader + f.string.template(d.mainPanelBody, {
searchReaultPanel: d.searchReaultPanel,
buddyListBody: d.buddyListBody
}) + d.mainPanelFooter + "</div>"
};
this.createDom = function() {
var a = this.getHtml();
alloy.app.eqq.getWindow().setHtml(a);
this.createContextMenu()
};
this.onYellowTipsClick = function() {
b.hideYellowTips();
c.notifyObservers(b, "CloseYellowTipsFinish")
};
this.showYellowTips = function() {
C += 20;
this.onWindowResize();
a.show(this.EQQ_YellowTips)
};
this.hideYellowTips = function() {
a.hide(this.EQQ_YellowTips);
C -= 20;
this.onWindowResize()
};
this.onEqqResize = function(b) {
var c = b.width,
b = b.height - 50;
b < 5 && (b = 5);
var d = b - 5 - 77;
a.setStyle(this.EQQ_myInfo, "width", c - 60 + "px");
a.setStyle(this.EQQ_MyNick, "width", c - 90 + "px");
a.setStyle(this.EQQ_myService, "width", c - 55 + "px");
f.browser.ie == 6 && (d += 3);
a.setStyle(this.EQQ_ListContainer, "height", d + "px");
a.setStyle(this.EQQ_Logining_Container, "height", b - 2 + "px");
a.setStyle(this.EQQ_ReLoginPanel, "height", b - 2 + "px");
a.setStyle(this.EQQ_buddyListPanel, "height", d - 25 + "px");
a.setStyle(this.EQQ_groupListOuter, "height", d - 50 + "px");
a.setStyle(this.EQQ_discuListOuter, "height", d - 50 + "px");
a.setStyle(this.EQQ_groupBox, "height", d - 25 + "px");
a.setStyle(this.EQQ_discuBox, "height", d - 25 + "px");
la()
};
this.onWindowResize = function() { };
this.onSearchBoxMouseover = function() {
a.setClass(this, "EQQ_SearchBoxHover")
};
this.onSearchBoxMouseout = function() {
a.setClass(this, "EQQ_SearchBox")
};
this.onSearchBoxFocus = function() {
c.off(b.EQQ_SearchBox, "mouseover", b.onSearchBoxMouseover);
c.off(b.EQQ_SearchBox, "mouseout", b.onSearchBoxMouseout);
a.setClass(this, "EQQ_SearchBoxFocus");
a.setClass(b.EQQ_SearchButton, "EQQ_SearchButton EQQ_SearchButtonHightLight");
b.clearSearchBox(this);
this.select();
b.startSearch()
};
this.onSearchBoxBlur = function() {
c.on(b.EQQ_SearchBox, "mouseover", b.onSearchBoxMouseover);
c.on(b.EQQ_SearchBox, "mouseout", b.onSearchBoxMouseout);
a.setClass(this, "EQQ_SearchBox");
a.setClass(b.EQQ_SearchButton, "EQQ_SearchButton");
b.resetSearchBox(this)
};
this.resetSearchBox = function(a) {
if (a.value == "") a.value = "\u641c\u7d22\u597d\u53cb..."
};
this.clearSearchBox = function(a) {
if (f.string.trim(a.value) == "\u641c\u7d22\u597d\u53cb...") a.value = ""
};
this.onSearchButtonClick = function() {
b.startSearch()
};
this.onSearchBoxKeyup = function(a) {
a.stopPropagation();
b.EQQ_SearchBox.value ? a.keyCode != 38 && a.keyCode != 40 && b.startSearch() : b.hideSearchResult()
};
this.onSearchBoxKeydown = function(d) {
switch (d.keyCode) {
case 13:
s && (d.preventDefault(), b.hideSearchResult(), c.notifyObservers(b, "StartChat", s.uin), pgvSendClick({
hottag: "web2qq.qqpanel.searchcontacts"
}), alloy.util.report2im("qqpanel|searchcontacts"));
break;
case 38:
x > 0 && (d = a.id("EQQ_SearchResultItem_" + s.uin), a.setStyle(d, "backgroundColor", "transparent"), x--, s = K[x], (d = a.id("EQQ_SearchResultItem_" + s.uin)) && a.setStyle(d, "backgroundColor", "#cbe7fc"));
break;
case 40:
x < K.length - 1 && (d = a.id("EQQ_SearchResultItem_" + s.uin), a.setStyle(d, "backgroundColor", "transparent"), x++, s = K[x], (d = a.id("EQQ_SearchResultItem_" + s.uin)) && a.setStyle(d, "backgroundColor", "#cbe7fc"))
}
};
this.startSearch = function() {
this.clearSearchBox(this.EQQ_SearchBox);
c.notifyObservers(this, "Search", this.EQQ_SearchBox.value)
};
this.showSearchResult = function(b) {
if (this.EQQ_SearchBox.value) {
K = b;
var d = a.getRelativeXY(this.EQQ_SearchBox, this.EQQ_MainPanel);
a.setStyle(this.EQQ_SearchResultPanel, "left", d[0] + "px");
a.setStyle(this.EQQ_SearchResultPanel, "top", d[1] + 26 + "px");
a.show(this.EQQ_SearchResultPanel);
this.EQQ_SearchResultPanel.innerHTML = "";
if (b.length == 0) s = x = null,
this.EQQ_SearchResultPanel.innerHTML = '<div class="EQQ_SearchResultNo">\u6ca1\u6709\u627e\u5230\u76f8\u5173\u597d\u53cb</div>';
else {
x = 0;
s = b[0];
for (d = 0; d < b.length; d++) {
var e = b[d],
g = a.node("div");
a.setClass(g, "EQQ_SearchResultItem");
g.id = "EQQ_SearchResultItem_" + e.uin;
g.setAttribute("uin", e.uin);
g.innerHTML = e.htmlAllName;
g.title = e.allName;
this.EQQ_SearchResultPanel.appendChild(g);
d == 0 && a.setStyle(g, "backgroundColor", "#cbe7fc");
c.on(g, "mouseover", this.onSearchResultMouseover);
c.on(g, "mouseout", this.onSearchResultMouseout);
c.on(g, "mousedown", this.onSearchResultClick)
}
}
c.on(document, "mousedown", f.bind(this.hideSearchResult, this))
}
};
this.hideSearchResult = function() {
a.hide(this.EQQ_SearchResultPanel);
c.off(document, "mousedown")
};
this.onSearchResultMouseover = function() {
a.setStyle(this, "backgroundColor", "#cbe7fc")
};
this.onSearchResultMouseout = function() {
a.setStyle(this, "backgroundColor", "transparent")
};
this.onSearchResultClick = function() {
var a = this.getAttribute("uin");
b.hideSearchResult();
c.notifyObservers(b, "StartChat", a);
pgvSendClick({
hottag: "web2qq.qqpanel.searchcontacts"
});
alloy.util.report2im("qqpanel|searchcontacts")
};
this.show = function() {
a.show(this.EQQ_MainPanel)
};
this.hide = function() {
a.hide(this.EQQ_MainPanel)
};
this.updateSelftAvatar = function() {
var a = alloy.portal.getUin();
this.EQQ_MyAvatar.src = alloy.util.getUserAvatar(a, 1) + "&t=" + (new Date).getTime()
};
this.updateSelfInfoChange = function(a) {
this.EQQ_MyAvatar.src = EQQ.getUserAvatar(a.uin);
this.EQQ_MyAvatar.title = "\u4fee\u6539\u8d44\u6599";
this.EQQ_MyAvatar.setAttribute("uin", a.uin);
this.EQQ_MyNick.innerHTML = a.htmlNick;
this.EQQ_MyNick.title = a.titleNick + "<" + a.uin + ">"
};
this.updateSelfStateChange = function(b) {
a.setClass(this.EQQ_MyStateShow, "EQQ_myStateShow EQQ_" + b);
b === "offline" ? a.addClass(this.EQQ_MyAvatar, "EQQ_myAvatar_offline") : a.removeClass(this.EQQ_MyAvatar, "EQQ_myAvatar_offline");
var c = alloy.taskBar.quickPanel.getQuickButton(50);
b == "online" ? c.setStateClass("") : c.setStateClass("EQQ_" + b)
};
this.updateSelfSignatureChange = function(a) {
(I = a = a.signature) || (a = "\u70b9\u51fb\u7f16\u8f91\u7b7e\u540d");
this.EQQ_MySignature.value = a;
this.EQQ_MySignature.title = a
};
this.createBuddyClass = function(a) {
this.addOnlineBuddyClass();
for (var b = 0; b < a.length; b++) this.addBuddyClass(a[b]);
this.addStrangerBuddyClass();
this.addBlackListBuddyClass()
};
this.addOnlineBuddyClass = function() {
var a = {};
a.index = EQQ.hash.userClassType.online;
a.name = "\u5728\u7ebf\u597d\u53cb";
a.htmlName = f.string.toHtml(a.name);
a.titleName = f.string.encodeHtmlSimple(a.name);
a.count = 0;
a.onlineCount = 0;
a.list = {
callme: [],
online: [],
away: [],
busy: [],
silent: [],
offline: []
};
this.addBuddyClass(a)
};
this.addStrangerBuddyClass = function() {
var a = {};
a.index = EQQ.hash.userClassType.stranger;
a.name = "\u964c\u751f\u4eba";
a.htmlName = f.string.toHtml(a.name);
a.titleName = f.string.encodeHtmlSimple(a.name);
a.count = 0;
a.onlineCount = 0;
a.list = {
callme: [],
online: [],
away: [],
busy: [],
silent: [],
offline: []
};
this.addBuddyClass(a)
};
this.addBlackListBuddyClass = function() {
var a = {};
a.index = EQQ.hash.userClassType.blacklist;
a.name = "\u9ed1\u540d\u5355";
a.htmlName = f.string.toHtml(a.name);
a.titleName = f.string.encodeHtmlSimple(a.name);
a.count = 0;
a.onlineCount = 0;
a.list = {
callme: [],
online: [],
away: [],
busy: [],
silent: [],
offline: []
};
this.addBuddyClass(a)
};
var Ba = function(b) {
for (var b = b.width,
c = G.length; --c >= 0; ) {
var d = G[c].el = G[c].el || a.id("EQQ_Class_" + G[c].index + "_className"),
f = G[c].len,
e = G[c].html,
g = G[c].html_short;
if (b <= 200) d.innerHTML = g;
else if (b > f + 20) d.innerHTML = e
}
};
this.addBuddyClass = function(b, d) {
var e, g;
e = a.node("div", {
id: "EQQ_listClassHead_" + b.index,
classIndex: b.index
});
g = b.index == EQQ.hash.userClassType.online ? '\t\t\t\t\t<div class="EQQ_listClassHeadIcon">icon</div>\t\t\t\t\t<div class="EQQ_ClassList_RightContainer" title="<%=titleName%>">\t\t\t\t\t\t<div class="EQQ_Class_className" id="EQQ_Class_<%=index%>_className"><%=cut_htmlName%></div>[<span id="EQQ_Class_<%=index%>_OnlineCounter"><%=onlineCount%></span>]\t\t\t\t\t</div>\t\t\t\t' : '\t\t\t\t\t<div class="EQQ_listClassHeadIcon">icon</div>\t\t\t\t\t<div class="EQQ_ClassList_RightContainer" title="<%=titleName%>">\t\t\t\t\t\t<div class="EQQ_Class_className" id="EQQ_Class_<%=index%>_className"><%=cut_htmlName%> </div>[<span id="EQQ_Class_<%=index%>_OnlineCounter"><%=onlineCount%></span>/<span id="EQQ_Class_<%=index%>_Counter"><%=count%></span>]\t\t\t\t\t</div>\t\t\t\t';
b.cut_htmlName = b.htmlName;
if (b.caculateName) {
var h = j.getCharWidth(b.caculateName + ("[" + b.onlineCount + "/" + (b.count || 1) + "]"), 12);
if (h > 120) h = {
index: b.index,
len: h,
html: b.cut_htmlName
},
b.cut_htmlName = '<div class="mainpanel_limit_class_width_outer"><div class="mainpanel_limit_class_width_inner">' + b.htmlName + "</div></div>...",
h.html_short = b.cut_htmlName,
G.push(h)
}
g = f.string.template(g, b);
e.innerHTML = g;
d ? this.EQQ_buddyList.insertBefore(e, d) : this.EQQ_buddyList.appendChild(e);
c.on(e, "click", Va);
h = a.node("div", {
id: "EQQ_listClassBody_" + b.index,
"class": "EQQ_listClassBody"
});
g = f.string.template('\t\t\t\t<div id="EQQ_Class_<%=index%>_callme" class="EQQ_callmeBuddy"></div>\t\t\t\t<div id="EQQ_Class_<%=index%>_online" class="EQQ_onlineBuddy"></div>\t\t\t\t<div id="EQQ_Class_<%=index%>_busy" class="EQQ_busyBuddy"></div>\t\t\t\t<div id="EQQ_Class_<%=index%>_away" class="EQQ_awayBuddy"></div>\t\t\t\t<div id="EQQ_Class_<%=index%>_silent" class="EQQ_silentBuddy"></div>\t\t\t\t<div id="EQQ_Class_<%=index%>_offline" class="EQQ_offlineBuddy"></div>\t\t\t', b);
h.innerHTML = g;
this.EQQ_buddyList.insertBefore(h, e.nextSibling);
this.collapsedClass(b.index)
};
this.hideLogin = function() {
a.hide(this.EQQ_Logining_Container);
a.hide(this.EQQ_Logining_feedback);
a.hide(this.EQQ_ReLoginPanel);
a.show(this.EQQ_LoginSuccess);
a.setStyle(this.EQQ_LoginSuccess, "height", "100%");
var b = {
height: alloy.app.eqq.window.getBodySize().height,
width: alloy.app.eqq.window.getBodySize().width
};
this.onEqqResize(b);
f.browser.ie !== 7 && Ba(b)
};
this.showLogin = function(b) {
a.show(this.EQQ_Logining_Container);
this.EQQ_Logining.innerHTML = b || "\u53d1\u8d77\u8fde\u63a5...";
a.show(this.EQQ_Logining_feedback);
a.hide(this.EQQ_ReLoginPanel);
a.hide(this.EQQ_LoginSuccess);
a.setStyle(this.EQQ_LoginSuccess, "height", "0px")
};
this.showPullData = function() {
a.show(this.EQQ_Logining_Container);
this.EQQ_Logining.innerHTML = "\u62c9\u53d6\u6570\u636e..."
};
this.clearBuddyList = function() {
this.EQQ_buddyList.innerHTML = ""
};
this.createBuddyList = function(a) {
f.timedChunk(a, this.addBuddy, this, !1,
function() {
c.notifyObservers(b, "BuddyListReady")
})
};
this.getClassExpandFlag = function(a) {
return i[a]
};
this.setClassExpandFlag = function(a, b) {
return i[a] = b
};
this.getClassAvatarLoadFlag = function(a) {
return w[a]
};
this.setClassAvatarLoadFlag = function(a, b) {
return w[a] = b
};
this.toggleClass = function(a) {
i[a] ? this.collapsedClass(a) : this.expandClass(a)
};
this.collapsedClass = function(b) {
var c = a.id("EQQ_listClassHead_" + b),
d = a.id("EQQ_listClassBody_" + b);
b == EQQ.hash.userClassType.online ? (a.setClass(c, "EQQ_onlineClassHeadCollapsed"), a.removeClass(c, "expand_online")) : (a.setClass(c, "EQQ_listClassHeadCollapsed"), a.removeClass(c, "expand"));
a.setStyle(d, "height", "0");
this.setClassExpandFlag(b, !1)
};
this.expandClass = function(b) {
var c = a.id("EQQ_listClassHead_" + b),
d = a.id("EQQ_listClassBody_" + b);
b == EQQ.hash.userClassType.online ? (a.setClass(c, "EQQ_onlineClassHeadExpand"), a.addClass(c, "expand_online")) : (a.setClass(c, "EQQ_listClassHeadExpand"), a.addClass(c, "expand"));
a.setStyle(d, "height", "auto");
this.setClassExpandFlag(b, !0);
f.out("index: " + b);
fa()
};
var fa = this.loadBuddyListAvatar = function() {
for (var c = b.EQQ_buddyListPanel,
d = parseInt(a.getStyle(c, "height"), 10), c = a.getXY(c)[1], e = 0; e < r.length; ) {
var g = r[e],
h = g.imgEl,
m = g.classId,
i = a.getXY(h)[1] - c;
b.getClassExpandFlag(m) && h && i > 0 && i < d ? (f.out("checkAndLoadAvatar & loadAvatar containerHeight: " + d + ", imgTop2:" + i), h.src = EQQ.getUserAvatar(g.uin), r.splice(e, 1)) : e++
}
if (ba()) {
c = b.EQQ_buddyListPanel;
d = parseInt(a.getStyle(c, "height"), 10);
c = a.getXY(c)[1];
for (e = 0; e < k.length; ) m = k[e],
g = m.el,
h = m.uin,
m = m.classId,
i = a.getXY(g)[1] - c,
b.getClassExpandFlag(m) && g && i > 0 && i < d ? (g.hasSign || EQQ.Model.BuddyList.getUserSignature(h), k.splice(e, 1)) : e++
}
},
ea = function() {
la()
},
la = function() {
if (ea.timer) window.clearTimeout(ea.timer),
ea.timer = null;
ea.timer = window.setTimeout(fa, 500)
},
qa = function() {
for (var a = [], b; b = D.shift(); ) {
var c = b.gcode;
b.el.hasSign || a.push(c)
}
a.length && EQQ.Model.BuddyList.getMultiGroupAnnounce(a)
},
ra = function() {
for (var a = [], b; b = B.shift(); ) {
var c = b.el;
b = b.uin;
c.hasSign || a.push(b)
}
a.length && EQQ.Model.BuddyList.getMultiUserSignture(a);
for (a = []; b = E.shift(); ) c = b.el,
b = b.gcode,
c.hasSign || a.push(b);
a.length && EQQ.Model.BuddyList.getMultiGroupAnnounce(a)
};
this.addBuddy = function(d) {
if (d) {
var e = f.string.template('\t\t\t\t\t<div class="EQQ_BuddyList_ClientType" uin="<%=uin%>" id="EQQ_BuddyList_ClientType_Title_<%=uin%>" title="' + EQQ.hash.clientTypeText[d.clientType || "PC"] + '">\t\t\t\t\t\t<div id="EQQ_BuddyList_ClientType_<%=uin%>" class="EQQ_BuddyList_ClientType_' + EQQ.hash.clientType[d.clientType || "10000"] + '"></div>\t\t\t\t\t</div>\t\t\t\t\t<div id="EQQ_BuddyList_AvatarContainer_<%=uin%>" class="EQQ_BuddyList_AvatarContainer" uin="<%=uin%>" title="' + EQQ.hash.onlineStatusText[d.state] + '">\t\t\t\t\t\t<img id="EQQ_BuddyList_Avatar_<%=uin%>" class="EQQ_BuddyList_Avatar" src="' + alloy.CONST.CDN_URL + 'style/images/avatar_default_20_20.gif" />\t\t\t\t\t\t<div class="EQQ_BuddyList_State"></div>\t\t\t\t\t</div>\t\t\t\t\t<div id="EQQ_BuddyList_RightContainer_<%=uin%>" class="EQQ_BuddyList_RightContainer" >\t\t\t\t\t\t<div id="EQQ_BuddyList_Nick_<%=uin%>" title="<%=titleAllName%> - ' + EQQ.hash.onlineStatusText[d.state] + '" class="EQQ_BuddyList_Nick"><%=htmlShowName%></div>\t\t\t\t\t\t<div id="EQQ_BuddyList_Sign_<%=uin%>" title="" class="EQQ_BuddyList_Sign"></div>\t\t\t\t\t</div>\t\t\t\t', d),
g = a.id("EQQ_Class_" + d.classId + "_" + d.state);
a.show(g);
var h = a.node("div", {
id: "EQQ_Buddy_" + d.uin,
"class": "EQQ_BuddyList_Buddy",
uin: d.uin,
fileId: d.uin,
uid: "buddy_uin_" + d.uin,
from: "buddy",
type: "uin"
});
h.innerHTML = e;
g.appendChild(h);
c.on(h, "mouseover", Z);
c.on(h, "mouseout", $);
c.on(h, "click",
function(a) {
ma.apply(this, [a]);
pgvSendClick({
hottag: "web2qq.qqpanel.contacts.sendmsg"
});
alloy.util.report2im("qqpanel|contacts|sendmsg")
});
c.on(h, "contextmenu", oa);
e = a.id("EQQ_BuddyList_AvatarContainer_" + d.uin);
c.on(e, "mouseover", ha);
c.on(e, "mouseout", ia);
f.platform.iPad || b.contactDragController.addDragClass(h);
h = a.id("EQQ_BuddyList_Avatar_" + d.uin);
this.getClassExpandFlag(d.classId) ? (f.out("addBuddy & loadAvatar"), h.src = EQQ.getUserAvatar(d.uin)) : r.push({
uin: d.uin,
imgEl: h,
classId: d.classId
});
ba() && this.getClassExpandFlag(d.classId) ? EQQ.Model.BuddyList.getUserSignature(d.uin) : (h = a.id("EQQ_BuddyList_Sign_" + d.uin), k.push({
uin: d.uin,
el: h,
classId: d.classId
}))
}
};
this.removeBuddy = function(b) {
var d = a.id("EQQ_Buddy_" + b.uin);
if (d) {
c.off(d, "mouseover");
c.off(d, "mouseout");
c.off(d, "click");
c.off(d, "contextmenu");
if (b = a.id("EQQ_BuddyList_AvatarContainer_" + b.uin)) c.off(b, "mouseover"),
c.off(b, "mouseout");
d.parentNode && d.parentNode.removeChild(d);
return !0
} else return !1
};
this.addOnlineBuddy = function(d) {
if (d) {
var e = f.string.template('\t\t\t\t\t<div class="EQQ_BuddyList_ClientType" uin="<%=uin%>" id="EQQ_OnlineBuddyList_ClientType_Title_<%=uin%>" title="' + EQQ.hash.clientTypeText[d.clientType] + '">\t\t\t\t\t\t<div id="EQQ_OnlineBuddyList_ClientType_<%=uin%>" class="EQQ_BuddyList_ClientType_' + EQQ.hash.clientType[d.clientType || "10000"] + '"></div>\t\t\t\t\t</div>\t\t\t\t\t<div id="EQQ_OnlineBuddyList_AvatarContainer_<%=uin%>" class="EQQ_BuddyList_AvatarContainer" uin="<%=uin%>" title="' + EQQ.hash.onlineStatusText[d.state] + '">\t\t\t\t\t\t<img id="EQQ_OnlineBuddyList_Avatar_<%=uin%>" class="EQQ_BuddyList_Avatar" src="' + alloy.CONST.CDN_URL + 'style/images/avatar_default_20_20.gif" />\t\t\t\t\t\t<div class="EQQ_BuddyList_State"></div>\t\t\t\t\t</div>\t\t\t\t\t<div class="EQQ_BuddyList_RightContainer">\t\t\t\t\t\t<div class="EQQ_BuddyList_Nick" title="<%=titleAllName%> - ' + (EQQ.hash.clientTypeText[d.clientType || "pc"] === "PC" ? "" : EQQ.hash.clientTypeText[d.clientType || "pc"]) + EQQ.hash.onlineStatusText[d.state] + '"><%=htmlShowName%></div> <div id="EQQ_OnlineBuddyList_Sign_<%=uin%>" title="" class="EQQ_BuddyList_Sign"></div>\t\t\t\t\t</div>\t\t\t\t', d),
g = a.id("EQQ_Class_" + EQQ.hash.userClassType.online + "_" + d.state);
a.setStyle(g, "display", "block");
var h = a.node("div", {
id: "EQQ_OnlineBuddy_" + d.uin,
uin: d.uin,
fileId: d.uin,
uid: "online_uin_" + d.uin,
from: "buddy",
type: "uin"
});
h.innerHTML = e;
g.appendChild(h);
c.on(h, "mouseover", Z);
c.on(h, "mouseout", $);
c.on(h, "click",
function(a) {
ma.apply(this, [a]);
pgvSendClick({
hottag: "web2qq.qqpanel.contacts.sendmsg"
});
alloy.util.report2im("qqpanel|contacts|sendmsg")
});
c.on(h, "contextmenu", oa);
a.addClass(h, "EQQ_BuddyList_Buddy");
e = a.id("EQQ_OnlineBuddyList_AvatarContainer_" + d.uin);
c.on(e, "mouseover", ha);
c.on(e, "mouseout", ia);
f.platform.iPad || b.contactDragController.addDragClass(h);
e = a.id("EQQ_OnlineBuddyList_Avatar_" + d.uin);
h = EQQ.hash.userClassType.online;
this.getClassExpandFlag(h) ? (f.out("addOnlineBuddy & loadAvatar"), e.src = EQQ.getUserAvatar(d.uin)) : r.push({
uin: d.uin,
imgEl: e,
classId: h
});
ba() && this.getClassExpandFlag(h) ? EQQ.Model.BuddyList.getUserSignature(d.uin) : (e = a.id("EQQ_OnlineBuddyList_Sign_" + d.uin), k.push({
uin: d.uin,
el: e,
classId: h
}))
}
fa()
};
this.removeOnlineBuddy = function(b) {
var d = a.id("EQQ_OnlineBuddy_" + b.uin);
if (d) {
c.off(d, "mouseover");
c.off(d, "mouseout");
c.off(d, "click");
c.off(d, "contextmenu");
if (b = a.id("EQQ_OnlineBuddyList_AvatarContainer_" + b.uin)) c.off(b, "mouseover"),
c.off(b, "mouseout");
d.parentNode && d.parentNode.removeChild(d);
return !0
} else return !1
};
this.updateOnlineBuddyClass = function(b) {
b = b.length;
a.id("EQQ_Class_" + EQQ.hash.userClassType.online + "_OnlineCounter").innerHTML = b
};
this.updateBuddySignature = function(b) {
if (b) {
var c = a.id("EQQ_OnlineBuddyList_Sign_" + b.uin),
d = a.id("EQQ_BuddyList_Sign_" + b.uin),
f = a.id("EQQ_RecentList_Sign_" + b.uin);
if (c && !c.hasSign) c.innerHTML = b.htmlSignature,
c.title = b.titleSignature,
c.hasSign = !0;
if (d && !d.hasSign) d.innerHTML = b.htmlSignature,
d.title = b.titleSignature,
d.hasSign = !0;
if (f && !f.hasSign) f.innerHTML = b.htmlSignature,
f.title = b.titleSignature,
f.hasSign = !0
}
};
this.updateGroupAnnouncement = function(b) {
var c = a.id("EQQ_GroupList_Bulletin_" + b.gid),
d = a.id("EQQ_GroupRecentList_Bulletin_" + b.gid);
if (c && !c.hasSign) c.innerHTML = b.htmlAnnouncement,
c.title = b.titleAnnouncement,
c.hasSign = !0;
if (d && !d.hasSign) d.innerHTML = b.htmlAnnouncement,
d.title = b.titleAnnouncement,
d.hasSign = !0
};
this.jumpUp = function(b) {
m = !0;
for (var c = 0; c < b.length; c++) {
var d = a.id("EQQ_Buddy_" + b[c]);
d && a.addClass(d, "EQQ_jumpUpInBuddyList")
}
};
this.jumpDown = function(b) {
m = !1;
for (var c = 0; c < b.length; c++) {
var d = a.id("EQQ_Buddy_" + b[c]);
d && a.removeClass(d, "EQQ_jumpUpInBuddyList")
}
};
this.jumpAvatar = function(a) {
m ? this.jumpDown(a) : this.jumpUp(a)
};
this.flickerClassHide = function(b) {
o = !0;
for (var c = 0; c < b.length; c++) {
var d = a.id("EQQ_listClassHead_" + b[c]);
a.addClass(d, "EQQ_flickerHideInBuddyList")
}
};
this.flickerClassShow = function(b) {
o = !1;
for (var c = 0; c < b.length; c++) {
var d = a.id("EQQ_listClassHead_" + b[c]);
a.removeClass(d, "EQQ_flickerHideInBuddyList")
}
};
this.flickerClass = function(a) {
o ? this.flickerClassShow(a) : this.flickerClassHide(a)
};
this.groupJumpUp = function(b) {
z = !0;
for (var c = 0; c < b.length; c++) {
var d = a.id("EQQ_Group_" + b[c]);
d && a.addClass(d, "EQQ_jumpUpInGroupList")
}
};
this.groupJumpDown = function(b) {
z = !1;
for (var c = 0; c < b.length; c++) {
var d = a.id("EQQ_Group_" + b[c]);
d && a.removeClass(d, "EQQ_jumpUpInGroupList")
}
};
this.groupJumpAvatar = function(a) {
z ? this.groupJumpDown(a) : this.groupJumpUp(a)
};
this.recentJumpUp = function(b) {
q = !0;
for (var c = 0; c < b.length; c++) {
var d = a.id("EQQ_Recent_" + b[c]);
d && (a.addClass(d, "EQQ_jumpUpInBuddyList"), a.addClass(d, "EQQ_jumpUpInGroupList"))
}
};
this.recentJumpDown = function(b) {
q = !1;
for (var c = 0; c < b.length; c++) {
var d = a.id("EQQ_Recent_" + b[c]);
d && (a.removeClass(d, "EQQ_jumpUpInBuddyList"), a.removeClass(d, "EQQ_jumpUpInGroupList"))
}
};
this.recentJumpAvatar = function(a) {
q ? this.recentJumpDown(a) : this.recentJumpUp(a)
};
this.moveBuddy = function(b) {
var c = a.id("EQQ_Buddy_" + b.uin),
d = a.id("EQQ_Class_" + b.classId + "_" + b.state);
if (d && c) {
a.setStyle(d, "display", "block");
var f = c.parentNode;
d.insertBefore(c, d.firstChild);
var c = a.id("EQQ_BuddyList_AvatarContainer_" + b.uin),
d = a.id("EQQ_BuddyList_RightContainer_" + b.uin),
e = a.id("EQQ_RecentList_AvatarContainer_" + b.uin),
h = a.id("EQQ_RecentList_RightContainer_" + b.uin);
if (c) c.title = EQQ.hash.onlineStatusText[b.state];
if (d) d.title = b.allName + " - " + EQQ.hash.onlineStatusText[b.state];
if (e) e.title = EQQ.hash.onlineStatusText[b.state];
if (h) h.title = b.allName + " - " + EQQ.hash.onlineStatusText[b.state];
f.childNodes.length == 0 && a.setStyle(f, "display", "none")
}
fa()
};
this.moveOnlineBuddy = function(b) {
var c = a.id("EQQ_OnlineBuddy_" + b.uin);
if ((b = a.id("EQQ_Class_" + EQQ.hash.userClassType.online + "_" + b.state)) && c) {
a.setStyle(b, "display", "block");
var d = c.parentNode;
b.insertBefore(c, b.firstChild);
d.childNodes.length == 0 && a.setStyle(d, "display", "none")
}
fa()
};
this.updateClientType = function(b) {
var c = EQQ.hash.clientType[b.clientType],
d = EQQ.hash.clientTypeText[b.clientType || "PC"],
f = a.id("EQQ_BuddyList_ClientType_" + b.uin) || {},
e = a.id("EQQ_BuddyList_ClientType_Title_" + b.uin) || {};
f.className = "EQQ_BuddyList_ClientType_" + c;
e.title = d;
f = a.id("EQQ_OnlineBuddyList_ClientType_" + b.uin) || {};
e = a.id("EQQ_OnlineBuddyList_ClientType_Title_" + b.uin) || {};
f.className = "EQQ_BuddyList_ClientType_" + c;
e.title = d
};
this.updateBuddyClassOnlineBuddy = function(b) {
a.id("EQQ_Class_" + b.index + "_OnlineCounter").innerHTML = b.onlineCount
};
this.updateRecentState = function(b) {
var c = a.id("EQQ_Recent_" + b.uin);
if (c) {
c.className = "";
a.addClass(c, "EQQ_BuddyList_Buddy");
a.addClass(c, "EQQ_" + EQQ.hash.onlineStatus[b.state] + "Buddy");
var c = EQQ.hash.clientType[b.clientType],
d = EQQ.hash.clientTypeText[b.clientType || "PC"],
f = a.id("EQQ_RecentList_ClientType_" + b.uin) || {},
b = a.id("EQQ_RecentList_ClientType_Title_" + b.uin) || {};
f.className = "EQQ_BuddyList_ClientType_" + c;
b.title = d
}
};
this.updateBuddyClassCount = function(b) {
a.id("EQQ_Class_" + b.index + "_Counter").innerHTML = b.count
};
this.updateStrangerClassOnlineCount = function(b) {
a.id("EQQ_Class_" + EQQ.hash.userClassType.stranger + "_OnlineCounter").innerHTML = b
};
this.updateStrangerClassCount = function(b) {
b = b.length;
a.id("EQQ_Class_" + EQQ.hash.userClassType.stranger + "_Counter").innerHTML = b
};
this.setUserName = function(b) {
var c = b.uin,
d = a.id("EQQ_BuddyList_Nick_" + c),
c = a.id("EQQ_BuddyList_RightContainer_" + c);
if (d && c) d.innerHTML = b.htmlShowName,
c.title = b.allName
};
this.setGroupMask = function(c) {
F = c;
switch (c) {
case "0":
case 0:
a.id("EQQ_ListBottom_maskButton").className = "accept";
a.id("EQQ_ListBottom_maskButton").childNodes[0].className = "accept_div";
break;
case "1":
case 1:
a.id("EQQ_ListBottom_maskButton").className = "accept";
a.id("EQQ_ListBottom_maskButton").childNodes[0].className = "accept_div";
break;
case "2":
case 2:
a.id("EQQ_ListBottom_maskButton").className = "mask";
a.id("EQQ_ListBottom_maskButton").childNodes[0].className = "mask_div";
break;
case "3":
case 3:
a.id("EQQ_ListBottom_maskButton").className = "mask",
a.id("EQQ_ListBottom_maskButton").childNodes[0].className = "mask_div"
}
b.groupMaskPanel && b.setGroupMaskState(F)
};
this.showReLoginPanel = function(b) {
this.EQQ_ReLoginButton_text.innerHTML = b;
a.hide(this.EQQ_Logining_Container);
a.hide(this.EQQ_Logining_feedback);
a.show(this.EQQ_ReLoginPanel);
a.hide(this.EQQ_LoginSuccess)
};
this.onReLoginButtonClick = function() {
a.show(b.EQQ_Logining_Container);
a.show(b.EQQ_Logining_feedback);
a.hide(b.EQQ_ReLoginPanel);
a.hide(b.EQQ_LoginSuccess);
c.notifyObservers(b, "ReLogin")
};
this.createGroupList = function(a) {
this.EQQ_groupListInner.innerHTML = "";
for (var b = 0; b < a.length; b++) this.addGroup(a[b])
};
this.addGroup = function(d) {
var e = '\t\t\t\t<div class="EQQ_GroupList_AvatarContainer" title="">\t\t\t\t\t<img id="EQQ_GroupList_Avatar_' + d.gid + '" class="EQQ_GroupList_Avatar" src="' + EQQ.getGroupAvatar(d.code) + '" />\t\t\t\t\t<div class="EQQ_GroupList_State" id="EQQ_GroupList_State_' + d.gid + '" title="\u7fa4\u5c4f\u853d"></div>\t\t\t\t</div>\t\t\t\t<div class="EQQ_GroupList_RightContainer">\t\t\t\t\t<div id="EQQ_GroupList_Name_' + d.gid + '" title="<%=titleAllName%> - <%=titleTypeText%>" class="EQQ_GroupList_Name"><%=htmlShowName%></div>\t\t\t\t\t<div id="EQQ_GroupList_Bulletin_' + d.gid + '" title="" class="EQQ_GroupList_Bulletin"></div>\t\t\t\t</div>\t\t\t',
e = f.string.template(e, d),
h = a.node("div", {
id: "EQQ_Group_" + d.gid,
code: d.code,
gid: d.gid,
fileId: d.code,
uid: "group_gid_" + d.code,
from: "buddy",
type: "gid"
});
h.innerHTML = e;
this.EQQ_groupListInner.appendChild(h);
f.platform.iPad || b.contactDragController.addDragClass(h);
c.on(h, "mouseover", Z);
c.on(h, "mouseout", $);
c.on(h, "click",
function(a) {
ya.apply(this, [a]);
pgvSendClick({
hottag: "web2qq.qqpanel.qun.sendmsg"
});
alloy.util.report2im("qqpanel|groups|sendmsg")
});
c.on(h, "contextmenu", La);
a.addClass(h, "EQQ_GroupList_Group");
A === "group" && ca() ? EQQ.Model.BuddyList.getGroupAnnouncement(d.code) : (e = a.id("EQQ_GroupList_Bulletin_" + d.gid), D.push({
gcode: d.code,
el: e
}))
};
this.updateGroupMarkName = function(b) {
var c = a.id("EQQ_GroupList_Name_" + b.gid);
if (c) c.innerHTML = b.htmlShowName;
if (c = a.id("EQQ_GroupRecentList_Name_" + b.gid)) c.innerHTML = b.htmlShowName
};
this.addDiscu = function(a) {
a = this.getNewNode(a);
this.EQQ_discuListInner.appendChild(a);
c.on(a, "mouseover", Z);
c.on(a, "mouseout", $);
c.on(a, "click",
function() {
b.onDiscuListClick(this)
});
c.on(a, "contextmenu",
function(a) {
var c = this.getAttribute("did");
b.onDiscuContextMenu(a, c)
});
this.hideReloadDiscuList();
this.hideCreatePanel()
};
this.createDiscuList = function(a) {
this.EQQ_discuListInner.innerHTML = "";
a.length == 0 && this.showCreatePanel();
for (var b in a) this.addDiscu(a[b])
};
this.createRecentList = function(a) {
this.EQQ_recentList.innerHTML = "";
for (var b = 0; b < a.length; b++) this.addRecent(a[b])
};
this.addRecent = function(d) {
if (d.content) if (d.type == 0) {
var d = d.content,
e = f.string.template('\t\t\t\t\t\t<div class="EQQ_RecentList_ClientType" uin="<%=uin%>" id="EQQ_BuddyList_ClientType_Title_<%=uin%>" title="' + EQQ.hash.clientTypeText[d.clientType || "PC"] + '">\t\t\t\t\t\t\t<div id="EQQ_RecentList_ClientType_<%=uin%>" class="EQQ_BuddyList_ClientType_' + EQQ.hash.clientType[d.clientType || "10000"] + '"></div>\t\t\t\t\t\t</div>\t\t\t\t\t\t<div id="EQQ_RecentList_AvatarContainer_<%=uin%>" class="EQQ_BuddyList_AvatarContainer" uin="<%=uin%>" title="' + EQQ.hash.onlineStatusText[d.state] + '">\t\t\t\t\t\t\t<img id="EQQ_RecentList_Avatar_<%=uin%>" class="EQQ_BuddyList_Avatar" src="' + alloy.CONST.CDN_URL + 'style/images/avatar_default_20_20.gif" />\t\t\t\t\t\t\t<div class="EQQ_BuddyList_State"></div>\t\t\t\t\t\t</div>\t\t\t\t\t\t<div id="EQQ_RecentList_RightContainer_<%=uin%>" class="EQQ_BuddyList_RightContainer">\t\t\t\t\t\t\t<div id="EQQ_BuddyList_Nick_<%=uin%>" class="EQQ_BuddyList_Nick" title="<%=titleAllName%> - ' + EQQ.hash.onlineStatusText[d.state] + '"><%=htmlShowName%></div> <div id="EQQ_RecentList_Sign_<%=uin%>" title="" class="EQQ_BuddyList_Sign"></div>\t\t\t\t\t\t</div>\t\t\t\t\t', d),
h = a.node("div", {
id: "EQQ_Recent_" + d.uin,
uin: d.uin,
uin: d.uin,
fileId: d.uin,
uid: "recent_uin_" + d.uin,
from: "buddy",
type: "uin"
});
h.innerHTML = e;
this.EQQ_recentList.insertBefore(h, this.EQQ_recentList.firstChild);
c.on(h, "mouseover", Z);
c.on(h, "mouseout", $);
c.on(h, "click",
function(a) {
ma.apply(this, [a]);
pgvSendClick({
hottag: "web2qq.qqpanel.recent.sendC2Cmsg"
});
alloy.util.report2im("qqpanel|recent|sendC2Cmsg")
});
c.on(h, "contextmenu", Ka);
f.platform.iPad || b.contactDragController.addDragClass(h);
e = a.id("EQQ_RecentList_AvatarContainer_" + d.uin);
c.on(e, "mouseover", ha);
c.on(e, "mouseout", ia);
a.addClass(h, "EQQ_BuddyList_Buddy");
a.addClass(h, "EQQ_" + EQQ.hash.onlineStatus[d.state] + "Buddy");
e = a.id("EQQ_RecentList_Avatar_" + d.uin);
if (d.uin && e) e.src = EQQ.getUserAvatar(d.uin);
A === "recent" && da() ? EQQ.Model.BuddyList.getUserSignature(d.uin) : (e = a.id("EQQ_RecentList_Sign_" + d.uin), B.push({
uin: d.uin,
el: e
}))
} else d.type == 1 ? (d = d.content, e = '\t\t\t\t\t<div class="EQQ_GroupList_AvatarContainer" title="">\t\t\t\t\t\t<img id="EQQ_GroupList_Avatar_' + d.gid + '" class="EQQ_GroupList_Avatar" src="' + EQQ.getGroupAvatar(d.code) + '" />\t\t\t\t\t\t<div class="EQQ_GroupList_State" id="EQQ_RecentList_State_' + d.gid + '" title="\u7fa4\u5c4f\u853d"></div>\t\t\t\t\t</div>\t\t\t\t\t<div class="EQQ_GroupList_RightContainer" title="<%=titleAllName%> - <%=titleTypeText%>">\t\t\t\t\t\t<div id="EQQ_GroupRecentList_Name_' + d.gid + '" class="EQQ_GroupList_Name"><%=htmlShowName%></div> <div id="EQQ_GroupRecentList_Bulletin_' + d.gid + '" title="" class="EQQ_GroupList_Bulletin"></div>\t\t\t\t\t</div>\t\t\t\t', e = f.string.template(e, d), h = a.node("div", {
id: "EQQ_Recent_" + d.gid,
code: d.code,
gid: d.gid,
fileId: d.code,
uid: "recent_gid_" + d.code,
from: "buddy",
type: "gid"
}), h.innerHTML = e, this.EQQ_recentList.insertBefore(h, this.EQQ_recentList.firstChild), f.platform.iPad || b.contactDragController.addDragClass(h), c.on(h, "mouseover", Z), c.on(h, "mouseout", $), c.on(h, "click",
function(a) {
ya.apply(this, [a]);
pgvSendClick({
hottag: "web2qq.qqpanel.recent.sendqunmsg"
});
alloy.util.report2im("qqpanel|recent|sendgroupsmsg")
}), c.on(h, "contextmenu", Ma), a.addClass(h, "EQQ_GroupList_Group"), A === "recent" && da() ? EQQ.Model.BuddyList.getGroupAnnouncement(d.code) : (e = a.id("EQQ_GroupRecentList_Bulletin_" + d.gid), E.push({
gcode: d.code,
el: e
}))) : d.type == 2 && (d = this.getNewNode(d.content, !0), this.EQQ_recentList.insertBefore(d, this.EQQ_recentList.firstChild), c.on(d, "mouseover", Z), c.on(d, "mouseout", $), c.on(d, "click",
function() {
b.onDiscuListClick(this)
}), c.on(d, "contextmenu",
function(a) {
var c = this.getAttribute("did");
b.onDiscuContextMenu(a, c)
}))
};
this.removeRecentBuddy = function(b) {
var d = a.id("EQQ_Recent_" + b.uin);
if (d) {
c.off(d, "mouseover");
c.off(d, "mouseout");
c.off(d, "click");
c.off(d, "contextmenu");
if (b = a.id("EQQ_RecentList_AvatarContainer_" + b.uin)) c.off(b, "mouseover"),
c.off(b, "mouseout");
d.parentNode && d.parentNode.removeChild(d)
}
};
this.updateRecentByBuddy = function(b) {
var c = a.id("EQQ_Recent_" + b.uin);
c ? this.EQQ_recentList.insertBefore(c, this.EQQ_recentList.firstChild) : this.addRecent({
type: 0,
content: b
})
};
this.updateRecentByGroup = function(b) {
var c = a.id("EQQ_Recent_" + b.gid);
c ? this.EQQ_recentList.insertBefore(c, this.EQQ_recentList.firstChild) : this.addRecent({
type: 1,
content: b
})
};
this.updateRecentByDiscu = function(b) {
var c = a.id("EQQ_Recent_" + b.did);
c ? this.EQQ_recentList.insertBefore(c, this.EQQ_recentList.firstChild) : this.addRecent({
type: 2,
content: b
})
};
this.setMode = function(b) {
switch (b) {
case "master":
ga = va;
a.removeClass(this.EQQ_MyState, "EQQ_DisableMyStateSelect");
this.EQQ_MyState.title = "\u66f4\u6539\u5728\u7ebf\u72b6\u6001";
break;
case "slave":
ga = Ta,
a.addClass(this.EQQ_MyState, "EQQ_DisableMyStateSelect"),
this.EQQ_MyState.title = "WebQQ\u73b0\u5728\u5904\u4e8e\u8f85\u6a21\u5f0f\uff0c\u8bf7\u4ece\u5ba2\u6237\u7aefQQ\u4fee\u6539\u60a8\u7684\u5728\u7ebf\u72b6\u6001\u3002"
}
};
this.toggleStatePanel = function(a) {
this.statePanel && this.statePanel.isShow() ? this.hideStatePanel() : this.showStatePanel(a)
};
this.showStatePanel = function(b) {
a.id("EQQ_StatePanel") || this.createStatePanelDom();
if (b) {
var c = this.statePanel.getWidth(),
d = this.statePanel.getHeight(),
e = alloy.layout.getClientWidth(),
f = alloy.layout.getClientHeight(),
h = b[0],
b = b[1];
h < 2 && (h = 2);
b < 2 && (b = 2);
h > e - c - 2 && (h = e - c - 2);
b > f - d - 2 && (b = f - d - 2);
this.statePanel.setXY(h, b)
}
this.statePanel.setZIndex(alloy.layout.getTopZIndex(3));
this.statePanel.show();
wa(alloy.sound.isMute())
};
this.hideStatePanel = function() {
this.statePanel && this.statePanel.hide()
};
this.setSelfState = function(a) {
c.notifyObservers(this, "SelfStateChange", a);
this.updateSelfStateChange(a)
};
this.removeGroup = function(b) {
var d = EQQ.Model.BuddyList.getGroupByCode(b),
b = d.gid;
f.out(d);
var e = a.id("EQQ_Group_" + b);
if (e && (c.off(e), e.parentNode)) d = e.parentNode,
d.removeChild(e);
f.out(e);
if (b = a.id("EQQ_Recent_" + b)) if (c.off(b), b.parentNode) d = b.parentNode,
d.removeChild(b);
f.out(b)
}
};
WebqCore.register("EQQ.View.MainPanel", f);
var j;
j = Jx().extend(function(g) {
f.call(this, g);
var b = this,
a = g.dom,
c = g.event;
this.getHtml = function() {
return d.myPanel + '<div id="EQQ_MainPanel" class="EQQ_mainPanel">' + d.mainPanelHeader + g.string.template(d.mainPanelBody, {
searchReaultPanel: d.searchReaultPanelFlex,
buddyListBody: d.buddyListBodyFlex
}) + d.mainPanelFooter + "</div>"
};
this.viewQzone = function(a) {
qqweb.rpcService.sendGetFriendUin2(a, 2,
function(a) {
qqweb.portal.runApp("6", {
url: EQQ.CONST.QZONE_USER_SERVER_DOMAIN + a.result.account
});
qqweb.util.report2qqweb("contextmenu|contancts|qzone")
});
return !0
};
this.sendQMail = function(a) {
qqweb.rpcService.sendGetFriendUin2(a, 3,
function(a) {
qqweb.portal.runApp("6", {
url: EQQ.getSendMailUrl(a.result.account)
});
qqweb.util.report2qqweb("contextmenu|contancts|mail")
});
return !0
};
this.chatFromFlashMenu = function(a) {
c.notifyObservers(b, "StartChat", a);
qqweb.util.report2qqweb("contextmenu|contancts|sendmsg");
return !0
};
this.viewDetailFromFlashMenu = function(a) {
qqweb.portal.runApp("userDetails", a);
qqweb.util.report2qqweb("contextmenu|contancts|profile");
return !0
};
this.viewLogFromFlashMenu = function(a) {
qqweb.portal.runApp("chatLogViewer", a);
qqweb.util.report2qqweb("contextmenu|contancts|chats");
return !0
};
this.ManageFriendFromFlashMenu = function() {
qqweb.portal.runApp("5", {});
qqweb.util.report2qqweb("contextmenu|contancts|manage");
return !0
};
this.findFriendFromFlashMenu = function() {
qqweb.portal.runApp("buddyFinder", {});
qqweb.util.report2qqweb("contextmenu|contancts|add");
return !0
};
this.onAvatarMouseover = function(d, f) {
if (d && f) {
if (EQQ.avatarMouseoverTimer) clearTimeout(EQQ.avatarMouseoverTimer),
EQQ.avatarMouseoverTimer = null;
var g = a.getClientXY(b.EQQ_buddyList);
g[0] -= 218;
g[1] += f.y;
b.showMiniCardPanel(d, g);
c.notifyObservers(b, "AvatarMouseover", d)
}
};
this.onFlexException = function() {
g.out("Flex-Exception");
b.flex = window.frames.iframe_fflist.document.getElementById("fflist");
b.ifFlexReady = !0;
c.notifyObservers(EQQ, "LoginFailure", {
text: "\u62c9\u53d6\u5931\u8d25"
})
};
this.buddyListReady = function() {
b.flex = window.frames.iframe_fflist.document.getElementById("fflist");
b.ifFlexReady = !0;
c.notifyObservers(b, "BuddyListReady");
this.setFlexBigHead(this.isBuddyListUseBigHead())
};
var j = function() {
b.hideMiniCardPanel()
};
this.onAvatarMouseout = function() {
EQQ.avatarMouseoverTimer = window.setTimeout(j, 500)
};
this.onBuddyListClick = function(a) {
c.notifyObservers(b, "StartChat", a)
};
this.showSearchResult = function(b) {
if (this.EQQ_SearchBox.value) {
var d = a.getRelativeXY(this.EQQ_SearchBox, this.EQQ_MainPanel);
a.setStyle(this.EQQ_SearchResultPanel_iframeWrap, "left", d[0] + "px");
a.setStyle(this.EQQ_SearchResultPanel_iframeWrap, "top", d[1] + 26 + "px");
a.show(this.EQQ_SearchResultPanel);
a.show(this.EQQ_SearchResultPanel_iframeWrap);
this.EQQ_SearchResultPanel.innerHTML = "";
if (b.length == 0) this.EQQ_SearchResultPanel.innerHTML = '<div class="EQQ_SearchResultNo">\u6ca1\u6709\u627e\u5230\u76f8\u5173\u597d\u53cb</div>';
else for (d = 0; d < b.length; d++) {
var f = b[d],
j = a.node("div");
a.setClass(j, "EQQ_SearchResultItem");
j.id = "EQQ_SearchResultItem_" + f.uin;
j.setAttribute("uin", f.uin);
j.innerHTML = f.htmlAllName;
j.title = f.allName;
this.EQQ_SearchResultPanel.appendChild(j);
d == 0 && a.setStyle(j, "backgroundColor", "#cbe7fc");
c.on(j, "mouseover", this.onSearchResultMouseover);
c.on(j, "mouseout", this.onSearchResultMouseout);
c.on(j, "mousedown", this.onSearchResultClick)
}
c.on(document, "mousedown", g.bind(this.hideSearchResult, this))
}
};
this.hideSearchResult = function() {
a.hide(this.EQQ_SearchResultPanel_iframeWrap);
c.off(document, "mousedown")
};
this.createBuddyClass = function() { };
this.addBuddyClass = function(b, d) {
var f, j;
f = a.node("div", {
id: "EQQ_listClassHead_" + b.index,
classIndex: b.index
});
j = b.index == EQQ.hash.userClassType.online ? ' <div class="EQQ_listClassHeadIcon">icon</div> <div class="EQQ_ClassList_RightContainer" title="<%=titleName%>"> <%=htmlName%>[<span id="EQQ_Class_<%=index%>_OnlineCounter"><%=onlineCount%></span>] </div> ' : ' <div class="EQQ_listClassHeadIcon">icon</div> <div class="EQQ_ClassList_RightContainer" title="<%=titleName%>"> <%=htmlName%> [<span id="EQQ_Class_<%=index%>_OnlineCounter"><%=onlineCount%></span>/<span id="EQQ_Class_<%=index%>_Counter"><%=count%></span>] </div> ';
j = g.string.template(j, b);
f.innerHTML = j;
d ? this.EQQ_buddyList.insertBefore(f, d) : this.EQQ_buddyList.appendChild(f);
c.on(f, "click", onClassHeadElClick);
var i = a.node("div", {
id: "EQQ_listClassBody_" + b.index,
"class": "EQQ_listClassBody"
});
j = g.string.template(' <div id="EQQ_Class_<%=index%>_callme" class="EQQ_callmeBuddy"></div> <div id="EQQ_Class_<%=index%>_online" class="EQQ_onlineBuddy"></div> <div id="EQQ_Class_<%=index%>_busy" class="EQQ_busyBuddy"></div> <div id="EQQ_Class_<%=index%>_away" class="EQQ_awayBuddy"></div> <div id="EQQ_Class_<%=index%>_silent" class="EQQ_silentBuddy"></div> <div id="EQQ_Class_<%=index%>_offline" class="EQQ_offlineBuddy"></div> ', b);
i.innerHTML = j;
this.EQQ_buddyList.insertBefore(i, f.nextSibling);
this.collapsedClass(b.index)
};
this.showPullData = function() { };
this.clearBuddyList = function() {
b.ifFlexReady && this.flex.clearBuddyList()
};
this.createBuddyList = function() { };
this.collapsedClass = function(b) {
var c = a.id("EQQ_listClassHead_" + b),
d = a.id("EQQ_listClassBody_" + b);
b == EQQ.hash.userClassType.online ? a.setClass(c, "EQQ_onlineClassHeadCollapsed") : a.setClass(c, "EQQ_listClassHeadCollapsed");
a.setStyle(d, "height", "0");
this.setClassExpandFlag(b, !1)
};
this.expandClass = function(c) {
var d = a.id("EQQ_listClassHead_" + c),
f = a.id("EQQ_listClassBody_" + c);
c == EQQ.hash.userClassType.online ? a.setClass(d, "EQQ_onlineClassHeadExpand") : a.setClass(d, "EQQ_listClassHeadExpand");
a.setStyle(f, "height", "auto");
this.setClassExpandFlag(c, !0);
g.out("index: " + c);
b.loadBuddyListAvatar()
};
this.onBuddyStateChange = function(a) {
if (b.ifFlexReady) this.flex.onBuddyStateChange(a)
};
this.onOnlineBuddyChange = function(a) {
if (b.ifFlexReady) this.flex.onOnlineBuddyChange(a)
};
this.addBuddy = function(a) {
a = {
classId: a.classId,
uin: a.uin,
clientType: a.clientType,
state: a.state,
nick: a.nick
};
b.ifFlexReady && this.flex.addBuddy(a)
};
this.addOnlineBuddy = function(a) {
a = {
uin: a.uin,
clientType: a.clientType,
state: a.state,
nick: a.nick
};
b.ifFlexReady && this.flex.addOnlineBuddy(a)
};
this.removeOnlineBuddy = function(a) {
b.ifFlexReady && this.flex.removeOnlineBuddy(a.uin)
};
this.updateOnlineBuddyClass = function(a) {
b.ifFlexReady && this.flex.updateOnlineBuddyClass(a.length)
};
this.flexStartJump = function(a) {
b.ifFlexReady && this.flex.startjump(a)
};
this.flexStopJump = function(a) {
b.ifFlexReady && this.flex.stopjump(a)
};
this.jumpUp = function() { };
this.jumpDown = function() { };
this.jumpAvatar = function() { };
this.flickerClassHide = function() { };
this.flickerClassShow = function() { };
this.flickerClass = function() { };
this.moveBuddy = function(a) {
a = {
uin: a.uin,
state: a.state
};
b.ifFlexReady && this.flex.moveBuddy(a)
};
this.moveOnlineBuddy = function(a) {
a = {
uin: a.uin,
state: a.state
};
b.ifFlexReady && this.flex.moveOnlineBuddy(a)
};
this.updateClientType = function(a) {
a = {
uin: a.uin,
clientType: a.clientType
};
b.ifFlexReady && this.flex.updateClientType(a)
};
this.updateBuddyClassOnlineBuddy = function(a) {
a = {
index: a.index,
onlineCount: a.onlineCount
};
b.ifFlexReady && this.flex.updateBuddyClassOnlineBuddy(a)
};
this.updateBuddyClassCount = function(a) {
a = {
index: a.index,
count: a.count
};
b.ifFlexReady && this.flex.updateBuddyClassCount(a)
};
this.updateStrangerClassOnlineCount = function(a) {
b.ifFlexReady && this.flex.updateStrangerClassOnlineCount(a)
};
this.updateStrangerClassCount = function(a) {
b.ifFlexReady && this.flex.updateStrangerClassCount(a.length)
};
this.setUserName = function(a) {
a.markName && (a = {
uin: a.uin,
nick: a.markName
},
b.ifFlexReady ? this.flex.setUserName(a) : recent.type == 2 && (a = this.getNewNode(recent.content, !0), this.EQQ_recentList.insertBefore(a, this.EQQ_recentList.firstChild), c.on(a, "mouseover", onListMouseover), c.on(a, "mouseout", onListMouseout), c.on(a, "click",
function() {
b.onDiscuListClick(this)
}), c.on(a, "contextmenu",
function(a) {
var c = this.getAttribute("did");
b.onDiscuContextMenu(a, c)
})))
};
this.setUseBigHead = function(a) {
this.setBigHead("single", a)
};
this.setFlexBigHead = function(a) {
a ? this.flex.viewBigHead() : this.flex.viewSmallHead()
}
},
f);
WebqCore.register("EQQ.View.MainPanelFlex", j)
})(); (function() {
WebqCore.register("EQQ.Presenter.MainPanel",
function(d) {
var g = this,
f = d.event,
j = !1,
t = [],
b = [],
a = [],
c = [],
p = [],
m = !0,
z = !1,
q = !1,
o = !1,
i = !1;
this.init = function() {
j = !1;
t = [];
b = [];
a = [];
c = [];
p = [];
m = !0;
i = o = q = z = !1;
this.View = EQQ.View.MainPanel;
if (d.browser.ie && d.browser.ie == 7) {
var h = d.GetSwfVer();
h != -1 ? (h = h.split(" ")[1].split(","), parseInt(h[0]) >= 10 ? (o = !0, this.View = EQQ.View.MainPanelFlex, f.addObserver(EQQ.Model.ChatMsg, "flexStartJump", d.bind(this.onFlexStartJump, this)), f.addObserver(EQQ.Model.ChatMsg, "flexStopJump", d.bind(this.onFlexStopJump, this))) : r()) : r()
}
this.View.createDom(this.getContainer());
f.addObserver(EQQ, "CloseWebQQ", d.bind(this.onCloseWebQQ, this));
f.addObserver(EQQ, "SelfOffline", d.bind(this.onSelfOffline, this));
f.addObserver(EQQ, "LoginSuccess", w);
f.addObserver(EQQ, "LoginFailure", d.bind(x, this));
f.addObserver(EQQ, "PtwebqqFail", d.bind(C, this));
f.addObserver(EQQ.RPCService, "ChangeStatusSuccess", d.bind(u, this));
f.addObserver(alloy.portal, "UserAvatarChanged", d.bind(this.onUserAvatarChanged, this));
f.addObserver(alloy.portal, "selfInfoReady", d.bind(this.onSelfInfoReady, this));
f.addObserver(alloy.rpcService, "SetBuddySignatureSuccess", d.bind(this.onSetBuddySignatureSuccess, this));
f.addObserver(alloy.rpcService, "SetBuddySignatureError", d.bind(this.onSetBuddySignatureError, this));
f.addObserver(EQQ.Model.BuddyList, "SelfInfoChange", d.bind(this.onSelfInfoChange, this));
f.addObserver(EQQ.Model.BuddyList, "SelfStateChange", d.bind(this.updateSelfStateChange, this));
f.addObserver(EQQ.Model.BuddyList, "SelfSignatureChange", d.bind(this.handleSelfSignatureChange, this));
f.addObserver(EQQ.Model.BuddyList, "UserSignatureChange", k);
f.addObserver(EQQ.Model.BuddyList, "UserQQLevelChange", D);
f.addObserver(EQQ.Model.BuddyList, "GroupAnnouncementChange", B);
f.addObserver(EQQ.Model.BuddyList, "LoginFail", d.bind(this.onLoginFail, this));
f.addObserver(EQQ.Model.BuddyList, "GetUserInfoSuccess", d.bind(this.onGetUserInfoSuccess, this));
f.addObserver(EQQ.Model.BuddyList, "BuddyClassChange", d.bind(this.onBuddyClassChange, this));
f.addObserver(EQQ.Model.BuddyList, "AllClassOnlineBuddyReady", d.bind(this.onAllClassOnlineBuddyReady, this));
f.addObserver(this.View, "SendGetRecentList", s);
f.addObserver(EQQ.Model.BuddyList, "GroupNameChange", this.onOnGroupNameChange);
f.addObserver(EQQ.Model.BuddyList, "AddBuddy", d.bind(this.onAddANewBuddy, this));
f.addObserver(EQQ.Model.BuddyList, "RemoveBuddy", d.bind(this.onRemoveBuddy, this));
f.addObserver(EQQ.Model.BuddyList, "GroupListChange", d.bind(this.onGroupListChange, this));
f.addObserver(EQQ.Model.BuddyList, "AddNewGroupToList", d.bind(this.onAddNewGroupToList, this));
f.addObserver(EQQ.Model.BuddyList, "GroupMaskChange", d.bind(this.onGroupMaskChange, this));
f.addObserver(EQQ.Model.BuddyList, "SingleGroupMaskChange", d.bind(this.onSingleGroupMaskChange, this));
f.addObserver(EQQ.Model.BuddyList, "RecentListChange", d.bind(this.onRecentListChange, this));
f.addObserver(EQQ.Model.ChatMsg, "NewStranger", d.bind(this.onNewStranger, this));
f.addObserver(EQQ.Model.ChatMsg, "MessageBoxUserListChange", d.bind(this.onMessageBoxUserListChange, this));
f.addObserver(EQQ.Model.ChatMsg, "MessageBoxGroupListChange", d.bind(this.onMessageBoxGroupListChange, this));
f.addObserver(EQQ.Model.ChatMsg, "MessageListChange", d.bind(this.onMessageListChange, this));
f.addObserver(EQQ.Model.ChatMsg, "GroupMessageListChange", d.bind(this.onGroupMessageListChange, this));
f.addObserver(this.View, "StartChat", G);
f.addObserver(this.View, "AskVideo", e);
f.addObserver(this.View, "StartGroupChat", n);
f.addObserver(this.View, "StartDiscuChat", Q);
f.addObserver(this.View, "SelfStateChange", d.bind(this.onViewSelfStateChange, this));
f.addObserver(this.View, "SetGroupMaskState", K);
f.addObserver(this.View, "AddPObservers", d.bind(this.onAddPObservers, this));
f.addObserver(this.View, "ExitPortal", d.bind(this.onExitPortal, this));
f.addObserver(this.View, "CloseWebQQ", d.bind(y, this));
f.addObserver(this.View, "MinMainPanel", d.bind(A, this));
f.addObserver(this.View, "ReLogin", d.bind(H, this));
f.addObserver(this.View, "Search", d.bind(this.onSearch, this));
f.addObserver(this.View, "BuddyListReady", d.bind(this.onBuddyListDomReady, this));
f.addObserver(this.View, "CloseYellowTipsFinish", d.bind(this.onCloseYellowTipsFinish, this));
f.addObserver(this.View, "MiniCardShow", E);
f.addObserver(EQQ.Model.BuddyList, "DiscuListChange", d.bind(this.onDiscuListChange, this));
f.addObserver(EQQ.Model.BuddyList, "AddNewDiscuToList", d.bind(this.onAddNewDiscuToList, this));
f.addObserver(EQQ.Model.BuddyList, "ToStartDiscuChat", Q);
f.addObserver(EQQ.Model.BuddyList, "ModifyDiscuTopicSuccess", O);
f.addObserver(EQQ, "QuitDiscu", l);
f.addObserver(EQQ.Model.BuddyList, "QuitDiscuSuccess", P);
f.addObserver(EQQ.Model.ChatMsg, "MessageBoxDiscuListChange", d.bind(this.onMessageBoxDiscuListChange, this));
f.addObserver(EQQ.Model.BuddyList, "SingleDiscuMaskChange", R);
f.addObserver(EQQ.Model.ChatMsg, "ServerDiscuInfochange", J);
f.addObserver(EQQ.Model.BuddyList, "DiscuInfoChange", O);
f.addObserver(EQQ.Model.ChatMsg, "DiscuMessageListChange", d.bind(this.onDiscuMessageListChange, this));
f.addObserver(EQQ, "GetDiscuListFail", T);
this.View.init();
this.View.setNoneFlashStyle && this.View.setNoneFlashStyle()
};
var r = function() {
alloy.layout.getWindowManager().createWindow("Window", {
title: "\u6e29\u99a8\u63d0\u793a",
modeSwitch: !0,
dragable: !0,
resize: !0,
width: 400,
height: 50,
hasCloseButton: !0,
hasOkButton: !0,
isSetCentered: !0
}).setHtml('<div style="width:100%; height:100%; background-color:#FFFFFF; line-height:60px;text-align:center; vertical-align:middle;">\t\t\t\t\t\t\u68c0\u6d4b\u5230\u60a8\u4e3aIE7\u5185\u6838\u7528\u6237\uff0c\u8bf7\u5b89\u88c5\u6700\u65b0<a target="_blank" href="http://get.adobe.com/flashplayer">Flash\u7248\u672c</a>\uff0c\u83b7\u5f97\u66f4\u597d\u4f53\u9a8c\uff01\t\t\t\t\t </div>')
};
this.onAddPObservers = function() {
m = !1;
f.addObserver(EQQ.Model.BuddyList, "BuddyListChange", d.bind(this.onBuddyListChange, this));
f.addObserver(EQQ.Model.BuddyList, "BuddyStateChange", d.bind(this.onBuddyStateChange, this));
f.addObserver(EQQ.Model.BuddyList, "OnlineBuddyChange", d.bind(this.onOnlineBuddyChange, this))
};
this.onBuddyListDomReady = function() {
if (!z) {
if (m) this.onAddPObservers();
f.addObserver(EQQ.Model.BuddyList, "UserNameChange", d.bind(this.onUserNameChange, this));
z = !0
}
q = !0
};
this.getContainer = function() {
return EQQ.panel.mainPanel
};
var k = function(a) {
g.View.miniCardPanel && (d.out("onUserSignatureChange 33:" + a.uin), g.View.miniCardPanel.setSignature(a));
g.View.updateBuddySignature(a)
},
D = function(a) {
g.View.miniCardPanel && (d.out("onUserQQLevelChange 33:" + a.uin), g.View.miniCardPanel.setQQLevel(a))
},
B = function(a) {
g.View.updateGroupAnnouncement(a)
},
E = function(a) {
a && (EQQ.Model.BuddyList.getUserSignature(a.uin), EQQ.Model.BuddyList.sendGetQQLevel(a.uin))
};
this.showYellowTips = function() {
this.View.showYellowTips()
};
this.hideYellowTips = function() {
this.View.hideYellowTips()
};
this.onCloseYellowTipsFinish = function() {
this.setCookieTips("hide")
};
this.getCookieTips = function() {
return d.cookie.get("is_close_tips", EQQ.CONST.MAIN_DOMAIN)
};
this.setCookieTips = function(a) {
d.cookie.set("is_close_tips", a, EQQ.CONST.MAIN_DOMAIN, null, 120)
};
this.onSearch = function(a) {
this.View.showSearchResult(EQQ.Model.BuddyList.searchBuddy(a, 5))
};
this.showMiniCardPanel = function(a, b) {
this.View.showMiniCardPanel(a, b)
};
this.hideMiniCardPanel = function() {
this.View.hideMiniCardPanel()
};
this.onLoginFail = function() {
alloy.layout.alert("\u767b\u5f55\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5")
};
this.onSelfInfoChange = function(a) {
this.View.updateSelfInfoChange(a)
};
this.onSelfInfoReady = function(a) {
this.View.updateSelfInfoChange(a)
};
this.onSetBuddySignatureSuccess = function(a) {
EQQ.Model.BuddyList.getSelf().setSignature(a);
this.handleSelfSignatureChange({
signature: a
});
alloy.util.report2im("personalinfo|personalmsg|personalmsgsucceed")
};
this.onSetBuddySignatureError = function() {
alloy.layout.alert("\u7b7e\u540d\u4fee\u6539\u5931\u8d25")
};
this.onUserAvatarChanged = function() {
this.View.updateSelftAvatar()
};
this.onOnGroupNameChange = function(a) {
typeof g.View != "undefined" && g.View.updateGroupMarkName(a)
};
this.updateSelfStateChange = function(a) {
this.View.updateSelfStateChange(a)
};
this.handleSelfSignatureChange = function(a) {
this.View.updateSelfSignatureChange(a)
};
this.onSelfOffline = function(a) {
var b = EQQ.Model.BuddyList.getSelf();
q = i = !1;
EQQ.stopPoll();
if (b) b.oldState = b.state,
b.state = "offline";
this.updateSelfStateChange("offline");
a.action == "relogin" ? F(a.message) : EQQ.showEQQtips({
title: "\u8fde\u63a5\u4e2d\u65ad",
content: a.message,
callback: function() {
EQQ.reLogin()
}
})
};
var w = function() { },
x = function() {
this.updateSelfStateChange("offline")
},
C = function() {
this.updateSelfStateChange("offline")
},
F = function(a) {
EQQ.hideEQQtips();
alloy.layout.showLoginWindow("eqq", !0, null, a)
},
u = function(a) {
var b = EQQ.Model.BuddyList.getSelf();
b && (b.state = a)
};
this.onBuddyClassChange = function(a) {
this.clearBuddyList();
this.View.createBuddyClass(a);
this.View.hideLogin()
};
this.onAllClassOnlineBuddyReady = function() {
i || (i = !0, this.onBuddyClassListReady())
};
this.onBuddyClassListReady = function() {
EQQ.loginEnd = (new Date).getTime();
var a = EQQ.loginEnd - EQQ.loginStart;
a /= 1E3;
d.out("time: " + a)
};
this.onBuddyListChange = function(a) {
!q && !o && (this.updateAllBuddyClassCount(EQQ.Model.BuddyList.getClassList()), this.createBuddyList(a))
};
this.onRemoveBuddy = function(a) {
o || this.View.removeBuddy(a) && this.View.updateBuddyClassCount(EQQ.Model.BuddyList.getClassById(a.classId));
this.View.removeRecentBuddy(a)
};
this.onGroupListChange = function(a) {
this.View.createGroupList(a)
};
this.onAddNewGroupToList = function(a) {
this.View.addGroup(a)
};
this.onAddANewBuddy = function(a) {
var b = a.user,
c = a.newstate;
this.View.addBuddy(b);
this.View.updateBuddyClassCount(EQQ.Model.BuddyList.getClassById(b.classId));
a.markname && EQQ.Model.BuddyList.getBuddyByUin(b.uin).setMarkName(a.markname);
f.notifyObservers(EQQ.Model.BuddyList, "BuddyStatusChange", c)
};
this.onRecentListChange = function(a) {
for (var b = [], c = a.length - 1; c >= 0; c--) {
if (a[c].type == 0) a[c].content = EQQ.Model.BuddyList.getBuddyByUin(a[c].uin);
else if (a[c].type == 1) a[c].content = EQQ.Model.BuddyList.getGroupByGid(a[c].uin);
else if (a[c].type == 2) a[c].content = EQQ.Model.BuddyList.getDiscuById(a[c].uin);
b.push(a[c])
}
this.View.createRecentList(b)
};
this.onUserNameChange = function(a) {
this.View.setUserName(a)
};
this.onGroupMaskChange = function(a) {
for (var b = EQQ.Model.BuddyList.getGroupList(), c = 0; c < b.length; c++) {
var d = b[c],
e = EQQ.Model.BuddyList.isGroupPrompt(d.gid);
this.View.setGroupListMaskState(d.gid, e)
}
this.View.setGroupMask(a)
};
this.onSingleGroupMaskChange = function(a) {
var b = EQQ.Model.BuddyList.isGroupPrompt(a.gid);
this.View.setGroupListMaskState(a.gid, b)
};
this.onGetUserInfoSuccess = function() { };
this.onNewStranger = function(a) {
var b = EQQ.Model.BuddyList.getStrangerList();
this.View.updateStrangerClassOnlineCount(b.length);
this.View.updateStrangerClassCount(b);
this.View.addBuddy(a)
};
this.updateAllBuddyClassCount = function(a) {
for (var b = 0; b < a.length; b++) this.updateBuddyClassCount(a[b])
};
this.updateBuddyClassCount = function(a) {
this.View.updateBuddyClassCount(a)
};
this.createBuddyList = function(a) {
this.View.createBuddyList(a)
};
this.updateRecentByBuddy = function(a) {
this.View.updateRecentByBuddy(a)
};
this.updateRecentByGroup = function(a) {
this.View.updateRecentByGroup(a)
};
this.updateRecentByDiscu = function(a) {
this.View.updateRecentByDiscu(a)
};
this.onBuddyStateChange = function(a) {
o ? q && (a = EQQ.Model.BuddyList.getUserByUin(a), this.View.onBuddyStateChange({
uin: a.uin,
client_type: a.clientType,
state: a.state,
nick: a.nick
})) : (a = EQQ.Model.BuddyList.getUserByUin(a), this.View.moveBuddy(a), this.View.moveOnlineBuddy(a), this.View.updateClientType(a), this.View.updateRecentState(a), this.View.miniCardPanel && this.View.miniCardPanel.setClientType(a))
};
this.onOnlineBuddyChange = function(a) {
if (o) {
if (q) {
var b = EQQ.Model.BuddyList.getUserByUin(a);
this.View.onOnlineBuddyChange({
uin: b.uin,
client_type: b.clientType,
state: b.state,
nick: b.showName
})
}
} else {
var b = EQQ.Model.BuddyList.getUserByUin(a),
a = EQQ.Model.BuddyList.getClassByUin(a),
c = EQQ.hash.onlineStatus.offline,
d = EQQ.Model.BuddyList.getOnlineBuddy();
this.View.updateBuddyClassOnlineBuddy(a);
this.View.updateOnlineBuddyClass(d);
b.state == c ? this.View.removeOnlineBuddy(b) : this.View.addOnlineBuddy(b)
}
};
this.onFlexStartJump = function(a) {
this.View.flexStartJump(a)
};
this.onFlexStopJump = function(a) {
this.View.flexStopJump(a)
};
this.onMessageBoxUserListChange = function(c) {
EQQ.Model.BuddyList.getSelf();
var d = typeof EQQ.Presenter.TaskBar != "undefined" ? EQQ.Presenter.TaskBar.getCurrentTaskUin() : !1;
this.View.jumpDown(b);
this.View.flickerClassShow(a);
t = [];
b = [];
a = [];
for (var e = 0; e < c.length; e++) d != c[e].from_uin && (t.push(c[e].from_uin), EQQ.Model.BuddyList.getSelfState() == "callme" && G(c[e].from_uin));
t.length !== 0 && (EQQ.addNeedBeat2("mainPanel"), f.addObserver(EQQ, "NotifyBeat_250", I))
};
this.onMessageBoxGroupListChange = function(a) {
EQQ.Model.BuddyList.getSelf();
var b;
try {
b = EQQ.Presenter.TaskBar.getCurrentTaskUin()
} catch (d) { }
this.View.jumpDown(c);
c = [];
for (var e = 0; e < a.length; e++) b != a[e].from_uin && EQQ.Model.BuddyList.isGroupPrompt(a[e].from_uin) && c.push(a[e].from_uin),
EQQ.Model.BuddyList.getSelfState() == "callme" && EQQ.Model.BuddyList.isGroupPrompt(a[e].from_uin) && n(a[e].group_code);
c.length !== 0 && (EQQ.addNeedBeat2("mainPanel"), f.addObserver(EQQ, "NotifyBeat_250", I))
};
this.onMessageListChange = function(a) {
(a = EQQ.Model.BuddyList.getBuddyByUin(a.uin)) && this.View.updateRecentByBuddy(a)
};
this.onGroupMessageListChange = function(a) {
(a = EQQ.Model.BuddyList.getGroupByGid(a.gid)) && this.View.updateRecentByGroup(a)
};
this.onDiscuMessageListChange = function(a) {
(a = EQQ.Model.BuddyList.getDiscuById(a.did)) && this.View.updateRecentByDiscu(a)
};
var s = function() {
EQQ.Model.BuddyList.sendGetRecentList()()
},
K = function(a) {
EQQ.Model.BuddyList.sendChangeGroupMask({
type: "global",
uin: EQQ.Model.BuddyList.getSelfUin(),
mask: a
})
},
G = function(a) {
EQQ.handleNotification(a, "single") || WebqCore.api.call(["chat", ["single", a]])
},
e = function(a) {
a = a.uin;
if (!EQQ.Model.ChatMsg.uinToVideo) EQQ.Model.ChatMsg.uinToVideo = [];
EQQ.Model.ChatMsg.uinToVideo[a] = {};
f.notifyObservers(g, "AskVideo", {
uin: a
})
},
n = function(a) {
var b = EQQ.Model.BuddyList.getGroupByCode(a).gid;
EQQ.handleNotification(b, "group") || WebqCore.api.call(["chat", ["group", a]])
};
this.collapsedAllClass = function() {
for (var a = EQQ.Model.BuddyList.getClassList(), b = 0; b < a.length; b++) this.View.collapsedClass(a[b].index)
};
var y = function() {
EQQ.exit()
},
A = function() {
this.hide()
},
H = function() {
EQQ.reLogin()
};
this.onExitPortal = function() {
alloy.portal.exit()
};
this.onCloseWebQQ = function() {
q = i = !1;
this.hide();
this.View.showLogin()
};
this.clearBuddyList = function() {
this.View.clearBuddyList()
};
this.showLogin = function() {
this.View.showLogin()
};
this.show = function() {
j = !0;
this.View.show()
};
this.hide = function() {
j = !1;
this.View.hide()
};
this.toggleShow = function() {
j ? this.hide() : this.show()
};
this.showReLoginPanel = function(a) {
this.View.showReLoginPanel(a)
};
var I = function() {
b = [];
a = [];
var e = t.concat(c, p);
e.length === 0 && (f.removeObserver(EQQ, "NotifyBeat_250", I), EQQ.removeNeedBeat2("mainPanel"));
for (var i = 0; i < t.length; i++) {
var j = t[i],
k = EQQ.Model.BuddyList.getClassIdByUin(j);
g.View.getClassExpandFlag(k) ? b.push(j) : d.array.indexOf(a, k) == -1 && a.push(k)
}
b.length > 0 && g.View.jumpAvatar(b);
a.length > 0 && g.View.flickerClass(a);
c.length > 0 && g.View.groupJumpAvatar(c);
e.length > 0 && g.View.recentJumpAvatar(e);
p.length > 0 && g.View.discuJumpAvatar(p)
};
this.onViewSelfStateChange = function(a) {
var b = "offline",
c = EQQ.Model.BuddyList.getSelf();
if (c) b = c.state;
d.out("==onViewSelfStateChange, self: " + a + ", old: " + b);
b == "offline" && a != "offline" ? EQQ.login(a) : EQQ.Model.BuddyList.sendChangeStatus(a);
a == "offline" && (q = i = !1, EQQ.stopPoll())
};
this.removeGroup = function(a) {
g.View.removeGroup(a);
EQQ.Model.BuddyList.removeGroup(a)
};
this.removeDiscu = function(a) {
g.View.removeDiscu(a)
};
var Q = function(a) {
EQQ.handleNotification(a, "discu") || WebqCore.api.call(["chat", ["discu", a]])
};
this.onDiscuListChange = function(a) {
this.View.createDiscuList(a)
};
this.onAddNewDiscuToList = function(a) {
this.View.addDiscu(a)
};
var O = function(a) {
g.View.updateDiscuName(a)
},
l = function(a) {
EQQ.Model.BuddyList.sendQuitDisc(a)
},
P = function(a) {
g.removeDiscu(a.did)
};
this.onMessageBoxDiscuListChange = function(a) {
EQQ.Model.BuddyList.getSelf();
var b = "";
try {
b = EQQ.Presenter.TaskBar.getCurrentTaskUin()
} catch (c) { }
this.View.discuJumpDown(p);
p = [];
for (var d = 0; d < a.length; d++) {
var e = a[d];
b != e.did && EQQ.Model.BuddyList.isDiscuPrompt(e.did) && p.push(e.did);
EQQ.Model.BuddyList.getSelfState() == "callme" && EQQ.Model.BuddyList.isDiscuPrompt(e.did) && Q(e.did)
}
p.length !== 0 && (EQQ.addNeedBeat2("mainPanel"), f.addObserver(EQQ, "NotifyBeat_250", I))
};
var R = function(a) {
g.View.setDiscuListMaskState(a.did, a.mask)
},
J = function(a) {
EQQ.Model.BuddyList.refreshDiscuInfo(a.did)
},
T = function() {
g.View.showReloadDiscuList()
};
this.saveBigHeadSetting = function(a) {
alloy.config.configList.useBigHead = a;
alloy.rpcService.sendSetConfig({
data: {
r: {
appid: 50,
value: {
useBigHead: a
}
}
}
})
}
})
})();
WEBQQ2.0协议分析-eqq.all.js
最新推荐文章于 2020-11-16 10:10:58 发布