UNPKG

dzxstatic

Version:

The static files of Discuz! X

1 lines 10.2 kB
friendSelector=function(e){if(this.dataSource={},this.selectUser={},this.prompterUser=[],this.showObj=$(isUndefined(e.showId)?"selectorBox":e.showId),this.showObj)return this.handleObj=$(isUndefined(e.searchId)?"valueId":e.searchId),this.showType=isUndefined(e.showType)?0:e.showType,this.searchStr=null,this.selectNumber=0,this.maxSelectNumber=isUndefined(e.maxSelectNumber)?0:parseInt(e.maxSelectNumber),this.allNumber=0,this.notInDataSourceNumber=0,this.handleKey=isUndefined(e.handleKey)?"this":e.handleKey,this.selectTabId=isUndefined(e.selectTabId)?"selectTabId":e.selectTabId,this.unSelectTabId=isUndefined(e.unSelectTabId)?"unSelectTabId":e.unSelectTabId,this.maxSelectTabId=isUndefined(e.maxSelectTabId)?"maxSelectTabId":e.maxSelectTabId,this.formId=isUndefined(e.formId)?"":e.formId,this.filterUser=isUndefined(e.filterUser)?{}:e.filterUser,this.showAll=!0,this.newPMUser={},this.interlaced=!0,this.handover=!0,this.parentKeyCode=0,this.pmSelBoxState=0,this.selBoxObj=isUndefined(e.selBox)?null:$(e.selBox),this.containerBoxObj=isUndefined(e.selBoxMenu)?null:$(e.selBoxMenu),this.imgBtn=null,this.initialize(),this},friendSelector.prototype={addDataSource:function(e,s){if("object"==typeof e){var t=e.userdata;for(var i in(s=isUndefined(s)?0:s)&&(this.showObj.innerHTML="",3==this.showType&&(this.selBoxObj.innerHTML=""),this.allNumber=0,this.dataSource={}),t)if(void 0===this.filterUser[i]){var r=!!s;void 0===this.dataSource[i]&&(this.dataSource[i]=t[i],r=!0,this.allNumber++),r&&(this.interlaced=!this.interlaced,3==this.showType?this.append(i,0,1):this.append(i))}1==this.showType?this.showSelectNumber():2==this.showType&&this.newPMUser&&window.setInterval(this.handleKey+".handoverCSS()",400)}},addFilterUser:function(e){var s={};if("object"!=typeof e)s[e]=e;else{if("object"!=typeof e)return!1;s=e}for(var t in s)this.filterUser[s[t]]=s[t];return!0},handoverCSS:function(){for(var e in this.newPMUser)$("avt_"+e).className=this.handover?"avt newpm":"avt";this.handover=!this.handover},handleEvent:function(e,s){if(this.searchStr="",""!=e){if(188==s.keyCode||13==s.keyCode||59==s.keyCode){if(3==this.showType){if(13==s.keyCode){var t=this.getCurrentPrompterUser();-1!=t&&(e=this.dataSource[this.prompterUser[t]].username)}229!=this.parentKeyCode&&(this.selectUserName(this.trim(e)),this.showObj.style.display="none",$(this.handleObj.id+"_menu").style.display="none",this.showObj.innerHTML="")}}else if(38==s.keyCode||40==s.keyCode);else if(3==this.showType){this.showObj.innerHTML="";var i=!1,r=new RegExp(e,"ig");for(var a in this.searchStr=e,this.prompterUser=[],this.dataSource)this.dataSource[a].username.match(r)&&(this.prompterUser.push(a),this.append(a,1),i=!0);i?(showMenu({showid:this.showObj.id,duration:3,pos:"43"}),showMenu({showid:this.handleObj.id,duration:3,pos:"43"})):$(this.handleObj.id+"_menu").style.display="none"}}else if(3!=this.showType)for(var a in this.showObj.innerHTML="",this.dataSource)this.append(a);else $(this.handleObj.id+"_menu").style.display="none",this.showObj.innerHTML=""},selectUserName:function(e){if(this.handleObj.value="",""!=e){var s=this.isFriend(e);if(s&&void 0===this.selectUser[s]||0===s&&void 0===this.selectUser[e]){var t=document.createElement("span");if(s)this.selectUser[s]=this.dataSource[s],t.id="uid"+s,null!=$("chk"+s)&&($("chk"+s).checked=!0);else{var i="str"+Math.floor(1e4*Math.random());t.id=i,this.selectUser[e]=e}this.selectNumber++,t.innerHTML='<a href="javascript:;" class="x" onclick="'+this.handleKey+".delSelUser('"+t.id+'\');">删除</a><em class="z" title="'+e+'">'+e+'</em><input type="hidden" name="users[]" value="'+e+'" uid="uid'+s+'" />',this.handleObj.parentNode.insertBefore(t,this.handleObj),this.showObj.style.display="none"}else alert("已经存在"+e)}},delSelUser:function(e){var s,t="uid"==(e=isUndefined(e)?0:e).substring(0,3)?parseInt(e.substring(3)):0;t?(s=$(e),delete this.selectUser[t],null!=$("chk"+t)&&($("chk"+t).checked=!1)):"str"==e.substring(0,3)&&(s=$(e),delete this.selectUser[s.getElementsByTagName("input")[0].value]),null!=s&&(this.selectNumber--,s.parentNode.removeChild(s))},trim:function(e){return e.replace(/\s|,|;/g,"")},isFriend:function(e){var s=0;for(var t in this.dataSource)if(this.dataSource[t].username===e){s=t;break}return s},directionKeyDown:function(e){},clearDataSource:function(){this.dataSource={},this.selectUser={}},showUser:function(e){if(this.showObj.innerHTML="",e=isUndefined(e)?0:parseInt(e),this.showAll=!0,1==e){for(var s in this.selectUser)this.append(s);this.showAll=!1}else for(var s in this.dataSource){if(2==e){if(void 0!==this.selectUser[s])continue;this.showAll=!1}this.append(s)}if(1==this.showType){for(var t=0;t<3;t++)$("showUser_"+t).className="";$("showUser_"+e).className="a brs"}},append:function(e,s,t){s=isUndefined(s)?0:s,t=isUndefined(t)?0:t;var i=document.createElement("li"),r=this.dataSource[e]||this.selectUser[e],a=r.username;if(i.userid=r.uid,void 0!==this.selectUser[e]&&(i.className="a"),s){var n=new RegExp("("+this.searchStr+")","ig");a=a.replace(n,"<strong>$1</strong>")}if(1==this.showType)i.innerHTML='<a href="javascript:;" id="'+i.userid+'" onclick="'+this.handleKey+'.select(this.id)" class="cl"><span class="avt brs" style="background-image: url('+r.avatar+');"><span></span></span><span class="d">'+a+"</span></a>";else if(2==this.showType)r.new&&void 0===this.newPMUser[e]&&(this.newPMUser[e]=e),i.className=this.interlaced?"alt":"",i.innerHTML='<div id="avt_'+i.userid+'" class="avt"><a href="home.php?mod=spacecp&ac=pm&op=showmsg&handlekey=showmsg_'+i.userid+"&touid="+i.userid+"&pmid="+r.pmid+"&daterange="+r.daterange+'" title="'+a+'" id="avatarmsg_'+i.userid+'" onclick="'+this.handleKey+".delNewFlag("+i.userid+");showWindow('showMsgBox', this.href, 'get', 0);\"><img src=\""+r.avatar+'" alt="'+a+'" /></a></div><p><a class="xg1" href="home.php?mod=spacecp&ac=pm&op=showmsg&handlekey=showmsg_'+i.userid+"&touid="+i.userid+"&pmid="+r.pmid+"&daterange="+r.daterange+'" title="'+a+'" id="usernamemsg_'+i.userid+'" onclick="'+this.handleKey+".delNewFlag("+i.userid+");showWindow('showMsgBox', this.href, 'get', 0);\">"+a+"</a></p>";else{if(t){var h=void 0===this.selectUser[e]?"":' checked="checked" ';return i.innerHTML='<label><input type="checkbox" name="selUsers[]" id="chk'+e+'" value="'+r.username+'" onclick="if(this.checked) {'+this.handleKey+".selectUserName(this.value);} else {"+this.handleKey+".delSelUser('uid"+e+"');}\" "+h+' class="pc" /> <span class="xi2">'+a+"</span></label>",this.selBoxObj.appendChild(i),!0}i.innerHTML='<a href="javascript:;" username="'+this.dataSource[e].username+'" onmouseover="'+this.handleKey+'.mouseOverPrompter(this);" onclick="'+this.handleKey+".selectUserName(this.getAttribute('username'));$('username').focus();\" class=\"cl\" id=\"prompter_"+e+'">'+a+"</a>"}this.showObj.appendChild(i)},select:function(e){if(e=parseInt(e)){var s=!1;if(void 0===this.selectUser[e]){if(this.maxSelectNumber&&this.selectNumber>=this.maxSelectNumber)return alert("最多只允许选择"+this.maxSelectNumber+"个用户"),!1;this.selectUser[e]=this.dataSource[e],this.selectNumber++,"1"==this.showType&&($(e).parentNode.className="a"),s=!0}else delete this.selectUser[e],this.selectNumber--,$(e).parentNode.className="";if(""!=this.formId){var t=$(this.formId),i="selUids_"+e;if(s){var r=document.createElement("input");r.type="hidden",r.id=i,r.name="uids[]",r.value=e,t.appendChild(r)}else t.removeChild($(i))}1==this.showType&&this.showSelectNumber()}},delNewFlag:function(e){delete this.newPMUser[e]},showSelectNumber:function(){if(null!=$(this.selectTabId)&&void 0!==$(this.selectTabId)&&($(this.selectTabId).innerHTML=this.selectNumber),null!=$(this.unSelectTabId)&&void 0!==$(this.unSelectTabId)){for(var e in this.notInDataSourceNumber=0,this.selectUser)void 0===this.dataSource[e]&&this.notInDataSourceNumber++;$(this.unSelectTabId).innerHTML=this.allNumber+this.notInDataSourceNumber-this.selectNumber}null!=$(this.maxSelectTabId)&&this.maxSelectNumber&&void 0!==$(this.maxSelectTabId)&&($(this.maxSelectTabId).innerHTML=this.maxSelectNumber-this.selectNumber)},getCurrentPrompterUser:function(){var e=this.prompterUser.length,s=-1;if(e)for(var t=0;t<e;t++){var i=$("prompter_"+this.prompterUser[t]);null!=i&&"a"==i.className&&(s=t)}return s},mouseOverPrompter:function(e){var s=this.prompterUser.length;if(s){for(var t=0;t<s;t++)$("prompter_"+this.prompterUser[t]).className="cl";e.className="a"}},initialize:function(){var e=this;this.handleObj.onkeyup=function(s){s=s||window.event,e.handleEvent(this.value,s)},3==this.showType&&(this.handleObj.onkeydown=function(s){if(s=s||window.event,e.parentKeyCode=s.keyCode,e.showObj.style.display="",8==s.keyCode&&""==this.value){var t=this.previousSibling;if("SPAN"==t.tagName){var i=t.getElementsByTagName("input")[0].getAttribute("uid");parseInt(i.substring(3))?e.delSelUser(i):(delete e.selectUser[t.getElementsByTagName("input")[0].value],e.selectNumber--,this.parentNode.removeChild(t))}}else if(38==s.keyCode)if(e.prompterUser.length||doane(s),-1!=(a=e.getCurrentPrompterUser())){var r=0==a?e.prompterUser.length-1:a-1;$("prompter_"+e.prompterUser[a]).className="cl",$("prompter_"+e.prompterUser[r]).className="a"}else $("prompter_"+e.prompterUser[0]).className="a";else if(40==s.keyCode){var a;e.prompterUser.length||doane(s),-1!=(a=e.getCurrentPrompterUser())?(r=a==e.prompterUser.length-1?0:a+1,$("prompter_"+e.prompterUser[a]).className="cl",$("prompter_"+e.prompterUser[r]).className="a"):$("prompter_"+e.prompterUser[0]).className="a"}else 13==s.keyCode&&doane(s);void 0!==e&&e.pmSelBoxState&&(e.pmSelBoxState=0,e.changePMBoxImg(e.imgBtn),e.containerBoxObj.style.display="none")})},changePMBoxImg:function(e){var s=new Image;s.src=IMGDIR+"/"+(this.pmSelBoxState?"icon_top.gif":"icon_down.gif"),null!=e&&(e.src=s.src)},showPMFriend:function(e,s,t){if(this.pmSelBoxState=!this.pmSelBoxState,this.imgBtn=t,this.changePMBoxImg(t),this.pmSelBoxState)for(var i in this.selBoxObj.innerHTML="",this.dataSource)this.append(i,0,1);this.containerBoxObj.style.display=this.pmSelBoxState?"":"none",this.showObj.innerHTML=""},showPMBoxUser:function(){for(var e in this.selBoxObj.innerHTML="",this.dataSource)this.append(e,0,1)},extend:function(e){for(var s in e)this[s]=e[s]}};