| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575 | Namespace.register("U.MD.F.S");U.MD.F.S.SearchPostion; //搜索的时候判断位置//#region 本地好友搜索处理/*** 搜索好友** @param  {object} 用户信息* @param  {element} 打印显示的元素* @param  {object} 回调函数 * @param  {object} 搜索的类型 *                   F   好友*                   G   群*                   ""  好友和群*/U.MD.F.S.searchFriendsOrGroupForm = function (inputs, el, cb, typename) {    var _searchfriendinfo = [], //搜索好友的数组        _searchvalue = inputs.value, //获取搜索的内容        _isserch = U.MD.F.S.searchFriendsKeyboardHandle(el, inputs) //是否允许搜索    ;    //判断用户键盘输入的内容,是否需要进行搜索    if (_isserch) {        //获取搜索好友的值        if (!typename || typename == "F") {            _searchfriendinfo = _searchfriendinfo.concat(U.Json.like(US.friend.friends, { "FriendsDescript": _searchvalue, "UserNickName": _searchvalue, "UserName": _searchvalue })); //获取用户好友        }        //获取搜索群的值        if (!typename || typename == "G") {            _searchfriendinfo = _searchfriendinfo.concat(U.Json.like(US.friend.group, { "GroupManageName": _searchvalue })); //获取好友群        }        //显示清空        el.style.display = "block";        el.innerText = "";        //搜索好友的打印        U.MD.F.S.printSearchFriends(_searchfriendinfo, el, cb);    };}/*** 搜索键盘的处理** @param  {object} 用户信息*/U.MD.F.S.searchFriendsKeyboardHandle = function (el, inputs) {    var _keycode;    if (event) {        _keycode = event.keyCode    } else {        _keycode = 0    } //获取键盘的值    _childs = $(el).Child(), //搜索的内容子元素        _searchvalue = inputs.value, //搜索的值        _position = U.MD.F.S.SearchPostion, //搜索的位置        _searchel = _childs[_position] //搜索得到的元素    ;    //判断搜索的值是否存在,不存在则隐藏    if (_searchvalue == "" || _searchvalue == inputs.defaultValue) {        el.style.display = "none";    }    //如果搜索的内容存在,同时用户执行了回车处理    else if (_position > -1 && _keycode == 13 || _keycode == 10 && _childs[_position].onmousedown) {        _childs[_position].ondblclick();    }    //如果不是上下键,那么允许用户继续搜索    else if (_keycode != 38 && _keycode != 40) {        U.MD.F.S.SearchPostion = -1; //搜索选择的位置设置为-1        return true;    }    return false;}/*** 打印搜索好友** @param  {object} 用户信息*/U.MD.F.S.printSearchFriends = function (friendinfo, el, cb) {    var i,            _name,            _tempel,            _temponeel,            _temptwoel,            _frag = $$("frag"),            _childs = $(el).Child();    //没有搜索到好友的提示    if (!friendinfo[0]) {        $$("div", { "className": "U_MD_F_S_Local_NoData", "innerText": "很抱歉,没有找到您搜索的好友" }, el);    }    else {        //循环打印搜索的好友        for (i = 0; i < friendinfo.length; i++) {            (function (i) {                //搜索的名字                _name = friendinfo[i].GroupManageName || friendinfo[i].FriendsDescript || friendinfo[i].UserNickName || friendinfo[i].UserName;                //打印的样式                _tempel = $$("div", {                    "title": "点击查看",                    "className": "U_MD_F_S_Local_Result",                    "onclick": function () {                        U.MD.F.S.switchSearchFriendsOrGroup(el, i);                    },                    "ondblclick": function () {                        U.MD.F.W.popupFriendsForm(friendinfo[i]);                        U.MD.F.S.hideSearchFriendsOrGroupForm(el);                    }                }, _frag);                _temptwoel = $$("div", { "className": "U_MD_F_H_ZLZOCOI", "title": _name }, _tempel);                if (friendinfo[i].GroupManageID) {                    U.MD.F.printGroupHeadImage(friendinfo[i], _temptwoel, 4, [35, 35]);                }                else {                    $$("img",                {                    "onerror": U.MD.C.imgError,                    "className": "U_MD_HomeSSZJDAO",                    "src": U.MD.C.getHeadImage(friendinfo[i].UserThumbnailImageHead)                },                 _temptwoel);                }                $$("span", { "className": "U_MD_F_S_Local_UserName", "innerHTML": _name }, _tempel);            })(i);        }        el.appendChild(_frag);    }    $('body').unbind('keyup', U.MD.F.S.SwitchFunction);    U.MD.F.S.SwitchFunction = U.UF.C.closure(U.MD.F.S.switchSearchFriendsOrGroup, [el]);    $('body').bind('keyup', U.MD.F.S.SwitchFunction);    U.MD.F.S.SearchPostion = -1; //搜索选择的位置设置为-1    return _childs;}/*** 上下切换搜索的好友或者群** @param  {element} 切换元素* @param  {number} 当前所在的位置*/U.MD.F.S.switchSearchFriendsOrGroup = function (el, switchposition) {    var _switchel,        _top,        _scrolltop,        _isswitch = null,        _keycode = event.keyCode, //键盘码        _childs = $(el).Child(), //获取所有搜索的值        _postion = U.MD.F.S.SearchPostion, //当前选择好友或者去的位置        _nowswitchel = _childs[switchposition || U.MD.F.S.SearchPostion] //之前聚焦显示的元素    ;    if (_keycode == 38) {        _isswitch = -1    } else if (_keycode == 40) {        _isswitch = 1    }    //判断是否需要重新选择    if (_isswitch || (switchposition != null && switchposition != _postion)) {        //如果需要指定切换到那个位置        if (switchposition != null) {            U.MD.F.S.SearchPostion = switchposition;        }        //上下切换的处理        else {            U.MD.F.S.SearchPostion += _isswitch; //加上上下的处理  如果键盘向上则-1 向下+1        }        //如果位置大于最后一个,则位置设置为最后一个        if (U.MD.F.S.SearchPostion > _childs.length - 1) {            U.MD.F.S.SearchPostion = 0; //设置位置        } else if (U.MD.F.S.SearchPostion < 0) {            U.MD.F.S.SearchPostion = _childs.length - 1;        }        switchposition = U.MD.F.S.SearchPostion;        _switchel = _childs[switchposition]; //判断选择好友或者群有没有元素        //选择的位置        if (_switchel) {            $('.U_MD_F_S_Local_Result_Hover').removeClass('U_MD_F_S_Local_Result_Hover')            _switchel.className = "U_MD_F_S_Local_Result U_MD_F_S_Local_Result_Hover"; //取消上一个            //下面计算需要显示的元素是否在滚动条可见范围,如果不在,那么滚动滚动条设置            _top = _switchel.offsetTop;            _scrolltop = el.scrollTop;            if (_top > el.offsetHeight + _scrolltop - 40) {                el.scrollTop = _top - el.offsetHeight;            }            if (_top < el.scrollTop) {                el.scrollTop = _top; //滚动条的位置            }        }    }}/*** 隐藏** @param  {element} 切换元素*/U.MD.F.S.hideSearchFriendsOrGroupForm = function (el) {    $("body")[0].focus();    el.style.display = "none";    $('body').unbind('keyup', U.MD.F.S.SwitchFunction);    $(el).prev().Child()[0].value = "联系人、好友讨论组";}//#endregion//#region 窗体搜索/*** 弹出群搜索**/U.MD.F.S.popupsSearchGroups = function () {    //弹出群搜索的窗体    var _form = new U.UF.UI.form('<div class="U_MD_F_S_TO U_MD_F_S_TR">群文档搜索查看区域</div><div class="U_MD_F_S_TD" onmousedown="U.UF.EV.stopBubble();"><div class="U_MD_F_S_TDL"><input id="U_MD_F_S_GF_Search"  value="群文档搜索" onblur="U.UF.MR.inputPlaceholder(this,\'\',\'群文档搜索\');" onfocus="U.UF.MR.inputPlaceholder(this,\'群文档搜索\',\'\');" placeholder="群文档搜索" onkeyup="if (event.keyCode == 13 || event.keyCode == 10) {$(this).parentElement(2).Child()[1].onclick();}" /></div><div id="U_MD_F_S_TDR_GF" class="U_MD_F_S_TDR">搜索</div></div>',                                 "<div class='U_MD_F_S_CX'></div><div class='U_MD_F_S_CD'></div>",                                 {                                     "resize": U.MD.F.S.searchGroupsFormSize,                                     "id": "U_MD_F_S",                                     "style": {                                         "width": "71.5%",                                         "height": "70%"                                     }                                 },                                 null,                                 {                                     "style": {                                         "padding": "10px 0"                                     }                                 });    var _formel = _form.form; //获取整个窗体    $(_formel).find("input")[0].focus(); //窗体头部的输入框聚焦    $('#U_MD_F_S_TDR_GF')[0].onclick = function () {        U.MD.F.S.searchAjax(1, 1, _formel.children[2].children[0], $('#U_MD_F_S_GF_Search')[0])    }    U.MD.F.S.searchGroupsFormSize(_formel); //窗体的大小设置    U.MD.F.S.searchAjax($(_form.middle).Child()[1], 1, _formel.children[2].children[0], $('#U_MD_F_S_GF_Search')[0]); //初始化数据    return _formel;}/*** 弹出Ftp搜索* */U.MD.F.S.popupsSearchFtp = function () {    var _form = new U.UF.UI.form('<div class="U_MD_F_S_TO U_MD_F_S_TR">FTP共享区域查看</div><div class="U_MD_F_S_TD" onmousedown="U.UF.EV.stopBubble();"><div class="U_MD_F_S_TDL"><input id="U_MD_F_S_FTP_Search" value="FTP搜索" onblur="U.UF.MR.inputPlaceholder(this,\'\',\'FTP搜索\');" onfocus="U.UF.MR.inputPlaceholder(this,\'FTP搜索\',\'\');" placeholder="FTP搜索" onkeyup="if (event.keyCode == 13 || event.keyCode == 10) {$(this).parentElement(2).Child()[1].onclick();}" /></div><div id="U_MD_F_S_TDR" class="U_MD_F_S_TDR">搜索</div></div>',                                 "<div class='U_MD_F_S_CX'></div><div class='U_MD_F_S_CD'></div>",                                 {                                     "resize": U.MD.F.S.searchGroupsFormSize,                                     "id": "U_MD_F_F",                                     "style":                                        {                                            "width": "70%",                                            "height": "70%"                                        }                                 },                                 null,                                 {                                     "style": {                                         "padding": "10px 0"                                     }                                 });    var _formel = _form.form; //获取整个窗体    $('#U_MD_F_S_TDR')[0].onclick = function () {        U.MD.F.S.searchAjax(1, 0, $("#U_MD_F_F")[0].children[2].children[0], $("#U_MD_F_S_FTP_Search")[0])    }    $(_formel).find("input")[0].focus(); //窗体头部的输入框聚焦    U.MD.F.S.searchGroupsFormSize(_formel); //窗体的大小设置    U.MD.F.S.searchAjax($(_form.middle).Child()[1], 0, _formel.children[2].children[0], $('#U_MD_F_S_FTP_Search')[0]); //初始化数据    return _formel;}/*** 搜索内容大小变化**/U.MD.F.S.searchGroupsFormSize = function (contentel) {    var _parentel = $(contentel).Parent(3);    contentel.style.width = Math.floor(_parentel.offsetWidth / 225) * 225 + "px";    $(contentel).Parent().style.height = _parentel.offsetHeight - 125 + "px";}/*** 搜索开始**/U.MD.F.S.searchAjax = function (page, isgroupserch, contentel, inputel) {    var _searchvalue = inputel.value == inputel.defaultValue ? "" : inputel.value;    //判断是否    if (_searchvalue != "") {        U.MD.F.S.searchGroupOrFriend(page, isgroupserch, contentel, inputel);    }    //热门查看    else {        U.MD.F.S.getHotFriendOrGroup(1, isgroupserch, contentel);    }}/*** 搜索开始**/U.MD.F.S.searchGroupOrFriend = function (page, isgroupserch, contentel, inputel) {    var _searchvalue = inputel.value == inputel.defaultValue ? "" : inputel.value, //输入的内容        _end = page * 80, //结束的位置        _start = _end - 79, //开始的位置        _loadingel = page > 1 ? $(contentel).parentElement(2).Child()[2] : $(contentel).parentElement()[0]    ;    //群搜索的ajax处理    if (isgroupserch) {        //后台搜索群        U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "SearchGroupInfo", _searchvalue, _start, _end],                    U.MD.F.S.ajaxSearchAjax, [_loadingel, page, _searchvalue, contentel, isgroupserch]);    }    //ftp搜索的ajax处理    else {        //后台搜索好友的ftp        U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "SearchFriendInfo", US.userInfo.userid || US.EMPTYGUID, _searchvalue, _start, _end],                    U.MD.F.S.ajaxSearchAjax, [_loadingel, page, _searchvalue, contentel, isgroupserch]);    }    //滚动加载设置    U.UF.EV.scrollLoad($(contentel).Parent(), function () {        U.MD.F.S.searchAjax(page + 1, isgroupserch, contentel, inputel);    });}/*** 获取热门的群或者好友**/U.MD.F.S.getHotFriendOrGroup = function (page, isgroup, el) {    var i,        _loadingel = page > 1 ? $(el).parentElement(2).Child()[2] : $(el).parentElement()[0],        _end = page * 80,        _start = _end - 79    ;    //滚动加载设置    if (page == 1) {        //设置滚动加载函数        U.UF.EV.scrollLoad($(el).Parent(), function () {            U.MD.F.S.getHotFriendOrGroup(page + 1, isgroup, el); //加载热门好友和群        });    }    //群的加载处理    if (isgroup) {        U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "RecommendGroups", _start, _end],                    U.MD.F.S.asynGetHotFriendOrGroup, [_loadingel, el, isgroup]);    }    //好友ftp加载处理    else {        U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "GetFtpHotUser", _start, _end],                    U.MD.F.S.asynGetHotFriendOrGroup, [_loadingel, el, isgroup]);    }}/*** 热门群或者好友获取异步**/U.MD.F.S.asynGetHotFriendOrGroup = function (r) {    var _context = r.context,        _el = _context[1], //打印区域的元素        _isgroup = _context[2]; //是否是群的处理    r = r.value;    //打印内容    U.MD.F.S.printSearchContent(r, _el, _isgroup);    //如果搜索的内容已经不足的时候,那么就取消滚动加载函数    if (r.length < 80) {        $(_el).Parent().onscroll = null;    }}/*** 搜索异步**/U.MD.F.S.ajaxSearchAjax = function (r) {    //参数处理    var _context = r.context,        _page = _context[1], //页码        _searchvalue = _context[2], //搜索内容        _el = _context[3],        _isgroup = _context[4]; //是否是群搜索    r = r.value;    //如果是第一页    if (_page == 1) {        _el.innerHTML = ""; //清空之前的数据        //如果获取的值不存在,那么就直接打印搜索是否为空        if (!r || !r.length) {            U.MD.F.S.printNullSearch(_el); //打印空搜索        }    }    //如果搜索有内容,那么打印内容    if (r && r.length) {        U.MD.F.S.printSearchContent(r, _el, _isgroup); //打印搜索营部    }}/*** 打印搜索内容**/U.MD.F.S.printSearchContent = function (friendsinfo, el, isgroup) {    var i, _el, _tempel, _tempela, _tempelb, _tempelc, _arr,        _userid = US.userInfo.userid || "",        _frag = $$("frag");    if (isgroup) {        _arr = ["GroupManageName", "+加群"];    }    else {        _arr = ["UserNickName", "+好友"];    }    //循环打印好友数据    for (i = 0; i < friendsinfo.length; i++) {        _el = $$("div", { "className": "U_MD_F_S_Pop_Content_G U_MD_D_Radius_5",            "onclick": U.UF.C.closure(function (friendinfo) {                if (isgroup) {                    //      U.MD.U.V.GroupInfo(friendinfo);                }                else {                    U.MD.D.I.openApplication("disk", { "userid": friendinfo.UserId, "directoryid": US.FTPFOLDERID });                }            }, [friendsinfo[i]])        }, _frag);        _tempel = $$("div", { "className": "U_MD_F_S_Pop_Content_G_T" }, _el);        _tempela = $$("div", { "className": "U_MD_F_S_Pop_Content_G_T_L" }, _tempel);        $$("img", { "onerror": U.MD.C.imgError,            "onerror": U.MD.C.imgError,            "src": isgroup ? "" : U.MD.C.getHeadImage(friendsinfo[i]["UserThumbnailImageHead"]),            "title": friendsinfo[i][_arr[0]],            "onclick": U.UF.C.closure(function (friendinfo) {                U.UF.EV.stopBubble();                //群处理                if (isgroup) {                    //   U.MD.U.V.GroupInfo(friendinfo);                }                //好友处理                else {                    U.MD.U.V.ViewOtherUserInfo(friendinfo.UserId);                }            }, [friendsinfo[i]])        }, _tempela);        _tempelb = $$("div", { "className": "U_MD_F_S_Pop_Content_G_T_R" }, _tempel);        $$("div", { "className": "U_MD_F_S_Pop_Content_G_T_R_T U_MD_D_Text_Abbreviation", "innerHTML": friendsinfo[i][_arr[0]] }, _tempelb);        $$("div", { "className": "U_MD_F_S_Pop_Content_G_T_R_C U_MD_D_Text_Abbreviation", "innerHTML": (isgroup ? "目前人数:" : "目前好友:") + (friendsinfo[i].FCount || 0) }, _tempelb);        $$("div", { "className": "U_MD_F_S_Pop_Content_G_T_R_B U_MD_D_Text_Abbreviation", "innerHTML": "ftp文件:" + friendsinfo[i].DCount || 0 }, _tempelb);        _tempelc = $$("div", { "className": "U_MD_F_S_Pop_Content_G_B" }, _el);        $$("div", { "className": "U_MD_F_S_Pop_Content_G_B_A U_MD_D_Radius_5", "innerHTML": _arr[1],            "onclick": U.UF.C.closure(function (friendinfo) {                U.UF.EV.stopBubble();                if (isgroup) {                    U.MD.F.J.addUsersToGroup(friendinfo, function () {                        U.MD.D.I.openApplication("friend", { "userid": _userid, "directoryid": friendinfo.GroupManageID }, friendinfo);                    });                }                else {                    U.MD.F.M.addFriend(friendinfo);                }            }, [friendsinfo[i]])        }, _tempelc);    }    el.appendChild(_frag);}/*** 空查询**/U.MD.F.S.printNullSearch = function (el) {    $$("div", { "className": "U_MD_F_S_CXT", "innerHTML": "暂无搜索消息, 请稍候搜索。" }, el);}//#endregion//#region 新搜索/*** 搜索好友** @param  {object} 用户信息* @param  {element} 打印显示的元素* @param  {object} 回调函数* @param  {object} 搜索的类型* @param  {number} defaultindex 0好友 1群组 2ftp*/U.MD.F.S.popSearchFriendsOrGroupForm = function (defaultindex) {    var _searchel = $("#U_MD_F_S_Pop")[0],        _contentel = $($(_searchel).Child()[1]).Child()[0],        _inputel = $("input", _searchel)[0]    ;    _searchel.style.display = "block";    //弹出群搜索的窗体    var _form = new U.UF.UI.form("查找好友/群",                                 _searchel,                                 {                                     "resize": function () { U.MD.F.S.searchGroupsFormSize(_contentel); },                                     "id": "U_MD_F_S",                                     "style": {                                         "width": "70%",                                         "height": "70%"                                     }                                 }, null);    var _formel = _form.form; //获取整个窗体    _inputel.focus(); //窗体头部的输入框聚焦    U.MD.F.S.searchGroupsFormSize(_contentel); //窗体的大小设置    U.MD.F.S.searchFriendsOrGroupFormClick($("span", _searchel)[defaultindex]); //默认选择查找用户    return _formel;}/*** 搜索好友** @param  {object} 用户信息*/U.MD.F.S.clickSearch = function (el) {    var i,        _changeel,        _topel = $(el).Parent(2),        _childel = $($(_topel).Child()[0]).Child();    ;    for (i = 0; i < _childel.length; i++) {        _changeel = $(_childel[i]).Child()[0];        if (_changeel.className == "U_MD_F_S_Pop_Head_Nav_fonto") {            U.MD.F.S.searchFriendsOrGroupFormClick(_changeel);            return;        }    }}/*** 搜索好友** @param  {object} 用户信息*/U.MD.F.S.searchFriendsOrGroupFormClick = function (el) {    var i, j,        _changeel,        _parentel = $(el).Parent(2),        _childel = $(_parentel).Child(),        _topel = $(_parentel).Parent(2),        _contentel = $($(_topel).Child()[1]).Child()[0],        _inputel = $("input", _topel)[0]    ;    //循环处理样式    for (i = 0; i < _childel.length; i++) {        _changeel = $(_childel[i]).Child()[0];        //如果是点击的对象        if (_changeel == el) {            el.className = "U_MD_F_S_Pop_Head_Nav_fonto";            j = i;        }        //点击的对象        else {            _changeel.className = "";        }    }    _contentel.innerText = "";    U.MD.F.S.searchAjax(1, j == 1, _contentel, _inputel); //初始化数据}//#endregion
 |