var NUM = "0123456789";	
var SMALL_ALPHA = "abcdefghijklmnopqrstuvwxyz";
var ALPHA = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"+SMALL_ALPHA;

// 정규화 검사 정규화 외에건 false
function CheckRegular (str,pattern) {
	var i;
	for( i=0; i < str.length; i++ ) {
		if ( pattern.indexOf(str.substring(i, i+1)) < 0 ) {
			return false;
		}
	}
	return true;
}

// 정규화에 포함 안되있어야함
function CheckRegularNot (str,pattern) {
	var i;
	for( i=0; i < str.length; i++ ) {
		if ( pattern.indexOf(str.substring(i, i+1)) >= 0 ) {
			return false;
		}
	}
	return true;
}

// 문자 길이
function StringSize (str) {
	var i;
	var len = 0;
	for ( i=0 ; i<str.length; i++) {
		if ( str.charCodeAt(i) > 255 ) { // 한글일때
			len += 2;
		} else {
			len ++;
		}
	}
	return len;
}


// 영문 길이 검사
function CheckLen (str, nMin, nMax, sName ,bType ) {
	var nStrSize = StringSize(str);
	var sMsg = "";

	switch(bType)
	{
		case "K":
			if (nStrSize == 0 && nMin > 0) {
				sMsg = "[" + sName + "]을(를) 입력해주세요.";
				alert(sMsg);
				return false;
			}

			if (nMin == 0 && nStrSize > nMax) {
				sMsg = "[" + sName + "]을(를) " + Math.floor(nMax/2) + "이하로 입력해주세요.";
				alert(sMsg);
				return false;
			}

			if (nStrSize < nMin || nStrSize > nMax) {
				sMsg = "[" + sName + "]을(를) " + Math.floor(nMin/2) + "자 이상 " + Math.floor(nMax/2) + "자 이하로로 입력해주세요.";
				alert(sMsg);
				return false;
			}
		break;

		case "E":
			if (nStrSize == 0 && nMin > 0) {
				sMsg = "[" + sName + "]을(를) 입력해주세요.";
				alert(sMsg);
				return false;
			}

			if (nMin == 0 && nStrSize > nMax) {
				sMsg = "[" + sName + "]을(를) " + nMax + "이하로 입력해주세요.";
				alert(sMsg);
				return false;
			}

			if (nStrSize < nMin || nStrSize > nMax) {
				sMsg = "[" + sName + "]을(를) " + nMin + "자 이상 " + nMax + "자 이하로로 입력해주세요.";
				alert(sMsg);
				return false;
			}
		break;
	}
	return true;	
}


// Jumin Check Function
function CheckJumin (sJumin1, sJumin2) {

	var chk = 0;
	var nYear = sJumin1.substring(0,2);
	var nMondth = sJumin1.substring(2,4);
	var nDay = sJumin1.substring(4,6);
	var nSex = sJumin2.charAt(0);

	if (!CheckRegular(sJumin1, NUM)) {
		alert("[주민등록번호 앞부분]에 잘못된 문자가 있습니다.");
		return -1;
	}

	if ( sJumin1.length!=6 ||  nMondth<1 || nMondth>12 || nDay<1 || nDay>31) {
		alert("[주민등록번호 앞부분]이 잘못되었습니다.");
		return -1;
	}
	
	if (!CheckRegular(sJumin2, NUM)) {
		alert("[주민등록번호 뒷부분]에 잘못된 문자가 있습니다.");
		return 0;
	}
	
	if ( sJumin2.length!=7 || (nSex!=1 && nSex!=2 && nSex!=3 && nSex!=4) ) {
		alert("[주민등록번호 뒷부분]이 잘못되었습니다.");
		return 0;
	}
	
	var i;

	for (i=0; i<6; i++) {
		chk += ( (i+2) * parseInt( sJumin1.charAt(i) ));
	}
	
	for (i=6; i<12; i++) {
		chk += ( (i%8+2) * parseInt( sJumin2.charAt(i-6) ));
	}
	
	chk = 11 - (chk%11);
	chk %= 10;
	
	if (chk != parseInt( sJumin2.charAt(6))) {
		alert("유효하지 않은 [주민등록번호]입니다.");
		return -1;
	}
	
	return 1;
}

// 사업자번호 체크 
  function CheckCom(obj, step) { 
    var err = 0; 

    if(step == "submit"){ 
        var objchar1 = eval("document.all."+ obj + "1"); 
        var objchar2 = eval("document.all."+ obj + "2"); 
        var objchar3 = eval("document.all."+ obj + "3"); 

        if(objchar1.value.length != 3){ 
            alert("사업자등록번호를 정확히 입력하여 주세요1."); 
            objchar1.value = ""; 
            objchar1.focus(); 
            return false; 
        } 
        if(objchar2.value.length != 2){ 
            alert("사업자등록번호를 정확히 입력하여 주세요2."); 
            objchar2.value = ""; 
            objchar2.focus(); 
            return false; 
        } 
        if(objchar3.value.length != 5){ 
            alert("사업자등록번호를 정확히 입력하여 주세요3."); 
            objchar3.value = ""; 
            objchar3.focus(); 
            return false; 
        } 

    }else if(step == "write"){ 
        var objchar1 = eval("document.all."+ obj.name.substring(0, obj.name.length - 1) + "1"); 
        var objchar2 = eval("document.all."+ obj.name.substring(0, obj.name.length - 1) + "2"); 
        var objchar3 = eval("document.all."+ obj.name.substring(0, obj.name.length - 1) + "3"); 
    } 

    for(CC_i=0;CC_i<objchar3.value.length;CC_i++){ 
        var comnum=objchar3.value.charAt(CC_i); 
        if (comnum < '0' || comnum > '9'){ 
            alert("사업자등록번호는 숫자만 가능합니다."); 
            objchar3.value = objchar3.value.substring(0, CC_i);; 
            objchar3.focus(); 
            return false; 
        } 
    } 

    if(objchar3.value) { 
         if(objchar3.value.length == 5) { 


            var fullcom = objchar1.value + objchar2.value + objchar3.value; 
            var hap = 0; 
            var CC_j = 0; 
            var cal_arr = new Array("1","3","7","1","3","7","1","3","5"); 
            for (CC_ii=0; CC_ii<9;CC_ii++){ 
                hap = hap + (parseInt(fullcom.charAt(CC_ii)) * parseInt(cal_arr[CC_j])); 
                CC_j++; 
            } 

            hap = hap + parseInt((parseInt(fullcom.charAt(8))*5)/10); 

            if ((10 - (hap%10))%10 != parseInt(fullcom.charAt(9))){ 
                err=1; 
            } 

            if (err == 1){ 
                alert("올바른 사업자 번호가 아닙니다."); 
                objchar1.value = ""; 
                objchar2.value = ""; 
                objchar3.value = ""; 
                objchar1.focus(); 
                return false; 
            } 
        }  
    } 
    return true; 
} 

// 법인번호 체크 
  function CheckBubin(obj, step) { 
    var err = 0; 

    if(step == "submit"){ 
        var objchar = eval("document.all."+ obj + "1"); 
        var objchar2 = eval("document.all."+ obj + "2"); 

        if(objchar.value.length != 6){ 
            alert("법인등록번호를 정확히 입력하여 주세요."); 
            objchar.value = ""; 
            objchar.focus(); 
            return false; 
        } 
        if(objchar2.value.length != 7){ 
            alert("법인등록번호를 정확히 입력하여 주세요."); 
            objchar2.value = ""; 
            objchar2.focus(); 
            return false; 
        } 

    }else if(step == "write"){ 
        var objchar = eval("document.all."+ obj.name.substring(0, obj.name.length - 1) + "1"); 
        var objchar2 = eval("document.all."+ obj.name.substring(0, obj.name.length - 1) + "2"); 
    } 


    for(CB_i=0;CB_i<objchar2.value.length;CB_i++){ 
        var bubinnum=objchar2.value.charAt(CB_i); 
        if (bubinnum < '0' || bubinnum > '9'){ 
            alert("법인등록번호는 숫자만 가능합니다."); 
            objchar2.value = objchar2.value.substring(0, CB_i);; 
            objchar2.focus(); 
            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){ 
                alert("올바른 법인등록번호가 아닙니다."); 
                objchar.value = ""; 
                objchar2.value = ""; 
                objchar.focus(); 
                return false; 
            } 
        }  
    } 
    return true; 
} 

// 숫자 comma 찍기
function comma(obj){
	var n = obj.value;
	obj.value = Number(String(n).replace(/\..*|[^\d]/g,"")).toLocaleString().slice(0,-3);
	return;
}

function checkSPemail(strEmail) {
	var regDoNot = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
	var regMust = /^[a-zA-Z0-9\-\.\_]+\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3})$/;
	if ( !regDoNot.test(strEmail) && regMust.test(strEmail) )
		return true;
	else
		return false;
} 

String.prototype.trim = function(){
        return this.replace(/(^\s*|\s*$|\n)/g,"");
} 