var style;
var friendspageLayer=new NetEase.PageLayer();
var friendsPageSize=10;
var firendsPrefetchMulti=3;
function OnclickTextInput(ele,value){
if($(ele).value==value){
$(ele).value='';
$(ele).className='wz_txt brd01';
}
}
function showMessage(msg,barId,succ){
var img;
if(succ)
img=Const.STDomain+'/style/common/ico_confirm.gif';
else
img=Const.STDomain+'/style/common/ico_alert.gif';
new NetEase.StatusBar(msg,{
barId:barId,
imgsrc:img});
}
function getOffset(ele){
var lfoffset=Position.cumulativeOffset(ele);
var left=(lfoffset[0]+155)+"px";
var top=(lfoffset[1])+"px";
return[left,top];
}
function showBiographicals(biographicals){
var hs="";
var col="";
var work="";
if(biographicals){
var bioArray=biographicals.split('|');
var workIndex=1;
for(var i=0;i<bioArray.length;i++){
var item=bioArray[i];
if(item=='')
continue;
var detailsArr=item.split(',');
var appendYear=true;
if(detailsArr[1]=='至今'){
appendYear=false;
}
switch(detailsArr[detailsArr.length-1]){
case"1":
hs='<div class="ck0 g_t_hide" style="width:320px;">'+detailsArr[0]+'-'+detailsArr[1]+(appendYear?'年':'')+'&nbsp;&nbsp;'+detailsArr[4]+'</div>';
break;
case"2":
col='<div class="ck0 g_t_hide" style="width:320px;">'+detailsArr[0]+'-'+detailsArr[1]+(appendYear?'年':'')+'&nbsp;&nbsp;'+detailsArr[3]+'&nbsp;&nbsp;&nbsp;'+detailsArr[4]+'</div>';
break;
case"3":
work+='<div class="ck0 g_t_hide" style="width:320px;">'+detailsArr[0]+'-'+detailsArr[1]+(appendYear?'年':'')+'&nbsp;&nbsp;'+detailsArr[2]+'&nbsp;&nbsp;&nbsp;&nbsp;'+detailsArr[3]+'</div>';
break;
}
}
}
return work+col+hs;
}
function showAndUpdateObserveTime(userId,element,url){
window.open(url,"_blank");
var tdEle=element.parentNode.parentNode;
if(tdEle.className.indexOf('update')!=-1){
UserBean.updateObserveTime(userId);
Element.replaceClassName(tdEle,'update','');
var d=new Date();
var newFriend={userId:userId,observeTime:d};
if(rightPage!=null&&rightPage.cachePage!=null){
rightPage.cachePage.updateOne(newFriend);
}
}
}
function gLoadPrevFriends(){
initGroup();
initCfg();
loadRight();
}
function loadRight(){
showRight('friend',{groupId:0});
}
if(NEFriend==undefined){
var NEFriend={};
}
NEFriend.FriendPageBase=Class.create();
NEFriend.FriendPageBase.prototype={
initialize:function(sContainerId,sObjName){
this.options=Object.extend({
groupId:0,
groupManager:groupManager,
windowUtil:null
},arguments[2]||{});
this.containerId=sContainerId;
this.cachePage=null;
this.objName=sObjName;
this.upgradeOngoing=false;
this.changeGroupOnGoing=false;
this.init();
},
init:function(){
$(this.containerId).innerHTML=this.jst_wraper.processUseCache({objName:this.objName,nickName:'-请输入博友昵称-'});
this.cachePage=new NetEase.PageNumber(this.objName+".cachePage",{loadParam:{id:this.options.groupId,isEdit:true},
totalSize:this.options.groupManager.getCount(this.options.groupId),
loadFunc:this.loadFunc.bind(this),
presentFunc:this.presentFunc.bind(this),
userPresentFuncParam:{},
delIterator:this.removeFunc.bind(this),
updateIterator:this.updateFunc.bind(this),
pageSize:10,
markID:'mark_friends:mark_friends1',
RefreshAfterAdd:true,
needRefreshAfterUpdate:true,
prefetch:true,
prefetchMulti:2,
showLastPage:false,
styleDir:style});
this.cachePage.show();
},
loadFunc:function(param,callBack){
UserBean.getFriends(param.id,param.offset,param.limit,callBack);
},
checkWhetherFriend:function(userId){
for(var i=0;i<friendIDListPrevFriend.length;i++)
if(friendIDListPrevFriend[i]==userId){
return true;
}
return false;
},
presentFunc:function(friendListsResult){
var groupOne;
var checkFriend=[];
var idArray=friendListsResult.pluck("userId");
if(this.options.groupId!=0)
groupOne=this.options.groupManager.getGroup(this.options.groupId);
for(var i=0;i<friendListsResult.length;i++){
if(UD.status!='edit'){
if(friendIDListPrevFriend!=undefined&&friendIDListPrevFriend!=null&&friendIDListPrevFriend!=""){
checkFriend[i]=this.checkWhetherFriend(idArray[i]);
}
}
if(!groupOne)
group=this.options.groupManager.getGroup(friendListsResult[i].groupId);
else
group=groupOne;
if(group)
friendListsResult[i].groupName=group.groupName;
else
friendListsResult[i].groupName="";
}
if(UD.status=='edit'){
$('friends_table').innerHTML=this.jst_content.processUseCache({objName:this.objName,friends:friendListsResult});
}
else{
$('friends_table').innerHTML=this.jst_content.processUseCache({objName:this.objName,friends:friendListsResult,isFriend:checkFriend});
}
UserBean.getProfileMap(idArray,{callback:function(profileList){
this.showFriendsMoreInfo(profileList,friendListsResult);
}.bind(this)});
},
showFriendsMoreInfo:function(profileList,friendsList){
if(friendsList!=null){
var date=new Date();
var isEdit=UD.status=='edit';
for(var i=0,j=friendsList.length;i<j;i++){
var userId=friendsList[i].userId;
var values=profileList[userId];
if(values){
friendsList[i].onLine=values[2];
friendsList[i].lastLoginTime=values[1];
friendsList[i].spaceUpdateTime=values[0];
var onLine=values[2];
var lastLoginTime=values[1];
var spaceUpdateTime=values[0];
if(onLine){
var genderClass=$('gender_'+userId).className;
if(genderClass.indexOf('m11')!=-1)
genderClass="n_ m10";
else
genderClass='n_ m12';
$('gender_'+userId).className=genderClass;
}
if(isEdit&&spaceUpdateTime>friendsList[i].observeTime)
$('img_'+userId).className+=' update';
var timeStr=getDateForMysql(lastLoginTime);
$('loginTimeSpan_'+userId).innerHTML=timeStr;
}
}
}
},
removeFunc:function(userId,item){
return userId==item.userId;
},
updateFunc:function(newItem,item){
return newItem.userId==item.userId;
},
search:function(brotherEle){
var ele=brotherEle.parentNode.firstChild;
var nickName=Trim(ele.value);
if(nickName=='-请输入博友昵称-'||nickName==''){
dwrlog("请输入博友昵称",'error');
return;
}
this.initSearch(nickName);
},
initSearch:function(nickName){
$(this.containerId).innerHTML=this.jst_wraper.processUseCache({objName:this.objName,nickName:nickName});
this.cachePage=new NetEase.CachePage({
loadParam:{nickName:nickName},
loadFunc:this.searchFunc.bind(this),
presentFunc:this.presentFunc.bind(this),
userPresentFuncParam:{},
delIterator:this.removeFunc.bind(this),
updateIterator:this.updateFunc.bind(this),
pageSize:10,
markID:'mark_friends:mark_friends1',
RefreshAfterAdd:true,
needRefreshAfterUpdate:true,
prefetch:true,
prefetchMulti:firendsPrefetchMulti,
styleDir:style});
this.cachePage.nextPage();
},
searchFunc:function(param,callBack){
var nickName=param.nickName
if(nickName!=null&&nickName!="")
UserBean.searchFriends(nickName,this.options.groupId,param.offset,param.limit,callBack);
},
jst_wraper:new String(' \
   <div class="actionbar brd01"> \
    <div class="searchbar"><input class="wz_txt hit bd01 " type="text" value="${nickName|default:"-请输入博友昵称-"|escape}" onclick="OnclickTextInput(this, \'-请输入博友昵称-\');"/> \
    <input class="wz_button butn" type="button" value="查 找" onclick="${objName}.search(this);"/> \
    </div> \
   </div> \
   <div id="mark_friends" class="pagebar"></div> \
   <div id="friends_table" class="listcase gc_item_list"></div> \
   <div id="mark_friends1" class="pagebar"></div> \
 ')
}
if(NEFriend==undefined){
var NEFriend={};
}
NEFriend.FriendPagePrev=Class.create();
Object.extend(NEFriend.FriendPagePrev.prototype,NEFriend.FriendPageBase.prototype);
Object.extend(NEFriend.FriendPagePrev.prototype,{
jst_content:new String(' \
  {if friends != null} \
  {for _c in friends} \
    <table class="gc_item brd01" cellspacing="0" cellpadding="0"> \
      <tr><td id="img_${_c.userId}" class="img "><div><a href="http://${_c.userName|escape|parentDomain}/" target="_blank" title=""><img class="brd01" src="${formatImageUrl(_c.profileImage140)}" onerror="this.src=\''+Const.STDomain+'/style/common/user_default.gif\'"  /></a>\
      </div></td> \
       <td class="icon"><span id="gender_${_c.userId}" class="n_ {if _c.gender=="F"} m11{else} m13{/if}">&nbsp;</span></td> \
    <td class="auto"> \
      <div class="item2"><a class="c05" href="http://${_c.userName|escape|parentDomain}/" target="_blank" style="margin-right:0px;">${_c.nickname|escape}</a>\
      </div> \
      <div class="item0"> \
        {if _c.ageStr !="未透露"}<a class="c06" target="_blank" href="http://blog.163.com/findFriend.do?ageFrom=${_c.ageStr}&ageTo=${_c.ageStr}">${_c.ageStr}岁</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{/if} \
      <a class="c06" {var provinceEncode=encodeURIComponent(_c.province)} href="http://blog.163.com/findFriend.do?province=${provinceEncode|default:"any"}"+ target="_blank">${_c.province|default:""|escape}</a> \
      <a class="c06" {var cityEncode=encodeURIComponent(_c.city)} href="http://blog.163.com/findFriend.do?city=${cityEncode|default:"any"}" target="_blank">${_c.city|default:""|escape}</a> \
      </div> \
      ${showBiographicals(_c.biographicals)} \
      <div class="c09">最后登录时间:<span id="loginTimeSpan_${_c.userId}"></span></div> \
      <div class="item1 ck0"><span class="c08" id="tag_${_c.userId}">${_c.tag}</span></div> \
    </td> \
    <td class="link c06"> \
      <a href="#" {if !isFriend[_c_index]}onclick="pageTopBar.sendMsgToStranger(${UD.visitorId},\'${UD.visitorName|escape}\',\'${UD.visitorNickname|escape|js_string}\', ${_c.userId}, \'${_c.userName|escape}\',\'${_c.nickname|default:""|escape|js_string}\'); return false;"{else}onclick="pageTopBar.sendMsg(${UD.visitorId},\'${UD.visitorName|escape}\',\'${UD.visitorNickname|escape|js_string}\', ${_c.userId}, \'${_c.userName|escape}\',\'${_c.nickname|default:""|escape|js_string}\'); return false;"{/if}>发送消息</a> \
      <a href="http://${_c.userName|escape|parentDomain}/friends/" target="_blank">查看{if _c.gender=="F"}她{else}他{/if}的博友</a> \
      <a href="http://${_c.userName|escape|parentDomain}/profile/" target="_blank">查看详细资料</a> \
    </td></tr> \
    </table> \
  {forelse} \
   没有博友。\
  {/for}\
  {/if} \
 ')
});
if(NEFriend==undefined){
var NEFriend={};
}
NEFriend.GroupManagerBase=Class.create();
NEFriend.GroupManagerBase.prototype={
initialize:function(sContainerId,sObjName){
this.options=Object.extend({
groupHash:{},
defaultGroupId:0,
groupIdSeq:[],
countNonFollow:0
},arguments[2]||{});
this.containerId=sContainerId;
this.objName=sObjName;
this.countAll=0;
this.groupList=[];
this.groupHashClone={};
this.init();
this.show();
},
init:function(){
this.initCount();
this.initSeq();
},
initCount:function(){
this.countAll=0;
for(var group in this.options.groupHash){
this.countAll+=this.options.groupHash[group].count;
this.groupHashClone[group]=this.options.groupHash[group];
}
},
initSeq:function(){
this.groupList=[];
for(var i=0;i<this.options.groupIdSeq.length;){
if(this.options.groupHash[this.options.groupIdSeq[i]]){
this.groupList[i]=this.options.groupHash[this.options.groupIdSeq[i]];
this.groupHashClone[this.options.groupIdSeq[i]]=null;
i++;
}else{
this.options.groupIdSeq.splice(i,1);
}
}
this.groupListTemp=[];
for(var group in this.groupHashClone){
var groupTmp=this.groupHashClone[group];
if(groupTmp){
this.options.groupIdSeq.push(groupTmp.id);
this.groupListTemp.push(groupTmp);
}
}
this.groupList=this.groupListTemp.concat(this.groupList);
},
getGroupHash:function(){
return this.options.groupHash;
},
getGroup:function(groupId){
return this.options.groupHash[groupId];
},
getCountAll:function(){
return this.countAll;
},
getCount:function(groupId){
if(groupId==0)
return this.countAll;
else
return this.options.groupHash[groupId].count;
},
jst_friend_group_list:new String('\
  {for _g in groupHash} \
  {if _g != null} \
     <div class="gw_item g_htc_hvr c06"> \
        <span class="gw_dot">&#149;</span><div class="gw_content g_t_hide g_htc_item" id="group_${_g.id}" onclick="showRight(\'friend\', {groupId:\'${_g.id}\'}); return false;" title="${_g.groupName|escape}">${_g.groupName|escape}(${_g.count})</div> \
     </div> \
  {/if} \
  {/for} \
  <div class="c06 item m30f"><div class="g_htc_item" onclick="showRight(\'nonFollowFriends\', {groupId:\'\'});return false;" >动态被隐藏(<span id="nonFollowFriends"></span>)</div></div>\
 ')
};
if(NEFriend==undefined){
var NEFriend={};
}
NEFriend.GroupManagerPrev=Class.create();
Object.extend(NEFriend.GroupManagerPrev.prototype,NEFriend.GroupManagerBase.prototype);
Object.extend(NEFriend.GroupManagerPrev.prototype,{
init:function(){
},
setCountAll:function(count){
this.countAll=count;
},
show:function(){
$('countAll').innerHTML=this.countAll;
}
});
var cfg={};
var rightPage;
var groupManager;
showChummyFunc=function(param){
rightPage=new NEFriend.ChummyPagePrev('friend_right','rightPage',param);
}
showFriendFunc=function(param){
rightPage=new NEFriend.FriendPagePrev('friend_right','rightPage',param);
}
function showRight(moduleId,param){
cfg[moduleId].initFunc(Object.extend(cfg[moduleId].initFuncParam,param));
}
function initGroup(){
groupManager=new NEFriend.GroupManagerPrev('_$_friend_group','groupManager',{});
groupManager.setCountAll(friendsCount_prev);
groupManager.show();
}
function initCfg(){
var friendModule={initFunc:showFriendFunc,initFuncParam:{groupManager:groupManager}};
cfg={
'friend':friendModule
};
}
