/** 
 * 공통 Javascript
 * 
 * @author  장영조, foresight@topnwise.com
 * @version 1.0, 2004/08/17
 * @since   1.0
 *
 * Copyright. (c) 2004 by Kyobo Life
 */
 
 /* =============================================================
  Function : 지점 검색 팝업 띄우기
  Return   : N/A
  Usage    : 
================================================================= */

 function chzeroPop(){

	 var env = 'width=760,height=637,scrollbars=no';
	 var url ='http://kyobo.chzero.com/search.jsp';
	 
	 remote= window.open(url,'kyobo',env) ;
	 remote.focus();
}
 
 
/* =============================================================
  Function : 삭제여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : N/A
  Usage    : 
================================================================= */
function del( url ){
	result=confirm ("삭제하시겠습니까?");

	if (result)	{
		window.location.href= url ;
	}
}
// 사용방법
// <input size="14" type="text" name="jumin" maxLength="14" onKeyPress="onlyNumberInput();" onKeyUp="juminFormat(this)">

/* ===================================================================
	Function : onlyNumberInput()
	Return 	 :
	Usage 	 : 숫자만 입력 가능 (onKeyDown 이벤트)
=================================================================== */
function onlyNumberInput(){
	
	var code = window.event.keyCode;

	if (event.shiftKey) 
	{
		window.event.returnValue = false;
		return;
	}
	
	 if ((code > 32 && code < 48) || (code > 57 && code < 65) || (code > 90 && code < 97) || (code > 34 && code < 41) || (code > 47 && code < 58) || (code > 95 && code < 106) || code == 8 || code == 9 || code == 13 || code == 46 || code == 16){
	 window.event.returnValue = true;
	 return;
	}
 
 
  window.event.returnValue = false;
}

/* ===================================================================
	Function : noPercentInput()
	Return 	 :
	Usage 	 : '%' 입력 방지
=================================================================== */
function noPercentInput(){
	
	var code = window.event.keyCode;

	if (event.shiftKey) 
	{
		// '%' 입력 방지
		if (code == 53) 
		{
			alert(" '%' 는 입력하실수 없습니다.");
			window.event.returnValue = false;
			return;
		}
	}
}


//function 

/* ===================================================================
	Function : juminFormat(obj)
	Return 	 :
	Usage 	 : 주민등록번호 형식 (onKeyUp 이벤트)
=================================================================== */
function juminFormat(obj){
 var str = onlyNum(obj.value);
 var leng = str.length;

 switch(leng){
  case  1 :
  case  2 :
  case  3 : 
  case  4 :
  case  5 :
  case  6 : obj.value = str; break;
  case  7 :
  case  8 :
  case  9 :
  case 10 :
  case 11 :
  case 12 :
  case 13 : obj.value = str.substring(0, 6) + "-" + str.substring(6, 13);
      if(!isSSN(str.substring(0, 6) + str.substring(6, 13))){obj.value = "";}
      break;
 }
}


/* ===================================================================
	Function : isSSN(ssn)
	Return 	 :
	Usage 	 : 주민번호
=================================================================== */
function isSSN(ssn){

	if (ssn.length == 13) 
	{
		var ssn_len = ssn.length;

		var ssn1 = ssn.substring(0, 6);
    var ssn2 = ssn.substring(6);
    ssn1_len = ssn1.length;
    ssn2_len = ssn2.length;  
	
		var chk=0;
		var yy = ssn1.substring(0,2); //76
		var mm = ssn1.substring(2,4); //06
		var dd = ssn1.substring(4,6); //07
		var sex = ssn2.substring(0,1); //1
	
		//if( (ssn1_len !=6) || (yy<25) || (mm<1) || (mm>12) || (dd<1) ) {
		if( (ssn1_len !=6) || (yy<0) || (mm<1) || (mm>12) || (dd<1) ) {
			alert("유효하지 않은 주민등록번호입니다.");
			return false;
		}
	
		if((sex != 1 && sex !=2 && sex !=3 && sex !=4 && sex !=5 && sex !=6) || (ssn2_len != 7)) {
			alert("유효하지 않은 주민등록번호입니다.");
			return false;
		}
	       
	      if(sex != '5' &&  sex != '6')
	      {	
		for( var i=0 ; i<=5 ; i++) {
	             chk = chk + ((i%8+2) * parseInt (ssn1.substring(i,i+1)));
	         }
	
	        for (var i=6 ; i<=11 ; i++) {
	             chk= chk + ((i%8+2) * parseInt (ssn2.substring(i-6, i-5)));
	         }
	
		chk = 11 - (chk % 11);
		chk = chk % 10;
		if( chk != ssn2.substring(6,7)) 
		{
			alert("유효하지 않은 주민등록번호입니다.");
			return false;
		}
	     }
	}
	
 	
    return true;
}


/**
 * 사업자 번호가 정확한지 확인한다.
 * param : iSaupNo 사업자번호
 * return : Boolean true이면 검증된 사업자번호
 20050102 jwPark  추가 
 */

function isSaupNO(iSaupNo){
  if (!isNumber(iSaupNo)){
    alert("사업자 번호는 반드시 숫자로 구성되어야 합니다.");
    return false;
  }else if (iSaupNo.length != 10){
    alert("사업자 번호는 10자리 입니다.");
    return false;
  }
  var arr_saup = iSaupNo.split("");
  var wtArray = new Array(1,3,7,1,3,7,1,3,5);
  var iSaup_9 = 0;
  var iSum_saup = 0;
  var iCheck_digit = 0;
  //1~8자리까지 가중치를 곱하여 모두 더한다.
  for (i = 0; i < 8; i++){
      iSum_saup +=  eval(arr_saup[i]) * eval(wtArray[i]);
  }
  iSum_saup = iSum_saup % 10;
  //9번째 자리 숫자에 5를 곱한다.
  iSaup_9 = eval(arr_saup[8]) * 5
  //5를 곱한 값을 10으로 나누어  몫과 나머지를 각각 1~8합계에 더한다.
  iSum_saup +=  Math.floor(iSaup_9 / 10) + iSaup_9 % 10;
  //결과 값을 10에서 뺀다.
  iCheck_digit = 10 - (iSum_saup % 10);
  //계산 값을 10으로 나눈 나머지를 구한다. (Check Digit)
  iCheck_digit = iCheck_digit % 10;
  if (iCheck_digit != arr_saup[9]){
    alert("사업자 번호가 정확하지 않습니다.\n 다시 확인하신후 입력하십시오.");
    return false;
  }
  return true;
}


/**
 * 입력값이 숫자인지를 확인한다
 * param : sVal 입력스트링
 * return : Boolean True이면 숫자값
  20050102 jwPark  추가 
 */  
function isNumber(sVal){    
  if(sVal.length < 1){ 
    return false;
  }
  for(i=0; i<sVal.length; i++) {
    iBit = parseInt(sVal.substring(i,i+1));     //문자(Char)를 숫자로 변경
    if(('0' < iBit) || ('9' > iBit)) {
  }else {
   //alert((i+1)+'번째 문자는 숫자가 아닙니다.');
      return false;
    } 
  }
  return true;
}
/* ===================================================================
	Function : bubinFormat(obj)
	Return 	 :
	Usage 	 : 법인번호 형식 입력 (onKeyUp 이벤트)
=================================================================== */
function bubinFormat(obj){
 var str = onlyNum(obj.value);
 var leng = str.length;

 switch(leng){
  case  1 :
  case  2 :
  case  3 :
  case  4 :
  case  5 :
  case  6 : obj.value = str; break;
  case  7 :
  case  8 :
  case  9 :
  case 10 :
  case 11 :
  case 12 :
  case 13 : obj.value = str.substring(0, 6) + "-" + str.substring(6, 13);
 }
	return obj;
}

/* ===================================================================
	Function : saupnoFormat(obj)
	Return 	 :
	Usage 	 : 사업자 번호 형식 입력 (onKeyUp 이벤트) - obj의 HTML상에 maxlength="12" 지정요
=================================================================== */
function saupnoFormat(obj){
 var str = onlyNum(obj.value);
 var leng = str.length;
 switch(leng){
  case  1 :
  case  2 :
  case  3 :obj.value = str; break;
  case  4 :
  case  5 :obj.value = str.substring(0, 3) + "-" + str.substring(3, 5); break;
  case  6 :
  case  7 :
  case  8 :
  case  9 :obj.value = str.substring(0, 3) + "-" + str.substring(3, 5) + "-" + str.substring(5, 10);break;
  default :break;
 }
	return obj;
}





// 사용방법 - onlyNumberInput()은 common.js에 구현, 반드시 common.js를 가져와야 한다.
//<input type="text" name="date" maxLength="10" size="10" onKeyDown="onlyNumberInput();" onKeyUp="dateFormat(this, document.frm1);">
/* ===================================================================
	Function : dateFormat(obj, form)
	           폼이 여러개인 경우
	Return 	 : 
	Usage 	 : 날짜 형식 (onKeyUp 이벤트)
=================================================================== */
function dateFormat(obj, form){
	alert("1");
	var str  = obj.value;
	var leng = str.length;
	
	alert("2");
	var n = obj.name;
	var f = form;
	
	alert("3");
	if (obj.value.length == "10"){//alert(formName);
		
		var formName = f+n+".select();" ;
		
		formName;
		
	}else{
		switch(leng){
		  case 1 : 
		  case 2 : 
		  case 3 : 
		  case 4 : obj.value = str; break;
		  case 5 : break;
		  case 6 : obj.value = str.substring(0, 4) + "/" + str.substring(4);
			//연월의 검사 --yesman75
					if(!chkDate(str)) obj.value = "";
					break;  
		  case 7 : break;
		  case 8 : obj.value = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6); 
					if(!chkDate(str)) obj.value = "";
					break;
		}
	}

 //if(!chkDate(str)) obj.value = "";
}

// 사용방법 - onlyNumberInput()은 common.js에 구현, 반드시 common.js를 가져와야 한다.
//<input type="text" name="date" maxLength="10" size="10" onKeyDown="onlyNumberInput();" onKeyUp="dateFormat(this);">
/* ===================================================================
	Function : dateFormat(obj)
	Return 	 : 
	Usage 	 : 날짜 형식 (onKeyUp 이벤트)
=================================================================== */
function dateFormat(form){
	/*
		2004-02-12 구태영(관리팀)
		-> Shift(16), Tab(9), 방향키(38~40) 이벤트시 그냥 리턴
	*/
	if( event.keyCode == 9 || event.keyCode == 16 || (event.keyCode >= 37 && event.keyCode <= 40) ) {
		form.focus();
		return;
	}
	var str  = onlyNum(form.value);
	var leng = str.length;

	var n = form.name;
	var f = "document.frm.";

	if (form.value.length == "10"){//alert(formName);
		
		var formName = f+n+".select();" ;
		
		formName;
		
	}else{
		switch(leng){
		  case 1 : 
		  case 2 : 
		  case 3 : 
		  case 4 : form.value = str; break;
		  case 5 : break;
		  case 6 : form.value = str.substring(0, 4) + "/" + str.substring(4);
			//연월의 검사 --yesman75
					if(!chkDate(str)) form.value = "";
					break;  
		  case 7 : break;
		  case 8 : form.value = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6); 
					if(!chkDate(str)) form.value = "";
					break;
		}
	}

 //if(!chkDate(str)) form.value = "";
}


/* ===================================================================
	Function : strDateFormat(str)
	Return 	 : 
	Usage 	 : 날짜 형식 (onKeyUp 이벤트)
=================================================================== */
function strDateFormat(str){
 var returnDateStr = "";
 var leng = str.length;

 switch(leng){
  case 1 : 
  case 2 : 
  case 3 : 
  case 4 : str; break;
  case 5 : break;
  case 6 : returnDateStr = str.substring(0, 4) + "/" + str.substring(4);
    		if(!chkDate(str)) returnDateStr = "";
  			break; 
  case 7 : break;
  case 8 : returnDateStr = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6); 
    		if(!chkDate(str)) returnDateStr = "";
  			break;  
  case 14 : returnDateStr = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6, 8) + " " + str.substring(8, 10)+ ":" + str.substring(10, 12)+":" + str.substring(12, 14)

 }
 //alert(returnDateStr);
 return returnDateStr;
 //if(!chkDate(str)) obj.value = "";
}

/* ===================================================================
	Function : strDateFormat(str)
	Return 	 : 
	Usage 	 : 날짜 형식 (onKeyUp 이벤트)
=================================================================== */
function strDateFormat2(str){
 var returnDateStr = "";
 var leng = str.length;

 switch(leng){
  case 1 : 
  case 2 : 
  case 3 : 
  case 4 : str; break;
  case 5 : break;
  case 6 : returnDateStr = str.substring(0, 4) + "/" + str.substring(4);
    		if(!chkDate(str)) returnDateStr = "";
  			break; 
  case 7 : break;
  case 8 : returnDateStr = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6); 
    		if(!chkDate(str)) returnDateStr = "";
  			break;  
  case 14 : returnDateStr = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6, 8) + " " + str.substring(8, 10)+ ":" + str.substring(10, 12)+":" + str.substring(12, 14)

 }
 //alert(returnDateStr);
 return returnDateStr;
 //if(!chkDate(str)) obj.value = "";
}


/* ===================================================================
	Function : strDateFormat3(str)
	Return 	 : 
	Usage 	 : 날짜 형식 (onKeyUp 이벤트) 날짜형식아 맞지않으면 원문을 반환
=================================================================== */
function strDateFormat3(str){
 var returnDateStr = "";
 var leng = str.length;

 switch(leng){
  case 1 : 
  case 2 : 
  case 3 : 
  case 4 : str; break;
  case 5 : break;
  case 6 : returnDateStr = str.substring(0, 4) + "/" + str.substring(4);
    		if(!chkDateNoAlert(str)) returnDateStr = str;
  			break; 
  case 7 : break;
  case 8 : returnDateStr = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6); 
    		if(!chkDateNoAlert(str)) returnDateStr = str;
  			break;  
  case 14 : returnDateStr = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6, 8) + " " + str.substring(8, 10)+ ":" + str.substring(10, 12)+":" + str.substring(12, 14)
    		if(!chkDateNoAlert(str)) returnDateStr = str;
  			break; 
 }
 return returnDateStr;
}


// 사용방법 - onlyNumberInput()은 common.js에 구현, 반드시 common.js를 가져와야 한다.
//<input type="text" name="time" maxLength="5" size="5" onKeyDown="onlyNumberInput();" onKeyUp="timeFormat(this);">
/* ===================================================================
	Function : timeFormat(obj)
	Return 	 : 
	Usage 	 : 시간 형식 (onKeyUp 이벤트)
=================================================================== */
function timeFormat(obj){

 var str  = onlyNum(obj.value);
 var leng = str.length;

 switch(leng){
  case 1 :
  case 2 : obj.value = str; break;
  case 3 : break;
  case 4 : obj.value = str.substring(0, 2) + ":" + str.substring(2); 
  			if(!isValidHour( str.substring(0, 2) ) || !isValidMin( str.substring(2, 4) ) ){
				alert("유효한 시간이 아닙니다.");
				obj.value = "";
			}
  			break;  
 }
 //if(!chkDate(str)) obj.value = "";
}

/* ===================================================================
	Function : strTimeFormat(str)
	Return 	 : 
	Usage 	 : 시간 형식 (onKeyUp 이벤트)
=================================================================== */
function strTimeFormat(str){
 var returnDateStr = "";
 var leng = str.length;


 switch(leng){
  case 1 :
  case 2 : returnDateStr = str; break;
  case 3 : break;
  case 4 : returnDateStr = str.substring(0, 2) + ":" + str.substring(2); 
  			if(!isValidHour( str.substring(0, 2) ) || !isValidMin( str.substring(2, 4) ) ){
				alert("유효한 시간이 아닙니다.");
				returnDateStr = "";
			}
  			break;  
  case 6 : returnDateStr = str.substring(0, 2) + ":" + str.substring(2,4) + ":" + str.substring(4); 
  			if(!isValidHour( str.substring(0, 2) ) || !isValidMin( str.substring(2, 4) ) ){
				alert("유효한 시간이 아닙니다.");
				returnDateStr = "";
			}
  			break;
 }
 return returnDateStr;
 //if(!chkDate(str)) obj.value = "";
}


/* --- 날짜 형식 (onKeyUp 이벤트) --- */
function dateFormat(obj)
{
 var str  = onlyNum(obj.value);
 var leng = str.length;

 switch (leng)
 {
  case 1 :
  case 2 :
  case 3 :
  case 4 : obj.value = str; break;
  case 5 :
  case 6 : obj.value = str.substring(0, 4) + "-" + str.substring(4); break;
  case 7 :
  case 8 : obj.value = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6); 
           chkDate(str);
     break;
 }
}

/* --- 숫자만 리턴 --- */
function onlyNum(val)
{
 var num = val;
 var tmp = "";

 for (var i = 0; i < num.length; i ++)
 {
  if (num.charAt(i) >= 0 && num.charAt(i) <= 9)
   tmp = tmp + num.charAt(i);
  else
   continue;
 }
 return tmp;
}

/* --- 날짜 유효성 검사 --- */
function chkDate(str){
 if( str.length == 8 ){ 
  vDate = new Date();
  vDate.setFullYear(str.substring(0, 4));
  vDate.setMonth(str.substring(4, 6));
  vDate.setDate(str.substring(6));

  if( vDate.getFullYear() != str.substring(0, 4) ||
   vDate.getMonth()    != str.substring(4, 6) ||
   vDate.getDate()     != str.substring(6) ){
   //alert("올바르지 못한 날짜 형식입니다.");
   //return;
  }
  else 
  {
  	
  }
 }
}

/**

 * Sets a Cookie with the given name and value.

 *

 * name       Name of the cookie

 * value      Value of the cookie

 * [expires]  Expiration date of the cookie (default: end of current session)

 * [path]     Path where the cookie is valid (default: path of calling document)

 * [domain]   Domain where the cookie is valid

 *              (default: domain of calling document)

 * [secure]   Boolean value indicating if the cookie transmission requires a

 *              secure transmission

 */

function setCookie(name, value, expires, path)

{

    document.cookie= name + "=" + escape(value) +

        ((expires) ? "; expires=" + expires.toGMTString() : "") +

        ((path) ? "; path=" + path : "");

}



/**

 * Gets the value of the specified cookie.

 *

 * name  Name of the desired cookie.

 *

 * Returns a string containing value of specified cookie,

 *   or null if cookie does not exist.

 */

function getCookie(name)

{

    var dc = document.cookie;



    var prefix = name + "=";

    var begin = dc.indexOf("; " + prefix);

    if (begin == -1)

    {

        begin = dc.indexOf(prefix);

        if (begin != 0) return null;

    }

    else

    {

        begin += 2;

    }

    var end = document.cookie.indexOf(";", begin);

    if (end == -1)

    {

        end = dc.length;

    }

    return unescape(dc.substring(begin + prefix.length, end));

}

function setfocus(obj, len, next){
	if(obj.value.length == len)
		next.focus();
}

/* ===================================================================
	Function : isMinor(str)
	Return 	 : 
	Usage 	 : 변액보험 펀드변경용 미성년자여부 체크 : 20년전의 현재일 이후인지만 체크 
=================================================================== */
function isMinor(ssn)
{
   var birthYear; 
   var birthMon;
   var birthDay;
   var today = new Date();

   /* current date */
   var curYear = today.getYear();
   var curMon = today.getMonth();
   var curDay = today.getDate();
   curMon = (curMon*1)+1;

   /* analyze social number */
   sz7th = ssn.substring(6,7);

   if(sz7th == "1" || sz7th == "2")
   {
      birthYear = ("19" + ssn.substring(0,2));
   }
   else if(sz7th == "3" || sz7th == "4")
   {
      birthYear = ("20" + ssn.substring(0,2));
   }
   else
   {
              // 외국인 등 
   }

   birthMon = ssn.substring(2,4);
   birthMon = (birthMon*1);
   if(birthDay < 1 || birthDay > 12)
   {
//      alert("유효하지 않은 주민등록번호입니다.");
      return 0; 
   }

   birthDay = ssn.substring(4,6);
   birthDay = (birthDay*1);
   if(birthDay < 1 || birthDay > 31)
   {
//      alert("유효하지 않은 주민등록번호입니다.");
      return 0; 
   }

   age = (curYear*1) - birthYear;
   aMon = curMon - birthMon;
   aDay = curDay - birthDay;
//   alert("birthYear : "+birthYear);
//   alert("(curYear*1) : "+(curYear*1));
//   alert("curMon : "+curMon);
//   alert("birthMon : "+birthMon);
//   alert("age : "+age);
   
//   if(aMon < 0)
//   {
//      age = age-1; 
//   }
//   else if(aMon == 0)
//   {
//      aDay =(curDay*1) - birthDay;
//      if(aDay < 0)
//      {
//         age = age+1;
//      }
//   }
//   alert("age : "+age);
   if( age == 20){  // 년도가 20년 전인 경우 월 체크 
   	   if(aMon < 0)
   	   {
   	      age = age-1; 
   	   }
   	   else if(aMon == 0){  // 월이 동일한 경우 일 체크 
   	   	  if(aDay >= 0){
   	   	     age = age+1;
   	   	  }
   	   } 
   	   else if(aMon > 0){
   	   	  age = age+1;
   	   } 	
   }
   
   if(age < 0)
   {
//      alert("유효하지 않은 주민등록번호입니다.");
      return 0; 
   }
   else if( age <= 20)
   {
 //     alert("미성년자입니다.");
      return 9; 
   }

   return 1;
}

/*=============================================================================
  Function : goWebMailService
  Return   :  
  Usage    : 
  		loginYN  : Y : 로그인 함
		loginYN  : N : 로그인 하지 않음
  		mailYN : N : 로긴한 고객의 웹메일 서비스 미사용시 회원정보변경으로 링크(2006.12.08)
  		mailYN : Y : 로긴한 고객의 웹메일 서비스 사용시 메일로 링크(2006.12.08)
=============================================================================*/
function goWebMailService(loginYN,mailYN,target){

	/* current date */
	var today = new Date();
	var curYear = today.getYear();
	var curMon = today.getMonth();
	curMon = (curMon*1)+1;
	var curDay = today.getDate();
	
	var curHours = today.getHours();
	var curMinutes = today.getMinutes();

	if (target == "") target = "_self";
	
	
	//if( (curYear+curMon+curDay) == "2034"|| (curYear+curMon+curDay) == "2035"|| ((curYear+curMon+curDay) == "2036" && parseInt(curHours) < 4 )){//20061216,20061217
		
	//	location.href="/common/cn_notice.do?p_cmd=view&p_brd_id=1&p_wrt_no=579";
		
	//}else{

	
	if(loginYN == "Y"){
	
		if(mailYN == "Y"){
			if(target == "_blank"){
				window.open('/common/cnuc_unity.do','','');
			}else{
				location.href="/common/cnuc_unity.do";				
			}

		}else{
		
			question = confirm(" 고객님께서는 웹 메일 서비스를 신청하지 않으셨습니다. \n 웹 메일서비스를 신청하시려면  '확인' 버튼을 선택하십시오."); //CN_MSG_0000046
	
		 	if(question == true)
		  	{
		      location.href="/cyber/cy_gate.do?p_cmd=link&link=/common/cnuc_kyobomail.do";
		  		//XecureNavigate("/common/cnuc_kyobomail.do","_top");
		  		//XecureNavigate("/common/cnuc_member.do?p_cmd=view","_top");
		  		//location.href="/common/cnuc_member.do?p_cmd=view";
		  	} 
	
		}

	
	}else{
		location.href="http://mail.kyobo.co.kr";
	}
	
	//}
}

