﻿function SetControlFocus(controlName) {
    var obj = document.getElementsByName(controlName)[0];

    if (obj != null) {
        obj.focus();
    }
    else {
        alert(controlName + "개체를 찾을 수 없습니다.");
        return false;
    }
}   

// 지정된 값의 공백제거후 반환 :  NTS_fn_ClearBlank(theValue)
// 반환(string) : temp
// 파라미터     : theValue
function NTS_fn_ClearBlank(theValue) {
    var temp = "";
    theValue = '' + theValue.toUpperCase();
    splitString = theValue.split(" ");
    for (i = 0; i < splitString.length; i++)  temp += splitString[i];
    return temp;
}


// 컨트롤의 값이 공백 인지를 체크 :  NTS_fn_ValueCheck(controlName, msg)
// 반환(bool)   : 공백(false), 값 있으면(true)
// 파라미터(2)  : controlName(컨트롤명), msg(출력메세지)
function NTS_fn_ValueCheck(controlName, msg) {
    
    var theObject = document.getElementsByName(controlName)[0];
    
    if (theObject != null) {
        if (NTS_fn_ClearBlank(theObject.value) == '') {
            alert(msg);
            try { theObject.focus(); }
            catch(e) { return false; }
            return false;
        }
        else {
            return true;
        }
    }
    else {
        alert(controlName + "을 찾을 수 없습니다.");
        return false;
    }
}

// 컨트롤 값이 숫자인지 체크 : NTS_fn_NumberCheck(controlName, msg) 
// 반환(bool)   : 숫자(true) , 문자(false)
// 파라미터(2)  : controlName(컨트롤명), msg(출력메세지)
function NTS_fn_NumberCheck(controlName, msg) 
{
    var theObject = document.getElementsByName(controlName)[0];
    if (theObject != null) 
    {
        var temp = NTS_fn_ClearBlank(theObject.value);
        if (temp != '') {
            for (i = 0; i < temp.length; i++) { 
                tempI = temp.charAt(i);

                if (tempI < '0' || tempI > '9') {
                    alert(msg);
                    
                    try  { theObject.focus(); }
                    catch(e) { return false;   }
                    
                    return false;
                }
            }
            return true;
        }

        else 
        {
            alert(msg);         
            try  { theObject.focus(); }
            catch(e) { return false;   }
                    
            return false;
        }
    }
    else {
        alert(controlName + "을 찾을 수 없습니다.");
        return false;
    }
}


// 컨트롤 값이 숫자인지 체크 : NTS_fn_NumberCheck(controlName, msg) 
// 반환(bool)   : 숫자(true) , 문자(false)
// 파라미터(2)  : controlName(컨트롤명), msg(출력메세지)
function NTS_fn_NumberCheck2(controlName, msg) {
    var theObject = document.getElementsByName(controlName)[0];
    if (theObject != null) {
        var temp = theObject.value;

        if (temp == "") {
            return true;
        }
        else {

            for (var i = 0; i < temp.length; i++) {
                chr = temp.substr(i, 1);

                if ((chr >= '0' && chr <= '9')) {
                    
                }
                else {
                    alert(msg);
                    return false;
                }
            }

            return true;
        }
    }
    else {
        alert(controlName + "을 찾을 수 없습니다.");
        return false;
    }
}


// 키코드 체크  : NTS_fn_KeyCodeCheck(clickKeycode,checkKeycode)
// 반환(bool)	: 원하는 키코드이면 true, 아니면 false
// 파라미터(2)  : clickKeycode(클릭키코드), checkKeycode(원하는키코드)
function NTS_fn_KeyCodeCheck(clickKeycode,checkKeycode) {
    if(clickKeycode==checkKeycode)
        return true;
    else
        return false;
}

// 체크박스 선택  : NTS_fn_SelectAllCheckBox(sender)
// 반환(bool)	: 
// 파라미터(1)  : sender(클릭발생 컨트롤)
function NTS_fn_SelectAllCheckBox(sender)
{
	var inputs = document.getElementsByTagName("INPUT")         
	for(var i = 0; i < inputs.length ; i++)
	{               
		if(inputs[i].type == "checkbox" && inputs[i]!=sender)
		{           
			if(!sender.checked) inputs[i].checked=false;
			else inputs[i].checked=true;
		}
	}
}

// 체크박스 선택  : NTS_fn_SelectAllCheckBoxInTable(parent, sender)
// 반환(bool)	: 
// 파라미터(1)  : parent(리스트 부모 컨트롤), sender(클릭발생 컨트롤)
function NTS_fn_SelectAllCheckBoxInTable(parent, sender)
{
	var table = document.getElementsByName(parent)[0];   
	if(table!=null)
	{ 
	    var inputs = table.getElementsByTagName("input")         	
	    for(var i = 0; i < inputs.length ; i++)
	    {               
		    if(inputs[i].type == "checkbox" && inputs[i]!=sender)
		    {           
			    if(!sender.checked) inputs[i].checked=false;
			    else inputs[i].checked=true;
		    }
	    }
	 }
	 else
	 {
	     alert(parent + "을 찾을 수 없습니다.");
        return false;
	 }
}

//주민번호 검사 : NTS_fn_JuminCheck(theNumber1, theNumber2) 
// 반환(bool)	: 
// 파라미터(2)  : theNumber1(주민번호 앞자리), theNumber2(주민번호 뒷자리)
function NTS_fn_JuminCheck(theNumber1, theNumber2) 
{
    var theObject1 = document.getElementsByName(theNumber1)[0];
    var theObject2 = document.getElementsByName(theNumber2)[0];
    
    if(theObject1!=null && theObject2!=null)
    {
        var number1 = NTS_fn_ClearBlank(theObject1.value);
        var number2 = NTS_fn_ClearBlank(theObject2.value);
        var number= number1+number2;
        
         if (number1.length != 6) 
         {   
            alert("주민번호 앞자리 개수가 모자랍니다."); 
            theObject1.focus(); //커서를 주민번호 앞자리에 놓는다.
            return false;
         } 
         if (number2.length != 7) 
         {   
            alert("주민번호 뒷자리 개수가 모자랍니다."); 
            theObject2.focus(); //커서를 주민번호 뒷자리에 놓는다.
            return false;
         } 
         
         for (i = 0; i < number.length; i++) 
         { 
             tempI = number.charAt(i);
             if (tempI < '0' || tempI > '9') 
             {
                 alert("주민번호는 숫자만 가능합니다.");
                 theObject1.focus();    
                 return false;         
             }            
         }       
         var a1=number.substring(0,1)   //주민번호 계산법
         var a2=number.substring(1,2)          
         var a3=number.substring(2,3)
         var a4=number.substring(3,4)
         var a5=number.substring(4,5)
         var a6=number.substring(5,6)
         var checkdigit=a1*2+a2*3+a3*4+a4*5+a5*6+a6*7
         var b1=number.substring(6,7)
         var b2=number.substring(7,8)
         var b3=number.substring(8,9)
         var b4=number.substring(9,10)
         var b5=number.substring(10,11)
         var b6=number.substring(11,12)
         var b7=number.substring(12,13)
         var checkdigit=checkdigit+b1*8+b2*9+b3*2+b4*3+b5*4+b6*5 
         checkdigit = checkdigit%11
         checkdigit = 11 - checkdigit
         checkdigit = checkdigit%10
            
         if (checkdigit != b7) 
         {   
            alert('잘못된 주민등록번호입니다.\n\n다시 확인하고 입력해 주세요.');             
            theObject1.focus();   
            return false;
         } 
         
          return true;
   }
   else
   {
        alert("검사 대상을 찾을 수 없습니다.");
        return false;
   }
}

//Select 인덱스 검사 : NTS_fn_SelectCheck(theControlName, msg)
// 반환(bool)	: 
// 파라미터(2)  : theControlName, msg
function NTS_fn_SelectCheck(theControlName, msg)
{
    var theObject = document.getElementsByName(theControlName)[0];
    
    if(theObject!=null)
    {
        if(theObject.selectedIndex<=0)
        {
            alert(msg);
            theObject.focus();
            return false;
        }
    
        return true;
    }
    else
    {
        alert(theControlName+"를 찾을수 없습니다.");
        return false;
    }
}


//날짜 형식 검사 : NTS_fn_CheckDateFormat(theControlName)
// 반환(bool)	: 
// 파라미터(2)  : theControlName
function isValidMonth(mm) {
    var m = parseInt(mm,10);
    return (m >= 1 && m <= 12);
}

function isValidDay(yyyy, mm, dd) {
    var m = parseInt(mm,10) - 1;
    var d = parseInt(dd,10);

    var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) end[1] = 29;
    
    return (d >= 1 && d <= end[m]);
}

function isValidTime(time) {
    var year  = time.substr(0,4);
    var month = time.substr(5,2);
    var day   = time.substr(8,2);

    if (parseInt(year,10) >= 1900  && isValidMonth(month) && isValidDay(year,month,day) )  return true;
    return false;
}


function NTS_fn_CheckDateFormat(theControlName, msg)
{
    var theObject = document.getElementsByName(theControlName)[0];
    
    if(theObject!=null)
    {
        if(!NTS_fn_ValueCheck(theControlName, msg)) return false;
        
        var strDate = theObject.value;    
	    var str = /[1-9][0-9][0-9][0-9][-.][0-9]{1,}[-.][0-9]{1,}/;
    	
	    if(!str.test(strDate))
	    {
	        alert("날짜 형식이 잘못되었습니다.(2009-01-01 또는 2009.01.01)");
		    theObject.focus();
	        return false
	    }
    	
	    if(!isValidTime(strDate))
	    { 
            alert("존재하지 않는 날짜입니다.");
            theObject.focus();
            return false
        }
        
        return true;
    }
    else
    {
        alert(theControlName+"를 찾을수 없습니다.");
        return false;
    }
}
	
//날짜 변환 : NTS_fn_ConvertDate(theValue)
// 반환(DATE)
// 파라미터(2)  : theValue
function NTS_fn_ConvertDate(theValue)
{
    var obj = document.getElementsByName(theValue)[0];
    
    if(obj!=null)
    {    
        var value = obj.value;
        
        var year = parseInt(value.substr(0,4), 10);
        var month=  parseInt(value.substr(5,2), 10)-1;
        var day = parseInt(value.substr(8,2), 10);          
        
        var rtnValue = new Date(year, month, day);        
        
        return rtnValue;
   }
   else
   {
        alert(theValue + "를 찾을 수 없습니다.");
        return false;
    }
}

//비밀번호 동일성 검사 : NTS_fn_PasswordConfirm(theObject1, theObject2)
//반환 : BOOL
//파라미터 : theObject1, theObject2
function NTS_fn_PasswordConfirm(theObject1, theObject2)
{
    var object1 = document.getElementsByName(theObject1)[0];
    var object2 = document.getElementsByName(theObject2)[0];
    
    if(object1!=null && object2!=null)
    {
        var value1 = object1.value;
        var value2 = object2.value;
        
        if(value1!=value2)
        {
            alert("비밀번호가 일치하지 않습니다.");
            object2.focus();
            return false;
        }
        return true;
    }
    else
   {
        alert("검사 대상을 찾을 수 없습니다.");
        return false;
    }
}

//아이디, 비밀번호 유효성 검사 : NTS_fn_CheckIDPssLength(theObject, mag)
//반환 : BOOL
//파라미터 : theObject, msg
function NTS_fn_CheckIDPssLength(theObject, mag, type)
{
    var object = document.getElementsByName(theObject)[0];
    if(object!=null)
    {
        var value = object.value;
        if(value.length<6)
        {
            alert(mag);
            object.focus();
            return false;
        }
        
        var ch;
        var countNum=0;
        var countalpha =0;
        
        for( i =0; i<value.length;i++)
        {
            ch= value.substr(i,1);
            if(ch==' ')
            {
                alert("공백을 사용하실 수 없습니다.");
                object.focus();
                return false;
                
            }
            if (ch >= '0' && ch <= '9') countNum++;
            if(type=="pass")
            //if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z') || (ch > +'A' && ch <= 'Z')) countNum++;
            if( (ch >='a' && ch<='z') || (ch>+'A' && ch<='Z')) countalpha++;
        }

        if (countNum == value.length || countalpha == value.length)
        {
            alert(mag);
            object.focus();
            return false;
        }
        return true;
    }
    else
    {
        alert(theObject +"가 존재하지 않습니다.");
        return false;
    }      
}




// 아이디 영문 + 숫자 조합인지 체크
// 반환 : bool
// 파라미터 : ocntrol, msg
function NTS_fn_Check_UserID(control, msg) {
    var obj = document.getElementsByName(control)[0];
    if (obj != null) {
        var value = obj.value;
        var chr;
        var countNum = 0;
        var countEu = 0;

        for (i = 0; i < value.length; i++) {
            chr = value.substr(i, 1);

            if (chr >= '0' && chr <= '9')
            {
                countNum++;
            }

            if ((chr >= 'a' && chr <= 'z') || (chr > +'A' && chr <= 'Z')) 
            {
                countEu++;
            }

        }

        if (countEu == 0 || countNum == 0) 
        {
            alert(msg);
            obj.focus();
            return false;
        }

        return true;
    }
    else {
        alert(control + "가 존재하지 않습니다.");
        return false;
    }
}

// 한글 입력 체크
// 반환 : bool
// 파라미터 : ocntrol, msg
function NTS_fn_Check_KR(control, msg) 
{
    var obj = document.getElementsByName(control)[0];
    if (obj != null) 
    {
        var value = obj.value;
        var chr;
        var countNum = 0;

        for (i = 0; i < value.length; i++) 
        {
            chr = value.substr(i, 1);

            if (chr == ' ') 
            {
                alert("공백을 사용할 수 없습니다");
                obj.focus();
                return false;
            }

            if (!((chr >= '0' && chr <= '9') || (chr >= 'a' && chr <= 'z') || (chr > +'A' && chr <= 'Z') || (chr == ".") || (chr == "_" || (chr == "-")))) 
            {
                alert(msg);
                obj.focus();
                return false;
            }

        }

        return true;
    }
    else 
    {
        alert(control + "가 존재하지 않습니다.");
        return false;
    }
}


// 문자 길이 원하는 만큼 체크
// 반환 : bool
// 파라미터 : ocntrol, msg, cnt1, cnt2
function NTS_fn_Check_Length(control, msg, cnt1, cnt2) 
{
    var obj = document.getElementsByName(control)[0];
    if (obj != null) 
    {
        if (obj.value.length < cnt1 || obj.value.length > cnt2) 
        {
            alert(msg);
            obj.focus();
            return false;
        }

        return true;
    }
    else
     {
        alert(control + "가 존재하지 않습니다.");
        return false;
    } 
}

