//쿠키설정
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;
      // set index of beginning of value

      end = document.cookie.indexOf(";", offset);
      // 쿠키 값의 마지막 위치 인덱스 번호 설정

      if (end == -1)
        end = document.cookie.length;
      return unescape(document.cookie.substring(offset, end));
    }
  }
  return "";
}
 
function saveid() {
  var expdate = new Date();
  if ( document.getElementById('saveid').checked)
    expdate.setTime(expdate.getTime() + 1000 * 3600 * 24 * 30); // 30일 아이디 저장
  else
    expdate.setTime(expdate.getTime() - 1); // 쿠키 삭제조건

  setCookie("saveid",  document.getElementById('mb_id').value, expdate);
}

function getid() {
  document.getElementById('saveid').checked = ((document.getElementById('saveid').value = getCookie("saveid")) != "");
}

function MM_showHideLayers() { //v9.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3){ 
	  with (document) 
		if (getElementById && ((obj=getElementById(args[i]))!=null))
		  v=args[i+2];
		if (obj.style) { 
			obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; 
		}
		obj.visibility=v; 
  }
}

	/******************************
	 * 일자계산
	 ******************************/
	function addDate(type,term,dd){
	    
        var nDate = new Date();
        var y,m,d;
                
		if(dd){
		    dd = dd.split("-").join("");
		    
		    y = eval(dd.substring(0,4));
	        m = eval(dd.substring(4,6))-1;
	        d = eval(dd.substring(6,8));
		}else{
			y =  nDate.getYear();
			m =  nDate.getMonth();
			d =  nDate.getDate();		    
		}
	    
	    if(type == "y")y = y + term;
	    else if(type == "m")m = m + term;
	    else if(type == "d")d = d + term;
	     
	    nDate = new Date(y,m,d);
	    
	    return nDate.getYear() + addZero(nDate.getMonth()+1) + addZero(nDate.getDate());
	} 
	
	/*****************************
	 * 숫자앞에 0이 필요 할 경우 포멧을 맞춤  
	 *****************************/
	function addZero(m){
        
        var rtn = m + "";
        
        if(rtn.length == 1)
		    rtn =  "0" + m;
    
		return rtn;
	}
	
	/******************************
	 * trim() 구현
	 ******************************/
	 String.prototype.trim = function() {   
       return this.replace(/^\s+|\s+$/g,"");   
     } 
     

	/**************************************
	 * 텍스트 필드에 입력시 숫자만 입력가능 
	 **************************************/
	function toNumber(field){
		var val = field.value;
		var chkNum = /[^0-9]/gi; 

		field.value=val.replace(chkNum,"");
	}
	
	/**************************************
	 * 영문자 포함되었는지 확인 
	 **************************************/

 function IsAlpha(txtName)
 {
     var AlphaDigit, NumberChar, CompChar, ChkFlag;
     var txtValue = txtName.value;
     var txtLength = txtValue.length;
  
     AlphaDigit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
 
     ChkFlag = false;
     for (i=0; i < txtLength; i++) 
     {
         NumberChar = txtValue.charAt(i);
         for (j = 0; j < 52; j++) 
         {
             CompChar = AlphaDigit.charAt(j);
             if (NumberChar == CompChar) 
             ChkFlag = true;
         }
     }
     
     if (ChkFlag == false) 
     {
         txtName.select();
         txtName.focus();
         return false;
     }
     return true;
 }

	/**************************************
	 * 숫자 포함되었는지 확인 
	 **************************************/
 function IsNumeric(txtName)
 {
     var AlphaDigit, NumberChar, CompChar, ChkFlag;
     var txtValue = txtName.value;
     var txtLength = txtValue.length;
  
     AlphaDigit = "1234567890";
     ChkFlag = false;
     
     for (i=0; i < txtLength; i++) 
     {
         NumberChar = txtValue.charAt(i);
         for (j = 0; j < 10; j++) 
         {
             CompChar = AlphaDigit.charAt(j);
             if (NumberChar == CompChar) 
             ChkFlag = true;
         }
     }
     if (ChkFlag == false) 
     {
         txtName.select();
         txtName.focus();
         return false;
     }
     return true;
 }


	/**************************************
	 * 주민등록번호 유효성 체크 
	 **************************************/
	function isJuminNum(aNum){
		var tot=0, result=0, re=0, se_arg=0;
		var chk_num="";
		
		if (aNum.value.length != 13){
			alert("주민등록번호는 13자리 입니다.");
			aNum.focus();
			return false;
		}else{
			for (var i=0; i <12; i++){
				if (isNaN(aNum.value.substr(i, 1))){
					alert("잘못된 주민등록번호 입니다.");
					aNum.focus();
					return false;
				}
				se_arg = i;
		
				if (i >= 8)
					se_arg = i - 8;
				tot = tot + Number(aNum.value.substr(i, 1)) * (se_arg + 2)
			}
		
			if (chk_num != "err"){
					re = tot % 11;
					result = 11 - re;
				if (result >= 10) result = result - 10;
				if (result != Number(aNum.value.substr(12, 1))){
					alert("잘못된 주민등록번호 입니다.");
					aNum.focus();
					return false;
				}
				if ((Number(aNum.value.substr(6, 1)) < 1) || (Number(aNum.value.substr(6, 1)) > 4)){
					alert("잘못된 주민등록번호 입니다.");
					aNum.focus();
					return false;
				}
			}
		}
		return true;
	}

	/**************************************
	 * 정규표현식을 이용한 이메일 유효성검사 
	 **************************************/
	function email_chk(obj){
		if( obj.value.length > 0 ){
			var regExp = /[a-z0-9]{2,}@[a-z0-9-]{2,}\.[a-z0-9]{2,}/i;
			
			if(!regExp.test(obj.value)){
				alert('잘못된 e-mail 형식입니다.');
				obj.focus();
				return false;
			}
		}
		return true;
	}

/**************************************
	 * 정규표현식을 이용한 이메일 유효성검사 
	 **************************************/
	function email_chk2(obj){
		if( obj.value.length > 0 ){
			var regExp = /[a-z0-9]{2,}@[a-z0-9-]{2,}\.[a-z0-9]{2,}/i;
			
			if(!regExp.test(obj.value)){
				alert('잘못된 e-mail 형식입니다.');
				return false;
			}
		}
		return true;
	}

    /*************************************
	 * 페이지를 이동한다.
	 * etc 추가될 hidden, 형식 : &name=value&name=value
	 *************************************/
    function gotoUrl(menuId,eventId,etc,menuCd,act){
        
		var form = document.linkForm;

		form.MENUID.value  = menuId;
        form.EVENTID.value = eventId;

        if(etc){
		    hiddenCreate(form,etc);
		}
        
        if(menuCd){
		    form.MENUCD.value  = menuCd;
		}

		//act 값이 있을경우 페이지 호출
		//menuId값이 menuCd에 입력
		if(act){		    
			form.action=act;
		}else{
		    form.action="/CTLJSP";
		}

		form.target ="_self";
        form.submit();
    }

	/********************************************
	 *  str값을 받아 hidden값을 동적으로 생성한다.
	 ********************************************/
	 function hiddenCreate(form,str){
	     var list = str.split("&");
		 var item = null;
		 var name = "";
		 var value = "";
		 try{
			 for(var i=1;i<list.length;i++){
				 item = list[i].split("=");
				 var input = document.createElement("input");
				 input.name = item[0];
                 input.id = item[0]; 
				 input.value = item[1]; 
				 input.type  = "hidden";

				 form.appendChild(input);
			 }
		 }catch(e){}
        
	  }

	/**
	 * Ajax를 이용한 요청을 수행한다.
	 *
	 * @url 요청 URL로 상대 경로와 절대 경로가 모두 가능함
	 * @params 요청 파라미터
	 * @after 서버에서의 처리가 완료된 후에 호출되는 메소드
	 */
	function callAjax(url, params,after, options) {
		callMethod = after;

		returnValue = null;
		
		var _async = (options && options["async"] == false)? true : true; // async 여부
		var _method = (options && options["method"] == "POST" )? "POST" : "GET"; // GET or POST
		var _params;
		if (params){
			_params = (typeof params == "string")? encodeURI(params) : parseParam(params);
		}
		
		/* 웹 브라우저에 따른 분기 */
		if (window.XMLHttpRequest) {                             /* 모질라 계열 */
			request = new XMLHttpRequest();
			request.onreadystatechange = process;
			if (_method == "GET"){
				request.open(_method, url + "?" + _params, _async);
				request.send(null);
			}else{
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				request.open(_method, url, _async);
				request.send(_params);
			}
			if (_async == false && navigator.userAgent.toLowerCase().indexOf("firefox") > -1){
				process();
			}
		} else if (window.ActiveXObject) {                       /* MS IE */
			request = new ActiveXObject("Microsoft.XMLHTTP");
			request.onreadystatechange = process;
			if (_method == "GET"){
				request.open(_method, url + "?" + _params, _async);
				request.send();
			}else{
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				request.open(_method, url, _async);
				request.send(_params);
			}
		}
			
		if (_async == false){ // synchronous 방식일 경우 after 함수의 리턴값을 되돌림
			return returnValue;
		}    
	}

	/**
	 * 서버에서 Ajax 요청이 처리가 된 후 호출되는 메소드로 간단한 에러 처리를 한다. 성공적으로 수행된 경우에는
	 * 사용자가 지정한 callMethod를 호출한다. 
	 */
	function process() {
		try {
			if (request.readyState == 4) {

				if (request.status == 200) {
					returnValue = callMethod(request);
				} else {
					alert("예외가 발생하였습니다. (메시지=" + request.statusText + ")");
				}
			}
		} catch (e) {
			alert("예외가 발생하였습니다. (메시지=" + e.message + ")");
		}
	}


	/**
	 * object형태로 받은 파라미터를 URL형태로 인코드 한다.
	 */
	function parseParam(params) {
		if (typeof params == "string") return encodeURI(params);
		var sb = [];
		for(property in params){
			var value = params[property];
			if (typeof value == "object" && !!value.length){ // 값이 배열이면 원소 하나하나를  
				for(var i = 0; i < value.length; i++){
					sb.push(encodeURIComponent(property) + "=" + encodeURIComponent(value[i]));
				}
			}else{
				sb.push(encodeURIComponent(property) + "=" + encodeURIComponent(params[property]));
			}
		}
		return sb.join("&");
	}    


// input type의 색상표현
function inFocus1(obj) {
	obj.style.border='2px solid #0A50A6';
}
function outFocus1(obj) {
	obj.style.border='1px solid #E6E6E6';
}

	function SetNum(obj){
		if (event.keyCode >= 48 && event.keyCode <= 57) { //숫자키만 입력
			return true;	
		}else{
			event.returnValue = false;
		}
	}

function msg_lert(msg_type){
	var msg_text = '';

	switch(msg_type){
		case 1 : 
			msg_text = '회원 전용 게시판 입니다. 로그인 후 사용해주시기 바랍니다.';
			break;
		case 2 : 
			msg_text = '해당 게시판은 현재 관리자에 의해 사용이 제한되어 있습니다.';
			break;
		case 3 : 
			msg_text = alert("클라이언트 프로그램이 설치되지 않아 수행할 수 없습니다.");
			break;
		default : 
			msg_text = '회원 전용 게시판 입니다. 로그인 후 사용해주시기 바랍니다.';
		    break;
    }
	return msg_text;
}
/******************************************
 **  특수문자체크 함수 : 특수문자를 안써지게함
 ******************************************/
function specialCharChk(e) {
	 var re = new RegExp("^[-!@#$%^&*()_+=/`~?.,><;:\'\"\[\{\}\|\\\\\\]]");

	 if(re.test(String.fromCharCode(e.keyCode))) e.returnValue = false;
}
