﻿
// mobile check 01023456789
function IsMobileNo(ctlId)
{
    var ctl = document.getElementById(ctlId);
    
    if( ctl == null ) 
    {
        alert('mobile text control not found!');
        return false;
    }
    
    var mobileRegex = /^0(?:10|11|16|17|18|19)(?:\d{3}|\d{4})\d{4}$/;     
 
    if( ctl.value.match(mobileRegex) )
        return true;

    alert('핸드폰 번호형식이 올바르지 않습니다.');    
    ctl.focus();
    
    return false;
}

function IsNumber(value)
{
    if( value == null || value == 'defined' ) return false;
        
	value = value.trim();	
	
	if ( value.length == 0 ) return false;
	
	if( isNaN(parseInt(value)) ) return false;	

	return true;
}

function IsTelNo(value)
{
	value = value.trim();

	if (!((IsNumber(value)) && (value.substring(0,1) == "0"))) return false;
	if (value.substring(0,2) == "02") {
		if ((value.length > 10) || (value.length < 9)) return false;
	}else if ((value.length > 11) || (value.length < 10)) return false;
	return true;
}

function IsJuminNo(jumin1, jumin2)
{
	jumin1 = jumin1.trim();
	jumin2 = jumin2.trim();
    if (!IsNumber(jumin1) || !IsNumber(jumin2) ) return false;
     
    var chk = 0;
    var nYear = jumin1.substring(0,2);
    var nMondth = jumin1.substring(2,4);
    var nDay = jumin1.substring(4,6);
    var nSex = jumin2.charAt(0);
        
    if ( jumin1.length!=6 ||  nMondth<1 || nMondth>12 || nDay<1 || nDay>31) 
    {
            return false;
    }    
    
    if ( jumin2.length!=7 || (nSex!=1 && nSex!=2 && nSex!=3 && nSex!=4 && nSex!=5 && nSex!=6 && nSex!=7 && nSex!=8) ) 
    {
            return false;
    }
    
    if ( nSex==5 || nSex==6 || nSex==7 || nSex==8 ) 
    {
        var sum=0;
        var odd=0;
        var PID = jumin1 + jumin2;
        buf = new Array(13);
        for (i=0; i<13; i++) buf[i] = parseInt(PID.charAt(i));
        odd = buf[7]*10 + buf[8];
        if (odd%2 != 0) 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;
    } 
    else 
    {
        var i;
        for (i=0; i<6; i++) 
        {
                chk += ( (i+2) * parseInt( jumin1.charAt(i) ));
        }
        
        for (i=6; i<12; i++) 
        {
                chk += ( (i%8+2) * parseInt( jumin2.charAt(i-6) ));
        }
        
        chk = 11 - (chk%11);
        chk %= 10;
        if (chk != parseInt( jumin2.charAt(6))) 
        {
                return false;
        }
    }
    
    return true;
}

// 사업자 등록번호 검사
function IsBizNo(bizNo1, bizNo2, bizNo3)
{
	bizNo1 = bizNo1.trim();
	bizNo2 = bizNo2.trim();
	bizNo3 = bizNo3.trim();

	/*  사업자등록번호 검사 JScript
	  bizID는 숫자만 10자리로 해서 문자열로 넘긴다.*/
	var bizID = bizNo1 + bizNo2 + bizNo3;
	var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1);
	var tmpBizID, i, chkSum=0, c2, remander;
	for (i=0; i<=7; i++) chkSum += checkID[i] * bizID.charAt(i);
	c2 = '0' + (checkID[8] * bizID.charAt(8));
	c2 = c2.substring(c2.length - 2, c2.length);
	chkSum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1));
	remander = (10 - (chkSum % 10)) % 10 ;
	
	if (Math.floor(bizID.charAt(9)) == remander) return true; 
	
	return false;
}

// ISBN 검사
function IsISBN(isbnNo)
{
	isbnNo = isbnNo.trim();

	var Status = '';
	var ISBN = isbnNo;
	var check_digit = 0;
	var checksum;
	checksum = 0;
	for (i = 0; i < 10; i++)
	{
		if (ISBN.charAt(9) == 'X') { check_digit = 10; } 
		else { check_digit = parseInt(ISBN.charAt(9)); } 
		
		checksum = checksum + (i+1)*check_digit;
	}
		
	cksum_mod_11 = checksum%11;
	
	if (cksum_mod_11 == 0) return true;
	
	return false;
}

function IsMail(mail) { 
	mail = mail.trim();       

       re=/^[0-9a-z]([-_\.]?[0-9a-z])*@[0-9a-z]([-_\.]?[0-9a-z])*\.[a-z]{2,3}$/i; 
       if(re.test(mail)) 
       { 
               return true; 
       } 
       else 
       { 
               return false; 
       } 
} 

function IsRegexFormat(ctlId, formatString, unValidFormatAlertString)
{
    var ctl = document.getElementById(ctlId);
    
    if( ctl == null )
    {
        alert('not found control');
        return false;
    }
    
    var result = ctl.value.match(formatString);
    
    if( result == null )
    {
        alert('invalid regular expression string');
        return false;
    }
    
    if( reusult == false)
    {
        alert(unValidFormatAlertString);
        ctl.focus();
    }
    
    return result;
}

/*
    업로드할 포맷을 검사한다.
    uploadCtl : 폼 객체
    formatString : .gif|.aspx|.js|
*/
function IsUploadFormat(uploadCtl, formatString, unValidFormatAlertString)
{
    if( uploadCtl == null )
    {
        alert('업로드할 파일을 입력해 주십시오.');
        uploadCtl.focus();            
    }    
    else if ( uploadCtl.value.match(/( + formatString + )$/) )
        return true;
    else
        alert(unValidFormatAlertString);
        
    return false;
}

