	/*--------------------------------------------------------------------------
	* PHP 내장함수인 htmlspecialchars() 를 자바스크립트로 변환한것
	* '	(작은따옴표)	-> &#039;
	* " (큰  따옴표)	-> &quot;
	* & ( 앰퍼샌드 )	-> &amp;
	* < ( 보다작은 )	-> &lt;
	* > ( 보다  큰 )	-> &gt;
	*-------------------------------------------------------------------------*/
	function HtmlSpecialChars (str)
	{
		ret_str = str;
	
		search = new Array (/'/g , /"/g , /&/g , /</g , />/g);
	
		replace = new Array ("&#039;" , "&quot;" , "&amp;" , "&lt;" , "&gt;");
	
		cnt = search.length;
	
		for(i=0; i<cnt; i++)
		{
			ret_str = ret_str.replace (search[i],replace[i]);
		}
	
		return ret_str;
	}
	
	/*--------------------------------------------------------------------------
	* Nl2Br(str)
	*-------------------------------------------------------------------------*/
	function Nl2Br (str)
	{
		ret_str = str;
	
		search = /\r\n/g;
	
		replace = "<br>";
	
		ret_str = ret_str.replace(search,replace);
	
		return ret_str;
	}
	
	/*--------------------------------------------------------------------------
	* Sp2Nbsp(str)
	*-------------------------------------------------------------------------*/
	function Sp2Nbsp (str)
	{
		ret_str = str;
	
		search = / /g;
	
		replace = "&nbsp;";
	
		ret_str = ret_str.replace(search,replace);
	
		return ret_str;
	}
	
	/*--------------------------------------------------------------------------
	* Tab2Nbsp16(str)
	*-------------------------------------------------------------------------*/
	function Tab2Nbsp16 (str)
	{
		ret_str = str;
	
		search = /\t/g;
	
		replace = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
	
		ret_str = ret_str.replace(search,replace);
	
		return ret_str;
	}
	
	// Form 문에서 값을 체크하기 위한 함수 모음
	/*--------------------------------------------------------------------------
	* 사용 예 :
	* <FORM name="form1" onSubmit="return chkForm(this)">
	* input tag에 대한 설명
	* <input
	*	type="text" 	//형식
	*	name="id" 		//이름
	*	hname="아이디" 	//한글 이름
	*	pattern="regId" //어떤 정규식으로 처리할지 선언 (pattern="/^[a-zA-Z]+$/")
	*	required 		//필수 항목에 설정
	*   maxlength=10 	//길이 제한(byte)
	* >
	*-------------------------------------------------------------------------*/
	
	// 폼객체의 이름을 가져오기. 나중에 에러메세지 등에 사용할 객체 이름을 적을것.
	function FormGetElementName(obj)
	{
		if (obj.getAttribute("hname") != null) {
			return obj.hname;
		} else {
			return obj.name;
		}
	}
	
	// 패턴하고 비교하여 패턴에 맞지 않는 값일 경우 alert 메세지 띄움.
	function FormCheckPattern(obj,pattern,hname)
	{
		var regNum = /^[0-9]+$/;
		var regPhone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/;
		var regMail =/^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/;
		var regDomain =/^[.a-zA-Z0-9-]+.[a-zA-Z]+$/;
		var regAlpha =/^[a-zA-Z]+$/;
		var regHost =/^[a-zA-Z-]+$/;
		var regHangul =/[가-힣]/;	
		var regHangulEng =/[가-힣a-zA-Z]/;
		var regHangulEngNum =/[가-힣a-zA-Z0-9]/;
		var regHangulOnly =/^[가-힣]*$/;	
		var regPasswd = /^[a-zA-Z0-9_-]+$/;
		var regPlainPhone = /^[0-9_-]+$/;
		var regDate =/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
		var regEngNum =/[a-zA-Z0-9]/;
	
		pattern = eval(pattern);
	
		if(!pattern.test(obj.value)){
			alert("[" + hname + "] 항목의 형식이 올바르지 않습니다.");
			obj.focus();
			return false;
		}
		return true;
	}
	
	// 문자열의 길이를 계산.
	function StringLength(str)
	{
	//	return (str.length + (escape(str) + "/%u").match(/%u/g).length-1);
	    var l = 0;
	    for (var i=0; i<str.length; i++)
	    	l += (str.charCodeAt(i) > 128) ? 2 : 1;
	    return l;
	}
	
	// form 객체의 maxlength를 가져와 길이 비교를 하고 넘어갈 경우 alert 메세지를 띄움.
	function FormGetElementLength(obj,len,hname)
	{
		if(StringLength(obj.value) > len){
			alert("[" + hname + "] 항목은 " + "최대 " + len + "byte로 입력이 제한되어 있습니다.\n\n(영문숫자1byte,한글2byte로 계산)");
			obj.focus();
			return false;
		}
	
		return true;
	}
	
	function FormMinElementLength(obj,len,hname)
	{
		if(StringLength(obj.value) < len){
			alert("[" + hname + "] 항목은 " + "최소 " + len + "byte 이상입니다.\n\n(영문숫자1byte,한글2byte로 계산)");
			obj.focus();
			return false;
		}
	
		return true;
	}
	
	// value가 없을 경우 select, text에 따라 적절한 alert 메세지 띄움
	function FormCheckText(obj, hname)
	{
		if(obj.value.length < 1){
			if (obj.tagName.toUpperCase() == "SELECT")
				alert("[" + hname + "] 항목을 선택하여 주십시요.");
			else
				alert("[" + hname + "] 항목을 입력하여 주십시요.");
	
			obj.focus();
			return false;
		}
		return true;
	}
	
	function FormCheckSelect(obj, hname)
	{
		if(obj.value.length < 1){
			alert("[" + hname + "] 항목을 선택하여 주십시요.");
			obj.focus();
			return false;
		}
		return true;
	}
	
	function FormCheckCheckbox(form, ele, hname)
	{
	
		//obj = eval(form.name+'.'+ele.name);
		obj = document.getElementsByName(ele.name);
		
		//2006-05-02 체크박스가 여러개일경우 추가
		if(obj.length > 1){
			var count = 0;
			for (i = 0; i < obj.length; i++) {
	       		if (obj[i].checked == true ) {
	    			count++;
				}
			}
			
			if (count == 0 ) { 
				alert("[" + hname + "] 항목을 선택하여 주십시요.");
				return false;
			}
		}
		else{
			
			alert("[" + hname + "] 항목을 선택하여 주십시요.");
			obj.focus();
			return false;
		}
	
		return true;
		
		/*
		if (!obj.checked){
			alert("[" + hname + "] 항목을 선택하여 주십시요.");
			obj.focus();
			return false;
		}
		return true;
		*/
	
	}
	
	function FormCheckRadio(form, ele, hname)
	{
		obj = eval(form.name+'.'+ele.name);
		for (i=0;i<obj.length;i++) {
			if (obj[i].checked)
				return true;
		}
		alert("[" + hname + "] 항목을 선택하여 주십시요.");
		obj.focus();
		return false;
	}
	
	// 실제 Form 객체들의 값들을 체크하는 함수
	function FormValidate(f)
	{
		var i,currEl;
	
		for(i = 0; i < f.elements.length; i++){
			currEl = f.elements[i];
	
			//필수 항목을 체크한다.
			if (currEl.getAttribute("required") != null){
				if(currEl.type.toUpperCase() == "TEXT" || currEl.tagName.toUpperCase() == "SELECT" || currEl.tagName.toUpperCase() == "TEXTAREA" ||currEl.type.toUpperCase() == "PASSWORD" || currEl.type.toUpperCase() == "FILE" || currEl.type.toUpperCase() == "HIDDEN"){
					if(!FormCheckText(currEl,FormGetElementName(currEl)))
						return false;
				}
				else if(currEl.type.toUpperCase() == "CHECKBOX"){
					if(!FormCheckCheckbox(f, currEl,FormGetElementName(currEl)))
						return false;
				}
				else if(currEl.type.toUpperCase() == "RADIO"){
					if(!FormCheckRadio(f, currEl,currEl.hname))
						return false;
				}
			}
	
			// 길이 제한을 체크한다.
			if(currEl.type.toUpperCase() == "TEXT" || currEl.tagName.toUpperCase() == "TEXTAREA" ||currEl.type.toUpperCase() == "PASSWORD") {
				if(currEl.getAttribute("maxlength") != null && currEl.value.length > 0){
					if(!FormGetElementLength(currEl,currEl.getAttribute("maxlength"),FormGetElementName(currEl))) {
						return false;
					}
				}
				
				if(currEl.getAttribute("minlength") != null && currEl.value.length > 0){
					if(!FormMinElementLength(currEl,currEl.getAttribute("minlength"),FormGetElementName(currEl))) {
						return false;
					}
				}
			}
	
			// 입력 패턴을 체크한다.
			if(currEl.getAttribute("pattern") != null && currEl.value.length > 0){
				if(!FormCheckPattern(currEl,currEl.pattern,FormGetElementName(currEl)))
					return false;
			}
		}
	
		return true;
	}
	
	/*
	팝업창 오픈
	page		페이지명
	getFrom		get방식값
	scroll		yes/no/auto
	kind		1 일반창  2 modal창
	name		윈도우명
	* 윈도우 창크기는 열린창에서 크기 조절.
	ex winopen("www.goorm.com?code=1","100","100","auto","1","notice_open")
	*/
	function winopen(page,width,height,scroll,kind,name,top,left) {
		
		if (scroll == ""){
			scroll = "auto";
		}
		
		if (kind == "" || kind == 0){
			kind = "1";
		}
		
		if (name == ""){
			name = "OpenWin";
		}
		
		if (width == "" || width == 0){
			width = "100";
		}
		
		if (height == "" || height == 0){
			height = "100";
		}
		
		if (top == "" || top == 0){
			top = "100";
		}
		
		if (left == "" || left == 0){
			left = "100";
		}
		
		//일반 winopen
		if (kind == 1 || kind == "1") {
			window.open(page,name,"width=" + width + ",height=" + height + ",scrollbars=" + scroll + ",resizable=yes,top="+top+",left="+left);
		}
		//modal open
		else if (kind == 2 || kind == "2") {
			window.showModalDialog(page, "ModalOpen","dialogleft:" + width + "px;dialogtop:" + height + "px; center:yes; help:no; status:no; scroll:" + scroll + "; esizable:yes"); 
		}
		//layer view
		else if (kind == 3 || kind == "3") {
			eval(page).style.display = 'inline';
		}
		//link
		else if (kind == 4 || kind == "4") {
			document.location.href=page;
		}
	}
	
	
	// 자동으로 날짜정렬되는 스크립
	/*--------------------------------------------------------------------------
	* 사용 예 :
	* page		:통계관련 모든페이지 ( 시작날짜 )
	*-------------------------------------------------------------------------*/
	
	function scurdate(o1, o2, o3){
		syyy=document.all.syy.value;
		smmm=document.all.smm.value;
		sddd=document.all.sdd.value;
	
		var sdate = new Date(syyy,smmm,sddd);
	
		smoddate(o1, o2, o3, sdate.getYear(), sdate.getMonth() + 1, sdate.getDate());
		return;
	}
	
	// 입력된 날짜로 초기화  
	function smoddate(o1, o2, o3, year, month, day)
	{
		var date=new Date(year, month - 1, day);
		var yy = date.getYear();
	
		if(yy < 100)
		{
			yy = yy + 1900;
		}
		for (j = 0; j < o1.options.length; j++)
		{
			if(o1.options[j].text == yy)
			{
				if(document.all.smm.value=="00")
				{
				  o1.options[j+1].selected = true;
				}
			}
		}
	
		for(j = 0; j < o2.options.length; j++)
		{
			if(o2.options[j].text == document.all.smm.value)
			{
				o2.options[j].selected = true;
			}
		}
	
		sresetday(o1,o2,o3);
	
		for(j = 0; j < o3.options.length; j++)
		{  
			if(o3.options[j].text == document.all.sdd.value) 
			{
				o3.options[j].selected = true;
			}
		}
	}
	
	//특정년 부터 올해년까지 '년' 표시하기  
	function resetyear2(o1, thatyear){
	   
	 var curDate=new Date();
	 var yearRange;
	 var yearIndex;
	
	if(curDate.getYear() < 2004 )
		yearRange = 1900 + curDate.getYear() - thatyear + 1;
	else
		yearRange = curDate.getYear() - thatyear + 4;
		yearIndex = thatyear - 4;
	
		o1.options.length = yearRange+1;
	// o1.options[0].value = document.all.syy.value;
	// o1.options[0].text = document.all.syy.value;
	
	 for(i = 0; i <= yearRange; i++)
	 {
	
		o1.options[i].value = yearIndex;
		o1.options[i].text = yearIndex;
	
		if(o1.options[i].text == document.all.syy.value)
		{
		o1.options[i].selected = true;
		}
	
	     yearIndex++;
	 }
	}
	
	//'월' 표시하기   
	function sresetmonth(o2){
	
		o2.options.length = 12;
		// o2.options[0].value = document.all.smm.value;
		// o2.options[0].text = document.all.smm.value;
	
		for(i = 0; i < 12; i++) {   
			num = i+1 
	
			if (num<10)  {
				o2.options[i].value = "0"+num;
				o2.options[i].text = "0"+num;
			}else{
				o2.options[i].text = num;
				o2.options[i].value = num;
			}
	
		}
	  
	}
	
	// 년월에 맞는 '일' setting  
	function sresetday(o1, o2, o3) {
		var year = o1[o1.selectedIndex].value;
		if (year == ""){
			o2.options.length = 1;
			o2.options[0].selected = true;
			o3.options.length = 1;
			o3.options[0].selected = true;
			}else{
			sresetmonth(o2)
		}
	
		var month = o2[o2.selectedIndex].value;
		if (month == ""){
			o3.options.length = 1;
			o3.options[0].selected = true;
		}else{
			year = (year < 100) ? year + 1900 : year;
			var c_date=new Date(year, month, 1);
			c_date.setDate(0);
			t1 = c_date.getDate();
	
			o3.options.length = t1;
			//o3.options[0].value = "";
			//o3.options[0].text = "--"; 
	
			for(i = 0; i < t1; i++)
			{
				daynum = i+1
				if (daynum < 10)
				{
					o3.options[i].value = "0"+daynum;
					o3.options[i].text = "0"+daynum;
				}
				else
				{
					o3.options[i].text = daynum;
					o3.options[i].value = daynum;
				}
			}
		}
	}
	
	
	
	/*--------------------------------------------------------------------------
	* 사용 예 :
	* page		:통계관련 모든페이지 ( 마지막날짜 )
	*-------------------------------------------------------------------------*/
	function ecurdate(o4, o5, o6){
	   eyyy=document.all.eyy.value;
	   emmm=document.all.emm.value;
	   eddd=document.all.edd.value;
	
	  var edate = new Date(eyyy,emmm,eddd);
	   
	  emoddate(o4, o5, o6, edate.getYear(), edate.getMonth() + 1, edate.getDate());
	   return;
	}
	
	
	// 입력된 날짜로 초기화 --마지막날
	function emoddate(o4,o5,o6, year, month, day)
	{
		var date=new Date(year, month - 1, day);
		var yy = date.getYear();
		if(yy < 100)
		{
			yy = yy + 1900;
		}
		for (j = 0; j < o4.options.length; j++)
		{
			if(o4.options[j].text == yy)
			{
				if(document.all.emm.value=="00")
				{
					o4.options[j+1].selected = true;
				}
			}
		}
	
		for(j = 0; j < o5.options.length; j++)
		{
			//  alert(parseInt(o5.options[j].value));
			if(o5.options[j].text == document.all.emm.value)
			{
				o5.options[j].selected = true;
			}
		}
		eresetday(o4,o5,o6);
	
		for(j = 0; j < o6.options.length; j++)
		{  
			if(o6.options[j].text == document.all.edd.value) 
			{
				o6.options[j].selected = true;
			}
		}
	}
	
	
	//특정년 부터 올해년까지 '년' 표시하기  --끝나는년
	function resetyear3(o4, thatyear){ 
	   
	 var curDate=new Date();
	 var yearRange;
	 var yearIndex;
	 
	 if(curDate.getYear() < 2004 )
	  yearRange = 1900 + curDate.getYear() - thatyear + 1;
	 else
	  yearRange = curDate.getYear() - thatyear + 4;
	  yearIndex = thatyear - 4;
	
	  o4.options.length = yearRange+1;
	//  o4.options[0].value = document.all.eyy.value;
	//  o4.options[0].text = document.all.eyy.value;
	
	 for(i = 0; i <= yearRange; i++)
	 {
	     o4.options[i].value = yearIndex;
	     o4.options[i].text = yearIndex;
		
		if(o4.options[i].text == document.all.eyy.value)
		{
			o4.options[i].selected = true;
		}else
		{
			o4.options[i].selected = false;
		}
	
	     yearIndex++;
	
	 }
	}
	
	
	//'월' 표시하기  -- 끝나는 월
	function eresetmonth(o5){
	
	 o5.options.length = 12;
	// o2.options[0].value = document.all.emm.value;
	// o2.options[0].text = document.all.emm.value;
	
	for(i = 0; i < 12; i++) {   
	num = i+1
	         
		if (num<10)  {
			o5.options[i].value = "0"+num;
			o5.options[i].text = "0"+num;
		}else{
			o5.options[i].text = num;
			o5.options[i].value = num;
		}
	
	}
	  
	}
	
	// 년월에 맞는 '일' setting 
	function eresetday(o4, o5, o6) {   
	    var year = o4[o4.selectedIndex].value;
	  if (year == ""){
	     o5.options.length = 1;
	     o5.options[0].selected = true;
		 o6.options.length = 1;
	     o6.options[0].selected = true;
	  }else{
	     eresetmonth(o5)
	  }
	 var month = o5[o5.selectedIndex].value;
	  if (month == ""){
	     o6.options.length = 1;
	     o6.options[0].selected = true;
	  }else{
	  year = (year < 100) ? year + 1900 : year;
	 var c_date=new Date(year, month, 1);
	 c_date.setDate(0);
	 t1 = c_date.getDate();
	
	o6.options.length = t1;
	//o6.options[0].value = "";
	//o6.options[0].text = "--"; 
	
	 for(i = 0; i < t1; i++)
	 {
	  edaynum = i+1
	  if (edaynum < 10)
	  {
	   o6.options[i].value = "0"+edaynum;
	   o6.options[i].text = "0"+edaynum;
	  }
	  else
	  {
	   o6.options[i].text = edaynum;
	   o6.options[i].value = edaynum;
	  }
	 }
	  }
	}
	
	function init_date(df) {
	
		var curDate=new Date();
	
		resetyear2(df.SYear, curDate.getYear());  // 현재 년도부터 ~~
		resetyear3(df.EYear, curDate.getYear());  // 현재 년도부터 ~~
	
		sresetmonth(df.SMonth);
		eresetmonth(df.EMonth);
	
		scurdate(df.SYear, df.SMonth, df.SDay);
		ecurdate(df.EYear, df.EMonth, df.EDay);
	
	}
	
	//년, 월, 일, 시, 분  까지 표기
	function init_date2(df) {
		
		var curDate=new Date();
	
		resetyear2(df.SYear, curDate.getYear());  // 현재 년도부터 ~~
		resetyear3(df.EYear, curDate.getYear());  // 현재 년도부터 ~~
	
		sresetmonth(df.SMonth);
		eresetmonth(df.EMonth);
	
		scurdate(df.SYear, df.SMonth, df.SDay);
		ecurdate(df.EYear, df.EMonth, df.EDay);
		
		resethour(df.SHour,df.shr);			//시작시
		resetminute(df.SMinute,df.smi);		//시작분
	
		resethour(df.EHour,df.ehr);			//종료시
		resetminute(df.EMinute,df.emi);		//종료분
	}
	
	//시작 '시' 표시하기  24시기준
	function resethour(o1,o2){
		var length = 24;
		o1.options.length = length;
		
		for(i = 0; i < length; i++) {   
			num = i+1 
			
			if (num<10)  {
				o1.options[i].value = "0"+num;
				o1.options[i].text = "0"+num;
			}
			else {
				o1.options[i].text = num;
				o1.options[i].value = num;
			}
		}
		
		o1.value = o2.value;
	}
	
	//시작 분 표시 하기 
	function resetminute(o1,o2){
		var length = 59;
		o1.options.length = length;
		
		for(i = 0; i < length ; i++) {   
			num = i+1 
			
			if (num<10)  {
				o1.options[i].value = "0"+num;
				o1.options[i].text = "0"+num;
			}
			else {
				o1.options[i].text = num;
				o1.options[i].value = num;
			}
		}
		
		o1.value = o2.value;
	}
	
	
	function init_todate(df) {
	
		var curDate=new Date();
	
		resetyear2(df.SYear, curDate.getYear());  // 현재 년도부터 ~~
	
		sresetmonth(df.SMonth);
	
		scurdate(df.SYear, df.SMonth, df.SDay);
	}
	
	//LEFT메뉴 ajax
	/*--------------------------------------------------------------------------
	* 사용 예	:
	* page		:
	*-------------------------------------------------------------------------*/
	var g_result_info;
	
	function fetch_result(json)
	{
		if (json == "" ) return 0;
		
		eval("g_result_info =" + json);
		return 1;
	    
	}
	
	function GetSelSubMenu(oj) {
		var f = document.submenu;
	
		sendRequest(
				CallSubmenu
				,'&list_order=' + oj
				,'GET'
				,'/exec/menu_ajax.jump'
				,true
				,true
			)
			
	}
	
	//콜백 함수 ( 수신시에 실행)
	//서브메뉴
	function CallSubmenu(oj)
	{
		
		var f = document.submenu;
	
		//응답을 취득하여 디코딩
		var res  = decodeURIComponent(oj.responseText);
		
		//fetch_result(res);
		//alert(res);
		document.getElementById("submenu_list").innerHTML = res;	
		
	}
	
	function DefaultMenuOnload()
	{
		GetSelSubMenu('-1');
	}
	
	function GetMenuOpen(m_idx, list_order)
	{
		sendRequest(
				CallSubmenu
				,'&list_order=' + list_order + '&m_idx=' + m_idx
				,'GET'
				,'/exec/menu_ajax.jump'
				,true
				,true
			)
	
	}
	
	/*
	 * CheckBox를 Hidden으로 바꿔주는 함수
	 *    f : 폼이름
	 *    ele : checkbox 이름
	*/
	function CheckboxToHidden(f,ele) {
	    var ele_h;
	    var val;
		
		var obj		= document.getElementsByName(ele); 
		//obj			= eval(f.name+'.'+ele.name);
		
		//alert(obj.length);
	
		if (typeof(obj.length) != "undefined") {// checkbox가 배열일경우
	        ele_h = document.createElement("input");
	        ele_h.setAttribute("type","text");
			ele_h.setAttribute("name",obj.name);
			for (var i = 0; i < obj.length; i++) {
	            // hidden객체생성, 이름은 checkbox와 같게한다.
	            //ele_h = document.createElement("input");
	            //ele_h.setAttribute("type","hidden");
	            //ele_h.setAttribute("name",ele[i].name);
	            //ele[i].checked ? val = ele[i].value : val = "";
				//ele_h.setAttribute("name",ele.name);
				//ele_h.setAttribute("value",val);
	            //f.appendChild(ele_h);
	
				val = val + "," + ele[i].value;
					
	
	            // 기존 checkbox의 이름을 이름_copy로 변경한후 checked = false해준다.
	            ele[i].checked = false;
	            ele[i].setAttribute("name",ele[i].name + "_copy");
	        }
	
			ele_h.setAttribute("value",val);
	        f.appendChild(ele_h);
			
	
	    } else {// checkbox가 한개
	            ele_h = document.createElement("input");
	            ele_h.setAttribute("type","hidden");
	            ele_h.setAttribute("name",ele.name);
	            ele.checked ? val = ele.value : val = "";
	            ele_h.setAttribute("value",val);
	            f.appendChild(ele_h);
	    
	            ele.checked = false;
	            ele.setAttribute("name",ele.name + "_copy");   
	    }
	
	}
	
	
	//체크박스 전체 해제 / 선택 하기
	//setAllChk('checkbox_name')
	function setAllChk(oj) 
	{ 
	    var i; 
	    var ele		= document.getElementsByName(oj); 
		//var ele		= oj.name; 
		
		if(ele[0].checked == true) { 
			for(i = 0; i < ele.length; i++) { 
	            ele[i].checked = false; 
			} 
	    }else{ 
			for(i = 0; i < ele.length; i++) { 
	            ele[i].checked = true; 
	        } 
	    } 
	
	} 
	
	//지정된 ele형식의 값을 모두 지움
	function GetFormValueDel(type)
	{	
		 for(var i = 0; i < document.all.length; i++) { 
	        if(document.all[i].tagName.toLowerCase() == 'text'){ 
	            document.all[i].value = "";
			}
	    } 
	}
	
	
	//날짜를 찍어 준다
	//형식 20060101
	function GetFullDate(oj,opkind) {
	
		today	= new Date();  
		year	= today.getFullYear();
		month	= today.getMonth();
		day		= today.getDay();
	
		
		if (month.length = 1){
			month = "0"+ month;
		}
	
		if (day.length = 1){
			day = "0"+ day;
		}
		
		fulldate = year + '' + month + '' + day;
		
		
		oj.value = fulldate;
	
		//return fulldate;
	}
	
	//체크박스 전체 해제 하기
	//setAllChk('checkbox_name')
	function setAllfalse(oj) 
	{ 
	    var i; 
	    var ele		= document.getElementsByName(oj); 
		//var ele		= oj.name; 
		
		for(i = 0; i < ele.length; i++) { 
			ele[i].checked = false; 
		} 
	} 
	
	//list_order가 같은 값을 전부 체크해준다.
	function setPartChk(value,oj,chk)
	{
		var i; 
	    var ele		= document.getElementsByName(oj); 
		
		var tmp		= value.split('|');
		var list_order = tmp[1];
		
		for(i = 0; i < ele.length; i++) { 
			var tmp2	= ele[i].value.split('|');
	
			var t_order	= tmp2[1];
	
			if (list_order == t_order) {
				
				if (chk) {
					ele[i].checked = true;
				}
				else {
					ele[i].checked = false;
				}
			}
		} 
	}
	
	
	//form을 체크 한다.
	function checkFormValue(form)
	{
		if(FormValidate(form))
		{
			return true;
		}
		else
		{
			return false;
		}
	
	}
	
	var NUM = "0123456789";	
	var SALPHA = "abcdefghijklmnopqrstuvwxyz";
	var ALPHA = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"+SALPHA;
	var EMAIL = "!#$%&*+-./=?@^_`{|}"+NUM+ALPHA;
	var PASSWORD = "!@.#,$%^*&_-" + ALPHA + NUM;
	var ERRORMSG = "";
	
	//문자,숫자,특수문자  대입에 따라 체크한다(keke77)
	function CheckType(s,spc) {
		var i;
		for(i=0; i<s.length; i++) {
			if (spc.indexOf( s.substring(i, i+1)) < 0) {
				return false;
			}
		}
			
		return true;
	}
	
	function StringSize (s) {
		var i;
		var len = 0;
		for ( i=0 ; i<s.length; i++) {
			if ( s.charCodeAt(i) > 255 ) {
				len += 2;
			} else {
				len ++;
			}
		}
		return len;
	}
	
	// 주민등록번호 유효성 검사
	function CheckRID(sRIDFirst, sRIDLast) {
		var chk = 0;
		var NUM = "0123456789";
		var nYear = sRIDFirst.substring(0,2);
		var nMondth = sRIDFirst.substring(2,4);
		var nDay = sRIDFirst.substring(4,6);
		
		var nSex = sRIDLast.charAt(0);
	
		if (!CheckType(sRIDFirst, NUM)) {
			ERRORMSG = "[주민등록번호 앞부분]에 잘못된 문자가 있습니다.";
			return -1;
		}
		
		if ( sRIDFirst.length!=6 ||  nMondth<1 || nMondth>12 || nDay<1 || nDay>31) {
			ERRORMSG = "[주민등록번호 앞부분]이 잘못되었습니다.";
			return -1;
		}
		
		if (!CheckType(sRIDLast, NUM)) {
			ERRORMSG = "[주민등록번호 뒷부분]에 잘못된 문자가 있습니다.";
			return -2;
		}
		
		if ( sRIDLast.length!=7 || (nSex!=1 && nSex!=2 && nSex!=3 && nSex!=4) ) {
			ERRORMSG = "[주민등록번호 뒷부분]이 잘못되었습니다.";
			return -2;
		}
		
		var i;
	
		for (i=0; i<6; i++) {
			chk += ( (i+2) * parseInt( sRIDFirst.charAt(i) ));
		}
		
		for (i=6; i<12; i++) {
			chk += ( (i%8+2) * parseInt( sRIDLast.charAt(i-6) ));
		}
		
		chk = 11 - (chk%11);
		chk %= 10;
		
		if (chk != parseInt( sRIDLast.charAt(6))) {
			ERRORMSG = "유효하지 않은 [주민등록번호]입니다.";
			return -1;
		}
		
		return 0;
	}
	
	function CheckPassword (sPass, sRepass) {
		
		/*
		if (!CheckType(sPass, PASSWORD)) {
			ERRORMSG = "영문, 숫자, 특수문자(! @ . # , $ % ^ * & _ -)으로\n\n4글자 이상으로 작성해야 합니다."
			return false;
		}
		*/
	
		if ( !CheckLenEng(sPass, "[비밀번호]", 4, 10, 0) ) {
			return false;
		}
	
		if (sPass != sRepass) {
			ERRORMSG = "[비밀번호]가 일치하지 않습니다.";
			return false;
		}
		
		return true;
	}
	
	function CheckEmailAddrFull (sEmail) {
		if (!CheckType(sEmail, EMAIL)) {
			ERRORMSG = "[E-Mail]에 잘못된 문자가 있습니다.";
			return false;
		}
	
		if ( !CheckLenEng (sEmail, "", 1, 50, 0) ) {
			return false;
		}
		
		if ( sEmail == "" ) {
			return true;
		}
	
		var a = sEmail.indexOf('@');
		if ( a <= 0  ) {
			ERRORMSG = "[E-Mail]을 잘못 입력하셨습니다.";
			return false;
		}
		
		var a = sEmail.indexOf('.');
		if ( a <= 0 ) {
			ERRORMSG = "[E-Mail]을 잘못 입력하셨습니다.\n\n Ex)ddd@olivegame.com";
			return false;
		}
		
		return true;
	}
	
	function CheckLenEng(s, name, nMin, nMax, bIsConsonant) {
		var nStrSize = StringSize(s);
		var cPostN, cPostL;
		
		if (bIsConsonant) {
			cPostL = "을";
			cPostN = "은";
		} else {
			cPostL = "를";
			cPostN = "는";
		}
		
		if (nStrSize == 0 && nMin > 0) {
			ERRORMSG = name + cPostL + "  입력해 주십시오.";
			return false;
		}
		if (nMin == 0 && nStrSize > nMax) {
			ERRORMSG = name + cPostN + " " + nMax +
				"자 이하로 입력해 주십시오.\n\n현재 입력된 길이 : " +
				nStrSize + "자";
			return false;
		}
		if (nStrSize < nMin || nStrSize > nMax) {
			ERRORMSG = name + cPostN + " " + nMin +
				"자 이상, " + nMax +
				"자 이하로 입력해 주십시오.\n\n현재 입력된 길이 : " +
				nStrSize + "자";
			return false;
		}
		
		return true;
	}
	
	function CheckEmailAddr (sEmail) {
		if (!CheckType(sEmail, EMAIL)) {
			ERRORMSG = "에 잘못된 문자가 있습니다.";
			return false;
		}
	
		if ( !CheckLenEng (sEmail, "", 1, 40, 0) ) {
			return false;
		}
		
		if ( sEmail == "" ) {
			return true;
		}
	
		var a = sEmail.indexOf('@');
		if ( a >=1 || a == sEmail.length -1 ) {
			ERRORMSG = "을 잘못 입력하셨습니다.\n\n [주소]만 입력하여 주십시요.";
			return false;
		}
		
		var a = sEmail.indexOf('.');
		if ( a <=0 || a == sEmail.length -1 ) {
			ERRORMSG = "을 잘못 입력하셨습니다.\n\n Ex)yesgoodnews.net";
			return false;
		}
		
		return true;
	}
	
	function XSrc(){ 
	     
	    var EMBEDStr=""; 
	
	    //EMBEDStr="<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' width='980' height='605'>            <param name='movie' value='http://image.gersang2.co.kr/wwwimage/mainimg/swf/GS2_Main.swf' /><param name='menu' value='false' />        <PARAM NAME='wmode' VALUE='transparent'/><param name='quality' value='high' /><param name='bgcolor' value='#000000' />                <embed src='http://image.gersang2.co.kr/wwwimage/mainimg/swf/GS2_Main.swf' quality='high' bgcolor='#000000' width='980' height='605' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></object>"; 
		
		EMBEDStr="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='637' height='89'><param name='movie' value='images/top_menu.swf'><param name='quality' value='high'><embed src='images/top_menu.swf' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='637' height='89'></embed></object>";
	    document.write(EMBEDStr); 
	
	}
	
	//로그인 버튼
	function on_login() {
		var f	= document.forms[0];
			if(checkFormValue(f) ) {
	
			f.method = 'post';
			f.action = "/proc/login_proc.php";
			f.submit();
		}
	}
	
	function showClock(obj){ 
	    document.write('<embed src="http://www.clocklink.com/clocks/' 
	        + obj.clockfile 
	        + '?TimeZone=' + obj.TimeZone 
	    ); 
	    if( obj.DateFormat != undefined && obj.DateFormat != "" )document.write('&DateFormat=' + obj.DateFormat); 
	    document.write('&TimeFormat=' + obj.TimeFormat 
	        + '&Place=' + obj.Place 
	        + '&Target=' + obj.Target 
	        + '&From=' + obj.From 
	        + '&Title=' + obj.Title 
	        + '&Message=' + obj.Message 
	        + '" width="' + obj.width 
	        + '" height="' + obj.height 
	        + '" wmode="' + obj.wmode 
	        + '" type="application/x-shockwave-flash">' 
	    ); 
	} 
	
	function showBanner(BannerLink){ 
	    document.write(BannerLink); 
	} 
	
	
	function idfind() {
		Winopen("/etc/idfind.php","358","189","no","0","download_open","300","300")
	}
	
	
	function popup_setcookie( name, value, expiredays )
	{
		var todayDate = new Date(); 
		todayDate.setDate( todayDate.getDate() + expiredays ); 
		document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
	}
	
	
	function popup_getCookie(name)
	{
	        var nameOfCookie = name + "=";
	        var x = 0;
	        while ( x <= document.cookie.length )
	        {
	                var y = (x+nameOfCookie.length);
	                if ( document.cookie.substring( x, y ) == nameOfCookie ) {
	                        if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
	                                endOfCookie = document.cookie.length;
	                       return unescape( document.cookie.substring( y, endOfCookie ) );
	                }
	                x = document.cookie.indexOf( " ", x ) + 1;
	                if ( x == 0 )
	                        break;
	        }
	        return "";
	}
	
	
	function getRef(id) { 
	    return document.getElementById(id); 
	} 
	
	function waca_Shoptoday() { 
		var yMenuFrom, yMenuTo, yOffset,xMenuFrom, xMenuTo, xOffset, timeoutNextCheck; 
	
		yMenuFrom  = parseInt (Shoptoday.style.top, 0); 
		yMenuTo    = (document.body.scrollTop+28);  // top로부터의 높이 수정 
		xMenuFrom  = parseInt (Shoptoday.style.left, 0); 
		xMenuTo    = parseInt (document.body.clientWidth - 300,0); 
	
		timeoutNextCheck = 10; //보정할 시간의 간격을 설정 1/1000초 단위입니다. (10이면 0.01초이겠네요^^) 
	
		if (yMenuFrom != yMenuTo) { 
				//alert("yMenuFrom "+yMenuFrom+"/yMenuTo "+yMenuTo+"/xMenuFrom "+xMenuFrom+"/xMenuTo "+xMenuTo); 
		  yOffset = Math.ceil(Math.abs(yMenuTo - yMenuFrom) / 20); //스크롤바를 움직였을 때 보정하는 간격을 도출(수식에 의해서 자연스럽게 제자리로 돌아갑니다.) 
		  if (yMenuTo < yMenuFrom) {//스크롤을 위로 움직였을 때와 아래로 움직였을 때를 감안 
			yOffset = -yOffset; 
		  } 
		  Shoptoday.style.top = parseInt (Shoptoday.style.top, 0) + yOffset; //보정간격을 현재 객체의 높이에 추가합니다. 
		} 
	
		//좌우 스크롤에 대한 보정인듯 싶은데 여기에서는 그다지 필요가 없어 보입니다. (원리는 위와 같겠죠?) 
		if (xMenuFrom != xMenuTo) { 
		  xOffset = Math.ceil(Math.abs(xMenuTo - xMenuFrom) / 20); 
		  if (xMenuTo < xMenuFrom) { 
			xOffset = -xOffset; 
		  } 
		  Shoptoday.style.left = parseInt (10,0);  // 센터정렬일 경우 화면/2 + 메인크기/2 
		} 
		setTimeout ("waca_Shoptoday()", timeoutNextCheck); //위에서 지정한 보정할 시간의 간격으로 waca_Shoptoday()함수를 계속 호출하네요 
	} 
	  
	/**
	 * @brief location.href에서 특정 key의 값을 return
	 **/
	String.prototype.getQuery = function(key) {
	    var idx = this.indexOf('?');
	    if(idx == -1) return null;
	    var query_string = this.substr(idx+1, this.length);
	    var args = {}
	    query_string.replace(/([^=]+)=([^&]*)(&|$)/g, function() { args[arguments[1]] = arguments[2]; });
	
	    var q = args[key];
	    if(typeof(q)=="undefined") q = "";
	
	    return q;
	}
	
	/**
	 * @brief location.href에서 특정 key의 값을 return
	 **/
	String.prototype.setQuery = function(key, val) {
	    var idx = this.indexOf('?');
	    var uri = this;
	    uri = uri.replace(/#$/,'');
	    if(idx != -1) {
	        uri = this.substr(0, idx);
	        var query_string = this.substr(idx+1, this.length);
	        var args = new Array();
	        query_string.replace(/([^=]+)=([^&]*)(&|$)/g, function() { args[arguments[1]] = arguments[2]; });
	
	        args[key] = val;
	
	        var q_list = new Array();
	        for(var i in args) {
	            var arg = args[i];
	            if(!arg.toString().trim()) continue;
	
	            q_list[q_list.length] = i+'='+arg;
	        }
	        return uri+"?"+q_list.join("&");
	    } else {
	        if(val.toString().trim()) return uri+"?"+key+"="+val;
	        else return uri;
	    }
	}
	
	/**
	 * @brief string prototype으로 trim 함수 추가
	 **/
	String.prototype.trim = function() {
	    return this.replace(/(^\s*)|(\s*$)/g, "");
	}
	
	/**
	 * @brief 주어진 인자가 하나라도 defined되어 있지 않으면 false return
	 **/
	function isDef() {
	    for(var i=0; i<arguments.length; ++i) {
	        if(typeof(arguments[i])=="undefined") return false;
	    }
	    return true;
	}
	
	/**
	 * @brief 윈도우 오픈
	 * 열려진 윈도우의 관리를 통해 window.focus()등을 FF에서도 비슷하게 구현함
	 **/
	var winopen_list = new Array();
	function winopen(url, target, attribute) {
	    try {
	        if(target != "_blank" && winopen_list[target]) {
	            winopen_list[target].close();
	            winopen_list[target] = null;
	        }
	    } catch(e) {
	    }
	
	    if(typeof(target)=='undefined') target = '_blank';
	    if(typeof(attribute)=='undefined') attribute = '';
	    var win = window.open(url, target, attribute);
	    win.focus();
	    if(target != "_blank") winopen_list[target] = win;
	}
	
	/**
	 * @brief 팝업으로만 띄우기 
	 * common/tpl/popup_layout.html이 요청되는 제로보드 XE내의 팝업일 경우에 사용
	 **/
	function popopen(url, target) {
	    if(typeof(target)=="undefined") target = "_blank";
	    winopen(url, target, "left=10,top=10,width=10,height=10,scrollbars=no,resizable=no,toolbars=no");
	}
	
	/**
	 * @brief 메일 보내기용
	 **/
	function sendMailTo(to) {
	    location.href="mailto:"+to;
	}
	
	/**
	 * @brief url이동 (open_window 값이 N 가 아니면 새창으로 띄움)
	 **/
	function move_url(url, open_wnidow) {
	    if(!url) return false;
	    if(typeof(open_wnidow)=='undefined') open_wnidow = 'N';
	    if(open_wnidow=='N') open_wnidow = false;
	    else open_wnidow = true;
	
	    if(/^\./.test(url)) url = request_uri+url;
	
	    if(open_wnidow) {
	        winopen(url);
	    } else {
	        location.href=url;
	    }
	    return false;
	}
	
	/**
	 * @brief 특정 div(or span...)의 display옵션 토글
	 **/
	function toggleDisplay(obj, opt) {
	    obj = xGetElementById(obj);
	    if(typeof(opt)=="undefined") opt = "inline";
	    if(obj.style.display == "none") obj.style.display = opt;
	    else obj.style.display = "none";
	}
	
	/**
	 * @brief 본문내에서 컨텐츠 영역보다 큰 이미지의 경우 원본 크기를 보여줌
	 **/
	function showOriginalImage(evt) {
	    var e = new xEvent(evt);
	    var obj = e.target;
	    var src = obj.src;
	
	    var orig_image = xGetElementById("fororiginalimage");
	    var tmp_image = new Image();
	    tmp_image.src = src;
	    var image_width = tmp_image.width;
	    var image_height = tmp_image.height;
	
	    orig_image.style.margin = "0px 0px 0px 0px";
	    orig_image.style.cursor = "move";
	    orig_image.src = src;
	
	    var areabg = xGetElementById("fororiginalimageareabg");
	    xWidth(areabg, image_width+36);
	    xHeight(areabg, image_height+46);
	
	    var area = xGetElementById("fororiginalimagearea");
	    xLeft(area, xScrollLeft());
	    xTop(area, xScrollTop());
	    xWidth(area, xWidth(document));
	    xHeight(area, xHeight(document));
	    area.style.visibility = "visible";
	    var area_width = xWidth(area);
	    var area_height = xHeight(area);
	
	    var x = parseInt((area_width-image_width)/2,10);
	    var y = parseInt((area_height-image_height)/2,10);
	    if(x<0) x = 0;
	    if(y<0) y = 0;
	    xLeft(areabg, x);
	    xTop(areabg, y);
	
	    var sel_list = xGetElementsByTagName("select");
	    for (var i = 0; i < sel_list.length; ++i) sel_list[i].style.visibility = "hidden";
	
	    xAddEventListener(orig_image, "mousedown", origImageDragEnable);
	    xAddEventListener(orig_image, "dblclick", closeOriginalImage);
	    xAddEventListener(window, "scroll", closeOriginalImage);
	    xAddEventListener(window, "resize", closeOriginalImage);
	
	    areabg.style.visibility = 'visible';
	}
	
	/**
	 * @brief 원본 이미지 보여준 후 닫는 함수
	 **/
	function closeOriginalImage(evt) {
	    var area = xGetElementById("fororiginalimagearea");
	    if(area.style.visibility != "visible") return;
	    area.style.visibility = "hidden";
	    xGetElementById("fororiginalimageareabg").style.visibility = "hidden";
	
	    var sel_list = xGetElementsByTagName("select");
	    for (var i = 0; i < sel_list.length; ++i) sel_list[i].style.visibility = "visible";
	
	    xRemoveEventListener(area, "mousedown", closeOriginalImage);
	    xRemoveEventListener(window, "scroll", closeOriginalImage);
	    xRemoveEventListener(window, "resize", closeOriginalImage);
	}
	
	/**
	 * @brief 원본 이미지 드래그
	 **/
	var origDragManager = {obj:null, isDrag:false}
	function origImageDragEnable(evt) {
	    var e = new xEvent(evt);
	    var obj = e.target;
	    if(obj.id != "fororiginalimage") return;
	
	    obj.draggable = true;
	    obj.startX = e.pageX;
	    obj.startY = e.pageY;
	
	    if(!origDragManager.isDrag) {
	        origDragManager.isDrag = true;
	        xAddEventListener(document, "mousemove", origImageDragMouseMove, false);
	    }
	
	    xAddEventListener(document, "mousedown", origImageDragMouseDown, false);
	}
	
	function origImageDrag(obj, px, py) {
	    var x = px - obj.startX;
	    var y = py - obj.startY;
	
	    var areabg = xGetElementById("fororiginalimageareabg");
	    xLeft(areabg, xLeft(areabg)+x);
	    xTop(areabg, xTop(areabg)+y);
	
	    obj.startX = px;
	    obj.startY = py;
	}
	
	function origImageDragMouseDown(evt) {
	    var e = new xEvent(evt);
	    var obj = e.target;
	    if(obj.id != "fororiginalimage" || !obj.draggable) return;
	
	    if(obj) {
	        xPreventDefault(evt);
	        obj.startX = e.pageX;
	        obj.startY = e.pageY;
	        origDragManager.obj = obj;
	        xAddEventListener(document, 'mouseup', origImageDragMouseUp, false);
	        origImageDrag(obj, e.pageX, e.pageY);
	    }
	}
	
	function origImageDragMouseUp(evt) {
	    if(origDragManager.obj) {
	        xPreventDefault(evt);
	        xRemoveEventListener(document, 'mouseup', origImageDragMouseUp, false);
	        xRemoveEventListener(document, 'mousemove', origImageDragMouseMove, false);
	        xRemoveEventListener(document, 'mousemdown', origImageDragMouseDown, false);
	        origDragManager.obj.draggable  = false;
	        origDragManager.obj = null;
	        origDragManager.isDrag = false;
	    }
	}
	
	function origImageDragMouseMove(evt) {
	    var e = new xEvent(evt);
	    var obj = e.target;
	    if(!obj) return;
	    if(obj.id != "fororiginalimage") {
	        xPreventDefault(evt);
	        xRemoveEventListener(document, 'mouseup', origImageDragMouseUp, false);
	        xRemoveEventListener(document, 'mousemove', origImageDragMouseMove, false);
	        xRemoveEventListener(document, 'mousemdown', origImageDragMouseDown, false);
	        origDragManager.obj.draggable  = false;
	        origDragManager.obj = null;
	        origDragManager.isDrag = false;
	        return;
	    }
	
	    xPreventDefault(evt);
	    origDragManager.obj = obj;
	    xAddEventListener(document, 'mouseup', origImageDragMouseUp, false);
	    origImageDrag(obj, e.pageX, e.pageY);
	}
	
	/**
	로그인 폼 관련
	*/
	
	function  login_check()
	{
		var f = document.login_form;
		
		if(checkFormValue(f) ) {
			
			
			saveform();
			f.id.value = f.id.value.toLowerCase();
			document.getElementById("custInfoExtDto.custId").value=f.id.value;
			document.getElementById("custInfoExtDto.pwd").value=f.passwd.value;
			//f.action = CERT_HOME_URL + "/sso/loginRedirect.do?backURL=" + BACK_URL;
			//f.onsubmit();
			f.submit();
						
		}
		
	}
	
	function removeSpace(str)
	{
		var temp = "";
		
		str = '' + str;
		
		splitstr = str.split(" ");
		
		for(i = 0; i < splitstr.length; i++)
		{
			temp += splitstr[i];
		}
		return temp;
	}
	
	/**
	*	Cookies
	*/
	function setCookie(name, value, expires) {
		document.cookie = name + "=" + escape (value) +
		"; path=/; expires=" + expires.toGMTString();
	}

	function getCookie(Name) {
		var search = Name + "="
		if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면
		offset = document.cookie.indexOf(search)
		if (offset != -1) {
			offset += search.length
			end = document.cookie.indexOf(";", offset)
		
			if (end == -1)
				end = document.cookie.length
				return unescape(document.cookie.substring(offset, end))
			}
		}
		return "";
	}
	
	/*
	function getCookie( name ) 
	{
		var nameOfCookie = name + "=";
		var x = 0;
		while ( x <= document.cookie.length ) 
		{
			var y = (x+nameOfCookie.length);
			if ( document.cookie.substring( x, y ) == nameOfCookie ) 
			{
				if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
					endOfCookie = document.cookie.length;
				
				return unescape( document.cookie.substring( y, endOfCookie ) ); 
			}
			x = document.cookie.indexOf( " ", x ) + 1;
			if ( x == 0 )		break; 
		}
		return ""; 
	}
	*/
	
	function setCookieDays( name, value, expiredays ) 
	{
		var todayDate = new Date();
		todayDate.setDate( todayDate.getDate() + expiredays );
		document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
	}
	
	function setCookieExpiresecs( name, value, expiresecs ) 
	{
		var todayDate = new Date();
		todayDate.setSeconds( todayDate.getSeconds() + expiresecs );
		document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
	}
	
	//아이디 기억하기 
	function saveform() {
		var expdate = new Date();
		var f = document.login_form;
		
		try {
			
			if (f.save_cnk.checked) {
				//alert('아이디 정보를 저장할 경우 다음접속시\n\n'+
				//'아이디를 입력하지 않으셔도 됩니다.\n\n')
				expdate.setTime(expdate.getTime() + 1000 * 3600 * 24 * 7); // 7일 ==> 7일동안 보전
			} else {
				expdate.setTime(expdate.getTime() - 1);
			}
			setCookie("saveid", f.id.value, expdate);
			//setCookie("savepass", f.cnj_pass.value, expdate);
		} catch (e) {
			
		}
		
	}

	function getform() {
		var f = document.login_form;
		try {
			f.save_cnk.checked = ((f.id.value = getCookie("saveid")) != "");
			//f.save_cnk.checked = ((f.passwd.value = getCookie("savepass")) != "");
		
			loginform_addbg('pass');
			
			if (f.save_cnk.checked) {
				f.id.value = getCookie("saveid");
				loginform_clearbg('id');
			}
			else {
				f.id.value = '';
				loginform_addbg('id');
			}
		} catch (e) {
			
		}
	}
	
	//로그인 폼 아이디/비밀번호 표시 사라지기
	function loginform_clearbg(type) {
		var f = document.login_form;
		
		if (type == "id") {
			f.id.style.backgroundImage = '';
		} 
		else if (type == "pass") {
			f.passwd.style.backgroundImage = '';
		}
	}
	
	//로그인 폼 아이디/비밀번호 표시 나타내기
	function loginform_addbg(type) {
		var f = document.login_form;
		
		if (type == "id") {
			f.id.style.backgroundImage = 'url(' + IMAGE_PATH + '/images/login_id.jpg)';
			f.id.style.backgroundRepeat = 'no-repeat';
			f.id.style.backgroundPosition = '5px';
		} 
		
		else if (type == "pass") {
			f.passwd.style.backgroundImage = 'url(' + IMAGE_PATH + '/images/login_pw.jpg)';
			f.passwd.style.backgroundRepeat = 'no-repeat';
			f.passwd.style.backgroundPosition = '5px';
		}
	}
	
	/**
	* 메인페이지 동영상 DIV
	* 
	*/
	function getMainMoviesViewer(kind) {
		if (kind == "episod")
		{
			document.getElementById("main_movie_episod").style.display="inline";
			document.getElementById("main_movie_game").style.display="none";
		}
		else if (kind == "game")
		{
			document.getElementById("main_movie_episod").style.display="none";
			document.getElementById("main_movie_game").style.display="inline";
		}
	}
	
	/**
	* 링크
	* 타겟이 있으면 설정
	*/
	function getLocation(url,target) {
		
		document.location.href=url;
		if (target != "") {
			document.location.target=target;
		}
	}
	
	/**
	*	파일 사이즈를 용량 표시와 함께 리턴 한다.
	*/
	function getFileSize(nSize) {
		if (nSize <= 1024)
			return parseInt(nSize) + " byte";
		else if (nSize <= 1024 * 1024)
			return parseInt(nSize / 1024 * 100) / 100 + " kbyte";
		else if (nSize <= 1024 * 1024 * 1024)
			return parseInt(nSize / (1024 * 1024) * 100) / 100 + " mbyte";

		return parseInt(nSize / (1024 * 1024 * 1024) * 100) / 100 + " gbyte";
	}
	
	/*
	시간 체크 팝업 오픈
	*/
	function winopenDate(page,width,height,scroll,kind,name,top,left
										,start_dt, end_dt, start_hour, end_hour
										,today, today_hour) {
		alert("winopenDate");
		if (start_hour == "" || start_hour == 0){
			start_hour = 0;
		}
		
		if (end_hour == "" || end_hour == 0){
			end_hour = 0;
		}
		
		var yyyy = (new Date()).getYear().toString();
		var mm = (((new Date()).getMonth()+1)<10 ? "0" : "") + ((new Date()).getMonth()+1).toString();
		var dd = ((new Date()).getDate()<10 ? "0" : "") + (new Date()).getDate().toString();
		var today_yymmdd = yyyy + mm + dd;
		
		var today 						= new Date(); 
		var today_hour				= today.getHours();
		var open_start_dt 			= start_dt;
		var open_close_dt 			= end_dt;
		var open_start_dt_hour	= start_hour;
		var open_close_dt_hour		= end_hour;
		alert("today = " + today + "\n"
				+ "today_hour = " + today_hour + "\n"
				+ "today_yymmdd = " + today_yymmdd + "\n"
				+ "open_start_dt = " + open_start_dt + "\n"
				+ "open_close_dt = " + open_close_dt + "\n"
				+ "open_start_dt_hour = " + open_start_dt_hour + "\n"
				+ "open_close_dt_hour = " + open_close_dt_hour + "\n"
				);
		
		if (today_yymmdd >= open_start_dt && today_yymmdd <= open_close_dt) {
			alert("if #1")
			//시작 시간  종료 시간이 있을 경우
			if (open_start_dt_hour > 0 && open_close_dt_hour > 0) {
				alert("if #1-1")
				if (today_hour >= open_start_dt_hour && today_hour <= open_close_dt_hour) {
					winopen(page,width,height,scroll,kind,name,top,left)
				}
			} 
			else if (open_start_dt_hour > 0 ) {
				alert("if #1-2")
				if (today_hour >=  open_start_dt_hour ) {
					winopen(page,width,height,scroll,kind,name,top,left)
				}
			}
			else if (open_close_dt_hour > 0 ) {
				alert("if #1-3")
				if (today_hour <=  open_close_dt_hour ) {
					winopen(page,width,height,scroll,kind,name,top,left)
				}
			}
			
		}
		else {
			alert("if  - else #1")
		}
		
	}
	
	/**
	*	page onload script
	*/
	window.onload = __init;
	function __init() {
		/**
		* auto image open
		*/
		try {
			//img = $('openImg');
			img = document.getElementsByName('openImg');
			//addEvent(img, 'click', getOpenImageAutoPopup);
			
			if(img.length > 0) {
				for(var i=0;i<img.length;i++) {
					img[i].rel="lightbox";
				}
			}//end if
		}
		catch (e)
		{}
		
		if (!LOGIN_FLAG)
		{
			getform();
		}
		
		/**
		*	img error start
		*/
		/*
		var all_img = document.getElementsByTagName("IMG")
		//var all_img = document.all.tags('img');
		if(all_img.length > 0)
		{
			for(var i=0;i<all_img.length;i++)
			{
				all_img[i].onerror=getImageError;
			}
		}//end if
		*/
		
		/**
		* dubble request 
		*/
		var selectTags = new Selector('a');
		var findScope = selectTags.findElements();
		var result = [];
		
		findScope.each(function(element) {
			//result[index] = value.href;
			Event.observe(element, 'click',getClickObserve);
		})
	}
	
	/**
	* dubble request 
	*/
	var clickCount  = 0;
	var oldEventFunction;
	var getClickObserve = function(element) {
		/*
		clickCount += 1;
		if (clickCount > 3)  {
			Event.stopObserving(element,'click',getClickObserve);
			return false;
		}
		*/
	}
	
	var removeEvent = function(sObj, sEvent, oFunction) {
		alert(sObj);
		
	    if(sObj.detachEvent) {
	        // MSDOM 지원 브라우저
	        sObj.detachEvent("on" + sEvent, oFunction);
			return true;
	    }
	    else
	    if(sObj.removeEventListener)
	    {
	        // W3C DOM 지원 브라우저
	        sObj.removeEventListener(sEvent, oFunction, false);
	
	        return true;
	    }
	    else
	    {
	        // NN4 나 IE5mac 등 비 호환 브라우저
	        return false;
	    }
	}
	
	function getObject(elementID)
	{
	    if(document.getElementById && document.getElementById(elementID))
	    {
	        return document.getElementById(elementID);
	    }
	    else
	    if (document.all && document.all(elementID))
	    {  
	        return document.all(elementID);
	    } 
	    else
	    if (document.layers && document.layers[elementID])
	    { 
	        return getNN4Object(document, elementID);
	    }
	    else
	    {
	        return false;
	    }
	}
	
	/**
	*	img error imgae
	*/
	function getImageError()
	{
		event.srcElement.src = GLOBAL_IMAGE_PATH + "/images/common/image_no.gif";
	}
	
	/**
	*	image open auto popup
	*/
	function getOpenImageAutoPopup() {
		var img = "";
		try {
			img = document.getElementById("openImg").src;
		}
		catch (e)
		{}
		
		if (img != "") {
			//winopen("/common/imgView.php?img="+img,"10","10","no","0","openImage","300","300");
			//alert(img);
		}
	}
	
	/**
	*	add event
	*/
	function addEvent( obj, type, fn )
	{
		//Explorer
		if (window.addEventListener)
			obj.addEventListener( type, fn, false );
		
		//net, mozz
		else if (window.attachEvent)
		{
			obj['e'+type+fn] = fn;
			obj[type+fn] = function() { obj['e'+type+fn]( window.event ); }
			obj.attachEvent( 'on'+type, obj[type+fn] );
		}
	}
	
	/**
	*	delete event
	*/
	function removeEvent( obj, type, fn )
	{
		//Explorer
		if (window.removeEventListener) {
			obj.removeEventListener( type, fn, false );
		}
		//net, mozz
		else if (window.detachEvent) {
			obj.detachEvent( 'on'+type, obj[type+fn] );
			obj[type+fn] = null;
			obj['e'+type+fn] = null;
		}
	}

	
	 
//-->