feixin WebIM.js

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 getPicCodeUrl = "WebIM/GetPicCode.aspx?Type={0}&{1}";
var getPortraitUrl = "WebIM/GetPortrait.aspx?did={0}&Size={1}&Crc={2}&mid={3}";
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 setMessageReadUrl = "WebIM/SetMessageRead.aspx";
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";
var registerValidateUrl = "WebIM/RegisterValidate.aspx";
var getBannerPicUrl = "httpHandler/GetBannerPicHttpHandler.ashx?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 = 448;
var __groupTree;
var __groupChatWinDefaultHeight = 365;
var __groupChatWinDefaultWidth = 480;
var __group_mem = new jHashMap();
var __maxMsgListOnTaskbar = 0;
var __isNormalLogout = false;
var __hideUserStatusSetterTimer = 0;
var __hideContactInfoTimer = 0;
var __showContactInfoTimer = 0;
var __initContactInfoTimer = 0;
var __hideOperateInfoTimer = 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;
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() {
        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;
    });
    $("#topTabDownload").bind("click",
    function() {
        $.increaseCounters("500400003");
    });
}
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 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;
                }
            }
        }
    }
    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();
    } 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++) {
                    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++) {
                    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 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, 78));
            __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 sendMessage(f, b, e, a, d) {
    var c = new Object();
    c.success = function(h, i) {
        var g = h;
        if (typeof g.rc == "number" && g.rc >= 200 && g.rc < 300) {} else {
            if (typeof g.rc == "number" && g.rc == 420) {
                f.logErrorInfo("对方版本过旧,您无法向其发起陌生人消息。");
                f.inputPermission = 420;
                f.enableInput(false);
            } else {
                if (typeof g.rc == "number" && g.rc == 486) {
                    f.logErrorInfo("您暂时无法发送短信,请稍后再试。");
                } else {
                    if (typeof g.rc == "number" && g.rc == 494) {
                        f.logErrorInfo("您的飞信账号处于系统保护状态,限制了该功能的使用。请手机发送短信U到12520解除限制后重新登录。");
                    } else {
                        if (typeof g.rc == "number" && g.rc == 405) {} else {
                            f.logErrorInfo("消息发送失败: " + cnSubstr(e, 18));
                        }
                    }
                }
            }
        }
    };
    c.error = function(g, i, h) {
        f.logErrorInfo("消息发送失败: " + cnSubstr(e, 18));
    };
    c.url = formatString(sendMessageUrl, __version++);
    c.type = "POST";
    c.data = {
        "To": b,
        "IsSendSms": a ? "1": "0",
        "msg": e,
        "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 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, 78) || "请输入心情短语...");
    $("#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 {
        $("#input_rec_msg").removeAttr("checked").attr("disabled", "disabled");
    }
}
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) {
            if (!__setSmsWindow) {
                __setSmsWindow = $.fn.setSmsWindow({
                    onConfirm: function(j, k) {
                        setSmsOnline({
                            "ReceiveSms": "0",
                            "Time": k,
                            "ssid": __sessionId
                        });
                    },
                    onCancel: function() {
                        g.attr("checked", "true");
                    }
                });
                __setSmsWindow.show();
            } else {
                __setSmsWindow.show();
            }
        } else {
            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('免费发短信&nbsp;&nbsp;&nbsp;&nbsp;<em class="icon_new1"/>', "content/freeSms.htm", false);
    $("#tab_1").click();
    $("#tab_1").click(function() {
        $.increaseCounters("500400001");
    });
    initContentHeight();
    initGroupListHeight();
}
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);
    $("#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) {
    if (a == "group") {
        $("#friends_list").hide();
        $("#group_box").show();
        $("#li_buddy").removeClass("on");
        $("#li_group").addClass("on");
    } else {
        if (a == "buddy") {
            $("#group_box").hide();
            $("#friends_list").show();
            $("#li_group").removeClass("on");
            $("#li_buddy").addClass("on");
        }
    }
}
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);
    $("#vip_icon").attr("href", __vipUrl);
    $("#feesid_icon").attr("href", __feesidUrl);
    $("#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 startGroupSubscribe2(b, c) {
    var a = new Object();
    a.success = function(d, e) {
        startGroupSubscribeSuccess(c, b, d, e);
    };
    a.error = startGroupSubscribeError;
    a.url = formatString(GroupSubscribeUrl, __version++);
    a.type = "POST";
    a.data = {
        "ssid": __sessionId,
        "GroupUris": b,
        "Type": 2
    };
    a.dataType = "json";
    a.cache = false;
    $.ajax(a);
}
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 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);
            });
        }
    };
} ();
posted on 2012-07-10 23:14  西湖浪子  阅读(1039)  评论(0)    收藏  举报