/***************************************************************************************************/
/** 외부참조파일초기화
* author: myshin
* update: 2008.05.08
* desc: 외부 참조 파일(*.css *.js)을 캐시에서 안불러오게 한다.
* Disable JavaScript 일 경우에 *.css 의 display: none; 으로 인한 콘텐츠를 이용할 수 없는 거 해결.
* ex) initNow(); initExternalRef();
*/
var nowString = "";//현재시각 전역변수
function initNow(){//현재시각 할당
	var now = new Date();
	nowString = now.toString();
	while(nowString.indexOf(" ")!=-1||nowString.indexOf(":")!=-1||nowString.indexOf("+")!=-1){
		nowString = nowString.replace(" ", "");
		nowString = nowString.replace(":", "");
		nowString = nowString.replace("+", "");
	}
}
initNow();//론칭후!!주석처리필수!!

function initExternalRef(){
	//*.css
	document.writeln('<link rel="stylesheet" type="text/css" href="/share/css/all.css?'+nowString+'">');
	//*.js
	//document.writeln('<script type="text/javascript" src="/share/js/topmenu.js?'+nowString+'"></'+'script>');//주메뉴여기에
	document.writeln('<script type="text/javascript" src="/share/js/mfloater.js?'+nowString+'"></'+'script>');//날개플로팅
	document.writeln('<script type="text/javascript" src="/share/js/mposition.js?'+nowString+'"></'+'script>');//이전다음위치보기
	document.writeln('<script type="text/javascript" src="/share/js/iezn_embed_patch.0.43.js"></'+'script>');//ActiveX패치
}
initExternalRef();

/***************************************************************************************************/
//공용함수

//IE Flicker Bug 해결
(function(){
	/*Use Object Detection to detect IE6*/
	var  m = document.uniqueID /*IE*/
	&& document.compatMode  /*>=IE6*/
	&& !window.XMLHttpRequest /*<=IE6*/
	&& document.execCommand ;
	try{
		if(!!m){ m("BackgroundImageCache", false, true) /* = IE6 only */ }
	}catch(oh){};
})();

//IE6 png 사용
//ex).png24 { tmp:expression(setPng24(this)); }
function setPng24(obj) {
		obj.width=obj.height="1";
		obj.className=obj.className.replace(/\bpng24\b/i,"");
		obj.style.filter=	"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src +"',sizingMethod='image');"
		obj.src=""; 
		return "";
}

//보이기감추기 여러개
//ex) displayOn('id1','id2'); displayOff('id1','id2'); //인수 개수에 상관없다.
function displayOn() {//보이기
	var i,j,a=displayOn.arguments;
	for(var i=0;i<a.length;i++){
		var obj = document.getElementById(a[i]);
		if(obj){ obj.style.display = "block"; }
	}
}
function displayOff() {//감추기
	var i,j,a=displayOff.arguments;
	for(var i=0;i<a.length;i++){
		var obj = document.getElementById(a[i]);
		if(obj){ obj.style.display = "none"; }
	}
}

//하나만 보이기
//ex) displayOnly('id문자열공통부분',전체수,현재순번); //현재순번의 객체만 보여준다.
//전체수 인수를 받지 않고 조건에 만족하는 객체배열.length 로 계산할 수 있지만
//함수 실행시마다 배열을 생성하는 것은 성능저하를 초래하지 않을까?
//
function displayOnly(coId,num,curr) {
	for(var i=0;i<=num;i++){
		var obj = document.getElementById(coId+i);
		if(obj){ obj.style.display = "none"; }
	}
	var obj = document.getElementById(coId+curr);
	if(obj){ obj.style.display = "block"; }
}

//활성상태표시 v2008.04.02
//ex) activeOnly('id문자열공통부분',전체수,현재순번); //현재순번의 객체만 활성화(class 에 "on" 추가)
function activeOnly(coId,num,curr) {
	var aa=0;
	var re=/(^|\s)on$/;//정규표현식 "on", " on" 둘다 매칭. "onx", " onx", "xonx", "xon", "xon " 형태는 배제.
	for(var i=1;i<=num;i++){//off상태로초기화
		var obj = document.getElementById(coId+i);
		if(obj){ if(re.test(obj.className)) obj.className = obj.className.replace(re,"");	}
	}
	var obj = document.getElementById(coId+curr);
	if(obj){ obj.className = (obj.className)? obj.className+" on" : "on"; }
}

/** 셀렉트롤
* author : myshin
* update : 2008.08.08
* desc : <select><option> 처럼 동작. CSS로 디자인 가능. 이동버튼 없어도 접근성 우수함.
* 클릭시 option 메뉴 감춤.
* ex)
<div id="selectId">
<h3>관련 사이트 바로가기</h3>
<ul id="optionId">
<li><a href="http://naver.com" onclick="window.open(this.href); return false;" title="새 창에서 열림">네이버 [새 창]</a></li>
<li><a href="http://naver.com">네이버</a></li>
</ul>
</div>
<script type="text/javascript">initSelect("selectId","optionId");</script><noscript><p>JavaScript</p></noscript>
*/
function initSelect(selectId,optionId) { 
 	var selectEl = document.getElementById(selectId);
	var selectFirst = selectEl.getElementsByTagName("*")[0];
	if(selectFirst.tagName!="a")	selectFirst.innerHTML = "<a href='#'><span>"+selectFirst.innerHTML+"</span></a>";
	selectEl.innerHTML = "<div>"+selectEl.innerHTML+"</div>";
 	var selectD = selectEl.getElementsByTagName("div")[0];
	var selectAarr = selectEl.getElementsByTagName("a");
 	var optionEl = document.getElementById(optionId);
	optionEl.style.display = "none";//css 에서 "none"하면 접근성 문제 있어 js 로 처리.
	//selectEl.onmouseover = selectAarr[0].onfocus = function selectOver(){//마우스오버시활성
	selectAarr[0].onclick = optionEl.onmouseover = function selectOver(){//클릭시활성
		selectD.className = "on";
		optionEl.style.display = "block";
		//selectD.onmouseover = selectOver;
		return false;
	}
	selectEl.onmouseout = selectAarr[selectAarr.length-1].onblur = function selectOut(){//비활성
		selectD.className = "";
		optionEl.style.display = "none";
	}
	for(var i=1;i<=selectAarr.length-1;i++){// i=1부터 적용주의
		if(typeof selectAarr[i].onclick == "function") {
			selectAarr[i].oldonclick = selectAarr[i].onclick;//전역변수로지정
		}
		selectAarr[i].onclick = function(){
			selectAarr[0].innerHTML = "<span>"+this.innerHTML+"</span>";//선택된태그를표시
			if(this.oldonclick) {//onclick 이 있을 경우에만
				this.oldonclick();
				optionEl.style.display = "none";
				return false;
			}
		}
	}
}

/** 전체메뉴초기화
* author: myshin
* update: 2008.08.19
* desc: FF, Op, Sf 키보드 운용 위해 닫기버튼이전에 위치해야 함.
* FF 는 본인 display: none; 일 경우 포커스 잃어버리므로 닫기 버튼에 return false;는 지운다.
* id, display 속성 삭제, IE외 동작 오류(2차메뉴 ul 요소 노드 못 찾는) 해결.
* ex) initAllMenu("전체메뉴펼침레이어id");
*/
function initAllMenu(id){
	var allm = document.getElementById(id);
	allm.style.display="none";
	var tm = document.getElementById("topmenu");
	var newNode = document.createElement("ul");
	var targetNode = allm.lastChild;
	var allmUl = allm.insertBefore(newNode,targetNode);
	if(tm){
		var tmUl = tm.getElementsByTagName("ul")[0];
		allmUl.innerHTML = tmUl.innerHTML;
		var allmUlss = allmUl.childNodes;
		for(var i=0;i<allmUlss.length;i++){
			if(allmUlss[i].tagName=="LI") allmUlss[i].className = allmUlss[i].firstChild.id;//#allmenu #allm ul li 클래스명 할당.
		}
		var allmUlss = allmUl.getElementsByTagName("*");
		for(var i=0;i<allmUlss.length;i++){
			if(allmUlss[i].nodeName=="IMG") allmUlss[i].parentNode.innerHTML=allmUlss[i].alt;//이미지를텍스트로
		}
		//요소 변경 코드(위 코드 img 삭제)를 먼저 수행 후 속성 변경을 위해 다시 배열 생성.
		var allmUlss = allmUl.getElementsByTagName("*");
		for(var i=0;i<allmUlss.length;i++){
			if(allmUlss[i].id){
				allmUlss[i].id="";
				allmUlss[i].style.display="";//initTopMenu(); 에서 부여된 display 속성 삭제
			}
		}
	}
	//alert(allm.innerHTML);
}

/***************************************************************************************************/
/** 주메뉴
* author: myshin
* update: 2008.09.18
* desc: 경로 구애 없이 사용(이미지요소로대체 부분은 제외)
* 이미지, 텍스트 상관없이 사용
* 외부JS 분리할 수 있게 수정함.
* initTopMenu 함수 안에서 현재 위치 1, 2차메뉴 번호 전역변수로 초기화, 메뉴활성 초기화 실행
* 이미지대치기법으로 처음 로딩시 text 보이다가 사라지는거 수정.
* xhtml코드가 원래부터 img 일때는 이미지대치기법 수행안함.
* 2차메뉴 a 태그에 span 태그 추가
* top2Menu의 자식노드 중 끝li요소, 첫번째li요소에 class 부여.
* ex) initTopMenu(<%=d1n%>,<%=d2n%>);
*/
function top2menuView(a) //2차메뉴보기
{
	if(this.id){
		eidStr = this.id;
		eidNum=eidStr.substring(eidStr.lastIndexOf("m",eidStr.length)+1,eidStr.length);
		a = parseInt(eidNum);
	}
	top2menuHideAll();
	top1Menu = document.getElementById("top1m"+a);
	top2Menu = document.getElementById("top2m"+a);
	ann = (a<10)? "0"+a : ""+a;
	if(a==0){ //메인은2차메뉴활성화안함
	}else{
		if (top1Menu){ top1Menu.parentNode.className="on";
			var imgEl= top1Menu.childNodes[0]
			if(imgEl.src){
				_imgtype = imgEl.src.substr(imgEl.src.length-3,imgEl.src.length-1);
				var where = imgEl.src.indexOf("on."+_imgtype,0);
				if(where==-1) imgEl.src = imgEl.src.replace("."+_imgtype,"on."+_imgtype);
			}
			if (top2Menu) { top2Menu.style.display = "inline"; }
		}
	}
}
function top2menuHide(a) //2차메뉴감추기
{
	if(this.id){
		eidStr = this.id;
		eidNum=eidStr.substring(eidStr.lastIndexOf("m",eidStr.length)+1,eidStr.length);
		a = parseInt(eidNum);
	}
	//top2menuHideAll();
	top1Menu = document.getElementById("top1m"+a);
	top2Menu = document.getElementById("top2m"+a);
	top1MenuCurr = document.getElementById("top1m"+d1n);
	top2MenuCurr = document.getElementById("top2m"+d1n);
	ann = (a<10)? "0"+a : ""+a;
	if (top1Menu) { 	top1Menu.parentNode.className=""	;
		var imgEl= top1Menu.childNodes[0]
		if(imgEl.src){
			_imgtype = imgEl.src.substr(imgEl.src.length-3,imgEl.src.length-1);
			var where = imgEl.src.indexOf("on."+_imgtype,0);
			if(where!=-1) imgEl.src = imgEl.src.replace("on."+_imgtype,"."+_imgtype);
		}
		if(top2Menu){ 
			top2Menu.style.display = "none";
		}
		if(top1MenuCurr){ top1MenuCurr.parentNode.className="on";
			var imgEl= top1MenuCurr.childNodes[0]
			if(imgEl.src){
				_imgtype = imgEl.src.substr(imgEl.src.length-3,imgEl.src.length-1);
				var where = imgEl.src.indexOf("on."+_imgtype,0);
				if(where==-1) imgEl.src = imgEl.src.replace("."+_imgtype,"on."+_imgtype);
			}
		}
		if (top2MenuCurr) { top2MenuCurr.style.display = "inline"; }
	}
}
function top2menuHideAll() //2차메뉴모두감추기
{
	top1menuEl = document.getElementById("top1menu").childNodes;
	for (i=1;i<=11;i++)//메뉴삭제시 1차메뉴수가 안맞아 top1menuEl.length 대신 숫자로 넣음
	{
		top1Menu = document.getElementById("top1m"+i);
		top2Menu = document.getElementById("top2m"+i);
		inn = (i<10)? "0"+i : ""+i;
		if(top1Menu){ top1Menu.parentNode.className="";
			var imgEl= top1Menu.childNodes[0]
			if(imgEl.src){
				_imgtype = imgEl.src.substr(imgEl.src.length-3,imgEl.src.length-1);
				var where = imgEl.src.indexOf("on."+_imgtype,0);
				if(where!=-1) imgEl.src = imgEl.src.replace("on."+_imgtype,"."+_imgtype);
			}
			if (top2Menu) { top2Menu.style.display = "none"; }
		}
	}
}
function initTopMenu(d1,d2) {//1,2차메뉴초기화,마우스키보드이벤트할당
	d1n=d1; d2n=d2;//전역변수로설정
	d1nn = (d1n<10)? "0"+d1n : ""+d1n;
	d2nn = (d2n<10)? "0"+d2n : ""+d2n;
 	top1menuEl = document.getElementById("top1menu").childNodes;
	for (i=1;i<=11;i++)//메뉴삭제시 1차메뉴수가 안맞아 top1menuEl.length 대신 숫자로 넣음
	{
		top1Menu = document.getElementById("top1m"+i);
		top2Menu = document.getElementById("top2m"+i);
		if (top1Menu) {
			//var spanEl = document.createElement("span");//이미지대치기법용
			//top1Menu.insertBefore(spanEl,top1Menu.childNodes[0]);
			inn = (i<10)? "0"+i : ""+i;
			if(top1Menu.firstChild.tagName != "IMG"){//이미지가아니면
				top1Menu.innerHTML = '<img src="/img/inc/top1m'+inn+'.gif" alt="'+top1Menu.innerHTML+'" />';//이미지요소로대체
			}
			top1Menu.style.textIndent = "0";//스타일 원상태 복구.
			top1Menu.onmouseover = top1Menu.onfocus = top2menuView;
			top1Menu.onmouseout = top2menuHide;//onblur이벤트 제거 : IE에서 2차메뉴선택할 수 없어서..
			if (top2Menu) {
				top2Menu.style.display = "none";
				var top2MenuLastChild = top2Menu.lastChild;//끝li
				if(top2MenuLastChild){
					while(top2MenuLastChild.nodeName!="LI") top2MenuLastChild = top2MenuLastChild.previousSibling;
					top2MenuLastChild.className = "last";
				}
				var top2MenuFirstChild = top2Menu.firstChild;//첫li
				if(top2MenuFirstChild){
					while(top2MenuFirstChild.nodeName!="LI") top2MenuFirstChild = top2MenuFirstChild.nextSibling;
					top2MenuFirstChild.className = "first";
				}
				top2Menu.onmouseover = top2Menu.onfocus = top2menuView;
				top2Menu.onmouseout = top2Menu.onblur = top2menuHide;
				top2MenuAs = top2Menu.getElementsByTagName("a");
				if(top2MenuAs){
					for(j=0;j<top2MenuAs.length;j++){
						//top2MenuAs[j].innerHTML = '<span>'+top2MenuAs[j].innerHTML+'</span>';//디자인용
					}
				}
			}
		}
	}
	//2차메뉴활성
	top2MenuCurrAct = document.getElementById("top2m"+d1+"m"+d2);
	if (top2MenuCurrAct) { top2MenuCurrAct.getElementsByTagName("a")[0].className="on"; }
	top2menuHide(d1);//메뉴활성초기화
}

/***************************************************************************************************/
