feixin group.js

(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' style='display: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("发&nbsp;送");
            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);
posted on 2012-07-10 23:15  西湖浪子  阅读(291)  评论(0)    收藏  举报