/***************************************************************************************************/
/** 서브외부참조파일초기화
*/
function initExternalRefSub(){
	//*.css
	document.writeln('<link rel="stylesheet" type="text/css" href="/share/css/sub.css?'+nowString+'">');
	document.writeln('<link rel="stylesheet" type="text/css" href="/share/css/board.css?'+nowString+'">');
	document.writeln('<link rel="stylesheet" type="text/css" href="/share/css/content.css?'+nowString+'">');
	//*.js
	document.writeln('<script type="text/javascript" src="/share/js/sidemenu.js?'+nowString+'"></'+'script>');//부메뉴
}
initExternalRefSub();
/***************************************************************************************************/
//서브용함수

function onLocation(contentId) {
	var obj = document.getElementById(contentId);
	if(obj) {
		var objLastChild = obj.lastChild;
		if(objLastChild){
			while(objLastChild.nodeName!="A") objLastChild = objLastChild.previousSibling;
			//alert(objLastChild.nodeName);
			objLastChild.className = "on";
		}
	}
}

/** 메뉴 목록 클릭 이벤트할당
* author: myshin
* update: 2008.09.02
* desc: li의 첫번째 자식 onclick 이벤트 할당하여 li 에 className="on" 지정.
* 여러 페이지일 경우 활성메뉴id 에 className="on" 지정.
* 원래 코드에 a요소 있었다면 href 로 이동하고, 아니면 이동안함.
* 한페이지일 경우 contentGroupId 존재하지 않으면 현재 위치 활성.
* 콘텐츠그룹id 있지만 외부링크일 경우 return false; 실행 안함.
* ex) initClickOn("메뉴그룹id");//한페이지, 메뉴그룹안에 콘텐츠그룹 포함.
* ex) initClickOn("메뉴그룹id","활성메뉴id");//여러페이지 현재메뉴 활성. 한페이지시 클릭하면 해당 콘텐츠로 이동
* ex) initClickOn("메뉴그룹id","활성메뉴id","콘텐츠그룹id");//한페이지, 메뉴와 콘텐츠그룹 분리.
*/
function initClickOn(menuGroupId,onMenuId,contentGroupId) {
	var objArr = document.getElementById(menuGroupId).getElementsByTagName("li");
	var contentObj = getElementsByClassName(contentGroupId);//함수필요(domscript.js)
	var myUriRef = getUriRef(location.href);//함수필요(myshin.js)
	var contentObjActive = document.getElementById(myUriRef);
	contentObjActive = (contentObjActive)? contentObjActive : contentObj[0];//Uri참조없으면첫번째를현재위치로
	var onFlag = false;//활성메뉴id 와 같은 메뉴id 가 있는지 표시.
	for(var i=0;i<objArr.length;i++){
		var objLi=objArr[i];
		var clickObj=objLi.getElementsByTagName("*")[0];
		if(clickObj.tagName!="A"){//2008.03.21.a요소가아니면
			var returnFlag = false;//retrun false;//href="#" 링크로 이동안함.
			var targetNode = clickObj;
			var newNode = document.createElement("a");
			newNode.href="#";//href가 있어야 IE,FF에서[Tab]이지나감. Op는[A]키로 링크(a, area) 이동가능.
			objLi.insertBefore(newNode,targetNode);
			newNode.appendChild(targetNode);
			clickObj = newNode;
		}else{//원래코드에a요소가있으면
			var returnFlag = (contentGroupId)? false: true;
		}
		if(contentObj[i]) contentObj[i].style.display="none";
		var objAUriRef = getUriRef(clickObj.href);//함수필요(myshin.js)
		if(contentObjActive){
			if(objAUriRef==contentObjActive.id){//현재위치활성
				contentObjActive.style.display="block";
				objArr[i].className="on";
				onFlag = true;
			}
		}
		menuClick = function(){
			for(var i=0;i<objArr.length;i++){
				objArr[i].className="";
				if(contentObj[i]) contentObj[i].style.display="none";
			}
			this.parentNode.className="on";
			var thisAUriRef = getUriRef(this.href);//함수필요(myshin.js)
			var contentObjActive = document.getElementById(thisAUriRef);
			if(contentObjActive) contentObjActive.style.display="block";
			var thisAUriPage = getUriPage(this.href);//함수필요(myshin.js)
			var myUriPage = getUriPage(location.href);//함수필요(myshin.js)
			var outLink = (thisAUriPage==myUriPage)? false: true;
			if(!outLink) return returnFlag;
		}
		if(objLi.id==onMenuId){//여러 페이지일 경우 현재위치 메뉴 활성
			objLi.className="on";
			onFlag = true;
		}
		clickObj.onclick = menuClick;
	}
	if((!onMenuId||!onFlag)&&objArr[0]){//한 페이지일 때 초기화. 활성id가없고 li가 존재할 때만 실행. 또는 활성메뉴id 와 같은 메뉴id 가 없을 경우 추가.
		objArr[0].className="on";
	}
}
/** URI#참조리턴
* amender : myshin
* update : 2008.09.02
* desc : ?ctabm=1#boardtemplate1 경우 "boardtemplate1" 를 리턴.
* ex) getUriRef(this.href);
*/
function getUriRef(uri){
	var myUriRef = uri.slice(uri.indexOf("#")+1,uri.length);
	return myUriRef;
}
function getUriPage(uri){
	var endIdx = uri.indexOf("#");
	endIdx = (endIdx!=-1)? endIdx : uri.length;
	var myUriRef = uri.slice(0,endIdx);
	return myUriRef;
}

function getElementsByClassName(clsName) { 
var arr = new Array(); 
	var elems = document.getElementsByTagName("*");
	for ( var i = 0; ( elem = elems[i] ); i++ ) {
		if ( elem.className == clsName ) {
			arr[arr.length] = elem;
		}
	}
	return arr;
}

/***************************************************************************************************/
/** 부메뉴
* author: myshin
* update: 2009.04.27
* desc: [IE]이미지 계속 로딩 오류 수정
* 2차메뉴 이미지요소로 대체기능 추가
* 2차메뉴 이미지, 텍스트 상관없이 사용
* side3Menu의 자식노드 중 끝li요소, 첫번째li요소에 class 부여.
* 2차메뉴 a 태그에 span 태그 추가시 코드에 span 요소가 있는지 확인
* ex) initSideMenu(<%=d2n%>,<%=d3n%>,<%=d1n%>);
*/
function initSideMenu(a,b,d1n) //2차3차메뉴보기
{
	for(var i=0;i<=20;i++){ //전체메뉴비활성
		var side2Menu = document.getElementById("side2m"+i);
		var side3Menu = document.getElementById("side3m"+i);
		if(side2Menu){ 
			var inn = (i<10)? "0"+i : ""+i;
			d1nn = (d1n<10)? "0"+d1n : ""+d1n;
			if(side2Menu.firstChild.firstChild.tagName != "IMG"){//이미지가아니면
				//side2Menu.firstChild.innerHTML = '<img src="/img/inc/sm/sm'+d1nn+'_'+inn+'.gif" alt="'+side2Menu.firstChild.innerHTML+'" />';//이미지요소로대체
			}
			side2MenuA = side2Menu.getElementsByTagName("a")[0];
			if(side2MenuA){
				if(side2MenuA.firstChild.tagName!="SPAN"&&side2MenuA.firstChild.tagName!="IMG"){
					side2MenuA.innerHTML = '<span>'+side2MenuA.innerHTML+'</span>';//디자인용
				}
			}
		}
		if(side3Menu){
			side3Menu.style.display="none";//비활성으로 수정함.
			var side3MenuLastChild = side3Menu.lastChild;//끝li
			if(side3MenuLastChild){
				while(side3MenuLastChild.nodeName!="LI") side3MenuLastChild = side3MenuLastChild.previousSibling;
				side3MenuLastChild.className = "last";
			}
			var side3MenuFirstChild = side3Menu.firstChild;//첫li
			if(side3MenuFirstChild){
				while(side3MenuFirstChild.nodeName!="LI") side3MenuFirstChild = side3MenuFirstChild.nextSibling;
				side3MenuFirstChild.className = "first";
			}
		}
	}
	if(a<10){ann="0"+a;} else {ann=""+a;}
	if(b<10){bnn="0"+b;} else {bnn=""+b;}
	side2MenuCurr = document.getElementById("side2m"+a);
	side3Menu = document.getElementById("side3m"+a);
	side3MenuCurr = document.getElementById("side3m"+a+"m"+b);
	if(side2MenuCurr){
		side2MenuCurr.firstChild.className="on";
		if(side2MenuCurr.firstChild.firstChild.tagName=="IMG"){//이미지일경우
			side2MenuCurr.firstChild.firstChild.src="/img/inc/sm/sm"+d1nn+"_"+ann+"on.gif";
			initSideMenuImg();
		}
	}
	if(side3Menu){ side3Menu.style.display="block"; side3Menu.style.fontWeight="normal"; }
	if(side3MenuCurr){
		side3MenuCurr.firstChild.className="on";
	}
	var side2M = document.getElementById("side2m");
}
function initSideMenuImg(){ //이미지메뉴일경우-마우스오버아웃함수할당
	for(var i=1;i<=20;i++){
		side2Menu = document.getElementById("side2m"+i);
		if ((side2Menu) && (side2Menu!=side2MenuCurr)) { //현재메뉴가아닐때
			side2MenuImg = side2Menu.getElementsByTagName("img")[0];
			if (side2MenuImg) {
				side2MenuImg.onmouseover = menuOver;
				side2MenuImg.onmouseout = menuOut;
			}
		}
	}
}
function menuAll(a) //메뉴전체보이기감추기
{
	for(var i=0;i<20;i++){
		side3Menu = document.getElementById("side3m"+i);
		if(side3Menu) side3Menu.style.display = a;
	}
}

/***************************************************************************************************/

function getpvr(url,wf,w,h) // PVR360도 : url(파노라마 이미지)은 같은 서버 존재해야함.
{
	document.writeln('<applet name="ptviewer" code="ptviewer.class" archive="ptviewer.jar" width="'+ w +'" height="'+ h +'">');
	document.writeln('<param name="file" value="ptviewer:0" />');
	document.writeln('<param name="view_x" value="0" />');
	document.writeln('<param name="view_y" value="0" />');
	document.writeln('<param name="view_width" value="'+ w +'" />');
	document.writeln('<param name="view_height" value="'+ h +'" />');
	document.writeln('<param name="wait" value="'+ wf +'" />'); //로딩중 이미지
	document.writeln('<param name="pano0" value="{file='+ url +'}" />');
	document.writeln('<param name="pan" value="0" />');
	document.writeln('<param name="quality" value="10" />');
	document.writeln('<param name="antialias" value="true" />');
	document.writeln('<param name="bgcolor" value="FFFFFF" />');
	document.writeln('<param name="auto" value="0.3" />');
	document.writeln('<param name="tilt" value="0" />');
	document.writeln('<param name="fov" value="90.0" />');
	document.writeln('<param name="pan" value="30.0" />');
	document.writeln('<param name="tilt" value="0" />');
	document.writeln('<param name="cursor" value="move" />');
	document.writeln('<param name="frame" value="" />');
	document.writeln('<param name="barcolor" value="000000" />');
	document.writeln('<param name="bar_x" value="35" />');
	document.writeln('<param name="bar_y" value="300" />');
	document.writeln('<param name="bar_width" value="460" />');
	document.writeln('<param name="bar_height" value="3" />');
	document.writeln('<div>Panorama VR 360도는 Java를 사용합니다.<br /><a href="/data/jre-1_5_0_10-windows-i586-p-s.exe">J2SE Runtime Environment</a>를 설치하십시오.</div>');
	document.writeln('</applet>');
}

/** 메뉴 목록 클릭 이벤트할당
* author: myshin
* update: 2008.09.02
* desc: li의 첫번째 자식 onclick 이벤트 할당하여 li 에 className="on" 지정.
* 여러 페이지일 경우 활성메뉴id 에 className="on" 지정.
* 원래 코드에 a요소 있었다면 href 로 이동하고, 아니면 이동안함.
* 한페이지일 경우 contentGroupId 존재하지 않으면 현재 위치 활성.
* 콘텐츠그룹id 있지만 외부링크일 경우 return false; 실행 안함.
* ex) initClickOn("메뉴그룹id");//한페이지, 메뉴그룹안에 콘텐츠그룹 포함.
* ex) initClickOn("메뉴그룹id","활성메뉴id");//여러페이지 현재메뉴 활성. 한페이지시 클릭하면 해당 콘텐츠로 이동
* ex) initClickOn("메뉴그룹id","활성메뉴id","콘텐츠그룹id");//한페이지, 메뉴와 콘텐츠그룹 분리.
*/
function initClickOn(menuGroupId,onMenuId,contentGroupId) {
	var objArr = document.getElementById(menuGroupId).getElementsByTagName("li");
	var contentObj = getElementsByClassName(contentGroupId);//함수필요(domscript.js)
	var myUriRef = getUriRef(location.href);//함수필요(myshin.js)
	var contentObjActive = document.getElementById(myUriRef);
	contentObjActive = (contentObjActive)? contentObjActive : contentObj[0];//Uri참조없으면첫번째를현재위치로
	var onFlag = false;//활성메뉴id 와 같은 메뉴id 가 있는지 표시.
	for(var i=0;i<objArr.length;i++){
		var objLi=objArr[i];
		var clickObj=objLi.getElementsByTagName("*")[0];
		if(clickObj.tagName!="A"){//2008.03.21.a요소가아니면
			var returnFlag = false;//retrun false;//href="#" 링크로 이동안함.
			var targetNode = clickObj;
			var newNode = document.createElement("a");
			newNode.href="#";//href가 있어야 IE,FF에서[Tab]이지나감. Op는[A]키로 링크(a, area) 이동가능.
			objLi.insertBefore(newNode,targetNode);
			newNode.appendChild(targetNode);
			clickObj = newNode;
		}else{//원래코드에a요소가있으면
			var returnFlag = (contentGroupId)? false: true;
		}
		if(contentObj[i]) contentObj[i].style.display="none";
		var objAUriRef = getUriRef(clickObj.href);//함수필요(myshin.js)
		if(contentObjActive){
			if(objAUriRef==contentObjActive.id){//현재위치활성
				contentObjActive.style.display="block";
				objArr[i].className="on";
				onFlag = true;
			}
		}
		menuClick = function(){
			for(var i=0;i<objArr.length;i++){
				objArr[i].className="";
				if(contentObj[i]) contentObj[i].style.display="none";
			}
			this.parentNode.className="on";
			var thisAUriRef = getUriRef(this.href);//함수필요(myshin.js)
			var contentObjActive = document.getElementById(thisAUriRef);
			if(contentObjActive) contentObjActive.style.display="block";
			var thisAUriPage = getUriPage(this.href);//함수필요(myshin.js)
			var myUriPage = getUriPage(location.href);//함수필요(myshin.js)
			var outLink = (thisAUriPage==myUriPage)? false: true;
			if(!outLink) return returnFlag;
		}
		if(objLi.id==onMenuId){//여러 페이지일 경우 현재위치 메뉴 활성
			objLi.className="on";
			onFlag = true;
		}
		clickObj.onclick = menuClick;
	}
	if((!onMenuId||!onFlag)&&objArr[0]){//한 페이지일 때 초기화. 활성id가없고 li가 존재할 때만 실행. 또는 활성메뉴id 와 같은 메뉴id 가 없을 경우 추가.
		objArr[0].className="on";
	}
}
/** URI#참조리턴
* amender : myshin
* update : 2008.09.02
* desc : ?ctabm=1#boardtemplate1 경우 "boardtemplate1" 를 리턴.
* ex) getUriRef(this.href);
*/
function getUriRef(uri){
	var myUriRef = uri.slice(uri.indexOf("#")+1,uri.length);
	return myUriRef;
}
function getUriPage(uri){
	var endIdx = uri.indexOf("#");
	endIdx = (endIdx!=-1)? endIdx : uri.length;
	var myUriRef = uri.slice(0,endIdx);
	return myUriRef;
}

function getElementsByClassName(clsName) { 
var arr = new Array(); 
	var elems = document.getElementsByTagName("*");
	for ( var i = 0; ( elem = elems[i] ); i++ ) {
		if ( elem.className == clsName ) {
			arr[arr.length] = elem;
		}
	}
	return arr;
}

/** 탭메뉴콘텐츠 - 공통적으로 사용
* author : myshin
* update : 2008.06.19
* desc : 이미지일때 소스 경로/이름 무관하게 수정. 앵커일때 스타일로 제어하게 수정.
* tab1m1, tab1c1 등 id 이름을 맞춰야함. 탭메뉴는 containerId+m일련번호, 탭콘텐츠는 containerId+m일련번호.
* 이전코드와의 호환을 위해 containerId 를 tab1 형태로 부여하고 tabOn(1,1); 방법으로 호출해도됨.
* 탭 개수에 맞게 루프 돌림.
* _imgtype 를 전역변수로 지정해서 내장함수(obj.src.replace)에서도 사용가능.
* ex) tabOn("탭그룹id","활성탭id"); tabOn("tab1",1);
*/
function tabOn(containerId,a) {
	var tabContainer = document.getElementById(containerId);
	var tabid = (tabContainer)? tabContainer.id : "tab"+containerId;//이전코드호환
	var tabTagAll = document.getElementById(tabid).getElementsByTagName("*");
	var tabSum = 0;//탭그룹안의 탭 개수 초기화
	for(var i=0;i<tabTagAll.length;i++){
		//if(tabTagAll[i].className=="tabcontent") tabContents++;//오류발생가능성이많아서안씀
		var where = tabTagAll[i].id.indexOf(containerId);
		if(where!=-1) tabSum++;
	}
	tabSum = tabSum/2;//루프로 찾은 수는 탭1개당 2개(메뉴와 콘텐츠)이므로 보정.
	for(var i=1;i<=tabSum;i++){//탭 개수만큼만 루트 돌린다.
		if(i<10){inn="0"+i;} else {inn=""+i;}
		tabMenu = document.getElementById(tabid+"m"+i);
		tabContent = document.getElementById(tabid+"c"+i);
		if (tabMenu) { //객체가존재하면
			if (tabMenu.tagName=="IMG") { //이미지일때
				_imgtype = tabMenu.src.substr(tabMenu.src.length-3,tabMenu.src.length-1);
				tabMenu.src = tabMenu.src.replace("on."+_imgtype, "."+_imgtype);
			}
			if (tabMenu.tagName=="A") { tabMenu.className=""; } //앵커일때
		}
		if (tabContent) { tabContent.style.display="none"; }
	}
	if(a<10){ann="0"+a;} else {ann=""+a;}
	tabMenu = document.getElementById(tabid+"m"+a);
	tabContent = document.getElementById(tabid+"c"+a);
//	alert(tabMenu.tagName);
	if (tabMenu) { //객체가존재하면
		if (tabMenu.tagName=="IMG") { //이미지일때
			_imgtype = tabMenu.src.substr(tabMenu.src.length-3,tabMenu.src.length-1);
			tabMenu.src = tabMenu.src.replace("."+_imgtype, "on."+_imgtype);
		}
		if (tabMenu.tagName=="A") { tabMenu.className="on"; } //앵커일때
	}
	if (tabContent) { tabContent.style.display="block"; }
	tabMore = document.getElementById(tabid+"more");
}

function getpvr(url,wf,w,h) // PVR360도 : url(파노라마 이미지)은 같은 서버 존재해야함.
{
	document.writeln('<applet name="ptviewer" code="ptviewer.class" archive="ptviewer.jar" width="'+ w +'" height="'+ h +'">');
	document.writeln('<param name="file" value="ptviewer:0" />');
	document.writeln('<param name="view_x" value="0" />');
	document.writeln('<param name="view_y" value="0" />');
	document.writeln('<param name="view_width" value="'+ w +'" />');
	document.writeln('<param name="view_height" value="'+ h +'" />');
	document.writeln('<param name="wait" value="'+ wf +'" />'); //로딩중 이미지
	document.writeln('<param name="pano0" value="{file='+ url +'}" />');
	document.writeln('<param name="pan" value="0" />');
	document.writeln('<param name="quality" value="10" />');
	document.writeln('<param name="antialias" value="true" />');
	document.writeln('<param name="bgcolor" value="FFFFFF" />');
	document.writeln('<param name="auto" value="0.3" />');
	document.writeln('<param name="tilt" value="0" />');
	document.writeln('<param name="fov" value="90.0" />');
	document.writeln('<param name="pan" value="30.0" />');
	document.writeln('<param name="tilt" value="0" />');
	document.writeln('<param name="cursor" value="move" />');
	document.writeln('<param name="frame" value="" />');
	document.writeln('<param name="barcolor" value="000000" />');
	document.writeln('<param name="bar_x" value="35" />');
	document.writeln('<param name="bar_y" value="300" />');
	document.writeln('<param name="bar_width" value="460" />');
	document.writeln('<param name="bar_height" value="3" />');
	document.writeln('<div>Panorama VR 360도는 Java를 사용합니다.<br /><a href="/data/jre-1_5_0_10-windows-i586-p-s.exe">J2SE Runtime Environment</a>를 설치하십시오.</div>');
	document.writeln('</applet>');
}