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('
群文档搜索查看区域
搜索
', "
", { "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('
FTP共享区域查看
搜索
', "
", { "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