
/**
 * 주민등록번호 체크
 * @param s1 주민번호 앞 6자리
 * @param s2 주민번호 뒤 7자리
 * @return
 */
function fnChkSSN(s1, s2) {
	
	if( s1 == null || s2 == null )
		return false;	
	if( s1.length != 6 || s2.length != 7 )
		return false;
	
	n = 2;
	sum = 0;
	for (i=0; i<s1.length; i++)
		sum += parseInt(s1.substr(i, 1)) * n++;
	for (i=0; i<s2.length-1; i++) {
		sum += parseInt(s2.substr(i, 1)) * n++;
		if (n == 10) n = 2;
	}
	c = 11 - sum % 11;
	if (c == 11) c = 1;
	if (c == 10) c = 0;
	if (c != parseInt(s2.substr(6, 1))) return false;
	else return true;
}

/**
 * 외국인등록번호 체크
 * @param s1 외국인번호 앞 6자리
 * @param s2 외국인번호 뒤 7자리
 * @return
 */
function fnChkFRN(s1, s2) { 
   var sum = 0; 
   var odd = 0; 
   buf = new Array(13);
   
   if( s1 == null || s2 == null )
	   return false;	
   if( s1.length != 6 || s2.length != 7 )
	   return false;
   
   var fgnno = "" + s1 + s2;

   for(i=0; i<13; i++) buf[i] = parseInt(fgnno.charAt(i)); 

   odd = buf[7]*10 + buf[8]; 

   if(odd%2 != 0) return false; 

   if((buf[11]!=6) && (buf[11]!=7) && (buf[11]!=8) && (buf[11]!=9)) return false; 

   multipliers = [2,3,4,5,6,7,8,9,2,3,4,5]; 

   for(i=0, sum=0; i<12; i++) sum += (buf[i] *= multipliers[i]); 

   sum = 11 - (sum%11); 

   if(sum >= 10) sum -= 10; 

   sum += 2; 
   if(sum >= 10) sum -= 10; 

   if(sum != buf[12]) return false;

   return true; 
}

/**
 * 법인등록번호 체크
 * @param s1 법인번호 앞 6자리
 * @param s2 법인번호 뒤 7자리
 * @return
 */
function fnChkCRN(s1, s2) {
	/***  법인번호 예시
	110111    1130494   1712110008647   1156110020253   1101110008262
	1101360027690   1101110196207   1201110010174   1101110303183
	1101111379464   1201110003822   1101110343014   1201110001371
	1101110030819   1901110002317
	*/
	var err = 0;
	
	if( s1 == null || s2 == null )
	   return false;	
   if( s1.length != 6 || s2.length != 7 )
	   return false;
	
	var objchar = s1;
	var objchar2 = s2;

	for(CB_i=0;CB_i<objchar2.value.length;CB_i++){
		var bubinnum=objchar2.value.charAt(CB_i);
		if (bubinnum < '0' || bubinnum > '9'){			
			return false;
		}
	}

	if(objchar2.value) {
		 if(objchar2.value.length == 7) {

			var fullbubin = objchar.value + objchar2.value;
			var hap = 0;
			var j = 0;

			for (CB_ii=0; CB_ii<12;CB_ii++){
				if(j < 1 || j > 2){ j=1; }
				hap = hap + (parseInt(fullbubin.charAt(CB_ii)) * j);
				j++;
			}
			
			if ((10 - (hap%10))%10 != parseInt(fullbubin.charAt(12))){
				err=1;
			}

			if (err == 1){
				return false;
			}
		}  
	}
	return true;
}

/**
 * 사업자등록번호 체크
 * @param strNumb
 * @return
 */
function fnChkCPN(strNumb){   
    strNumb = strNumb.replace(/\D/gi, "");
    if (strNumb.length != 10) {   
        return false;   
    }  
  
    sumMod = 0;   
    sumMod += parseInt(strNumb.substring(0,1));   
    sumMod += parseInt(strNumb.substring(1,2)) * 3 % 10;   
    sumMod += parseInt(strNumb.substring(2,3)) * 7 % 10;   
    sumMod += parseInt(strNumb.substring(3,4)) * 1 % 10;   
    sumMod += parseInt(strNumb.substring(4,5)) * 3 % 10;   
    sumMod += parseInt(strNumb.substring(5,6)) * 7 % 10;   
    sumMod += parseInt(strNumb.substring(6,7)) * 1 % 10;   
    sumMod += parseInt(strNumb.substring(7,8)) * 3 % 10;   
    sumMod += Math.floor(parseInt(strNumb.substring(8,9)) * 5 / 10);   
    sumMod += parseInt(strNumb.substring(8,9)) * 5 % 10;   
    sumMod += parseInt(strNumb.substring(9,10));   
  
    if (sumMod % 10 != 0) {   
        return false;   
    }   
    return true;   
}

/**
 * 전화번호체크
 * @param n1 전화번호 앞 3자리
 * @param n2 전화번호 중간 3-4자리
 * @param n3 전화번호 끝 4자리
 * @return
 */
function fnChkTEL(n1, n2, n3){
	var regexTel = /^\d{2,3}-\d{3,4}-\d{4}$/;
	var strNumb = "" + n1 + "-" + n2 + "-" + n3;
	return regexTel.test(strNumb);
}

/**
 * 휴대폰번호체크
 * @param n1 휴대폰번호 앞 3자리
 * @param n2 휴대폰번호 중간 3-4자리
 * @param n3 휴대폰번호 끝 4자리
 * @return
 */
function fnChkMOB(n1, n2, n3){
	var regexMob = /^\d{3}-\d{3,4}-\d{4}$/;
	var strNumb = "" + n1 + "-" + n2 + "-" + n3;
	return regexMob.test(strNumb);
}

/**
 * 쿠키 저장
 * @param name 쿠키명
 * @param value 쿠키값
 * @param expiredays 유효일( 일단위 )
 * @return
 */
function fnSetCookie( name, value, expiredays ) {
    var todayDate = new Date();
    todayDate.setDate( todayDate.getDate() + expiredays );
    document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}

/**
 * 쿠키 불러오기
 * @param name 쿠키명
 * @return
 */
function fnGetCookie( 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 "";
}

/**
 * 윈도우 새창 호출
 * @param url 팝업창 URL
 * @param popupName 팝업창 이름
 * @param width 팝업창 가로 길이
 * @param height 팝업창 세로 길이
 * @return
 */
function fnOpenPop(url, popupName, width, height){
	window.open(url, popupName, "width="+width+",height="+height+",menubar=no,status=no,titlebar=no,scrollbars=no,location=no,toolbar=no");
}

/**
 * 천단위 콤마 찍기
 * @param n
 * @return
 */
function fnSetComma(n) {
  var reg = /(^[+-]?\d+)(\d{3})/;   // 정규식
  n += '';                          // 숫자를 문자열로 변환

  while (reg.test(n))
    n = n.replace(reg, '$1' + ',' + '$2');

  return n;
}

/**
 * 문자열의 바이트 길이 계산
 * @param str 계산할 문자열
 * @return
 */
function fnGetByteLength(str){
	var st_len = 0;
	for(var i=0;i<obj.value.length;i++){
		es_len = escape(obj.value.charAt(i));
		if ( es_len.length == 1 ) st_len ++;
		else if ( es_len.indexOf("%u") != -1 ) st_len += 2;
		else if ( es_len.indexOf("%") != -1 ) st_len += es_len.length/3;
	}	
	return st_len;
}

/**
 * SMS 80byte 체크
 * @param obj Value값을 조회할 Object
 * @param innerId 결과값을 세팅할 Object ID
 * @return
 */
function fnChkSms(obj,innerId){
	innerObj = document.getElementById(innerId);
	var commentLenCheckTmpStr = "";
	if(innerObj!=null){ 
		var st_len = 0;
		if( obj.value.length == 0 ){
			innerObj.innerHTML = st_len + ' / 80 bytes (한글40자)';
		} else {
			for(var i=0;i<obj.value.length;i++){
				es_len = escape(obj.value.charAt(i));
				if ( es_len.length == 1 ) st_len ++;
				else if ( es_len.indexOf("%u") != -1 ) st_len += 2;
				else if ( es_len.indexOf("%") != -1 ) st_len += es_len.length/3;  
					
				if(st_len > 80){
					alert("최대 한글40자, 영문80 이내까지 입력 가능합니다.");
					obj.value = commentLenCheckTmpStr;
					break;
				}else{
					result = true;
					commentLenCheckTmpStr = commentLenCheckTmpStr + obj.value.charAt(i);
					innerObj.innerHTML = st_len + ' / 80 bytes (한글40자)';
				}
			}
		}
	}else{
		alert("페이지 구성에 실패했습니다.");
	}
}

/**
 * 즐겨찾기 저장
 * @param url 즐겨찾기 저장할 URL
 * @param name 즐겨찾기 명칭
 * @return
 */
function fnAddFavorite(url, name){
	window.external.addfavorite(url, name);
}

