﻿/**************************************************
파 일 명     :  /Scripts/Validation.js
최초작성내역 :  인터데브 정재권(2007년 03월 20일) 
작성목적     :  Control의 Validation을 위한 함수
사용예       :
                if (!validation.NonBlank(document.all.txtNonBlank, " 필수 입력 " , true)) return false;
                if (!validation.ValidNumber(document.all.txtValidNumber, " 숫자 항목 " , true)) return false;                
                if (!validation.ValidInteger(document.all.txtValidInteger, -100, 100, "정수 항목", true)) return false;       
                if (!validation.ValidNumeric(document.all.txtValidNumeric, -100, 100, 3, " Numeric 항목", true)) return false;                   
                    
                if (!validation.ValidQtySize(document.all.txtQty1, document.all.txtQty2, " 수량 선택 ",  true)) return false;               
                if (!validation.ValidControlSelected(document.all.hddlValidSelected, " 선택 코드 " , true)) return false;                
		        if (!validation.ValidDateRange(document.all.txtFirstDateControl, document.all.txtSecondDateControl, 10, " 필수날짜간격검사" , true)) return false;
		        if (!validation.ValidDateRange(document.all.txtThirdDateControl, document.all.txtFourthDateControl, 40, " 선택날짜간격검사" , false)) return false;            

                if (!validation.ValidEmail(document.all.txtValidEmail, "수신자 메일", true)) return false;
                if (!validation.ValidPhoneNumber(document.all.txtValidPhoneNumber, ' 거래처 전화번호 ' , true)) return false;
                if (!validation.ValidCardNumber(document.all.txtValidCardNumber , "카드번호", true)) return false; 

                if (!validation.ValidFullDateTime(document.all.txtValidFullDateTime , " Full 입력 일시 ", true)) return false;               
                if (!validation.ValidDateTime(document.all.txtValidDateTime , " 입력 일시 ", true)) return false;          
                if (!validation.ValidDate(document.all.txtValidDate , " 입력 날짜 ", true)) return false;       

                if (!validation.ValidYearMonth(document.all.txtValidYearMonth , " 입력 년월 ", true)) return false;
                if (!validation.ValidYear(document.all.txtValidYear , " 입력 년 ", false)) return false;                     
                if (!validation.ValidJuminNumber2Field(document.all.txtJumin1, document.all.txtJumin2 , " 주민등록번호 2개 필드 ", true)) return false;                                     

                if (!validation.ValidJuminNumber(document.all.txtJuminOne, " 주민등록번호", true)) return false;                                                     
                if (!validation.ValidBusinessNumber(document.all.txtValidBusinessNumber, " 사업자 등록 번호", true)) return false;                                                                                    
                if (!validation.ValidMoney(document.all.txtValidMoney, 0, " 화폐 단위 ", true)) return false;                                                                                    

                if (!validation.ValidCheckBoxList("chklValidCheckBoxList", " 코드 선택 체크 박스 리스트 ", true)) return false;                                                                                                   
                if (!validation.ValidCheckBoxList("chklCheckBoxList", " 코드 선택 체크 박스 리스트 두번쨰 ", true)) return false;                                                                                                                       
                if (!validation.ValidRadionButtonList("rdolValidRadionButtonList", " 코드 선택 라디오 버튼 리스트 두번쨰 ", true)) return false; 
                if (!validation.ValidDropDownList(document.all.ddlValidDropDownListe, " 코드 선택 DropDownList  ", true)) return false;                 

                if (!validation.ValidStringLength(document.all.txtValidStringLength, ">" , 3,  " 입력 제한 필드", true)) return false; 
                if (!validation.ValidStringLength(document.all.txtValidStringLength, "<" , 3,  " 입력 제한 필드", true)) return false; 
                if (!validation.ValidStringLength(document.all.txtValidStringLength, ">=" , 3,  " 입력 제한 필드", true)) return false; 
                if (!validation.ValidStringLength(document.all.txtValidStringLength, "<=" , 3,  " 입력 제한 필드", true)) return false; 
                if (!validation.ValidStringLength(document.all.txtValidStringLength, "==" , 3,  " 입력 제한 필드", true)) return false; 
                if (!validation.ValidStringLength(document.all.txtValidStringLength, "!=" , 3,  " 입력 제한 필드", true)) return false; 

                if (!validation.ValidFullStringLength(document.all.txtValidFullStringLength, ">" , 3,  " 입력 제한 필드", true)) return false;                
                if (!validation.ValidFullStringLength(document.all.txtValidFullStringLength, "<" , 3,  " 입력 제한 필드", true)) return false;                
                if (!validation.ValidFullStringLength(document.all.txtValidFullStringLength, ">=" , 3,  " 입력 제한 필드", true)) return false;                
                if (!validation.ValidFullStringLength(document.all.txtValidFullStringLength, "<=" , 3,  " 입력 제한 필드", true)) return false; 
                if (!validation.ValidFullStringLength(document.all.txtValidFullStringLength, "==" , 3,  " 입력 제한 필드", true)) return false; 
**************************************************/
function defaultValue(itemValue) 
{
	var strDefault = itemValue.defaultValue;
	
	if (strDefault==null || strDefault=="")
		strDefault="";
	
	return strDefault;
}

function trimString() {
	var iChar, iCount;
	var strValue = this;
	
	iChar = strValue.length - 1;
	iCount = -1;
	
	while (strValue.charAt(iChar)==' ' && iChar > iCount)
		--iChar;
		
	if (iChar != (strValue.length-1))
		strValue = strValue.slice(0,iChar+1);
		
	iChar = 0;
	iCount = strValue.length - 1;
	
	while (strValue.charAt(iChar)==' ' && iChar < iCount)
		++iChar;
		
	if (iChar!=0)
		strValue = strValue.slice(iChar,strValue.length);
		
	return strValue;
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적 :  validation.NonBlank() 에서 사용하는 함수
Parameter :
                   control      (control : 체크할 Control)
                   displayText  (displayText  : 출력할 컨트롤 Text)   
                   checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)
반환 값  :  bool (true or false)
사용예   :  if (!validation.NonBlank(document.all.txtNonBlank, " 필수 입력 " , true)) return false;
*******************************************************/
function vs_NonBlank(control, displayText, checkingFlag) 
{
	control.value=control.value.Trim();
	var controlValue = control.value;	

	try
	{
		if (checkingFlag)
			if (!IsNonBlank(controlValue, displayText))	
				if (control.disabled == false) 
				{
					control.focus();
					return false;	
				}
				
		return true;
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  정원 전수빈(2008년 07월 23일)
작성목적 :  vs_NonBlank() 문제점 수정
			 1. 원본 컨트롤에 값을 변경하지 않음.
			 2. 원본 컨트롤이 DropDownList 컨트롤일때 값에 공백이 있을경우 Trim() 처리하면 값이 없어지는 문제 수정.
Parameter :
                   control      (control : 체크할 Control)
                   displayText  (displayText  : 출력할 컨트롤 Text)   
                   checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)
반환 값  :  bool (true or false)
사용예   :  if (!validation.NonBlankDDL(document.all.txtNonBlank, " 필수 입력 " , true)) return false;
*******************************************************/
function vs_NonBlank2(control, displayText, checkingFlag) 
{
	var controlValue = control.value.Trim();	

	try
	{
		if (checkingFlag)
			if (!IsNonBlank(controlValue, displayText))	
				if (control.disabled == false) 
				{
					control.focus();
					return false;	
				}
				
		return true;
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidNumber() 에서 사용하는 함수 
Parameter :
                     control      (control : 체크할 Control)
                     displayText  (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidNumber(document.all.txtValidNumber, " 숫자 항목 " , true)) return false; 
*******************************************************/
function vs_ValidNumber(control, displayText, checkingFlag) 
{
	var controlValue = control.value;		
	
	try
	{
		if (checkingFlag)	
			if (!IsValidNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  : validation.ValidInteger() 에서 사용하는 함수
Parameter :
                     objectValue  (object : 체크할 Control의 value)
                     minNumber    (int : 체크할 시작 범위 값)
                     maxNumber    (int : 체크할 종료 범위 값)
                     displayText  (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)    
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidInteger(document.all.txtValidInteger, -100, 100, "정수 항목", true)) return false; 
*******************************************************/
function vs_ValidInteger(control,  minNumber, maxNumber, displayText, checkingFlag) 
{
	control.value=control.value.Trim();
	var controlValue = control.value;			

	try
	{
		if (checkingFlag)	
			if (!IsValidInteger(controlValue, minNumber, maxNumber, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidInteger(controlValue, minNumber, maxNumber, displayText))
			{
				control.focus();
				return false;	
			}
		
		return true;
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}	
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidNumeric() 에서 사용하는 함수
Parameter :
                     objectValue  (object : 체크할 Control의 value)
                     minNumber    (int : 체크할 시작 범위 값)
                     maxNumber    (int : 체크할 종료 범위 값)
                     decimalPlace (int  : 소숫점 아래 자리수)                                                 
                     displayText  (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)    
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidNumeric(document.all.txtValidNumeric, -1000, 10000000, 3, "수매 중량", true)) return false; 
*******************************************************/
function vs_ValidNumeric(control, minNumber, maxNumber, decimalPlace, displayText, checkingFlag)
{
	control.value=control.value.Trim();
	var controlValue = control.value;			

	try
	{
		if (checkingFlag)	
			if (!IsValidNumeric(controlValue, minNumber, maxNumber, decimalPlace, displayText, checkingFlag))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidNumeric(controlValue, minNumber, maxNumber, decimalPlace, displayText, checkingFlag))
			{
				control.focus();
				return false;	
			}
		
		return true;
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}	
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  : validation.ValidQtySize() 에서 사용하는 함수
                    두 개의 컨트롤 값을 비교하는 함수 
Parameter :
                     control1     (control : 첫번째 체크할 Control)
                     control2     (object : 두번째 체크할 Control)                            
                     displayText  (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)     
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidQtySize(document.all.txtQty1, document.all.txtQty2, " 수량 선택 ",  true)) return false;               
*******************************************************/
function vs_ValidQtySize(control1, control2, displayText, checkingFlag) 
{
	var iValue1 = 0;
	var iValue2 = 0;
	
	try
	{
		iValue1 = control1.value;
		iValue2 = control2.value;
			
		if (checkingFlag)
			if (!IsValidQtySize(iValue1, iValue2, displayText))
			{
				control1.focus();
				return false;	
			}
		
		if ((!checkingFlag && iValue1.length >0) || (!checkingFlag && iValue2.length >0))
			if (!IsValidQtySize(iValue1, iValue2, displayText))
			{
				control1.focus();
				return false;	
			}
		
		return true;		
		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}	
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  : validation.ValidControlSelected() 에서 사용하는 함수
                    선택 여부를 체크하는 함수 
Parameter :
                     control       (control :  체크할 Control)
                     displayText   (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag  (bool : 체크 옵션, true - 필수, false - 선택)      
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidControlSelected(document.all.hddlValidSelected, " 선택 코드 " , true)) return false;                
*******************************************************/
function vs_ControlSelected(control, displayText, checkingFlag) 
{
	var strInfoMessage = "<b>" + displayText + "</b>"+ VALID_ITEM_SELECT_INFO_MESSAGE;
	try
	{
		if (checkingFlag)
			if (control.selectedIndex== -1 ) 
			{
				control.focus();
				OpenInformation(strInfoMessage);
				return false;
			}
		
		return true;
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}	
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  : validation.ValidDateRange() 에서 사용하는 함수
                    두 개의 컨트롤의 날짜 간격을비교하는 함수 
Parameter :
                     startDateControl  (control : 체크할 첫번째 날짜 Control)
                     endDateControl    (control : 체크할 두번째 날짜 Control)
                     dateRange         (int :  두 날짜 사이의 간격[일 기준])   
                     checkingFlag      (bool : 체크 옵션, true - 필수, false - 선택)         
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidDateRange(document.all.txtDateOne, document.all.txtDateTwo, 20, "입력 일 간격", true)) return false;
*******************************************************/
function vs_ValidDateRange(startDateControl, endDateControl, dateRange, displayText, checkingFlag ) 
{
	var startDT = startDateControl.value;
	var endDT = endDateControl.value;

	try
	{
		if (checkingFlag)	
			if (!IsValidDateRange(startDT, endDT, dateRange, displayText))
			{
				startDateControl.focus();
				return false;	
			}
		
		if ((!checkingFlag && startDT.length >0 ) || (!checkingFlag && endDT.length>0))
			if (!IsValidDateRange(startDT, endDT, dateRange, displayText))
			{
				startDateControl.focus();
				return false;	
			}
		
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}	
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  : validation.ValidEmail() 에서 사용하는 함수
                    컨트롤 값이 이메일 형식과 같은지 체크하는 함수  
Parameter :
                     control      (control : 체크할 이메일 Control)
                     displayText  (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)                  
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidEmail(document.all.txtValidEmail, "수신자 메일", true)) return false;
*******************************************************/
function vs_ValidEmail(control, displayText, checkingFlag) 
{

	control.value=control.value.Trim();
	var controlValue = control.value;

	try
	{
		if (checkingFlag)	
			if (!isValidEmail(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!isValidEmail(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
	
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  : validation.ValidPhoneNumber() 에서 사용하는 함수
                   컨트롤 값이 전화번호 형식과 같은지 체크하는 함수 
Parameter :
                     control      (control : 체크할 전화번호 Control)
                     displayText  (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)                     
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidPhoneNumber(document.all.txtValidPhoneNumber, ' 거래처 전화번호 ' , true)) return false;
*******************************************************/
function vs_ValidPhoneNumber(control, displayText, checkingFlag) 
{
	control.value=control.value.Trim();
	var controlValue = control.value;
		
	try
	{
	
		if (checkingFlag)	
			if (!IsValidPhoneNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidPhoneNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		return true;			
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  : validation.ValidCardNumber() 에서 사용하는 함수
                    컨트롤 값이 카드번호 형식과 같은지 체크하는 함수
Parameter :
                    control      (control : 체크할 전화번호 Control)
                    displayText  (displayText  : 출력할 컨트롤 Text)   
                    checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)                    
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidCardNumber(document.all.txtValidCardNumber , "카드번호", true)) return false; 
*******************************************************/
function vs_ValidCardNumber(control, displayText, checkingFlag) 
{

	control.value=control.value.Trim();
	var controlValue = control.value;

	try
	{
	
		if (checkingFlag)	
			if (!IsValidCardNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidCardNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
	
		return true;			
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidFullDateTime() 에서 사용하는 함수
                    컨트롤 값이 일시 형식(yyyy-MM-dd HH:mm:ss)과 같은지 체크하는 함수 
Parameter  :
                     control  (control : 체크할 일시 Control)
                     displayText  (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)                
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidFullDateTime(document.all.txtValidFullDateTime , " Full 입력 일시 ", true)) return false;
*******************************************************/
function vs_ValidFullDateTime(control, displayText, checkingFlag)
{

	control.value = control.value.Trim();	
	var controlValue = control.value;

	try
	{
		if (checkingFlag)	
		{
			if (!IsValidFullDateTime(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		}
		
		if (!checkingFlag && controlValue.length >0)
		{
			if (!IsValidFullDateTime(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		}
		
		return true;				
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidDateTime() 에서 사용하는 함수
                     컨트롤 값이 일시 형식(yyyy-MM-dd HH:mm)과 같은지 체크하는 함수 
Parameter :
                     control      (control : 체크할 일시 Control)
                     displayText  (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)                     
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidDateTime(document.all.txtValidDateTime , " 입력 일시 ", true)) return false;          
*******************************************************/
function vs_ValidDateTime(control, displayText, checkingFlag)
{

	control.value = control.value.Trim();	
	var controlValue = control.value;

	try
	{
		if (checkingFlag)	
			if (!IsValidDateTime(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidDateTime(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		return true;				
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);
		return false;			
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidDate() 에서 사용하는 함수
                    컨트롤 값이 날짜 형식(yyyy-MM-dd)과 같은지 체크하는 함수 
Parameter :
                     control       (control : 체크할 날짜 Control)
                     displayText   (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag  (bool : 체크 옵션, true - 필수, false - 선택)                  
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidDate(document.all.txtValidDate , " 입력 날짜 ", true)) return false;       
*******************************************************/
function vs_ValidDate(control, displayText, checkingFlag)
{

	control.value = control.value.Trim();	
	var controlValue = control.value;

	try
	{
		if (checkingFlag)	
			if (!IsValidDate(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidDate(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidYearMonth() 에서 사용하는 함수
                     컨트롤 값이 년월 형식(yyyy-MM)과 같은지 체크하는 함수 
Parameter :
                     control       (control : 체크할 년월 Control)
                     displayText   (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag  (bool : 체크 옵션, true - 필수, false - 선택)                       
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidYearMonth(document.all.txtValidYearMonth , " 입력 연도와 월 ", true)) return false;
*******************************************************/
function vs_ValidYearMonth(control, displayText, checkingFlag)
{
	control.value = control.value.Trim();	
	var controlValue = control.value;

	try
	{
		if (checkingFlag)	
			if (!IsValidYearMonth(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
	
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidYearMonth(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidYear() 에서 사용하는 함수
                     컨트롤 값이 연도 형식(yyyy)과 같은지 체크하는 함수  
Parameter  :
                     control       (control : 체크할 연도 Control)
                     displayText   (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag  (bool : 체크 옵션, true - 필수, false - 선택)                         
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidYear(document.all.txtValidYear , " 입력 연도 ", false)) return false;                     
*******************************************************/
function vs_ValidYear(control, displayText, checkingFlag)
{
	control.value = control.value.Trim();	
	var controlValue = control.value;

	try
	{
		if (checkingFlag)	
			if (!IsValidYear(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidYear(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidJuminNumber2Field() 에서 사용하는 함수
                     두 개로 분리된 주민등록 번호를 체크하기 위한 함수 
Parameter :
                     control1         (control : 체크할 주민등록 번호의 생년월일 Control)
                     control2         (control : 체크할 주민등록 번호의 일련번호 Control)                            
                     displayText      (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag     (bool : 체크 옵션, true - 필수, false - 선택)                           
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidJuminNumber2Field(document.all.txtJumin1, document.all.txtJumin2 , " 주민등록번호 2개 필드 ", true)) return false; 
*******************************************************/
function vs_ValidJuminNumber2Field(control1, control2, displayText, checkingFlag)
{
	control1.value = control1.value.Trim();	
	var controlValue1 = control1.value;
	
	control2.value = control2.value.Trim();	
	var controlValue2 = control2.value;
	
	var controlValue = controlValue1 + "-" + controlValue2;

	var re = /-/g;     
	var controlValueReplace = controlValue.replace(re,"");	
	
	try
	{
		
		if (checkingFlag)	
			if (!IsValidJuminNumber(controlValue, displayText))
			{
				control1.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValueReplace.length >0)
			if (!IsValidJuminNumber(controlValue, displayText))
			{
				control1.focus();
				return false;	
			}
		
		return true;		
		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidJuminNumber() 에서 사용하는 함수
                     하나의 필드로 구성된 주민등록 번호를 체크하기 위한 함수 
Parameter  :
                     control        (control : 체크할 주민등록 번호 Control)
                     displayText    (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag   (bool : 체크 옵션, true - 필수, false - 선택)                           
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidJuminNumber(document.all.txtJuminOne, " 주민등록번호", true)) return false;
*******************************************************/
function vs_ValidJuminNumber(control, displayText, checkingFlag)
{
	control.value = control.value.Trim();	
	var controlValue = control.value;

	try
	{
		
		if (checkingFlag)	
			if (!IsValidJuminNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidJuminNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidBusinessNumber() 에서 사용하는 함수
                     하나의 필드로 구성된 사업자 등록 번호를 체크하기 위한 함수 
Parameter :
                     control        (control : 체크할 사업자 등록 번호 Control)
                     displayText    (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag   (bool : 체크 옵션, true - 필수, false - 선택)                          
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidBusinessNumber(document.all.txtValidBusinessNumber, " 사업자 등록 번호", true)) return false; 
*******************************************************/
function vs_ValidBusinessNumber(control, displayText, checkingFlag)
{
	control.value = control.value.Trim();	
	var controlValue = control.value;

	try
	{
		
		if (checkingFlag)	
			if (!IsValidBusinessNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidBusinessNumber(controlValue, displayText))
			{
				control.focus();
				return false;	
			}
			
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidMoney() 에서 사용하는 함수
                     화폐 단위 형식을 체크하기 위한 함수  
Parameter :
                     control      (control : 체크할 화폐 Control)
                     decimalPlace (int  : 소숫점 아래 자리수)                            
                     displayText  (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag (bool : 체크 옵션, true - 필수, false - 선택)                          
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidMoney(document.all.txtValidMoney, 0, " 화폐 단위 ", true)) return false; 
*******************************************************/
function vs_ValidMoney(control, decimalPlace, displayText, checkingFlag)
{
	control.value = control.value.Trim();	
	var controlValue = control.value;
	
	try
	{
		if (checkingFlag)	
			if (!IsValidMoney(controlValue, decimalPlace, displayText))
			{
				control.focus();
				return false;	
			}
		
		if (!checkingFlag && controlValue.length >0)
			if (!IsValidMoney(controlValue, decimalPlace, displayText))
			{
				control.focus();
				return false;	
			}
		
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false; 
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidCheckBoxList() 에서 사용하는 함수
                     Server Control중 하나인 CheckBoxList의 선택 여부를 체크하기 위한 함수   
Parameter :
                     control        (string : 체크할 CheckBoxList Control 명)
                     displayText    (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag   (bool : 체크 옵션, true - 필수, false - 선택)                       
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidCheckBoxList("chklValidCheckBoxList", " 코드 선택 체크 박스 리스트 ", true)) return false;
*******************************************************/
function vs_ValidCheckBoxList(control, displayText, checkingFlag)
{
	try
	{
		if (checkingFlag)	
			if (!IsValidCheckBoxList(control, displayText))
			{
				SetFocusCheckBoxList(control);		
				return false;
			}

		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);
		return false;	
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidRadionButtonList() 에서 사용하는 함수
                     Server Control중 하나인 RadioButtonList의 선택 여부를 체크하기 위한 함수 
Parameter :
                     control        (string : 체크할 RadioButtonList Control 명)
                     displayText    (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag   (bool : 체크 옵션, true - 필수, false - 선택)            
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidRadionButtonList("rdolValidRadionButtonList", " 코드 선택 라디오 버튼 리스트 두번쨰 ", true)) return false; 
*******************************************************/
function vs_ValidRadioButtonList(control, displayText, checkingFlag)
{
	try
	{
		if (checkingFlag)	
			if (!IsValidRadioButtonList(control, displayText))
			{
				SetFocusRadionButtonList(control);		
				return false;
			}

		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidDropDownList() 에서 사용하는 함수
                     Server Control중 하나인 DropDownList의 선택 여부를 체크하기 위한 함수
Parameter :
                     control        (control : 체크할 DropDownList Control )
                     displayText    (displayText  : 출력할 컨트롤 Text)   
                     checkingFlag   (bool : 체크 옵션, true - 필수, false - 선택)     
반환 값   :  bool (true or false)
사용예    :  if (!validation.ValidDropDownList(document.all.ddlValidDropDownListe, " 코드 선택 DropDownList  ", true)) return false;
*******************************************************/
function vs_ValidDropDownList(control, displayText, checkingFlag)
{
	try
	{
		if (checkingFlag)	
			if (!IsValidDropDownList(control, displayText))
			{
				control.focus();				
				return false;
			}
			
		return true;		
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidStringLength()에서 사용하는 함수
                     문자열의 길이 체크를 위한 함수, 한글도 1byte로 계산
Parameter :
                     control          (string : 체크할 입력 필드 Control)
                     comparedOperator (string : 비교할 연산자)
                     comparedLength   (int : 비교할 문자열 길이)
                     displayText      (displayText  : 출력할 컨트롤 Text)              
반환 값   :  bool (true or false)
사용예    :  
                    if (!validation.ValidStringLength(document.all.txtValidStringLength, ">" , 3,  " 입력 제한 필드", true)) return false; 
                    if (!validation.ValidStringLength(document.all.txtValidStringLength, "<" , 3,  " 입력 제한 필드", true)) return false; 
                    if (!validation.ValidStringLength(document.all.txtValidStringLength, ">=" , 3,  " 입력 제한 필드", true)) return false; 
                    if (!validation.ValidStringLength(document.all.txtValidStringLength, "<=" , 3,  " 입력 제한 필드", true)) return false; 
                    if (!validation.ValidStringLength(document.all.txtValidStringLength, "==" , 3,  " 입력 제한 필드", true)) return false; 
                    if (!validation.ValidStringLength(document.all.txtValidStringLength, "!=" , 3,  " 입력 제한 필드", true)) return false; 
*******************************************************/
function vs_ValidStringLength(control, comparedOperator, comparedLength,  displayText, checkingFlag)
{
	control.value = control.value.Trim();	
	var controlValue = control.value;

	try
	{
		if (checkingFlag)	
			if (!IsValidStringLength(controlValue, comparedOperator, comparedLength, displayText))
			{
				control.focus();
				return false;	
			}

		if (!checkingFlag && controlValue.length >0)
			if (!IsValidStringLength(controlValue, comparedOperator, comparedLength, displayText))
			{
				control.focus();
				return false;	
			}

		return true;	
			
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
		return false; 
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidStringFullLength()에서 사용하는 함수
                     문자열의 길이 체크를 위한 함수. 한글2 byte, 영숫자 1byte로 계산
Parameter :
                     control          (string : 체크할 입력 필드 Control)
                     comparedOperator (string : 비교할 연산자)
                     comparedLength   (int : 비교할 문자열 길이)
                     displayText      (displayText  : 출력할 컨트롤 Text)              
반환 값   :  bool (true or false)
사용예    :  
                     if (!validation.ValidStringFullLength(document.all.txtValidFullStringLength, ">" , 3,  " 입력 제한 필드", true)) return false;                
                     if (!validation.ValidStringFullLength(document.all.txtValidFullStringLength, "<" , 3,  " 입력 제한 필드", true)) return false;                
                     if (!validation.ValidStringFullLength(document.all.txtValidFullStringLength, ">=" , 3,  " 입력 제한 필드", true)) return false;                
                     if (!validation.ValidStringFullLength(document.all.txtValidFullStringLength, "<=" , 3,  " 입력 제한 필드", true)) return false; 
                     if (!validation.ValidStringFullLength(document.all.txtValidFullStringLength, "==" , 3,  " 입력 제한 필드", true)) return false; 
                     if (!validation.ValidStringFullLength(document.all.txtValidFullStringLength, "!=" , 3,  " 입력 제한 필드", true)) return false;   
*******************************************************/
function vs_validFullStringLength(control,  comparedOperator, comparedLength,  displayText, checkingFlag)
{
	control.value = control.value.Trim();	
	var controlValue = control.value;

	try
	{
		if (checkingFlag)	
		{
			if (!IsValidFullStringLength(controlValue,  comparedOperator, comparedLength,  displayText))
			{
				control.focus();
				return false;	
			}
		}

		if (!checkingFlag && controlValue.length >0)
		{
			if (!IsValidFullStringLength(controlValue,  comparedOperator, comparedLength,  displayText))
			{
				control.focus();
				return false;	
			}
		}
				return true;	
			
	}
	catch (exception)
	{
		OpenErrorMessage(exception.description);	
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation에서 사용할 함수 연결
Parameter :
반환 값   : 
*******************************************************/
function ValidSetup() 
{
	this.NonBlank = vs_NonBlank;
	this.ValidNumber = vs_ValidNumber;
	this.ValidInteger = vs_ValidInteger;
	this.ValidNumeric = vs_ValidNumeric;
	this.ValidQtySize = vs_ValidQtySize;	
	this.ValidControlSelected = vs_ControlSelected;
	this.ValidDateRange = vs_ValidDateRange;	
	this.ValidEmail = vs_ValidEmail;
	this.ValidPhoneNumber = vs_ValidPhoneNumber;
	this.ValidCardNumber = vs_ValidCardNumber;
	this.ValidFullDateTime = vs_ValidFullDateTime;		
	this.ValidDateTime = vs_ValidDateTime;	
	this.ValidDate = vs_ValidDate;	
	this.ValidYearMonth = vs_ValidYearMonth;
	this.ValidYear = vs_ValidYear;				
	this.ValidJuminNumber2Field = vs_ValidJuminNumber2Field;	
	this.ValidJuminNumber = vs_ValidJuminNumber;
	this.ValidBusinessNumber = vs_ValidBusinessNumber;		
	this.ValidMoney = vs_ValidMoney;
	this.ValidCheckBoxList =  vs_ValidCheckBoxList;
	this.ValidRadionButtonList =  vs_ValidRadioButtonList;	
	this.ValidDropDownList =  vs_ValidDropDownList;		
	this.ValidStringLength = vs_ValidStringLength;
	this.ValidFullStringLength = vs_validFullStringLength;		

	this.NonBlank2 = vs_NonBlank2;

	return this;
}

String.prototype.Trim = trimString;

// HTML 컨트롤용 Validation Object 생성
var validation = new Object;
validation = ValidSetup();
