Last active
December 15, 2015 12:19
-
-
Save zyxar/5259704 to your computer and use it in GitHub Desktop.
WebIM.js?20130110
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (function(d) { | |
| d.extend(d.fn, { | |
| jGroupTree: function(g) { | |
| var k = d.extend({ | |
| target: d(document.body), | |
| enable: true, | |
| isSinglePattern: true, | |
| onGroupListExpand: function() {}, | |
| onBuddyItemDbClick: function() {}, | |
| onBuddyItemClick: function() {}, | |
| onBuddyItemMouseOver: function() {} | |
| }, g); | |
| k.target = ((typeof k.target == "string") ? d("#" + k.target) : k.target); | |
| var j = d("<div id='group_box' class='none'><dl /></div>") | |
| .addClass("group_box"); | |
| k.target.append(j); | |
| j.adjustHeight = function(l) { | |
| if (typeof l == "undefined") { | |
| l = k.target.innerHeight() - d("#search_friends") | |
| .outerHeight(true) - d("#add_friend") | |
| .outerHeight(true) - 46; | |
| } | |
| j.height(l); | |
| }; | |
| j.adjustHeight(); | |
| j.setPattern = function(l) { | |
| k.isSinglePattern = l; | |
| }; | |
| j.createBuddyList = function(n) { | |
| var l = new Object(); | |
| var r = ""; | |
| var p = ""; | |
| var m = "群组"; | |
| if (n) { | |
| r = "<dt id='" + "groupList' title='" + m + "' class='open'><b>" + m + "</b><em>(0)</em></dt>"; | |
| p = "<dd>"; | |
| } else { | |
| r = "<dt id='" + "groupList' title='" + m + "'><b>" + m + "</b><em>(0)</em></dt>"; | |
| p = "<dd style='display:none'>"; | |
| } | |
| p += "<ul class='group_list'>"; | |
| var q = "</ul></dd>"; | |
| var o = new Array(); | |
| l.pushContent = function(s) { | |
| o.push(s); | |
| }; | |
| l.toHtmlString = function() { | |
| o.sort(function(w, v) { | |
| return groupComparator(w.groupObj, v.groupObj); | |
| }); | |
| var u = ""; | |
| u += p; | |
| var t = o.length; | |
| for (var s = 0; s < t; s++) { | |
| u += o[s].strContent; | |
| } | |
| u += q; | |
| r = r.replace("<em>(0)</em>", "<em>(" + t + ")</em>"); | |
| u = r + u; | |
| return u; | |
| }; | |
| return l; | |
| }; | |
| j.createGroupItem = function(o) { | |
| var l = new Object(); | |
| var p = "groupitem_" + o.id; | |
| var n = getGroupItemPortraitUrl(o, "2"); | |
| var m = o.id; | |
| l.groupObj = o; | |
| if (o.i == 4) { | |
| l.strContent = "<li id='" + p + "' group='" + o.id + "'>" + "<a hidefocus='true'><img src='" + n + "'><p style='width:140px;'>" + m + "</p>"; | |
| l.strContent += "<span class='proving' title='等待管理员批准加入群'></span>"; | |
| } else { | |
| if (o.i == 5) { | |
| l.strContent = "<li id='" + p + "' group='" + o.id + "'>" + "<a hidefocus='true'><img src='" + n + "'><p style='width:140px;'>" + m + "</p>"; | |
| l.strContent += "<span class='refuse' title='管理员已经拒绝了您的加入申请'></span>"; | |
| } else { | |
| l.strContent = "<li id='" + p + "' group='" + o.id + "'>" + "<a hidefocus='true'><img src='" + n + "'><p>" + m + "</p>"; | |
| } | |
| } | |
| l.strContent += "</a></li>"; | |
| return l; | |
| }; | |
| j.bindEventToList = function() { | |
| j.find("dt") | |
| .bind("click", function() { | |
| var n = { | |
| expanded: false | |
| }; | |
| var l = d(this); | |
| var m = l.next(); | |
| if (m.css("display") == "none") { | |
| n.expanded = true; | |
| l.addClass("open"); | |
| m.css("display", ""); | |
| } else { | |
| n.expanded = false; | |
| l.removeClass("open"); | |
| m.css("display", "none"); | |
| } | |
| k.onGroupListExpand(l, n); | |
| return false; | |
| }); | |
| }; | |
| j.bindEventToItem = function() { | |
| var l = j.find("li"); | |
| l.bind("dblclick", function() { | |
| k.onBuddyItemDbClick(this, d(this) | |
| .attr("group")); | |
| }) | |
| .bind("click", function() { | |
| d(this) | |
| .siblings() | |
| .removeClass("on"); | |
| d(this) | |
| .addClass("on"); | |
| }); | |
| }; | |
| function i(m) { | |
| var l = m.attr("group"); | |
| return __groupMap.get(l); | |
| } | |
| function h(r, q) { | |
| var n = r.size(); | |
| if (n <= 0) { | |
| return -1; | |
| } else { | |
| var v = i(r.eq(0)); | |
| if (groupComparator(q, v) <= 0) { | |
| return 0; | |
| } | |
| var p = i(r.eq(n - 1)); | |
| if (groupComparator(q, p) > 0) { | |
| return n; | |
| } | |
| var m = 0; | |
| var o = n - 1; | |
| var t = 0; | |
| while (o - m > 1) { | |
| var t = Math.floor((m + o) / 2); | |
| var u = i(r.eq(t)); | |
| var l = groupComparator(q, u); | |
| if (l <= 0) { | |
| o = t; | |
| } else { | |
| if (l > 0) { | |
| m = t; | |
| } | |
| } | |
| } | |
| var s = i(r.eq(m)); | |
| if (groupComparator(q, s) == 0) { | |
| return m; | |
| } else { | |
| return o; | |
| } | |
| } | |
| } | |
| j.getGroupList = function() { | |
| var l = j.find(".group_list"); | |
| return l; | |
| }; | |
| j.isBuddyListOpen = function(l) { | |
| var m = j.getBuddyList(l); | |
| if (m == null || m.size() == 0) { | |
| return false; | |
| } else { | |
| return "none" != m.eq(1) | |
| .css("display"); | |
| } | |
| }; | |
| j.setInnerHtml = function(l) { | |
| j.children() | |
| .get(0) | |
| .innerHTML = l; | |
| j.bindEventToList(); | |
| j.bindEventToItem(); | |
| }; | |
| j.insertGroupItem = function(r) { | |
| var p = j.getGroupList(); | |
| if (p.size() == 0) { | |
| return; | |
| } | |
| var s = "groupitem_" + r.id; | |
| var q = getGroupItemPortraitUrl(r, "2"); | |
| var m = d("<li id='" + s + "' group='" + r.id + "'><a hidefocus='true'><img src='" + q + "'><p>" + r.n + "</p></a></li> "); | |
| d(m) | |
| .bind("click", function() { | |
| d(this) | |
| .siblings() | |
| .removeClass("on"); | |
| d(this) | |
| .addClass("on"); | |
| }) | |
| .bind("dblclick", function() { | |
| k.onBuddyItemDbClick(this, r.id); | |
| }); | |
| var l = p.parent() | |
| .find("ul > li[id!='" + s + "']"); | |
| var o = l.size(); | |
| var n = h(l, r); | |
| if (n < 0 || n >= o) { | |
| p.append(m); | |
| } else { | |
| l.eq(n) | |
| .before(m); | |
| } | |
| j.updateBuddyStat(r.id, 1); | |
| }; | |
| var f = /^\(([\d]+)\)$/ig; | |
| j.updateBuddyStat = function(m, l) { | |
| var o = d("#group_box") | |
| .find("#groupList em"); | |
| var n = o.text() | |
| .trim(); | |
| n = n.replace(f, function(q, p) { | |
| return "(" + (parseInt(p) + l) + ")"; | |
| }); | |
| o.text(n); | |
| }; | |
| j.deleteGroupItem = function(l) { | |
| var n = j.getGroupList(); | |
| if (n.size() == 0) { | |
| return null; | |
| } | |
| var m = n.find("#groupitem_" + l); | |
| if (m.size() == 0) { | |
| return null; | |
| } | |
| m.remove(); | |
| __groupMap.remove(l); | |
| j.updateBuddyStat(l, - 1); | |
| return m; | |
| }; | |
| j.updateGroupMsgCount = function(r, p) { | |
| var q = j.getGroupList(); | |
| var o = j.getGroupItem(r.id); | |
| if (o.size() == 0) { | |
| return; | |
| } | |
| var s = "groupitem_" + r.id; | |
| var m = o.find("p >em"); | |
| if (m.length == 0) { | |
| var l = o.find("p"); | |
| l.html(l.text() + "<em>(0)</em>"); | |
| m = o.find("p >em"); | |
| } | |
| var n = m.text() | |
| .trim(); | |
| if (!p) { | |
| p = 1; | |
| } | |
| n = n.replace(f, function(u, t) { | |
| return "(" + (parseInt(t) + p) + ")"; | |
| }); | |
| m.text(n); | |
| }; | |
| j.clearGroupMsgCount = function(o) { | |
| var n = j.getGroupList(); | |
| var m = j.getGroupItem(o.id); | |
| if (m.size() == 0) { | |
| return; | |
| } | |
| var p = "groupitem_" + o.id; | |
| var l = m.find("p >em"); | |
| if (l.length != 0) { | |
| l.remove(); | |
| } | |
| }; | |
| j.getGroupItem = function(l) { | |
| var m = j.getGroupList(); | |
| return m.find("#groupitem_" + l); | |
| }; | |
| j.updateGroupItem = function(r) { | |
| var n = j.getGroupList(); | |
| var s = j.getGroupItem(r.id); | |
| if (s.size() == 0) { | |
| return; | |
| } | |
| var p = "groupitem_" + r.id; | |
| var t = getGroupItemPortraitUrl(r, "2"); | |
| var q = s.find("p"); | |
| var u = q.find("em"); | |
| if (r.msgRecv == 3) { | |
| if (s.find("em") | |
| .size() == 0) { | |
| q.after('<em class="max_reject"></em>'); | |
| } | |
| } | |
| if (r.apvRs == 1) { | |
| s.find("span") | |
| .remove(); | |
| } else { | |
| if (r.apvRs == 2) { | |
| s.find("span") | |
| .attr("class", "refuse") | |
| .attr("title", "管理员已经拒绝了您的加入申请"); | |
| } | |
| } | |
| if (r.n != "") { | |
| q.html(htmlEncode(r.n)); | |
| } | |
| q.append(u); | |
| s.find("img") | |
| .attr("src", t); | |
| var o = n.parent() | |
| .find("ul > li[id!='" + p + "']"); | |
| var l = o.size(); | |
| var m = h(o, r); | |
| if (m < 0 || m >= l) { | |
| n.find("ul") | |
| .append(s); | |
| } else { | |
| o.eq(m) | |
| .before(s); | |
| } | |
| }; | |
| return j; | |
| } | |
| }); | |
| d.extend(d.fn, { | |
| jGroupChatWindow: function(aq) { | |
| var y = d.extend({ | |
| maxRelative: d(document.body), | |
| mode: "singleChat", | |
| user: {}, | |
| group: {}, | |
| groupMap: {}, | |
| defaultHeight: 365, | |
| defaultWidth: 480, | |
| onActive: function() {}, | |
| onClosed: function() {}, | |
| onFocus: function() {}, | |
| onMined: function() {}, | |
| onMaxed: function() {}, | |
| onResized: function() {}, | |
| onSendMessage: function() {} | |
| }, aq); | |
| var j = d("<div />") | |
| .attr("id", "Main_chatWindow_" + y.user.uid + "_" + y.group.id) | |
| .addClass("pop_default_message pop_dm_bg pop_group_message") | |
| .css({ | |
| "top": "-1000px", | |
| "left": "-1000px" | |
| }); | |
| var G = d("<div />") | |
| .addClass("pop_outer_new1"); | |
| var ac = d("<div />") | |
| .addClass("pop_inner_new1"); | |
| j.append(G.append(ac)); | |
| j.appendTo(document.body); | |
| y.maxRelative = ((typeof y.maxRelative == "string") ? d("#" + y.maxRelative) : y.maxRelative); | |
| j.maxRelative = y.maxRelative; | |
| var af = d("<div />") | |
| .addClass("pop_message_title h42_new1"); | |
| var N = d("<div class='pop_message_head'>"); | |
| var W = d("<img style='width:32px;height:32px' />"); | |
| N.append(W); | |
| var U = d("<h2 class='group_box_tit'></h2>"); | |
| var C = d("<p class='sign' title=''></p>"); | |
| af.append(N) | |
| .append(U) | |
| .append(C); | |
| ac.append(af); | |
| var A = d("<div />") | |
| .addClass("pop_ctr_bar"); | |
| var aa = d("<i />") | |
| .addClass("close"); | |
| var x = d("<i />") | |
| .addClass("max"); | |
| var ab = d("<i />") | |
| .addClass("min"); | |
| A.append(ab) | |
| .append(x) | |
| .append(aa); | |
| ac.append(A); | |
| var B = d("<div />") | |
| .addClass("message_main_new1"); | |
| var Y = d("<div />") | |
| .addClass("message_content_new1"); | |
| var K = Y; | |
| var o = d("<div />") | |
| .addClass("chat_info chat_new1 chat_append_sec") | |
| .css({ | |
| "height": "158px" | |
| }); | |
| var ag = d("<div class='chat_append_tip chat_append_tip1'>请勿轻信汇款、中奖和话费充值等信息,谨防受骗。</div>"); | |
| o.append(ag); | |
| var X = d("<div />") | |
| .addClass("face_main"); | |
| var r = d("<a />") | |
| .attr("href", "#") | |
| .attr("title", "选择表情") | |
| .addClass("btn_face_new"); | |
| var ae = d("<a />") | |
| .attr("href", "#") | |
| .attr("title", "设置字体") | |
| .addClass("btn_fonts none"); | |
| var al = jChatWindowPopExpression(); | |
| al.css("display", "none"); | |
| var w = d("<div />") | |
| .addClass("chat_input chat_pc"); | |
| var n = "edit" + y.group.id; | |
| var ar = d("<div contenteditable='true' id='" + n + "'/>") | |
| .addClass("chat_textarea"); | |
| if (d.browser.mozilla) { | |
| ar.append("<br/>"); | |
| } | |
| w.append(ar); | |
| var O = d("<div />") | |
| .addClass("send_btn"); | |
| var M = d("<a />") | |
| .attr("href", "#") | |
| .attr("hidefocus", "true") | |
| .addClass("btn_send_new") | |
| .append("发 送"); | |
| O.append(M); | |
| Y.append(o) | |
| .append(X.append(r) | |
| .append(ae) | |
| .append(al)) | |
| .append(w) | |
| .append(O); | |
| var g = d("<div />") | |
| .addClass("extend_btn"); | |
| var ah = d("<a />") | |
| .attr("href", "#") | |
| .addClass("btn_display none") | |
| .append("显示"); | |
| var ap = d("<a />") | |
| .attr("href", "#") | |
| .addClass("btn_hide") | |
| .append("隐藏"); | |
| j.isExpanded = true; | |
| g.append(ah) | |
| .append(ap); | |
| var am = d("<div id='pop_group_box_" + y.group.id + "'/>") | |
| .addClass("pop_group_box"); | |
| var V = 0; | |
| if (y.group.members) { | |
| V = y.group.members.length; | |
| } | |
| var ak = '<div class="pop_group_tit"><h3>群成员</h3><span>(0/' + V + ')</span></div><ul class="pop_group_list">'; | |
| for (var ao = 0; ao < V; ao++) { | |
| var q = jMemUriToId(y.group.members[ao].MemberUri); | |
| ak += '<li><a href="#"><span class="every"></span><strong class="BuddyList_Container">'; | |
| ak += ' <img src="' + portrait.offline_16 + '"></strong>' + q + "</a></li>"; | |
| } | |
| am.append(ak); | |
| var k = null; | |
| B.append(Y) | |
| .append(am) | |
| .append(g); | |
| ac.append(B); | |
| var m = new jHashMap(); | |
| j.memMap = m; | |
| var D; | |
| j.groupMemTree = D; | |
| j.isUsable = true; | |
| var I = d("<div class='chat_move_right' direction='right' />") | |
| .css("cursor", "e-resize"); | |
| var an = d("<div class='chat_move_left' direction='left' />") | |
| .css("cursor", "w-resize"); | |
| var F = d("<div class='chat_move_bottom' direction='bottom'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "s-resize"); | |
| var L = d("<div class='chat_move_rb' direction='right_bottom'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "se-resize"); | |
| var H = d("<div class='chat_move_lb' direction='left_bottom'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "sw-resize"); | |
| var ad = d("<div class='chat_move_top' direction='top'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "n-resize"); | |
| var v = d("<div class='chat_move_rt' direction='right_top'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "ne-resize"); | |
| var t = d("<div class='chat_move_lt' direction='left_top'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "nw-resize"); | |
| j.append(ad) | |
| .append(F) | |
| .append(an) | |
| .append(I) | |
| .append(L) | |
| .append(v) | |
| .append(H) | |
| .append(t); | |
| j.lastPosition = { | |
| "top": j.css("top"), | |
| "left": j.css("left") | |
| }; | |
| j.lastSize = { | |
| "height": j.height(), | |
| "width": j.width(), | |
| "isExpanded": j.isExpanded | |
| }; | |
| j.isActived = false; | |
| j.isShow = false; | |
| j.isExpanded = true; | |
| j.maxed = false; | |
| j.enablechatInput = true; | |
| j.inputPermission = 0; | |
| j.hasShown = false; | |
| function E(i) { | |
| stopPropagation(i); | |
| j.css("z-index", __zIndex++); | |
| y.onFocus(j); | |
| } | |
| function Z() { | |
| al.css("display", "none"); | |
| } | |
| j.close = function() { | |
| j.css("z-index", - 1); | |
| if (j.maxed) { | |
| j.maxed = false; | |
| j.css({ | |
| "top": j.lastPosition.top, | |
| "left": j.lastPosition.left | |
| }); | |
| o.scrollTop(o.get(0) | |
| .scrollHeight); | |
| } | |
| j.css({ | |
| "top": "-1000px", | |
| "left": "-1000px" | |
| }); | |
| j.isActived = false; | |
| j.isShow = false; | |
| j.hasShown = false; | |
| j.expand(); | |
| Z(); | |
| ar.get(0) | |
| .innerHTML = d.browser.mozilla ? "<br/>" : ""; | |
| y.onClosed(j); | |
| }; | |
| var f; | |
| j.getTreelist = function() { | |
| return f; | |
| }; | |
| j.active = function() { | |
| j.isActived = true; | |
| j.css("z-index", - 1); | |
| j.resize(y.defaultHeight, y.defaultWidth); | |
| y.onActive(j); | |
| }; | |
| j.show = function(au, i) { | |
| if (typeof au == "number" && typeof i == "number" && !j.maxed) { | |
| j.css({ | |
| "top": au + "px", | |
| "left": i + "px" | |
| }); | |
| } | |
| j.css("z-index", __zIndex++); | |
| j.isShow = true; | |
| j.hasShown = true; | |
| ar.blur(); | |
| ar.focus(); | |
| y.onFocus(j); | |
| }; | |
| j.focus = function() { | |
| y.onFocus(j); | |
| }; | |
| j.hide = function() { | |
| j.css("z-index", - 1); | |
| Z(); | |
| j.isShow = false; | |
| }; | |
| j.resize = function(ay, av) { | |
| if (typeof ay != "number") { | |
| ay = j.height(); | |
| } | |
| if (typeof av != "number") { | |
| av = j.width(); | |
| } | |
| o.height(0); | |
| j.get(0) | |
| .style.height = ay + "px"; | |
| j.get(0) | |
| .style.width = av + "px"; | |
| if (j.maxed) { | |
| if (j.isExpanded) { | |
| Y.get(0) | |
| .style.width = (av - 155) + "px"; | |
| } else { | |
| Y.get(0) | |
| .style.width = (av - 16) + "px"; | |
| } | |
| } else { | |
| if (j.isExpanded) { | |
| Y.get(0) | |
| .style.width = (av - 155) + "px"; | |
| } else { | |
| Y.get(0) | |
| .style.width = (av - 16) + "px"; | |
| } | |
| } | |
| var au = 0; | |
| o.parent() | |
| .children() | |
| .each(function(aA) { | |
| au += d(this) | |
| .outerHeight(); | |
| }); | |
| au = ay - (au + o.outerHeight()) - af.outerHeight(); | |
| if (k && k.css("display") == "none") { | |
| au += k.outerHeight(); | |
| } | |
| au = ((au < 0) ? 0 : au); | |
| o.get(0) | |
| .style.height = au + "px"; | |
| Z(); | |
| y.onResized(j); | |
| var i = j.find(".pop_group_tit") | |
| .height(); | |
| if (i != 0) { | |
| var ax = j.find(".message_content_new1") | |
| .height(); | |
| var aw = ax - i - 12; | |
| var az = j.find(".pop_group_list"); | |
| az.height(aw); | |
| } | |
| }; | |
| j.bind("click", function() { | |
| Z(); | |
| }); | |
| var aj; | |
| var J; | |
| var ai; | |
| j.isLogShowNumber = false; | |
| j.logSelfMsg = function(ax) { | |
| ar.get(0) | |
| .innerHTML = d.browser.mozilla ? "<br/>" : ""; | |
| var au = d("<dl />") | |
| .addClass("self"); | |
| var aw = new Date(); | |
| var av = aw.getHours() + ":" + (aw.getMinutes() < 10 ? "0" + aw.getMinutes() : aw.getMinutes()); | |
| if (typeof aj == "undefined" || typeof J == "undefined" || !aj || av != J) { | |
| var ay = d("<dt />") | |
| .append(htmlEncode(cnSubstr(y.user.displayName, 18))); | |
| ay.append(d("<strong />") | |
| .append("说")); | |
| ay.append(d("<span />") | |
| .append("(" + av + "):")); | |
| } | |
| aj = true; | |
| J = av; | |
| ai = undefined; | |
| ax = ax.replace("\u000d\u000a", "<br/>"); | |
| ax = ax.replace(__hrefReg, function(az) { | |
| if (az.indexOf("://") >= 0) { | |
| return "<a href='" + az + "' target='_blank'>" + az + "</a>"; | |
| } else { | |
| return "<a href='http://" + az + "' target='_blank'>" + az + "</a>"; | |
| } | |
| }); | |
| var i = d("<dd />") | |
| .append(EmoticonReplace(ax)); | |
| au.append(ay) | |
| .append(i); | |
| o.append(au); | |
| o.scrollTop(o.get(0) | |
| .scrollHeight); | |
| }; | |
| j.logFriendMsg = function(ay) { | |
| var aw = jMemUriToId(ay.FromMemberUri); | |
| var aA = ""; | |
| var aB = j.memMap.get(aw); | |
| if (aB == null) { | |
| aA = aw; | |
| j.isLogShowNumber = true; | |
| } else { | |
| aA = aB.displayName; | |
| } | |
| var au = d("<dl />") | |
| .addClass("friend"); | |
| var az = new Date(); | |
| var av = az.getHours() + ":" + (az.getMinutes() < 10 ? "0" + az.getMinutes() : az.getMinutes()); | |
| if (typeof aj == "undefined" || typeof J == "undefined" || ai != aA || av != J || (ai == aA && av != J)) { | |
| var ax = d("<dt />"); | |
| ax.append(d("<span />") | |
| .append(htmlEncode(cnSubstr(aA, 18)))); | |
| ax.append(d("<strong />") | |
| .append("说")); | |
| ax.append(d("<span />") | |
| .append("(" + av + "):")); | |
| } | |
| aj = false; | |
| J = av; | |
| ai = aA; | |
| msg = htmlEncode(ay.Message); | |
| msg = msg.replace("\u000d\u000a", "<br/>"); | |
| msg = msg.replace(__hrefReg, function(aC) { | |
| if (aC.indexOf("://") >= 0) { | |
| return "<a href='" + aC + "' target='_blank'>" + aC + "</a>"; | |
| } else { | |
| return "<a href='http://" + aC + "' target='_blank'>" + aC + "</a>"; | |
| } | |
| }); | |
| var i = d("<dd />") | |
| .append(EmoticonReplace(msg)); | |
| au.append(ax) | |
| .append(i); | |
| o.append(au); | |
| o.scrollTop(o.get(0) | |
| .scrollHeight); | |
| }; | |
| j.logErrorInfo = function(i) { | |
| var au = d("<div />") | |
| .addClass("code_error") | |
| .append(i); | |
| o.append(au) | |
| .append("<br/>"); | |
| o.scrollTop(o.get(0) | |
| .scrollHeight); | |
| }; | |
| j.logSuggetInfo = function(i) { | |
| var av = U.text(); | |
| var au; | |
| if (i == 1) { | |
| au = d('<span class="suggest">您被群 ' + av + " 的管理员移出了该群!</span>"); | |
| } else { | |
| au = d('<span class="suggest">' + av + " 已经被超级管理员删除!</span>"); | |
| } | |
| o.append(au) | |
| .append("<br/>"); | |
| o.scrollTop(o.get(0) | |
| .scrollHeight); | |
| }; | |
| j.enableInput = function(i) { | |
| j.enablechatInput = i; | |
| if (i) { | |
| j.inputPermission = 0; | |
| w.removeClass() | |
| .addClass("chat_input chat_pc") | |
| .css("background-color", ""); | |
| ar.removeAttr("disabled") | |
| .attr("contenteditable", "true") | |
| .css("background-color", ""); | |
| r.find("img") | |
| .removeAttr("disabled") | |
| .attr("src", "images/face_btn.png"); | |
| M.removeAttr("disabled") | |
| .removeClass() | |
| .addClass("btn_send_new"); | |
| } else { | |
| w.removeClass() | |
| .addClass("chat_fileinput chat_pc") | |
| .css("background-color", "#f0f0f0"); | |
| ar.attr("disabled", "disabled") | |
| .attr("contenteditable", "false") | |
| .css("background-color", "#f0f0f0"); | |
| r.find("img") | |
| .attr("disabled", "disabled") | |
| .attr("src", "images/face_btnfile.png"); | |
| M.attr("disabled", "disabled") | |
| .removeClass() | |
| .addClass("btn_sendfile_new"); | |
| } | |
| }; | |
| j.collapse = function() { | |
| var i = 0; | |
| if (j.maxed) { | |
| var au = g.width() + am.width(); | |
| Y.width(Y.width() + au); | |
| i = j.width(); | |
| } else { | |
| i = j.width() - am.width(); | |
| } | |
| j.isExpanded = false; | |
| j.resize(j.height(), i); | |
| ah.removeClass("none"); | |
| ap.addClass("none"); | |
| am.hide(); | |
| }; | |
| j.expand = function() { | |
| var i = 0; | |
| if (j.maxed) { | |
| var au = g.width() + am.width(); | |
| Y.width(Y.width() - au); | |
| i = j.width(); | |
| } else { | |
| i = j.width() + am.width(); | |
| } | |
| j.isExpanded = true; | |
| j.resize(j.height(), i); | |
| ah.addClass("none"); | |
| ap.removeClass("none"); | |
| am.show(); | |
| }; | |
| ah.bind("click", j.expand); | |
| ap.bind("click", j.collapse); | |
| j.setBulltinWidth = function(i) { | |
| j.find(".sign") | |
| .css("width", i); | |
| }; | |
| j.setUnavai = function() { | |
| j.find(".message_content_new1") | |
| .addClass("masklayer"); | |
| j.find(".btn_send_new") | |
| .removeClass() | |
| .addClass("btn_sendfile_new") | |
| .unbind(); | |
| }; | |
| j.getSendMessagePlainText = function(i) { | |
| var au = i ? i : ar.get(0) | |
| .innerHTML; | |
| if (au == "") { | |
| return au; | |
| } else { | |
| if (d.browser.mozilla) { | |
| au = au.replace(/<br[ ]*[\/]?>$/i, ""); | |
| } | |
| var av = /<img [^>]*(?:>[^<]*<\/img>|>)|<br[ ]*[\/]?>/gi; | |
| au = au.replace(av, function(ax) { | |
| if (ax.toLowerCase() | |
| .startsWith("<br")) { | |
| return "\u000d\u000a"; | |
| } else { | |
| var ay = d(ax) | |
| .attr("src"); | |
| var aw = ay.substring(ay.lastIndexOf("/") + 1, ay.lastIndexOf(".")); | |
| return GetEmotionKey(aw); | |
| } | |
| }); | |
| return au; | |
| } | |
| return ""; | |
| }; | |
| var p = ContactStatus.Unknown; | |
| var s = ContactType.Unknown; | |
| var T = true; | |
| var R = false; | |
| var u = false; | |
| j.setGroupInfo = function(au) { | |
| y.group = au; | |
| U.text(au.n + "(" + au.id + ")"); | |
| C.text(au.b); | |
| C.attr("title", au.b); | |
| var i = getGroupItemPortraitUrl(au, "2"); | |
| W.attr("src", i); | |
| }; | |
| j.setGroupInfo(y.group); | |
| function at(av) { | |
| Z(); | |
| if (!j.maxed) { | |
| av = window.event || av; | |
| if (j.get(0) | |
| .setCapture) { | |
| j.get(0) | |
| .setCapture(); | |
| } else { | |
| if (window.captureEvents) { | |
| window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| var aw = j.offset(); | |
| var i = getViewportHeight(); | |
| var au = getViewportWidth(); | |
| var ax = { | |
| win: j, | |
| mOffsetX: av.clientX - aw.left, | |
| mOffsetY: av.clientY - aw.top, | |
| viewH: i, | |
| viewW: au | |
| }; | |
| d.appendMaskPage(99); | |
| j.bind("mousemove", ax, a) | |
| .bind("mouseup", ax, e); | |
| } | |
| } | |
| af.bind("mousedown", at); | |
| function z(av) { | |
| Z(); | |
| if (!j.maxed) { | |
| av = window.event || av; | |
| if (j.get(0) | |
| .setCapture) { | |
| j.get(0) | |
| .setCapture(); | |
| } else { | |
| if (window.captureEvents) { | |
| window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| var i = getViewportHeight(); | |
| var au = getViewportWidth(); | |
| var aw = d(this) | |
| .attr("direction"); | |
| var ax = { | |
| win: j, | |
| originSize: { | |
| H: j.height(), | |
| W: j.width() | |
| }, | |
| moveDire: aw, | |
| originX: av.clientX, | |
| originY: av.clientY, | |
| viewH: i, | |
| viewW: au | |
| }; | |
| d.appendMaskPage(99); | |
| j.bind("mousemove", ax, c) | |
| .bind("mouseup", ax, b); | |
| } | |
| } | |
| j.find("div[direction]") | |
| .bind("mousedown", z); | |
| A.bind("mousedown", E); | |
| A.find("i") | |
| .bind("mouseover", function() { | |
| var i = d(this) | |
| .attr("class"); | |
| d(this) | |
| .attr("class", i + "_on"); | |
| }) | |
| .bind("mouseout", function() { | |
| var i = d(this) | |
| .attr("class"); | |
| d(this) | |
| .attr("class", i.replace(/^(.*)_on$/, "$1")); | |
| }); | |
| j.isOnFocus = function() { | |
| return parseInt(j.css("z-index")) == __zIndex - 1 && j.isActived; | |
| }; | |
| aa.bind("click", j.close); | |
| ab.bind("click", function() { | |
| j.hide(); | |
| y.onMined(j); | |
| }); | |
| j.max = function() { | |
| j.resize(y.maxRelative.height() - 3, y.maxRelative.width() - 2); | |
| }; | |
| function l() { | |
| if (!j.maxed) { | |
| j.maxed = true; | |
| x.removeClass() | |
| .addClass("resume"); | |
| j.lastPosition = { | |
| "top": j.css("top"), | |
| "left": j.css("left") | |
| }; | |
| j.lastSize = { | |
| "height": j.height(), | |
| "width": j.width(), | |
| "isExpanded": j.isExpanded | |
| }; | |
| var i = y.maxRelative.offset(); | |
| j.css({ | |
| "top": i.top, | |
| "left": i.left | |
| }); | |
| j.max(); | |
| y.onMaxed(j, true); | |
| } else { | |
| j.maxed = false; | |
| x.removeClass() | |
| .addClass("max"); | |
| j.css({ | |
| "top": j.lastPosition.top, | |
| "left": j.lastPosition.left | |
| }); | |
| if (j.isExpanded != j.lastSize.isExpanded) { | |
| if (j.lastSize.isExpanded) { | |
| j.expand(); | |
| } else { | |
| j.collapse(); | |
| } | |
| } | |
| j.resize(j.lastSize.height, j.lastSize.width); | |
| y.onMaxed(j, false); | |
| } | |
| o.scrollTop(o.get(0) | |
| .scrollHeight); | |
| ar.blur(); | |
| ar.focus(); | |
| } | |
| x.bind("click", l); | |
| af.bind("dblclick", l); | |
| j.bind("mousedown", function() { | |
| j.css("z-index", __zIndex++); | |
| y.onFocus(j); | |
| }); | |
| var h, Q; | |
| function P() { | |
| if (document.selection) { | |
| h = document.selection.createRange(); | |
| } else { | |
| if (window.getSelection) { | |
| Q = window.getSelection() | |
| .getRangeAt(0); | |
| } | |
| } | |
| } | |
| var S = Math.ceil(parseFloat(ar.css("line-height"))); | |
| ar.bind("keydown", function(av) { | |
| av = window.event || av; | |
| var au = av.keyCode || av.charCode; | |
| function aw() { | |
| return (au == 13 && av.ctrlKey) || (au == 13 && av.shiftKey) || (au == 13 && av.altKey); | |
| } | |
| function i() { | |
| return au == 13; | |
| } | |
| P(); | |
| if (aw()) { | |
| if (h) { | |
| h.text = "\r\n"; | |
| h.select(); | |
| } else { | |
| if (Q) { | |
| replaceSelection(Q, "<br>"); | |
| replaceSelection(Q, " "); | |
| ar.scrollTop(ar.scrollTop() + S); | |
| } | |
| } | |
| if (av.preventDefault) { | |
| av.preventDefault(); | |
| } else { | |
| av.returnValue = false; | |
| } | |
| } else { | |
| if (i()) { | |
| if (av.preventDefault) { | |
| av.preventDefault(); | |
| } else { | |
| av.returnValue = false; | |
| } | |
| M.click(); | |
| } | |
| } | |
| }) | |
| .bind("keypress", P) | |
| .bind("keyup", P) | |
| .bind("mousedown", P) | |
| .bind("mouseup", P) | |
| .bind("click", P); | |
| ar.bind("paste", function(ax) { | |
| ax = window.event || ax; | |
| if (window.clipboardData) { | |
| var aA = window.clipboardData.getData("Text"); | |
| window.clipboardData.setData("Text", aA); | |
| } else { | |
| if (!d.browser.mozilla) { | |
| if (ax.preventDefault) { | |
| ax.preventDefault(); | |
| } else { | |
| ax.returnValue = false; | |
| } | |
| var az = ar.get(0); | |
| az.focus(); | |
| var av = window.getSelection(); | |
| var au = av.getRangeAt(0); | |
| var ay = ""; | |
| ay = ax.clipboardData.getData("Text"); | |
| var aA = new String(ay); | |
| au.deleteContents(); | |
| var i = au.createContextualFragment(aA); | |
| var aw = i.lastChild; | |
| au.insertNode(i); | |
| au.setEndAfter(aw); | |
| au.collapse(false); | |
| av.removeAllRanges(); | |
| av.addRange(au); | |
| au.detach(); | |
| au = null; | |
| } | |
| } | |
| if (d.browser.mozilla) { | |
| setTimeout(function() { | |
| var aB = ar.get(0) | |
| .textContent; | |
| ar.get(0) | |
| .innerHTML = ""; | |
| ar.append(aB); | |
| }, 10); | |
| } | |
| }); | |
| M.bind("mousedown", E) | |
| .bind("click", function() { | |
| var i = j.getSendMessagePlainText(); | |
| if (i == "") { | |
| return; | |
| } | |
| i = htmlDecode(i); | |
| i = htmlEncode(i); | |
| y.onSendMessage(j, y.group.gUri, i); | |
| ar.blur(); | |
| ar.focus(); | |
| }); | |
| r.bind("mousedown", E) | |
| .bind("mouseover", function() { | |
| r.addClass("btn_hover"); | |
| }) | |
| .bind("mouseout", function() { | |
| r.removeClass("btn_hover"); | |
| }) | |
| .bind("click", function(i) { | |
| r.toggleClass("btn_fechove"); | |
| if (al.css("display") == "none") { | |
| al.css("display", ""); | |
| } else { | |
| al.css("display", "none"); | |
| } | |
| stopPropagation(i); | |
| }); | |
| j.setInput = function(i) { | |
| ar.get(0) | |
| .innerHTML = EmoticonReplace(i); | |
| if (d.browser.mozilla) { | |
| ar.append("<br>"); | |
| } | |
| }; | |
| setTimeout(function() { | |
| al.fillImgs(); | |
| al.bindItemClick(function(i, au) { | |
| stopPropagation(au); | |
| setTimeout(function() { | |
| var aw = d(i) | |
| .children("img"); | |
| var ay = EntityReplace(aw.attr("pattern")); | |
| var ax = EmoticonReplace(ay); | |
| if (h && h.parentElement && h.parentElement() | |
| .id == n) { | |
| replaceSelection(h, ax); | |
| } else { | |
| if ((Q && Q.startContainer && Q.startContainer.id == n) || (Q && Q.startContainer && Q.startContainer.parentNode && Q.startContainer.parentNode.id == n)) { | |
| replaceSelection(Q, ax); | |
| if (Q) { | |
| ar.blur(); | |
| ar.focus(); | |
| } | |
| } else { | |
| var av = ar.get(0) | |
| .innerHTML; | |
| if (d.browser.mozilla) { | |
| av = av.replace(/<br[ ]*[\/]?>$/i, ax + "<br>"); | |
| } else { | |
| av += ax; | |
| } | |
| ar.get(0) | |
| .innerHTML = av; | |
| } | |
| } | |
| r.toggleClass("btn_fechove"); | |
| }, 50); | |
| }); | |
| }, 1000); | |
| j.fixPosition = function() { | |
| var i = { | |
| "top": j.css("top"), | |
| "left": j.css("left") | |
| }; | |
| j.css({ | |
| "top": "-1000px", | |
| "left": "-1000px" | |
| }); | |
| window.setTimeout(function() { | |
| j.css({ | |
| "top": i.top, | |
| "left": i.left | |
| }); | |
| }, 300); | |
| }; | |
| return j; | |
| } | |
| }); | |
| function a(k) { | |
| var l = k.data; | |
| var j = l.win; | |
| var i = l.mOffsetX; | |
| var g = l.mOffsetY; | |
| var h = l.viewH - j.outerHeight(); | |
| var f = l.viewW - j.outerWidth(); | |
| h = (h < 0 ? 0 : h); | |
| f = (f < 0 ? 0 : f); | |
| var n = window.event || k; | |
| if (n.button < 2) { | |
| var m = parseInt(n.clientY) - parseInt(g); | |
| var o = parseInt(n.clientX) - parseInt(i); | |
| m = (m < 0 ? 0 : m); | |
| o = (o < 0 ? 0 : o); | |
| m = (m > h ? h : m); | |
| o = (o > f ? f : o); | |
| j.css({ | |
| top: m + "px", | |
| left: o + "px" | |
| }); | |
| } | |
| } | |
| function e(f) { | |
| var h = f.data; | |
| var g = h.win; | |
| if (g.get(0) | |
| .releaseCapture) { | |
| g.get(0) | |
| .releaseCapture(); | |
| } else { | |
| if (window.releaseEvents) { | |
| window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| d.removeMaskPage(); | |
| g.unbind("mousemove") | |
| .unbind("mouseup"); | |
| } | |
| function c(k) { | |
| var l = k.data; | |
| var j = l.win; | |
| var g = l.originSize; | |
| var q = l.moveDire; | |
| var p = l.originX; | |
| var n = l.originY; | |
| var m = window.event || k; | |
| if (m.clientX < 0 || m.clientY < 0 || m.clientX > l.viewW || m.clientY > l.viewH) { | |
| return; | |
| } | |
| var h = g.W; | |
| var f = g.H; | |
| var o = false; | |
| var i = false; | |
| switch (q) { | |
| case "right": | |
| h = g.W + (m.clientX - p); | |
| break; | |
| case "left": | |
| h = g.W - (m.clientX - p); | |
| i = true; | |
| break; | |
| case "top": | |
| f = g.H - (m.clientY - n); | |
| o = true; | |
| break; | |
| case "bottom": | |
| f = g.H + (m.clientY - n); | |
| break; | |
| case "right_top": | |
| h = g.W + (m.clientX - p); | |
| f = g.H - (m.clientY - n); | |
| o = true; | |
| break; | |
| case "right_bottom": | |
| h = g.W + (m.clientX - p); | |
| f = g.H + (m.clientY - n); | |
| break; | |
| case "left_top": | |
| h = g.W - (m.clientX - p); | |
| f = g.H - (m.clientY - n); | |
| o = true; | |
| i = true; | |
| break; | |
| case "left_bottom": | |
| h = g.W - (m.clientX - p); | |
| f = g.H + (m.clientY - n); | |
| i = true; | |
| break; | |
| } | |
| if (h >= 480 && i) { | |
| j.css("left", m.clientX); | |
| } | |
| if (f >= 365 && o) { | |
| j.css("top", m.clientY); | |
| } | |
| h = (h < 480 ? 480 : h); | |
| f = (f < 365 ? 365 : f); | |
| j.resize(f, h); | |
| } | |
| function b(f) { | |
| var h = f.data; | |
| var g = h.win; | |
| if (g.get(0) | |
| .releaseCapture) { | |
| g.get(0) | |
| .releaseCapture(); | |
| } else { | |
| if (window.releaseEvents) { | |
| window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| d.removeMaskPage(); | |
| g.unbind("mousemove") | |
| .unbind("mouseup"); | |
| } | |
| })(jQuery); | |
| (function(a) { | |
| a.extend(a.fn, { | |
| jGroupMemTree: function(c) { | |
| var g = a.extend({ | |
| target: a("#pop_group_box"), | |
| enable: true, | |
| isSinglePattern: true, | |
| user: {}, | |
| group: {}, | |
| onBuddyItemClick: function() {} | |
| }, c); | |
| var f = a("#pop_group_box_" + g.group.id); | |
| f.createBuddyList = function(i) { | |
| var h = new Object(); | |
| var m = ""; | |
| var k = ""; | |
| m = "<div class='pop_group_tit'><h3>群成员</h3><span>(0/0)</span></div>"; | |
| k = "<ul class='pop_group_list' id='groupMem_list_" + i.id + "'>"; | |
| var l = "</ul>"; | |
| var j = new Array(); | |
| h.pushContent = function(n) { | |
| j.push(n); | |
| }; | |
| h.toHtmlString = function() { | |
| j.sort(function(s, r) { | |
| return groupBuddyComparator(s.buddyObj, r.buddyObj); | |
| }); | |
| var q = ""; | |
| q += k; | |
| var n = 0; | |
| var p = j.length; | |
| for (var o = 0; o < p; o++) { | |
| q += j[o].strContent; | |
| if (j[o].buddyObj.currIsOc) { | |
| n++; | |
| } | |
| } | |
| q += l; | |
| m = m.replace("(0/0)", "(" + n + "/" + p + ")"); | |
| q = m + q; | |
| return q; | |
| }; | |
| return h; | |
| }; | |
| f.createBuddyItem = function(l, n) { | |
| var h = new Object(); | |
| var o = "buddyitem_" + l.id; | |
| var k = EmotionNonhtmlReplace1(l.displayName, 14, false); | |
| var j = l.isVip ? "vip_link" : ""; | |
| h.buddyObj = l; | |
| l.statusClass; | |
| var m = l.statusClass; | |
| var p = portrait.fetion_16; | |
| h.strContent = "<li id='" + o + "' on='' user='" + l.id + "'>" + "<a href='#' hidefocus='true' class=" + j + "><span class='" + l.priName + "'></span>" + "<strong class='BuddyList_Container'><img class='" + m + "' src='" + p + "'></strong><p>" + k + "</p></a></li>"; | |
| return h; | |
| }; | |
| f.bindEventToItem = function() { | |
| var h = f.find("li"); | |
| h.each(function(j) { | |
| a(this) | |
| .bind("click", function() { | |
| a(this) | |
| .siblings() | |
| .removeClass("on"); | |
| a(this) | |
| .addClass("on"); | |
| }); | |
| }); | |
| }; | |
| f.setInnerHtml = function(h) { | |
| f.html(h); | |
| f.bindEventToItem(); | |
| }; | |
| function e(j) { | |
| var i = j.attr("user"); | |
| var h = g.group.id; | |
| var k = h + "_" + i; | |
| return __group_mem.get(k); | |
| } | |
| function d(n, m) { | |
| var j = n.size(); | |
| if (j <= 0) { | |
| return -1; | |
| } else { | |
| var r = e(n.eq(0)); | |
| if (groupBuddyComparator(m, r) <= 0) { | |
| return 0; | |
| } | |
| var l = e(n.eq(j - 1)); | |
| if (groupBuddyComparator(m, l) > 0) { | |
| return j; | |
| } | |
| var i = 0; | |
| var k = j - 1; | |
| var p = 0; | |
| while (k - i > 1) { | |
| var p = Math.floor((i + k) / 2); | |
| var q = e(n.eq(p)); | |
| var h = groupBuddyComparator(m, q); | |
| if (h <= 0) { | |
| k = p; | |
| } else { | |
| if (h > 0) { | |
| i = p; | |
| } | |
| } | |
| } | |
| var o = e(n.eq(i)); | |
| if (groupBuddyComparator(m, o) == 0) { | |
| return i; | |
| } else { | |
| return k; | |
| } | |
| } | |
| } | |
| f.getBuddyList = function(j) { | |
| var h = f; | |
| var i = null; | |
| if (typeof j != "undefined" && j != null) { | |
| var k = h.find("#buddyList_" + j) | |
| .next(); | |
| i = k.prev() | |
| .andSelf(); | |
| } | |
| return i; | |
| }; | |
| f.insertBuddyItem = function(r, k) { | |
| var o = a("#groupMem_list_" + k); | |
| if (o.size() == 0) { | |
| return; | |
| } | |
| var j = new Object(); | |
| var s = "buddyitem_" + r.id; | |
| var m = r.mnn || r.minn || r.id; | |
| var h = EmotionNonhtmlReplace1(r.displayName, 14, false); | |
| var t = r.isVip == true ? 'class="vip_link"' : ""; | |
| j.buddyObj = r; | |
| var l = buddyPor(r, r.statusClass, 1); | |
| var q = ""; | |
| j = a("<li id='" + s + "' user='" + r.id + "'>" + "<a " + t + " hidefocus='true'><span class=" + r.priName + "></span>" + "<strong class='BuddyList_Container'><img class='" + r.statusClass + "' src='" + l + "'></strong>" + "<p>" + h + "</p></a></li>"); | |
| j.bind("click", function() { | |
| a(this) | |
| .siblings() | |
| .removeClass("on"); | |
| a(this) | |
| .addClass("on"); | |
| }); | |
| var p = o.parent() | |
| .find("ul > li[id!='" + s + "']"); | |
| var i = p.size(); | |
| var n = d(p, r); | |
| if (n < 0 || n >= i) { | |
| o.parent() | |
| .find("ul") | |
| .append(j); | |
| } else { | |
| p.eq(n) | |
| .before(j); | |
| } | |
| if (r.currIsOc) { | |
| f.updateBuddyStat(k, 1, 1); | |
| } else { | |
| f.updateBuddyStat(k, 0, 1); | |
| } | |
| }; | |
| var b = /^\(([\d]+)\/([\d]+)\)$/ig; | |
| f.updateBuddyStat = function(j, i, h) { | |
| var l = a("#pop_group_box_" + j) | |
| .children() | |
| .eq(0) | |
| .find("span"); | |
| var k = l.text() | |
| .trim(); | |
| k = k.replace(b, function(o, n, p) { | |
| return "(" + (parseInt(n) + i) + "/" + (parseInt(p) + h) + ")"; | |
| }); | |
| l.text(k); | |
| }; | |
| f.deleteBuddyItem = function(j, m) { | |
| var i = m.id; | |
| var l = a("#groupMem_list_" + j); | |
| if (l.size() == 0) { | |
| return null; | |
| } | |
| var k = l.find("#buddyitem_" + i); | |
| if (k.size() == 0) { | |
| return null; | |
| } | |
| k.remove(); | |
| var n = m.lastIsOc; | |
| var h = m.currIsOc; | |
| if (h) { | |
| f.updateBuddyStat(j, - 1, - 1); | |
| } else { | |
| f.updateBuddyStat(j, 0, - 1); | |
| } | |
| return k; | |
| }; | |
| f.getBuddyItem = function(i, h) { | |
| var j = a("#groupMem_list_" + i); | |
| return j.parent() | |
| .find("#buddyitem_" + h); | |
| }; | |
| f.updateBuddyItem = function(j, q) { | |
| var m = a("#groupMem_list_" + j); | |
| var u = m.parent() | |
| .find("#buddyitem_" + q.id); | |
| var r = "buddyitem_" + q.id; | |
| if (u.size() == 0) { | |
| return; | |
| } | |
| var w, h, x, t; | |
| w = u.find("img"); | |
| x = u.find("a"); | |
| t = u.find("span"); | |
| h = u.find("p"); | |
| if (q.statusClass != w.attr("class") && q.lastIsOc == q.currIsOc) { | |
| if (q.currIsOc == false) { | |
| f.updateBuddyStat(j, - 1, 0); | |
| } else { | |
| f.updateBuddyStat(j, 1, 0); | |
| } | |
| } | |
| var k = buddyPor(q, q.statusClass, 1); | |
| w.removeClass() | |
| .addClass(q.statusClass); | |
| w.attr("src", k); | |
| var p = q.isVip ? "vip_link" : ""; | |
| x.removeClass() | |
| .addClass(p); | |
| t.removeClass() | |
| .addClass(q.priName); | |
| var s = EmotionNonhtmlReplace1(q.displayName, 14, false); | |
| if (s) { | |
| h.text(s); | |
| } | |
| var o = m.parent() | |
| .find("ul > li[id!='" + r + "']"); | |
| var i = o.size(); | |
| var l = d(o, q); | |
| if (l < 0 || l >= i) { | |
| m.parent() | |
| .find("ul") | |
| .append(u); | |
| } else { | |
| o.eq(l) | |
| .before(u); | |
| } | |
| var n = q.lastIsOc; | |
| var v = q.currIsOc; | |
| if (n != v) { | |
| if (n && !v) { | |
| f.updateBuddyStat(j, - 1, 0); | |
| } else { | |
| f.updateBuddyStat(j, 1, 0); | |
| } | |
| } | |
| }; | |
| return f; | |
| } | |
| }); | |
| })(jQuery); | |
| (function(b) { | |
| b.extend(b.fn, { | |
| jGroupSysMsg: function(g) { | |
| var j = b.extend({ | |
| maxRelative: b(document.body), | |
| user: {}, | |
| group: {}, | |
| popWin: {}, | |
| defaultHeight: 365, | |
| defaultWidth: 480, | |
| onActive: function() {}, | |
| onClosed: function() {}, | |
| onFocus: function() {} | |
| }, g); | |
| var i = j.popWin; | |
| i.isActived = false; | |
| i.isShow = false; | |
| i.hasShown = false; | |
| function h(k) { | |
| stopPropagation(k); | |
| i.css("z-index", __zIndex++); | |
| j.onFocus(i); | |
| } | |
| i.close = function() { | |
| i.css("z-index", - 1); | |
| i.css({ | |
| "top": "-1000px", | |
| "left": "-1000px" | |
| }); | |
| i.isActived = false; | |
| i.isShow = false; | |
| i.hasShown = false; | |
| j.onClosed(i); | |
| }; | |
| i.active = function() { | |
| i.isActived = true; | |
| i.css("z-index", - 1); | |
| j.onActive(i); | |
| }; | |
| i.show = function(l, k) { | |
| if (typeof l == "number" && typeof k == "number" && !i.maxed) { | |
| i.css({ | |
| "top": l + "px", | |
| "left": k + "px" | |
| }); | |
| } | |
| i.css("z-index", __zIndex++); | |
| i.isShow = true; | |
| i.hasShown = true; | |
| j.onFocus(i); | |
| }; | |
| i.focus = function() { | |
| j.onFocus(i); | |
| }; | |
| i.hide = function() { | |
| i.css("z-index", - 1); | |
| i.isShow = false; | |
| }; | |
| i.bind("click", function() {}); | |
| function f(m) { | |
| if (!i.maxed) { | |
| m = window.event || m; | |
| if (i.get(0) | |
| .setCapture) { | |
| i.get(0) | |
| .setCapture(); | |
| } else { | |
| if (window.captureEvents) { | |
| window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| var n = i.offset(); | |
| var k = getViewportHeight(); | |
| var l = getViewportWidth(); | |
| var o = { | |
| win: i, | |
| mOffsetX: m.clientX - n.left, | |
| mOffsetY: m.clientY - n.top, | |
| viewH: k, | |
| viewW: l | |
| }; | |
| b.appendMaskPage(99); | |
| i.bind("mousemove", o, a) | |
| .bind("mouseup", o, c); | |
| } | |
| } | |
| var e = i.find(".pop_group_cont_tit"); | |
| e.bind("mousedown", f); | |
| i.isOnFocus = function() { | |
| return parseInt(i.css("z-index")) == __zIndex - 1 && i.isActived; | |
| }; | |
| var d = i.find("pop_group_close"); | |
| d.bind("click", i.close); | |
| i.bind("mousedown", function() { | |
| i.css("z-index", __zIndex++); | |
| j.onFocus(i); | |
| }); | |
| return i; | |
| } | |
| }); | |
| function a(k) { | |
| var l = k.data; | |
| var j = l.win; | |
| var i = l.mOffsetX; | |
| var g = l.mOffsetY; | |
| var h = l.viewH - j.outerHeight(); | |
| var f = l.viewW - j.outerWidth(); | |
| h = (h < 0 ? 0 : h); | |
| f = (f < 0 ? 0 : f); | |
| var n = window.event || k; | |
| if (n.button < 2) { | |
| var m = parseInt(n.clientY) - parseInt(g); | |
| var o = parseInt(n.clientX) - parseInt(i); | |
| m = (m < 0 ? 0 : m); | |
| o = (o < 0 ? 0 : o); | |
| m = (m > h ? h : m); | |
| o = (o > f ? f : o); | |
| j.css({ | |
| top: m + "px", | |
| left: o + "px" | |
| }); | |
| } | |
| } | |
| function c(f) { | |
| var h = f.data; | |
| var g = h.win; | |
| if (g.get(0) | |
| .releaseCapture) { | |
| g.get(0) | |
| .releaseCapture(); | |
| } else { | |
| if (window.releaseEvents) { | |
| window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| b.removeMaskPage(); | |
| g.unbind("mousemove") | |
| .unbind("mouseup"); | |
| } | |
| })(jQuery); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (function(g) { | |
| var e = /(http:\/\/|https:\/\/|ftp:\/\/|www\.){1}[\w-]+(\.[\w-]+)*(:[\d]+)?(\/[\w-\.\/?&=]*)?/ig; | |
| var a = /<img\s[\s\S]*?(alt='[^']*'|alt="[^"]*"|alt=[\S]*)[\s\S]*?(>[^<]*<\/img>|>)/gi; | |
| var c = /^<br\s*\/?>$/i; | |
| g.extend(g.fn, { | |
| jChatWindow: function(au) { | |
| var w = g.extend({ | |
| maxRelative: g(document.body), | |
| mode: "singleChat", | |
| user: {}, | |
| buddy: {}, | |
| defaultHeight: 365, | |
| defaultWidth: 468, | |
| onActive: function() {}, | |
| onClosed: function() {}, | |
| onFocus: function() {}, | |
| onMined: function() {}, | |
| onMaxed: function() {}, | |
| onResized: function() {}, | |
| onSendMessage: function() {} | |
| }, au); | |
| var X = g("<div />") | |
| .attr("id", "Main_chatWindow_" + w.user.uid + "_" + w.buddy.uid) | |
| .addClass("pop_default_message pop_dm_bg w450") | |
| .css({ | |
| "top": "-1000px", | |
| "left": "-1000px" | |
| }); | |
| var s = g("<div />") | |
| .addClass("pop_outer_new1"); | |
| var aa = g("<div />") | |
| .addClass("pop_inner_new1"); | |
| X.append(s.append(aa)); | |
| X.appendTo(document.body); | |
| w.maxRelative = ((typeof w.maxRelative == "string") ? g("#" + w.maxRelative) : w.maxRelative); | |
| X.maxRelative = w.maxRelative; | |
| var aF = g("<div />") | |
| .addClass("pop_message_title h42_new1"); | |
| var D = w.buddy.statusClass; | |
| var F = buddyPor(w.buddy, D, 2); | |
| var t = g("<i />") | |
| .addClass("nobg"); | |
| var o = g("<img />") | |
| .attr("src", F); | |
| var aH = g("<em />") | |
| .addClass(status); | |
| t.append(o) | |
| .append(aH); | |
| var aj = g("<span />") | |
| .addClass("status"); | |
| var u = g("<strong />") | |
| .addClass("pl20"); | |
| var J = g("<p />"); | |
| var ax = g("<h2 />") | |
| .append(t) | |
| .append(u) | |
| .append(aj); | |
| aF.append(ax) | |
| .append(J); | |
| aa.append(aF); | |
| var at = g("<div />") | |
| .addClass("pop_ctr_bar"); | |
| var aI = g("<i />") | |
| .addClass("close"); | |
| var W = g("<i />") | |
| .addClass("max"); | |
| var z = g("<i />") | |
| .addClass("min"); | |
| at.append(z) | |
| .append(W) | |
| .append(aI); | |
| aa.append(at); | |
| var B = g("<div />") | |
| .addClass("message_main_new1 clearfix"); | |
| var G = g("<div />") | |
| .addClass("message_content_new1"); | |
| var ae = G; | |
| var y = g("<div />") | |
| .addClass("chat_info chat_new1 chat_append_sec") | |
| .css({ | |
| "height": "158px" | |
| }); | |
| var p = g("<div class='chat_append_tip chat_append_tip1'>请勿轻信汇款、中奖和话费充值等信息,谨防受骗。</div>"); | |
| y.append(p); | |
| var m = g("<div />") | |
| .addClass("face_main"); | |
| var j = g("<a />") | |
| .attr("href", "#") | |
| .attr("title", "选择表情") | |
| .addClass("btn_face_new"); | |
| var af = g("<a />") | |
| .attr("href", "#") | |
| .attr("title", "设置字体") | |
| .addClass("btn_fonts none"); | |
| var H = jChatWindowPopExpression(); | |
| H.css("display", "none"); | |
| var am = g("<div />") | |
| .addClass("chat_input chat_pc"); | |
| var ao = "edit" + w.buddy.uid; | |
| var R = g("<div contenteditable='true' id='" + ao + "'/>") | |
| .addClass("chat_textarea"); | |
| if (g.browser.mozilla) { | |
| R.append("<br/>"); | |
| } | |
| am.append(R); | |
| var ay = g("<div />") | |
| .addClass("send_btn"); | |
| var P = g("<a />") | |
| .attr("href", "#") | |
| .addClass("btn_send_new") | |
| .append("发 送"); | |
| var aC = g("<span>"); | |
| var ak = X.attr("id") + "_checkbox"; | |
| var C = g("<input />") | |
| .attr("name", "checkbox") | |
| .attr("type", "checkbox") | |
| .attr("id", ak) | |
| .attr("checked", "checked"); | |
| var Z = g("<label />") | |
| .attr("for", ak) | |
| .append("以短信方式发送"); | |
| aC.append(C) | |
| .append(Z); | |
| var aB = g("<strong />") | |
| .attr("id", X.attr("id") + "smsWordCounter") | |
| .html("180"); | |
| var aA = g("<em />") | |
| .append("还可输入") | |
| .append(aB) | |
| .append("字"); | |
| ay.append(P) | |
| .append(aC) | |
| .append(aA); | |
| G.append(y) | |
| .append(m.append(j) | |
| .append(af) | |
| .append(H)) | |
| .append(am) | |
| .append(ay); | |
| var ad = g("<div />") | |
| .addClass("extend_btn"); | |
| var x = g("<a />") | |
| .attr("href", "#") | |
| .addClass("btn_display none") | |
| .append("显示"); | |
| var I = g("<a />") | |
| .attr("href", "#") | |
| .addClass("btn_hide") | |
| .append("隐藏"); | |
| X.isExpanded = true; | |
| ad.append(x) | |
| .append(I); | |
| var ar = g("<div />") | |
| .addClass("avatar"); | |
| var E = g("<img alt='' complete='complete' />") | |
| .attr("src", portrait.defaultIcon); | |
| var an = g("<div />") | |
| .addClass("user_info_topnew1"); | |
| var q = ""; | |
| var ah = ""; | |
| if (w.buddy.mn && w.buddy.mn.trim() | |
| .length > 0) { | |
| ah = "fetion_mobile_new1"; | |
| q = w.buddy.mn; | |
| } else { | |
| var r = new jCompactUri(w.buddy.uri); | |
| ah = "fetion_num_new1"; | |
| if (r.isMobileNo) { | |
| ah = "fetion_mobile_new1"; | |
| } | |
| q = r.mobileNoOrSid; | |
| } | |
| var k = g("<a href='#' target='_blank'>申请公开手机号</a>"); | |
| var ac = ""; | |
| if (w.buddy.isCT) { | |
| ac = "(电信)"; | |
| } | |
| if (w.buddy.isCU) { | |
| ac = "(联通)"; | |
| } | |
| an.append(g("<div class='user_head_90new1' />") | |
| .append(E)) | |
| .append('<ul class="user_info_new1">' + "<li><label id='buddy_num' class=\"fetion_gray\">" + q + "</label><span>" + ac + "</span></li></ul>"); | |
| var ai = g("<div />") | |
| .addClass("user_info_botnew1"); | |
| var l = g("<img alt='' complete='complete' />") | |
| .attr("src", portrait.defaultIcon); | |
| ai.append(g("<i class='user_head_90new1' />") | |
| .append(l)); | |
| ar.append(an) | |
| .append(ai); | |
| var L = null; | |
| B.append(G) | |
| .append(ar) | |
| .append(ad); | |
| aa.append(B); | |
| var ab = g("<div class='chat_move_right' direction='right' />") | |
| .css("cursor", "e-resize"); | |
| var Y = g("<div class='chat_move_left' direction='left' />") | |
| .css("cursor", "w-resize"); | |
| var Q = g("<div class='chat_move_bottom' direction='bottom'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "s-resize"); | |
| var aJ = g("<div class='chat_move_rb' direction='right_bottom'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "se-resize"); | |
| var aG = g("<div class='chat_move_lb' direction='left_bottom'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "sw-resize"); | |
| var N = g("<div class='chat_move_top' direction='top'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "n-resize"); | |
| var aw = g("<div class='chat_move_rt' direction='right_top'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "ne-resize"); | |
| var av = g("<div class='chat_move_lt' direction='left_top'><img alt='' src='images/onepixel.jpg' complete='complete' style='height:1px;width:1px' /></div>") | |
| .css("cursor", "nw-resize"); | |
| X.append(N) | |
| .append(Q) | |
| .append(Y) | |
| .append(ab) | |
| .append(aJ) | |
| .append(aw) | |
| .append(aG) | |
| .append(av); | |
| X.lastPosition = { | |
| "top": X.css("top"), | |
| "left": X.css("left") | |
| }; | |
| X.lastSize = { | |
| "height": X.height(), | |
| "width": X.width(), | |
| "isExpanded": X.isExpanded | |
| }; | |
| X.isActived = false; | |
| X.isShow = false; | |
| X.isExpanded = true; | |
| X.maxed = false; | |
| X.enablechatInput = true; | |
| X.inputPermission = 0; | |
| X.hasShown = false; | |
| function ag(aL) { | |
| stopPropagation(aL); | |
| X.css("z-index", __zIndex++); | |
| w.onFocus(X); | |
| } | |
| function T() { | |
| H.css("display", "none"); | |
| } | |
| X.close = function() { | |
| X.css("z-index", - 1); | |
| if (X.maxed) { | |
| X.maxed = false; | |
| X.css({ | |
| "top": X.lastPosition.top, | |
| "left": X.lastPosition.left | |
| }); | |
| y.scrollTop(y.get(0) | |
| .scrollHeight); | |
| } | |
| X.css({ | |
| "top": "-1000px", | |
| "left": "-1000px" | |
| }); | |
| X.isActived = false; | |
| X.isShow = false; | |
| X.hasShown = false; | |
| X.expand(); | |
| T(); | |
| R.get(0) | |
| .innerHTML = g.browser.mozilla ? "<br/>" : ""; | |
| w.onClosed(X); | |
| }; | |
| X.active = function() { | |
| X.isActived = true; | |
| X.css("z-index", - 1); | |
| X.resize(w.defaultHeight, w.defaultWidth); | |
| w.onActive(X); | |
| }; | |
| X.show = function(aM, aL) { | |
| if (typeof aM == "number" && typeof aL == "number" && !X.maxed) { | |
| X.css({ | |
| "top": aM + "px", | |
| "left": aL + "px" | |
| }); | |
| } | |
| X.css({ | |
| "z-index": __zIndex++, | |
| "display": "block" | |
| }); | |
| X.isShow = true; | |
| X.hasShown = true; | |
| R.blur(); | |
| R.focus(); | |
| X.resize(); | |
| w.onFocus(X); | |
| }; | |
| X.focus = function() { | |
| w.onFocus(X); | |
| }; | |
| X.hide = function() { | |
| X.css({ | |
| "z-index": -1, | |
| "display": "none" | |
| }); | |
| T(); | |
| X.isShow = false; | |
| }; | |
| X.resize = function(aN, aM) { | |
| if (typeof aN != "number") { | |
| aN = X.height(); | |
| } | |
| if (typeof aM != "number") { | |
| aM = X.width(); | |
| } | |
| y.height(0); | |
| X.get(0) | |
| .style.height = aN + "px"; | |
| X.get(0) | |
| .style.width = aM + "px"; | |
| if (X.maxed) { | |
| if (X.isExpanded) { | |
| G.get(0) | |
| .style.width = (aM - 143) + "px"; | |
| } else { | |
| G.get(0) | |
| .style.width = (aM - 11) + "px"; | |
| } | |
| } else { | |
| if (X.isExpanded) { | |
| G.get(0) | |
| .style.width = (aM - 143) + "px"; | |
| } else { | |
| G.get(0) | |
| .style.width = (aM - 11) + "px"; | |
| } | |
| } | |
| var aL = 0; | |
| y.parent() | |
| .children() | |
| .each(function(aO) { | |
| aL += g(this) | |
| .outerHeight(); | |
| }); | |
| aL = aN - (aL + y.outerHeight()) - aF.outerHeight(); | |
| if (L && L.css("display") == "none") { | |
| aL += L.outerHeight(); | |
| } | |
| aL = ((aL < 0) ? 0 : aL); | |
| y.get(0) | |
| .style.height = aL + "px"; | |
| T(); | |
| w.onResized(X); | |
| }; | |
| X.bind("click", function() { | |
| T(); | |
| }); | |
| var K; | |
| var aD; | |
| X.logSelfMsg = function(aP) { | |
| R.get(0) | |
| .innerHTML = g.browser.mozilla ? "<br/>" : ""; | |
| var aM = g("<dl />") | |
| .addClass("self"); | |
| var aO = new Date(); | |
| var aN = aO.getHours() + ":" + (aO.getMinutes() < 10 ? "0" + aO.getMinutes() : aO.getMinutes()); | |
| if (typeof K == "undefined" || typeof aD == "undefined" || !K || aN != aD) { | |
| var aQ = g("<dt />") | |
| .append(htmlEncode(cnSubstr(w.user.displayName, 18))); | |
| aQ.append(g("<strong />") | |
| .append("说")); | |
| aQ.append(g("<span />") | |
| .append("(" + aN + "):")); | |
| } | |
| K = true; | |
| aD = aN; | |
| aP = aP.replace(/\u000a|\u000d\u000a/gi, "<br>"); | |
| aP = aP.replace(__hrefReg, function(aR) { | |
| if (aR.indexOf("://") >= 0) { | |
| return "<a href='" + aR + "' target='_blank'>" + aR + "</a>"; | |
| } else { | |
| return "<a href='http://" + aR + "' target='_blank'>" + aR + "</a>"; | |
| } | |
| }); | |
| var aL = g("<dd />") | |
| .append(EmoticonReplace(aP)); | |
| aM.append(aQ) | |
| .append(aL); | |
| y.append(aM); | |
| y.scrollTop(y.get(0) | |
| .scrollHeight); | |
| }; | |
| X.logFriendMsg = function(aP) { | |
| var aM = g("<dl />") | |
| .addClass("friend"); | |
| var aO = new Date(); | |
| var aN = aO.getHours() + ":" + (aO.getMinutes() < 10 ? "0" + aO.getMinutes() : aO.getMinutes()); | |
| if (typeof K == "undefined" || typeof aD == "undefined" || K || aN != aD) { | |
| var aQ = g("<dt />") | |
| .append(htmlEncode(cnSubstr(w.buddy.displayName, 18))); | |
| aQ.append(g("<strong />") | |
| .append("说")); | |
| aQ.append(g("<span />") | |
| .append("(" + aN + "):")); | |
| } | |
| K = false; | |
| aD = aN; | |
| aP = htmlEncode(aP); | |
| aP = aP.replace(/\u000a|\u000d\u000a/gi, "<br>"); | |
| aP = aP.replace(__hrefReg, function(aR) { | |
| if (aR.indexOf("://") >= 0) { | |
| return "<a href='" + aR + "' target='_blank'>" + aR + "</a>"; | |
| } else { | |
| return "<a href='http://" + aR + "' target='_blank'>" + aR + "</a>"; | |
| } | |
| }); | |
| var aL = g("<dd />") | |
| .append(EmoticonReplace(aP)); | |
| aM.append(aQ) | |
| .append(aL); | |
| y.append(aM); | |
| y.scrollTop(y.get(0) | |
| .scrollHeight); | |
| }; | |
| X.logErrorInfo = function(aL) { | |
| var aM = g("<div />") | |
| .addClass("code_error") | |
| .append(aL); | |
| y.append(aM) | |
| .append("<br/>"); | |
| y.scrollTop(y.get(0) | |
| .scrollHeight); | |
| }; | |
| X.getSendMessagePlainText = function(aL) { | |
| var aM = aL ? aL : R.get(0) | |
| .innerHTML; | |
| if (!aM) { | |
| return ""; | |
| } else { | |
| if (!g.browser.msie) { | |
| aM = aM.replace(/<br[ ]*[\/]?>$/i, ""); | |
| aM = aM.replace(/<br[ ]*[\/]?>/gi, "\\u000a"); | |
| } | |
| aM = aM.replace(/<br[ ]*[\/]?>/gi, "\\u000d\\u000a"); | |
| aM = aM.replace(a, function(aO) { | |
| var aP = g(aO) | |
| .attr("src"); | |
| var aN = aP.substring(aP.lastIndexOf("/") + 1, aP.lastIndexOf(".")); | |
| return GetEmotionKey(aN); | |
| }); | |
| return aM; | |
| } | |
| return ""; | |
| }; | |
| X.enableInput = function(aL) { | |
| X.enablechatInput = aL; | |
| if (aL) { | |
| X.inputPermission = 0; | |
| am.removeClass() | |
| .addClass("chat_input chat_pc") | |
| .css("background-color", ""); | |
| R.removeAttr("disabled") | |
| .attr("contenteditable", "true") | |
| .css("background-color", ""); | |
| j.find("img") | |
| .removeAttr("disabled") | |
| .attr("src", "images/face_btn.png"); | |
| P.removeAttr("disabled") | |
| .removeClass() | |
| .addClass("btn_send_new"); | |
| } else { | |
| am.removeClass() | |
| .addClass("chat_fileinput chat_pc") | |
| .css("background-color", "#f0f0f0"); | |
| R.attr("disabled", "disabled") | |
| .attr("contenteditable", "false") | |
| .css("background-color", "#f0f0f0"); | |
| j.find("img") | |
| .attr("disabled", "disabled") | |
| .attr("src", "images/face_btnfile.png"); | |
| P.attr("disabled", "disabled") | |
| .removeClass() | |
| .addClass("btn_sendfile_new"); | |
| } | |
| }; | |
| X.collapse = function() { | |
| var aL = 0; | |
| if (X.maxed) { | |
| var aM = ad.width() + ar.width(); | |
| G.width(G.width() + aM); | |
| aL = X.width(); | |
| } else { | |
| aL = X.width() - ar.width(); | |
| } | |
| X.isExpanded = false; | |
| X.resize(X.height(), aL); | |
| x.removeClass("none"); | |
| I.addClass("none"); | |
| ar.addClass("none"); | |
| }; | |
| X.expand = function() { | |
| var aL = 0; | |
| if (X.maxed) { | |
| var aM = ad.width() + ar.width(); | |
| G.width(G.width() - aM); | |
| aL = X.width(); | |
| } else { | |
| aL = X.width() + ar.width(); | |
| } | |
| X.isExpanded = true; | |
| X.resize(X.height(), aL); | |
| x.addClass("none"); | |
| I.removeClass("none"); | |
| ar.removeClass("none"); | |
| }; | |
| x.bind("click", X.expand); | |
| I.bind("click", X.collapse); | |
| X.recalWordCount = function() { | |
| if (C.attr("checked")) { | |
| setTimeout(function() { | |
| var aL = X.getSendMessagePlainText(); | |
| var aM = 180 - aL.length; | |
| aB.html(aM); | |
| if (aM < 0) { | |
| aA.addClass("font_warning"); | |
| } else { | |
| aA.removeClass("font_warning"); | |
| } | |
| aL = null; | |
| }, 200); | |
| } | |
| }; | |
| X.popWarnBySmsCheker = false; | |
| X.onCkbSmsCheckerChanged = function(aL) { | |
| if (aL) { | |
| if (C.attr("checked")) { | |
| if ((w.buddy.isCT || w.buddy.isCU)) { | |
| if ( !! L) { | |
| L.remove(); | |
| } | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: true, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| var aM = w.buddy.isCT ? "电信" : "联通"; | |
| L.css({ | |
| "padding-right": "13px" | |
| }) | |
| .setInnerHtml("对方是" + aM + "用户,发送短信收费,每条同本地短信资费。"); | |
| X.resize(); | |
| X.popWarnBySmsCheker = true; | |
| } | |
| aA.css("display", ""); | |
| U = true; | |
| g.increaseCounters("500600001"); | |
| } else { | |
| aA.css("display", "none"); | |
| U = false; | |
| if (X.popWarnBySmsCheker) { | |
| if ( !! L) { | |
| L.remove(); | |
| if ((w.buddy.status & ContactStatus.SmsOnline) == ContactStatus.SmsOnline) { | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: true, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| L.setInnerHtml("对方将在下次登录时收到您发送的信息。"); | |
| } | |
| X.resize(); | |
| X.popWarnBySmsCheker = false; | |
| } | |
| } | |
| } | |
| } else { | |
| aA.css("display", "none"); | |
| U = false; | |
| } | |
| X.recalWordCount(); | |
| }; | |
| C.bind("click", X.onCkbSmsCheckerChanged); | |
| var aK = ContactStatus.Unknown; | |
| var aq = ContactType.Unknown; | |
| var v = true; | |
| var U = false; | |
| var n = false; | |
| function A(aL, aM) { | |
| if (aL.isCM && (aL.cas != "0" || aL.sms != "0.0:0:0")) { | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| } else { | |
| if (aM) { | |
| if (w.user.isCM || aL.isCM) { | |
| C.removeAttr("disabled"); | |
| Z.css("color", ""); | |
| } else { | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| } | |
| } | |
| } | |
| } | |
| function O(aL, aO, aM) { | |
| U = false; | |
| n = false; | |
| if (aO == ContactType.MobileBuddy) { | |
| if (L) { | |
| L.remove(); | |
| } | |
| if (w.user.isMobile) { | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: true, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| L.setInnerHtml("对方是您的手机好友,您的消息将以长短信方式发送到对方手机。"); | |
| v = true; | |
| } else { | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: false, | |
| className: "pop_blacklist", | |
| onClose: X.resize | |
| }); | |
| L.setInnerHtml("对方是您的手机好友,您尚未绑定手机号,无法与其发起会话。"); | |
| v = false; | |
| } | |
| U = true; | |
| C.attr("checked", "checked"); | |
| X.onCkbSmsCheckerChanged(true); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| X.resize(); | |
| } else { | |
| if (aO == ContactType.ChatFriend) { | |
| if (L) { | |
| L.remove(); | |
| } | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: true, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| if ((aM & ContactStatus.CloseService) == ContactStatus.CloseService) { | |
| L.setInnerHtml("对方没有开通服务,您不能和其会话。"); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| v = false; | |
| } else { | |
| var aN = g("<span>该用户不在您的好友列表中。</span><a href=#>点击此处添加为好友</a><br/><span>请勿轻信汇款、中奖等消息。</span><a href=#>点击此处将其加入黑名单</a>"); | |
| L.setInnerHtml(aN); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| X.resize(); | |
| aN.eq(1) | |
| .bind("click", function() { | |
| createAddBuddyTab(aL.sid); | |
| return false; | |
| }); | |
| aN.eq(4) | |
| .bind("click", function() { | |
| OpBuddy(aL.uid, "1"); | |
| return false; | |
| }); | |
| if (getUserPermission(__user.gp, "contact") != 1) { | |
| v = false; | |
| } else { | |
| v = true; | |
| } | |
| } | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| } else { | |
| if (aO == ContactType.FetionBuddy) { | |
| ap(aL, aM); | |
| } | |
| } | |
| } | |
| X.onCkbSmsCheckerChanged(v); | |
| A(aL, false); | |
| } | |
| function ap(aL, aM) { | |
| if (L) { | |
| L.remove(); | |
| } | |
| if (aL.bss == "0" && aL.mn == "") { | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: false, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| L.setInnerHtml("对方没有开通服务,您不能和其会话。"); | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| X.resize(); | |
| v = false; | |
| } else { | |
| if ((aM & ContactStatus.Online) == ContactStatus.Online) { | |
| X.resize(); | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| if (w.user.isCM || w.buddy.isCM) { | |
| C.removeAttr("disabled"); | |
| Z.css("color", ""); | |
| } else { | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| } | |
| v = true; | |
| } else { | |
| if ((aM & ContactStatus.Busy) == ContactStatus.Busy) { | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: true, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| L.setInnerHtml("对方“忙碌”,可能无法及时回复您的消息。"); | |
| X.resize(); | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| if (w.user.isCM || aL.isCM) { | |
| C.removeAttr("disabled"); | |
| Z.css("color", ""); | |
| } else { | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| } | |
| v = true; | |
| } else { | |
| if ((aM & ContactStatus.Away) == ContactStatus.Away) { | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: true, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| L.setInnerHtml("对方“离开”,可能无法及时回复您的消息。"); | |
| X.resize(); | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| if (w.user.isCM || aL.isCM) { | |
| C.removeAttr("disabled"); | |
| Z.css("color", ""); | |
| } else { | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| } | |
| v = true; | |
| } else { | |
| if ((aM & ContactStatus.SmsOnline) == ContactStatus.SmsOnline) { | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: true, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| if (w.user.isMobile) { | |
| if (w.buddy.isCM) { | |
| L.setInnerHtml("对方短信在线,您的消息会以短信发送到对方手机。"); | |
| C.removeAttr("disabled"); | |
| Z.css("color", ""); | |
| n = true; | |
| v = true; | |
| } else { | |
| if (w.user.isCM && !w.buddy.isCM) { | |
| L.setInnerHtml("对方将在下次登录时收到您发送的信息。"); | |
| C.removeAttr("disabled"); | |
| Z.css("color", ""); | |
| } else { | |
| L.setInnerHtml("对方将在下次登录时收到您发送的信息。"); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| n = false; | |
| v = true; | |
| } | |
| } | |
| } else { | |
| L.setInnrHetml("对方离线,您的消息将在对方下次登录时发送。"); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| v = true; | |
| } | |
| X.resize(); | |
| } else { | |
| if ((aM & ContactStatus.Offline) == ContactStatus.Offline) { | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: true, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| L.setInnerHtml("对方离线,您的消息将在对方下次登录时发送。"); | |
| X.resize(); | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| v = true; | |
| } else { | |
| X.resize(); | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| if (w.user.isCM || aL.isCM) { | |
| C.removeAttr("disabled"); | |
| Z.css("color", ""); | |
| } else { | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| } | |
| v = true; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| A(aL, false); | |
| } | |
| X.setBuddyStatus = function(aS) { | |
| w.buddy = aS; | |
| A(aS, true); | |
| var aT = aS.type, | |
| aN = aS.status; | |
| var aL = (aq != aT); | |
| var aM = (aK != aN); | |
| if (aT != ContactType.ChatFriend) { | |
| var aQ = aS.pd ? cnSubstr(aS.pd.trim(), 6) : getStatusDesc(aS, aT, aN); | |
| aj.text("(" + aQ + ")"); | |
| } else { | |
| aj.text("- 陌生人"); | |
| } | |
| if (!aL && !aM) { | |
| return; | |
| } | |
| var aR = aS.statusClass; | |
| aH.removeClass() | |
| .addClass(aR); | |
| var aP = w.buddy.statusClass; | |
| var aO = buddyPor(w.buddy, aP, 2); | |
| o.attr("src", aO); | |
| if ((aN & ContactStatus.BlockList) > 0) { | |
| if (L) { | |
| L.remove(); | |
| } | |
| L = jChatWindowPopMessage({ | |
| target: ae, | |
| canClose: true, | |
| className: "pop_blacktxt", | |
| onClose: X.resize | |
| }); | |
| L.setInnerHtml("对方在您的黑名单中,您不能和其会话。"); | |
| X.resize(); | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| v = false; | |
| } else { | |
| O(aS, aT, aN); | |
| } | |
| aK = aN; | |
| aq = aT; | |
| X.enableInput(v); | |
| }; | |
| X.setBuddyStatus(w.buddy); | |
| X.getBuddyDisplayNo = function(aM) { | |
| var aL = ""; | |
| var aO = ""; | |
| if (aM.mn && aM.mn.trim() | |
| .length > 0) { | |
| aO = "fetion_mobile_new1"; | |
| aL = aM.mn; | |
| } else { | |
| var aN = new jCompactUri(aM.uri); | |
| aO = "fetion_num_new1"; | |
| if (aN.isMobileNo) { | |
| aO = "fetion_mobile_new1"; | |
| } | |
| aL = aN.mobileNoOrSid; | |
| } | |
| return { | |
| "num": aL, | |
| "className": aO | |
| }; | |
| }; | |
| X.setBuddyInfo = function(aN) { | |
| w.buddy = aN; | |
| u.text(cnSubstr(aN.displayName, 18)); | |
| J.text(cnSubstr(aN.ct == 1 ? "" : aN.i, 38)); | |
| var aO = aN.statusClass; | |
| var aP = buddyPor(aN, aO, 2); | |
| o.attr("src", aP); | |
| E.attr("src", getUserPortraitUrl(w.buddy)); | |
| var aL = X.getBuddyDisplayNo(w.buddy); | |
| an.find("#buddy_num") | |
| .text(aL.num); | |
| if (w.buddy.isCT || w.buddy.isCU) { | |
| var aM = ""; | |
| aM = w.buddy.isCT ? "(电信)" : (w.buddy.isCU ? "(联通)" : ""); | |
| an.find("#buddy_num") | |
| .next() | |
| .text(aM); | |
| } | |
| }; | |
| X.setBuddyInfo(w.buddy); | |
| X.setUserInfo = function(aL) { | |
| w.user = aL; | |
| l.attr("src", getUserPortraitUrl(aL)); | |
| if (w.user.cas != "0" && w.user.isMobile) { | |
| C.removeAttr("checked"); | |
| X.onCkbSmsCheckerChanged(false); | |
| C.attr("disabled", "disabled"); | |
| Z.css("color", "rgb(128, 128, 128)"); | |
| } | |
| }; | |
| X.setUserInfo(w.user); | |
| function S(aN) { | |
| T(); | |
| if (!X.maxed) { | |
| aN = window.event || aN; | |
| if (X.get(0) | |
| .setCapture) { | |
| X.get(0) | |
| .setCapture(); | |
| } else { | |
| if (window.captureEvents) { | |
| window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| var aO = X.offset(); | |
| var aL = getViewportHeight(); | |
| var aM = getViewportWidth(); | |
| var aP = { | |
| win: X, | |
| mOffsetX: aN.clientX - aO.left, | |
| mOffsetY: aN.clientY - aO.top, | |
| viewH: aL, | |
| viewW: aM | |
| }; | |
| g.appendMaskPage(99); | |
| X.bind("mousemove", aP, b) | |
| .bind("mouseup", aP, h); | |
| } | |
| } | |
| aF.bind("mousedown", S); | |
| function V(aN) { | |
| T(); | |
| if (!X.maxed) { | |
| aN = window.event || aN; | |
| if (X.get(0) | |
| .setCapture) { | |
| X.get(0) | |
| .setCapture(); | |
| } else { | |
| if (window.captureEvents) { | |
| window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| var aL = getViewportHeight(); | |
| var aM = getViewportWidth(); | |
| var aO = g(this) | |
| .attr("direction"); | |
| var aP = { | |
| win: X, | |
| originSize: { | |
| H: X.height(), | |
| W: X.width() | |
| }, | |
| moveDire: aO, | |
| originX: aN.clientX, | |
| originY: aN.clientY, | |
| viewH: aL, | |
| viewW: aM | |
| }; | |
| g.appendMaskPage(99); | |
| X.bind("mousemove", aP, f) | |
| .bind("mouseup", aP, d); | |
| } | |
| } | |
| X.find("div[direction]") | |
| .bind("mousedown", V); | |
| at.bind("mousedown", ag); | |
| at.find("i") | |
| .bind("mouseover", function() { | |
| var aL = g(this) | |
| .attr("class"); | |
| g(this) | |
| .attr("class", aL + "_on"); | |
| }) | |
| .bind("mouseout", function() { | |
| var aL = g(this) | |
| .attr("class"); | |
| g(this) | |
| .attr("class", aL.replace(/^(.*)_on$/, "$1")); | |
| }); | |
| X.isOnFocus = function() { | |
| return parseInt(X.css("z-index")) == __zIndex - 1 && X.isActived; | |
| }; | |
| ax.bind("mousedown", ag); | |
| J.bind("mousedown", ag); | |
| aI.bind("click", X.close); | |
| z.bind("click", function() { | |
| X.hide(); | |
| w.onMined(X); | |
| }); | |
| X.max = function() { | |
| X.resize(w.maxRelative.height() - 3, w.maxRelative.width() - 2); | |
| }; | |
| function aE() { | |
| if (!X.maxed) { | |
| X.maxed = true; | |
| W.removeClass() | |
| .addClass("resume"); | |
| X.lastPosition = { | |
| "top": X.css("top"), | |
| "left": X.css("left") | |
| }; | |
| X.lastSize = { | |
| "height": X.height(), | |
| "width": X.width(), | |
| "isExpanded": X.isExpanded | |
| }; | |
| var aL = w.maxRelative.offset(); | |
| X.css({ | |
| "top": aL.top, | |
| "left": aL.left | |
| }); | |
| X.max(); | |
| w.onMaxed(X, true); | |
| } else { | |
| X.maxed = false; | |
| W.removeClass() | |
| .addClass("max"); | |
| X.css({ | |
| "top": X.lastPosition.top, | |
| "left": X.lastPosition.left | |
| }); | |
| if (X.isExpanded != X.lastSize.isExpanded) { | |
| if (X.lastSize.isExpanded) { | |
| X.expand(); | |
| } else { | |
| X.collapse(); | |
| } | |
| } | |
| X.resize(X.lastSize.height, X.lastSize.width); | |
| w.onMaxed(X, false); | |
| } | |
| y.scrollTop(y.get(0) | |
| .scrollHeight); | |
| R.blur(); | |
| R.focus(); | |
| } | |
| W.bind("click", aE); | |
| aF.bind("dblclick", aE); | |
| X.bind("mousedown", function() { | |
| X.css("z-index", __zIndex++); | |
| w.onFocus(X); | |
| }); | |
| var i, al; | |
| function M() { | |
| if (document.selection) { | |
| i = document.selection.createRange(); | |
| } else { | |
| if (window.getSelection) { | |
| al = window.getSelection() | |
| .getRangeAt(0); | |
| } | |
| } | |
| } | |
| var az = Math.ceil(parseFloat(R.css("line-height"))); | |
| R.bind("keydown", function(aN) { | |
| aN = window.event || aN; | |
| var aM = aN.keyCode || aN.charCode; | |
| function aO() { | |
| return (aM == 13 && aN.ctrlKey) || (aM == 13 && aN.shiftKey) || (aM == 13 && aN.altKey); | |
| } | |
| function aL() { | |
| return aM == 13; | |
| } | |
| M(); | |
| if (aO()) { | |
| if (i) { | |
| i.text = "\r\n"; | |
| i.select(); | |
| } else { | |
| if (al) { | |
| replaceSelection(al, "<br>"); | |
| replaceSelection(al, " "); | |
| R.scrollTop(R.scrollTop() + az); | |
| } | |
| } | |
| if (aN.preventDefault) { | |
| aN.preventDefault(); | |
| } else { | |
| aN.returnValue = false; | |
| } | |
| } else { | |
| if (aL()) { | |
| if (aN.preventDefault) { | |
| aN.preventDefault(); | |
| } else { | |
| aN.returnValue = false; | |
| } | |
| P.click(); | |
| } | |
| } | |
| }) | |
| .bind("keypress", M) | |
| .bind("keyup", M) | |
| .bind("mousedown", M) | |
| .bind("mouseup", M) | |
| .bind("click", M); | |
| R.bind("keydown", X.recalWordCount); | |
| R.bind("keyup", X.recalWordCount); | |
| R.bind("paste", function(aP) { | |
| aP = window.event || aP; | |
| if (window.clipboardData) { | |
| var aS = window.clipboardData.getData("Text"); | |
| window.clipboardData.setData("Text", aS); | |
| } else { | |
| if (!g.browser.mozilla) { | |
| if (aP.preventDefault) { | |
| aP.preventDefault(); | |
| } else { | |
| aP.returnValue = false; | |
| } | |
| var aR = R.get(0); | |
| aR.focus(); | |
| var aN = window.getSelection(); | |
| var aM = aN.getRangeAt(0); | |
| var aQ = ""; | |
| aQ = aP.clipboardData.getData("Text"); | |
| var aS = new String(aQ); | |
| aM.deleteContents(); | |
| var aL = aM.createContextualFragment(aS); | |
| var aO = aL.lastChild; | |
| aM.insertNode(aL); | |
| aM.setEndAfter(aO); | |
| aM.collapse(false); | |
| aN.removeAllRanges(); | |
| aN.addRange(aM); | |
| aM.detach(); | |
| aM = null; | |
| } | |
| } | |
| if (g.browser.mozilla) { | |
| setTimeout(function() { | |
| var aT = R.get(0) | |
| .textContent; | |
| R.get(0) | |
| .innerHTML = ""; | |
| R.append(aT); | |
| }, 10); | |
| } | |
| X.recalWordCount(); | |
| }); | |
| P.bind("mousedown", ag) | |
| .bind("click", function() { | |
| var aP = X.getSendMessagePlainText(); | |
| if (aP == "") { | |
| return; | |
| } | |
| if (C.attr("checked")) { | |
| var aT = "rgb(255,204,204)"; | |
| if (aP.length > 180) { | |
| var aO = R.get(0); | |
| var aS = 0; | |
| var aM = 0; | |
| var aN = 0; | |
| var aR = function() { | |
| aO.style.backgroundColor = aT; | |
| aS = setTimeout(aQ, 100); | |
| aL(); | |
| ++aN; | |
| }; | |
| var aQ = function() { | |
| aO.style.backgroundColor = ""; | |
| aM = setTimeout(aR, 100); | |
| aL(); | |
| ++aN; | |
| }; | |
| var aL = function() { | |
| if (aN > 3) { | |
| clearTimeout(aS); | |
| clearTimeout(aM); | |
| aO.style.backgroundColor = ""; | |
| } | |
| }; | |
| aR(); | |
| return; | |
| } | |
| } | |
| aP = htmlDecode(aP); | |
| aP = htmlEncode(aP); | |
| if (!g.browser.msie) { | |
| aP = aP.replace(/\\u000a/gi, "\u000a"); | |
| } | |
| aP = aP.replace(/\\u000d\\u000a/gi, "\u000d\u000a"); | |
| if (C.attr("checked")) { | |
| U = true; | |
| n = false; | |
| } else { | |
| U = false; | |
| } | |
| w.onSendMessage(X, w.buddy.uid, aP, U, n); | |
| R.blur(); | |
| R.focus(); | |
| X.recalWordCount(); | |
| }); | |
| j.bind("mousedown", ag) | |
| .bind("mouseover", function() { | |
| j.addClass("btn_hover"); | |
| }) | |
| .bind("mouseout", function() { | |
| j.removeClass("btn_hover"); | |
| }) | |
| .bind("click", function(aL) { | |
| j.toggleClass("btn_fechove"); | |
| if (H.css("display") == "none") { | |
| H.css("display", ""); | |
| } else { | |
| H.css("display", "none"); | |
| } | |
| stopPropagation(aL); | |
| }); | |
| X.setInput = function(aL) { | |
| R.get(0) | |
| .innerHTML = EmoticonReplace(aL); | |
| if (g.browser.mozilla) { | |
| R.append("<br>"); | |
| } | |
| }; | |
| setTimeout(function() { | |
| H.fillImgs(); | |
| H.bindItemClick(function(aL, aM) { | |
| stopPropagation(aM); | |
| setTimeout(function() { | |
| var aO = g(aL) | |
| .children("img"); | |
| var aQ = EntityReplace(aO.attr("pattern")); | |
| var aP = EmoticonReplace(aQ); | |
| if (i && i.parentElement && i.parentElement() | |
| .id == ao) { | |
| replaceSelection(i, aP); | |
| } else { | |
| if ((al && al.startContainer && al.startContainer.id == ao) || (al && al.startContainer && al.startContainer.parentNode && al.startContainer.parentNode.id == ao)) { | |
| replaceSelection(al, aP); | |
| if (al) { | |
| R.blur(); | |
| R.focus(); | |
| } | |
| } else { | |
| var aN = R.get(0) | |
| .innerHTML; | |
| if (g.browser.mozilla) { | |
| aN = aN.replace(/<br[ ]*[\/]?>$/i, aP + "<br>"); | |
| } else { | |
| aN += aP; | |
| } | |
| R.get(0) | |
| .innerHTML = aN; | |
| } | |
| } | |
| j.toggleClass("btn_fechove"); | |
| }, 50); | |
| }); | |
| }, 1000); | |
| X.fixPosition = function() { | |
| var aL = { | |
| "top": X.css("top"), | |
| "left": X.css("left") | |
| }; | |
| X.css({ | |
| "top": "-1000px", | |
| "left": "-1000px" | |
| }); | |
| window.setTimeout(function() { | |
| X.css({ | |
| "top": aL.top, | |
| "left": aL.left | |
| }); | |
| }, 300); | |
| }; | |
| return X; | |
| } | |
| }); | |
| function b(n) { | |
| var o = n.data; | |
| var m = o.win; | |
| var l = o.mOffsetX; | |
| var j = o.mOffsetY; | |
| var k = o.viewH - m.outerHeight(); | |
| var i = o.viewW - m.outerWidth(); | |
| k = (k < 0 ? 0 : k); | |
| i = (i < 0 ? 0 : i); | |
| var q = window.event || n; | |
| if (q.button < 2) { | |
| var p = parseInt(q.clientY) - parseInt(j); | |
| var r = parseInt(q.clientX) - parseInt(l); | |
| p = (p < 0 ? 0 : p); | |
| r = (r < 0 ? 0 : r); | |
| p = (p > k ? k : p); | |
| r = (r > i ? i : r); | |
| m.css({ | |
| top: p + "px", | |
| left: r + "px" | |
| }); | |
| } | |
| } | |
| function h(i) { | |
| var k = i.data; | |
| var j = k.win; | |
| if (j.get(0) | |
| .releaseCapture) { | |
| j.get(0) | |
| .releaseCapture(); | |
| } else { | |
| if (window.releaseEvents) { | |
| window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| g.removeMaskPage(); | |
| j.unbind("mousemove") | |
| .unbind("mouseup"); | |
| } | |
| function f(n) { | |
| var o = n.data; | |
| var m = o.win; | |
| var j = o.originSize; | |
| var t = o.moveDire; | |
| var s = o.originX; | |
| var q = o.originY; | |
| var p = window.event || n; | |
| if (p.clientX < 0 || p.clientY < 0 || p.clientX > o.viewW || p.clientY > o.viewH) { | |
| return; | |
| } | |
| var k = j.W; | |
| var i = j.H; | |
| var r = false; | |
| var l = false; | |
| switch (t) { | |
| case "right": | |
| k = j.W + (p.clientX - s); | |
| break; | |
| case "left": | |
| k = j.W - (p.clientX - s); | |
| l = true; | |
| break; | |
| case "top": | |
| i = j.H - (p.clientY - q); | |
| r = true; | |
| break; | |
| case "bottom": | |
| i = j.H + (p.clientY - q); | |
| break; | |
| case "right_top": | |
| k = j.W + (p.clientX - s); | |
| i = j.H - (p.clientY - q); | |
| r = true; | |
| break; | |
| case "right_bottom": | |
| k = j.W + (p.clientX - s); | |
| i = j.H + (p.clientY - q); | |
| break; | |
| case "left_top": | |
| k = j.W - (p.clientX - s); | |
| i = j.H - (p.clientY - q); | |
| r = true; | |
| l = true; | |
| break; | |
| case "left_bottom": | |
| k = j.W - (p.clientX - s); | |
| i = j.H + (p.clientY - q); | |
| l = true; | |
| break; | |
| } | |
| if (k >= 468 && l) { | |
| m.css("left", p.clientX); | |
| } | |
| if (i >= 365 && r) { | |
| m.css("top", p.clientY); | |
| } | |
| k = (k < 468 ? 468 : k); | |
| i = (i < 365 ? 365 : i); | |
| m.resize(i, k); | |
| } | |
| function d(i) { | |
| var k = i.data; | |
| var j = k.win; | |
| if (j.get(0) | |
| .releaseCapture) { | |
| j.get(0) | |
| .releaseCapture(); | |
| } else { | |
| if (window.releaseEvents) { | |
| window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| g.removeMaskPage(); | |
| j.unbind("mousemove") | |
| .unbind("mouseup"); | |
| } | |
| })(jQuery); | |
| (function(a) { | |
| a.extend(a.fn, { | |
| jContactTree: function(c) { | |
| var g = a.extend({ | |
| target: a(document.body), | |
| enable: true, | |
| isSinglePattern: true, | |
| user: {}, | |
| onBuddyListExpand: function() {}, | |
| onBuddyItemDbClick: function() {}, | |
| onBuddyItemClick: function() {}, | |
| onBuddyItemMouseOver: function() {}, | |
| onBuddyItemMouseOut: function() {}, | |
| onBuddyItemRightClick: function() {} | |
| }, c); | |
| g.target = ((typeof g.target == "string") ? a("#" + g.target) : g.target); | |
| var f = a("<div id='friends_list'><dl /></div>") | |
| .addClass("friends_list"); | |
| if (g.isSinglePattern) { | |
| f.addClass("friends_list_1"); | |
| } | |
| g.target.append(f); | |
| f.adjustHeight = function(i) { | |
| if (typeof i == "undefined") { | |
| i = g.target.innerHeight() - a("#search_friends") | |
| .outerHeight(true) - a("#add_friend") | |
| .outerHeight(true) - 46; | |
| } | |
| f.height(i); | |
| }; | |
| f.adjustHeight(); | |
| f.setPattern = function(h) { | |
| g.isSinglePattern = h; | |
| }; | |
| f.createBuddyList = function(n, j) { | |
| var h = new Object(); | |
| var o = ""; | |
| var l = ""; | |
| var i = htmlEncode(n.n); | |
| if (j) { | |
| o = "<dt id='" + "buddyList_" + n.id + "' title='" + i + "' class='open'><b>" + i + "</b><em>(0/0)</em></dt>"; | |
| l = "<dd>"; | |
| } else { | |
| o = "<dt id='" + "buddyList_" + n.id + "' title='" + i + "'><b>" + i + "</b><em>(0/0)</em></dt>"; | |
| l = "<dd style='display:none'>"; | |
| } | |
| if (g.isSinglePattern) { | |
| l += "<ul class='friends_list_small'>"; | |
| } else { | |
| l += "<ul>"; | |
| } | |
| var m = "</ul></dd>"; | |
| var k = new Array(); | |
| h.pushContent = function(p) { | |
| k.push(p); | |
| }; | |
| h.toHtmlString = function() { | |
| k.sort(function(u, t) { | |
| return buddyComparator(u.buddyObj, t.buddyObj); | |
| }); | |
| var s = ""; | |
| s += l; | |
| var p = 0; | |
| var r = k.length; | |
| for (var q = 0; q < r; q++) { | |
| s += k[q].strContent; | |
| if (k[q].buddyObj.currIsOc) { | |
| p++; | |
| } | |
| } | |
| s += m; | |
| o = o.replace("<em>(0/0)</em>", "<em>(" + p + "/" + r + ")</em>"); | |
| s = o + s; | |
| return s; | |
| }; | |
| return h; | |
| }; | |
| f.createBuddyItem = function(n) { | |
| var i = new Object(); | |
| var o = "buddyitem_" + n.uid; | |
| var m = n.statusClass; | |
| var h = EmotionNonhtmlReplace(n.displayName, - 1, true); | |
| var k = cnSubstr((!n.i || n.ct == 1) ? "" : EmotionNonhtmlReplace(n.i, - 1, true), 22 - h.length, true); | |
| var j = ""; | |
| if (n.isVip) { | |
| j = " style='color:red;'"; | |
| } | |
| i.buddyObj = n; | |
| var l = ""; | |
| var p = portrait.fetion_16; | |
| if (g.isSinglePattern) { | |
| l = getContactPresDesc(n); | |
| i.strContent = "<li id='" + o + "' on='' user='" + n.uid + "'>" + "<div class=friends_info><h5><strong class=BuddyList_Container><img src='" + p + "'><em class='" + m + "'></em></strong>" + "<label " + j + ">" + h + "</label> <span>" + k + "</span><em> " + l + "</em></h5></div>" + "<div class=friend_control></div></li>"; | |
| } else { | |
| var l = n.pd ? cnSubstr(n.pd.trim(), 6) : getStatusDesc(n); | |
| l = htmlEncode(l); | |
| i.strContent = "<li id='" + o + "' user='" + n.uid + "'>" + "<div class=friends_photo_box><img class=friends_photo alt='' src='" + p + "' complete='complete' /></div>" + "<div class=friends_info><h5><i class='" + m + "'></i><label " + j + ">" + h + "</label> <em> " + l + "</em></h5><p>" + k + "</p></div>" + "<div class=friend_control></div></li>"; | |
| } | |
| return i; | |
| }; | |
| f.firstTop = 0; | |
| f.h = 0; | |
| f.portraitFlag = false; | |
| f.bind("mousedown", function() { | |
| var h = parseInt(f.css("height")); | |
| if (f.firstTop == 0) { | |
| f.firstTop = f.find("dt:first") | |
| .offset() | |
| .top; | |
| } | |
| f.h = h + f.firstTop; | |
| }) | |
| .bind("scroll", function() { | |
| var k, j; | |
| j = f.find("dt[class='open']"); | |
| if (j.size() <= 0) { | |
| return; | |
| } | |
| k = j.next(); | |
| var i = k.find("ul > li[on!='1']"); | |
| if (i.size() > 0 && i.first() | |
| .offset() | |
| .top <= f.h) { | |
| var h; | |
| i.each(function(l, m) { | |
| a(m) | |
| .attr("on", "1"); | |
| var o = a(m) | |
| .attr("id") | |
| .substring(10); | |
| if (__contactMap.containsKey(o)) { | |
| h = __contactMap.get(o); | |
| var n = buddyPor(h, h.statusClass, 1); | |
| a(m) | |
| .find(".BuddyList_Container > img") | |
| .attr("src", n); | |
| } | |
| if (l >= 29) { | |
| if (!a(m) | |
| .next() | |
| .attr("id") || a(m) | |
| .next() | |
| .offset() | |
| .top > f.h) { | |
| return false; | |
| } | |
| } | |
| }); | |
| } | |
| }); | |
| f.bindEventToList = function() { | |
| f.find("dt") | |
| .bind("click", function() { | |
| var k = { | |
| expanded: false | |
| }; | |
| var i = a(this); | |
| var j = i.next(); | |
| if (j.css("display") == "none") { | |
| k.expanded = true; | |
| i.addClass("open"); | |
| j.css("display", ""); | |
| if (__contactMap.size() > 10 && j.find("ul > li[on='1']") | |
| .size() <= 0) { | |
| var h; | |
| j.find("ul > li") | |
| .each(function(l, m) { | |
| a(m) | |
| .attr("on", "1"); | |
| var o = a(m) | |
| .attr("id") | |
| .substring(10); | |
| if (__contactMap.containsKey(o)) { | |
| h = __contactMap.get(o); | |
| var n = buddyPor(h, h.statusClass, 1); | |
| a(m) | |
| .find(".BuddyList_Container > img") | |
| .attr("src", n); | |
| } | |
| if (l >= 29) { | |
| if (!a(m) | |
| .next() | |
| .attr("id") || a(m) | |
| .next() | |
| .offset() | |
| .top > f.h) { | |
| return false; | |
| } | |
| } | |
| }); | |
| } | |
| } else { | |
| k.expanded = false; | |
| i.removeAttr("class"); | |
| j.css("display", "none"); | |
| } | |
| return false; | |
| }); | |
| }; | |
| f.bindEventToItem = function() { | |
| var h = f.find("li"); | |
| h.bind("mouseover", function(i) { | |
| if (isMouseOver(this, i)) { | |
| this.className = "hover"; | |
| g.onBuddyItemMouseOver(this, a(this) | |
| .attr("user")); | |
| } | |
| }) | |
| .bind("mouseout", function(i) { | |
| if (isMouseOut(this, i)) { | |
| this.className = ""; | |
| g.onBuddyItemMouseOut(this, a(this) | |
| .attr("user")); | |
| } | |
| }) | |
| .bind("dblclick", function() { | |
| g.onBuddyItemDbClick(this, a(this) | |
| .attr("user")); | |
| }) | |
| .bind("click", function() { | |
| g.onBuddyItemClick(this, a(this) | |
| .attr("user")); | |
| }); | |
| h.each(function(l) { | |
| var m = a(this); | |
| var k = a(this) | |
| .attr("user"); | |
| var j; | |
| if (g.isSinglePattern) { | |
| j = m.children() | |
| .eq(1); | |
| } else { | |
| j = m.children() | |
| .eq(2); | |
| } | |
| j.bind("click", function() { | |
| g.onBuddyItemRightClick(this, k); | |
| this.className = "friend_control friend_control_down"; | |
| }); | |
| }); | |
| }; | |
| f.fixSpecialList = function(k) { | |
| for (var j = 0, l = k.length; j < l; j++) { | |
| var h = __contactTree.getBuddyList(k[j]); | |
| var m = h.eq(1) | |
| .find("ul > li:first"); | |
| if (m.length <= 0) { | |
| h.eq(0) | |
| .css("display", "none"); | |
| } else { | |
| h.eq(0) | |
| .css("display", ""); | |
| } | |
| } | |
| }; | |
| f.setInnerHtml = function(h) { | |
| f.children() | |
| .get(0) | |
| .innerHTML = h; | |
| f.bindEventToList(); | |
| f.bindEventToItem(); | |
| f.fixSpecialList(["0", "-1"]); | |
| }; | |
| f.insertBuddyList = function(m, l) { | |
| var p = f; | |
| var n = a("<dt><b /><em /></dt><dd><ul /></dd>"); | |
| var k = n.eq(0) | |
| .attr("id", "buddyList_" + m.id) | |
| .attr("title", m.n); | |
| var h = k.find("b") | |
| .text(m.n); | |
| var j = k.find("em") | |
| .text("(0/0)"); | |
| var i = n.eq(1) | |
| .css("display", "none"); | |
| k.bind("click", function() { | |
| var q = { | |
| expanded: false | |
| }; | |
| if (i.css("display") == "none") { | |
| q.expanded = true; | |
| k.addClass("open"); | |
| i.css("display", ""); | |
| } else { | |
| q.expanded = false; | |
| k.removeClass("open"); | |
| i.css("display", "none"); | |
| } | |
| return false; | |
| }); | |
| var o = p.find("dt"); | |
| if (o.length <= 0) { | |
| p.children() | |
| .eq(0) | |
| .append(n); | |
| } else { | |
| if (typeof l == "number" && l >= 0 && l < o.length) { | |
| o.eq(l) | |
| .before(n); | |
| } else { | |
| p.children() | |
| .eq(0) | |
| .append(n); | |
| } | |
| } | |
| return n; | |
| }; | |
| function e(i) { | |
| var h = i.attr("user"); | |
| return __contactMap.get(h); | |
| } | |
| function d(n, m) { | |
| var j = n.size(); | |
| if (j <= 0) { | |
| return -1; | |
| } else { | |
| var r = e(n.eq(0)); | |
| if (buddyComparator(m, r) <= 0) { | |
| return 0; | |
| } | |
| var l = e(n.eq(j - 1)); | |
| if (buddyComparator(m, l) > 0) { | |
| return j; | |
| } | |
| var i = 0; | |
| var k = j - 1; | |
| var p = 0; | |
| while (k - i > 1) { | |
| var p = Math.floor((i + k) / 2); | |
| var q = e(n.eq(p)); | |
| var h = buddyComparator(m, q); | |
| if (h <= 0) { | |
| k = p; | |
| } else { | |
| if (h > 0) { | |
| i = p; | |
| } | |
| } | |
| } | |
| var o = e(n.eq(i)); | |
| if (buddyComparator(m, o) == 0) { | |
| return i; | |
| } else { | |
| return k; | |
| } | |
| } | |
| } | |
| f.getBuddyList = function(j) { | |
| var h = f; | |
| var i = null; | |
| if (typeof j != "undefined" && j != null) { | |
| var k = h.find("#buddyList_" + j) | |
| .next(); | |
| i = k.prev() | |
| .andSelf(); | |
| } | |
| return i; | |
| }; | |
| f.isBuddyListOpen = function(h) { | |
| var i = f.getBuddyList(h); | |
| if (i == null || i.size() == 0) { | |
| return false; | |
| } else { | |
| return "none" != i.eq(1) | |
| .css("display"); | |
| } | |
| }; | |
| f.insertBuddyItem = function(u, i) { | |
| var x = f.getBuddyList(i); | |
| if (x.size() == 0) { | |
| return; | |
| } | |
| var q = "buddyitem_" + u.uid; | |
| var s, m; | |
| if (g.isSinglePattern) { | |
| s = a("<li><div /><div /></li>") | |
| .attr("id", q); | |
| var v = s.children(); | |
| var o = buddyPor(u, u.statusClass, 1); | |
| var z = a('<strong class="BuddyList_Container"><img src="' + o + '"><em class="' + u.statusClass + '"></em></strong>'); | |
| var w = a("<label />"); | |
| var p = a("<span />"); | |
| var l = a("<em />"); | |
| w.text(u.displayName); | |
| l.text(" " + getContactPresDesc(u)); | |
| var r = a("<h5 />") | |
| .append(z) | |
| .append(w) | |
| .append(" ") | |
| .append(p) | |
| .append(l); | |
| v.eq(0) | |
| .addClass("friends_info") | |
| .append(r); | |
| m = v.eq(1); | |
| } else { | |
| s = a("<li><div /><div /><div /></li>") | |
| .attr("id", q); | |
| var j = a("<img complete='complete' alt=''/>") | |
| .addClass("friends_photo"); | |
| j.attr("src", getUserPortraitUrl(u, "3")); | |
| var v = s.children(); | |
| v.eq(0) | |
| .addClass("friends_photo_box") | |
| .append(j); | |
| var z = a("<i />") | |
| .addClass(u.statusClass); | |
| var h = a("<em />"); | |
| var w = a("<label />"); | |
| var y = u.pd ? cnSubstr(u.pd.trim(), 6) : getStatusDesc(u); | |
| h.text(" " + y); | |
| w.text(u.displayName); | |
| var r = a("<h5 />") | |
| .append(z) | |
| .append(w) | |
| .append(h); | |
| var p = a("<p />"); | |
| v.eq(1) | |
| .addClass("friends_info") | |
| .append(r) | |
| .append(p); | |
| m = v.eq(2); | |
| } | |
| m.addClass("friend_control"); | |
| m.bind("click", function() { | |
| g.onBuddyItemRightClick(s, u.uid.toString()); | |
| this.className = "friend_control friend_control_down"; | |
| }); | |
| s.bind("mouseover", function() { | |
| this.className = "hover"; | |
| g.onBuddyItemMouseOver(this, u.uid.toString()); | |
| }) | |
| .bind("mouseout", function() { | |
| this.className = ""; | |
| g.onBuddyItemMouseOut(this, u.uid.toString()); | |
| }) | |
| .bind("dblclick", function() { | |
| g.onBuddyItemDbClick(this, u.uid.toString()); | |
| }) | |
| .bind("click", function() { | |
| g.onBuddyItemClick(this, u.uid.toString()); | |
| }); | |
| var t = x.eq(1) | |
| .find("ul > li[id!='" + q + "']"); | |
| var k = t.size(); | |
| var n = d(t, u); | |
| if (n < 0 || n >= k) { | |
| x.eq(1) | |
| .find("ul") | |
| .append(s); | |
| } else { | |
| t.eq(n) | |
| .before(s); | |
| } | |
| if (u.currIsOc) { | |
| f.updateBuddyStat(i, 1, 1); | |
| } else { | |
| f.updateBuddyStat(i, 0, 1); | |
| } | |
| if (i == "0" || i == "-1") { | |
| f.fixSpecialList([i]); | |
| } | |
| }; | |
| var b = /^\(([\d]+)\/([\d]+)\)$/ig; | |
| f.updateBuddyStat = function(j, i, h) { | |
| var l = f.getBuddyList(j); | |
| if (l.size() == 0) { | |
| return; | |
| } | |
| var m = l.eq(0) | |
| .children("em:first"); | |
| var k = m.text() | |
| .trim(); | |
| k = k.replace(b, function(o, n, p) { | |
| return "(" + (parseInt(n) + i) + "/" + (parseInt(p) + h) + ")"; | |
| }); | |
| m.text(k); | |
| }; | |
| f.deleteBuddyItem = function(i, j) { | |
| var l = f.getBuddyList(i); | |
| if (l.size() == 0) { | |
| return null; | |
| } | |
| var k = l.eq(1) | |
| .find("#buddyitem_" + j); | |
| if (k.size() == 0) { | |
| return null; | |
| } | |
| k.remove(); | |
| var h = __contactMap.get(j); | |
| if (h && h.currIsOc) { | |
| f.updateBuddyStat(i, - 1, - 1); | |
| } else { | |
| f.updateBuddyStat(i, 0, - 1); | |
| } | |
| if (i == "0" || i == "-1") { | |
| f.fixSpecialList([i]); | |
| } | |
| return k; | |
| }; | |
| f.getBuddyItem = function(h, i) { | |
| var j = f.getBuddyList(h); | |
| return j.eq(1) | |
| .find("#buddyitem_" + i); | |
| }; | |
| f.updateBuddyItem = function(h, v) { | |
| var x = f.getBuddyList(h); | |
| var y = f.getBuddyItem(h, v.uid); | |
| var r = "buddyitem_" + v.uid; | |
| if (y.size() == 0) { | |
| return; | |
| } | |
| var s, p, i; | |
| if (g.isSinglePattern) { | |
| s = y.find("div:nth-child(1) > h5 > span:first"); | |
| p = y.find("div:nth-child(1) > h5 > strong> em:first"); | |
| i = y.find("div:nth-child(1) > h5 > label:first"); | |
| var o = y.find("div:nth-child(1) > h5 > strong> img:first"); | |
| var j = v.statusClass; | |
| var m = buddyPor(v, j, 1); | |
| o.attr("src", m); | |
| var l = y.find("div:nth-child(1) > h5 > em:first"); | |
| l.text(" " + getContactPresDesc(v)); | |
| } else { | |
| s = y.find("div:nth-child(2) > p:first"); | |
| p = y.find("div:nth-child(2) > h5 > i:first"); | |
| i = y.find("div:nth-child(2) > h5 > label:first"); | |
| var o = y.find("div:first-child > img:first"); | |
| var l = y.find("div:nth-child(2) > h5 > em:first"); | |
| o.attr("src", getUserPortraitUrl(v, "3")); | |
| var z = v.pd ? cnSubstr(v.pd.trim(), 6) : getStatusDesc(v); | |
| l.text(" " + z); | |
| } | |
| p.removeClass() | |
| .addClass(v.statusClass); | |
| i.get(0) | |
| .innerHTML = EmotionNonhtmlReplace(v.displayName, - 1, true); | |
| var w = i.text() | |
| .length; | |
| s.get(0) | |
| .innerHTML = cnSubstr(!v.i || v.ct == 1 ? "" : EmotionNonhtmlReplace(v.i, - 1, true), 22 - w, true); | |
| if (v.isVip) { | |
| i.css("color", "red"); | |
| } | |
| var t = x.eq(1) | |
| .find("ul > li[id!='" + r + "']"); | |
| var k = t.size(); | |
| var n = d(t, v); | |
| if (n < 0 || n >= k) { | |
| x.eq(1) | |
| .find("ul") | |
| .append(y); | |
| } else { | |
| t.eq(n) | |
| .before(y); | |
| } | |
| var u = v.lastIsOc; | |
| var q = v.currIsOc; | |
| if (u != q) { | |
| if (u && !q) { | |
| f.updateBuddyStat(h, - 1, 0); | |
| } else { | |
| f.updateBuddyStat(h, 1, 0); | |
| } | |
| } | |
| }; | |
| return f; | |
| } | |
| }); | |
| })(jQuery); | |
| (function(b) { | |
| var a = 0; | |
| b.extend(b.fn, { | |
| jTabWindow: function(d) { | |
| var g = b.extend({ | |
| target: "", | |
| id: "" | |
| }, d); | |
| g.target = ((typeof g.target == "string") ? b("#" + g.target) : g.target); | |
| var c = b("<div />") | |
| .attr("id", g.id) | |
| .addClass("main_cont"); | |
| var f = b("<div />") | |
| .addClass("top_tab"); | |
| var e = b("<div />") | |
| .addClass("content"); | |
| c.append(f) | |
| .append(e); | |
| g.target.append(c); | |
| c.adjustContentHeight = function(j) { | |
| if (typeof j == "undefined") { | |
| j = g.target.height() - f.height(); | |
| } | |
| var l = e.find("iframe"); | |
| l.each(function(h) { | |
| b(this) | |
| .height(0); | |
| }); | |
| e.height(j); | |
| var m = j; | |
| if ((!b.browser.msie) && getViewportWidth() < 1000) { | |
| var k = getScrollBarWidth(); | |
| var i = k.horizontal; | |
| m = j - i; | |
| } | |
| l.each(function(h) { | |
| b(this) | |
| .height(m); | |
| }); | |
| }; | |
| c.adjustContentHeight(); | |
| f.append("<p>网页版飞信无法保存您的聊天记录,更多功能请下载<a id='topTabDownload' href=\"" + __downloadUrl + '" title="" target="_blank">飞信客户端</a></p>'); | |
| f.append("<ul />"); | |
| c.createTab = function(q, h, j) { | |
| var n = a++, | |
| r; | |
| switch (q.length) { | |
| case 3: | |
| r = 60; | |
| break; | |
| case 4: | |
| r = 72; | |
| break; | |
| case 5: | |
| r = 84; | |
| break; | |
| default: | |
| break; | |
| } | |
| var i = b("<li style='width:" + r + "px;' w='" + r + "px' title='" + q + "' />") | |
| .attr("id", "tab_" + n), | |
| o = f.find("ul"), | |
| l = o.width(); | |
| i.append("<span></span>" + q); | |
| o.append(i); | |
| var m = o.find("li") | |
| .length; | |
| if ((l + r + 28) >= 490) { | |
| o.find("li") | |
| .css({ | |
| "width": (490 / m - 28) + "px" | |
| }); | |
| } | |
| var k = b("<div />") | |
| .attr("id", "content_" + n); | |
| if (h.indexOf("?") < 0) { | |
| h += "?tabIndex=" + n; | |
| } else { | |
| h += "&tabIndex=" + n; | |
| } | |
| k.append(b("<iframe frameborder=0 />") | |
| .attr("src", h) | |
| .css({ | |
| "height": "100%", | |
| "width": "100%", | |
| "scrolling": "auto" | |
| })); | |
| e.append(k); | |
| i.bind("click", function() { | |
| f.find("li") | |
| .each(function() { | |
| var s = b(this); | |
| if (s.attr("id") == "tab_" + n) { | |
| s.removeClass() | |
| .addClass("on"); | |
| } else { | |
| s.removeClass(); | |
| } | |
| }); | |
| e.children("div") | |
| .each(function() { | |
| var s = b(this); | |
| if (s.attr("id") == "content_" + n) { | |
| s.css("display", "block"); | |
| } else { | |
| s.css("display", "none"); | |
| } | |
| }); | |
| return false; | |
| }); | |
| if (j) { | |
| var p = b("<em />"); | |
| i.append(p); | |
| p.bind("click", function() { | |
| i.remove(); | |
| i = null; | |
| o.find("li") | |
| .css({ | |
| "width": "" | |
| }); | |
| var t = o.find("li") | |
| .length; | |
| if (t < 5) { | |
| o.find("li") | |
| .each(function(w, u) { | |
| b(u) | |
| .css({ | |
| "width": b(u) | |
| .attr("w") | |
| }); | |
| }); | |
| } else { | |
| o.find("li") | |
| .css({ | |
| "width": (490 / t - 28) + "px" | |
| }); | |
| } | |
| k.remove(); | |
| k = null; | |
| var s = f.find("li"); | |
| if (s.length > 0) { | |
| s.eq(0) | |
| .click(); | |
| } | |
| return false; | |
| }); | |
| } | |
| c.adjustContentHeight(); | |
| i.click(); | |
| }; | |
| c.removeTab = function(k) { | |
| c.find("#tab_" + k) | |
| .remove(); | |
| c.find("#content_" + k) | |
| .remove(); | |
| var j = f.find("ul"); | |
| j.find("li") | |
| .css({ | |
| "width": "" | |
| }); | |
| var l = j.find("li") | |
| .length; | |
| if (l < 5) { | |
| j.find("li") | |
| .each(function(m, i) { | |
| b(i) | |
| .css({ | |
| "width": b(i) | |
| .attr("w") | |
| }); | |
| }); | |
| } else { | |
| j.find("li") | |
| .css({ | |
| "width": (490 / l - 28) + "px" | |
| }); | |
| } | |
| var h = f.find("li"); | |
| if (h.length > 0) { | |
| h.eq(0) | |
| .click(); | |
| } | |
| }; | |
| c.getTabByUrl = function(i) { | |
| var h = null; | |
| e.find("iframe") | |
| .each(function(k) { | |
| var j = this.src.substr(0, this.src.lastIndexOf("&")); | |
| if (this.src.indexOf("&") < 0) { | |
| j = this.src.substr(0, this.src.lastIndexOf("?")); | |
| } | |
| if (j.endsWith(i)) { | |
| h = new Object(); | |
| h.topTab = f.children("ul") | |
| .eq(0) | |
| .children() | |
| .eq(k); | |
| h.content = e.children() | |
| .eq(k); | |
| return h; | |
| } | |
| }); | |
| return h; | |
| }; | |
| return c; | |
| } | |
| }); | |
| })(jQuery); | |
| (function(c) { | |
| var d = c("<div style='position:absolute;top:0;left:0;z-index:-1' /> "); | |
| d.append('<iframe style="FILTER:Alpha(opacity=3);width:100%;height:100%" onclick="alert()" />'); | |
| c.extend(c.fn, { | |
| fetionHintWindow: function(i) { | |
| var e = c.extend({ | |
| modal: true | |
| }, i); | |
| var g = c("<div />") | |
| .addClass("hint") | |
| .css({ | |
| "display": "none", | |
| "z-index": "-1" | |
| }); | |
| g.appendTo(document.body); | |
| var m = c("<h3><span /><i /><b /></h3>"); | |
| var k = c("<div />") | |
| .addClass("hint_cont"); | |
| var f = c("<div />") | |
| .addClass("hint_cont_left"); | |
| var h = c("<p />"); | |
| var n = c("<div />") | |
| .addClass("hint_btn"); | |
| var j = c("<button type=button />") | |
| .text("确定"); | |
| var l = c("<button type=button />") | |
| .addClass("btn_cancel") | |
| .text("取消"); | |
| n.append(j) | |
| .append(l); | |
| k.append(f) | |
| .append(h) | |
| .append(n); | |
| g.append(m) | |
| .append(k); | |
| g.show = function(v, w, t, o, u, x) { | |
| m.children() | |
| .eq(2) | |
| .text(w); | |
| h.get(0) | |
| .innerHTML = v; | |
| var r = m.children() | |
| .eq(0); | |
| if (typeof t == "string" && t == "OK") { | |
| l.css("display", "none"); | |
| j.css("display", ""); | |
| if (x) { | |
| f.append(c("<img class='user_head_52' alt='' complete='complete'/>") | |
| .attr("src", x)); | |
| } else { | |
| f.addClass("hcl_bg_confirm"); | |
| } | |
| j.bind("click", function() { | |
| if (typeof o == "function") { | |
| o(); | |
| } | |
| g.close(); | |
| }); | |
| r.bind("click", function(p) { | |
| stopPropagation(p); | |
| if (typeof o == "function") { | |
| o(); | |
| } | |
| g.close(); | |
| }); | |
| } else { | |
| if (typeof t == "string" && t == "OKCancel") { | |
| l.css("display", ""); | |
| j.css("display", ""); | |
| if (x) { | |
| f.append(c("<img class='user_head_52' alt='' complete='complete'/>") | |
| .attr("src", x)); | |
| } else { | |
| f.addClass("hcl_bg_tips"); | |
| } | |
| j.bind("click", function() { | |
| if (typeof o == "function") { | |
| o(); | |
| } | |
| g.close(); | |
| }); | |
| l.bind("click", function() { | |
| if (typeof u == "function") { | |
| u(); | |
| } | |
| g.close(); | |
| }); | |
| r.bind("click", function(p) { | |
| stopPropagation(p); | |
| if (typeof o == "function") { | |
| u(); | |
| } | |
| g.close(); | |
| }); | |
| } | |
| } | |
| var s = getViewportCenter(); | |
| var q = { | |
| "top": s.y - g.height() / 2, | |
| "left": s.x - g.width() / 2 | |
| }; | |
| if (q.top < 50) { | |
| q.top = 50; | |
| } | |
| if (q.left < 50) { | |
| q.left = 50; | |
| } | |
| g.css({ | |
| "top": q.top + "px", | |
| "left": q.left + "px" | |
| }); | |
| g.css({ | |
| "display": "", | |
| "z-index": "1000000" | |
| }); | |
| if (e.modal) { | |
| c.appendMaskPage(); | |
| } | |
| }; | |
| g.close = function() { | |
| g.css("display", "none"); | |
| g.css("z-index", - 1); | |
| if (e.modal) { | |
| c.removeMaskPage(); | |
| } | |
| g.remove(); | |
| }; | |
| m.bind("mousedown", function(o) { | |
| o = window.event || o; | |
| if (g.get(0) | |
| .setCapture) { | |
| g.get(0) | |
| .setCapture(); | |
| } else { | |
| if (window.captureEvents) { | |
| window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| var q = g.offset(); | |
| var r = { | |
| win: g, | |
| mOffsetX: o.clientX - q.left, | |
| mOffsetY: o.clientY - q.top, | |
| maskPage: !e.modal | |
| }; | |
| if (!e.modal) { | |
| c.appendMaskPage(99); | |
| } | |
| g.bind("mousemove", r, b) | |
| .bind("mouseup", r, a); | |
| }); | |
| return g; | |
| } | |
| }); | |
| c.extend({ | |
| initMaskPage: function() { | |
| d.css({ | |
| "width": (getViewportWidth() - 4) + "px", | |
| "height": getViewportHeight() + "px" | |
| }); | |
| d.appendTo(document.body); | |
| }, | |
| appendMaskPage: function(e) { | |
| if (typeof e != "number") { | |
| e = 99999; | |
| } | |
| d.css("z-index", "" + e); | |
| }, | |
| removeMaskPage: function() { | |
| d.css("z-index", "-1"); | |
| } | |
| }); | |
| function b(k) { | |
| var l = k.data; | |
| var g = l.win; | |
| var f = l.mOffsetX; | |
| var m = l.mOffsetY; | |
| var j = window.event || k; | |
| if (j.button == 1) { | |
| var h = parseInt(j.clientY) - parseInt(m); | |
| var i = parseInt(j.clientX) - parseInt(f); | |
| h = (h < -10 ? 0 : h); | |
| i = (i < -10 ? 0 : i); | |
| g.css({ | |
| "top": h + "px", | |
| "left": i + "px" | |
| }); | |
| } | |
| } | |
| function a(g) { | |
| var h = g.data; | |
| var f = h.win; | |
| if (f.get(0) | |
| .releaseCapture) { | |
| f.get(0) | |
| .releaseCapture(); | |
| } else { | |
| if (window.releaseEvents) { | |
| window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| if (h.maskPage) { | |
| c.removeMaskPage(); | |
| } | |
| f.unbind("mousemove") | |
| .unbind("mouseup"); | |
| } | |
| })(jQuery); | |
| (function(b) { | |
| b.extend(b.fn, { | |
| friendInviteWindow: function(t) { | |
| var n = b.extend({ | |
| initPostion: { | |
| top: 100, | |
| left: 200 | |
| }, | |
| buddy: {}, | |
| inviteType: 0, | |
| onConfirm: function() {}, | |
| onCancel: function() {} | |
| }, t); | |
| var f = b("<div id='" + "invited_" + n.buddy.uid + "'></div>") | |
| .addClass("hint friend_invite") | |
| .css({ | |
| "width": "408px", | |
| "top": n.initPostion.top + "px", | |
| "left": n.initPostion.left + "px" | |
| }); | |
| f.appendTo(document.body); | |
| var w = b("<h3><span /><i /><b>提示</b></h3>"); | |
| f.append(w); | |
| var o = b("<div />") | |
| .addClass("hint_cont"); | |
| f.append(o); | |
| var p = b("<div class='invite_top'><div class='invite_top_inside'></div></div>"); | |
| var d = b("<img alt='' />") | |
| .attr("src", portrait.defaultIcon); | |
| var g = b("<p />"); | |
| p.children() | |
| .eq(0) | |
| .append(d) | |
| .append(g); | |
| o.append(p); | |
| var j = ' style="display:none"'; | |
| if (1 == n.inviteType) { | |
| j = ""; | |
| } | |
| var m = "agreeradio" + n.buddy.uid, | |
| h = "agree" + n.buddy.uid, | |
| e = "disagree" + n.buddy.uid, | |
| r = "refuse_select" + n.buddy.uid; | |
| var i = b('<div class="invite_main"><h4>回应</h4><p' + j + '>提示:对方是通过您的手机号码添加您,同意后将会公开您的手机号和姓名。</p><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="142"><input id="' + h + '" value="1" checked type="radio" name="' + m + '"><label for="' + h + '"> 同意,设置显示名称</label></td><td><input id="LocalName" maxlength="64" class="text_150" name="">(可选)</td></tr><tr><td align="right">添加到该分组 </td><td><select id="test09" class="group" name=""></select><font size="+0">网页版飞信无法新增好友分组</font></td></tr><tr><td colspan="2"><input id="' + e + '" value="0" type="radio" name="' + m + '"><label for="' + e + '"> 不同意</label><div class="refuse"><input id="' + r + '" value="" type="checkbox" name="" disabled="disabled"><label for="' + r + '">拒绝此人再和我联系</label></div></td><td> </td></tr></tbody></table></div>'); | |
| o.append(i); | |
| var v = o.find("#" + e); | |
| var u = o.find("#" + r); | |
| o.find("input[name='" + m + "']") | |
| .bind("click", function() { | |
| if (v.attr("checked")) { | |
| u.removeAttr("disabled"); | |
| } else { | |
| u.attr("disabled", "disabled") | |
| .removeAttr("checked"); | |
| } | |
| }); | |
| var q = b("<button>确定</button>") | |
| .bind("click", function() { | |
| var x = new Object(); | |
| x.data = { | |
| "Buddy": n.buddy, | |
| "Result": o.find("input[name='" + m + "']:checked") | |
| .val(), | |
| "LocalName": o.find("#LocalName") | |
| .val(), | |
| "BuddyList": o.find(".group") | |
| .val(), | |
| "Blocked": o.find("#" + r) | |
| .attr("checked") ? 1 : 0 | |
| }; | |
| f.remove(); | |
| n.onConfirm(x); | |
| return false; | |
| }); | |
| var l = b("<button>取消</button>") | |
| .addClass("btn_cancel") | |
| .bind("click", function() { | |
| f.remove(); | |
| n.onCancel(); | |
| return false; | |
| }); | |
| var s = b("<div />") | |
| .addClass("hint_btn") | |
| .append(q) | |
| .append(l); | |
| o.append(s); | |
| w.bind("mousedown", function(z) { | |
| z = window.event || z; | |
| if (f.get(0) | |
| .setCapture) { | |
| f.get(0) | |
| .setCapture(); | |
| } else { | |
| if (window.captureEvents) { | |
| window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| var A = f.offset(); | |
| var x = getViewportHeight(); | |
| var y = getViewportWidth(); | |
| var B = { | |
| win: f, | |
| mOffsetX: z.clientX - A.left, | |
| mOffsetY: z.clientY - A.top, | |
| viewH: x, | |
| viewW: y | |
| }; | |
| f.bind("mousemove", B, a) | |
| .bind("mouseup", B, c); | |
| }); | |
| w.children("span:first") | |
| .bind("click", function(x) { | |
| f.css("display", "none"); | |
| f.css("z-index", - 1); | |
| stopPropagation(x); | |
| }); | |
| var k = o.find(".group"); | |
| f.insertBuddyList = function(z, y) { | |
| var x = b("<option value='" + z + "'></option>"); | |
| x.text(y); | |
| k.append(x); | |
| }; | |
| f.insertDesc = function(x) { | |
| g.text(x); | |
| }; | |
| return f; | |
| }, | |
| setSmsWindow: function(g) { | |
| var d = b.extend({ | |
| onConfirm: function() {}, | |
| onCancel: function() {} | |
| }, g); | |
| var h = b("<div />") | |
| .addClass("hint set_message") | |
| .css({ | |
| "top": "-1000px", | |
| "left": "-1000px" | |
| }); | |
| h.appendTo(document.body); | |
| var l = b("<h3><span /><i /><b>设置</b></h3>"); | |
| h.append(l); | |
| var j = b("<div />") | |
| .addClass("hint_cont"); | |
| h.append(j); | |
| var e = b("<p />"); | |
| e.append("您在这里可以设置不接收短信/彩信,并且能够定制一个时间期限。在这期间,您不会收到来自飞信的短信,但不影响您登录飞信的客户端接收消息<br><span>您希望这段时间是:</span><br>"); | |
| e.append('<input value="1" type="radio" name="sms_time" checked="checked"> <label for="time_1">24小时</label><br>'); | |
| e.append('<input value="2" type="radio" name="sms_time"> <label for="time_2">3天</label><br>'); | |
| e.append('<input value="3" type="radio" name="sms_time"> <label for="time_3">1周</label><br>'); | |
| e.append('<input value="4" type="radio" name="sms_time"> <label for="time_4">永远</label>'); | |
| j.append(e); | |
| var f = b("<button>确定</button>") | |
| .bind("click", function() { | |
| h.css({ | |
| "display": "none", | |
| "z-index": "-1" | |
| }); | |
| d.onConfirm(h, e.find("input[checked]") | |
| .val()); | |
| return false; | |
| }); | |
| var i = b("<button>取消</button>") | |
| .addClass("btn_cancel") | |
| .bind("click", function() { | |
| h.css({ | |
| "display": "none", | |
| "z-index": "-1" | |
| }); | |
| d.onCancel(h); | |
| return false; | |
| }); | |
| var k = b("<div />") | |
| .addClass("hint_btn") | |
| .append(f) | |
| .append(i); | |
| j.append(k); | |
| l.bind("mousedown", function(o) { | |
| o = window.event || o; | |
| if (h.get(0) | |
| .setCapture) { | |
| h.get(0) | |
| .setCapture(); | |
| } else { | |
| if (window.captureEvents) { | |
| window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| var q = h.offset(); | |
| var m = getViewportHeight(); | |
| var n = getViewportWidth(); | |
| var r = { | |
| win: h, | |
| mOffsetX: o.clientX - q.left, | |
| mOffsetY: o.clientY - q.top, | |
| viewH: m, | |
| viewW: n | |
| }; | |
| h.bind("mousemove", r, a) | |
| .bind("mouseup", r, c); | |
| }); | |
| l.children("span:first") | |
| .bind("click", function(m) { | |
| stopPropagation(m); | |
| h.css({ | |
| "display": "none", | |
| "z-index": "-1" | |
| }); | |
| d.onCancel(h); | |
| }); | |
| h.show = function() { | |
| var n = getViewportCenter(); | |
| var m = { | |
| "top": n.y - 171, | |
| "left": n.x - 108 | |
| }; | |
| if (m.top < 50) { | |
| m.top = 50; | |
| } | |
| if (m.left < 50) { | |
| m.left = 50; | |
| } | |
| h.css({ | |
| "top": m.top + "px", | |
| "left": m.left + "px" | |
| }); | |
| h.css({ | |
| "display": "", | |
| "z-index": "8888" | |
| }); | |
| }; | |
| return h; | |
| } | |
| }); | |
| function a(k) { | |
| var l = k.data; | |
| var h = l.win; | |
| var j = l.mOffsetX; | |
| var g = l.mOffsetY; | |
| var i = l.viewH - h.outerHeight(); | |
| var f = l.viewW - h.outerWidth(); | |
| i = (i < 0 ? 0 : i); | |
| f = (f < 0 ? 0 : f); | |
| var n = window.event || k; | |
| if (n.button < 2) { | |
| var m = parseInt(n.clientY) - parseInt(g); | |
| var o = parseInt(n.clientX) - parseInt(j); | |
| m = (m < 0 ? 0 : m); | |
| o = (o < 0 ? 0 : o); | |
| m = (m > i ? i : m); | |
| o = (o > f ? f : o); | |
| h.css({ | |
| "top": m + "px", | |
| "left": o + "px" | |
| }); | |
| } | |
| } | |
| function c(g) { | |
| var h = g.data; | |
| var f = h.win; | |
| if (f.get(0) | |
| .releaseCapture) { | |
| f.get(0) | |
| .releaseCapture(); | |
| } else { | |
| if (window.releaseEvents) { | |
| window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP); | |
| } | |
| } | |
| b.removeMaskPage(); | |
| f.unbind("mousemove") | |
| .unbind("mouseup"); | |
| } | |
| })(jQuery); | |
| (function(a) { | |
| a.extend(a.fn, { | |
| jRemindMsgList: function(e) { | |
| var b = a.extend({ | |
| target: a(document.body), | |
| relative: "msg_remind", | |
| maxHold: 5, | |
| onClearAll: function() {} | |
| }, e); | |
| b.target = ((typeof b.target == "string") ? a("#" + b.target) : b.target); | |
| b.relative = ((typeof b.relative == "string") ? a("#" + b.relative) : b.relative); | |
| var c = a("<div />") | |
| .attr("id", "Main_BuddyMsgList") | |
| .addClass("pop_box pop_msg_all") | |
| .css({ | |
| "z-index": "999", | |
| "width": "129", | |
| "background": "#fff" | |
| }); | |
| c.isShow = false; | |
| c.appendTo(b.target); | |
| var i = a("<div />") | |
| .addClass("pop_box_inside"); | |
| c.append(i); | |
| var g = a("<div />") | |
| .addClass("clear_all"); | |
| var d = a("<a />") | |
| .attr("href", "#") | |
| .attr("title", "清空") | |
| .text("全部清空") | |
| .bind("click", function() { | |
| j.find("li") | |
| .remove(); | |
| c.hide(); | |
| b.onClearAll(c); | |
| }); | |
| i.append(a("<div />") | |
| .addClass("clear_all") | |
| .append(d)); | |
| i.append(a("<div />") | |
| .addClass("line")); | |
| var j = a("<ul />") | |
| .addClass("friends_list_small"); | |
| i.append(j); | |
| i.append(a("<div />") | |
| .addClass("line")); | |
| var f = a("<ul />") | |
| .addClass("up_down_control"); | |
| var k = a("<li />") | |
| .append(a("<em />")) | |
| .bind("mouseover", function() { | |
| k.addClass("active"); | |
| }) | |
| .bind("mouseout", function() { | |
| k.removeClass("active"); | |
| }); | |
| var l = a("<li>") | |
| .addClass("septation"); | |
| var h = a("<li />") | |
| .bind("mouseover", function() { | |
| h.addClass("active"); | |
| }) | |
| .bind("mouseout", function() { | |
| h.removeClass("active"); | |
| }) | |
| .append(a("<em />") | |
| .addClass("down")); | |
| f.append(k) | |
| .append(l) | |
| .append(h); | |
| i.append(f); | |
| c.hide = function() { | |
| c.css("display", "none"); | |
| c.isShow = false; | |
| }; | |
| c.show = function() { | |
| var m = j.find("li"); | |
| var o = m.size(); | |
| m.each(function(p) { | |
| if (p < o - b.maxHold) { | |
| a(this) | |
| .css("display", "none"); | |
| } else { | |
| a(this) | |
| .css("display", "block"); | |
| } | |
| }); | |
| c.css("display", "block"); | |
| c.isShow = true; | |
| var n = b.relative.offset(); | |
| c.css({ | |
| "top": n.top - c.height(), | |
| "left": 0 | |
| }); | |
| }; | |
| c.moveItems = function(o) { | |
| var m = j.find("li"); | |
| var n = m.length; | |
| if (n <= b.maxHold) { | |
| m.each(function() { | |
| a(this) | |
| .css("display", "block"); | |
| }); | |
| return; | |
| } | |
| var p = 0; | |
| m.each(function(q) { | |
| if (a(this) | |
| .css("display") != "none") { | |
| p = q; | |
| return false; | |
| } | |
| }); | |
| if (o == "up") { | |
| p--; | |
| } else { | |
| p++; | |
| } | |
| if (p < 0) { | |
| p = 0; | |
| } else { | |
| if (p + b.maxHold >= n) { | |
| p = n - b.maxHold; | |
| } | |
| } | |
| m.each(function(q) { | |
| if (q >= p && q < p + b.maxHold) { | |
| a(this) | |
| .css("display", "block"); | |
| } else { | |
| a(this) | |
| .css("display", "none"); | |
| } | |
| }); | |
| }; | |
| c.addItem = function(m) { | |
| j.prepend(m); | |
| if (j.find("li") | |
| .size() <= b.maxHold) { | |
| m.css("display", "block"); | |
| } else { | |
| m.css("display", "none"); | |
| } | |
| }; | |
| c.bind("mouseout", function(m) { | |
| if (isMouseOut(this, m)) { | |
| c.hide(); | |
| } | |
| }) | |
| .bind("mouseover", function() { | |
| clearTimeout(__hideRemindMsgTimer); | |
| }); | |
| return c; | |
| }, | |
| jRemindMsgItem: function(d, b, h) { | |
| var g = a("<i class='Buddy_photo'/>") | |
| .attr("id", "remindmsg_" + d.uid) | |
| .append("<img src='" + h + "'>"); | |
| var f = a("<b />") | |
| .text(cnSubstr(d.displayName, 8, true)); | |
| var c = a("<strong />") | |
| .text("1"); | |
| var e = a("<li />"); | |
| e.append(g) | |
| .append(f) | |
| .append(" (") | |
| .append(c) | |
| .append(") "); | |
| e.bind("click", function() { | |
| if (!b.isActived) { | |
| b.active(); | |
| var i = getChatWinPosition(); | |
| b.show(i.top, i.left); | |
| } else { | |
| if (!b.hasShown) { | |
| var i = getChatWinPosition(); | |
| b.show(i.top, i.left); | |
| } else { | |
| b.show(); | |
| } | |
| } | |
| __remindMsgDiv.hide(); | |
| }) | |
| .bind("mouseover", function() { | |
| this.className = "hover"; | |
| }) | |
| .bind("mouseout", function() { | |
| this.className = ""; | |
| }); | |
| e.msgCount = function(i) { | |
| if (!i) { | |
| return parseInt(c.text()); | |
| } else { | |
| c.text(i); | |
| } | |
| }; | |
| e.updateItem = function(i, j) { | |
| if (j) { | |
| g.find("img") | |
| .attr("src", j); | |
| } | |
| f.text(cnSubstr(i.displayName, 8, true)); | |
| }; | |
| return e; | |
| } | |
| }); | |
| })(jQuery); | |
| (function(a) { | |
| a.extend(a.fn, { | |
| jMoreMsgLists: function(c) { | |
| var b = a.extend({ | |
| target: a(document.body), | |
| maxHold: 5, | |
| relative: "msg_more" | |
| }, c); | |
| b.target = ((typeof b.target == "string") ? a("#" + b.target) : b.target); | |
| b.relative = ((typeof b.relative == "string") ? a("#" + b.relative) : b.relative); | |
| var k = a("<div />") | |
| .attr("id", "Main_MoreBuddyMsgs") | |
| .addClass("pop_box pop_chat_win") | |
| .css({ | |
| "z-index": "999", | |
| "width": "102px", | |
| "background": "#fff" | |
| }); | |
| var g = a("<div />") | |
| .addClass("pop_box_inside"); | |
| var h = a("<ul />") | |
| .attr("id", "more_buddy_list") | |
| .addClass("msg_list"); | |
| var d = a("<div />") | |
| .addClass("line"); | |
| var e = a("<ul />") | |
| .addClass("up_down_control"); | |
| var i = a("<li />") | |
| .append(a("<em />")) | |
| .bind("mouseover", function() { | |
| a(this) | |
| .addClass("active"); | |
| }) | |
| .bind("mouseout", function() { | |
| a(this) | |
| .removeClass(); | |
| }) | |
| .bind("click", function() { | |
| k.moveItems("up"); | |
| }) | |
| .bind("dblclick", function() { | |
| k.moveItems("up"); | |
| }); | |
| var j = a("<li>") | |
| .addClass("septation"); | |
| var f = a("<li />") | |
| .bind("mouseover", function() { | |
| a(this) | |
| .addClass("active"); | |
| }) | |
| .bind("mouseout", function() { | |
| a(this) | |
| .removeClass(); | |
| }) | |
| .append(a("<em />") | |
| .addClass("down")) | |
| .bind("click", function() { | |
| k.moveItems("down"); | |
| }) | |
| .bind("dblclick", function() { | |
| k.moveItems("down"); | |
| }); | |
| e.append(i) | |
| .append(j) | |
| .append(f); | |
| g.append(h) | |
| .append(d) | |
| .append(e); | |
| k.append(g); | |
| k.appendTo(b.target); | |
| k.hide = function() { | |
| k.css("display", "none"); | |
| k.isShow = false; | |
| }; | |
| k.show = function() { | |
| var l = h.find("li"); | |
| var n = l.size(); | |
| l.each(function(o) { | |
| if (o < n - b.maxHold) { | |
| a(this) | |
| .css("display", "none"); | |
| } else { | |
| a(this) | |
| .css("display", "block"); | |
| } | |
| }); | |
| k.css("display", "block"); | |
| k.isShow = true; | |
| var m = b.relative.offset(); | |
| k.css({ | |
| "top": m.top - k.height(), | |
| "left": m.left - k.width() + b.relative.width() | |
| }); | |
| }; | |
| k.moveItems = function(n) { | |
| var l = h.find("li"); | |
| var m = l.length; | |
| if (m <= b.maxHold) { | |
| l.each(function() { | |
| a(this) | |
| .css("display", "block"); | |
| }); | |
| return; | |
| } | |
| var o = 0; | |
| l.each(function(p) { | |
| if (a(this) | |
| .css("display") != "none") { | |
| o = p; | |
| return false; | |
| } | |
| }); | |
| if (n == "up") { | |
| o--; | |
| } else { | |
| o++; | |
| } | |
| if (o < 0) { | |
| o = 0; | |
| } else { | |
| if (o + b.maxHold >= m) { | |
| o = m - b.maxHold; | |
| } | |
| } | |
| l.each(function(p) { | |
| if (p >= o && p < o + b.maxHold) { | |
| a(this) | |
| .css("display", "block"); | |
| } else { | |
| a(this) | |
| .css("display", "none"); | |
| } | |
| }); | |
| }; | |
| k.addItem = function(l) { | |
| h.prepend(l); | |
| if (h.find("li") | |
| .size() <= b.maxHold) { | |
| l.css("display", "block"); | |
| } else { | |
| l.css("display", "none"); | |
| } | |
| }; | |
| k.getItems = function() { | |
| return h.find("li"); | |
| }; | |
| k.bind("mouseout", function(l) { | |
| if (isMouseOut(this, l)) { | |
| k.hide(); | |
| } | |
| }) | |
| .bind("mouseover", function() { | |
| clearTimeout(__hideMoreMsgListTimer); | |
| }); | |
| return k; | |
| }, | |
| jFooterItem: function(d, c, h) { | |
| var e = a("<li></li>") | |
| .attr("id", "footer_" + d.uid) | |
| .bind("click", function(k) { | |
| if (c.isShow && c.isOnFocus()) { | |
| c.hide(); | |
| } else { | |
| if (!c.hasShown) { | |
| var j = getChatWinPosition(); | |
| c.show(j.top, j.left); | |
| } else { | |
| c.show(); | |
| } | |
| c.css("display", ""); | |
| } | |
| }) | |
| .bind("mouseover", function() { | |
| if (this.className != "call") { | |
| this.className = "hover"; | |
| } | |
| }) | |
| .bind("mouseout", function() { | |
| if (this.className != "call") { | |
| this.className = ""; | |
| } | |
| }); | |
| var i = a("<em />") | |
| .bind("click", function(j) { | |
| stopPropagation(j); | |
| c.close(); | |
| e.remove(); | |
| reInitialFooter(); | |
| }); | |
| e.append(i); | |
| var g = a('<i class="Buddy_photo"><img src=' + h + "></i>"); | |
| e.append(g); | |
| var b = cnSubstr(d.displayName, 8, true); | |
| var f = a("<lable />") | |
| .addClass("tit_name") | |
| .text(b); | |
| e.append(f); | |
| e.updateItem = function(j, k) { | |
| g.find("img") | |
| .attr("src", k); | |
| b = cnSubstr(j.displayName, 8, true); | |
| f.text(b); | |
| }; | |
| e.isInMoreMsgList = function() { | |
| if (e.inMore) { | |
| return true; | |
| } else { | |
| return e.parent() | |
| .attr("id") == "more_buddy_list"; | |
| } | |
| }; | |
| return e; | |
| } | |
| }); | |
| })(jQuery); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var loginUrl = "WebIM/Login.aspx"; | |
| var getPicCodeUrl = "WebIM/GetPicCode.aspx?Type={0}&{1}"; | |
| var getBannerPicUrl = "httpHandler/GetBannerPicHttpHandler.ashx?s={0}"; | |
| var mainPageUrl = "main.aspx"; | |
| var loginPageUrl = "login.aspx"; | |
| var loadingPanel; | |
| var objPar = objects(window.location.search); | |
| (function($) { | |
| $(function() { | |
| if ( !! ($.API) && $.API.app_360.is360DeskTop()) { | |
| Bridge.setup("6cb571fc8b72ccc8e7705e5bde0ee4b5"); | |
| if (!$.openPlatLogin.hasLogin()) { | |
| $.API.app_360.fetionLogin(); | |
| } | |
| } | |
| if ($.openPlatLogin.isOpenPlatLogin()) { | |
| $.openPlatLogin.login(function() { | |
| window.location.href = mainPageUrl; | |
| }); | |
| return; | |
| } | |
| initUrls(); | |
| initNavigation(); | |
| getBanner(); | |
| loginIncreaseCounter(); | |
| var usernameInput = $("#login_username"); | |
| usernameInput.bind("focus", function() { | |
| if (!numberReg.test(usernameInput.val())) { | |
| usernameInput.val("") | |
| .removeClass("co_b6"); | |
| } | |
| }) | |
| .bind("blur", function() { | |
| if (usernameInput.val() == "") { | |
| usernameInput.val("请输入手机号、飞信号或邮箱") | |
| .addClass("co_b6"); | |
| } | |
| }) | |
| .bind("mouseover", function(e) { | |
| usernameInput.addClass("on"); | |
| }) | |
| .bind("mouseout", function(e) { | |
| usernameInput.removeClass("on"); | |
| }); | |
| $("#login_pass1") | |
| .bind("focus", function(e) { | |
| $(this) | |
| .addClass("none"); | |
| $("#login_pass") | |
| .removeClass("none"); | |
| $("#login_pass") | |
| .focus(); | |
| }); | |
| $("#login_pass") | |
| .bind("blur", function(e) { | |
| if ($(this) | |
| .val() == "") { | |
| $(this) | |
| .addClass("none"); | |
| $("#login_pass1") | |
| .removeClass("none"); | |
| } | |
| }) | |
| .bind("keydown", function(e) { | |
| e = window.event || e; | |
| if (e.keyCode == 13) { | |
| $("#btnlogin") | |
| .click(); | |
| } | |
| }); | |
| if (__isProxyIp == 1) { | |
| createCcpUI(); | |
| } | |
| var historyLoginStatus = getCookie("webim_login_status"); | |
| if (historyLoginStatus == 1) { | |
| $("#login_chk_1") | |
| .attr("checked", true); | |
| } else { | |
| $("#login_chk_1") | |
| .attr("checked", false); | |
| } | |
| var historyLoginUserName = getCookie("webim_login_username"); | |
| if (historyLoginUserName) { | |
| usernameInput.val(historyLoginUserName) | |
| .removeClass("co_b6"); | |
| $("#login_chk_2") | |
| .attr("checked", true); | |
| } else { | |
| usernameInput.val("请输入手机号、飞信号或邮箱") | |
| .addClass("co_b6"); | |
| } | |
| $("#btnlogin") | |
| .bind("click", function() { | |
| if (!checkCondition()) { | |
| return false; | |
| } | |
| $("#error_info") | |
| .css("display", "none"); | |
| login(); | |
| return false; | |
| }); | |
| loadingPanel = $.fn.loadingPanel({ | |
| target: "login_area" | |
| }); | |
| }); | |
| function createCcpUI() { | |
| if ($("#tr_code") | |
| .find("td") | |
| .length > 0) { | |
| resetCcp(); | |
| return; | |
| } | |
| var td = $('<td class="h54"><input id="login_code" type="text" class="input2 co_b6" name="" value="验证码不区分大小写" style="ime-mode: disabled" tabindex="3" ' + 'maxlength="4" /><img id="ccpimg" class="ln_code" alt="" src="images/login20120903/ccploading.png" />' + '<a id="change_link" class="ln_change_code" title="" href="javascript:;">换一张</a></td>'); | |
| $("#tr_code") | |
| .append(td); | |
| $("#login_code") | |
| .bind("focus", function() { | |
| if ($(this) | |
| .val() == "验证码不区分大小写") { | |
| $(this) | |
| .val("") | |
| .removeClass("co_b6"); | |
| } | |
| }) | |
| .bind("blur", function() { | |
| if ($(this) | |
| .val() == "") { | |
| $(this) | |
| .val("验证码不区分大小写") | |
| .addClass("co_b6"); | |
| } | |
| }) | |
| .bind("mouseover", function(e) { | |
| $(this) | |
| .addClass("on2"); | |
| }) | |
| .bind("mouseout", function(e) { | |
| $(this) | |
| .removeClass("on2"); | |
| }); | |
| $("#login_code") | |
| .bind("keydown", function(e) { | |
| e = window.event || e; | |
| if (e.keyCode == 13) { | |
| $("#btnlogin") | |
| .click(); | |
| } | |
| }); | |
| $("#change_link") | |
| .bind("click", function() { | |
| resetCcp(); | |
| return false; | |
| }); | |
| setTimeout(function() { | |
| resetCcp(); | |
| }, 500); | |
| } | |
| function initUrls() { | |
| mainPageUrl = __baseUrl + mainPageUrl; | |
| loginPageUrl = __baseUrl + loginPageUrl; | |
| } | |
| function initNavigation() { | |
| $("#feedback_link") | |
| .attr("href", __feedbackUrl); | |
| $("#help_link") | |
| .attr("href", __helpUrl); | |
| $("#findpwd_link") | |
| .attr("href", __findPwdUrl); | |
| $("#download_link") | |
| .attr("href", __downloadUrl); | |
| $("#pc_download_link") | |
| .attr("href", __downloadUrl); | |
| $("#mac_download_link") | |
| .attr("href", __macDownloadUrl); | |
| $("#download_link") | |
| .bind("click", function() { | |
| $.increaseCounter(500500002); | |
| }); | |
| $("#pc_download_link") | |
| .bind("click", function() { | |
| $.increaseCounter(500500001); | |
| }); | |
| $("#mac_download_link") | |
| .bind("click", function() { | |
| $.increaseCounter(500500003); | |
| }); | |
| var url = location.href; | |
| if (url.indexOf("?") != -1) { | |
| var paraString = url.substring(url.indexOf("?"), url.length); | |
| __registerUrl += paraString; | |
| } | |
| $("#register_link") | |
| .attr("href", __registerUrl); | |
| $("#favorite_link") | |
| .bind("click", function() { | |
| addFavourite(location.href, "官方网页版飞信——在网页上与飞信好友聊天、免费发短信"); | |
| return false; | |
| }); | |
| } | |
| function getBanner() { | |
| if ( !! __bannerInfo) { | |
| var jsonObject = eval("(" + __bannerInfo + ")"); | |
| if (jsonObject.length > 0) { | |
| for (var i = 0; i < jsonObject.length; i++) { | |
| var item = jsonObject[i]; | |
| if (item.Key == "BannerImg_login" && item.OffShelfTime == 1) { | |
| if ($.browser.msie) { | |
| var imgSrc = formatString(getBannerPicUrl, item.Img); | |
| $("#banner") | |
| .attr("src", imgSrc) | |
| .attr("alt", item.Title); | |
| } else { | |
| $("#banner") | |
| .attr("src", item.Img) | |
| .attr("alt", item.Title); | |
| } | |
| if ( !! item.Link) { | |
| $("#bannerLink") | |
| .css({ | |
| "cursor": "pointer" | |
| }) | |
| .attr("target", item.Target) | |
| .attr("title", item.Title); | |
| $("#bannerLink") | |
| .bind("mousedown", function(e) { | |
| $.increaseCounter(500900002); | |
| }) | |
| .bind("click", function(e) { | |
| $("#bannerLink") | |
| .attr("href", item.Link); | |
| }); | |
| } | |
| break; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| function loginIncreaseCounter() { | |
| var cookieValue = getCookie("webim_loginCounter"); | |
| if (cookieValue == null || cookieValue == "") { | |
| var expireDate = new Date(); | |
| expireDate.setHours(expireDate.getHours() + 1); | |
| setCookie("webim_loginCounter", expireDate.getTime(), expireDate.toGMTString(), "/"); | |
| $.increaseCounter(500800001); | |
| } | |
| } | |
| function checkCondition() { | |
| var username = $("#login_username") | |
| .val() | |
| .trim(); | |
| if (username == "") { | |
| showErrMsg("请输入手机号、飞信号或邮箱"); | |
| return false; | |
| } | |
| if (!isMobileNoReg.test(username) && !isValidSid.test(username) && !emailReg.test(username)) { | |
| showErrMsg("请输入正确的手机号、飞信号或邮箱。"); | |
| return false; | |
| } | |
| if ($("#login_pass") | |
| .val() | |
| .trim() == "") { | |
| showErrMsg("请输入密码!"); | |
| return false; | |
| } | |
| if ($("#tr_code") | |
| .find("td") | |
| .length > 0) { | |
| if ($("#login_code") | |
| .val() | |
| .trim() == "" || $("#login_code") | |
| .val() | |
| .trim() == "验证码不区分大小写") { | |
| showErrMsg("请输入验证码。"); | |
| return false; | |
| } | |
| } | |
| return true; | |
| } | |
| function saveLoginStatus() { | |
| var status = 0; | |
| if ($("#login_chk_1") | |
| .attr("checked")) { | |
| status = 1; | |
| } else { | |
| status = 0; | |
| } | |
| var expireDate = new Date(2033, 1, 1); | |
| setCookie("webim_login_status", status, expireDate.toGMTString(), "/"); | |
| } | |
| function saveLoginInfo(userName) { | |
| if (userName) { | |
| var expireDate = new Date(2033, 1, 1); | |
| setCookie("webim_login_username", escape(userName), expireDate.toGMTString(), "/"); | |
| } else { | |
| deleteCookie("webim_login_username", "/"); | |
| } | |
| } | |
| var __loginTimes = 1; | |
| function login() { | |
| var loginParams = new Object(); | |
| loginParams.success = loginSuccess; | |
| loginParams.error = loginError; | |
| if (__calluser) { | |
| loginParams.url = loginUrl + "?calluser=" + __calluser; | |
| } else { | |
| loginParams.url = loginUrl; | |
| var url = location.href; | |
| if (url.indexOf("?") != -1) { | |
| var paraString = url.substring(url.indexOf("?"), url.length); | |
| loginParams.url += paraString; | |
| } | |
| } | |
| loginParams.type = "POST"; | |
| var loginStatus = 0; | |
| if (!$("#login_chk_1") | |
| .attr("checked")) { | |
| loginStatus = 400; | |
| } | |
| var userName = $("#login_username") | |
| .val() | |
| .trim(); | |
| var accountType = 0; | |
| if (isValidSid.test(userName)) { | |
| accountType = 0; | |
| } else { | |
| if (isMobileNoReg.test(userName)) { | |
| accountType = 1; | |
| } else { | |
| if (emailReg.test(userName)) { | |
| accountType = 2; | |
| } | |
| } | |
| } | |
| loginParams.data = { | |
| "UserName": userName, | |
| "Pwd": $("#login_pass") | |
| .val(), | |
| "OnlineStatus": loginStatus, | |
| "AccountType": accountType | |
| }; | |
| if (emailReg.test(userName)) { | |
| $.increaseCounter(500500004); | |
| } | |
| if ($("#tr_code") | |
| .find("td") | |
| .length > 0) { | |
| loginParams.data["Ccp"] = $("#login_code") | |
| .val(); | |
| } | |
| loginParams.dataType = "json"; | |
| loadingPanel.show(); | |
| $.ajax(loginParams); | |
| } | |
| function loginSuccess(data, textStatus) { | |
| loadingPanel.hide(); | |
| if (data.rc == 200) { | |
| saveLoginStatus(); | |
| if ($("#login_chk_2") | |
| .attr("checked")) { | |
| saveLoginInfo($("#login_username") | |
| .val()); | |
| } else { | |
| saveLoginInfo(null); | |
| } | |
| var source = (!objPar["source"]) ? "" : objPar["source"]; | |
| $.increaseCounter(osType() + "," + getScreen() + "," + "500800002", source); | |
| window.location.href = mainPageUrl; | |
| } else { | |
| if (data.rc == 999) { | |
| createCcpUI(); | |
| } else { | |
| if (data.rc == 9311) { | |
| window.location.reload(); | |
| } else { | |
| if (__loginTimes >= 3) { | |
| createCcpUI(); | |
| } else { | |
| resetCcp(); | |
| } | |
| __loginTimes++; | |
| showErrMsg(data.rc); | |
| } | |
| } | |
| } | |
| } | |
| function loginError(XMLHttpRequest, textStatus, errorThrown) { | |
| loadingPanel.hide(); | |
| if (__loginTimes >= 3) { | |
| createCcpUI(); | |
| } else { | |
| resetCcp(); | |
| } | |
| __loginTimes++; | |
| showErrMsg("连接服务器失败,请您检查网络连接是否正常。"); | |
| } | |
| function resetCcp() { | |
| $("#ccpimg") | |
| .attr("src", formatString(getPicCodeUrl, "ccpsession", Math.random())); | |
| return false; | |
| } | |
| function showErrMsg(errInfo) { | |
| var errorDiv = $("#error_info"); | |
| if (typeof errInfo == "string") { | |
| errorDiv.css("display", "block") | |
| .html(errInfo); | |
| } else { | |
| if (typeof errInfo == "number") { | |
| var errMsg = ""; | |
| switch (errInfo) { | |
| case 311: | |
| errMsg = "请输入正确的手机号、飞信号和邮箱。"; | |
| break; | |
| case 312: | |
| $("#login_code") | |
| .select(); | |
| errMsg = "您输入的验证码有误,请重新输入。"; | |
| break; | |
| case 404: | |
| case 403: | |
| case 430: | |
| case 435: | |
| errMsg = "您尚未开通飞信服务,请注册开通飞信。"; | |
| break; | |
| case 405: | |
| case 504: | |
| errMsg = "您已主动申请停用飞信业务或您的账号有异常行为,您的飞信账号已被禁用。"; | |
| break; | |
| case 321: | |
| errMsg = "您输入密码错误,请重新输入。"; | |
| break; | |
| case 507: | |
| errMsg = "目前仅限中国大陆用户使用。"; | |
| break; | |
| case 406: | |
| errMsg = "您的帐号因在近期多次出现异常而被锁定,暂时无法登录,<a href='" + __unlockUrl + "' target='_blank'>点击此处解决。</a>"; | |
| break; | |
| case 500: | |
| default: | |
| errMsg = "服务器内部发生错误,请重试。"; | |
| break; | |
| } | |
| errorDiv.css("display", "block") | |
| .html(errMsg); | |
| } | |
| } | |
| } | |
| })(jQuery); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (function(c) { | |
| var e = "WebIM/Login.aspx"; | |
| var f = __baseUrl + "login.aspx"; | |
| var b = __baseUrl + "main.aspx"; | |
| var a = "m161.com.cn"; | |
| var d = objects(window.location.search); | |
| c.extend({ | |
| openPlatLogin: { | |
| flag: 0, | |
| hasLogin: function() { | |
| var g = getCookie("webim_sessionid"); | |
| if ( !! g) { | |
| return true; | |
| } | |
| return false; | |
| }, | |
| isOpenPlatLogin: function() { | |
| if ( !! d["c"]) { | |
| c.openPlatLogin.flag = 0; | |
| return true; | |
| } else { | |
| if ( !! d["token"] || !! d["code"]) { | |
| c.openPlatLogin.flag = 1; | |
| return true; | |
| } | |
| } | |
| return false; | |
| }, | |
| login: function(g) { | |
| switch (c.openPlatLogin.flag) { | |
| case 0: | |
| c.openPlatLogin.loginBySsic(g); | |
| break; | |
| case 1: | |
| c.openPlatLogin.loginFor360(g); | |
| break; | |
| default: | |
| break; | |
| } | |
| }, | |
| loginFor360: function(k, i) { | |
| var j = new Object(); | |
| j.url = e; | |
| var g = location.href; | |
| if (g.indexOf("?") != -1) { | |
| var h = g.substring(g.indexOf("?"), g.length); | |
| j.url += h; | |
| } | |
| j.type = "POST"; | |
| if ( !! i) { | |
| j.data = { | |
| "token": i | |
| }; | |
| } else { | |
| if ( !! d["token"]) { | |
| j.data = { | |
| "token": d["token"] | |
| }; | |
| } else { | |
| if ( !! d["code"]) { | |
| j.data = { | |
| "code": d["code"] | |
| }; | |
| } | |
| } | |
| } | |
| j.dataType = "json"; | |
| j.success = function(l, m) { | |
| if (l.rc == 200) { | |
| c.increaseCounter(osType() + "," + getScreen() + "," + "500800002", d["source"]); | |
| if ( !! k) { | |
| k(); | |
| } | |
| if ( !! i) { | |
| window.location.href = b; | |
| } | |
| } else { | |
| window.location.href = f + "?source=" + d["source"]; | |
| } | |
| }; | |
| j.error = function(l, n, m) { | |
| window.location.href = f + "?source=" + d["source"]; | |
| }; | |
| c.ajax(j); | |
| }, | |
| loginBySsic: function(j) { | |
| var i = new Object(); | |
| i.url = e; | |
| var g = location.href; | |
| if (g.indexOf("?") != -1) { | |
| var h = g.substring(g.indexOf("?"), g.length); | |
| i.url += h; | |
| } | |
| i.type = "POST"; | |
| i.data = { | |
| "ssic": d["c"], | |
| "domain": a | |
| }; | |
| if ( !! d["domain"]) { | |
| i.data.domain = d["domain"]; | |
| } | |
| i.dataType = "json"; | |
| i.success = function(l, m) { | |
| if (l.rc == 200) { | |
| c.increaseCounter(osType() + "," + getScreen() + "," + "500800002", d["source"]); | |
| if ( !! j) { | |
| j(); | |
| } | |
| } else { | |
| if (l.rc == 404) { | |
| var k = __registerUrl; | |
| if (__registerUrl.indexOf("?") > -1) { | |
| k = __registerUrl.substring(0, __registerUrl.indexOf("?")); | |
| } | |
| window.location.href = k; | |
| } else { | |
| window.location.href = f; | |
| } | |
| } | |
| }; | |
| i.error = function(k, m, l) { | |
| window.location.href = f; | |
| }; | |
| c.ajax(i); | |
| } | |
| }, | |
| API: { | |
| app_360: { | |
| is360DeskTop: function() { | |
| return (typeof Bridge != "undefined" && !! Bridge.connect && !! Bridge.connect.tryLogin); | |
| }, | |
| is360Logon: function() { | |
| return Bridge.support.hasLogin(); | |
| }, | |
| fetionLogin: function() { | |
| Bridge.connect.fetionLogin(function(g) { | |
| if (g) { | |
| var h = g.oauth.access_token; | |
| c.openPlatLogin.loginFor360(function() {}, h); | |
| } else { | |
| Bridge.oauth2.getAuthCode({ | |
| "redirect_uri": __redirectUri | |
| }); | |
| } | |
| }); | |
| } | |
| } | |
| } | |
| }); | |
| })(jQuery); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var mainPageUrl = "main.aspx"; | |
| var loginPageUrl = "login.aspx"; | |
| var addBuddyUrl = "WebIM/AddBuddy.aspx?Version={0}"; | |
| var getConnectUrl = "WebIM/GetConnect.aspx?Version={0}"; | |
| var getContactInfoUrl = "WebIM/GetContactInfo.aspx?UserType={0}&UserValue={1}&Version={2}"; | |
| var getContactListUrl = "WebIM/GetContactList.aspx?Version={0}"; | |
| var getGroupListUrl = "WebIM/GetGroupList.aspx?Version={0}"; | |
| var getGroupPortraitUrl = "WebIM/GetGroupPortrait.aspx?Uri={0}&Size={1}&Crc={2}&mid={3}"; | |
| var opInviteJoinUrl = "WebIM/PGHandleInviteJoinGroup.aspx?Version={0}"; | |
| var PGHandleApplicationUrl = "WebIM/PGHandleApplication.aspx?Version={0}"; | |
| var getGroupMemUrl = "WebIM/GetGroupMembers.aspx?Version={0}"; | |
| var SendGroupMsgUrl = "WebIM/SendGroupMsg.aspx?Version={0}"; | |
| var getGroupPerInfoUrl = "WebIM/PGGetPersonalInfo.aspx?Version={0}"; | |
| var approveInviteUrl = "WebIM/ApproveInviteJoin.aspx?Version={0}"; | |
| var GroupSubscribeUrl = "WebIM/GroupSubscribe.aspx?Version={0}"; | |
| var getPersonalInfoUrl = "WebIM/GetPersonalInfo.aspx?Version={0}"; | |
| var handleAddBuddyUrl = "WebIM/HandleAddBuddy.aspx?Version={0}"; | |
| var logoutUrl = "WebIM/Logout.aspx?Version={0}"; | |
| var opBuddyUrl = "WebIM/OpBuddy.aspx?Version={0}"; | |
| var sendMessageUrl = "WebIM/SendMsg.aspx?Version={0}"; | |
| var setPersonalInfoUrl = "WebIM/SetPersonalInfo.aspx?Version={0}"; | |
| var setContactInfoUrl = "WebIM/SetContactInfo.aspx?Version={0}"; | |
| var setPresenceUrl = "WebIM/SetPresence.aspx?Version={0}"; | |
| var setSmsOnlineUrl = "WebIM/SetSmsOnline.aspx?Version={0}"; | |
| var setScheduleSmsUrl = "WebIM/SetScheduleSms.aspx?Version={0}&Type={1}"; | |
| var sendSMSUrl = "WebIM/SendSMS.aspx?Version={0}"; | |
| var addChatFriendUrl = "WebIM/AddChatFriend.aspx?Version={0}"; | |
| var getCredUrl = "WebIM/GetCred.aspx?Version={0}"; | |
| var registerUrl = "WebIM/Register.aspx?Version={0}"; | |
| var registerValidateUrl = "WebIM/RegisterValidate.aspx?Version={0}"; | |
| var SetMessageReadUrl = "WebIM/SetMessageReadHttpHandler.aspx?Version={0}"; | |
| var SendDirectSMSUrl = "WebIM/SendDirectSMSHttpHandler.aspx?Version={0}"; | |
| var getBannerPicUrl = "httpHandler/GetBannerPicHttpHandler.ashx?s={0}"; | |
| var getPcRecommendBuddyListV2Url = "WebIM/GetPcRecommendBuddyListV2Handler.aspx?Version={0}"; | |
| var AddRecommendBuddyNotifyUrl = "WebIM/AddRecommendBuddyNotifyHttpHandler.aspx?Version={0}"; | |
| var getPortraitUrl = "WebIM/GetPortrait.aspx?did={0}&Size={1}&Crc={2}&mid={3}"; | |
| var getPicCodeUrl = "WebIM/GetPicCode.aspx?Type={0}&{1}"; | |
| var ValidatePicCodeUrl = "WebIM/ValidatePicCodeHttpHandler.aspx?Version={0}"; | |
| var GetSmsCodeCodeUrl = "WebIM/GetSmsCodeHttpHandler.aspx?Version={0}"; | |
| var getALInfoUrl = "WebIM/GetALInfoHandler.aspx?Version={0}"; | |
| var addALInfoOneUrl = "WebIM/AddALInfoOneHandler.aspx?Version={0}"; | |
| var updateALInfoOneUrl = "WebIM/UpdateALInfoOneHandler.aspx?Version={0}"; | |
| var deleteALInfoOneUrl = "WebIM/DeleteALInfoOneHandler.aspx?Version={0}"; | |
| var portrait = { | |
| defaultIcon: "images/portraits/fetion.jpg", | |
| group: "images/fetion.jpg", | |
| groupMsg: "images/groupSysMsg.png", | |
| groupList: "images/fetion(29).jpg", | |
| mobile: "images/portraits/mobile_user_head.jpg", | |
| offline_16: "images/status16/offline_16.jpg", | |
| offline_32: "images/status32/offline_32.jpg", | |
| robot_online_16: "images/status16/robot.jpg", | |
| robot_online_32: "images/status32/robot.jpg", | |
| robot_offline_16: "images/status16/robot_offline.jpg", | |
| robot_offline_32: "images/status32/robot_offline.jpg", | |
| verify: "images/status16/waiting.jpg", | |
| close: "images/status16/Closed.jpg", | |
| refuse: "images/status16/block.jpg", | |
| fetion_16: "images/status16/fetion_16.jpg", | |
| fetion_32: "images/status32/fetion_32.jpg" | |
| }; | |
| var __version = 0; | |
| var __user = new UserDefault(); | |
| var __contactMap = new jHashMap(); | |
| var __groupMap = new jHashMap(); | |
| var __groupMsgMap = new jHashMap(); | |
| var __buddyList; | |
| var __mainTabWindow; | |
| var __contactTree; | |
| var __moreMsgListDiv; | |
| var __remindMsgDiv; | |
| var __chatWindowMap = new jHashMap(); | |
| var __chatFooterItemMap = new jHashMap(); | |
| var __remindMsgItemMap = new jHashMap(); | |
| var __chatWinInitPosition = { | |
| top: 102, | |
| left: 474 | |
| }; | |
| var __chatWinTopOffset = 26; | |
| var __chatWinLeftOffset = 26; | |
| var __lastPos = { | |
| top: 102, | |
| left: 0 | |
| }; | |
| var __isLeft = true; | |
| var __chatWinDefaultHeight = 365; | |
| var __chatWinDefaultWidth = 468; | |
| var __groupTree; | |
| var __groupChatWinDefaultHeight = 365; | |
| var __groupChatWinDefaultWidth = 480; | |
| var __group_mem = new jHashMap(); | |
| var __phoneMap = new jHashMap(); | |
| var __maxMsgListOnTaskbar = 0; | |
| var __isNormalLogout = false; | |
| var __hideUserStatusSetterTimer = 0; | |
| var __hideContactInfoTimer = 0; | |
| var __showContactInfoTimer = 0; | |
| var __initContactInfoTimer = 0; | |
| var __hideOperateInfoTimer = 0; | |
| var __tmpTimer = 0; | |
| var __hideMoreMsgListTimer = 0; | |
| var __hideRemindMsgTimer = 0; | |
| var __setSmsWindow = null; | |
| var __sessionId = ""; | |
| var __loginProcess = 0; | |
| var __msgBeforeUnload = "此操作将退出网页版飞信,您确认要继续吗?"; | |
| var __searchPrompt = "查找好友..."; | |
| var __isFirstSearch = true; | |
| var __isOnfocus = true; | |
| var __staticTitle = "官方网页版飞信——在网页上与飞信好友聊天、免费发短信"; | |
| var __msgcomingTitle = "新消息"; | |
| var __callmeTitle = "新会话"; | |
| var __readmsgTitle = "未读消息"; | |
| var __flashTitleArray = new Array(); | |
| var __titleflashInterval = 0; | |
| var __isOpenSound = true; | |
| var __isOkGroupList = false; | |
| var __isOkBuddyList = false; | |
| var __leftSmsCount = 10000; | |
| var isRefreshRecommendBuddyList = false; | |
| var currentPageNum = 0; | |
| var loadingPanel; | |
| var divMask = $("#divMask"); | |
| function swfinfo(a) { | |
| sendToSwfJD(0); | |
| } | |
| function thisMovie(a) { | |
| if (navigator.appName.indexOf("Microsoft") != -1) { | |
| return window[a]; | |
| } else { | |
| return document[a]; | |
| } | |
| } | |
| function sendToSwfJD(b) { | |
| if (__loginProcess <= b) { | |
| __loginProcess = b; | |
| } | |
| if ($("#logging") | |
| .css("display") != "none") { | |
| var a = thisMovie("onlogin"); | |
| if (a && a.setpercent) { | |
| a.setpercent(__loginProcess); | |
| } | |
| } | |
| } | |
| function sendToSwfTxt(b) { | |
| var a = thisMovie("onlogin"); | |
| if ($("#logging") | |
| .css("display") != "none") { | |
| if (a && a.setmessage) { | |
| a.setmessage(b); | |
| } | |
| } | |
| }(function(c) { | |
| c(window) | |
| .bind("load", function() { | |
| if (c.openPlatLogin.isOpenPlatLogin()) { | |
| c.openPlatLogin.login(b); | |
| } else { | |
| b(); | |
| } | |
| }) | |
| .bind("focus", function() { | |
| if (!c.browser.msie) { | |
| a(); | |
| } | |
| }) | |
| .bind("blur", function() { | |
| if (!c.browser.msie) { | |
| __isOnfocus = false; | |
| } | |
| }); | |
| if (c.browser.msie) { | |
| c("input:checkbox") | |
| .click(function() { | |
| this.blur(); | |
| this.focus(); | |
| }); | |
| } | |
| c(document) | |
| .bind("focusout", function() { | |
| __isOnfocus = false; | |
| }) | |
| .bind("focusin", function() { | |
| a(); | |
| }); | |
| function b() { | |
| __sessionId = getCookie("webim_sessionid"); | |
| deleteCookie("webim_sessionid", "/"); | |
| if (!__sessionId) { | |
| c("#logging") | |
| .css("display", "none"); | |
| c("#maincontent") | |
| .css("display", "none"); | |
| window.location.href = loginPageUrl; | |
| } else { | |
| c("#logging") | |
| .css("display", ""); | |
| c(initialize); | |
| c.cacheImages(); | |
| } | |
| } | |
| function a() { | |
| if (typeof __titleflashInterval != "undefined") { | |
| window.clearInterval(__titleflashInterval); | |
| } | |
| __flashTitleArray = new Array(); | |
| __isOnfocus = true; | |
| if (document.title != __staticTitle) { | |
| document.title = __staticTitle; | |
| } | |
| var d = __chatWindowMap.values(); | |
| var f = d.length; | |
| for (var e = 0; e < f; e++) { | |
| if (d[e].isOnFocus()) { | |
| d[e].focus(); | |
| break; | |
| } | |
| } | |
| } | |
| })(jQuery); | |
| function initialize() { | |
| initUrls(); | |
| $.initMaskPage(); | |
| initNavigation(); | |
| initMainTabWindow(); | |
| initContentHeight(); | |
| initUserStatusDiv(); | |
| initContactCard(); | |
| initOperateCard(); | |
| initi__searchInput(); | |
| initChatFooter(); | |
| bindWindowEvent(); | |
| sendToSwfJD(10); | |
| getPersonalInfo(); | |
| IMSound.ajaxInit(); | |
| getCred(); | |
| setInterval("getCred()", 300000); | |
| getBanner(); | |
| } | |
| function bindWindowEvent() { | |
| window.onbeforeunload = function(a) { | |
| a = window.event || a; | |
| if (!__isNormalLogout) { | |
| if (window.event) { | |
| a.returnValue = __msgBeforeUnload; | |
| } | |
| return (__msgBeforeUnload); | |
| } | |
| }; | |
| $(window) | |
| .bind("unload", function(a) { | |
| if (!__isNormalLogout) { | |
| logout(false); | |
| } | |
| deleteRemindMsgCookie(__user.sid); | |
| }); | |
| $(window) | |
| .bind("resize", onWindowResize); | |
| } | |
| function onWindowResize(f) { | |
| $.initMaskPage(); | |
| initContentHeight(); | |
| initGroupListHeight(); | |
| var a = __chatWindowMap.values(); | |
| var c = a.length; | |
| for (var b = 0; b < c; b++) { | |
| if (a[b].maxed) { | |
| a[b].max(); | |
| } | |
| } | |
| var d = getMaxMsglistCount(); | |
| if (__maxMsgListOnTaskbar != d) { | |
| __maxMsgListOnTaskbar = d; | |
| reInitialFooter(); | |
| __moreMsgListDiv.hide(); | |
| } | |
| $("#search_result") | |
| .css("display", "none"); | |
| } | |
| function initUrls() { | |
| loginPageUrl = __baseSSLUrl + loginPageUrl; | |
| } | |
| function initContentHeight() { | |
| var a = getViewportHeight() - $("#frame_top") | |
| .outerHeight() - $("#personal_info") | |
| .outerHeight() - $("#taskbar") | |
| .outerHeight(); | |
| $("#main_window") | |
| .height(a); | |
| if (__mainTabWindow) { | |
| __mainTabWindow.adjustContentHeight(); | |
| } | |
| if (__contactTree) { | |
| __contactTree.adjustHeight(0); | |
| } | |
| $("#main_contact_list") | |
| .height(a); | |
| if (__contactTree) { | |
| __contactTree.adjustHeight(); | |
| } | |
| } | |
| function initMainTabWindow() { | |
| __mainTabWindow = $.fn.jTabWindow({ | |
| target: "main_window", | |
| id: "main_content" | |
| }); | |
| $("#addbuddy_link") | |
| .bind("click", function() { | |
| createAddBuddyTab(); | |
| return false; | |
| }); | |
| loadingPanel = $("#loadDiv"); | |
| $("#btnRefreshRecommend") | |
| .bind("click", function(b) { | |
| var a = $("#side") | |
| .find(".text_box"); | |
| if (a.hasClass("none")) { | |
| loadingPanel.removeClass("none"); | |
| currentPageNum++; | |
| isRefreshRecommendBuddyList = true; | |
| GetPcRecommendBuddyListV2(8); | |
| } | |
| stopPropagation(b); | |
| preventDefault(b); | |
| }); | |
| $("#topTabDownload") | |
| .bind("click", function() { | |
| $.increaseCounters("500400003"); | |
| }); | |
| $(".phone_list") | |
| .find(".phone_new > a") | |
| .bind("click", function(a) { | |
| $.increaseCounter(500400014); | |
| createAddTXLTab(); | |
| stopPropagation(a); | |
| preventDefault(a); | |
| }); | |
| initTXLlist(); | |
| } | |
| function createAddBuddyTab(c, d) { | |
| var b = "content/addBuddy.htm"; | |
| if (c) { | |
| b += "?username=" + c; | |
| if (d) { | |
| b += "&addtype=" + d; | |
| } | |
| } | |
| var a = __mainTabWindow.getTabByUrl(b); | |
| if (!a) { | |
| __mainTabWindow.createTab("添加好友", b, true); | |
| } else { | |
| a.topTab.click(); | |
| } | |
| hideAllChatWindow(); | |
| } | |
| function createAddBuddyBatchTab(c) { | |
| var b = "content/addBuddyBatch.htm"; | |
| if (c) { | |
| b += "?username=" + c; | |
| } | |
| var a = __mainTabWindow.getTabByUrl(b); | |
| if (!a) { | |
| __mainTabWindow.createTab("添加好友", b, true); | |
| } else { | |
| a.topTab.click(); | |
| } | |
| hideAllChatWindow(); | |
| } | |
| function createAddTXLTab(c) { | |
| var b = "content/addAndEditTXL.htm", | |
| d = "新建联系人"; | |
| if ( !! c) { | |
| b += "?guid=" + c; | |
| d = "编辑联系人"; | |
| } | |
| var a = __mainTabWindow.getTabByUrl(b); | |
| if (!a) { | |
| __mainTabWindow.createTab(d, b, true); | |
| } else { | |
| a.topTab.click(); | |
| } | |
| hideAllChatWindow(); | |
| } | |
| function createFreeSMSTab(c, d, e) { | |
| var b = "content/freeSms.htm?guid=" + c + "&uid=" + d + "&mn=" + e; | |
| var a = __mainTabWindow.getTabByUrl(b); | |
| if (!a) { | |
| __mainTabWindow.createTab("发短信", b, true); | |
| } else { | |
| a.topTab.click(); | |
| } | |
| hideAllChatWindow(); | |
| } | |
| function createCustomPresTab() { | |
| var a = __mainTabWindow.getTabByUrl("content/customPresence.htm"); | |
| if (!a) { | |
| __mainTabWindow.createTab("设置自定义状态", "content/customPresence.htm", true); | |
| } else { | |
| a.topTab.click(); | |
| } | |
| hideAllChatWindow(); | |
| } | |
| function hideAllChatWindow() { | |
| var a = __chatWindowMap.values(); | |
| var c = a.length; | |
| for (var b = 0; b < c; b++) { | |
| if (a[b].isShow) { | |
| a[b].hide(); | |
| } | |
| } | |
| } | |
| function openChatWindow(c, b) { | |
| var f = __contactMap.get(b); | |
| var d = f.status; | |
| if (d == ContactStatus.Verify || d == ContactStatus.Verify_Bklist) { | |
| $.fn.fetionHintWindow({ | |
| modal: false | |
| }) | |
| .show("待验证好友,无法与之会话", "提示", "OK"); | |
| return; | |
| } | |
| if (d == ContactStatus.Refuse || d == ContactStatus.Refuse_Bklist) { | |
| $.fn.fetionHintWindow({ | |
| modal: false | |
| }) | |
| .show("对方尚未成为您的好友,不能与之会话", "提示", "OK"); | |
| return; | |
| } | |
| if ((d & ContactStatus.CloseService) == ContactStatus.CloseService || (d & ContactStatus.CloseService_Bklist) == ContactStatus.CloseService_Bklist) { | |
| $.fn.fetionHintWindow({ | |
| modal: false | |
| }) | |
| .show("对方已关闭飞信服务,您将无法与他/她进行任何会话。", "提示", "OK"); | |
| return; | |
| } | |
| if (getContactType(f) == ContactType.Robot) { | |
| inviteRobot(b); | |
| } | |
| var a = getChatWindow(b); | |
| if (!a.isActived) { | |
| a.active(); | |
| var e = getChatWinPosition(); | |
| a.show(e.top, e.left); | |
| } else { | |
| if (!a.hasShown) { | |
| var e = getChatWinPosition(); | |
| a.show(e.top, e.left); | |
| } else { | |
| a.show(); | |
| } | |
| } | |
| if (typeof __isIE6 != "undefined" && __isIE6) { | |
| a.fixPosition(); | |
| } | |
| } | |
| function getChatWindow(b) { | |
| var a; | |
| if (!__chatWindowMap.containsKey(b)) { | |
| a = $.fn.jChatWindow({ | |
| maxRelative: "main_content", | |
| user: __user, | |
| buddy: __contactMap.get(b), | |
| defaultHeight: __chatWinDefaultHeight, | |
| defaultWidth: __chatWinDefaultWidth, | |
| onActive: onActiveChatWindow, | |
| onClosed: onCloseChatWindow, | |
| onFocus: onFocusChatWindow, | |
| onSendMessage: onSendMsg | |
| }); | |
| __chatWindowMap.put(b, a); | |
| } else { | |
| a = __chatWindowMap.get(b); | |
| } | |
| return a; | |
| } | |
| function getChatWinPosition() { | |
| var b = new Object(); | |
| b.top = __chatWinInitPosition.top; | |
| b.left = __chatWinInitPosition.left; | |
| var e = true; | |
| var a = __chatWindowMap.values(); | |
| var d = a.length; | |
| while (e) { | |
| e = false; | |
| for (var c = 0; c < d; c++) { | |
| if (a[c].isShow && !a[c].maxed) { | |
| if (isLapOver(b, { | |
| "top": parseInt(a[c].css("top")), | |
| "left": parseInt(a[c].css("left")) | |
| })) { | |
| b = adjustPosition(b); | |
| if (__lastPos.left < b.left) { | |
| __lastPos.left = b.left; | |
| } else { | |
| if (__lastPos.top > b.top) { | |
| __lastPos.top = b.top; | |
| } | |
| } | |
| e = true; | |
| break; | |
| } | |
| } | |
| } | |
| } | |
| b.left -= parseInt($(".side") | |
| .css("width")); | |
| return b; | |
| } | |
| function adjustPosition(a) { | |
| if ((a.top + __chatWinTopOffset < __chatWinInitPosition.top - Math.abs(__chatWinTopOffset)) || (a.top + __chatWinTopOffset + 50 > getViewportHeight() - __chatWinDefaultHeight)) { | |
| a.top = __lastPos.top - 6; | |
| a.left = __lastPos.left + __chatWinLeftOffset; | |
| __chatWinInitPosition = a; | |
| if (getViewportWidth() - a.left - 450 < 230 && __isLeft) { | |
| __chatWinInitPosition.left = __chatWinInitPosition.left == 48 ? __chatWinInitPosition.left + 6 : 48; | |
| __isLeft = false; | |
| } | |
| } else { | |
| a.top += __chatWinTopOffset; | |
| a.left += __chatWinLeftOffset; | |
| } | |
| return a; | |
| } | |
| function isLapOver(b, a) { | |
| return (Math.abs(b.top - a.top) < 5) && (Math.abs(b.left - a.left) < 5); | |
| } | |
| function onActiveChatWindow(a) { | |
| if (!__chatFooterItemMap.containsKey(this.buddy.uid)) { | |
| var c = getUserPortraitUrl(this.buddy, "5"); | |
| var b = $.fn.jFooterItem(this.buddy, a, c); | |
| __chatFooterItemMap.put(this.buddy.uid, b); | |
| reInitialFooter(b); | |
| } | |
| } | |
| function onCloseChatWindow(a) { | |
| if (__chatFooterItemMap.containsKey(this.buddy.uid)) { | |
| __chatFooterItemMap.get(this.buddy.uid) | |
| .remove(); | |
| __chatFooterItemMap.remove(this.buddy.uid); | |
| reInitialFooter(); | |
| } | |
| } | |
| function onFocusChatWindow(a) { | |
| if (__chatFooterItemMap.containsKey(this.buddy.uid)) { | |
| __chatFooterItemMap.get(this.buddy.uid) | |
| .removeClass("call"); | |
| } | |
| if (__remindMsgItemMap.containsKey(this.buddy.uid)) { | |
| __remindMsgItemMap.get(this.buddy.uid) | |
| .remove(); | |
| __remindMsgItemMap.remove(this.buddy.uid); | |
| setRemindCountTotal(); | |
| } | |
| } | |
| function onActiveGroupChatWindow(a) { | |
| if (!__chatFooterItemMap.containsKey("group_" + this.group.id)) { | |
| this.group.uid = this.group.id; | |
| this.group.statusClass = "af-group"; | |
| this.group.displayName = this.group.n; | |
| var c = getGroupItemPortraitUrl(this.group, "1"); | |
| var b = $.fn.jFooterItem(this.group, a, c); | |
| __chatFooterItemMap.put("group_" + this.group.id, b); | |
| reInitialFooter(b); | |
| } | |
| } | |
| function onFocusGroupChatWindow(a) { | |
| if (__chatFooterItemMap.containsKey("group_" + this.group.id)) { | |
| __chatFooterItemMap.get("group_" + this.group.id) | |
| .removeClass("call"); | |
| } | |
| if (__remindMsgItemMap.containsKey("group_" + this.group.id)) { | |
| __remindMsgItemMap.get("group_" + this.group.id) | |
| .remove(); | |
| __remindMsgItemMap.remove("group_" + this.group.id); | |
| setRemindCountTotal(); | |
| } | |
| } | |
| function onCloseGroupChatWindow(a) { | |
| if (__chatFooterItemMap.containsKey("group_" + this.group.id)) { | |
| __chatFooterItemMap.get("group_" + this.group.id) | |
| .remove(); | |
| __chatFooterItemMap.remove("group_" + this.group.id); | |
| reInitialFooter(); | |
| } | |
| } | |
| function onActiveGroupSysChatWindow(a) { | |
| if (!__chatFooterItemMap.containsKey("group_sys_" + a.attr("id"))) { | |
| this.group.uid = "group_sys_" + a.attr("id"); | |
| this.group.statusClass = "af-groupSysMsg"; | |
| this.group.displayName = a.find("h3") | |
| .text(); | |
| var b = $.fn.jFooterItem(this.group, a, portrait.groupMsg); | |
| b.removeClass() | |
| .addClass("call"); | |
| __chatFooterItemMap.put("group_sys_" + a.attr("id"), b); | |
| reInitialFooter(b); | |
| } | |
| } | |
| function onFocusGroupSysChatWindow(a) { | |
| if (__chatFooterItemMap.containsKey("group_sys_" + a.attr("id"))) { | |
| __chatFooterItemMap.get("group_sys_" + a.attr("id")) | |
| .removeClass("call"); | |
| } | |
| } | |
| function onCloseGroupSysChatWindow(b) { | |
| if (__chatFooterItemMap.containsKey("group_sys_" + b.attr("id"))) { | |
| __chatFooterItemMap.get("group_sys_" + b.attr("id")) | |
| .remove(); | |
| __chatFooterItemMap.remove("group_sys_" + b.attr("id")); | |
| reInitialFooter(); | |
| var a = b.html(); | |
| if (__groupMsgMap.containsKey(a)) { | |
| __groupMsgMap.remove(a); | |
| } | |
| if ($("#" + b.attr("id")) | |
| .attr("id")) { | |
| $("#" + b.attr("id")) | |
| .remove(); | |
| } | |
| } | |
| } | |
| function getPersonalInfo() { | |
| var a = new Object(); | |
| a.success = getPersonalInfoSuccess; | |
| a.error = getPersonalInfoError; | |
| a.url = formatString(getPersonalInfoUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "ssid": __sessionId | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| var __gpiRetry = 0; | |
| function getPersonalInfoSuccess(b, c) { | |
| var a = b; | |
| if (typeof a.rc == "number" && a.rc == 200) { | |
| __gpiRetry = 0; | |
| $.extend(__user, a.rv); | |
| extendUser(); | |
| getGroupList(); | |
| initUserInfo(); | |
| sendToSwfJD(30); | |
| setRemindMsgCookie(__user.sid, __user.displayName, 0, __sessionId); | |
| getContactList(); | |
| GetPcRecommendBuddyListV2(8); | |
| } else { | |
| if (typeof a.rc == "number" && a.rc == 310) { | |
| redirectLogin(); | |
| } else { | |
| if (__gpiRetry < 3) { | |
| __gpiRetry++; | |
| window.setTimeout("getPersonalInfo()", 500); | |
| } else { | |
| __gpiRetry = 0; | |
| alert(formatString("获取用户个人信息失败,请重新登录。错误代码:{0}", typeof a.rc == "number" ? a.rc : 500)); | |
| redirectLogin(); | |
| } | |
| } | |
| } | |
| } | |
| function getPersonalInfoError(a, c, b) { | |
| if (__gpiRetry < 3) { | |
| __gpiRetry++; | |
| window.setTimeout("getPersonalInfo()", 500); | |
| } else { | |
| __gpiRetry = 0; | |
| alert(formatString("获取用户个人信息失败,请重新登录。错误原因:{0}", c)); | |
| redirectLogin(); | |
| } | |
| } | |
| function getBanner() { | |
| if (__bannerInfo == "") { | |
| $("#banner_list") | |
| .css("display", "none"); | |
| } else { | |
| var jsonObject = eval("(" + __bannerInfo + ")"); | |
| if (jsonObject.length > 0) { | |
| $("#banner_list") | |
| .css("display", "block"); | |
| var fragment = ""; | |
| var interval = 3000; | |
| var imgNum = 0; | |
| if (__isMsie) { | |
| for (var i = 0; i < jsonObject.length; i++) { | |
| if (jsonObject[i].Key == "BannerImg_login") { | |
| continue; | |
| } | |
| interval = jsonObject[0].Interval; | |
| if (jsonObject[i].OffShelfTime == 1) { | |
| var imgSrc = formatString(getBannerPicUrl, jsonObject[i].Img); | |
| fragment += '<a href="' + jsonObject[i].Link + '" target="' + jsonObject[i].Target + '"><img src="' + imgSrc + '" width="360" height="60" alt="' + jsonObject[i].Title + '" title="' + jsonObject[i].Title + '" /></a>'; | |
| imgNum++; | |
| } | |
| } | |
| } else { | |
| for (var i = 0; i < jsonObject.length; i++) { | |
| if (jsonObject[i].Key == "BannerImg_login") { | |
| continue; | |
| } | |
| interval = jsonObject[0].Interval; | |
| if (jsonObject[i].OffShelfTime == 1) { | |
| fragment += '<a href="' + jsonObject[i].Link + '" target="' + jsonObject[i].Target + '"><img src="' + jsonObject[i].Img + '" width="360" height="60" alt="' + jsonObject[i].Title + '" title="' + jsonObject[i].Title + '" /></a>'; | |
| imgNum++; | |
| } | |
| } | |
| } | |
| fragment += '<div id="banner_info"></div>'; | |
| $("#banner_list") | |
| .html(fragment); | |
| imageCarousel.scroll(imgNum, "banner_list", interval, "banner_info"); | |
| } else { | |
| $("#banner_list") | |
| .css("display", "none"); | |
| } | |
| } | |
| } | |
| function getContactList() { | |
| var a = new Object(); | |
| a.success = getContactListSuccess; | |
| a.error = getContactListError; | |
| a.url = formatString(getContactListUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "ssid": __sessionId | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| var __gclRetry = 0; | |
| function getContactListSuccess(e, g) { | |
| __contactTree = $.fn.jContactTree({ | |
| target: "main_contact_list", | |
| isSinglePattern: true, | |
| user: __user, | |
| onBuddyItemDbClick: openChatWindow, | |
| onBuddyItemMouseOver: showContactCard, | |
| onBuddyItemMouseOut: hideContactCard, | |
| onBuddyItemRightClick: showOperateCard | |
| }); | |
| sendToSwfJD(60); | |
| var b = e; | |
| if (typeof b.rc == "number" && b.rc == 200) { | |
| __gclRetry = 0; | |
| var c = b.rv.bds; | |
| c = c || (new Array()); | |
| var f = c.length; | |
| for (var d = 0; d < f; d++) { | |
| var a = new ContactDefault(); | |
| $.extend(a, c[d]); | |
| extendContact(a); | |
| __contactMap.put(c[d].uid.toString(), a); | |
| } | |
| __buddyList = b.rv.bl; | |
| __buddyList = __buddyList || (new Array()); | |
| __buddyList.push({ | |
| "id": 0, | |
| "n": "未分组好友" | |
| }); | |
| __buddyList.push({ | |
| "id": -1, | |
| "n": "陌生人" | |
| }); | |
| initContactList(); | |
| } else { | |
| if (typeof b.rc == "number" && b.rc == 310) { | |
| redirectLogin(); | |
| } else { | |
| if (__gclRetry < 3) { | |
| __gclRetry++; | |
| window.setTimeout("getContactList();", 500); | |
| } else { | |
| __gclRetry = 0; | |
| alert("由于网络原因,获取好友列表失败,请重新登录。"); | |
| redirectLogin(); | |
| } | |
| } | |
| } | |
| } | |
| function getContactListError(a, c, b) { | |
| if (__gclRetry < 3) { | |
| __gclRetry++; | |
| window.setTimeout("getContactList();", 500); | |
| } else { | |
| __gclRetry = 0; | |
| alert("由于网络原因,获取好友列表失败,请重新登录。"); | |
| redirectLogin(); | |
| } | |
| } | |
| function getRecommendReason(a) { | |
| var d = "你可能认识的人"; | |
| if ( !! a) { | |
| var e = a.split(";"); | |
| var g = 0; | |
| for (var c = 0, b = e.length; c < b; c++) { | |
| var f = e[c].split(":"); | |
| switch (f[0]) { | |
| case "want-to-meet": | |
| g = 5; | |
| d = "你的通讯录好友"; | |
| break; | |
| case "recent-contact": | |
| if (g < 5) { | |
| g = 4; | |
| d = "你最近联系过的人"; | |
| } | |
| break; | |
| case "have-same-friend": | |
| if (g < 4) { | |
| g = 3; | |
| d = f[1] + "位共同好友"; | |
| } | |
| break; | |
| case "near": | |
| if (g < 3) { | |
| g = 2; | |
| d = "你附近的好友"; | |
| } | |
| break; | |
| case "robot": | |
| if (g < 2) { | |
| g = 1; | |
| d = "有缘人"; | |
| } | |
| break; | |
| default: | |
| d = "你可能认识的人"; | |
| break; | |
| } | |
| } | |
| } | |
| return d; | |
| } | |
| function GetPcRecommendBuddyListV2(a) { | |
| var b = {}; | |
| b.url = formatString(getPcRecommendBuddyListV2Url, __version++); | |
| b.type = "POST"; | |
| b.dataType = "json"; | |
| b.data = { | |
| "ssid": __sessionId, | |
| "c": a, | |
| "isIP": 1, | |
| page: currentPageNum | |
| }; | |
| b.cache = false; | |
| b.success = GetPcRecommendBuddyListV2Success; | |
| b.error = GetPcRecommendBuddyListV2Error; | |
| $.ajax(b); | |
| } | |
| function GetPcRecommendBuddyListV2Success(e, b) { | |
| if (e.rc == 200 && ( !! e.rv)) { | |
| var k = $(".side"), | |
| h, m; | |
| if (isRefreshRecommendBuddyList) { | |
| k.find("ul") | |
| .remove(); | |
| isRefreshRecommendBuddyList = false; | |
| } | |
| h = k.find("ul"); | |
| var g = h.length; | |
| if (g <= 0) { | |
| h = $('<ul class="List"></ul>'); | |
| } | |
| for (var f = 0, d = e.rv.length; f < d; f++) { | |
| var n = e.rv[f]; | |
| var c = formatString(getPortraitUrl, n.UserId, 3, 0, __user.uid); | |
| var a = ""; | |
| if (f >= 4 || g > 0) { | |
| a = "none"; | |
| } | |
| m = $('<li class="' + a + '" uid="' + n.UserId + '" sid="' + n.FetionId + '"><div class="image"><img src="' + c + '" alt="' + n.NickName + '" title="' + n.NickName + '" /></div>' + "<dl><dt>" + cnSubstr(n.NickName, 20, false) + "</dt><dd>" + getRecommendReason(n.Reason) + '</dd><dd><a href="javascript:;">加好友</a><a href="javascript:;">打招呼</a></dd></dl></li>'); | |
| h.append(m); | |
| var l = m.find("dl > dd:last"); | |
| l.find("a:first") | |
| .bind("click", function(j) { | |
| $.increaseCounter(501900002); | |
| var i = $(this) | |
| .parent() | |
| .parent(); | |
| AddBuddy({ | |
| t: "1", | |
| a: 0, | |
| u: i.parent() | |
| .attr("sid"), | |
| p: 0, | |
| d: __user.displayName.substr(0, 5), | |
| l: i.find("dt") | |
| .text(), | |
| b: 1, | |
| s: 0, | |
| c: "", | |
| cid: "", | |
| successCallback: function() { | |
| i.find("dd:last") | |
| .html("") | |
| .html('<span style="color:#000;">请求已发送</span>'); | |
| var o = i.parent() | |
| .attr("uid"); | |
| AddRecommendBuddyNotify(o); | |
| setTimeout(function() { | |
| var q = $(".side > ul"); | |
| $(i.parent()) | |
| .remove(); | |
| q.find("li[class='none']:first") | |
| .removeClass("none"); | |
| var p = q.find("li[class='none']") | |
| .length; | |
| if (p <= 1) { | |
| GetPcRecommendBuddyListV2(3); | |
| } | |
| }, 3000); | |
| } | |
| }); | |
| stopPropagation(j); | |
| preventDefault(j); | |
| }); | |
| l.find("a:last") | |
| .bind("click", function(i) { | |
| $.increaseCounter(501900001); | |
| var o = $(this) | |
| .parent() | |
| .parent() | |
| .parent(); | |
| var j = __contactMap.get(o.attr("uid")); | |
| if ( !! j) { | |
| openChatWindow(this, j.uid); | |
| } else { | |
| addChatFriendV2(2, o.attr("sid"), function(q, s) { | |
| if (typeof q.rc == "number" && q.rc == 200) { | |
| var r = q.rv; | |
| var p = new ContactDefault(); | |
| if (!buddyListContains("-1")) { | |
| __buddyList.push({ | |
| "id": -1, | |
| "n": "陌生人" | |
| }); | |
| __contactTree.insertBuddyList({ | |
| "id": -1, | |
| "n": "陌生人" | |
| }); | |
| } | |
| p.uid = r.uid; | |
| p.uri = r.uri; | |
| p.bl = "-1"; | |
| p.ct = 2; | |
| extendContact(p); | |
| __contactMap.put(p.uid, p); | |
| __contactTree.insertBuddyItem(p, p.bl); | |
| openChatWindow(this, p.uid); | |
| } | |
| }); | |
| } | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }); | |
| } | |
| if (g <= 0) { | |
| if (e.rv.length <= 0) { | |
| k.find(".text_box") | |
| .removeClass("none"); | |
| } else { | |
| k.find(".text_box") | |
| .addClass("none"); | |
| k.append(h); | |
| } | |
| } else { | |
| if (h.find("li") | |
| .length <= 0) { | |
| k.find(".text_box") | |
| .removeClass("none"); | |
| } | |
| } | |
| } else { | |
| var k = $(".side"); | |
| if (k.find("ul") | |
| .length <= 0 || k.find("ul>li") | |
| .length <= 0) { | |
| k.find(".text_box") | |
| .removeClass("none"); | |
| } | |
| } | |
| loadingPanel.addClass("none"); | |
| } | |
| function GetPcRecommendBuddyListV2Error(b, d, c) { | |
| var a = $(".side"); | |
| if (a.find("ul") | |
| .length <= 0 || a.find("ul>li") | |
| .length <= 0) { | |
| a.find(".text_box") | |
| .removeClass("none"); | |
| } | |
| loadingPanel.addClass("none"); | |
| isRefreshRecommendBuddyList = false; | |
| } | |
| function AddRecommendBuddyNotify(a) { | |
| var b = {}; | |
| b.url = formatString(AddRecommendBuddyNotifyUrl, __version++); | |
| b.type = "post"; | |
| b.dataType = "json"; | |
| b.data = { | |
| "uid": __user.uid, | |
| "duid": a, | |
| "ssid": __sessionId | |
| }; | |
| b.cache = false; | |
| b.success = function(c, d) {}; | |
| b.error = function(c, e, d) {}; | |
| $.ajax(b); | |
| } | |
| function getConnect() { | |
| var a = new Object(); | |
| a.success = getConnectSuccess; | |
| a.error = getConnectError; | |
| a.url = formatString(getConnectUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "ssid": __sessionId, | |
| "reported": getReportedData() | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| var __getConnErrorTimes = 0; | |
| var __getCoonTimes = 0; | |
| function getConnectSuccess(e, d) { | |
| var j = e; | |
| __getCoonTimes++; | |
| if (__getCoonTimes % 3 == 0) { | |
| activeRemindMsgCookie(); | |
| } | |
| if (typeof j.rc == "number" && j.rc == 200) { | |
| __getConnErrorTimes = 0; | |
| var h = j.rv; | |
| var c = h.length; | |
| var a = false; | |
| if (c < 10) { | |
| a = false; | |
| } else { | |
| var b = 0; | |
| for (var f = 0; f < c; f++) { | |
| if (h[f].DataType == 2 || h[f].DataType == 6) { | |
| b++; | |
| } | |
| if (b >= 10) { | |
| a = true; | |
| break; | |
| } | |
| } | |
| } | |
| function g(B) { | |
| if (B >= c) { | |
| if (a) { | |
| insertBuddyToList(__contactMap.values(), function() { | |
| window.setTimeout(getConnect, 100); | |
| }); | |
| } else { | |
| window.setTimeout(getConnect, 100); | |
| } | |
| return; | |
| } | |
| switch (h[B].DataType) { | |
| case 1: | |
| updatePersonalInfo(h[B].Data); | |
| break; | |
| case 2: | |
| if (h[B].Data.uid == __user.uid) { | |
| updatePersonalInfo(h[B].Data); | |
| } else { | |
| updateContactInfo(h[B].Data, !a); | |
| } | |
| break; | |
| case 3: | |
| if (h[B].Data.msgType == 2) { | |
| receiveMsgs(h[B].Data); | |
| startSound("newmessage"); | |
| } else { | |
| if (h[B].Data.msgType == 3 || h[B].Data.msgType == 4) { | |
| sendMsgFailed(h[B].Data); | |
| } | |
| } | |
| break; | |
| case 4: | |
| if (h[B].Data.ec == 900) { | |
| logout(false); | |
| startSound("sys"); | |
| $.fn.fetionHintWindow() | |
| .show("您已经从其他终端登录!", "提示", "OK", function() { | |
| __isNormalLogout = true; | |
| window.location.href = __officialSiteUrl + "/account/loginout?ul=" + loginPageUrl; | |
| }); | |
| } else { | |
| if (h[B].Data.ec >= 902 && h[B].Data.ec <= 905) { | |
| logout(false); | |
| $.fn.fetionHintWindow() | |
| .show("您已退出网页版飞信。<br/>单击确定后返回登录页面。", "提示", "OK", function() { | |
| redirectLogin(); | |
| }); | |
| } | |
| } | |
| return; | |
| break; | |
| case 5: | |
| receiveInvite(h[B].Data); | |
| startSound("sys"); | |
| break; | |
| case 6: | |
| if (h[B].Data.ba == 1) { | |
| addBuddyWithReply(h[B].Data, !a); | |
| } else { | |
| if (h[B].Data.ba == 2) { | |
| removeBuddyWithReply(h[B].Data, !a); | |
| } else { | |
| if (h[B].Data.ba == 3) { | |
| updateBuddyWithReply(h[B].Data, !a); | |
| } | |
| } | |
| } | |
| break; | |
| case 7: | |
| if (h[B].Data.InfoType == 1) { | |
| dealWithCallme(h[B].Data.Info); | |
| } | |
| break; | |
| case 8: | |
| if (h[B].Data.length > 0) { | |
| var m = h[B].Data; | |
| m.sort(sort_by("n", false)); | |
| for (var y = 0; y < m.length; y++) { | |
| var z = m[y].GData; | |
| switch (m[y].GDataType) { | |
| case 1: | |
| var n = z; | |
| n.crc = "1234"; | |
| $.popWinMsg({ | |
| gName: n.gN, | |
| fName: n.iNn, | |
| group: n, | |
| msgN: "msg4", | |
| isLink: true, | |
| handleEntity: n, | |
| consent: handleInviteGroup, | |
| isClose: false | |
| }); | |
| break; | |
| case 2: | |
| var x = z; | |
| exitGroup(x.gUri, x); | |
| break; | |
| case 3: | |
| var s = z; | |
| apvResult(s); | |
| break; | |
| case 4: | |
| var C = z; | |
| var t = jGroupUriToId(C.GroupUri); | |
| $.popWinMsg({ | |
| gName: C.GroupName, | |
| group: __groupMap.get(t), | |
| msgN: "msg6" | |
| }); | |
| removeGroupUi(t, 2); | |
| break; | |
| case 5: | |
| var D = z.DeleteMemberEntity; | |
| for (var A = 0; A < D.length; A++) { | |
| deleteGroupMember(D[A]); | |
| } | |
| break; | |
| case 6: | |
| var v = z.ApplyGroupEntity[0]; | |
| $.popWinMsg({ | |
| gName: v.n, | |
| fName: v.ApplyGroupUserEntity[0].Nickname, | |
| group: v, | |
| iR: v.ApplyGroupUserEntity[0].Note == null ? "" : v.ApplyGroupUserEntity[0].Note, | |
| msgN: "msg13", | |
| handleEntity: v, | |
| consent: handleApplication, | |
| isClose: false | |
| }); | |
| break; | |
| case 7: | |
| var u = z; | |
| var l = new GroupMemDefault(); | |
| l.MemberUri = u.MemberUri; | |
| l.minn = u.minn; | |
| l.i = 3; | |
| initGroupMemList(u.gUri, l); | |
| var t = jGroupUriToId(u.gUri); | |
| var r = __groupMap.get(t); | |
| var p = jMemUriToId(u.MemberUri); | |
| if (p != __user.sid) { | |
| $.popWinMsg({ | |
| gName: u.n, | |
| fName: l.minn, | |
| group: r, | |
| msgN: "msg5" | |
| }); | |
| } | |
| break; | |
| case 9: | |
| updateGroupInfo(z, true); | |
| if (z.members) { | |
| for (var E = 0; E < z.members.length; E++) { | |
| initGroupMemList(z.gUri, z.members[E]); | |
| } | |
| } | |
| break; | |
| case 10: | |
| var q = z.PermissionChangedGroupEntity; | |
| groupMemPriChange(q); | |
| break; | |
| case 14: | |
| var w = z; | |
| w.crc = "1234"; | |
| $.popWinMsg({ | |
| gName: w.n, | |
| fName: w.iNn, | |
| group: w, | |
| msgN: "msg10", | |
| iR: w.iR, | |
| joinItems: w.JoinItem, | |
| handleEntity: w, | |
| consent: approveInviteGroup, | |
| isClose: false | |
| }); | |
| break; | |
| case 16: | |
| var o = z; | |
| var t = jGroupUriToId(o.gUri); | |
| var r = __groupMap.get(t); | |
| $.popWinMsg({ | |
| gName: r.n, | |
| fName: o.iNn, | |
| group: r, | |
| msgN: "msg5" | |
| }); | |
| break; | |
| case 17: | |
| updateGroupInfo(z, false, true); | |
| break; | |
| case 21: | |
| receiveGroupMsgs(z); | |
| break; | |
| default: | |
| break; | |
| } | |
| } | |
| } | |
| break; | |
| case 9: | |
| break; | |
| default: | |
| break; | |
| } | |
| B++; | |
| window.setTimeout(function() { | |
| g(B); | |
| }, 20); | |
| } | |
| g(0); | |
| } else { | |
| if (typeof j.rc == "number" && j.rc == 310) { | |
| redirectLogin(); | |
| } else { | |
| if (typeof j.rc == "number" && j.rc == 304) { | |
| window.setTimeout(getConnect, 1000); | |
| } else { | |
| window.setTimeout(getConnect, 1000); | |
| } | |
| } | |
| } | |
| } | |
| function getConnectError(a, c, b) { | |
| if (__getConnErrorTimes <= 60) { | |
| __getConnErrorTimes++; | |
| window.setTimeout(getConnect, 1000); | |
| } else { | |
| alert("网络连接已断开,单击确定后返回登录页面。"); | |
| redirectLogin(); | |
| } | |
| } | |
| function getReportedData() { | |
| var c = __dataReportMap; | |
| if (__user && !! c && c.size() > 0) { | |
| var a = __user.uid + "|" + "default"; | |
| var b = c.keys(); | |
| $.each(b, function(e, d) { | |
| a += "|" + d + "_" + c.get(d); | |
| }); | |
| c.clear(); | |
| return a; | |
| } else { | |
| return ""; | |
| } | |
| } | |
| function getGroupList() { | |
| var a = new Object(); | |
| a.success = getGroupListSuccess; | |
| a.error = getGroupListError; | |
| a.url = formatString(getGroupListUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "ssid": __sessionId | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| __groupTree = $.fn.jGroupTree({ | |
| target: "main_contact_list", | |
| isSinglePattern: true, | |
| onBuddyItemDbClick: openGroupChatWindow, | |
| onBuddyItemClick: function() {}, | |
| onBuddyItemMouseOver: function() {} | |
| }); | |
| } | |
| var __gglRetry = 0; | |
| function getGroupListSuccess(c, a) { | |
| var j = c; | |
| if (typeof j.rc == "number" && j.rc == 200) { | |
| __gglRetry = 0; | |
| if (c.rv.GroupListInfo != null) { | |
| var g = ""; | |
| for (var d = 0; d < c.rv.GroupListInfo.length; d++) { | |
| var b = c.rv.GroupListInfo[d].GroupUri; | |
| g += b + ","; | |
| } | |
| getGroupPerInfo(g); | |
| startGroupSubscribe(g); | |
| var e = j.rv.GroupListInfo; | |
| e = e || (new Array()); | |
| var f = e.length; | |
| for (var d = 0; d < f; d++) { | |
| var h = new GroupDefault(); | |
| h.gUri = e[d].GroupUri; | |
| h.i = e[d].Identity; | |
| extendGroupItem(h); | |
| __groupMap.put(h.id, h); | |
| } | |
| } | |
| initGroupList(); | |
| } else { | |
| if (typeof j.rc == "number" && j.rc == 310) { | |
| redirectLogin(); | |
| } else { | |
| if (__gglRetry < 3) { | |
| __gglRetry++; | |
| window.setTimeout("getGroupList();", 500); | |
| } else { | |
| __gglRetry = 0; | |
| alert(formatString("由于网络原因,获取群组列表失败,请重新登录。错误代码:{0}", j.rc)); | |
| redirectLogin(); | |
| } | |
| } | |
| } | |
| } | |
| function getGroupListError(a, c, b) { | |
| if (__gglRetry < 3) { | |
| __gglRetry++; | |
| window.setTimeout("getGroupList();", 500); | |
| } else { | |
| __gglRetry = 0; | |
| alert(formatString("由于网络原因,获取群组列表失败,请重新登录。错误原因:{0}", c)); | |
| redirectLogin(); | |
| } | |
| } | |
| function initGroupListHeight() { | |
| if (__groupTree) { | |
| __groupTree.adjustHeight(); | |
| } | |
| } | |
| function initGroupList() { | |
| var a = __groupMap.values(); | |
| insertGroupToList(a, initMainUi); | |
| } | |
| function insertGroupToList(c, h) { | |
| var g = new Object(); | |
| if (c.length == 0) { | |
| g[0] = __groupTree.createBuddyList(false); | |
| } else { | |
| g[0] = __groupTree.createBuddyList(true); | |
| } | |
| var d = c.length; | |
| var e = g[0]; | |
| for (var b = 0; b < d; b++) { | |
| var j = __groupTree.createGroupItem(c[b]); | |
| e.pushContent(j); | |
| } | |
| var f = ""; | |
| var a = g[0]; | |
| f += a.toHtmlString(); | |
| __groupTree.setInnerHtml(f); | |
| __isOkGroupList = true; | |
| if (typeof h == "function") { | |
| if (__isOkBuddyList && __isOkGroupList) { | |
| h(); | |
| } | |
| } | |
| f = null; | |
| } | |
| var __spRetry = 0; | |
| function setPersonalInfo(b) { | |
| var a = new Object(); | |
| a.url = formatString(setPersonalInfoUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "Impresa": b, | |
| "ssid": __sessionId | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| a.success = function(d, e) { | |
| var c = d; | |
| if (c.rc && c.rc == 200) { | |
| __spRetry = 0; | |
| $("#user_impresa") | |
| .text(!b ? "请输入心情短语..." : cnSubstr(b, 40, false)); | |
| __user.i = b; | |
| } else { | |
| retrySetPersonInfo(b, c.rc); | |
| } | |
| }; | |
| a.error = function(c, e, d) { | |
| retrySetPersonInfo(b, e); | |
| }; | |
| $.ajax(a); | |
| } | |
| function updateLocalName(a) { | |
| $.ajax({ | |
| type: "POST", | |
| url: formatString(setContactInfoUrl, __version++), | |
| data: { | |
| "ssid": __sessionId, | |
| "UserId": a, | |
| "localName": "testss" + __version | |
| }, | |
| success: function(b) { | |
| var c = __contactMap.get(a); | |
| updateContactInfo(c); | |
| } | |
| }); | |
| } | |
| function retrySetPersonInfo(a, b) { | |
| if (__spRetry < 3) { | |
| __spRetry++; | |
| var c = this.data; | |
| window.setTimeout(function() { | |
| setPersonalInfo(a); | |
| }, 500); | |
| } else { | |
| __spRetry = 0; | |
| alert("设置个人资料失败,错误原因:" + b); | |
| } | |
| } | |
| function setSmsOnline(b) { | |
| var a = new Object(); | |
| a.success = setSmsOnlineSuccess; | |
| a.error = setSmsOnlineError; | |
| a.url = formatString(setSmsOnlineUrl, __version++); | |
| a.type = "POST"; | |
| a.data = b; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| function setSmsOnlineSuccess(b, c) { | |
| var a = b; | |
| if (typeof a.rc == "number" && a.rc == 200) {} else {} | |
| } | |
| function setSmsOnlineError(a, c, b) {} | |
| var __setPresRetry = 0; | |
| function setPresence(c, b) { | |
| var a = new Object(); | |
| a.url = formatString(setPresenceUrl, __version++); | |
| a.type = "POST"; | |
| a.data = c; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| a.success = function(e, g) { | |
| var d = e; | |
| if (typeof d.rc == "number" && d.rc == 200) { | |
| __setPresRetry = 0; | |
| updateStatusDesc(b); | |
| } else { | |
| if (__setPresRetry < 3) { | |
| __setPresRetry++; | |
| var f = objects(this.data); | |
| window.setTimeout(function() { | |
| setPresence(f, b); | |
| }, 500); | |
| } else { | |
| __setPresRetry = 0; | |
| alert("设置状态失败, 错误原因:" + d.rc); | |
| } | |
| } | |
| }; | |
| a.error = function(d, g, f) { | |
| if (__setPresRetry < 3) { | |
| __setPresRetry++; | |
| var e = objects(this.data); | |
| window.setTimeout(function() { | |
| setPresence(e, b); | |
| }, 500); | |
| } else { | |
| __setPresRetry = 0; | |
| alert("设置状态失败, 错误原因:" + g); | |
| } | |
| }; | |
| $.ajax(a); | |
| } | |
| function sendDirectSMS(d, c, a) { | |
| var b = new Object(); | |
| b.type = "POST"; | |
| b.dataType = "json"; | |
| b.cache = false; | |
| b.data = { | |
| "UserName": __user.uid, | |
| "msg": c, | |
| "receivers": a, | |
| "ssid": __sessionId | |
| }; | |
| b.url = formatString(SendDirectSMSUrl, __version++); | |
| b.success = function(e, f) { | |
| if ( !! e && typeof e.rc == "number") { | |
| switch (e.rc) { | |
| case 280: | |
| break; | |
| case 401: | |
| d.logErrorInfo("没有给对方发送短信的授权"); | |
| break; | |
| case 403: | |
| d.logErrorInfo("服务器关闭直接短信功能"); | |
| break; | |
| case 405: | |
| d.logErrorInfo("目的用户不接受"); | |
| break; | |
| case 406: | |
| d.logErrorInfo("消息内容包含敏感词"); | |
| break; | |
| case 422: | |
| d.logErrorInfo("未开通直接短信服务"); | |
| break; | |
| case 486: | |
| d.logErrorInfo("您暂时无法发送短信,请稍后再试。"); | |
| break; | |
| case 488: | |
| d.logErrorInfo("用户停机"); | |
| break; | |
| case 494: | |
| d.logErrorInfo("您的飞信账号处于系统保护状态,限制了该功能的使用。请手机发送短信U到12520解除限制后重新登录。"); | |
| break; | |
| default: | |
| d.logErrorInfo("消息发送失败: " + cnSubstr(c, 18)); | |
| break; | |
| } | |
| } | |
| }; | |
| b.error = function() { | |
| d.logErrorInfo("消息发送失败: " + cnSubstr(c, 18)); | |
| }; | |
| $.ajax(b); | |
| } | |
| function sendSMS(d, c, a) { | |
| var b = new Object(); | |
| b.type = "POST"; | |
| b.dataType = "json"; | |
| b.cache = false; | |
| b.data = { | |
| "UserName": __user.uid, | |
| "Message": c, | |
| "Receivers": a, | |
| "ssid": __sessionId | |
| }; | |
| b.url = formatString(sendSMSUrl, __version++); | |
| b.success = function(e, f) { | |
| if (typeof e.rc == "number") { | |
| switch (e.rc) { | |
| case 200: | |
| break; | |
| case 310: | |
| d.logErrorInfo("Session会话过期!"); | |
| break; | |
| case 311: | |
| d.logErrorInfo("客户端请求参数错误!"); | |
| break; | |
| case 400: | |
| d.logErrorInfo("信令参数错误!"); | |
| break; | |
| case 406: | |
| d.logErrorInfo("消息有敏感词!"); | |
| break; | |
| case 422: | |
| d.logErrorInfo("没有开通直接短信!"); | |
| break; | |
| case 486: | |
| __leftSmsCount = e.rv.day; | |
| if (!__user.isCM) { | |
| d.logErrorInfo("您的短信配额已用完,暂时无法发送短信。"); | |
| } else { | |
| d.logErrorInfo("对不起,今日您发送短信数量已达上限,请明天再发"); | |
| } | |
| break; | |
| case 4861: | |
| __leftSmsCount = e.rv.day; | |
| if (!__user.isCM) { | |
| d.logErrorInfo("您的短信配额已用完,暂时无法发送短信。"); | |
| } else { | |
| d.logErrorInfo("对不起,今日您发送短信数量已达上限,请明天再发"); | |
| } | |
| break; | |
| case 4862: | |
| __leftSmsCount = e.rv.month; | |
| if (!__user.isCM) { | |
| d.logErrorInfo("您的短信配额已用完,暂时无法发送短信。"); | |
| } else { | |
| d.logErrorInfo("对不起,本月您发送短信数量已达上限,请下月再发"); | |
| } | |
| break; | |
| case 4863: | |
| d.logErrorInfo("超过未发送限制!"); | |
| break; | |
| case 4864: | |
| d.logErrorInfo("接收人数限制!"); | |
| break; | |
| case 4865: | |
| d.logErrorInfo("发送时间限制!"); | |
| break; | |
| case 494: | |
| d.logErrorInfo("您的飞信账号处于系统保护状态,限制了该功能的使用。请手机发送短信U到12520解除限制后重新登录。"); | |
| break; | |
| default: | |
| d.logErrorInfo("消息发送失败: " + cnSubstr(c, 18)); | |
| break; | |
| } | |
| } | |
| }; | |
| b.error = function(e, g, f) { | |
| d.logErrorInfo("消息发送失败: " + cnSubstr(c, 18)); | |
| }; | |
| $.ajax(b); | |
| } | |
| function sendMessage(g, b, f, a, e) { | |
| var d = __contactMap.get(b); | |
| if (__user.isCM && (d.isCT || d.isCU) && a) { | |
| sendDirectSMS(g, f, b); | |
| return; | |
| } | |
| if ((__user.isCT || __user.isCU) && d.isCM && a) { | |
| sendSMS(g, f, b); | |
| return; | |
| } | |
| var c = new Object(); | |
| c.success = function(i, j) { | |
| var h = i; | |
| if (typeof h.rc == "number" && h.rc >= 200 && h.rc < 300) {} else { | |
| if (typeof h.rc == "number" && h.rc == 420) { | |
| g.logErrorInfo("对方版本过旧,您无法向其发起陌生人消息。"); | |
| g.inputPermission = 420; | |
| g.enableInput(false); | |
| } else { | |
| if (typeof h.rc == "number" && h.rc == 486) { | |
| if (!__user.isCM) { | |
| g.logErrorInfo("您的短信配额已用完,暂时无法发送短信。"); | |
| } else { | |
| g.logErrorInfo("您暂时无法发送短信,请稍后再试。"); | |
| } | |
| } else { | |
| if (typeof h.rc == "number" && h.rc == 494) { | |
| g.logErrorInfo("您的飞信账号处于系统保护状态,限制了该功能的使用。请手机发送短信U到12520解除限制后重新登录。"); | |
| } else { | |
| if (typeof h.rc == "number" && h.rc == 405) {} else { | |
| g.logErrorInfo("消息发送失败: " + cnSubstr(f, 18)); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| c.error = function(h, j, i) { | |
| g.logErrorInfo("消息发送失败: " + cnSubstr(f, 18)); | |
| }; | |
| c.url = formatString(sendMessageUrl, __version++); | |
| c.type = "POST"; | |
| c.data = { | |
| "To": b, | |
| "IsSendSms": a ? "1" : "0", | |
| "msg": f, | |
| "ssid": __sessionId | |
| }; | |
| c.dataType = "json"; | |
| c.cache = false; | |
| $.ajax(c); | |
| } | |
| function inviteRobot(b) { | |
| var a = new Object(); | |
| a.url = formatString(sendMessageUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "To": b, | |
| "IsSendSms": "0", | |
| "msg": "WEB", | |
| "ssid": __sessionId | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| function OpBuddy(c, b, e, d) { | |
| var a = new Object(); | |
| a.success = function(g, k) { | |
| var f = g; | |
| if (typeof f.rc == "number" && f.rc == 200) { | |
| var i = __contactMap.get(c); | |
| if (b == "0") { | |
| __contactMap.remove(c); | |
| extendContact(i); | |
| eachBuddyList(i, function(l) { | |
| __contactTree.deleteBuddyItem(parseInt(l), i.uid); | |
| }); | |
| } else { | |
| if (i) { | |
| i.isBk = (b == "2" ? 0 : 1); | |
| extendContact(i); | |
| eachBuddyList(i, function(l) { | |
| __contactTree.updateBuddyItem(parseInt(l), i); | |
| }); | |
| var h = getUserPortraitUrl(i, "5"); | |
| if (__chatFooterItemMap.containsKey(i.uid)) { | |
| __chatFooterItemMap.get(i.uid) | |
| .updateItem(i, h); | |
| } | |
| if (__remindMsgItemMap.containsKey(i.uid)) { | |
| __remindMsgItemMap.get(i.uid) | |
| .updateItem(i, h); | |
| } | |
| if (__chatWindowMap.containsKey(i.uid)) { | |
| __chatWindowMap.get(i.uid) | |
| .setBuddyStatus(i); | |
| } | |
| } else { | |
| if (b == "1") { | |
| var j = new ContactDefault(); | |
| j.uid = parseInt(c); | |
| j.isBk = 1; | |
| j.ct = -1; | |
| __contactMap.put(c, j); | |
| } | |
| } | |
| } | |
| if (typeof e == "function") { | |
| e(g, k); | |
| } | |
| } | |
| }; | |
| a.error = function(f, h, g) { | |
| if (typeof d == "function") { | |
| d(f, h, g); | |
| } | |
| }; | |
| a.url = formatString(opBuddyUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "To": c, | |
| "Op": b, | |
| "ssid": __sessionId | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| function handleAddBuddy(c, a) { | |
| if (typeof a == "undefined" || a == null) { | |
| a = 0; | |
| } | |
| var b = new Object(); | |
| b.success = function(e, f) { | |
| var d = e; | |
| if (typeof d.rc == "number" && d.rc == 200 && c.data.Result == 1) { | |
| $.extend(d.rv, c.data.Buddy); | |
| addBuddySuccess(d.rv); | |
| } | |
| if (c.data.Blocked == 1 && c.data.Result == 0) { | |
| OpBuddy(c.data.Buddy.uid, "1"); | |
| } | |
| }; | |
| b.error = function(d, f, e) { | |
| if (a < 3) { | |
| a++; | |
| handleAddBuddy(c, a); | |
| } | |
| }; | |
| b.url = formatString(handleAddBuddyUrl, __version++); | |
| b.type = "POST"; | |
| b.data = { | |
| "BuddyId": c.data.Buddy.uid, | |
| "Result": c.data.Result, | |
| "LocalName": c.data.LocalName, | |
| "BuddyList": c.data.BuddyList, | |
| "ssid": __sessionId | |
| }; | |
| b.dataType = "json"; | |
| b.cache = false; | |
| $.ajax(b); | |
| } | |
| function addChatFriend(c, d, b) { | |
| var a = new Object(); | |
| if (typeof d == "function") { | |
| a.success = d; | |
| } | |
| if (typeof b == "function") { | |
| a.error = b; | |
| } | |
| a.url = formatString(addChatFriendUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "Uri": c, | |
| "ssid": __sessionId | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| function addChatFriendV2(a, e, d, b) { | |
| var c = {}; | |
| c.url = formatString(addChatFriendUrl, __version++); | |
| c.type = "post"; | |
| c.dataType = "json"; | |
| c.data = { | |
| "addType": a, | |
| "userValue": e, | |
| "ssid": __sessionId | |
| }; | |
| c.cache = false; | |
| if (typeof d == "function") { | |
| c.success = d; | |
| } | |
| if (typeof b == "function") { | |
| c.error = b; | |
| } | |
| $.ajax(c); | |
| } | |
| function AddBuddy(b) { | |
| var c = $.extend({ | |
| t: 0, | |
| a: 0, | |
| u: "", | |
| p: 0, | |
| d: __user.displayName.substr(0, 5), | |
| l: "", | |
| b: 1, | |
| s: 0, | |
| c: "", | |
| cid: "", | |
| successCallback: function() {}, | |
| failCallback: function() {}, | |
| successCallback2: function(d) {} | |
| }, b); | |
| var a = new Object(); | |
| a.url = formatString(addBuddyUrl, __version++); | |
| a.type = "POST"; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| a.data = { | |
| "type": c.t, | |
| "UserName": c.u, | |
| "AddType": c.a, | |
| "PhraseId": c.p, | |
| "Desc": c.d, | |
| "LocalName": c.l, | |
| "BuddyLists": c.b, | |
| "SubscribeFlag": c.s, | |
| "Ccp": c.c, | |
| "CcpId": c.cid, | |
| "ssid": __sessionId | |
| }; | |
| a.success = function(d, e) { | |
| c.successCallback2(d); | |
| if (typeof d.rc == "number" && d.rc == 200) { | |
| addBuddySuccess(d.rv); | |
| c.successCallback(); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 520) { | |
| alert("您的好友数已达上限。"); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 521) { | |
| alert(c.u + "已在您的好友列表中。"); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 522) { | |
| alert("对不起,您是飞信互联网用户(未绑定手机号),不能添加未开通移动业务的移动手机号为好友。"); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 523) { | |
| alert("不能将自己添加为好友。"); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 312) { | |
| alert("您输入的验证码有误,请重新输入。"); | |
| $("#addBuddy_ccps") | |
| .select(); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 404) { | |
| alert("您所输入的号码不存在。"); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 486) { | |
| alert("您添加好友的请求过于频繁,请稍后再试。"); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 495) { | |
| alert("对不起,您权限不足,不能添加此好友。"); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 494) { | |
| alert("您的飞信账号处于系统保护状态,限制了该功能的使用。请手机发送短信U到12520解除限制后重新登录。"); | |
| } else { | |
| if (typeof d.rc == "number" && d.rc == 400) { | |
| alert("添加好友失败,请您检查对方的手机号或者飞信号是否填写正确。"); | |
| } else { | |
| alert("添加好友失败,请重试。错误代码:800000" + d.rc); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| a.error = function(d, f, e) { | |
| c.failCallback(); | |
| alert("添加好友失败,请重试。错误原因:" + f); | |
| }; | |
| $.ajax(a); | |
| } | |
| function logout(b) { | |
| __isNormalLogout = true; | |
| var a = new Object(); | |
| a.url = formatString(logoutUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "ssid": __sessionId | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| if (b) { | |
| window.setTimeout("window.location.href = '" + loginPageUrl + "'", 500); | |
| } | |
| $.ajax(a); | |
| } | |
| function initUserInfo() { | |
| var a = cnSubstr(__user.displayName, 18); | |
| $("#welcome_name") | |
| .text(a); | |
| $("#user_name") | |
| .text(a); | |
| $("#user_sid") | |
| .text(__user.sid); | |
| $("#user_impresa") | |
| .text(cnSubstr(__user.i, 40, false) || "请输入心情短语..."); | |
| $("#user_portrait") | |
| .attr("src", getUserPortraitUrl(__user, "3")); | |
| if (__user.isCM && __user.cas == "0") { | |
| if (__isSmsOnline.test(__user.sms)) { | |
| $("#input_rec_msg") | |
| .removeAttr("disabled") | |
| .attr("checked", "true"); | |
| } else { | |
| $("#input_rec_msg") | |
| .removeAttr("disabled") | |
| .removeAttr("checked"); | |
| } | |
| } else { | |
| if (__user.isCT || __user.isCU) { | |
| $("#input_rec_msg") | |
| .css({ | |
| "display": "none" | |
| }); | |
| $("#input_rec_msg") | |
| .next() | |
| .css({ | |
| "display": "none" | |
| }); | |
| $("#input_rec_msg") | |
| .parent() | |
| .prev() | |
| .addClass("none"); | |
| } else { | |
| $("#input_rec_msg") | |
| .removeAttr("checked") | |
| .attr("disabled", "disabled"); | |
| } | |
| } | |
| if (__user.ca.toLowerCase() == "cmcc") { | |
| if (!$("#vip_icon") | |
| .attr("id")) { | |
| $(".service_icon") | |
| .append('<li><a id="vip_icon" href="' + __vipUrl + '" title="会员" class="sicon-vip" target="_blank"></a></li>'); | |
| } | |
| } | |
| } | |
| function initUserStatusDiv() { | |
| var b = $("#user_impresa"); | |
| var i = $("#user_impresa_input"); | |
| var e = i.find("input:first"); | |
| var f = $("#user_status"); | |
| var d = $("#set_user_status"); | |
| var c = getCookie("webim_usersid"); | |
| $("#welcome_name") | |
| .text(c); | |
| $("#user_name") | |
| .text(c); | |
| $("#user_sid") | |
| .text(c); | |
| var a = getCookie("webim_userstatus"); | |
| switch (a) { | |
| case "0": | |
| f.find("em") | |
| .text("( 隐身 )"); | |
| break; | |
| case "100": | |
| f.find("em") | |
| .text("( 离开 )"); | |
| break; | |
| case "400": | |
| f.find("em") | |
| .text("( 在线 )"); | |
| break; | |
| case "600": | |
| f.find("em") | |
| .text("( 忙碌 )"); | |
| break; | |
| default: | |
| f.find("em") | |
| .text("( 在线 )"); | |
| break; | |
| } | |
| b.text("请输入心情短语..."); | |
| b.bind("click", function() { | |
| b.css("display", "none"); | |
| i.css("display", ""); | |
| e.focus(); | |
| }) | |
| .bind("mouseover", function() { | |
| b.removeClass() | |
| .addClass("sword_chg"); | |
| }) | |
| .bind("mouseout", function() { | |
| b.removeClass(); | |
| }); | |
| e.bind("focus", function() { | |
| e.val(__user.i) | |
| .select(); | |
| }) | |
| .bind("blur", function() { | |
| var j = e.val() | |
| .trim(); | |
| if (j != __user.i) { | |
| setPersonalInfo(j); | |
| } | |
| b.css("display", ""); | |
| i.css("display", "none"); | |
| }) | |
| .bind("keydown", function(k) { | |
| k = window.event || k; | |
| if (k.keyCode == 13) { | |
| var j = e.val() | |
| .trim(); | |
| if (j != __user.i) { | |
| setPersonalInfo(j); | |
| } | |
| b.css("display", ""); | |
| i.css("display", "none"); | |
| } | |
| }); | |
| f.bind("mouseover", function() { | |
| if (this.className != "focus") { | |
| this.className = "hover"; | |
| } | |
| }) | |
| .bind("mouseout", function() { | |
| if (this.className != "focus") { | |
| this.className = ""; | |
| } else { | |
| __hideUserStatusSetterTimer = setTimeout(function() { | |
| f.removeClass(); | |
| d.css("display", "none"); | |
| }, 500); | |
| } | |
| }) | |
| .bind("click", function() { | |
| if (this.className != "focus") { | |
| this.className = "focus"; | |
| var j = $(this) | |
| .offset(); | |
| d.css({ | |
| "display": "block", | |
| "top": "61px", | |
| "left": (j.left + 3) + "px" | |
| }); | |
| } else { | |
| this.className = "hover"; | |
| d.css("display", "none"); | |
| } | |
| }); | |
| d.bind("mouseover", function(j) { | |
| clearTimeout(__hideUserStatusSetterTimer); | |
| }) | |
| .bind("mouseout", function(j) { | |
| if (isMouseOut(this, j)) { | |
| f.removeClass(); | |
| d.css("display", "none"); | |
| } | |
| }); | |
| (d.find("li")) | |
| .bind("mouseover", function() { | |
| this.className = "hover"; | |
| }) | |
| .bind("mouseout", function() { | |
| this.className = ""; | |
| }) | |
| .bind("click", function() { | |
| f.removeClass(); | |
| d.css("display", "none"); | |
| if (this.id == "userdefined_status") { | |
| createCustomPresTab(); | |
| } else { | |
| setPresence({ | |
| "Presence": $(this) | |
| .attr("status"), | |
| "Custom": $(this) | |
| .text(), | |
| "ssid": __sessionId | |
| }, $(this) | |
| .text()); | |
| } | |
| }); | |
| var g = $("#input_rec_msg"); | |
| g.removeAttr("checked") | |
| .attr("disabled", "disabled"); | |
| g.bind("click", function() { | |
| d.css({ | |
| "display": "none" | |
| }); | |
| if (!this.checked) { | |
| this.checked = ""; | |
| if (!__setSmsWindow) { | |
| __setSmsWindow = $.fn.setSmsWindow({ | |
| onConfirm: function(j, l) { | |
| var k = "1.00:00:00"; | |
| switch (l) { | |
| case "1": | |
| k = "1.00:00:00"; | |
| break; | |
| case "2": | |
| k = "3.00:00:00"; | |
| break; | |
| case "3": | |
| k = "7.00:00:00"; | |
| break; | |
| case "4": | |
| k = "36500.00:00:00"; | |
| break; | |
| default: | |
| break; | |
| } | |
| setSmsOnline({ | |
| "ReceiveSms": "0", | |
| "Time": k, | |
| "ssid": __sessionId | |
| }); | |
| }, | |
| onCancel: function() { | |
| g.attr("checked", "true"); | |
| } | |
| }); | |
| __setSmsWindow.show(); | |
| } else { | |
| __setSmsWindow.show(); | |
| } | |
| } else { | |
| this.checked = "checked"; | |
| setSmsOnline({ | |
| "ReceiveSms": "0", | |
| "ssid": __sessionId | |
| }); | |
| } | |
| }); | |
| var h = $("#input_rec_sound"); | |
| h.click(function() { | |
| if (h.attr("checked") == true) { | |
| __isOpenSound = true; | |
| } else { | |
| __isOpenSound = false; | |
| } | |
| }); | |
| } | |
| function initContactList() { | |
| var a = __contactMap.values(); | |
| insertBuddyToList(a, initMainUi); | |
| } | |
| function initMainUi() { | |
| $("#logging") | |
| .css("display", "none"); | |
| getConnect(); | |
| var a; | |
| if (__user.creds && __user.creds.length > 0) { | |
| a = formatString(__activityUrl, encodeURIComponent(__user.creds[0].c)); | |
| } else { | |
| a = formatString(__activityUrl, ""); | |
| } | |
| __mainTabWindow.createTab("发短信", "content/freeSms.htm", false); | |
| $("#tab_1") | |
| .click(); | |
| $("#tab_1") | |
| .click(function() { | |
| $.increaseCounters("500400001"); | |
| }); | |
| initContentHeight(); | |
| initGroupListHeight(); | |
| setTimeout(function() { | |
| getALInfo(); | |
| }, 1000); | |
| } | |
| function insertBuddyToList(e, m) { | |
| __buddyList.sort(buddyListComparator); | |
| var k = new Object(); | |
| var j = __buddyList.length; | |
| for (var d = 0; d < j; d++) { | |
| var c = __contactTree.isBuddyListOpen(__buddyList[d].id); | |
| k[__buddyList[d].id] = __contactTree.createBuddyList(__buddyList[d], c); | |
| } | |
| var f = e.length; | |
| var h = new Array(); | |
| var g = 50; | |
| var b = Math.floor((f - 1) / g) + 1; | |
| for (var d = 0; d < b; d++) { | |
| h.push(false); | |
| } | |
| function a() { | |
| var n = 0; | |
| var i = window.setInterval(function() { | |
| if (n >= f) { | |
| window.clearInterval(i); | |
| return; | |
| } | |
| var o = Math.min(f, n + g); | |
| for (var p = n; p < o; p++) { | |
| if (e[p].isBk == 1 && e[p].ct == -1) { | |
| continue; | |
| } else { | |
| eachBuddyList(e[p], function(s) { | |
| var r = k[s]; | |
| if (r) { | |
| var q = __contactTree.createBuddyItem(e[p]); | |
| r.pushContent(q); | |
| } | |
| }); | |
| } | |
| } | |
| sendToSwfJD(__loginProcess + Math.round(30 * (o - n) / f)); | |
| h[n / g] = true; | |
| n += g; | |
| }, 50); | |
| } | |
| a(); | |
| var l = window.setInterval(function() { | |
| var p = 0; | |
| var o = b - 1; | |
| while (p <= o) { | |
| if (!h[p] || !h[o]) { | |
| break; | |
| } | |
| p++; | |
| o--; | |
| } | |
| if (p > o) { | |
| window.clearInterval(l); | |
| var r = ""; | |
| for (var q = 0; q < j; q++) { | |
| var n = k[__buddyList[q].id]; | |
| r += n.toHtmlString(); | |
| } | |
| __contactTree.setInnerHtml(r); | |
| __isOkBuddyList = true; | |
| if (typeof m == "function") { | |
| if (__isOkBuddyList && __isOkGroupList) { | |
| m(); | |
| } | |
| } | |
| r = null; | |
| } | |
| }, 1000); | |
| } | |
| function updatePersonalInfo(d) { | |
| $.extend(__user, d); | |
| extendUser(); | |
| setRemindMsgCookie(__user.sid, __user.displayName, null, __sessionId); | |
| initUserInfo(); | |
| var a = __chatWindowMap.values(); | |
| var c = a.length; | |
| for (var b = 0; b < c; b++) { | |
| if (a[b].setUserInfo) { | |
| a[b].setUserInfo(__user); | |
| } | |
| } | |
| } | |
| function addBuddyWithReply(e, b) { | |
| var a = null; | |
| if (__contactMap.containsKey(e.uid)) { | |
| a = __contactMap.get(e.uid); | |
| var d = (a.isBk == 1 && a.ct == -1); | |
| $.extend(a, e); | |
| switch (e.ut) { | |
| case 1: | |
| a.ct = 0; | |
| break; | |
| case 2: | |
| a.ct = 2; | |
| break; | |
| case 3: | |
| a.isBk = 1; | |
| break; | |
| default: | |
| break; | |
| } | |
| extendContact(a); | |
| if (b) { | |
| eachBuddyList(a, function(c) { | |
| if (!(a.isBk == 1 && a.ct == -1)) { | |
| if (d) { | |
| __contactTree.insertBuddyItem(a, parseInt(c)); | |
| } else { | |
| __contactTree.updateBuddyItem(parseInt(c), a); | |
| } | |
| } | |
| }); | |
| } | |
| } else { | |
| a = new ContactDefault(); | |
| $.extend(a, e); | |
| switch (e.ut) { | |
| case 1: | |
| a.ct = 0; | |
| break; | |
| case 2: | |
| a.ct = 2; | |
| break; | |
| case 3: | |
| a.isBk = 1; | |
| a.ct == -1; | |
| break; | |
| default: | |
| break; | |
| } | |
| extendContact(a); | |
| __contactMap.put(a.uid, a); | |
| if (b) { | |
| eachBuddyList(a, function(c) { | |
| __contactTree.insertBuddyItem(a, parseInt(c)); | |
| }); | |
| } | |
| } | |
| } | |
| function removeBuddyWithReply(g, d) { | |
| var b = __contactMap.get(g.uid) || g; | |
| if (!b) { | |
| return; | |
| } | |
| if (1 == g.ut) { | |
| if (1 == b.isBk) { | |
| var a = new ContactDefault(); | |
| a.uid = g.uid; | |
| a.isBk = 1; | |
| a.ct = -1; | |
| __contactMap.remove(g.uid); | |
| __contactMap.put(a.uid, a); | |
| } else { | |
| for (var e = 0, f = __buddyList.length; e < f; e++) { | |
| __contactTree.deleteBuddyItem(parseInt(__buddyList[e].id), g.uid); | |
| } | |
| __contactMap.remove(g.uid); | |
| } | |
| if (d) { | |
| for (var e = 0, f = __buddyList.length; e < f; e++) { | |
| __contactTree.deleteBuddyItem(parseInt(__buddyList[e].id), g.uid); | |
| } | |
| } | |
| } else { | |
| if (2 == g.ut) { | |
| if (2 == b.ct) { | |
| if (1 == b.isBk) { | |
| var a = new ContactDefault(); | |
| a.uid = g.uid; | |
| a.isBk = 1; | |
| a.ct = -1; | |
| __contactMap.remove(g.uid); | |
| __contactMap.put(a.uid, a); | |
| } else { | |
| __contactMap.remove(g.uid); | |
| } | |
| } | |
| if (d) { | |
| __contactTree.deleteBuddyItem(-1, g.uid); | |
| } | |
| } else { | |
| if (3 == g.ut) { | |
| if (-1 == b.ct && 1 == b.isBk) { | |
| __contactMap.remove(g.uid); | |
| } else { | |
| b.isBk = 0; | |
| extendContact(b); | |
| if (d) { | |
| eachBuddyList(b, function(c) { | |
| __contactTree.updateBuddyItem(parseInt(c), b); | |
| }); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| function updateBuddyWithReply(e, b) { | |
| var a = __contactMap.get(e.uid); | |
| if (!a) { | |
| return; | |
| } | |
| var d = ""; | |
| if (a.ln) { | |
| d = a.ln; | |
| } else { | |
| if (a.mn && a.sid) { | |
| d = a.mn + "(" + a.sid + ")"; | |
| } else { | |
| if (a.mn) { | |
| d = a.mn; | |
| } else { | |
| if (a.sid) { | |
| d = a.sid; | |
| } else { | |
| if (a.uri) { | |
| d = (new jCompactUri(a.uri)) | |
| .mobileNoOrSid; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| if (typeof e.rs == "number" && e.rs == 1) { | |
| a.ct = a.bss == 0 ? 1 : 0; | |
| updateContactInfo(e, b); | |
| $.fn.fetionHintWindow({ | |
| modal: false | |
| }) | |
| .show("(" + d + ")同意添加为好友。 ", "提示", "OK"); | |
| } else { | |
| if (typeof e.rs == "number" && e.rs == 2) { | |
| updateContactInfo(e, b); | |
| $.fn.fetionHintWindow({ | |
| modal: false | |
| }) | |
| .show("(" + d + ")拒绝添加为好友。 ", "提示", "OK"); | |
| } else { | |
| updateContactInfo(e, b); | |
| } | |
| } | |
| } | |
| function updateContactInfo(f, b) { | |
| var a = __contactMap.get(f.uid); | |
| if (!a) { | |
| return; | |
| } | |
| $.extend(a, f); | |
| extendContact(a); | |
| if (b) { | |
| eachBuddyList(a, function(c) { | |
| __contactTree.updateBuddyItem(parseInt(c), a); | |
| }); | |
| } | |
| var e = getUserPortraitUrl(f, "5"); | |
| if (__chatFooterItemMap.containsKey(f.uid)) { | |
| __chatFooterItemMap.get(f.uid) | |
| .updateItem(a, e); | |
| } | |
| if (__remindMsgItemMap.containsKey(f.uid)) { | |
| __remindMsgItemMap.get(f.uid) | |
| .updateItem(a, e); | |
| } | |
| var d = __chatWindowMap.get(f.uid); | |
| if (d) { | |
| d.setBuddyInfo(a); | |
| d.setBuddyStatus(a); | |
| } | |
| } | |
| var __searchKeyword = ""; | |
| function initi__searchInput() { | |
| $("#inputSearchFriends") | |
| .bind("focus", searchFocus) | |
| .bind("blur", searchBlur) | |
| .bind("keydown", searchKeydown) | |
| .bind("keyup", searchKeyup); | |
| $("#btnSearchClear") | |
| .bind("click", function(a) { | |
| clearSearch(); | |
| this.style.display = ""; | |
| stopPropagation(a); | |
| return false; | |
| }); | |
| } | |
| function searchFocus() { | |
| this.value = ""; | |
| $("#search_result") | |
| .css("display", "none"); | |
| $("#btnSearchClear") | |
| .css("display", "block"); | |
| } | |
| function searchBlur() { | |
| this.className = ""; | |
| if (this.value == "") { | |
| this.value = __searchPrompt; | |
| $("#search_result") | |
| .css("display", "none"); | |
| $("#btnSearchClear") | |
| .css({ | |
| "display": "none" | |
| }); | |
| } | |
| } | |
| function searchKeydown(a) { | |
| a = window.event || a; | |
| switch (a.keyCode) { | |
| case 38: | |
| moveSelectedContact("up"); | |
| break; | |
| case 40: | |
| moveSelectedContact("down"); | |
| break; | |
| case 13: | |
| if (__searchKeyword == this.value) { | |
| openSelectedContact(this, a); | |
| } else { | |
| searchContact(this, a); | |
| } | |
| break; | |
| default: | |
| searchContact(this, a); | |
| break; | |
| } | |
| } | |
| function searchKeyup(a) { | |
| a = window.event || a; | |
| switch (a.keyCode) { | |
| case 38: | |
| case 40: | |
| break; | |
| case 13: | |
| if (__searchKeyword == this.value) { | |
| openSelectedContact(this, a); | |
| } else { | |
| searchContact(this, a); | |
| } | |
| break; | |
| default: | |
| searchContact(this, a); | |
| break; | |
| } | |
| } | |
| function moveSelectedContact(e) { | |
| var c = $("#search_result") | |
| .find("div > ul"); | |
| var b = c.find("li"); | |
| var d = b.length; | |
| var g = 0; | |
| if (e == "up") { | |
| g = -1; | |
| } else { | |
| if (e == "down") { | |
| g = 1; | |
| } | |
| } | |
| for (var a = 0; a < d; a++) { | |
| if (b.eq(a) | |
| .attr("class") == "hover") { | |
| b.eq(a) | |
| .removeClass("hover"); | |
| a += g; | |
| break; | |
| } | |
| } | |
| var f = (a + d) % d; | |
| b.eq(f) | |
| .addClass("hover"); | |
| c.scrollTop(Math.floor(f / 4) * 4 * b.eq(0) | |
| .height()); | |
| } | |
| function openSelectedContact(a, b) { | |
| a.blur(); | |
| setTimeout(function() { | |
| var c = $("#search_result") | |
| .find("div > ul > .hover:first"); | |
| if (c) { | |
| c.click(); | |
| } | |
| }, 300); | |
| } | |
| function searchContact(a, p) { | |
| if (__searchKeyword == a.value) { | |
| return; | |
| } | |
| var k = $("#search_result"); | |
| k.find("div > ul > li") | |
| .remove(); | |
| __searchKeyword = a.value; | |
| if (a.value == "") { | |
| k.css("display", "none"); | |
| $("#btnSearchClear") | |
| .css({ | |
| "display": "none" | |
| }); | |
| return; | |
| } | |
| __searchKeyword = a.value; | |
| var o = __contactMap.values(); | |
| var b = o.length; | |
| var n = new Array(); | |
| if (__isFirstSearch) { | |
| for (var m = 0; m < b; m++) { | |
| var j = searchHelper.MakeSpellCodeAsWordsAll(o[m].is); | |
| o[m].is = j.bodyContent; | |
| } | |
| __isFirstSearch = false; | |
| } | |
| for (var m = 0; m < b; m++) { | |
| var r = __searchKeyword.toLowerCase(); | |
| var d = new RegExp("[*]+", "gi"); | |
| var g = __searchKeyword.toLowerCase() | |
| .replace(d, ""); | |
| var f = ""; | |
| var c = ""; | |
| try { | |
| f = searchHelper.MakeSpellCodeAsWordsAll(o[m].is) | |
| .bodyContent; | |
| c = searchHelper.MakeSpellCodeAsWordsAll(o[m].pis) | |
| .bodyContent; | |
| } catch (p) {} | |
| if ((o[m].nn && o[m].nn.toLowerCase() | |
| .indexOf(r) >= 0) || (o[m].ln && o[m].ln.toLowerCase() | |
| .indexOf(r) >= 0) || (o[m].mn && o[m].mn.toLowerCase() | |
| .indexOf(r) >= 0) || (f && f.toLowerCase() | |
| .indexOf(g) >= 0) || (c && c.toLowerCase() | |
| .indexOf(g) >= 0)) { | |
| n.push(o[m]); | |
| } | |
| } | |
| var h = n.length; | |
| if (h <= 0) { | |
| k.find("div > ul:first") | |
| .append("<li>没找到匹配的联系人</li>"); | |
| } | |
| n.sort(buddyComparator); | |
| for (var m = 0; m < h; m++) { | |
| var q; | |
| var t = htmlEncode(n[m].displayName); | |
| if (m == 0) { | |
| q = $("<li class='hover'><i class='" + n[m].statusClass + "' /><b>" + t + "</b> <em>" + getStatusDesc(n[m]) + "</em> </li>"); | |
| k.find("div > ul:first") | |
| .append(q); | |
| } else { | |
| q = $("<li><i class='" + n[m].statusClass + "' /><b>" + t + "</b> <em>" + getStatusDesc(n[m]) + "</em> </li>"); | |
| k.find("div > ul:first") | |
| .append(q); | |
| } | |
| q.bind("mouseover", function() { | |
| $("#search_result") | |
| .find("div > ul > .hover") | |
| .removeClass("hover"); | |
| $(this) | |
| .removeClass() | |
| .addClass("hover"); | |
| }) | |
| .bind("click", { | |
| buddyId: n[m].uid | |
| }, function(i) { | |
| openChatWindow(this, i.data.buddyId); | |
| clearSearch(); | |
| $("#btnSearchClear") | |
| .css({ | |
| "display": "none" | |
| }); | |
| }); | |
| } | |
| var l = $(a); | |
| var s = l.offset(); | |
| k.css("display", "block") | |
| .css({ | |
| "top": s.top + l.innerHeight(), | |
| "left": s.left - 26 | |
| }); | |
| $("#btnSearchClear") | |
| .css({ | |
| "display": "block" | |
| }); | |
| } | |
| function clearSearch() { | |
| var b = $("#search_result"); | |
| b.css("display", "none"); | |
| b.find("div > ul > li") | |
| .remove(); | |
| var a = $("#inputSearchFriends"); | |
| if (a.val() != __searchPrompt) { | |
| a.val(__searchPrompt); | |
| } | |
| __searchKeyword = ""; | |
| } | |
| function initContactCard() { | |
| $("#contact_info") | |
| .bind("mouseover", function(a) { | |
| clearTimeout(__hideContactInfoTimer); | |
| if (isMouseOver(this, a)) { | |
| this.style.display = "block"; | |
| } | |
| }) | |
| .bind("mouseout", function(a) { | |
| if (isMouseOut(this, a)) { | |
| this.style.display = "none"; | |
| } | |
| }); | |
| } | |
| function showContactCard(b, a) { | |
| clearTimeout(__hideContactInfoTimer); | |
| var c = __contactMap.get(a); | |
| if (!c) { | |
| return; | |
| } | |
| __initContactInfoTimer = window.setTimeout(function() { | |
| var h = $("#contact_info"); | |
| h.css("display", "none"); | |
| var q = h.find("#contact_portrait"); | |
| var e = h.find("#contact_status"); | |
| var j = h.find("#contact_name"); | |
| q.attr("src", getDefaultPortraitUrl(c)); | |
| var o = getUserPortraitUrl(c, "3"); | |
| cacheUerPortrait(c, o, function(p, r) { | |
| if (c == r) { | |
| q.attr("src", o); | |
| } | |
| }); | |
| j.get(0) | |
| .innerHTML = EmotionNonhtmlReplace(c.displayName, 18, true); | |
| if (c.isVip) { | |
| j.css("color", "red"); | |
| } else { | |
| j.css("color", ""); | |
| } | |
| var l = ""; | |
| if (c.ct == 1) { | |
| l = "尚未开通飞信"; | |
| } else { | |
| var k = new jCompactUri(c.uri); | |
| l = c.sid || (!k.isMobileNo ? k.mobileNoOrSid : ""); | |
| } | |
| h.find("#contact_id") | |
| .text(l); | |
| e.attr("class", c.statusClass); | |
| if (c.uid) { | |
| h.find("#contact_space") | |
| .attr("href", formatString(__contactSpaceUrl, c.uid)) | |
| .css("display", "") | |
| .click(function() { | |
| if (__user.c) { | |
| var p = formatString(__contactSpaceUrl, c.uid, __user.c); | |
| $(this) | |
| .attr("href", p); | |
| } | |
| }); | |
| } else { | |
| h.find("#contact_space") | |
| .attr("href", "#") | |
| .css("display", "none"); | |
| } | |
| if (!c.i || c.ct == 1) { | |
| h.find("#contact_impresa") | |
| .text("") | |
| .css("display", "none"); | |
| h.find("#contact_impresa_line") | |
| .css("display", "none"); | |
| } else { | |
| var m = EmotionNonhtmlReplace(c.i, 106, true); | |
| var d = h.find("#contact_impresa"); | |
| d.get(0) | |
| .innerHTML = m; | |
| d.css("display", ""); | |
| h.find("#contact_impresa_line") | |
| .css("display", ""); | |
| } | |
| if (c.bl == "0") { | |
| h.find("#contact_list") | |
| .text("未分组"); | |
| } else { | |
| if (c.bl == "-1") { | |
| h.find("#contact_list") | |
| .text("陌生人"); | |
| } else { | |
| var g = ""; | |
| var n = __buddyList.length; | |
| eachBuddyList(c, function(r) { | |
| for (var p = 0; p < n; p++) { | |
| if (__buddyList[p].id.toString() == r) { | |
| g += __buddyList[p].n + ";"; | |
| } | |
| } | |
| }); | |
| g = g.trim(";"); | |
| h.find("#contact_list") | |
| .text(g); | |
| } | |
| } | |
| try { | |
| var f = $(b) | |
| .offset(); | |
| if (f.top + h.height() > getViewportHeight() - 20) { | |
| f.top = f.top - h.height() + $(b) | |
| .innerHeight(); | |
| } | |
| } catch (i) {} | |
| __showContactInfoTimer = window.setTimeout(function() { | |
| h.css({ | |
| "display": "block", | |
| "top": f.top, | |
| "left": f.left - h.outerWidth() | |
| }); | |
| }, 300); | |
| }, 500); | |
| } | |
| function hideContactCard(b, a) { | |
| clearTimeout(__initContactInfoTimer); | |
| clearTimeout(__showContactInfoTimer); | |
| __hideContactInfoTimer = setTimeout(function() { | |
| var c = $("#contact_info"); | |
| c.css({ | |
| "display": "none" | |
| }); | |
| }, 200); | |
| } | |
| function initOperateCard() { | |
| var a = $("#operate_info"); | |
| a.bind("mouseover", function(b) { | |
| clearTimeout(__hideOperateInfoTimer); | |
| this.style.display = "block"; | |
| }) | |
| .bind("mouseout", function(b) { | |
| if (isMouseOut(this, b)) { | |
| this.style.display = "none"; | |
| } | |
| }); | |
| a.find("div>ul>li") | |
| .bind("mouseover", function() { | |
| this.className = "hover"; | |
| }) | |
| .bind("mouseout", function() { | |
| this.className = ""; | |
| }); | |
| } | |
| function showOperateCard(e, k) { | |
| var a = __contactMap.get(k); | |
| var c = $("#operate_info"); | |
| var f = $("#operate_items"); | |
| f.find("#operate_msg") | |
| .unbind() | |
| .bind("click", function() { | |
| openChatWindow(e, k); | |
| c.css({ | |
| "display": "none" | |
| }); | |
| return false; | |
| }); | |
| f.find("#operate_block") | |
| .unbind() | |
| .text(a.isBk == 1 ? "移出黑名单" : "加入黑名单") | |
| .bind("click", function() { | |
| c.css({ | |
| "display": "none" | |
| }); | |
| OpBuddy(a.uid, a.isBk == 1 ? "2" : "1"); | |
| __group_mem.containsKey(""); | |
| return false; | |
| }); | |
| f.find("#operate_updateLocalName") | |
| .unbind() | |
| .bind("click", function() { | |
| c.css({ | |
| "display": "none" | |
| }); | |
| updateLocalName(a.uid); | |
| return false; | |
| }); | |
| var j = f.find("#operate_add"); | |
| j.unbind(); | |
| var d = a.status; | |
| if (a.ct == 2 || d == ContactStatus.Verify || d == ContactStatus.Verify_Bklist || d == ContactStatus.Refuse_Bklist || d == ContactStatus.Refuse) { | |
| var b = (a.ct == 2 ? "添加好友" : "重新添加好友"); | |
| j.parent() | |
| .css("display", ""); | |
| j.text(b) | |
| .bind("click", function() { | |
| if (a.sid) { | |
| createAddBuddyTab(a.sid); | |
| } else { | |
| if (a.mn) { | |
| createAddBuddyTab(a.mn, "1"); | |
| } else { | |
| if (a.uri) { | |
| var l = new jCompactUri(a.uri); | |
| createAddBuddyTab(l.mobileNoOrSid, l.isMobileNo ? "1" : "0"); | |
| } else { | |
| createAddBuddyTab(); | |
| } | |
| } | |
| } | |
| return false; | |
| }); | |
| } else { | |
| j.parent() | |
| .css("display", "none"); | |
| } | |
| var h = f.find("#operate_space"); | |
| h.unbind(); | |
| if (a.sid) { | |
| h.attr("href", formatString(__contactSpaceUrl, a.uid)); | |
| h.parent() | |
| .css("display", ""); | |
| h.bind("click", function() { | |
| c.css({ | |
| "display": "none" | |
| }); | |
| if (__user.c) { | |
| var l = formatString(__contactSpaceUrl, a.uid, __user.c); | |
| $(this) | |
| .attr("href", l); | |
| } | |
| }); | |
| } else { | |
| h.parent() | |
| .css("display", "none"); | |
| } | |
| var g = $(e); | |
| var i = g.offset(); | |
| if (i.top + c.height() > getViewportHeight() - 20) { | |
| i.top = i.top - c.height(); | |
| } | |
| c.css({ | |
| "display": "block", | |
| "top": i.top + g.height(), | |
| "left": i.left - (c.outerWidth() - g.width()) | |
| }); | |
| __hideOperateInfoTimer = setTimeout(function() { | |
| c.css({ | |
| "display": "none" | |
| }); | |
| }, 2000); | |
| } | |
| function updateStatusDesc(b) { | |
| b = b || ""; | |
| b = cnSubstr2(b.trim(), 6); | |
| var a = ""; | |
| if (cnLength2(b) < 8) { | |
| a = "( " + b + " )"; | |
| } else { | |
| a = "(" + b + ")"; | |
| } | |
| $("#user_status > em") | |
| .text(a); | |
| } | |
| function initChatFooter() { | |
| __maxMsgListOnTaskbar = getMaxMsglistCount(); | |
| __moreMsgListDiv = $.fn.jMoreMsgLists({ | |
| target: $(document.body), | |
| maxHold: 5 | |
| }); | |
| __moreMsgListDiv.hide(); | |
| $("#msg_more") | |
| .bind("click", function() { | |
| this.className = "msg_more hover_msg"; | |
| if (__chatFooterItemMap.size() > __maxMsgListOnTaskbar) { | |
| if (__moreMsgListDiv.isShow) { | |
| __moreMsgListDiv.hide(); | |
| } else { | |
| __moreMsgListDiv.show(); | |
| } | |
| } | |
| }) | |
| .bind("mouseout", function(a) { | |
| this.className = "msg_more"; | |
| if (__moreMsgListDiv.isShow && isMouseOut(this, a)) { | |
| __hideMoreMsgListTimer = setTimeout(function() { | |
| __moreMsgListDiv.hide(); | |
| }, 500); | |
| } | |
| }) | |
| .bind("mouseover", function() { | |
| this.className = "msg_more hover"; | |
| }); | |
| __remindMsgDiv = $.fn.jRemindMsgList({ | |
| target: $(document.body), | |
| onClearAll: clearAllRemindMsg | |
| }); | |
| __remindMsgDiv.hide(); | |
| $("#msg_remind") | |
| .bind("click", function(a) { | |
| $.increaseCounters("500400002"); | |
| if (!__remindMsgDiv.isShow && __remindMsgItemMap.size() > 0) { | |
| __remindMsgDiv.show(); | |
| } else { | |
| __remindMsgDiv.hide(); | |
| } | |
| stopPropagation(a); | |
| return false; | |
| }) | |
| .bind("mouseout", function(a) { | |
| if (__remindMsgDiv.isShow && isMouseOut(this, a)) { | |
| __hideRemindMsgTimer = setTimeout(function() { | |
| __remindMsgDiv.hide(); | |
| }, 500); | |
| } | |
| }) | |
| .bind("mousedown", function() { | |
| this.className = "msg_remind active"; | |
| }) | |
| .bind("mouseup", function() { | |
| this.className = "msg_remind"; | |
| }); | |
| } | |
| function getMaxMsglistCount() { | |
| var a = $("#taskbar") | |
| .width() - $("#cm_logo") | |
| .width() - $("#msg_remind") | |
| .width() - $("#msg_more") | |
| .width(); | |
| return Math.floor(a / 96); | |
| } | |
| function reInitialFooter(a) { | |
| var d = $("#msg_list"); | |
| $("#msg_more") | |
| .css("display", "none"); | |
| if (a) { | |
| if (__moreMsgListDiv.getItems() | |
| .size() == 0 && d.find("li") | |
| .size() < __maxMsgListOnTaskbar) { | |
| d.append(a); | |
| } else { | |
| $("#msg_more") | |
| .css("display", ""); | |
| __moreMsgListDiv.addItem(a); | |
| } | |
| return; | |
| } | |
| var f = new Array(); | |
| d.find("li") | |
| .each(function() { | |
| f.push($(this)); | |
| }); | |
| var b = __moreMsgListDiv.getItems(); | |
| for (var e = b.size() - 1; e >= 0; e--) { | |
| f.push(b.eq(e)); | |
| } | |
| var g = f.length; | |
| for (var c = 0; c < g; c++) { | |
| f[c].css("display", "block"); | |
| if (c < __maxMsgListOnTaskbar) { | |
| f[c].inMore = false; | |
| d.append(f[c]); | |
| } else { | |
| f[c].inMore = true; | |
| $("#msg_more") | |
| .css("display", ""); | |
| __moreMsgListDiv.addItem(f[c]); | |
| __moreMsgListDiv.hide(); | |
| } | |
| } | |
| } | |
| function clearAllRemindMsg() { | |
| __remindMsgItemMap.clear(); | |
| var b = __chatFooterItemMap.values(); | |
| for (var a = b.length - 1; a >= 0; a--) { | |
| b[a].removeClass("call"); | |
| } | |
| setRemindCountTotal(); | |
| } | |
| function receiveMsgs(i) { | |
| var a = __contactMap.get(i.fromUid); | |
| if (!a || a.ct == 2) { | |
| if (getUserPermission(__user.gp, "contact") != 1) { | |
| return; | |
| } | |
| } | |
| if (!a) { | |
| addChatFriend(i.fromUri, function(d, n) { | |
| var c = d; | |
| if (typeof c.rc == "number" && c.rc == 200) { | |
| var b = new ContactDefault(); | |
| if (!buddyListContains("-1")) { | |
| __buddyList.push({ | |
| "id": -1, | |
| "n": "陌生人" | |
| }); | |
| __contactTree.insertBuddyList({ | |
| "id": -1, | |
| "n": "陌生人" | |
| }); | |
| } | |
| b.uid = i.fromUid; | |
| b.uri = i.fromUri; | |
| b.bl = "-1"; | |
| b.ct = 2; | |
| extendContact(b); | |
| __contactMap.put(b.uid, b); | |
| __contactTree.insertBuddyItem(b, b.bl); | |
| receiveMsgs(i); | |
| } | |
| }); | |
| return; | |
| } | |
| var g = getChatWindow(i.fromUid); | |
| if (!g.isOnFocus() || !__isOnfocus) { | |
| if (__remindMsgItemMap.containsKey(i.fromUid)) { | |
| var e = __remindMsgItemMap.get(i.fromUid); | |
| e.msgCount(e.msgCount() + 1); | |
| e.updateItem(__contactMap.get(i.fromUid)); | |
| } else { | |
| var l = __contactMap.get(i.fromUid); | |
| var k = __chatWindowMap.get(l.uid); | |
| var m = getUserPortraitUrl(l, "5"); | |
| var e = $.fn.jRemindMsgItem(l, k, m); | |
| __remindMsgItemMap.put(i.fromUid, e); | |
| __remindMsgDiv.addItem(e); | |
| } | |
| setRemindCountTotal(); | |
| } | |
| if (!g.isActived) { | |
| g.active(); | |
| var f = __chatFooterItemMap.get(i.fromUid); | |
| f.removeClass() | |
| .addClass("call"); | |
| if (f.isInMoreMsgList()) { | |
| $("#msg_more") | |
| .removeClass() | |
| .addClass("msg_more hover_msg"); | |
| } | |
| } else { | |
| if (!g.isOnFocus()) { | |
| var f = __chatFooterItemMap.get(i.fromUid); | |
| f.removeClass() | |
| .addClass("call"); | |
| if (f.isInMoreMsgList()) { | |
| $("#msg_more") | |
| .removeClass() | |
| .addClass("msg_more hover_msg"); | |
| } | |
| } | |
| } | |
| g.logFriendMsg(i.msg); | |
| if (g.inputPermission == 420 && !g.enablechatInput) { | |
| g.enableInput(true); | |
| } | |
| if (!__isOnfocus) { | |
| if (typeof __titleflashInterval != "undefined") { | |
| window.clearInterval(__titleflashInterval); | |
| } | |
| __flashTitleArray.push(__msgcomingTitle); | |
| __flashTitleArray.push("【" + __msgcomingTitle + "】"); | |
| var j = __flashTitleArray.length; | |
| var h = j - 1; | |
| __titleflashInterval = window.setInterval(function() { | |
| var b = __flashTitleArray[h]; | |
| document.title = b; | |
| h = (h + 1) % j; | |
| }, 1000); | |
| } | |
| } | |
| function sendMsgFailed(b) { | |
| var a = getChatWindow(b.fromUid); | |
| if (a) { | |
| a.logErrorInfo("消息发送失败: " + b.msg); | |
| } | |
| } | |
| function receiveInvite(f) { | |
| var e = "你好,我是" + f.desc + ","; | |
| switch (f.phrid) { | |
| case 0: | |
| e += "正在用中国移动飞信业务,想加你为好友。"; | |
| break; | |
| case 1: | |
| e += "想加你为飞信好友,方便咱们联系。"; | |
| break; | |
| case 2: | |
| e += "飞信挺好用的,想加你为好友。"; | |
| break; | |
| case 3: | |
| e += "希望你成为我的飞信好友,常联系。"; | |
| break; | |
| case 4: | |
| e += "成为我的飞信好友,能免费给你发短信。"; | |
| break; | |
| default: | |
| break; | |
| } | |
| var a = $("#invited_" + f.uid); | |
| if (a.size() > 0) { | |
| a.remove(); | |
| a = null; | |
| } | |
| a = $.fn.friendInviteWindow({ | |
| buddy: f, | |
| inviteType: f.t, | |
| onConfirm: processorFriendInvite | |
| }); | |
| var c = __buddyList.length; | |
| if (c > 0) { | |
| __buddyList.sort(buddyListComparator); | |
| for (var b = 0; b < c; b++) { | |
| if (parseInt(__buddyList[b].id) > 0) { | |
| a.insertBuddyList(__buddyList[b].id, __buddyList[b].n); | |
| } | |
| } | |
| } | |
| a.insertDesc(e); | |
| } | |
| function setRemindCountTotal() { | |
| var c = 0; | |
| var b = __remindMsgItemMap.values(); | |
| for (var a = b.length - 1; a >= 0; a--) { | |
| if (b[a].find("i") | |
| .attr("class") == "ff-pc-group") { | |
| c += 1; | |
| } else { | |
| c += b[a].msgCount(); | |
| } | |
| } | |
| setRemindMsgCookie(__user.sid, null, c, __sessionId); | |
| if (c > 0) { | |
| $("#msg_remind") | |
| .removeClass("none"); | |
| } else { | |
| $("#msg_remind") | |
| .addClass("none"); | |
| } | |
| $("#msg_remind") | |
| .find("b:first") | |
| .text(c.toString()); | |
| } | |
| function onSendMsg(g, d, f, b, e) { | |
| var c = f.length; | |
| var a = (b || e); | |
| if (a && c > 180) { | |
| alert("温馨提示:长短信不能超过180个字符。"); | |
| } else { | |
| if (c > 400) { | |
| alert("温馨提示:消息不能超过400个字符。"); | |
| } else { | |
| g.logSelfMsg(f); | |
| sendMessage(g, d, f, b, e); | |
| } | |
| } | |
| } | |
| function processorFriendInvite(a) { | |
| handleAddBuddy(a, 0); | |
| } | |
| function redirectLogin() { | |
| __isNormalLogout = true; | |
| window.location.href = loginPageUrl; | |
| } | |
| function startSound(a) { | |
| if (__isOpenSound) { | |
| if (a == "newmessage") { | |
| IMSound.playSound(a); | |
| } else { | |
| if (a == "sys") { | |
| IMSound.playSound(a); | |
| } | |
| } | |
| } | |
| } | |
| function showPanel(a) { | |
| $("#group_func") | |
| .find("li") | |
| .removeClass("on"); | |
| $("#friends_list") | |
| .addClass("none"); | |
| $("#group_box") | |
| .addClass("none"); | |
| $("#phone_list") | |
| .addClass("none"); | |
| if (a == "group") { | |
| $("#li_group") | |
| .addClass("on"); | |
| $("#group_box") | |
| .removeClass("none"); | |
| } else { | |
| if (a == "buddy") { | |
| $("#li_buddy") | |
| .addClass("on"); | |
| $("#friends_list") | |
| .removeClass("none"); | |
| } else { | |
| if (a == "gountxun") { | |
| $("#li_gountxun") | |
| .addClass("on"); | |
| $("#phone_list") | |
| .removeClass("none"); | |
| } | |
| } | |
| } | |
| } | |
| function addBuddySuccess(b) { | |
| var a; | |
| if (__contactMap.containsKey(b.uid)) { | |
| a = __contactMap.get(b.uid); | |
| if (a.isBk == 1 && a.ct == -1) {} else { | |
| if (1 != a.rs || 2 == a.ct) { | |
| __contactMap.remove(a.uid.toString()); | |
| eachBuddyList(a, function(c) { | |
| __contactTree.deleteBuddyItem(parseInt(c), a.uid); | |
| }, true); | |
| if (2 == a.ct) { | |
| a.ct = 0; | |
| } | |
| } else { | |
| alert("对方已经是你好友。"); | |
| return; | |
| } | |
| } | |
| } else { | |
| a = new ContactDefault(); | |
| a.ln = b.ln; | |
| a.ct = 0; | |
| } | |
| $.extend(a, b); | |
| extendContact(a); | |
| __contactMap.put(a.uid, a); | |
| eachBuddyList(a, function(c) { | |
| __contactTree.insertBuddyItem(a, parseInt(c)); | |
| }); | |
| } | |
| function initNavigation() { | |
| $("#quitIm") | |
| .attr("href", __officialSiteUrl + "/account/loginout?ul=" + loginPageUrl); | |
| $("#officalsite") | |
| .attr("href", __officialSiteUrl); | |
| $("#myspace") | |
| .attr("href", __mySpaceUrl); | |
| $("#downloadpc") | |
| .attr("href", __downloadUrl); | |
| $("#myspace_icon") | |
| .attr("href", __mySpaceUrl); | |
| $("#feedback") | |
| .attr("href", __feedbackUrl); | |
| $("#downloadpc") | |
| .bind("click", function() { | |
| $.increaseCounters(500400004); | |
| }); | |
| $("#rt_img_link") | |
| .click(function() { | |
| addFavourite(location.href, "官方网页版飞信——在网页上与飞信好友聊天、免费发短信"); | |
| }); | |
| $("#quitIm") | |
| .bind("click", function() { | |
| __isNormalLogout = true; | |
| logout(__isNormalLogout); | |
| }); | |
| } | |
| function buddyListContains(b) { | |
| for (var a = 0; a < __buddyList.length; a++) { | |
| if (__buddyList[a].id.toString() == b) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| } | |
| function dealWithCallme(f) { | |
| var b = ""; | |
| if (f.toUid && f.toUri) { | |
| if (f.toUid == __user.uid) { | |
| return; | |
| } | |
| b = __callmeTitle; | |
| if (!__contactMap.containsKey(f.toUid)) { | |
| addChatFriend(f.toUri, function(i, j) { | |
| var h = i; | |
| if (typeof h.rc == "number" && h.rc == 200) { | |
| var g = new ContactDefault(); | |
| if (!buddyListContains("-1")) { | |
| __buddyList.push({ | |
| "id": -1, | |
| "n": "陌生人" | |
| }); | |
| __contactTree.insertBuddyList({ | |
| "id": -1, | |
| "n": "陌生人" | |
| }); | |
| } | |
| g.uid = f.toUid; | |
| g.uri = f.toUri; | |
| g.bl = "-1"; | |
| g.ct = 2; | |
| extendContact(g); | |
| __contactMap.put(g.uid.toString(), g); | |
| __contactTree.insertBuddyItem(g, g.bl); | |
| dealWithCallme(f); | |
| } | |
| }); | |
| return; | |
| } | |
| var a = getChatWindow(f.toUid); | |
| if (!a.isActived) { | |
| a.active(); | |
| var e = getChatWinPosition(); | |
| a.show(e.top, e.left); | |
| } else { | |
| if (!a.hasShown) { | |
| var e = getChatWinPosition(); | |
| a.show(e.top, e.left); | |
| } else { | |
| a.show(); | |
| } | |
| } | |
| } else { | |
| b = __readmsgTitle; | |
| } | |
| if (!__isOnfocus) { | |
| if (typeof __titleflashInterval != "undefined") { | |
| window.clearInterval(__titleflashInterval); | |
| } | |
| __flashTitleArray.push(b); | |
| __flashTitleArray.push("【" + b + "】"); | |
| var d = __flashTitleArray.length; | |
| var c = d - 1; | |
| __titleflashInterval = window.setInterval(function() { | |
| var g = __flashTitleArray[c]; | |
| document.title = g; | |
| c = (c + 1) % d; | |
| }, 1000); | |
| } | |
| } | |
| function updateGroupInfo(i, b, f) { | |
| if (i == null) { | |
| return; | |
| } | |
| var h = jGroupUriToId(i.gUri); | |
| var d = __groupMap.get(h); | |
| if (!d) { | |
| return; | |
| } | |
| if (d.members && i.members && i.members.length < d.members.length) { | |
| if (i.members.length == 1) { | |
| var e = jMemUriToId(i.members[0].MemberUri); | |
| if (e == __user.sid) { | |
| return; | |
| } | |
| } | |
| } | |
| $.extend(d, i); | |
| extendGroupItem(d); | |
| if (f && (d.i > 3 || d.msgRecv > 1)) { | |
| __groupTree.updateGroupItem(d); | |
| return; | |
| } | |
| if (b) { | |
| __groupTree.updateGroupItem(d); | |
| var a = __chatWindowMap.get("group_" + d.id); | |
| if (a) { | |
| a.setGroupInfo(d); | |
| } | |
| if (d.n) { | |
| d.displayName = d.n; | |
| var g = getGroupItemPortraitUrl(d, "1"); | |
| if (__chatFooterItemMap.containsKey("group_" + h)) { | |
| __chatFooterItemMap.get("group_" + h) | |
| .updateItem(d, g); | |
| } | |
| if (__remindMsgItemMap.containsKey("group_" + h)) { | |
| __remindMsgItemMap.get("group_" + h) | |
| .updateItem(d, g); | |
| } | |
| } | |
| } | |
| } | |
| function deleteGroupMember(d) { | |
| var c = jGroupUriToId(d.GroupUri); | |
| var b = jMemUriToId(d.MemberUri); | |
| if (b == jMemUriToId(__user.uri)) { | |
| var a = __groupMap.get(c); | |
| $.popWinMsg({ | |
| gName: d.GroupName, | |
| group: a, | |
| msgN: "msg1" | |
| }); | |
| removeGroupUi(c, 1); | |
| } else { | |
| chatWinDelMem(c, b); | |
| } | |
| } | |
| function removeGroupUi(c, b) { | |
| __groupTree.deleteGroupItem(c); | |
| var a = __chatWindowMap.get("group_" + c); | |
| if (a) { | |
| a.enableInput(false); | |
| a.logSuggetInfo(b); | |
| a.isUsable = false; | |
| } | |
| if (__chatFooterItemMap.containsKey("group_" + c)) { | |
| __chatFooterItemMap.get("group_" + c) | |
| .remove(); | |
| __chatFooterItemMap.remove("group_" + c); | |
| reInitialFooter(); | |
| } | |
| } | |
| function openGroupChatWindow(d, c) { | |
| var b = __groupMap.get(c); | |
| if (b.i > 3) { | |
| return; | |
| } | |
| var a = getGroupChatWindow(c); | |
| if (!a.isActived) { | |
| a.active(); | |
| var e = getChatWinPosition(); | |
| a.show(e.top, e.left); | |
| } else { | |
| if (!a.hasShown) { | |
| var e = getChatWinPosition(); | |
| a.show(e.top, e.left); | |
| } else { | |
| a.show(); | |
| } | |
| } | |
| if (typeof __isIE6 != "undefined" && __isIE6) { | |
| a.fixPosition(); | |
| } | |
| if (b.msgRecv == 2) { | |
| __groupTree.clearGroupMsgCount(b); | |
| } | |
| } | |
| function getGroupChatWindow(c) { | |
| var a; | |
| var b = __groupMap.get(c); | |
| if (!__chatWindowMap.containsKey("group_" + c)) { | |
| a = createGroupWin(b, c); | |
| } else { | |
| a = __chatWindowMap.get("group_" + c); | |
| if (!a.isUsable) { | |
| __chatWindowMap.remove("group_" + c); | |
| a.remove(); | |
| a = null; | |
| a = createGroupWin(b, c); | |
| } | |
| } | |
| return a; | |
| } | |
| function createGroupWin(b, c) { | |
| var a; | |
| a = $.fn.jGroupChatWindow({ | |
| maxRelative: "main_content", | |
| user: __user, | |
| group: b, | |
| groupMap: __groupMap, | |
| defaultHeight: __groupChatWinDefaultHeight, | |
| defaultWidth: __groupChatWinDefaultWidth, | |
| onActive: onActiveGroupChatWindow, | |
| onClosed: onCloseGroupChatWindow, | |
| onFocus: onFocusGroupChatWindow, | |
| onSendMessage: onSendGroupMsg | |
| }); | |
| getGroupMemList(b, a.memMap, a); | |
| __chatWindowMap.put("group_" + c, a); | |
| return a; | |
| } | |
| function getGroupMemList(c, a, b) { | |
| var d = new Object(); | |
| d.success = function(f, e) { | |
| getGroupMemListSuccess(f, e, c, a, b); | |
| }; | |
| d.error = function(e, g, f) { | |
| getGroupMemListError(e, g, f, c, a, b); | |
| }; | |
| d.url = formatString(getGroupMemUrl, __version++); | |
| d.type = "POST"; | |
| d.data = { | |
| "ssid": __sessionId, | |
| "Uri": c.gUri | |
| }; | |
| d.dataType = "json"; | |
| d.cache = false; | |
| $.ajax(d); | |
| } | |
| var __gmlRetry = 0; | |
| function getGroupMemListSuccess(j, c, p, e, g) { | |
| var m; | |
| m = $.fn.jGroupMemTree({ | |
| isSinglePattern: true, | |
| user: __user, | |
| group: p, | |
| onBuddyItemDbClick: openChatWindow, | |
| onBuddyItemMouseOver: showContactCard, | |
| onBuddyItemMouseOut: hideContactCard, | |
| onBuddyItemRightClick: showOperateCard | |
| }); | |
| g.groupMemTree = m; | |
| var r = j; | |
| if (typeof r.rc == "number" && r.rc == 200) { | |
| __gmlRetry = 0; | |
| var k = r.rv.GroupMembersInfo; | |
| k = k || (new Array()); | |
| var l = k.length; | |
| var f = jGroupUriToId(r.rv.gUri); | |
| for (var h = 0; h < l; h++) { | |
| var a = jMemUriToId(k[h].MemberUri); | |
| var q = __group_mem.get(f + "_" + a); | |
| if (q == null) { | |
| q = new GroupMemDefault(); | |
| } | |
| $.extend(q, k[h]); | |
| extendMemItem(q); | |
| e.put(q.id, q); | |
| } | |
| g.memMap = e; | |
| var n = insertGroupMemToList(e, m, p); | |
| if (g.isLogShowNumber) { | |
| var b = g.find("dt:first> span") | |
| .eq(0); | |
| var d = b.text(); | |
| var o = e.get(d) | |
| .displayName; | |
| b.text(o); | |
| } | |
| } else { | |
| if (typeof r.rc == "number" && r.rc == 310) { | |
| redirectLogin(); | |
| } else { | |
| if (typeof r.rc == "number" && r.rc == 403) {} else { | |
| if (__gmlRetry < 3) { | |
| __gmlRetry++; | |
| window.setTimeout(function() { | |
| getGroupMemList(p, e, g); | |
| }, 500); | |
| } else { | |
| __gmlRetry = 0; | |
| alert(formatString("由于网络原因,获取群成员列表失败,请重新登录。错误代码:{0}", typeof r.rc == "number" ? r.rc : 500)); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| function getGroupMemListError(d, f, e, c, a, b) { | |
| if (__gmlRetry < 3) { | |
| __gclRetry++; | |
| window.setTimeout(function() { | |
| getGroupMemList(c, a, b); | |
| }, 500); | |
| } else { | |
| __gmlRetry = 0; | |
| alert(formatString("由于网络原因,获取群成员列表失败,请重新登录。错误原因:{0}", f)); | |
| } | |
| } | |
| function getGroupMemPortrait(e, b) { | |
| var i = e.find(".pop_group_list"); | |
| var g = parseInt(i.css("height")), | |
| d = i.find("li:first") | |
| .offset() | |
| .top, | |
| c = d + g, | |
| a = false; | |
| if (i.find("li[on=1]") | |
| .size() <= 0) { | |
| var h = i.find("li"); | |
| var f; | |
| h.each(function(j, k) { | |
| $(k) | |
| .attr("on", "1"); | |
| var m = $(k) | |
| .attr("id") | |
| .substring(10); | |
| if (b.containsKey(m)) { | |
| f = b.get(m); | |
| var l = buddyPor(f, f.statusClass, 1); | |
| $(k) | |
| .find("img") | |
| .attr("src", l); | |
| } | |
| if (j >= 19) { | |
| return false; | |
| } | |
| }); | |
| } | |
| i.bind("scroll", function() { | |
| var k = $(this) | |
| .find("li[on!=1]"); | |
| if (k.size() > 0 && k.first() | |
| .offset() | |
| .top <= c) { | |
| var j; | |
| k.each(function(l, m) { | |
| $(m) | |
| .attr("on", "1"); | |
| var o = $(m) | |
| .attr("id") | |
| .substring(10); | |
| if (b.containsKey(o)) { | |
| j = b.get(o); | |
| var n = buddyPor(j, j.statusClass, 1); | |
| $(m) | |
| .find("img") | |
| .attr("src", n); | |
| } | |
| if (l >= 19) { | |
| if (!$(m) | |
| .next() | |
| .attr("id") || $(m) | |
| .next() | |
| .offset() | |
| .top > c) { | |
| return false; | |
| } | |
| } | |
| }); | |
| } | |
| }); | |
| } | |
| function insertGroupMemToList(b, d, j) { | |
| var h = b.values(); | |
| var k = new Object(); | |
| k[0] = d.createBuddyList(j); | |
| var e = h.length; | |
| var f = k[0]; | |
| for (var c = 0; c < e; c++) { | |
| var m = d.createBuddyItem(h[c], c); | |
| f.pushContent(m); | |
| } | |
| var g = ""; | |
| var a = k[0]; | |
| g += a.toHtmlString(); | |
| d.setInnerHtml(g); | |
| getGroupMemPortrait(d, b); | |
| if (typeof callback == "function") { | |
| callback(); | |
| } | |
| g = null; | |
| } | |
| function onSendGroupMsg(d, b, c) { | |
| var a = c.length; | |
| if (a > 400) { | |
| alert("温馨提示:消息不能超过400个字符。"); | |
| } else { | |
| d.logSelfMsg(c); | |
| sendGroupMessage(d, b, c); | |
| } | |
| } | |
| function sendGroupMessage(d, b, c) { | |
| var a = new Object(); | |
| a.url = formatString(SendGroupMsgUrl, __version++); | |
| a.type = "POST"; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| a.data = { | |
| "Uri": b, | |
| "msg": c, | |
| "ssid": __sessionId | |
| }; | |
| a.success = function(f, g) { | |
| var e = f; | |
| if (typeof e.rc == "number" && e.rc >= 200 && e.rc < 300) {} else { | |
| if (typeof e.rc == "number" && e.rc == 420) { | |
| d.logErrorInfo("对方版本过旧,您无法向其发起陌生人消息。"); | |
| d.inputPermission = 420; | |
| d.enableInput(false); | |
| } else { | |
| if (typeof e.rc == "number" && e.rc == 486) { | |
| d.logErrorInfo("您暂时无法发送短信,请稍后再试。"); | |
| } else { | |
| if (typeof e.rc == "number" && e.rc == 494) { | |
| d.logErrorInfo("您的飞信账号处于系统保护状态,限制了该功能的使用。请手机发送短信U到12520解除限制后重新登录。"); | |
| } else { | |
| if (typeof e.rc == "number" && e.rc == 405) {} else { | |
| d.logErrorInfo("消息发送失败: " + cnSubstr(c, 18)); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| a.error = function(e, g, f) { | |
| d.logErrorInfo("消息发送失败: " + cnSubstr(c, 18)); | |
| }; | |
| $.ajax(a); | |
| } | |
| function receiveGroupMsgs(l) { | |
| l.id = jGroupUriToId(l.FromGroupUri); | |
| var h = __groupMap.get(l.id); | |
| if (h == null) { | |
| return; | |
| } | |
| var i = getGroupChatWindow(l.id); | |
| if (h.msgRecv == "2") { | |
| var p = __chatFooterItemMap.containsKey("group_" + l.id); | |
| if (p && !i.isOnFocus()) { | |
| var f = __chatFooterItemMap.get("group_" + l.id); | |
| f.removeClass() | |
| .addClass("call"); | |
| if (f.isInMoreMsgList()) { | |
| $("#msg_more") | |
| .removeClass() | |
| .addClass("msg_more hover_msg"); | |
| } | |
| } else { | |
| if (!p) { | |
| __groupTree.updateGroupMsgCount(h); | |
| } | |
| } | |
| } else { | |
| if (!i.isOnFocus() || !__isOnfocus) { | |
| if (__remindMsgItemMap.containsKey("group_" + l.id)) { | |
| var e = __remindMsgItemMap.get("group_" + l.id); | |
| var g; | |
| var a = e.msgCount(); | |
| if (a + 1 > 99) { | |
| g = ">99"; | |
| } else { | |
| g = a + 1; | |
| } | |
| e.msgCount(g); | |
| var o = __groupMap.get(l.id); | |
| o.uid = o.id; | |
| o.statusClass = "ff-pc-group"; | |
| o.displayName = o.n; | |
| var q = getGroupItemPortraitUrl(o, "1"); | |
| e.updateItem(o, q); | |
| } else { | |
| var o = __groupMap.get(l.id); | |
| o.uid = o.id; | |
| o.statusClass = "ff-pc-group"; | |
| o.displayName = o.n; | |
| var n = __chatWindowMap.get("group_" + l.id); | |
| var q = getGroupItemPortraitUrl(o, "1"); | |
| var e = $.fn.jRemindMsgItem(o, n, q); | |
| var k = jGroupUriToId(l.FromGroupUri); | |
| __remindMsgItemMap.put("group_" + k, e); | |
| __remindMsgDiv.addItem(e); | |
| setRemindCountTotal(); | |
| } | |
| } | |
| if (!__chatFooterItemMap.containsKey("group_" + l.id)) { | |
| startSound("newmessage"); | |
| } | |
| if (!i.isActived) { | |
| i.active(); | |
| var f = __chatFooterItemMap.get("group_" + l.id); | |
| f.removeClass() | |
| .addClass("call"); | |
| if (f.isInMoreMsgList()) { | |
| $("#msg_more") | |
| .removeClass() | |
| .addClass("msg_more hover_msg"); | |
| } | |
| } else { | |
| if (!i.isOnFocus()) { | |
| var f = __chatFooterItemMap.get("group_" + l.id); | |
| f.removeClass() | |
| .addClass("call"); | |
| if (f.isInMoreMsgList()) { | |
| $("#msg_more") | |
| .removeClass() | |
| .addClass("msg_more hover_msg"); | |
| } | |
| } | |
| } | |
| } | |
| if (l.StatusCode == 433) { | |
| i.logErrorInfo("消息”" + cnSubstr(l.Message, 18) + "“发送失败:您说话太快了,请休息一下吧。"); | |
| } else { | |
| i.logFriendMsg(l); | |
| } | |
| if (i.inputPermission == 420 && !i.enablechatInput) { | |
| i.enableInput(true); | |
| } | |
| if (!__isOnfocus && h.msgRecv != "2") { | |
| if (typeof __titleflashInterval != "undefined") { | |
| window.clearInterval(__titleflashInterval); | |
| } | |
| __flashTitleArray.push(__msgcomingTitle); | |
| __flashTitleArray.push("【" + __msgcomingTitle + "】"); | |
| var m = __flashTitleArray.length; | |
| var j = m - 1; | |
| __titleflashInterval = window.setInterval(function() { | |
| var b = __flashTitleArray[j]; | |
| document.title = b; | |
| j = (j + 1) % m; | |
| }, 1000); | |
| } | |
| } | |
| function groupMemPriChange(h) { | |
| for (var b = 0; b < h.length; b++) { | |
| var e = jGroupUriToId(h[b].GroupUri); | |
| var d = h[b].GroupUri; | |
| var i = __groupMap.get(e); | |
| var k; | |
| var g = h[b].PermissionChangedMemberEntity; | |
| for (var j = 0; j < g.length; j++) { | |
| var f = g[j].Identity; | |
| var a = jMemUriToId(g[j].MemberUri); | |
| var k = new Object(); | |
| k.i = g[j].Identity; | |
| k.MemberUri = g[j].MemberUri; | |
| if (jMemUriToId(g[j].MemberUri) == __user.sid) { | |
| if (f == 1) { | |
| $.popWinMsg({ | |
| gName: i.n, | |
| group: i, | |
| msgN: "msg3" | |
| }); | |
| } else { | |
| if (f == 2) { | |
| $.popWinMsg({ | |
| gName: i.n, | |
| group: i, | |
| msgN: "msg2" | |
| }); | |
| } else { | |
| if (f == 3) { | |
| $.popWinMsg({ | |
| gName: i.n, | |
| group: i, | |
| msgN: "msg7" | |
| }); | |
| } | |
| } | |
| } | |
| var c = __groupMap.get(e); | |
| c.i = k.i; | |
| extendGroupItem(c); | |
| __groupTree.updateGroupItem(c); | |
| } | |
| initGroupMemList(d, k); | |
| } | |
| } | |
| } | |
| function exitGroup(c, e) { | |
| var b = jGroupUriToId(c); | |
| var a = jMemUriToId(e.MemberUri); | |
| var d = b + "_" + a; | |
| __group_mem.remove(d); | |
| var a = jMemUriToId(e.MemberUri); | |
| chatWinDelMem(b, a); | |
| } | |
| function apvResult(d) { | |
| var c = jGroupUriToId(d.gUri); | |
| var a = __groupMap.get(c); | |
| if (a) { | |
| a.apvRs = d.r; | |
| extendGroupItem(a); | |
| __groupTree.updateGroupItem(a); | |
| } | |
| if (d.r == 1) { | |
| __groupTree.updateGroupItem(a); | |
| } else { | |
| if (d.r == 2) {} | |
| } | |
| var e = c + "_" + b; | |
| __group_mem.remove(e); | |
| var b = jMemUriToId(memItem.MemberUri); | |
| chatWinDelMem(c, b); | |
| } | |
| function chatWinDelMem(d, c) { | |
| var b = __chatWindowMap.get("group_" + d); | |
| if (b) { | |
| var a = b.groupMemTree; | |
| memItem = b.memMap.get(c); | |
| a.deleteBuddyItem(d, memItem); | |
| } | |
| } | |
| function initGroupMemList(e, j) { | |
| var f = jGroupUriToId(e); | |
| var c = jMemUriToId(j.MemberUri); | |
| var b = f + "_" + c; | |
| var i = __group_mem.get(b); | |
| if (i == null) { | |
| i = new GroupMemDefault(); | |
| $.extend(i, j); | |
| extendMemItem(i); | |
| __group_mem.put(b, i); | |
| } else { | |
| $.extend(i, j); | |
| extendMemItem(i); | |
| } | |
| var g = __chatWindowMap.get("group_" + f); | |
| if (g) { | |
| var h = g.groupMemTree; | |
| var a = g.memMap.get(j.id); | |
| if (a) { | |
| $.extend(i, a); | |
| a = i; | |
| } else { | |
| g.memMap.put(i.id, i); | |
| } | |
| var d = h.getBuddyItem(f, i.id); | |
| if (d.size() > 0) { | |
| h.updateBuddyItem(f, i); | |
| } else { | |
| h.insertBuddyItem(i, f); | |
| } | |
| } | |
| } | |
| function handleInviteGroup(b) { | |
| var a = new Object(); | |
| a.success = function(c, d) { | |
| handleInviteGroupSuccess(c, d, b); | |
| }; | |
| a.error = function(c, d) { | |
| handleInviteGroupError(c, d, b); | |
| }; | |
| a.url = formatString(opInviteJoinUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "ssid": __sessionId, | |
| "inteeNn": __user.nn, | |
| "gUri": b.gUri, | |
| "iUri": b.iUri, | |
| "interNn": b.iNn | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| function handleInviteGroupSuccess(b, d, c) { | |
| var a = b; | |
| if (typeof a.rc == "number" && a.rc == 200) { | |
| startGroupSubscribe(c.gUri, function() { | |
| var f = new GroupDefault(); | |
| f.id = jGroupUriToId(c.gUri); | |
| f.n = c.gN; | |
| f.gUri = c.gUri; | |
| f.crc = "1234"; | |
| f.i = 3; | |
| extendGroupItem(f); | |
| if (__groupMap.containsKey(f.id)) { | |
| __groupMap.remove(f.id); | |
| __groupTree.deleteGroupItem(f.id); | |
| } | |
| __groupMap.put(f.id, f); | |
| __groupTree.insertGroupItem(f); | |
| $.popWinMsg({ | |
| gName: f.n, | |
| group: f, | |
| msgN: "msg8", | |
| openWin: openGroupChatWindow | |
| }); | |
| var e = __chatWindowMap.get("group_" + f.id); | |
| if (e && e.isShow) { | |
| openGroupChatWindow(this, f.id); | |
| } | |
| }); | |
| } else { | |
| if (typeof a.rc == "number" && a.rc == 437) { | |
| if (__user.isVip) { | |
| $.popWinMsg({ | |
| msgN: "msg11" | |
| }); | |
| } else { | |
| $.popWinMsg({ | |
| msgN: "msg12", | |
| isClose: false | |
| }); | |
| } | |
| } | |
| } | |
| } | |
| var __higRetry = 0; | |
| function handleInviteGroupError(a, c, b) { | |
| if (__higRetry < 3) { | |
| __higRetry++; | |
| window.setTimeout(function() { | |
| handleInviteGroup(b); | |
| }, 500); | |
| } else { | |
| __higRetry = 0; | |
| alert("处理加入群失败,请重新登录"); | |
| } | |
| } | |
| function approveInviteGroup(e, c) { | |
| var b = new Object(); | |
| var a = ""; | |
| for (var d = 0; d < e.JoinItem.length; d++) { | |
| a += e.JoinItem[d].Uri + "-" + e.JoinItem[d].nn + "|"; | |
| } | |
| b.success = function(f, g) { | |
| approveInviteGroupSuccess(f, g, e); | |
| }; | |
| b.error = handleInviteGroupError; | |
| b.url = formatString(approveInviteUrl, __version++); | |
| b.type = "POST"; | |
| b.data = { | |
| "ssid": __sessionId, | |
| "appAd": c, | |
| "gUri": e.gUri, | |
| "iNn": e.iNn, | |
| "iR": e.iR, | |
| "iUri": e.iUri, | |
| "joinItem": a | |
| }; | |
| b.dataType = "json"; | |
| b.cache = false; | |
| $.ajax(b); | |
| } | |
| function approveInviteGroupSuccess(a, c, b) {} | |
| function approveInviteGroupError(a, c, b) {} | |
| function handleApplication(c, a) { | |
| var b = {}; | |
| b.success = function(d, e) { | |
| handleApplicationSuccess(d, e, c); | |
| }; | |
| b.error = handleApplicationError; | |
| b.url = formatString(PGHandleApplicationUrl, __version++); | |
| b.type = "POST"; | |
| b.data = { | |
| "ssid": __sessionId, | |
| "appAd": a, | |
| "gUri": c.GroupUri, | |
| "note": "", | |
| "userUri": c.ApplyGroupUserEntity[0].Uri | |
| }; | |
| b.dataType = "json"; | |
| b.cache = false; | |
| $.ajax(b); | |
| } | |
| function handleApplicationSuccess(a, c, b) { | |
| if (typeof a.rc == "number" && a.rc == 432) { | |
| $.popWinMsg({ | |
| msgN: "msg14", | |
| isClose: false | |
| }); | |
| } | |
| } | |
| function handleApplicationError(a, c, b) {} | |
| function getGroupPerInfo(a) { | |
| var b = new Object(); | |
| b.success = getGroupPerInfoSuccess; | |
| b.error = getGroupPerInfoError; | |
| b.url = formatString(getGroupPerInfoUrl, __version++); | |
| b.type = "POST"; | |
| b.data = { | |
| "ssid": __sessionId, | |
| "gUri": a | |
| }; | |
| b.dataType = "json"; | |
| b.cache = false; | |
| $.ajax(b); | |
| } | |
| var __gpiRetry = 0; | |
| function getGroupPerInfoSuccess(d, f) { | |
| var a = d; | |
| if (typeof a.rc == "number" && a.rc == 200) { | |
| var e = a.rv; | |
| for (var c = 0; c < e.length; c++) { | |
| var b = e[c]; | |
| updateGroupInfo(b.rv, false, true); | |
| } | |
| } else { | |
| if (typeof a.rc == "number" && a.rc == 310) { | |
| redirectLogin(); | |
| } else { | |
| if (__gpiRetry < 3) { | |
| __gpiRetry++; | |
| } else { | |
| __gpiRetry = 0; | |
| alert(formatString("获取群组个人信息失败,请重新登录。错误代码:{0}", typeof a.rc == "number" ? a.rc : 500)); | |
| redirectLogin(); | |
| } | |
| } | |
| } | |
| } | |
| function getGroupPerInfoError(a, c, b) { | |
| if (__gpiRetry < 3) { | |
| __gpiRetry++; | |
| } else { | |
| __gpiRetry = 0; | |
| alert(formatString("获取用户群组个人信息失败,请重新登录。错误原因:{0}", c)); | |
| redirectLogin(); | |
| } | |
| } | |
| function startGroupSubscribe(b, c) { | |
| var a = new Object(); | |
| a.success = function(d, e) { | |
| startGroupSubscribeSuccess(c, b, d, e); | |
| }; | |
| a.error = function(d, f, e) { | |
| startGroupSubscribeError(d, f, e, b); | |
| }; | |
| a.url = formatString(GroupSubscribeUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "ssid": __sessionId, | |
| "GroupUris": b, | |
| "Type": 1 | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| var __sgssRetry = 0; | |
| function startGroupSubscribeSuccess(e, c, b, d) { | |
| var a = b; | |
| if (typeof a.rc == "number" && a.rc == 200) { | |
| if (typeof e == "function") { | |
| e(); | |
| } | |
| } else { | |
| if (typeof a.rc == "number" && a.rc == 310) { | |
| redirectLogin(); | |
| } else { | |
| if (__sgssRetry < 3) { | |
| __sgssRetry++; | |
| window.setTimeout(function() { | |
| startGroupSubscribe(c); | |
| }, 500); | |
| } else { | |
| __sgssRetry = 0; | |
| alert(formatString("由于网络原因,订阅群组失败,请重新登录。错误代码:{0}", typeof a.rc == "number" ? a.rc : 500)); | |
| redirectLogin(); | |
| } | |
| } | |
| } | |
| } | |
| function startGroupSubscribeError(a, d, b, c) { | |
| if (__sgssRetry < 3) { | |
| __sgssRetry++; | |
| window.setTimeout(function() { | |
| startGroupSubscribe(c); | |
| }, 500); | |
| } else { | |
| __sgssRetry = 0; | |
| alert(formatString("订阅群组失败,请重新登录。错误原因:{0}", d)); | |
| redirectLogin(); | |
| } | |
| } | |
| function getCred() { | |
| var a = new Object(); | |
| a.success = getCredSuccess; | |
| a.error = getCredError; | |
| a.url = formatString(getCredUrl, __version++); | |
| a.type = "POST"; | |
| a.data = { | |
| "ssid": __sessionId | |
| }; | |
| a.dataType = "json"; | |
| a.cache = false; | |
| $.ajax(a); | |
| } | |
| var __gcRetry = 0, | |
| __gcRetry1 = 0; | |
| function getCredSuccess(c, d) { | |
| var a = c; | |
| if ( !! a && typeof a.rc == "number" && a.rc == 200) { | |
| __user.c = a.rv.c; | |
| __user.c = encodeURIComponent(__user.c); | |
| if (__user.c) { | |
| var b = formatString(__mySpaceUrl, __user.c); | |
| $("#myspace_icon") | |
| .attr("href", b); | |
| $("#myspace") | |
| .attr("href", b); | |
| } | |
| __gcRetry1 = 0; | |
| } else { | |
| if (__gcRetry1 < 3) { | |
| __gcRetry1++; | |
| getCred(); | |
| } | |
| } | |
| __gcRetry = 0; | |
| } | |
| function getCredError(a, c, b) { | |
| if (__gcRetry < 3) { | |
| __gcRetry++; | |
| getCred(); | |
| } | |
| } | |
| var code_LoadingPanel = null; | |
| var codeImgFlag = true; | |
| function createCcpUI(j, d) { | |
| divMask.removeClass("none"); | |
| if ($("#codeDiv") | |
| .length > 0) { | |
| $("#codeDiv") | |
| .removeClass("none"); | |
| $("#txtCode") | |
| .focus(); | |
| return; | |
| } | |
| var k = $('<div id="codeDiv" class="hint" style="top: 10px;z-index: 10002;">'); | |
| var f = $("<h3><span></span><i></i><b>输入验证码</b></h3>"); | |
| var b = $('<div class="hint_btn_new1"><a href="" class="mr5">确 定</a></div>'); | |
| var g = $('<div class="hint_cont_new1 pb8"></div>'); | |
| var e = $('<div class="modify_new2"><label for="textfield">' + d + "</label><br /></div>"); | |
| if (j == 0) { | |
| e.append($('<div class="input_text_c"><input type="text" name="txtCode" id="txtCode" class="frame_246-24 w125" maxlength="4" />' + '<img id="ccpimg"title="如果您无法识别验证码,点击图片更换" src="images/login20120903/ccploading.png" /><a id="change_link"' + 'href="#">看不清,换一张</a><p id="error" class="none">输入的验证码有误,请重新输入</p></div>')); | |
| } else { | |
| if (j == 1) { | |
| e.append($('<div class="input_text_c"><input type="text" name="txtCode" id="txtCode" class="frame_246-24 w125" maxlength="4" />' + '<p id="error" class="none">输入的验证码有误,请重新输入</p></div>')); | |
| } | |
| } | |
| g.append(e) | |
| .append(b); | |
| k.append(f) | |
| .append(g); | |
| k.appendTo(document.body); | |
| code_LoadingPanel = $.fn.loadingPanel({ | |
| target: "codeDiv" | |
| }); | |
| var i = getViewportCenter(); | |
| var a = { | |
| "top": i.y - k.height() / 2, | |
| "left": i.x - k.width() / 2 | |
| }; | |
| if (a.top < 50) { | |
| a.top = 50; | |
| } | |
| if (a.left < 50) { | |
| a.left = 50; | |
| } | |
| k.css({ | |
| "top": a.top + "px", | |
| "left": a.left + "px" | |
| }); | |
| b.find("a") | |
| .bind("click", function(c) { | |
| if (j == 0) { | |
| validateCode(); | |
| } else { | |
| if (j == 1) {} | |
| } | |
| return false; | |
| }); | |
| f.find("span") | |
| .bind("click", function(c) { | |
| $("#codeDiv") | |
| .addClass("none"); | |
| divMask.addClass("none"); | |
| }); | |
| if (j == 0) { | |
| $("#change_link") | |
| .bind("click", function() { | |
| resetCcp(); | |
| return false; | |
| }); | |
| setTimeout(function() { | |
| resetCcp(); | |
| }, 500); | |
| } | |
| } | |
| function resetCcp() { | |
| $("#ccpimg") | |
| .attr("src", formatString(getPicCodeUrl, "ccpsession", Math.random())); | |
| return false; | |
| } | |
| function validateCode() { | |
| code_LoadingPanel.show(); | |
| var a = {}; | |
| a.type = "POST"; | |
| a.dataType = "json"; | |
| a.url = formatString(ValidatePicCodeUrl, __version++); | |
| a.data = { | |
| "Ccp": $("#txtCode") | |
| .val() | |
| }; | |
| a.cache = false; | |
| a.success = function(b) { | |
| code_LoadingPanel.hide(); | |
| if (b.rc == 200) { | |
| $("#codeDiv") | |
| .addClass("none"); | |
| divMask.addClass("none"); | |
| codeImgFlag = false; | |
| } else { | |
| $("#error") | |
| .removeClass("none"); | |
| resetCcp(); | |
| } | |
| $("#txtCode") | |
| .val(""); | |
| }; | |
| a.error = function() { | |
| code_LoadingPanel.hide(); | |
| $("#txtCode") | |
| .val("") | |
| .focus(); | |
| $("#error") | |
| .removeClass("none"); | |
| resetCcp(); | |
| }; | |
| $.ajax(a); | |
| } | |
| function sendSmsCode() { | |
| var a = {}; | |
| a.type = "POST"; | |
| a.dataType = "json"; | |
| a.url = formatString(GetSmsCodeCodeUrl, __version++); | |
| a.data = { | |
| "mn": __user.mn | |
| }; | |
| a.cache = false; | |
| a.success = function(b) { | |
| if (b.rc == 0) {} else {} | |
| }; | |
| a.error = function() {}; | |
| $.ajax(a); | |
| } | |
| var tryGetALInfoTimes = 0; | |
| function getALInfo() { | |
| var a = {}; | |
| a.url = formatString(getALInfoUrl, __version++); | |
| a.type = "POST"; | |
| a.dataType = "json"; | |
| a.data = { | |
| "ssid": __sessionId | |
| }; | |
| a.cache = false; | |
| a.success = getALInfoSuccess; | |
| a.error = getALInfoError; | |
| $.ajax(a); | |
| } | |
| function getALInfoSuccess(f) { | |
| if ( !! f && f.rc == 200) { | |
| tryGetALInfoTimes = 0; | |
| var e = f.rv; | |
| var d = $("#phone_list_content"), | |
| a; | |
| $(".phone_leisure") | |
| .addClass("none"); | |
| d.removeClass("none"); | |
| for (var c = 0, b = e.length; c < b; c++) { | |
| a = createItem(e[c]); | |
| d.append(a); | |
| } | |
| } else { | |
| if (tryGetALInfoTimes < 3) { | |
| getALInfo(); | |
| tryGetALInfoTimes++; | |
| } | |
| } | |
| } | |
| function getALInfoError() { | |
| if (tryGetALInfoTimes < 3) { | |
| getALInfo(); | |
| tryGetALInfoTimes++; | |
| } | |
| } | |
| function initTXLlist() { | |
| var a = $("#phone_list_content"); | |
| a.bind("mouseover", function(d) { | |
| d = window.event || d; | |
| var c = d.target || d.srcElement; | |
| var b = $(c) | |
| .closest("li"); | |
| b.addClass("hover"); | |
| stopPropagation(d); | |
| preventDefault(d); | |
| }) | |
| .bind("mouseout", function(d) { | |
| d = window.event || d; | |
| var c = d.target || d.srcElement; | |
| var b = $(c) | |
| .closest("li"); | |
| b.removeClass("hover"); | |
| stopPropagation(d); | |
| preventDefault(d); | |
| }) | |
| .bind("click", function(h) { | |
| h = window.event || h; | |
| var g = h.target || h.srcElement; | |
| var b = $(g) | |
| .closest("li"); | |
| var c = b.attr("guid"); | |
| var d = b.attr("uid"); | |
| var f = b.attr("mn"); | |
| if (g.className.toLowerCase() == "friend_control") { | |
| $.increaseCounter(500400026); | |
| createPopForTXL(b, c); | |
| } else { | |
| if (g.className.toLowerCase() == "friend_add") { | |
| $.increaseCounter(500400024); | |
| AddBuddy({ | |
| a: "1", | |
| u: f, | |
| successCallback2: function(e) { | |
| if (typeof e.rc == "number" && (e.rc == 521 || e.rc == 200)) { | |
| $.increaseCounter(500400025); | |
| $(g) | |
| .remove(); | |
| } | |
| } | |
| }); | |
| } else { | |
| if (g.className.toLowerCase() == "friend_news") { | |
| $.increaseCounter(500400023); | |
| createFreeSMSTab(c, d, f); | |
| } | |
| } | |
| } | |
| stopPropagation(h); | |
| preventDefault(h); | |
| }) | |
| .bind("dblclick", function(i) { | |
| i = window.event || i; | |
| var h = i.target || i.srcElement; | |
| var c = $(h) | |
| .closest("h5"); | |
| if (c.length > 0) { | |
| var b = $(h) | |
| .closest("li"); | |
| var d = b.attr("guid"); | |
| var f = b.attr("uid"); | |
| var g = b.attr("mn"); | |
| if (!isMobileNoReg.test(g) || __user.ca.toLowerCase() != "cmcc") { | |
| createAddTXLTab(d); | |
| } else { | |
| createFreeSMSTab(d, f, g); | |
| } | |
| } | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }); | |
| } | |
| function createItem(i) { | |
| var d = new PhoneDefault(); | |
| $.extend(d, i); | |
| __phoneMap.put(d.GUID.toString(), d); | |
| var a = isMobileNoRegForTXL.test(d.HMobile) ? d.HMobile : (isMobileNoRegForTXL.test(d.OMobile) ? d.OMobile : ((isMobileNoRegForTXL.test(d.OPhone) ? d.OPhone : ((isMobileNoRegForTXL.test(d.HPhone) ? d.HPhone : (d.HMobile || d.OMobile || d.OPhone || d.HPhone)))))); | |
| var h = d.FN.length; | |
| var f = h > 8 ? cnSubstr(a, 11, false) : cnSubstr(a, 21 - h, false); | |
| var g = $('<li guid="' + d.GUID + '" uid="" mn="' + a + '" class="" style="cursor:default;"><div class="friends_info"><h5><strong class="BuddyList_Container"><b>●</b></strong>' + cnSubstr(d.FN, 8, false) + "<span>" + f + "</span></h5></div>" + '<div class="friend_control"></div></li>'); | |
| if (isMobileNoRegForTXL.test(a)) { | |
| if (a.indexOf("+") == 0) { | |
| a = a.substr(3); | |
| g.find(".friends_info span") | |
| .text(a); | |
| g.attr("mn", a); | |
| } | |
| if (__user.ca.toLowerCase() == "cmcc") { | |
| d.tel = { | |
| "uid": "", | |
| "mn": a | |
| }; | |
| g.append('<div class="friend_news" title="联系对方">'); | |
| } | |
| } | |
| d.arr = [], len = 0; | |
| if (isMobileNoReg.test(a)) { | |
| var c, e = false; | |
| function b(j) { | |
| if (isMobileNoRegForTXL.test(j)) { | |
| if (j.indexOf("+") == 0) { | |
| j = j.substr(3); | |
| } | |
| c = isBuddy(j); | |
| if (!e && !! c) { | |
| if (g.attr("mn") != j) { | |
| d.arr[len++] = "|" + g.attr("mn"); | |
| g.find(".friends_info span") | |
| .text(j); | |
| g.attr("mn", j); | |
| } | |
| g.attr("uid", c); | |
| if ( !! d.tel) { | |
| d.tel.uid = c; | |
| d.tel.mn = j; | |
| } | |
| e = true; | |
| } else { | |
| if (g.attr("mn") != j) { | |
| d.arr[len++] = c + "|" + j; | |
| } | |
| } | |
| } | |
| } | |
| b(d.HMobile); | |
| b(d.OMobile); | |
| b(d.OPhone); | |
| b(d.HPhone); | |
| if (!e) { | |
| g.append('<div class="friend_add" title="加为好友"></div>'); | |
| } | |
| } | |
| return g; | |
| } | |
| function delAlinfo(a) { | |
| var c = $("#phone_list_content"); | |
| var b = {}; | |
| b.type = "POST"; | |
| b.dataType = "json"; | |
| b.data = { | |
| "ssid": __sessionId, | |
| "guid": a | |
| }; | |
| b.url = formatString(deleteALInfoOneUrl, __version++); | |
| b.cache = false; | |
| b.success = function(d) { | |
| c.find('li[guid="' + a + '"]') | |
| .remove(); | |
| if (c.find("li") | |
| .length <= 0) { | |
| c.addClass("none"); | |
| c.prev() | |
| .removeClass("none"); | |
| } | |
| }; | |
| b.error = function() {}; | |
| $.ajax(b); | |
| } | |
| function isBuddy(e) { | |
| var c = "", | |
| d = __contactMap.values(); | |
| if (e == __user.mn) { | |
| c = __user.uid; | |
| } | |
| for (var b = 0, a = d.length; b < a; b++) { | |
| var f = d[b]; | |
| if (e == f.mn) { | |
| c = f.uid; | |
| break; | |
| } | |
| } | |
| return c; | |
| } | |
| var PopForTXLFlag = false; | |
| function createPopForTXL(b, g) { | |
| var k = $("#popForTongXunLu"), | |
| e = k.find("ul"); | |
| k.removeClass("none"); | |
| e.attr("guid", g); | |
| e.find('li[t=""]') | |
| .remove(); | |
| var f = __phoneMap.get(g); | |
| if (f.arr.length > 0) { | |
| var d, l; | |
| for (var c = 0, a = f.arr.length; c < a; c++) { | |
| d = f.arr[c].split("|"); | |
| l = $('<li t="" uid="' + d[0] + '" mn="' + d[1] + '"><a class="icon_contact" href="javascript:;">' + d[1] + "</a></li>"); | |
| k.find("ul") | |
| .prepend(l); | |
| } | |
| } | |
| e.find("li") | |
| .bind("mouseover", function() { | |
| this.className = "hover"; | |
| }) | |
| .bind("mouseout", function() { | |
| this.className = ""; | |
| }); | |
| if (!PopForTXLFlag) { | |
| PopForTXLFlag = true; | |
| k.bind("mouseover", function(i) { | |
| clearTimeout(__tmpTimer); | |
| k.removeClass("none"); | |
| }) | |
| .bind("mouseout", function(i) { | |
| if (isMouseOut(this, i)) { | |
| clearTimeout(__tmpTimer); | |
| k.addClass("none"); | |
| } | |
| }); | |
| e.bind("click", function(o) { | |
| o = window.event || o; | |
| var n = o.target || o.srcElement; | |
| var i = $(n) | |
| .closest("li"); | |
| var j = $(this) | |
| .attr("guid"); | |
| var p = __phoneMap.get(j); | |
| switch (i.attr("t") | |
| .trim()) { | |
| case "del": | |
| $.increaseCounter(500400020); | |
| $.fn.fetionHintWindow({ | |
| modal: true | |
| }) | |
| .show('你确定要删除"' + p.FN + '"吗', "删除联系人", "OKCancel", function() { | |
| $.increaseCounter(500400021); | |
| delAlinfo(j); | |
| }, function() { | |
| $.increaseCounter(500400022); | |
| }, "images/icon_wenhao.png"); | |
| break; | |
| case "edit": | |
| $.increaseCounter(500400017); | |
| createAddTXLTab(j); | |
| break; | |
| default: | |
| createFreeSMSTab(j, i.attr("uid") | |
| .trim(), i.attr("mn") | |
| .trim()); | |
| break; | |
| } | |
| k.addClass("none"); | |
| stopPropagation(o); | |
| preventDefault(o); | |
| }); | |
| } | |
| var h = $(b); | |
| var m = h.offset(); | |
| if (m.top + k.height() > getViewportHeight() - 20) { | |
| m.top = m.top - k.height(); | |
| } | |
| k.css({ | |
| "top": m.top + h.height(), | |
| "left": m.left - (k.outerWidth() - h.width()) | |
| }); | |
| clearTimeout(__tmpTimer); | |
| __tmpTimer = setTimeout(function() { | |
| k.addClass("none"); | |
| clearTimeout(__tmpTimer); | |
| }, 2000); | |
| } | |
| var imageCarousel = function() { | |
| function d(f, j, h) { | |
| if (f.forEach) { | |
| f.forEach(j, h); | |
| } else { | |
| for (var g = 0, e = f.length; g < e; g++) { | |
| j.call(h, f[g], g, f); | |
| } | |
| } | |
| } | |
| function a(f) { | |
| b(f, 0); | |
| for (var e = 0; e < 20; e++) { | |
| (function() { | |
| var g = e * 5; | |
| setTimeout(function() { | |
| b(f, g); | |
| }, e * 25); | |
| })(e); | |
| } | |
| } | |
| function c(f) { | |
| for (var e = 0; e <= 20; e++) { | |
| (function() { | |
| var g = 100 - e * 5; | |
| setTimeout(function() { | |
| b(f, g); | |
| }, e * 25); | |
| })(e); | |
| } | |
| } | |
| function b(e, f) { | |
| if (e.filters) { | |
| e.style.filter = "alpha(opacity=" + f + ")"; | |
| } else { | |
| e.style.opacity = f / 100; | |
| } | |
| } | |
| return { | |
| scroll: function(j, i, g, l) { | |
| var f = this; | |
| var k = 0; | |
| var h = 0; | |
| this.info = $("#banner_info"); | |
| this.img = document.getElementById(i) | |
| .getElementsByTagName("a"); | |
| d(this.img, function(o, n, m) { | |
| if (n != 0) { | |
| b(o, 0); | |
| } | |
| }); | |
| var e = setInterval(function() { | |
| if (k < j - 1) { | |
| k++; | |
| } else { | |
| k = 0; | |
| } | |
| f.fade(k, h); | |
| h = k; | |
| }, g); | |
| document.getElementById(i) | |
| .onmouseover = function() { | |
| clearInterval(e); | |
| }; | |
| document.getElementById(i) | |
| .onmouseout = function() { | |
| e = setInterval(function() { | |
| if (k < j - 1) { | |
| k++; | |
| } else { | |
| k = 0; | |
| } | |
| f.fade(k, h); | |
| h = k; | |
| }, g); | |
| }; | |
| }, | |
| fade: function(e, g) { | |
| if (e == g) { | |
| return; | |
| } | |
| var f = this; | |
| c(f.img[g]); | |
| a(f.img[e]); | |
| this.info.html('<a href="' + f.img[e].href + '" target="' + f.img[e].target + '"><img src="' + f.img[e].firstChild.src + '" title="' + f.img[e].firstChild.title + '" alt="' + f.img[e].firstChild.title + '" /></a>'); | |
| $("#banner_info > a") | |
| .bind("click", function() { | |
| $.increaseCounter(500900001); | |
| }); | |
| } | |
| }; | |
| }(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var __isSmsOnline = /^0+.0+:0+:0+$/; | |
| function jCompactUri(d) { | |
| this.mobileNoOrSid = 0; | |
| this.isRobot = false; | |
| this.logicalPool = -1; | |
| this.isMobileNo = false; | |
| if (!d) { | |
| return; | |
| } | |
| if (d.startsWith("tel:")) { | |
| this.mobileNoOrSid = parseMobileNo(d.substring(4)); | |
| this.isMobileNo = true; | |
| } else { | |
| if (d.startsWith("sip:")) { | |
| var a = d.indexOf("@"); | |
| var f = d.indexOf(";p="); | |
| if (a < 0) { | |
| this.mobileNoOrSid = parseInt(d.substring(4)); | |
| } else { | |
| this.mobileNoOrSid = parseInt(d.substr(4, a - 4)); | |
| if (f > 0) { | |
| var b = d.substring(f + 3); | |
| var e = b.indexOf(";"); | |
| var c; | |
| if (e < 0) { | |
| c = b; | |
| } else { | |
| c = b.substr(0, e); | |
| if (b.toLowerCase() | |
| .indexOf("t=robot") >= 0) { | |
| this.isRobot = true; | |
| } | |
| } | |
| this.logicalPool = parseInt(c); | |
| } else { | |
| _logicalPool = -1; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| function jGroupUriToId(b) { | |
| var a = b.replace("sip:PG", ""); | |
| return a.substr(0, a.indexOf("@")); | |
| } | |
| function jMemUriToId(b) { | |
| var a = b.replace("sip:", ""); | |
| return a.substr(0, a.indexOf("@")); | |
| } | |
| function parseMobileNo(b) { | |
| var a = 0; | |
| if (b.startsWith("-")) { | |
| throw new Error("Unexcepted MobileNo: " + b); | |
| } | |
| if (b.startsWith("+86")) { | |
| a = parseInt(b.substring(3)); | |
| } else { | |
| if (b.startsWith("0086")) { | |
| a = parseInt(b.substring(4)); | |
| } else { | |
| if (b.startsWith("86")) { | |
| a = parseInt(b.substring(2)); | |
| } else { | |
| if (b.startsWith("852")) { | |
| a = parseInt("-900" + b); | |
| } else { | |
| if (b.startsWith("00")) { | |
| a = parseInt("-9" + b); | |
| } else { | |
| if (b.startsWith("65")) { | |
| a = parseInt("-900" + b); | |
| } else { | |
| a = parseInt(b); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| return a; | |
| } | |
| function getBuddyOrder(a) { | |
| if (!a) { | |
| return -1; | |
| } | |
| var c = 0; | |
| var b = parseInt(a.pb); | |
| if (a.rs == 1) { | |
| if (b == 0) { | |
| if ((a.isCM && __isSmsOnline.test(a.sms) || (a.isCT || a.isCU))) { | |
| if (a.isVip) { | |
| c = 7; | |
| } else { | |
| c = (a.ct == 1) ? 9 : 8; | |
| } | |
| } else { | |
| if (a.isVip) { | |
| c = 10; | |
| } else { | |
| c = (a.ct == 1) ? 9 : 11; | |
| } | |
| } | |
| } else { | |
| if (b > 0) { | |
| c = (a.isVip ? 1 : 2); | |
| } | |
| } | |
| } else { | |
| if (a.rs == 2) { | |
| if (a.ct == 1) { | |
| c = 19; | |
| } else { | |
| c = (a.isVip) ? 17 : 18; | |
| } | |
| } else { | |
| if (a.rs == 0) { | |
| if (a.ct == 2) { | |
| if (b > 0) { | |
| c = a.isVip ? 12 : 13; | |
| } else { | |
| c = a.isVip ? 23 : 24; | |
| } | |
| } else { | |
| if (a.ct == 1) { | |
| c = 16; | |
| } else { | |
| c = a.isVip ? 14 : 15; | |
| } | |
| } | |
| } else { | |
| if (b > 0) { | |
| c = a.isVip ? 12 : 13; | |
| } else { | |
| c = a.isVip ? 23 : 24; | |
| } | |
| } | |
| } | |
| } | |
| if (a.bss == "0" && a.ct != 1) { | |
| c = 25; | |
| } | |
| return c; | |
| } | |
| function buddyComparator(e, d) { | |
| if (!e && !d) { | |
| return 0; | |
| } | |
| if (e && !d) { | |
| return 1; | |
| } | |
| if (!e && d) { | |
| return -1; | |
| } | |
| var c, b; | |
| if (e.orderNo) { | |
| c = e.orderNo; | |
| } else { | |
| c = getBuddyOrder(e); | |
| } | |
| if (d.orderNo) { | |
| b = d.orderNo; | |
| } else { | |
| b = getBuddyOrder(d); | |
| } | |
| if (c == b) { | |
| var a = (e.displayName) | |
| .localeCompare(d.displayName); | |
| if (a == 0 && e.uri && d.uri) { | |
| return (e.uri) | |
| .localeCompare(d.uri); | |
| } | |
| return a; | |
| } | |
| return c - b; | |
| } | |
| function buddyListComparator(b, d) { | |
| if (b.id == d.id) { | |
| return 0; | |
| } | |
| if (b.id == 0) { | |
| return -1; | |
| } | |
| if (d.id == 0) { | |
| return 1; | |
| } | |
| if (b.id == -1) { | |
| return 1; | |
| } | |
| if (d.id == -1) { | |
| return -1; | |
| } | |
| var a = b.n; | |
| var c = d.n; | |
| return a.localeCompare(c); | |
| } | |
| var ContactType = { | |
| Unknown: 0, | |
| FetionBuddy: 1, | |
| MobileBuddy: 2, | |
| ChatFriend: 4, | |
| Robot: 8 | |
| }; | |
| function getContactType(a) { | |
| var b = ContactType.Unknown; | |
| switch (a.ct) { | |
| case -1: | |
| b = ContactType.Unknown; | |
| break; | |
| case 0: | |
| b = ContactType.FetionBuddy; | |
| break; | |
| case 1: | |
| b = ContactType.MobileBuddy; | |
| break; | |
| case 2: | |
| b = ContactType.ChatFriend; | |
| break; | |
| default: | |
| break; | |
| } | |
| if (a.ca && a.ca.toLocaleUpperCase() == "ROBOT") { | |
| b = ContactType.Robot; | |
| } | |
| return b; | |
| } | |
| var ContactStatus = { | |
| Unknown: 0, | |
| Online: 1, | |
| SmsOnline: 2, | |
| Offline: 4, | |
| BlockList: 8, | |
| Busy: 16, | |
| Away: 32, | |
| PC: 64, | |
| Mobile: 128, | |
| Verify: 256, | |
| Refuse: 512, | |
| CloseService: 1024, | |
| PCOnline: 64 | 1, | |
| PCBusy: 64 | 16, | |
| PCAway: 64 | 32, | |
| MobileOnline: 128 | 1, | |
| MobileBusy: 128 | 16, | |
| MobileAway: 128 | 32, | |
| PCOnline_Bklist: 64 | 1 | 8, | |
| PCBusy_Bklist: 64 | 16 | 8, | |
| PCAway_Bklist: 64 | 32 | 8, | |
| MobileOnline_Bklist: 128 | 1 | 8, | |
| MobileBusy_Bklist: 128 | 16 | 8, | |
| MobileAway_Bklist: 128 | 32 | 8, | |
| SmsOnline_Bklist: 2 | 8, | |
| Offline_Bklist: 4 | 8, | |
| Verify_Bklist: 256 | 8, | |
| Refuse_Bklist: 512 | 8, | |
| CloseService_Bklist: 1024 | 8 | |
| }; | |
| function isOnlineContact(a) { | |
| var b = a.status; | |
| if ((b & ContactStatus.Online) > 0 || (b & ContactStatus.Busy) > 0 || (b & ContactStatus.Away) > 0) { | |
| return true; | |
| } | |
| return false; | |
| } | |
| function getContactStatus(b) { | |
| if (!b) { | |
| return ContactStatus.Unknown; | |
| } | |
| var c = ContactStatus.Unknown; | |
| if (b.rs == 1 && b.ct == 0) { | |
| if (b.bss == "0" && !b.mn) { | |
| c = ContactStatus.CloseService; | |
| if (b.isBk == 1) { | |
| c |= ContactStatus.BlockList; | |
| } | |
| } else { | |
| var a = parseInt(b.pb); | |
| if (a == 0) { | |
| if (__isSmsOnline.test(b.sms)) { | |
| if (b.isBk == 1) { | |
| c = ContactStatus.SmsOnline_Bklist; | |
| } else { | |
| c = ContactStatus.SmsOnline; | |
| } | |
| } else { | |
| if (b.isBk == 1) { | |
| c = ContactStatus.Offline_Bklist; | |
| } else { | |
| c = ContactStatus.Offline; | |
| if (b.ca.toLowerCase() == "ct" || b.ca.toLowerCase() == "cucc") { | |
| c = ContactStatus.SmsOnline; | |
| } | |
| } | |
| } | |
| } else { | |
| if (a > 0) { | |
| if (a >= 400 && a < 500) { | |
| c = ContactStatus.Online; | |
| } else { | |
| if (a < 400) { | |
| c = ContactStatus.Away; | |
| } else { | |
| if (a >= 500) { | |
| c = ContactStatus.Busy; | |
| } | |
| } | |
| } | |
| if (b.isBk == 1) { | |
| c |= ContactStatus.BlockList; | |
| } | |
| if (b.dt == "PC" || b.dt == "WEB" || b.dt == "Robot") { | |
| c |= ContactStatus.PC; | |
| } else { | |
| c |= ContactStatus.Mobile; | |
| } | |
| } | |
| } | |
| } | |
| } else { | |
| if (b.rs == 1 && b.ct == 1) { | |
| if (b.isBk == 1) { | |
| c = ContactStatus.SmsOnline_Bklist; | |
| } else { | |
| if (b.cas == 2) { | |
| c = ContactStatus.Offline; | |
| } else { | |
| c = ContactStatus.SmsOnline; | |
| } | |
| } | |
| } else { | |
| if (b.rs == 0 && b.ct != 2) { | |
| if (b.isBk == 1) { | |
| c = ContactStatus.Verify_Bklist; | |
| } else { | |
| c = ContactStatus.Verify; | |
| } | |
| } else { | |
| if (b.rs == 2 && b.ct != 2) { | |
| if (b.isBk == 1) { | |
| c = ContactStatus.Refuse_Bklist; | |
| } else { | |
| c = ContactStatus.Refuse; | |
| } | |
| } else { | |
| if (b.ct == 2) { | |
| var a = parseInt(b.pb); | |
| if (a > 0) { | |
| c = ContactStatus.Online; | |
| } else { | |
| c = ContactStatus.Offline; | |
| } | |
| if (b.isBk == 1) { | |
| c |= ContactStatus.BlockList; | |
| } | |
| if (b.bss == "0") { | |
| c |= ContactStatus.CloseService; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| return c; | |
| } | |
| var ClassNameSuffixes = new jHashMap(); | |
| ClassNameSuffixes.put(ContactStatus.Unknown, "offline"); | |
| ClassNameSuffixes.put(ContactStatus.Online, "pc-online"); | |
| ClassNameSuffixes.put(ContactStatus.SmsOnline, "msg-online"); | |
| ClassNameSuffixes.put(ContactStatus.Offline, "offline"); | |
| ClassNameSuffixes.put(ContactStatus.BlockList, "pc-bklist"); | |
| ClassNameSuffixes.put(ContactStatus.Busy, "pc-busy"); | |
| ClassNameSuffixes.put(ContactStatus.Away, "pc-away"); | |
| ClassNameSuffixes.put(ContactStatus.Verify, "verify"); | |
| ClassNameSuffixes.put(ContactStatus.Verify_Bklist, "verify_bklist"); | |
| ClassNameSuffixes.put(ContactStatus.Refuse, "refuse"); | |
| ClassNameSuffixes.put(ContactStatus.Refuse_Bklist, "refuse_bklist"); | |
| ClassNameSuffixes.put(ContactStatus.CloseService, "close"); | |
| ClassNameSuffixes.put(ContactStatus.CloseService_Bklist, "close_bklist"); | |
| ClassNameSuffixes.put(ContactStatus.PCOnline, "pc-online"); | |
| ClassNameSuffixes.put(ContactStatus.PCBusy, "pc-busy"); | |
| ClassNameSuffixes.put(ContactStatus.PCAway, "pc-away"); | |
| ClassNameSuffixes.put(ContactStatus.MobileOnline, "mb-online"); | |
| ClassNameSuffixes.put(ContactStatus.MobileBusy, "mb-busy"); | |
| ClassNameSuffixes.put(ContactStatus.MobileAway, "mb-away"); | |
| ClassNameSuffixes.put(ContactStatus.PCOnline_Bklist, "pc-bklist"); | |
| ClassNameSuffixes.put(ContactStatus.PCBusy_Bklist, "pc-bklist"); | |
| ClassNameSuffixes.put(ContactStatus.PCAway_Bklist, "pc-bklist"); | |
| ClassNameSuffixes.put(ContactStatus.MobileOnline_Bklist, "mb-bklist"); | |
| ClassNameSuffixes.put(ContactStatus.MobileBusy_Bklist, "mb-bklist"); | |
| ClassNameSuffixes.put(ContactStatus.MobileAway_Bklist, "mb-bklist"); | |
| ClassNameSuffixes.put(ContactStatus.SmsOnline_Bklist, "msg-bklist"); | |
| ClassNameSuffixes.put(ContactStatus.Offline_Bklist, "offline-bklist"); | |
| var StatusDescriptions = new jHashMap(); | |
| function getContactClassName(a) { | |
| var d = a.type, | |
| b = a.status; | |
| if (d == ContactType.ChatFriend) { | |
| if ((b & ContactStatus.BlockList) == ContactStatus.BlockList) { | |
| return "st-pc-bklist"; | |
| } else { | |
| if ((b & ContactStatus.CloseService) == ContactStatus.CloseService || (b & ContactStatus.Offline) == ContactStatus.Offline) { | |
| return "offline"; | |
| } else { | |
| return "st-pc-online"; | |
| } | |
| } | |
| } | |
| if (d != ContactType.ChatFriend && (b & ContactStatus.CloseService) == ContactStatus.CloseService) { | |
| if ((b & ContactStatus.BlockList) == ContactStatus.BlockList) { | |
| return "offline-bklist"; | |
| } else { | |
| return "close"; | |
| } | |
| } | |
| var e = ClassNameSuffixes.get(b); | |
| if (!e) { | |
| return "offline"; | |
| } | |
| if (b == ContactStatus.Unknown || b == ContactStatus.Verify || b == ContactStatus.Verify_Bklist || b == ContactStatus.Refuse || b == ContactStatus.Refuse_Bklist || (b & ContactStatus.Offline) == ContactStatus.Offline) { | |
| if (d != ContactType.Robot) { | |
| return e; | |
| } | |
| } | |
| var c = ""; | |
| switch (d) { | |
| case ContactType.FetionBuddy: | |
| if (a.isMobile) { | |
| c = "ff-" + e; | |
| } else { | |
| c = "ncm-" + e; | |
| } | |
| break; | |
| case ContactType.MobileBuddy: | |
| if (a.isMobile) { | |
| c = "mf-" + e; | |
| } else { | |
| c = "ncm-" + e; | |
| } | |
| break; | |
| case ContactType.ChatFriend: | |
| c = "st-" + e; | |
| break; | |
| case ContactType.Robot: | |
| c = "rb-" + e; | |
| break; | |
| } | |
| return c; | |
| } | |
| function getStatusDesc(a) { | |
| var c = a.type, | |
| b = a.status; | |
| if (c == ContactType.ChatFriend) { | |
| return ""; | |
| } | |
| if ((b & ContactStatus.Online) == ContactStatus.Online) { | |
| return "在线"; | |
| } | |
| if ((b & ContactStatus.SmsOnline) == ContactStatus.SmsOnline) { | |
| return "短信在线"; | |
| } | |
| if ((b & ContactStatus.Offline) == ContactStatus.Offline) { | |
| return "离线"; | |
| } | |
| if ((b & ContactStatus.Busy) == ContactStatus.Busy) { | |
| return "忙碌"; | |
| } | |
| if ((b & ContactStatus.Away) == ContactStatus.Away) { | |
| return "离开"; | |
| } | |
| if ((b & ContactStatus.Verify) == ContactStatus.Verify || (b & ContactStatus.Verify_Bklist) == ContactStatus.Verify_Bklist) { | |
| return "(等待对方同意添加为好友)"; | |
| } | |
| if ((b & ContactStatus.Refuse) == ContactStatus.Refuse || (b & ContactStatus.Refuse_Bklist) == ContactStatus.Verify_Bklist) { | |
| return "(对方拒绝)"; | |
| } | |
| if ((b & ContactStatus.CloseService) == ContactStatus.CloseService) { | |
| return "飞信服务已关闭"; | |
| } | |
| return ""; | |
| } | |
| var __entityList = new Array(); | |
| __entityList["<"] = "<"; | |
| __entityList[">"] = ">"; | |
| __entityList["&"] = "&"; | |
| function EntityReplace(g) { | |
| var b = ""; | |
| if (g != null) { | |
| var a = g.length; | |
| var d = 0; | |
| while (d < a) { | |
| var c = d; | |
| var f = __entityList[g.charAt(c)]; | |
| while (c < a && null == f) { | |
| c++; | |
| f = __entityList[g.charAt(c)]; | |
| } | |
| b += g.substr(d, c - d); | |
| if (f != null) { | |
| b += f; | |
| c++; | |
| } | |
| d = c; | |
| } | |
| } | |
| return b; | |
| } | |
| function EmoticonInfo(f, d, c, b, a, e) { | |
| this.IsLeaf = true; | |
| this.EmoticonToHtml = function(g) { | |
| var h = ""; | |
| if (!g) { | |
| h = "images/emoticons/" + f + "." + e; | |
| } else { | |
| h = "images/emoticons/" + f + "." + a; | |
| } | |
| return "<img src='" + h + "' alt='' />"; | |
| }; | |
| this.Length = function() { | |
| return c; | |
| }; | |
| } | |
| function Emoticons() { | |
| var g = new Array(); | |
| var a = new Object(); | |
| function f(j, n, l, k) { | |
| var m = l.charAt(k); | |
| if (k < l.length - 1) { | |
| if (j[m] == null) { | |
| j[m] = new Array(); | |
| } | |
| f(j[m], n, l, k + 1); | |
| } else { | |
| j[m] = n; | |
| } | |
| } | |
| function b(k, j) { | |
| if (k in a) { | |
| return; | |
| } | |
| a[k] = j; | |
| } | |
| function c(l, r) { | |
| var j = arguments[0]; | |
| var q = arguments[1]; | |
| var p = arguments[2]; | |
| var o = arguments[3]; | |
| var k = arguments[4]; | |
| var m = EntityReplace(q); | |
| var n = new EmoticonInfo(j, q, m.length, p, o, k); | |
| f(g, n, m, 0); | |
| b(j, m); | |
| } | |
| function e() { | |
| c("cake", "(^)", "", "png", "gif"); | |
| c("cat", "(@)", "", "png", "gif"); | |
| c("cat", "(@)", "", "png", "gif"); | |
| c("cat", "(@)", "", "png", "gif"); | |
| c("clock", "(o)", "", "png", "gif"); | |
| c("clock", "(O)", "", "png", "gif"); | |
| c("clock", "(0)", "", "png", "gif"); | |
| c("clock", "(o)", "", "png", "gif"); | |
| c("clock", "(o)", "", "png", "gif"); | |
| c("clock", "(O)", "", "png", "gif"); | |
| c("clock", "(O)", "", "png", "gif"); | |
| c("clock", "(0)", "", "png", "gif"); | |
| c("clock", "(0)", "", "png", "gif"); | |
| c("clock", "(0)", "", "png", "gif"); | |
| c("cloud_rain", "(st)", "", "png", "gif"); | |
| c("cloud_rain", "(ST)", "", "png", "gif"); | |
| c("cloud_rain", "(st)", "", "png", "gif"); | |
| c("cloud_rain", "(st)", "", "png", "gif"); | |
| c("cloud_rain", "(ST)", "", "png", "gif"); | |
| c("cloud_rain", "(ST)", "", "png", "gif"); | |
| c("drink", ")-|", "", "png", "gif"); | |
| c("coffee", "(c)", "", "png", "gif"); | |
| c("coffee", "(c)", "", "png", "gif"); | |
| c("coffee", "(c)", "", "png", "gif"); | |
| c("coffee", "(c)", "", "png", "gif"); | |
| c("coffee", "(C)", "", "png", "gif"); | |
| c("coffee", "(c)", "", "png", "gif"); | |
| c("computer", "(co)", "", "png", "gif"); | |
| c("computer", "(CO)", "", "png", "gif"); | |
| c("computer", "(co)", "", "png", "gif"); | |
| c("computer", "(co)", "", "png", "gif"); | |
| c("computer", "(CO)", "", "png", "gif"); | |
| c("computer", "(CO)", "", "png", "gif"); | |
| c("dog", "(&)", "", "png", "gif"); | |
| c("dog", "(&)", "", "png", "gif"); | |
| c("dog", "(&)", "", "png", "gif"); | |
| c("heart", "(L)", "", "png", "gif"); | |
| c("heart", "(l)", "", "png", "gif"); | |
| c("heart", "(l)", "", "png", "gif"); | |
| c("heart", "(l)", "", "png", "gif"); | |
| c("heart", "(L)", "", "png", "gif"); | |
| c("heart", "(L)", "", "png", "gif"); | |
| c("heart_broken", "(U)", "", "png", "gif"); | |
| c("heart_broken", "(u)", "", "png", "gif"); | |
| c("heart_broken", "(u)", "", "png", "gif"); | |
| c("heart_broken", "(u)", "", "png", "gif"); | |
| c("heart_broken", "(U)", "", "png", "gif"); | |
| c("heart_broken", "(U)", "", "png", "gif"); | |
| c("hug_dude", "(})", "", "png", "gif"); | |
| c("hug_dude", "(})", "", "png", "gif"); | |
| c("hug_dude", "(})", "", "png", "gif"); | |
| c("hug_girl", "({)", "", "png", "gif"); | |
| c("hug_girl", "({)", "", "png", "gif"); | |
| c("hug_girl", "({)", "", "png", "gif"); | |
| c("kiss", "(k)", "", "png", "gif"); | |
| c("kiss", "(K)", "", "png", "gif"); | |
| c("kiss", "(k)", "", "png", "gif"); | |
| c("kiss", "(k)", "", "png", "gif"); | |
| c("kiss", "(K)", "", "png", "gif"); | |
| c("kiss", "(K)", "", "png", "gif"); | |
| c("lightbulb", "(i)", "", "png", "gif"); | |
| c("lightbulb", "(I)", "", "png", "gif"); | |
| c("lightbulb", "(i)", "", "png", "gif"); | |
| c("lightbulb", "(i)", "", "png", "gif"); | |
| c("lightbulb", "(I)", "", "png", "gif"); | |
| c("lightbulb", "(I)", "", "png", "gif"); | |
| c("martini", "(d)", "", "png", "gif"); | |
| c("martini", "(D)", "", "png", "gif"); | |
| c("martini", "(d)", "", "png", "gif"); | |
| c("martini", "(d)", "", "png", "gif"); | |
| c("martini", "(D)", "", "png", "gif"); | |
| c("martini", "(D)", "", "png", "gif"); | |
| c("mobile", "(mp)", "", "png", "gif"); | |
| c("mobile", "(MP)", "", "png", "gif"); | |
| c("mobile", "(mp)", "", "png", "gif"); | |
| c("mobile", "(mp)", "", "png", "gif"); | |
| c("mobile", "(MP)", "", "png", "gif"); | |
| c("mobile", "(MP)", "", "png", "gif"); | |
| c("moon", "(S)", "", "png", "gif"); | |
| c("moon", "(s)", "", "png", "gif"); | |
| c("moon", "(s)", "", "png", "gif"); | |
| c("moon", "(s)", "", "png", "gif"); | |
| c("moon", "(S)", "", "png", "gif"); | |
| c("moon", "(S)", "", "png", "gif"); | |
| c("music_note", "(8)", "", "png", "gif"); | |
| c("music_note", "-8", "", "png", "gif"); | |
| c("music_note", "(8)", "", "png", "gif"); | |
| c("music_note", "(8)", "", "png", "gif"); | |
| c("present", "(g)", "", "png", "gif"); | |
| c("present", "(G)", "", "png", "gif"); | |
| c("present", "(g)", "", "png", "gif"); | |
| c("present", "(g)", "", "png", "gif"); | |
| c("present", "(G)", "", "png", "gif"); | |
| c("present", "(G)", "", "png", "gif"); | |
| c("rainbow", "(r)", "", "png", "gif"); | |
| c("rainbow", "(R)", "", "png", "gif"); | |
| c("rainbow", "(r)", "", "png", "gif"); | |
| c("rainbow", "(r)", "", "png", "gif"); | |
| c("rainbow", "(R)", "", "png", "gif"); | |
| c("rainbow", "(R)", "", "png", "gif"); | |
| c("rose", "(f)", "", "png", "gif"); | |
| c("rose", "(F)", "", "png", "gif"); | |
| c("rose", "(f)", "", "png", "gif"); | |
| c("rose", "(f)", "", "png", "gif"); | |
| c("rose", "(F)", "", "png", "gif"); | |
| c("rose", "(F)", "", "png", "gif"); | |
| c("rose_wilted", "(w)", "", "png", "gif"); | |
| c("rose_wilted", "(W)", "", "png", "gif"); | |
| c("smile_angry", ":@", "", "png", "gif"); | |
| c("smile_angry", ":-@", "", "png", "gif"); | |
| c("smile_baringteeth", "8o|", "", "png", "gif"); | |
| c("smile_baringteeth", "8O", "", "png", "gif"); | |
| c("smile_cry", ":’(", "", "png", "gif"); | |
| c("smile_cry", ":'(", "", "png", "gif"); | |
| c("smile_embaressed", ':">', "尴尬", "png", "gif"); | |
| c("smile_embaressed", ":$", "", "png", "gif"); | |
| c("smile_embaressed", ":-$", "", "png", "gif"); | |
| c("smile_embaressed", ':"-)', "", "png", "gif"); | |
| c("smile_eyeroll", "8-)", "", "png", "gif"); | |
| c("smile_omg", ":-O", "", "png", "gif"); | |
| c("smile_omg", ":-o", "", "png", "gif"); | |
| c("smile_omg", ":O", "", "png", "gif"); | |
| c("smile_omg", ":o", "", "png", "gif"); | |
| c("smile_regular", ":)", "", "png", "gif"); | |
| c("smile_regular", ":-)", "", "png", "gif"); | |
| c("smile_sad", ":(", "", "png", "gif"); | |
| c("smile_sad", ":-(", "", "png", "gif"); | |
| c("smile_sad", ":<", "", "png", "gif"); | |
| c("smile_sad", ":-<", "", "png", "gif"); | |
| c("smile_sarcastic", "^o)", "", "png", "gif"); | |
| c("smile_shades", "(h)", "", "png", "gif"); | |
| c("smile_shades", "(H)", "", "png", "gif"); | |
| c("smile_sick", "+o(", "", "png", "gif"); | |
| c("smile_sick", ":&", "", "png", "gif"); | |
| c("smile_sick", "+&", "", "png", "gif"); | |
| c("smile_teeth", ":D", "", "png", "gif"); | |
| c("smile_teeth", ":-D", "", "png", "gif"); | |
| c("smile_teeth", ":d", "", "png", "gif"); | |
| c("smile_teeth", ":-d", "", "png", "gif"); | |
| c("smile_tongue", ":p", "", "png", "gif"); | |
| c("smile_tongue", ":-p", "", "png", "gif"); | |
| c("smile_tongue", ":P", "", "png", "gif"); | |
| c("smile_tongue", ":-P", "", "png", "gif"); | |
| c("smile_whatchutalkingabout", ":|", "", "png", "gif"); | |
| c("smile_whatchutalkingabout", ":-|", "", "png", "gif"); | |
| c("smile_wink", ";-)", "", "png", "gif"); | |
| c("smile_wink", ";)", "", "png", "gif"); | |
| c("smile_yawn", "|-)", "", "png", "gif"); | |
| c("smile_yawn", "|o", "", "png", "gif"); | |
| c("smile_yawn", "|O", "", "png", "gif"); | |
| c("smile_zipit", ":-#", "", "png", "gif"); | |
| c("snail", "(sn)", "", "png", "gif"); | |
| c("snail", "(SN)", "", "png", "gif"); | |
| c("star", "(*)", "", "png", "gif"); | |
| c("sun", "(#)", "", "png", "gif"); | |
| c("thumbs_up", "(y)", "", "png", "gif"); | |
| c("thumbs_up", "(Y)", "", "png", "gif"); | |
| c("umbrella", "(um)", "", "png", "gif"); | |
| c("umbrella", "(UM)", "", "png", "gif"); | |
| c("smile_puzzle", ":-/", "", "png", "gif"); | |
| c("smile_worried", ":-S", "", "png", "gif"); | |
| c("smile_worried", ":-s", "", "png", "gif"); | |
| c("smile_thinking", ":-?", "", "png", "gif"); | |
| c("smile_quitSmile", "*-:)", "", "png", "gif"); | |
| c("smile_bigSmile", "B)", "", "png", "gif"); | |
| c("smile_bigSmile", "b)", "", "png", "gif"); | |
| c("smile_angle", "o:)", "", "png", "gif"); | |
| c("smile_angle", "O:)", "", "png", "gif"); | |
| c("smile_angle", "0:)", "", "png", "gif"); | |
| c("smile_fool", ":-B", "", "png", "gif"); | |
| c("smile_fool", ":-b", "", "png", "gif"); | |
| c("smile_archness", ">:)", "", "png", "gif"); | |
| c("smile_idea", "*-:)", "", "png", "gif"); | |
| c("smile_idea", "*:)", "", "png", "gif"); | |
| c("smile_confused", ":-/", "", "png", "gif"); | |
| c("smile_confused", ":/", "", "png", "gif"); | |
| c("smile_worried", ":s", "", "png", "gif"); | |
| c("smile_worried", ":S", "", "png", "gif"); | |
| c("smile_drink", ")-|", "", "png", "gif"); | |
| c("smile_drink", ")-|", "", "png", "gif"); | |
| c("smile_thinking", ":?", "", "png", "gif"); | |
| c("smile_thinking", ":?", "", "png", "gif"); | |
| c("smile_great", "(y)", "", "png", "gif"); | |
| c("smile_great", "(Y)", "", "png", "gif"); | |
| c("smile_naughty", ">:)", "", "png", "gif"); | |
| c("smile_naughty", "〉:)", "", "png", "gif"); | |
| c("smile_fool", ":b", "", "png", "gif"); | |
| c("smile_fool", ":B", "", "png", "gif"); | |
| c("smile_cool", "b)", "", "png", "gif"); | |
| c("smile_cool", "B)", "", "png", "gif"); | |
| c("smile_cool", "(b)", "", "png", "gif"); | |
| } | |
| function i(k) { | |
| if (k.charCodeAt != null && String.fromCharCode != null) { | |
| var j = k.charCodeAt(0); | |
| if (j >= 65281 && j < 65374) { | |
| k = String.fromCharCode(j - 65248); | |
| } | |
| } | |
| return k; | |
| } | |
| function d(j, m, l) { | |
| if (j == null) { | |
| return null; | |
| } else { | |
| if (j.IsLeaf) { | |
| return j; | |
| } else { | |
| if (l >= m.length || l < 0) { | |
| return null; | |
| } else { | |
| if (typeof j == "object") { | |
| var k = m.charAt(l); | |
| k = i(k); | |
| return d(j[k], m, l + 1); | |
| } | |
| } | |
| } | |
| } | |
| return null; | |
| } | |
| function h(o, l) { | |
| if ("&" != o.charAt(l)) { | |
| return 1; | |
| } | |
| var j = 0; | |
| var n = false; | |
| while (l < o.length && "&" == o.charAt(l)) { | |
| n = false; | |
| for (var m in __entityList) { | |
| var k = __entityList[m]; | |
| if (l + k.length <= o.length && k == o.substr(l, k.length)) { | |
| j += k.length; | |
| l += j; | |
| n = true; | |
| break; | |
| } | |
| } | |
| if (!n) { | |
| return 1; | |
| } | |
| } | |
| return j; | |
| } | |
| this.Replace = function(q, m) { | |
| var l = ""; | |
| if (q != null) { | |
| var o = 0; | |
| var k = q.length; | |
| while (o < k) { | |
| var n = o; | |
| var p = d(g, q, n); | |
| while (n < k && null == p) { | |
| n += h(q, n); | |
| p = d(g, q, n); | |
| } | |
| l += q.substr(o, n - o); | |
| if (p != null) { | |
| l += p.EmoticonToHtml(m); | |
| n += p.Length(); | |
| } | |
| o = n; | |
| } | |
| } | |
| return l; | |
| }; | |
| this.GetKey = function(j) { | |
| if (j in a) { | |
| return a[j]; | |
| } else { | |
| return ""; | |
| } | |
| }; | |
| e(); | |
| } | |
| var __globalEmoticons = new Emoticons(); | |
| function EmoticonReplace(b, a) { | |
| return __globalEmoticons.Replace(b, a); | |
| } | |
| function EmotionNonhtmlReplace(b, c, a) { | |
| if (c >= 0) { | |
| b = cnSubstr(b, c); | |
| } | |
| b = htmlEncode(b); | |
| return b; | |
| } | |
| function EmotionNonhtmlReplace1(b, c, a) { | |
| if (c >= 0) { | |
| b = cnSubstr(b, c); | |
| } | |
| b = htmlEncode(b); | |
| return b; | |
| } | |
| function GetEmotionKey(a) { | |
| return __globalEmoticons.GetKey(a); | |
| } | |
| function activeRemindMsgCookie() { | |
| var b = getCookie("webim_remindmsgs"); | |
| if (b) { | |
| var a = new Date(); | |
| a.setMinutes(a.getMinutes() + 2); | |
| setCookie("webim_remindmsgs", escape(b), a.toGMTString(), "/", __callmeDomain); | |
| } | |
| } | |
| function deleteRemindMsgCookie(b) { | |
| var d = getCookie("webim_remindmsgs"); | |
| var a = new Date(); | |
| a.setMinutes(a.getMinutes() + 2); | |
| if (d != null && d != "") { | |
| d = "," + d; | |
| var c = new RegExp("," + b + "-(.*?)" + "-([0-9]+)" + "-([^,]*)", "ig"); | |
| if (c.test(d)) { | |
| d = d.replace(c, function() { | |
| return ""; | |
| }); | |
| } | |
| d = d.trim(","); | |
| setCookie("webim_remindmsgs", escape(d), a.toGMTString(), "/", __callmeDomain); | |
| } | |
| } | |
| function setRemindMsgCookie(b, g, e, d) { | |
| var f = getCookie("webim_remindmsgs"); | |
| var a = new Date(); | |
| a.setMinutes(a.getMinutes() + 2); | |
| if (f == null || f == "") { | |
| f = b + "-" + (g != null ? g.toCodeArray() | |
| .join("%") : "") + "-" + (e != null ? e : "0") + "-" + (d != null ? getGuidFormSessionid(d) : ""); | |
| setCookie("webim_remindmsgs", escape(f), a.toGMTString(), "/", __callmeDomain); | |
| } else { | |
| f = "," + f; | |
| var c = new RegExp("," + b + "-(.*?)" + "-([0-9]+)" + "-([^,]*)", "ig"); | |
| if (c.test(f)) { | |
| f = f.replace(c, function(i, h, k, j) { | |
| return "," + b + "-" + (g != null ? g.toCodeArray() | |
| .join("%") : h) + "-" + (e != null ? e : k) + "-" + (d != null ? getGuidFormSessionid(d) : ""); | |
| }); | |
| } else { | |
| f += "," + b + "-" + (g != null ? g.toCodeArray() | |
| .join("%") : "") + "-" + (e != null ? e : "0") + "-" + (d != null ? getGuidFormSessionid(d) : ""); | |
| } | |
| f = f.trim(","); | |
| setCookie("webim_remindmsgs", escape(f), a.toGMTString(), "/", __callmeDomain); | |
| } | |
| } | |
| function getGuidFormSessionid(b) { | |
| if (!b) { | |
| return ""; | |
| } else { | |
| var a = b.substr(b.indexOf("-") + 1) | |
| .replace(/-/g, ""); | |
| return a; | |
| } | |
| } | |
| function getUserPermission(b, c) { | |
| b = ";" + b + ";"; | |
| var d = new RegExp(";" + c + "=([0-9]*);", "i"); | |
| var a = b.match(d); | |
| if (a != null) { | |
| return a[1]; | |
| } | |
| return null; | |
| } | |
| function ContactDefault() { | |
| this.uid = 0; | |
| this.uri = ""; | |
| this.bl = ""; | |
| this.ln = ""; | |
| this.rs = -1; | |
| this.ct = -1; | |
| this.isBk = -1; | |
| this.p = ""; | |
| this.sid = 0; | |
| this.mn = ""; | |
| this.ca = ""; | |
| this.cas = ""; | |
| this.bss = ""; | |
| this.slv = ""; | |
| this.s = ""; | |
| this.nn = ""; | |
| this.i = ""; | |
| this.crc = ""; | |
| this.sms = ""; | |
| this.pb = ""; | |
| this.pd = ""; | |
| this.dt = ""; | |
| this.dc = ""; | |
| this.lastIsOc = false; | |
| this.currIsOc = false; | |
| this.is = ""; | |
| this.pis = ""; | |
| } | |
| function UserDefault() { | |
| this.c = ""; | |
| this.v = ""; | |
| this.uid = 0; | |
| this.sid = 0; | |
| this.mn = ""; | |
| this.em = ""; | |
| this.uri = ""; | |
| this.nn = ""; | |
| this.gd = -1; | |
| this.i = ""; | |
| this.crc = ""; | |
| this.bd = ""; | |
| this.bdv = -1; | |
| this.ca = ""; | |
| this.cas = ""; | |
| this.car = ""; | |
| this.ur = ""; | |
| this.prof = ""; | |
| this.bt = ""; | |
| this.oc = ""; | |
| this.pe = ""; | |
| this.we = ""; | |
| this.ebs = -1; | |
| this.sv = ""; | |
| this.lv = ""; | |
| this.lvs = ""; | |
| this.gp = ""; | |
| this.sms = ""; | |
| this.creds = []; | |
| this.sers = ""; | |
| } | |
| function PhoneDefault() { | |
| this.FN = ""; | |
| this.GUID = ""; | |
| this.HMobile = ""; | |
| this.HMobile = ""; | |
| this.OMobile = ""; | |
| this.OPhone = ""; | |
| this.Source = ""; | |
| } | |
| function extendUser() { | |
| __user.displayName = __user.nn || __user.sid.toString(); | |
| if (!__user.ca || __user.ca == "NIL") { | |
| __user.isMobile = false; | |
| } else { | |
| __user.isMobile = true; | |
| if (__user.ca == "CMCC") { | |
| __user.isCM = true; | |
| } else { | |
| if (__user.ca == "CT") { | |
| __user.isCT = true; | |
| } else { | |
| if (__user.ca == "CUCC") { | |
| __user.isCU = true; | |
| } | |
| } | |
| } | |
| } | |
| if (!__user.sers) { | |
| __user.isVip = false; | |
| } else { | |
| var a = "," + __user.sers + ","; | |
| __user.isVip = (a.indexOf(",50,") >= 0 || a.indexOf(",51,") >= 0 || a.indexOf(",52,") >= 0); | |
| } | |
| } | |
| function extendContact(a) { | |
| if (!a.pb) { | |
| a.pb = "0"; | |
| } | |
| if (!a.sms) { | |
| a.sms == "1.1:1:1"; | |
| } | |
| if (!a.bss) { | |
| a.bss = "1"; | |
| } | |
| if (a.bl) { | |
| a.bl = a.bl.trim("; "); | |
| } | |
| if (!a.bl) { | |
| a.bl = (a.ct == 2) ? "-1" : "0"; | |
| } | |
| if (2 == a.cas) { | |
| a.mn = ""; | |
| } | |
| a.compactUri = a.uri ? (new jCompactUri(a.uri)) : undefined; | |
| if (2 != a.ct && 1 == a.rs && a.compactUri) { | |
| a.ct = a.compactUri.isMobileNo ? 1 : 0; | |
| } | |
| if (a.ct == 1) { | |
| a.displayName = a.ln || a.mn; | |
| } else { | |
| a.displayName = ""; | |
| a.displayName = a.ln || a.nn || (a.compactUri && a.compactUri.mobileNoOrSid.toString()); | |
| } | |
| if (!a.s) { | |
| a.isVip = false; | |
| } else { | |
| var b = "," + a.s + ","; | |
| a.isVip = (b.indexOf(",50,") >= 0 || b.indexOf(",51,") >= 0 || b.indexOf(",52,") >= 0); | |
| } | |
| a.isMobile = !! (a.ca && a.ca != "NIL"); | |
| a.isCM = !! (a.ca == "CMCC"); | |
| a.isCT = !! (a.ca == "CT"); | |
| a.isCU = !! (a.ca == "CUCC"); | |
| a.type = getContactType(a); | |
| a.status = getContactStatus(a); | |
| a.statusClass = getContactClassName(a); | |
| a.orderNo = getBuddyOrder(a); | |
| a.lastIsOc = a.currIsOc; | |
| a.currIsOc = isOnlineContact(a); | |
| } | |
| function eachBuddyList(a, f, d) { | |
| if (!a.bl) { | |
| return; | |
| } | |
| var e = a.bl.split(";"); | |
| var b = e.length; | |
| for (var c = 0; c < b; c++) { | |
| if ("0" == e[c] && b > 1 && !d) { | |
| continue; | |
| } | |
| if (typeof f == "function") { | |
| if (false == f(e[c])) { | |
| break; | |
| } | |
| } | |
| } | |
| } | |
| function getGroupItemPortraitUrl(b, a) { | |
| a = a || "4"; | |
| if (b == null) { | |
| if (a == 1) { | |
| return portrait.fetion_16; | |
| } else { | |
| if (a == 2) { | |
| return portrait.fetion_32; | |
| } else { | |
| return portrait.defaultIcon; | |
| } | |
| } | |
| } else { | |
| if (b.crc && b.crc !== "0") { | |
| return formatString(getGroupPortraitUrl, b.gUri, a, b.crc, __user.uid); | |
| } else { | |
| if (a == 1) { | |
| return portrait.fetion_16; | |
| } else { | |
| if (a == 2) { | |
| return portrait.fetion_32; | |
| } else { | |
| return portrait.defaultIcon; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| function getUserPortraitUrl(a, b) { | |
| b = b || "4"; | |
| if ((a.crc && a.crc != "0")) { | |
| return formatString(getPortraitUrl, a.uid, b, a.crc, __user.uid); | |
| } else { | |
| if (b == 1 || b == 5) { | |
| return portrait.fetion_16; | |
| } else { | |
| if (b == 2) { | |
| return portrait.fetion_32; | |
| } else { | |
| return portrait.defaultIcon; | |
| } | |
| } | |
| } | |
| } | |
| function getDefaultPortraitUrl(a) { | |
| if (a.ct == 1) { | |
| return portrait.mobile; | |
| } else { | |
| return portrait.defaultIcon; | |
| } | |
| } | |
| var __userPortraitMap = new jHashMap(); | |
| var __userPathMap = new jHashMap(); | |
| var __portraitCacheDiv = null; | |
| function cacheUerPortrait(c, a, e) { | |
| if (__portraitCacheDiv == null) { | |
| __portraitCacheDiv = $("<div style='display:none'></div>"); | |
| $(document.body) | |
| .append(__portraitCacheDiv); | |
| } | |
| var b; | |
| if (!__userPortraitMap.containsKey(c.uid)) { | |
| b = $("<img src='" + a + "' />"); | |
| __userPortraitMap.put(c.uid, b); | |
| __portraitCacheDiv.append(b); | |
| b.bind("load", function() { | |
| if (typeof e == "function") { | |
| e(b, c); | |
| } | |
| }); | |
| } else { | |
| b = __userPortraitMap.get(c.uid); | |
| var d = b.attr("src"); | |
| if (d && !d.endsWith(a)) { | |
| b.unbind("load"); | |
| b.remove(); | |
| b.attr("src", a); | |
| __portraitCacheDiv.append(b); | |
| b.bind("load", function() { | |
| if (typeof e == "function") { | |
| e(b, c); | |
| } | |
| }); | |
| } else { | |
| if (typeof e == "function") { | |
| e(b, c); | |
| } | |
| } | |
| } | |
| } | |
| function getContactPresDesc(a) { | |
| var c = a.type, | |
| b = a.status; | |
| if (c == ContactType.MobileBuddy) { | |
| return ""; | |
| } | |
| if ((b & ContactStatus.Verify) == ContactStatus.Verify || (b & ContactStatus.Verify_Bklist) == ContactStatus.Verify_Bklist) { | |
| return "(等待对方同意添加为好友)"; | |
| } | |
| if ((b & ContactStatus.Refuse) == ContactStatus.Refuse || (b & ContactStatus.Refuse_Bklist) == ContactStatus.Refuse_Bklist) { | |
| return "(对方拒绝)"; | |
| } | |
| if ((b & ContactStatus.CloseService) == ContactStatus.CloseService) { | |
| return "(飞信服务已关闭)"; | |
| } | |
| return ""; | |
| } | |
| var searchHelper = { | |
| SAFE_DEEP_DEFAULT: 4, | |
| SEPARATOR_BETWEEN_WORDS: "", | |
| WILDCARD_ALL: "*", | |
| _cache: new jHashMap(), | |
| MakeSpellCodeAsWordsAll: function(i) { | |
| var d = new String(i); | |
| if (searchHelper._cache.containsKey(d)) { | |
| return searchHelper._cache.get(i.toString()); | |
| } | |
| var a = null; | |
| var h = null; | |
| try { | |
| var c = i.split(searchHelper.WILDCARD_ALL); | |
| i = ""; | |
| for (var b = 0; b < c.length; ++b) { | |
| a = searchHelper.MakeSpellCodeAsWords(c[b]); | |
| i += a.bodyList.join(",") + searchHelper.WILDCARD_ALL; | |
| } | |
| if (a) { | |
| h = a.safeDeep; | |
| } | |
| if (!h) { | |
| h = searchHelper.SAFE_DEEP_DEFAULT; | |
| } | |
| var f = { | |
| "bodyContent": i, | |
| "safeDeep": h | |
| }; | |
| if (!searchHelper._cache.containsKey(d)) { | |
| searchHelper._cache.put(d, f); | |
| } | |
| return f; | |
| } catch (g) { | |
| return { | |
| "bodyContent": i, | |
| "safeDeep": h | |
| }; | |
| } | |
| }, | |
| MakeSpellCodeAsWords: function(a, g) { | |
| var f = new Array(); | |
| if (!g) { | |
| g = searchHelper.SAFE_DEEP_DEFAULT; | |
| } | |
| if (!a) { | |
| return { | |
| "bodyList": f, | |
| "safeDeep": g | |
| }; | |
| } | |
| var h = a.split(new RegExp(/,/gi)); | |
| var b = new Array(); | |
| for (var d = 0, e = h.length; d < e; ++d) { | |
| var c = h[d].split(" "); | |
| b.push(c); | |
| } | |
| for (var d = 0, e = b.length; d < e && d < g; ++d) { | |
| if (b[d].length > 1) { | |
| f = searchHelper._CopyNTimes(f, b[d].length); | |
| } | |
| if (b[d].length > 0) { | |
| f = searchHelper._AppendToEachItem(f, b[d]); | |
| } | |
| } | |
| return { | |
| "bodyList": f, | |
| "safeDeep": g | |
| }; | |
| }, | |
| _CopyNTimes: function(d, e) { | |
| if (d.length == 0 || e == 0) { | |
| return d; | |
| } | |
| var a = d.length; | |
| var c = e; | |
| while ((--c) > 0) { | |
| for (var b = 0; b < a; ++b) { | |
| d.push(d[b]); | |
| } | |
| } | |
| return d; | |
| }, | |
| _AppendToEachItem: function(e, b) { | |
| if (e.length == 0) { | |
| e = e.concat(b); | |
| } else { | |
| var g = e.length; | |
| var h = b.length; | |
| var f = e.length / b.length; | |
| var a = 0; | |
| for (var d = 0; d < h; ++d) { | |
| for (var c = 0; c < f; ++c) { | |
| e[a * f + c] += b[d]; | |
| }++a; | |
| } | |
| } | |
| return e; | |
| } | |
| }; | |
| function GroupDefault() { | |
| this.gUri = ""; | |
| this.i = 0; | |
| this.nn = ""; | |
| this.crc = ""; | |
| this.id = 0; | |
| this.n = ""; | |
| this.gnn = ""; | |
| this.smsRecv = 0; | |
| this.msgRecv = 0; | |
| this.apvRs = 0; | |
| } | |
| function extendGroupItem(b) { | |
| var a = jGroupUriToId(b.gUri); | |
| b.id = parseInt(a); | |
| b.orderNo = getGroupOrder(b); | |
| } | |
| function GroupMemDefault() { | |
| this.ct = ""; | |
| this.minn = ""; | |
| this.mnn = ""; | |
| this.ms = 0; | |
| this.i = 0; | |
| this.displayName = ""; | |
| this.lastIsOc = false; | |
| this.currIsOc = false; | |
| this.crc = ""; | |
| this.uid = 0; | |
| } | |
| function extendMemItem(c) { | |
| var b = jMemUriToId(c.MemberUri); | |
| c.id = parseInt(b); | |
| if (!c.t6) { | |
| c.isVip = false; | |
| } else { | |
| var a = "," + c.t6 + ","; | |
| c.isVip = (a.indexOf(",50,") >= 0 || a.indexOf(",51,") >= 0 || a.indexOf(",52,") >= 0); | |
| } | |
| c.priName = ""; | |
| if (c.i == 1) { | |
| c.priName = "founder"; | |
| } else { | |
| if (c.i == 2) { | |
| c.priName = "adminor"; | |
| } else { | |
| if (c.i == 3) { | |
| c.priName = "every"; | |
| } | |
| } | |
| } | |
| c.displayName = c.mnn || c.minn || c.id.toString(); | |
| c.orderNo = getGroupBuddyOrder(c); | |
| c.lastIsOc = c.currIsOc; | |
| if (c.ms == 400) { | |
| c.statusClass = "ff-pc-online"; | |
| c.currIsOc = true; | |
| } else { | |
| if (c.ms == 0) { | |
| c.statusClass = "offline"; | |
| c.currIsOc = false; | |
| } | |
| } | |
| } | |
| function groupBuddyComparator(e, d) { | |
| if (!e && !d) { | |
| return 0; | |
| } | |
| if (e && !d) { | |
| return 1; | |
| } | |
| if (!e && d) { | |
| return -1; | |
| } | |
| var c, b; | |
| if (e.orderNo) { | |
| c = e.orderNo; | |
| } else { | |
| c = getGroupBuddyOrder(e); | |
| } | |
| if (d.orderNo) { | |
| b = d.orderNo; | |
| } else { | |
| b = getGroupBuddyOrder(d); | |
| } | |
| if (c == b) { | |
| var a = (e.displayName) | |
| .localeCompare(d.displayName); | |
| if (a == 0 && e.MemberUri && d.MemberUri) { | |
| return (e.MemberUri) | |
| .localeCompare(d.MemberUri); | |
| } | |
| return a; | |
| } | |
| return c - b; | |
| } | |
| function getGroupBuddyOrder(a) { | |
| if (!a) { | |
| return -1; | |
| } | |
| var c = 0; | |
| var b = parseInt(a.ms); | |
| if (b == 0) { | |
| if (a.priName == "founder") { | |
| c = 5; | |
| } else { | |
| if (a.priName == "adminor") { | |
| c = 6; | |
| } else { | |
| c = a.isVip ? 7 : 8; | |
| } | |
| } | |
| } else { | |
| if (b == 400) { | |
| if (a.priName == "founder") { | |
| c = 1; | |
| } else { | |
| if (a.priName == "adminor") { | |
| c = 2; | |
| } else { | |
| c = a.isVip ? 3 : 4; | |
| } | |
| } | |
| } | |
| } | |
| return c; | |
| } | |
| function groupComparator(b, e) { | |
| if (!b && !e) { | |
| return 0; | |
| } | |
| if (b && !e) { | |
| return 1; | |
| } | |
| if (!b && e) { | |
| return -1; | |
| } | |
| var d, c; | |
| if (b.orderNo) { | |
| d = b.orderNo; | |
| } else { | |
| d = getGroupOrder(b); | |
| } | |
| if (e.orderNo) { | |
| c = e.orderNo; | |
| } else { | |
| c = getGroupOrder(e); | |
| } | |
| if (d == c) { | |
| var a = 0; | |
| if (b.n && e.n) { | |
| a = (b.n) | |
| .localeCompare(e.n); | |
| } else { | |
| if (b.n && !e.n) { | |
| a = -1; | |
| } else { | |
| if (!b.n && e.n) { | |
| a = 1; | |
| } | |
| } | |
| } | |
| if (a == 0 && b.gUri && e.gUri) { | |
| return (b.gUri) | |
| .localeCompare(e.gUri); | |
| } | |
| return a; | |
| } | |
| return d - c; | |
| } | |
| function getGroupOrder(a) { | |
| if (!a) { | |
| return -1; | |
| } | |
| var b = 0; | |
| b = parseInt(a.i); | |
| return b; | |
| } | |
| function sort_by(b, a) { | |
| a = (a) ? -1 : 1; | |
| return function(e, d) { | |
| if (e.GDataType == 9 && d.GDataType == 9) { | |
| e = e.GData[b]; | |
| d = d.GData[b]; | |
| } | |
| var c = 0; | |
| if (e && d) { | |
| c = (e.toString()) | |
| .localeCompare(d.toString()); | |
| } else { | |
| if (e && !d) { | |
| c = -1; | |
| } else { | |
| if (!e && d) { | |
| c = 1; | |
| } | |
| } | |
| } | |
| if (c > 0) { | |
| return a * 1; | |
| } else { | |
| if (c < 0) { | |
| return a * -1; | |
| } | |
| } | |
| return 0; | |
| }; | |
| } | |
| function buddyPor(b, a, d) { | |
| var c = ""; | |
| if (a.indexOf("bklist") > 0 || a == "offline") { | |
| if (d == 2) { | |
| c = portrait.offline_32; | |
| } else { | |
| c = portrait.offline_16; | |
| } | |
| } else { | |
| switch (a) { | |
| case "refuse": | |
| c = portrait.refuse; | |
| break; | |
| case "close": | |
| c = portrait.close; | |
| break; | |
| case "refuse": | |
| c = portrait.refuse; | |
| break; | |
| case "verify": | |
| c = portrait.verify; | |
| break; | |
| case "rb-verify": | |
| c = portrait.verify; | |
| break; | |
| case "rb-pc-online": | |
| if (d == 2) { | |
| c = portrait.robot_online_32; | |
| } else { | |
| c = portrait.robot_online_16; | |
| } | |
| break; | |
| case "rb-offline": | |
| if (d == 2) { | |
| c = portrait.robot_offline_32; | |
| } else { | |
| c = portrait.robot_offline_16; | |
| } | |
| break; | |
| default: | |
| if (b) { | |
| if (d == 1) { | |
| c = getUserPortraitUrl(b, "5"); | |
| } else { | |
| c = getUserPortraitUrl(b, "2"); | |
| } | |
| } | |
| break; | |
| } | |
| } | |
| if (c == "") { | |
| c = portrait.defaultIcon; | |
| } | |
| return c; | |
| }(function(a) { | |
| a.extend({ | |
| cacheImages: function() { | |
| var b = a("<div style='display:none'></div>"); | |
| b.append('<img src="images/emoticons/smile_regular.png" />'); | |
| b.append('<img src="images/emoticons/smile_teeth.png" />'); | |
| b.append('<img src="images/emoticons/smile_wink.png" />'); | |
| b.append('<img src="images/emoticons/smile_omg.png" />'); | |
| b.append('<img src="images/emoticons/smile_tongue.png" />'); | |
| b.append('<img src="images/emoticons/smile_shades.png" />'); | |
| b.append('<img src="images/emoticons/smile_angry.png" />'); | |
| b.append('<img src="images/emoticons/smile_sad.png" />'); | |
| b.append('<img src="images/emoticons/smile_cry.png" />'); | |
| b.append('<img src="images/emoticons/smile_embaressed.png" />'); | |
| b.append('<img src="images/emoticons/smile_sarcastic.png" />'); | |
| b.append('<img src="images/emoticons/smile_sick.png" />'); | |
| b.append('<img src="images/emoticons/smile_baringteeth.png" />'); | |
| b.append('<img src="images/emoticons/smile_yawn.png" />'); | |
| b.append('<img src="images/emoticons/smile_zipit.png" />'); | |
| b.append('<img src="images/emoticons/smile_eyeroll.png" />'); | |
| b.append('<img src="images/emoticons/moon.png" />'); | |
| b.append('<img src="images/emoticons/cloud_rain.png" />'); | |
| b.append('<img src="images/emoticons/clock.png" />'); | |
| b.append('<img src="images/emoticons/heart.png" />'); | |
| b.append('<img src="images/emoticons/heart_broken.png" />'); | |
| b.append('<img src="images/emoticons/cat.png" />'); | |
| b.append('<img src="images/emoticons/dog.png" />'); | |
| b.append('<img src="images/emoticons/snail.png" />'); | |
| b.append('<img src="images/emoticons/star.png" />'); | |
| b.append('<img src="images/emoticons/sun.png" />'); | |
| b.append('<img src="images/emoticons/rainbow.png" />'); | |
| b.append('<img src="images/emoticons/hug_girl.png" />'); | |
| b.append('<img src="images/emoticons/hug_dude.png" />'); | |
| b.append('<img src="images/emoticons/kiss.png" />'); | |
| b.append('<img src="images/emoticons/rose.png" />'); | |
| b.append('<img src="images/emoticons/rose_wilted.png" />'); | |
| b.append('<img src="images/emoticons/present.png" />'); | |
| b.append('<img src="images/emoticons/cake.png" />'); | |
| b.append('<img src="images/emoticons/music_note.png" />'); | |
| b.append('<img src="images/emoticons/lightbulb.png" />'); | |
| b.append('<img src="images/emoticons/smile_idea.png" />'); | |
| b.append('<img src="images/emoticons/coffee.png" />'); | |
| b.append('<img src="images/emoticons/umbrella.png" />'); | |
| b.append('<img src="images/emoticons/mobile.png" />'); | |
| b.append('<img src="images/emoticons/computer.png" />'); | |
| b.append('<img src="images/emoticons/smile_whatchutalkingabout.png" />'); | |
| b.append('<img src="images/emoticons/smile_confused.png" />'); | |
| b.append('<img src="images/emoticons/smile_worried.png" />'); | |
| b.append('<img src="images/emoticons/smile_drink.png" />'); | |
| b.append('<img src="images/emoticons/martini.png" />'); | |
| b.append('<img src="images/emoticons/smile_angle.png" />'); | |
| b.append('<img src="images/emoticons/smile_thinking.png" />'); | |
| b.append('<img src="images/emoticons/smile_great.png" />'); | |
| b.append('<img src="images/emoticons/smile_naughty.png" />'); | |
| b.append('<img src="images/emoticons/smile_fool.png" />'); | |
| b.append('<img src="images/emoticons/smile_cool.png" />'); | |
| a(document.body) | |
| .append(b); | |
| } | |
| }); | |
| })(jQuery); | |
| var __zIndex = 100; | |
| var __hrefReg = /(http:\/\/|https:\/\/|ftp:\/\/|www\.){1}[\w-]+(\.[\w-]+)*(:[\d]+)?(\/[\w-\.\/?&=]*)?/ig; | |
| function jChatWindowPopMessage(a) { | |
| var c = $.extend({ | |
| target: "", | |
| canClose: true, | |
| className: "pop_blacklist", | |
| onClose: function() {} | |
| }, a); | |
| c.target = ((typeof c.target == "string") ? $("#" + c.target) : c.target); | |
| var b = $("<div />") | |
| .addClass(c.className); | |
| c.target.prepend(b); | |
| if (c.canClose) { | |
| var d = $("<i class='close'>关闭</i>"); | |
| b.append(d); | |
| d.bind("click", function(f) { | |
| b.css("display", "none"); | |
| c.onClose(); | |
| stopPropagation(f); | |
| preventDefault(f); | |
| }); | |
| } | |
| b.setInnerHtml = function(e) { | |
| b.prepend(e); | |
| var f = $(b) | |
| .find("div"); | |
| var g = f.find("div"); | |
| f.removeClass("chat_append_sec") | |
| .addClass("chat_append"); | |
| g.removeClass("chat_append_tip1"); | |
| }; | |
| b.buddyStatus = c.buddyStatus; | |
| return b; | |
| } | |
| function jChatWindowPopExpression(b) { | |
| var a = $("<div />") | |
| .addClass("pop_expression facial_new1"); | |
| var d = $('<div class="facial_icon_new1"><img class="icon_facial_new1" alt="" src="images/face_btn.png" /></div>'); | |
| var f = $("<div class=expression_tit><ul><li class=center>飞信表情 </li></ul></div>"); | |
| var e = $("<div />") | |
| .addClass("layer_face"); | |
| var c = $("<ul />"); | |
| a.fillImgs = function() { | |
| c.append('<li><a href="#"><img title="微笑 :)" pattern=":)" src="images/emoticons/smile_regular.png" /></a>'); | |
| c.append('<li><a href="#"><img title="大笑 :d" pattern=":d" src="images/emoticons/smile_teeth.png" /></a>'); | |
| c.append('<li><a href="#"><img title="眨眼 ;)" pattern=";)" src="images/emoticons/smile_wink.png" /></a>'); | |
| c.append('<li><a href="#"><img title="惊讶 :-o" pattern=":-o" src="images/emoticons/smile_omg.png" /></a>'); | |
| c.append('<li><a href="#"><img title="吐舌笑脸 :p" pattern=":p" src="images/emoticons/smile_tongue.png" /></a>'); | |
| c.append('<li><a href="#"><img title="热烈的笑脸 (h)" pattern="(h)" src="images/emoticons/smile_shades.png" /></a>'); | |
| c.append('<li><a href="#"><img title="生气 :@" pattern=":@" src="images/emoticons/smile_angry.png" /></a>'); | |
| c.append('<li><a href="#"><img title="悲伤 :(" pattern=":(" src="images/emoticons/smile_sad.png" /></a>'); | |
| c.append('<li><a href="#"><img title="哭泣 :’(" pattern=":’(" src="images/emoticons/smile_cry.png" /></a>'); | |
| c.append('<li><a href="#"><img title="尴尬 :">" pattern=":">" src="images/emoticons/smile_embaressed.png" /></a>'); | |
| c.append('<li><a href="#"><img title="讽刺 ^o)" pattern="^o)" src="images/emoticons/smile_sarcastic.png" /></a>'); | |
| c.append('<li><a href="#"><img title="生病 :&" pattern=":&" src="images/emoticons/smile_sick.png" /></a>'); | |
| c.append('<li><a href="#"><img title="咬牙切齿 8o|" pattern="8o|" src="images/emoticons/smile_baringteeth.png" /></a>'); | |
| c.append('<li><a href="#"><img title="困 |o" pattern="|o" src="images/emoticons/smile_yawn.png" /></a>'); | |
| c.append('<li><a href="#"><img title="保密 :-#" pattern=":-#" src="images/emoticons/smile_zipit.png" /></a>'); | |
| c.append('<li><a href="#"><img title="转动的眼睛 8-)" pattern="8-)" src="images/emoticons/smile_eyeroll.png" /></a>'); | |
| c.append('<li><a href="#"><img title="沉睡的弯月 (s)" pattern="(s)" src="images/emoticons/moon.png" /></a>'); | |
| c.append('<li><a href="#"><img title="下雨 (st)" pattern="(st)" src="images/emoticons/cloud_rain.png" /></a>'); | |
| c.append('<li><a href="#"><img title="时钟 (o)" pattern="(o)" src="images/emoticons/clock.png" /></a>'); | |
| c.append('<li><a href="#"><img title="红心 (l)" pattern="(l)" src="images/emoticons/heart.png" /></a>'); | |
| c.append('<li><a href="#"><img title="破碎的心 (u)" pattern="(u)" src="images/emoticons/heart_broken.png" /></a>'); | |
| c.append('<li><a href="#"><img title="猫脸 (@)" pattern="(@)" src="images/emoticons/cat.png" /></a>'); | |
| c.append('<li><a href="#"><img title="狗脸 (&)" pattern="(&)" src="images/emoticons/dog.png" /></a>'); | |
| c.append('<li><a href="#"><img title="蜗牛 (sn)" pattern="(sn)" src="images/emoticons/snail.png" /></a>'); | |
| c.append('<li><a href="#"><img title="星星 (*)" pattern="(*)" src="images/emoticons/star.png" /></a>'); | |
| c.append('<li><a href="#"><img title="太阳 (#)" pattern="(#)" src="images/emoticons/sun.png" /></a>'); | |
| c.append('<li><a href="#"><img title="彩虹 (r)" pattern="(r)" src="images/emoticons/rainbow.png" /></a>'); | |
| c.append('<li><a href="#"><img title="左侧拥抱 ({)" pattern="({)" src="images/emoticons/hug_girl.png" /></a>'); | |
| c.append('<li><a href="#"><img title="右侧拥抱 (})" pattern="(})" src="images/emoticons/hug_dude.png" /></a>'); | |
| c.append('<li><a href="#"><img title="红唇 (k)" pattern="(k)" src="images/emoticons/kiss.png" /></a>'); | |
| c.append('<li><a href="#"><img title="红玫瑰 (f)" pattern="(f)" src="images/emoticons/rose.png" /></a>'); | |
| c.append('<li><a href="#"><img title="凋谢的玫瑰 (w)" pattern="(w)" src="images/emoticons/rose_wilted.png" /></a>'); | |
| c.append('<li><a href="#"><img title="礼品盒 (g)" pattern="(g)" src="images/emoticons/present.png" /></a>'); | |
| c.append('<li><a href="#"><img title="生日蛋糕 (^)" pattern="(^)" src="images/emoticons/cake.png" /></a>'); | |
| c.append('<li><a href="#"><img title="音乐 (8)" pattern="(8)" src="images/emoticons/music_note.png" /></a>'); | |
| c.append('<li><a href="#"><img title="灯泡 (i)" pattern="(i)" src="images/emoticons/lightbulb.png" /></a>'); | |
| c.append('<li><a href="#"><img title="想法 *-:)" pattern="*-:)" src="images/emoticons/smile_idea.png" /></a>'); | |
| c.append('<li><a href="#"><img title="咖啡 (c)" pattern="(c)" src="images/emoticons/coffee.png" /></a>'); | |
| c.append('<li><a href="#"><img title="雨伞 (um)" pattern="(um)" src="images/emoticons/umbrella.png" /></a>'); | |
| c.append('<li><a href="#"><img title="手机 (mp)" pattern="(mp)" src="images/emoticons/mobile.png" /></a>'); | |
| c.append('<li><a href="#"><img title="计算机 (co)" pattern="(co)" src="images/emoticons/computer.png" /></a>'); | |
| c.append('<li><a href="#"><img title="失望 :|" pattern=":|" src="images/emoticons/smile_whatchutalkingabout.png" /></a>'); | |
| c.append('<li><a href="#"><img title="困惑 :-/" pattern=":-/" src="images/emoticons/smile_confused.png" /></a>'); | |
| c.append('<li><a href="#"><img title="担心 :s" pattern=":s" src="images/emoticons/smile_worried.png" /></a>'); | |
| c.append('<li><a href="#"><img title="饮料 )-|" pattern=")-|" src="images/emoticons/smile_drink.png" /></a>'); | |
| c.append('<li><a href="#"><img title="高脚杯 (d)" pattern="(d)" src="images/emoticons/martini.png" /></a>'); | |
| c.append('<li><a href="#"><img title="天使 o:)" pattern="o:)" src="images/emoticons/smile_angle.png" /></a>'); | |
| c.append('<li><a href="#"><img title="沉思 :?" pattern=":?" src="images/emoticons/smile_thinking.png" /></a>'); | |
| c.append('<li><a href="#"><img title="太棒了 (y)" pattern="(y)" src="images/emoticons/smile_great.png" /></a>'); | |
| c.append('<li><a href="#"><img title="淘气 >:)" pattern=">:)" src="images/emoticons/smile_naughty.png" /></a>'); | |
| c.append('<li><a href="#"><img title="笨蛋、呆子 :b" pattern=":b" src="images/emoticons/smile_fool.png" /></a>'); | |
| c.append('<li><a href="#"><img title="戴着太阳镜 b)" pattern="b)" src="images/emoticons/smile_cool.png" /></a>'); | |
| }; | |
| a.bindItemClick = function(g) { | |
| c.find("li > a") | |
| .bind("click", function(h) { | |
| a.css("display", "none"); | |
| g(this, h); | |
| }); | |
| }; | |
| a.append(d) | |
| .append(f) | |
| .append(e.append(c)); | |
| return a; | |
| } | |
| var IMSound = { | |
| isAjaxReady: false, | |
| ajaxInit: function() { | |
| try { | |
| var a = '<object codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"' + ' width="0" height="0" id="fetion_ajaxproxy" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">' + '<param name="allowScriptAccess" value="always" />' + '<param name="movie" value="swf/ajaxhelper.swf" />' + '<param name="quality" value="high" />' + '<param name="bgcolor" value="#ffffff" />' + ' <embed src="swf/ajaxhelper.swf" quality="high" width="0" height="0" bgcolor="#ffffff"' + ' type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer"' + ' name="fetion_ajaxproxy" swLiveConnect="true" allowScriptAccess="always">' + "</embed>" + "</object>"; | |
| $("#Sound") | |
| .append(a); | |
| } catch (b) {} | |
| }, | |
| ajaxReady: function() { | |
| this.isAjaxReady = true; | |
| }, | |
| onAjaxInitError: function() {}, | |
| getAjaxProxy: function() { | |
| if (navigator.appName.indexOf("Microsoft") != -1) { | |
| if (window["fetion_ajaxproxy"].length > 0) { | |
| return window["fetion_ajaxproxy"][0]; | |
| } else { | |
| return window["fetion_ajaxproxy"]; | |
| } | |
| } else { | |
| return document["fetion_ajaxproxy"]; | |
| } | |
| }, | |
| playSound: function(a) { | |
| var b = this.getAjaxProxy(); | |
| if (b && b.playSound) { | |
| b.playSound(a); | |
| } | |
| } | |
| }; | |
| $(function() { | |
| $.popWinMsg = function(K) { | |
| var B; | |
| var P = { | |
| gName: "", | |
| group: {}, | |
| fName: "", | |
| joinItems: {}, | |
| iR: "", | |
| msgN: "msg1", | |
| isLink: false, | |
| openWin: function() {}, | |
| handleEntity: {}, | |
| consent: function() {}, | |
| refuse: function() {}, | |
| zindex: 9000, | |
| timeout: 10000, | |
| isClose: true | |
| }; | |
| var x = function(an) { | |
| var al = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; | |
| for (var ak = 0, am = ""; ak < an; ak++) { | |
| am += al.charAt(Math.floor(Math.random() * 62)); | |
| } | |
| return am; | |
| }; | |
| var h = $.extend(P, K); | |
| h.isClose = true; | |
| var C; | |
| var F = getGroupItemPortraitUrl(h.group, "4"); | |
| h.gName = EmotionNonhtmlReplace(h.gName, 40, false); | |
| h.fName = EmotionNonhtmlReplace(h.fName, 20, false); | |
| var T; | |
| switch (h.msgN) { | |
| case "msg1": | |
| var w = "您已被从群<strong>" + h.gName + "</strong>中删除"; | |
| T = w; | |
| break; | |
| case "msg2": | |
| var u = "您被指定为群<strong>" + h.gName + "</strong>的管理员"; | |
| T = u; | |
| break; | |
| case "msg3": | |
| var t = "您被指定为群<strong>" + h.gName + "</strong>的超级管理员"; | |
| T = t; | |
| break; | |
| case "msg4": | |
| var q = "您的好友<strong>" + h.fName + "</strong>邀请您加入群<strong>" + h.gName + "</strong>"; | |
| T = q; | |
| break; | |
| case "msg5": | |
| var ab = jGroupUriToId(h.group.gUri); | |
| var o = __groupMap.get(ab); | |
| var p = "<strong>" + h.fName + "</strong>加入您的群<strong>" + o.n + "</strong>"; | |
| T = p; | |
| break; | |
| case "msg6": | |
| var n = "您所在的群<strong>" + h.gName + "</strong>已经被删除"; | |
| T = n; | |
| break; | |
| case "msg7": | |
| var l = "您被取消群<strong>" + h.gName + "</strong>的管理员身份"; | |
| T = l; | |
| break; | |
| case "msg8": | |
| var k = "欢迎您加入群<strong>" + h.gName + "</strong>"; | |
| T = k; | |
| break; | |
| case "msg10": | |
| var ah = "<strong>" + h.fName + "</strong>邀请" + h.joinItems.length + "位好友加入群<strong>" + h.gName + "</strong>"; | |
| T = ah; | |
| break; | |
| case "msg11": | |
| var af = "您是飞信会员,最多可以加入22个群"; | |
| T = af; | |
| break; | |
| case "msg12": | |
| var ag = "http://vip.feixin.10086.cn/open/junior/code/" + __user.mn; | |
| var ad = "普通用户最多可以加入20个群,<a href=" + ag + ' target="_blank" ><strong>开通会员立即获得加入更多群的特权</strong></a>'; | |
| T = ad; | |
| break; | |
| case "msg13": | |
| var ab = jGroupUriToId(h.group.GroupUri); | |
| var o = __groupMap.get(ab); | |
| var ac = "<strong>" + cnSubstr(h.fName, 20, true) + "</strong>申请加入群<strong>" + cnSubstr(o.n, 36, true) + "</strong>"; | |
| T = ac; | |
| break; | |
| case "msg14": | |
| var aa = "申请已经被审批"; | |
| T = aa; | |
| break; | |
| default: | |
| break; | |
| } | |
| var Q = $('<div class="pop_group_cont fixed-bottom fixed-right" id="' + x(10) + '" ></div>') | |
| .css("z-index", h.zindex); | |
| var b = $('<div class="pop_group_cont_bg"></div>'); | |
| var aj = $(' <div class="pop_group_cont_tit"><a href="javascript:;" class="pop_group_close"></a><h3>群提醒</h3> </div>'); | |
| if (h.msgN == "msg10" || h.msgN == "msg13") { | |
| aj = $(' <div class="pop_group_cont_tit"><a href="javascript:;" class="pop_group_close"></a><h3>加群申请</h3> </div>'); | |
| } else { | |
| if (h.msgN == "msg4") { | |
| aj = $(' <div class="pop_group_cont_tit"><a href="javascript:;" class="pop_group_close"></a><h3>加群邀请</h3> </div>'); | |
| } | |
| } | |
| var c = $('<div class="pop_group_cont_box"></div>'); | |
| var N = $('<div class="pop_group_tips"></div>'); | |
| var ae = $('<div class="pop_group_tips_pic"><span class="pop_group_tips_pic_bg"></span></div>'); | |
| var A = $("<img />") | |
| .attr("src", F); | |
| var V = $('<div class="pop_group_tips_text"></div>'); | |
| if (h.msgN == "msg10") { | |
| Q.removeClass("pop_group_cont") | |
| .addClass("pop_group_invite_box"); | |
| var m = $('<div class="pop_group_invite_sub"></div>'); | |
| var ai = $('<div class="pop_group_invite_info"></div>'); | |
| ae = $('<div class="pop_group_invite_info_pic"></div>'); | |
| ae.append(A); | |
| V.removeClass() | |
| .addClass("pop_group_invite_info_text"); | |
| V.html(T); | |
| var H = ai.append(ae) | |
| .append(V); | |
| m.append(aj) | |
| .append(H); | |
| var z = $('<div class="pop_group_invite_cont"></div>'); | |
| var d = $('<div class="pop_group_invite_list_dec"></div>'); | |
| var O = $('<div class="pop_group_invite_list"></div>'); | |
| var S = $('<div class="pop_group_invite_list_dec"></div>'); | |
| var R = $('<div class="pop_group_invite_list_c"></div>'); | |
| for (var Z = 0; Z < h.joinItems.length; Z++) { | |
| var Y = $("<span></span>") | |
| .html(h.joinItems[Z].nn); | |
| R.append(Y); | |
| } | |
| var M = O.append(d) | |
| .append(R) | |
| .append(S); | |
| var E = $('<div class="pop_group_invite_explain">邀请说明:' + h.iR + "</div>"); | |
| var a = $('<div class="pop_group_invite_link"></div>'); | |
| var J = $('<a href="javascript:;" class="consent">批准</a>') | |
| .bind("click", function(i) { | |
| $.closeMessageBox(B, true); | |
| h.consent(h.handleEntity, 1); | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }); | |
| var L = $('<a href="javascript:;" class="refuse">拒绝</a>') | |
| .bind("click", function(i) { | |
| $.closeMessageBox(B, true); | |
| h.consent(h.handleEntity, 2); | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }); | |
| var U = a.append(L) | |
| .append(J); | |
| z.append(M) | |
| .append(E) | |
| .append(U); | |
| Q.append(m) | |
| .append(z); | |
| } else { | |
| if (h.msgN == "msg13") { | |
| var ab = jGroupUriToId(h.group.GroupUri); | |
| var g = jMemUriToId(h.group.ApplyGroupUserEntity[0].Uri); | |
| var G = ab + "_" + g; | |
| Q.attr("id", G); | |
| Q.removeClass("pop_group_cont") | |
| .addClass("pop_group_invite_box"); | |
| var m = $('<div class="pop_group_invite_sub bg">' + '<div class="pop_group_cont_tit">' + '<a href="javascript:;" class="pop_group_close"></a>' + "<h3>加群申请</h3></div>" + '<div class="pop_group_invite_info">' + '<div class="pop_group_invite_info_pic matop"></div>' + '<div class="pop_group_invite_info_text lh">' + T + "<p>申请说明:" + cnSubstr(h.iR, 60, false) + "</p>" + "</div></div></div>"); | |
| m.find(".pop_group_invite_info_pic") | |
| .append(A); | |
| var J = $('<div class="pop_group_invite_cont">' + '<div class="pop_group_invite_link2"><a href="javascript:;" class="consent">拒绝</a><a href="javascript:;" class="confirm">批准</a></div>' + "</div>"); | |
| Q.append(m) | |
| .append(J); | |
| J.find(".pop_group_invite_link2 > a:eq(1)") | |
| .bind("click", function(i) { | |
| $.closeMessageBox(B, true); | |
| h.consent(h.handleEntity, 1); | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }) | |
| .addClass("hover"); | |
| J.find(".pop_group_invite_link2 > a:eq(0)") | |
| .bind("click", function(i) { | |
| $.closeMessageBox(B, true); | |
| h.consent(h.handleEntity, 2); | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }) | |
| .bind("mouseover", function(i) { | |
| J.find(".pop_group_invite_link2 > a:eq(1)") | |
| .removeClass("hover"); | |
| }); | |
| if ($("#" + G) | |
| .attr("id")) { | |
| $("#" + G) | |
| .find(".pop_group_invite_info_text") | |
| .html("") | |
| .html(T + "<p>申请说明:" + h.iR + "</p>"); | |
| } else { | |
| Q.appendTo(document.body); | |
| C = setTimeout(function() { | |
| $.closeMessageBox(B, h); | |
| }, h.timeout); | |
| } | |
| } else { | |
| if (h.msgN == "msg14") { | |
| c.addClass("pabo"); | |
| c.append($('<div class="pop_group_cont_box_icon"></div><p class="pop_group_cont_box_t">' + T + '。</p><a class="confirm" href="javascript:;">确定</a>')); | |
| c.find("a") | |
| .bind("click", function(i) { | |
| Q.remove(); | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }); | |
| } else { | |
| if (h.msgN == "msg11" || h.msgN == "msg12") { | |
| V.addClass("w170"); | |
| var y = "<strong>您所加入群的数量已达上限!</strong>"; | |
| var I = $("<p></p>") | |
| .html(T); | |
| V.append(y) | |
| .append(I); | |
| } else { | |
| V.html(T); | |
| } | |
| } | |
| } | |
| } | |
| if (h.msgN != "msg10" && h.msgN != "msg13") { | |
| var f = ae.append(A); | |
| var v = ""; | |
| if (h.msgN == "msg11" || h.msgN == "msg12") { | |
| var s = $('<div class="pop_group_tips_icon"></div>'); | |
| v = N.append(s) | |
| .append(V); | |
| } else { | |
| if (h.msgN != "msg14") { | |
| v = N.append(f) | |
| .append(V); | |
| } | |
| } | |
| var D = c.append(v); | |
| if (K.isLink) { | |
| var a = $('<div class="pop_group_link"></div>'); | |
| var J = $('<a href="javascript:;" class="consent">同意</a>') | |
| .bind("click", function(i) { | |
| $.closeMessageBox(B, true); | |
| h.consent(h.handleEntity); | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }); | |
| var L = $('<a href="javascript:;" class="refuse">拒绝</a>') | |
| .bind("click", function(i) { | |
| $.closeMessageBox(B, true); | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }); | |
| var U = a.append(J) | |
| .append(L); | |
| D.append(U); | |
| } | |
| if (h.msgN == "msg8") { | |
| Q.addClass("pop_group_spe"); | |
| c.removeClass() | |
| .addClass("pop_group_cont_box_spe"); | |
| var e = $('<div class="pop_group_tips_join"></div>'); | |
| var j = $('<a href="javascript:;" hidefocus="true">加入会话</a>') | |
| .click(function(i) { | |
| h.openWin(this, h.group.id); | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }); | |
| var W = e.append(j); | |
| D.append(W); | |
| } | |
| var r = b.append(aj) | |
| .append(D); | |
| Q.append(r); | |
| } | |
| var X = Q.html(); | |
| if (h.msgN == "msg10" || h.msgN == "msg4") { | |
| if (!__groupMsgMap.containsKey(X)) { | |
| __groupMsgMap.put(X); | |
| Q.appendTo(document.body); | |
| } else { | |
| return; | |
| } | |
| } else { | |
| if (h.msgN != "msg13") { | |
| Q.appendTo(document.body); | |
| } | |
| } | |
| startSound("sys"); | |
| $(".pop_group_close") | |
| .click(function(i) { | |
| $.closeMessageBox(B, true); | |
| stopPropagation(i); | |
| preventDefault(i); | |
| }); | |
| Q.slideDown("slow"); | |
| if (h.isClose && h.msgN != "msg13") { | |
| C = setTimeout(function() { | |
| $.closeMessageBox(B, h); | |
| }, h.timeout); | |
| } | |
| B = { | |
| d: Q, | |
| i: C | |
| }; | |
| return B; | |
| }; | |
| $.closeMessageBox = function(c, b) { | |
| if (c.d.attr("class") | |
| .indexOf("fixed-bottom fixed-right") > 0) { | |
| c.d.slideUp("slow"); | |
| } | |
| if (b == true) { | |
| c.d.remove(); | |
| clearTimeout(c.i); | |
| onCloseGroupSysChatWindow(c.d); | |
| var a = $(c.d) | |
| .html(); | |
| if (__groupMsgMap.containsKey(a)) { | |
| __groupMsgMap.remove(a); | |
| } | |
| } else { | |
| if (b && (b.msgN == "msg10" || b.msgN == "msg4" || b.msgN == "msg13")) { | |
| gsw = $.fn.jGroupSysMsg({ | |
| user: __user, | |
| group: b.group, | |
| popWin: c.d, | |
| onActive: onActiveGroupSysChatWindow, | |
| onClosed: onCloseGroupSysChatWindow, | |
| onFocus: onFocusGroupSysChatWindow | |
| }); | |
| gsw.active(); | |
| gsw.removeClass("fixed-bottom fixed-right"); | |
| if (b.msgN != "msg4") { | |
| gsw.removeClass("pop_group_invite_box") | |
| .addClass("pop_group_invite_box2"); | |
| } | |
| gsw.css("display", ""); | |
| if (b.msgN == "msg13") { | |
| if (!__chatWindowMap.get("group_sys_" + $(c.d) | |
| .attr("id"))) { | |
| __chatWindowMap.put("group_sys_" + $(c.d) | |
| .attr("id"), gsw); | |
| } | |
| } else { | |
| __chatWindowMap.put("group_sys_" + $(c.d) | |
| .attr("id"), gsw); | |
| } | |
| } else { | |
| c.d.remove(); | |
| clearTimeout(c.i); | |
| var a = $(c.d) | |
| .html(); | |
| if (__groupMsgMap.containsKey(a)) { | |
| __groupMsgMap.remove(a); | |
| } | |
| } | |
| } | |
| }; | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| String.prototype.endsWith = function(a) { | |
| if (typeof a == "undefined" || a == "" || this.length == 0 || a.length > this.length) { | |
| return false; | |
| } | |
| if (this.substring(this.length - a.length) == a) { | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| return true; | |
| }; | |
| String.prototype.startsWith = function(a) { | |
| if (typeof a == "undefined" || a == "" || this.length == 0 || a.length > this.length) { | |
| return false; | |
| } | |
| if (this.substr(0, a.length) == a) { | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| return true; | |
| }; | |
| String.prototype.trim = function(b) { | |
| if (typeof b == "undefined") { | |
| return this.replace(/^\s+|\s+$/g, ""); | |
| } | |
| var a = new RegExp("^[" + b + "]+|[" + b + "]+$", "g"); | |
| return this.replace(a, ""); | |
| }; | |
| String.prototype.trimEnd = function(b) { | |
| if (typeof b == "undefined") { | |
| return this.replace(/\s+$/g, ""); | |
| } | |
| var a = new RegExp("[" + b + "]+$", "g"); | |
| return this.replace(a, ""); | |
| }; | |
| String.prototype.toCodeArray = function() { | |
| var b = new Array(); | |
| var a = this.length; | |
| if (a == 0) { | |
| return b; | |
| } | |
| for (var c = 0; c < a; c++) { | |
| b.push(this.charCodeAt(c)); | |
| } | |
| return b; | |
| }; | |
| String.prototype.fromCodeArray = function(b) { | |
| if (b == null) { | |
| return null; | |
| } | |
| var a = b.length; | |
| var d = ""; | |
| for (var c = 0; c < a; c++) { | |
| d += String.fromCharCode(b[c]); | |
| } | |
| return d; | |
| }; | |
| function formatString() { | |
| if (arguments.length < 2) { | |
| return arguments; | |
| } | |
| var a = arguments[0]; | |
| for (var b = 0; b < arguments.length - 1; b++) { | |
| a = a.replace("{" + b + "}", arguments[b + 1]); | |
| } | |
| return a; | |
| } | |
| function cnLength(c) { | |
| if (c == null) { | |
| return null; | |
| } | |
| var a = 0; | |
| for (var b = 0; b < c.length; b++) { | |
| if (c.charCodeAt(b) > 255) { | |
| a += 2; | |
| } else { | |
| a++; | |
| } | |
| } | |
| return a; | |
| } | |
| function cnSubstr(e, a, c) { | |
| if (e == null) { | |
| return null; | |
| } | |
| if (cnLength(e) <= a + 2 && !c) { | |
| return e; | |
| } | |
| var f = 0; | |
| var d = ""; | |
| if (e != null) { | |
| for (var b = 0; b < e.length; b++) { | |
| if (e.charCodeAt(b) > 255) { | |
| f += 2; | |
| } else { | |
| f++; | |
| } | |
| if (f <= a) { | |
| d += e.charAt(b); | |
| } else { | |
| if (c) { | |
| return d; | |
| } else { | |
| return d + "..."; | |
| } | |
| } | |
| } | |
| } | |
| return d; | |
| } | |
| function cnLength2(d) { | |
| if (d == null) { | |
| return null; | |
| } | |
| var a = 0; | |
| for (var c = 0; c < d.length; c++) { | |
| var b = d.charAt(c); | |
| if (d.charCodeAt(c) > 255 || "@#$%^&+<>ADGHMNOQTUVWY".indexOf(b) >= 0) { | |
| a += 2; | |
| } else { | |
| a++; | |
| } | |
| } | |
| return a; | |
| } | |
| function cnSubstr2(f, a, d) { | |
| if (f == null) { | |
| return null; | |
| } | |
| if (cnLength2(f) <= a + 2 && !d) { | |
| return f; | |
| } | |
| var g = 0; | |
| var e = ""; | |
| if (f != null) { | |
| for (var c = 0; c < f.length; c++) { | |
| var b = f.charAt(c); | |
| if (f.charCodeAt(c) > 255 || "@#$%^&+<>ADGHMNOQTUVWY".indexOf(b) >= 0) { | |
| g += 2; | |
| } else { | |
| g++; | |
| } | |
| if (g <= a) { | |
| e += b; | |
| } else { | |
| if (d) { | |
| return e; | |
| } else { | |
| return e + "..."; | |
| } | |
| } | |
| } | |
| } | |
| return e; | |
| } | |
| var __htmlConverter = document.createElement("div"); | |
| function htmlEncode(b, c) { | |
| if (!c) { | |
| c = __htmlConverter; | |
| } | |
| if (c.textContent != null) { | |
| c.textContent = b; | |
| } else { | |
| c.innerText = b; | |
| } | |
| var a = c.innerHTML; | |
| return a; | |
| } | |
| function htmlDecode(b, c) { | |
| if (!c) { | |
| c = __htmlConverter; | |
| } | |
| c.innerHTML = b; | |
| var a = ""; | |
| if (c.textContent != null) { | |
| a = c.textContent; | |
| } else { | |
| a = c.innerText; | |
| } | |
| return a; | |
| } | |
| function getViewportHeight() { | |
| var a = 0; | |
| if (window.innerHeight) { | |
| a = window.innerHeight; | |
| } else { | |
| if (document.documentElement && document.documentElement.clientHeight) { | |
| a = document.documentElement.clientHeight; | |
| } else { | |
| if (document.body && document.body.clientHeight) { | |
| a = document.body.clientHeight; | |
| } | |
| } | |
| } | |
| return a; | |
| } | |
| function getViewportWidth() { | |
| var a = 0; | |
| if (window.innerWidth) { | |
| a = window.innerWidth; | |
| } else { | |
| if (document.documentElement && document.documentElement.clientWidth) { | |
| a = document.documentElement.clientWidth; | |
| } else { | |
| if (document.body && document.body.clientWidth) { | |
| a = document.body.clientWidth; | |
| } | |
| } | |
| } | |
| return a; | |
| } | |
| function getViewportCenter() { | |
| var a = getViewportHeight(); | |
| var d = getViewportWidth(); | |
| var b = { | |
| "x": d / 2, | |
| "y": a / 2 | |
| }; | |
| return b; | |
| } | |
| var __isMsie = $.browser.msie; | |
| function isMouseOver(b, d) { | |
| d = window.event || d; | |
| var c = d.fromElement || d.relatedTarget; | |
| if (__isMsie && c) { | |
| if (b && c != b && b.contains && !b.contains(c)) { | |
| return true; | |
| } | |
| } else { | |
| if (c && b && b.compareDocumentPosition) { | |
| var a = b.compareDocumentPosition(c); | |
| if (!(c == b || a == 20 || a == 0)) { | |
| return true; | |
| } | |
| } | |
| } | |
| return false; | |
| } | |
| function isMouseOut(b, d) { | |
| var d = window.event || d; | |
| var c = d.toElement || d.relatedTarget; | |
| if (__isMsie && c) { | |
| if (b && b.contains && !b.contains(c)) { | |
| return true; | |
| } | |
| } else { | |
| if (c && b && b.compareDocumentPosition) { | |
| var a = b.compareDocumentPosition(c); | |
| if (!(a == 20 || a == 0)) { | |
| return true; | |
| } | |
| } | |
| } | |
| return false; | |
| } | |
| function getCookie(b) { | |
| var a = document.cookie.match(new RegExp("(^| )" + b + "=([^;]*)(;|$)")); | |
| if (a != null) { | |
| return unescape(a[2]); | |
| } | |
| return null; | |
| } | |
| function setCookie(b, d, a, f, c, e) { | |
| document.cookie = b + "=" + d + ((a) ? "; expires=" + a : "") + ((f) ? "; path=" + f : "") + ((c) ? "; domain=" + c : "") + ((e) ? "; secure" : ""); | |
| } | |
| var __expires = (new Date(1970, 1, 1, 8, 0, 1)) | |
| .toGMTString(); | |
| function deleteCookie(a, c, b) { | |
| if (getCookie(a)) { | |
| document.cookie = a + "=" + ((c) ? "; path=" + c : "") + ((b) ? "; domain=" + b : "") + "; expires=" + __expires; | |
| } | |
| } | |
| function jHashMap() { | |
| var a = 0; | |
| var b = new Object(); | |
| this.put = function(c, d) { | |
| if (!this.containsKey(c)) { | |
| a++; | |
| } | |
| b[c] = d; | |
| }; | |
| this.get = function(c) { | |
| return this.containsKey(c) ? b[c] : null; | |
| }; | |
| this.remove = function(c) { | |
| if (this.containsKey(c) && (delete b[c])) { | |
| a--; | |
| } | |
| }; | |
| this.containsKey = function(c) { | |
| return (c in b); | |
| }; | |
| this.containsValue = function(c) { | |
| for (var d in b) { | |
| if (b[d] == c) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| }; | |
| this.values = function() { | |
| var c = new Array(); | |
| for (var d in b) { | |
| c.push(b[d]); | |
| } | |
| return c; | |
| }; | |
| this.keys = function() { | |
| var c = new Array(); | |
| for (var d in b) { | |
| c.push(d); | |
| } | |
| return c; | |
| }; | |
| this.size = function() { | |
| return a; | |
| }; | |
| this.clear = function() { | |
| a = 0; | |
| b = new Object(); | |
| }; | |
| } | |
| function getQueryString(e, b) { | |
| var d = ""; | |
| var c = new RegExp("[?&]?" + b + "=([^&]+)", "i"); | |
| var a = e.match(c); | |
| if (a == null || a.length < 1) { | |
| d = ""; | |
| } else { | |
| d = a[1]; | |
| } | |
| return d; | |
| } | |
| function objects(h) { | |
| var g = new Object(); | |
| var e = /[\?\&]?([^=^\&]+)=([^\&]+)/i; | |
| var c = h.split("&"); | |
| for (var b = 0; b < c.length; b++) { | |
| var a = c[b].match(e); | |
| if (a == null) { | |
| continue; | |
| } | |
| var f = a.length; | |
| if (a != null) { | |
| for (var d = 1; d < f; d += 2) { | |
| if (d + 1 < f) { | |
| g[a[d]] = a[d + 1]; | |
| } else { | |
| g[a[d]] = ""; | |
| } | |
| } | |
| } | |
| } | |
| return g; | |
| } | |
| function addFavourite(url, title) { | |
| function findKeys() { | |
| var isMSIE = | |
| /*@cc_on!@*/ | |
| false; | |
| var ua = navigator.userAgent.toLowerCase(), | |
| isMac = (ua.indexOf("mac") != -1), | |
| isWebkit = (ua.indexOf("webkit") != -1), | |
| str = (isMac ? "Command/Cmd" : "CTRL"); | |
| if (window.opera && (!opera.version || (opera.version() < 9))) { | |
| str += " + T"; | |
| } else { | |
| if (ua.indexOf("konqueror") != -1) { | |
| str += " + B"; | |
| } else { | |
| if (window.opera || window.home || isWebkit || isMSIE || isMac) { | |
| str += " + D"; | |
| } else { | |
| str += " + D"; | |
| } | |
| } | |
| } | |
| return str; | |
| } | |
| try { | |
| if (document.all) { | |
| window.external.addFavorite(url, title); | |
| } else { | |
| if (window.sidebar) { | |
| window.sidebar.addPanel(title, url, ""); | |
| } else { | |
| alert("浏览器不支持自动添加收藏夹。关闭本对话框后,请您手动使用组合快捷键'" + findKeys() + "'进行添加。"); | |
| } | |
| } | |
| } catch (e) { | |
| alert("浏览器不支持自动添加收藏夹。关闭本对话框后,请您手动使用组合快捷键'" + findKeys() + "'进行添加。"); | |
| } | |
| } | |
| function stopPropagation(a) { | |
| a = window.event || a; | |
| if (window.event) { | |
| a.cancelBubble = true; | |
| } else { | |
| a.stopPropagation(); | |
| } | |
| } | |
| function preventDefault(a) { | |
| if (a && a.preventDefault) { | |
| a.preventDefault(); | |
| } else { | |
| window.event.returnValue = false; | |
| return false; | |
| } | |
| } | |
| function replaceSelection(c, e) { | |
| if (c != null) { | |
| if (c.pasteHTML) { | |
| c.select(); | |
| c.pasteHTML(e); | |
| return true; | |
| } else { | |
| if (c.deleteContents && c.insertNode) { | |
| var b = document.createElement("div"); | |
| b.innerHTML = e; | |
| var a = []; | |
| for (var d = b.childNodes.length - 1; d >= 0; d--) { | |
| a.push(b.childNodes[d]); | |
| } | |
| c.deleteContents(); | |
| for (var d = 0, f = a.length; d < f; d++) { | |
| c.insertNode(a[d]); | |
| } | |
| if (a.length > 0) { | |
| c.setStartBefore(a[a.length - 1]); | |
| c.setEndAfter(a[0]); | |
| } | |
| c.collapse(false); | |
| b = null; | |
| return true; | |
| } | |
| } | |
| } | |
| return false; | |
| } | |
| var __scrollBarWidth = null; | |
| function getScrollBarWidth() { | |
| if (__scrollBarWidth) { | |
| return __scrollBarWidth; | |
| } | |
| var a = document.createElement("div"); | |
| a.style.cssText = "overflow:scroll;width:100px;height:100px;"; | |
| document.body.appendChild(a); | |
| if (a) { | |
| __scrollBarWidth = { | |
| horizontal: a.offsetHeight - a.clientHeight, | |
| vertical: a.offsetWidth - a.clientWidth | |
| }; | |
| } | |
| document.body.removeChild(a); | |
| return __scrollBarWidth; | |
| }(function(a) { | |
| a.extend(a.fn, { | |
| loadingPanel: function(c) { | |
| var d = a.extend({ | |
| parent: a(document.body), | |
| target: a(document.body), | |
| showTime: 18 * 1000 | |
| }, c); | |
| d.parent = ((typeof d.parent == "string") ? a("#" + d.parent) : d.parent); | |
| d.target = ((typeof d.target == "string") ? a("#" + d.target) : d.target); | |
| var b = a('<div class="fx_ajax" style="position:absolute;text-align:center;z-index:90000;display:none;"><div class="fxDiv"></div><div class="fxColor fxTransp"></div></div>'); | |
| d.parent.append(b); | |
| b.hide = function() { | |
| b.css("display", "none"); | |
| }; | |
| b.show = function() { | |
| var e; | |
| if (d.parent.get(0) == document.body) { | |
| e = d.target.offset(); | |
| } else { | |
| e = d.target.position(); | |
| } | |
| b.css({ | |
| "top": e.top, | |
| "left": e.left, | |
| "height": d.target.height(), | |
| "width": d.target.width(), | |
| "display": "" | |
| }); | |
| setTimeout(function() { | |
| b.hide(); | |
| }, d.showTime); | |
| }; | |
| return b; | |
| } | |
| }); | |
| })(jQuery); | |
| function setClipboard(f) { | |
| if (window.clipboardData) { | |
| return (window.clipboardData.setData("Text", f)); | |
| } else { | |
| if (window.netscape) { | |
| netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); | |
| var c = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard); | |
| if (!c) { | |
| return; | |
| } | |
| var b = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); | |
| if (!b) { | |
| return; | |
| } | |
| b.addDataFlavor("text/unicode"); | |
| var e = new Object(); | |
| var a = new Object(); | |
| var e = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); | |
| var g = new String(f); | |
| e.data = g; | |
| b.setTransferData("text/unicode", e, g.length * 2); | |
| var d = Components.interfaces.nsIClipboard; | |
| if (!c) { | |
| return false; | |
| } | |
| c.setData(b, null, d.kGlobalClipboard); | |
| return true; | |
| } | |
| } | |
| return false; | |
| } | |
| function getClipboard() { | |
| if (window.clipboardData) { | |
| return (window.clipboardData.getData("Text")); | |
| } else { | |
| if (window.netscape) { | |
| netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); | |
| var d = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard); | |
| if (!d) { | |
| return; | |
| } | |
| var c = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); | |
| if (!c) { | |
| return; | |
| } | |
| c.addDataFlavor("text/unicode"); | |
| d.getData(c, d.kGlobalClipboard); | |
| var e = new Object(); | |
| var a = new Object(); | |
| try { | |
| c.getTransferData("text/unicode", e, a); | |
| } catch (b) { | |
| return null; | |
| } | |
| if (e) { | |
| if (Components.interfaces.nsISupportsWString) { | |
| e = e.value.QueryInterface(Components.interfaces.nsISupportsWString); | |
| } else { | |
| if (Components.interfaces.nsISupportsString) { | |
| e = e.value.QueryInterface(Components.interfaces.nsISupportsString); | |
| } else { | |
| e = null; | |
| } | |
| } | |
| } | |
| if (e) { | |
| return (e.data.substring(0, a.value / 2)); | |
| } | |
| } | |
| } | |
| return null; | |
| } | |
| function osType() { | |
| var b = (navigator.userAgent || navigator.vendor || window.opera) | |
| .toLowerCase(); | |
| isWin7 = b.indexOf("nt 6.1") > -1; | |
| isVista = b.indexOf("nt 6.0") > -1; | |
| isWin2003 = b.indexOf("nt 5.2") > -1; | |
| isWinXp = b.indexOf("nt 5.1") > -1; | |
| isWin2000 = b.indexOf("nt 5.0") > -1; | |
| isWinNT40 = b.indexOf("nt 4.0") > -1; | |
| isWindows = (b.indexOf("windows") != -1 || b.indexOf("win32") != -1); | |
| isMac = (b.indexOf("macintosh") != -1 || b.indexOf("mac os x") != -1); | |
| isAndroid = (b.indexOf("android") != -1); | |
| isLinux = (b.indexOf("linux") != -1); | |
| var c = 0; | |
| var a = ""; | |
| if (isWin7) { | |
| c = 500300002; | |
| } else { | |
| if (isVista) { | |
| c = 500300003; | |
| } else { | |
| if (isWinXp) { | |
| c = 500300001; | |
| } else { | |
| if (isWin2003) { | |
| c = 500300005; | |
| } else { | |
| if (isWin2000) { | |
| c = 500300004; | |
| } else { | |
| if (isWinNT40) { | |
| c = 500300006; | |
| } else { | |
| if (isMac) { | |
| c = 500300008; | |
| } else { | |
| if (isLinux) { | |
| c = 500300007; | |
| } else { | |
| if (isAndroid) { | |
| c = 500300009; | |
| } else { | |
| if (/ip(hone|od)/i.test(b)) { | |
| c = 500300012; | |
| } else { | |
| if (/symbian/i.test(b)) { | |
| c = 500300011; | |
| } else { | |
| if (/windows (ce|phone)/i.test(b)) { | |
| c = 500300010; | |
| } else { | |
| c = 500300013; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| return c; | |
| } | |
| function getScreen() { | |
| var b = screen.width + "," + screen.height; | |
| var a = 0; | |
| switch (b) { | |
| case "1024,768": | |
| a = 500200001; | |
| break; | |
| case "1440,900": | |
| a = 500200002; | |
| break; | |
| case "800,600": | |
| a = 500200005; | |
| break; | |
| case "1366,768": | |
| a = 500200006; | |
| break; | |
| case "1280,800": | |
| a = 500200007; | |
| break; | |
| case "1280,1024": | |
| a = 500200008; | |
| break; | |
| case "1680,1050": | |
| a = 500200009; | |
| break; | |
| case "1152,864": | |
| a = 500200010; | |
| break; | |
| case "1280,960": | |
| a = 500200011; | |
| break; | |
| case "1280,768": | |
| a = 500200012; | |
| break; | |
| case "1920,1080": | |
| a = 500200013; | |
| break; | |
| case "640,480": | |
| a = 500200014; | |
| break; | |
| case "1360,768": | |
| a = 500200015; | |
| break; | |
| default: | |
| a = 500200016; | |
| break; | |
| } | |
| return a; | |
| } | |
| var numberReg = /^\d{8,11}$/; | |
| var numReg = /^\d+$/; | |
| var htmlReg = /<([^<>]+)>/gi; | |
| var numOrWordReg = /^(\w|[\u4e00-\u9fa5])+$/; | |
| var emailReg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; | |
| var isValidSid = /^\d{1,10}$/; | |
| var isMobileNoReg = /^(134|135|136|137|138|139|147|150|151|152|157|158|159|182|183|187|188|130|131|132|155|156|185|186|133|153|180|189)[\d]{8}$/; | |
| var isMobileNoRegForTXL = /^(\+86)?(134|135|136|137|138|139|147|150|151|152|157|158|159|182|183|187|188|130|131|132|155|156|185|186|133|153|180|189)[\d]{8}$/; | |
| var isChinaMobileNoReg = /^(134|135|136|137|138|139|147|150|151|152|157|158|159|182|183|187|188)[\d]{8}$/; | |
| var isUTMoblieNoReg = /^(130|131|132|155|156|185|186|133|153|180|189)[\d]{8}$/; | |
| var isChinaUnicomNoReg = /^(130|131|132|155|156|185|186|)[\d]{8}$/; | |
| var isChinaTelecomNoReg = /^(133|153|180|189)[\d]{8}$/; | |
| var __version = 0; | |
| var __dataReportMap = new jHashMap(); | |
| (function(a) { | |
| a.extend({ | |
| request: { | |
| URL_SetCounter: "SetCounter.aspx?Version={0}&coutertype={1}&tag={2}&val={3}&rand={4}", | |
| version: __version | |
| }, | |
| increaseCounter: function(e, c, f) { | |
| if (!c) { | |
| c = "default"; | |
| } | |
| if (f == undefined) { | |
| f = 1; | |
| } | |
| var d = formatString(a.request.URL_SetCounter, a.request.version++, e, c, f, Math.random()); | |
| var b = new Image(); | |
| b.src = d; | |
| }, | |
| increaseCounters: function(b, d) { | |
| if (d == undefined) { | |
| d = 1; | |
| } | |
| var e = __dataReportMap; | |
| if (e.containsKey(b)) { | |
| var c = e.get(b) + d; | |
| e.put(b, c); | |
| } else { | |
| e.put(b, d); | |
| } | |
| } | |
| }); | |
| })(jQuery); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment