var _location=document.location.href;

//js top_menu 사용여부
var _js_flag=0;

//javascript로 구성된 메뉴 아이디 선택시 객체
var menu_over_id=null;
//javascript로 구성된 메뉴의 선택시 타이머
var menu_timer=0;


//debug 
if(_location.indexOf("debug=on") > -1 )
{
	//에러 헨들러
	onerror=handleErr;
}

//현재 출력할 메뉴아이디를 저장하는 전역변수
var _current_menu_id=0;

//플래쉬쇼 아이디를 저장
var _current_show_id="";

//에러 메시지 출력
function handleErr(msg, url, l)
{
	alert("JavaScript Err('msg="+msg+",line="+l+",url="+url+"')");
	return true;
}

//웹페이지의 title문자열을 출력
//class를 cms_title_str로 설정
function make_title()
{
	var mid=0, title_str="";
	mid=get_menu_id();

	//메뉴번호가 제대로 오지 않은 경우
	//이경우 처음부터 끝까지 URL을 비교하여 해당 메뉴아이디를 구함
	if(mid== -1 )
	{
		mid=find_url_menu_id();
	}

	//mid에 맞는 배열 구함
	var info=get_menu_info(mid);

	if(info)
	{
		title_str="<div class='cms_title_str'>"+info[2]+"</div>";
		document.write(title_str);
	}
}

//웹페이지의 네비게이션 문자열 출력
//class를  cms_navigation_str로 설정
function make_navigation()
{
	var mid=0, navi_str="";
	mid=get_menu_id();

	//메뉴번호가 제대로 오지 않은 경우
	//이경우 처음부터 끝까지 URL을 비교하여 해당 메뉴아이디를 구함
	if(mid== -1 )
	{
		mid=find_url_menu_id();
	}

	var flag=0, idx=0, start_mid=mid;
	var class_name="", link_name=""

	while(flag != 1)
	{
		//mid에 맞는 배열 구함
		var info=get_menu_info(mid);

		//object.conf에 등록되지 않은 메뉴가 간혹 들어옴
		if(!info) 
		{
			idx++;
			if( idx > 6 ) break;
			continue;
		}
		if(info[1]=="2") 
			flag=1;
		else 
			mid=info[1];

		var url="";
		url=get_menu_url(info);

		//마지막 메뉴이면 볼드 처리
		link_name=info[2];
		if(info[0]==start_mid)
			link_name="<span class='navi_last_id'>"+info[2]+"</span>";

		class_name="navi_depth_"+(idx+1);
		if(idx==0)
		{
			navi_str="<a href='"+url+"' class='"+class_name+"'>"+link_name+"</a>";
		}
		else
		{
			navi_str="<a href='"+url+"' class='"+class_name+"'>"+link_name+ " > " +navi_str;
		}
		idx++;

		//혹시 모를 무한 루프를 방지
		if(idx>6) break;
	}//while end

	//하위메뉴가 있으면 >를 추가
	if(navi_str.length > 0 )
		navi_str="<a href='/' target='_top' class='navi_home'>한국기술교육학회</a> > "+navi_str;
	else
		navi_str="<a href='/' target='_top' class='navi_home'>한국기술교육학회</a>";

	//class 정의
	navi_str="<div class='cms_navigation_str'>" + navi_str+ "</div>";
	document.write(navi_str);
}

//sitemap print
function make_sitemap_menu()
{
	var obj=0 , mkstr="";
	var len=all_menus.length;
	var user_lv="0";

	var info;
	mkstr="<table width='100%' border='0' summary='sitemap'>";

	var tdcnt=0;
	for(var x=0; x<len; x++)
	{
		info=all_menus[x];
		if(!info) continue;

		if(info[1] !='2') continue;

		if(tdcnt==0)
				mkstr+="<tr><td valign='top' align='center'>";
		else
				mkstr+="<td valign='top' align='center'>";

		substr="";

		//view(15번째값) 값을 비교
		str="";
		str=info[15];

		//live로 설정되어 있지않으면 표시하지 않음
		if(str.indexOf("live") == -1) continue;

		//sub에 나오도록 설정되어 있지 않으면 제거
		if(str.indexOf("top") == -1) continue;

		//표시등급 체크 ==> all_menus[x][14]
		if(info[14].length > 0 && info[14].indexOf(user_lv) == -1 ) continue;

		//get link str
		link="";
		link=make_link_str2(info, "top");
		//get sub menu list
		mkstr+="<div class='sitemap'>";
		mkstr+="<div class='cap'><div class='title'>"+info[2]+"</div></div>";	

		mkstr+=get_sitemap_sub_menu(info[0]);

		//add sub menu

		mkstr+="</div>";

		tdcnt++;
		if(tdcnt==3)
		{
			mkstr+="</td></tr>";
			tdcnt=0;
		}
		else
		{
			mkstr+="</td>";
		}

	}
	mkstr+="</table>";

	document.write(mkstr);
}

//서브메뉴 출력
//cms_conf 변수를 사용
//cms_conf[0]==> layout_id
//cms_conf[1]==> sub_bg
function make_sub_image()
{
	//현재의 탑메뉴 번호를 구함
	//다른 함수들을 위해 _current_menu_id에 저장
	if(_current_menu_id == 0)
	{
		mid=get_menu_id();
		if(mid==-1 ) mid=find_url_menu_id();
		_current_menu_id=mid;
	}

	//탑메뉴의 배열을 구함
	var info=[];
	info=get_menu_info(mid);

	//최상위 메뉴가 아니면 부모 번호를 다시구함
	if(info[1] !=2)
	{
		mid=find_menu_parent(info[1]);
		//메뉴 정보를 다시구함
		info=get_menu_info(mid);
	}

	if(!info)
	{
		mid=get_default_menu_id();
		info=get_menu_info(mid);
	}

	//탑메뉴에 설정된 배경이미지가 있으면
	var mkstr="";

	if(info[13].length > 0 )
	{
		var img=info[13].split(":");
		if(img[0]=="image")
		{
			mkstr="/home/image/"+img[1];
			mkstr=return_img_html(mkstr, "100%", "100%");
		}
		else if(img[0]=="show")
		{
			_current_show_id=img[1];
			mkstr=return_show_html(img[1]);
		}
	}
	else if(cms_conf[1])
	{
		img=cms_conf[1].split(":");
		if(img[0]=="image")
		{
			mkstr="/home/image/"+img[1];
			mkstr=return_img_html(mkstr, "100%", "100%");
		}
		else if(img[0]=="show")
		{
			_current_show_id=img[1];
			mkstr=return_show_html(img[1]);
		}
		else
		{
			mkstr="/home/image/"+img[0];
			mkstr=return_img_html(mkstr, "100%", "100%");
		}
	}
	//템플릿의 기본 서브 이미지를 사용
	else
	{
		if(cms_conf[0])
			retstr="/cms/"+cms_conf[0]+"/image/intro.gif";
		else
			retstr="/home/image/intro.gif";
		retstr=return_img_html(retstr, "100%", "100%");
	}
	document.write(mkstr);
	return true;
}


//플래쉬 쇼를 출력하기 위한 html생성하여 리턴
function return_show_html( show_id )
{
	var mkstr="";
	var info="";

	if(!show_id) return mkstr;
	
	info=eval("show_"+show_id);

	//트렉번호가 있는지 검사
	if(info[0][9])
		tnum=info[0][9];
	else
		tnum="";

	mkstr+="<script src='/icons/app/show/link.js'  type='text/javascript'></script>";
	mkstr+="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' id='cms_flash' title='플래시' width='"+info[0][5]+"' height='"+info[0][6]+"' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab'>";
	mkstr+="<param name='wmode' value='transparent' />";
	mkstr+="<param name='movie' value='/icons/app/show/main.swf?id="+show_id+"&cms_id="+cms_conf[0]+"&tracknum="+tnum+"' />";
	mkstr+="<embed src='/icons/app/show/main.swf?id="+show_id+"&cms_id="+cms_conf[0]+"&tracknum="+tnum+"' id='cms_flash2' wmode='transparent' width='"+info[0][5]+"' height='"+info[0][6]+"'  pluginspage='http://www.macromedia.com/go/getflashplayer' /></object>";
	mkstr+="<form name='frm' style='margin:0;'>";
	mkstr+="<input type='hidden' id='aa' name='aa' value='"+show_id+"' />";
	mkstr+="<input type='hidden' id='bb' name='bb' value='"+cms_conf[0]+"' /></form>";
	return mkstr;
}

function return_img_html(iname, width, height)
{
	var retstr='';
	if(!iname) return retstr;
	if(!width) width='100%';
	if(!height) height='100%';

	if(iname.length < 5) return retstr;

	cutstr=iname.substr( (iname.length) -3, 3);
	cutstr=cutstr.toLowerCase();

	if(cutstr=='gif' || cutstr=='png' || cutstr=='jpg' || cutstr=='bmp')
	{
		retstr="<img src='"+iname+"' width='"+width+"' height='"+height+"' border='0' alt='"+iname+"' />";
	}
	else if(cutstr=='swf')
	{
		retstr+="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' id='cms_flash' title='플래쉬' width='"+width+"' height='"+height+"' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab'>";

		retstr+="<param name='wmode' value='transparent' />";
		retstr+="<param name='movie' value='"+iname+"' />";
		retstr+="<embed src='"+iname+"' id='cms_flash2' wmode='transparent' width='"+width+"' height='"+height+"'  pluginspage='http://www.macromedia.com/go/getflashplayer' />";
		retstr+="</object>";
	}
	return retstr;
}

//shell에서 left메뉴를 출력
//ex) "30",  "16",  "교직원공지사항11" , "/notice.brd", "shell=/index.shell:30", "0123456789", "로그인후 사용하세요^관리자만 사용가능합니다", "_self", "", "width/500,height/500," 
function make_left_menu()
{
	var mkstr="";
	var user_lv="0";
	var len=all_menus.length;
	var current_mid=0;
	mid=get_menu_id();
	current_mid=mid;

	//메뉴번호가 제대로 오지 않은 경우
	//이경우 처음부터 끝까지 URL을 비교하여 해당 메뉴아이디를 구함
	if(mid== -1 )
	{
		mid=find_url_menu_id();
	}

	//mid에 맞는 배열 구함
	var info=get_menu_info(mid);
	//최상위 메뉴가 아니면 부모 번호를 다시구함
	if(info[1] !=2)
	{
		mid=find_menu_parent(info[1]);
		//메뉴 정보를 다시구함
		info=get_menu_info(mid);
	}

	if(!info)
	{
		mid=get_default_menu_id();
		info=get_menu_info(mid);
	}

	if(!info[2])
	{
		document.write(mid);
		return false;
	}


	//최상위 메뉴 이름을 출력
	//menu_img가 있으면 이미지 출력
	if(info[17])
	{
		mkstr+="<div class='cap'><div class='title'>";
		mkstr+="<img class='cms_top_menu_img' src='/icons/app/cms/file_push.php?mode=contents&fname="+info[17]+"' border='0' alt='"+info[2]+"' />";
		mkstr+="</div></div><div class='mlist'>";
	}
	else
	{
		mkstr+="<div class='cap'><div class='title'>"+info[2]+"</div></div><div class='mlist'>";
	}

	if(info[16]=="text_multi")
	{
		document.write(mkstr);
		show_multi_menu(current_mid, info[0]);
		mkstr="</div><div class=\"mbase\"></div>";
		document.write(mkstr);
		return true;
	}

	idx=all_menus.length;
	flag=0;
	for(x=0; x<idx; x++)
	{
		//자기 자신은 출력하지 않음
		if(all_menus[x][0]==mid) 
		{
			flag=1;
			continue;
		}
		if(flag==0 ) continue;

		//다른 top메뉴로 넘어가면 출력중지함
		if(all_menus[x][1]==2 && mid != all_menus[x][0] ) break;

		//view(15번째값) 값을 비교
		str=all_menus[x][15];

		//live로 설정되어 있지않으면 표시하지 않음
		if(str.indexOf("live") == -1) continue;

		//sub에 나오도록 설정되어 있지 않으면 제거
		if(str.indexOf("sub") == -1) continue;

		//다음 상위 메뉴로 넘어가면 정지
		if(all_menus[x][1]==2) break;

		//표시등급 체크 ==> all_menus[x][14]
		if(all_menus[x][14].length > 0 && all_menus[x][14].indexOf(user_lv) == -1 ) continue;


		//1차 depth 이면
		if(all_menus[x][1]==mid ) 
		{
			class1="m_out";
			class2="m_in";
			//현재 선택한 메뉴이면 class를 다르게 줌
			if(current_mid > 0 && all_menus[x][0]==current_mid)
			{
				class1="m_current";
				class2="m_in_current";
			}
		}
		//2차 depth이면
		else
		{
			class1="m_out2";
			class2="m_in2";
			//현재 선택한 메뉴이면 class를 다르게 줌
			if(current_mid > 0 && all_menus[x][0]==current_mid)
			{
				class1="m_current2";
				class2="m_in_current2";
			}
		}
		link="";
		link=make_link_str(all_menus[x]);

		//현재 선택한 메뉴이면 bold / underline 효과를줌
		//추후 별도로css를 정의하여 효과를 주는 부분을 고려해야함 
		if(current_mid > 0 && all_menus[x][0]==current_mid)
			link="<b>"+link+"</b>";

		mkstr+="<div class='"+class1+"'>";
		mkstr+="<div class='"+class2+"'>"+link+"</div>";
		mkstr+="</div>";
	}//for end
	mkstr+="</div><div class=\"mbase\"></div>";
	document.write(mkstr);
	return true;
}//make_menu_menu end


//sub_type을 text_multi로 설정하면 실행
//depth가 1인 메뉴를 2줄로 표기
function show_multi_menu( current_mid, mid )
{
	var idx=0;
	var info=0;
	var all_str="";
	//x를 선언하지 않으면 다른 함수들과 겹쳐서 x값이 사라지는 경우가 생김
	var x=0;
	idx=all_menus.length;

	for(x=0; x< idx ; x++)
	{
		info="";
		info=all_menus[x];
		//자기 자신은 제외
		if(info[0] == mid) continue;

		//view 값 처리
		//top옵션의 경우 top메뉴에서 처리
		if(info[15].indexOf("live") == -1 ) continue;
		if(info[15].indexOf("sub") == -1) continue;

		link=make_link_str(info);
		if(!link) continue;

		//1차 depth이면
		//depth 판단 ==> 0 depth일경우만 처리
		//1depth find_multi_menu에서 처리
		if(mid==info[1])
		{
			if(current_mid==info[0])
			{
				all_str+="<div class='m_current'>";
				all_str+="<div class='m_in_current'>"+link+"</div>";
				all_str+="</div>";
			}
			else
			{
				all_str+="<div class='m_out'>";
				all_str+="<div class='m_in'>"+link+"</div>";
				all_str+="</div>";
			}
			//multi로 출력할 메뉴를 구함
			all_str+=find_multi_menu(current_mid, info[0]);
		}
	}//for 
	document.write(all_str);
	return true;
}//show_multi_menu

//idno에 해당하는 하위메뉴가 존재하면 m_out3로 설정하여 리턴
//없으면 리턴 없음
function find_multi_menu(mid, idno)
{
	var cnt=all_menus.length;
	var retstr="";
	var link="";
	var x=0;

	for(x=0; x<cnt; x++)
	{
		if( idno != all_menus[x][1] ) continue;
		info=all_menus[x];

		//view 값 처리
		//top옵션의 경우 top메뉴에서 처리
		if(info[15].indexOf("live") == -1 ) continue;
		if(info[15].indexOf("sub") == -1) continue;

		link=make_link_str(info);
		if(mid==info[0])
			retstr+="<div class='m_current3'>"+link+"</div>";
		else
			retstr+="<div class='m_out3'>"+link+"</div>";
	}//for end

	if(retstr.length > 0) retstr="<div class='sm_multi'>"+retstr+"</div>";
	return retstr;
}

//현재 URL의 메뉴 아이디를 구함
function find_url_menu_id()
{
	var path="";
	//pathname은 URL중에서 GET으로 주어지는 옵션을 제외하고 URI만을 리턴
	path=document.location.pathname;
	//brief에서 게시물 보기 일 경우
	if(path.indexOf("_.brd") > -1 ) path=clear_brd_url(path);

	idx=all_menus.length;
	for(x=0; x<idx; x++)
	{
		if(all_menus[x][3]==path) return all_menus[x][0];
	}

	//all_menus에 포함되어 있지 않으면 첫번째 메뉴를 리턴
	for(x=0; x<idx; x++)
	{
		if(all_menus[x][1]==2) return all_menus[x][0];
	}
	return -1;
}

//brd view의 경우 /qna._.brd/32.23.232/와 같이 들어오기 때문에 처리
function clear_brd_url(url)
{
	var mkurl="";
	if(!url) return mkurl;
	
	var tmparr=url.split("/");
	for(var x=0; x<tmparr.length; x++)
	{
		if(tmparr[x].indexOf(".brd") > -1 )
		{
			mkurl="/"+tmparr[x].replace('._.brd','.brd');
			return mkurl;
		}
	}

	return mkurl;
}

//mid에 맞는 값을 all_menus에 찾아서 리턴
function get_menu_info(mid)
{
	var idx=all_menus.length;
	for(x=0; x<idx; x++)
	{
		if(all_menus[x][0]==mid) return all_menus[x];
	}
	return false;
}

//return first menu id 
function get_default_menu_id()
{
	var idx=all_menus.length;
	for(x=0; x<idx; x++)
	{
		if(all_menus[x][1]==2) return all_menus[x][0];
	}
	return false;
}

//shell에서 quick메뉴를 출력
//all_menus를 이용하여 처리
function make_quick_menu()
{
	var len=all_menus.length;
	var quick_id=find_quick_id();
	var mkstr="";
	var user_lv="0";

	//최상위 메뉴 이름을 출력
	mkstr+="<div class='q_div'><div class='cap'></div><div class='mlist'>";

	idx=all_menus.length;
	flag=0;
	for(x=0; x<idx; x++)
	{
		if(!all_menus[x]) continue;
		info=all_menus[x];

		if(info[0] == quick_id) continue;
		if(info[1] != quick_id) continue;

		//표시등급 체크 ==> all_menus[x][14]
		if(all_menus[x][14].length > 0 && all_menus[x][14].indexOf(user_lv) == -1 ) continue;

		link="";
		link=make_link_str(info);

		//사용등급 체크 ==> all_menus[x][5], all_menus[x][6]
		mkstr+=" <div class='m_out'> <div class='m_in' style='cursor:pointer;'>"+link+"</div></div>";
	}//for end
	mkstr+="</div><div class=\"mbase\"></div></div>";
	document.write(mkstr);
}

//퀴메뉴 아이디를 구해서 리턴 
//없으면 제일 첫번째 메뉴번호를 리턴
function find_quick_id()
{
	var len=all_menus.length;
	var quick_id=0;

	//quick옵션이 on으로 설정되 있는 걸 찾음
	for(x=0; x<len; x++)
	{
		//최상위 메뉴가 아니면 비교하지 않음
		if(all_menus[x][1] !=2 ) continue;
		if(all_menus[x][12] =="on")
		{
			return all_menus[x][0];
		}
	}//for end

	//quick이 on으로 설정된것이 없으면 첫번째 메뉴를 찾아서 리턴
	for(x=0; x<len; x++)
	{
		//최상위 메뉴가 아니면 비교하지 않음
		if(all_menus[x][1] ==2 ) return all_menus[x][0];
	}//for end
	return -1;
}

//parent가 2인걸로 찾아서 리턴
//없으면 첫번째 메뉴 아이디 리턴
function find_menu_parent(mid)
{
	var idx=all_menus.length;
	//비교할 아이디 저장
	cmp_id=mid;
	for(x=0; x<idx; x++)
	{
		if(all_menus[x][0]==cmp_id)
		{
			//최상위 메뉴이면
			if(all_menus[x][1]==2) 
				return all_menus[x][0];
			else
			{
				//다시 찾을 부모번호를 저장
				cmp_id=all_menus[x][1];
				//배열을 처음으로 돌리고 시작함
				//x를 0으로 설정하면 0배열을 건너뛰기 
				x=-1;
			}
		}
	}//for end
	return -1;
}

//현재 URL에서 menu_id를 구해서 리턴
// ex) http://aa.com/notice.brd?shell=/index.shell:100
//메뉴아이디가 없으면 -1 리턴
function get_menu_id()
{
	var mid="", url=document.location.href;
	var list=new Array();
	list=url.split("&");
	//&로 구분된 GET값이 없는 경우 ?로 짤라서 아이디를 구함
	//&값이 없는경우
	if(list.length==1)
	{
		list=url.split("?");
		//?로 구분된 값이 없는 경우
		if(list.length==1)
		{
			return -1;
		}
		list=list[1].split(":");
		//shell에서 메뉴아이디가 없으면
		if(list.length==1)
		{
			return -1;
		}
		return list[1];
	}
	//&가 여러개인 경우
	else
	{
		//처음에는 ?로 짤라서 처리
		list=url.split("?");
		//다시 &로 짜름
		list=list[1].split("&");
		idx=list.length;
		for(x=0 ; x<idx; x++)	
		{
			if(list[x].substring(0, 6)=="shell=")
			{
				list=list[x].split(":");
				//shell값에서 :로 구분된 메뉴아이디가 없으면
				if(list.length==1) 
					return -1;
				else return list[1];
			}
		}
	}
	return -1;
}

//flash show에서 이미지를 출력하기 위한 배열을 리턴
//show_list ==> 쇼의 코드값을 저장
//show_mainflash ==> 코드값에 따라 배열이 생성됨
function flash_banner_init()
{ 
	var info;

	if(_current_show_id)
	{
		info=eval("show_"+_current_show_id);
	}
	return info;
}

//flash show에서 현재 아이디를 구분하기 위해 리턴
function return_to_user()
{ 
	return ""; 
}

//top.swf에 설정된 폰트 리턴
function return_top_menu_font()
{
	var set_font="";
	set_font=find_js_conf("top_menu_font");
	return set_font;
}

//top.swf에 설정된 폰트 리턴
function return_sub_menu_font()
{
	var set_font="";
	set_font=find_js_conf("sub_menu_font");
	return set_font;
}

//all_menus를 읽어서 등급(put_level)에 따라 사용가능한 메뉴를 리턴
//표시등급을 체크하여 읽을 수 없는 등급이면 parent값을 0으로 설정
//15번 배열에 있는 view값을 비교하여 top에 설정되어 있지 않으면 보이지 않도록 처리
//view ==> live/top/sub 로 저장됨
function return_to_menu_array()
{
	//변수 선언
	var user_lv="0", len=all_menus.length,  cnt=0,  pid=0, top_cnt=-1;
	//배열 선언
	var newlist=[], tmparr=[];

	//메뉴갯수 만큼 loop
	for(var x=0; x<len; x++)
	{
		//quick메뉴이면 나오게 하지 않음
		if(all_menus[x][12]=="on") continue;

		//view(15번째값) 값을 비교
		//live로 설정되어 있지않으면 표시하지 않음
		if(all_menus[x][15].length > 0 && all_menus[x][15].indexOf("live") == -1) continue;
		//top에 나오도록 설정되어 있지 않으면 제거
		if(all_menus[x][15].length > 0 && all_menus[x][15].indexOf("top") == -1) continue;

		//put_level를 비교
		if(all_menus[x][14].length > 0 )
		{
			//설정된 등급이 없으면 모두 쓰는것으로 생각
			//if(str.length==0) continue;
			//여러등급이면 포함되어 있는 검사
			if(all_menus[x][14].indexOf(user_lv) == -1 ) 
			{
				continue;
			}
		}

		//1,2단계 메뉴만을 top.swf에 전달하기 위해 다음과 같이 처리함
		if(all_menus[x][1]=="2") 
		{
			//parent를 비교하기 위해서 저장
			pid=all_menus[x][0];
		}
		else
		{
			//2단계 메뉴가 아니면 건너뜀
			if(pid !=all_menus[x][1] ) continue;
		}

		//top메뉴이면 2차배열 cnt초기화
		if(all_menus[x][1]=="2") 
		{
			cnt=0;
			top_cnt++;
			newlist[top_cnt]=new Array();
		}

		//top.swf에 리턴할 배열을 생성
		tmparr=new Array(3);
		//menu_no
		tmparr[0]=all_menus[x][0];
		//parent
		tmparr[1]=all_menus[x][1];
		//menu_name
		tmparr[2]=all_menus[x][2];
		//sub_title
		tmparr[3]=all_menus[x][18];

		newlist[top_cnt][cnt]=new Array();
		newlist[top_cnt][cnt]=tmparr;

		cnt++;
	}//for end

	return newlist;

}//return_to_menu_array

//표시등급(put_level), 등급(level), 타겟(target), 쉘(shell)에 따라서
//메뉴 배열 저장(index 0, parent 1, name 2, url 3, shell 4, level 5, message 6, target 7, shell_flag 8, onclcik_option 9, menu_type 10 , quick_id 11, quick 12, sub_image 13, put_level 14, view 15 )
function make_link_str(info)
{
	var menu_str="";
	var user_lv="0";
	if(!info) return menu_str;

	var link=get_menu_url(info);

	//사용가능한 등급인지 판단==>level옵션 판단
	//설정된 등급이 없으면 모두 사용할 수 있는 것으로 판단함
	if(info[5].length==0)
	{
		//target 처리
		if(info[7]=="_popup")
		{
			menu_str="<a href='#' onclick='javascript:window.open(\""+link+"\",\"popup_"+info[0]+"\",\""+info[9]+"\");return(false);'>"+info[2]+"</a>";
		}
		else
		{
			menu_str="<a href='"+link+"' target='"+info[7]+"'>"+info[2]+"</a>";
		}
		return menu_str;
	}
	if( info[5].length > 0 && info[5].indexOf(user_lv) > -1)
	{
		//target 처리
		if(info[7]=="_popup")
		{
			menu_str="<a href='#' onclick='javascript:window.open(\""+link+"\",\"popup_"+info[0]+"\",\""+info[9]+"\");return(false);'>"+info[2]+"</a>";
		}
		else
		{
			menu_str="<a href='"+link+"' target='"+info[7]+"'>"+info[2]+"</a>";
		}
	}
	else
	{
		msg=parse_message(info[6]);
		menu_str="<a href='#' onclick='alert(\""+msg+"\");return(false);'>"+info[2]+"</a>";
	}
	return menu_str;
}

//use make_top_menu_js
function make_link_str2(info, type)
{
	var menu_str="";
	var user_lv="0";
	if(!info) return menu_str;

	var link=get_menu_url(info);

	var menu_name="";
	//top menu
    if(type=="top")
		menu_name=info[2];
	//sub menu
	else
		menu_name=info[2];

	//사용가능한 등급인지 판단==>level옵션 판단
	//설정된 등급이 없으면 모두 사용할 수 있는 것으로 판단함
	if(info[5].length==0)
	{
		//target 처리
		if(info[7]=="_popup")
		{
			menu_str="<a href='#' onclick='javascript:window.open(\""+link+"\",\"popup_"+info[0]+"\",\""+info[9]+"\");return(false);'>"+menu_name+"</a>";
		}
		else
		{
			menu_str="<a href='"+link+"' target='"+info[7]+"'>"+menu_name+"</a>";
		}
		return menu_str;
	}
	if( info[5].length > 0 && info[5].indexOf(user_lv) > -1)
	{
		//target 처리
		if(info[7]=="_popup")
		{
			menu_str="<a href='#' onclick='javascript:window.open(\""+link+"\",\"popup_"+info[0]+"\",\""+info[9]+"\");return(false);'>"+menu_name+"</a>";
		}
		else
		{
			menu_str="<a href='"+link+"' target='"+info[7]+"'>"+menu_name+"</a>";
		}
	}
	else
	{
		msg=parse_message(info[6]);
		menu_str="<a href='#' onclick='alert(\""+msg+"\");return(false);'>"+menu_name+"</a>";
	}
	return menu_str;
}

function get_menu_url(info)
{
	var url="";
	if( !info ) return '#';

	var shell="shell=/index.shell:"+info[0];
	
	//쉘을 사용하지 않도록 설정하면
	if(info[8]=="off")
		shell="shell=none";
	
	if(info[10]=="board")
	{
		if(info[3].indexOf("?") > -1 )
			return info[3]+"&amp;"+shell;
		else
			return info[3]+"?"+shell;
	}
	else if(info[10]=="contents")
		return info[3]+"&"+shell;
	else if(info[10]=="application")
		return info[3]+"?"+shell;
	else if(info[10]=="url")
	{
		if(!info[3])
		{
			return "#";
		}
		else
		{
			if(info[3].indexOf("http") > -1)
				return info[3];
			else
				return info[3];
		}
	}
	return '#';
}

//brief tab switch
function switch_brief_tab(menu_id, menu_cnt, tpl_id)
{
	//brief max len
	var max_len=3;
	var obj="",tmpobj="", objname="", x=0, z=0;
	if(!menu_id) return false;

	menu_cnt = menu_cnt?menu_cnt:1;
	tpl_id = tpl_id?tpl_id:"gray";

	for(x=1; x<=max_len; x++)
	{
		//brief id find
		objname="mbrief_"+menu_id+"_"+x;
		obj=document.getElementById(objname);
		if(!obj) continue;
		//hidden
		obj.style.display="none";
		//show
		if(x==menu_cnt) obj.style.display="block";

		//find LI ==> tabmenu
		tmpobj=obj.getElementsByTagName("LI");
		if(!tmpobj) continue;

		//to max_len
		for(z=0; z<max_len; z++)
		{
			if(!tmpobj[z]) continue;
			//more tab continue
			if(!tmpobj[z].className || tmpobj[z].className=="more") continue;
			//menu_cnt is start 1
			if((z+1)==menu_cnt)
				tmpobj[z].className="tab_on_"+tpl_id;
			else
				tmpobj[z].className="tab_"+tpl_id;
		}
	}
	return false;
}


//print top menu swf or js
function put_top_menu()
{
	var type="";
	type=find_js_conf("menu_type");

     //check swf or js
    if(type=="js")         
    {
        make_top_menu_js();
    }
    else
    {
        //모바일의 경우 make_top_menu_js를 호출
        var btype="";
        btype=navigator.userAgent;                                    
        if( btype.indexOf("iPhone") > -1 || btype.indexOf("Android") > -1)
            make_top_menu_js();
        else                    
            make_top_menu_swf();
    }
}


//print top menu to swf
function make_top_menu_swf()
{
	var mkstr="";
	var lang="ko";

	menu_width=find_js_conf("menu_width");
	top_height=find_js_conf("top_height");	
	top_y=find_js_conf("top_y");
	sub_height=find_js_conf("sub_height");	
	sub_margin_y=find_js_conf("sub_margin_y");

	//add px
	if(menu_width.indexOf("px") == -1 ) menu_width=menu_width+"px";

	height=parseInt(top_height) + parseInt(sub_height) + parseInt(top_y) + parseInt(sub_margin_y);
	height=height+"px";

    mkstr="<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" id=\"top_menu_flash\" width=\""+menu_width+"\" height=\""+height+"\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version9,0,0\">";
    mkstr+="<param name=\"wmode\" value=\"transparent\" />";
    mkstr+="<param name=\"movie\" value=\"/icons/app/cms/swf/top_menu.swf\" width=\""+menu_width+"\" height=\""+height+"\" />";
    mkstr+="<!--[if !IE]> <-->";
    mkstr+="<object type=\"application/x-shockwave-flash\" data=\"/icons/app/cms/swf/top_menu.swf\" id=\"top_menu_flash\" width=\""+menu_width+"\" height=\""+height+"\">";
    mkstr+="<param name=\"wmode\" value=\"transparent\" />";
    mkstr+="<p>";
    mkstr+="해당 컨텐츠를 보려면 <a href=\"http://www.adobe.com/kr/products/flashplayer/\">Flash Player</a>가 필요합니다.";
    mkstr+="</p>";
    mkstr+="</object>";
    mkstr+="<!--> <![endif]-->";
    mkstr+="</object>";
	document.write(mkstr);
}

//javascript로 top메뉴를 출력
//top_menu_js.css에 style 정의
function make_top_menu_js()
{
	var objstr="cms_top_flash_div", obj=0 , mkstr="";
	var len=all_menus.length;
	var user_lv="0";
	obj=document.getElementById(objstr);
	if(!obj) return false;


	var top_menu_cnt=0;
	for(var x=0; x<len; x++)
	{
		info=all_menus[x];
		if(!info) continue;

		//check sub menu
		if(info[1]=="2")
		{
			substr="";

			//view(15번째값) 값을 비교
			str="";
			str=info[15];

			//live로 설정되어 있지않으면 표시하지 않음
			if(str.indexOf("live") == -1) continue;

			//sub에 나오도록 설정되어 있지 않으면 제거
			if(str.indexOf("top") == -1) continue;

			//표시등급 체크 ==> all_menus[x][14]
			if(info[14].length > 0 && info[14].indexOf(user_lv) == -1 ) continue;

			//get link str
			link="";
			link=make_link_str2(info, "top");

			//menu name
			var menu_name="";
			menu_name="menu_"+(x+1);

			//get sub menu list
			substr=make_sub_menu_js(info[0]);
			mkstr+="<li id='top_"+menu_name+"' class='top_menu_off' onmouseover='set_menu_view(\""+menu_name+"\");' onmouseout='set_menu_hide(\""+menu_name+"\");'>"+link;
			mkstr+="<div><ul id='sub_"+menu_name+"' class='sub_menu_off'>"+substr+"</ul></div>";	
			mkstr+="</li>";

			top_menu_cnt++;
		}
	}//for end

	mkstr="<div id='cms_top_menu'><ul class='top_menu'>"+mkstr+"</ul></div>";

	//menu admin link
	

	obj.innerHTML=mkstr;

	//add top menu style
	add_style_top_menu(top_menu_cnt);

	return true;
}


//add top menu style to DOM
function add_style_top_menu(top_menu_cnt)
{
	var mkstr="";
	var info=[];

	//get js_conf value
	menu_width=find_js_conf("menu_width");
	top_height=find_js_conf("top_height");	
	top_color=find_js_conf("top_color");
	top_over_color=find_js_conf("top_over_color");
	top_font_size=find_js_conf("top_font_size");
	top_over_font_size=find_js_conf("top_over_font_size");
	top_space=find_js_conf("top_space");
	top_x=find_js_conf("top_x");
	top_y=find_js_conf("top_y");
	top_menu_font=find_js_conf("top_menu_font");
	top_menu_bold=find_js_conf("top_menu_bold");
	top_menu_over_bold=find_js_conf("top_menu_over_bold");

	sub_height=find_js_conf("sub_height");
	sub_margin_y=find_js_conf("sub_margin_y");
	sub_margin_x=find_js_conf("sub_margin_x");
	sub_color=find_js_conf("sub_color");
	sub_over_color=find_js_conf("sub_over_color");
	sub_font_size=find_js_conf("sub_font_size");
	sub_menu_font=find_js_conf("sub_menu_font");
	sub_menu_bold=find_js_conf("sub_menu_bold");

	//top메뉴의 간격을 구함
	//100%를 사용하지 않고 1px 정도를 여유공간으로 둠
	menu_width_percent=(menu_width/top_menu_cnt);
	menu_width_percent = menu_width_percent-2;

	//swf와 설정값 보정
	top_y=parseInt(top_y)+5;
	//top_x=parseInt(top_x)+10;

	//Bold 처리
	var bold_str=" font-weight:bold; ";
	if(sub_menu_bold=="1")
		sub_menu_bold= bold_str;
	else
		sub_menu_bold= "";

	if(top_menu_bold=="1")
		top_menu_bold =bold_str;
	else
		top_menu_bold= "";

	if(top_menu_over_bold=="1")
		top_menu_over_bold =bold_str ;
	else
		top_menu_over_bold="" ;

	//add style
	mkstr="";
	mkstr+="#cms_top_menu {position:relative; margin:0; padding:"+top_y+"px 0 0 "+top_x+"px;   width:"+menu_width+"px; } \n";

	mkstr+="#cms_top_menu ul {margin:0; padding:0; } \n";

	//display:inline을 쓰면 li의 width가 먹지 않음
	mkstr+="#cms_top_menu ul li {margin:0; padding:0; list-style:none; float:left;} \n";

	mkstr+="#cms_top_menu ul.top_menu {position:relative; margin:0 0 0 0;  height:"+top_height+"px; } \n";

	// 낱개 탑메뉴 일반
	mkstr+="#cms_top_menu li.top_menu_off { padding: 0 0 0 0 ; text-align:left;  width:"+menu_width_percent+"px;} \n";

	mkstr+="#cms_top_menu li.top_menu_off a {color:#"+top_color+"; text-decoration:none; "+ top_menu_bold+" font-family:"+top_menu_font+"; font-size:"+top_font_size+"px;  width:"+menu_width_percent+"px;} \n";

	mkstr+="#cms_top_menu li.top_menu_off a:hover {color:#"+top_color+"; text-decoration:none; font-size:"+top_font_size+"px;  width:"+menu_width_percent+"px; } \n";

	// 낱개 탑메뉴 선택되었을때 
	mkstr+="#cms_top_menu li.top_menu_on {text-align:left; width:"+menu_width_percent+"px;} \n";

	mkstr+="#cms_top_menu li.top_menu_on a {color:#"+top_over_color+"; text-decoration:none;  "+top_menu_over_bold+" font-family:"+top_menu_font+"; font-size:"+top_over_font_size+"px; } \n";

	// 낱개 탑메뉴의 공통모습-> 선택되었을때, 아닐때 
	mkstr+="#cms_top_menu li.top_menu_off, #cms_top_js li.top_menu_on { width:"+menu_width_percent+"px;} \n";

	// 낱개 하위메뉴 
	mkstr+="#cms_top_menu li.s_menu { position:relative; float:left; margin-right:10px; padding:0;} \n";

	// 집단 하위메뉴 평상시 
	mkstr+="#cms_top_menu ul.sub_menu_off {  list-style:none; display:none; float:left; } \n";

	//집단 하위메뉴 선택 되었을 때 
	mkstr+="#cms_top_menu ul.sub_menu_on { padding:0 "+sub_margin_y+"px 0 "+sub_margin_x+"px ; width:"+menu_width+"px; position:absolute; left:0; right:0;  margin-top:12px; height:"+sub_height+"px; vertical-align:top; } \n";

	mkstr+="#cms_top_menu ul.sub_menu_on a { color:#"+sub_color+";  "+sub_menu_bold+" font-family: "+sub_menu_font+"; font-size:"+sub_font_size+"px;} \n";

	mkstr+="#cms_top_menu ul.sub_menu_on a:hover { color:#"+sub_over_color+";  } \n";

	mkstr+="#cms_top_menu .s_menu:hover {padding:1px; text-align:center;} ";

	//수정 화면 링크 이미지
	mkstr+="#top_menu_red_pencil {float:right; left:10px; top:5px; width:10px; height:10px; }\n";

	//create style object
	var new_css=document.createElement("style");
	new_css.type="text/css";
	//for IE
	if(new_css.styleSheet) 
		new_css.styleSheet.cssText=mkstr;
	//for Other
	else
		new_css.appendChild(document.createTextNode(mkstr));

	//add to document object
	var target=document.getElementsByTagName("head")[0];

	target.appendChild(new_css);

	//start thread(menu)
	js_simple_thread();
	return true;
}

//js_conf에서 name값을 찾아서 리턴
function find_js_conf(name)
{
	if(!name) return "";
	if(!js_conf) return "";
	for(var x=0; x<js_conf.length; x++)
	{
		if(js_conf[x][0] ==name) return js_conf[x][1];
	}
	return "";
}

//top menu Id에 해당하는 html return 
function get_sitemap_sub_menu(parent_id)
{
	var retstr="", link="", info="", len=0, x=0;
	var user_lv="0";
	if(!parent_id) return retstr;

	len=all_menus.length;
	for(var x=0; x< len; x++)
	{
		info=all_menus[x];
		if(info[0]==parent_id) continue;
		if(parent_id==info[1])
		{
			//view(15번째값) 값을 비교
			str="";
			str=info[15];

			//live로 설정되어 있지않으면 표시하지 않음
			if(str.indexOf("live") == -1) continue;

			//sub에 나오도록 설정되어 있지 않으면 제거
			if(str.indexOf("top") == -1) continue;

			//표시등급 체크 ==> all_menus[x][14]
			if(info[14].length > 0 && info[14].indexOf(user_lv) == -1 ) continue;

			//get link str
			link="";
			link=make_link_str2(info, "sub");

			retstr+="<div class='menu'>";
			retstr+="<img src=\"/icons/app/cms/images/sitemap_icon.gif\" border='0' alt=\"icon\" />";
			retstr+=link+"</div><br />";
		}
	}
	return retstr;
}

//top menu Id에 해당하는 html return 
function make_sub_menu_js(parent_id)
{
	var retstr="", link="", info="", len=0, x=0;
	var user_lv="0";
	if(!parent_id) return retstr;

	len=all_menus.length;
	for(var x=0; x< len; x++)
	{
		info=all_menus[x];
		if(info[0]==parent_id) continue;
		if(parent_id==info[1])
		{
			//view(15번째값) 값을 비교
			str="";
			str=info[15];

			//live로 설정되어 있지않으면 표시하지 않음
			if(str.indexOf("live") == -1) continue;

			//sub에 나오도록 설정되어 있지 않으면 제거
			if(str.indexOf("top") == -1) continue;

			//표시등급 체크 ==> all_menus[x][14]
			if(info[14].length > 0 && info[14].indexOf(user_lv) == -1 ) continue;

			//get link str
			link="";
			link=make_link_str2(info, "sub");

			retstr+="<li class='s_menu'>"+link+"</li> ";
		}
	}
	return retstr;
}

function get_doc_id(id)
{
	return document.getElementById(id);
}


// 보여진 메뉴을 감춘다.
function hide_menu()
{
    var id=menu_over_id;
    var uid=get_doc_id('sub_'+id);
    if(uid)uid.className='sub_menu_off';
    var uid=get_doc_id('top_'+id);
    if(uid)uid.className='top_menu_off';
    menu_timer=0;
}

// 자동숨김 메뉴 정보를 초기화한다.
function clear_auto_menu()
{
    menu_over_id=null;
    menu_timer=0;
}

// 하위 메뉴를 보여지도록 한다.
function set_menu_view(id)
{
    var uid=get_doc_id('sub_'+id);
    if(menu_over_id !=null) hide_menu();
    clear_auto_menu();
    if(uid) uid.className='sub_menu_on';
    uid=get_doc_id('top_'+id);
    if(uid)uid.className='top_menu_on';
}


// 하위 메뉴를 일정 시간 후 소멸되도록 설정한다.
function set_menu_hide(id)
{
    var uid=get_doc_id('sub_'+id);
    /* 16 단위(0.8초)후 감춘다.*/
    if(uid){ menu_over_id=id; menu_timer=16; } 
    else menu_timer=0;
}

// 하위 메뉴 자동 소멸 타이머
function menu_hide_timer()
{
    if(menu_timer >0)
    {
        menu_timer--;
        if(menu_timer==0) hide_menu();
    }
    return;
}

// 자바스크립트로 구현하는 간단한 쓰레드
function js_simple_thread()
{
    // 0.8초 후 감춘다.
    menu_hide_timer(); 
    // 20 프레임 정도의 애니메이션 효과를 줄 수 있다.
    setTimeout("js_simple_thread()",50); 
    // 0.05초마다 호출된다.
    return;
}



//swf를 디버깅 할 방법이 없어 actionscript에서 ExternalInterface.call로 top_menu_debug를 호출하여 디버깅
function top_menu_debug(name, value)
{
	var mkstr="";
	if(name) mkstr+=name+"=";
	else mkstr+="noname=";

	if(value) mkstr+=value;
	else mkstr+="no value";
	alert(mkstr);
	return 1;
}


//top_menu.swf의 크기를 조정하기 위해 ExternalInterface.call로 호출 
//swf의 크기를 조정할 수 는 있지만 플래시 자체가 scale기반으로 크기가 조정되므로
//큰 의미가 없음
function resize_top_menu_swf()
{
	var obj=document.getElementById("top_menu_flash");
	obj.height="600";
	return true;
}

//현재 문서의 title을 설정
function set_document_title()
{
	var mid=0, navi_str="";
	mid=get_menu_id();

	//메뉴번호가 제대로 오지 않은 경우
	//이경우 처음부터 끝까지 URL을 비교하여 해당 메뉴아이디를 구함
	if(mid== -1 )
	{
		mid=find_url_menu_id();
	}

	//메뉴 정보를 구함
	var info=get_menu_info(mid);

	//사이트 이름을 같이 출력
	if(info)
	{
		navi_str="한국기술교육학회 " + info[2];
	}
	//메뉴가 없으면 사이트 이름만 출력
	else
	{
		navi_str="한국기술교육학회 ";
	}

	top.document.title=navi_str;
}


