	
	

	var _MSGDIR = new Number(0);					
	var _MSGCODE = new Number(1);					
	var _MSGALAM = new Number(2);					
	
	var _CODE_VAL = new Number(0);				
	var _CODE_STR = new Number(1);				
	var _CODE_DES = new Number(2);				


	var MSGDIR_NULL = new Number(0);				
	var MSGDIR_IN = new Number(1);					
	var MSGDIR_OUT = new Number(2);					

	
	var CICHARNONE = new Number(0);
	var CICHARHAN = new Number(1);
	var CICHARNUM = new Number(2);
	var CICHARENG = new Number(4);
	var CICHARETC = new Number(8);
	var CICHARSPC = new Number(16);
	
	
	var CITYPENONE = new Number(0);
	var CITYPEMAIL = new Number(1);					
	var CITYPESSN  = new Number(2);					
	var CITYPEDATE = new Number(4);					
	var CITYPEBYTE = new Number(8);					
	
	
	var MSGI_NONE = new String("000");			
	var MSGI_OKAY	= new String("001");		
	var MSGI_INTO = new String("002");			
	var MSGB_BLNK = new String("101");			
	var MSGB_OLEN = new String("111");			
	var MSGB_ULEN = new String("112");			
	var MSGB_CHAR = new String("113");			
	var MSGT_MAIL = new String("201");			
	var MSGT_SSN = new String("202");			
	var MSGT_DATE = new String("203");			

	
	var ERRPARAMTYPE = new String("9100");			
	var ERRMSGNEEDIN = new String("9001");			



	var _CODE_ARRAY = new Array(20);
	var _codetmp_MSGI_NONE = new Array(MSGI_NONE, "MSGI_NONE", "Á¤º¸: ¸Þ¼¼Áö¾øÀ½");
	var _codetmp_MSGI_OKAY = new Array(MSGI_OKAY, "MSGI_OKAY", "Á¤º¸: Á¤»óÃ³¸®");
	var _codetmp_MSGI_INTO = new Array(MSGI_INTO, "MSGI_INTO", "Á¤º¸: ÀÔ·Â¿ë ¸Þ¼¼Áö¼³Á¤");
	var _codetmp_MSGB_BLNK = new Array(MSGB_BLNK, "MSGB_BLNK", "ÂüÁ¶: °ªÀÔ·Â¾øÀ½");
	var _codetmp_MSGB_OLEN = new Array(MSGB_OLEN, "MSGB_OLEN", "ÂüÁ¶: ±æÀÌÃÊ°ú");
	var _codetmp_MSGB_ULEN = new Array(MSGB_ULEN, "MSGB_ULEN", "ÂüÁ¶: ±æÀÌ¹Ì¸¸");
	var _codetmp_MSGB_CHAR = new Array(MSGB_CHAR, "MSGB_CHAR", "ÂüÁ¶: ¹®ÀÚ¼ÂÀ» ¹þ¾î³­ ¹®ÀÚ");
	var _codetmp_MSGT_MAIL = new Array(MSGT_MAIL, "MSGT_MAIL", "ÂüÁ¶: ¸ÞÀÏÇü½Ä ¿¡·¯");
	var _codetmp_MSGT_SSN = new Array(MSGT_SSN, "MSGT_SSN", "ÂüÁ¶: ÁÖ¹Î¹øÈ£Çü½Ä ¿¡·¯");
	var _codetmp_MSGT_DATE = new Array(MSGT_DATE, "MSGT_DATE", "ÂüÁ¶: ³¯Â¥Çü½Ä ¿¡·¯");
	var _codetmp_ERRPARAMTYPE = new Array(ERRPARAMTYPE, "ERRPARAMTYPE", "¿¡·¯: ÆÄ¶ó¹ÌÅÍ Å¸ÀÔ¿¡·¯");
	var _codetmp_ERRMSGNEEDIN = new Array(ERRMSGNEEDIN, "ERRMSGNEEDIN", "¿¡·¯: ÀÔ·Â¸Þ½ÃÁö ÇÊ¼ö");


	_CODE_ARRAY[0] = _codetmp_MSGI_NONE;
	_CODE_ARRAY[1] = _codetmp_MSGI_OKAY;
	_CODE_ARRAY[2] = _codetmp_MSGI_INTO;
	_CODE_ARRAY[3] = _codetmp_MSGB_BLNK;
	_CODE_ARRAY[4] = _codetmp_MSGB_OLEN;
	_CODE_ARRAY[5] = _codetmp_MSGB_ULEN;
	_CODE_ARRAY[6] = _codetmp_MSGB_CHAR;
	_CODE_ARRAY[7] = _codetmp_MSGT_MAIL;
	_CODE_ARRAY[8] = _codetmp_MSGT_SSN;
	_CODE_ARRAY[9] = _codetmp_MSGT_DATE;
	_CODE_ARRAY[10] = _codetmp_ERRPARAMTYPE;
	_CODE_ARRAY[11] = _codetmp_ERRMSGNEEDIN;
	
	
	var _msg = new Array(4);
	_msgInit()
	


	function _CodeStr(szCode)
	{
		for(var iDx=0;iDx<_CODE_ARRAY.length;iDx++)
		{
			if(_CODE_ARRAY[iDx][_CODE_VAL]==szCode)
				return _CODE_ARRAY[iDx][_CODE_STR];
		}
		return "?????";
	}
	function _CodeDes(szCode)
	{
		for(var iDx=0;iDx<_CODE_ARRAY.length;iDx++)
		{
			if(_CODE_ARRAY[iDx][_CODE_VAL]==szCode)
				return _CODE_ARRAY[iDx][_CODE_DES];
		}
		return "not defind message";
	}
			


	function _msgInit()
	{
		_msgSet(MSGDIR_NULL, MSGI_NONE, "Basic");
		return;
	}

	function _msgOK(szResult)
	{
		var szRtn;
		if(!szResult) szRtn = "";
		else szRtn = szResult;
		_msgSet(MSGDIR_OUT, MSGI_OKAY, szRtn);
		return;
	}
	

	function _msgIsOK()
	{
		return (MSGI_OKAY==_msg[_MSGCODE]) ;
	}
	
	function _msgIn(szAlam)
	{
		_msgSet(MSGDIR_IN, MSGI_INTO, szAlam);
		return;
	}
	
	function _msgOut(szCode, szAlam)
	{
		_msgSet(MSGDIR_OUT, szCode, szAlam);
		return;
	}

	function _msgSet(iDir, szCode, szAlam)
	{
	
		_msg[_MSGDIR] = iDir;
		_msg[_MSGCODE] = szCode;
		_msg[_MSGALAM] = szAlam;
		return;
	}
	function _msgGet()
	{
		return _msg[_MSGALAM];
	}
	
	
	function _msgInChk()
	{
		return (_msg[_MSGDIR] == MSGDIR_IN);
	}
	

	function _msgAlert()
	{
		var szMsgDir
		
		switch(_msg[_MSGDIR])
		{
			case MSGDIR_NULL:
				szMsgDir = "MSGDIR_NULL";
				break;
			case MSGDIR_IN:
				szMsgDir = "MSGDIR_IN";
				break;
			case MSGDIR_OUT:
				szMsgDir = "MSGDIR_OUT";
				break;
			default:
				szMsgDir = "Á¤ÀÇµÇÁö ¾ÊÀ½";
		}
		
		alert("¸¶Áö¸·À¸·Î ¹ÞÀº ¸Þ¼¼Áö\n¸Þ¼¼Áö¹æÇâ:\t" + szMsgDir + "(" + _msg[_MSGDIR] + ")" + "\n¸Þ¼¼ÁöÄÚµå:\t" + _CodeStr(_msg[_MSGCODE]) + "(" + _msg[_MSGCODE] + ")" + "\n¸Þ¼¼Áö³»¿ë:\t" + _msg[_MSGALAM] + "\n¸Þ¼¼Áö¼³¸í:\t" + _CodeDes(_msg[_MSGCODE]));
		return;
	}
	
	
	function _trim(szVal)
	{
		var i;		
		for(i=0;i<szVal.length;i++)
			if(szVal.charAt(i) != " ") break;
		if(i==szVal.length) return ""
		szVal = szVal.substr(i,szVal.length-i);
		for(i=szVal.length-1;i>=0;i--)
			if(szVal.charAt(i) != " ") break;
		szVal = szVal.substr(0,i+1);
		return szVal;
	}
	
	function _parseInt(szVal)
	{
		var szTmp = szVal;
		for(var iDx=0;iDx<szVal.length;iDx++)
			if(szTmp.substr(0,1)=="0"&&iDx!=szVal.length-1) szTmp = szTmp.substring(1);
		return parseInt(szTmp);
	}

	function _BLen(str)
	{
		var iByte;
		iByte = 0;
		len = str.length;	
		
		for(k = 0;k < len; k++)
		{
			if (str.charCodeAt(k) > 127)
				iByte += 2;
			else
				iByte += 1;		
		}
		return iByte;
	}	
	
	function _getLastDays(iYear, iMonth) 
	{
		var aRtnVal = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		if (iYear % 4 == 0 && iYear % 100 != 0 || iYear % 400 == 0) aRtnVal[1] = 29;
		return aRtnVal[iMonth-1];
	}
	
	function _validateYMD(szYear, szMonth, szDay)
	{
		var aLastDays;
		var iYear = _parseInt(szYear), iMonth = _parseInt(szMonth), iDay = _parseInt(szDay);
		//µµ¸ÞÀÎ °Ë»ç
		if(iYear<20) iYear+=2000;
		else if(iYear<100) iYear+=1900;
		else if(iYear<1000) iYear+=1000;
		
		if(iMonth<1||iMonth>12) return false;
		if(iDay<1||iDay>_getLastDays(iYear, iMonth)) return false;
		return iYear + "-" + iMonth + "-" + iDay;
	}
	
	function _isDate(szVal)
	{
		var szYear, szMonth, szDay;
		var objPtn = /^(\d{2}|\d{4})\D*(\d{1,2})\D*(\d{1,2}$|\d{1,2}[ÀÏ]$)/ig;
		
		if(szVal.match(objPtn))
		{
			var bTmp;
			szYear = RegExp.$1;
			szMonth = RegExp.$2;
			szDay = RegExp.$3;
			if(bTmp=_validateYMD(szYear, szMonth, szDay))	return bTmp;
		}
		return false;
	}
	
	function _getDateObj(szValue)
	{
		var bTest, aDatePart;
		if(bTest = _isDate(_trim(szValue)))
		{
			aDatePart = bTest.split("-");
			return new Date(aDatePart[1] + "-" + aDatePart[2] + "-" + aDatePart[0])
		}
		else
		{
			return new Date();
		}
	}

	function _DateComp(objDate1, objDate2)
	{
		return Date.parse(objDate2) - Date.parse(objDate1)
	}

	function _YMDComp(szDate1, szDate2)
	{
		return Date.parse(_getDateObj(szDate2)) - Date.parse(_getDateObj(szDate1))
	}
	
	function _bTypeChk(szVal, szComaSeperateForm)
	{
		var iDx;
		var aForm = szComaSeperateForm.split(",");

		for(iDx=0;iDx<aForm.length;iDx++)
		{
			if(_trim(typeof(szVal)).toLowerCase()==_trim(aForm[iDx]).toLowerCase()) return true;
		}
		_msgOut(ERRPARAMTYPE, "Error");
		return false;
	}

	function _enterCheck(event, pCheckFuncName)
	{		
		if(document.all){
			if(event.keyCode ==13){				
				pCheckFuncName();
			}
		}else{
			if(event.which == 13){				
				pCheckFuncName();
			}
		}
	}

	function _cvtSelect(obj)
	{
		if(typeof(obj.value)=="string")
		{
			obj.checked	=	!obj.checked;
		}
		else
		{
			for(var i=0;i<obj.length;i++)
			{
				obj[i].checked	=	!obj[i].checked;
			}
		}
	}

	function _isSSN(szVal)
	{
		if(!szVal) return false;
		var regSSN = /^(\d{6})\D*(\d{7}$)/ig;
		var birthYMD, adrSSN, iGender, iYear;
		var v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, vSum=0, vLast;
		var mod, minus, last
		if(szVal.match(regSSN))
		{
			birthYMD = RegExp.$1;
			adrSSN = RegExp.$2;
			
			iYear = parseInt(birthYMD.substring(0,2));
			iGender = parseInt(adrSSN.substring(0,1));
			
			if(iYear<20) iYear+=2000;
			else if(iYear<100) iYear+=1900;
			else if(iYear<1000) iYear+=1000;
			
			if((iGender>4)||(iGender<1)) return false;
			if(iYear<2000&&!(iGender==1||iGender==2)) return false; 
			if(iYear>=2000&&!(iGender==3||iGender==4)) return false; 
			
			
			vLast = parseInt(adrSSN.substring(6,7));
			v1 = parseInt(birthYMD.substring(0,1)) * 2;
			v2 = parseInt(birthYMD.substring(1,2)) * 3;
			v3 = parseInt(birthYMD.substring(2,3)) * 4;
			v4 = parseInt(birthYMD.substring(3,4)) * 5;
			v5 = parseInt(birthYMD.substring(4,5)) * 6;
			v6 = parseInt(birthYMD.substring(5,6)) * 7;
			v7 = parseInt(adrSSN.substring(0,1)) * 8;
			v8 = parseInt(adrSSN.substring(1,2)) * 9;
			v9 = parseInt(adrSSN.substring(2,3)) * 2;
			v10 = parseInt(adrSSN.substring(3,4)) * 3;
			v11 = parseInt(adrSSN.substring(4,5)) * 4;
			v12 = parseInt(adrSSN.substring(5,6)) * 5;
			vSum = v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11 + v12;
			mod = vSum % 11;
			minus = 11 - mod;
			last = minus % 10;
			if(last==vLast&&_isDate(birthYMD)) return true;
		}
		return false;
	}
		
	function _isEmail(szVal)
	{
		return !(szVal.search(/(\S+)@(\S+)\.(\S+)/)==-1)
	}

	function _bValidInput_mi (objInput, bRequired, iMinLen, iMaxLen, iBndry, iType)
	{
		var iLen, iDx, rtnVal, szPoint;
		var szMsg = "", szEsc;
		var objRegNum, objRegEng, objRegEtc;
		
		//ÆÄ¶ó¹ÌÅÍ Validate
		if(!_bTypeChk(objInput, "object")|!_bTypeChk(bRequired, "boolean, object")|!_bTypeChk(iMaxLen, "number, object")|!_bTypeChk(iBndry, "number, object")|!_bTypeChk(iType, "number, object"))
		{
			_msgAlert();
			return false;
		}
		
		var szVal = _trim(objInput.value);
		
		//±æÀÌ Validate
		if(CITYPEBYTE==(iType&CITYPEBYTE))
			iLen = _BLen(szVal);
		else
			iLen = szVal.length;

		if(bRequired&&(iLen==0))
		{
			if(_msgInChk()) _msgOut(MSGB_BLNK, "'" + _msgGet()+"'Àº(´Â) ÇÊ¼ö»çÇ×ÀÔ´Ï´Ù. ³»¿ëÀ» ÀÔ·ÂÇÏ½Ê½Ã¿ä.");
			else _msgOut(MSGB_BLNK, "³»¿ëÀ» ÀÔ·ÂÇÏ½Ê½Ã¿ä.");
			return false;
		}
		else if(iLen==0) //ÇÊ¼ö»çÇ× Ã¼Å© ¾ÈÇÒ¶§, ºó¹®ÀÚ¿­
		{
			_msgOK();
			return true;							
		}
		else if(iLen>iMaxLen&&iMaxLen!=0) //±æÀÌÃÊ°ú¿©ºÎ
		{
			if(_msgInChk()) _msgOut(MSGB_OLEN, "'" + _msgGet()+"'Àº(´Â) "+iMaxLen+"¹®ÀÚ ÃÊ°úÇÒ ¼ö ¾ø½À´Ï´Ù.");
			else _msgOut(MSGB_OLEN, iMaxLen+"¹®ÀÚ ÃÊ°úÇÒ ¼ö ¾ø½À´Ï´Ù.");
			return false;
		}
		else if(iLen<iMinLen&&iMinLen!=0) //±æÀÌ¹Ì¸¸¿©ºÎ
		{
			if(_msgInChk()) _msgOut(MSGB_ULEN, "'" + _msgGet()+"'Àº(´Â) "+iMinLen+"¹®ÀÚ ¹Ì¸¸ÀÏ ¼ö ¾ø½À´Ï´Ù.");
			else _msgOut(MSGB_ULEN, iMinLen+"¹®ÀÚ ¹Ì¸¸ÀÏ ¼ö ¾ø½À´Ï´Ù.");
			return false;
		}
		
		//Á¦ÇÑ°ªÃ¼Å©
		if(iBndry!=CICHARNONE) //µµ¸ÞÀÎ Á¦ÇÑÀÌ ÀÖ´Â°æ¿ì
		{
			//Á¤±Ô½Ä »ý¼º
			if(CICHARNUM==(iBndry&CICHARNUM)) 
			{
				szMsg += "¼ýÀÚ, "
				objRegNum = new RegExp("[0-9]","g");
			}
			if(CICHARENG==(iBndry&CICHARENG)) 
			{
				szMsg += "¿µ¹®ÀÚ, "
				objRegEng = new RegExp("[A-Za-z]","g");
			}
			if(CICHARETC==(iBndry&CICHARETC))
			{
				szMsg += "Æ¯¼ö¹®ÀÚ, "
				objRegEtc = RegExp("[^0-9A-Za-z]","g");
			}
			if(CICHARSPC==(iBndry&CICHARSPC))
				szMsg += "ºóÄ­, "
			if(CICHARNONE!=(iBndry&CICHARHAN))
				szMsg += "ÇÑ±Û, "
			szMsg = szMsg.substring(0,szMsg.lastIndexOf(","));
				
			//µµ¸ÞÀÎ°Ë»ç
			for(iDx=0;iDx<szVal.length;iDx++)
			{
				rtnVal = false;
				szPoint = szVal.substr(iDx,1);
				if((CICHARSPC==(iBndry&CICHARSPC))&&(szPoint.charCodeAt(0)==32)) rtnVal = true; //ºóÄ­ Á¦ÇÑÀÌ ÀÖ°í, ¸ÅÄ¡ÇÒ °æ¿ì
				if((CICHARNUM==(iBndry&CICHARNUM))&&(szPoint.match(objRegNum))) rtnVal = true; //¼ýÀÚ´Â Çã¿ëÇÏ°í, ¸ÅÄ¡ÇÒ °æ¿ì
				if((CICHARENG==(iBndry&CICHARENG))&&(szPoint.match(objRegEng))) rtnVal = true; //¿µ¾î´Â Çã¿ëÇÏ°í, ¸ÅÄ¡ÇÒ °æ¿ì
				if(CICHARETC==(iBndry&CICHARETC)) //Æ¯¼ö¹®ÀÚ´Â Çã¿ëÇÏ°í
				{
					if(szPoint.match(objRegEtc))	 //¼ýÀÚ, ¿µ¹®ÀÚ°¡ ¾Æ´Ï°í(¼ýÀÚ¿µ¹®ÀÚ°¡ ¾Æ´Ñ°Íµé¿¡ ´ëÇÑ Á¤±Ô½ÄÀÌ¹Ç·Î)
					{
						szEsc = escape(szPoint);	
						if(szEsc.length>3)
						{	
							szEsc = szEsc.substr(2,4);
							if(szEsc<"AC00"||szEsc>"D7AF") rtnVal = true;  //ÇÑ±Ûµµ ¾Æ´Ï°í, Æ¯¼ö¹®ÀÚ¸ÅÄ¡
						}
						else if(szPoint.charCodeAt(0)!=32) //ºóÄ­µµ ¾Æ´Ò°æ¿ì, Æ¯¼ö¹®ÀÚ ¸ÅÄ¡
							rtnVal = true;
					}
				}
				if(CICHARHAN==(iBndry&CICHARHAN)) //ÇÑ±ÛÁ¦ÇÑÀÌ ÀÖ°í
				{
					szEsc = escape(szPoint);
					if(szEsc.length>3) 
					{
						szEsc = szEsc.substr(2,4);
						if(szEsc>="AC00"||szEsc<="D7AF") //¸ÅÄ¡ÇÒ °æ¿ì
							rtnVal = true;
					}
				}
				if(!rtnVal)
				{
					if(_msgInChk()) 
						if(szPoint.charCodeAt(0)==32) _msgOut(MSGB_CHAR, "'" + _msgGet() +"'Àº(´Â) '" + szMsg + "' ¸¸ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.\n\n \t ºóÄ­Àº »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.");
						else _msgOut(MSGB_CHAR, "'" + _msgGet() +"'Àº(´Â) '" + szMsg + "' ¸¸ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.\n\n \t ¹®ÀÚ( " + szPoint + " )´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.");
					else 
						if(szPoint.charCodeAt(0)==32) _msgOut(MSGB_CHAR, "\'" + szMsg + "\' ¸¸ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.\n\n \t ºóÄ­Àº »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.");
						else _msgOut(MSGB_CHAR, "\'" + szMsg + "\' ¸¸ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.\n\n \t ¹®ÀÚ( " + szPoint + " )´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.");
					return false;
				}
			}		 
		}
		
		//Å¸ÀÔ°Ë»ç
		var szResult;
		if(iType!=CITYPENONE)
		{
			if(CITYPEMAIL==(iType&CITYPEMAIL))
			{
				if(!_isEmail(szVal))
				{
					if(_msgInChk()) _msgOut(MSGT_MAIL, "'" + _msgGet() + "'¿¡ ¿Ã¹Ù¸¥ ¸ÞÀÏÇü½ÄÀ» ³Ö¾îÁÖ¼¼¿ä.");
					else _msgOut(MSGT_MAIL, "¿Ã¹Ù¸¥ ¸ÞÀÏ Çü½ÄÀ¸·Î ³Ö¾îÁÖ¼¼¿ä.");
					return false;
				}
			}
			if((CITYPESSN==(iType&CITYPESSN))&&!_isSSN(szVal))
			{
				if(_msgInChk()) _msgOut(MSGT_SSN, "'" + _msgGet() + "'¿¡ ¿Ã¹Ù¸¥ ÁÖ¹Î¹øÈ£¸¦ ³Ö¾îÁÖ¼¼¿ä.");
				else _msgOut(MSGT_SSN, "ÁÖ¹Î¹øÈ£ Çü½Ä¿¡ Æ²¸³´Ï´Ù.");
				return false;
			}
			if((CITYPEDATE==(iType&CITYPEDATE))&&!(szResult = _isDate(szVal)))
			{
				if(_msgInChk()) _msgOut(MSGT_DATE, "'" + _msgGet() + "'¿¡ ¿Ã¹Ù¸¥ ³¯Â¥¸¦ ³Ö¾îÁÖ¼¼¿ä.");
				else _msgOut(MSGT_DATE, "³¯Â¥ Çü½Ä¿¡ Æ²¸³´Ï´Ù.");
				return false;
			}
			/* ÀÌºÎºÐ¿¡ Çü½ÄÀ» Ãß°¡ÇÏ¼¼¿ä. */
		}
		
		_msgOK(szResult);
		return true;
		
	}
	
	//Ã¼Å©¹Ú½º °Ë»ç
	function _bValidCheckBox_mi (objChk, bRequired, iMinCnt, iMaxCnt)
	{
		//ÆÄ¶ó¹ÌÅÍ Validate
		if(!_bTypeChk(objChk, "object")|!_bTypeChk(bRequired, "boolean, object")|!_bTypeChk(iMinCnt, "number, object")|!_bTypeChk(iMaxCnt, "number, object"))
		{
			_msgAlert();
			return false;
		}	
		
		var isCheck=false, iNumChecked=0;

		/*¹è¿­·Î ÀÌ·ç¾îÁü.*/
		if(typeof(objChk.length)=="number")	
		{
			//ÇÊ¼ö¿©ºÎ °Ë»ç
			for(var iDx=0;iDx<objChk.length;iDx++)
			{
				if(objChk[iDx].checked) 
				{
					isCheck=true;
					iNumChecked++;
				}
			}
		}
		/*´ÜÀÏ°³Ã¼·Î ÀÌ·ç¾îÁü*/
		else
		{
			if(objChk.checked)
			{
				isCheck = true;
				iNumChecked++;
			}
		}
		if(!isCheck)
		{
			if(bRequired)
			{
				if(_msgInChk()) _msgOut(MSGB_BLNK, "'" + _msgGet() +"'Àº(´Â) ÇÊ¼öÇ×¸ñ ÀÔ´Ï´Ù. ÇÏ³ªÀÌ»ó ¼±ÅÃÇÏ¼¼¿ä.");
				else _msgOut(MSGB_BLNK, "ÇÊ¼öÇ×¸ñ ÀÔ´Ï´Ù. ÇÏ³ªÀÌ»ó ¼±ÅÃÇÏ¼¼¿ä.");
				return false;
			}
		}
		else
		{
			if(iNumChecked>iMaxCnt&&iMaxCnt!=0) //±æÀÌÃÊ°ú¿©ºÎ
			{
				if(_msgInChk()) _msgOut(MSGB_OLEN, "'" + _msgGet()+"'Àº(´Â) "+iMaxCnt+"°³ ÀÌÇÏ·Î ¼±ÅÃÇÏ½Ê½Ã¿ä.");
				else _msgOut(MSGB_OLEN, iMaxCnt+"°³ ÀÌÇÏ·Î ¼±ÅÃÇÏ½Ê½Ã¿ä.");
				return false;
			}
			else if(iNumChecked<iMinCnt&&iMinCnt!=0) //±æÀÌ¹Ì¸¸¿©ºÎ
			{
				if(_msgInChk()) _msgOut(MSGB_ULEN, "'" + _msgGet()+"'Àº(´Â) "+iMinCnt+"°³ ÀÌ»ó ¼±ÅÃÇÏ½Ê½Ã¿ä.");
				else _msgOut(MSGB_ULEN, iMinCnt+"°³ ÀÌ»ó ¼±ÅÃÇÏ½Ê½Ã¿ä.");
				return false;
			}	
		}
		_msgOK();
		return true;
	}
	//Select °Ë»ç
	function _bValidSelect_mi(objSelect, bRequired, iMinCnt, iMaxCnt)
	{
		//ÆÄ¶ó¹ÌÅÍ Validate
		if(!_bTypeChk(objSelect, "object")|!_bTypeChk(bRequired, "boolean, object")|!_bTypeChk(iMinCnt, "number, object")|!_bTypeChk(iMaxCnt, "number, object"))
		{
			_msgAlert();
			return false;
		}	
		
		var isSelect=false, iNumSelected=0;

		/*¹è¿­·Î ÀÌ·ç¾îÁü.*/
		if(typeof(objSelect.length)=="number")	
		{
			//ÇÊ¼ö¿©ºÎ °Ë»ç
			for(var iDx=0;iDx<objSelect.length;iDx++)
			{
				if(objSelect[iDx].selected&&objSelect[iDx].value!="") 
				{
					isSelect=true;
					iNumSelected++;
				}
			}
		}
		/*´ÜÀÏ°³Ã¼·Î ÀÌ·ç¾îÁü*/
		else
		{
			if(objSelect.selected)
			{
				isSelect = true;
				iNumSelected++;
			}
		}
		if(!isSelect)
		{
			if(bRequired)
			{
				if(_msgInChk()) _msgOut(MSGB_BLNK, "'" + _msgGet() +"'Àº(´Â) ÇÊ¼öÇ×¸ñ ÀÔ´Ï´Ù. ÇÏ³ªÀÌ»ó ¼±ÅÃÇÏ¼¼¿ä.");
				else _msgOut(MSGB_BLNK, "ÇÊ¼öÇ×¸ñ ÀÔ´Ï´Ù. ÇÏ³ªÀÌ»ó ¼±ÅÃÇÏ¼¼¿ä.");
				return false;
			}
		}
		else
		{
			if(iNumSelected>iMaxCnt&&iMaxCnt!=0) //±æÀÌÃÊ°ú¿©ºÎ
			{
				if(_msgInChk()) _msgOut(MSGB_OLEN, "'" + _msgGet()+"'Àº(´Â) "+iMaxCnt+"°³ ÀÌÇÏ·Î ¼±ÅÃÇÏ½Ê½Ã¿ä.");
				else _msgOut(MSGB_OLEN, iMaxCnt+"°³ ÀÌÇÏ·Î ¼±ÅÃÇÏ½Ê½Ã¿ä.");
				return false;
			}
			else if(iNumSelected<iMinCnt&&iMinCnt!=0) //±æÀÌ¹Ì¸¸¿©ºÎ
			{
				if(_msgInChk()) _msgOut(MSGB_ULEN, "'" + _msgGet()+"'Àº(´Â) "+iMinCnt+"°³ ÀÌ»ó ¼±ÅÃÇÏ½Ê½Ã¿ä.");
				else _msgOut(MSGB_ULEN, iMinCnt+"°³ ÀÌ»ó ¼±ÅÃÇÏ½Ê½Ã¿ä.");
				return false;
			}	
		}
		_msgOK();
		return true;
	}
	
	//¶óµð¿À¹öÆ° °Ë»ç
	function _bValidRadio_mi(objRadio, bRequired)
	{
		//ÆÄ¶ó¹ÌÅÍ Validate
		if(!_bTypeChk(objRadio, "object")|!_bTypeChk(bRequired, "boolean, object"))
		{
			_msgAlert();
			return false;
		}	
	
		var isCheck=false;
		
		/*¹è¿­·Î ÀÌ·ç¾îÁü.*/
		if(typeof(objRadio.length)=="number")	
		{
			//ÇÊ¼ö¿©ºÎ °Ë»ç
			for(var iDx=0;iDx<objRadio.length;iDx++)
			{
				if(objRadio[iDx].checked) 
				{
					isCheck=true;
				}
			}
		}
		/*´ÜÀÏ°³Ã¼·Î ÀÌ·ç¾îÁü*/
		else
		{
			if(objRadio.checked)
			{
				isCheck = true;
			}
		}
		if(bRequired && (!isCheck))
		{
			if(_msgInChk()) _msgOut(MSGB_BLNK, "'" + _msgGet() +"'Àº(´Â) ÇÊ¼öÇ×¸ñ ÀÔ´Ï´Ù. ¼±ÅÃÇÏ¼¼¿ä.");
			else _msgOut(MSGB_BLNK, "ÇÊ¼öÇ×¸ñ ÀÔ´Ï´Ù. ¼±ÅÃÇÏ¼¼¿ä.");
			return false;
		}
		_msgOK();
		return true;
	}


	/**********************
	  ´Þ·Â°ü·Ã ¶óÀÌºê·¯¸®
	**********************/
		
	//´Þ·Â³¯Â¥»ý¼º
	var objNowDate = new Date();
	var iCurYear = new Number();
	var iCurMonth = new Number();
	var iCurDay	= new Number();
	var objInputBox = new Object();
	
	function _nextMonth()
	{
	  var objMonth = document.all["objMonth"];
	  var objDays = document.all["objDays"];
		iCurMonth++;
	  if (iCurMonth > 12)
	  {
			iCurMonth -= 12;
			_nextYear();
	  }
	  objMonth.innerHTML = iCurMonth;
		objDays.innerHTML = _getDaysHTML(iCurYear, iCurMonth);
		return;
	}


	function _prevMonth()
	{
	  var objMonth = document.all["objMonth"];
	  var objDays = document.all["objDays"];
		iCurMonth--;
	  if (iCurMonth < 1)
	  {
			iCurMonth += 12;
			_prevYear();
	  }
	  objMonth.innerHTML = iCurMonth;
		objDays.innerHTML = _getDaysHTML(iCurYear, iCurMonth);
		return;
	}

	function _nextYear()
	{
	  var objYear = document.all["objYear"];
	  var objDays = document.all["objDays"];
	  iCurYear++;
		objYear.innerHTML = iCurYear;
		objDays.innerHTML = _getDaysHTML(iCurYear, iCurMonth);
	}
	
	function _prevYear()
	{
	  var objYear = document.all["objYear"];
	  var objDays = document.all["objDays"];
	  iCurYear--;
		objYear.innerHTML = iCurYear;
		objDays.innerHTML = _getDaysHTML(iCurYear, iCurMonth);
	}

	function _setYMD(iYear, iMonth, iDay)
	{
		objInputBox.value = iYear + "-" + iMonth + "-" + iDay;
		_closeBox();
	}
	
	function _getDaysHTML(iYear, iMonth)
	{
		var objToday = new Date();
		var objInputDate = _getDateObj(objInputBox.value);
		var objPreDate = new Date(iYear, iMonth-1, 1);	//±× ´ÞÀÇ Ã¹¹øÂ° ³¯·Î ¼³Á¤
		var iLastDay = _getLastDays(iYear, iMonth);		//±× ´ÞÀÇ ¸¶Áö¸· ³¯ÀÚ ±¸ÇÔ
		var iPreDay = objNowDate.getDate();						//¿À´Ã ³¯Â¥ ±¸ÇÔ
		var iPreMonth = objNowDate.getMonth();				//¿À´Ã ¿ù ±¸ÇÔ
		var iPreYear = objNowDate.getFullYear();			//¿À´Ã ³âµµ ±¸ÇÔ
		var iFirstDayOfTheWeek = objPreDate.getDay();
		var iPreDayOfTheWeek = 0;
		var szHTML = "";
		
		szHTML += "<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 WIDTH=100% HEIGHT=100%>\n";
		szHTML += "<TR>\n";
		for(var iDx=0;iDx<iFirstDayOfTheWeek;iDx++)
		{
			szHTML +="<TD ALIGN=CENTER>&nbsp;</TD>\n";
			iPreDayOfTheWeek++;
		}
		for(var iDay=1;iDay<=iLastDay;iDay++)
		{
			if((iPreDayOfTheWeek%7)==0) szHTML += "</TR>\n<TR>\n";
			szHTML += "<TD ALIGN=CENTER ONCLICK=\"_setYMD(" + iYear + "," + iMonth + "," + iDay + ");\" STYLE=\"cursor:hand;\" ONMOUSEOVER=\"this.style.backgroundColor='yellow'\" ONMOUSEOUT=\"this.style.backgroundColor=''\">";
			if((iPreDayOfTheWeek%7)==0) szHTML += "<FONT COLOR=red>";
			else if((iPreDayOfTheWeek%7)==6) szHTML += "<FONT COLOR=blue>";
			else szHTML += "<FONT COLOR=#000011>";
			
			if(objPreDate.getFullYear()==objToday.getFullYear()&&objPreDate.getMonth()==objToday.getMonth()&&iDay==objToday.getDate()) szHTML += "<B><font style='font-size:9px'>¿À´Ã</font></B>\n";
			else if(objPreDate.getFullYear()==objInputDate.getFullYear()&&objPreDate.getMonth()==objInputDate.getMonth()&&iDay==objInputDate.getDate()) szHTML += "<B>" + iDay + "</B>\n";
			else szHTML += iDay;
			szHTML += "</font>";
			szHTML += "</TD>\n";
			iPreDayOfTheWeek++;
		}
		szHTML += "</TR>\n";
		szHTML += "</TABLE>\n";
		return szHTML;
	}
	
	function _calendarCreate(objInput)
	{
		var objInputDate;
		objInputDate	= _getDateObj(objInput.value)
		iCurYear			= objInputDate.getFullYear();
		iCurMonth			= objInputDate.getMonth() + 1;
		iCurDay				= objInputDate.getDate();
		objInputBox = objInput;
		var szHTML = "";
		szHTML += "<TABLE WIDTH=\"250px\" CELLSPACING=1 CELLPADDING=0 BORDER=0 BGCOLOR=\"BLACK\">\n";
		szHTML += "<TR>\n";
		szHTML += "<TD BGCOLOR='DARKBLUE'>\n";
		szHTML += "<TABLE WIDTH=\"100%\" CELLPADDING=0 CELLSPACING=0 BORDER=0>\n";
		szHTML += "<TR>\n";
		szHTML += "<TD ALIGN=\"right\" WIDTH=80>\n";
		szHTML += "<FONT COLOR=\"#99ffff\"><B>\n";
		szHTML += "<DIV ID=\"objYear\" STYLE=\"position: relative\">" + iCurYear + "</DIV>\n";
		szHTML += "</B></FONT>\n";
		szHTML += "</TD>\n";
		szHTML += "<TD WIDTH=10><B><FONT COLOR=\"white\">³â</FONT></B>&nbsp;</TD>\n";
		szHTML += "<TD ALIGN=\"left\" HEIGHT=5 WIDTH=35>\n";
		szHTML += "<A HREF=\"javascript:_nextYear();\" style='text-decoration:none;'><FONT COLOR='white' SIZE=-2>¡â</FONT></A><BR>\n";
		szHTML += "<A HREF=\"javascript:_prevYear();\" style='text-decoration:none;'><FONT COLOR='white' SIZE=-2>¡ä</FONT></A>\n";
		szHTML += "</td>\n";
		szHTML += "<TD align='right' width=80>\n";
		szHTML += "<font color='#99ffff'><b>\n<div id='objMonth' style='position=relative;'>" + iCurMonth + "<div>\n</b></font>\n";
		szHTML += "</td>\n";
		szHTML += "<td width=10><b><font color='white'>¿ù</font></b></td>\n";
		szHTML += "<td align='left' height=5 width=35>\n";
		szHTML += "<a href=\"javascript:_nextMonth();\" style='text-decoration:none;'><font color='white' size=-2>¡â</font></a><br>\n";
		szHTML += "<a href=\"javascript:_prevMonth();\" style='text-decoration:none;'><font color='white' size=-2>¡ä</font></a>\n";
		szHTML += "</td>\n";
		szHTML += "</tr>\n";
		szHTML += "</table>\n";
		szHTML += "</td>\n</tr>\n";
		szHTML += "<tr height='160px'><td valign=\"top\"  bgcolor=white>\n";
		szHTML += "<table border=0 cols=8 >\n";
		szHTML += "<tr>\n";
		szHTML += "<td width='2'>&nbsp;</td>\n";
		szHTML += "<td width='30'><b>ÀÏ</b></td>\n";
		szHTML += "<td width='30'><b>¿ù</b></td>\n";
		szHTML += "<td width='30'><b>È­</b></td>\n";
		szHTML += "<td width='30'><b>¼ö</b></td>\n";
		szHTML += "<td width='30'><b>¸ñ</b></td>\n";
		szHTML += "<td width='30'><b>±Ý</b></td>\n";
		szHTML += "<td width='30'><b>Åä</b></td>\n";
		szHTML += "</tr>\n";
		szHTML += "<tr>\n";
		szHTML += "<td colspan=8>\n";
		szHTML += "<DIV ID=\"objDays\" STYLE=\"position: relative\">\n";
		szHTML += _getDaysHTML(iCurYear, iCurMonth)
		szHTML += "</DIV>"
		szHTML += "</td></tr>\n";
		szHTML += "</table>\n";
		szHTML += "\n";
		szHTML += "</td></tr>\n";
		szHTML += "</table>\n";
		return szHTML;
	}


	//floating Box
	var objPopUp, xtra, ytra;
	function _pickUpBox()
	{
		if(event.button!=1)	return;	
		objPopUp = eval("objPopUpDiv");
		temp1 = objPopUp.style.posLeft;
		temp2 = objPopUp.style.posTop;
		xpos = event.clientX;
		ypos = event.clientY;
		xtra = temp1-xpos;
		ytra = temp2-ypos;
		document.onmousemove = _moveBox;
	}
	
	function _moveBox()
	{
		if(event.button==1)
		{
			objPopUp.style.pixelLeft = event.clientX+xtra;
			objPopUp.style.pixelTop = event.clientY+ytra;
			return false;
		}
	}
	
	function _createBox(inside, iTop, iLeft, width, height)
	{
		titlecolor = "#87cefa";
		opacitytitle = 70;
		if(!iTop)
		{
			iTop = 200;
			iLeft = 200;
		}
		if(!width)
		{
			width = 500;
			height = 325;
		}	
		if(inside.indexOf(".asp") > inside.length-6) inside = "<iframe frameborder=0 name=\"objPopUp\" width="+(width-10)+" height="+(height-30)+" src=\""+inside+"\" scrolling=\"no\" ></iframe>";
		var thisspan = eval("objPopUpDiv.style") 
		
		thisspan.pixelLeft = document.body.scrollLeft + iTop;
		thisspan.pixelTop =  document.body.scrollTop + iLeft;
		thisspan.visibility = "visible";
		
	//	output = "<table cellpadding=0 cellspacing=0 width=" + width + " height=" + height + " border=0 style='filter:alpha(opacity="+opacitytitle+");' onmousedown='_pickUpBox()' onmouseup='JavaScript:document.onmousemove=\"\"'>\n";
		output = "<table cellpadding=0 cellspacing=0 width=" + width + " height=" + height + " border=0 onmousedown='_pickUpBox()' onmouseup='JavaScript:document.onmousemove=\"\"'>\n";
		output += "<tr>\n";
		output += "<td style='cursor:hand' bgcolor='"+titlecolor+"' width =" + width + " height=5></td>";
		output += "<td><button onclick='_closeBox()' height=5 style='border:1 solid;'>X&nbsp;</button></td></tr>";
		output += "<tr><td width=100% colspan=2><table width=100% height=100% cellpadding=0 cellspacing=0 border=0><tr><td height=100% width=100% >"+ inside+"</td></tr></table></td></tr>";
		objPopUpDiv.innerHTML = output;
	}
	
	function _closeBox()
	{
		objPopUpDiv.style.visibility="hidden";
	}

	function _showCalendar(obj, iTop, iLeft)
	{
		if(!iTop) iTop = 300;
		if(!iLeft) iLeft = 200;
		_createBox(_calendarCreate(obj), iTop, iLeft, 200, 200);
	}
	
	function _isDateCalendar(obj)
	{
		var szDate = _isDate(obj.value);
		if(!szDate) _showCalendar(obj);
		else obj.value = szDate;
		return;
	}
	
	/**********************
	  Form ¶óÀÌºê·¯¸®
	**********************/
	
	function _SetFocusInput(control){
		if (control){
			control.focus();
		}
	}


	function _EnterCheck(event,form,strCheckFuncName){
		var evalStr
		evalStr = strCheckFuncName + "(form)"
		if(document.all){
			if(event.keyCode ==13){
				eval(evalStr);
			}
		}else{
			if(event.which == 13){
				eval(evalStr);
				}
			}
	}

	function faddItem(Code, Name, obj)
	{	
		var CreatedOptions,AddIndex;
		AddIndex = obj.options.length;		
		CreatedOptions = new Option(_trim(Name),_trim(Code));	
		obj.options[AddIndex] = CreatedOptions;		
	}
		
	function fdelItem(obj)
	{
		try{
			var delIndex = obj.options.length;		
			
			for(var i=0;i<delIndex;i++)
			{
				if(obj.options[i].selected) 
				{
					obj.options[i] = null;
				}					
			}
		}
		catch(e)
		{}
	}
 
	function fHideDiv(div)
	{
		document.all[div].style.visibility='hidden';
		document.all[div].style.display='none';					
	}
	
	function fShowDiv(div)
	{
		document.all[div].style.visibility='visible';
		document.all[div].style.display='';			
	}
	

	function generateOption(szVal, szName, szSlctVal)
	{
		var szHTML = "";
		if(szVal!=szSlctVal) 
			szHTML = "<option value=\"" + szVal + "\">" + szName + "</option>"
		else
			szHTML = "<option value=\"" + szVal + "\" selected>" + szName + "</option>"
		return szHTML
	}
	function generateRadio(szInputName, szVal, szName, szSlctVal)
	{
		var szHTML = "";
		if(szVal!=szSlctVal) 
			szHTML = "<INPUT TYPE=\"radio\" NAME=\""+ szInputName + "\" VALUE=\"" + szVal + "\" style=\"border:0\">" + szName + "&nbsp;&nbsp;"
		else
			szHTML = "<INPUT TYPE=\"radio\" NAME=\""+ szInputName + "\" VALUE=\"" + szVal + "\" style=\"border:0\" CHECKED>" + szName + "&nbsp;&nbsp;"
		return szHTML
	}
	
	
	function fFitWindowHeight(iWidth){
		window.resizeTo(iWidth,document.body.scrollHeight + 50);
		window.document.body.style.overflow = 'visible';
		
	}
	
		
	function fLimitCheck(obj, iLimitLen) {
	    var len = 0;
	    var newtext = "";
	    if(obj.value == null) len = 0;

	    for(var i = 0 ; i < obj.value.length ; i++) {
	        var c = escape(obj.value.charAt(i));

	        if(c.length == 1) len ++;
	        else if ( c.indexOf("%u") != -1 ) len += 2;
	        else if ( c.indexOf("%") != -1 ) len += c.length/3;

	        if(len <= _parseInt(iLimitLen)) newtext += unescape(c);
	    }

	    if(len > _parseInt(iLimitLen)) {
	        alert("ÇÏ½Ç ¸»¾¸Àº ¿µ¹® "+iLimitLen+"ÀÚ, ÇÑ±Û "+ (_parseInt(iLimitLen)/2)+"ÀÚ¸¦ ³ÑÀ» ¼ö ¾ø½À´Ï´Ù.");
	        obj.value = newtext;
	        obj.focus();
	        return;
	    }
	} 

