// Name Layer if (typeof(SIDEVIEW_JS) == 'undefined') { // 한번만 실행 if (typeof g5_is_member == 'undefined') alert(aslang[0]); if (typeof g5_bbs_url == 'undefined') alert(aslang[1]); 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 showSideView(curObj, mb_id, name, email, homepage) { var sideView = new SideView('nameContextMenu', curObj, mb_id, name, email, homepage); sideView.showLayer(); } function SideView(targetObj, curObj, mb_id, name, email, homepage) { this.targetObj = targetObj; this.curObj = curObj; this.mb_id = mb_id; name = name.replace(/…/g,""); this.name = name; this.email = email; this.homepage = homepage; 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 (g5_is_member) { // 자기소개 if (mb_id) this.insertTail("info", ""+aslang[2]+""); // 홈페이지 if (homepage) this.insertTail("homepage", ""+aslang[3]+""); // 쪽지보내기 if (mb_id) // 불여우 자바스크립트창이 뜨는 오류를 수정 this.insertTail("memo", ""+aslang[4]+""); // 메일보내기 if (email) this.insertTail("mail", ""+aslang[5]+""); } var pim_target = ''; if(g5_pim) { pim_target = ' target="_blank"'; } // 게시판테이블 아이디가 넘어왔을 경우 if (g5_bo_table) { if (mb_id) { // 회원일 경우 아이디로 검색 this.insertTail("mb_id", ""+aslang[6]+""); this.insertTail("mb_cid", ""+aslang[7]+""); } else { // 비회원일 경우 이름으로 검색 this.insertTail("name", ""+aslang[6]+""); this.insertTail("cname", ""+aslang[7]+""); } } // 전체게시물 if (mb_id) this.insertTail("new", ""+aslang[8]+""); // 최고관리자일 경우 if (g5_is_admin == "super") { // 포인트내역과 1:1문의 if (mb_id) { this.insertTail("qna", ""+aslang[40]+""); this.insertTail("point", ""+aslang[9]+""); this.insertTail("modify", ""+aslang[10]+""); } } } function showLayer() { clickAreaCheck = true; 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