﻿/**************************************************
파 일 명     :  /Scripts/Common.js
최초작성내역 : 인터데브 정재권(2007년 03월 20일) 
작성목적     :  자주 사용하는 함수를 모아 놓은 파일
**************************************************/

/************************************************************************
함수명		: fn_ShowModalDialog
작성목적	: 모달 팝업창을 띠운다.
Parameter	: sUrl - 띠울 URL
		  sFeature - 창 속성
Return		:
작 성 자	: 아프로 김성혁
최초작성일	: 2011.01.08
최종작성일	:
수정내역	:
*************************************************************************/
function fn_ShowModalDialogCenter(url, nWidth, nHeight, feature, object)
{
	var oArg;
	
	if(arguments.length > 4)
	{
		oArg = arguments[4];	// 매개변수 object (Array를 넣을 것)
		oArReturn = arguments[4];
	}		
	else
	{
		oArg = new Array("", "");
		oArReturn = new Array("", "");
	}
		
	var sWidth = nWidth + 10;
	var sHeight = nHeight + 25;
	var sFeature = "dialogTop=" + (screen.height/2 - nHeight/2) + ";dialogLeft=" + (screen.width/2 - nWidth/2) + ";dialogWidth=" + sWidth + "px;dialogHeight=" + sHeight + "px;" + feature ;
			
	oArReturn = window.showModalDialog( url, oArg, sFeature);
	//window.modal( url, oArg, sFeature);	
	
	try 
	{
		return oArReturn;
	} 
	catch (e) 
	{
		return null;
	}
}


/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  검사할 object 값 중에서 소숫점 아래 숫자의 길이를 체크하는 함수
Parameter :
                     objectValue	(object  : 체크할 숫자 Value)
                     decimalPlace	(int     : 소숫점 아래 자리수)
반환 값   :  bool (true or false)
사용예    :  var bReturn = CheckDecimalPlace(document.all.txtNumber.value, 3);
*******************************************************/
function CheckDecimalPlace (objectValue, decimalPlace)
{
    var iPosition = -1
	var strSubValue = "";

	try
	{
        iPosition =  objectValue.indexOf(".")
        
        if ( iPosition != -1)
            strSubValue = objectValue.substring(iPosition + 1);
        
		if (strSubValue.length <= parseInt(decimalPlace, 10))
		    return true;
		else
		    return false;
		    
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  검사할 object 값의 숫자 체크 함수
Parameter :
                     objectValue	(object  : 체크할 숫자 Value)
                     comparedString	(string  : 검사할 숫자 패턴)
반환 값   :  bool (true or false)
사용예    :  var bReturn = CheckNumberdocument.all.txtNumber.value, "0123456789.,");
*******************************************************/
function CheckNumber(objectValue, comparedString)
{
	try
	{
		if(objectValue == null)
            return false;
		
		for (var i = 0; i < objectValue.toString().length; i++) 
		{
			if (comparedString.indexOf(objectValue.toString().charAt(i)) == -1) 
				return false;
		}
		
        if (parseInt(objectValue.toString().indexOf(".")) != parseInt(objectValue.toString().lastIndexOf(".")))
			return false;
			
		return true;
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  검사할 object 값의 문자 체크 함수
Parameter :
                     objectValue	(object  : 체크할 문자 Value)
                     comparedString	(string  : 검사할 문자 패턴)
반환 값   :  bool (true or false)
사용예    :  var bReturn = CheckString(document.all.txtString.value, "ABCDEFG");
*******************************************************/
function CheckString(objectValue , comparedString)
{
	try
	{
		for (var i = 0; i < objectValue.toString().length; i++) 
		{
			if (comparedString.indexOf(objectValue.toString().charAt(i)) == -1) 
				return false;
		}
		
		return true;
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  검사할 object 값의 startNumber와 endNumber사이의 값인지를 리턴하는 함수
Parameter :
                     objectValue (object  : 체크할 숫자 Value)
                     startNumber (number  : 검사할 시작 값)
                     endNumber   (number  : 검사할 마지막 값)
반환 값   :  bool (true or false)
사용예    :  var bReturn = CheckNumberInterval(document.all.txtNumber.value, 10, 100);
*******************************************************/
function  CheckNumberInterval(objectValue, startNumber, endNumber)
{
	var iTemp = parseInt(objectValue, 10);
	
	try
	{
	    if (iTemp == null)
	        return false; 
	        
		if (iTemp >= parseInt(startNumber, 10) && iTemp<= parseInt(endNumber, 10))
			return true;
		else 
			return false;
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  검사할 object 값의 길이(length)가 comparedLength와 같은지 체크한 후 리턴하는 함수
Parameter :
                     objectValue     (object  : 체크할 string Value)
                     comparedLength  (number  : 검사할 문자 길이)
반환 값   :  bool (true or false)
사용예    :  var bReturn = CheckValueEqualLength(document.all.txtString.value, 5);
*******************************************************/
function CheckValueEqualLength(objectValue, comparedLength)
{
	try
	{
		if (objectValue == null)
			return false;
			
		if (objectValue.length == comparedLength)
			return true;
		else
			return false;
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);		
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  검사할 object 값의 길이(length)가 comparedLength보다 큰지 체크한 후 리턴하는 함수
Parameter :
                     objectValue     (object  : 체크할 string Value)
                     comparedLength  (number  : 검사할 문자 길이)
반환 값   :  bool (true or false)
사용예    :  var bReturn = CheckValueGreaterLength(document.all.txtString.value, 5);
*******************************************************/
function CheckValueGreaterLength(objectValue, comparedLength)
{
	try
	{
		if (objectValue == null)
			return false;	
			
		if (objectValue.length > comparedLength )
			return true;
		else
			return false;
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);		
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  검사할 object 값의 길이(length)가 comparedLength보다 크거나 같은지 체크한 후 리턴하는 함수
Parameter :
                     objectValue     (object  : 체크할 string Value)
                     comparedLength  (number  : 검사할 문자 길이)
반환 값   :  bool (true or false)
사용예    :  var bReturn = CheckValueEqualGreaterLength(document.all.txtString.value, 20);
*******************************************************/
function CheckValueEqualGreaterLength(objectValue, comparedLength)
{
	try
	{
		if (objectValue == null)
			return false;		
			
		if (objectValue.length >=  comparedLength )
			return true;
		else
			return false;
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);		
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  검사할 object 값의 길이(length)를 리턴하는 함수
                     (한글 2byte, 영숫자 1byte)
Parameter :
                     objectValue         (object  : 체크할 string Value)
반환 값   :  int ( 문자열의 바이트 수)
사용예    :  var iStrLength = GetFullLength(document.all.txtString.value);
*******************************************************/
function GetFullLength(objectValue)
{
	var charCode = 0;
	var iLength = 0;

	try
	{
		iLength = objectValue.length; 

		if(objectValue == null)
            iLength = 0;
		 
		 for (var i=0; i<iLength; i++) 
		 { 
		 	charCode = objectValue.substr(i,1).charCodeAt(0); 
		 	
		 	if (charCode > 127) 
                iLength++; 
		 }  
		
		return iLength;
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);		
		return 0;
	}
}


/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  년과 월을 체크하여 월의 마지막 일 수를 리턴하는 함수
Parameter :
                     year     (int  : 체크할 년도)
                     month    (int  : 체크할 월) )
반환 값   :  int ( 월의 마지막 일수)
사용예    :  var iMonthLastDay = GetLastDay(2007, 2);
*******************************************************/
function GetLastDay(year, month)
{
    var  lastDayOfMonth  = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    var iReturn = 0 ;
    var iYear = 0, iMonth = 0;

    try
    {
        iYear = parseInt(year, 10);
        iMonth= parseInt(month, 10);
        
        if ( iMonth > 13)
            return  iReturn;      
         
        if (((iYear %4 == 0) && (iYear % 100 != 0))||(iYear % 400 == 0))
            lastDayOfMonth[1] = 29;
                
        iReturn = lastDayOfMonth[month-1];
        return  iReturn;              
    }
    catch (exception)
    {
	    //OpenErrorMessage(exception.description);		
	    return lastDayOfMonth[month-1];
    }
} 

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.NonBlank() 에서 사용하는 공통 함수
Parameter :
                     objectValue  (object : 체크할 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)   
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsNonBlank(document.all.txtName.value, '필수 항목');
*******************************************************/
function IsNonBlank(objectValue, displayText)
{
    var strInfoMessage = "<b>" + displayText + "</b>" + NON_BLANK_INFO_MESSAGE;
    
	try
	{
		if (CheckValueEqualLength(objectValue, 0))	
		{
			OpenInformation (strInfoMessage );		
			return false;
		}
		
		return true;
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidNumber() 에서 사용하는 공통 함수
Parameter :
                     objectValue  (object : 체크할 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)    
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidNumber(document.all.txtNumber.value, '입력 수량');
*******************************************************/
function IsValidNumber(objectValue, displayText)
{
	var strInfoMessage = "<b>" + displayText + "</b>"+VALID_NUMBER_INFO_MESSAGE;
	
	try
	{
		if (CheckValueEqualLength(objectValue, 0))	
		{
			OpenInformation ( strInfoMessage );		
			return false;
		}	

		if (!CheckNumber(objectValue, DIGIT_POINT))
		{
			OpenInformation (strInfoMessage);		
			return false;	
		}
		
		return true;
	}
	catch (exception)
	{
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidInteger() 에서 사용하는 공통 함수
Parameter :
                     objectValue  (object : 체크할 Control의 value)
                     minNumber    (int : 체크할 시작 범위)
                     maxNumber    (int : 체크할 종료 범위)
                     displayText  (displayText  : 출력할 컨트롤 Text) 
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidNumber(document.all.txtNumber.value, 10, 200, '입력 수량');
*******************************************************/
function IsValidInteger(objectValue, minNumber, maxNumber, displayText )
{

	var iValue = 0 ;	
	var re = /,/g;     		
	var strInfoMessage = "<b>" + displayText + "</b>"+ VALID_INT_INFO_MESSAGE 
									+ VALID_INT_MIN_NUMBER_INFO_MESSAGE + "<b>" + minNumber.toString() + "</b>"
									+ VALID_INT_BETWEEN_INFO_MESSAGE +  "<b>" + maxNumber.toString() + "</b>" 
									+ VALID_INT_MAX_NUMBER_INFO_MESSAGE;
						
	try
	{
	
		if (parseInt(minNumber, 10) >= parseInt(maxNumber, 10))
		{
			OpenInformation ( "시작값과 종료값을 확인해 주세요");		
			return false;
		}	
	
		if (CheckValueEqualLength(objectValue, 0))
		{
			OpenInformation ( strInfoMessage );		
			return false;
		}

		if (!CheckString(objectValue, DIGIT_SIGN_COMMA)) // ,를 검사하기 위해 수정
		{
			OpenInformation ( strInfoMessage );		
			return false;
		}	
		
		if (!CheckString(minNumber, DIGIT_SIGN) && !CheckString(maxNumber, DIGIT_SIGN) )
		{
			OpenInformation ( strInfoMessage );		
			return false;
		}				

		iValue = parseInt(objectValue.replace(re,"") , 10);
		
		if (isNaN(iValue)) {
			OpenInformation ( strInfoMessage );		
			return false;
		}
		
		if (maxNumber == 0) 
		{
			if (iValue < minNumber) 
			{
				OpenInformation ( strInfoMessage );			
				return false;
			}
		}
		else	 
		{
			if ((iValue < minNumber) || (iValue > maxNumber)) 	
			{
				OpenInformation ( strInfoMessage );			
				return false;
			}
		}		
	
		return true;
	}
	catch (exception)
	{
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.validNumeric() 에서 사용하는 공통 함수
Parameter :
                     objectValue  (object : 체크할 Control의 value)
                     minNumber    (int : 체크할 시작 범위)
                     maxNumber    (int : 체크할 종료 범위)
                     displayText  (displayText  : 출력할 컨트롤 Text) 
                     decimalPlace (int  : 소숫점 아래 자리수)                     
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidNumeric(document.all.txtNumeric.value, -2000, 2000, 3, '입력 중량');
*******************************************************/
function IsValidNumeric(objectValue, minNumber, maxNumber, decimalPlace, displayText)
{
    var decValue = 0;	
	var re = /,/g;     		
	var strInfoMessage = "<b>" + displayText + "</b>"+ VALID_NUMERIC_INFO_MESSAGE 
									+ VALID_NUMERIC_MIN_NUMBER_INFO_MESSAGE + "<b>" + minNumber.toString() + "</b>"
									+ VALID_NUMERIC_BETWEEN_INFO_MESSAGE +  "<b>" + maxNumber.toString() + "</b>" 
									+ VALID_NUMERIC_MAX_NUMBER_INFO_MESSAGE
									+ VALID_NUMERIC_DECIMAL_START_MESSAGE +  decimalPlace.toString() + VALID_NUMERIC_DECIMAL_END_MESSAGE;
	try
	{
	
		if (parseFloat(minNumber) >= parseFloat(maxNumber))
		{
			OpenInformation ( "시작값과 종료값을 확인해 주세요");		
			return false;
		}	
	
		if (CheckValueEqualLength(objectValue, 0))
		{
			OpenInformation ( strInfoMessage );		
			return false;
		}
		
		// 소숫점 자리수가 0보다 작을 경우
		if ( parseInt(decimalPlace, 10) < 0 )
		{
			OpenInformation ( "소숫점 입력 자리수를 확인해 주세요");		
			return false;		
		}

		// 소숫점이 있을 경우 체크 
		if ( parseInt(decimalPlace, 10) > 0 )
		{
			// 숫자와 소숫점 체크 함수 호출
			if (!CheckNumber(objectValue, DIGIT_POINT_COMMA_SIGN))
			{
				OpenInformation(strInfoMessage);
				return false;
			}	
		}

		// 소숫점이 없을 경우 체크 		
		if ( parseInt(decimalPlace, 10) == 0 )
		{
			if (!CheckNumber(objectValue, DIGIT_SIGN_COMMA))
			{
				OpenInformation(strInfoMessage);
				return false;
			}	
        }
						
		// 소수점 이하 검사		if (!CheckDecimalPlace(objectValue, decimalPlace))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
			
		if (!CheckNumber(minNumber, DIGIT_POINT_COMMA_SIGN) && !CheckNumber(maxNumber, DIGIT_POINT_COMMA_SIGN) )
		{
			OpenInformation ( strInfoMessage );		
			return false;
		}				

		decValue = parseFloat(objectValue.replace(re,""));
        		
		if (isNaN(decValue)) {
			OpenInformation ( strInfoMessage );		
			return false;
		}
		
		if (maxNumber == 0) 
		{
			if (decValue < minNumber) 
			{
				OpenInformation ( strInfoMessage );			
				return false;
			}
		}
		else	 
		{
			if ((decValue < parseFloat(minNumber)) || (decValue > parseFloat(maxNumber))) 	
			{
				OpenInformation ( strInfoMessage );			
				return false;
			}
		}		
			return true;
	}
	catch (exception)
	{
		return false;
	}
}   

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidQtySize() 에서 사용하는 공통 함수
                     두 개의 컨트롤 값을 비교하는 함수 
Parameter   :
                     objectValue1  (object : 첫번째 체크할 Control의 value)
                     objectValue2  (object : 두번째 체크할 Control의 value)                            
                     displayText   (displayText  : 출력할 컨트롤 Text)     
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidQtySize(document.all.txtFirstNumber.value, document.all.txtSecondNumber.value, '재고 수량');
*******************************************************/
function IsValidQtySize(objectValue1, objectValue2, displayText)
{

	var strInfoMessage  = "<b>" + displayText + "</b>" + VALID_QTYSIZE_INFO_MESSAGE
	var strInfoMessage1 = "<b>" + displayText + "</b>"+ VALID_QTYSIZE_FIRSTITEM_INFO_MESSAGE;
	var strInfoMessage2 = "<b>" + displayText + "</b>"+ VALID_QTYSIZE_SECONDITEM_INFO_MESSAGE;

	try
	{

		if (!CheckString(objectValue1, ONLY_DIGIT))
		{
			OpenInformation ( strInfoMessage1 );		
			return false;
		}		
		
		if (!CheckString(objectValue2, ONLY_DIGIT))
		{
			OpenInformation ( strInfoMessage2 );		
			return false;
		}		
				
		if (parseInt(objectValue1, 10) < 0 || objectValue1.length ==0 || objectValue2 == 0 ) {
			OpenInformation(strInfoMessage);
			return false;
		}

		if (parseInt(objectValue1, 10) >= parseInt(objectValue2, 10)) {
			OpenInformation(strInfoMessage);
			return false;
		}

		return true;
	}
	catch (exception)
	{
		return false; 
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidDateRange() 에서 사용하는 공통 함수
                     두 개의 컨트롤 값을 시간 간격을 비교하는 함수
Parameter   :
                     startOjbectValue  (object : 첫번째 날짜 Control의 value)
                     endOjbectValue    (object : 두번째 날짜 Control의 value)                            
                     dateRange         (int  : 날짜 간격, 일 기준)           
                     displayText       (displayText  : 출력할 컨트롤 Text)
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidDateRange(document.all.txtFirstDate.value, document.all.txtSecondNumber.value, '출고 날짜');
*******************************************************/
function IsValidDateRange (startOjbectValue, endOjbectValue, dateRange, displayText)
{
	var strInfoMessage =  "<b>" + displayText + "</b>" + VALID_DATE_RANGE_INFO_START_MESSAGE + dateRange.toString() + VALID_DATE_RANGE_INFO_END_MESSAGE;

	var startValueYear =  startOjbectValue.substr(0,4);
	var startValueMonth =  startOjbectValue.substr(5,2);
	var startValueDay = startOjbectValue.substr(8,2);
	
	var endValueYear =  endOjbectValue.substr(0,4);
	var endValueMonth =  endOjbectValue.substr(5,2);
	var endValueDay = endOjbectValue.substr(8,2);
	
	try
	{
			if (!CheckString(startOjbectValue,  DIGIT_DASH)  || !CheckString(endOjbectValue, DIGIT_DASH))
			{
				OpenInformation (strInfoMessage );						
				return false;
			}
			
			if (!CheckValueEqualLength(startOjbectValue, 10) || !CheckValueEqualLength(endOjbectValue, 10))
			{
				OpenInformation (strInfoMessage );						
				return false;
			}
			
			// 월(Month) 체크
			if(!CheckNumberInterval(startValueMonth, 1, 12) || !CheckNumberInterval(endValueMonth, 1, 12))		
			{
				OpenInformation (strInfoMessage );						
				return false;
			}	

			var iDay = parseInt(startValueDay, 10);
			var iGetLastDay = parseInt(GetLastDay(startValueYear, startValueMonth), 10);
			
			// 지정한 년도, 월의 LastDay 함수 호출
			if ( iDay > iGetLastDay )
			{
				OpenInformation (strInfoMessage );				
				return false;
			}

			var iDay = parseInt(endValueDay, 10);		
			var iGetLastDay = parseInt(GetLastDay(endValueYear, endValueMonth), 10);
			
			if (iDay > iGetLastDay )
			{
				OpenInformation (strInfoMessage );						
				return false;
			}

			var startDT = new Date( startValueYear, parseInt(startValueMonth , 10) -1 , startValueDay);
			var endDT = new Date( endValueYear, parseInt(endValueMonth, 10) - 1, endValueDay);

			if (startDT > endDT) {
				OpenInformation (strInfoMessage );						
				return false;
			}
			
			var iDateMinus = parseInt((endDT - startDT) / (24*60*60*1000), 10); 

			if ( iDateMinus > dateRange  )			
			{
				OpenInformation (strInfoMessage );						
				return false;
			}
			
		return true;		
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);	
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidEmail() 에서 사용하는 이메일 체크를 위한 공통 함수
Parameter :
                     objectValue  (object : 이메일 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text )
반환 값   :  bool (true or false)
사용예    :  var bReturn = isValidEmail(document.all.txtEmail.value, '주문자 이메일');
*******************************************************/
function isValidEmail(objectValue, displayText)
{
	var strInfoMessage = "<b>" +  displayText + "</b>" + VALID_EMAIL_INFO_MESSAGE;
	
	try
	{
		if (!(/^[\w\.\-]+@[a-z\.]+$/.test(objectValue))) 
		{
			OpenInformation (strInfoMessage );		
			return false;
		}

		return true;
	} 
	catch (exception)
	{
		return false;	
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.validPhoneNumber() 에서 사용하는 전화번호 체크를 위한 공통 함수
Parameter :
                     objectValue  (object : 전화번호 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)   
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidPhoneNumber(document.all.txtPhone.value, '주문자 전화번호');
*******************************************************/
function IsValidPhoneNumber(objectValue, displayText)
{

	var strInfoMessage = "<b>" + displayText + "</b>" +VALID_PHONE_INFO_MESSAGE;
		
	try
	{
		if (!(/^\d{2,3}-\d{3,4}-\d{4,4}$/.test(objectValue))) {
			OpenInformation (strInfoMessage );		
			return false;
		}
		
			return true;
	}
	catch (exception)
	{
		return false;		
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidCardNumber() 에서 사용하는 카드번호 체크를 위한 공통 함수
Parameter   :
                     objectValue  (object : 카드번호 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)  
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidCardNumber(document.all.txtCard.value, '주문자 카드번호');
*******************************************************/
function IsValidCardNumber(objectValue, displayText)
{
	var strInfoMessage = "<b> " + displayText + "</b>"+ VALID_CARD_NUMBER_INFO_MESSAGE;
	
	try
	{
		if (!(/^\d{4,4}-\d{4,4}-\d{4,4}-\d{4,4}$/.test(objectValue)))
		{
			OpenInformation (strInfoMessage );		
			return false;
		}

			return true;
	}
	catch (exception)
	{
    	return false;		
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidFullDateTime() 에서 사용하는 일시(yyyy-MM-dd HH:mm:ss)를 체크를 위한 공통 함수
Parameter   :
                     objectValue  (object : 일시 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)     
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidFullDateTime(document.all.txtFullDateTime.value, '주문자 상세 일시');
*******************************************************/
function IsValidFullDateTime(objectValue, displayText)
{
	var strInfoMessage = "<b>" + displayText + " </b>" + VALID_FULL_DATE_TIME_INFO_MESSAGE;
	
	var iYear =  parseInt(objectValue.substr(0,4), 10);
	var iMonth =  parseInt(objectValue.substr(5,2), 10);
	var iDay = parseInt(objectValue.substr(8,2), 10);
	
	var iHour = parseInt(objectValue.substr(11,2), 10);
	var iMinute = parseInt(objectValue.substr(14,2), 10);	
	var iSecond = parseInt(objectValue.substr(17,2), 10);	
	
    var iGetLastDay = 0;
	
	try
	{
		// 문자열 길이 체크 함수 호출		
		if (!CheckValueEqualLength(objectValue, 19))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
				
		if (!CheckString(objectValue, DATE_TIME))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
		
		// 월 체크
		if (!CheckNumberInterval(iMonth, 1, 12))
		{
			OpenInformation(strInfoMessage);
			return false;
		}	
	
		// 지정한 년도, 월의 LastDay 함수 호출
		// 다시 확인 할 것
		iGetLastDay = parseInt(GetLastDay(iYear, iMonth), 10);
	
		if (iDay > iGetLastDay )
		{
			OpenInformation (strInfoMessage );						
			return false;
		}	
		
		// 시 체크 함수 호출
		if(!CheckNumberInterval(iHour, 0, 23))
		{
			OpenInformation(strInfoMessage);
			return false;
		}		

		// 분 체크 함수 호출
		if(!CheckNumberInterval(iMinute, 0, 59))		
		{
			OpenInformation(strInfoMessage);
			return false;
		}			

		// 초 체크 함수 호출
		if(!CheckNumberInterval(iSecond, 0, 59))		
		{
			OpenInformation(strInfoMessage);
			return false;
		}			

		return true;
	}
	catch (exception)
	{
		return false;
	}	
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidDateTime() 에서 사용하는 일시(yyyy-MM-dd HH:mm)를 체크를 위한 공통 함수
Parameter   :
                     objectValue  (object : 일시 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)   
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidDateTime(document.all.txtDateTime.value, '주문자 일시');
*******************************************************/
function IsValidDateTime(objectValue, displayText)
{
	var strInfoMessage = "<b>" + displayText + " </b>" + VALID_DATE_TIME_INFO_MESSAGE;
	
	var iYear =  parseInt(objectValue.substr(0,4), 10);
	var iMonth =  parseInt(objectValue.substr(5,2), 10);
	var iDay = parseInt(objectValue.substr(8,2), 10);
	
	var iHour = parseInt(objectValue.substr(11,2), 10);
	var iMinute =  parseInt(objectValue.substr(14,2), 10);	
	
	var iGetLastDay = 0;	
	
	try
	{
		// 문자열 길이 체크 함수 호출		
		if (!CheckValueEqualLength(objectValue, 16))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
				
		if (!CheckString(objectValue, DATE_TIME))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
		
		// 월 체크	
		if (!CheckNumberInterval(iMonth, 1, 12))
		{
			OpenInformation(strInfoMessage);
			return false;
		}	
	
		// 지정한 년도, 월의 LastDay 함수 호출
		// 다시 확인 할 것
		iGetLastDay = parseInt(GetLastDay(iYear, iMonth), 10);
	
		if (iDay > iGetLastDay )
		{
			OpenInformation (strInfoMessage );						
			return false;
		}		
		
		// 시 체크 함수 호출
		if(!CheckNumberInterval(iHour, 0, 23))
		{
			OpenInformation(strInfoMessage);
			return false;
		}		

		// 분 체크 함수 호출
		if(!CheckNumberInterval(iMinute, 0, 59))		
		{
			OpenInformation(strInfoMessage);
			return false;
		}	
		
		return true;
	}
	catch (exception)
	{
		return false;
	}	
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidDate() 에서 사용하는 날짜(yyyy-MM-dd)를 체크를 위한 공통 함수
Parameter   :
                     objectValue  (object : 날짜 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)            
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidDate(document.all.txtDate.value, '주문자 날짜');
*******************************************************/
function IsValidDate(objectValue, displayText)
{
 	var strInfoMessage = "<B>" + displayText + "</B>" + VALID_DATE_INFO_MESSAGE;
	
	var iYear =  parseInt(objectValue.substr(0,4), 10);
	var iMonth =  parseInt(objectValue.substr(5,2), 10);
	var iDay = parseInt(objectValue.substr(8,2), 10);
	var iGetLastDay = 0;

	try
	{
	
		// 문자열 길이 체크 함수 호출
		if (!CheckValueEqualLength(objectValue, 10))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
			
		if (!CheckString(objectValue, DIGIT_DASH))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
		
		// 월 체크	
		if (!CheckNumberInterval(iMonth, 1, 12))
		{
			OpenInformation(strInfoMessage);
			return false;
		}	
	
		// 지정한 년도, 월의 LastDay 함수 호출
		// 다시 확인 할 것
		iGetLastDay = parseInt(GetLastDay(iYear, iMonth), 10);
	
		if (iDay > iGetLastDay )
		{
			OpenInformation (strInfoMessage );						
			return false;
		}		

		return true;
	}
	catch (exception)
	{
		return false;
	}
 }

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidYearMonth() 에서 사용하는 연도와 월(yyyy-MM)을 체크를 위한 공통 함수
Parameter   :
                     objectValue  (object : 년월 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)           
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidYearMonth(document.all.txtYearMonth.value, '조회년월');
*******************************************************/
function IsValidYearMonth(objectValue, displayText)
{
 	var strInfoMessage = "<B>" + displayText + "</B>" + VALID_YEAR_MONTH_INFO_MESSAGE;
	
	var iYear =  parseInt(objectValue.substr(0,4), 10);
	var iMonth =  parseInt(objectValue.substr(5,2), 10);

	try
	{
		if (!CheckValueEqualLength(objectValue, 7))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
			
		if (!CheckString(objectValue, DIGIT_DASH))
		{
			OpenInformation(strInfoMessage);
			return false;
		}

		if (!CheckNumberInterval(iMonth, 1, 12))
		{
			OpenInformation(strInfoMessage);
			return false;
		}	
	
		return true;
	}
	catch (exception)
	{
		return false;
	}
 }

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidYear() 에서 사용하는 연도(yyyy)를 체크를 위한 공통 함수
Parameter   :
                     objectValue  (object : 년 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)            
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidYear(document.all.txtYear.value, '년도');
*******************************************************/
function IsValidYear(objectValue, displayText)
{
 	var strInfoMessage = "<B>" + displayText + "</B>" + VALID_YEAR_INFO_MESSAGE;
	
	try
	{
		if (!CheckValueEqualLength(objectValue, 4))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
			
		if (!CheckString(objectValue, ONLY_DIGIT))
		{
			OpenInformation(strInfoMessage);
			return false;
		}

		return true;
	}
	catch (exception)
	{
		return false;
	}
 }

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidJuminNumber2Field()와 validation.validJuminNumber 에서 주민등록번호를 체크를 위한 공통 함수
Parameter :
                     objectValue  (object : 주민등록번호 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)     
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidJuminNumber(document.all.txtJumin.value, '주민등록번호');
*******************************************************/
function IsValidJuminNumber(objectValue, displayText) {

	var strInfoMessage = "<b>" + displayText + " </b>" + VALID_JUMIN_NUMBER_INFO_MESSAGE;

	var strJumin1 = objectValue.substr(0,6)
	var strJumin2 = objectValue.substr(7,7)	
	
	var iTotal = 0;	
	var arrTemp = new Array(13);
	
	try
	{
		if (!CheckValueEqualLength(objectValue, 14))
		{ 
			OpenInformation(strInfoMessage);
			return false;
		}
		
		if (!CheckString(objectValue, DIGIT_DASH ))
		{
			OpenInformation(strInfoMessage);
			return false;
		}		
			
		for(var  i=1; i<=6; i++)
			arrTemp[i] = strJumin1.charAt(i-1);

		for(var i=7; i<=13; i++)
			arrTemp[i] = strJumin2.charAt(i-7);

		for(var i=1; i<=12; i++)
		{
			k = i + 1;
			
			if(k >= 10)
				k = k % 10 + 2;
				
			iTotal = iTotal + parseInt(arrTemp[i], 10)  * k;
		}
			
			var iMM = parseInt(arrTemp[3], 10) + parseInt(arrTemp[4], 10);
			var iDD = parseInt(arrTemp[5], 10) + parseInt(arrTemp[6], 10);

			var iTotalMod = iTotal % 11;
			var chd = 11 - iTotalMod;
			
			if (chd > 9)
				 chd = chd - 10;
			
			if(chd == arrTemp[13] && iMM < 13 && iDD < 32 && (arrTemp[7]==1 || arrTemp[7]==2))
				return true;
			else
			{
				OpenInformation(strInfoMessage);
				return false;			
			}
	}
	catch (exception)
	{
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidBusinessNumber()에서 사업자 등록 번호를 체크를 위한 공통 함수
Parameter   :
                     objectValue  (object : 사업자 등록 번호 Control의 value)
                     displayText  (displayText  : 출력할 컨트롤 Text)               
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidBusinessNumber(document.all.txtBizNo.value, '사업자등록번호');
*******************************************************/
function IsValidBusinessNumber(objectValue, displayText) 
{
	var strInfoMessage = "<b>" + displayText + " </b>" + VALID_BUSINESS_NUMBER_INFO_MESSAGE;

	var iSum = 0; 
	var arrTemp = new Array(10); 
	var arrCheckValue =new Array("1","3","7","1","3","7","1","3","5"); 	
	var re = /-/g;     	
	var iBizMod, iBizCheck;
	var objectValueReplace;
	
	try
	{
		if (!CheckValueEqualLength(objectValue, 12))
		{ 
			OpenInformation(strInfoMessage);
			return false;
		}
		
		// 형식 체크
		if (!CheckString(objectValue, DIGIT_DASH))
		{
			OpenInformation(strInfoMessage);
			return false;
		}		

		objectValueReplace = objectValue.replace(re,"");
	    
		for(var i=0; i<10; i++) 
			arrTemp[i] = objectValueReplace.substring(i, i+1); 
		
		for(var i=0; i<9; i++) 
			iSum += parseInt(arrTemp[i], 10) * parseInt(arrCheckValue[i], 10); 

		iSum = iSum + parseInt((arrTemp[8]*5)/10 , 10); 
		
		iBizMod = iSum % 10; 
		iBizCheck = 0; 
		
		if(iBizMod != 0) 
			iBizCheck = 10 - iBizMod; 
		else 
			iBizCheck = 0; 
		
		if(iBizCheck !=  parseInt(arrTemp[9], 10)) 
		{
			OpenInformation(strInfoMessage);		
			return false; 
		 } 

		return true;
	}
	catch (exception)
	{
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidMoney()에서 화폐 체크를 위한 공통 함수
Parameter :
                     objectValue  (object : 화폐 입력 Control의 value)
                     decimalPlace (int  : 소숫점 아래 자리수)
                     displayText  (displayText  : 출력할 컨트롤 Text)              
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidMoney(document.all.txtInMoney.value, 0, '입금액');
*******************************************************/
function IsValidMoney(objectValue, decimalPlace, displayText )
{
	var strInfoMessage = "<b>"+ displayText + "</b>" + VALID_MONEY_INFO_START_MESSAGE 
	                                + decimalPlace.toString() + VALID_MONEY_INFO_END_MESSAGE ;

	try
	{

		if (!CheckValueGreaterLength(objectValue, 0))
		{
			OpenInformation(strInfoMessage);
			return false;
		}
		
		// 소숫점이 있을 경우 체크 
		if ( parseInt(decimalPlace, 10) > 0 )
		{
			// 숫자와 소숫점 체크 함수 호출
			if (!CheckNumber(objectValue, DIGIT_POINT_COMMA_SIGN))
			{
				OpenInformation(strInfoMessage);
				return false;
			}	
		}

		// 소숫점이 없을 경우 체크 		
		if ( parseInt(decimalPlace, 10) == 0 )
		{
			if (!CheckNumber(objectValue, DIGIT_SIGN_COMMA))
			{
				OpenInformation(strInfoMessage);
				return false;
			}	
		}
		
	    // 소수점 이하 검사		if (!CheckDecimalPlace(objectValue, decimalPlace))
		{
			OpenInformation(strInfoMessage);
			return false;
		}

		return true;
	}
	catch (exception)
	{
		//OpenErrorMessage(exception.description);	
		return false;		
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidCheckBoxList()에서 체크 박스 리스트 체크를 위한 공통 함수
Parameter :
                     objectValue  (string : 체크 박스 리스트 Control 명)
                     displayText  (displayText  : 출력할 컨트롤 Text)              
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidCheckBoxList('chklCode', '선택 코드');
*******************************************************/
function IsValidCheckBoxList(objectValue, displayText)
{
	var strInfoMessage = "<b>" + displayText + "</b>" + VALID_CHECKBOXLIST_INFO_MESSAGE;
	
	var oItem;
	var firstItem;
	var iCnt = 0;

	try
	{
		for ( var i = 0 ; i < document.all.length ; i++ )
		{
			oItem = document.all[i];
			if ( oItem.tagName.toUpperCase() == "INPUT")
				if ( oItem.getAttribute("type").toUpperCase() == "CHECKBOX" )
					if (oItem.getAttribute("id") != null )
					{
						var  strFindControl = oItem.getAttribute("id").substr(0, objectValue.length)
						if ( strFindControl == objectValue)
						{
							if ( oItem.checked == true )
								iCnt++;
						}
					}
		}
		
		if (iCnt == 0 )
		{
			OpenInformation(strInfoMessage);
			return false;
		}	
	
		return true;
	}
	catch (exception)
	{
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidRadionButtonList()에서 라디오 버튼 리스트 체크를 위한 공통 함수
Parameter :
                     objectValue  (string : 라디오 버튼 리스트 Control 명)
                     displayText  (displayText  : 출력할 컨트롤 Text)               
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidRadioButtonList('rdolCode', '선택 코드');
*******************************************************/
function IsValidRadioButtonList(objectValue, displayText)
{
	var strInfoMessage = "<b>" + displayText + "</b>" + VALID_RADIOBUTTONLIST_INFO_MESSAGE;
	
	var oItem;
	var firstItem;
	var iCnt = 0;
		
	try
	{
		for ( var i = 0 ; i < document.all.length ; i++ )
		{
			oItem = document.all[i];
			if ( oItem.tagName.toUpperCase() == "INPUT")
				if ( oItem.getAttribute("type").toUpperCase() == "RADIO" )
					if (oItem.getAttribute("id") != null )
					{
						var  strFindControl = oItem.getAttribute("id").substr(0, objectValue.length)
						if ( strFindControl == objectValue)
						{
							if ( oItem.checked == true )
								iCnt++;
						}
					}
		}
		
		if (iCnt == 0 )
		{
			OpenInformation(strInfoMessage);
			return false;
		}	
	
		return true;
	}
	catch (exception)
	{
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidDropDownList()에서 문자열 길이 체크를 위한 공통 함수
Parameter :
                     control      (control : Drop Down List Control)
                     displayText  (displayText  : 출력할 컨트롤 Text)              
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidDropDownList(document.all.ddlCode, '선택 코드');
*******************************************************/
function IsValidDropDownList(control, displayText)
{
	
	var strInfoMsg = "<b>" + displayText + "</b>" + VALID_DROPDOWNLIST_INFO_MESSAGE;
	
	try
	{
		if(control.selectedIndex == -1)
		{
			OpenInformation(strInfoMsg);			
			return false; 
		}
		
		return true;
	}
	catch (exception)
	{
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidStringLength()에서 문자열 길이 체크를 위한 공통 함수
Parameter :
                     objectValue      (object : 체크할 문자열 컨트롤의 Value)
                     comparedOperator (string : 비교할 연산자)
                     comparedLength   (int : 비교할 문자열 길이)
                     displayText      (displayText  : 출력할 컨트롤 Text)             
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidStringLength(document.all.txtString, '>', 3,  '주문자 성명');
*******************************************************/
function IsValidStringLength(objectValue,  comparedOperator, comparedLength, displayText)
{
	
	var bCheckedOperator = false; 
	var strInfoMessage_Start 		= 	displayText.toString() + VALID_STRING_LENGTH_INFO_START_MESSAGE 
									                + "<b>" + " " + displayText.toString() + "의 길이는 " +  comparedLength.toString();
	var strInfoMessage_Operator 	= "";							
	var strInfoMessage_End 		    =  "</b>" + VALID_STRING_LENGTH_INFO_END_MESSAGE;
	
	try
	{
			if (!CheckString(comparedOperator, COMPARISON_OPERATORS))
			{
				OpenInformation(VALID_STRING_OPERATOR_INFO_MESSAGE);
				return false;
			}			
			
			if ( comparedOperator == "<")
			{
				bCheckedOperator = true; 				
				if (! (objectValue.length < comparedLength))
				{
					strInfoMessage_Operator = " 보다 작아야 합니다. "; 
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}

			if ( comparedOperator == ">")
			{
				bCheckedOperator = true; 				
				if (! (objectValue.length > comparedLength))
				{
					strInfoMessage_Operator = " 보다 커야 합니다. "; 				
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}
			
			if ( comparedOperator == "<=")
			{
				bCheckedOperator = true; 				
				if (! (objectValue.length <= comparedLength))
				{
					strInfoMessage_Operator = " 보다 작거나 같아야 합니다. "; 												
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}			
			
			if ( comparedOperator == ">=")
			{
				bCheckedOperator = true; 				
				if (! (objectValue.length >= comparedLength))
				{
					strInfoMessage_Operator = " 보다 크거나 같아야 합니다."; 								
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}
			
			if ( comparedOperator == "==")
			{
				bCheckedOperator = true; 				
				if (! (objectValue.length == comparedLength))
				{
					strInfoMessage_Operator = " 과(와) 같아야 합니다."; 					
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}			
			
			if ( comparedOperator == "!=")
			{
				bCheckedOperator = true; 				
				if (! (objectValue.length != comparedLength))
				{
					strInfoMessage_Operator = " 과(와) 같지 않아야 합니다."; 						
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}	
			
			if (!bCheckedOperator)
			{
				OpenInformation( displayText.toString() + VALID_STRING_LENGTH_INFO_MESSAGE);					
				return false; 
			}
			
		return true;
	}
	catch (exception)
	{
		return false;
	}
}

/*******************************************************
작 성 자  :  인터데브 정재권(2007년 03월 20일)
작성목적  :  validation.ValidStringFullLength()에서 문자열 길이 체크를 위한 공통 함수
                     한글2 byte, 영숫자 1byte로 계산
Parameter :
                     objectValue      (object : 체크할 문자열 컨트롤의 Value)
                     comparedOperator (string : 비교할 연산자)
                     comparedLength   (int : 비교할 문자열 길이)
                     displayText      (displayText  : 출력할 컨트롤 Text)                
반환 값   :  bool (true or false)
사용예    :  var bReturn = IsValidFullStringLength(document.all.txtString, '>', 2,  '주문자 성명');
*******************************************************/
function IsValidFullStringLength(objectValue,  comparedOperator, comparedLength,  displayText)
{
	
	var bCheckedOperator = false; 
	var strInfoMessage_Start 		= 	displayText.toString() + VALID_FULL_STRING_LENGTH_INFO_START_MESSAGE 
									                + "<b>" + " " + displayText.toString() + "의 길이는 " +  comparedLength.toString();
	var strInfoMessage_Operator 	= "";							
	var strInfoMessage_End 		    =  "</b>" + VALID_FULL_STRING_LENGTH_INFO_END_MESSAGE;
	
	var iFullLength= 0 ;
	
	try
	{
			if (!CheckString(comparedOperator, COMPARISON_OPERATORS))
			{
				OpenInformation(VALID_STRING_OPERATOR_INFO_MESSAGE);
				return false;
			}						
			
			iFullLength = GetFullLength(objectValue);
			
			if ( comparedOperator == "<")
			{
				bCheckedOperator = true; 				
				if (! (iFullLength < comparedLength))
				{
					strInfoMessage_Operator = " 보다 작아야 합니다. "; 
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}

			if ( comparedOperator == ">")
			{
				bCheckedOperator = true; 				
				if (! (iFullLength > comparedLength))
				{
					strInfoMessage_Operator = " 보다 커야 합니다. "; 				
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}
			
			if ( comparedOperator == "<=")
			{
				bCheckedOperator = true; 				
				if (! (iFullLength <= comparedLength))
				{
					strInfoMessage_Operator = " 보다 작거나 같아야 합니다. "; 												
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}			
			
			if ( comparedOperator == ">=")
			{
				bCheckedOperator = true; 				
				if (! (iFullLength >= comparedLength))
				{
					strInfoMessage_Operator = " 보다 크거나 같아야 합니다."; 								
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}
			
			if ( comparedOperator == "==")
			{
				bCheckedOperator = true; 				
				if (! (iFullLength == comparedLength))
				{
					strInfoMessage_Operator = " 과(와) 같아야 합니다."; 					
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}			
			
			if ( comparedOperator == "!=")
			{
				bCheckedOperator = true; 				
				if (! (iFullLength != comparedLength))
				{
					strInfoMessage_Operator = " 과(와) 같지 않아야 합니다."; 						
					OpenInformation(strInfoMessage_Start + strInfoMessage_Operator + strInfoMessage_End);
					return false;					
				}
			}	
			
			if (!bCheckedOperator)
			{
				OpenInformation( displayText.toString() + VALID_STRING_LENGTH_INFO_MESSAGE);					
				return false; 
			}
			
		return true;
	}
	catch (exception)
	{
		return false;
	}
}
