// 블로그 등록 ajax
function interest(bl_id) {
	var myAjax = new Ajax.Request(g4_path + '/ajax/interest.ajax.php',
	{
		method: 'post',
		parameters: 'bl_id='+bl_id,
		onSuccess: function(transport){   
			var response = transport.responseText || 'no response text';
			alert(response);
		}
	});
} 

// 블로그 클릭시 나타나는 메뉴 설정
if (typeof(B_SIDEVIEW_JS) == 'undefined') // 한번만 실행
{
    var B_SIDEVIEW_JS = true;

    function showBSideView(curObj, bl_id) 
    {
        var sideView = new BSideView('nameContextMenu', curObj, bl_id);
        sideView.showLayer();
    }

    function BSideView(targetObj, curObj, bl_id) 
    {
        this.targetObj = targetObj;
        this.curObj = curObj;
        this.bl_id = bl_id;
//        name = name.replace(/…/g,""); //불여우 오류나서 제외
        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;

	
		this.insertTail("visit", "<a href=\""+g4_path+"/mdblog/link.php?bl_id="+bl_id+"\" target=\"_blank\">방문하기</a>");
		this.insertTail("interest", "<a href=\"javascript:;\" onclick=\"interest("+bl_id+")\">관심 블로그 등록</a>");
		this.insertTail("introduce", "<a href=\"javascript:;\" onclick=\"window.open('"+g4_path+"/mdblog/introduce.php?bl_id="+bl_id+"', 'introduce', 'height=300,width=300,top=100,left=300,scrollbars=1')\">블로그 소개 보기</a>");
	}
	
	// 이하는 sideview.js와 동일하므로 실행된 경우는 function을 재정의하지 않는다.
	if(typeof(SIDEVIEW_JS) == 'undefined') {
		// 아래의 소스코드는 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 = "<tr height='19'><td id='sideViewRow_"+this.name+"'>&nbsp;<span style=color:gray>&middot;</span> "+this.onclickEvent+"</td></tr>";
			return str;
		}

		/* 원래 sideview(), showsideview() 자리*/

		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;
			else
				oSideViewLayer.style.top = getAbsoluteTop(this.curObj) + this.curObj.offsetHeight;

			oSideViewLayer.style.left = getAbsoluteLeft(this.curObj) - this.curObj.offsetWidth + 14;

			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 = "<table id='popupmenu' border='0' cellpadding='0' cellspacing='0' style='border:1px solid #E0E0E0;' bgcolor='#F9FBFB'>";
			
			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 += "</table>";
			return str;
		}

		function getRow(name) 
		{
			var i = 0;
			var row = null;
			for (i=0; i<this.heads.length; ++i) 
			{
				row = this.heads[i];
				if (row.name == name) return row;
			}

			for (i=0; i<this.tails.length; ++i) 
			{
				row = this.tails[i];
				if (row.name == name) return row;
			}
			return row;
		}

		function hideRow(name) 
		{
			var row = this.getRow(name);
			if (row != null)
				row.isVisible = false;
		}

		function dimRow(name) 
		{
			var row = this.getRow(name);
			if (row != null)
				row.isDim = true;
		}
		// Internet Explorer에서 셀렉트박스와 레이어가 겹칠시 레이어가 셀렉트 박스 뒤로 숨는 현상을 해결하는 함수
		// 레이어가 셀렉트 박스를 침범하면 셀렉트 박스를 hidden 시킴
		// <div id=LayerID style="display:none; position:absolute;" onpropertychange="selectBoxHidden('LayerID')">
		function selectBoxHidden(layer_id) 
		{
			//var ly = eval(layer_id);
			var ly = document.getElementById(layer_id);

			// 레이어 좌표
			var ly_left   = ly.offsetLeft;
			var ly_top    = ly.offsetTop;
			var ly_right  = ly.offsetLeft + ly.offsetWidth;
			var ly_bottom = ly.offsetTop + ly.offsetHeight;

			// 셀렉트박스의 좌표
			var el;

			for (i=0; i<document.forms.length; i++) {
				for (k=0; k<document.forms[i].length; k++) {
					el = document.forms[i].elements[k];    
					if (el.type == "select-one") {
						var el_left = el_top = 0;
						var obj = el;
						if (obj.offsetParent) {
							while (obj.offsetParent) {
								el_left += obj.offsetLeft;
								el_top  += obj.offsetTop;
								obj = obj.offsetParent;
							}
						}
						el_left   += el.clientLeft;
						el_top    += el.clientTop;
						el_right  = el_left + el.clientWidth;
						el_bottom = el_top + el.clientHeight;

						// 좌표를 따져 레이어가 셀렉트 박스를 침범했으면 셀렉트 박스를 hidden 시킴
						if ( (el_left >= ly_left && el_top >= ly_top && el_left <= ly_right && el_top <= ly_bottom) || 
							 (el_right >= ly_left && el_right <= ly_right && el_top >= ly_top && el_top <= ly_bottom) ||
							 (el_left >= ly_left && el_bottom >= ly_top && el_right <= ly_right && el_bottom <= ly_bottom) ||
							 (el_left >= ly_left && el_left <= ly_right && el_bottom >= ly_top && el_bottom <= ly_bottom) ||
							 (el_top <= ly_bottom && el_left <= ly_left && el_right >= ly_right)
							)
							el.style.visibility = 'hidden';
					}
				}
			}
		}

		// 감추어진 셀렉트 박스를 모두 보이게 함
		function selectBoxVisible() 
		{
			for (i=0; i<document.forms.length; i++) 
			{
				for (k=0; k<document.forms[i].length; k++) 
				{
					el = document.forms[i].elements[k];    
					if (el.type == "select-one" && el.style.visibility == 'hidden')
						el.style.visibility = 'visible';
				}
			}
		}


		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 divDisplay(id, act) 
		{
			selectBoxVisible();

			document.getElementById(id).style.display = act;
		}

		function hideSideView() 
		{
			if (document.getElementById("nameContextMenu"))
				divDisplay ("nameContextMenu", 'none');
		}

		var clickAreaCheck = false;
		document.onclick = function() 
		{
			if (!clickAreaCheck) 
				hideSideView();
			else 
				clickAreaCheck = false;
		}
	}
	// 여기까지는 sideview.js와 동일하므로 생략 가능
}

