﻿// 사이트 메뉴 링크 처리
function SiteLink()
{
	var dwIndex			= null;
	var dwCheckCount	= 0
	if(arguments.length == 0)
		return

	var InputValue		= arguments[0];
	var strTarget			= arguments.length > 1 ? arguments[1].toLowerCase() : 'sub';
	var strType	 			= arguments.length > 2 ? arguments[2].toLowerCase() : 'index';
	var strAddUrl 			= arguments.length > 3 ? arguments[3].toLowerCase() : '';
	var blsRepaceUrl	= arguments.length > 4 ? arguments[4] : false;


	if(!isNaN(InputValue))
	{
		InputValue		= parseInt(InputValue, 10);

		if(dwIndex >= 0 && dwIndex < dwSiteMenuCount)
		{
			dwIndex	= InputValue;
		}
	}
	else
	{
		var arrLinkInfo		= InputValue.split('>');

		for(var i=0; i<dwSiteMenuCount; i++)
		{
			if(arrSiteMenu[i]._strName.toLowerCase() == arrLinkInfo[0].toLowerCase())
			{
				var bDepth			= 0;
				var dwParentIndex	= i;

				dwCheckCount	= 0;
				while(1==1)
				{
					if(bDepth == (arrLinkInfo.length - 1))
						break;

					if(arrSiteMenu[dwParentIndex]._dwChildCount > 0)
					{
						for(var j=0; j<arrSiteMenu[dwParentIndex]._dwChildCount; j++)
						{
							if(arrSiteMenu[dwParentIndex]._arrChildren[j]._strName.toLowerCase() == arrLinkInfo[bDepth + 1].toLowerCase())
							{
								dwParentIndex	= arrSiteMenu[dwParentIndex]._arrChildren[j]._dwIndex;
								bDepth++;

								break;
							}
						}
					}
					else
					{
						break;
					}

					if(dwCheckCount > dwSiteMenuCount)
					{
						break;
					}

					dwCheckCount++;
				}

				dwIndex		= dwParentIndex;
				break;
			}
		}
	}

	if(dwIndex == null)
	{
		for(var i=0; i<dwSiteMenuCount; i++)
		{
			if(arrSiteMenu[i]._strCode.toLowerCase() == InputValue.toLowerCase())
			{
				dwIndex		= i;
				break;
			}
		}
	}

	if(strType == 'index')
	{
		dwIndex			= dwIndex;
	}
	else if(strType == 'seq')
	{
		for(var i=0; i<dwSiteMenuCount; i++)
		{
			if(arrSiteMenu[i]._dwSeq == dwIndex)
			{
				dwIndex			= i;
				break;
			}
		}
	}


	if(dwIndex == null)
	{
		window.status	= 'ERROR : 선택한 메뉴정보가 없습니다.';
		return;
	}

	var blsMoveMenu		= true;
	var blsReturnValue		= false;

	if(strTarget.toLowerCase() == 'top')
	{
		blsMoveMenu		= false;
		blsReturnValue		= false;
	}
	else
	{
		if(g_dwMenuNowIndex)
		{
			var objNowMenu			= arrSiteMenu[g_dwMenuNowIndex];
			var objTargetMenu		= arrSiteMenu[dwIndex];

			if(objNowMenu._strFilePath == objTargetMenu._strFilePath)
			{
//				blsMoveMenu		= false;

				if(g_dwMenuNowIndex == dwIndex)
				{
					blsReturnValue	= fnSubMenuShowHide(dwIndex);
				}
				else if(objTargetMenu._dwChildCount > 0)
				{
					blsReturnValue	= fnSubMenuShowHide(dwIndex);
				}
			}
		}
	}


	// 페이지 링크 처리
	if(!blsReturnValue)
		fnSiteLinkProcess(dwIndex, strAddUrl, blsMoveMenu, blsRepaceUrl);
}



// 서브메뉴 숨기기/보이기 처리
function fnSubMenuShowHide(dwIndex)
{
	var blsReturnValue	= false;
	var objMenuDD		= fnGetObject('submenu_dd_'+ dwIndex);

	if(objMenuDD != null)
	{
		var strClassName	= objMenuDD.className ? objMenuDD.className : '';

		if(strClassName.search(/submenu_hidden/i) >= 0)
		{
			strClassName	= strClassName.replace(/submenu_hidden/gi, 'submenu_show');
		}
		else
		{
			if(strClassName.search(/submenu_show/i) >= 0)
			{
				strClassName	= strClassName.replace(/submenu_show/gi, 'submenu_hidden');
			}
			else
			{
				strClassName	+= ' submenu_hidden';
			}
		}

		objMenuDD.className		= strClassName;

		blsReturnValue		= true;
	}

	return blsReturnValue;
}



// 메뉴 링크 처리
function fnSiteLinkProcess(dwIndex, strAddUrl, blsMoveMenu, blsRepaceUrl)
{
	var objNowMenu		= arrSiteMenu[dwIndex];
	var strMenuType		= objNowMenu._strType;
	if(!blsRepaceUrl)
		blsRepaceUrl	= false;

	if(strAddUrl != '')
	{
		if(strAddUrl.substring(0, 1) == '&' ||strAddUrl.substring(0, 1) == '?')
		{
			strAddUrl		= strAddUrl.substring(1);
		}
		strAddUrl		= '&' + strAddUrl;
	}

	switch (strMenuType.toLowerCase())
	{
		//  미지정(아무작동 안함)
		case '':
		{
			break;
		}
		// HTML 페이지 로딩		
		case 'html':
		case 'board':
		case 'member':
		{
			if(blsMoveMenu)
			{
				var strUrl		= (objNowMenu._strFilePath.substring(objNowMenu._strFilePath.length - 1, objNowMenu._strFilePath.length) == '/' ? objNowMenu._strFilePath : objNowMenu._strFilePath + '/');
				strUrl			+= '';		//objNowMenu._strFileName
//xxx1
				// 메뉴 처리 방법
				if(g_bSiteMenuProcessType == 1)
				{
					if(blsRepaceUrl == false)
					{
						var strAddInfo		= objNowMenu._strTypeAdd;
						strAddInfo			= (strAddInfo != '' ? '&' : '') + (strAddInfo.substring(0, 1) == '?' || strAddInfo.substring(0, 1) == '&' ? strAddInfo.substring(1) : strAddInfo);
					}
					else
					{
						strAddInfo			= '';
					}

					location.href		= strUrl + (strUrl.search(/\?/) >= 0 ? '&' : '?') + 'menuindex='+ dwIndex + strAddInfo + strAddUrl;
				}
			}
			else
			{
				if(blsRepaceUrl == false)
				{
					var strAddInfo		= objNowMenu._strTypeAdd;
					strAddInfo			= (strAddInfo != '' ? '&' : '') + (strAddInfo.substring(0, 1) == '?' || strAddInfo.substring(0, 1) == '&' ? strAddInfo.substring(1) : strAddInfo);
				}
				else
				{
					strAddInfo			= '';
				}

				var strUrl		= (objNowMenu._strFilePath.substring(objNowMenu._strFilePath.length - 1, objNowMenu._strFilePath.length) == '/' ? objNowMenu._strFilePath : objNowMenu._strFilePath + '/');
				strUrl			+= '';		//objNowMenu._strFileName
				//location.href	= strUrl + (strUrl.search(/\?/) >= 0 ? '&' : '?') + 'menuindex='+ dwIndex + strAddInfo;

				window.open(strUrl + (strUrl.search(/\?/) >= 0 ? '&' : '?') + 'menuindex='+ dwIndex + strAddInfo + strAddUrl);
				//fnPageLoading(dwIndex, objNowMenu._strFilePath, objNowMenu._strFileName);
			}
			break;
		}

		case 'move':
		{
			// 다른 메뉴로 이동
			SiteLink(objNowMenu._strTypeAdd);
			break;
		}
		
		case 'blank':
		{
			// 새창 띄우기
			if(blsRepaceUrl == false)
			{
				var strAddInfo		= objNowMenu._strTypeAdd;
				strAddInfo			= (strAddInfo != '' ? '?' : '') + (strAddInfo.substring(0, 1) == '?' || strAddInfo.substring(0, 1) == '&' ? strAddInfo.substring(1) : strAddInfo);
			}
			else
			{
				strAddInfo			= '';
			}

			var strPath		= (objNowMenu._strFilePath.substring(objNowMenu._strFilePath.length - 1, objNowMenu._strFilePath.length) == '/' ? objNowMenu._strFilePath : objNowMenu._strFilePath + '/') + objNowMenu._strFileName;
			window.open(strPath + strAddInfo + strAddUrl);
			break;
		}
		
		case 'popup':
		{
			// 팝업으로 띄우기
			var strPath			= objNowMenu._strFilePath + objNowMenu._strFileName;
			var strAddInfo		= objNowMenu._strTypeAdd;
			var arrAddInfo		= strAddInfo.replace(/( \,)|(\, )/gi, ',').split(',');

			var strWindowId	= arrAddInfo.length > 1 ? arrAddInfo[0] : objNowMenu._strName;
			strAddInfo		= '';
			strAddInfo		+= arrAddInfo.length > 2 ? 'width='+ arrAddInfo[1] : '';
			strAddInfo		+= arrAddInfo.length > 3 ? 'height='+ arrAddInfo[2] : '';
			strAddInfo		+= arrAddInfo.length > 4 ? 'resizable='+ arrAddInfo[3] : '';
			strAddInfo		+= arrAddInfo.length > 5 ? 'scrollbars='+ arrAddInfo[4] : '';
			window.open(strPath + strAddUrl, strWindowId, strAddInfo);
			break;
		}

		case 'direct':
		{
			var strPath			= objNowMenu._strFilePath + escape(objNowMenu._strFileName);
			location.href		= strPath;
			break;
		}
	}
}



// 페이지 내용 가지고오기
function fnPageLoading(dwIndex, strFilePath, strFileName)
{
	if(g_strLoadedFilePath == strFilePath && g_strLoadedFileName == strFileName)
		return;

	fnGetPageSource(strFilePath, strFileName, false, 0, 'fnPrintPageContent('+ dwIndex +',내용)');

	g_strLoadedFilePath	= strFilePath;
	g_strLoadedFileName	= strFileName;
}


// 페이지 내용 출력
function fnPrintPageContent(dwIndex, strSource)
{
	var strPrintArea	= g_strPageContentPrintArea ? g_strPageContentPrintArea : '';
	var objPrintArea	= fnGetObject(strPrintArea);

	if(objPrintArea)
	{
		objPrintArea.innerHTML	= strSource;

		// 타이틀 출력 및 페이지 경로 출력
		fnPageTitleChange(dwIndex);
		fnPagePathChange(dwIndex);
	}
	else
	{
		window.status	= 'ERROR : 페이지 내용을 출력할 영역이 없습니다.';
	}
}


// 페이지 제목 변경
function fnPageTitleChange(dwIndex)
{
	if(dwSiteMenuCount <= dwIndex)
		return;


	var strName			= arrSiteMenu[dwIndex]._strName;
	var strPrintArea	= g_strPageTitlePrintArea ? g_strPageTitlePrintArea : '';
	var objPrintArea	= fnGetObject(strPrintArea);
	if(objPrintArea != null)
	{
		objPrintArea.innerHTML	= strName;
	}
}


// 페이지 경로 출력
function fnPagePathChange(dwIndex)
{
	var strPrintArea	= g_strPagePathPrintArea ? g_strPagePathPrintArea : '';
	var objPrintArea	= fnGetObject(strPrintArea);
	if(objPrintArea == null)
		return;

	var strFirstMark	= g_strPagePathFirstMark ? g_strPagePathFirstMark : '';
	var strHomeString	= g_strPagePathHomeString ? g_strPagePathHomeString : 'Home';
	var strSplitString	= g_strPagePathSplitString ? g_strPagePathSplitString : '<';

	var strPagePath		= null;
	strPagePath			= '<strong>'+ arrSiteMenu[dwIndex]._strName +'</strong>';

	var dwParentIndex	= dwIndex;	//arrSiteMenu[dwIndex]._dwParentIdex;
	while(1==1)
	{
		dwParentIndex	= arrSiteMenu[dwParentIndex]._dwParentIdex;
		if(dwParentIndex < 0)
			break;

		strPagePath		= '<a href="javascript:SiteLink('+ dwParentIndex +')">'+ arrSiteMenu[dwParentIndex]._strName +'</a>' + strSplitString + strPagePath;

		if(dwParentIndex == arrSiteMenu[g_dwMenuRootIndex]._dwParentIdex)
			break;
	}

	strPagePath		= strFirstMark + '<a href="javascript:SiteLink('+ g_dwPageIndexHome +')">'+ strHomeString +'</a>'+ strSplitString + strPagePath;

	objPrintArea.innerHTML	= strPagePath;
}


// 메뉴 경로 출력
function fnMenuPathChange(strPrintArea, dwMenuIndex)
{
	var objPrintArea	= fnGetObject(strPrintArea);
	if(objPrintArea == null)
		return;

	var dwIndex		= -1;

	for(var i=0; i<dwSiteMenuCount;i++)
	{
		if(arrSiteMenu[i]._dwSeq == dwMenuIndex)
		{
			dwIndex			= i;
			break;
		}
	}

	var strFirstMark		= '';
	var strSplitString		= g_strPagePathSplitString ? g_strPagePathSplitString : '>';

	var strPagePath		= null;
	strPagePath			= '<a href="javascript:SiteLink('+ dwIndex +')">'+ arrSiteMenu[dwIndex]._strName +'</a>';

	var dwParentIndex	= dwIndex;	//arrSiteMenu[dwIndex]._dwParentIdex;
	while(1==1)
	{
		dwParentIndex	= arrSiteMenu[dwParentIndex]._dwParentIdex;
		if(dwParentIndex < 0)
			break;

		strPagePath		= '<a href="javascript:SiteLink('+ dwParentIndex +')">'+ arrSiteMenu[dwParentIndex]._strName +'</a>' + strSplitString + strPagePath;

		if(dwParentIndex == g_dwMenuRootIndex)
			break;
	}

	objPrintArea.innerHTML	= strPagePath;
}


// 페이지 타이틀 이미지 변경
function fnPageTitleImageChange(dwIndex)
{
	var strPrintArea	= g_strPageTitleImagePrintArea ? g_strPageTitleImagePrintArea : '';
	var objPrintArea	= fnGetObject(strPrintArea);

	if(objPrintArea != null)
	{
		//var strMenuPath	= arrSiteMenu[dwIndex]._strFilePath ? arrSiteMenu[dwIndex]._strFilePath : '00';
		var strMenuPath	= arrSiteMenu[dwIndex]._strFileName ? arrSiteMenu[dwIndex]._strFileName.substring(0, 2) : '00';
		
		strMenuPath		= 'pagetitle'+ strMenuPath.replace(/\D/g, '');

		objPrintArea.className	+= ' '+ strMenuPath;
	}
}


//
function fnSubmenuTitleChange(dwRootIndex, dwNowIndex)
{
	if((dwRootIndex < 0 || dwRootIndex > dwSiteMenuCount)
		|| (dwNowIndex < 0 || dwNowIndex > dwSiteMenuCount))
	{
		return;
	}

	var strPrintArea	= g_strSubmenuTitlePrintArea ? g_strSubmenuTitlePrintArea : '';
	var objPrintArea	= fnGetObject(strPrintArea);

	if(objPrintArea != null)
	{
		var strMenuName		= '';
		var dwParentIndex	= dwNowIndex;
		var dwRootDepth		= arrSiteMenu[dwRootIndex]._bDepth;

/*
		while(1==1)
		{
			if(dwParentIndex < 0)
				break;

			if(arrSiteMenu[dwParentIndex]._bDepth <= (dwRootDepth + 1))
			{
				strMenuName		= arrSiteMenu[dwParentIndex]._strName;
				break;
			}
			else
			{
				dwParentIndex	= arrSiteMenu[dwParentIndex]._dwParentIdex;
			}
		}

		if(strMenuName != '' && strMenuName.length <= 5)
		{
			var strBuf	= '';
			for(var i=0; i<strMenuName.length; i++)
			{
				strBuf	+= strMenuName.substring(i, i + 1) +'/';
			}

			strMenuName		= strBuf.substring(strBuf.length - 1, strBuf.length) == '/' ? strBuf.substring(0, strBuf.length - 1) : strBuf;
		}
*/
		strMenuName		= arrSiteMenu[dwRootIndex]._strName;

		if(strMenuName.length <= 7)
		{
			objPrintArea.innerHTML	= '<div class="title1">'+ strMenuName + '</div>';
		}
		else if(strMenuName.length == 10)
		{
			strMenuName				= strMenuName.substring(0, 4) + '<br>'+ strMenuName.substring(4);
			objPrintArea.innerHTML	= '<div class="title2">'+ strMenuName + '</div>';
		}else if(strMenuName.length == 9)
		{
			strMenuName				= strMenuName.substring(0, 3) + '<br>'+ strMenuName.substring(3);
			objPrintArea.innerHTML	= '<div class="title2">'+ strMenuName + '</div>';
		}
		else if(strMenuName.length == 8)
		{
			strMenuName				= strMenuName.substring(0, 4) + '<br>'+ strMenuName.substring(4);
			objPrintArea.innerHTML	= '<div class="title2">'+ strMenuName + '</div>';
		}
		else if(strMenuName.length == 8)
		{
			strMenuName				= strMenuName.substring(0, 4) + '<br>'+ strMenuName.substring(4);
			objPrintArea.innerHTML	= '<div class="title2">'+ strMenuName + '</div>';
		}
		else
		{
			strMenuName				= strMenuName.substring(0, 7) + '<br>'+ strMenuName.substring(7);
			objPrintArea.innerHTML	= '<div class="title2">'+ strMenuName + '</div>';
		}
	}
}


var g_blsPrintDepth		= true;
function fnPrintSubMenuDepth(dwIndex)
{
	if(!g_blsPrintDepth)
		return;

	try
	{
		var bPrintMenuDepth		= g_bPrintSubMenuDepth ? g_bPrintSubMenuDepth : -1;	
	}
	catch (e)
	{
		var bPrintMenuDepth		= -1;
	}

	if(bPrintMenuDepth < 0)
	{
		return;
	}

	if(dwIndex >= 0)
	{
		if(arrSiteMenu[dwIndex])
		{
			if(arrSiteMenu[dwIndex]._bDepth >= bPrintMenuDepth)
			{
				var objPrintArea		= null;

				for(var i=(g_arrSubMenuPrintAreaDepth6.length - 1); i>= 0; i--)
				{
					var objPrintArea		= fnGetObject(g_arrSubMenuPrintAreaDepth6[i]);

					if(objPrintArea != null)
					{
						break;
					}
				}

				if(objPrintArea != null)
				{
					if(arrSiteMenu[dwIndex]._bDepth == (bPrintMenuDepth - 1))
					{
						var objParent		= arrSiteMenu[dwIndex];
					}
					else
					{
						var objParent		= arrSiteMenu[arrSiteMenu[dwIndex]._dwParentIdex];
					}

					if(objPrintArea.tagName.toLowerCase() == 'div')
					{
						var strPrintHtml	= '';

						if(objParent._dwChildCount > 1)
						{
							var dwCount		= 0;
							strPrintHtml		= '<ol>\n';
							for(var i=0; i<objParent._dwChildCount; i++)
							{
								if(objParent._arrChildren[i]._bUsed == 1 && objParent._arrChildren[i]._bShow == 1)
								{
									if(objParent._arrChildren[i]._dwIndex == dwIndex)
										strPrintHtml		+= '<li class="nowmenu">'+ objParent._arrChildren[i]._strName +'</li>\n';
									else
										strPrintHtml		+= '<li><a href="javascript:SiteLink('+ objParent._arrChildren[i]._dwIndex +');">'+ objParent._arrChildren[i]._strName +'</a></li>\n';

									dwCount++;
								}
							}
							strPrintHtml		+= '</ol>\n';

							if(dwCount > 0)
							{
								objPrintArea.innerHTML		= strPrintHtml;
								objPrintArea.style.display	 = 'block';
							}
						}
					}
					else
					{
						if(objParent._dwChildCount > 1)
						{
							var nLength	= objPrintArea.options.length;

							for(var i=0; i<nLength; i++)
							{
								objPrintArea.removeChild(objPrintArea.children((nLength - 1) - i));
							}

							for(var i=0; i<objParent._dwChildCount; i++)
							{
								var objOptioin	= document.createElement('OPTION');
								objOptioin.value	= objParent._arrChildren[i]._dwIndex;
								objOptioin.text		= objParent._arrChildren[i]._strName;

								if(objParent._arrChildren[i]._dwIndex == dwIndex)
								{
									objOptioin.selected		= true;
								}
								objPrintArea.add(objOptioin);
							}

							objPrintArea.onchange	= function (){SiteLink(this.options[this.options.selectedIndex].value);};
						}
					}
				}
			}
		}
	}
}