﻿var ValidUtil = 
{
    //버전
    jsver:"1.0",   
    //길이체크
    //@strValue : 길이비교를 검사를 위한 값
    //@strName : 오류시 나타내야할 컬럼명 (예:주민등록번호)   
    //@minLength : 최소자리수
    //@highLength : 최대자리수   
    //@isFocus : 오류시 해당 객체에 포커스를 이동할 것인가?
    //@isSelect : 오류시 해당 객체의 값을 선택할 것인가?[우선 순위]
    LengthCheck : function ( obj, strName, minLength, highLength, isFocus, isSelect)
    {    
	    var nsize = obj.value.length;
	    var mx = highLength;
	    
	    if ( nsize < minLength || nsize > mx) 
	    {
	        if (minLength == highLength)
	        {
	            msg = "[" + strName + "] : " + minLength + "자리로 입력하십시요.";
	        }
	        else
	        {
	            msg = "[" + strName + "] : " + minLength + "자 이상 " + highLength + "자 이하 입력하십시요.";
	        }
	        
		    alert(msg);
		    
		    if (isFocus) obj.focus();		    
		    if (isSelect && obj.tagName == "INPUT")
		    {
		        obj.focus();
		        obj.select();
		    }
		    event.returnValue = false;
		    return false;
	    }
	    else
	    {
		    return true;
        }
    },
    juminCheck : function(obj, headNum, tailNum)
    {
	    var h1=headNum.substring(0,1);
	    var h2=headNum.substring(1,2);
	    var h3=headNum.substring(2,3);
	    var h4=headNum.substring(3,4);
	    var h5=headNum.substring(4,5);
	    var h6=headNum.substring(5,6);

	    var hap = h1*2 + h2*3 + h3*4 + h4*5 + h5*6 + h6*7;

	    var t1=tailNum.substring(0,1);
	    var t2=tailNum.substring(1,2);
	    var t3=tailNum.substring(2,3);
	    var t4=tailNum.substring(3,4);
	    var t5=tailNum.substring(4,5);
	    var t6=tailNum.substring(5,6);
	    var t7=tailNum.substring(6,7);

	    hap = hap + t1*8 + t2*9 + t3*2 + t4*3 + t5*4 + t6*5;

	    hap=hap%11;
	    hap=11-hap;
	    hap=hap%10;

	    if (hap != t7)
	    {
	        msg = "주민등록번호 형식이 올바르지 않습니다.";
            alert(msg);
            obj.value = "";
            obj.focus();
		    event.returnValue = false;
            return false; // 형식에 맞지 않을때
        } 
        else 
        {
		    return true;
	    }
    },
    IsChecked : function(from, ary)
    {
        for (var i = 0 ; i < ary.length ; i++)
	    {
		    if(from[ary[i]].checked)
		    {		    
		        return true;
		    }
	    }
	    return false;
    },
    ValueEqualsCheck : function(obj, obj2, strName, strName2, isFocus, isSelect)
    {
        if (obj.value != obj2.value)
        {
            msg = "[값불일치] : " + strName + "와 " + strName2 + " 값이 일치하지 않습니다.";
            alert(msg);
            if (isFocus) obj2.focus();		    
		    if (isSelect && obj2.tagName == "INPUT")
		    {
		        obj2.focus();
		        obj2.select();
		    }
		    event.returnValue = false;
		    return false;
        }
        else
        {
            return true;
        }        
    },    
    SelectValueCheck : function(obj, strName, defaultValue, isFocus)
    {
        if (obj.value == defaultValue) 
        {
            msg = "[" + strName + "]을(를) 선택하세요.";
            alert(msg);
		    if (isFocus) obj.focus();
		    event.returnValue = false;
		    return false;
        }
        else
        {
            return true;
        }
        
    },    
    //문자와 숫자만 허용하는 경우
    //@checkstr : 체크할 문자열 
    //@strName : 오류시 나타내야할 컬럼명 (예:주민등록번호) 
    //@isFocus : 오류시 해당 객체에 포커스를 이동할 것인가?
    //@isSelect : 오류시 해당 객체의 값을 선택할 것인가?[우선 순위]    
    isAlphaNumeric : function ( obj, strName, isFocus, isSelect)
    {
        var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        var checkStr = obj.value;
        for (i = 0;  i < checkStr.length;  i++)
        {
	        ch = checkStr.charAt(i);
	        for (j = 0;  j < checkOK.length;  j++)
		        if (ch == checkOK.charAt(j))
			        break;
	        if (j == checkOK.length)
	        {
	            msg = "[" + strName + "] : " + "영문자와 숫자로만 입력하십시요.";   
	            alert(msg);
		        if (isFocus) obj.focus();		    
		        if (isSelect && obj.tagName == "INPUT")
		        {
		            obj.focus();
		            obj.select();	            
		        }                       
		        event.returnValue = false;
	            return false;
	        }
        }
        return true;
    },
    //문자와 숫자만 허용하는 경우
    //@checkstr : 체크할 문자열 
    //@strName : 오류시 나타내야할 컬럼명 (예:주민등록번호) 
    //@isFocus : 오류시 해당 객체에 포커스를 이동할 것인가?
    //@isSelect : 오류시 해당 객체의 값을 선택할 것인가?[우선 순위]    
    isAlphaNumericUnderBar : function ( obj, strName, isFocus, isSelect)
    {
        var checkOK = "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        var checkStr = obj.value;
        for (i = 0;  i < checkStr.length;  i++)
        {
	        ch = checkStr.charAt(i);
	        for (j = 0;  j < checkOK.length;  j++)
		        if (ch == checkOK.charAt(j))
			        break;
	        if (j == checkOK.length)
	        {
	            msg = "[" + strName + "] : " + "영문자, 숫자, 언드바(_)로만 입력하십시요.";   
	            alert(msg);
		        if (isFocus) obj.focus();		    
                if (isSelect && obj.tagName == "INPUT")
		        {
		            obj.focus();
		            obj.select();	            
		        }            
		        event.returnValue = false;
	            return false;
	        }
        }
        return true;
    },
    //숫자만 허용하는 경우
    //@checkstr : 체크할 문자열 
    //@strName : 오류시 나타내야할 컬럼명 (예:주민등록번호) 
    //@isFocus : 오류시 해당 객체에 포커스를 이동할 것인가?
    //@isSelect : 오류시 해당 객체의 값을 선택할 것인가?[우선 순위]    
    isNumeric : function ( obj, strName, isFocus, isSelect)
    {
        var checkOK = "0123456789";
        var checkStr = obj.value;
        for (i = 0;  i < checkStr.length;  i++)
        {
	        ch = checkStr.charAt(i);
	        for (j = 0;  j < checkOK.length;  j++)
		        if (ch == checkOK.charAt(j))
			        break;
	        if (j == checkOK.length)
	        {
	            msg = "[" + strName + "] : " + "숫자만 입력하십시요.";   
	            alert(msg);
		        if (isFocus) obj.focus();		    
		        if (isSelect && obj.tagName == "INPUT")
		        {
		            obj.focus();
		            obj.select();	            
		        }
		        event.returnValue = false;
	            return false;
	        }
        }
        return true;
    },    
    //버젼반환
    getVersion:function()
    {   
        return this.jsver;
    }
}