if (typeof(SIDEVIEW_JS) === 'undefined') // 한번만 실행 { if (typeof is_member === 'undefined') { alert('is_member 변수가 선언되지 않았습니다.'); } var SIDEVIEW_JS = true; // 아래의 소스코드는 daum.net 카페의 자바스크립트를 참고하였습니다. // 회원이름 클릭시 회원정보등을 보여주는 레이어 function insertHead(name, text, evt) { var idx = this.heads.length; var row = new SideViewRow(-idx, name, text, evt); this.heads[idx] = row; return row; } function insertTail(name, evt) { var idx = this.tails.length; var row = new SideViewRow(idx, name, evt); this.tails[idx] = row; return row; } function SideViewRow(idx, name, onclickEvent) { this.idx = idx; this.name = name; this.onclickEvent = onclickEvent; this.renderRow = renderRow; this.isVisible = true; this.isDim = false; } function renderRow() { if ( ! this.isVisible) return ''; var str = '' + this.onclickEvent + ''; return str; } function getSideView(curObj, userid) { clickAreaCheck = true; $.ajax({ url : cb_url + '/profile/sideview/' + userid, type : 'get', dataType : 'json', success : function(data) { if (data.error) { alert(data.error); return false; } else if (data.success) { showSideView(curObj, userid, data.name, data.homepage, data.note, data.email, data.profile, data.following, data.memid); } } }); } function showSideView(curObj, userid, name, homepage, note, email, profile, following, memid) { var sideView = new SideView('nameContextMenu', curObj, userid, name, homepage, note, email, profile, following, memid); sideView.showLayer(); } function SideView(targetObj, curObj, userid, name, homepage, note, email, profile, following, memid) { this.targetObj = targetObj; this.curObj = curObj; this.userid = userid; name = name.replace(/…/g,""); this.name = name; this.homepage = homepage; this.note = note; this.email = email; this.profile = profile; this.following = following; this.showLayer = showLayer; this.makeNameContextMenus = makeNameContextMenus; this.heads = new Array(); this.insertHead = insertHead; this.tails = new Array(); this.insertTail = insertTail; this.getRow = getRow; this.hideRow = hideRow; this.dimRow = dimRow; // 회원이라면 // (비회원의 경우 검색 없음) if (is_member) { if (userid) { // 쪽지보내기 if (note == '1') this.insertTail('note', '쪽지보내기'); else if (note == '3') this.insertTail('note', '쪽지보내기'); else if (note == '2') this.insertTail('note', '쪽지보내기'); // 친구등록 if (following == '1') this.insertTail('follow', '친구해제'); else this.insertTail('follow', '친구등록'); // 메일보내기 if (email == '1') this.insertTail('email', '메일보내기'); else if (email == '3') this.insertTail('email', '메일보내기'); else if (email == '2') this.insertTail('email', '메일보내기'); // 홈페이지 if (homepage == '1') this.insertTail('homepage', '홈페이지'); // 자기소개 if (profile == '1') this.insertTail('profile', '프로필'); else if (profile == '3') this.insertTail('profile', '프로필'); else if (profile == '2') this.insertTail('profile', '프로필'); } } // 게시판테이블 아이디가 넘어왔을 경우 if (cb_board) { if (userid) // 회원일 경우 아이디로 검색 this.insertTail('userid', '아이디로 검색'); else // 비회원일 경우 이름으로 검색 this.insertTail('name', '이름으로 검색'); } // 최고관리자일 경우 if (is_admin == 'super') { // 회원정보변경 if (userid) this.insertTail('modify', '회원정보변경'); // 포인트내역 if (userid) this.insertTail('point', '포인트내역'); if (userid) this.insertTail('new', '전체게시물'); if (userid) this.insertTail('new', '전체댓글'); } } function showLayer() { var oSideViewLayer = document.getElementById(this.targetObj); var oBody = document.body; if (oSideViewLayer === null) { oSideViewLayer = document.createElement('DIV'); oSideViewLayer.id = this.targetObj; oSideViewLayer.style.position = 'absolute'; oBody.appendChild(oSideViewLayer); } oSideViewLayer.innerHTML = this.makeNameContextMenus(); if (getAbsoluteTop(this.curObj) + this.curObj.offsetHeight + oSideViewLayer.scrollHeight + 5 > oBody.scrollHeight) oSideViewLayer.style.top = (getAbsoluteTop(this.curObj) - oSideViewLayer.scrollHeight) + 'px'; else oSideViewLayer.style.top = (getAbsoluteTop(this.curObj) + this.curObj.offsetHeight) + 'px'; oSideViewLayer.style.left = (getAbsoluteLeft(this.curObj) - this.curObj.offsetWidth + 14) + 'px'; divDisplay(this.targetObj, 'block'); selectBoxHidden(this.targetObj); } function getAbsoluteTop(oNode) { var oCurrentNode=oNode; var iTop = 0; while(oCurrentNode.tagName != 'BODY') { iTop+=oCurrentNode.offsetTop - oCurrentNode.scrollTop; oCurrentNode=oCurrentNode.offsetParent; } return iTop; } function getAbsoluteLeft(oNode) { var oCurrentNode=oNode; var iLeft = 0; iLeft+=oCurrentNode.offsetWidth; while(oCurrentNode.tagName != 'BODY') { iLeft+=oCurrentNode.offsetLeft; oCurrentNode=oCurrentNode.offsetParent; } return iLeft; } function makeNameContextMenus() { var str = ''; var i = 0; for (i=this.heads.length - 1; i >= 0; i--) str += this.heads[i].renderRow(); var j = 0; for (j = 0; j < this.tails.length; j++) str += this.tails[j].renderRow(); str += '
'; return str; } function getRow(name) { var i = 0; var row = null; for (i = 0; i